@antseed/cli 0.1.25 → 0.1.26
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 +19 -19
- package/dist/cli/commands/browse.d.ts +1 -1
- package/dist/cli/commands/browse.js +4 -4
- package/dist/cli/commands/browse.js.map +1 -1
- package/dist/cli/commands/connection.js +21 -21
- package/dist/cli/commands/connection.js.map +1 -1
- package/dist/cli/commands/plugin-create.js +1 -1
- package/dist/cli/commands/seed.d.ts.map +1 -1
- package/dist/cli/commands/seed.js +40 -24
- package/dist/cli/commands/seed.js.map +1 -1
- package/dist/cli/commands/seed.test.js +6 -6
- package/dist/cli/commands/seed.test.js.map +1 -1
- package/dist/config/loader.js +21 -21
- package/dist/config/loader.js.map +1 -1
- package/dist/config/loader.test.js +12 -12
- package/dist/config/loader.test.js.map +1 -1
- package/dist/config/types.d.ts +17 -9
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/validation.js +14 -14
- package/dist/config/validation.js.map +1 -1
- package/dist/proxy/buyer-proxy.d.ts +7 -7
- package/dist/proxy/buyer-proxy.d.ts.map +1 -1
- package/dist/proxy/buyer-proxy.js +72 -72
- package/dist/proxy/buyer-proxy.js.map +1 -1
- package/dist/proxy/buyer-proxy.test.js +6 -6
- package/dist/proxy/buyer-proxy.test.js.map +1 -1
- package/dist/proxy/service-api-adapter.d.ts +2 -0
- package/dist/proxy/service-api-adapter.d.ts.map +1 -0
- package/dist/proxy/service-api-adapter.js +5 -0
- package/dist/proxy/service-api-adapter.js.map +1 -0
- package/dist/proxy/service-api-adapter.test.d.ts +2 -0
- package/dist/proxy/service-api-adapter.test.d.ts.map +1 -0
- package/dist/proxy/{model-api-adapter.test.js → service-api-adapter.test.js} +2 -2
- package/dist/proxy/service-api-adapter.test.js.map +1 -0
- package/package.json +4 -4
- package/dist/proxy/model-api-adapter.d.ts +0 -2
- package/dist/proxy/model-api-adapter.d.ts.map +0 -1
- package/dist/proxy/model-api-adapter.js +0 -5
- package/dist/proxy/model-api-adapter.js.map +0 -1
- package/dist/proxy/model-api-adapter.test.d.ts +0 -2
- package/dist/proxy/model-api-adapter.test.d.ts.map +0 -1
- package/dist/proxy/model-api-adapter.test.js.map +0 -1
package/dist/config/loader.js
CHANGED
|
@@ -52,20 +52,20 @@ function cloneProviderPricing(providers) {
|
|
|
52
52
|
for (const [provider, cfg] of Object.entries(providers)) {
|
|
53
53
|
out[provider] = {
|
|
54
54
|
...(cfg.defaults ? { defaults: clonePricing(cfg.defaults) } : {}),
|
|
55
|
-
...(cfg.
|
|
55
|
+
...(cfg.services ? { services: { ...cfg.services } } : {}),
|
|
56
56
|
};
|
|
57
57
|
}
|
|
58
58
|
return out;
|
|
59
59
|
}
|
|
60
|
-
function
|
|
60
|
+
function mergeServicePricing(defaults, value) {
|
|
61
61
|
const out = {
|
|
62
62
|
...(defaults ?? {}),
|
|
63
63
|
};
|
|
64
64
|
if (isRecord(value)) {
|
|
65
|
-
for (const [
|
|
65
|
+
for (const [service, rawPricing] of Object.entries(value)) {
|
|
66
66
|
const parsed = normalizeTokenPricing(rawPricing);
|
|
67
67
|
if (parsed) {
|
|
68
|
-
out[
|
|
68
|
+
out[service] = parsed;
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
}
|
|
@@ -82,11 +82,11 @@ function mergeProviderPricing(defaults, value) {
|
|
|
82
82
|
const next = {
|
|
83
83
|
...(parsedDefaults ? { defaults: parsedDefaults } : (existing?.defaults ? { defaults: existing.defaults } : {})),
|
|
84
84
|
};
|
|
85
|
-
const
|
|
86
|
-
if (
|
|
87
|
-
next.
|
|
85
|
+
const mergedServices = mergeServicePricing(existing?.services, rawCfg['services']);
|
|
86
|
+
if (mergedServices) {
|
|
87
|
+
next.services = mergedServices;
|
|
88
88
|
}
|
|
89
|
-
if (next.defaults || next.
|
|
89
|
+
if (next.defaults || next.services) {
|
|
90
90
|
out[provider] = next;
|
|
91
91
|
}
|
|
92
92
|
}
|
|
@@ -106,27 +106,27 @@ function mergeHierarchicalPricing(defaults, value) {
|
|
|
106
106
|
...(mergedProviders ? { providers: mergedProviders } : {}),
|
|
107
107
|
};
|
|
108
108
|
}
|
|
109
|
-
function
|
|
109
|
+
function cloneSellerServiceCategories(categories) {
|
|
110
110
|
if (!categories)
|
|
111
111
|
return undefined;
|
|
112
112
|
const out = {};
|
|
113
|
-
for (const [provider,
|
|
114
|
-
out[provider] = Object.fromEntries(Object.entries(
|
|
113
|
+
for (const [provider, services] of Object.entries(categories)) {
|
|
114
|
+
out[provider] = Object.fromEntries(Object.entries(services).map(([service, tags]) => [service, [...tags]]));
|
|
115
115
|
}
|
|
116
116
|
return out;
|
|
117
117
|
}
|
|
118
|
-
function
|
|
119
|
-
const out =
|
|
118
|
+
function mergeSellerServiceCategories(defaults, value) {
|
|
119
|
+
const out = cloneSellerServiceCategories(defaults) ?? {};
|
|
120
120
|
if (!isRecord(value)) {
|
|
121
121
|
return Object.keys(out).length > 0 ? out : undefined;
|
|
122
122
|
}
|
|
123
123
|
for (const [provider, rawProvider] of Object.entries(value)) {
|
|
124
124
|
if (!isRecord(rawProvider))
|
|
125
125
|
continue;
|
|
126
|
-
const
|
|
126
|
+
const nextServices = {
|
|
127
127
|
...(out[provider] ?? {}),
|
|
128
128
|
};
|
|
129
|
-
for (const [
|
|
129
|
+
for (const [service, rawCategories] of Object.entries(rawProvider)) {
|
|
130
130
|
if (!Array.isArray(rawCategories))
|
|
131
131
|
continue;
|
|
132
132
|
const normalizedCategories = rawCategories
|
|
@@ -134,11 +134,11 @@ function mergeSellerModelCategories(defaults, value) {
|
|
|
134
134
|
.map((entry) => entry.trim())
|
|
135
135
|
.filter((entry) => entry.length > 0);
|
|
136
136
|
if (normalizedCategories.length > 0) {
|
|
137
|
-
|
|
137
|
+
nextServices[service] = normalizedCategories;
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
|
-
if (Object.keys(
|
|
141
|
-
out[provider] =
|
|
140
|
+
if (Object.keys(nextServices).length > 0) {
|
|
141
|
+
out[provider] = nextServices;
|
|
142
142
|
}
|
|
143
143
|
}
|
|
144
144
|
return Object.keys(out).length > 0 ? out : undefined;
|
|
@@ -150,10 +150,10 @@ function mergeSellerConfig(defaults, value) {
|
|
|
150
150
|
maxConcurrentBuyers: defaults.maxConcurrentBuyers,
|
|
151
151
|
enabledProviders: [...defaults.enabledProviders],
|
|
152
152
|
pricing: mergeHierarchicalPricing(defaults.pricing, undefined),
|
|
153
|
-
...(defaults.
|
|
153
|
+
...(defaults.serviceCategories ? { serviceCategories: cloneSellerServiceCategories(defaults.serviceCategories) } : {}),
|
|
154
154
|
};
|
|
155
155
|
}
|
|
156
|
-
const
|
|
156
|
+
const mergedServiceCategories = mergeSellerServiceCategories(defaults.serviceCategories, value['serviceCategories']);
|
|
157
157
|
return {
|
|
158
158
|
reserveFloor: typeof value['reserveFloor'] === 'number'
|
|
159
159
|
? value['reserveFloor']
|
|
@@ -165,7 +165,7 @@ function mergeSellerConfig(defaults, value) {
|
|
|
165
165
|
? value['enabledProviders'].filter((entry) => typeof entry === 'string')
|
|
166
166
|
: [...defaults.enabledProviders],
|
|
167
167
|
pricing: mergeHierarchicalPricing(defaults.pricing, value['pricing']),
|
|
168
|
-
...(
|
|
168
|
+
...(mergedServiceCategories ? { serviceCategories: mergedServiceCategories } : {}),
|
|
169
169
|
};
|
|
170
170
|
}
|
|
171
171
|
function mergeBuyerConfig(defaults, value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAOlC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;GAEG;AACH,SAAS,iBAAiB,CAAC,UAAkB;IAC3C,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;AACxD,CAAC;AAED,SAAS,YAAY,CAAC,OAAkC;IACtD,OAAO;QACL,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;KACjD,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC3C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,OAAO;QACL,kBAAkB,EAAE,aAAa,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC9D,mBAAmB,EAAE,aAAa,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;KACjE,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,QAAmC,EACnC,KAAc;IAEd,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IACD,OAAO;QACL,kBAAkB,EAAE,OAAO,KAAK,CAAC,oBAAoB,CAAC,KAAK,QAAQ;YACjE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC;YAC7B,CAAC,CAAC,QAAQ,CAAC,kBAAkB;QAC/B,mBAAmB,EAAE,OAAO,KAAK,CAAC,qBAAqB,CAAC,KAAK,QAAQ;YACnE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;YAC9B,CAAC,CAAC,QAAQ,CAAC,mBAAmB;KACjC,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,SAA4D;IAE5D,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,MAAM,GAAG,GAA0C,EAAE,CAAC;IACtD,KAAK,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACxD,GAAG,CAAC,QAAQ,CAAC,GAAG;YACd,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,GAAG,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ test('loadConfig deep-merges nested hierarchical pricing without dropping defaul
|
|
|
21
21
|
pricing: {
|
|
22
22
|
providers: {
|
|
23
23
|
anthropic: {
|
|
24
|
-
|
|
24
|
+
services: {
|
|
25
25
|
'claude-sonnet-4-5-20250929': {
|
|
26
26
|
inputUsdPerMillion: 12,
|
|
27
27
|
outputUsdPerMillion: 18,
|
|
@@ -47,21 +47,21 @@ test('loadConfig deep-merges nested hierarchical pricing without dropping defaul
|
|
|
47
47
|
const config = await loadConfig(configPath);
|
|
48
48
|
assert.equal(config.seller.pricing.defaults.inputUsdPerMillion, 10);
|
|
49
49
|
assert.equal(config.seller.pricing.defaults.outputUsdPerMillion, 10);
|
|
50
|
-
assert.equal(config.seller.pricing.providers?.anthropic?.
|
|
51
|
-
assert.equal(config.seller.pricing.providers?.anthropic?.
|
|
50
|
+
assert.equal(config.seller.pricing.providers?.anthropic?.services?.['claude-sonnet-4-5-20250929']?.inputUsdPerMillion, 12);
|
|
51
|
+
assert.equal(config.seller.pricing.providers?.anthropic?.services?.['claude-sonnet-4-5-20250929']?.outputUsdPerMillion, 18);
|
|
52
52
|
assert.equal(config.buyer.maxPricing.defaults.inputUsdPerMillion, 100);
|
|
53
53
|
assert.equal(config.buyer.maxPricing.defaults.outputUsdPerMillion, 100);
|
|
54
54
|
assert.equal(config.buyer.maxPricing.providers?.openai?.defaults?.inputUsdPerMillion, 55);
|
|
55
55
|
assert.equal(config.buyer.maxPricing.providers?.openai?.defaults?.outputUsdPerMillion, 77);
|
|
56
56
|
});
|
|
57
57
|
});
|
|
58
|
-
test('loadConfig throws explicit validation error for incomplete
|
|
58
|
+
test('loadConfig throws explicit validation error for incomplete service pricing', async () => {
|
|
59
59
|
await withTempConfig(JSON.stringify({
|
|
60
60
|
seller: {
|
|
61
61
|
pricing: {
|
|
62
62
|
providers: {
|
|
63
63
|
anthropic: {
|
|
64
|
-
|
|
64
|
+
services: {
|
|
65
65
|
broken: {
|
|
66
66
|
inputUsdPerMillion: 12,
|
|
67
67
|
},
|
|
@@ -71,13 +71,13 @@ test('loadConfig throws explicit validation error for incomplete model pricing',
|
|
|
71
71
|
},
|
|
72
72
|
},
|
|
73
73
|
}), async (configPath) => {
|
|
74
|
-
await assert.rejects(async () => loadConfig(configPath), /seller\.pricing\.providers\.anthropic\.
|
|
74
|
+
await assert.rejects(async () => loadConfig(configPath), /seller\.pricing\.providers\.anthropic\.services\.broken\.outputUsdPerMillion/);
|
|
75
75
|
});
|
|
76
76
|
});
|
|
77
|
-
test('loadConfig merges seller
|
|
77
|
+
test('loadConfig merges seller service categories per provider/service', async () => {
|
|
78
78
|
await withTempConfig(JSON.stringify({
|
|
79
79
|
seller: {
|
|
80
|
-
|
|
80
|
+
serviceCategories: {
|
|
81
81
|
anthropic: {
|
|
82
82
|
'claude-sonnet-4-5-20250929': ['coding', 'legal'],
|
|
83
83
|
},
|
|
@@ -85,20 +85,20 @@ test('loadConfig merges seller model categories per provider/model', async () =>
|
|
|
85
85
|
},
|
|
86
86
|
}), async (configPath) => {
|
|
87
87
|
const config = await loadConfig(configPath);
|
|
88
|
-
assert.deepEqual(config.seller.
|
|
88
|
+
assert.deepEqual(config.seller.serviceCategories?.anthropic?.['claude-sonnet-4-5-20250929'], ['coding', 'legal']);
|
|
89
89
|
});
|
|
90
90
|
});
|
|
91
|
-
test('loadConfig rejects invalid seller
|
|
91
|
+
test('loadConfig rejects invalid seller service category values', async () => {
|
|
92
92
|
await withTempConfig(JSON.stringify({
|
|
93
93
|
seller: {
|
|
94
|
-
|
|
94
|
+
serviceCategories: {
|
|
95
95
|
anthropic: {
|
|
96
96
|
'claude-sonnet-4-5-20250929': ['Bad Value'],
|
|
97
97
|
},
|
|
98
98
|
},
|
|
99
99
|
},
|
|
100
100
|
}), async (configPath) => {
|
|
101
|
-
await assert.rejects(async () => loadConfig(configPath), /seller\.
|
|
101
|
+
await assert.rejects(async () => loadConfig(configPath), /seller\.serviceCategories\.anthropic\.claude-sonnet-4-5-20250929/);
|
|
102
102
|
});
|
|
103
103
|
});
|
|
104
104
|
//# sourceMappingURL=loader.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.test.js","sourceRoot":"","sources":["../../src/config/loader.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,KAAK,UAAU,cAAc,CAAC,QAAgB,EAAE,EAAyC;IACvF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC;IACvB,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,IAAI,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;IAC9F,MAAM,cAAc,CAClB,IAAI,CAAC,SAAS,CAAC;QACb,MAAM,EAAE;YACN,OAAO,EAAE;gBACP,SAAS,EAAE;oBACT,SAAS,EAAE;wBACT,
|
|
1
|
+
{"version":3,"file":"loader.test.js","sourceRoot":"","sources":["../../src/config/loader.test.ts"],"names":[],"mappings":"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"}
|
package/dist/config/types.d.ts
CHANGED
|
@@ -31,23 +31,23 @@ export interface TokenPricingUsdPerMillion {
|
|
|
31
31
|
outputUsdPerMillion: number;
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
|
-
* Provider-level optional defaults and per-
|
|
34
|
+
* Provider-level optional defaults and per-service overrides.
|
|
35
35
|
*/
|
|
36
36
|
export interface ProviderPricingConfig {
|
|
37
37
|
defaults?: TokenPricingUsdPerMillion;
|
|
38
|
-
|
|
38
|
+
services?: Record<string, TokenPricingUsdPerMillion>;
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
|
-
* Hierarchical pricing with global defaults and optional provider/
|
|
41
|
+
* Hierarchical pricing with global defaults and optional provider/service overrides.
|
|
42
42
|
*/
|
|
43
43
|
export interface HierarchicalPricingConfig {
|
|
44
44
|
defaults: TokenPricingUsdPerMillion;
|
|
45
45
|
providers?: Record<string, ProviderPricingConfig>;
|
|
46
46
|
}
|
|
47
47
|
/**
|
|
48
|
-
* Optional provider/
|
|
48
|
+
* Optional provider/service category tags for metadata discovery.
|
|
49
49
|
*/
|
|
50
|
-
export interface
|
|
50
|
+
export interface SellerServiceCategoryConfig {
|
|
51
51
|
[provider: string]: Record<string, string[]>;
|
|
52
52
|
}
|
|
53
53
|
/**
|
|
@@ -64,8 +64,8 @@ export interface SellerMiddlewareConfig {
|
|
|
64
64
|
position: MiddlewarePosition;
|
|
65
65
|
/** Role for 'prepend'/'append' positions. Defaults to 'user'. */
|
|
66
66
|
role?: string;
|
|
67
|
-
/** If set, only inject for requests targeting one of these
|
|
68
|
-
|
|
67
|
+
/** If set, only inject for requests targeting one of these service IDs. Applies to all services when omitted. */
|
|
68
|
+
services?: string[];
|
|
69
69
|
}
|
|
70
70
|
/**
|
|
71
71
|
* Seller-specific configuration within the Antseed config.
|
|
@@ -79,8 +79,8 @@ export interface SellerCLIConfig {
|
|
|
79
79
|
enabledProviders: string[];
|
|
80
80
|
/** Seller offer pricing rules in USD per 1M tokens */
|
|
81
81
|
pricing: HierarchicalPricingConfig;
|
|
82
|
-
/** Optional provider/
|
|
83
|
-
|
|
82
|
+
/** Optional provider/service category tags announced in peer metadata */
|
|
83
|
+
serviceCategories?: SellerServiceCategoryConfig;
|
|
84
84
|
/** Optional middleware files to inject into every LLM request. */
|
|
85
85
|
middleware?: SellerMiddlewareConfig[];
|
|
86
86
|
/**
|
|
@@ -90,6 +90,14 @@ export interface SellerCLIConfig {
|
|
|
90
90
|
* There is no opt-out: a confidentiality prompt is always injected when middleware fires.
|
|
91
91
|
*/
|
|
92
92
|
middlewareConfidentialityPrompt?: string;
|
|
93
|
+
/**
|
|
94
|
+
* Path to a directory containing skill subdirectories for on-demand loading.
|
|
95
|
+
* Each subdirectory must contain a `SKILL.md` file with YAML frontmatter (name, description).
|
|
96
|
+
* Skills are loaded dynamically by the LLM via the `antseed_load` tool when needed,
|
|
97
|
+
* rather than being injected into every request like middleware.
|
|
98
|
+
* Relative paths are resolved from the config file's directory.
|
|
99
|
+
*/
|
|
100
|
+
skillsDir?: string;
|
|
93
101
|
}
|
|
94
102
|
/**
|
|
95
103
|
* Buyer-specific configuration within the Antseed config.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,cAAc,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,mGAAmG;IACnG,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,aAAa,CAAC;IAC9C,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const SERVICE_CATEGORY_PATTERN = /^[a-z0-9][a-z0-9-]*$/;
|
|
2
2
|
function validatePricingLeaf(path, value, errors) {
|
|
3
3
|
if (!Number.isFinite(value.inputUsdPerMillion) || value.inputUsdPerMillion < 0) {
|
|
4
4
|
errors.push(`${path}.inputUsdPerMillion must be a non-negative finite number`);
|
|
@@ -13,38 +13,38 @@ function validateHierarchicalPricing(path, pricing, errors) {
|
|
|
13
13
|
if (providerPricing.defaults) {
|
|
14
14
|
validatePricingLeaf(`${path}.providers.${provider}.defaults`, providerPricing.defaults, errors);
|
|
15
15
|
}
|
|
16
|
-
for (const [
|
|
17
|
-
validatePricingLeaf(`${path}.providers.${provider}.
|
|
16
|
+
for (const [service, servicePricing] of Object.entries(providerPricing.services ?? {})) {
|
|
17
|
+
validatePricingLeaf(`${path}.providers.${provider}.services.${service}`, servicePricing, errors);
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
-
function
|
|
21
|
+
function validateSellerServiceCategories(path, categories, errors) {
|
|
22
22
|
if (!categories)
|
|
23
23
|
return;
|
|
24
|
-
for (const [provider,
|
|
25
|
-
for (const [
|
|
26
|
-
const
|
|
24
|
+
for (const [provider, services] of Object.entries(categories)) {
|
|
25
|
+
for (const [service, tags] of Object.entries(services)) {
|
|
26
|
+
const servicePath = `${path}.${provider}.${service}`;
|
|
27
27
|
if (!Array.isArray(tags) || tags.length === 0) {
|
|
28
|
-
errors.push(`${
|
|
28
|
+
errors.push(`${servicePath} must be a non-empty string array`);
|
|
29
29
|
continue;
|
|
30
30
|
}
|
|
31
31
|
const seen = new Set();
|
|
32
32
|
for (let i = 0; i < tags.length; i += 1) {
|
|
33
33
|
const rawTag = tags[i];
|
|
34
34
|
if (typeof rawTag !== 'string') {
|
|
35
|
-
errors.push(`${
|
|
35
|
+
errors.push(`${servicePath}[${i}] must be a string`);
|
|
36
36
|
continue;
|
|
37
37
|
}
|
|
38
38
|
const tag = rawTag.trim().toLowerCase();
|
|
39
39
|
if (tag.length === 0) {
|
|
40
|
-
errors.push(`${
|
|
40
|
+
errors.push(`${servicePath}[${i}] must not be empty`);
|
|
41
41
|
continue;
|
|
42
42
|
}
|
|
43
|
-
if (!
|
|
44
|
-
errors.push(`${
|
|
43
|
+
if (!SERVICE_CATEGORY_PATTERN.test(tag)) {
|
|
44
|
+
errors.push(`${servicePath}[${i}] must use lowercase letters, digits, or hyphen`);
|
|
45
45
|
}
|
|
46
46
|
if (seen.has(tag)) {
|
|
47
|
-
errors.push(`${
|
|
47
|
+
errors.push(`${servicePath}[${i}] is duplicated`);
|
|
48
48
|
}
|
|
49
49
|
seen.add(tag);
|
|
50
50
|
}
|
|
@@ -57,7 +57,7 @@ function validateSellerModelCategories(path, categories, errors) {
|
|
|
57
57
|
export function validateConfig(config) {
|
|
58
58
|
const errors = [];
|
|
59
59
|
validateHierarchicalPricing('seller.pricing', config.seller.pricing, errors);
|
|
60
|
-
|
|
60
|
+
validateSellerServiceCategories('seller.serviceCategories', config.seller.serviceCategories, errors);
|
|
61
61
|
validateHierarchicalPricing('buyer.maxPricing', config.buyer.maxPricing, errors);
|
|
62
62
|
if (!Number.isFinite(config.buyer.minPeerReputation) || config.buyer.minPeerReputation < 0 || config.buyer.minPeerReputation > 100) {
|
|
63
63
|
errors.push('buyer.minPeerReputation must be in range 0-100');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"AAMA,MAAM,
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AntseedNode, PeerInfo } from '@antseed/node';
|
|
2
|
-
import { type
|
|
2
|
+
import { type ServiceApiProtocol, type TargetProtocolSelection } from './service-api-adapter.js';
|
|
3
3
|
export interface BuyerProxyConfig {
|
|
4
4
|
port: number;
|
|
5
5
|
node: AntseedNode;
|
|
@@ -18,11 +18,11 @@ export interface BuyerProxyConfig {
|
|
|
18
18
|
*/
|
|
19
19
|
pinnedPeerId?: string;
|
|
20
20
|
/**
|
|
21
|
-
* Pin all requests to a specific
|
|
22
|
-
* Overrides the
|
|
23
|
-
* Can be updated at runtime via `antseed connection set --
|
|
21
|
+
* Pin all requests to a specific service ID for this session.
|
|
22
|
+
* Overrides the service field in the request body before routing and forwarding.
|
|
23
|
+
* Can be updated at runtime via `antseed connection set --service`.
|
|
24
24
|
*/
|
|
25
|
-
|
|
25
|
+
pinnedService?: string;
|
|
26
26
|
}
|
|
27
27
|
type PeerProtocolRoutePlan = {
|
|
28
28
|
provider: string;
|
|
@@ -32,7 +32,7 @@ export type CandidatePeerRouteSelection = {
|
|
|
32
32
|
candidatePeers: PeerInfo[];
|
|
33
33
|
routePlanByPeerId: Map<string, PeerProtocolRoutePlan>;
|
|
34
34
|
};
|
|
35
|
-
export declare function selectCandidatePeersForRouting(peers: PeerInfo[], requestProtocol:
|
|
35
|
+
export declare function selectCandidatePeersForRouting(peers: PeerInfo[], requestProtocol: ServiceApiProtocol | null, requestedService: string | null, explicitProvider: string | null): CandidatePeerRouteSelection;
|
|
36
36
|
/**
|
|
37
37
|
* Rewrite the `model` field in a JSON request body.
|
|
38
38
|
* Also updates `content-length` if present in headers.
|
|
@@ -57,7 +57,7 @@ export declare class BuyerProxy {
|
|
|
57
57
|
private readonly _bgRefreshIntervalMs;
|
|
58
58
|
private readonly _peerCacheTtlMs;
|
|
59
59
|
private _pinnedPeer;
|
|
60
|
-
private
|
|
60
|
+
private _pinnedService;
|
|
61
61
|
private _stateFileWatcher;
|
|
62
62
|
private _stateWatchDebounce;
|
|
63
63
|
private _cachedPeers;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buyer-proxy.d.ts","sourceRoot":"","sources":["../../src/proxy/buyer-proxy.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,WAAW,EAEX,QAAQ,EAMT,MAAM,eAAe,CAAA;AACtB,OAAO,EAGL,KAAK,
|
|
1
|
+
{"version":3,"file":"buyer-proxy.d.ts","sourceRoot":"","sources":["../../src/proxy/buyer-proxy.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,WAAW,EAEX,QAAQ,EAMT,MAAM,eAAe,CAAA;AACtB,OAAO,EAGL,KAAK,kBAAkB,EAEvB,KAAK,uBAAuB,EAK7B,MAAM,0BAA0B,CAAA;AAEjC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,WAAW,CAAA;IACjB,kGAAkG;IAClG,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAgCD,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,uBAAuB,GAAG,IAAI,CAAA;CAC1C,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,cAAc,EAAE,QAAQ,EAAE,CAAA;IAC1B,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;CACtD,CAAA;AAuJD,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,QAAQ,EAAE,EACjB,eAAe,EAAE,kBAAkB,GAAG,IAAI,EAC1C,gBAAgB,EAAE,MAAM,GAAG,IAAI,EAC/B,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAC9B,2BAA2B,CAoB7B;AAsiBD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,KAAK,EAAE,MAAM,GACZ;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAuBvD;AAED;;;;;;GAMG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAQ;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,iBAAiB,CAAyB;IAClD,OAAO,CAAC,mBAAmB,CAA6C;IAExE,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,qBAAqB,CAAI;IACjC,OAAO,CAAC,mBAAmB,CAAI;IAC/B,OAAO,CAAC,mBAAmB,CAAmC;IAC9D,OAAO,CAAC,sBAAsB,CAAI;IAClC,OAAO,CAAC,gBAAgB,CAA8C;IACtE,OAAO,CAAC,qBAAqB,CAAsB;IACnD,OAAO,CAAC,6BAA6B,CAA4B;gBAErD,MAAM,EAAE,gBAAgB;IAkB9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAatB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB3B,OAAO,CAAC,eAAe;YAiBT,uBAAuB;YAkBvB,eAAe;IAgC7B,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,cAAc;YA0BR,wBAAwB;YAsDxB,yBAAyB;YAezB,gBAAgB;YA+BhB,SAAS;IA2BvB,OAAO,CAAC,+BAA+B;YAuBzB,cAAc;IA0X5B;;;;OAIG;YACW,eAAe;CA2S9B"}
|