@antseed/node 0.2.82 → 0.2.83

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 (85) hide show
  1. package/package.json +1 -1
  2. package/dist/discovery/default-metadata-resolver.d.ts +0 -16
  3. package/dist/discovery/default-metadata-resolver.d.ts.map +0 -1
  4. package/dist/discovery/default-metadata-resolver.js +0 -16
  5. package/dist/discovery/default-metadata-resolver.js.map +0 -1
  6. package/dist/discovery/peer-selector.d.ts +0 -33
  7. package/dist/discovery/peer-selector.d.ts.map +0 -1
  8. package/dist/discovery/peer-selector.js +0 -80
  9. package/dist/discovery/peer-selector.js.map +0 -1
  10. package/dist/discovery/profile-manager.d.ts +0 -50
  11. package/dist/discovery/profile-manager.d.ts.map +0 -1
  12. package/dist/discovery/profile-manager.js +0 -105
  13. package/dist/discovery/profile-manager.js.map +0 -1
  14. package/dist/discovery/profile-search.d.ts +0 -27
  15. package/dist/discovery/profile-search.d.ts.map +0 -1
  16. package/dist/discovery/profile-search.js +0 -75
  17. package/dist/discovery/profile-search.js.map +0 -1
  18. package/dist/discovery/reputation-verifier.d.ts +0 -5
  19. package/dist/discovery/reputation-verifier.d.ts.map +0 -1
  20. package/dist/discovery/reputation-verifier.js +0 -5
  21. package/dist/discovery/reputation-verifier.js.map +0 -1
  22. package/dist/discovery/stats-verifier.d.ts +0 -27
  23. package/dist/discovery/stats-verifier.d.ts.map +0 -1
  24. package/dist/discovery/stats-verifier.js +0 -38
  25. package/dist/discovery/stats-verifier.js.map +0 -1
  26. package/dist/p2p/handshake.d.ts +0 -47
  27. package/dist/p2p/handshake.d.ts.map +0 -1
  28. package/dist/p2p/handshake.js +0 -107
  29. package/dist/p2p/handshake.js.map +0 -1
  30. package/dist/p2p/reconnect.d.ts +0 -48
  31. package/dist/p2p/reconnect.d.ts.map +0 -1
  32. package/dist/p2p/reconnect.js +0 -89
  33. package/dist/p2p/reconnect.js.map +0 -1
  34. package/dist/payments/disputes.d.ts +0 -18
  35. package/dist/payments/disputes.d.ts.map +0 -1
  36. package/dist/payments/disputes.js +0 -47
  37. package/dist/payments/disputes.js.map +0 -1
  38. package/dist/payments/evm/escrow-client.d.ts +0 -82
  39. package/dist/payments/evm/escrow-client.d.ts.map +0 -1
  40. package/dist/payments/evm/escrow-client.js +0 -277
  41. package/dist/payments/evm/escrow-client.js.map +0 -1
  42. package/dist/payments/evm/keypair.d.ts +0 -10
  43. package/dist/payments/evm/keypair.d.ts.map +0 -1
  44. package/dist/payments/evm/keypair.js +0 -13
  45. package/dist/payments/evm/keypair.js.map +0 -1
  46. package/dist/payments/evm/sessions-client.d.ts +0 -30
  47. package/dist/payments/evm/sessions-client.d.ts.map +0 -1
  48. package/dist/payments/evm/sessions-client.js +0 -61
  49. package/dist/payments/evm/sessions-client.js.map +0 -1
  50. package/dist/payments/evm/wallet.d.ts +0 -5
  51. package/dist/payments/evm/wallet.d.ts.map +0 -1
  52. package/dist/payments/evm/wallet.js +0 -31
  53. package/dist/payments/evm/wallet.js.map +0 -1
  54. package/dist/payments/session-store.d.ts +0 -68
  55. package/dist/payments/session-store.d.ts.map +0 -1
  56. package/dist/payments/session-store.js +0 -272
  57. package/dist/payments/session-store.js.map +0 -1
  58. package/dist/payments/settlement.d.ts +0 -6
  59. package/dist/payments/settlement.d.ts.map +0 -1
  60. package/dist/payments/settlement.js +0 -25
  61. package/dist/payments/settlement.js.map +0 -1
  62. package/dist/proxy/model-api-adapter.d.ts +0 -30
  63. package/dist/proxy/model-api-adapter.d.ts.map +0 -1
  64. package/dist/proxy/model-api-adapter.js +0 -891
  65. package/dist/proxy/model-api-adapter.js.map +0 -1
  66. package/dist/reputation/trust-engine.d.ts +0 -36
  67. package/dist/reputation/trust-engine.d.ts.map +0 -1
  68. package/dist/reputation/trust-engine.js +0 -95
  69. package/dist/reputation/trust-engine.js.map +0 -1
  70. package/dist/reputation/trust-score.d.ts +0 -43
  71. package/dist/reputation/trust-score.d.ts.map +0 -1
  72. package/dist/reputation/trust-score.js +0 -34
  73. package/dist/reputation/trust-score.js.map +0 -1
  74. package/dist/types/model-api.d.ts +0 -4
  75. package/dist/types/model-api.d.ts.map +0 -1
  76. package/dist/types/model-api.js +0 -11
  77. package/dist/types/model-api.js.map +0 -1
  78. package/dist/types/peer-profile.d.ts +0 -24
  79. package/dist/types/peer-profile.d.ts.map +0 -1
  80. package/dist/types/peer-profile.js +0 -2
  81. package/dist/types/peer-profile.js.map +0 -1
  82. package/dist/types/staking.d.ts +0 -16
  83. package/dist/types/staking.d.ts.map +0 -1
  84. package/dist/types/staking.js +0 -6
  85. package/dist/types/staking.js.map +0 -1
