@antseed/cli 0.1.142 → 0.1.144
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 +16 -0
- package/dist/cli/commands/config/index.d.ts.map +1 -1
- package/dist/cli/commands/config/index.js +9 -0
- package/dist/cli/commands/config/index.js.map +1 -1
- package/dist/cli/commands/seller/capability-prompts.d.ts +17 -0
- package/dist/cli/commands/seller/capability-prompts.d.ts.map +1 -0
- package/dist/cli/commands/seller/capability-prompts.js +123 -0
- package/dist/cli/commands/seller/capability-prompts.js.map +1 -0
- package/dist/cli/commands/seller/capability-prompts.test.d.ts +2 -0
- package/dist/cli/commands/seller/capability-prompts.test.d.ts.map +1 -0
- package/dist/cli/commands/seller/capability-prompts.test.js +99 -0
- package/dist/cli/commands/seller/capability-prompts.test.js.map +1 -0
- package/dist/cli/commands/seller/setup.d.ts.map +1 -1
- package/dist/cli/commands/seller/setup.js +12 -0
- package/dist/cli/commands/seller/setup.js.map +1 -1
- package/dist/cli/commands/seller/start.d.ts +3 -2
- package/dist/cli/commands/seller/start.d.ts.map +1 -1
- package/dist/cli/commands/seller/start.js +39 -3
- package/dist/cli/commands/seller/start.js.map +1 -1
- package/dist/cli/commands/seller/start.test.js +46 -1
- package/dist/cli/commands/seller/start.test.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +6 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/loader.test.js +33 -0
- package/dist/config/loader.test.js.map +1 -1
- package/dist/config/service-metadata.d.ts +5 -0
- package/dist/config/service-metadata.d.ts.map +1 -0
- package/dist/config/service-metadata.js +47 -0
- package/dist/config/service-metadata.js.map +1 -0
- package/dist/config/service-metadata.test.d.ts +2 -0
- package/dist/config/service-metadata.test.d.ts.map +1 -0
- package/dist/config/service-metadata.test.js +18 -0
- package/dist/config/service-metadata.test.js.map +1 -0
- package/dist/config/types.d.ts +5 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/validation.d.ts.map +1 -1
- package/dist/config/validation.js +2 -0
- package/dist/config/validation.js.map +1 -1
- package/dist/proxy/buyer-proxy.d.ts +17 -0
- package/dist/proxy/buyer-proxy.d.ts.map +1 -1
- package/dist/proxy/buyer-proxy.js +118 -22
- package/dist/proxy/buyer-proxy.js.map +1 -1
- package/dist/proxy/buyer-proxy.test.js +78 -3
- package/dist/proxy/buyer-proxy.test.js.map +1 -1
- package/dist/proxy/conversation-store.d.ts +6 -1
- package/dist/proxy/conversation-store.d.ts.map +1 -1
- package/dist/proxy/conversation-store.js +9 -2
- package/dist/proxy/conversation-store.js.map +1 -1
- package/dist/proxy/conversation-store.test.js +24 -0
- package/dist/proxy/conversation-store.test.js.map +1 -1
- package/dist/proxy/routing-parameters.test.d.ts +2 -0
- package/dist/proxy/routing-parameters.test.d.ts.map +1 -0
- package/dist/proxy/routing-parameters.test.js +97 -0
- package/dist/proxy/routing-parameters.test.js.map +1 -0
- package/dist/proxy/routing.d.ts +8 -0
- package/dist/proxy/routing.d.ts.map +1 -1
- package/dist/proxy/routing.js +36 -1
- package/dist/proxy/routing.js.map +1 -1
- package/dist/proxy/service-api-adapter.d.ts +1 -1
- package/dist/proxy/service-api-adapter.d.ts.map +1 -1
- package/dist/proxy/service-api-adapter.js +1 -1
- package/dist/proxy/service-api-adapter.js.map +1 -1
- package/package.json +6 -6
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { parseServiceCapabilitiesJson, parseServiceUnitBillingModelsJson, } from '@antseed/provider-core';
|
|
2
|
+
const SYNTHETIC_SERVICE_ID = '__service__';
|
|
3
|
+
function parseJson(raw, label) {
|
|
4
|
+
try {
|
|
5
|
+
return JSON.parse(raw);
|
|
6
|
+
}
|
|
7
|
+
catch {
|
|
8
|
+
throw new Error(`${label} must be valid JSON`);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export function parseServiceCapabilitiesInput(raw, label = 'Service capabilities') {
|
|
12
|
+
const parsed = parseJson(raw, label);
|
|
13
|
+
const capabilities = parseServiceCapabilitiesJson(JSON.stringify({ [SYNTHETIC_SERVICE_ID]: parsed }), label)?.[SYNTHETIC_SERVICE_ID];
|
|
14
|
+
if (!capabilities) {
|
|
15
|
+
throw new Error(`${label} must define at least one capability`);
|
|
16
|
+
}
|
|
17
|
+
return capabilities;
|
|
18
|
+
}
|
|
19
|
+
export function parseServiceUnitBillingModelsInput(raw, label = 'Service unit billing models') {
|
|
20
|
+
const parsed = parseJson(raw, label);
|
|
21
|
+
const models = parseServiceUnitBillingModelsJson(JSON.stringify({ [SYNTHETIC_SERVICE_ID]: parsed }), label)?.[SYNTHETIC_SERVICE_ID];
|
|
22
|
+
if (!models) {
|
|
23
|
+
throw new Error(`${label} must define at least one protocol model`);
|
|
24
|
+
}
|
|
25
|
+
return models;
|
|
26
|
+
}
|
|
27
|
+
export function validateServiceMetadata(path, service) {
|
|
28
|
+
const errors = [];
|
|
29
|
+
if (service.capabilities !== undefined) {
|
|
30
|
+
try {
|
|
31
|
+
parseServiceCapabilitiesJson(JSON.stringify({ [SYNTHETIC_SERVICE_ID]: service.capabilities }), `${path}.capabilities`);
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
errors.push(error.message.replace(`.${SYNTHETIC_SERVICE_ID}`, ''));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (service.unitBillingModels !== undefined) {
|
|
38
|
+
try {
|
|
39
|
+
parseServiceUnitBillingModelsJson(JSON.stringify({ [SYNTHETIC_SERVICE_ID]: service.unitBillingModels }), `${path}.unitBillingModels`);
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
errors.push(error.message.replace(`.${SYNTHETIC_SERVICE_ID}`, ''));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return errors;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=service-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-metadata.js","sourceRoot":"","sources":["../../src/config/service-metadata.ts"],"names":[],"mappings":"AACA,OAAO,EACL,4BAA4B,EAC5B,iCAAiC,GAClC,MAAM,wBAAwB,CAAC;AAGhC,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAE3C,SAAS,SAAS,CAAC,GAAW,EAAE,KAAa;IAC3C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,qBAAqB,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,GAAW,EACX,KAAK,GAAG,sBAAsB;IAE9B,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,4BAA4B,CAC/C,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC,EAClD,KAAK,CACN,EAAE,CAAC,oBAAoB,CAAC,CAAC;IAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,sCAAsC,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,GAAW,EACX,KAAK,GAAG,6BAA6B;IAErC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,iCAAiC,CAC9C,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC,EAClD,KAAK,CACN,EAAE,CAAC,oBAAoB,CAAC,CAAC;IAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,0CAA0C,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,IAAY,EACZ,OAAwE;IAExE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,4BAA4B,CAC1B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,EAChE,GAAG,IAAI,eAAe,CACvB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAE,KAAe,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,iCAAiC,CAC/B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC,iBAAiB,EAAuC,CAAC,EAC1G,GAAG,IAAI,oBAAoB,CAC5B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAE,KAAe,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-metadata.test.d.ts","sourceRoot":"","sources":["../../src/config/service-metadata.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import test from 'node:test';
|
|
3
|
+
import { parseServiceCapabilitiesInput, parseServiceUnitBillingModelsInput, } from './service-metadata.js';
|
|
4
|
+
test('parseServiceCapabilitiesInput validates CLI capability JSON', () => {
|
|
5
|
+
assert.deepEqual(parseServiceCapabilitiesInput('{"contextWindow":200000,"inputs":["text","image"],"toolUse":true}'), { contextWindow: 200000, inputs: ['text', 'image'], toolUse: true });
|
|
6
|
+
assert.throws(() => parseServiceCapabilitiesInput('{"inputs":["telepathy"]}'), /Unsupported input modality/);
|
|
7
|
+
});
|
|
8
|
+
test('parseServiceUnitBillingModelsInput validates CLI billing JSON', () => {
|
|
9
|
+
const models = parseServiceUnitBillingModelsInput(JSON.stringify({
|
|
10
|
+
'openai-images': {
|
|
11
|
+
version: 1,
|
|
12
|
+
components: [{ unit: 'output_images', priceUsd: 0.04, match: { quality: 'high' } }],
|
|
13
|
+
},
|
|
14
|
+
}));
|
|
15
|
+
assert.equal(models['openai-images']?.components[0]?.priceUsd, 0.04);
|
|
16
|
+
assert.throws(() => parseServiceUnitBillingModelsInput('{"unknown":{"version":1,"components":[]}}'), /known service API protocol/);
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=service-metadata.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-metadata.test.js","sourceRoot":"","sources":["../../src/config/service-metadata.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,6BAA6B,EAC7B,kCAAkC,GACnC,MAAM,uBAAuB,CAAC;AAE/B,IAAI,CAAC,6DAA6D,EAAE,GAAG,EAAE;IACvE,MAAM,CAAC,SAAS,CACd,6BAA6B,CAAC,mEAAmE,CAAC,EAClG,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CACpE,CAAC;IACF,MAAM,CAAC,MAAM,CACX,GAAG,EAAE,CAAC,6BAA6B,CAAC,0BAA0B,CAAC,EAC/D,4BAA4B,CAC7B,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+DAA+D,EAAE,GAAG,EAAE;IACzE,MAAM,MAAM,GAAG,kCAAkC,CAAC,IAAI,CAAC,SAAS,CAAC;QAC/D,eAAe,EAAE;YACf,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;SACpF;KACF,CAAC,CAAC,CAAC;IACJ,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrE,MAAM,CAAC,MAAM,CACX,GAAG,EAAE,CAAC,kCAAkC,CAAC,2CAA2C,CAAC,EACrF,4BAA4B,CAC7B,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
package/dist/config/types.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ServiceApiProtocol, ServiceCapabilities, UnitBillingModelV1 } from '@antseed/node';
|
|
1
2
|
/**
|
|
2
3
|
* Dual token pricing in USD per 1M tokens.
|
|
3
4
|
*/
|
|
@@ -30,6 +31,10 @@ export interface SellerServiceConfig {
|
|
|
30
31
|
* defaults are used.
|
|
31
32
|
*/
|
|
32
33
|
pricing?: TokenPricingUsdPerMillion;
|
|
34
|
+
/** Model capability hints announced to buyers for this service. */
|
|
35
|
+
capabilities?: ServiceCapabilities;
|
|
36
|
+
/** Per-protocol non-token billing models for this service. */
|
|
37
|
+
unitBillingModels?: Partial<Record<ServiceApiProtocol, UnitBillingModelV1>>;
|
|
33
38
|
}
|
|
34
39
|
/**
|
|
35
40
|
* Per-provider seller configuration.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,yBAAyB,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;OAGG;IACH,OAAO,CAAC,EAAE,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,aAAa,EAGd,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,aAAa,EAGd,MAAM,YAAY,CAAC;AAiBpB,eAAO,MAAM,mCAAmC,MAAM,CAAC;AAiRvD;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAyG9D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAK7D"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { validateServiceMetadata } from './service-metadata.js';
|
|
1
2
|
const SERVICE_CATEGORY_PATTERN = /^[a-z0-9][a-z0-9-]*$/;
|
|
2
3
|
const MAX_PUBLIC_ADDRESS_LENGTH = 255;
|
|
3
4
|
const MAX_DOMAIN_VERIFICATION_CLAIMS = 5;
|
|
@@ -82,6 +83,7 @@ function validateSellerProviders(path, providers, errors) {
|
|
|
82
83
|
validatePricingLeaf(`${servicePath}.pricing`, serviceCfg.pricing, errors);
|
|
83
84
|
}
|
|
84
85
|
validateCategoryList(`${servicePath}.categories`, serviceCfg.categories, errors);
|
|
86
|
+
errors.push(...validateServiceMetadata(servicePath, serviceCfg));
|
|
85
87
|
}
|
|
86
88
|
}
|
|
87
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,23 @@ export declare function parsePersistedPeers(parsed: unknown, nowMs?: number, max
|
|
|
48
48
|
* Antseed P2P network.
|
|
49
49
|
*/
|
|
50
50
|
export declare function makeVerifierReach(node: Pick<AntseedNode, 'sendRequest'>, peer: PeerInfo, chosenId: string, signal: AbortSignal): SellerReach;
|
|
51
|
+
/**
|
|
52
|
+
* Rename with a short bounded retry. On Windows, renaming over a file a
|
|
53
|
+
* reader briefly holds open fails with EPERM/EACCES/EBUSY; those clear within
|
|
54
|
+
* milliseconds, so retrying recovers the write instead of dropping it.
|
|
55
|
+
*/
|
|
56
|
+
export declare function renameWithRetry(from: string, to: string): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Delete leftover `.buyer.state.<uuid>.json.tmp` files from state writes whose
|
|
59
|
+
* rename failed in an earlier run. The age floor protects a temp file another
|
|
60
|
+
* process (e.g. `antseed buyer connection set`) is writing right now.
|
|
61
|
+
*/
|
|
62
|
+
export declare function sweepStaleStateTmpFiles(dir: string, minAgeMs?: number): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Atomic read-merge-write of a JSON state file via a sibling temp file. The
|
|
65
|
+
* temp file never survives: a failed rename unlinks it before rethrowing.
|
|
66
|
+
*/
|
|
67
|
+
export declare function mergeJsonStateFile(stateDir: string, stateFile: string, patch: Record<string, unknown>): Promise<void>;
|
|
51
68
|
export declare class BuyerProxy {
|
|
52
69
|
private readonly _server;
|
|
53
70
|
private readonly _node;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buyer-proxy.d.ts","sourceRoot":"","sources":["../../src/proxy/buyer-proxy.ts"],"names":[],"mappings":"AAKA,OAAO,
|
|
1
|
+
{"version":3,"file":"buyer-proxy.d.ts","sourceRoot":"","sources":["../../src/proxy/buyer-proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { createServer } from 'node:http';
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
3
|
import { watchFile, unwatchFile } from 'node:fs';
|
|
4
|
-
import { readFile, writeFile, rename, mkdir } from 'node:fs/promises';
|
|
4
|
+
import { readFile, writeFile, rename, mkdir, readdir, stat, unlink } from 'node:fs/promises';
|
|
5
5
|
import { join } from 'node:path';
|
|
6
|
-
import { ANTSEED_ATTEST_PATH, computeOnChainReputationScore, decodeSweepRequest, } from '@antseed/node';
|
|
6
|
+
import { ANTSEED_ATTEST_PATH, computeOnChainReputationScore, decodeSweepRequest, peerSupportsCooperativeClose, } from '@antseed/node';
|
|
7
7
|
import { createStreamingAdapter, detectRequestServiceApiProtocol, transformRequest, transformResponse, } from './service-api-adapter.js';
|
|
8
8
|
import { DEBUG, log, extractRequestedService, summarizeRequestShape, summarizeErrorResponse, requestWantsStreaming, parsePeerPinnedService, rewritePeerPinnedServiceInBody, substituteRoutedModelAlias, overrideRoutedModelInBody, ROUTED_MODEL_ALIAS, SYSTEM_PROXY_SOURCE_HEADER, SYSTEM_ROUTED_MODEL_HEADER, } from './request-utils.js';
|
|
9
|
-
import { getExplicitProviderOverride, getExplicitPeerIdOverride, resolvePeerRoutePlan, selectCandidatePeersForRouting, } from './routing.js';
|
|
9
|
+
import { findUnannouncedRequestParameters, getExplicitProviderOverride, getExplicitPeerIdOverride, resolvePeerRoutePlan, selectCandidatePeersForRouting, } from './routing.js';
|
|
10
10
|
import { computeResponseTelemetry, attachAntseedTelemetryHeaders, attachStreamingAntseedHeaders, } from './telemetry.js';
|
|
11
11
|
import { DEFAULT_BUYER_PEER_REFRESH_INTERVAL_MS } from '../config/defaults.js';
|
|
12
12
|
import { extractConversationIdentity, extractFirstUserSnippet, isCompletionRequestPath, isTitleGenerationRequest, parseRequestBodyObject, } from './conversation-identity.js';
|
|
@@ -65,7 +65,9 @@ function adaptOpenAICompatibleErrorResponse(response, requestProtocol) {
|
|
|
65
65
|
if (response.statusCode !== 402) {
|
|
66
66
|
return response;
|
|
67
67
|
}
|
|
68
|
-
if (requestProtocol !== 'openai-responses'
|
|
68
|
+
if (requestProtocol !== 'openai-responses'
|
|
69
|
+
&& requestProtocol !== 'openai-chat-completions'
|
|
70
|
+
&& requestProtocol !== 'openai-images') {
|
|
69
71
|
return response;
|
|
70
72
|
}
|
|
71
73
|
let parsed = null;
|
|
@@ -309,6 +311,82 @@ export function makeVerifierReach(node, peer, chosenId, signal) {
|
|
|
309
311
|
return { statusCode: resp.statusCode, headers: resp.headers, body: resp.body };
|
|
310
312
|
};
|
|
311
313
|
}
|
|
314
|
+
const STATE_TMP_PATTERN = /^\.buyer\.state\..+\.json\.tmp$/;
|
|
315
|
+
const STATE_TMP_SWEEP_MIN_AGE_MS = 60_000;
|
|
316
|
+
const STATE_RENAME_RETRY_DELAYS_MS = [25, 50, 100, 200];
|
|
317
|
+
/**
|
|
318
|
+
* Rename with a short bounded retry. On Windows, renaming over a file a
|
|
319
|
+
* reader briefly holds open fails with EPERM/EACCES/EBUSY; those clear within
|
|
320
|
+
* milliseconds, so retrying recovers the write instead of dropping it.
|
|
321
|
+
*/
|
|
322
|
+
export async function renameWithRetry(from, to) {
|
|
323
|
+
for (let attempt = 0;; attempt++) {
|
|
324
|
+
try {
|
|
325
|
+
await rename(from, to);
|
|
326
|
+
return;
|
|
327
|
+
}
|
|
328
|
+
catch (err) {
|
|
329
|
+
const code = err.code;
|
|
330
|
+
const retryable = code === 'EPERM' || code === 'EACCES' || code === 'EBUSY';
|
|
331
|
+
if (!retryable || attempt >= STATE_RENAME_RETRY_DELAYS_MS.length)
|
|
332
|
+
throw err;
|
|
333
|
+
await new Promise((resolve) => setTimeout(resolve, STATE_RENAME_RETRY_DELAYS_MS[attempt]));
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Delete leftover `.buyer.state.<uuid>.json.tmp` files from state writes whose
|
|
339
|
+
* rename failed in an earlier run. The age floor protects a temp file another
|
|
340
|
+
* process (e.g. `antseed buyer connection set`) is writing right now.
|
|
341
|
+
*/
|
|
342
|
+
export async function sweepStaleStateTmpFiles(dir, minAgeMs = STATE_TMP_SWEEP_MIN_AGE_MS) {
|
|
343
|
+
let names;
|
|
344
|
+
try {
|
|
345
|
+
names = await readdir(dir);
|
|
346
|
+
}
|
|
347
|
+
catch {
|
|
348
|
+
return;
|
|
349
|
+
}
|
|
350
|
+
const now = Date.now();
|
|
351
|
+
for (const name of names) {
|
|
352
|
+
if (!STATE_TMP_PATTERN.test(name))
|
|
353
|
+
continue;
|
|
354
|
+
const filePath = join(dir, name);
|
|
355
|
+
try {
|
|
356
|
+
const info = await stat(filePath);
|
|
357
|
+
if (now - info.mtimeMs >= minAgeMs)
|
|
358
|
+
await unlink(filePath);
|
|
359
|
+
}
|
|
360
|
+
catch {
|
|
361
|
+
// already gone or unreadable; nothing to clean
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Atomic read-merge-write of a JSON state file via a sibling temp file. The
|
|
367
|
+
* temp file never survives: a failed rename unlinks it before rethrowing.
|
|
368
|
+
*/
|
|
369
|
+
export async function mergeJsonStateFile(stateDir, stateFile, patch) {
|
|
370
|
+
await mkdir(stateDir, { recursive: true });
|
|
371
|
+
let existing = {};
|
|
372
|
+
try {
|
|
373
|
+
const raw = await readFile(stateFile, 'utf-8');
|
|
374
|
+
existing = JSON.parse(raw);
|
|
375
|
+
}
|
|
376
|
+
catch {
|
|
377
|
+
// file doesn't exist yet
|
|
378
|
+
}
|
|
379
|
+
const data = { ...existing, ...patch };
|
|
380
|
+
const tmp = join(stateDir, `.buyer.state.${randomUUID()}.json.tmp`);
|
|
381
|
+
await writeFile(tmp, JSON.stringify(data, null, 2));
|
|
382
|
+
try {
|
|
383
|
+
await renameWithRetry(tmp, stateFile);
|
|
384
|
+
}
|
|
385
|
+
catch (err) {
|
|
386
|
+
await unlink(tmp).catch(() => { });
|
|
387
|
+
throw err;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
312
390
|
export class BuyerProxy {
|
|
313
391
|
_server;
|
|
314
392
|
_node;
|
|
@@ -437,6 +515,10 @@ export class BuyerProxy {
|
|
|
437
515
|
}
|
|
438
516
|
async start() {
|
|
439
517
|
this._startedAtMs = Date.now();
|
|
518
|
+
// Clean up temp files orphaned by state writes whose rename failed in a
|
|
519
|
+
// previous run — each carries a full discovered-peers snapshot, so left
|
|
520
|
+
// alone they accumulate into real disk usage.
|
|
521
|
+
await sweepStaleStateTmpFiles(this._stateDir);
|
|
440
522
|
// Hydrate the in-memory peer cache from the persisted state file BEFORE
|
|
441
523
|
// the server starts accepting requests. This lets the first request after
|
|
442
524
|
// startup route from the warm cache without blocking on DHT discovery.
|
|
@@ -554,22 +636,13 @@ export class BuyerProxy {
|
|
|
554
636
|
_mergeStateFile(patch) {
|
|
555
637
|
this._stateWriteChain = this._stateWriteChain.then(async () => {
|
|
556
638
|
try {
|
|
557
|
-
await
|
|
558
|
-
let existing = {};
|
|
559
|
-
try {
|
|
560
|
-
const raw = await readFile(this._stateFile, 'utf-8');
|
|
561
|
-
existing = JSON.parse(raw);
|
|
562
|
-
}
|
|
563
|
-
catch {
|
|
564
|
-
// file doesn't exist yet
|
|
565
|
-
}
|
|
566
|
-
const data = { ...existing, ...patch };
|
|
567
|
-
const tmp = join(this._stateDir, `.buyer.state.${randomUUID()}.json.tmp`);
|
|
568
|
-
await writeFile(tmp, JSON.stringify(data, null, 2));
|
|
569
|
-
await rename(tmp, this._stateFile);
|
|
639
|
+
await mergeJsonStateFile(this._stateDir, this._stateFile, patch);
|
|
570
640
|
}
|
|
571
|
-
catch {
|
|
572
|
-
//
|
|
641
|
+
catch (err) {
|
|
642
|
+
// Non-fatal for the proxy, but the write itself is lost — session
|
|
643
|
+
// pin, default route, and peer-cache updates in this patch were not
|
|
644
|
+
// persisted. Always audible: state writes are minutes apart.
|
|
645
|
+
console.error('[proxy] buyer.state.json write failed:', err instanceof Error ? err.message : String(err));
|
|
573
646
|
}
|
|
574
647
|
}).catch(() => { });
|
|
575
648
|
return this._stateWriteChain;
|
|
@@ -984,8 +1057,11 @@ export class BuyerProxy {
|
|
|
984
1057
|
res.end(JSON.stringify({ ok: false, error: 'pinnedModel must be "<peerId>@<service>" (or empty to clear)' }));
|
|
985
1058
|
return;
|
|
986
1059
|
}
|
|
987
|
-
|
|
988
|
-
|
|
1060
|
+
// 'user' marks a seller the user chose for this specific chat — the
|
|
1061
|
+
// desktop's re-point sweep skips those; everything else stays 'auto'.
|
|
1062
|
+
const peerSource = parsed.peerSource === 'user' ? 'user' : 'auto';
|
|
1063
|
+
conversation = this._conversations.setPinnedModel(id, pin.length > 0 ? pin : null, peerSource);
|
|
1064
|
+
log(`Conversation ${id.slice(0, 40)} pin: ${pin || 'cleared'}${pin ? ` (${peerSource})` : ''}`);
|
|
989
1065
|
}
|
|
990
1066
|
if ('label' in parsed) {
|
|
991
1067
|
const label = typeof parsed.label === 'string' ? parsed.label : null;
|
|
@@ -1048,8 +1124,17 @@ export class BuyerProxy {
|
|
|
1048
1124
|
const channels = all
|
|
1049
1125
|
? this._node.getAllBuyerChannels()
|
|
1050
1126
|
: this._node.getActiveBuyerChannels();
|
|
1127
|
+
const peers = await this._getPeers();
|
|
1128
|
+
const peersById = new Map(peers.map((peer) => [peer.peerId, peer]));
|
|
1129
|
+
const channelsWithCapabilities = channels.map((channel) => {
|
|
1130
|
+
const peer = peersById.get(channel.peerId);
|
|
1131
|
+
return {
|
|
1132
|
+
...channel,
|
|
1133
|
+
cooperativeCloseSupported: peer ? peerSupportsCooperativeClose(peer) : false,
|
|
1134
|
+
};
|
|
1135
|
+
});
|
|
1051
1136
|
res.writeHead(200, { 'content-type': 'application/json' });
|
|
1052
|
-
res.end(JSON.stringify({ ok: true, channels }));
|
|
1137
|
+
res.end(JSON.stringify({ ok: true, channels: channelsWithCapabilities }));
|
|
1053
1138
|
return;
|
|
1054
1139
|
}
|
|
1055
1140
|
if (path.startsWith('/_antseed/buyer-usage') && method === 'GET') {
|
|
@@ -1168,6 +1253,8 @@ export class BuyerProxy {
|
|
|
1168
1253
|
const isKnownApiPath = normalizedPath.startsWith('/v1/messages') ||
|
|
1169
1254
|
normalizedPath.startsWith('/v1/chat/completions') ||
|
|
1170
1255
|
normalizedPath.startsWith('/v1/responses') ||
|
|
1256
|
+
normalizedPath.startsWith('/v1/images/generations') ||
|
|
1257
|
+
normalizedPath.startsWith('/v1/images/edits') ||
|
|
1171
1258
|
normalizedPath.startsWith('/v1/models');
|
|
1172
1259
|
if (!isKnownApiPath) {
|
|
1173
1260
|
res.writeHead(404, { 'content-type': 'application/json' });
|
|
@@ -1589,6 +1676,15 @@ export class BuyerProxy {
|
|
|
1589
1676
|
if (!selectedRoutePlan) {
|
|
1590
1677
|
return { done: false, statusCode: 502, responseBody: Buffer.from('No compatible provider route'), responseHeaders: { 'content-type': 'text/plain' }, errorMessage: null };
|
|
1591
1678
|
}
|
|
1679
|
+
// Soft supportedParameters check — only for direct routes, since a
|
|
1680
|
+
// protocol transform rebuilds the body for the target protocol anyway.
|
|
1681
|
+
if (!selectedRoutePlan.selection?.requiresTransform) {
|
|
1682
|
+
const unannounced = findUnannouncedRequestParameters(selectedPeer, selectedRoutePlan.provider, requestedService, requestProtocol, serializedReq);
|
|
1683
|
+
if (unannounced.length > 0) {
|
|
1684
|
+
log(`Warning: request to "${requestedService}" carries parameters peer ${selectedPeer.peerId.slice(0, 12)} `
|
|
1685
|
+
+ `did not announce for this service: ${unannounced.join(', ')} — the upstream may ignore or reject them`);
|
|
1686
|
+
}
|
|
1687
|
+
}
|
|
1592
1688
|
const { 'x-antseed-pin-peer': _pinPeer, 'x-antseed-prefer-peer': _preferPeer, ...headersForPeer } = serializedReq.headers;
|
|
1593
1689
|
let requestForPeer = {
|
|
1594
1690
|
...serializedReq,
|