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.
Files changed (63) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/anthropic-sdk.js +203 -0
  3. package/dist/cjs/anthropic-sdk.js.map +1 -0
  4. package/dist/cjs/anymethod.js +167 -0
  5. package/dist/cjs/anymethod.js.map +1 -0
  6. package/dist/cjs/chat.js +513 -0
  7. package/dist/cjs/chat.js.map +1 -0
  8. package/dist/cjs/chrome-ai-legacy.js +168 -0
  9. package/dist/cjs/chrome-ai-legacy.js.map +1 -0
  10. package/dist/cjs/chrome-ai.js +156 -0
  11. package/dist/cjs/chrome-ai.js.map +1 -0
  12. package/dist/cjs/index.js +58 -0
  13. package/dist/cjs/index.js.map +1 -0
  14. package/dist/cjs/ir-index.js +52 -0
  15. package/dist/cjs/ir-index.js.map +1 -0
  16. package/dist/cjs/openai-sdk.js +221 -0
  17. package/dist/cjs/openai-sdk.js.map +1 -0
  18. package/dist/cjs/stream-utils.js +21 -0
  19. package/dist/cjs/stream-utils.js.map +1 -0
  20. package/dist/cjs/types.js +10 -0
  21. package/dist/cjs/types.js.map +1 -0
  22. package/dist/esm/anthropic-sdk.js +196 -0
  23. package/dist/esm/anthropic-sdk.js.map +1 -0
  24. package/dist/esm/anymethod.js +161 -0
  25. package/dist/esm/anymethod.js.map +1 -0
  26. package/dist/esm/chat.js +508 -0
  27. package/dist/esm/chat.js.map +1 -0
  28. package/dist/esm/chrome-ai-legacy.js +163 -0
  29. package/dist/esm/chrome-ai-legacy.js.map +1 -0
  30. package/dist/esm/chrome-ai.js +152 -0
  31. package/dist/esm/chrome-ai.js.map +1 -0
  32. package/dist/esm/index.js +22 -0
  33. package/dist/esm/index.js.map +1 -0
  34. package/dist/esm/ir-index.js +41 -0
  35. package/dist/esm/ir-index.js.map +1 -0
  36. package/dist/esm/openai-sdk.js +213 -0
  37. package/dist/esm/openai-sdk.js.map +1 -0
  38. package/dist/esm/stream-utils.js +14 -0
  39. package/dist/esm/stream-utils.js.map +1 -0
  40. package/dist/esm/types.js +9 -0
  41. package/dist/esm/types.js.map +1 -0
  42. package/dist/types/anthropic-sdk.d.ts +154 -0
  43. package/dist/types/anthropic-sdk.d.ts.map +1 -0
  44. package/dist/types/anymethod.d.ts +45 -0
  45. package/dist/types/anymethod.d.ts.map +1 -0
  46. package/dist/types/chat.d.ts +144 -0
  47. package/dist/types/chat.d.ts.map +1 -0
  48. package/dist/types/chrome-ai-legacy.d.ts +44 -0
  49. package/dist/types/chrome-ai-legacy.d.ts.map +1 -0
  50. package/dist/types/chrome-ai.d.ts +38 -0
  51. package/dist/types/chrome-ai.d.ts.map +1 -0
  52. package/dist/types/index.d.ts +20 -0
  53. package/dist/types/index.d.ts.map +1 -0
  54. package/dist/types/ir-index.d.ts +41 -0
  55. package/dist/types/ir-index.d.ts.map +1 -0
  56. package/dist/types/openai-sdk.d.ts +183 -0
  57. package/dist/types/openai-sdk.d.ts.map +1 -0
  58. package/dist/types/stream-utils.d.ts +9 -0
  59. package/dist/types/stream-utils.d.ts.map +1 -0
  60. package/dist/types/types.d.ts +232 -0
  61. package/dist/types/types.d.ts.map +1 -0
  62. package/package.json +132 -0
  63. package/readme.md +92 -0
