@probeo/anymodel 0.2.0 → 0.3.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 (114) hide show
  1. package/README.md +92 -6
  2. package/dist/batch/index.d.ts +4 -0
  3. package/dist/batch/index.d.ts.map +1 -0
  4. package/dist/batch/index.js +3 -0
  5. package/dist/batch/index.js.map +1 -0
  6. package/dist/batch/manager.d.ts +72 -0
  7. package/dist/batch/manager.d.ts.map +1 -0
  8. package/dist/batch/manager.js +328 -0
  9. package/dist/batch/manager.js.map +1 -0
  10. package/dist/batch/store.d.ts +54 -0
  11. package/dist/batch/store.d.ts.map +1 -0
  12. package/dist/batch/store.js +109 -0
  13. package/dist/batch/store.js.map +1 -0
  14. package/dist/cli.cjs +4 -28
  15. package/dist/cli.cjs.map +1 -1
  16. package/dist/cli.d.ts +2 -0
  17. package/dist/cli.d.ts.map +1 -0
  18. package/dist/cli.js +28 -2110
  19. package/dist/cli.js.map +1 -1
  20. package/dist/client.d.ts +42 -0
  21. package/dist/client.d.ts.map +1 -0
  22. package/dist/client.js +181 -0
  23. package/dist/client.js.map +1 -0
  24. package/dist/config.d.ts +6 -0
  25. package/dist/config.d.ts.map +1 -0
  26. package/dist/config.js +120 -0
  27. package/dist/config.js.map +1 -0
  28. package/dist/index.cjs +4 -28
  29. package/dist/index.cjs.map +1 -1
  30. package/dist/index.d.ts +14 -548
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +15 -2089
  33. package/dist/index.js.map +1 -1
  34. package/dist/providers/adapter.d.ts +33 -0
  35. package/dist/providers/adapter.d.ts.map +1 -0
  36. package/dist/providers/adapter.js +2 -0
  37. package/dist/providers/adapter.js.map +1 -0
  38. package/dist/providers/anthropic-batch.d.ts +3 -0
  39. package/dist/providers/anthropic-batch.d.ts.map +1 -0
  40. package/dist/providers/anthropic-batch.js +228 -0
  41. package/dist/providers/anthropic-batch.js.map +1 -0
  42. package/dist/providers/anthropic.d.ts +3 -0
  43. package/dist/providers/anthropic.d.ts.map +1 -0
  44. package/dist/providers/anthropic.js +358 -0
  45. package/dist/providers/anthropic.js.map +1 -0
  46. package/dist/providers/custom.d.ts +8 -0
  47. package/dist/providers/custom.d.ts.map +1 -0
  48. package/dist/providers/custom.js +61 -0
  49. package/dist/providers/custom.js.map +1 -0
  50. package/dist/providers/google.d.ts +3 -0
  51. package/dist/providers/google.d.ts.map +1 -0
  52. package/dist/providers/google.js +331 -0
  53. package/dist/providers/google.js.map +1 -0
  54. package/dist/providers/index.d.ts +6 -0
  55. package/dist/providers/index.d.ts.map +1 -0
  56. package/dist/providers/index.js +5 -0
  57. package/dist/providers/index.js.map +1 -0
  58. package/dist/providers/openai-batch.d.ts +3 -0
  59. package/dist/providers/openai-batch.d.ts.map +1 -0
  60. package/dist/providers/openai-batch.js +208 -0
  61. package/dist/providers/openai-batch.js.map +1 -0
  62. package/dist/providers/openai.d.ts +3 -0
  63. package/dist/providers/openai.d.ts.map +1 -0
  64. package/dist/providers/openai.js +221 -0
  65. package/dist/providers/openai.js.map +1 -0
  66. package/dist/providers/registry.d.ts +10 -0
  67. package/dist/providers/registry.d.ts.map +1 -0
  68. package/dist/providers/registry.js +27 -0
  69. package/dist/providers/registry.js.map +1 -0
  70. package/dist/router.d.ts +29 -0
  71. package/dist/router.d.ts.map +1 -0
  72. package/dist/router.js +212 -0
  73. package/dist/router.js.map +1 -0
  74. package/dist/server.d.ts +10 -0
  75. package/dist/server.d.ts.map +1 -0
  76. package/dist/server.js +149 -0
  77. package/dist/server.js.map +1 -0
  78. package/dist/types.d.ts +283 -0
  79. package/dist/types.d.ts.map +1 -0
  80. package/dist/types.js +21 -0
  81. package/dist/types.js.map +1 -0
  82. package/dist/utils/fs-io.d.ts +40 -0
  83. package/dist/utils/fs-io.d.ts.map +1 -0
  84. package/dist/utils/fs-io.js +203 -0
  85. package/dist/utils/fs-io.js.map +1 -0
  86. package/dist/utils/generation-stats.d.ts +25 -0
  87. package/dist/utils/generation-stats.d.ts.map +1 -0
  88. package/dist/utils/generation-stats.js +46 -0
  89. package/dist/utils/generation-stats.js.map +1 -0
  90. package/dist/utils/id.d.ts +2 -0
  91. package/dist/utils/id.d.ts.map +1 -0
  92. package/dist/utils/id.js +6 -0
  93. package/dist/utils/id.js.map +1 -0
  94. package/dist/utils/model-parser.d.ts +6 -0
  95. package/dist/utils/model-parser.d.ts.map +1 -0
  96. package/dist/utils/model-parser.js +21 -0
  97. package/dist/utils/model-parser.js.map +1 -0
  98. package/dist/utils/rate-limiter.d.ts +36 -0
  99. package/dist/utils/rate-limiter.d.ts.map +1 -0
  100. package/dist/utils/rate-limiter.js +80 -0
  101. package/dist/utils/rate-limiter.js.map +1 -0
  102. package/dist/utils/retry.d.ts +7 -0
  103. package/dist/utils/retry.d.ts.map +1 -0
  104. package/dist/utils/retry.js +54 -0
  105. package/dist/utils/retry.js.map +1 -0
  106. package/dist/utils/transforms.d.ts +7 -0
  107. package/dist/utils/transforms.d.ts.map +1 -0
  108. package/dist/utils/transforms.js +66 -0
  109. package/dist/utils/transforms.js.map +1 -0
  110. package/dist/utils/validate.d.ts +3 -0
  111. package/dist/utils/validate.d.ts.map +1 -0
  112. package/dist/utils/validate.js +31 -0
  113. package/dist/utils/validate.js.map +1 -0
  114. package/package.json +4 -1
