wunderland 0.89.0 → 0.89.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/channels/discord/curatedPicksHandler.d.ts +6 -0
- package/dist/channels/discord/curatedPicksHandler.d.ts.map +1 -1
- package/dist/channels/discord/curatedPicksHandler.js +41 -15
- package/dist/channels/discord/curatedPicksHandler.js.map +1 -1
- package/dist/channels/discord/welcomeHandler.d.ts +3 -0
- package/dist/channels/discord/welcomeHandler.d.ts.map +1 -1
- package/dist/channels/discord/welcomeHandler.js +6 -1
- package/dist/channels/discord/welcomeHandler.js.map +1 -1
- package/dist/cli/commands/agency.d.ts.map +1 -1
- package/dist/cli/commands/agency.js +2 -1
- package/dist/cli/commands/agency.js.map +1 -1
- package/dist/cli/commands/batch-create.d.ts.map +1 -1
- package/dist/cli/commands/batch-create.js +2 -1
- package/dist/cli/commands/batch-create.js.map +1 -1
- package/dist/cli/commands/create.d.ts.map +1 -1
- package/dist/cli/commands/create.js +2 -1
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/dashboard/routes/index.d.ts.map +1 -1
- package/dist/cli/commands/dashboard/routes/index.js +2 -1
- package/dist/cli/commands/dashboard/routes/index.js.map +1 -1
- package/dist/cli/commands/mission-model-flags.d.ts +15 -0
- package/dist/cli/commands/mission-model-flags.d.ts.map +1 -1
- package/dist/cli/commands/mission-model-flags.js +31 -9
- package/dist/cli/commands/mission-model-flags.js.map +1 -1
- package/dist/cli/commands/mission.d.ts.map +1 -1
- package/dist/cli/commands/mission.js +6 -1
- package/dist/cli/commands/mission.js.map +1 -1
- package/dist/cli/commands/models.d.ts.map +1 -1
- package/dist/cli/commands/models.js +2 -1
- package/dist/cli/commands/models.js.map +1 -1
- package/dist/cli/commands/spawn.d.ts.map +1 -1
- package/dist/cli/commands/spawn.js +2 -1
- package/dist/cli/commands/spawn.js.map +1 -1
- package/dist/cli/commands/start/agent-turn.d.ts +4 -1
- package/dist/cli/commands/start/agent-turn.d.ts.map +1 -1
- package/dist/cli/commands/start/agent-turn.js +13 -1
- package/dist/cli/commands/start/agent-turn.js.map +1 -1
- package/dist/cli/commands/start/channel-handler.d.ts.map +1 -1
- package/dist/cli/commands/start/channel-handler.js +4 -0
- package/dist/cli/commands/start/channel-handler.js.map +1 -1
- package/dist/cli/commands/start/llm-provider-setup.d.ts.map +1 -1
- package/dist/cli/commands/start/llm-provider-setup.js +15 -1
- package/dist/cli/commands/start/llm-provider-setup.js.map +1 -1
- package/dist/cli/commands/start/local-memory-tool.d.ts.map +1 -1
- package/dist/cli/commands/start/local-memory-tool.js +3 -0
- package/dist/cli/commands/start/local-memory-tool.js.map +1 -1
- package/dist/cli/commands/start/rag-bootstrap.d.ts.map +1 -1
- package/dist/cli/commands/start/rag-bootstrap.js +3 -0
- package/dist/cli/commands/start/rag-bootstrap.js.map +1 -1
- package/dist/platform/config/operation-id.d.ts +24 -0
- package/dist/platform/config/operation-id.d.ts.map +1 -0
- package/dist/platform/config/operation-id.js +75 -0
- package/dist/platform/config/operation-id.js.map +1 -0
- package/dist/platform/config/provider-base-urls.d.ts +29 -4
- package/dist/platform/config/provider-base-urls.d.ts.map +1 -1
- package/dist/platform/config/provider-base-urls.js +42 -6
- package/dist/platform/config/provider-base-urls.js.map +1 -1
- package/dist/platform/config/provider-defaults.d.ts.map +1 -1
- package/dist/platform/config/provider-defaults.js +6 -1
- package/dist/platform/config/provider-defaults.js.map +1 -1
- package/dist/runtime/agentos-bridge/research-classifier.d.ts.map +1 -1
- package/dist/runtime/agentos-bridge/research-classifier.js +2 -0
- package/dist/runtime/agentos-bridge/research-classifier.js.map +1 -1
- package/dist/runtime/tools/tool-helpers.d.ts +13 -2
- package/dist/runtime/tools/tool-helpers.d.ts.map +1 -1
- package/dist/runtime/tools/tool-helpers.js +27 -9
- package/dist/runtime/tools/tool-helpers.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** The environment variable that names the operation id header. */
|
|
2
|
+
export declare const OPERATION_ID_HEADER_ENV = "AGENTOS_OPERATION_ID_HEADER";
|
|
3
|
+
/**
|
|
4
|
+
* The name of the header an operation id goes in: `AGENTOS_OPERATION_ID_HEADER`,
|
|
5
|
+
* trimmed, or none when it is unset or blank.
|
|
6
|
+
*
|
|
7
|
+
* @param env - The environment to read; `process.env` by default.
|
|
8
|
+
* @returns The header name, or `undefined` when the variable names none.
|
|
9
|
+
* @throws {RangeError} When the name is not an HTTP field name, or names a
|
|
10
|
+
* header the request helpers set (`Authorization`, `x-api-key`,
|
|
11
|
+
* `Content-Type`, ...).
|
|
12
|
+
*/
|
|
13
|
+
export declare function resolveOperationIdHeader(env?: Record<string, string | undefined>): string | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* The header one call sends on each of its attempts: the resolved name with a
|
|
16
|
+
* new UUID, or no header when the variable names none. Call it once per call,
|
|
17
|
+
* before the first attempt, and send the same object on every attempt.
|
|
18
|
+
*
|
|
19
|
+
* @param env - The environment to read; `process.env` by default.
|
|
20
|
+
* @returns `{ [name]: uuid }`, or `{}`.
|
|
21
|
+
* @throws {RangeError} As {@link resolveOperationIdHeader}.
|
|
22
|
+
*/
|
|
23
|
+
export declare function operationIdHeaders(env?: Record<string, string | undefined>): Record<string, string>;
|
|
24
|
+
//# sourceMappingURL=operation-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation-id.d.ts","sourceRoot":"","sources":["../../../src/platform/config/operation-id.ts"],"names":[],"mappings":"AAkBA,mEAAmE;AACnE,eAAO,MAAM,uBAAuB,gCAAgC,CAAC;AAwBrE;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,MAAM,GAAG,SAAS,CAUpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGxB"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview The operation id wunderland sends with each provider request
|
|
3
|
+
* it makes itself, in a header the host names.
|
|
4
|
+
*
|
|
5
|
+
* A server in front of the provider (a gateway or a metering proxy) reads the
|
|
6
|
+
* id to tell a retry of one call from a new call. A call makes one id before
|
|
7
|
+
* its first attempt and sends that value on every attempt of the call: the
|
|
8
|
+
* primary request and, when it fails, the request to the fallback candidate.
|
|
9
|
+
* The next call gets a new id.
|
|
10
|
+
*
|
|
11
|
+
* The header's name comes from `AGENTOS_OPERATION_ID_HEADER`, the variable
|
|
12
|
+
* AgentOS's providers read for the same purpose. With it unset or blank, no
|
|
13
|
+
* header is sent and every request is what it was without this module.
|
|
14
|
+
*
|
|
15
|
+
* @module wunderland/platform/config/operation-id
|
|
16
|
+
*/
|
|
17
|
+
import { randomUUID } from 'node:crypto';
|
|
18
|
+
/** The environment variable that names the operation id header. */
|
|
19
|
+
export const OPERATION_ID_HEADER_ENV = 'AGENTOS_OPERATION_ID_HEADER';
|
|
20
|
+
/** An HTTP field name: a token of RFC 9110, section 5.6.2. */
|
|
21
|
+
const FIELD_NAME = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
|
|
22
|
+
/**
|
|
23
|
+
* Headers the request helpers or the transport set themselves, which an
|
|
24
|
+
* operation id may not replace (compared lowercased).
|
|
25
|
+
*/
|
|
26
|
+
const RESERVED_HEADERS = new Set([
|
|
27
|
+
'authorization',
|
|
28
|
+
'x-api-key',
|
|
29
|
+
'content-type',
|
|
30
|
+
'content-length',
|
|
31
|
+
'host',
|
|
32
|
+
'connection',
|
|
33
|
+
'user-agent',
|
|
34
|
+
'anthropic-version',
|
|
35
|
+
'anthropic-beta',
|
|
36
|
+
'openai-organization',
|
|
37
|
+
'http-referer',
|
|
38
|
+
'x-title',
|
|
39
|
+
]);
|
|
40
|
+
/**
|
|
41
|
+
* The name of the header an operation id goes in: `AGENTOS_OPERATION_ID_HEADER`,
|
|
42
|
+
* trimmed, or none when it is unset or blank.
|
|
43
|
+
*
|
|
44
|
+
* @param env - The environment to read; `process.env` by default.
|
|
45
|
+
* @returns The header name, or `undefined` when the variable names none.
|
|
46
|
+
* @throws {RangeError} When the name is not an HTTP field name, or names a
|
|
47
|
+
* header the request helpers set (`Authorization`, `x-api-key`,
|
|
48
|
+
* `Content-Type`, ...).
|
|
49
|
+
*/
|
|
50
|
+
export function resolveOperationIdHeader(env = process.env) {
|
|
51
|
+
const name = env[OPERATION_ID_HEADER_ENV]?.trim();
|
|
52
|
+
if (!name)
|
|
53
|
+
return undefined;
|
|
54
|
+
if (!FIELD_NAME.test(name)) {
|
|
55
|
+
throw new RangeError(`${OPERATION_ID_HEADER_ENV} "${name}" is not an HTTP header name.`);
|
|
56
|
+
}
|
|
57
|
+
if (RESERVED_HEADERS.has(name.toLowerCase())) {
|
|
58
|
+
throw new RangeError(`${OPERATION_ID_HEADER_ENV} may not be "${name}", a header the request sets itself.`);
|
|
59
|
+
}
|
|
60
|
+
return name;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* The header one call sends on each of its attempts: the resolved name with a
|
|
64
|
+
* new UUID, or no header when the variable names none. Call it once per call,
|
|
65
|
+
* before the first attempt, and send the same object on every attempt.
|
|
66
|
+
*
|
|
67
|
+
* @param env - The environment to read; `process.env` by default.
|
|
68
|
+
* @returns `{ [name]: uuid }`, or `{}`.
|
|
69
|
+
* @throws {RangeError} As {@link resolveOperationIdHeader}.
|
|
70
|
+
*/
|
|
71
|
+
export function operationIdHeaders(env = process.env) {
|
|
72
|
+
const name = resolveOperationIdHeader(env);
|
|
73
|
+
return name ? { [name]: randomUUID() } : {};
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=operation-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation-id.js","sourceRoot":"","sources":["../../../src/platform/config/operation-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,mEAAmE;AACnE,MAAM,CAAC,MAAM,uBAAuB,GAAG,6BAA6B,CAAC;AAErE,8DAA8D;AAC9D,MAAM,UAAU,GAAG,+BAA+B,CAAC;AAEnD;;;GAGG;AACH,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CAAC;IACpD,eAAe;IACf,WAAW;IACX,cAAc;IACd,gBAAgB;IAChB,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,mBAAmB;IACnB,gBAAgB;IAChB,qBAAqB;IACrB,cAAc;IACd,SAAS;CACV,CAAC,CAAC;AAEH;;;;;;;;;GASG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAA0C,OAAO,CAAC,GAAG;IAErD,MAAM,IAAI,GAAG,GAAG,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,CAAC;IAClD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,UAAU,CAAC,GAAG,uBAAuB,KAAK,IAAI,+BAA+B,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,UAAU,CAAC,GAAG,uBAAuB,gBAAgB,IAAI,sCAAsC,CAAC,CAAC;IAC7G,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAA0C,OAAO,CAAC,GAAG;IAErD,MAAM,IAAI,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9C,CAAC"}
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
* provider's base-URL variable.
|
|
4
4
|
*
|
|
5
5
|
* `wunderland start` sends every call to OpenAI, Anthropic and OpenRouter
|
|
6
|
-
* (the primary provider's turns, the
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* (the primary provider's turns, including the turn a webhook wakes, the
|
|
7
|
+
* fallback chain, the local memory tool, the RAG bootstrap, the discovery
|
|
8
|
+
* index and the Discord welcome and curated picks posts) to the URL this
|
|
9
|
+
* module returns, so a proxy or gateway named by `OPENAI_BASE_URL`,
|
|
10
|
+
* `ANTHROPIC_BASE_URL` or `OPENROUTER_BASE_URL` sees every one of them.
|
|
10
11
|
*
|
|
11
12
|
* @module wunderland/platform/config/provider-base-urls
|
|
12
13
|
*/
|
|
@@ -41,4 +42,28 @@ export declare const PROVIDER_DEFAULT_BASE_URLS: Readonly<Record<BaseUrlProvider
|
|
|
41
42
|
* @returns The base URL, or `undefined` for any other provider.
|
|
42
43
|
*/
|
|
43
44
|
export declare function baseUrlFor(providerId: string, env?: Record<string, string | undefined>): string | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* Anthropic's `/v1` root for `baseUrl`, the one join every Anthropic caller
|
|
47
|
+
* uses. `baseUrl` may name the host root (`https://api.anthropic.com`, as
|
|
48
|
+
* Anthropic's SDK reads ANTHROPIC_BASE_URL) or the `/v1` root, with or without
|
|
49
|
+
* a trailing slash; either way the result ends in exactly one `/v1`. With
|
|
50
|
+
* `baseUrl` unset or blank, ANTHROPIC_BASE_URL is read, else Anthropic's own
|
|
51
|
+
* root.
|
|
52
|
+
*
|
|
53
|
+
* @param baseUrl - A host root or `/v1` root; ANTHROPIC_BASE_URL by default.
|
|
54
|
+
* @param env - The environment to read; `process.env` by default.
|
|
55
|
+
* @returns The `/v1` root, e.g. `https://api.anthropic.com/v1`.
|
|
56
|
+
*/
|
|
57
|
+
export declare function anthropicV1Root(baseUrl?: string, env?: Record<string, string | undefined>): string;
|
|
58
|
+
/**
|
|
59
|
+
* The URL of an Anthropic API path: `<anthropicV1Root(baseUrl)>/<path>`, such
|
|
60
|
+
* as `anthropicApiUrl('messages')` for the Messages API or
|
|
61
|
+
* `anthropicApiUrl('chat/completions')` for the OpenAI-compatible endpoint.
|
|
62
|
+
*
|
|
63
|
+
* @param path - The path under `/v1`, without the `/v1`.
|
|
64
|
+
* @param baseUrl - A host root or `/v1` root; ANTHROPIC_BASE_URL by default.
|
|
65
|
+
* @param env - The environment to read; `process.env` by default.
|
|
66
|
+
* @returns The full URL.
|
|
67
|
+
*/
|
|
68
|
+
export declare function anthropicApiUrl(path: string, baseUrl?: string, env?: Record<string, string | undefined>): string;
|
|
44
69
|
//# sourceMappingURL=provider-base-urls.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-base-urls.d.ts","sourceRoot":"","sources":["../../../src/platform/config/provider-base-urls.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"provider-base-urls.d.ts","sourceRoot":"","sources":["../../../src/platform/config/provider-base-urls.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,0DAA0D;AAC1D,eAAO,MAAM,qBAAqB;;;;CAIxB,CAAC;AAEX,0DAA0D;AAC1D,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,qBAAqB,CAAC;AAEnE;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAIlF,CAAC;AAMF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CACxB,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,MAAM,GAAG,SAAS,CAOpB;AAOD;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,OAAO,CAAC,EAAE,MAAM,EAChB,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,MAAM,CAIR;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EAChB,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,MAAM,CAER"}
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
* provider's base-URL variable.
|
|
4
4
|
*
|
|
5
5
|
* `wunderland start` sends every call to OpenAI, Anthropic and OpenRouter
|
|
6
|
-
* (the primary provider's turns, the
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* (the primary provider's turns, including the turn a webhook wakes, the
|
|
7
|
+
* fallback chain, the local memory tool, the RAG bootstrap, the discovery
|
|
8
|
+
* index and the Discord welcome and curated picks posts) to the URL this
|
|
9
|
+
* module returns, so a proxy or gateway named by `OPENAI_BASE_URL`,
|
|
10
|
+
* `ANTHROPIC_BASE_URL` or `OPENROUTER_BASE_URL` sees every one of them.
|
|
10
11
|
*
|
|
11
12
|
* @module wunderland/platform/config/provider-base-urls
|
|
12
13
|
*/
|
|
@@ -49,11 +50,46 @@ export function baseUrlFor(providerId, env = process.env) {
|
|
|
49
50
|
if (!isBaseUrlProvider(providerId))
|
|
50
51
|
return undefined;
|
|
51
52
|
const raw = env[PROVIDER_BASE_URL_ENV[providerId]];
|
|
52
|
-
const value =
|
|
53
|
+
const value = trimBaseUrl(raw);
|
|
53
54
|
if (!value)
|
|
54
55
|
return PROVIDER_DEFAULT_BASE_URLS[providerId];
|
|
55
56
|
if (providerId === 'anthropic')
|
|
56
|
-
return
|
|
57
|
+
return anthropicV1Root(value, env);
|
|
57
58
|
return value;
|
|
58
59
|
}
|
|
60
|
+
/** A base URL with surrounding spaces and trailing slashes removed; '' when blank. */
|
|
61
|
+
function trimBaseUrl(raw) {
|
|
62
|
+
return typeof raw === 'string' ? raw.trim().replace(/\/+$/, '') : '';
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Anthropic's `/v1` root for `baseUrl`, the one join every Anthropic caller
|
|
66
|
+
* uses. `baseUrl` may name the host root (`https://api.anthropic.com`, as
|
|
67
|
+
* Anthropic's SDK reads ANTHROPIC_BASE_URL) or the `/v1` root, with or without
|
|
68
|
+
* a trailing slash; either way the result ends in exactly one `/v1`. With
|
|
69
|
+
* `baseUrl` unset or blank, ANTHROPIC_BASE_URL is read, else Anthropic's own
|
|
70
|
+
* root.
|
|
71
|
+
*
|
|
72
|
+
* @param baseUrl - A host root or `/v1` root; ANTHROPIC_BASE_URL by default.
|
|
73
|
+
* @param env - The environment to read; `process.env` by default.
|
|
74
|
+
* @returns The `/v1` root, e.g. `https://api.anthropic.com/v1`.
|
|
75
|
+
*/
|
|
76
|
+
export function anthropicV1Root(baseUrl, env = process.env) {
|
|
77
|
+
const value = trimBaseUrl(baseUrl) || trimBaseUrl(env[PROVIDER_BASE_URL_ENV.anthropic]);
|
|
78
|
+
if (!value)
|
|
79
|
+
return PROVIDER_DEFAULT_BASE_URLS.anthropic;
|
|
80
|
+
return `${value.replace(/\/v1$/, '')}/v1`;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* The URL of an Anthropic API path: `<anthropicV1Root(baseUrl)>/<path>`, such
|
|
84
|
+
* as `anthropicApiUrl('messages')` for the Messages API or
|
|
85
|
+
* `anthropicApiUrl('chat/completions')` for the OpenAI-compatible endpoint.
|
|
86
|
+
*
|
|
87
|
+
* @param path - The path under `/v1`, without the `/v1`.
|
|
88
|
+
* @param baseUrl - A host root or `/v1` root; ANTHROPIC_BASE_URL by default.
|
|
89
|
+
* @param env - The environment to read; `process.env` by default.
|
|
90
|
+
* @returns The full URL.
|
|
91
|
+
*/
|
|
92
|
+
export function anthropicApiUrl(path, baseUrl, env = process.env) {
|
|
93
|
+
return `${anthropicV1Root(baseUrl, env)}/${path.replace(/^\/+/, '')}`;
|
|
94
|
+
}
|
|
59
95
|
//# sourceMappingURL=provider-base-urls.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-base-urls.js","sourceRoot":"","sources":["../../../src/platform/config/provider-base-urls.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"provider-base-urls.js","sourceRoot":"","sources":["../../../src/platform/config/provider-base-urls.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,0DAA0D;AAC1D,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,MAAM,EAAE,iBAAiB;IACzB,SAAS,EAAE,oBAAoB;IAC/B,UAAU,EAAE,qBAAqB;CACzB,CAAC;AAKX;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAgD;IACrF,MAAM,EAAE,2BAA2B;IACnC,SAAS,EAAE,8BAA8B;IACzC,UAAU,EAAE,8BAA8B;CAC3C,CAAC;AAEF,SAAS,iBAAiB,CAAC,UAAkB;IAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;AACjF,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,UAAU,CACxB,UAAkB,EAClB,MAA0C,OAAO,CAAC,GAAG;IAErD,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAC;IACrD,MAAM,GAAG,GAAG,GAAG,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK;QAAE,OAAO,0BAA0B,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,UAAU,KAAK,WAAW;QAAE,OAAO,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACnE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,sFAAsF;AACtF,SAAS,WAAW,CAAC,GAAuB;IAC1C,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAgB,EAChB,MAA0C,OAAO,CAAC,GAAG;IAErD,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC;IACxF,IAAI,CAAC,KAAK;QAAE,OAAO,0BAA0B,CAAC,SAAS,CAAC;IACxD,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC;AAC5C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAY,EACZ,OAAgB,EAChB,MAA0C,OAAO,CAAC,GAAG;IAErD,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;AACxE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-defaults.d.ts","sourceRoot":"","sources":["../../../src/platform/config/provider-defaults.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"provider-defaults.d.ts","sourceRoot":"","sources":["../../../src/platform/config/provider-defaults.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AA8CxE,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,oBAAoB,CAEnF;AAED,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,OAAO,EACZ,QAAQ,GAAE,oBAA+B,GACxC,oBAAoB,CAOtB;AAED,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,oBAAoB,GAAG,MAAM,CAUtF;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,uBAAuB;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9D,SAAS,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAChE;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,oBAAoB,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,CAAC;QAC1D,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,kBAAkB,CAAC;KACjE,CAAC;CACH;AAED,wBAAgB,0BAA0B,CACxC,KAAK,GAAE,uBAA4B,GAClC,mBAAmB,CAsCrB;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE;IAC/C,UAAU,EAAE,oBAAoB,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,CAeT;AAED,wBAAgB,sCAAsC,IAAI,oBAAoB,GAAG,SAAS,CAsBzF;AASD,wBAAgB,qCAAqC,IAAI;IACvD,UAAU,EAAE,oBAAoB,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CA+DA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { baseUrlFor } from './provider-base-urls.js';
|
|
1
2
|
const SUPPORTED_TEXT_PROVIDERS = new Set([
|
|
2
3
|
'openai',
|
|
3
4
|
'openrouter',
|
|
@@ -156,7 +157,7 @@ export function resolveWunderlandRuntimeConfigFromEnv() {
|
|
|
156
157
|
providerId,
|
|
157
158
|
apiKey: String(process.env['OPENROUTER_API_KEY'] || '').trim(),
|
|
158
159
|
model,
|
|
159
|
-
baseUrl: '
|
|
160
|
+
baseUrl: baseUrlFor('openrouter'),
|
|
160
161
|
};
|
|
161
162
|
}
|
|
162
163
|
if (providerId === 'ollama') {
|
|
@@ -180,6 +181,9 @@ export function resolveWunderlandRuntimeConfigFromEnv() {
|
|
|
180
181
|
providerId,
|
|
181
182
|
apiKey: String(process.env['ANTHROPIC_API_KEY'] || '').trim(),
|
|
182
183
|
model,
|
|
184
|
+
// Anthropic's /v1 root: the Messages API and the OpenAI-compatible
|
|
185
|
+
// endpoint the mission planner uses both sit under it.
|
|
186
|
+
baseUrl: baseUrlFor('anthropic'),
|
|
183
187
|
};
|
|
184
188
|
}
|
|
185
189
|
if (providerId === 'claude-code-cli') {
|
|
@@ -200,6 +204,7 @@ export function resolveWunderlandRuntimeConfigFromEnv() {
|
|
|
200
204
|
providerId,
|
|
201
205
|
apiKey: String(process.env['OPENAI_API_KEY'] || '').trim(),
|
|
202
206
|
model,
|
|
207
|
+
baseUrl: baseUrlFor(providerId),
|
|
203
208
|
};
|
|
204
209
|
}
|
|
205
210
|
//# sourceMappingURL=provider-defaults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-defaults.js","sourceRoot":"","sources":["../../../src/platform/config/provider-defaults.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider-defaults.js","sourceRoot":"","sources":["../../../src/platform/config/provider-defaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"research-classifier.d.ts","sourceRoot":"","sources":["../../../src/runtime/agentos-bridge/research-classifier.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"research-classifier.d.ts","sourceRoot":"","sources":["../../../src/runtime/agentos-bridge/research-classifier.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;GAcG;AAIH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AAEnE,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAC;IACjB,qEAAqE;IACrE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,sFAAsF;IACtF,SAAS,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,aAAa,CAAA;KAAE,EAAE,CAAC;CACzD;AAED,MAAM,WAAW,gCAAgC;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAqBD;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAK1E;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,gCAAgC,GACxC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAkCnD;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,sBAAsB,CAAC,CAsDjC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAoBvE;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,8DAA8D;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,aAAa,CAAC;CAClC;AAED,eAAO,MAAM,kCAAkC,EAAE,6BAGhD,CAAC;AAKF,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,aAAa,EACzB,QAAQ,GAAE,aAAuB,GAChC,OAAO,CAET"}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
*
|
|
15
15
|
* @module wunderland/runtime/research-classifier
|
|
16
16
|
*/
|
|
17
|
+
import { operationIdHeaders } from '../../platform/config/operation-id.js';
|
|
17
18
|
function normalizeBaseUrl(value) {
|
|
18
19
|
const trimmed = (value || 'https://api.openai.com/v1').trim();
|
|
19
20
|
return trimmed.replace(/\/+$/, '');
|
|
@@ -58,6 +59,7 @@ export function createResearchClassifierLlmCall(options) {
|
|
|
58
59
|
headers: {
|
|
59
60
|
Authorization: `Bearer ${options.apiKey ?? ''}`,
|
|
60
61
|
'Content-Type': 'application/json',
|
|
62
|
+
...operationIdHeaders(),
|
|
61
63
|
},
|
|
62
64
|
body: JSON.stringify({
|
|
63
65
|
model,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"research-classifier.js","sourceRoot":"","sources":["../../../src/runtime/agentos-bridge/research-classifier.ts"],"names":[],"mappings":"AAAA,cAAc;AACd;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"research-classifier.js","sourceRoot":"","sources":["../../../src/runtime/agentos-bridge/research-classifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -194,7 +194,16 @@ export declare function parseProviderId(value: unknown): LLMProviderId | undefin
|
|
|
194
194
|
* Retryable: rate limits (429), server errors (500+), auth failures (401/403), network errors.
|
|
195
195
|
*/
|
|
196
196
|
export declare function shouldFallback(error: unknown): boolean;
|
|
197
|
-
|
|
197
|
+
/**
|
|
198
|
+
* One OpenAI-compatible chat completions request to `provider.baseUrl`
|
|
199
|
+
* (OpenAI's own root when unset).
|
|
200
|
+
*
|
|
201
|
+
* @param operationHeaders - The call's operation id header
|
|
202
|
+
* ({@link operationIdHeaders}). A caller that sends several attempts of one
|
|
203
|
+
* call (a primary and its fallback) makes it once and passes it to each;
|
|
204
|
+
* when omitted, the request is its own call and gets a new id.
|
|
205
|
+
*/
|
|
206
|
+
export declare function chatCompletionsRequest(provider: LLMProviderConfig, messages: Array<Record<string, unknown>>, tools: Array<Record<string, unknown>>, temperature: number, maxTokens: number, operationHeaders?: Record<string, string>): Promise<{
|
|
198
207
|
message: ToolCallMessage;
|
|
199
208
|
model: string;
|
|
200
209
|
usage: unknown;
|
|
@@ -265,7 +274,7 @@ export declare function openaiChatWithTools(opts: {
|
|
|
265
274
|
* @see {@link wrapStreamingLLMAsGenerator} for parsing the returned SSE lines.
|
|
266
275
|
* @see {@link streamingOpenaiChatWithTools} for the fallback-aware wrapper.
|
|
267
276
|
*/
|
|
268
|
-
export declare function streamingChatCompletionsRequest(provider: LLMProviderConfig, messages: Array<Record<string, unknown>>, tools: Array<Record<string, unknown>>, temperature: number, maxTokens: number, signal?: AbortSignal): Promise<AsyncIterable<string>>;
|
|
277
|
+
export declare function streamingChatCompletionsRequest(provider: LLMProviderConfig, messages: Array<Record<string, unknown>>, tools: Array<Record<string, unknown>>, temperature: number, maxTokens: number, signal?: AbortSignal, operationHeaders?: Record<string, string>): Promise<AsyncIterable<string>>;
|
|
269
278
|
/**
|
|
270
279
|
* Streaming variant of {@link openaiChatWithTools}.
|
|
271
280
|
*
|
|
@@ -337,6 +346,8 @@ export declare function anthropicMessagesRequest(opts: {
|
|
|
337
346
|
model: string;
|
|
338
347
|
baseUrl?: string;
|
|
339
348
|
extraHeaders?: Record<string, string>;
|
|
349
|
+
/** The call's operation id header; a new one when omitted. */
|
|
350
|
+
operationHeaders?: Record<string, string>;
|
|
340
351
|
system?: string;
|
|
341
352
|
messages: Array<{
|
|
342
353
|
role: 'user' | 'assistant';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-helpers.d.ts","sourceRoot":"","sources":["../../../src/runtime/tools/tool-helpers.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAEH;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,0BAA0B,EAC3B,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAGL,KAAK,yBAAyB,EAC/B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAE9E,OAAO,EAAQ,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-helpers.d.ts","sourceRoot":"","sources":["../../../src/runtime/tools/tool-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,8 @@ import * as path from 'node:path';
|
|
|
31
31
|
import * as os from 'node:os';
|
|
32
32
|
import { resolveAgentWorkspaceDir } from '@framers/agentos';
|
|
33
33
|
import { resolveApiKeyInput } from '../identity/api-key-resolver.js';
|
|
34
|
+
import { operationIdHeaders } from '../../platform/config/operation-id.js';
|
|
35
|
+
import { anthropicApiUrl } from '../../platform/config/provider-base-urls.js';
|
|
34
36
|
import { buildToolDefsFromMapping, buildToolFunctionNameMapping, formatToolNameRewriteSummary, resolveStrictToolNames, } from './tool-function-names.js';
|
|
35
37
|
const tracer = trace.getTracer('wunderland.runtime');
|
|
36
38
|
/**
|
|
@@ -552,7 +554,16 @@ export function shouldFallback(error) {
|
|
|
552
554
|
}
|
|
553
555
|
return false;
|
|
554
556
|
}
|
|
555
|
-
|
|
557
|
+
/**
|
|
558
|
+
* One OpenAI-compatible chat completions request to `provider.baseUrl`
|
|
559
|
+
* (OpenAI's own root when unset).
|
|
560
|
+
*
|
|
561
|
+
* @param operationHeaders - The call's operation id header
|
|
562
|
+
* ({@link operationIdHeaders}). A caller that sends several attempts of one
|
|
563
|
+
* call (a primary and its fallback) makes it once and passes it to each;
|
|
564
|
+
* when omitted, the request is its own call and gets a new id.
|
|
565
|
+
*/
|
|
566
|
+
export async function chatCompletionsRequest(provider, messages, tools, temperature, maxTokens, operationHeaders = operationIdHeaders()) {
|
|
556
567
|
const baseUrl = provider.baseUrl || PROVIDER_BASE_URLS.openai;
|
|
557
568
|
const providerName = baseUrl.includes('openrouter') ? 'OpenRouter'
|
|
558
569
|
: baseUrl.includes('generativelanguage.googleapis.com') ? 'Gemini'
|
|
@@ -582,6 +593,7 @@ export async function chatCompletionsRequest(provider, messages, tools, temperat
|
|
|
582
593
|
...authHeaders,
|
|
583
594
|
'Content-Type': 'application/json',
|
|
584
595
|
...(provider.extraHeaders || {}),
|
|
596
|
+
...operationHeaders,
|
|
585
597
|
},
|
|
586
598
|
body: JSON.stringify({
|
|
587
599
|
model: provider.model,
|
|
@@ -640,8 +652,11 @@ export async function openaiChatWithTools(opts) {
|
|
|
640
652
|
baseUrl: opts.baseUrl,
|
|
641
653
|
getApiKey: opts.getApiKey,
|
|
642
654
|
};
|
|
655
|
+
// One operation id for the call: the primary attempt and the fallback
|
|
656
|
+
// attempt send the same value.
|
|
657
|
+
const operationHeaders = operationIdHeaders();
|
|
643
658
|
try {
|
|
644
|
-
return await chatCompletionsRequest(primary, opts.messages, opts.tools, opts.temperature, opts.maxTokens);
|
|
659
|
+
return await chatCompletionsRequest(primary, opts.messages, opts.tools, opts.temperature, opts.maxTokens, operationHeaders);
|
|
645
660
|
}
|
|
646
661
|
catch (err) {
|
|
647
662
|
// If no fallback configured, or error isn't retryable, re-throw
|
|
@@ -650,7 +665,7 @@ export async function openaiChatWithTools(opts) {
|
|
|
650
665
|
const primaryError = err instanceof Error ? err : new Error(String(err));
|
|
651
666
|
const fallbackName = opts.fallback.baseUrl?.includes('openrouter') ? 'OpenRouter' : 'fallback';
|
|
652
667
|
opts.onFallback?.(primaryError, fallbackName);
|
|
653
|
-
return await chatCompletionsRequest(opts.fallback, opts.messages, opts.tools, opts.temperature, opts.maxTokens);
|
|
668
|
+
return await chatCompletionsRequest(opts.fallback, opts.messages, opts.tools, opts.temperature, opts.maxTokens, operationHeaders);
|
|
654
669
|
}
|
|
655
670
|
}
|
|
656
671
|
/**
|
|
@@ -697,7 +712,7 @@ export async function openaiChatWithTools(opts) {
|
|
|
697
712
|
* @see {@link wrapStreamingLLMAsGenerator} for parsing the returned SSE lines.
|
|
698
713
|
* @see {@link streamingOpenaiChatWithTools} for the fallback-aware wrapper.
|
|
699
714
|
*/
|
|
700
|
-
export async function streamingChatCompletionsRequest(provider, messages, tools, temperature, maxTokens, signal) {
|
|
715
|
+
export async function streamingChatCompletionsRequest(provider, messages, tools, temperature, maxTokens, signal, operationHeaders = operationIdHeaders()) {
|
|
701
716
|
const baseUrl = provider.baseUrl || PROVIDER_BASE_URLS.openai;
|
|
702
717
|
const providerName = baseUrl.includes('openrouter') ? 'OpenRouter'
|
|
703
718
|
: baseUrl.includes('generativelanguage.googleapis.com') ? 'Gemini'
|
|
@@ -733,6 +748,7 @@ export async function streamingChatCompletionsRequest(provider, messages, tools,
|
|
|
733
748
|
...authHeaders,
|
|
734
749
|
'Content-Type': 'application/json',
|
|
735
750
|
...(provider.extraHeaders || {}),
|
|
751
|
+
...operationHeaders,
|
|
736
752
|
},
|
|
737
753
|
body: JSON.stringify({
|
|
738
754
|
model: provider.model,
|
|
@@ -863,8 +879,9 @@ export async function streamingOpenaiChatWithTools(opts) {
|
|
|
863
879
|
baseUrl: opts.baseUrl,
|
|
864
880
|
getApiKey: opts.getApiKey,
|
|
865
881
|
};
|
|
882
|
+
const operationHeaders = operationIdHeaders();
|
|
866
883
|
try {
|
|
867
|
-
return await streamingChatCompletionsRequest(primary, opts.messages, opts.tools, opts.temperature, opts.maxTokens, opts.signal);
|
|
884
|
+
return await streamingChatCompletionsRequest(primary, opts.messages, opts.tools, opts.temperature, opts.maxTokens, opts.signal, operationHeaders);
|
|
868
885
|
}
|
|
869
886
|
catch (err) {
|
|
870
887
|
if (!opts.fallback || !shouldFallback(err))
|
|
@@ -872,7 +889,7 @@ export async function streamingOpenaiChatWithTools(opts) {
|
|
|
872
889
|
const primaryError = err instanceof Error ? err : new Error(String(err));
|
|
873
890
|
const fallbackName = opts.fallback.baseUrl?.includes('openrouter') ? 'OpenRouter' : 'fallback';
|
|
874
891
|
opts.onFallback?.(primaryError, fallbackName);
|
|
875
|
-
return await streamingChatCompletionsRequest(opts.fallback, opts.messages, opts.tools, opts.temperature, opts.maxTokens, opts.signal);
|
|
892
|
+
return await streamingChatCompletionsRequest(opts.fallback, opts.messages, opts.tools, opts.temperature, opts.maxTokens, opts.signal, operationHeaders);
|
|
876
893
|
}
|
|
877
894
|
}
|
|
878
895
|
export function toAnthropicTools(tools) {
|
|
@@ -976,15 +993,16 @@ export function toAnthropicMessagePayload(openaiMessages) {
|
|
|
976
993
|
export async function anthropicMessagesRequest(opts) {
|
|
977
994
|
// The base is the API host root (`https://api.anthropic.com`, as Anthropic's
|
|
978
995
|
// SDK reads ANTHROPIC_BASE_URL) or the `/v1` root the OpenAI-compatible
|
|
979
|
-
// callers use; either way the request goes to `<root>/v1/messages`.
|
|
980
|
-
|
|
981
|
-
const res = await fetch(
|
|
996
|
+
// callers use; either way the request goes to `<root>/v1/messages`. With no
|
|
997
|
+
// base, ANTHROPIC_BASE_URL is read.
|
|
998
|
+
const res = await fetch(anthropicApiUrl('messages', opts.baseUrl), {
|
|
982
999
|
method: 'POST',
|
|
983
1000
|
headers: {
|
|
984
1001
|
'x-api-key': opts.apiKey,
|
|
985
1002
|
'anthropic-version': '2023-06-01',
|
|
986
1003
|
'content-type': 'application/json',
|
|
987
1004
|
...(opts.extraHeaders || {}),
|
|
1005
|
+
...(opts.operationHeaders ?? operationIdHeaders()),
|
|
988
1006
|
},
|
|
989
1007
|
body: JSON.stringify({
|
|
990
1008
|
model: opts.model,
|