@restormel/testing-keys-adapter 0.1.0 → 0.1.3
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/LICENSE +1 -1
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +9 -3
- package/dist/adapter.js.map +1 -1
- package/dist/env-from-process.d.ts +12 -2
- package/dist/env-from-process.d.ts.map +1 -1
- package/dist/env-from-process.js +23 -3
- package/dist/env-from-process.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/transport-http.d.ts.map +1 -1
- package/dist/transport-http.js +10 -6
- package/dist/transport-http.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +6 -6
package/LICENSE
CHANGED
package/dist/adapter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAoB,qBAAqB,EAAiB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAoB,qBAAqB,EAAiB,MAAM,YAAY,CAAC;AAwClH;;GAEG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,qBAAqB,CAAC,CAgGhC"}
|
package/dist/adapter.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { keysHttpBearerFromProcessEnv } from "./env-from-process.js";
|
|
1
2
|
import { createHttpKeysTransport } from "./transport-http.js";
|
|
2
3
|
import { readSecretFromEnv } from "./materialize.js";
|
|
3
4
|
const REF_PREFIX = "ref:restormel-keys:";
|
|
@@ -37,14 +38,19 @@ export async function resolveModel(logicalRef, options = {}) {
|
|
|
37
38
|
(options.keysApiBaseUrl
|
|
38
39
|
? createHttpKeysTransport({
|
|
39
40
|
baseUrl: options.keysApiBaseUrl,
|
|
40
|
-
getKeysApiToken: options.keysApiTokenEnvVar
|
|
41
|
-
? () => process.env[options.keysApiTokenEnvVar]
|
|
42
|
-
: undefined,
|
|
41
|
+
getKeysApiToken: () => keysHttpBearerFromProcessEnv(options.keysApiTokenEnvVar),
|
|
43
42
|
})
|
|
44
43
|
: undefined);
|
|
45
44
|
if (transport) {
|
|
46
45
|
const tr = await transport.resolve(logicalRef);
|
|
47
46
|
if (tr.ok) {
|
|
47
|
+
if (tr.inlineApiKey !== undefined && tr.inlineApiKey !== "") {
|
|
48
|
+
return {
|
|
49
|
+
ok: true,
|
|
50
|
+
warnings,
|
|
51
|
+
model: buildResolved(logicalRef, tr.provider, tr.model, tr.model, tr.inlineApiKey, "keys", tr.baseUrl),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
48
54
|
const mat = readSecretFromEnv(tr.secretEnvVar);
|
|
49
55
|
if (!mat.ok) {
|
|
50
56
|
return fail("keys_missing_secret_binding", `Keys resolved model but ${mat.message}`);
|
package/dist/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,UAAU,GAAG,qBAAqB,CAAC;AAEzC,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG;QAAE,OAAO,KAAK,CAAC;IAClF,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAC9E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,IAAI,CAAC,IAA8B,EAAE,OAAe,EAAE,KAAe;IAC5E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,aAAa,CACpB,UAAkB,EAClB,QAAgB,EAChB,KAAa,EACb,OAAe,EACf,MAAc,EACd,MAAiD,EACjD,eAAwB;IAExB,OAAO;QACL,IAAI,EAAE;YACJ,UAAU;YACV,QAAQ;YACR,KAAK;YACL,gBAAgB,EAAE,MAAM;YACxB,eAAe,EAAE,CAAC;SACnB;QACD,OAAO;QACP,eAAe;QACf,WAAW,EAAE,EAAE,MAAM,EAAE;KACxB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,UAAkB,EAClB,UAAmC,EAAE;IAErC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,aAAa,EAAE,yBAAyB,UAAU,WAAW,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACzG,CAAC;IAED,MAAM,SAAS,GACb,OAAO,CAAC,SAAS;QACjB,CAAC,OAAO,CAAC,cAAc;YACrB,CAAC,CAAC,uBAAuB,CAAC;gBACtB,OAAO,EAAE,OAAO,CAAC,cAAc;gBAC/B,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import type { KeysModelAdapterOptions } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Bearer token for `POST …/v1/testing/resolve-model` from process env.
|
|
4
|
+
* Precedence: `RESTORMEL_KEYS_API_TOKEN_ENV` (if set) → that var; else `RESTORMEL_KEYS_API_TOKEN`;
|
|
5
|
+
* else `RESTORMEL_GATEWAY_KEY`; else `RESTORMEL_SERVER_TOKEN`.
|
|
6
|
+
* Values are never logged by callers.
|
|
7
|
+
*/
|
|
8
|
+
export declare function keysHttpBearerFromProcessEnv(keysApiTokenEnvVar?: string): string | undefined;
|
|
2
9
|
/**
|
|
3
10
|
* Build Keys adapter options from documented environment variables (CLI, GitHub Action, local).
|
|
4
11
|
*
|
|
5
12
|
* | Variable | Purpose |
|
|
6
13
|
* |----------|---------|
|
|
7
|
-
* | `RESTORMEL_KEYS_API_BASE_URL` | Keys HTTP API origin (e.g. `https://keys.example.com`). Enables POST `/v1/testing/resolve-model`. |
|
|
8
|
-
* | `
|
|
14
|
+
* | `RESTORMEL_KEYS_API_BASE_URL` | Keys HTTP API origin (e.g. `https://keys.example.com`). Enables POST `/v1/testing/resolve-model`. If unset, `RESTORMEL_KEYS_BASE` is used (same shape: site origin, no path). |
|
|
15
|
+
* | `RESTORMEL_KEYS_BASE` | Canonical site origin when `RESTORMEL_KEYS_API_BASE_URL` is not set. |
|
|
16
|
+
* | `RESTORMEL_KEYS_API_TOKEN_ENV` | Optional. Name of env var holding the **Keys HTTP** bearer token (default `RESTORMEL_KEYS_API_TOKEN`). Values are never logged. |
|
|
17
|
+
* | `RESTORMEL_KEYS_API_TOKEN` | Compatibility alias for the Gateway key on HTTP resolve calls. |
|
|
18
|
+
* | `RESTORMEL_GATEWAY_KEY` / `RESTORMEL_SERVER_TOKEN` | Canonical Gateway key; used when API-token vars are unset. |
|
|
9
19
|
* | `RESTORMEL_TESTING_OPENAI_FALLBACK` | Set to `1` to allow documented OpenAI-compatible env fallback when Keys is unset or resolution fails (`OPENAI_API_KEY`). |
|
|
10
20
|
*/
|
|
11
21
|
export declare function keysAdapterOptionsFromProcessEnv(): KeysModelAdapterOptions | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-from-process.d.ts","sourceRoot":"","sources":["../src/env-from-process.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D
|
|
1
|
+
{"version":3,"file":"env-from-process.d.ts","sourceRoot":"","sources":["../src/env-from-process.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAW5F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gCAAgC,IAAI,uBAAuB,GAAG,SAAS,CAoBtF"}
|
package/dist/env-from-process.js
CHANGED
|
@@ -1,14 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bearer token for `POST …/v1/testing/resolve-model` from process env.
|
|
3
|
+
* Precedence: `RESTORMEL_KEYS_API_TOKEN_ENV` (if set) → that var; else `RESTORMEL_KEYS_API_TOKEN`;
|
|
4
|
+
* else `RESTORMEL_GATEWAY_KEY`; else `RESTORMEL_SERVER_TOKEN`.
|
|
5
|
+
* Values are never logged by callers.
|
|
6
|
+
*/
|
|
7
|
+
export function keysHttpBearerFromProcessEnv(keysApiTokenEnvVar) {
|
|
8
|
+
const customName = keysApiTokenEnvVar?.trim();
|
|
9
|
+
if (customName) {
|
|
10
|
+
const fromCustom = process.env[customName]?.trim();
|
|
11
|
+
if (fromCustom)
|
|
12
|
+
return fromCustom;
|
|
13
|
+
}
|
|
14
|
+
return (process.env.RESTORMEL_KEYS_API_TOKEN?.trim() ||
|
|
15
|
+
process.env.RESTORMEL_GATEWAY_KEY?.trim() ||
|
|
16
|
+
process.env.RESTORMEL_SERVER_TOKEN?.trim());
|
|
17
|
+
}
|
|
1
18
|
/**
|
|
2
19
|
* Build Keys adapter options from documented environment variables (CLI, GitHub Action, local).
|
|
3
20
|
*
|
|
4
21
|
* | Variable | Purpose |
|
|
5
22
|
* |----------|---------|
|
|
6
|
-
* | `RESTORMEL_KEYS_API_BASE_URL` | Keys HTTP API origin (e.g. `https://keys.example.com`). Enables POST `/v1/testing/resolve-model`. |
|
|
7
|
-
* | `
|
|
23
|
+
* | `RESTORMEL_KEYS_API_BASE_URL` | Keys HTTP API origin (e.g. `https://keys.example.com`). Enables POST `/v1/testing/resolve-model`. If unset, `RESTORMEL_KEYS_BASE` is used (same shape: site origin, no path). |
|
|
24
|
+
* | `RESTORMEL_KEYS_BASE` | Canonical site origin when `RESTORMEL_KEYS_API_BASE_URL` is not set. |
|
|
25
|
+
* | `RESTORMEL_KEYS_API_TOKEN_ENV` | Optional. Name of env var holding the **Keys HTTP** bearer token (default `RESTORMEL_KEYS_API_TOKEN`). Values are never logged. |
|
|
26
|
+
* | `RESTORMEL_KEYS_API_TOKEN` | Compatibility alias for the Gateway key on HTTP resolve calls. |
|
|
27
|
+
* | `RESTORMEL_GATEWAY_KEY` / `RESTORMEL_SERVER_TOKEN` | Canonical Gateway key; used when API-token vars are unset. |
|
|
8
28
|
* | `RESTORMEL_TESTING_OPENAI_FALLBACK` | Set to `1` to allow documented OpenAI-compatible env fallback when Keys is unset or resolution fails (`OPENAI_API_KEY`). |
|
|
9
29
|
*/
|
|
10
30
|
export function keysAdapterOptionsFromProcessEnv() {
|
|
11
|
-
const baseUrl = process.env.RESTORMEL_KEYS_API_BASE_URL?.trim();
|
|
31
|
+
const baseUrl = process.env.RESTORMEL_KEYS_API_BASE_URL?.trim() || process.env.RESTORMEL_KEYS_BASE?.trim();
|
|
12
32
|
const tokenEnvName = process.env.RESTORMEL_KEYS_API_TOKEN_ENV?.trim() || "RESTORMEL_KEYS_API_TOKEN";
|
|
13
33
|
const fallbackOn = process.env.RESTORMEL_TESTING_OPENAI_FALLBACK?.trim() === "1";
|
|
14
34
|
const opts = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-from-process.js","sourceRoot":"","sources":["../src/env-from-process.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"env-from-process.js","sourceRoot":"","sources":["../src/env-from-process.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,kBAA2B;IACtE,MAAM,UAAU,GAAG,kBAAkB,EAAE,IAAI,EAAE,CAAC;IAC9C,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC;QACnD,IAAI,UAAU;YAAE,OAAO,UAAU,CAAC;IACpC,CAAC;IACD,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,EAAE;QAC5C,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE;QACzC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,EAAE,CAC3C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gCAAgC;IAC9C,MAAM,OAAO,GACX,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC;IAC7F,MAAM,YAAY,GAChB,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,EAAE,IAAI,0BAA0B,CAAC;IACjF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC;IAEjF,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC;IACzC,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC,iBAAiB,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACpD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @restormel/testing-keys-adapter — thin Restormel / Keys resolution seam for Testing (MVP).
|
|
3
3
|
*/
|
|
4
4
|
export declare const testingKeysAdapterPackage: "@restormel/testing-keys-adapter";
|
|
5
|
-
export { keysAdapterOptionsFromProcessEnv } from "./env-from-process.js";
|
|
5
|
+
export { keysAdapterOptionsFromProcessEnv, keysHttpBearerFromProcessEnv } from "./env-from-process.js";
|
|
6
6
|
export { resolveModel } from "./adapter.js";
|
|
7
7
|
export { readSecretFromEnv } from "./materialize.js";
|
|
8
8
|
export { createHttpKeysTransport } from "./transport-http.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAG,iCAA0C,CAAC;AAEpF,OAAO,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAG,iCAA0C,CAAC;AAEpF,OAAO,EAAE,gCAAgC,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACvG,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,2BAA2B,EAC3B,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,EACxB,aAAa,GACd,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @restormel/testing-keys-adapter — thin Restormel / Keys resolution seam for Testing (MVP).
|
|
3
3
|
*/
|
|
4
4
|
export const testingKeysAdapterPackage = "@restormel/testing-keys-adapter";
|
|
5
|
-
export { keysAdapterOptionsFromProcessEnv } from "./env-from-process.js";
|
|
5
|
+
export { keysAdapterOptionsFromProcessEnv, keysHttpBearerFromProcessEnv } from "./env-from-process.js";
|
|
6
6
|
export { resolveModel } from "./adapter.js";
|
|
7
7
|
export { readSecretFromEnv } from "./materialize.js";
|
|
8
8
|
export { createHttpKeysTransport } from "./transport-http.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,iCAA0C,CAAC;AAEpF,OAAO,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,iCAA0C,CAAC;AAEpF,OAAO,EAAE,gCAAgC,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACvG,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport-http.d.ts","sourceRoot":"","sources":["../src/transport-http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA+B,uBAAuB,EAA2B,MAAM,YAAY,CAAC;AAehH;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CAC5C,GAAG,uBAAuB,
|
|
1
|
+
{"version":3,"file":"transport-http.d.ts","sourceRoot":"","sources":["../src/transport-http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA+B,uBAAuB,EAA2B,MAAM,YAAY,CAAC;AAehH;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CAC5C,GAAG,uBAAuB,CAuD1B"}
|
package/dist/transport-http.js
CHANGED
|
@@ -2,12 +2,15 @@ function isResolveBody(x) {
|
|
|
2
2
|
if (x === null || typeof x !== "object")
|
|
3
3
|
return false;
|
|
4
4
|
const o = x;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
if (typeof o.provider !== "string" || typeof o.model !== "string" || typeof o.secretEnvVar !== "string") {
|
|
6
|
+
return false;
|
|
7
|
+
}
|
|
8
|
+
if (!o.provider || !o.model || !o.secretEnvVar)
|
|
9
|
+
return false;
|
|
10
|
+
if (o.secretEnvVar === "RESTORMEL_HOSTED_INLINE") {
|
|
11
|
+
return typeof o.inlineApiKey === "string" && o.inlineApiKey.length > 0;
|
|
12
|
+
}
|
|
13
|
+
return true;
|
|
11
14
|
}
|
|
12
15
|
/**
|
|
13
16
|
* Calls Keys over HTTP. Path is versioned under this repo’s adapter until Keys publishes a canonical route.
|
|
@@ -65,6 +68,7 @@ export function createHttpKeysTransport(options) {
|
|
|
65
68
|
model: body.model,
|
|
66
69
|
secretEnvVar: body.secretEnvVar,
|
|
67
70
|
baseUrl: typeof body.baseUrl === "string" ? body.baseUrl : undefined,
|
|
71
|
+
inlineApiKey: typeof body.inlineApiKey === "string" ? body.inlineApiKey : undefined,
|
|
68
72
|
};
|
|
69
73
|
},
|
|
70
74
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport-http.js","sourceRoot":"","sources":["../src/transport-http.ts"],"names":[],"mappings":"AAEA,SAAS,aAAa,CAAC,CAAU;IAC/B,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,CAAC,GAAG,CAA4B,CAAC;IACvC,
|
|
1
|
+
{"version":3,"file":"transport-http.js","sourceRoot":"","sources":["../src/transport-http.ts"],"names":[],"mappings":"AAEA,SAAS,aAAa,CAAC,CAAU;IAC/B,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,CAAC,GAAG,CAA4B,CAAC;IACvC,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QACxG,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAC7D,IAAI,CAAC,CAAC,YAAY,KAAK,yBAAyB,EAAE,CAAC;QACjD,OAAO,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAIvC;IACC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACjD,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,UAAkB;YAC9B,MAAM,GAAG,GAAG,GAAG,IAAI,2BAA2B,CAAC;YAC/C,MAAM,OAAO,GAA2B;gBACtC,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;aAC3B,CAAC;YACF,MAAM,KAAK,GAAG,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;YAC1C,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE,CAAC;YAC5C,CAAC;YACD,IAAI,GAAa,CAAC;YAClB,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;oBACrB,MAAM,EAAE,MAAM;oBACd,OAAO;oBACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC;iBACrC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,6BAA6B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;oBAClF,KAAK,EAAE,CAAC;iBACT,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC9C,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,IAAI,EAAE,QAAQ,GAAG,CAAC,MAAM,EAAE;oBAC1B,OAAO,EAAE,iBAAiB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;iBAC/E,CAAC;YACJ,CAAC;YACD,IAAI,IAAa,CAAC;YAClB,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC1B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,4BAA4B,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAC9F,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,wDAAwD,EAAE,CAAC;YAChH,CAAC;YACD,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,OAAO,EAAE,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;gBACpE,YAAY,EAAE,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;aACpF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -10,6 +10,11 @@ export interface KeysHttpResolveResponseBody {
|
|
|
10
10
|
secretEnvVar: string;
|
|
11
11
|
/** Optional OpenAI-compatible API base URL. */
|
|
12
12
|
baseUrl?: string;
|
|
13
|
+
/**
|
|
14
|
+
* When present (hosted Keys with encrypted Connections), use this value instead of reading secretEnvVar.
|
|
15
|
+
* Never log or persist; TLS only.
|
|
16
|
+
*/
|
|
17
|
+
inlineApiKey?: string;
|
|
13
18
|
}
|
|
14
19
|
export interface ResolvedModel {
|
|
15
20
|
/** Safe to log and attach to RunRecord.keysModelMeta. */
|
|
@@ -49,6 +54,7 @@ export type KeysTransportResolution = {
|
|
|
49
54
|
model: string;
|
|
50
55
|
secretEnvVar: string;
|
|
51
56
|
baseUrl?: string;
|
|
57
|
+
inlineApiKey?: string;
|
|
52
58
|
} | {
|
|
53
59
|
ok: false;
|
|
54
60
|
code: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,2FAA2F;IAC3F,YAAY,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,2FAA2F;IAC3F,YAAY,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,yDAAyD;IACzD,IAAI,EAAE,aAAa,CAAC;IACpB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,WAAW,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACjC;AAED,MAAM,MAAM,oBAAoB,GAC5B,aAAa,GACb,qBAAqB,GACrB,kBAAkB,GAClB,eAAe,GACf,6BAA6B,GAC7B,mBAAmB,GACnB,sBAAsB,CAAC;AAE3B,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,qBAAqB,GAC7B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GACtD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAE3C,wEAAwE;AACxE,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAC/D;AAED,MAAM,MAAM,uBAAuB,GAC/B;IACE,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4FAA4F;IAC5F,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,+FAA+F;IAC/F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;CAC9C"}
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@restormel/testing-keys-adapter",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Restormel / Keys resolution and BYOK execution seam (scaffold).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
|
-
"url": "https://github.com/Allotment-Technology-Ltd/restormel-
|
|
9
|
-
"directory": "packages/keys-adapter"
|
|
8
|
+
"url": "https://github.com/Allotment-Technology-Ltd/restormel-keys.git",
|
|
9
|
+
"directory": "packages/testing-keys-adapter"
|
|
10
10
|
},
|
|
11
11
|
"bugs": {
|
|
12
|
-
"url": "https://github.com/Allotment-Technology-Ltd/restormel-
|
|
12
|
+
"url": "https://github.com/Allotment-Technology-Ltd/restormel-keys/issues"
|
|
13
13
|
},
|
|
14
|
-
"homepage": "https://github.com/Allotment-Technology-Ltd/restormel-testing/tree/main/packages/keys-adapter#readme",
|
|
14
|
+
"homepage": "https://github.com/Allotment-Technology-Ltd/restormel-testing/tree/main/packages/testing-keys-adapter#readme",
|
|
15
15
|
"publishConfig": {
|
|
16
16
|
"access": "public"
|
|
17
17
|
},
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"node": ">=20"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@restormel/testing-core": "0.1.
|
|
34
|
+
"@restormel/testing-core": "0.1.4"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"typescript": "^5.7.0"
|