drain-mcp 0.2.5 → 0.3.1
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/dist/index.js +25 -7
- package/dist/index.js.map +1 -1
- package/dist/services/provider.d.ts +3 -0
- package/dist/services/provider.d.ts.map +1 -1
- package/dist/services/provider.js.map +1 -1
- package/dist/services/telemetry.d.ts +27 -0
- package/dist/services/telemetry.d.ts.map +1 -0
- package/dist/services/telemetry.js +31 -0
- package/dist/services/telemetry.js.map +1 -0
- package/dist/tools/channel.d.ts.map +1 -1
- package/dist/tools/channel.js +5 -0
- package/dist/tools/channel.js.map +1 -1
- package/dist/tools/chat.d.ts +2 -1
- package/dist/tools/chat.d.ts.map +1 -1
- package/dist/tools/chat.js +34 -20
- package/dist/tools/chat.js.map +1 -1
- package/dist/tools/feedback.d.ts +43 -0
- package/dist/tools/feedback.d.ts.map +1 -0
- package/dist/tools/feedback.js +87 -0
- package/dist/tools/feedback.js.map +1 -0
- package/dist/tools/mpp.d.ts +60 -0
- package/dist/tools/mpp.d.ts.map +1 -0
- package/dist/tools/mpp.js +161 -0
- package/dist/tools/mpp.js.map +1 -0
- package/dist/tools/providers.d.ts +7 -0
- package/dist/tools/providers.d.ts.map +1 -1
- package/dist/tools/providers.js +25 -7
- package/dist/tools/providers.js.map +1 -1
- package/package.json +6 -4
package/dist/index.js
CHANGED
|
@@ -39,7 +39,7 @@ ENVIRONMENT VARIABLES:
|
|
|
39
39
|
DRAIN_MARKETPLACE_URL Marketplace base URL
|
|
40
40
|
|
|
41
41
|
MCP TOOLS PROVIDED:
|
|
42
|
-
drain_providers List service providers (filter by model, category)
|
|
42
|
+
drain_providers List service providers (filter by model, category, protocol)
|
|
43
43
|
drain_provider_info Provider details + usage instructions (docs)
|
|
44
44
|
drain_balance Check wallet USDC balance and allowance
|
|
45
45
|
drain_approve Approve USDC spending for the DRAIN contract
|
|
@@ -48,7 +48,13 @@ MCP TOOLS PROVIDED:
|
|
|
48
48
|
drain_cooperative_close Close channel immediately (provider co-signs)
|
|
49
49
|
drain_channel_status Check channel status and balance
|
|
50
50
|
drain_channels List all known channels with status
|
|
51
|
-
drain_chat Send a paid request
|
|
51
|
+
drain_chat Send a paid request via DRAIN channel
|
|
52
|
+
mpp_chat Send a per-request payment to an MPP provider
|
|
53
|
+
drain_feedback Report quality feedback (success/failure)
|
|
54
|
+
|
|
55
|
+
PROTOCOLS:
|
|
56
|
+
DRAIN — Payment channels on Polygon. Use drain_open_channel -> drain_chat.
|
|
57
|
+
MPP — Per-request HTTP 402 payments. Use mpp_chat directly.
|
|
52
58
|
|
|
53
59
|
PROVIDER CATEGORIES:
|
|
54
60
|
llm, image, audio, code, scraping, vpn, multi-modal, other
|
|
@@ -71,10 +77,13 @@ import { WalletService } from './services/wallet.js';
|
|
|
71
77
|
import { ChannelService } from './services/channel.js';
|
|
72
78
|
import { ProviderService } from './services/provider.js';
|
|
73
79
|
import { InferenceService } from './services/inference.js';
|
|
80
|
+
import { TelemetryService } from './services/telemetry.js';
|
|
74
81
|
import { providerTools, listProviders, getProvider } from './tools/providers.js';
|
|
75
82
|
import { balanceTools, getBalance, approveUsdc } from './tools/balance.js';
|
|
76
83
|
import { channelTools, openChannel, closeChannel, cooperativeClose, getChannelStatus, listChannels } from './tools/channel.js';
|
|
77
84
|
import { chatTools, chat } from './tools/chat.js';
|
|
85
|
+
import { mppTools, mppChat } from './tools/mpp.js';
|
|
86
|
+
import { feedbackTools, submitFeedback } from './tools/feedback.js';
|
|
78
87
|
// ============================================================================
|
|
79
88
|
// SERVER SETUP
|
|
80
89
|
// ============================================================================
|
|
@@ -85,20 +94,19 @@ class DrainMcpServer {
|
|
|
85
94
|
channelService;
|
|
86
95
|
providerService;
|
|
87
96
|
inferenceService;
|
|
97
|
+
telemetryService;
|
|
88
98
|
constructor() {
|
|
89
|
-
// Load configuration
|
|
90
99
|
this.config = loadConfig();
|
|
91
|
-
// Create clients
|
|
92
100
|
const { account, walletClient, publicClient } = createClients(this.config);
|
|
93
|
-
// Initialize services
|
|
94
101
|
this.walletService = new WalletService(publicClient, walletClient, account, this.config);
|
|
95
102
|
this.channelService = new ChannelService(publicClient, walletClient, account, this.config);
|
|
96
103
|
this.providerService = new ProviderService(this.config);
|
|
97
104
|
this.inferenceService = new InferenceService(this.channelService);
|
|
105
|
+
this.telemetryService = new TelemetryService(this.config, account.address);
|
|
98
106
|
// Create MCP server
|
|
99
107
|
this.server = new Server({
|
|
100
108
|
name: 'drain-mcp',
|
|
101
|
-
version: '0.
|
|
109
|
+
version: '0.3.0',
|
|
102
110
|
}, {
|
|
103
111
|
capabilities: {
|
|
104
112
|
tools: {},
|
|
@@ -115,6 +123,8 @@ class DrainMcpServer {
|
|
|
115
123
|
...balanceTools,
|
|
116
124
|
...channelTools,
|
|
117
125
|
...chatTools,
|
|
126
|
+
...mppTools,
|
|
127
|
+
...feedbackTools,
|
|
118
128
|
],
|
|
119
129
|
}));
|
|
120
130
|
// Handle tool calls
|
|
@@ -155,7 +165,15 @@ class DrainMcpServer {
|
|
|
155
165
|
break;
|
|
156
166
|
// Chat tools
|
|
157
167
|
case 'drain_chat':
|
|
158
|
-
result = await chat(this.channelService, this.providerService, this.inferenceService, args);
|
|
168
|
+
result = await chat(this.channelService, this.providerService, this.inferenceService, this.telemetryService, args);
|
|
169
|
+
break;
|
|
170
|
+
// MPP tools
|
|
171
|
+
case 'mpp_chat':
|
|
172
|
+
result = await mppChat(this.providerService, this.telemetryService, args);
|
|
173
|
+
break;
|
|
174
|
+
// Feedback tools
|
|
175
|
+
case 'drain_feedback':
|
|
176
|
+
result = await submitFeedback(this.config, args);
|
|
159
177
|
break;
|
|
160
178
|
default:
|
|
161
179
|
throw new Error(`Unknown tool: ${name}`);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAEH,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/services/provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QACP,gBAAgB,EAAE,MAAM,CAAC;QACzB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,aAAa,GAAG,UAAU,GAAG,KAAK,GAAG,OAAO,CAAC;AAEjH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QACN,MAAM,EAAE,OAAO,CAAC;QAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC;IACF,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,qBAAa,eAAe;IAMd,OAAO,CAAC,MAAM;IAL1B,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,SAAS,CAAkC;gBAE/B,MAAM,EAAE,WAAW;IAEvC;;OAEG;IACG,YAAY,CAAC,YAAY,UAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAkC7D;;OAEG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAK/D;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAOvD;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAK/C;;;OAGG;IACG,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAkB3D;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAiBlE"}
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/services/provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QACP,gBAAgB,EAAE,MAAM,CAAC;QACzB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,aAAa,GAAG,UAAU,GAAG,KAAK,GAAG,OAAO,CAAC;AAEjH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QACN,MAAM,EAAE,OAAO,CAAC;QAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC;IACF,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,qBAAa,eAAe;IAMd,OAAO,CAAC,MAAM;IAL1B,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,SAAS,CAAkC;gBAE/B,MAAM,EAAE,WAAW;IAEvC;;OAEG;IACG,YAAY,CAAC,YAAY,UAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAkC7D;;OAEG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAK/D;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAOvD;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAK/C;;;OAGG;IACG,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAkB3D;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAiBlE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/services/provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/services/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Telemetry Service
|
|
3
|
+
*
|
|
4
|
+
* Fire-and-forget reporting of agent usage data to the marketplace.
|
|
5
|
+
* Never blocks or throws — failures are silently ignored.
|
|
6
|
+
*/
|
|
7
|
+
import type { DrainConfig } from '../config.js';
|
|
8
|
+
interface TelemetryEvent {
|
|
9
|
+
providerId: string;
|
|
10
|
+
latencyMs: number;
|
|
11
|
+
httpStatus: number;
|
|
12
|
+
costUsdc: number;
|
|
13
|
+
protocol: string;
|
|
14
|
+
timestamp: string;
|
|
15
|
+
agentId?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare class TelemetryService {
|
|
18
|
+
private endpoint;
|
|
19
|
+
private agentId;
|
|
20
|
+
constructor(config: DrainConfig, agentAddress?: string);
|
|
21
|
+
/**
|
|
22
|
+
* Report a provider interaction. Fire-and-forget — never blocks, never throws.
|
|
23
|
+
*/
|
|
24
|
+
report(event: Omit<TelemetryEvent, 'timestamp' | 'agentId'>): void;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=telemetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/services/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,UAAU,cAAc;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAqB;gBAExB,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,MAAM;IAKtD;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC,GAAG,IAAI;CAcnE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Telemetry Service
|
|
3
|
+
*
|
|
4
|
+
* Fire-and-forget reporting of agent usage data to the marketplace.
|
|
5
|
+
* Never blocks or throws — failures are silently ignored.
|
|
6
|
+
*/
|
|
7
|
+
export class TelemetryService {
|
|
8
|
+
endpoint;
|
|
9
|
+
agentId;
|
|
10
|
+
constructor(config, agentAddress) {
|
|
11
|
+
this.endpoint = `${config.marketplaceBaseUrl}/api/telemetry`;
|
|
12
|
+
this.agentId = agentAddress;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Report a provider interaction. Fire-and-forget — never blocks, never throws.
|
|
16
|
+
*/
|
|
17
|
+
report(event) {
|
|
18
|
+
const payload = {
|
|
19
|
+
...event,
|
|
20
|
+
timestamp: new Date().toISOString(),
|
|
21
|
+
agentId: this.agentId,
|
|
22
|
+
};
|
|
23
|
+
fetch(this.endpoint, {
|
|
24
|
+
method: 'POST',
|
|
25
|
+
headers: { 'Content-Type': 'application/json' },
|
|
26
|
+
body: JSON.stringify(payload),
|
|
27
|
+
signal: AbortSignal.timeout(5000),
|
|
28
|
+
}).catch(() => { });
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/services/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,MAAM,OAAO,gBAAgB;IACnB,QAAQ,CAAS;IACjB,OAAO,CAAqB;IAEpC,YAAY,MAAmB,EAAE,YAAqB;QACpD,IAAI,CAAC,QAAQ,GAAG,GAAG,MAAM,CAAC,kBAAkB,gBAAgB,CAAC;QAC7D,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAoD;QACzD,MAAM,OAAO,GAAmB;YAC9B,GAAG,KAAK;YACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;QAEF,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC7B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/tools/channel.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAuB/D,wBAAsB,WAAW,CAC/B,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE;IACJ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,GACA,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/tools/channel.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAuB/D,wBAAsB,WAAW,CAC/B,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE;IACJ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,GACA,OAAO,CAAC,MAAM,CAAC,CAsGjB;AAED,wBAAsB,YAAY,CAChC,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAC1B,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED,wBAAsB,gBAAgB,CACpC,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAC1B,OAAO,CAAC,MAAM,CAAC,CAwCjB;AAED,wBAAsB,gBAAgB,CACpC,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAC1B,OAAO,CAAC,MAAM,CAAC,CA0BjB;AAED,wBAAsB,YAAY,CAChC,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,MAAM,CAAC,CAgCjB;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6GxB,CAAC"}
|
package/dist/tools/channel.js
CHANGED
|
@@ -38,6 +38,11 @@ export async function openChannel(channelService, providerService, args) {
|
|
|
38
38
|
if (!provider) {
|
|
39
39
|
throw new Error(`Provider "${args.provider}" not found. Use drain_providers to list available providers.`);
|
|
40
40
|
}
|
|
41
|
+
if ((provider.protocol || 'drain') === 'mpp') {
|
|
42
|
+
const endpoint = provider.mppEndpoint || provider.apiUrl;
|
|
43
|
+
throw new Error(`"${provider.name}" is an MPP provider — no payment channel needed. ` +
|
|
44
|
+
`Use mpp_chat(provider: "${endpoint}", messages: [...]) instead.`);
|
|
45
|
+
}
|
|
41
46
|
providerAddress = provider.providerAddress;
|
|
42
47
|
providerName = provider.name;
|
|
43
48
|
resolvedProvider = provider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/tools/channel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/tools/channel.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/chat.d.ts
CHANGED
|
@@ -6,10 +6,11 @@
|
|
|
6
6
|
import type { ChannelService } from '../services/channel.js';
|
|
7
7
|
import type { ProviderService } from '../services/provider.js';
|
|
8
8
|
import type { InferenceService, ChatMessage } from '../services/inference.js';
|
|
9
|
+
import type { TelemetryService } from '../services/telemetry.js';
|
|
9
10
|
/**
|
|
10
11
|
* Make a chat completion request
|
|
11
12
|
*/
|
|
12
|
-
export declare function chat(channelService: ChannelService, providerService: ProviderService, inferenceService: InferenceService, args: {
|
|
13
|
+
export declare function chat(channelService: ChannelService, providerService: ProviderService, inferenceService: InferenceService, telemetryService: TelemetryService, args: {
|
|
13
14
|
channelId: string;
|
|
14
15
|
model: string;
|
|
15
16
|
messages: ChatMessage[];
|
package/dist/tools/chat.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/tools/chat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/tools/chat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE;;GAEG;AACH,wBAAsB,IAAI,CACxB,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE;IACJ,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACA,OAAO,CAAC,MAAM,CAAC,CA6DjB;AAaD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DrB,CAAC"}
|
package/dist/tools/chat.js
CHANGED
|
@@ -6,15 +6,13 @@
|
|
|
6
6
|
/**
|
|
7
7
|
* Make a chat completion request
|
|
8
8
|
*/
|
|
9
|
-
export async function chat(channelService, providerService, inferenceService, args) {
|
|
9
|
+
export async function chat(channelService, providerService, inferenceService, telemetryService, args) {
|
|
10
10
|
const channelId = args.channelId;
|
|
11
|
-
|
|
11
|
+
const start = Date.now();
|
|
12
12
|
const channel = await channelService.getChannel(channelId);
|
|
13
13
|
if (channel.isExpired) {
|
|
14
14
|
throw new Error('Channel has expired. Open a new channel to continue.');
|
|
15
15
|
}
|
|
16
|
-
// Find provider — prefer stored ID (handles multiple providers sharing one wallet),
|
|
17
|
-
// fall back to address match for channels opened before this fix
|
|
18
16
|
const providers = await providerService.getProviders();
|
|
19
17
|
const storedProviderId = channelService.getProviderId(channelId);
|
|
20
18
|
const provider = storedProviderId
|
|
@@ -23,27 +21,43 @@ export async function chat(channelService, providerService, inferenceService, ar
|
|
|
23
21
|
if (!provider) {
|
|
24
22
|
throw new Error(`Provider ${channel.provider} not found in directory. The channel may be for an unlisted provider.`);
|
|
25
23
|
}
|
|
26
|
-
// Check model is available
|
|
27
24
|
const modelInfo = provider.models.find(m => m.id === args.model);
|
|
28
25
|
if (!modelInfo) {
|
|
29
26
|
const availableModels = provider.models.map(m => m.id).join(', ');
|
|
30
27
|
throw new Error(`Model "${args.model}" not available from this provider. Available: ${availableModels}`);
|
|
31
28
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
29
|
+
try {
|
|
30
|
+
const response = await inferenceService.chat(provider, channelId, {
|
|
31
|
+
model: args.model,
|
|
32
|
+
messages: args.messages,
|
|
33
|
+
max_tokens: args.maxTokens,
|
|
34
|
+
temperature: args.temperature,
|
|
35
|
+
});
|
|
36
|
+
const latency = Date.now() - start;
|
|
37
|
+
const cost = response.drain?.cost ?? '0';
|
|
38
|
+
const costUsdc = parseFloat(cost) / 1_000_000;
|
|
39
|
+
telemetryService.report({
|
|
40
|
+
providerId: provider.id,
|
|
41
|
+
latencyMs: latency,
|
|
42
|
+
httpStatus: 200,
|
|
43
|
+
costUsdc: isNaN(costUsdc) ? 0 : costUsdc,
|
|
44
|
+
protocol: 'drain',
|
|
45
|
+
});
|
|
46
|
+
const assistantMessage = response.choices[0]?.message?.content ?? '';
|
|
47
|
+
const totalSpent = response.drain?.totalSpent ?? 'unknown';
|
|
48
|
+
return `${assistantMessage}\n\n---\n*Cost: $${formatCost(cost)} USDC | Total spent: $${formatCost(totalSpent)} USDC | Tokens: ${response.usage.total_tokens}*`;
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
const latency = Date.now() - start;
|
|
52
|
+
telemetryService.report({
|
|
53
|
+
providerId: provider.id,
|
|
54
|
+
latencyMs: latency,
|
|
55
|
+
httpStatus: 0,
|
|
56
|
+
costUsdc: 0,
|
|
57
|
+
protocol: 'drain',
|
|
58
|
+
});
|
|
59
|
+
throw error;
|
|
60
|
+
}
|
|
47
61
|
}
|
|
48
62
|
/**
|
|
49
63
|
* Format cost for display
|
package/dist/tools/chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/tools/chat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/tools/chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Feedback Tool
|
|
3
|
+
*
|
|
4
|
+
* Optional quality report after using a provider.
|
|
5
|
+
* Agents report success/failure + optional failure reason.
|
|
6
|
+
*/
|
|
7
|
+
import type { DrainConfig } from '../config.js';
|
|
8
|
+
export declare function submitFeedback(config: DrainConfig, args: {
|
|
9
|
+
providerId: string;
|
|
10
|
+
outcome: 'success' | 'failure';
|
|
11
|
+
reason?: string;
|
|
12
|
+
protocol?: string;
|
|
13
|
+
}): Promise<string>;
|
|
14
|
+
export declare const feedbackTools: {
|
|
15
|
+
name: string;
|
|
16
|
+
description: string;
|
|
17
|
+
inputSchema: {
|
|
18
|
+
type: string;
|
|
19
|
+
properties: {
|
|
20
|
+
providerId: {
|
|
21
|
+
type: string;
|
|
22
|
+
description: string;
|
|
23
|
+
};
|
|
24
|
+
outcome: {
|
|
25
|
+
type: string;
|
|
26
|
+
enum: string[];
|
|
27
|
+
description: string;
|
|
28
|
+
};
|
|
29
|
+
reason: {
|
|
30
|
+
type: string;
|
|
31
|
+
enum: string[];
|
|
32
|
+
description: string;
|
|
33
|
+
};
|
|
34
|
+
protocol: {
|
|
35
|
+
type: string;
|
|
36
|
+
enum: string[];
|
|
37
|
+
description: string;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
required: string[];
|
|
41
|
+
};
|
|
42
|
+
}[];
|
|
43
|
+
//# sourceMappingURL=feedback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../src/tools/feedback.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,wBAAsB,cAAc,CAClC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE;IACJ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,OAAO,CAAC,MAAM,CAAC,CAwCjB;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCzB,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Feedback Tool
|
|
3
|
+
*
|
|
4
|
+
* Optional quality report after using a provider.
|
|
5
|
+
* Agents report success/failure + optional failure reason.
|
|
6
|
+
*/
|
|
7
|
+
export async function submitFeedback(config, args) {
|
|
8
|
+
if (!args.providerId) {
|
|
9
|
+
return 'Error: providerId is required.';
|
|
10
|
+
}
|
|
11
|
+
if (args.outcome !== 'success' && args.outcome !== 'failure') {
|
|
12
|
+
return 'Error: outcome must be "success" or "failure".';
|
|
13
|
+
}
|
|
14
|
+
const validReasons = ['quality', 'timeout', 'error', 'format', 'unavailable'];
|
|
15
|
+
if (args.reason && !validReasons.includes(args.reason)) {
|
|
16
|
+
return `Error: reason must be one of: ${validReasons.join(', ')}`;
|
|
17
|
+
}
|
|
18
|
+
if (args.outcome === 'success' && args.reason) {
|
|
19
|
+
return 'Error: reason should only be provided for failures.';
|
|
20
|
+
}
|
|
21
|
+
const body = {
|
|
22
|
+
providerId: args.providerId,
|
|
23
|
+
outcome: args.outcome,
|
|
24
|
+
protocol: args.protocol || 'drain',
|
|
25
|
+
};
|
|
26
|
+
if (args.reason)
|
|
27
|
+
body.reason = args.reason;
|
|
28
|
+
try {
|
|
29
|
+
const res = await fetch(`${config.marketplaceBaseUrl}/api/feedback`, {
|
|
30
|
+
method: 'POST',
|
|
31
|
+
headers: { 'Content-Type': 'application/json' },
|
|
32
|
+
body: JSON.stringify(body),
|
|
33
|
+
signal: AbortSignal.timeout(5000),
|
|
34
|
+
});
|
|
35
|
+
if (!res.ok) {
|
|
36
|
+
const data = await res.json().catch(() => ({}));
|
|
37
|
+
return `Feedback rejected: ${data.error || res.statusText}`;
|
|
38
|
+
}
|
|
39
|
+
return `Feedback submitted: ${args.outcome}${args.reason ? ` (${args.reason})` : ''} for provider ${args.providerId}`;
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return 'Feedback could not be submitted (network error). This is non-critical.';
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export const feedbackTools = [
|
|
46
|
+
{
|
|
47
|
+
name: 'drain_feedback',
|
|
48
|
+
description: `Report quality feedback for a provider interaction. Optional but encouraged.
|
|
49
|
+
|
|
50
|
+
Use this after completing a session with a provider to report whether the interaction was successful or not. This helps improve provider quality scores on the marketplace.
|
|
51
|
+
|
|
52
|
+
For failures, include a reason to help diagnose issues:
|
|
53
|
+
- "quality" — output was incorrect or low quality
|
|
54
|
+
- "timeout" — provider took too long to respond
|
|
55
|
+
- "error" — provider returned an error
|
|
56
|
+
- "format" — response format was wrong or unparseable
|
|
57
|
+
- "unavailable" — provider was unreachable
|
|
58
|
+
|
|
59
|
+
Works for both DRAIN and MPP providers.`,
|
|
60
|
+
inputSchema: {
|
|
61
|
+
type: 'object',
|
|
62
|
+
properties: {
|
|
63
|
+
providerId: {
|
|
64
|
+
type: 'string',
|
|
65
|
+
description: 'The provider ID (from drain_providers output)',
|
|
66
|
+
},
|
|
67
|
+
outcome: {
|
|
68
|
+
type: 'string',
|
|
69
|
+
enum: ['success', 'failure'],
|
|
70
|
+
description: 'Whether the interaction was successful',
|
|
71
|
+
},
|
|
72
|
+
reason: {
|
|
73
|
+
type: 'string',
|
|
74
|
+
enum: ['quality', 'timeout', 'error', 'format', 'unavailable'],
|
|
75
|
+
description: 'Failure reason (only for outcome="failure")',
|
|
76
|
+
},
|
|
77
|
+
protocol: {
|
|
78
|
+
type: 'string',
|
|
79
|
+
enum: ['drain', 'mpp'],
|
|
80
|
+
description: 'Protocol used (defaults to "drain")',
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
required: ['providerId', 'outcome'],
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
];
|
|
87
|
+
//# sourceMappingURL=feedback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/tools/feedback.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAmB,EACnB,IAKC;IAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,gCAAgC,CAAC;IAC1C,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC7D,OAAO,gDAAgD,CAAC;IAC1D,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC9E,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACvD,OAAO,iCAAiC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACpE,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9C,OAAO,qDAAqD,CAAC;IAC/D,CAAC;IAED,MAAM,IAAI,GAA2B;QACnC,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,OAAO;KACnC,CAAC;IACF,IAAI,IAAI,CAAC,MAAM;QAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAE3C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,kBAAkB,eAAe,EAAE;YACnE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAA2B,CAAC;YAC1E,OAAO,sBAAsB,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QAC9D,CAAC;QAED,OAAO,uBAAuB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,iBAAiB,IAAI,CAAC,UAAU,EAAE,CAAC;IACxH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,wEAAwE,CAAC;IAClF,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE;;;;;;;;;;;wCAWuB;QACpC,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+CAA+C;iBAC7D;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;oBAC5B,WAAW,EAAE,wCAAwC;iBACtD;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC;oBAC9D,WAAW,EAAE,6CAA6C;iBAC3D;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;oBACtB,WAAW,EAAE,qCAAqC;iBACnD;aACF;YACD,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;SACpC;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MPP Chat Tool
|
|
3
|
+
*
|
|
4
|
+
* Per-request payments via HTTP 402 protocol.
|
|
5
|
+
* Calls MPP-compatible endpoints without payment channels.
|
|
6
|
+
*/
|
|
7
|
+
import type { ProviderService } from '../services/provider.js';
|
|
8
|
+
import type { TelemetryService } from '../services/telemetry.js';
|
|
9
|
+
import type { ChatMessage } from '../services/inference.js';
|
|
10
|
+
export declare function mppChat(providerService: ProviderService, telemetryService: TelemetryService, args: {
|
|
11
|
+
provider: string;
|
|
12
|
+
messages: ChatMessage[];
|
|
13
|
+
model?: string;
|
|
14
|
+
maxTokens?: number;
|
|
15
|
+
temperature?: number;
|
|
16
|
+
}): Promise<string>;
|
|
17
|
+
export declare const mppTools: {
|
|
18
|
+
name: string;
|
|
19
|
+
description: string;
|
|
20
|
+
inputSchema: {
|
|
21
|
+
type: string;
|
|
22
|
+
properties: {
|
|
23
|
+
provider: {
|
|
24
|
+
type: string;
|
|
25
|
+
description: string;
|
|
26
|
+
};
|
|
27
|
+
messages: {
|
|
28
|
+
type: string;
|
|
29
|
+
description: string;
|
|
30
|
+
items: {
|
|
31
|
+
type: string;
|
|
32
|
+
properties: {
|
|
33
|
+
role: {
|
|
34
|
+
type: string;
|
|
35
|
+
enum: string[];
|
|
36
|
+
};
|
|
37
|
+
content: {
|
|
38
|
+
type: string;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
required: string[];
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
model: {
|
|
45
|
+
type: string;
|
|
46
|
+
description: string;
|
|
47
|
+
};
|
|
48
|
+
maxTokens: {
|
|
49
|
+
type: string;
|
|
50
|
+
description: string;
|
|
51
|
+
};
|
|
52
|
+
temperature: {
|
|
53
|
+
type: string;
|
|
54
|
+
description: string;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
required: string[];
|
|
58
|
+
};
|
|
59
|
+
}[];
|
|
60
|
+
//# sourceMappingURL=mpp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mpp.d.ts","sourceRoot":"","sources":["../../src/tools/mpp.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,wBAAsB,OAAO,CAC3B,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE;IACJ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACA,OAAO,CAAC,MAAM,CAAC,CAiHjB;AAED,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDpB,CAAC"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MPP Chat Tool
|
|
3
|
+
*
|
|
4
|
+
* Per-request payments via HTTP 402 protocol.
|
|
5
|
+
* Calls MPP-compatible endpoints without payment channels.
|
|
6
|
+
*/
|
|
7
|
+
export async function mppChat(providerService, telemetryService, args) {
|
|
8
|
+
if (!args.provider) {
|
|
9
|
+
return 'Error: provider is required (provider ID or MPP endpoint URL).';
|
|
10
|
+
}
|
|
11
|
+
let endpoint;
|
|
12
|
+
let providerId;
|
|
13
|
+
if (args.provider.startsWith('http')) {
|
|
14
|
+
endpoint = args.provider;
|
|
15
|
+
providerId = args.provider;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
const p = await providerService.getProvider(args.provider);
|
|
19
|
+
if (!p)
|
|
20
|
+
return `Error: Provider "${args.provider}" not found.`;
|
|
21
|
+
endpoint = p.mppEndpoint || `${p.apiUrl}/v1/chat/completions`;
|
|
22
|
+
providerId = p.id;
|
|
23
|
+
}
|
|
24
|
+
const body = {
|
|
25
|
+
messages: args.messages,
|
|
26
|
+
};
|
|
27
|
+
if (args.model)
|
|
28
|
+
body.model = args.model;
|
|
29
|
+
if (args.maxTokens)
|
|
30
|
+
body.max_tokens = args.maxTokens;
|
|
31
|
+
if (args.temperature !== undefined)
|
|
32
|
+
body.temperature = args.temperature;
|
|
33
|
+
const start = Date.now();
|
|
34
|
+
let httpStatus = 0;
|
|
35
|
+
try {
|
|
36
|
+
const res = await fetch(endpoint, {
|
|
37
|
+
method: 'POST',
|
|
38
|
+
headers: { 'Content-Type': 'application/json' },
|
|
39
|
+
body: JSON.stringify(body),
|
|
40
|
+
});
|
|
41
|
+
httpStatus = res.status;
|
|
42
|
+
const latency = Date.now() - start;
|
|
43
|
+
if (res.status === 402) {
|
|
44
|
+
const wwwAuth = res.headers.get('www-authenticate') || '';
|
|
45
|
+
const paymentInfo = res.headers.get('x-payment') || '';
|
|
46
|
+
telemetryService.report({
|
|
47
|
+
providerId,
|
|
48
|
+
latencyMs: latency,
|
|
49
|
+
httpStatus: 402,
|
|
50
|
+
costUsdc: 0,
|
|
51
|
+
protocol: 'mpp',
|
|
52
|
+
});
|
|
53
|
+
return [
|
|
54
|
+
'Payment required (HTTP 402). This MPP provider requires per-request payment.',
|
|
55
|
+
'',
|
|
56
|
+
wwwAuth ? `WWW-Authenticate: ${wwwAuth}` : '',
|
|
57
|
+
paymentInfo ? `X-Payment: ${paymentInfo}` : '',
|
|
58
|
+
'',
|
|
59
|
+
'To complete the payment, the agent needs an MPP payment handler (e.g. mppx).',
|
|
60
|
+
'For providers using Tempo/Stripe, configure payment credentials in your environment.',
|
|
61
|
+
].filter(Boolean).join('\n');
|
|
62
|
+
}
|
|
63
|
+
if (!res.ok) {
|
|
64
|
+
const errorData = await res.json().catch(() => ({}));
|
|
65
|
+
const errorMsg = typeof errorData.error === 'string'
|
|
66
|
+
? errorData.error
|
|
67
|
+
: errorData.error?.message ?? res.statusText;
|
|
68
|
+
telemetryService.report({
|
|
69
|
+
providerId,
|
|
70
|
+
latencyMs: latency,
|
|
71
|
+
httpStatus: res.status,
|
|
72
|
+
costUsdc: 0,
|
|
73
|
+
protocol: 'mpp',
|
|
74
|
+
});
|
|
75
|
+
return `Error from MPP provider: ${errorMsg} (HTTP ${res.status})`;
|
|
76
|
+
}
|
|
77
|
+
const data = await res.json();
|
|
78
|
+
const costHeader = res.headers.get('x-cost') || res.headers.get('x-drain-cost');
|
|
79
|
+
const cost = costHeader ? parseFloat(costHeader) / 1_000_000 : 0;
|
|
80
|
+
telemetryService.report({
|
|
81
|
+
providerId,
|
|
82
|
+
latencyMs: latency,
|
|
83
|
+
httpStatus: 200,
|
|
84
|
+
costUsdc: cost,
|
|
85
|
+
protocol: 'mpp',
|
|
86
|
+
});
|
|
87
|
+
const content = data.choices?.[0]?.message?.content
|
|
88
|
+
?? data.result
|
|
89
|
+
?? JSON.stringify(data);
|
|
90
|
+
const tokens = data.usage?.total_tokens ?? '';
|
|
91
|
+
const costStr = cost > 0 ? ` | Cost: $${cost.toFixed(6)}` : '';
|
|
92
|
+
const tokenStr = tokens ? ` | Tokens: ${tokens}` : '';
|
|
93
|
+
return `${content}\n\n---\n*MPP request completed in ${latency}ms${costStr}${tokenStr}*`;
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
const latency = Date.now() - start;
|
|
97
|
+
telemetryService.report({
|
|
98
|
+
providerId,
|
|
99
|
+
latencyMs: latency,
|
|
100
|
+
httpStatus: httpStatus || 0,
|
|
101
|
+
costUsdc: 0,
|
|
102
|
+
protocol: 'mpp',
|
|
103
|
+
});
|
|
104
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
105
|
+
return `MPP request failed: ${msg}`;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
export const mppTools = [
|
|
109
|
+
{
|
|
110
|
+
name: 'mpp_chat',
|
|
111
|
+
description: `Send a per-request payment call to an MPP provider (HTTP 402 protocol).
|
|
112
|
+
|
|
113
|
+
No payment channel needed. Each request is paid individually.
|
|
114
|
+
|
|
115
|
+
Use this for providers with protocol="mpp" in drain_providers output.
|
|
116
|
+
For DRAIN providers, use drain_chat instead (requires an open channel).
|
|
117
|
+
|
|
118
|
+
If the provider returns HTTP 402, payment details will be shown.
|
|
119
|
+
Some MPP providers may respond directly without 402 if pre-authorized.`,
|
|
120
|
+
inputSchema: {
|
|
121
|
+
type: 'object',
|
|
122
|
+
properties: {
|
|
123
|
+
provider: {
|
|
124
|
+
type: 'string',
|
|
125
|
+
description: 'Provider ID (from drain_providers) or direct MPP endpoint URL',
|
|
126
|
+
},
|
|
127
|
+
messages: {
|
|
128
|
+
type: 'array',
|
|
129
|
+
description: 'Chat messages [{role, content}] or structured request',
|
|
130
|
+
items: {
|
|
131
|
+
type: 'object',
|
|
132
|
+
properties: {
|
|
133
|
+
role: {
|
|
134
|
+
type: 'string',
|
|
135
|
+
enum: ['system', 'user', 'assistant'],
|
|
136
|
+
},
|
|
137
|
+
content: {
|
|
138
|
+
type: 'string',
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
required: ['role', 'content'],
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
model: {
|
|
145
|
+
type: 'string',
|
|
146
|
+
description: 'Model ID (optional, depends on provider)',
|
|
147
|
+
},
|
|
148
|
+
maxTokens: {
|
|
149
|
+
type: 'number',
|
|
150
|
+
description: 'Maximum tokens (optional)',
|
|
151
|
+
},
|
|
152
|
+
temperature: {
|
|
153
|
+
type: 'number',
|
|
154
|
+
description: 'Temperature 0-2 (optional)',
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
required: ['provider', 'messages'],
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
];
|
|
161
|
+
//# sourceMappingURL=mpp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mpp.js","sourceRoot":"","sources":["../../src/tools/mpp.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ export declare function listProviders(providerService: ProviderService, args: {
|
|
|
6
6
|
onlineOnly?: boolean;
|
|
7
7
|
model?: string;
|
|
8
8
|
category?: string;
|
|
9
|
+
protocol?: string;
|
|
9
10
|
}): Promise<string>;
|
|
10
11
|
export declare function getProvider(providerService: ProviderService, args: {
|
|
11
12
|
provider?: string;
|
|
@@ -29,6 +30,11 @@ export declare const providerTools: ({
|
|
|
29
30
|
type: string;
|
|
30
31
|
description: string;
|
|
31
32
|
};
|
|
33
|
+
protocol: {
|
|
34
|
+
type: string;
|
|
35
|
+
enum: string[];
|
|
36
|
+
description: string;
|
|
37
|
+
};
|
|
32
38
|
provider?: undefined;
|
|
33
39
|
};
|
|
34
40
|
required?: undefined;
|
|
@@ -46,6 +52,7 @@ export declare const providerTools: ({
|
|
|
46
52
|
onlineOnly?: undefined;
|
|
47
53
|
model?: undefined;
|
|
48
54
|
category?: undefined;
|
|
55
|
+
protocol?: undefined;
|
|
49
56
|
};
|
|
50
57
|
required: string[];
|
|
51
58
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/tools/providers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/tools/providers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,yBAAyB,CAAC;AAsCzE,wBAAsB,aAAa,CACjC,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACnF,OAAO,CAAC,MAAM,CAAC,CAmCjB;AAED,wBAAsB,WAAW,CAC/B,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/C,OAAO,CAAC,MAAM,CAAC,CAoBjB;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuDzB,CAAC"}
|
package/dist/tools/providers.js
CHANGED
|
@@ -14,14 +14,19 @@ function formatProvider(p) {
|
|
|
14
14
|
const latency = p.status.latencyMs ? `${p.status.latencyMs}ms` : 'N/A';
|
|
15
15
|
const docsUrl = p.docsUrl || `${p.apiUrl}/v1/docs`;
|
|
16
16
|
const models = p.models.map(m => ` - ${m.name} (${formatPricing(m)})`).join('\n');
|
|
17
|
+
const protocol = p.protocol || 'drain';
|
|
18
|
+
const quality = p.qualityScore && p.qualityScore > 0 ? ` | Q: ${p.qualityScore.toFixed(2)}` : '';
|
|
19
|
+
const tool = protocol === 'mpp' ? 'mpp_chat' : 'drain_chat';
|
|
17
20
|
return `
|
|
18
21
|
## ${p.name}
|
|
19
|
-
- **ID:** \`${p.id}\` ← use this with drain_provider_info / drain_open_channel
|
|
22
|
+
- **ID:** \`${p.id}\` ← use this with drain_provider_info / ${protocol === 'mpp' ? 'mpp_chat' : 'drain_open_channel'}
|
|
23
|
+
- **Protocol:** ${protocol.toUpperCase()}${quality}
|
|
20
24
|
- **Category:** ${p.category || 'llm'}
|
|
21
25
|
- **Status:** ${status}
|
|
22
26
|
- **Latency:** ${latency}
|
|
23
27
|
- **Docs:** ${docsUrl}
|
|
24
|
-
- **
|
|
28
|
+
- **Tool:** ${tool}
|
|
29
|
+
${p.mppEndpoint ? `- **MPP Endpoint:** ${p.mppEndpoint}` : `- **Chain:** ${p.chainId === 137 ? 'Polygon Mainnet' : 'Polygon Amoy'}`}
|
|
25
30
|
|
|
26
31
|
**Description:** ${p.description}
|
|
27
32
|
|
|
@@ -43,6 +48,9 @@ export async function listProviders(providerService, args) {
|
|
|
43
48
|
if (args.category) {
|
|
44
49
|
providers = providers.filter(p => (p.category || 'llm') === args.category);
|
|
45
50
|
}
|
|
51
|
+
if (args.protocol) {
|
|
52
|
+
providers = providers.filter(p => (p.protocol || 'drain') === args.protocol);
|
|
53
|
+
}
|
|
46
54
|
if (providers.length === 0) {
|
|
47
55
|
if (args.model) {
|
|
48
56
|
return `No providers found supporting model "${args.model}".`;
|
|
@@ -50,10 +58,13 @@ export async function listProviders(providerService, args) {
|
|
|
50
58
|
if (args.category) {
|
|
51
59
|
return `No providers found in category "${args.category}".`;
|
|
52
60
|
}
|
|
61
|
+
if (args.protocol) {
|
|
62
|
+
return `No providers found with protocol "${args.protocol}".`;
|
|
63
|
+
}
|
|
53
64
|
return 'No providers available in the directory.';
|
|
54
65
|
}
|
|
55
66
|
const formatted = providers.map(formatProvider).join('\n\n---\n\n');
|
|
56
|
-
return `#
|
|
67
|
+
return `# Providers\n\nFound ${providers.length} provider(s).\n\n**DRAIN providers:** Use \`drain_open_channel\` → \`drain_chat\` → \`drain_cooperative_close\`\n**MPP providers:** Use \`mpp_chat\` directly (no channel needed)\n\n${formatted}`;
|
|
57
68
|
}
|
|
58
69
|
export async function getProvider(providerService, args) {
|
|
59
70
|
const id = args.provider || args.providerId;
|
|
@@ -77,15 +88,17 @@ export async function getProvider(providerService, args) {
|
|
|
77
88
|
export const providerTools = [
|
|
78
89
|
{
|
|
79
90
|
name: 'drain_providers',
|
|
80
|
-
description: `List available service providers on the
|
|
91
|
+
description: `List available service providers on the Handshake58 marketplace.
|
|
92
|
+
|
|
93
|
+
Supports two payment protocols:
|
|
94
|
+
- DRAIN: Payment channels on Polygon. Use drain_open_channel → drain_chat → drain_cooperative_close.
|
|
95
|
+
- MPP: Per-request HTTP 402 payments. Use mpp_chat directly (no channel needed).
|
|
81
96
|
|
|
82
97
|
Providers offer diverse services by category: llm, image, audio, code, scraping, vpn, multi-modal, other. Each provider has a docs endpoint with usage instructions for that service.
|
|
83
98
|
|
|
84
99
|
For any provider that is not category "llm", read its docs (via drain_provider_info) before sending requests to learn the expected message format.
|
|
85
100
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
Returns: Providers with category, models/services, pricing, docs URL, and online status.`,
|
|
101
|
+
Returns: Providers with protocol, category, quality score, pricing, and online status.`,
|
|
89
102
|
inputSchema: {
|
|
90
103
|
type: 'object',
|
|
91
104
|
properties: {
|
|
@@ -101,6 +114,11 @@ Returns: Providers with category, models/services, pricing, docs URL, and online
|
|
|
101
114
|
type: 'string',
|
|
102
115
|
description: 'Filter by service category: llm, image, audio, code, scraping, vpn, multi-modal, other',
|
|
103
116
|
},
|
|
117
|
+
protocol: {
|
|
118
|
+
type: 'string',
|
|
119
|
+
enum: ['drain', 'mpp'],
|
|
120
|
+
description: 'Filter by payment protocol: "drain" (channels) or "mpp" (per-request)',
|
|
121
|
+
},
|
|
104
122
|
},
|
|
105
123
|
},
|
|
106
124
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/tools/providers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,SAAS,aAAa,CAAC,CAAwB;IAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACvD,IAAI,MAAM,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,gBAAgB,sBAAsB,CAAC;IAC9D,CAAC;IACD,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,gBAAgB,UAAU,CAAC,CAAC,OAAO,CAAC,iBAAiB,oBAAoB,CAAC;AACjG,CAAC;AAED,SAAS,cAAc,CAAC,CAAW;IACjC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;IAC5D,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACvE,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,MAAM,UAAU,CAAC;IACnD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/tools/providers.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "drain-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"mcpName": "io.github.kimbo128/drain-mcp",
|
|
5
|
-
"description": "MCP server for
|
|
5
|
+
"description": "MCP server for the Handshake58 AI marketplace. DRAIN payment channels, MPP per-request payments, quality feedback. Agents discover providers, pay, and report.",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "https://github.com/kimbo128/DRAIN.git"
|
|
@@ -22,13 +22,15 @@
|
|
|
22
22
|
"mcp",
|
|
23
23
|
"model-context-protocol",
|
|
24
24
|
"drain",
|
|
25
|
+
"mpp",
|
|
25
26
|
"ai-agent",
|
|
26
27
|
"ai-payments",
|
|
28
|
+
"ai-marketplace",
|
|
27
29
|
"micropayments",
|
|
28
30
|
"polygon",
|
|
29
31
|
"usdc",
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
+
"http-402",
|
|
33
|
+
"quality-oracle"
|
|
32
34
|
],
|
|
33
35
|
"author": "Handshake58",
|
|
34
36
|
"license": "MIT",
|