@probeo/anymodel 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -10
- package/dist/cli.cjs +827 -108
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.d.ts +0 -2
- package/dist/cli.js +2785 -30
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +848 -110
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +106 -22
- package/dist/index.d.ts +632 -14
- package/dist/index.js +2782 -15
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/batch/index.d.ts +0 -4
- package/dist/batch/index.d.ts.map +0 -1
- package/dist/batch/index.js +0 -3
- package/dist/batch/index.js.map +0 -1
- package/dist/batch/manager.d.ts +0 -72
- package/dist/batch/manager.d.ts.map +0 -1
- package/dist/batch/manager.js +0 -328
- package/dist/batch/manager.js.map +0 -1
- package/dist/batch/store.d.ts +0 -54
- package/dist/batch/store.d.ts.map +0 -1
- package/dist/batch/store.js +0 -109
- package/dist/batch/store.js.map +0 -1
- package/dist/cli.d.ts.map +0 -1
- package/dist/client.d.ts +0 -42
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -181
- package/dist/client.js.map +0 -1
- package/dist/config.d.ts +0 -6
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -120
- package/dist/config.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/providers/adapter.d.ts +0 -33
- package/dist/providers/adapter.d.ts.map +0 -1
- package/dist/providers/adapter.js +0 -2
- package/dist/providers/adapter.js.map +0 -1
- package/dist/providers/anthropic-batch.d.ts +0 -3
- package/dist/providers/anthropic-batch.d.ts.map +0 -1
- package/dist/providers/anthropic-batch.js +0 -228
- package/dist/providers/anthropic-batch.js.map +0 -1
- package/dist/providers/anthropic.d.ts +0 -3
- package/dist/providers/anthropic.d.ts.map +0 -1
- package/dist/providers/anthropic.js +0 -358
- package/dist/providers/anthropic.js.map +0 -1
- package/dist/providers/custom.d.ts +0 -8
- package/dist/providers/custom.d.ts.map +0 -1
- package/dist/providers/custom.js +0 -61
- package/dist/providers/custom.js.map +0 -1
- package/dist/providers/google.d.ts +0 -3
- package/dist/providers/google.d.ts.map +0 -1
- package/dist/providers/google.js +0 -331
- package/dist/providers/google.js.map +0 -1
- package/dist/providers/index.d.ts +0 -6
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/providers/index.js +0 -5
- package/dist/providers/index.js.map +0 -1
- package/dist/providers/openai-batch.d.ts +0 -3
- package/dist/providers/openai-batch.d.ts.map +0 -1
- package/dist/providers/openai-batch.js +0 -208
- package/dist/providers/openai-batch.js.map +0 -1
- package/dist/providers/openai.d.ts +0 -3
- package/dist/providers/openai.d.ts.map +0 -1
- package/dist/providers/openai.js +0 -221
- package/dist/providers/openai.js.map +0 -1
- package/dist/providers/registry.d.ts +0 -10
- package/dist/providers/registry.d.ts.map +0 -1
- package/dist/providers/registry.js +0 -27
- package/dist/providers/registry.js.map +0 -1
- package/dist/router.d.ts +0 -29
- package/dist/router.d.ts.map +0 -1
- package/dist/router.js +0 -212
- package/dist/router.js.map +0 -1
- package/dist/server.d.ts +0 -10
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -149
- package/dist/server.js.map +0 -1
- package/dist/types.d.ts +0 -283
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -21
- package/dist/types.js.map +0 -1
- package/dist/utils/fs-io.d.ts +0 -40
- package/dist/utils/fs-io.d.ts.map +0 -1
- package/dist/utils/fs-io.js +0 -203
- package/dist/utils/fs-io.js.map +0 -1
- package/dist/utils/generation-stats.d.ts +0 -25
- package/dist/utils/generation-stats.d.ts.map +0 -1
- package/dist/utils/generation-stats.js +0 -46
- package/dist/utils/generation-stats.js.map +0 -1
- package/dist/utils/id.d.ts +0 -2
- package/dist/utils/id.d.ts.map +0 -1
- package/dist/utils/id.js +0 -6
- package/dist/utils/id.js.map +0 -1
- package/dist/utils/model-parser.d.ts +0 -6
- package/dist/utils/model-parser.d.ts.map +0 -1
- package/dist/utils/model-parser.js +0 -21
- package/dist/utils/model-parser.js.map +0 -1
- package/dist/utils/rate-limiter.d.ts +0 -36
- package/dist/utils/rate-limiter.d.ts.map +0 -1
- package/dist/utils/rate-limiter.js +0 -80
- package/dist/utils/rate-limiter.js.map +0 -1
- package/dist/utils/retry.d.ts +0 -7
- package/dist/utils/retry.d.ts.map +0 -1
- package/dist/utils/retry.js +0 -54
- package/dist/utils/retry.js.map +0 -1
- package/dist/utils/transforms.d.ts +0 -7
- package/dist/utils/transforms.d.ts.map +0 -1
- package/dist/utils/transforms.js +0 -66
- package/dist/utils/transforms.js.map +0 -1
- package/dist/utils/validate.d.ts +0 -3
- package/dist/utils/validate.d.ts.map +0 -1
- package/dist/utils/validate.js +0 -31
- package/dist/utils/validate.js.map +0 -1
package/dist/batch/manager.js
DELETED
|
@@ -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":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAaxC,MAAM,OAAO,YAAY;IACf,KAAK,CAAa;IAClB,MAAM,CAAS;IACf,gBAAgB,CAAS;IACzB,mBAAmB,CAAS;IAC5B,aAAa,GAAG,IAAI,GAAG,EAAwB,CAAC;IAExD,YAAY,MAAc,EAAE,OAAuE;QACjG,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,gBAAgB,GAAG,OAAO,EAAE,WAAW,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,mBAAmB,GAAG,OAAO,EAAE,YAAY,IAAI,IAAI,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,YAAoB,EAAE,OAAqB;QAC9D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,KAAa;QACzC,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,OAA2B;QACtC,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,QAAiB,CAAC,CAAC,CAAC,YAAqB,CAAC;QAErE,MAAM,KAAK,GAAgB;YACzB,EAAE;YACF,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,aAAa,EAAE,YAAY;YAC3B,UAAU,EAAE,SAAS;YACrB,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;YAC9B,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,CAAC;YACT,UAAU,EAAE,GAAG;YACf,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,IAAI;SACjB,CAAC;QAEF,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEpD,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,sBAAsB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,OAA2B,EAC3B,UAA4B,EAAE;QAE9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,EAAU,EAAE,UAA4B,EAAE;QACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,mBAAmB,CAAC;QAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YACxD,CAAC;YAED,gDAAgD;YAChD,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;gBACnE,MAAM,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;gBACrC,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACrC,IAAI,CAAC,KAAK;oBAAE,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YACpE,CAAC;YAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBAC9F,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC;YAED,IAAI,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,EAAE,CAAC;gBACpD,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,oBAAoB,OAAO,IAAI,CAAC,CAAC;YAC3E,CAAC;YAED,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,EAAU;QACzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAEhD,MAAM,KAAK,GAAsB;YAC/B,mBAAmB,EAAE,CAAC;YACtB,uBAAuB,EAAE,CAAC;YAC1B,cAAc,EAAE,CAAC;SAClB,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,KAAK,CAAC,mBAAmB,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC;gBACjE,KAAK,CAAC,uBAAuB,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC;YAC3E,CAAC;QACH,CAAC;QAED,OAAO;YACL,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO;YACP,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1C,IAAI,IAAI;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACjE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,0CAA0C;QAC1C,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC5D,IAAI,OAAO,IAAI,aAAa,EAAE,eAAe,EAAE,CAAC;gBAC9C,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,eAAyB,CAAC,CAAC;gBACrE,CAAC;gBAAC,MAAM,CAAC;oBACP,2BAA2B;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC;QAC3B,KAAK,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAC9B,OAAe,EACf,OAA2B,EAC3B,OAAqB;QAErB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACvC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC7C,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;YAElB,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,MAAM,OAAO,CAAC,WAAW,CAC7D,KAAK,EACL,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,OAA8C,CACvD,CAAC;YAEF,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE;gBAC1C,eAAe;gBACf,YAAY,EAAE,KAAK,CAAC,aAAa;gBACjC,GAAG,QAAQ;aACZ,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC;YAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;YACxB,KAAK,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC9C,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,qBAAqB,CAAC,OAAe;QACjD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,aAAa,EAAE,eAAe;YAAE,OAAO;QAE5C,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,eAAyB,CAAC,CAAC;YAEhF,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;YAC1C,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YACnC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAE7B,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACjG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC7B,KAAK,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAE9C,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAChE,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,eAAyB,CAAC,CAAC;wBACvF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;4BAC7B,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;wBACjD,CAAC;wBACD,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;wBACrE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;oBAClE,CAAC;oBAAC,MAAM,CAAC;wBACP,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;4BAC9B,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;wBAC1B,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC;YAC9B,CAAC;YAED,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,uDAAuD;QACzD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,sBAAsB,CAAC,OAAe,EAAE,OAA2B;QAC/E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC;QAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEnC,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAC;QAExC,MAAM,WAAW,GAAG,KAAK,EAAE,IAAqB,EAAiB,EAAE;YACjE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,OAAO,EAAE,MAAM,KAAK,WAAW;gBAAE,OAAO;YAE5C,MAAM,WAAW,GAA0B;gBACzC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,UAAU;gBAC1D,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,WAAW;gBAC7D,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK;gBAC3C,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK;gBAC3C,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI;gBACxC,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,OAAO,CAAC,OAAO,EAAE,eAAe;gBACzE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,KAAK;gBAC3C,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,WAAW;aAC9D,CAAC;YAEF,IAAI,MAAuB,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBACzD,MAAM,GAAG;oBACP,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,MAAM,EAAE,SAAS;oBACjB,QAAQ;oBACR,KAAK,EAAE,IAAI;iBACZ,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,GAAG,YAAY,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvF,MAAM,GAAG;oBACP,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,MAAM,EAAE,OAAO;oBACf,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;iBACpD,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAE/C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAChC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,CAAC;gBACD,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,OAAO,EAAE,MAAM,KAAK,WAAW;gBAAE,MAAM;YAE3C,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACzC,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;YAED,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC1C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE1B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClD,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC;YACjF,SAAS,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAClD,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;CACF"}
|
package/dist/batch/store.d.ts
DELETED
|
@@ -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"}
|
package/dist/batch/store.js
DELETED
|
@@ -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
|
package/dist/batch/store.js.map
DELETED
|
@@ -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
|
package/dist/client.d.ts.map
DELETED
|
@@ -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"}
|