proxitor 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.
- package/README.md +221 -81
- package/dist/add.cjs +139 -0
- package/dist/add.cjs.map +1 -0
- package/dist/add.mjs +138 -0
- package/dist/add.mjs.map +1 -0
- package/dist/browse.cjs +88 -0
- package/dist/browse.cjs.map +1 -0
- package/dist/browse.mjs +87 -0
- package/dist/browse.mjs.map +1 -0
- package/dist/cli.cjs +148 -25
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.mjs +149 -26
- package/dist/cli.mjs.map +1 -1
- package/dist/config.cjs +68 -0
- package/dist/config.cjs.map +1 -0
- package/dist/config.mjs +45 -0
- package/dist/config.mjs.map +1 -0
- package/dist/config2.cjs +75 -0
- package/dist/config2.cjs.map +1 -0
- package/dist/config2.mjs +74 -0
- package/dist/config2.mjs.map +1 -0
- package/dist/edit.cjs +82 -0
- package/dist/edit.cjs.map +1 -0
- package/dist/edit.mjs +81 -0
- package/dist/edit.mjs.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.d.cts +223 -53
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +223 -53
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/list.cjs +33 -0
- package/dist/list.cjs.map +1 -0
- package/dist/list.mjs +31 -0
- package/dist/list.mjs.map +1 -0
- package/dist/providers.cjs +376 -0
- package/dist/providers.cjs.map +1 -0
- package/dist/providers.mjs +279 -0
- package/dist/providers.mjs.map +1 -0
- package/dist/proxy.cjs +128 -8
- package/dist/proxy.cjs.map +1 -1
- package/dist/proxy.mjs +99 -9
- package/dist/proxy.mjs.map +1 -1
- package/dist/remove.cjs +38 -0
- package/dist/remove.cjs.map +1 -0
- package/dist/remove.mjs +37 -0
- package/dist/remove.mjs.map +1 -0
- package/dist/validate.cjs +26 -0
- package/dist/validate.cjs.map +1 -0
- package/dist/validate.mjs +25 -0
- package/dist/validate.mjs.map +1 -0
- package/package.json +10 -3
package/dist/index.d.mts
CHANGED
|
@@ -1,63 +1,233 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
1
2
|
import { ServerType } from "@hono/node-server";
|
|
2
3
|
|
|
3
|
-
//#region src/config.d.ts
|
|
4
|
-
/**
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
4
|
+
//#region src/config-schema.d.ts
|
|
5
|
+
/** Provider routing configuration */
|
|
6
|
+
declare const providerConfigSchema: z.ZodObject<{
|
|
7
|
+
only: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
8
|
+
order: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
9
|
+
ignore: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
10
|
+
allowFallbacks: z.ZodOptional<z.ZodBoolean>;
|
|
11
|
+
sort: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
12
|
+
price: "price";
|
|
13
|
+
throughput: "throughput";
|
|
14
|
+
latency: "latency";
|
|
15
|
+
}>, z.ZodObject<{
|
|
16
|
+
by: z.ZodEnum<{
|
|
17
|
+
price: "price";
|
|
18
|
+
throughput: "throughput";
|
|
19
|
+
latency: "latency";
|
|
20
|
+
}>;
|
|
21
|
+
partition: z.ZodOptional<z.ZodEnum<{
|
|
22
|
+
model: "model";
|
|
23
|
+
none: "none";
|
|
24
|
+
}>>;
|
|
25
|
+
}, z.core.$strict>]>>;
|
|
26
|
+
quantizations: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
27
|
+
maxPrice: z.ZodOptional<z.ZodObject<{
|
|
28
|
+
prompt: z.ZodOptional<z.ZodNumber>;
|
|
29
|
+
completion: z.ZodOptional<z.ZodNumber>;
|
|
30
|
+
request: z.ZodOptional<z.ZodNumber>;
|
|
31
|
+
image: z.ZodOptional<z.ZodNumber>;
|
|
32
|
+
}, z.core.$strict>>;
|
|
33
|
+
requireParameters: z.ZodOptional<z.ZodBoolean>;
|
|
34
|
+
dataCollection: z.ZodOptional<z.ZodEnum<{
|
|
35
|
+
allow: "allow";
|
|
36
|
+
deny: "deny";
|
|
37
|
+
}>>;
|
|
38
|
+
zdr: z.ZodOptional<z.ZodBoolean>;
|
|
39
|
+
enforceDistillableText: z.ZodOptional<z.ZodBoolean>;
|
|
40
|
+
preferredMinThroughput: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
|
|
41
|
+
p50: z.ZodOptional<z.ZodNumber>;
|
|
42
|
+
p75: z.ZodOptional<z.ZodNumber>;
|
|
43
|
+
p90: z.ZodOptional<z.ZodNumber>;
|
|
44
|
+
p99: z.ZodOptional<z.ZodNumber>;
|
|
45
|
+
}, z.core.$strict>]>>;
|
|
46
|
+
preferredMaxLatency: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
|
|
47
|
+
p50: z.ZodOptional<z.ZodNumber>;
|
|
48
|
+
p75: z.ZodOptional<z.ZodNumber>;
|
|
49
|
+
p90: z.ZodOptional<z.ZodNumber>;
|
|
50
|
+
p99: z.ZodOptional<z.ZodNumber>;
|
|
51
|
+
}, z.core.$strict>]>>;
|
|
52
|
+
}, z.core.$strict>;
|
|
38
53
|
/** Per-model override: layers on top of global config */
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
54
|
+
declare const modelOverrideSchema: z.ZodObject<{
|
|
55
|
+
provider: z.ZodOptional<z.ZodObject<{
|
|
56
|
+
only: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
57
|
+
order: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
58
|
+
ignore: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
59
|
+
allowFallbacks: z.ZodOptional<z.ZodBoolean>;
|
|
60
|
+
sort: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
61
|
+
price: "price";
|
|
62
|
+
throughput: "throughput";
|
|
63
|
+
latency: "latency";
|
|
64
|
+
}>, z.ZodObject<{
|
|
65
|
+
by: z.ZodEnum<{
|
|
66
|
+
price: "price";
|
|
67
|
+
throughput: "throughput";
|
|
68
|
+
latency: "latency";
|
|
69
|
+
}>;
|
|
70
|
+
partition: z.ZodOptional<z.ZodEnum<{
|
|
71
|
+
model: "model";
|
|
72
|
+
none: "none";
|
|
73
|
+
}>>;
|
|
74
|
+
}, z.core.$strict>]>>;
|
|
75
|
+
quantizations: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
76
|
+
maxPrice: z.ZodOptional<z.ZodObject<{
|
|
77
|
+
prompt: z.ZodOptional<z.ZodNumber>;
|
|
78
|
+
completion: z.ZodOptional<z.ZodNumber>;
|
|
79
|
+
request: z.ZodOptional<z.ZodNumber>;
|
|
80
|
+
image: z.ZodOptional<z.ZodNumber>;
|
|
81
|
+
}, z.core.$strict>>;
|
|
82
|
+
requireParameters: z.ZodOptional<z.ZodBoolean>;
|
|
83
|
+
dataCollection: z.ZodOptional<z.ZodEnum<{
|
|
84
|
+
allow: "allow";
|
|
85
|
+
deny: "deny";
|
|
86
|
+
}>>;
|
|
87
|
+
zdr: z.ZodOptional<z.ZodBoolean>;
|
|
88
|
+
enforceDistillableText: z.ZodOptional<z.ZodBoolean>;
|
|
89
|
+
preferredMinThroughput: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
|
|
90
|
+
p50: z.ZodOptional<z.ZodNumber>;
|
|
91
|
+
p75: z.ZodOptional<z.ZodNumber>;
|
|
92
|
+
p90: z.ZodOptional<z.ZodNumber>;
|
|
93
|
+
p99: z.ZodOptional<z.ZodNumber>;
|
|
94
|
+
}, z.core.$strict>]>>;
|
|
95
|
+
preferredMaxLatency: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
|
|
96
|
+
p50: z.ZodOptional<z.ZodNumber>;
|
|
97
|
+
p75: z.ZodOptional<z.ZodNumber>;
|
|
98
|
+
p90: z.ZodOptional<z.ZodNumber>;
|
|
99
|
+
p99: z.ZodOptional<z.ZodNumber>;
|
|
100
|
+
}, z.core.$strict>]>>;
|
|
101
|
+
}, z.core.$strict>>;
|
|
102
|
+
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
103
|
+
}, z.core.$strict>;
|
|
104
|
+
/** Full proxy configuration */
|
|
105
|
+
declare const proxyConfigSchema: z.ZodObject<{
|
|
106
|
+
host: z.ZodString;
|
|
107
|
+
port: z.ZodNumber;
|
|
108
|
+
openrouterKey: z.ZodString;
|
|
109
|
+
openrouterBaseUrl: z.ZodString;
|
|
110
|
+
verbose: z.ZodBoolean;
|
|
111
|
+
bodyLimit: z.ZodString;
|
|
112
|
+
provider: z.ZodOptional<z.ZodObject<{
|
|
113
|
+
only: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
114
|
+
order: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
115
|
+
ignore: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
116
|
+
allowFallbacks: z.ZodOptional<z.ZodBoolean>;
|
|
117
|
+
sort: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
118
|
+
price: "price";
|
|
119
|
+
throughput: "throughput";
|
|
120
|
+
latency: "latency";
|
|
121
|
+
}>, z.ZodObject<{
|
|
122
|
+
by: z.ZodEnum<{
|
|
123
|
+
price: "price";
|
|
124
|
+
throughput: "throughput";
|
|
125
|
+
latency: "latency";
|
|
126
|
+
}>;
|
|
127
|
+
partition: z.ZodOptional<z.ZodEnum<{
|
|
128
|
+
model: "model";
|
|
129
|
+
none: "none";
|
|
130
|
+
}>>;
|
|
131
|
+
}, z.core.$strict>]>>;
|
|
132
|
+
quantizations: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
133
|
+
maxPrice: z.ZodOptional<z.ZodObject<{
|
|
134
|
+
prompt: z.ZodOptional<z.ZodNumber>;
|
|
135
|
+
completion: z.ZodOptional<z.ZodNumber>;
|
|
136
|
+
request: z.ZodOptional<z.ZodNumber>;
|
|
137
|
+
image: z.ZodOptional<z.ZodNumber>;
|
|
138
|
+
}, z.core.$strict>>;
|
|
139
|
+
requireParameters: z.ZodOptional<z.ZodBoolean>;
|
|
140
|
+
dataCollection: z.ZodOptional<z.ZodEnum<{
|
|
141
|
+
allow: "allow";
|
|
142
|
+
deny: "deny";
|
|
143
|
+
}>>;
|
|
144
|
+
zdr: z.ZodOptional<z.ZodBoolean>;
|
|
145
|
+
enforceDistillableText: z.ZodOptional<z.ZodBoolean>;
|
|
146
|
+
preferredMinThroughput: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
|
|
147
|
+
p50: z.ZodOptional<z.ZodNumber>;
|
|
148
|
+
p75: z.ZodOptional<z.ZodNumber>;
|
|
149
|
+
p90: z.ZodOptional<z.ZodNumber>;
|
|
150
|
+
p99: z.ZodOptional<z.ZodNumber>;
|
|
151
|
+
}, z.core.$strict>]>>;
|
|
152
|
+
preferredMaxLatency: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
|
|
153
|
+
p50: z.ZodOptional<z.ZodNumber>;
|
|
154
|
+
p75: z.ZodOptional<z.ZodNumber>;
|
|
155
|
+
p90: z.ZodOptional<z.ZodNumber>;
|
|
156
|
+
p99: z.ZodOptional<z.ZodNumber>;
|
|
157
|
+
}, z.core.$strict>]>>;
|
|
158
|
+
}, z.core.$strict>>;
|
|
159
|
+
attributionReferer: z.ZodString;
|
|
160
|
+
attributionTitle: z.ZodString;
|
|
161
|
+
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
162
|
+
modelOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
163
|
+
provider: z.ZodOptional<z.ZodObject<{
|
|
164
|
+
only: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
165
|
+
order: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
166
|
+
ignore: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
167
|
+
allowFallbacks: z.ZodOptional<z.ZodBoolean>;
|
|
168
|
+
sort: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
|
|
169
|
+
price: "price";
|
|
170
|
+
throughput: "throughput";
|
|
171
|
+
latency: "latency";
|
|
172
|
+
}>, z.ZodObject<{
|
|
173
|
+
by: z.ZodEnum<{
|
|
174
|
+
price: "price";
|
|
175
|
+
throughput: "throughput";
|
|
176
|
+
latency: "latency";
|
|
177
|
+
}>;
|
|
178
|
+
partition: z.ZodOptional<z.ZodEnum<{
|
|
179
|
+
model: "model";
|
|
180
|
+
none: "none";
|
|
181
|
+
}>>;
|
|
182
|
+
}, z.core.$strict>]>>;
|
|
183
|
+
quantizations: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
184
|
+
maxPrice: z.ZodOptional<z.ZodObject<{
|
|
185
|
+
prompt: z.ZodOptional<z.ZodNumber>;
|
|
186
|
+
completion: z.ZodOptional<z.ZodNumber>;
|
|
187
|
+
request: z.ZodOptional<z.ZodNumber>;
|
|
188
|
+
image: z.ZodOptional<z.ZodNumber>;
|
|
189
|
+
}, z.core.$strict>>;
|
|
190
|
+
requireParameters: z.ZodOptional<z.ZodBoolean>;
|
|
191
|
+
dataCollection: z.ZodOptional<z.ZodEnum<{
|
|
192
|
+
allow: "allow";
|
|
193
|
+
deny: "deny";
|
|
194
|
+
}>>;
|
|
195
|
+
zdr: z.ZodOptional<z.ZodBoolean>;
|
|
196
|
+
enforceDistillableText: z.ZodOptional<z.ZodBoolean>;
|
|
197
|
+
preferredMinThroughput: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
|
|
198
|
+
p50: z.ZodOptional<z.ZodNumber>;
|
|
199
|
+
p75: z.ZodOptional<z.ZodNumber>;
|
|
200
|
+
p90: z.ZodOptional<z.ZodNumber>;
|
|
201
|
+
p99: z.ZodOptional<z.ZodNumber>;
|
|
202
|
+
}, z.core.$strict>]>>;
|
|
203
|
+
preferredMaxLatency: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
|
|
204
|
+
p50: z.ZodOptional<z.ZodNumber>;
|
|
205
|
+
p75: z.ZodOptional<z.ZodNumber>;
|
|
206
|
+
p90: z.ZodOptional<z.ZodNumber>;
|
|
207
|
+
p99: z.ZodOptional<z.ZodNumber>;
|
|
208
|
+
}, z.core.$strict>]>>;
|
|
209
|
+
}, z.core.$strict>>;
|
|
210
|
+
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
211
|
+
}, z.core.$strict>>>;
|
|
212
|
+
}, z.core.$strict>;
|
|
213
|
+
type ProxyConfig = z.infer<typeof proxyConfigSchema>;
|
|
214
|
+
type ProviderConfig = z.infer<typeof providerConfigSchema>;
|
|
215
|
+
type ModelOverride = z.infer<typeof modelOverrideSchema>;
|
|
216
|
+
/** Wraps YAML/JSON parse errors with the config file path */
|
|
217
|
+
declare class ConfigParseError extends Error {
|
|
218
|
+
constructor(filePath: string, cause?: Error);
|
|
219
|
+
}
|
|
220
|
+
/** Formats zod validation issues into a readable multi-line message */
|
|
221
|
+
declare class ConfigValidationError extends Error {
|
|
222
|
+
constructor(filePath: string, zodError: z.ZodError);
|
|
223
|
+
}
|
|
224
|
+
//#endregion
|
|
225
|
+
//#region src/config.d.ts
|
|
43
226
|
/** Result of merging global config with a model-specific override */
|
|
44
227
|
type ResolvedModelConfig = {
|
|
45
228
|
provider?: ProviderConfig;
|
|
46
229
|
headers?: Record<string, string>;
|
|
47
230
|
};
|
|
48
|
-
type ProxyConfig = {
|
|
49
|
-
host: string;
|
|
50
|
-
port: number;
|
|
51
|
-
openrouterKey: string;
|
|
52
|
-
openrouterBaseUrl: string;
|
|
53
|
-
verbose: boolean; /** Request body size limit (default: "50mb") */
|
|
54
|
-
bodyLimit: string; /** Provider routing configuration (global default) */
|
|
55
|
-
provider?: ProviderConfig; /** HTTP-Referer for OpenRouter attribution */
|
|
56
|
-
attributionReferer: string; /** X-Title for OpenRouter attribution */
|
|
57
|
-
attributionTitle: string; /** Custom headers to add to proxied requests (global default) */
|
|
58
|
-
headers?: Record<string, string>; /** Per-model config overrides. Keys are exact model names or prefix patterns (e.g. "claude-*") */
|
|
59
|
-
modelOverrides?: Record<string, ModelOverride>;
|
|
60
|
-
};
|
|
61
231
|
type LoadConfigOptions = {
|
|
62
232
|
configPath?: string;
|
|
63
233
|
noConfig?: boolean;
|
|
@@ -87,5 +257,5 @@ declare function toArray(value: string | string[] | undefined): string[] | undef
|
|
|
87
257
|
/** Try to parse an ArrayBuffer as JSON. Returns undefined on failure or empty body. */
|
|
88
258
|
declare function tryParseBody(raw: ArrayBuffer): Record<string, unknown> | undefined;
|
|
89
259
|
//#endregion
|
|
90
|
-
export { type ModelOverride, type ProviderConfig, type ProxyConfig, type ResolvedModelConfig, buildProviderRouting, createProxyServer, extractModel, loadConfig, matchScore, resolveModelConfig, toArray, tryParseBody };
|
|
260
|
+
export { ConfigParseError, ConfigValidationError, type ModelOverride, type ProviderConfig, type ProxyConfig, type ResolvedModelConfig, buildProviderRouting, createProxyServer, extractModel, loadConfig, matchScore, resolveModelConfig, toArray, tryParseBody };
|
|
91
261
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/config.ts","../src/proxy/inject.ts","../src/proxy.ts","../src/utils.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/config-schema.ts","../src/config.ts","../src/proxy/inject.ts","../src/proxy.ts","../src/utils.ts"],"mappings":";;;;;cAsCa,oBAAA,EAAoB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAuBpB,mBAAA,EAAmB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAQnB,iBAAA,EAAiB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuBlB,WAAA,GAAc,CAAA,CAAE,KAAK,QAAQ,iBAAA;AAAA,KAC7B,cAAA,GAAiB,CAAA,CAAE,KAAK,QAAQ,oBAAA;AAAA,KAChC,aAAA,GAAgB,CAAA,CAAE,KAAK,QAAQ,mBAAA;;cAU9B,gBAAA,SAAyB,KAAK;cAC7B,QAAA,UAAkB,KAAA,GAAQ,KAAA;AAAA;;cAU3B,qBAAA,SAA8B,KAAK;cAClC,QAAA,UAAkB,QAAA,EAAU,CAAA,CAAE,QAAA;AAAA;;;;KC5FhC,mBAAA;EACV,QAAA,GAAW,cAAA;EACX,OAAA,GAAU,MAAM;AAAA;AAAA,KAcb,iBAAA;EACH,UAAA;EACA,QAAA;EACA,IAAA;EACA,aAAA;EACA,IAAA;EACA,OAAA;AAAA;;iBAwBc,oBAAA,CACd,QAAA,GAAW,cAAA,GACV,MAAM;;iBA0BO,UAAA,CAAW,OAAA,UAAiB,SAAiB;;iBAW7C,kBAAA,CACd,MAAA,EAAQ,WAAA,EACR,SAAA,YACC,mBAAmB;AAAA,iBAgCA,UAAA,CAAW,OAAA,EAAS,iBAAA,GAAoB,OAAA,CAAQ,WAAA;;;;iBC7ItD,YAAA,CAAa,OAAoB,EAAX,WAAW;;;iBC0JjC,iBAAA,CAAkB,MAAA,EAAQ,WAAA,EAAa,OAAA,gBAAuB,UAAU;;;;iBC5JxE,OAAA,CAAQ,KAAoC;;iBAO5C,YAAA,CAAa,GAAA,EAAK,WAAA,GAAc,MAAM"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as buildProviderRouting, c as
|
|
2
|
-
export { buildProviderRouting, createProxyServer, extractModel, loadConfig, matchScore, resolveModelConfig, toArray, tryParseBody };
|
|
1
|
+
import { a as buildProviderRouting, c as matchScore, d as toArray, f as tryParseBody, m as ConfigValidationError, p as ConfigParseError, r as extractModel, s as loadConfig, t as createProxyServer, u as resolveModelConfig } from "./proxy.mjs";
|
|
2
|
+
export { ConfigParseError, ConfigValidationError, buildProviderRouting, createProxyServer, extractModel, loadConfig, matchScore, resolveModelConfig, toArray, tryParseBody };
|
package/dist/list.cjs
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
const require_proxy = require("./proxy.cjs");
|
|
2
|
+
const require_config = require("./config.cjs");
|
|
3
|
+
let _clack_prompts = require("@clack/prompts");
|
|
4
|
+
_clack_prompts = require_proxy.__toESM(_clack_prompts, 1);
|
|
5
|
+
//#region src/commands/config/list.ts
|
|
6
|
+
function formatOverrideSummary(override) {
|
|
7
|
+
const parts = [];
|
|
8
|
+
if (override.provider) {
|
|
9
|
+
for (const [field, value] of Object.entries(override.provider)) if (value !== void 0) parts.push(`${field}: ${JSON.stringify(value)}`);
|
|
10
|
+
}
|
|
11
|
+
if (override.headers) for (const [name, value] of Object.entries(override.headers)) parts.push(`header ${name}: ${value}`);
|
|
12
|
+
return parts.join(", ") || "(empty)";
|
|
13
|
+
}
|
|
14
|
+
/** Display all current model overrides. */
|
|
15
|
+
async function listOverridesCommand() {
|
|
16
|
+
const configPath = require_config.requireConfigPath();
|
|
17
|
+
const overrides = require_config.getModelOverrides(configPath);
|
|
18
|
+
const keys = Object.keys(overrides);
|
|
19
|
+
if (keys.length === 0) {
|
|
20
|
+
_clack_prompts.log.info("No model overrides configured.");
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
_clack_prompts.log.success(`${keys.length} override(s) in ${configPath}`);
|
|
24
|
+
for (const key of keys) {
|
|
25
|
+
const override = overrides[key];
|
|
26
|
+
if (!override) continue;
|
|
27
|
+
_clack_prompts.log.info(` ${key} — ${formatOverrideSummary(override)}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
exports.listOverridesCommand = listOverridesCommand;
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=list.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.cjs","names":["requireConfigPath","getModelOverrides"],"sources":["../src/commands/config/list.ts"],"sourcesContent":["import * as clack from '@clack/prompts'\nimport type { ModelOverride } from '../../config-schema.js'\nimport { getModelOverrides, requireConfigPath } from './config.js'\n\nfunction formatOverrideSummary(override: ModelOverride): string {\n const parts: string[] = []\n\n if (override.provider) {\n for (const [field, value] of Object.entries(override.provider)) {\n if (value !== undefined) parts.push(`${field}: ${JSON.stringify(value)}`)\n }\n }\n\n if (override.headers) {\n for (const [name, value] of Object.entries(override.headers)) {\n parts.push(`header ${name}: ${value}`)\n }\n }\n\n return parts.join(', ') || '(empty)'\n}\n\n/** Display all current model overrides. */\nexport async function listOverridesCommand(): Promise<void> {\n const configPath = requireConfigPath()\n const overrides = getModelOverrides(configPath)\n const keys = Object.keys(overrides)\n\n if (keys.length === 0) {\n clack.log.info('No model overrides configured.')\n return\n }\n\n clack.log.success(`${keys.length} override(s) in ${configPath}`)\n\n for (const key of keys) {\n const override = overrides[key]\n if (!override) continue\n clack.log.info(` ${key} — ${formatOverrideSummary(override)}`)\n }\n}\n"],"mappings":";;;;;AAIA,SAAS,sBAAsB,UAAiC;CAC9D,MAAM,QAAkB,CAAC;CAEzB,IAAI,SAAS;OACN,MAAM,CAAC,OAAO,UAAU,OAAO,QAAQ,SAAS,QAAQ,GAC3D,IAAI,UAAU,KAAA,GAAW,MAAM,KAAK,GAAG,MAAM,IAAI,KAAK,UAAU,KAAK,GAAG;CAAA;CAI5E,IAAI,SAAS,SACX,KAAK,MAAM,CAAC,MAAM,UAAU,OAAO,QAAQ,SAAS,OAAO,GACzD,MAAM,KAAK,UAAU,KAAK,IAAI,OAAO;CAIzC,OAAO,MAAM,KAAK,IAAI,KAAK;AAC7B;;AAGA,eAAsB,uBAAsC;CAC1D,MAAM,aAAaA,eAAAA,kBAAkB;CACrC,MAAM,YAAYC,eAAAA,kBAAkB,UAAU;CAC9C,MAAM,OAAO,OAAO,KAAK,SAAS;CAElC,IAAI,KAAK,WAAW,GAAG;EACrB,eAAM,IAAI,KAAK,gCAAgC;EAC/C;CACF;CAEA,eAAM,IAAI,QAAQ,GAAG,KAAK,OAAO,kBAAkB,YAAY;CAE/D,KAAK,MAAM,OAAO,MAAM;EACtB,MAAM,WAAW,UAAU;EAC3B,IAAI,CAAC,UAAU;EACf,eAAM,IAAI,KAAK,KAAK,IAAI,KAAK,sBAAsB,QAAQ,GAAG;CAChE;AACF"}
|
package/dist/list.mjs
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { r as requireConfigPath, t as getModelOverrides } from "./config.mjs";
|
|
2
|
+
import * as clack from "@clack/prompts";
|
|
3
|
+
//#region src/commands/config/list.ts
|
|
4
|
+
function formatOverrideSummary(override) {
|
|
5
|
+
const parts = [];
|
|
6
|
+
if (override.provider) {
|
|
7
|
+
for (const [field, value] of Object.entries(override.provider)) if (value !== void 0) parts.push(`${field}: ${JSON.stringify(value)}`);
|
|
8
|
+
}
|
|
9
|
+
if (override.headers) for (const [name, value] of Object.entries(override.headers)) parts.push(`header ${name}: ${value}`);
|
|
10
|
+
return parts.join(", ") || "(empty)";
|
|
11
|
+
}
|
|
12
|
+
/** Display all current model overrides. */
|
|
13
|
+
async function listOverridesCommand() {
|
|
14
|
+
const configPath = requireConfigPath();
|
|
15
|
+
const overrides = getModelOverrides(configPath);
|
|
16
|
+
const keys = Object.keys(overrides);
|
|
17
|
+
if (keys.length === 0) {
|
|
18
|
+
clack.log.info("No model overrides configured.");
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
clack.log.success(`${keys.length} override(s) in ${configPath}`);
|
|
22
|
+
for (const key of keys) {
|
|
23
|
+
const override = overrides[key];
|
|
24
|
+
if (!override) continue;
|
|
25
|
+
clack.log.info(` ${key} — ${formatOverrideSummary(override)}`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//#endregion
|
|
29
|
+
export { listOverridesCommand };
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=list.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.mjs","names":[],"sources":["../src/commands/config/list.ts"],"sourcesContent":["import * as clack from '@clack/prompts'\nimport type { ModelOverride } from '../../config-schema.js'\nimport { getModelOverrides, requireConfigPath } from './config.js'\n\nfunction formatOverrideSummary(override: ModelOverride): string {\n const parts: string[] = []\n\n if (override.provider) {\n for (const [field, value] of Object.entries(override.provider)) {\n if (value !== undefined) parts.push(`${field}: ${JSON.stringify(value)}`)\n }\n }\n\n if (override.headers) {\n for (const [name, value] of Object.entries(override.headers)) {\n parts.push(`header ${name}: ${value}`)\n }\n }\n\n return parts.join(', ') || '(empty)'\n}\n\n/** Display all current model overrides. */\nexport async function listOverridesCommand(): Promise<void> {\n const configPath = requireConfigPath()\n const overrides = getModelOverrides(configPath)\n const keys = Object.keys(overrides)\n\n if (keys.length === 0) {\n clack.log.info('No model overrides configured.')\n return\n }\n\n clack.log.success(`${keys.length} override(s) in ${configPath}`)\n\n for (const key of keys) {\n const override = overrides[key]\n if (!override) continue\n clack.log.info(` ${key} — ${formatOverrideSummary(override)}`)\n }\n}\n"],"mappings":";;;AAIA,SAAS,sBAAsB,UAAiC;CAC9D,MAAM,QAAkB,CAAC;CAEzB,IAAI,SAAS;OACN,MAAM,CAAC,OAAO,UAAU,OAAO,QAAQ,SAAS,QAAQ,GAC3D,IAAI,UAAU,KAAA,GAAW,MAAM,KAAK,GAAG,MAAM,IAAI,KAAK,UAAU,KAAK,GAAG;CAAA;CAI5E,IAAI,SAAS,SACX,KAAK,MAAM,CAAC,MAAM,UAAU,OAAO,QAAQ,SAAS,OAAO,GACzD,MAAM,KAAK,UAAU,KAAK,IAAI,OAAO;CAIzC,OAAO,MAAM,KAAK,IAAI,KAAK;AAC7B;;AAGA,eAAsB,uBAAsC;CAC1D,MAAM,aAAa,kBAAkB;CACrC,MAAM,YAAY,kBAAkB,UAAU;CAC9C,MAAM,OAAO,OAAO,KAAK,SAAS;CAElC,IAAI,KAAK,WAAW,GAAG;EACrB,MAAM,IAAI,KAAK,gCAAgC;EAC/C;CACF;CAEA,MAAM,IAAI,QAAQ,GAAG,KAAK,OAAO,kBAAkB,YAAY;CAE/D,KAAK,MAAM,OAAO,MAAM;EACtB,MAAM,WAAW,UAAU;EAC3B,IAAI,CAAC,UAAU;EACf,MAAM,IAAI,KAAK,KAAK,IAAI,KAAK,sBAAsB,QAAQ,GAAG;CAChE;AACF"}
|