@hydradb/mcp 1.2.2 → 1.4.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/CHANGELOG.md +50 -0
- package/README.md +48 -2
- package/dist/adapters.d.ts +3 -3
- package/dist/adapters.js.map +1 -1
- package/dist/descriptions.d.ts +24 -0
- package/dist/descriptions.js +63 -3
- package/dist/descriptions.js.map +1 -1
- package/dist/http-config.d.ts +31 -1
- package/dist/http-config.js +29 -29
- package/dist/http-config.js.map +1 -1
- package/dist/http.js +82 -5
- package/dist/http.js.map +1 -1
- package/dist/hydra/client.d.ts +224 -5
- package/dist/hydra/client.js +166 -9
- package/dist/hydra/client.js.map +1 -1
- package/dist/hydra/graph.d.ts +1 -5
- package/dist/hydra/graph.js +5 -92
- package/dist/hydra/graph.js.map +1 -1
- package/dist/hydra/index.d.ts +4 -1
- package/dist/hydra/index.js +2 -0
- package/dist/hydra/index.js.map +1 -1
- package/dist/hydra/transport.d.ts +37 -0
- package/dist/hydra/transport.js +114 -0
- package/dist/hydra/transport.js.map +1 -0
- package/dist/oauth.d.ts +109 -0
- package/dist/oauth.js +228 -0
- package/dist/oauth.js.map +1 -0
- package/dist/server.d.ts +9 -1
- package/dist/server.js +265 -7
- package/dist/server.js.map +1 -1
- package/dist/tool-names.d.ts +10 -1
- package/dist/tool-names.js +17 -0
- package/dist/tool-names.js.map +1 -1
- package/package.json +2 -2
package/dist/hydra/client.js
CHANGED
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
import { Buffer } from "node:buffer";
|
|
17
17
|
import { HydraDBClient } from "@hydradb/sdk";
|
|
18
18
|
import { unwrap } from "./envelope.js";
|
|
19
|
-
import {
|
|
19
|
+
import { newRawTransport, sendRaw } from "./transport.js";
|
|
20
|
+
import { HydraWrapperError, translateError } from "./errors.js";
|
|
20
21
|
import { GraphResource } from "./graph.js";
|
|
21
22
|
/**
|
|
22
23
|
* Sized to fit inside a typical MCP host's tool timeout rather than outlast it,
|
|
@@ -47,24 +48,115 @@ const STDERR_LOGGER = {
|
|
|
47
48
|
function req(opts) {
|
|
48
49
|
return opts?.signal ? { abortSignal: opts.signal } : undefined;
|
|
49
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* A per-call `database` named one the connection is not allowed to touch.
|
|
53
|
+
*
|
|
54
|
+
* Written for the agent that reads it as a tool error: it names what IS
|
|
55
|
+
* allowed and where the choice was made, so the agent can either use an
|
|
56
|
+
* allowed database or tell the user to reconnect with wider access, rather
|
|
57
|
+
* than retrying blindly.
|
|
58
|
+
*/
|
|
59
|
+
export class ScopeNotAllowedError extends Error {
|
|
60
|
+
constructor(kind, requested, allowed) {
|
|
61
|
+
super(`This connection is confined to ${kind} ${allowed.map((d) => `"${d}"`).join(", ")} ` +
|
|
62
|
+
`and cannot use ${kind} "${requested}". The user chose this when approving the ` +
|
|
63
|
+
`connection; to use another ${kind} they must reconnect and allow it.`);
|
|
64
|
+
this.kind = kind;
|
|
65
|
+
this.requested = requested;
|
|
66
|
+
this.allowed = allowed;
|
|
67
|
+
this.name = "ScopeNotAllowedError";
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/** Kept for the name callers already import; the database case of the above. */
|
|
71
|
+
export const DatabaseNotAllowedError = ScopeNotAllowedError;
|
|
72
|
+
/** Throws unless `database` is one the connection may use. */
|
|
73
|
+
export function assertDatabaseAllowed(database, allowed) {
|
|
74
|
+
if (allowed && !allowed.includes(database)) {
|
|
75
|
+
throw new ScopeNotAllowedError("database", database, allowed);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Throws unless `collection` is one the connection may use.
|
|
80
|
+
*
|
|
81
|
+
* Separate from the database check because confinement has to cover both:
|
|
82
|
+
* a caller pinned to one database can otherwise step sideways into a
|
|
83
|
+
* collection the consent screen never showed, and `drop_collection` makes
|
|
84
|
+
* that destructive.
|
|
85
|
+
*/
|
|
86
|
+
export function assertCollectionAllowed(collection, allowed) {
|
|
87
|
+
if (allowed && !allowed.includes(collection)) {
|
|
88
|
+
throw new ScopeNotAllowedError("collection", collection, allowed);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
50
91
|
class Resource {
|
|
51
|
-
constructor(sdk, database, collection
|
|
92
|
+
constructor(sdk, database, collection, allowedDatabases, allowedCollections,
|
|
93
|
+
/**
|
|
94
|
+
* The hand-rolled HTTP path, for the endpoints the SDK does not expose
|
|
95
|
+
* (CONTRACT §2 rule 7). Optional only so tests that inject a fake SDK and
|
|
96
|
+
* never touch such an endpoint need not build one.
|
|
97
|
+
*/
|
|
98
|
+
raw) {
|
|
52
99
|
this.sdk = sdk;
|
|
53
100
|
this.database = database;
|
|
54
101
|
this.collection = collection;
|
|
102
|
+
this.allowedDatabases = allowedDatabases;
|
|
103
|
+
this.allowedCollections = allowedCollections;
|
|
104
|
+
this.raw = raw;
|
|
55
105
|
}
|
|
56
106
|
scope(override, dbOverride) {
|
|
57
107
|
const database = dbOverride?.trim() || this.database;
|
|
108
|
+
// Enforced HERE, on the one path every per-call scope takes, so no tool
|
|
109
|
+
// can forget to check. The configured defaults are always allowed.
|
|
110
|
+
if (database !== this.database)
|
|
111
|
+
assertDatabaseAllowed(database, this.allowedDatabases);
|
|
58
112
|
const collection = override?.trim() || this.collection;
|
|
113
|
+
if (collection && collection !== this.collection) {
|
|
114
|
+
assertCollectionAllowed(collection, this.allowedCollections);
|
|
115
|
+
}
|
|
59
116
|
return collection != null && collection !== ""
|
|
60
117
|
? { database, collection }
|
|
61
118
|
: { database };
|
|
62
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Scope for a query that names SEVERAL collections.
|
|
122
|
+
*
|
|
123
|
+
* Deliberately does NOT fall back to the configured default collection. The
|
|
124
|
+
* server folds the singular `collection` into the deprecated `sub_tenant_id`
|
|
125
|
+
* and refuses any request that carries it alongside a multi-scope selector,
|
|
126
|
+
* so injecting the default here would turn every `collections` call on a
|
|
127
|
+
* scoped connection into a 400. Naming the collections IS the scope.
|
|
128
|
+
*
|
|
129
|
+
* Confinement is enforced on the same path as `scope`: every named
|
|
130
|
+
* collection is checked, so a multi-scope selector cannot reach past what an
|
|
131
|
+
* OAuth connection was confined to.
|
|
132
|
+
*/
|
|
133
|
+
multiScope(collections, dbOverride) {
|
|
134
|
+
const database = dbOverride?.trim() || this.database;
|
|
135
|
+
if (database !== this.database)
|
|
136
|
+
assertDatabaseAllowed(database, this.allowedDatabases);
|
|
137
|
+
const names = Array.isArray(collections)
|
|
138
|
+
? collections
|
|
139
|
+
: Object.keys(collections);
|
|
140
|
+
if (names.length === 0) {
|
|
141
|
+
throw new Error("collections was empty — pass at least one collection name, or omit " +
|
|
142
|
+
"collections to search the connection's default scope.");
|
|
143
|
+
}
|
|
144
|
+
for (const name of names) {
|
|
145
|
+
if (name !== this.collection) {
|
|
146
|
+
assertCollectionAllowed(name, this.allowedCollections);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return { database, collections };
|
|
150
|
+
}
|
|
63
151
|
async call(path, fn) {
|
|
64
152
|
try {
|
|
65
153
|
return unwrap(await fn());
|
|
66
154
|
}
|
|
67
155
|
catch (err) {
|
|
156
|
+
// A refused database is a decision the user made, not a transport
|
|
157
|
+
// failure from `path`; it keeps its own type and message.
|
|
158
|
+
if (err instanceof ScopeNotAllowedError)
|
|
159
|
+
throw err;
|
|
68
160
|
throw translateError(path, err);
|
|
69
161
|
}
|
|
70
162
|
}
|
|
@@ -73,8 +165,8 @@ export class ContextResource extends Resource {
|
|
|
73
165
|
// The base constructor is `protected`, so this one is what makes the class
|
|
74
166
|
// instantiable from outside the file. Removing it fails with TS2674.
|
|
75
167
|
// biome-ignore lint/complexity/noUselessConstructor: widens visibility
|
|
76
|
-
constructor(sdk, database, collection) {
|
|
77
|
-
super(sdk, database, collection);
|
|
168
|
+
constructor(sdk, database, collection, allowedDatabases, allowedCollections, raw) {
|
|
169
|
+
super(sdk, database, collection, allowedDatabases, allowedCollections, raw);
|
|
78
170
|
}
|
|
79
171
|
/**
|
|
80
172
|
* The single retrieval entry point (SDK `client.query`).
|
|
@@ -101,8 +193,20 @@ export class ContextResource extends Resource {
|
|
|
101
193
|
`hybrid retrieval, or pass queryBy "text" to match on the terms.`);
|
|
102
194
|
}
|
|
103
195
|
const queryBy = params.queryBy ?? (params.operator != null ? "text" : undefined);
|
|
196
|
+
// One scope selector per request. The server rejects a multi-scope
|
|
197
|
+
// selector sent alongside the singular one it folds `collection` into, so
|
|
198
|
+
// a caller that sets both has stated two different scopes and only they
|
|
199
|
+
// can say which they meant — the same stance taken on operator/queryBy
|
|
200
|
+
// above, rather than silently dropping one.
|
|
201
|
+
if (params.collections != null && params.collection != null) {
|
|
202
|
+
throw new Error("pass either collection (one scope) or collections (several) — not " +
|
|
203
|
+
"both. Hydra DB refuses a request carrying both selectors.");
|
|
204
|
+
}
|
|
205
|
+
const scope = params.collections != null
|
|
206
|
+
? this.multiScope(params.collections, params.database)
|
|
207
|
+
: this.scope(params.collection, params.database);
|
|
104
208
|
return this.call("/query", () => this.sdk.query({
|
|
105
|
-
...
|
|
209
|
+
...scope,
|
|
106
210
|
query: params.query,
|
|
107
211
|
type: params.kind,
|
|
108
212
|
operator: params.operator,
|
|
@@ -112,9 +216,11 @@ export class ContextResource extends Resource {
|
|
|
112
216
|
graphContext: params.graphContext,
|
|
113
217
|
alpha: params.alpha,
|
|
114
218
|
recencyBias: params.recencyBias,
|
|
219
|
+
queryApps: params.queryApps,
|
|
115
220
|
ids: params.ids,
|
|
116
221
|
metadataFilters: params.metadataFilters,
|
|
117
222
|
numRelatedChunks: params.numRelatedChunks,
|
|
223
|
+
acl: params.acl,
|
|
118
224
|
}, req(opts)));
|
|
119
225
|
}
|
|
120
226
|
/**
|
|
@@ -209,6 +315,7 @@ export class ContextResource extends Resource {
|
|
|
209
315
|
ids: params.ids,
|
|
210
316
|
page: params.page,
|
|
211
317
|
pageSize: params.pageSize,
|
|
318
|
+
acl: params.acl,
|
|
212
319
|
}, req(opts)));
|
|
213
320
|
}
|
|
214
321
|
/** Fetch a source's content (SDK `context.inspect`; was "fetch content"). */
|
|
@@ -218,6 +325,7 @@ export class ContextResource extends Resource {
|
|
|
218
325
|
id: params.id,
|
|
219
326
|
mode: params.mode,
|
|
220
327
|
expirySeconds: params.expirySeconds,
|
|
328
|
+
acl: params.acl,
|
|
221
329
|
}, req(opts)));
|
|
222
330
|
}
|
|
223
331
|
/** Per-source indexing progress (SDK `context.status`). */
|
|
@@ -227,6 +335,46 @@ export class ContextResource extends Resource {
|
|
|
227
335
|
ids: params.ids,
|
|
228
336
|
}, req(opts)));
|
|
229
337
|
}
|
|
338
|
+
/**
|
|
339
|
+
* The connected subgraph of one item (`GET /context/{id}/subgraph`): every
|
|
340
|
+
* item reachable from it through item-level relations — explicit links, a
|
|
341
|
+
* shared thread, parent/child — plus the relations among the members and
|
|
342
|
+
* the structural graph around them.
|
|
343
|
+
*
|
|
344
|
+
* No SDK resource for this yet, so it takes the raw path (CONTRACT §2 rule
|
|
345
|
+
* 7): same header, same envelope unwrap, same error type as everything else
|
|
346
|
+
* here. When the SDK grows `context.subgraph`, only this method changes.
|
|
347
|
+
*/
|
|
348
|
+
async subgraph(params, opts) {
|
|
349
|
+
// `async` for the same reason `query` and `ingest` are: the scope check
|
|
350
|
+
// below throws, and a caller awaiting this must see a rejection, not a
|
|
351
|
+
// synchronous exception from the call site.
|
|
352
|
+
if (!this.raw) {
|
|
353
|
+
throw new HydraWrapperError("Hydra DB /context/{id}/subgraph → ERR: no HTTP transport configured", "/context/{id}/subgraph");
|
|
354
|
+
}
|
|
355
|
+
// Blank is the one id the wrapper rejects locally: it would build
|
|
356
|
+
// "/context//subgraph" and fail as a remote routing error instead of a
|
|
357
|
+
// legible one. Everything else goes out byte for byte — ingest stores a
|
|
358
|
+
// source_id verbatim, so trimming here could address a different item.
|
|
359
|
+
if (params.id.trim() === "") {
|
|
360
|
+
throw new HydraWrapperError("Hydra DB /context/{id}/subgraph → ERR: id must not be empty", "/context/{id}/subgraph");
|
|
361
|
+
}
|
|
362
|
+
const query = new URLSearchParams(this.scope(params.collection, params.database));
|
|
363
|
+
if (params.kind)
|
|
364
|
+
query.set("type", params.kind);
|
|
365
|
+
if (params.depth != null)
|
|
366
|
+
query.set("depth", String(params.depth));
|
|
367
|
+
if (params.maxSources != null)
|
|
368
|
+
query.set("max_sources", String(params.maxSources));
|
|
369
|
+
// Repeated params, like the dashboard and the CLI: the API reads both
|
|
370
|
+
// repeated (acl=a&acl=b) and comma-separated forms. An empty array is
|
|
371
|
+
// the same as omitted server-side, so sending nothing keeps the
|
|
372
|
+
// request faithful to what the caller said.
|
|
373
|
+
for (const principal of params.acl ?? [])
|
|
374
|
+
query.append("acl", principal);
|
|
375
|
+
const path = `/context/${encodeURIComponent(params.id)}/subgraph?${query.toString()}`;
|
|
376
|
+
return sendRaw(this.raw, path, "GET", undefined, opts);
|
|
377
|
+
}
|
|
230
378
|
/** Knowledge-graph relations (SDK `context.relations`). */
|
|
231
379
|
relations(params = {}) {
|
|
232
380
|
return this.call("/context/relations", () => this.sdk.context.relations({
|
|
@@ -235,6 +383,7 @@ export class ContextResource extends Resource {
|
|
|
235
383
|
type: params.kind,
|
|
236
384
|
limit: params.limit,
|
|
237
385
|
cursor: params.cursor,
|
|
386
|
+
acl: params.acl,
|
|
238
387
|
}));
|
|
239
388
|
}
|
|
240
389
|
/** Delete memories or knowledge sources (SDK `context.delete`). */
|
|
@@ -250,8 +399,8 @@ export class DatabasesResource extends Resource {
|
|
|
250
399
|
// The base constructor is `protected`, so this one is what makes the class
|
|
251
400
|
// instantiable from outside the file. Removing it fails with TS2674.
|
|
252
401
|
// biome-ignore lint/complexity/noUselessConstructor: widens visibility
|
|
253
|
-
constructor(sdk, database, collection) {
|
|
254
|
-
super(sdk, database, collection);
|
|
402
|
+
constructor(sdk, database, collection, allowedDatabases, allowedCollections) {
|
|
403
|
+
super(sdk, database, collection, allowedDatabases, allowedCollections);
|
|
255
404
|
}
|
|
256
405
|
create(params) {
|
|
257
406
|
return this.call("/databases", () => this.sdk.databases.create({
|
|
@@ -298,8 +447,16 @@ export class HydraDB {
|
|
|
298
447
|
// overridden — level and silencing keep the SDK's own defaults.
|
|
299
448
|
logging: { logger: STDERR_LOGGER },
|
|
300
449
|
});
|
|
301
|
-
this.
|
|
302
|
-
this.
|
|
450
|
+
this.database = config.database;
|
|
451
|
+
this.collection = config.collection;
|
|
452
|
+
this.allowedDatabases = config.allowedDatabases;
|
|
453
|
+
this.allowedCollections = config.allowedCollections;
|
|
454
|
+
const raw = newRawTransport(config, {
|
|
455
|
+
timeoutSeconds: DEFAULT_TIMEOUT_SECONDS,
|
|
456
|
+
maxRetries: DEFAULT_MAX_RETRIES,
|
|
457
|
+
});
|
|
458
|
+
this.context = new ContextResource(client, config.database, config.collection, config.allowedDatabases, config.allowedCollections, raw);
|
|
459
|
+
this.databases = new DatabasesResource(client, config.database, config.collection, config.allowedDatabases, config.allowedCollections);
|
|
303
460
|
this.graph = new GraphResource({
|
|
304
461
|
token: config.token,
|
|
305
462
|
...(config.baseUrl != null ? { baseUrl: config.baseUrl } : {}),
|
package/dist/hydra/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/hydra/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/hydra/client.ts"],"names":[],"mappings":"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"}
|
package/dist/hydra/graph.d.ts
CHANGED
|
@@ -40,10 +40,7 @@ export interface RequestOptions {
|
|
|
40
40
|
signal?: AbortSignal;
|
|
41
41
|
}
|
|
42
42
|
export declare class GraphResource {
|
|
43
|
-
private readonly
|
|
44
|
-
private readonly baseUrl;
|
|
45
|
-
private readonly timeoutMs;
|
|
46
|
-
private readonly maxRetries;
|
|
43
|
+
private readonly transport;
|
|
47
44
|
constructor(config: GraphConfig);
|
|
48
45
|
/**
|
|
49
46
|
* Run Cypher against one collection (`POST /byog/query`).
|
|
@@ -78,5 +75,4 @@ export declare class GraphResource {
|
|
|
78
75
|
deleted_collections?: string[];
|
|
79
76
|
}>;
|
|
80
77
|
private send;
|
|
81
|
-
private attempt;
|
|
82
78
|
}
|
package/dist/hydra/graph.js
CHANGED
|
@@ -18,10 +18,8 @@
|
|
|
18
18
|
* That reasoning is unaffected here — there is no generated name to be
|
|
19
19
|
* insulated from yet.
|
|
20
20
|
*/
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
/** The SDK's own default, restated so this file does not depend on importing it. */
|
|
24
|
-
const DEFAULT_BASE_URL = "https://api.hydradb.com";
|
|
21
|
+
import { HydraWrapperError } from "./errors.js";
|
|
22
|
+
import { newRawTransport, sendRaw } from "./transport.js";
|
|
25
23
|
/**
|
|
26
24
|
* Status codes worth retrying.
|
|
27
25
|
*
|
|
@@ -29,9 +27,6 @@ const DEFAULT_BASE_URL = "https://api.hydradb.com";
|
|
|
29
27
|
* rejected construct, a Cypher error and a bad collection name all fail
|
|
30
28
|
* identically on retry, so retrying them only delays the message.
|
|
31
29
|
*/
|
|
32
|
-
function isRetryable(status) {
|
|
33
|
-
return status === 429 || (status >= 500 && status <= 599);
|
|
34
|
-
}
|
|
35
30
|
/**
|
|
36
31
|
* A 2xx whose body is not the shape this endpoint promises.
|
|
37
32
|
*
|
|
@@ -57,12 +52,7 @@ function unexpectedShape(path, expected, got) {
|
|
|
57
52
|
}
|
|
58
53
|
export class GraphResource {
|
|
59
54
|
constructor(config) {
|
|
60
|
-
this.
|
|
61
|
-
// Trailing slashes would produce `//byog/query`, which some proxies treat
|
|
62
|
-
// as a different path.
|
|
63
|
-
this.baseUrl = (config.baseUrl ?? DEFAULT_BASE_URL).replace(/\/+$/, "");
|
|
64
|
-
this.timeoutMs = (config.timeoutSeconds ?? 30) * 1000;
|
|
65
|
-
this.maxRetries = config.maxRetries ?? 2;
|
|
55
|
+
this.transport = newRawTransport(config, { timeoutSeconds: 30, maxRetries: 2 });
|
|
66
56
|
}
|
|
67
57
|
/**
|
|
68
58
|
* Run Cypher against one collection (`POST /byog/query`).
|
|
@@ -133,85 +123,8 @@ export class GraphResource {
|
|
|
133
123
|
return this.send("/byog/databases", "DELETE", { database }, opts);
|
|
134
124
|
}
|
|
135
125
|
// --- Transport ---
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
for (let attempt = 0; attempt <= this.maxRetries; attempt++) {
|
|
139
|
-
try {
|
|
140
|
-
return await this.attempt(path, method, body, opts);
|
|
141
|
-
}
|
|
142
|
-
catch (err) {
|
|
143
|
-
lastError = err;
|
|
144
|
-
const status = err instanceof HydraWrapperError ? err.status : undefined;
|
|
145
|
-
// A caller who cancelled is not waiting for a retry.
|
|
146
|
-
if (opts?.signal?.aborted)
|
|
147
|
-
throw err;
|
|
148
|
-
if (attempt === this.maxRetries)
|
|
149
|
-
break;
|
|
150
|
-
if (status != null && !isRetryable(status))
|
|
151
|
-
break;
|
|
152
|
-
// Exponential backoff. Bounded so a 429 on the last attempt does not
|
|
153
|
-
// hold the MCP host's tool timeout open for its own sake.
|
|
154
|
-
const delay = Math.min(250 * 2 ** attempt, 2000);
|
|
155
|
-
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
throw lastError;
|
|
159
|
-
}
|
|
160
|
-
async attempt(path, method, body, opts) {
|
|
161
|
-
// The host's cancellation and our own deadline both have to be able to
|
|
162
|
-
// abort the request, and `AbortSignal.any` is not available on every Node
|
|
163
|
-
// 18 this package supports — so they are combined by hand.
|
|
164
|
-
const controller = new AbortController();
|
|
165
|
-
const timer = setTimeout(() => controller.abort(), this.timeoutMs);
|
|
166
|
-
const onAbort = () => controller.abort();
|
|
167
|
-
opts?.signal?.addEventListener("abort", onAbort, { once: true });
|
|
168
|
-
try {
|
|
169
|
-
const response = await fetch(`${this.baseUrl}${path}`, {
|
|
170
|
-
method,
|
|
171
|
-
headers: {
|
|
172
|
-
Authorization: `Bearer ${this.config.token}`,
|
|
173
|
-
"Content-Type": "application/json",
|
|
174
|
-
// CONTRACT §2 rule 6. The SDK sends this on every call; a
|
|
175
|
-
// hand-rolled path that omitted it would silently get v1
|
|
176
|
-
// behaviour from the same endpoints.
|
|
177
|
-
"API-Version": "2",
|
|
178
|
-
},
|
|
179
|
-
...(body !== undefined ? { body: JSON.stringify(body) } : {}),
|
|
180
|
-
signal: controller.signal,
|
|
181
|
-
});
|
|
182
|
-
const text = await response.text();
|
|
183
|
-
let parsed;
|
|
184
|
-
try {
|
|
185
|
-
parsed = text === "" ? null : JSON.parse(text);
|
|
186
|
-
}
|
|
187
|
-
catch {
|
|
188
|
-
parsed = text;
|
|
189
|
-
}
|
|
190
|
-
if (!response.ok) {
|
|
191
|
-
// Hand the parsed envelope to the shared formatter so a BYOG
|
|
192
|
-
// failure reads exactly like an SDK one, error code and request id
|
|
193
|
-
// and all.
|
|
194
|
-
throw responseError(path, response.status, parsed);
|
|
195
|
-
}
|
|
196
|
-
return unwrap(parsed);
|
|
197
|
-
}
|
|
198
|
-
catch (err) {
|
|
199
|
-
if (err instanceof HydraWrapperError)
|
|
200
|
-
throw err;
|
|
201
|
-
// Distinguish our own deadline from the caller's cancellation: they
|
|
202
|
-
// need different actions, and "aborted" alone says neither.
|
|
203
|
-
if (err instanceof Error && err.name === "AbortError") {
|
|
204
|
-
if (opts?.signal?.aborted) {
|
|
205
|
-
throw new HydraWrapperError(`Hydra DB ${path} → ERR: request cancelled by the caller`, path, { cause: err });
|
|
206
|
-
}
|
|
207
|
-
throw new HydraWrapperError(`Hydra DB ${path} → ERR: request timed out after ${this.timeoutMs / 1000}s`, path, { cause: err });
|
|
208
|
-
}
|
|
209
|
-
throw translateError(path, err);
|
|
210
|
-
}
|
|
211
|
-
finally {
|
|
212
|
-
clearTimeout(timer);
|
|
213
|
-
opts?.signal?.removeEventListener("abort", onAbort);
|
|
214
|
-
}
|
|
126
|
+
send(path, method, body, opts) {
|
|
127
|
+
return sendRaw(this.transport, path, method, body, opts);
|
|
215
128
|
}
|
|
216
129
|
}
|
|
217
130
|
//# sourceMappingURL=graph.js.map
|
package/dist/hydra/graph.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/hydra/graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/hydra/graph.ts"],"names":[],"mappings":"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"}
|
package/dist/hydra/index.d.ts
CHANGED
|
@@ -6,8 +6,11 @@
|
|
|
6
6
|
* other client repos (per CONTRACT.md).
|
|
7
7
|
*/
|
|
8
8
|
export { HydraDB, ContextResource, DatabasesResource, DEFAULT_TIMEOUT_SECONDS, DEFAULT_MAX_RETRIES, } from "./client.js";
|
|
9
|
-
export type { HydraConfig, ContextKind, RequestOptions, QueryKind, ConversationTurn, QueryParams, IngestParams, ListParams, InspectParams, IngestionStatusParams, RelationsParams, DeleteParams, CreateDatabaseParams, } from "./client.js";
|
|
9
|
+
export type { HydraConfig, ContextKind, RequestOptions, QueryKind, ConversationTurn, QueryParams, IngestParams, ListParams, InspectParams, IngestionStatusParams, RelationsParams, SubgraphParams, SubgraphMember, SubgraphResult, DeleteParams, CreateDatabaseParams, } from "./client.js";
|
|
10
10
|
export { GraphResource } from "./graph.js";
|
|
11
11
|
export type { GraphConfig, GraphQueryParams, GraphScopeParams, GraphRow, } from "./graph.js";
|
|
12
12
|
export { HydraWrapperError, responseError, translateError } from "./errors.js";
|
|
13
|
+
export { assertCollectionAllowed, assertDatabaseAllowed, DatabaseNotAllowedError, ScopeNotAllowedError, } from "./client.js";
|
|
13
14
|
export { unwrap } from "./envelope.js";
|
|
15
|
+
export { DEFAULT_BASE_URL, newRawTransport, sendRaw } from "./transport.js";
|
|
16
|
+
export type { RawTransport } from "./transport.js";
|
package/dist/hydra/index.js
CHANGED
|
@@ -8,5 +8,7 @@
|
|
|
8
8
|
export { HydraDB, ContextResource, DatabasesResource, DEFAULT_TIMEOUT_SECONDS, DEFAULT_MAX_RETRIES, } from "./client.js";
|
|
9
9
|
export { GraphResource } from "./graph.js";
|
|
10
10
|
export { HydraWrapperError, responseError, translateError } from "./errors.js";
|
|
11
|
+
export { assertCollectionAllowed, assertDatabaseAllowed, DatabaseNotAllowedError, ScopeNotAllowedError, } from "./client.js";
|
|
11
12
|
export { unwrap } from "./envelope.js";
|
|
13
|
+
export { DEFAULT_BASE_URL, newRawTransport, sendRaw } from "./transport.js";
|
|
12
14
|
//# sourceMappingURL=index.js.map
|
package/dist/hydra/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hydra/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACN,OAAO,EACP,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,GACnB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hydra/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACN,OAAO,EACP,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,GACnB,MAAM,aAAa,CAAC;AAmBrB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAO3C,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EACN,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The hand-rolled HTTP path for endpoints the SDK does not expose.
|
|
3
|
+
*
|
|
4
|
+
* CONTRACT §2 rule 7: a call that bypasses the SDK is still the wrapper — same
|
|
5
|
+
* `API-Version: 2` header, same envelope-by-shape unwrap, same translated error
|
|
6
|
+
* type — so a caller cannot tell which methods went through the SDK. This used
|
|
7
|
+
* to live inside GraphResource, where BYOG was the only such surface. The
|
|
8
|
+
* connected-subgraph read (PRO-1848) is the second, and a second copy of the
|
|
9
|
+
* retry/abort/translate logic is exactly what the rule exists to prevent, so
|
|
10
|
+
* it moved here and both resources call it.
|
|
11
|
+
*
|
|
12
|
+
* `fetchFn` is injectable for tests only; production never sets it.
|
|
13
|
+
*/
|
|
14
|
+
/** The SDK's own default, restated so this file does not depend on importing it. */
|
|
15
|
+
export declare const DEFAULT_BASE_URL = "https://api.hydradb.com";
|
|
16
|
+
export interface RawTransport {
|
|
17
|
+
token: string;
|
|
18
|
+
baseUrl: string;
|
|
19
|
+
timeoutMs: number;
|
|
20
|
+
maxRetries: number;
|
|
21
|
+
fetchFn?: typeof fetch;
|
|
22
|
+
}
|
|
23
|
+
export interface RawRequestOptions {
|
|
24
|
+
signal?: AbortSignal;
|
|
25
|
+
}
|
|
26
|
+
export declare function newRawTransport(config: {
|
|
27
|
+
token: string;
|
|
28
|
+
baseUrl?: string;
|
|
29
|
+
timeoutSeconds?: number;
|
|
30
|
+
maxRetries?: number;
|
|
31
|
+
fetchFn?: typeof fetch;
|
|
32
|
+
}, defaults: {
|
|
33
|
+
timeoutSeconds: number;
|
|
34
|
+
maxRetries: number;
|
|
35
|
+
}): RawTransport;
|
|
36
|
+
/** Send with bounded retries on 429/5xx; the caller's abort ends retrying. */
|
|
37
|
+
export declare function sendRaw<T>(t: RawTransport, path: string, method: "GET" | "POST" | "DELETE", body: unknown, opts?: RawRequestOptions): Promise<T>;
|