@@ -0,0 +1,109 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/batch/store.ts"],"names":[],"mappings":"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"}
package/dist/cli.cjs CHANGED
@@ -623,19 +623,7 @@ function createOpenAIAdapter(apiKey, baseURL) {
623
623
  async listModels() {
624
624
  const res = await makeRequest("/models", void 0, "GET");
625
625
  const data = await res.json();
626
- return (data.data || []).filter((m) => {
627
- const id = m.id;
628
- if (id.includes("embedding")) return false;
629
- if (id.includes("whisper")) return false;
630
- if (id.includes("tts")) return false;
631
- if (id.includes("dall-e")) return false;
632
- if (id.includes("davinci")) return false;
633
- if (id.includes("babbage")) return false;
634
- if (id.includes("moderation")) return false;
635
- if (id.includes("realtime")) return false;
636
- if (id.startsWith("ft:")) return false;
637
- return id.startsWith("gpt-") || id.startsWith("o1") || id.startsWith("o3") || id.startsWith("o4") || id.startsWith("chatgpt-");
638
- }).map((m) => ({
626
+ return (data.data || []).filter((m) => m.id.startsWith("gpt-") || m.id.startsWith("o1") || m.id.startsWith("o3") || m.id.startsWith("o4") || m.id.startsWith("chatgpt-")).map((m) => ({
639
627
  id: `openai/${m.id}`,
640
628
  name: m.id,
641
629
  created: m.created,
@@ -702,15 +690,10 @@ var SUPPORTED_PARAMS2 = /* @__PURE__ */ new Set([
702
690
  "response_format"
703
691
  ]);
704
692
  var FALLBACK_MODELS = [
705
- // Claude 4.6
706
- { id: "anthropic/claude-opus-4-6", name: "Claude Opus 4.6", created: 0, description: "Most capable model", context_length: 2e5, pricing: { prompt: "0.000015", completion: "0.000075" }, architecture: { modality: "text+image->text", input_modalities: ["text", "image"], output_modalities: ["text"], tokenizer: "claude" }, top_provider: { context_length: 2e5, max_completion_tokens: 32768, is_moderated: false }, supported_parameters: Array.from(SUPPORTED_PARAMS2) },
693
+ { id: "anthropic/claude-opus-4-6", name: "Claude Opus 4.6", created: 0, description: "Most capable model", context_length: 2e5, pricing: { prompt: "0.000005", completion: "0.000025" }, architecture: { modality: "text+image->text", input_modalities: ["text", "image"], output_modalities: ["text"], tokenizer: "claude" }, top_provider: { context_length: 2e5, max_completion_tokens: 32768, is_moderated: false }, supported_parameters: Array.from(SUPPORTED_PARAMS2) },
707
694
  { id: "anthropic/claude-sonnet-4-6", name: "Claude Sonnet 4.6", created: 0, description: "Best balance of speed and capability", context_length: 2e5, pricing: { prompt: "0.000003", completion: "0.000015" }, architecture: { modality: "text+image->text", input_modalities: ["text", "image"], output_modalities: ["text"], tokenizer: "claude" }, top_provider: { context_length: 2e5, max_completion_tokens: 16384, is_moderated: false }, supported_parameters: Array.from(SUPPORTED_PARAMS2) },
708
- // Claude 4.5
709
695
  { id: "anthropic/claude-sonnet-4-5-20251022", name: "Claude Sonnet 4.5", created: 0, description: "Previous generation balanced model", context_length: 2e5, pricing: { prompt: "0.000003", completion: "0.000015" }, architecture: { modality: "text+image->text", input_modalities: ["text", "image"], output_modalities: ["text"], tokenizer: "claude" }, top_provider: { context_length: 2e5, max_completion_tokens: 16384, is_moderated: false }, supported_parameters: Array.from(SUPPORTED_PARAMS2) },
710
- { id: "anthropic/claude-haiku-4-5", name: "Claude Haiku 4.5", created: 0, description: "Fast and compact", context_length: 2e5, pricing: { prompt: "0.000001", completion: "0.000005" }, architecture: { modality: "text+image->text", input_modalities: ["text", "image"], output_modalities: ["text"], tokenizer: "claude" }, top_provider: { context_length: 2e5, max_completion_tokens: 8192, is_moderated: false }, supported_parameters: Array.from(SUPPORTED_PARAMS2) },
711
- // Claude 3.5
712
- { id: "anthropic/claude-3-5-sonnet-20241022", name: "Claude 3.5 Sonnet", created: 0, description: "Legacy balanced model", context_length: 2e5, pricing: { prompt: "0.000003", completion: "0.000015" }, architecture: { modality: "text+image->text", input_modalities: ["text", "image"], output_modalities: ["text"], tokenizer: "claude" }, top_provider: { context_length: 2e5, max_completion_tokens: 8192, is_moderated: false }, supported_parameters: Array.from(SUPPORTED_PARAMS2) },
713
- { id: "anthropic/claude-3-5-haiku-20241022", name: "Claude 3.5 Haiku", created: 0, description: "Legacy fast model", context_length: 2e5, pricing: { prompt: "0.0000008", completion: "0.000004" }, architecture: { modality: "text+image->text", input_modalities: ["text", "image"], output_modalities: ["text"], tokenizer: "claude" }, top_provider: { context_length: 2e5, max_completion_tokens: 8192, is_moderated: false }, supported_parameters: Array.from(SUPPORTED_PARAMS2) }
696
+ { id: "anthropic/claude-haiku-4-5", name: "Claude Haiku 4.5", created: 0, description: "Fastest and most compact", context_length: 2e5, pricing: { prompt: "0.000001", completion: "0.000005" }, architecture: { modality: "text+image->text", input_modalities: ["text", "image"], output_modalities: ["text"], tokenizer: "claude" }, top_provider: { context_length: 2e5, max_completion_tokens: 8192, is_moderated: false }, supported_parameters: Array.from(SUPPORTED_PARAMS2) }
714
697
  ];
715
698
  function createAnthropicAdapter(apiKey) {
716
699
  async function makeRequest(path, body, stream = false) {
@@ -1042,15 +1025,8 @@ var SUPPORTED_PARAMS3 = /* @__PURE__ */ new Set([
1042
1025
  "response_format"
1043
1026
  ]);
1044
1027
  var FALLBACK_MODELS2 = [
1045
- // Gemini 2.5
1046
1028
  { id: "google/gemini-2.5-pro", name: "Gemini 2.5 Pro", created: 0, description: "Most capable Gemini model", context_length: 1048576, pricing: { prompt: "0.00000125", completion: "0.000005" }, architecture: { modality: "text+image->text", input_modalities: ["text", "image", "video", "audio"], output_modalities: ["text"], tokenizer: "gemini" }, top_provider: { context_length: 1048576, max_completion_tokens: 65536, is_moderated: false }, supported_parameters: Array.from(SUPPORTED_PARAMS3) },
1047
- { id: "google/gemini-2.5-flash", name: "Gemini 2.5 Flash", created: 0, description: "Fast and efficient", context_length: 1048576, pricing: { prompt: "0.00000015", completion: "0.0000006" }, architecture: { modality: "text+image->text", input_modalities: ["text", "image", "video", "audio"], output_modalities: ["text"], tokenizer: "gemini" }, top_provider: { context_length: 1048576, max_completion_tokens: 65536, is_moderated: false }, supported_parameters: Array.from(SUPPORTED_PARAMS3) },
1048
- // Gemini 2.0
1049
- { id: "google/gemini-2.0-flash", name: "Gemini 2.0 Flash", created: 0, description: "Fast multimodal model", context_length: 1048576, pricing: { prompt: "0.0000001", completion: "0.0000004" }, architecture: { modality: "text+image->text", input_modalities: ["text", "image", "video", "audio"], output_modalities: ["text"], tokenizer: "gemini" }, top_provider: { context_length: 1048576, max_completion_tokens: 65536, is_moderated: false }, supported_parameters: Array.from(SUPPORTED_PARAMS3) },
1050
- { id: "google/gemini-2.0-flash-lite", name: "Gemini 2.0 Flash Lite", created: 0, description: "Lightweight and fast", context_length: 1048576, pricing: { prompt: "0.00000005", completion: "0.0000002" }, architecture: { modality: "text+image->text", input_modalities: ["text", "image", "video", "audio"], output_modalities: ["text"], tokenizer: "gemini" }, top_provider: { context_length: 1048576, max_completion_tokens: 65536, is_moderated: false }, supported_parameters: Array.from(SUPPORTED_PARAMS3) },
1051
- // Gemini 1.5
1052
- { id: "google/gemini-1.5-pro", name: "Gemini 1.5 Pro", created: 0, description: "Previous generation pro model", context_length: 2097152, pricing: { prompt: "0.00000125", completion: "0.000005" }, architecture: { modality: "text+image->text", input_modalities: ["text", "image", "video", "audio"], output_modalities: ["text"], tokenizer: "gemini" }, top_provider: { context_length: 2097152, max_completion_tokens: 8192, is_moderated: false }, supported_parameters: Array.from(SUPPORTED_PARAMS3) },
1053
- { id: "google/gemini-1.5-flash", name: "Gemini 1.5 Flash", created: 0, description: "Previous generation flash model", context_length: 1048576, pricing: { prompt: "0.000000075", completion: "0.0000003" }, architecture: { modality: "text+image->text", input_modalities: ["text", "image", "video", "audio"], output_modalities: ["text"], tokenizer: "gemini" }, top_provider: { context_length: 1048576, max_completion_tokens: 8192, is_moderated: false }, supported_parameters: Array.from(SUPPORTED_PARAMS3) }
1029
+ { id: "google/gemini-2.5-flash", name: "Gemini 2.5 Flash", created: 0, description: "Fast and efficient", context_length: 1048576, pricing: { prompt: "0.00000015", completion: "0.0000006" }, architecture: { modality: "text+image->text", input_modalities: ["text", "image", "video", "audio"], output_modalities: ["text"], tokenizer: "gemini" }, top_provider: { context_length: 1048576, max_completion_tokens: 65536, is_moderated: false }, supported_parameters: Array.from(SUPPORTED_PARAMS3) }
1054
1030
  ];
1055
1031
  function createGoogleAdapter(apiKey) {
1056
1032
  function getModelEndpoint(model, stream) {