@databasin/mcp-client 0.2.0-beta.1 → 0.2.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.
Files changed (100) hide show
  1. package/README.md +36 -30
  2. package/dist/auth-schema.d.ts +23 -0
  3. package/dist/auth-schema.d.ts.map +1 -0
  4. package/dist/auth-schema.js +42 -0
  5. package/dist/auth-schema.js.map +1 -0
  6. package/dist/auth-tools.d.ts +10 -0
  7. package/dist/auth-tools.d.ts.map +1 -0
  8. package/dist/auth-tools.js +60 -0
  9. package/dist/auth-tools.js.map +1 -0
  10. package/dist/auth.d.ts +13 -74
  11. package/dist/auth.d.ts.map +1 -1
  12. package/dist/auth.js +16 -228
  13. package/dist/auth.js.map +1 -1
  14. package/dist/auth0-store.d.ts +14 -0
  15. package/dist/auth0-store.d.ts.map +1 -0
  16. package/dist/auth0-store.js +78 -0
  17. package/dist/auth0-store.js.map +1 -0
  18. package/dist/auth0-token.d.ts +3 -0
  19. package/dist/auth0-token.d.ts.map +1 -0
  20. package/dist/auth0-token.js +13 -0
  21. package/dist/auth0-token.js.map +1 -0
  22. package/dist/auth0.d.ts +41 -0
  23. package/dist/auth0.d.ts.map +1 -0
  24. package/dist/auth0.js +236 -0
  25. package/dist/auth0.js.map +1 -0
  26. package/dist/browser.d.ts.map +1 -1
  27. package/dist/browser.js +3 -2
  28. package/dist/browser.js.map +1 -1
  29. package/dist/cli.d.ts.map +1 -1
  30. package/dist/cli.js +3 -2
  31. package/dist/cli.js.map +1 -1
  32. package/dist/config.d.ts +5 -0
  33. package/dist/config.d.ts.map +1 -1
  34. package/dist/config.js +12 -2
  35. package/dist/config.js.map +1 -1
  36. package/dist/entra-auth.d.ts +84 -0
  37. package/dist/entra-auth.d.ts.map +1 -0
  38. package/dist/entra-auth.js +234 -0
  39. package/dist/entra-auth.js.map +1 -0
  40. package/dist/index.d.ts +1 -1
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +1 -1
  43. package/dist/index.js.map +1 -1
  44. package/dist/login-url.d.ts +2 -0
  45. package/dist/login-url.d.ts.map +1 -1
  46. package/dist/login-url.js +14 -0
  47. package/dist/login-url.js.map +1 -1
  48. package/dist/mcp-endpoint.d.ts +5 -0
  49. package/dist/mcp-endpoint.d.ts.map +1 -0
  50. package/dist/mcp-endpoint.js +22 -0
  51. package/dist/mcp-endpoint.js.map +1 -0
  52. package/dist/proxy-tools.d.ts +5 -0
  53. package/dist/proxy-tools.d.ts.map +1 -0
  54. package/dist/proxy-tools.js +39 -0
  55. package/dist/proxy-tools.js.map +1 -0
  56. package/dist/remote-mcp.d.ts +27 -0
  57. package/dist/remote-mcp.d.ts.map +1 -0
  58. package/dist/remote-mcp.js +70 -0
  59. package/dist/remote-mcp.js.map +1 -0
  60. package/dist/server.d.ts +3 -3
  61. package/dist/server.d.ts.map +1 -1
  62. package/dist/server.js +17 -7
  63. package/dist/server.js.map +1 -1
  64. package/dist/version.d.ts +1 -1
  65. package/dist/version.d.ts.map +1 -1
  66. package/dist/version.js +1 -1
  67. package/dist/version.js.map +1 -1
  68. package/package.json +7 -3
  69. package/dist/abort.d.ts +0 -5
  70. package/dist/abort.d.ts.map +0 -1
  71. package/dist/abort.js +0 -25
  72. package/dist/abort.js.map +0 -1
  73. package/dist/api-client.d.ts +0 -58
  74. package/dist/api-client.d.ts.map +0 -1
  75. package/dist/api-client.js +0 -151
  76. package/dist/api-client.js.map +0 -1
  77. package/dist/api-contract.d.ts +0 -59
  78. package/dist/api-contract.d.ts.map +0 -1
  79. package/dist/api-contract.js +0 -47
  80. package/dist/api-contract.js.map +0 -1
  81. package/dist/api-profile.d.ts +0 -5
  82. package/dist/api-profile.d.ts.map +0 -1
  83. package/dist/api-profile.js +0 -38
  84. package/dist/api-profile.js.map +0 -1
  85. package/dist/api-request.d.ts +0 -27
  86. package/dist/api-request.d.ts.map +0 -1
  87. package/dist/api-request.js +0 -147
  88. package/dist/api-request.js.map +0 -1
  89. package/dist/api-response.d.ts +0 -9
  90. package/dist/api-response.d.ts.map +0 -1
  91. package/dist/api-response.js +0 -206
  92. package/dist/api-response.js.map +0 -1
  93. package/dist/schemas.d.ts +0 -431
  94. package/dist/schemas.d.ts.map +0 -1
  95. package/dist/schemas.js +0 -289
  96. package/dist/schemas.js.map +0 -1
  97. package/dist/tools.d.ts +0 -28
  98. package/dist/tools.d.ts.map +0 -1
  99. package/dist/tools.js +0 -328
  100. package/dist/tools.js.map +0 -1
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.2.0-beta.1";
1
+ export declare const VERSION = "0.2.1";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,iBAAiB,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC"}
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = '0.2.0-beta.1';
1
+ export const VERSION = '0.2.1';
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,cAAc,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@databasin/mcp-client",
3
- "version": "0.2.0-beta.1",
4
- "description": "Local stdio MCP server for DataBasin with Microsoft Entra sign-in.",
3
+ "version": "0.2.1",
4
+ "description": "Local stdio MCP server for DataBasin with Auth0 sign-in and secure OS credential storage.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -29,6 +29,7 @@
29
29
  "test:stdio": "npm run build && vitest run tests/stdio.e2e.test.ts",
