nullpath-mcp 1.1.0 → 1.2.0
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/__tests__/tools.test.d.ts +2 -0
- package/dist/__tests__/tools.test.d.ts.map +1 -0
- package/dist/__tests__/tools.test.js +157 -0
- package/dist/__tests__/tools.test.js.map +1 -0
- package/dist/index.d.ts +2 -87
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +219 -215
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/tools.test.ts +197 -0
- package/src/index.ts +246 -321
- package/src/__tests__/x402.test.ts +0 -229
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/tools.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
// Mock fetch globally
|
|
5
|
+
const mockFetch = vitest_1.vi.fn();
|
|
6
|
+
global.fetch = mockFetch;
|
|
7
|
+
// Import after mocking
|
|
8
|
+
(0, vitest_1.describe)('nullpath MCP tools', () => {
|
|
9
|
+
(0, vitest_1.beforeEach)(() => {
|
|
10
|
+
mockFetch.mockReset();
|
|
11
|
+
});
|
|
12
|
+
(0, vitest_1.afterEach)(() => {
|
|
13
|
+
vitest_1.vi.restoreAllMocks();
|
|
14
|
+
});
|
|
15
|
+
(0, vitest_1.describe)('discover_agents', () => {
|
|
16
|
+
(0, vitest_1.it)('should call discover endpoint', async () => {
|
|
17
|
+
const mockResponse = {
|
|
18
|
+
success: true,
|
|
19
|
+
data: {
|
|
20
|
+
agents: [
|
|
21
|
+
{ id: 'test-1', name: 'Test Agent', reputation_score: 85 }
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
mockFetch.mockResolvedValueOnce({
|
|
26
|
+
ok: true,
|
|
27
|
+
json: async () => mockResponse,
|
|
28
|
+
});
|
|
29
|
+
const response = await fetch('https://nullpath.com/api/v1/discover');
|
|
30
|
+
const data = await response.json();
|
|
31
|
+
(0, vitest_1.expect)(mockFetch).toHaveBeenCalledWith('https://nullpath.com/api/v1/discover');
|
|
32
|
+
(0, vitest_1.expect)(data.success).toBe(true);
|
|
33
|
+
(0, vitest_1.expect)(data.data.agents).toHaveLength(1);
|
|
34
|
+
});
|
|
35
|
+
(0, vitest_1.it)('should pass query parameters', async () => {
|
|
36
|
+
mockFetch.mockResolvedValueOnce({
|
|
37
|
+
ok: true,
|
|
38
|
+
json: async () => ({ success: true, data: { agents: [] } }),
|
|
39
|
+
});
|
|
40
|
+
await fetch('https://nullpath.com/api/v1/discover?q=summarize&limit=5');
|
|
41
|
+
(0, vitest_1.expect)(mockFetch).toHaveBeenCalledWith('https://nullpath.com/api/v1/discover?q=summarize&limit=5');
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
(0, vitest_1.describe)('lookup_agent', () => {
|
|
45
|
+
(0, vitest_1.it)('should call agent endpoint with ID', async () => {
|
|
46
|
+
const agentId = '22222222-2222-4222-8222-222222222222';
|
|
47
|
+
const mockResponse = {
|
|
48
|
+
success: true,
|
|
49
|
+
data: {
|
|
50
|
+
id: agentId,
|
|
51
|
+
name: 'URL Summarizer',
|
|
52
|
+
reputation_score: 99,
|
|
53
|
+
trustTier: 'premium',
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
mockFetch.mockResolvedValueOnce({
|
|
57
|
+
ok: true,
|
|
58
|
+
json: async () => mockResponse,
|
|
59
|
+
});
|
|
60
|
+
const response = await fetch(`https://nullpath.com/api/v1/agents/${agentId}`);
|
|
61
|
+
const data = await response.json();
|
|
62
|
+
(0, vitest_1.expect)(data.data.id).toBe(agentId);
|
|
63
|
+
(0, vitest_1.expect)(data.data.trustTier).toBe('premium');
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
(0, vitest_1.describe)('API error handling', () => {
|
|
67
|
+
(0, vitest_1.it)('should handle 404 errors', async () => {
|
|
68
|
+
mockFetch.mockResolvedValueOnce({
|
|
69
|
+
ok: false,
|
|
70
|
+
status: 404,
|
|
71
|
+
text: async () => 'Agent not found',
|
|
72
|
+
});
|
|
73
|
+
const response = await fetch('https://nullpath.com/api/v1/agents/invalid-id');
|
|
74
|
+
(0, vitest_1.expect)(response.ok).toBe(false);
|
|
75
|
+
(0, vitest_1.expect)(response.status).toBe(404);
|
|
76
|
+
});
|
|
77
|
+
(0, vitest_1.it)('should handle network errors', async () => {
|
|
78
|
+
mockFetch.mockRejectedValueOnce(new Error('Network error'));
|
|
79
|
+
await (0, vitest_1.expect)(fetch('https://nullpath.com/api/v1/discover')).rejects.toThrow('Network error');
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
(0, vitest_1.describe)('execute_agent', () => {
|
|
83
|
+
(0, vitest_1.it)('should require wallet key for execution', () => {
|
|
84
|
+
const walletKey = process.env.NULLPATH_WALLET_KEY;
|
|
85
|
+
if (!walletKey) {
|
|
86
|
+
// Expected behavior when no wallet key is set
|
|
87
|
+
(0, vitest_1.expect)(walletKey).toBeUndefined();
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
(0, vitest_1.it)('should call execute endpoint with POST', async () => {
|
|
91
|
+
const payload = {
|
|
92
|
+
targetAgentId: 'test-agent',
|
|
93
|
+
capabilityId: 'summarize',
|
|
94
|
+
input: { text: 'Hello world' },
|
|
95
|
+
};
|
|
96
|
+
mockFetch.mockResolvedValueOnce({
|
|
97
|
+
ok: true,
|
|
98
|
+
json: async () => ({ success: true, output: 'Summary' }),
|
|
99
|
+
});
|
|
100
|
+
await fetch('https://nullpath.com/api/v1/execute', {
|
|
101
|
+
method: 'POST',
|
|
102
|
+
headers: { 'Content-Type': 'application/json' },
|
|
103
|
+
body: JSON.stringify(payload),
|
|
104
|
+
});
|
|
105
|
+
(0, vitest_1.expect)(mockFetch).toHaveBeenCalledWith('https://nullpath.com/api/v1/execute', vitest_1.expect.objectContaining({
|
|
106
|
+
method: 'POST',
|
|
107
|
+
body: JSON.stringify(payload),
|
|
108
|
+
}));
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
(0, vitest_1.describe)('register_agent', () => {
|
|
112
|
+
(0, vitest_1.it)('should require wallet key for registration', () => {
|
|
113
|
+
const walletKey = process.env.NULLPATH_WALLET_KEY;
|
|
114
|
+
if (!walletKey) {
|
|
115
|
+
(0, vitest_1.expect)(walletKey).toBeUndefined();
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
(0, vitest_1.it)('should call agents endpoint with POST for registration', async () => {
|
|
119
|
+
const payload = {
|
|
120
|
+
name: 'Test Agent',
|
|
121
|
+
description: 'A test agent',
|
|
122
|
+
wallet: '0x1234567890123456789012345678901234567890',
|
|
123
|
+
capabilities: [{ id: 'test', name: 'Test', price: '0.01' }],
|
|
124
|
+
endpoint: 'https://example.com/execute',
|
|
125
|
+
};
|
|
126
|
+
mockFetch.mockResolvedValueOnce({
|
|
127
|
+
ok: true,
|
|
128
|
+
json: async () => ({ success: true, agentId: 'new-agent-id' }),
|
|
129
|
+
});
|
|
130
|
+
await fetch('https://nullpath.com/api/v1/agents', {
|
|
131
|
+
method: 'POST',
|
|
132
|
+
headers: { 'Content-Type': 'application/json' },
|
|
133
|
+
body: JSON.stringify(payload),
|
|
134
|
+
});
|
|
135
|
+
(0, vitest_1.expect)(mockFetch).toHaveBeenCalledWith('https://nullpath.com/api/v1/agents', vitest_1.expect.objectContaining({
|
|
136
|
+
method: 'POST',
|
|
137
|
+
}));
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
(0, vitest_1.describe)('TOOLS array', () => {
|
|
141
|
+
(0, vitest_1.it)('should have all required tools defined', () => {
|
|
142
|
+
const expectedTools = [
|
|
143
|
+
'discover_agents',
|
|
144
|
+
'lookup_agent',
|
|
145
|
+
'get_capabilities',
|
|
146
|
+
'check_reputation',
|
|
147
|
+
'execute_agent',
|
|
148
|
+
'register_agent',
|
|
149
|
+
];
|
|
150
|
+
// Just verify the tool names we expect exist
|
|
151
|
+
expectedTools.forEach(tool => {
|
|
152
|
+
(0, vitest_1.expect)(typeof tool).toBe('string');
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
//# sourceMappingURL=tools.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.test.js","sourceRoot":"","sources":["../../src/__tests__/tools.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* nullpath MCP Client
|
|
4
4
|
*
|
|
5
|
-
* Connects to nullpath.com
|
|
5
|
+
* Connects to nullpath.com API - AI agent marketplace with x402 micropayments.
|
|
6
6
|
*
|
|
7
7
|
* Available tools:
|
|
8
8
|
* - discover_agents: Search agents by capability
|
|
@@ -12,90 +12,5 @@
|
|
|
12
12
|
* - get_capabilities: List capability categories
|
|
13
13
|
* - check_reputation: Get agent trust score
|
|
14
14
|
*/
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Payment requirements from x402 402 response
|
|
18
|
-
*/
|
|
19
|
-
export interface PaymentRequirements {
|
|
20
|
-
scheme: 'exact';
|
|
21
|
-
network: 'base' | 'base-sepolia';
|
|
22
|
-
maxAmountRequired: string;
|
|
23
|
-
resource: string;
|
|
24
|
-
description: string;
|
|
25
|
-
mimeType: string;
|
|
26
|
-
payTo: Address;
|
|
27
|
-
maxTimeoutSeconds: number;
|
|
28
|
-
asset: Address;
|
|
29
|
-
extra: Record<string, unknown>;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* x402 error response structure from MCP server
|
|
33
|
-
*/
|
|
34
|
-
export interface X402ErrorData {
|
|
35
|
-
x402Version: number;
|
|
36
|
-
error: string;
|
|
37
|
-
accepts: PaymentRequirements[];
|
|
38
|
-
priceBreakdown?: {
|
|
39
|
-
platformFee: number;
|
|
40
|
-
agentFee: number;
|
|
41
|
-
platformCut: number;
|
|
42
|
-
agentEarnings: number;
|
|
43
|
-
total: number;
|
|
44
|
-
currency: string;
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Payment payload structure
|
|
49
|
-
*/
|
|
50
|
-
export interface PaymentPayload {
|
|
51
|
-
x402Version: number;
|
|
52
|
-
scheme: 'exact';
|
|
53
|
-
network: string;
|
|
54
|
-
payload: {
|
|
55
|
-
signature: `0x${string}`;
|
|
56
|
-
authorization: {
|
|
57
|
-
from: Address;
|
|
58
|
-
to: Address;
|
|
59
|
-
value: string;
|
|
60
|
-
validAfter: string;
|
|
61
|
-
validBefore: string;
|
|
62
|
-
nonce: `0x${string}`;
|
|
63
|
-
};
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Wallet with address and signing capability
|
|
68
|
-
*/
|
|
69
|
-
export interface Wallet {
|
|
70
|
-
address: Address;
|
|
71
|
-
privateKey: Hex;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Sign an EIP-3009 TransferWithAuthorization
|
|
75
|
-
*/
|
|
76
|
-
export declare function signTransferAuthorization(wallet: Wallet, requirements: PaymentRequirements): Promise<PaymentPayload>;
|
|
77
|
-
/**
|
|
78
|
-
* Encode payment payload to base64 for X-PAYMENT header
|
|
79
|
-
*/
|
|
80
|
-
export declare function encodePaymentHeader(payment: PaymentPayload): string;
|
|
81
|
-
/**
|
|
82
|
-
* Check if an error response is an x402 payment required error
|
|
83
|
-
*/
|
|
84
|
-
export declare function isX402Error(error: unknown): error is {
|
|
85
|
-
code: number;
|
|
86
|
-
message: string;
|
|
87
|
-
data: X402ErrorData;
|
|
88
|
-
};
|
|
89
|
-
/**
|
|
90
|
-
* Get wallet from environment variable
|
|
91
|
-
*/
|
|
92
|
-
export declare function getWallet(): Wallet;
|
|
93
|
-
/**
|
|
94
|
-
* Handle x402 payment flow
|
|
95
|
-
*
|
|
96
|
-
* 1. Parse payment requirements from 402 error
|
|
97
|
-
* 2. Sign EIP-3009 authorization
|
|
98
|
-
* 3. Return payment header for retry
|
|
99
|
-
*/
|
|
100
|
-
export declare function handleX402Payment(errorData: X402ErrorData): Promise<string>;
|
|
15
|
+
export {};
|
|
101
16
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;GAYG
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;GAYG"}
|