@antseed/cli 0.1.22 → 0.1.24
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 +32 -0
- package/dist/cli/commands/connect.d.ts.map +1 -1
- package/dist/cli/commands/connect.js +81 -4
- package/dist/cli/commands/connect.js.map +1 -1
- package/dist/cli/commands/connection.d.ts +3 -0
- package/dist/cli/commands/connection.d.ts.map +1 -0
- package/dist/cli/commands/connection.js +128 -0
- package/dist/cli/commands/connection.js.map +1 -0
- package/dist/cli/commands/seed.d.ts.map +1 -1
- package/dist/cli/commands/seed.js +5 -2
- package/dist/cli/commands/seed.js.map +1 -1
- package/dist/cli/index.js +4 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/config/types.d.ts +9 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/proxy/buyer-proxy.d.ts +38 -4
- package/dist/proxy/buyer-proxy.d.ts.map +1 -1
- package/dist/proxy/buyer-proxy.js +675 -80
- package/dist/proxy/buyer-proxy.js.map +1 -1
- package/dist/proxy/buyer-proxy.test.js +79 -1
- package/dist/proxy/buyer-proxy.test.js.map +1 -1
- package/package.json +5 -4
|
@@ -5,7 +5,11 @@ export interface BuyerProxyConfig {
|
|
|
5
5
|
node: AntseedNode;
|
|
6
6
|
/** How often to refresh the peer list from DHT in the background (ms). Default: 300000 (5 min) */
|
|
7
7
|
backgroundRefreshIntervalMs?: number;
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* Max age for the in-memory peer cache before it is treated as stale (ms).
|
|
10
|
+
* Stale caches can still be used for routing while background refresh repopulates.
|
|
11
|
+
* Default: 30000 (30s).
|
|
12
|
+
*/
|
|
9
13
|
peerCacheTtlMs?: number;
|
|
10
14
|
/**
|
|
11
15
|
* Pin all requests to a specific peer ID for this session.
|
|
@@ -13,6 +17,12 @@ export interface BuyerProxyConfig {
|
|
|
13
17
|
* and protocol-compatible. A 502 is returned if the peer cannot be reached.
|
|
14
18
|
*/
|
|
15
19
|
pinnedPeerId?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Pin all requests to a specific model ID for this session.
|
|
22
|
+
* Overrides the model field in the request body before routing and forwarding.
|
|
23
|
+
* Can be updated at runtime via `antseed connection set --model`.
|
|
24
|
+
*/
|
|
25
|
+
pinnedModel?: string;
|
|
16
26
|
}
|
|
17
27
|
type PeerProtocolRoutePlan = {
|
|
18
28
|
provider: string;
|
|
@@ -23,6 +33,16 @@ export type CandidatePeerRouteSelection = {
|
|
|
23
33
|
routePlanByPeerId: Map<string, PeerProtocolRoutePlan>;
|
|
24
34
|
};
|
|
25
35
|
export declare function selectCandidatePeersForRouting(peers: PeerInfo[], requestProtocol: ModelApiProtocol | null, requestedModel: string | null, explicitProvider: string | null): CandidatePeerRouteSelection;
|
|
36
|
+
/**
|
|
37
|
+
* Rewrite the `model` field in a JSON request body.
|
|
38
|
+
* Also updates `content-length` if present in headers.
|
|
39
|
+
* Returns the original body/headers unchanged if the body is not JSON,
|
|
40
|
+
* is empty, or cannot be parsed.
|
|
41
|
+
*/
|
|
42
|
+
export declare function rewriteModelInBody(body: Uint8Array, headers: Record<string, string>, model: string): {
|
|
43
|
+
body: Uint8Array;
|
|
44
|
+
headers: Record<string, string>;
|
|
45
|
+
};
|
|
26
46
|
/**
|
|
27
47
|
* Local HTTP proxy that forwards requests to P2P sellers.
|
|
28
48
|
*
|
|
@@ -36,19 +56,33 @@ export declare class BuyerProxy {
|
|
|
36
56
|
private readonly _port;
|
|
37
57
|
private readonly _bgRefreshIntervalMs;
|
|
38
58
|
private readonly _peerCacheTtlMs;
|
|
39
|
-
private
|
|
59
|
+
private _pinnedPeer;
|
|
60
|
+
private _pinnedModel;
|
|
61
|
+
private _stateFileWatcher;
|
|
62
|
+
private _stateWatchDebounce;
|
|
40
63
|
private _cachedPeers;
|
|
41
64
|
private _cacheLastUpdatedAtMs;
|
|
65
|
+
private _cacheMutationEpoch;
|
|
66
|
+
private _peerRefreshPromise;
|
|
67
|
+
private _lastStaleCacheLogAtMs;
|
|
42
68
|
private _bgRefreshHandle;
|
|
69
|
+
private _lastSuccessfulPeerId;
|
|
70
|
+
private _lastSuccessfulPeerByRouteKey;
|
|
43
71
|
constructor(config: BuyerProxyConfig);
|
|
44
72
|
start(): Promise<void>;
|
|
45
73
|
stop(): Promise<void>;
|
|
74
|
+
private _watchStateFile;
|
|
75
|
+
private _reloadSessionOverrides;
|
|
76
|
+
private _writeStateFile;
|
|
46
77
|
private _startBackgroundRefresh;
|
|
47
|
-
private _mergePeers;
|
|
48
78
|
private _replacePeers;
|
|
49
79
|
private _evictPeer;
|
|
80
|
+
private _rememberSuccessfulPeer;
|
|
81
|
+
private _forgetSuccessfulPeer;
|
|
82
|
+
private _buildRouteKey;
|
|
50
83
|
private _readLocalSeederFallback;
|
|
51
|
-
private
|
|
84
|
+
private _discoverPeersFromNetwork;
|
|
85
|
+
private _refreshPeersNow;
|
|
52
86
|
private _getPeers;
|
|
53
87
|
private _formatPeerSelectionDiagnostics;
|
|
54
88
|
private _handleRequest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buyer-proxy.d.ts","sourceRoot":"","sources":["../../src/proxy/buyer-proxy.ts"],"names":[],"mappings":"
|
|
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,gBAAgB,EAErB,KAAK,uBAAuB,EAG7B,MAAM,wBAAwB,CAAA;AAE/B,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,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;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,gBAAgB,GAAG,IAAI,EACxC,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,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,YAAY,CAAe;IACnC,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;YAwBR,wBAAwB;YAsDxB,yBAAyB;YAezB,gBAAgB;YA+BhB,SAAS;IA2BvB,OAAO,CAAC,+BAA+B;YAuBzB,cAAc;IA0X5B;;;;OAIG;YACW,eAAe;CAmR9B"}
|