@dominusnode/mcp-server 1.3.0 → 1.5.2
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 +57 -56
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +16 -6
- package/dist/src/config.js.map +1 -1
- package/dist/src/http-client.d.ts.map +1 -1
- package/dist/src/http-client.js +24 -5
- package/dist/src/http-client.js.map +1 -1
- package/dist/src/index.js +13 -7
- package/dist/src/index.js.map +1 -1
- package/dist/src/proxy-fetch.d.ts.map +1 -1
- package/dist/src/proxy-fetch.js +51 -13
- package/dist/src/proxy-fetch.js.map +1 -1
- package/dist/src/token-manager.d.ts.map +1 -1
- package/dist/src/token-manager.js.map +1 -1
- package/dist/src/tools/account.d.ts.map +1 -1
- package/dist/src/tools/account.js +172 -35
- package/dist/src/tools/account.js.map +1 -1
- package/dist/src/tools/agent-wallet.d.ts.map +1 -1
- package/dist/src/tools/agent-wallet.js +164 -36
- package/dist/src/tools/agent-wallet.js.map +1 -1
- package/dist/src/tools/crypto.d.ts.map +1 -1
- package/dist/src/tools/crypto.js +57 -11
- package/dist/src/tools/crypto.js.map +1 -1
- package/dist/src/tools/fetch.d.ts.map +1 -1
- package/dist/src/tools/fetch.js +32 -10
- package/dist/src/tools/fetch.js.map +1 -1
- package/dist/src/tools/keys.d.ts.map +1 -1
- package/dist/src/tools/keys.js +49 -10
- package/dist/src/tools/keys.js.map +1 -1
- package/dist/src/tools/mpp.d.ts.map +1 -1
- package/dist/src/tools/mpp.js +72 -15
- package/dist/src/tools/mpp.js.map +1 -1
- package/dist/src/tools/paypal.d.ts.map +1 -1
- package/dist/src/tools/paypal.js +20 -4
- package/dist/src/tools/paypal.js.map +1 -1
- package/dist/src/tools/plans.d.ts.map +1 -1
- package/dist/src/tools/plans.js +23 -4
- package/dist/src/tools/plans.js.map +1 -1
- package/dist/src/tools/proxy.d.ts.map +1 -1
- package/dist/src/tools/proxy.js +15 -3
- package/dist/src/tools/proxy.js.map +1 -1
- package/dist/src/tools/sessions.d.ts.map +1 -1
- package/dist/src/tools/sessions.js +14 -2
- package/dist/src/tools/sessions.js.map +1 -1
- package/dist/src/tools/slots.d.ts.map +1 -1
- package/dist/src/tools/slots.js +37 -6
- package/dist/src/tools/slots.js.map +1 -1
- package/dist/src/tools/stripe.d.ts.map +1 -1
- package/dist/src/tools/stripe.js +20 -4
- package/dist/src/tools/stripe.js.map +1 -1
- package/dist/src/tools/teams.d.ts.map +1 -1
- package/dist/src/tools/teams.js +266 -66
- package/dist/src/tools/teams.js.map +1 -1
- package/dist/src/tools/usage.d.ts.map +1 -1
- package/dist/src/tools/usage.js +42 -9
- package/dist/src/tools/usage.js.map +1 -1
- package/dist/src/tools/wallet-auth.d.ts.map +1 -1
- package/dist/src/tools/wallet-auth.js +75 -13
- package/dist/src/tools/wallet-auth.js.map +1 -1
- package/dist/src/tools/wallet.d.ts.map +1 -1
- package/dist/src/tools/wallet.js +21 -4
- package/dist/src/tools/wallet.js.map +1 -1
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/tools/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,MAAiB;IACrE,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,6QAA6Q,EAC7Q;QACE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACpE,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/tools/fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/tools/keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/tools/keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAwBpD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,UAAU,GACrB,IAAI,CA8HN"}
|
package/dist/src/tools/keys.js
CHANGED
|
@@ -5,7 +5,8 @@ const KEYS_RATE_WINDOW_MS = 60_000;
|
|
|
5
5
|
const keysTimestamps = [];
|
|
6
6
|
function checkKeysRateLimit() {
|
|
7
7
|
const now = Date.now();
|
|
8
|
-
while (keysTimestamps.length > 0 &&
|
|
8
|
+
while (keysTimestamps.length > 0 &&
|
|
9
|
+
now - keysTimestamps[0] > KEYS_RATE_WINDOW_MS) {
|
|
9
10
|
keysTimestamps.shift();
|
|
10
11
|
}
|
|
11
12
|
if (keysTimestamps.length > 100)
|
|
@@ -30,21 +31,37 @@ export function registerKeysTools(server, httpClient) {
|
|
|
30
31
|
catch (err) {
|
|
31
32
|
return {
|
|
32
33
|
isError: true,
|
|
33
|
-
content: [
|
|
34
|
+
content: [
|
|
35
|
+
{
|
|
36
|
+
type: "text",
|
|
37
|
+
text: `Error: ${err instanceof Error ? err.message : String(err)}`,
|
|
38
|
+
},
|
|
39
|
+
],
|
|
34
40
|
};
|
|
35
41
|
}
|
|
36
42
|
});
|
|
37
43
|
server.tool("dominusnode_create_key", "Create a new API key. The full key is shown only once — save it immediately. Use a descriptive label.", {
|
|
38
|
-
label: z
|
|
44
|
+
label: z
|
|
45
|
+
.string()
|
|
46
|
+
.min(1)
|
|
47
|
+
.max(100)
|
|
48
|
+
.describe("Descriptive label for the key (e.g. 'scraping-agent')"),
|
|
39
49
|
}, async (args) => {
|
|
40
50
|
try {
|
|
41
51
|
if (!checkKeysRateLimit()) {
|
|
42
52
|
return {
|
|
43
53
|
isError: true,
|
|
44
|
-
content: [
|
|
54
|
+
content: [
|
|
55
|
+
{
|
|
56
|
+
type: "text",
|
|
57
|
+
text: "Rate limit exceeded: maximum 10 key operations per minute. Please wait before retrying.",
|
|
58
|
+
},
|
|
59
|
+
],
|
|
45
60
|
};
|
|
46
61
|
}
|
|
47
|
-
const data = await httpClient.post("/api/keys", {
|
|
62
|
+
const data = await httpClient.post("/api/keys", {
|
|
63
|
+
label: args.label,
|
|
64
|
+
});
|
|
48
65
|
const text = [
|
|
49
66
|
`New API key created!`,
|
|
50
67
|
`Key: ${data.key}`,
|
|
@@ -60,27 +77,49 @@ export function registerKeysTools(server, httpClient) {
|
|
|
60
77
|
catch (err) {
|
|
61
78
|
return {
|
|
62
79
|
isError: true,
|
|
63
|
-
content: [
|
|
80
|
+
content: [
|
|
81
|
+
{
|
|
82
|
+
type: "text",
|
|
83
|
+
text: `Error: ${err instanceof Error ? err.message : String(err)}`,
|
|
84
|
+
},
|
|
85
|
+
],
|
|
64
86
|
};
|
|
65
87
|
}
|
|
66
88
|
});
|
|
67
89
|
server.tool("dominusnode_revoke_key", "Revoke an API key by ID. This immediately disables the key. Cannot be undone.", {
|
|
68
|
-
key_id: z
|
|
90
|
+
key_id: z
|
|
91
|
+
.string()
|
|
92
|
+
.regex(UUID_REGEX, "Invalid key ID — must be a UUID")
|
|
93
|
+
.describe("UUID of the API key to revoke"),
|
|
69
94
|
}, async (args) => {
|
|
70
95
|
try {
|
|
71
96
|
if (!checkKeysRateLimit()) {
|
|
72
97
|
return {
|
|
73
98
|
isError: true,
|
|
74
|
-
content: [
|
|
99
|
+
content: [
|
|
100
|
+
{
|
|
101
|
+
type: "text",
|
|
102
|
+
text: "Rate limit exceeded: maximum 10 key operations per minute. Please wait before retrying.",
|
|
103
|
+
},
|
|
104
|
+
],
|
|
75
105
|
};
|
|
76
106
|
}
|
|
77
107
|
await httpClient.delete(`/api/keys/${encodeURIComponent(args.key_id)}`);
|
|
78
|
-
return {
|
|
108
|
+
return {
|
|
109
|
+
content: [
|
|
110
|
+
{ type: "text", text: `API key ${args.key_id} has been revoked.` },
|
|
111
|
+
],
|
|
112
|
+
};
|
|
79
113
|
}
|
|
80
114
|
catch (err) {
|
|
81
115
|
return {
|
|
82
116
|
isError: true,
|
|
83
|
-
content: [
|
|
117
|
+
content: [
|
|
118
|
+
{
|
|
119
|
+
type: "text",
|
|
120
|
+
text: `Error: ${err instanceof Error ? err.message : String(err)}`,
|
|
121
|
+
},
|
|
122
|
+
],
|
|
84
123
|
};
|
|
85
124
|
}
|
|
86
125
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/tools/keys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/tools/keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mpp.d.ts","sourceRoot":"","sources":["../../../src/tools/mpp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"mpp.d.ts","sourceRoot":"","sources":["../../../src/tools/mpp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA0CpD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,UAAU,GACrB,IAAI,CA2QN"}
|
package/dist/src/tools/mpp.js
CHANGED
|
@@ -4,7 +4,8 @@ const MPP_TOPUP_WINDOW_MS = 3_600_000;
|
|
|
4
4
|
const mppTopupTimestamps = [];
|
|
5
5
|
function checkMppTopupLimit() {
|
|
6
6
|
const now = Date.now();
|
|
7
|
-
while (mppTopupTimestamps.length > 0 &&
|
|
7
|
+
while (mppTopupTimestamps.length > 0 &&
|
|
8
|
+
now - mppTopupTimestamps[0] > MPP_TOPUP_WINDOW_MS) {
|
|
8
9
|
mppTopupTimestamps.shift();
|
|
9
10
|
}
|
|
10
11
|
if (mppTopupTimestamps.length > 100)
|
|
@@ -19,7 +20,8 @@ const MPP_SESSION_WINDOW_MS = 3_600_000;
|
|
|
19
20
|
const mppSessionTimestamps = [];
|
|
20
21
|
function checkMppSessionLimit() {
|
|
21
22
|
const now = Date.now();
|
|
22
|
-
while (mppSessionTimestamps.length > 0 &&
|
|
23
|
+
while (mppSessionTimestamps.length > 0 &&
|
|
24
|
+
now - mppSessionTimestamps[0] > MPP_SESSION_WINDOW_MS) {
|
|
23
25
|
mppSessionTimestamps.shift();
|
|
24
26
|
}
|
|
25
27
|
if (mppSessionTimestamps.length > 100)
|
|
@@ -52,13 +54,20 @@ export function registerMppTools(server, httpClient) {
|
|
|
52
54
|
catch (err) {
|
|
53
55
|
return {
|
|
54
56
|
isError: true,
|
|
55
|
-
content: [
|
|
57
|
+
content: [
|
|
58
|
+
{
|
|
59
|
+
type: "text",
|
|
60
|
+
text: `MPP info error: ${scrubCredentials(err instanceof Error ? err.message : String(err))}`,
|
|
61
|
+
},
|
|
62
|
+
],
|
|
56
63
|
};
|
|
57
64
|
}
|
|
58
65
|
});
|
|
59
66
|
// ── dominusnode_mpp_challenge ─────────────────────────────────────
|
|
60
67
|
server.tool("dominusnode_mpp_challenge", "Get an MPP payment challenge for keyless proxy access. Agents without an API key can request a challenge, pay it via the specified method, and use the resulting credential to access the proxy without needing to register or hold an API key. Choose dc (datacenter $3/GB) or residential ($5/GB).", {
|
|
61
|
-
pool_type: z
|
|
68
|
+
pool_type: z
|
|
69
|
+
.enum(["dc", "residential"])
|
|
70
|
+
.describe("Proxy pool type (dc = datacenter $3/GB, residential = $5/GB)"),
|
|
62
71
|
}, async (args) => {
|
|
63
72
|
try {
|
|
64
73
|
const data = await httpClient.post("/api/mpp/challenge", { poolType: args.pool_type }, false);
|
|
@@ -78,19 +87,34 @@ export function registerMppTools(server, httpClient) {
|
|
|
78
87
|
catch (err) {
|
|
79
88
|
return {
|
|
80
89
|
isError: true,
|
|
81
|
-
content: [
|
|
90
|
+
content: [
|
|
91
|
+
{
|
|
92
|
+
type: "text",
|
|
93
|
+
text: `MPP challenge error: ${scrubCredentials(err instanceof Error ? err.message : String(err))}`,
|
|
94
|
+
},
|
|
95
|
+
],
|
|
82
96
|
};
|
|
83
97
|
}
|
|
84
98
|
});
|
|
85
99
|
// ── dominusnode_pay_mpp ───────────────────────────────────────────
|
|
86
100
|
server.tool("dominusnode_pay_mpp", "Top up your Dominus Node wallet via the MPP (Micropayment Protocol). Creates an MPP payment channel for the specified amount. After the channel is funded, your wallet is credited automatically.", {
|
|
87
|
-
amount_cents: z
|
|
101
|
+
amount_cents: z
|
|
102
|
+
.number()
|
|
103
|
+
.int()
|
|
104
|
+
.min(500)
|
|
105
|
+
.max(100000)
|
|
106
|
+
.describe("Amount in cents to add to wallet (min 500 = $5.00, max 100000 = $1,000.00)"),
|
|
88
107
|
}, async (args) => {
|
|
89
108
|
try {
|
|
90
109
|
if (!checkMppTopupLimit()) {
|
|
91
110
|
return {
|
|
92
111
|
isError: true,
|
|
93
|
-
content: [
|
|
112
|
+
content: [
|
|
113
|
+
{
|
|
114
|
+
type: "text",
|
|
115
|
+
text: "Rate limit exceeded: maximum 5 MPP top-up requests per hour. Please wait before creating another.",
|
|
116
|
+
},
|
|
117
|
+
],
|
|
94
118
|
};
|
|
95
119
|
}
|
|
96
120
|
const data = await httpClient.post("/api/mpp/topup", { amountCents: args.amount_cents });
|
|
@@ -108,21 +132,40 @@ export function registerMppTools(server, httpClient) {
|
|
|
108
132
|
catch (err) {
|
|
109
133
|
return {
|
|
110
134
|
isError: true,
|
|
111
|
-
content: [
|
|
135
|
+
content: [
|
|
136
|
+
{
|
|
137
|
+
type: "text",
|
|
138
|
+
text: `MPP payment error: ${scrubCredentials(err instanceof Error ? err.message : String(err))}`,
|
|
139
|
+
},
|
|
140
|
+
],
|
|
112
141
|
};
|
|
113
142
|
}
|
|
114
143
|
});
|
|
115
144
|
// ── dominusnode_mpp_session_open ──────────────────────────────────
|
|
116
145
|
server.tool("dominusnode_mpp_session_open", "Open a pay-as-you-go MPP session. Deposits are held in escrow and released as bandwidth is consumed. Choose a payment method (tempo, stripe_spt, or lightning) and pool type (dc at $3/GB or residential at $5/GB).", {
|
|
117
|
-
max_deposit_cents: z
|
|
118
|
-
|
|
119
|
-
|
|
146
|
+
max_deposit_cents: z
|
|
147
|
+
.number()
|
|
148
|
+
.int()
|
|
149
|
+
.min(100)
|
|
150
|
+
.max(1000000)
|
|
151
|
+
.describe("Maximum deposit in cents for the session escrow"),
|
|
152
|
+
method: z
|
|
153
|
+
.enum(["tempo", "stripe_spt", "lightning"])
|
|
154
|
+
.describe("Payment method for the session (tempo, stripe_spt, or lightning)"),
|
|
155
|
+
pool_type: z
|
|
156
|
+
.enum(["dc", "residential"])
|
|
157
|
+
.describe("Proxy pool type (dc = datacenter $3/GB, residential = $5/GB)"),
|
|
120
158
|
}, async (args) => {
|
|
121
159
|
try {
|
|
122
160
|
if (!checkMppSessionLimit()) {
|
|
123
161
|
return {
|
|
124
162
|
isError: true,
|
|
125
|
-
content: [
|
|
163
|
+
content: [
|
|
164
|
+
{
|
|
165
|
+
type: "text",
|
|
166
|
+
text: "Rate limit exceeded: maximum 10 MPP session opens per hour. Please wait before opening another.",
|
|
167
|
+
},
|
|
168
|
+
],
|
|
126
169
|
};
|
|
127
170
|
}
|
|
128
171
|
const data = await httpClient.post("/api/mpp/session/open", {
|
|
@@ -147,13 +190,22 @@ export function registerMppTools(server, httpClient) {
|
|
|
147
190
|
catch (err) {
|
|
148
191
|
return {
|
|
149
192
|
isError: true,
|
|
150
|
-
content: [
|
|
193
|
+
content: [
|
|
194
|
+
{
|
|
195
|
+
type: "text",
|
|
196
|
+
text: `MPP session open error: ${scrubCredentials(err instanceof Error ? err.message : String(err))}`,
|
|
197
|
+
},
|
|
198
|
+
],
|
|
151
199
|
};
|
|
152
200
|
}
|
|
153
201
|
});
|
|
154
202
|
// ── dominusnode_mpp_session_close ─────────────────────────────────
|
|
155
203
|
server.tool("dominusnode_mpp_session_close", "Close an active MPP pay-as-you-go session. Settles the payment channel, returns any unused escrow deposit to your wallet, and finalizes bandwidth billing.", {
|
|
156
|
-
channel_id: z
|
|
204
|
+
channel_id: z
|
|
205
|
+
.string()
|
|
206
|
+
.min(1)
|
|
207
|
+
.max(200)
|
|
208
|
+
.describe("Channel ID of the MPP session to close"),
|
|
157
209
|
}, async (args) => {
|
|
158
210
|
try {
|
|
159
211
|
const data = await httpClient.post("/api/mpp/session/close", { channelId: args.channel_id });
|
|
@@ -170,7 +222,12 @@ export function registerMppTools(server, httpClient) {
|
|
|
170
222
|
catch (err) {
|
|
171
223
|
return {
|
|
172
224
|
isError: true,
|
|
173
|
-
content: [
|
|
225
|
+
content: [
|
|
226
|
+
{
|
|
227
|
+
type: "text",
|
|
228
|
+
text: `MPP session close error: ${scrubCredentials(err instanceof Error ? err.message : String(err))}`,
|
|
229
|
+
},
|
|
230
|
+
],
|
|
174
231
|
};
|
|
175
232
|
}
|
|
176
233
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mpp.js","sourceRoot":"","sources":["../../../src/tools/mpp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,mBAAmB,GAAG,SAAS,CAAC;AACtC,MAAM,kBAAkB,GAAa,EAAE,CAAC;AAExC,SAAS,kBAAkB;IACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,
|
|
1
|
+
{"version":3,"file":"mpp.js","sourceRoot":"","sources":["../../../src/tools/mpp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paypal.d.ts","sourceRoot":"","sources":["../../../src/tools/paypal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"paypal.d.ts","sourceRoot":"","sources":["../../../src/tools/paypal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAoBpD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,UAAU,GACrB,IAAI,CA2DN"}
|
package/dist/src/tools/paypal.js
CHANGED
|
@@ -4,7 +4,8 @@ const PAYPAL_PAY_WINDOW_MS = 3_600_000;
|
|
|
4
4
|
const paypalPayTimestamps = [];
|
|
5
5
|
function checkPaypalPayLimit() {
|
|
6
6
|
const now = Date.now();
|
|
7
|
-
while (paypalPayTimestamps.length > 0 &&
|
|
7
|
+
while (paypalPayTimestamps.length > 0 &&
|
|
8
|
+
now - paypalPayTimestamps[0] > PAYPAL_PAY_WINDOW_MS) {
|
|
8
9
|
paypalPayTimestamps.shift();
|
|
9
10
|
}
|
|
10
11
|
if (paypalPayTimestamps.length > 100)
|
|
@@ -16,13 +17,23 @@ function checkPaypalPayLimit() {
|
|
|
16
17
|
}
|
|
17
18
|
export function registerPaypalTools(server, httpClient) {
|
|
18
19
|
server.tool("dominusnode_pay_paypal", "Create a PayPal payment order to top up your Dominus Node wallet. Returns an approval URL where you complete the payment. After approval, the wallet is credited automatically via webhook, or you can use the capture endpoint. Lower fees than Stripe for PayPal users.", {
|
|
19
|
-
amount_cents: z
|
|
20
|
+
amount_cents: z
|
|
21
|
+
.number()
|
|
22
|
+
.int()
|
|
23
|
+
.min(500)
|
|
24
|
+
.max(100000)
|
|
25
|
+
.describe("Amount in cents to add to wallet (min 500 = $5.00, max 100000 = $1,000.00)"),
|
|
20
26
|
}, async (args) => {
|
|
21
27
|
try {
|
|
22
28
|
if (!checkPaypalPayLimit()) {
|
|
23
29
|
return {
|
|
24
30
|
isError: true,
|
|
25
|
-
content: [
|
|
31
|
+
content: [
|
|
32
|
+
{
|
|
33
|
+
type: "text",
|
|
34
|
+
text: "Rate limit exceeded: maximum 5 PayPal orders per hour. Please wait before creating another.",
|
|
35
|
+
},
|
|
36
|
+
],
|
|
26
37
|
};
|
|
27
38
|
}
|
|
28
39
|
const data = await httpClient.post("/api/wallet/topup/paypal", { amountCents: args.amount_cents });
|
|
@@ -42,7 +53,12 @@ export function registerPaypalTools(server, httpClient) {
|
|
|
42
53
|
catch (err) {
|
|
43
54
|
return {
|
|
44
55
|
isError: true,
|
|
45
|
-
content: [
|
|
56
|
+
content: [
|
|
57
|
+
{
|
|
58
|
+
type: "text",
|
|
59
|
+
text: `PayPal payment error: ${(err instanceof Error ? err.message : String(err)).replace(/dn_(?:live|test)_[A-Za-z0-9_-]+/g, "[REDACTED]")}`,
|
|
60
|
+
},
|
|
61
|
+
],
|
|
46
62
|
};
|
|
47
63
|
}
|
|
48
64
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paypal.js","sourceRoot":"","sources":["../../../src/tools/paypal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,oBAAoB,GAAG,SAAS,CAAC;AACvC,MAAM,mBAAmB,GAAa,EAAE,CAAC;AAEzC,SAAS,mBAAmB;IAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,
|
|
1
|
+
{"version":3,"file":"paypal.js","sourceRoot":"","sources":["../../../src/tools/paypal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,oBAAoB,GAAG,SAAS,CAAC;AACvC,MAAM,mBAAmB,GAAa,EAAE,CAAC;AAEzC,SAAS,mBAAmB;IAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,OACE,mBAAmB,CAAC,MAAM,GAAG,CAAC;QAC9B,GAAG,GAAG,mBAAmB,CAAC,CAAC,CAAC,GAAG,oBAAoB,EACnD,CAAC;QACD,mBAAmB,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IACD,IAAI,mBAAmB,CAAC,MAAM,GAAG,GAAG;QAAE,mBAAmB,CAAC,MAAM,GAAG,GAAG,CAAC;IACvE,IAAI,mBAAmB,CAAC,MAAM,IAAI,cAAc;QAAE,OAAO,KAAK,CAAC;IAC/D,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,MAAiB,EACjB,UAAsB;IAEtB,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,2QAA2Q,EAC3Q;QACE,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,GAAG,CAAC;aACR,GAAG,CAAC,MAAM,CAAC;aACX,QAAQ,CACP,4EAA4E,CAC7E;KACJ,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;gBAC3B,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,6FAA6F;yBACpG;qBACF;iBACF,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,CAI/B,0BAA0B,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YAEnE,MAAM,IAAI,GAAG;gBACX,8BAA8B;gBAC9B,EAAE;gBACF,aAAa,IAAI,CAAC,OAAO,EAAE;gBAC3B,YAAY,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACjD,EAAE;gBACF,yBAAyB,IAAI,CAAC,WAAW,EAAE;gBAC3C,EAAE;gBACF,8DAA8D;gBAC9D,kFAAkF;aACnF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,yBAAyB,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,kCAAkC,EAAE,YAAY,CAAC,EAAE;qBAC9I;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../../src/tools/plans.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../../src/tools/plans.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AASpD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,UAAU,GACrB,IAAI,CAyGN"}
|
package/dist/src/tools/plans.js
CHANGED
|
@@ -23,7 +23,12 @@ export function registerPlansTools(server, httpClient) {
|
|
|
23
23
|
catch (err) {
|
|
24
24
|
return {
|
|
25
25
|
isError: true,
|
|
26
|
-
content: [
|
|
26
|
+
content: [
|
|
27
|
+
{
|
|
28
|
+
type: "text",
|
|
29
|
+
text: `Error: ${err instanceof Error ? err.message : String(err)}`,
|
|
30
|
+
},
|
|
31
|
+
],
|
|
27
32
|
};
|
|
28
33
|
}
|
|
29
34
|
});
|
|
@@ -41,12 +46,21 @@ export function registerPlansTools(server, httpClient) {
|
|
|
41
46
|
catch (err) {
|
|
42
47
|
return {
|
|
43
48
|
isError: true,
|
|
44
|
-
content: [
|
|
49
|
+
content: [
|
|
50
|
+
{
|
|
51
|
+
type: "text",
|
|
52
|
+
text: `Error: ${err instanceof Error ? err.message : String(err)}`,
|
|
53
|
+
},
|
|
54
|
+
],
|
|
45
55
|
};
|
|
46
56
|
}
|
|
47
57
|
});
|
|
48
58
|
server.tool("dominusnode_change_plan", "Switch your account to a different pricing plan. Available plans: free-dc (free, 500MB DC), free-res (free, 50MB residential), payg (pay-as-you-go, unlimited), vol100 (100GB/month), vol1tb (1TB/month), agent (AI agent plan, unlimited bandwidth, 50 connections, $5/GB). Volume plans require minimum wallet balance. Email must be verified.", {
|
|
49
|
-
plan_id: z
|
|
59
|
+
plan_id: z
|
|
60
|
+
.string()
|
|
61
|
+
.min(1)
|
|
62
|
+
.max(50)
|
|
63
|
+
.describe("Plan ID to switch to. Options: free-dc, free-res, payg, vol100, vol1tb, agent"),
|
|
50
64
|
}, async (args) => {
|
|
51
65
|
try {
|
|
52
66
|
const data = await httpClient.put("/api/plans/user/plan", { planId: args.plan_id });
|
|
@@ -63,7 +77,12 @@ export function registerPlansTools(server, httpClient) {
|
|
|
63
77
|
catch (err) {
|
|
64
78
|
return {
|
|
65
79
|
isError: true,
|
|
66
|
-
content: [
|
|
80
|
+
content: [
|
|
81
|
+
{
|
|
82
|
+
type: "text",
|
|
83
|
+
text: `Error: ${err instanceof Error ? err.message : String(err)}`,
|
|
84
|
+
},
|
|
85
|
+
],
|
|
67
86
|
};
|
|
68
87
|
}
|
|
69
88
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../../../src/tools/plans.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../../../src/tools/plans.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../src/tools/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,wBAAgB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../src/tools/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,UAAU,GACrB,IAAI,CAsEN"}
|
package/dist/src/tools/proxy.js
CHANGED
|
@@ -23,7 +23,12 @@ export function registerProxyTools(server, httpClient) {
|
|
|
23
23
|
catch (err) {
|
|
24
24
|
return {
|
|
25
25
|
isError: true,
|
|
26
|
-
content: [
|
|
26
|
+
content: [
|
|
27
|
+
{
|
|
28
|
+
type: "text",
|
|
29
|
+
text: `Error: ${err instanceof Error ? err.message : String(err)}`,
|
|
30
|
+
},
|
|
31
|
+
],
|
|
27
32
|
};
|
|
28
33
|
}
|
|
29
34
|
});
|
|
@@ -37,13 +42,20 @@ export function registerProxyTools(server, httpClient) {
|
|
|
37
42
|
`Uptime: ${status.uptimeSeconds ?? 0}s`,
|
|
38
43
|
status.endpoints ? `HTTP: ${status.endpoints.http}` : null,
|
|
39
44
|
status.endpoints ? `SOCKS5: ${status.endpoints.socks5}` : null,
|
|
40
|
-
]
|
|
45
|
+
]
|
|
46
|
+
.filter(Boolean)
|
|
47
|
+
.join("\n");
|
|
41
48
|
return { content: [{ type: "text", text }] };
|
|
42
49
|
}
|
|
43
50
|
catch (err) {
|
|
44
51
|
return {
|
|
45
52
|
isError: true,
|
|
46
|
-
content: [
|
|
53
|
+
content: [
|
|
54
|
+
{
|
|
55
|
+
type: "text",
|
|
56
|
+
text: `Error: ${err instanceof Error ? err.message : String(err)}`,
|
|
57
|
+
},
|
|
58
|
+
],
|
|
47
59
|
};
|
|
48
60
|
}
|
|
49
61
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../src/tools/proxy.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,kBAAkB,
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../src/tools/proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../../src/tools/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,wBAAgB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../../src/tools/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,UAAU,GACrB,IAAI,CAuCN"}
|
|
@@ -4,7 +4,14 @@ export function registerSessionsTools(server, httpClient) {
|
|
|
4
4
|
const data = await httpClient.get("/api/sessions/active");
|
|
5
5
|
const sessions = data.sessions ?? [];
|
|
6
6
|
if (sessions.length === 0) {
|
|
7
|
-
return {
|
|
7
|
+
return {
|
|
8
|
+
content: [
|
|
9
|
+
{
|
|
10
|
+
type: "text",
|
|
11
|
+
text: "No active proxy sessions.\n\nNote: Sessions are managed automatically. Each dominusnode_fetch call creates and settles a session. For sticky sessions (same exit IP), use the same session parameter in the proxy username format.",
|
|
12
|
+
},
|
|
13
|
+
],
|
|
14
|
+
};
|
|
8
15
|
}
|
|
9
16
|
const lines = sessions.map((s) => `${s.id} | Status: ${s.status} | Since: ${s.startedAt}`);
|
|
10
17
|
lines.unshift(`Active Sessions (${sessions.length}):`);
|
|
@@ -13,7 +20,12 @@ export function registerSessionsTools(server, httpClient) {
|
|
|
13
20
|
catch (err) {
|
|
14
21
|
return {
|
|
15
22
|
isError: true,
|
|
16
|
-
content: [
|
|
23
|
+
content: [
|
|
24
|
+
{
|
|
25
|
+
type: "text",
|
|
26
|
+
text: `Error: ${err instanceof Error ? err.message : String(err)}`,
|
|
27
|
+
},
|
|
28
|
+
],
|
|
17
29
|
};
|
|
18
30
|
}
|
|
19
31
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../../src/tools/sessions.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,qBAAqB,
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../../src/tools/sessions.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,qBAAqB,CACnC,MAAiB,EACjB,UAAsB;IAEtB,MAAM,CAAC,IAAI,CACT,iCAAiC,EACjC,sJAAsJ,EACtJ,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,GAAG,CAC/B,sBAAsB,CACvB,CAAC;YACF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;YACrC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,oOAAoO;yBAC3O;qBACF;iBACF,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CACxB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,MAAM,aAAa,CAAC,CAAC,SAAS,EAAE,CAC/D,CAAC;YACF,KAAK,CAAC,OAAO,CAAC,oBAAoB,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;YACvD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;qBACnE;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slots.d.ts","sourceRoot":"","sources":["../../../src/tools/slots.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAiBpD,wBAAgB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"slots.d.ts","sourceRoot":"","sources":["../../../src/tools/slots.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAiBpD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,UAAU,GACrB,IAAI,CAkHN"}
|