@@ -1,272 +0,0 @@
1
- import Database from 'better-sqlite3';
2
- import { mkdirSync } from 'node:fs';
3
- import { join } from 'node:path';
4
- export const SESSION_STATUS = {
5
- ACTIVE: 'active',
6
- SETTLED: 'settled',
7
- TIMEOUT: 'timeout',
8
- GHOST: 'ghost',
9
- };
10
- export class SessionStore {
11
- _db;
12
- // ── Cached prepared statements (compiled once, reused every call) ──
13
- /** Cached transaction function for updateDeliveredAndInsertReceipt (compiled once). */
14
- _updateDeliveredAndInsertReceiptTxn;
15
- _stmts;
16
- constructor(dataDir) {
17
- mkdirSync(dataDir, { recursive: true });
18
- this._db = new Database(join(dataDir, 'sessions.db'));
19
- this._db.pragma('journal_mode = WAL');
20
- this._createTables();
21
- this._stmts = this._prepareStatements();
22
- this._updateDeliveredAndInsertReceiptTxn = this._db.transaction((sessionId, tokens, requestCount, receipt) => {
23
- this.updateTokensDelivered(sessionId, tokens, requestCount);
24
- this.insertReceipt(receipt);
25
- });
26
- }
27
- _createTables() {
28
- this._db.exec(`
29
- CREATE TABLE IF NOT EXISTS payment_sessions (
30
- session_id TEXT PRIMARY KEY,
31
- peer_id TEXT NOT NULL,
32
- role TEXT NOT NULL,
33
- seller_evm_addr TEXT NOT NULL,
34
- buyer_evm_addr TEXT NOT NULL,
35
- nonce INTEGER NOT NULL,
36
- auth_max TEXT NOT NULL,
37
- deadline INTEGER NOT NULL,
38
- previous_session_id TEXT NOT NULL,
39
- previous_consumption TEXT NOT NULL,
40
- tokens_delivered TEXT NOT NULL DEFAULT '0',
41
- request_count INTEGER NOT NULL DEFAULT 0,
42
- reserved_at INTEGER NOT NULL,
43
- settled_at INTEGER,
44
- settled_amount TEXT,
45
- status TEXT NOT NULL DEFAULT 'active',
46
- latest_buyer_sig TEXT,
47
- latest_metadata_auth_sig TEXT,
48
- latest_metadata TEXT,
49
- created_at INTEGER NOT NULL,
50
- updated_at INTEGER NOT NULL
51
- );
52
-
53
- CREATE INDEX IF NOT EXISTS idx_sessions_peer_role_status ON payment_sessions(peer_id, role, status);
54
- `);
55
- // Migration: add columns for persisted auth sigs (v0.2.28+)
56
- const cols = this._db.pragma('table_info(payment_sessions)');
57
- const colNames = new Set(cols.map(c => c.name));
58
- if (!colNames.has('latest_buyer_sig')) {
59
- this._db.exec('ALTER TABLE payment_sessions ADD COLUMN latest_buyer_sig TEXT');
60
- }
61
- if (!colNames.has('latest_metadata_auth_sig')) {
62
- this._db.exec('ALTER TABLE payment_sessions ADD COLUMN latest_metadata_auth_sig TEXT');
63
- }
64
- if (!colNames.has('latest_metadata')) {
65
- this._db.exec('ALTER TABLE payment_sessions ADD COLUMN latest_metadata TEXT');
66
- }
67
- this._db.exec(`
68
- CREATE INDEX IF NOT EXISTS idx_sessions_status_updated ON payment_sessions(status, updated_at);
69
-
70
- CREATE TABLE IF NOT EXISTS payment_receipts (
71
- id INTEGER PRIMARY KEY AUTOINCREMENT,
72
- session_id TEXT NOT NULL,
73
- running_total TEXT NOT NULL,
74
- request_count INTEGER NOT NULL,
75
- response_hash TEXT NOT NULL,
76
- seller_sig TEXT NOT NULL,
77
- buyer_ack_sig TEXT,
78
- created_at INTEGER NOT NULL,
79
- FOREIGN KEY (session_id) REFERENCES payment_sessions(session_id)
80
- );
81
-
82
- CREATE INDEX IF NOT EXISTS idx_receipts_session ON payment_receipts(session_id);
83
- `);
84
- }
85
- _prepareStatements() {
86
- return {
87
- upsert: this._db.prepare(`
88
- INSERT INTO payment_sessions (
89
- session_id, peer_id, role, seller_evm_addr, buyer_evm_addr,
90
- nonce, auth_max, deadline, previous_session_id, previous_consumption,
91
- tokens_delivered, request_count, reserved_at, settled_at, settled_amount,
92
- status, latest_buyer_sig, latest_metadata_auth_sig, latest_metadata,
93
- created_at, updated_at
94
- ) VALUES (
95
- @sessionId, @peerId, @role, @sellerEvmAddr, @buyerEvmAddr,
96
- @nonce, @authMax, @deadline, @previousSessionId, @previousConsumption,
97
- @tokensDelivered, @requestCount, @reservedAt, @settledAt, @settledAmount,
98
- @status, @latestBuyerSig, @latestSpendingAuthSig, @latestMetadata,
99
- @createdAt, @updatedAt
100
- )
101
- ON CONFLICT(session_id) DO UPDATE SET
102
- auth_max = @authMax,
103
- tokens_delivered = @tokensDelivered,
104
- request_count = @requestCount,
105
- settled_at = @settledAt,
106
- settled_amount = @settledAmount,
107
- status = @status,
108
- latest_buyer_sig = @latestBuyerSig,
109
- latest_metadata_auth_sig = @latestSpendingAuthSig,
110
- latest_metadata = @latestMetadata,
111
- updated_at = @updatedAt
112
- `),
113
- getById: this._db.prepare('SELECT * FROM payment_sessions WHERE session_id = ?'),
114
- getActiveByPeer: this._db.prepare('SELECT * FROM payment_sessions WHERE peer_id = ? AND role = ? AND status = ? ORDER BY created_at DESC LIMIT 1'),
115
- getLatestByPeer: this._db.prepare('SELECT * FROM payment_sessions WHERE peer_id = ? AND role = ? ORDER BY created_at DESC LIMIT 1'),
116
- updateStatusWithAmount: this._db.prepare('UPDATE payment_sessions SET status = ?, settled_at = ?, settled_amount = ?, updated_at = ? WHERE session_id = ?'),
117
- updateStatus: this._db.prepare('UPDATE payment_sessions SET status = ?, updated_at = ? WHERE session_id = ?'),
118
- updateTokens: this._db.prepare('UPDATE payment_sessions SET tokens_delivered = ?, request_count = ?, updated_at = ? WHERE session_id = ?'),
119
- getMaxNonce: this._db.prepare('SELECT MAX(nonce) as max_nonce FROM payment_sessions WHERE role = ?'),
120
- listAll: this._db.prepare('SELECT * FROM payment_sessions ORDER BY updated_at DESC LIMIT ?'),
121
- getTimedOut: this._db.prepare('SELECT * FROM payment_sessions WHERE status = ? AND updated_at < ? ORDER BY updated_at LIMIT 100'),
122
- insertReceipt: this._db.prepare(`
123
- INSERT INTO payment_receipts (
124
- session_id, running_total, request_count, response_hash,
125
- seller_sig, buyer_ack_sig, created_at
126
- ) VALUES (
127
- @sessionId, @runningTotal, @requestCount, @responseHash,
128
- @sellerSig, @buyerAckSig, @createdAt
129
- )
130
- `),
131
- getReceipts: this._db.prepare('SELECT * FROM payment_receipts WHERE session_id = ? ORDER BY created_at'),
132
- updateReceiptAck: this._db.prepare('UPDATE payment_receipts SET buyer_ack_sig = ? WHERE session_id = ? AND running_total = ? AND request_count = ?'),
133
- getActiveSessions: this._db.prepare('SELECT * FROM payment_sessions WHERE role = ? AND status = ? ORDER BY created_at DESC'),
134
- };
135
- }
136
- // ── Session CRUD ──────────────────────────────────────────────
137
- upsertSession(session) {
138
- this._stmts.upsert.run({
139
- sessionId: session.sessionId,
140
- peerId: session.peerId,
141
- role: session.role,
142
- sellerEvmAddr: session.sellerEvmAddr,
143
- buyerEvmAddr: session.buyerEvmAddr,
144
- nonce: session.nonce,
145
- authMax: session.authMax,
146
- deadline: session.deadline,
147
- previousSessionId: session.previousSessionId,
148
- previousConsumption: session.previousConsumption,
149
- tokensDelivered: session.tokensDelivered,
150
- requestCount: session.requestCount,
151
- reservedAt: session.reservedAt,
152
- settledAt: session.settledAt,
153
- settledAmount: session.settledAmount,
154
- status: session.status,
155
- latestBuyerSig: session.latestBuyerSig ?? null,
156
- latestSpendingAuthSig: session.latestSpendingAuthSig ?? null,
157
- latestMetadata: session.latestMetadata ?? null,
158
- createdAt: session.createdAt,
159
- updatedAt: session.updatedAt,
160
- });
161
- }
162
- getSession(sessionId) {
163
- const row = this._stmts.getById.get(sessionId);
164
- return row ? rowToSession(row) : null;
165
- }
166
- getActiveSessionByPeer(peerId, role) {
167
- const row = this._stmts.getActiveByPeer.get(peerId, role, SESSION_STATUS.ACTIVE);
168
- return row ? rowToSession(row) : null;
169
- }
170
- getLatestSession(peerId, role) {
171
- const row = this._stmts.getLatestByPeer.get(peerId, role);
172
- return row ? rowToSession(row) : null;
173
- }
174
- updateSessionStatus(sessionId, status, settledAmount) {
175
- const now = Date.now();
176
- if (settledAmount !== undefined) {
177
- this._stmts.updateStatusWithAmount.run(status, now, settledAmount, now, sessionId);
178
- }
179
- else {
180
- this._stmts.updateStatus.run(status, now, sessionId);
181
- }
182
- }
183
- updateTokensDelivered(sessionId, tokens, requestCount) {
184
- this._stmts.updateTokens.run(tokens, requestCount, Date.now(), sessionId);
185
- }
186
- getMaxNonce(role) {
187
- const row = this._stmts.getMaxNonce.get(role);
188
- return row?.max_nonce ?? 0;
189
- }
190
- /** List all sessions ordered by most recent first. */
191
- listAllSessions(limit = 100) {
192
- const rows = this._stmts.listAll.all(limit);
193
- return rows.map(rowToSession);
194
- }
195
- /** Get all active sessions for a given role (buyer or seller). */
196
- getActiveSessions(role) {
197
- const rows = this._stmts.getActiveSessions.all(role, SESSION_STATUS.ACTIVE);
198
- return rows.map(rowToSession);
199
- }
200
- // ── Timeout queries ───────────────────────────────────────────
201
- getTimedOutSessions(timeoutSeconds) {
202
- const cutoff = Date.now() - timeoutSeconds * 1000;
203
- const rows = this._stmts.getTimedOut.all(SESSION_STATUS.ACTIVE, cutoff);
204
- return rows.map(rowToSession);
205
- }
206
- // ── Receipt CRUD ──────────────────────────────────────────────
207
- insertReceipt(receipt) {
208
- this._stmts.insertReceipt.run({
209
- sessionId: receipt.sessionId,
210
- runningTotal: receipt.runningTotal,
211
- requestCount: receipt.requestCount,
212
- responseHash: receipt.responseHash,
213
- sellerSig: receipt.sellerSig,
214
- buyerAckSig: receipt.buyerAckSig,
215
- createdAt: receipt.createdAt,
216
- });
217
- }
218
- getReceipts(sessionId) {
219
- const rows = this._stmts.getReceipts.all(sessionId);
220
- return rows.map(rowToReceipt);
221
- }
222
- /** Atomically update tokens delivered and insert receipt in a single transaction. */
223
- updateDeliveredAndInsertReceipt(sessionId, tokens, requestCount, receipt) {
224
- this._updateDeliveredAndInsertReceiptTxn(sessionId, tokens, requestCount, receipt);
225
- }
226
- /** Update receipt ack directly by composite key (no load-all-then-filter). */
227
- updateReceiptAck(sessionId, runningTotal, requestCount, buyerAckSig) {
228
- this._stmts.updateReceiptAck.run(buyerAckSig, sessionId, runningTotal, requestCount);
229
- }
230
- // ── Lifecycle ─────────────────────────────────────────────────
231
- close() {
232
- this._db.close();
233
- }
234
- }
235
- function rowToSession(row) {
236
- return {
237
- sessionId: row.session_id,
238
- peerId: row.peer_id,
239
- role: row.role,
240
- sellerEvmAddr: row.seller_evm_addr,
241
- buyerEvmAddr: row.buyer_evm_addr,
242
- nonce: row.nonce,
243
- authMax: row.auth_max,
244
- deadline: row.deadline,
245
- previousSessionId: row.previous_session_id,
246
- previousConsumption: row.previous_consumption,
247
- tokensDelivered: row.tokens_delivered,
248
- requestCount: row.request_count,
249
- reservedAt: row.reserved_at,
250
- settledAt: row.settled_at,
251
- settledAmount: row.settled_amount,
252
- status: row.status,
253
- latestBuyerSig: row.latest_buyer_sig,
254
- latestSpendingAuthSig: row.latest_metadata_auth_sig,
255
- latestMetadata: row.latest_metadata,
256
- createdAt: row.created_at,
257
- updatedAt: row.updated_at,
258
- };
259
- }
260
- function rowToReceipt(row) {
261
- return {
262
- id: row.id,
263
- sessionId: row.session_id,
264
- runningTotal: row.running_total,
265
- requestCount: row.request_count,
266
- responseHash: row.response_hash,
267
- sellerSig: row.seller_sig,
268
- buyerAckSig: row.buyer_ack_sig,
269
- createdAt: row.created_at,
270
- };
271
- }
272
- //# sourceMappingURL=session-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../src/payments/session-store.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { UsageReceipt } from '../types/metering.js';
2
- import type { SettlementResult } from './types.js';
3
- export declare function calculateSettlement(sessionId: string, receipts: UsageReceipt[], platformFeeRate: number): SettlementResult;
4
- export declare function isSettlementWithinEscrow(settlementCostUSD: number, escrowAmountUSD: number): boolean;
5
- export declare function calculateRefund(escrowAmountUSD: number, settlementCostUSD: number): number;
6
- //# sourceMappingURL=settlement.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"settlement.d.ts","sourceRoot":"","sources":["../../src/payments/settlement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,YAAY,EAAE,EACxB,eAAe,EAAE,MAAM,GACtB,gBAAgB,CAkBlB;AAED,wBAAgB,wBAAwB,CACtC,iBAAiB,EAAE,MAAM,EACzB,eAAe,EAAE,MAAM,GACtB,OAAO,CAET;AAED,wBAAgB,eAAe,CAC7B,eAAe,EAAE,MAAM,EACvB,iBAAiB,EAAE,MAAM,GACxB,MAAM,CAER"}
@@ -1,25 +0,0 @@
1
- export function calculateSettlement(sessionId, receipts, platformFeeRate) {
2
- if (platformFeeRate < 0 || platformFeeRate > 1) {
3
- throw new Error(`platformFeeRate must be between 0 and 1, got ${platformFeeRate}`);
4
- }
5
- const matching = receipts.filter((r) => r.sessionId === sessionId);
6
- const totalTokens = matching.reduce((sum, r) => sum + r.tokens.totalTokens, 0);
7
- const totalCostUSD = matching.reduce((sum, r) => sum + r.costCents, 0) / 100;
8
- const platformFeeUSD = totalCostUSD * platformFeeRate;
9
- const sellerPayoutUSD = totalCostUSD - platformFeeUSD;
10
- return {
11
- sessionId,
12
- receipts: matching,
13
- totalTokens,
14
- totalCostUSD,
15
- platformFeeUSD,
16
- sellerPayoutUSD,
17
- };
18
- }
19
- export function isSettlementWithinEscrow(settlementCostUSD, escrowAmountUSD) {
20
- return settlementCostUSD <= escrowAmountUSD;
21
- }
22
- export function calculateRefund(escrowAmountUSD, settlementCostUSD) {
23
- return Math.max(0, escrowAmountUSD - settlementCostUSD);
24
- }
25
- //# sourceMappingURL=settlement.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"settlement.js","sourceRoot":"","sources":["../../src/payments/settlement.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,mBAAmB,CACjC,SAAiB,EACjB,QAAwB,EACxB,eAAuB;IAEvB,IAAI,eAAe,GAAG,CAAC,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,gDAAgD,eAAe,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC/E,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;IAC7E,MAAM,cAAc,GAAG,YAAY,GAAG,eAAe,CAAC;IACtD,MAAM,eAAe,GAAG,YAAY,GAAG,cAAc,CAAC;IAEtD,OAAO;QACL,SAAS;QACT,QAAQ,EAAE,QAAQ;QAClB,WAAW;QACX,YAAY;QACZ,cAAc;QACd,eAAe;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,iBAAyB,EACzB,eAAuB;IAEvB,OAAO,iBAAiB,IAAI,eAAe,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,eAAuB,EACvB,iBAAyB;IAEzB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,GAAG,iBAAiB,CAAC,CAAC;AAC1D,CAAC"}
@@ -1,30 +0,0 @@
1
- import type { SerializedHttpRequest, SerializedHttpResponse } from '../types/http.js';
2
- import type { ModelApiProtocol } from '../types/model-api.js';
3
- export interface TargetProtocolSelection {
4
- targetProtocol: ModelApiProtocol;
5
- requiresTransform: boolean;
6
- }
7
- export interface AnthropicToOpenAIRequestTransformResult {
8
- request: SerializedHttpRequest;
9
- streamRequested: boolean;
10
- requestedModel: string | null;
11
- }
12
- export declare function detectRequestModelApiProtocol(request: Pick<SerializedHttpRequest, 'path' | 'headers'>): ModelApiProtocol | null;
13
- export declare function inferProviderDefaultModelApiProtocols(providerName: string): ModelApiProtocol[];
14
- export declare function selectTargetProtocolForRequest(requestProtocol: ModelApiProtocol | null, supportedProtocols: ModelApiProtocol[]): TargetProtocolSelection | null;
15
- export declare function transformAnthropicMessagesRequestToOpenAIChat(request: SerializedHttpRequest): AnthropicToOpenAIRequestTransformResult | null;
16
- export declare function transformOpenAIChatResponseToAnthropicMessage(response: SerializedHttpResponse, options: {
17
- streamRequested: boolean;
18
- fallbackModel?: string | null;
19
- }): SerializedHttpResponse;
20
- export interface ResponsesToOpenAIRequestTransformResult {
21
- request: SerializedHttpRequest;
22
- streamRequested: boolean;
23
- requestedModel: string | null;
24
- }
25
- export declare function transformOpenAIResponsesRequestToOpenAIChat(request: SerializedHttpRequest): ResponsesToOpenAIRequestTransformResult | null;
26
- export declare function transformOpenAIChatResponseToOpenAIResponses(response: SerializedHttpResponse, options: {
27
- fallbackModel?: string | null;
28
- streamRequested?: boolean;
29
- }): SerializedHttpResponse;
30
- //# sourceMappingURL=model-api-adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model-api-adapter.d.ts","sourceRoot":"","sources":["../../src/proxy/model-api-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAK9D,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,gBAAgB,CAAC;IACjC,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,uCAAuC;IACtD,OAAO,EAAE,qBAAqB,CAAC;IAC/B,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AA+VD,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,gBAAgB,GAAG,IAAI,CAsB/H;AAED,wBAAgB,qCAAqC,CAAC,YAAY,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAY9F;AAED,wBAAgB,8BAA8B,CAC5C,eAAe,EAAE,gBAAgB,GAAG,IAAI,EACxC,kBAAkB,EAAE,gBAAgB,EAAE,GACrC,uBAAuB,GAAG,IAAI,CAchC;AAED,wBAAgB,6CAA6C,CAC3D,OAAO,EAAE,qBAAqB,GAC7B,uCAAuC,GAAG,IAAI,CAmEhD;AAED,wBAAgB,6CAA6C,CAC3D,QAAQ,EAAE,sBAAsB,EAChC,OAAO,EAAE;IAAE,eAAe,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACnE,sBAAsB,CAoIxB;AAMD,MAAM,WAAW,uCAAuC;IACtD,OAAO,EAAE,qBAAqB,CAAC;IAC/B,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAgID,wBAAgB,2CAA2C,CACzD,OAAO,EAAE,qBAAqB,GAC7B,uCAAuC,GAAG,IAAI,CAgEhD;AAqLD,wBAAgB,4CAA4C,CAC1D,QAAQ,EAAE,sBAAsB,EAChC,OAAO,EAAE;IAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GACpE,sBAAsB,CA4CxB"}