@probeo/anymodel 0.3.0 → 0.4.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 (115) hide show
  1. package/README.md +5 -8
  2. package/dist/cli.cjs +1016 -110
  3. package/dist/cli.cjs.map +1 -1
  4. package/dist/cli.d.ts +0 -2
  5. package/dist/cli.js +2972 -30
  6. package/dist/cli.js.map +1 -1
  7. package/dist/index.cjs +1037 -112
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.d.cts +106 -22
  10. package/dist/index.d.ts +632 -14
  11. package/dist/index.js +2969 -15
  12. package/dist/index.js.map +1 -1
  13. package/package.json +1 -1
  14. package/dist/batch/index.d.ts +0 -4
  15. package/dist/batch/index.d.ts.map +0 -1
  16. package/dist/batch/index.js +0 -3
  17. package/dist/batch/index.js.map +0 -1
  18. package/dist/batch/manager.d.ts +0 -72
  19. package/dist/batch/manager.d.ts.map +0 -1
  20. package/dist/batch/manager.js +0 -328
  21. package/dist/batch/manager.js.map +0 -1
  22. package/dist/batch/store.d.ts +0 -54
  23. package/dist/batch/store.d.ts.map +0 -1
  24. package/dist/batch/store.js +0 -109
  25. package/dist/batch/store.js.map +0 -1
  26. package/dist/cli.d.ts.map +0 -1
  27. package/dist/client.d.ts +0 -42
  28. package/dist/client.d.ts.map +0 -1
  29. package/dist/client.js +0 -181
  30. package/dist/client.js.map +0 -1
  31. package/dist/config.d.ts +0 -6
  32. package/dist/config.d.ts.map +0 -1
  33. package/dist/config.js +0 -120
  34. package/dist/config.js.map +0 -1
  35. package/dist/index.d.ts.map +0 -1
  36. package/dist/providers/adapter.d.ts +0 -33
  37. package/dist/providers/adapter.d.ts.map +0 -1
  38. package/dist/providers/adapter.js +0 -2
  39. package/dist/providers/adapter.js.map +0 -1
  40. package/dist/providers/anthropic-batch.d.ts +0 -3
  41. package/dist/providers/anthropic-batch.d.ts.map +0 -1
  42. package/dist/providers/anthropic-batch.js +0 -228
  43. package/dist/providers/anthropic-batch.js.map +0 -1
  44. package/dist/providers/anthropic.d.ts +0 -3
  45. package/dist/providers/anthropic.d.ts.map +0 -1
  46. package/dist/providers/anthropic.js +0 -358
  47. package/dist/providers/anthropic.js.map +0 -1
  48. package/dist/providers/custom.d.ts +0 -8
  49. package/dist/providers/custom.d.ts.map +0 -1
  50. package/dist/providers/custom.js +0 -61
  51. package/dist/providers/custom.js.map +0 -1
  52. package/dist/providers/google.d.ts +0 -3
  53. package/dist/providers/google.d.ts.map +0 -1
  54. package/dist/providers/google.js +0 -331
  55. package/dist/providers/google.js.map +0 -1
  56. package/dist/providers/index.d.ts +0 -6
  57. package/dist/providers/index.d.ts.map +0 -1
  58. package/dist/providers/index.js +0 -5
  59. package/dist/providers/index.js.map +0 -1
  60. package/dist/providers/openai-batch.d.ts +0 -3
  61. package/dist/providers/openai-batch.d.ts.map +0 -1
  62. package/dist/providers/openai-batch.js +0 -208
  63. package/dist/providers/openai-batch.js.map +0 -1
  64. package/dist/providers/openai.d.ts +0 -3
  65. package/dist/providers/openai.d.ts.map +0 -1
  66. package/dist/providers/openai.js +0 -221
  67. package/dist/providers/openai.js.map +0 -1
  68. package/dist/providers/registry.d.ts +0 -10
  69. package/dist/providers/registry.d.ts.map +0 -1
  70. package/dist/providers/registry.js +0 -27
  71. package/dist/providers/registry.js.map +0 -1
  72. package/dist/router.d.ts +0 -29
  73. package/dist/router.d.ts.map +0 -1
  74. package/dist/router.js +0 -212
  75. package/dist/router.js.map +0 -1
  76. package/dist/server.d.ts +0 -10
  77. package/dist/server.d.ts.map +0 -1
  78. package/dist/server.js +0 -149
  79. package/dist/server.js.map +0 -1
  80. package/dist/types.d.ts +0 -283
  81. package/dist/types.d.ts.map +0 -1
  82. package/dist/types.js +0 -21
  83. package/dist/types.js.map +0 -1
  84. package/dist/utils/fs-io.d.ts +0 -40
  85. package/dist/utils/fs-io.d.ts.map +0 -1
  86. package/dist/utils/fs-io.js +0 -203
  87. package/dist/utils/fs-io.js.map +0 -1
  88. package/dist/utils/generation-stats.d.ts +0 -25
  89. package/dist/utils/generation-stats.d.ts.map +0 -1
  90. package/dist/utils/generation-stats.js +0 -46
  91. package/dist/utils/generation-stats.js.map +0 -1
  92. package/dist/utils/id.d.ts +0 -2
  93. package/dist/utils/id.d.ts.map +0 -1
  94. package/dist/utils/id.js +0 -6
  95. package/dist/utils/id.js.map +0 -1
  96. package/dist/utils/model-parser.d.ts +0 -6
  97. package/dist/utils/model-parser.d.ts.map +0 -1
  98. package/dist/utils/model-parser.js +0 -21
  99. package/dist/utils/model-parser.js.map +0 -1
  100. package/dist/utils/rate-limiter.d.ts +0 -36
  101. package/dist/utils/rate-limiter.d.ts.map +0 -1
  102. package/dist/utils/rate-limiter.js +0 -80
  103. package/dist/utils/rate-limiter.js.map +0 -1
  104. package/dist/utils/retry.d.ts +0 -7
  105. package/dist/utils/retry.d.ts.map +0 -1
  106. package/dist/utils/retry.js +0 -54
  107. package/dist/utils/retry.js.map +0 -1
  108. package/dist/utils/transforms.d.ts +0 -7
  109. package/dist/utils/transforms.d.ts.map +0 -1
  110. package/dist/utils/transforms.js +0 -66
  111. package/dist/utils/transforms.js.map +0 -1
  112. package/dist/utils/validate.d.ts +0 -3
  113. package/dist/utils/validate.d.ts.map +0 -1
  114. package/dist/utils/validate.js +0 -31
  115. package/dist/utils/validate.js.map +0 -1