30
30
  "verify": "npm run typecheck && npm test && npm run test:stdio",
31
31
  "verify:package": "node scripts/verify-package.mjs",
32
+ "qualify:package": "node scripts/qualify-packed.mjs",
32
33
  "qualify:np": "node scripts/qualify-packed-np.mjs",
33
34
  "prepack": "npm run build"
34
35
  },
@@ -53,12 +54,15 @@
53
54
  "dependencies": {
54
55
  "@azure/msal-node": "5.5.0",
55
56
  "@azure/msal-node-extensions": "5.3.5",
57
+ "@modelcontextprotocol/client": "2.0.0",
56
58
  "@modelcontextprotocol/server": "2.0.0",
59
+ "jose": "6.2.12",
60
+ "proper-lockfile": "4.1.2",
57
61
  "zod": "4.2.0"
58
62
  },
59
63
  "devDependencies": {
60
- "@modelcontextprotocol/client": "2.0.0",
61
64
  "@types/node": "24.13.3",
65
+ "@types/proper-lockfile": "4.1.4",
62
66
  "typescript": "5.9.3",
63
67
  "vitest": "4.1.10"
64
68
  }
package/dist/abort.d.ts DELETED
@@ -1,5 +0,0 @@
1
- import { DataBasinError } from './errors.js';
2
- export declare function abortedRequest(correlationId?: string): DataBasinError;
3
- export declare function throwIfAborted(signal?: AbortSignal, correlationId?: string): void;
4
- export declare function abortableDelay(milliseconds: number, signal?: AbortSignal): Promise<void>;
5
- //# sourceMappingURL=abort.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"abort.d.ts","sourceRoot":"","sources":["../src/abort.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,wBAAgB,cAAc,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,cAAc,CAMrE;AAED,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAEjF;AAED,wBAAsB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAe9F"}
package/dist/abort.js DELETED
@@ -1,25 +0,0 @@
1
- import { DataBasinError } from './errors.js';
2
- export function abortedRequest(correlationId) {
3
- return new DataBasinError('REQUEST_ABORTED', 'The DataBasin request was cancelled by the caller.', correlationId === undefined ? {} : { correlationId });
4
- }
5
- export function throwIfAborted(signal, correlationId) {
6
- if (signal?.aborted)
7
- throw abortedRequest(correlationId);
8
- }
9
- export async function abortableDelay(milliseconds, signal) {
10
- throwIfAborted(signal);
11
- await new Promise((resolve, reject) => {
12
- const cleanup = () => signal?.removeEventListener('abort', onAbort);
13
- const onAbort = () => {
14
- clearTimeout(handle);
15
- cleanup();
16
- reject(abortedRequest());
17
- };
18
- const handle = setTimeout(() => {
19
- cleanup();
20
- resolve();
21
- }, milliseconds);
22
- signal?.addEventListener('abort', onAbort, { once: true });
23
- });
24
- }
25
- //# sourceMappingURL=abort.js.map
package/dist/abort.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"abort.js","sourceRoot":"","sources":["../src/abort.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,UAAU,cAAc,CAAC,aAAsB;IACnD,OAAO,IAAI,cAAc,CACvB,iBAAiB,EACjB,oDAAoD,EACpD,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CACrD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAoB,EAAE,aAAsB;IACzE,IAAI,MAAM,EAAE,OAAO;QAAE,MAAM,cAAc,CAAC,aAAa,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,YAAoB,EAAE,MAAoB;IAC7E,cAAc,CAAC,MAAM,CAAC,CAAC;IACvB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,YAAY,CAAC,MAAM,CAAC,CAAC;YACrB,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3B,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE;YAC7B,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,YAAY,CAAC,CAAC;QACjB,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,58 +0,0 @@
1
- import { z } from 'zod';
2
- import { fixedFacadeBaseUrl } from './api-profile.js';
3
- import { type Sleep } from './api-request.js';
4
- import { parseRetryAfter } from './api-response.js';
5
- import type { DataBasinProfile } from './config.js';
6
- import { CapabilitiesEnvelopeSchema, ContextEnvelopeSchema, GetSchemaEnvelopeSchema, SearchEnvelopeSchema, type AgentRunEnvelope, type AgentRunRequest, type AssistantEnvelope, type GetSchemaInput, type QueryEnvelope, type RunAssistantInput, type RunQueryInput, type SearchInput } from './schemas.js';
7
- type CapabilitiesEnvelope = z.infer<typeof CapabilitiesEnvelopeSchema>;
8
- type ContextEnvelope = z.infer<typeof ContextEnvelopeSchema>;
9
- type SearchEnvelope = z.infer<typeof SearchEnvelopeSchema>;
10
- type GetSchemaEnvelope = z.infer<typeof GetSchemaEnvelopeSchema>;
11
- export interface DataBasinApi {
12
- getCapabilities(signal?: AbortSignal): Promise<CapabilitiesEnvelope>;
13
- getContext(signal?: AbortSignal): Promise<ContextEnvelope>;
14
- search(input: SearchInput, signal?: AbortSignal): Promise<SearchEnvelope>;
15
- getSchema(input: GetSchemaInput, signal?: AbortSignal): Promise<GetSchemaEnvelope>;
16
- createAgentRun(input: AgentRunRequest, idempotencyKey: string, signal?: AbortSignal): Promise<AgentRunEnvelope>;
17
- getAgentRun(runId: string, signal?: AbortSignal): Promise<AgentRunEnvelope>;
18
- cancelAgentRun(runId: string, idempotencyKey: string, reason: string, signal?: AbortSignal): Promise<AgentRunEnvelope>;
19
- runQuery(input: RunQueryInput, signal?: AbortSignal): Promise<QueryEnvelope>;
20
- getQueryStatus(queryId: string, signal?: AbortSignal): Promise<QueryEnvelope>;
21
- cancelQuery(queryId: string, signal?: AbortSignal): Promise<QueryEnvelope>;
22
- runAssistant(input: RunAssistantInput, signal?: AbortSignal): Promise<AssistantEnvelope>;
23
- }
24
- export interface AuthProvider {
25
- profile: DataBasinProfile;
26
- getAccessToken(): Promise<string>;
27
- }
28
- export interface TestOnlyDataBasinApiClientOptions {
29
- testOnlyBaseUrl: string;
30
- auth: AuthProvider;
31
- fetchImpl: typeof fetch;
32
- maxResponseBytes?: number;
33
- timeoutMs?: number;
34
- sleepImpl?: Sleep;
35
- now?: () => number;
36
- }
37
- export declare class DataBasinApiClient implements DataBasinApi {
38
- private readonly transport;
39
- private constructor();
40
- static forProfile(auth: AuthProvider): DataBasinApiClient;
41
- static createForTests(options: TestOnlyDataBasinApiClientOptions): DataBasinApiClient;
42
- getCapabilities(signal?: AbortSignal): Promise<CapabilitiesEnvelope>;
43
- getContext(signal?: AbortSignal): Promise<ContextEnvelope>;
44
- search(input: SearchInput, signal?: AbortSignal): Promise<SearchEnvelope>;
45
- getSchema(input: GetSchemaInput, signal?: AbortSignal): Promise<GetSchemaEnvelope>;
46
- createAgentRun(input: AgentRunRequest, idempotencyKey: string, signal?: AbortSignal): Promise<AgentRunEnvelope>;
47
- getAgentRun(runId: string, signal?: AbortSignal): Promise<AgentRunEnvelope>;
48
- cancelAgentRun(runId: string, idempotencyKey: string, reason: string, signal?: AbortSignal): Promise<AgentRunEnvelope>;
49
- runQuery(input: RunQueryInput, signal?: AbortSignal): Promise<QueryEnvelope>;
50
- getQueryStatus(queryId: string, signal?: AbortSignal): Promise<QueryEnvelope>;
51
- cancelQuery(queryId: string, signal?: AbortSignal): Promise<QueryEnvelope>;
52
- runAssistant(input: RunAssistantInput, signal?: AbortSignal): Promise<AssistantEnvelope>;
53
- private execute;
54
- }
55
- export declare function createDataBasinApiClientForTests(options: TestOnlyDataBasinApiClientOptions): DataBasinApiClient;
56
- export { fixedFacadeBaseUrl, parseRetryAfter };
57
- export declare const ASSISTANT_REQUEST_TIMEOUT_MS: number;
58
- //# sourceMappingURL=api-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
@@ -1,151 +0,0 @@
1
- import { assertBuiltInProfile, fixedFacadeBaseUrl, normalizeTestOnlyBaseUrl } from './api-profile.js';
2
- import { defaultRetryDelay, executeFacadeRequest } from './api-request.js';
3
- import { parseRetryAfter } from './api-response.js';
4
- import { DataBasinError } from './errors.js';
5
- import { AgentRunEnvelopeSchema, AgentRunRequestSchema, AssistantEnvelopeSchema, CapabilitiesEnvelopeSchema, ContextEnvelopeSchema, GetSchemaEnvelopeSchema, GetSchemaInputSchema, QueryEnvelopeSchema, QueryLookupInputSchema, RunAssistantInputSchema, RunIdSchema, RunQueryInputSchema, SearchEnvelopeSchema, SearchInputSchema } from './schemas.js';
6
- export class DataBasinApiClient {
7
- transport;
8
- constructor(transport) {
9
- this.transport = transport;
10
- }
11
- static forProfile(auth) {
12
- assertBuiltInProfile(auth.profile);
13
- return new DataBasinApiClient(transportOptions(fixedFacadeBaseUrl(auth.profile.environment), auth));
14
- }
15
- static createForTests(options) {
16
- return new DataBasinApiClient({
17
- ...transportOptions(normalizeTestOnlyBaseUrl(options.testOnlyBaseUrl), options.auth),
18
- fetchImpl: options.fetchImpl,
19
- maxResponseBytes: options.maxResponseBytes ?? 5_000_000,
20
- timeoutMs: options.timeoutMs ?? 30_000,
21
- sleepImpl: options.sleepImpl ?? defaultRetryDelay,
22
- now: options.now ?? Date.now
23
- });
24
- }
25
- getCapabilities(signal) {
26
- return this.execute({ endpoint: 'capabilities', schema: CapabilitiesEnvelopeSchema, signal });
27
- }
28
- getContext(signal) {
29
- return this.execute({ endpoint: 'context', schema: ContextEnvelopeSchema, signal });
30
- }
31
- async search(input, signal) {
32
- const request = SearchInputSchema.safeParse(input);
33
- if (!request.success)
34
- throw invalidArgument('search');
35
- return this.execute({ endpoint: 'search', schema: SearchEnvelopeSchema, body: request.data, signal });
36
- }
37
- async getSchema(input, signal) {
38
- const request = GetSchemaInputSchema.safeParse(input);
39
- if (!request.success)
40
- throw invalidArgument('schema');
41
- return this.execute({
42
- endpoint: 'schema',
43
- schema: GetSchemaEnvelopeSchema,
44
- query: schemaQuery(request.data),
45
- signal
46
- });
47
- }
48
- async createAgentRun(input, idempotencyKey, signal) {
49
- assertUuid(idempotencyKey, 'idempotency key');
50
- const request = AgentRunRequestSchema.safeParse(input);
51
- if (!request.success)
52
- throw invalidArgument('agent run');
53
- return this.execute({
54
- endpoint: 'createAgentRun',
55
- schema: AgentRunEnvelopeSchema,
56
- body: request.data,
57
- signal,
58
- headers: { 'idempotency-key': idempotencyKey }
59
- });
60
- }
61
- async getAgentRun(runId, signal) {
62
- assertRunId(runId);
63
- return this.execute({ endpoint: 'getAgentRun', schema: AgentRunEnvelopeSchema, runId, signal });
64
- }
65
- async cancelAgentRun(runId, idempotencyKey, reason, signal) {
66
- assertUuid(idempotencyKey, 'idempotency key');
67
- assertRunId(runId);
68
- return this.execute({
69
- endpoint: 'cancelAgentRun',
70
- schema: AgentRunEnvelopeSchema,
71
- runId,
72
- body: { reason },
73
- signal,
74
- headers: { 'idempotency-key': idempotencyKey }
75
- });
76
- }
77
- async runQuery(input, signal) {
78
- const request = RunQueryInputSchema.safeParse(input);
79
- if (!request.success)
80
- throw invalidArgument('query');
81
- return this.execute({ endpoint: 'runQuery', schema: QueryEnvelopeSchema, body: request.data, signal });
82
- }
83
- async getQueryStatus(queryId, signal) {
84
- assertQueryId(queryId);
85
- return this.execute({ endpoint: 'getQueryStatus', schema: QueryEnvelopeSchema, queryId, signal });
86
- }
87
- async cancelQuery(queryId, signal) {
88
- assertQueryId(queryId);
89
- return this.execute({ endpoint: 'cancelQuery', schema: QueryEnvelopeSchema, queryId, signal });
90
- }
91
- async runAssistant(input, signal) {
92
- const request = RunAssistantInputSchema.safeParse(input);
93
- if (!request.success)
94
- throw invalidArgument('assistant');
95
- return this.execute({
96
- endpoint: 'assistant',
97
- schema: AssistantEnvelopeSchema,
98
- body: request.data,
99
- signal,
100
- timeoutMs: ASSISTANT_REQUEST_TIMEOUT_MS
101
- });
102
- }
103
- execute(request) {
104
- return executeFacadeRequest(this.transport, request);
105
- }
106
- }
107
- export function createDataBasinApiClientForTests(options) {
108
- return DataBasinApiClient.createForTests(options);
109
- }
110
- export { fixedFacadeBaseUrl, parseRetryAfter };
111
- // The assistant call runs synchronously and the facade caps its own wall clock
112
- // at ~5 minutes, always returning a definitive envelope rather than hanging --
113
- // this is deliberately longer than the shared 30s default so a legitimate
114
- // in-progress run is never cut off from the client side first.
115
- export const ASSISTANT_REQUEST_TIMEOUT_MS = 5 * 60_000 + 60_000;
116
- function transportOptions(baseUrl, auth) {
117
- return {
118
- baseUrl,
119
- getAccessToken: () => auth.getAccessToken(),
120
- maxResponseBytes: 5_000_000,
121
- timeoutMs: 30_000,
122
- sleepImpl: defaultRetryDelay,
123
- now: Date.now
124
- };
125
- }
126
- function schemaQuery(input) {
127
- const query = new URLSearchParams({ connectorId: input.connectorId, level: input.level });
128
- for (const key of ['catalog', 'schema', 'table']) {
129
- const value = input[key];
130
- if (value !== undefined)
131
- query.set(key, value);
132
- }
133
- return query;
134
- }
135
- function assertRunId(runId) {
136
- if (!RunIdSchema.safeParse(runId).success)
137
- throw invalidArgument('agent run ID');
138
- }
139
- function assertQueryId(queryId) {
140
- if (!QueryLookupInputSchema.shape.queryId.safeParse(queryId).success)
141
- throw invalidArgument('query ID');
142
- }
143
- function assertUuid(value, label) {
144
- if (!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu.test(value)) {
145
- throw new DataBasinError('INVALID_ARGUMENT', `The ${label} must be a UUID.`);
146
- }
147
- }
148
- function invalidArgument(subject) {
149
- return new DataBasinError('INVALID_ARGUMENT', `The DataBasin ${subject} request was invalid.`);
150
- }
151
- //# sourceMappingURL=api-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
@@ -1,59 +0,0 @@
1
- export declare const MCP_FACADE_ROOT: "/api/v1/mcp";
2
- export declare const MCP_ENDPOINTS: Readonly<{
3
- readonly capabilities: Readonly<{
4
- method: "GET";
5
- path: "/capabilities";
6
- }>;
7
- readonly context: Readonly<{
8
- method: "GET";
9
- path: "/context";
10
- }>;
11
- readonly search: Readonly<{
12
- method: "POST";
13
- path: "/search";
14
- }>;
15
- readonly schema: Readonly<{
16
- method: "GET";
17
- path: "/schema";
18
- }>;
19
- readonly createAgentRun: Readonly<{
20
- method: "POST";
21
- path: "/agent-runs";
22
- }>;
23
- readonly getAgentRun: Readonly<{
24
- method: "GET";
25
- path: "/agent-runs/:runId";
26
- }>;
27
- readonly cancelAgentRun: Readonly<{
28
- method: "POST";
29
- path: "/agent-runs/:runId/cancel";
30
- }>;
31
- readonly runQuery: Readonly<{
32
- method: "POST";
33
- path: "/query";
34
- }>;
35
- readonly getQueryStatus: Readonly<{
36
- method: "GET";
37
- path: "/query/:queryId";
38
- }>;
39
- readonly cancelQuery: Readonly<{
40
- method: "POST";
41
- path: "/query/:queryId/cancel";
42
- }>;
43
- readonly assistant: Readonly<{
44
- method: "POST";
45
- path: "/assistant";
46
- }>;
47
- }>;
48
- export type McpHttpMethod = 'GET' | 'POST';
49
- export type McpEndpointName = keyof typeof MCP_ENDPOINTS;
50
- export interface ResolvedMcpEndpoint {
51
- method: McpHttpMethod;
52
- path: string;
53
- }
54
- export declare function resolveMcpEndpoint(name: McpEndpointName, options?: {
55
- runId?: string | undefined;
56
- queryId?: string | undefined;
57
- query?: URLSearchParams | undefined;
58
- }): ResolvedMcpEndpoint;
59
- //# sourceMappingURL=api-contract.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-contract.d.ts","sourceRoot":"","sources":["../src/api-contract.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,EAAG,aAAsB,CAAC;AAEtD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYf,CAAC;AAEZ,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;AAC3C,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,aAAa,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,eAAe,EACrB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,eAAe,GAAG,SAAS,CAAA;CAAO,GAC9G,mBAAmB,CAMrB"}
@@ -1,47 +0,0 @@
1
- export const MCP_FACADE_ROOT = '/api/v1/mcp';
2
- export const MCP_ENDPOINTS = Object.freeze({
3
- capabilities: Object.freeze({ method: 'GET', path: '/capabilities' }),
4
- context: Object.freeze({ method: 'GET', path: '/context' }),
5
- search: Object.freeze({ method: 'POST', path: '/search' }),
6
- schema: Object.freeze({ method: 'GET', path: '/schema' }),
7
- createAgentRun: Object.freeze({ method: 'POST', path: '/agent-runs' }),
8
- getAgentRun: Object.freeze({ method: 'GET', path: '/agent-runs/:runId' }),
9
- cancelAgentRun: Object.freeze({ method: 'POST', path: '/agent-runs/:runId/cancel' }),
10
- runQuery: Object.freeze({ method: 'POST', path: '/query' }),
11
- getQueryStatus: Object.freeze({ method: 'GET', path: '/query/:queryId' }),
12
- cancelQuery: Object.freeze({ method: 'POST', path: '/query/:queryId/cancel' }),
13
- assistant: Object.freeze({ method: 'POST', path: '/assistant' })
14
- });
15
- export function resolveMcpEndpoint(name, options = {}) {
16
- const endpoint = MCP_ENDPOINTS[name];
17
- const path = resolvePath(name, endpoint.path, options.runId, options.queryId);
18
- if (options.query && name !== 'schema')
19
- throw new Error('Only the schema endpoint accepts query parameters.');
20
- const suffix = options.query?.toString();
21
- return { method: endpoint.method, path: suffix ? `${path}?${suffix}` : path };
22
- }
23
- function fillPathId(template, placeholder, value) {
24
- const encoded = encodeURIComponent(value);
25
- if (!encoded || encoded === '.' || encoded === '..') {
26
- throw new Error('The DataBasin resource ID is invalid.');
27
- }
28
- return template.replace(placeholder, encoded);
29
- }
30
- function resolvePath(name, path, runId, queryId) {
31
- if (name === 'getAgentRun' || name === 'cancelAgentRun') {
32
- if (runId === undefined)
33
- throw new Error(`The ${name} endpoint requires a run ID.`);
34
- return fillPathId(path, ':runId', runId);
35
- }
36
- if (name === 'getQueryStatus' || name === 'cancelQuery') {
37
- if (queryId === undefined)
38
- throw new Error(`The ${name} endpoint requires a query ID.`);
39
- return fillPathId(path, ':queryId', queryId);
40
- }
41
- if (runId !== undefined)
42
- throw new Error(`The ${name} endpoint does not accept a run ID.`);
43
- if (queryId !== undefined)
44
- throw new Error(`The ${name} endpoint does not accept a query ID.`);
45
- return path;
46
- }
47
- //# sourceMappingURL=api-contract.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-contract.js","sourceRoot":"","sources":["../src/api-contract.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { type DataBasinEnvironment, type DataBasinProfile } from './config.js';
2
- export declare function fixedFacadeBaseUrl(environment: DataBasinEnvironment): string;
3
- export declare function assertBuiltInProfile(profile: DataBasinProfile): void;
4
- export declare function normalizeTestOnlyBaseUrl(raw: string): string;
5
- //# sourceMappingURL=api-profile.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-profile.d.ts","sourceRoot":"","sources":["../src/api-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAQ3F,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,oBAAoB,GAAG,MAAM,CAI5E;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CASpE;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAY5D"}
@@ -1,38 +0,0 @@
1
- import { getProfile } from './config.js';
2
- import { MCP_FACADE_ROOT } from './api-contract.js';
3
- const FIXED_FACADE_ORIGINS = Object.freeze({
4
- prod: 'https://databasin.cloud',
5
- np: 'https://databasin-ui-np.grayriver-813df174.centralus.azurecontainerapps.io'
6
- });
7
- export function fixedFacadeBaseUrl(environment) {
8
- const origin = FIXED_FACADE_ORIGINS[environment];
9
- if (!origin)
10
- throw new Error('Only the built-in DataBasin production and NP profiles are permitted.');
11
- return `${origin}${MCP_FACADE_ROOT}`;
12
- }
13
- export function assertBuiltInProfile(profile) {
14
- const expected = getProfile(profile.environment);
15
- const matches = profile.label === expected.label
16
- && profile.apiBaseUrl === FIXED_FACADE_ORIGINS[profile.environment]
17
- && profile.tenantId === expected.tenantId
18
- && profile.clientId === expected.clientId
19
- && profile.scopes.length === expected.scopes.length
20
- && profile.scopes.every((scope, index) => scope === expected.scopes[index]);
21
- if (!matches)
22
- throw new Error('Only the built-in DataBasin production and NP profiles are permitted.');
23
- }
24
- export function normalizeTestOnlyBaseUrl(raw) {
25
- const url = new URL(raw);
26
- const loopback = url.hostname === 'localhost' || url.hostname === '127.0.0.1' || url.hostname === '::1';
27
- if (url.protocol !== 'https:' && !(url.protocol === 'http:' && loopback)) {
28
- throw new Error('The test-only DataBasin URL must use HTTPS or loopback HTTP.');
29
- }
30
- if (url.username || url.password)
31
- throw new Error('The test-only DataBasin URL must not contain credentials.');
32
- url.search = '';
33
- url.hash = '';
34
- const path = url.pathname.replace(/\/+$/u, '');
35
- url.pathname = path.endsWith(MCP_FACADE_ROOT) ? path : `${path}${MCP_FACADE_ROOT}`;
36
- return url.toString().replace(/\/$/u, '');
37
- }
38
- //# sourceMappingURL=api-profile.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-profile.js","sourceRoot":"","sources":["../src/api-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoD,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,oBAAoB,GAAmD,MAAM,CAAC,MAAM,CAAC;IACzF,IAAI,EAAE,yBAAyB;IAC/B,EAAE,EAAE,4EAA4E;CACjF,CAAC,CAAC;AAEH,MAAM,UAAU,kBAAkB,CAAC,WAAiC;IAClE,MAAM,MAAM,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IACtG,OAAO,GAAG,MAAM,GAAG,eAAe,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAyB;IAC5D,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK;WAC3C,OAAO,CAAC,UAAU,KAAK,oBAAoB,CAAC,OAAO,CAAC,WAAW,CAAC;WAChE,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ;WACtC,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ;WACtC,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC,MAAM;WAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9E,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;AACzG,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,GAAW;IAClD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,KAAK,WAAW,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC;IACxG,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,QAAQ,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/G,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;IACd,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC/C,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,eAAe,EAAE,CAAC;IACnF,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC5C,CAAC"}
@@ -1,27 +0,0 @@
1
- import type { ZodType } from 'zod';
2
- import { type McpEndpointName } from './api-contract.js';
3
- import type { SuccessEnvelope } from './schemas.js';
4
- export type Sleep = (milliseconds: number, signal?: AbortSignal) => Promise<void>;
5
- export interface RequestTransportOptions {
6
- baseUrl: string;
7
- getAccessToken: () => Promise<string>;
8
- fetchImpl?: typeof fetch;
9
- maxResponseBytes: number;
10
- timeoutMs: number;
11
- sleepImpl: Sleep;
12
- now: () => number;
13
- }
14
- export interface FacadeRequest<T> {
15
- endpoint: McpEndpointName;
16
- schema: ZodType<SuccessEnvelope<T>>;
17
- runId?: string | undefined;
18
- queryId?: string | undefined;
19
- query?: URLSearchParams | undefined;
20
- body?: unknown;
21
- signal?: AbortSignal | undefined;
22
- headers?: Record<string, string> | undefined;
23
- timeoutMs?: number | undefined;
24
- }
25
- export declare function executeFacadeRequest<T>(options: RequestTransportOptions, request: FacadeRequest<T>): Promise<SuccessEnvelope<T>>;
26
- export declare const defaultRetryDelay: Sleep;
27
- //# sourceMappingURL=api-request.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-request.d.ts","sourceRoot":"","sources":["../src/api-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAGnC,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAY7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,MAAM,KAAK,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAElF,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,KAAK,CAAC;IACjB,GAAG,EAAE,MAAM,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAI7C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAOD,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,OAAO,EAAE,uBAAuB,EAChC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAsB7B;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAsB,CAAC"}