@coldiq/mcp 0.5.0 → 0.5.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/client.d.ts.map +1 -1
- package/dist/client.js +6 -2
- package/dist/client.js.map +1 -1
- package/package.json +1 -1
- package/src/client.ts +7 -2
- package/tests/client.test.ts +14 -0
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,OAAO,CAAA;IACb,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC,CAAA;AAMD,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CA0BjE;AAED,wBAAsB,OAAO,CAC3B,MAAM,EAAE,KAAK,GAAG,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,EACd,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAAC,WAAW,CAAC,CAkEtB"}
|
package/dist/client.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Agent, setGlobalDispatcher } from 'undici';
|
|
2
2
|
import { recordChargeFromHeaders } from './session-usage.js';
|
|
3
|
+
import { readPackageVersion } from './version.js';
|
|
4
|
+
const packageVersion = readPackageVersion(import.meta.url);
|
|
3
5
|
let _apiUrl;
|
|
4
6
|
let _apiKey;
|
|
5
7
|
let _httpTimeoutMs;
|
|
@@ -37,9 +39,11 @@ export async function callApi(method, path, body, queryParams) {
|
|
|
37
39
|
}
|
|
38
40
|
const headers = {
|
|
39
41
|
Authorization: `Bearer ${_apiKey}`,
|
|
40
|
-
// Client-declared surface attribution, persisted on
|
|
41
|
-
// (analytics only — mirrors src/lib/client-surface.ts
|
|
42
|
+
// Client-declared surface + package-version attribution, persisted on
|
|
43
|
+
// marketplace.usage_logs (analytics only — mirrors src/lib/client-surface.ts
|
|
44
|
+
// in the API repo; lets ColdIQ see which MCP versions are in the wild).
|
|
42
45
|
'X-ColdIQ-Client-Surface': 'mcp',
|
|
46
|
+
'X-ColdIQ-Client-Version': packageVersion,
|
|
43
47
|
};
|
|
44
48
|
const init = {
|
|
45
49
|
method,
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAA;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/client.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { Agent, setGlobalDispatcher } from 'undici'
|
|
2
2
|
import { recordChargeFromHeaders } from './session-usage.js'
|
|
3
|
+
import { readPackageVersion } from './version.js'
|
|
4
|
+
|
|
5
|
+
const packageVersion = readPackageVersion(import.meta.url)
|
|
3
6
|
|
|
4
7
|
export type ApiResponse = {
|
|
5
8
|
ok: boolean
|
|
@@ -56,9 +59,11 @@ export async function callApi(
|
|
|
56
59
|
|
|
57
60
|
const headers: Record<string, string> = {
|
|
58
61
|
Authorization: `Bearer ${_apiKey}`,
|
|
59
|
-
// Client-declared surface attribution, persisted on
|
|
60
|
-
// (analytics only — mirrors src/lib/client-surface.ts
|
|
62
|
+
// Client-declared surface + package-version attribution, persisted on
|
|
63
|
+
// marketplace.usage_logs (analytics only — mirrors src/lib/client-surface.ts
|
|
64
|
+
// in the API repo; lets ColdIQ see which MCP versions are in the wild).
|
|
61
65
|
'X-ColdIQ-Client-Surface': 'mcp',
|
|
66
|
+
'X-ColdIQ-Client-Version': packageVersion,
|
|
62
67
|
}
|
|
63
68
|
|
|
64
69
|
const init: RequestInit = {
|
package/tests/client.test.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs'
|
|
1
2
|
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest'
|
|
2
3
|
import { initClient, callApi } from '../src/client.js'
|
|
3
4
|
|
|
@@ -53,6 +54,19 @@ describe('client', () => {
|
|
|
53
54
|
expect(capturedHeaders['X-ColdIQ-Client-Surface']).toBe('mcp')
|
|
54
55
|
})
|
|
55
56
|
|
|
57
|
+
it('declares the package version on every request (version attribution)', async () => {
|
|
58
|
+
let capturedHeaders: Record<string, string> = {}
|
|
59
|
+
globalThis.fetch = vi.fn(async (_url: string | URL | Request, init?: RequestInit) => {
|
|
60
|
+
capturedHeaders = Object.fromEntries(Object.entries(init?.headers ?? {}))
|
|
61
|
+
return new Response(JSON.stringify({}), { status: 200 })
|
|
62
|
+
}) as typeof fetch
|
|
63
|
+
|
|
64
|
+
await callApi('GET', '/me/credits')
|
|
65
|
+
|
|
66
|
+
const { version } = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8')) as { version: string }
|
|
67
|
+
expect(capturedHeaders['X-ColdIQ-Client-Version']).toBe(version)
|
|
68
|
+
})
|
|
69
|
+
|
|
56
70
|
it('appends query params for GET requests', async () => {
|
|
57
71
|
let capturedUrl = ''
|
|
58
72
|
globalThis.fetch = vi.fn(async (url: string | URL | Request) => {
|