@@ -1,72 +0,0 @@
1
- import type { BatchCreateRequest, BatchObject, BatchResults } from '../types.js';
2
- import type { Router } from '../router.js';
3
- import type { BatchAdapter } from '../providers/adapter.js';
4
- export interface BatchPollOptions {
5
- /** Poll interval in ms. Default: 5000 */
6
- interval?: number;
7
- /** Timeout in ms. 0 = indefinite. Default: 0 */
8
- timeout?: number;
9
- /** Progress callback */
10
- onProgress?: (batch: BatchObject) => void;
11
- }
12
- export declare class BatchManager {
13
- private store;
14
- private router;
15
- private concurrencyLimit;
16
- private defaultPollInterval;
17
- private batchAdapters;
18
- constructor(router: Router, options?: {
19
- dir?: string;
20
- concurrency?: number;
21
- pollInterval?: number;
22
- });
23
- /**
24
- * Register a native batch adapter for a provider.
25
- */
26
- registerBatchAdapter(providerName: string, adapter: BatchAdapter): void;
27
- /**
28
- * Check if a provider has native batch support.
29
- */
30
- private getNativeBatchAdapter;
31
- /**
32
- * Create a batch and return immediately (no polling).
33
- */
34
- create(request: BatchCreateRequest): Promise<BatchObject>;
35
- /**
36
- * Create a batch and poll until completion.
37
- */
38
- createAndPoll(request: BatchCreateRequest, options?: BatchPollOptions): Promise<BatchResults>;
39
- /**
40
- * Poll an existing batch until completion.
41
- */
42
- poll(id: string, options?: BatchPollOptions): Promise<BatchResults>;
43
- /**
44
- * Get the current status of a batch.
45
- */
46
- get(id: string): Promise<BatchObject | null>;
47
- /**
48
- * Get results for a completed batch.
49
- */
50
- getResults(id: string): Promise<BatchResults>;
51
- /**
52
- * List all batches.
53
- */
54
- list(): Promise<BatchObject[]>;
55
- /**
56
- * Cancel a batch.
57
- */
58
- cancel(id: string): Promise<BatchObject>;
59
- /**
60
- * Process batch via native provider batch API.
61
- */
62
- private processNativeBatch;
63
- /**
64
- * Sync native batch status from provider.
65
- */
66
- private syncNativeBatchStatus;
67
- /**
68
- * Process batch requests concurrently (fallback path).
69
- */
70
- private processConcurrentBatch;
71
- }
72
- //# sourceMappingURL=manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/batch/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,WAAW,EACX,YAAY,EAIb,MAAM,aAAa,CAAC;AAIrB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CAC3C;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,aAAa,CAAmC;gBAE5C,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;IAOnG;;OAEG;IACH,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAIvE;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAM7B;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;IAkC/D;;OAEG;IACG,aAAa,CACjB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,YAAY,CAAC;IAKxB;;OAEG;IACG,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,YAAY,CAAC;IAkC7E;;OAEG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAIlD;;OAEG;IACG,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA6BnD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAUpC;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA4B9C;;OAEG;YACW,kBAAkB;IAmChC;;OAEG;YACW,qBAAqB;IA6CnC;;OAEG;YACW,sBAAsB;CAiFrC"}
@@ -1,328 +0,0 @@
1
- import { AnyModelError } from '../types.js';
2
- import { generateId } from '../utils/id.js';
3
- import { BatchStore } from './store.js';
4
- export class BatchManager {
5
- store;
6
- router;
7
- concurrencyLimit;
8
- defaultPollInterval;
9
- batchAdapters = new Map();
10
- constructor(router, options) {
11
- this.store = new BatchStore(options?.dir);
12
- this.router = router;
13
- this.concurrencyLimit = options?.concurrency ?? 5;
14
- this.defaultPollInterval = options?.pollInterval ?? 5000;
15
- }
16
- /**
17
- * Register a native batch adapter for a provider.
18
- */
19
- registerBatchAdapter(providerName, adapter) {
20
- this.batchAdapters.set(providerName, adapter);
21
- }
22
- /**
23
- * Check if a provider has native batch support.
24
- */
25
- getNativeBatchAdapter(model) {
26
- const providerName = model.split('/')[0];
27
- const adapter = this.batchAdapters.get(providerName);
28
- return adapter ? { adapter, providerName } : null;
29
- }
30
- /**
31
- * Create a batch and return immediately (no polling).
32
- */
33
- async create(request) {
34
- const id = generateId('batch');
35
- const now = new Date().toISOString();
36
- const providerName = request.model.split('/')[0] || 'unknown';
37
- const native = this.getNativeBatchAdapter(request.model);
38
- const batchMode = native ? 'native' : 'concurrent';
39
- const batch = {
40
- id,
41
- object: 'batch',
42
- status: 'pending',
43
- model: request.model,
44
- provider_name: providerName,
45
- batch_mode: batchMode,
46
- total: request.requests.length,
47
- completed: 0,
48
- failed: 0,
49
- created_at: now,
50
- completed_at: null,
51
- expires_at: null,
52
- };
53
- await this.store.create(batch);
54
- await this.store.saveRequests(id, request.requests);
55
- if (native) {
56
- this.processNativeBatch(id, request, native.adapter).catch(() => { });
57
- }
58
- else {
59
- this.processConcurrentBatch(id, request).catch(() => { });
60
- }
61
- return batch;
62
- }
63
- /**
64
- * Create a batch and poll until completion.
65
- */
66
- async createAndPoll(request, options = {}) {
67
- const batch = await this.create(request);
68
- return this.poll(batch.id, options);
69
- }
70
- /**
71
- * Poll an existing batch until completion.
72
- */
73
- async poll(id, options = {}) {
74
- const interval = options.interval ?? this.defaultPollInterval;
75
- const timeout = options.timeout ?? 0;
76
- const startTime = Date.now();
77
- while (true) {
78
- let batch = await this.store.getMeta(id);
79
- if (!batch) {
80
- throw new AnyModelError(404, `Batch ${id} not found`);
81
- }
82
- // For native batches, sync status from provider
83
- if (batch.batch_mode === 'native' && batch.status === 'processing') {
84
- await this.syncNativeBatchStatus(id);
85
- batch = await this.store.getMeta(id);
86
- if (!batch)
87
- throw new AnyModelError(404, `Batch ${id} not found`);
88
- }
89
- if (options.onProgress) {
90
- options.onProgress(batch);
91
- }
92
- if (batch.status === 'completed' || batch.status === 'failed' || batch.status === 'cancelled') {
93
- return this.getResults(id);
94
- }
95
- if (timeout > 0 && Date.now() - startTime > timeout) {
96
- throw new AnyModelError(408, `Batch ${id} timed out after ${timeout}ms`);
97
- }
98
- await new Promise(resolve => setTimeout(resolve, interval));
99
- }
100
- }
101
- /**
102
- * Get the current status of a batch.
103
- */
104
- async get(id) {
105
- return this.store.getMeta(id);
106
- }
107
- /**
108
- * Get results for a completed batch.
109
- */
110
- async getResults(id) {
111
- const batch = await this.store.getMeta(id);
112
- if (!batch) {
113
- throw new AnyModelError(404, `Batch ${id} not found`);
114
- }
115
- const results = await this.store.getResults(id);
116
- const usage = {
117
- total_prompt_tokens: 0,
118
- total_completion_tokens: 0,
119
- estimated_cost: 0,
120
- };
121
- for (const result of results) {
122
- if (result.response) {
123
- usage.total_prompt_tokens += result.response.usage.prompt_tokens;
124
- usage.total_completion_tokens += result.response.usage.completion_tokens;
125
- }
126
- }
127
- return {
128
- id: batch.id,
129
- status: batch.status,
130
- results,
131
- usage_summary: usage,
132
- };
133
- }
134
- /**
135
- * List all batches.
136
- */
137
- async list() {
138
- const ids = await this.store.listBatches();
139
- const batches = [];
140
- for (const id of ids) {
141
- const meta = await this.store.getMeta(id);
142
- if (meta)
143
- batches.push(meta);
144
- }
145
- return batches;
146
- }
147
- /**
148
- * Cancel a batch.
149
- */
150
- async cancel(id) {
151
- const batch = await this.store.getMeta(id);
152
- if (!batch) {
153
- throw new AnyModelError(404, `Batch ${id} not found`);
154
- }
155
- if (batch.status === 'completed' || batch.status === 'cancelled') {
156
- return batch;
157
- }
158
- // If native batch, cancel at provider too
159
- if (batch.batch_mode === 'native') {
160
- const providerState = await this.store.loadProviderState(id);
161
- const adapter = this.batchAdapters.get(batch.provider_name);
162
- if (adapter && providerState?.providerBatchId) {
163
- try {
164
- await adapter.cancelBatch(providerState.providerBatchId);
165
- }
166
- catch {
167
- // Best-effort cancellation
168
- }
169
- }
170
- }
171
- batch.status = 'cancelled';
172
- batch.completed_at = new Date().toISOString();
173
- await this.store.updateMeta(batch);
174
- return batch;
175
- }
176
- /**
177
- * Process batch via native provider batch API.
178
- */
179
- async processNativeBatch(batchId, request, adapter) {
180
- const batch = await this.store.getMeta(batchId);
181
- if (!batch)
182
- return;
183
- try {
184
- const model = request.model.includes('/')
185
- ? request.model.split('/').slice(1).join('/')
186
- : request.model;
187
- const { providerBatchId, metadata } = await adapter.createBatch(model, request.requests, request.options);
188
- await this.store.saveProviderState(batchId, {
189
- providerBatchId,
190
- providerName: batch.provider_name,
191
- ...metadata,
192
- });
193
- batch.status = 'processing';
194
- await this.store.updateMeta(batch);
195
- }
196
- catch (err) {
197
- batch.status = 'failed';
198
- batch.completed_at = new Date().toISOString();
199
- await this.store.updateMeta(batch);
200
- throw err;
201
- }
202
- }
203
- /**
204
- * Sync native batch status from provider.
205
- */
206
- async syncNativeBatchStatus(batchId) {
207
- const batch = await this.store.getMeta(batchId);
208
- if (!batch)
209
- return;
210
- const providerState = await this.store.loadProviderState(batchId);
211
- if (!providerState?.providerBatchId)
212
- return;
213
- const adapter = this.batchAdapters.get(batch.provider_name);
214
- if (!adapter)
215
- return;
216
- try {
217
- const status = await adapter.pollBatch(providerState.providerBatchId);
218
- batch.total = status.total || batch.total;
219
- batch.completed = status.completed;
220
- batch.failed = status.failed;
221
- if (status.status === 'completed' || status.status === 'failed' || status.status === 'cancelled') {
222
- batch.status = status.status;
223
- batch.completed_at = new Date().toISOString();
224
- if (status.status === 'completed' || status.status === 'failed') {
225
- try {
226
- const results = await adapter.getBatchResults(providerState.providerBatchId);
227
- for (const result of results) {
228
- await this.store.appendResult(batchId, result);
229
- }
230
- batch.completed = results.filter(r => r.status === 'success').length;
231
- batch.failed = results.filter(r => r.status === 'error').length;
232
- }
233
- catch {
234
- if (batch.status !== 'failed') {
235
- batch.status = 'failed';
236
- }
237
- }
238
- }
239
- }
240
- else {
241
- batch.status = 'processing';
242
- }
243
- await this.store.updateMeta(batch);
244
- }
245
- catch {
246
- // Provider API error during poll — don't change status
247
- }
248
- }
249
- /**
250
- * Process batch requests concurrently (fallback path).
251
- */
252
- async processConcurrentBatch(batchId, request) {
253
- const batch = await this.store.getMeta(batchId);
254
- if (!batch)
255
- return;
256
- batch.status = 'processing';
257
- await this.store.updateMeta(batch);
258
- const items = request.requests;
259
- const active = new Set();
260
- const processItem = async (item) => {
261
- const current = await this.store.getMeta(batchId);
262
- if (current?.status === 'cancelled')
263
- return;
264
- const chatRequest = {
265
- model: request.model,
266
- messages: item.messages,
267
- max_tokens: item.max_tokens ?? request.options?.max_tokens,
268
- temperature: item.temperature ?? request.options?.temperature,
269
- top_p: item.top_p ?? request.options?.top_p,
270
- top_k: item.top_k ?? request.options?.top_k,
271
- stop: item.stop ?? request.options?.stop,
272
- response_format: item.response_format ?? request.options?.response_format,
273
- tools: item.tools ?? request.options?.tools,
274
- tool_choice: item.tool_choice ?? request.options?.tool_choice,
275
- };
276
- let result;
277
- try {
278
- const response = await this.router.complete(chatRequest);
279
- result = {
280
- custom_id: item.custom_id,
281
- status: 'success',
282
- response,
283
- error: null,
284
- };
285
- }
286
- catch (err) {
287
- const error = err instanceof AnyModelError ? err : new AnyModelError(500, String(err));
288
- result = {
289
- custom_id: item.custom_id,
290
- status: 'error',
291
- response: null,
292
- error: { code: error.code, message: error.message },
293
- };
294
- }
295
- await this.store.appendResult(batchId, result);
296
- const meta = await this.store.getMeta(batchId);
297
- if (meta) {
298
- if (result.status === 'success') {
299
- meta.completed++;
300
- }
301
- else {
302
- meta.failed++;
303
- }
304
- await this.store.updateMeta(meta);
305
- }
306
- };
307
- for (const item of items) {
308
- const current = await this.store.getMeta(batchId);
309
- if (current?.status === 'cancelled')
310
- break;
311
- if (active.size >= this.concurrencyLimit) {
312
- await Promise.race(active);
313
- }
314
- const promise = processItem(item).then(() => {
315
- active.delete(promise);
316
- });
317
- active.add(promise);
318
- }
319
- await Promise.all(active);
320
- const finalMeta = await this.store.getMeta(batchId);
321
- if (finalMeta && finalMeta.status !== 'cancelled') {
322
- finalMeta.status = finalMeta.failed === finalMeta.total ? 'failed' : 'completed';
323
- finalMeta.completed_at = new Date().toISOString();
324
- await this.store.updateMeta(finalMeta);
325
- }
326
- }
327
- }
328
- //# sourceMappingURL=manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/batch/manager.ts"],"names":[],"mappings":"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"}
@@ -1,54 +0,0 @@
1
- import type { BatchObject, BatchResultItem } from '../types.js';
2
- /**
3
- * Disk-based batch persistence store.
4
- * Uses queued, concurrency-limited IO for high-volume operations.
5
- * Structure: {dir}/{batchId}/meta.json, requests.jsonl, results.jsonl, provider.json
6
- */
7
- export declare class BatchStore {
8
- private dir;
9
- private initialized;
10
- constructor(dir?: string);
11
- private init;
12
- private batchDir;
13
- /**
14
- * Create a new batch directory and save initial metadata.
15
- */
16
- create(batch: BatchObject): Promise<void>;
17
- /**
18
- * Update batch metadata (atomic write).
19
- */
20
- updateMeta(batch: BatchObject): Promise<void>;
21
- /**
22
- * Save requests as JSONL.
23
- */
24
- saveRequests(id: string, requests: unknown[]): Promise<void>;
25
- /**
26
- * Append a result to results.jsonl.
27
- */
28
- appendResult(id: string, result: BatchResultItem): Promise<void>;
29
- /**
30
- * Save provider-specific state (e.g., provider batch ID).
31
- */
32
- saveProviderState(id: string, state: Record<string, unknown>): Promise<void>;
33
- /**
34
- * Load provider state.
35
- */
36
- loadProviderState(id: string): Promise<Record<string, unknown> | null>;
37
- /**
38
- * Get batch metadata.
39
- */
40
- getMeta(id: string): Promise<BatchObject | null>;
41
- /**
42
- * Get all results for a batch.
43
- */
44
- getResults(id: string): Promise<BatchResultItem[]>;
45
- /**
46
- * List all batch IDs.
47
- */
48
- listBatches(): Promise<string[]>;
49
- /**
50
- * Check if a batch exists.
51
- */
52
- exists(id: string): Promise<boolean>;
53
- }
54
- //# sourceMappingURL=store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/batch/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAiBhE;;;;GAIG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,WAAW,CAAS;gBAEhB,GAAG,CAAC,EAAE,MAAM;YAIV,IAAI;IAMlB,OAAO,CAAC,QAAQ;IAIhB;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnD;;OAEG;IACG,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlE;;OAEG;IACG,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAOtE;;OAEG;IACG,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlF;;OAEG;IACG,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAM5E;;OAEG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAMtD;;OAEG;IACG,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAWxD;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAUtC;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAG3C"}
@@ -1,109 +0,0 @@
1
- import { ensureDir, readFileQueued, readJsonQueued, readDirQueued, writeFileQueued, writeFileFlushedQueued, appendFileQueued, pathExistsQueued, fileExistsQueued, joinPath, resolvePath, } from '../utils/fs-io.js';
2
- const DEFAULT_BATCH_DIR = joinPath(process.cwd(), '.anymodel', 'batches');
3
- /**
4
- * Disk-based batch persistence store.
5
- * Uses queued, concurrency-limited IO for high-volume operations.
6
- * Structure: {dir}/{batchId}/meta.json, requests.jsonl, results.jsonl, provider.json
7
- */
8
- export class BatchStore {
9
- dir;
10
- initialized = false;
11
- constructor(dir) {
12
- this.dir = resolvePath(dir || DEFAULT_BATCH_DIR);
13
- }
14
- async init() {
15
- if (this.initialized)
16
- return;
17
- await ensureDir(this.dir);
18
- this.initialized = true;
19
- }
20
- batchDir(id) {
21
- return joinPath(this.dir, id);
22
- }
23
- /**
24
- * Create a new batch directory and save initial metadata.
25
- */
26
- async create(batch) {
27
- await this.init();
28
- const dir = this.batchDir(batch.id);
29
- await ensureDir(dir);
30
- await writeFileFlushedQueued(joinPath(dir, 'meta.json'), JSON.stringify(batch, null, 2));
31
- }
32
- /**
33
- * Update batch metadata (atomic write).
34
- */
35
- async updateMeta(batch) {
36
- await writeFileFlushedQueued(joinPath(this.batchDir(batch.id), 'meta.json'), JSON.stringify(batch, null, 2));
37
- }
38
- /**
39
- * Save requests as JSONL.
40
- */
41
- async saveRequests(id, requests) {
42
- const lines = requests.map(r => JSON.stringify(r)).join('\n') + '\n';
43
- await writeFileQueued(joinPath(this.batchDir(id), 'requests.jsonl'), lines);
44
- }
45
- /**
46
- * Append a result to results.jsonl.
47
- */
48
- async appendResult(id, result) {
49
- await appendFileQueued(joinPath(this.batchDir(id), 'results.jsonl'), JSON.stringify(result) + '\n');
50
- }
51
- /**
52
- * Save provider-specific state (e.g., provider batch ID).
53
- */
54
- async saveProviderState(id, state) {
55
- await writeFileFlushedQueued(joinPath(this.batchDir(id), 'provider.json'), JSON.stringify(state, null, 2));
56
- }
57
- /**
58
- * Load provider state.
59
- */
60
- async loadProviderState(id) {
61
- const p = joinPath(this.batchDir(id), 'provider.json');
62
- if (!(await fileExistsQueued(p)))
63
- return null;
64
- return readJsonQueued(p);
65
- }
66
- /**
67
- * Get batch metadata.
68
- */
69
- async getMeta(id) {
70
- const p = joinPath(this.batchDir(id), 'meta.json');
71
- if (!(await fileExistsQueued(p)))
72
- return null;
73
- return readJsonQueued(p);
74
- }
75
- /**
76
- * Get all results for a batch.
77
- */
78
- async getResults(id) {
79
- const p = joinPath(this.batchDir(id), 'results.jsonl');
80
- if (!(await fileExistsQueued(p)))
81
- return [];
82
- const raw = (await readFileQueued(p, 'utf8'));
83
- return raw
84
- .trim()
85
- .split('\n')
86
- .filter(Boolean)
87
- .map(line => JSON.parse(line));
88
- }
89
- /**
90
- * List all batch IDs.
91
- */
92
- async listBatches() {
93
- await this.init();
94
- if (!(await pathExistsQueued(this.dir)))
95
- return [];
96
- const entries = await readDirQueued(this.dir);
97
- return entries
98
- .filter(d => d.isDirectory())
99
- .map(d => d.name)
100
- .sort();
101
- }
102
- /**
103
- * Check if a batch exists.
104
- */
105
- async exists(id) {
106
- return fileExistsQueued(joinPath(this.batchDir(id), 'meta.json'));
107
- }
108
- }
109
- //# sourceMappingURL=store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/batch/store.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/client.d.ts DELETED
@@ -1,42 +0,0 @@
1
- import type { AnyModelConfig, ChatCompletionRequest, ChatCompletion, ChatCompletionChunk, ModelInfo, GenerationStats, BatchCreateRequest, BatchObject, BatchResults } from './types.js';
2
- import { ProviderRegistry } from './providers/registry.js';
3
- import { type BatchPollOptions } from './batch/manager.js';
4
- export declare class AnyModel {
5
- private registry;
6
- private router;
7
- private config;
8
- private modelCache;
9
- private statsStore;
10
- private batchManager;
11
- readonly chat: {
12
- completions: {
13
- create: (request: ChatCompletionRequest) => Promise<ChatCompletion | AsyncIterable<ChatCompletionChunk>>;
14
- };
15
- };
16
- readonly models: {
17
- list: (opts?: {
18
- provider?: string;
19
- }) => Promise<ModelInfo[]>;
20
- refresh: () => Promise<ModelInfo[]>;
21
- };
22
- readonly generation: {
23
- get: (id: string) => GenerationStats | undefined;
24
- list: (limit?: number) => GenerationStats[];
25
- };
26
- readonly batches: {
27
- create: (request: BatchCreateRequest) => Promise<BatchObject>;
28
- createAndPoll: (request: BatchCreateRequest, options?: BatchPollOptions) => Promise<BatchResults>;
29
- poll: (id: string, options?: BatchPollOptions) => Promise<BatchResults>;
30
- get: (id: string) => Promise<BatchObject | null>;
31
- list: () => Promise<BatchObject[]>;
32
- cancel: (id: string) => Promise<BatchObject>;
33
- results: (id: string) => Promise<BatchResults>;
34
- };
35
- constructor(config?: AnyModelConfig);
36
- private registerProviders;
37
- private registerBatchAdapters;
38
- private applyDefaults;
39
- private fetchModels;
40
- getRegistry(): ProviderRegistry;
41
- }
42
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAQ3D,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAIzE,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,YAAY,CAAgB;IAEpC,SAAgB,IAAI,EAAE;QACpB,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,OAAO,CAAC,cAAc,GAAG,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC;SAC1G,CAAC;KACH,CAAC;IAEF,SAAgB,MAAM,EAAE;QACtB,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7D,OAAO,EAAE,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;KACrC,CAAC;IAEF,SAAgB,UAAU,EAAE;QAC1B,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,eAAe,GAAG,SAAS,CAAC;QACjD,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,eAAe,EAAE,CAAC;KAC7C,CAAC;IAEF,SAAgB,OAAO,EAAE;QACvB,MAAM,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;QAC9D,aAAa,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;QAClG,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;QACxE,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;QACjD,IAAI,EAAE,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACnC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7C,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;KAChD,CAAC;gBAEU,MAAM,GAAE,cAAmB;IAuFvC,OAAO,CAAC,iBAAiB;IA4DzB,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,aAAa;YAWP,WAAW;IAazB,WAAW,IAAI,gBAAgB;CAGhC"}