@@ -0,0 +1,221 @@
1
+ "use strict";
2
+ /**
3
+ * OpenAI SDK Wrapper
4
+ *
5
+ * Mimics the OpenAI SDK interface using any backend adapter.
6
+ * Allows you to use OpenAI SDK-style code with any provider.
7
+ *
8
+ * Uses the OpenAI Frontend Adapter internally for format conversions.
9
+ *
10
+ * @module
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.OpenAIClient = exports.Chat = exports.Models = exports.ChatCompletions = void 0;
14
+ exports.OpenAI = OpenAI;
15
+ const ai_matey_frontend_1 = require("ai.matey.frontend");
16
+ // ============================================================================
17
+ // OpenAI SDK Wrapper Implementation
18
+ // ============================================================================
19
+ /**
20
+ * Chat completions interface (mimics OpenAI SDK).
21
+ */
22
+ class ChatCompletions {
23
+ backend;
24
+ config;
25
+ adapter;
26
+ constructor(backend, config = {}) {
27
+ this.backend = backend;
28
+ this.config = config;
29
+ this.adapter = new ai_matey_frontend_1.OpenAIFrontendAdapter();
30
+ }
31
+ /**
32
+ * Create a chat completion.
33
+ */
34
+ create(params) {
35
+ if (params.stream) {
36
+ return this.createStream(params);
37
+ }
38
+ return this.createNonStream(params);
39
+ }
40
+ async createNonStream(params) {
41
+ // Convert params to OpenAI request format
42
+ const request = {
43
+ model: params.model,
44
+ messages: params.messages,
45
+ temperature: params.temperature,
46
+ max_tokens: params.max_tokens,
47
+ top_p: params.top_p,
48
+ frequency_penalty: params.frequency_penalty,
49
+ presence_penalty: params.presence_penalty,
50
+ stop: params.stop,
51
+ stream: false,
52
+ user: params.user,
53
+ seed: params.seed,
54
+ };
55
+ // Use frontend adapter to convert to IR
56
+ const irRequest = await this.adapter.toIR(request);
57
+ // Execute via backend
58
+ const irResponse = await this.backend.execute(irRequest);
59
+ // Use frontend adapter to convert back to OpenAI format
60
+ const openaiResponse = await this.adapter.fromIR(irResponse);
61
+ // Return in SDK-style format
62
+ return {
63
+ id: openaiResponse.id,
64
+ object: 'chat.completion',
65
+ created: openaiResponse.created,
66
+ model: openaiResponse.model,
67
+ choices: openaiResponse.choices.map((choice) => ({
68
+ index: choice.index,
69
+ message: choice.message,
70
+ finish_reason: choice.finish_reason,
71
+ })),
72
+ usage: openaiResponse.usage ?? {
73
+ prompt_tokens: 0,
74
+ completion_tokens: 0,
75
+ total_tokens: 0,
76
+ },
77
+ };
78
+ }
79
+ async *createStream(params) {
80
+ // Convert params to OpenAI request format
81
+ const request = {
82
+ model: params.model,
83
+ messages: params.messages,
84
+ temperature: params.temperature,
85
+ max_tokens: params.max_tokens,
86
+ top_p: params.top_p,
87
+ frequency_penalty: params.frequency_penalty,
88
+ presence_penalty: params.presence_penalty,
89
+ stop: params.stop,
90
+ stream: true,
91
+ user: params.user,
92
+ seed: params.seed,
93
+ };
94
+ // Use frontend adapter to convert to IR
95
+ let irRequest = await this.adapter.toIR(request);
96
+ // Add stream mode if configured
97
+ if (this.config.streamMode) {
98
+ irRequest = { ...irRequest, streamMode: this.config.streamMode };
99
+ }
100
+ // Execute streaming via backend
101
+ const irStream = this.backend.executeStream(irRequest);
102
+ // Use frontend adapter to convert stream
103
+ for await (const chunk of this.adapter.fromIRStream(irStream)) {
104
+ // Convert to SDK-style chunk
105
+ yield {
106
+ id: chunk.id,
107
+ object: 'chat.completion.chunk',
108
+ created: chunk.created,
109
+ model: chunk.model,
110
+ choices: chunk.choices.map((choice) => ({
111
+ index: choice.index,
112
+ delta: {
113
+ role: choice.delta.role,
114
+ content: choice.delta.content,
115
+ },
116
+ finish_reason: choice.finish_reason,
117
+ })),
118
+ };
119
+ }
120
+ }
121
+ }
122
+ exports.ChatCompletions = ChatCompletions;
123
+ /**
124
+ * Models interface (mimics OpenAI SDK).
125
+ */
126
+ class Models {
127
+ backend;
128
+ constructor(backend) {
129
+ this.backend = backend;
130
+ }
131
+ /**
132
+ * List available models.
133
+ */
134
+ async list(options) {
135
+ if (!this.backend.listModels) {
136
+ return { object: 'list', data: [] };
137
+ }
138
+ const result = await this.backend.listModels(options);
139
+ const data = result.models.map((model) => ({
140
+ id: model.id,
141
+ object: 'model',
142
+ created: model.created
143
+ ? new Date(model.created).getTime() / 1000
144
+ : Math.floor(result.fetchedAt / 1000),
145
+ owned_by: model.ownedBy || 'unknown',
146
+ }));
147
+ return { object: 'list', data };
148
+ }
149
+ /**
150
+ * Retrieve information about a specific model.
151
+ */
152
+ async retrieve(modelId) {
153
+ if (!this.backend.listModels) {
154
+ return null;
155
+ }
156
+ const result = await this.backend.listModels();
157
+ const model = result.models.find((m) => m.id === modelId);
158
+ if (!model) {
159
+ return null;
160
+ }
161
+ return {
162
+ id: model.id,
163
+ object: 'model',
164
+ created: model.created
165
+ ? new Date(model.created).getTime() / 1000
166
+ : Math.floor(result.fetchedAt / 1000),
167
+ owned_by: model.ownedBy || 'unknown',
168
+ };
169
+ }
170
+ }
171
+ exports.Models = Models;
172
+ /**
173
+ * Chat interface (mimics OpenAI SDK).
174
+ */
175
+ class Chat {
176
+ completions;
177
+ constructor(backend, config = {}) {
178
+ this.completions = new ChatCompletions(backend, config);
179
+ }
180
+ }
181
+ exports.Chat = Chat;
182
+ /**
183
+ * OpenAI SDK-compatible client.
184
+ */
185
+ class OpenAIClient {
186
+ chat;
187
+ models;
188
+ constructor(backend, config = {}) {
189
+ this.chat = new Chat(backend, config);
190
+ this.models = new Models(backend);
191
+ }
192
+ }
193
+ exports.OpenAIClient = OpenAIClient;
194
+ // ============================================================================
195
+ // Factory Function
196
+ // ============================================================================
197
+ /**
198
+ * Create an OpenAI SDK-compatible client using any backend adapter.
199
+ *
200
+ * @example
201
+ * ```typescript
202
+ * import { OpenAI } from 'ai.matey.wrapper/openai';
203
+ * import { AnthropicBackendAdapter } from 'ai.matey.backend/anthropic';
204
+ *
205
+ * const backend = new AnthropicBackendAdapter({ apiKey: 'sk-ant-...' });
206
+ * const client = OpenAI(backend);
207
+ *
208
+ * const completion = await client.chat.completions.create({
209
+ * model: 'claude-3-5-sonnet',
210
+ * messages: [
211
+ * { role: 'user', content: 'Hello!' }
212
+ * ],
213
+ * });
214
+ *
215
+ * console.log(completion.choices[0].message.content);
216
+ * ```
217
+ */
218
+ function OpenAI(backend, config) {
219
+ return new OpenAIClient(backend, config);
220
+ }
221
+ //# 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,21 @@
1
+ "use strict";
2
+ /**
3
+ * Stream Utilities
4
+ *
5
+ * Re-exports stream utilities from ai.matey.utils.
6
+ *
7
+ * @module
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.streamToText = exports.teeStream = exports.throttleStream = exports.streamToLines = exports.processStream = exports.collectStream = void 0;
11
+ // Re-export stream utilities from ai.matey.utils
12
+ var ai_matey_utils_1 = require("ai.matey.utils");
13
+ // High-level utilities
14
+ Object.defineProperty(exports, "collectStream", { enumerable: true, get: function () { return ai_matey_utils_1.collectStreamFull; } });
15
+ Object.defineProperty(exports, "processStream", { enumerable: true, get: function () { return ai_matey_utils_1.processStream; } });
16
+ Object.defineProperty(exports, "streamToLines", { enumerable: true, get: function () { return ai_matey_utils_1.streamToLines; } });
17
+ Object.defineProperty(exports, "throttleStream", { enumerable: true, get: function () { return ai_matey_utils_1.throttleStream; } });
18
+ Object.defineProperty(exports, "teeStream", { enumerable: true, get: function () { return ai_matey_utils_1.teeStream; } });
19
+ // Basic utilities (streamToTextIterator provides generator behavior with error handling)
20
+ Object.defineProperty(exports, "streamToText", { enumerable: true, get: function () { return ai_matey_utils_1.streamToTextIterator; } });
21
+ //# 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,iDAcwB;AAbtB,uBAAuB;AACvB,+GAAA,iBAAiB,OAAiB;AAClC,+GAAA,aAAa,OAAA;AACb,+GAAA,aAAa,OAAA;AACb,gHAAA,cAAc,OAAA;AACd,2GAAA,SAAS,OAAA;AAET,yFAAyF;AACzF,8GAAA,oBAAoB,OAAgB"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /**
3
+ * Headless Chat Client Types
4
+ *
5
+ * Type definitions for the framework-agnostic chat client.
6
+ *
7
+ * @module
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG"}
@@ -0,0 +1,196 @@
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 { AnthropicFrontendAdapter, } from 'ai.matey.frontend';
12
+ // ============================================================================
13
+ // Messages Implementation
14
+ // ============================================================================
15
+ /**
16
+ * Messages interface (mimics Anthropic SDK).
17
+ */
18
+ export class Messages {
19
+ backend;
20
+ config;
21
+ adapter;
22
+ constructor(backend, config = {}) {
23
+ this.backend = backend;
24
+ this.config = config;
25
+ this.adapter = new AnthropicFrontendAdapter();
26
+ }
27
+ /**
28
+ * Create a message.
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 Anthropic request format
38
+ const request = {
39
+ model: params.model,
40
+ messages: params.messages.map((msg) => ({
41
+ role: msg.role,
42
+ content: msg.content,
43
+ })),
44
+ max_tokens: params.max_tokens,
45
+ system: params.system,
46
+ temperature: params.temperature,
47
+ top_p: params.top_p,
48
+ top_k: params.top_k,
49
+ stop_sequences: params.stop_sequences,
50
+ stream: false,
51
+ metadata: params.metadata,
52
+ };
53
+ // Use frontend adapter to convert to IR
54
+ const irRequest = await this.adapter.toIR(request);
55
+ // Execute via backend
56
+ const irResponse = await this.backend.execute(irRequest);
57
+ // Use frontend adapter to convert back to Anthropic format
58
+ const anthropicResponse = await this.adapter.fromIR(irResponse);
59
+ // Return in SDK-style format
60
+ return {
61
+ id: anthropicResponse.id,
62
+ type: 'message',
63
+ role: 'assistant',
64
+ content: anthropicResponse.content,
65
+ model: anthropicResponse.model,
66
+ stop_reason: anthropicResponse.stop_reason,
67
+ stop_sequence: anthropicResponse.stop_sequence ?? null,
68
+ usage: anthropicResponse.usage,
69
+ };
70
+ }
71
+ async *createStream(params) {
72
+ // Convert params to Anthropic request format
73
+ const request = {
74
+ model: params.model,
75
+ messages: params.messages.map((msg) => ({
76
+ role: msg.role,
77
+ content: msg.content,
78
+ })),
79
+ max_tokens: params.max_tokens,
80
+ system: params.system,
81
+ temperature: params.temperature,
82
+ top_p: params.top_p,
83
+ top_k: params.top_k,
84
+ stop_sequences: params.stop_sequences,
85
+ stream: true,
86
+ metadata: params.metadata,
87
+ };
88
+ // Use frontend adapter to convert to IR
89
+ let irRequest = await this.adapter.toIR(request);
90
+ // Add stream mode if configured
91
+ if (this.config.streamMode) {
92
+ irRequest = { ...irRequest, streamMode: this.config.streamMode };
93
+ }
94
+ // Execute streaming via backend
95
+ const irStream = this.backend.executeStream(irRequest);
96
+ // Use frontend adapter to convert stream
97
+ for await (const event of this.adapter.fromIRStream(irStream)) {
98
+ yield event;
99
+ }
100
+ }
101
+ }
102
+ // ============================================================================
103
+ // Models Implementation
104
+ // ============================================================================
105
+ /**
106
+ * Models interface (mimics Anthropic SDK).
107
+ */
108
+ export class Models {
109
+ backend;
110
+ constructor(backend) {
111
+ this.backend = backend;
112
+ }
113
+ /**
114
+ * List available models.
115
+ */
116
+ async list(options) {
117
+ if (!this.backend.listModels) {
118
+ return { data: [], has_more: false, first_id: null, last_id: null };
119
+ }
120
+ const result = await this.backend.listModels(options);
121
+ const data = result.models.map((model) => ({
122
+ id: model.id,
123
+ display_name: model.name,
124
+ created_at: model.created || new Date(result.fetchedAt).toISOString(),
125
+ }));
126
+ const firstItem = data[0];
127
+ const lastItem = data[data.length - 1];
128
+ return {
129
+ data,
130
+ has_more: false,
131
+ first_id: firstItem?.id ?? null,
132
+ last_id: lastItem?.id ?? null,
133
+ };
134
+ }
135
+ /**
136
+ * Retrieve information about a specific model.
137
+ */
138
+ async retrieve(modelId) {
139
+ if (!this.backend.listModels) {
140
+ return null;
141
+ }
142
+ const result = await this.backend.listModels();
143
+ const model = result.models.find((m) => m.id === modelId);
144
+ if (!model) {
145
+ return null;
146
+ }
147
+ return {
148
+ id: model.id,
149
+ display_name: model.name,
150
+ created_at: model.created || new Date(result.fetchedAt).toISOString(),
151
+ };
152
+ }
153
+ }
154
+ // ============================================================================
155
+ // Client
156
+ // ============================================================================
157
+ /**
158
+ * Anthropic SDK-compatible client.
159
+ */
160
+ export class AnthropicClient {
161
+ messages;
162
+ models;
163
+ constructor(backend, config = {}) {
164
+ this.messages = new Messages(backend, config);
165
+ this.models = new Models(backend);
166
+ }
167
+ }
168
+ // ============================================================================
169
+ // Factory Function
170
+ // ============================================================================
171
+ /**
172
+ * Create an Anthropic SDK-compatible client using any backend adapter.
173
+ *
174
+ * @example
175
+ * ```typescript
176
+ * import { Anthropic } from 'ai.matey.wrapper/anthropic';
177
+ * import { OpenAIBackendAdapter } from 'ai.matey.backend/openai';
178
+ *
179
+ * const backend = new OpenAIBackendAdapter({ apiKey: 'sk-...' });
180
+ * const client = Anthropic(backend);
181
+ *
182
+ * const message = await client.messages.create({
183
+ * model: 'gpt-4',
184
+ * max_tokens: 1024,
185
+ * messages: [
186
+ * { role: 'user', content: 'Hello!' }
187
+ * ],
188
+ * });
189
+ *
190
+ * console.log(message.content[0].text);
191
+ * ```
192
+ */
193
+ export function Anthropic(backend, config) {
194
+ return new AnthropicClient(backend, config);
195
+ }
196
+ //# sourceMappingURL=anthropic-sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic-sdk.js","sourceRoot":"","sources":["../../src/anthropic-sdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,OAAO,EACL,wBAAwB,GAIzB,MAAM,mBAAmB,CAAC;AAgG3B,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,QAAQ;IACX,OAAO,CAAiB;IACxB,MAAM,CAAqB;IAC3B,OAAO,CAA2B;IAE1C,YAAY,OAAuB,EAAE,SAA6B,EAAE;QAClE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,wBAAwB,EAAE,CAAC;IAChD,CAAC;IAcD;;OAEG;IACH,MAAM,CACJ,MAA8B;QAE9B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,MAA8B;QAE9B,6CAA6C;QAC7C,MAAM,OAAO,GAAqB;YAChC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACtC,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,GAAG,CAAC,OAAO;aACrB,CAAC,CAAC;YACH,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;QAEF,wCAAwC;QACxC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEnD,sBAAsB;QACtB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEzD,2DAA2D;QAC3D,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEhE,6BAA6B;QAC7B,OAAO;YACL,EAAE,EAAE,iBAAiB,CAAC,EAAE;YACxB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,iBAAiB,CAAC,OAAO;YAClC,KAAK,EAAE,iBAAiB,CAAC,KAAK;YAC9B,WAAW,EAAE,iBAAiB,CAAC,WAAW;YAC1C,aAAa,EAAE,iBAAiB,CAAC,aAAa,IAAI,IAAI;YACtD,KAAK,EAAE,iBAAiB,CAAC,KAAK;SAC/B,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,CAAC,YAAY,CAAC,MAA8B;QACxD,6CAA6C;QAC7C,MAAM,OAAO,GAAqB;YAChC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACtC,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,GAAG,CAAC,OAAO;aACrB,CAAC,CAAC;YACH,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;QAEF,wCAAwC;QACxC,IAAI,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjD,gCAAgC;QAChC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC3B,SAAS,GAAG,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACnE,CAAC;QAED,gCAAgC;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAEvD,yCAAyC;QACzC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAED,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,MAAM;IACT,OAAO,CAAiB;IAEhC,YAAY,OAAuB;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,OAA2B;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC7B,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACtE,CAAC;QAED,MAAM,MAAM,GAAqB,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAExE,MAAM,IAAI,GAAqB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC;YACpE,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,YAAY,EAAE,KAAK,CAAC,IAAI;YACxB,UAAU,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;SACtE,CAAC,CAAC,CAAC;QAEJ,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEvC,OAAO;YACL,IAAI;YACJ,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,IAAI;YAC/B,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,IAAI;SAC9B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAqB,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACjE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QACnE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,YAAY,EAAE,KAAK,CAAC,IAAI;YACxB,UAAU,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;SACtE,CAAC;IACJ,CAAC;CACF;AAED,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,eAAe;IACjB,QAAQ,CAAW;IACnB,MAAM,CAAS;IAExB,YAAY,OAAuB,EAAE,SAA6B,EAAE;QAClE,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;CACF;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,SAAS,CAAC,OAAuB,EAAE,MAA2B;IAC5E,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,161 @@
1
+ /**
2
+ * Anymethod Wrapper
3
+ *
4
+ * Natural language method interface using Proxy pattern.
5
+ *
6
+ * @module
7
+ */
8
+ import { trimHistory } from 'ai.matey.utils';
9
+ // ============================================================================
10
+ // Utility Functions
11
+ // ============================================================================
12
+ export function formatMethodPrompt(methodName, args) {
13
+ const naturalName = methodName
14
+ .replace(/([A-Z])/g, ' $1')
15
+ .toLowerCase()
16
+ .trim();
17
+ const argsString = args.map((arg) => String(arg)).join(' ');
18
+ if (argsString) {
19
+ return `${naturalName}: ${argsString}`;
20
+ }
21
+ return naturalName;
22
+ }
23
+ // ============================================================================
24
+ // Anymethod Implementation
25
+ // ============================================================================
26
+ export function createAnymethod(backend, config = {}) {
27
+ const { model, temperature, topK, topP, maxTokens = 1024, maxHistorySize = 0, initialPrompts = [], autoParseJSON = true, methodPromptFormatter = formatMethodPrompt, } = config;
28
+ let conversationHistory = initialPrompts.map((p) => ({
29
+ role: p.role,
30
+ content: p.content,
31
+ }));
32
+ let _tokensSoFar = 0;
33
+ async function executePrompt(input) {
34
+ const userMessage = { role: 'user', content: input };
35
+ conversationHistory.push(userMessage);
36
+ const request = {
37
+ messages: [...conversationHistory],
38
+ parameters: { model, temperature, topK, topP, maxTokens },
39
+ stream: false,
40
+ metadata: {
41
+ requestId: crypto.randomUUID(),
42
+ timestamp: Date.now(),
43
+ provenance: { frontend: 'anymethod-wrapper' },
44
+ },
45
+ };
46
+ const response = await backend.execute(request);
47
+ conversationHistory.push(response.message);
48
+ if (maxHistorySize !== undefined && maxHistorySize !== -1) {
49
+ conversationHistory = trimHistory(conversationHistory, maxHistorySize, 'smart');
50
+ }
51
+ if (response.usage) {
52
+ _tokensSoFar = response.usage.totalTokens;
53
+ }
54
+ else {
55
+ _tokensSoFar += Math.ceil(input.length / 4);
56
+ const responseText = typeof response.message.content === 'string'
57
+ ? response.message.content
58
+ : response.message.content.map((c) => (c.type === 'text' ? c.text : '')).join('');
59
+ _tokensSoFar += Math.ceil(responseText.length / 4);
60
+ }
61
+ return typeof response.message.content === 'string'
62
+ ? response.message.content
63
+ : response.message.content.map((c) => (c.type === 'text' ? c.text : '')).join('');
64
+ }
65
+ async function* executeStreamingPrompt(input) {
66
+ const userMessage = { role: 'user', content: input };
67
+ conversationHistory.push(userMessage);
68
+ const request = {
69
+ messages: [...conversationHistory],
70
+ parameters: { model, temperature, topK, topP, maxTokens },
71
+ stream: true,
72
+ metadata: {
73
+ requestId: crypto.randomUUID(),
74
+ timestamp: Date.now(),
75
+ provenance: { frontend: 'anymethod-wrapper' },
76
+ },
77
+ };
78
+ let fullContent = '';
79
+ const stream = backend.executeStream(request);
80
+ for await (const chunk of stream) {
81
+ if (chunk.type === 'content') {
82
+ fullContent += chunk.delta;
83
+ yield chunk.delta;
84
+ }
85
+ else if (chunk.type === 'done') {
86
+ if (chunk.message) {
87
+ conversationHistory.push(chunk.message);
88
+ }
89
+ if (maxHistorySize !== undefined && maxHistorySize !== -1) {
90
+ conversationHistory = trimHistory(conversationHistory, maxHistorySize, 'smart');
91
+ }
92
+ if (chunk.usage) {
93
+ _tokensSoFar = chunk.usage.totalTokens;
94
+ }
95
+ else {
96
+ _tokensSoFar += Math.ceil(input.length / 4);
97
+ _tokensSoFar += Math.ceil(fullContent.length / 4);
98
+ }
99
+ }
100
+ else if (chunk.type === 'error') {
101
+ throw new Error(chunk.error.message);
102
+ }
103
+ }
104
+ }
105
+ const asyncProxy = new Proxy({}, {
106
+ get(_target, prop) {
107
+ return async (...args) => {
108
+ const prompt = methodPromptFormatter(prop, args);
109
+ const result = await executePrompt(prompt);
110
+ if (autoParseJSON) {
111
+ try {
112
+ return JSON.parse(result);
113
+ }
114
+ catch {
115
+ return result;
116
+ }
117
+ }
118
+ return result;
119
+ };
120
+ },
121
+ });
122
+ const streamProxy = new Proxy({}, {
123
+ get(_target, prop) {
124
+ return async function* (...args) {
125
+ const prompt = methodPromptFormatter(prop, args);
126
+ yield* executeStreamingPrompt(prompt);
127
+ };
128
+ },
129
+ });
130
+ const anymethod = {
131
+ $: asyncProxy,
132
+ $$: streamProxy,
133
+ prompt: (input) => executePrompt(input),
134
+ promptStreaming: (input) => executeStreamingPrompt(input),
135
+ getHistory: () => [...conversationHistory],
136
+ clearHistory: () => {
137
+ conversationHistory = initialPrompts.map((p) => ({ role: p.role, content: p.content }));
138
+ _tokensSoFar = 0;
139
+ },
140
+ setHistory: (history) => {
141
+ conversationHistory = [...history];
142
+ },
143
+ get tokensSoFar() {
144
+ return _tokensSoFar;
145
+ },
146
+ get maxTokens() {
147
+ return maxTokens;
148
+ },
149
+ get tokensLeft() {
150
+ return Math.max(0, maxTokens - _tokensSoFar);
151
+ },
152
+ };
153
+ return anymethod;
154
+ }
155
+ export function createStatelessAnymethod(backend, config = {}) {
156
+ return createAnymethod(backend, { ...config, maxHistorySize: 0 });
157
+ }
158
+ export function createConversationalAnymethod(backend, maxHistorySize = 10, config = {}) {
159
+ return createAnymethod(backend, { ...config, maxHistorySize });
160
+ }
161
+ //# sourceMappingURL=anymethod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anymethod.js","sourceRoot":"","sources":["../../src/anymethod.ts"],"names":[],"mappings":"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"}