xcrawl-mcp 1.0.5 → 1.0.6
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 +7 -9
- package/dist/core/status.d.ts.map +1 -1
- package/dist/core/status.js +72 -42
- package/dist/core/status.js.map +1 -1
- package/dist/core/status.test.d.ts +2 -0
- package/dist/core/status.test.d.ts.map +1 -0
- package/dist/core/status.test.js +71 -0
- package/dist/core/status.test.js.map +1 -0
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +4 -2
- package/dist/tools.js.map +1 -1
- package/dist/types.d.ts +12 -22
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/status.ts +85 -49
- package/src/tools.ts +4 -2
- package/src/types.ts +13 -25
- package/xcrawl-mcp-1.0.5.tgz +0 -0
package/README.md
CHANGED
|
@@ -222,15 +222,13 @@ Returns key validity and current credit status, including:
|
|
|
222
222
|
- `valid`
|
|
223
223
|
- `authorized`
|
|
224
224
|
- `has_credits`
|
|
225
|
-
- `is_expired`
|
|
226
|
-
- `can_use_tools`
|
|
227
225
|
- `remain_credits`
|
|
228
|
-
- `
|
|
229
|
-
- `
|
|
230
|
-
- `
|
|
231
|
-
- `
|
|
232
|
-
- `
|
|
233
|
-
- `
|
|
226
|
+
- `expire_at`
|
|
227
|
+
- `expired_at` (UTC ISO-8601)
|
|
228
|
+
- `uid`
|
|
229
|
+
- `username`
|
|
230
|
+
- `concurrent`
|
|
231
|
+
- `message`
|
|
234
232
|
|
|
235
233
|
## Request Defaults
|
|
236
234
|
|
|
@@ -256,7 +254,7 @@ Defaults may vary by API version.
|
|
|
256
254
|
|
|
257
255
|
## Preflight Checks
|
|
258
256
|
|
|
259
|
-
Before executing high-cost tools, the MCP server
|
|
257
|
+
Before executing high-cost tools, the MCP server performs a key and credits preflight check.
|
|
260
258
|
|
|
261
259
|
Current tools with preflight checks:
|
|
262
260
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/core/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/core/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAqF3D,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAsF3F;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM,CAEjF;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED,wBAAsB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB/F"}
|
package/dist/core/status.js
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
const
|
|
2
|
-
const STATUS_PATH = "/web_v1/user/credit-user-info";
|
|
1
|
+
const BALANCE_API_URL = "https://run.xcrawl.com/v1/credits/balance";
|
|
3
2
|
const REQUEST_TIMEOUT_MS = 30000;
|
|
4
3
|
const CREDIT_CHECK_REQUIRED_TOOLS = new Set(["xcrawl_scrape", "xcrawl_search", "xcrawl_map", "xcrawl_crawl"]);
|
|
5
4
|
function toNumber(value) {
|
|
6
|
-
return typeof value === "number" && Number.isFinite(value) ? value :
|
|
5
|
+
return typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
6
|
+
}
|
|
7
|
+
function toDateStringFromUnixSeconds(value) {
|
|
8
|
+
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
return new Date(value * 1000).toISOString();
|
|
7
12
|
}
|
|
8
13
|
function extractErrorMessage(payload, fallback) {
|
|
9
14
|
if (!payload || typeof payload !== "object") {
|
|
@@ -21,46 +26,39 @@ function tryParseJson(text) {
|
|
|
21
26
|
return text;
|
|
22
27
|
}
|
|
23
28
|
}
|
|
24
|
-
function
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
if (!expiredAt) {
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
const timestamp = Date.parse(expiredAt);
|
|
35
|
-
return Number.isFinite(timestamp) ? timestamp <= Date.now() : false;
|
|
36
|
-
}
|
|
37
|
-
function normalizeStatusPayload(payload) {
|
|
38
|
-
const data = getStatusData(payload);
|
|
39
|
-
const remainCredits = toNumber(data.remain_credits);
|
|
40
|
-
const consumedCredits = toNumber(data.consumed_credits);
|
|
41
|
-
const todayCredits = toNumber(data.today_credits);
|
|
42
|
-
const totalCredits = toNumber(data.total_credits);
|
|
43
|
-
const expiredAt = typeof data.expired_at === "string" ? data.expired_at : null;
|
|
44
|
-
const expired = isExpired(expiredAt);
|
|
29
|
+
function normalizeBalancePayload(apiKey, payload) {
|
|
30
|
+
const remainCredits = toNumber(payload.credits) ?? 0;
|
|
31
|
+
const concurrent = toNumber(payload.concurrent);
|
|
32
|
+
const expireAt = toNumber(payload.expire_at);
|
|
33
|
+
const expiredAt = toDateStringFromUnixSeconds(payload.expire_at);
|
|
34
|
+
const expiresAtMs = typeof payload.expire_at === "number" ? payload.expire_at * 1000 : null;
|
|
35
|
+
const isExpired = expiresAtMs !== null ? expiresAtMs <= Date.now() : false;
|
|
45
36
|
const hasCredits = remainCredits > 0;
|
|
46
|
-
const canUseTools = !
|
|
47
|
-
const status =
|
|
37
|
+
const canUseTools = !isExpired && hasCredits;
|
|
38
|
+
const status = isExpired ? "expired" : hasCredits ? "ok" : "no_credits";
|
|
48
39
|
return {
|
|
49
40
|
status,
|
|
41
|
+
api_key_configured: apiKey.trim().length > 0,
|
|
42
|
+
check_supported: true,
|
|
50
43
|
valid: true,
|
|
51
44
|
authorized: true,
|
|
52
45
|
has_credits: hasCredits,
|
|
53
|
-
is_expired:
|
|
46
|
+
is_expired: isExpired,
|
|
54
47
|
can_use_tools: canUseTools,
|
|
55
|
-
credit_level:
|
|
56
|
-
total_credits:
|
|
48
|
+
credit_level: null,
|
|
49
|
+
total_credits: null,
|
|
57
50
|
remain_credits: remainCredits,
|
|
58
|
-
consumed_credits:
|
|
59
|
-
today_credits:
|
|
60
|
-
next_reset_at:
|
|
51
|
+
consumed_credits: null,
|
|
52
|
+
today_credits: null,
|
|
53
|
+
next_reset_at: null,
|
|
54
|
+
expire_at: expireAt,
|
|
61
55
|
expired_at: expiredAt,
|
|
62
|
-
package_title:
|
|
63
|
-
|
|
56
|
+
package_title: null,
|
|
57
|
+
uid: typeof payload.uid === "string" ? payload.uid : null,
|
|
58
|
+
username: typeof payload.username === "string" ? payload.username : null,
|
|
59
|
+
concurrent,
|
|
60
|
+
reason: "balance_api",
|
|
61
|
+
message: isExpired
|
|
64
62
|
? "API key is valid but the credit package is expired."
|
|
65
63
|
: hasCredits
|
|
66
64
|
? "API key is valid and has available credits."
|
|
@@ -71,12 +69,11 @@ export async function fetchXCrawlKeyStatus(apiKey) {
|
|
|
71
69
|
const controller = new AbortController();
|
|
72
70
|
const timeoutId = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);
|
|
73
71
|
try {
|
|
74
|
-
const
|
|
75
|
-
url.searchParams.set("app_key", apiKey);
|
|
76
|
-
const response = await fetch(url, {
|
|
72
|
+
const response = await fetch(BALANCE_API_URL, {
|
|
77
73
|
method: "GET",
|
|
78
74
|
headers: {
|
|
79
75
|
Accept: "application/json",
|
|
76
|
+
Authorization: `Bearer ${apiKey}`,
|
|
80
77
|
},
|
|
81
78
|
signal: controller.signal,
|
|
82
79
|
});
|
|
@@ -87,25 +84,58 @@ export async function fetchXCrawlKeyStatus(apiKey) {
|
|
|
87
84
|
if (response.status === 401 || response.status === 403) {
|
|
88
85
|
return {
|
|
89
86
|
status: "unauthorized",
|
|
87
|
+
api_key_configured: apiKey.trim().length > 0,
|
|
88
|
+
check_supported: true,
|
|
90
89
|
valid: false,
|
|
91
90
|
authorized: false,
|
|
92
91
|
has_credits: false,
|
|
93
92
|
is_expired: false,
|
|
94
93
|
can_use_tools: false,
|
|
95
|
-
credit_level:
|
|
96
|
-
total_credits:
|
|
94
|
+
credit_level: null,
|
|
95
|
+
total_credits: null,
|
|
97
96
|
remain_credits: 0,
|
|
98
|
-
consumed_credits:
|
|
99
|
-
today_credits:
|
|
97
|
+
consumed_credits: null,
|
|
98
|
+
today_credits: null,
|
|
100
99
|
next_reset_at: null,
|
|
100
|
+
expire_at: null,
|
|
101
101
|
expired_at: null,
|
|
102
102
|
package_title: null,
|
|
103
|
+
uid: null,
|
|
104
|
+
username: null,
|
|
105
|
+
concurrent: null,
|
|
106
|
+
reason: "invalid_credentials",
|
|
103
107
|
message: `API key is invalid or unauthorized: ${message}`,
|
|
104
108
|
};
|
|
105
109
|
}
|
|
106
110
|
throw new Error(`XCrawl status API error: ${response.status} ${response.statusText} - ${message}`);
|
|
107
111
|
}
|
|
108
|
-
|
|
112
|
+
if (!parsed || typeof parsed !== "object") {
|
|
113
|
+
return {
|
|
114
|
+
status: "unknown",
|
|
115
|
+
api_key_configured: apiKey.trim().length > 0,
|
|
116
|
+
check_supported: true,
|
|
117
|
+
valid: false,
|
|
118
|
+
authorized: false,
|
|
119
|
+
has_credits: false,
|
|
120
|
+
is_expired: false,
|
|
121
|
+
can_use_tools: false,
|
|
122
|
+
credit_level: null,
|
|
123
|
+
total_credits: null,
|
|
124
|
+
remain_credits: 0,
|
|
125
|
+
consumed_credits: null,
|
|
126
|
+
today_credits: null,
|
|
127
|
+
next_reset_at: null,
|
|
128
|
+
expire_at: null,
|
|
129
|
+
expired_at: null,
|
|
130
|
+
package_title: null,
|
|
131
|
+
uid: null,
|
|
132
|
+
username: null,
|
|
133
|
+
concurrent: null,
|
|
134
|
+
reason: "unexpected_response",
|
|
135
|
+
message: "XCrawl balance API returned an unexpected response.",
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
return normalizeBalancePayload(apiKey, parsed);
|
|
109
139
|
}
|
|
110
140
|
catch (error) {
|
|
111
141
|
if (error instanceof Error && error.name === "AbortError") {
|
package/dist/core/status.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/core/status.ts"],"names":[],"mappings":"AAEA,MAAM,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/core/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.test.d.ts","sourceRoot":"","sources":["../../src/core/status.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { assertXCrawlToolPreflight, fetchXCrawlKeyStatus, requiresCreditPreflight } from "./status.js";
|
|
3
|
+
describe("status helpers", () => {
|
|
4
|
+
afterEach(() => {
|
|
5
|
+
vi.restoreAllMocks();
|
|
6
|
+
});
|
|
7
|
+
it("parses a successful balance response", async () => {
|
|
8
|
+
vi.stubGlobal("fetch", vi.fn().mockResolvedValue({
|
|
9
|
+
ok: true,
|
|
10
|
+
text: vi.fn().mockResolvedValue(JSON.stringify({
|
|
11
|
+
uid: "580101",
|
|
12
|
+
username: "api-test",
|
|
13
|
+
credits: 923,
|
|
14
|
+
concurrent: 10,
|
|
15
|
+
expire_at: 2090909858,
|
|
16
|
+
})),
|
|
17
|
+
}));
|
|
18
|
+
const response = await fetchXCrawlKeyStatus("test-key");
|
|
19
|
+
expect(response).toMatchObject({
|
|
20
|
+
status: "ok",
|
|
21
|
+
api_key_configured: true,
|
|
22
|
+
check_supported: true,
|
|
23
|
+
valid: true,
|
|
24
|
+
authorized: true,
|
|
25
|
+
has_credits: true,
|
|
26
|
+
remain_credits: 923,
|
|
27
|
+
expire_at: 2090909858,
|
|
28
|
+
uid: "580101",
|
|
29
|
+
username: "api-test",
|
|
30
|
+
concurrent: 10,
|
|
31
|
+
reason: "balance_api",
|
|
32
|
+
});
|
|
33
|
+
expect(response.expired_at).toBe("2036-04-04T08:17:38.000Z");
|
|
34
|
+
});
|
|
35
|
+
it("maps 401 responses to unauthorized", async () => {
|
|
36
|
+
vi.stubGlobal("fetch", vi.fn().mockResolvedValue({
|
|
37
|
+
ok: false,
|
|
38
|
+
status: 401,
|
|
39
|
+
statusText: "Unauthorized",
|
|
40
|
+
text: vi.fn().mockResolvedValue(JSON.stringify({ message: "Invalid credentials" })),
|
|
41
|
+
}));
|
|
42
|
+
const response = await fetchXCrawlKeyStatus("bad-key");
|
|
43
|
+
expect(response).toMatchObject({
|
|
44
|
+
status: "unauthorized",
|
|
45
|
+
valid: false,
|
|
46
|
+
authorized: false,
|
|
47
|
+
has_credits: false,
|
|
48
|
+
remain_credits: 0,
|
|
49
|
+
expire_at: null,
|
|
50
|
+
reason: "invalid_credentials",
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
it("keeps credit preflight enabled for billable tools", async () => {
|
|
54
|
+
expect(requiresCreditPreflight("xcrawl_scrape")).toBe(true);
|
|
55
|
+
expect(requiresCreditPreflight("xcrawl_check_status")).toBe(false);
|
|
56
|
+
});
|
|
57
|
+
it("blocks tool execution when no credits remain", async () => {
|
|
58
|
+
vi.stubGlobal("fetch", vi.fn().mockResolvedValue({
|
|
59
|
+
ok: true,
|
|
60
|
+
text: vi.fn().mockResolvedValue(JSON.stringify({
|
|
61
|
+
uid: "580101",
|
|
62
|
+
username: "api-test",
|
|
63
|
+
credits: 0,
|
|
64
|
+
concurrent: 10,
|
|
65
|
+
expire_at: 2090909858,
|
|
66
|
+
})),
|
|
67
|
+
}));
|
|
68
|
+
await expect(assertXCrawlToolPreflight("test-key", "xcrawl_scrape")).rejects.toThrow("Insufficient XCrawl credits");
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=status.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.test.js","sourceRoot":"","sources":["../../src/core/status.test.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6K9B,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;CA8BpC,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwE9B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkD3B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkL7B,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;CAwB1C,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6K9B,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;CA8BpC,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwE9B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkD3B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkL7B,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;CAwB1C,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;CAyBlC,CAAC"}
|
package/dist/tools.js
CHANGED
|
@@ -538,8 +538,10 @@ export const XCRAWL_KEY_STATUS_TOOL = {
|
|
|
538
538
|
- \`valid\`: whether the API key is valid
|
|
539
539
|
- \`authorized\`: whether the API key is authorized
|
|
540
540
|
- \`has_credits\`: whether the account still has remaining credits
|
|
541
|
-
- \`remain_credits
|
|
542
|
-
-
|
|
541
|
+
- \`remain_credits\`: current remaining credits
|
|
542
|
+
- \`expire_at\`: original Unix timestamp returned by XCrawl
|
|
543
|
+
- \`expired_at\`: the same expiry time normalized to a UTC ISO-8601 string
|
|
544
|
+
- \`uid\`, \`username\`, \`concurrent\`: account info returned by the balance endpoint
|
|
543
545
|
- a human-readable \`message\`
|
|
544
546
|
|
|
545
547
|
**Notes:**
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -214,39 +214,29 @@ export interface XCrawlCrawlResponse {
|
|
|
214
214
|
/**
|
|
215
215
|
* Account status / key validation types
|
|
216
216
|
*/
|
|
217
|
-
export
|
|
218
|
-
credit_level?: number;
|
|
219
|
-
total_credits?: number;
|
|
220
|
-
remain_credits?: number;
|
|
221
|
-
consumed_credits?: number;
|
|
222
|
-
today_credits?: number;
|
|
223
|
-
next_reset_at?: string | null;
|
|
224
|
-
expired_at?: string | null;
|
|
225
|
-
package_title?: string | null;
|
|
226
|
-
}
|
|
227
|
-
export interface XCrawlStatusEnvelope {
|
|
228
|
-
data?: XCrawlStatusData;
|
|
229
|
-
code?: string | number;
|
|
230
|
-
message?: string;
|
|
231
|
-
msg?: string;
|
|
232
|
-
}
|
|
233
|
-
export type XCrawlStatusApiResponse = XCrawlStatusEnvelope | XCrawlStatusData;
|
|
234
|
-
export type XCrawlKeyStatus = "ok" | "no_credits" | "unauthorized" | "expired";
|
|
217
|
+
export type XCrawlKeyStatus = "ok" | "no_credits" | "unauthorized" | "expired" | "unknown";
|
|
235
218
|
export interface XCrawlKeyStatusResponse {
|
|
236
219
|
status: XCrawlKeyStatus;
|
|
220
|
+
api_key_configured: boolean;
|
|
221
|
+
check_supported: boolean;
|
|
237
222
|
valid: boolean;
|
|
238
223
|
authorized: boolean;
|
|
239
224
|
has_credits: boolean;
|
|
240
225
|
is_expired: boolean;
|
|
241
226
|
can_use_tools: boolean;
|
|
242
|
-
credit_level: number;
|
|
243
|
-
total_credits: number;
|
|
227
|
+
credit_level: number | null;
|
|
228
|
+
total_credits: number | null;
|
|
244
229
|
remain_credits: number;
|
|
245
|
-
consumed_credits: number;
|
|
246
|
-
today_credits: number;
|
|
230
|
+
consumed_credits: number | null;
|
|
231
|
+
today_credits: number | null;
|
|
247
232
|
next_reset_at: string | null;
|
|
233
|
+
expire_at: number | null;
|
|
248
234
|
expired_at: string | null;
|
|
249
235
|
package_title: string | null;
|
|
236
|
+
uid?: string | null;
|
|
237
|
+
username?: string | null;
|
|
238
|
+
concurrent?: number | null;
|
|
239
|
+
reason: "balance_api" | "invalid_credentials" | "unexpected_response";
|
|
250
240
|
message: string;
|
|
251
241
|
}
|
|
252
242
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/core/status.ts
CHANGED
|
@@ -1,12 +1,27 @@
|
|
|
1
|
-
import type { XCrawlKeyStatusResponse
|
|
1
|
+
import type { XCrawlKeyStatusResponse } from "../types.js";
|
|
2
2
|
|
|
3
|
-
const
|
|
4
|
-
const STATUS_PATH = "/web_v1/user/credit-user-info";
|
|
3
|
+
const BALANCE_API_URL = "https://run.xcrawl.com/v1/credits/balance";
|
|
5
4
|
const REQUEST_TIMEOUT_MS = 30000;
|
|
6
5
|
const CREDIT_CHECK_REQUIRED_TOOLS = new Set(["xcrawl_scrape", "xcrawl_search", "xcrawl_map", "xcrawl_crawl"]);
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
interface XCrawlBalanceApiResponse {
|
|
8
|
+
uid?: string;
|
|
9
|
+
username?: string;
|
|
10
|
+
credits?: number;
|
|
11
|
+
concurrent?: number;
|
|
12
|
+
expire_at?: number;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function toNumber(value: unknown): number | null {
|
|
16
|
+
return typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function toDateStringFromUnixSeconds(value: unknown): string | null {
|
|
20
|
+
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return new Date(value * 1000).toISOString();
|
|
10
25
|
}
|
|
11
26
|
|
|
12
27
|
function extractErrorMessage(payload: unknown, fallback: string): string {
|
|
@@ -27,51 +42,40 @@ function tryParseJson(text: string): unknown {
|
|
|
27
42
|
}
|
|
28
43
|
}
|
|
29
44
|
|
|
30
|
-
function
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
function isExpired(expiredAt: string | null): boolean {
|
|
39
|
-
if (!expiredAt) {
|
|
40
|
-
return false;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const timestamp = Date.parse(expiredAt);
|
|
44
|
-
return Number.isFinite(timestamp) ? timestamp <= Date.now() : false;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
function normalizeStatusPayload(payload: XCrawlStatusApiResponse): XCrawlKeyStatusResponse {
|
|
48
|
-
const data = getStatusData(payload);
|
|
49
|
-
const remainCredits = toNumber(data.remain_credits);
|
|
50
|
-
const consumedCredits = toNumber(data.consumed_credits);
|
|
51
|
-
const todayCredits = toNumber(data.today_credits);
|
|
52
|
-
const totalCredits = toNumber(data.total_credits);
|
|
53
|
-
const expiredAt = typeof data.expired_at === "string" ? data.expired_at : null;
|
|
54
|
-
const expired = isExpired(expiredAt);
|
|
45
|
+
function normalizeBalancePayload(apiKey: string, payload: XCrawlBalanceApiResponse): XCrawlKeyStatusResponse {
|
|
46
|
+
const remainCredits = toNumber(payload.credits) ?? 0;
|
|
47
|
+
const concurrent = toNumber(payload.concurrent);
|
|
48
|
+
const expireAt = toNumber(payload.expire_at);
|
|
49
|
+
const expiredAt = toDateStringFromUnixSeconds(payload.expire_at);
|
|
50
|
+
const expiresAtMs = typeof payload.expire_at === "number" ? payload.expire_at * 1000 : null;
|
|
51
|
+
const isExpired = expiresAtMs !== null ? expiresAtMs <= Date.now() : false;
|
|
55
52
|
const hasCredits = remainCredits > 0;
|
|
56
|
-
const canUseTools = !
|
|
57
|
-
const status =
|
|
53
|
+
const canUseTools = !isExpired && hasCredits;
|
|
54
|
+
const status = isExpired ? "expired" : hasCredits ? "ok" : "no_credits";
|
|
58
55
|
|
|
59
56
|
return {
|
|
60
57
|
status,
|
|
58
|
+
api_key_configured: apiKey.trim().length > 0,
|
|
59
|
+
check_supported: true,
|
|
61
60
|
valid: true,
|
|
62
61
|
authorized: true,
|
|
63
62
|
has_credits: hasCredits,
|
|
64
|
-
is_expired:
|
|
63
|
+
is_expired: isExpired,
|
|
65
64
|
can_use_tools: canUseTools,
|
|
66
|
-
credit_level:
|
|
67
|
-
total_credits:
|
|
65
|
+
credit_level: null,
|
|
66
|
+
total_credits: null,
|
|
68
67
|
remain_credits: remainCredits,
|
|
69
|
-
consumed_credits:
|
|
70
|
-
today_credits:
|
|
71
|
-
next_reset_at:
|
|
68
|
+
consumed_credits: null,
|
|
69
|
+
today_credits: null,
|
|
70
|
+
next_reset_at: null,
|
|
71
|
+
expire_at: expireAt,
|
|
72
72
|
expired_at: expiredAt,
|
|
73
|
-
package_title:
|
|
74
|
-
|
|
73
|
+
package_title: null,
|
|
74
|
+
uid: typeof payload.uid === "string" ? payload.uid : null,
|
|
75
|
+
username: typeof payload.username === "string" ? payload.username : null,
|
|
76
|
+
concurrent,
|
|
77
|
+
reason: "balance_api",
|
|
78
|
+
message: isExpired
|
|
75
79
|
? "API key is valid but the credit package is expired."
|
|
76
80
|
: hasCredits
|
|
77
81
|
? "API key is valid and has available credits."
|
|
@@ -84,13 +88,11 @@ export async function fetchXCrawlKeyStatus(apiKey: string): Promise<XCrawlKeySta
|
|
|
84
88
|
const timeoutId = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);
|
|
85
89
|
|
|
86
90
|
try {
|
|
87
|
-
const
|
|
88
|
-
url.searchParams.set("app_key", apiKey);
|
|
89
|
-
|
|
90
|
-
const response = await fetch(url, {
|
|
91
|
+
const response = await fetch(BALANCE_API_URL, {
|
|
91
92
|
method: "GET",
|
|
92
93
|
headers: {
|
|
93
94
|
Accept: "application/json",
|
|
95
|
+
Authorization: `Bearer ${apiKey}`,
|
|
94
96
|
},
|
|
95
97
|
signal: controller.signal,
|
|
96
98
|
});
|
|
@@ -103,19 +105,26 @@ export async function fetchXCrawlKeyStatus(apiKey: string): Promise<XCrawlKeySta
|
|
|
103
105
|
if (response.status === 401 || response.status === 403) {
|
|
104
106
|
return {
|
|
105
107
|
status: "unauthorized",
|
|
108
|
+
api_key_configured: apiKey.trim().length > 0,
|
|
109
|
+
check_supported: true,
|
|
106
110
|
valid: false,
|
|
107
111
|
authorized: false,
|
|
108
112
|
has_credits: false,
|
|
109
113
|
is_expired: false,
|
|
110
114
|
can_use_tools: false,
|
|
111
|
-
credit_level:
|
|
112
|
-
total_credits:
|
|
115
|
+
credit_level: null,
|
|
116
|
+
total_credits: null,
|
|
113
117
|
remain_credits: 0,
|
|
114
|
-
consumed_credits:
|
|
115
|
-
today_credits:
|
|
118
|
+
consumed_credits: null,
|
|
119
|
+
today_credits: null,
|
|
116
120
|
next_reset_at: null,
|
|
121
|
+
expire_at: null,
|
|
117
122
|
expired_at: null,
|
|
118
123
|
package_title: null,
|
|
124
|
+
uid: null,
|
|
125
|
+
username: null,
|
|
126
|
+
concurrent: null,
|
|
127
|
+
reason: "invalid_credentials",
|
|
119
128
|
message: `API key is invalid or unauthorized: ${message}`,
|
|
120
129
|
};
|
|
121
130
|
}
|
|
@@ -123,7 +132,34 @@ export async function fetchXCrawlKeyStatus(apiKey: string): Promise<XCrawlKeySta
|
|
|
123
132
|
throw new Error(`XCrawl status API error: ${response.status} ${response.statusText} - ${message}`);
|
|
124
133
|
}
|
|
125
134
|
|
|
126
|
-
|
|
135
|
+
if (!parsed || typeof parsed !== "object") {
|
|
136
|
+
return {
|
|
137
|
+
status: "unknown",
|
|
138
|
+
api_key_configured: apiKey.trim().length > 0,
|
|
139
|
+
check_supported: true,
|
|
140
|
+
valid: false,
|
|
141
|
+
authorized: false,
|
|
142
|
+
has_credits: false,
|
|
143
|
+
is_expired: false,
|
|
144
|
+
can_use_tools: false,
|
|
145
|
+
credit_level: null,
|
|
146
|
+
total_credits: null,
|
|
147
|
+
remain_credits: 0,
|
|
148
|
+
consumed_credits: null,
|
|
149
|
+
today_credits: null,
|
|
150
|
+
next_reset_at: null,
|
|
151
|
+
expire_at: null,
|
|
152
|
+
expired_at: null,
|
|
153
|
+
package_title: null,
|
|
154
|
+
uid: null,
|
|
155
|
+
username: null,
|
|
156
|
+
concurrent: null,
|
|
157
|
+
reason: "unexpected_response",
|
|
158
|
+
message: "XCrawl balance API returned an unexpected response.",
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
return normalizeBalancePayload(apiKey, parsed as XCrawlBalanceApiResponse);
|
|
127
163
|
} catch (error) {
|
|
128
164
|
if (error instanceof Error && error.name === "AbortError") {
|
|
129
165
|
throw new Error(`Status request timeout after ${REQUEST_TIMEOUT_MS / 1000} seconds`);
|
package/src/tools.ts
CHANGED
|
@@ -551,8 +551,10 @@ export const XCRAWL_KEY_STATUS_TOOL = {
|
|
|
551
551
|
- \`valid\`: whether the API key is valid
|
|
552
552
|
- \`authorized\`: whether the API key is authorized
|
|
553
553
|
- \`has_credits\`: whether the account still has remaining credits
|
|
554
|
-
- \`remain_credits
|
|
555
|
-
-
|
|
554
|
+
- \`remain_credits\`: current remaining credits
|
|
555
|
+
- \`expire_at\`: original Unix timestamp returned by XCrawl
|
|
556
|
+
- \`expired_at\`: the same expiry time normalized to a UTC ISO-8601 string
|
|
557
|
+
- \`uid\`, \`username\`, \`concurrent\`: account info returned by the balance endpoint
|
|
556
558
|
- a human-readable \`message\`
|
|
557
559
|
|
|
558
560
|
**Notes:**
|
package/src/types.ts
CHANGED
|
@@ -223,46 +223,34 @@ export interface XCrawlCrawlResponse {
|
|
|
223
223
|
/**
|
|
224
224
|
* Account status / key validation types
|
|
225
225
|
*/
|
|
226
|
-
export interface XCrawlStatusData {
|
|
227
|
-
credit_level?: number;
|
|
228
|
-
total_credits?: number;
|
|
229
|
-
remain_credits?: number;
|
|
230
|
-
consumed_credits?: number;
|
|
231
|
-
today_credits?: number;
|
|
232
|
-
next_reset_at?: string | null;
|
|
233
|
-
expired_at?: string | null;
|
|
234
|
-
package_title?: string | null;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
export interface XCrawlStatusEnvelope {
|
|
238
|
-
data?: XCrawlStatusData;
|
|
239
|
-
code?: string | number;
|
|
240
|
-
message?: string;
|
|
241
|
-
msg?: string;
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
export type XCrawlStatusApiResponse = XCrawlStatusEnvelope | XCrawlStatusData;
|
|
245
|
-
|
|
246
226
|
export type XCrawlKeyStatus =
|
|
247
227
|
| "ok"
|
|
248
228
|
| "no_credits"
|
|
249
229
|
| "unauthorized"
|
|
250
|
-
| "expired"
|
|
230
|
+
| "expired"
|
|
231
|
+
| "unknown";
|
|
251
232
|
|
|
252
233
|
export interface XCrawlKeyStatusResponse {
|
|
253
234
|
status: XCrawlKeyStatus;
|
|
235
|
+
api_key_configured: boolean;
|
|
236
|
+
check_supported: boolean;
|
|
254
237
|
valid: boolean;
|
|
255
238
|
authorized: boolean;
|
|
256
239
|
has_credits: boolean;
|
|
257
240
|
is_expired: boolean;
|
|
258
241
|
can_use_tools: boolean;
|
|
259
|
-
credit_level: number;
|
|
260
|
-
total_credits: number;
|
|
242
|
+
credit_level: number | null;
|
|
243
|
+
total_credits: number | null;
|
|
261
244
|
remain_credits: number;
|
|
262
|
-
consumed_credits: number;
|
|
263
|
-
today_credits: number;
|
|
245
|
+
consumed_credits: number | null;
|
|
246
|
+
today_credits: number | null;
|
|
264
247
|
next_reset_at: string | null;
|
|
248
|
+
expire_at: number | null;
|
|
265
249
|
expired_at: string | null;
|
|
266
250
|
package_title: string | null;
|
|
251
|
+
uid?: string | null;
|
|
252
|
+
username?: string | null;
|
|
253
|
+
concurrent?: number | null;
|
|
254
|
+
reason: "balance_api" | "invalid_credentials" | "unexpected_response";
|
|
267
255
|
message: string;
|
|
268
256
|
}
|
package/xcrawl-mcp-1.0.5.tgz
DELETED
|
Binary file
|