agentfootprint 9.72.0 → 9.74.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 +160 -0
- package/dist/adapters/identity/azure.js +306 -0
- package/dist/adapters/identity/azure.js.map +1 -0
- package/dist/adapters/llm/FoundryLocalProvider.js +992 -0
- package/dist/adapters/llm/FoundryLocalProvider.js.map +1 -0
- package/dist/adapters/llm/FoundryProvider.js +273 -0
- package/dist/adapters/llm/FoundryProvider.js.map +1 -0
- package/dist/adapters/llm/OllamaProvider.js +171 -12
- package/dist/adapters/llm/OllamaProvider.js.map +1 -1
- package/dist/adapters/llm/OpenAIProvider.js +117 -5
- package/dist/adapters/llm/OpenAIProvider.js.map +1 -1
- package/dist/adapters/llm/createProvider.js +143 -10
- package/dist/adapters/llm/createProvider.js.map +1 -1
- package/dist/adapters/types.js.map +1 -1
- package/dist/esm/adapters/identity/azure.d.ts +188 -0
- package/dist/esm/adapters/identity/azure.js +302 -0
- package/dist/esm/adapters/identity/azure.js.map +1 -0
- package/dist/esm/adapters/llm/FoundryLocalProvider.d.ts +215 -0
- package/dist/esm/adapters/llm/FoundryLocalProvider.js +986 -0
- package/dist/esm/adapters/llm/FoundryLocalProvider.js.map +1 -0
- package/dist/esm/adapters/llm/FoundryProvider.d.ts +178 -0
- package/dist/esm/adapters/llm/FoundryProvider.js +268 -0
- package/dist/esm/adapters/llm/FoundryProvider.js.map +1 -0
- package/dist/esm/adapters/llm/OllamaProvider.js +171 -12
- package/dist/esm/adapters/llm/OllamaProvider.js.map +1 -1
- package/dist/esm/adapters/llm/OpenAIProvider.d.ts +111 -0
- package/dist/esm/adapters/llm/OpenAIProvider.js +115 -4
- package/dist/esm/adapters/llm/OpenAIProvider.js.map +1 -1
- package/dist/esm/adapters/llm/createProvider.d.ts +48 -12
- package/dist/esm/adapters/llm/createProvider.js +143 -10
- package/dist/esm/adapters/llm/createProvider.js.map +1 -1
- package/dist/esm/adapters/types.d.ts +4 -2
- package/dist/esm/adapters/types.js.map +1 -1
- package/dist/esm/identity.d.ts +1 -0
- package/dist/esm/identity.js +9 -0
- package/dist/esm/identity.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/providers.d.ts +5 -0
- package/dist/esm/providers.js +14 -0
- package/dist/esm/providers.js.map +1 -1
- package/dist/identity.js +14 -1
- package/dist/identity.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/providers.js +20 -1
- package/dist/providers.js.map +1 -1
- package/dist/types/adapters/identity/azure.d.ts +189 -0
- package/dist/types/adapters/identity/azure.d.ts.map +1 -0
- package/dist/types/adapters/llm/FoundryLocalProvider.d.ts +216 -0
- package/dist/types/adapters/llm/FoundryLocalProvider.d.ts.map +1 -0
- package/dist/types/adapters/llm/FoundryProvider.d.ts +179 -0
- package/dist/types/adapters/llm/FoundryProvider.d.ts.map +1 -0
- package/dist/types/adapters/llm/OllamaProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/OpenAIProvider.d.ts +111 -0
- package/dist/types/adapters/llm/OpenAIProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/createProvider.d.ts +48 -12
- package/dist/types/adapters/llm/createProvider.d.ts.map +1 -1
- package/dist/types/adapters/types.d.ts +4 -2
- package/dist/types/adapters/types.d.ts.map +1 -1
- package/dist/types/identity.d.ts +1 -0
- package/dist/types/identity.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/providers.d.ts +5 -0
- package/dist/types/providers.d.ts.map +1 -1
- package/package.json +5 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FoundryLocalProvider.js","sourceRoot":"","sources":["../../../../src/adapters/llm/FoundryLocalProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FoundryProvider — Microsoft Foundry (Azure AI Foundry) projects over the
|
|
3
|
+
* api-version-free v1 OpenAI-compatible inference route.
|
|
4
|
+
*
|
|
5
|
+
* Pattern: Adapter (GoF) + Ports-and-Adapters (Cockburn 2005), composed —
|
|
6
|
+
* a thin vendor file over `openai()`'s machinery, the exact
|
|
7
|
+
* `azureOpenai()` shape.
|
|
8
|
+
* Role: Outer ring — owns EVERY Foundry spelling (the project-endpoint
|
|
9
|
+
* shape, the env-var names, the token audience, the `/openai/v1`
|
|
10
|
+
* derivation) so the `LLMProvider` port and the rest of the library
|
|
11
|
+
* never learn one. Knows nothing about agents, recorders, or
|
|
12
|
+
* compositions.
|
|
13
|
+
* Emits: N/A.
|
|
14
|
+
*
|
|
15
|
+
* ─── Why this exists ─────────────────────────────────────────────────
|
|
16
|
+
*
|
|
17
|
+
* This is the JS answer to Microsoft's
|
|
18
|
+
* `FoundryChatClient(project_endpoint, model, credential)`: point at a
|
|
19
|
+
* Foundry PROJECT, name a DEPLOYMENT, hand over a credential, done. The
|
|
20
|
+
* doc-verified facts it is built on (learn.microsoft.com, Aug 2026):
|
|
21
|
+
*
|
|
22
|
+
* • A Foundry project endpoint
|
|
23
|
+
* (`https://{account}.services.ai.azure.com/api/projects/{project}`)
|
|
24
|
+
* itself serves the v1 inference route by simple suffixing: `+ /openai/v1`.
|
|
25
|
+
* No `api-version` query, no deployment-scoped path.
|
|
26
|
+
* • The wire's `model` field carries the DEPLOYMENT name — Foundry's
|
|
27
|
+
* "model" is a deployment, exactly as on classic Azure OpenAI.
|
|
28
|
+
* • Auth is `Authorization: Bearer <Entra token or api key>` — the v1
|
|
29
|
+
* route accepts a key as a Bearer too.
|
|
30
|
+
*
|
|
31
|
+
* Because that route IS current OpenAI wire, this file is `openai({ baseURL,
|
|
32
|
+
* legacyEndpoint: false, … })` plus Foundry's spellings — the same
|
|
33
|
+
* composition `azureOpenai()` uses, with the modern dialect declared instead
|
|
34
|
+
* of implied away by the custom `baseURL`.
|
|
35
|
+
*
|
|
36
|
+
* ─── Auth: three doors, one refused ambiguity ────────────────────────
|
|
37
|
+
*
|
|
38
|
+
* • `credential` — any `@azure/identity` credential (duck-typed; the SDK
|
|
39
|
+
* is never imported for this door). Tokens are minted per request
|
|
40
|
+
* through `openai()`'s credential-callback seam.
|
|
41
|
+
* • `apiKey` — a static key, or a callback re-read per request.
|
|
42
|
+
* • NEITHER — `new DefaultAzureCredential()` via the optional
|
|
43
|
+
* `@azure/identity` peer: the platform's own blessed zero-config pattern
|
|
44
|
+
* inside a hosted Foundry container (the platform injects
|
|
45
|
+
* `FOUNDRY_PROJECT_ENDPOINT` and gives the agent a managed identity, so
|
|
46
|
+
* `foundry()` with no arguments is a complete configuration there).
|
|
47
|
+
* • BOTH `credential` and `apiKey` — refused by name. Two credentials is a
|
|
48
|
+
* config bug, not extra security.
|
|
49
|
+
*
|
|
50
|
+
* ─── Ceilings (stated, not worked around) ────────────────────────────
|
|
51
|
+
*
|
|
52
|
+
* • DEPLOYMENT NAMES HIDE THE MODEL. o-series auto-detection cannot work on
|
|
53
|
+
* an arbitrary deployment name, so `reasoning` must be declared — the same
|
|
54
|
+
* rationale, word for word, as `azureOpenai()`.
|
|
55
|
+
* • INFERENCE ONLY. The token audience here is the data plane
|
|
56
|
+
* ({@link AZURE_AI_SCOPE}); the ARM control plane is a different audience
|
|
57
|
+
* and a different job — see `entraIdentity()` in the identity adapters.
|
|
58
|
+
* • Everything `openai()` does not do (multi-modal, JSON-mode), this does
|
|
59
|
+
* not do either — it is the same machinery.
|
|
60
|
+
*/
|
|
61
|
+
import type { LLMProvider } from '../types.js';
|
|
62
|
+
import type { OpenAIProviderOptions } from './OpenAIProvider.js';
|
|
63
|
+
import type { TokenCredentialLike } from '../identity/azure.js';
|
|
64
|
+
export interface FoundryProviderOptions {
|
|
65
|
+
/**
|
|
66
|
+
* The Foundry PROJECT endpoint —
|
|
67
|
+
* `https://{account}.services.ai.azure.com/api/projects/{project}`, copied
|
|
68
|
+
* from the Foundry portal. Env fallback: `FOUNDRY_PROJECT_ENDPOINT`, which
|
|
69
|
+
* hosted Foundry containers get AUTO-INJECTED by the platform — inside one,
|
|
70
|
+
* this option can simply be omitted. Required (option or env); refused by
|
|
71
|
+
* name otherwise.
|
|
72
|
+
*/
|
|
73
|
+
readonly projectEndpoint?: string;
|
|
74
|
+
/**
|
|
75
|
+
* The DEPLOYMENT name (Foundry's "model"). Env fallbacks:
|
|
76
|
+
* `AZURE_AI_MODEL_DEPLOYMENT_NAME` — the `azd` scaffolding convention, so a
|
|
77
|
+
* template-provisioned app needs no extra wiring — then `MODEL_NAME`.
|
|
78
|
+
* Required (option or env); refused by name otherwise.
|
|
79
|
+
*/
|
|
80
|
+
readonly deployment?: string;
|
|
81
|
+
/**
|
|
82
|
+
* Keyless (Microsoft Entra ID) auth — any `@azure/identity` credential
|
|
83
|
+
* (`DefaultAzureCredential`, `ManagedIdentityCredential`, …), duck-typed so
|
|
84
|
+
* this file never imports that SDK. Consulted before EVERY request through
|
|
85
|
+
* `openai()`'s credential-callback seam, so MSAL's cache does the pacing
|
|
86
|
+
* and an expired token is a fresh token, never a 401.
|
|
87
|
+
*
|
|
88
|
+
* Mutually exclusive with `apiKey` — both together are refused by name.
|
|
89
|
+
* NEITHER given constructs a `DefaultAzureCredential` (peer-dep
|
|
90
|
+
* `@azure/identity`), the zero-config path hosted containers are built for.
|
|
91
|
+
*/
|
|
92
|
+
readonly credential?: TokenCredentialLike;
|
|
93
|
+
/**
|
|
94
|
+
* Static api key — the v1 route accepts a key as a Bearer too. A FUNCTION
|
|
95
|
+
* here is re-read before every request (`openai()`'s 9.29.0 contract).
|
|
96
|
+
* Mutually exclusive with `credential`.
|
|
97
|
+
*/
|
|
98
|
+
readonly apiKey?: string | (() => string | Promise<string>);
|
|
99
|
+
/**
|
|
100
|
+
* Token audience for the credential doors. Default {@link AZURE_AI_SCOPE}
|
|
101
|
+
* (`https://ai.azure.com/.default`) — the ONE data-plane audience every
|
|
102
|
+
* Foundry / Azure OpenAI inference call accepts. The ARM control plane
|
|
103
|
+
* (`https://management.azure.com/.default`) is a DIFFERENT audience whose
|
|
104
|
+
* tokens do NOT work here: Azure validates the audience on every call.
|
|
105
|
+
* Ignored when `apiKey` is the door in use.
|
|
106
|
+
*/
|
|
107
|
+
readonly scope?: string;
|
|
108
|
+
/**
|
|
109
|
+
* Set when the DEPLOYMENT is a **reasoning model** (o1/o3/o4-mini).
|
|
110
|
+
* Deployment names are arbitrary and hide the underlying model, so this
|
|
111
|
+
* cannot be auto-detected — declare it to omit `temperature` and send the
|
|
112
|
+
* `developer` role. (Same rationale as `azureOpenai()`.)
|
|
113
|
+
*/
|
|
114
|
+
readonly reasoning?: boolean;
|
|
115
|
+
/** Default max tokens when the request doesn't set it. Optional. */
|
|
116
|
+
readonly defaultMaxTokens?: number;
|
|
117
|
+
/** @internal Pre-built client for testing — the same duck type `openai()`
|
|
118
|
+
* takes, spelled as such so the two seams can never drift apart. */
|
|
119
|
+
readonly _client?: OpenAIProviderOptions['_client'];
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Project endpoint → the base URL the v1 inference route serves.
|
|
123
|
+
*
|
|
124
|
+
* `https://acct.services.ai.azure.com/api/projects/proj`
|
|
125
|
+
* → `https://acct.services.ai.azure.com/api/projects/proj/openai/v1`
|
|
126
|
+
* …with trailing slashes → the same
|
|
127
|
+
* …already ending in `/openai/v1` → the same (idempotent — `azureUrl.ts`'s
|
|
128
|
+
* rule, applied to Foundry's suffix)
|
|
129
|
+
*
|
|
130
|
+
* Validation lives HERE, beside the derivation, so there is exactly ONE owner
|
|
131
|
+
* of what a Foundry endpoint looks like: it must be `https://` and it must
|
|
132
|
+
* contain `/api/projects/` — anything else is some OTHER Azure endpoint
|
|
133
|
+
* (a resource root, an ARM URL) that would 404 or 401 far from the typo.
|
|
134
|
+
* Endpoints are NOT secrets, so a malformed one is echoed back: seeing what
|
|
135
|
+
* arrived is the fastest fix. The one carve-out is cleartext to LOOPBACK
|
|
136
|
+
* (127.0.0.1 / localhost / [::1]) — that is how the wire tests drive the
|
|
137
|
+
* REAL SDK against a local fake, and refusing bytes that cannot leave the
|
|
138
|
+
* machine would buy no safety.
|
|
139
|
+
*
|
|
140
|
+
* A `?` or `#` is refused too, and for a reason particular to a SUFFIXING
|
|
141
|
+
* derivation: `…/api/projects/p?x=1` + `/openai/v1` is
|
|
142
|
+
* `…/api/projects/p?x=1/openai/v1`, where the route lives entirely inside the
|
|
143
|
+
* query string. That URL is well-formed, constructs without complaint, and
|
|
144
|
+
* 404s on every request — the exact "late and far from the typo" failure this
|
|
145
|
+
* validator exists to convert into an early named one. The v1 inference route
|
|
146
|
+
* takes no query parameters at all (that is the point of it: no
|
|
147
|
+
* `api-version`), so there is nothing legitimate to preserve.
|
|
148
|
+
*/
|
|
149
|
+
export declare function foundryInferenceUrl(projectEndpoint: string): string;
|
|
150
|
+
/**
|
|
151
|
+
* Build an `LLMProvider` for a **Microsoft Foundry project**.
|
|
152
|
+
*
|
|
153
|
+
* Inside a hosted Foundry container this is a COMPLETE configuration:
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* import { foundry } from 'agentfootprint/providers';
|
|
157
|
+
*
|
|
158
|
+
* const agent = Agent.create({
|
|
159
|
+
* provider: foundry(), // endpoint injected, managed identity signs
|
|
160
|
+
* model: 'foundry', // → the configured deployment
|
|
161
|
+
* }).build();
|
|
162
|
+
*
|
|
163
|
+
* Anywhere else, name the project and the deployment (and sign in, or pass a
|
|
164
|
+
* credential):
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* const provider = foundry({
|
|
168
|
+
* projectEndpoint: 'https://my-acct.services.ai.azure.com/api/projects/my-proj',
|
|
169
|
+
* deployment: 'gpt-4o-128k',
|
|
170
|
+
* credential: new DefaultAzureCredential(),
|
|
171
|
+
* });
|
|
172
|
+
*
|
|
173
|
+
* The request's `model` is the DEPLOYMENT name: the shorthand `'foundry'`
|
|
174
|
+
* resolves to the configured default, and a concrete deployment id passes
|
|
175
|
+
* through untouched (so one provider can target several deployments — the
|
|
176
|
+
* azureOpenai precedent).
|
|
177
|
+
*/
|
|
178
|
+
export declare function foundry(options?: FoundryProviderOptions): LLMProvider;
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FoundryProvider — Microsoft Foundry (Azure AI Foundry) projects over the
|
|
3
|
+
* api-version-free v1 OpenAI-compatible inference route.
|
|
4
|
+
*
|
|
5
|
+
* Pattern: Adapter (GoF) + Ports-and-Adapters (Cockburn 2005), composed —
|
|
6
|
+
* a thin vendor file over `openai()`'s machinery, the exact
|
|
7
|
+
* `azureOpenai()` shape.
|
|
8
|
+
* Role: Outer ring — owns EVERY Foundry spelling (the project-endpoint
|
|
9
|
+
* shape, the env-var names, the token audience, the `/openai/v1`
|
|
10
|
+
* derivation) so the `LLMProvider` port and the rest of the library
|
|
11
|
+
* never learn one. Knows nothing about agents, recorders, or
|
|
12
|
+
* compositions.
|
|
13
|
+
* Emits: N/A.
|
|
14
|
+
*
|
|
15
|
+
* ─── Why this exists ─────────────────────────────────────────────────
|
|
16
|
+
*
|
|
17
|
+
* This is the JS answer to Microsoft's
|
|
18
|
+
* `FoundryChatClient(project_endpoint, model, credential)`: point at a
|
|
19
|
+
* Foundry PROJECT, name a DEPLOYMENT, hand over a credential, done. The
|
|
20
|
+
* doc-verified facts it is built on (learn.microsoft.com, Aug 2026):
|
|
21
|
+
*
|
|
22
|
+
* • A Foundry project endpoint
|
|
23
|
+
* (`https://{account}.services.ai.azure.com/api/projects/{project}`)
|
|
24
|
+
* itself serves the v1 inference route by simple suffixing: `+ /openai/v1`.
|
|
25
|
+
* No `api-version` query, no deployment-scoped path.
|
|
26
|
+
* • The wire's `model` field carries the DEPLOYMENT name — Foundry's
|
|
27
|
+
* "model" is a deployment, exactly as on classic Azure OpenAI.
|
|
28
|
+
* • Auth is `Authorization: Bearer <Entra token or api key>` — the v1
|
|
29
|
+
* route accepts a key as a Bearer too.
|
|
30
|
+
*
|
|
31
|
+
* Because that route IS current OpenAI wire, this file is `openai({ baseURL,
|
|
32
|
+
* legacyEndpoint: false, … })` plus Foundry's spellings — the same
|
|
33
|
+
* composition `azureOpenai()` uses, with the modern dialect declared instead
|
|
34
|
+
* of implied away by the custom `baseURL`.
|
|
35
|
+
*
|
|
36
|
+
* ─── Auth: three doors, one refused ambiguity ────────────────────────
|
|
37
|
+
*
|
|
38
|
+
* • `credential` — any `@azure/identity` credential (duck-typed; the SDK
|
|
39
|
+
* is never imported for this door). Tokens are minted per request
|
|
40
|
+
* through `openai()`'s credential-callback seam.
|
|
41
|
+
* • `apiKey` — a static key, or a callback re-read per request.
|
|
42
|
+
* • NEITHER — `new DefaultAzureCredential()` via the optional
|
|
43
|
+
* `@azure/identity` peer: the platform's own blessed zero-config pattern
|
|
44
|
+
* inside a hosted Foundry container (the platform injects
|
|
45
|
+
* `FOUNDRY_PROJECT_ENDPOINT` and gives the agent a managed identity, so
|
|
46
|
+
* `foundry()` with no arguments is a complete configuration there).
|
|
47
|
+
* • BOTH `credential` and `apiKey` — refused by name. Two credentials is a
|
|
48
|
+
* config bug, not extra security.
|
|
49
|
+
*
|
|
50
|
+
* ─── Ceilings (stated, not worked around) ────────────────────────────
|
|
51
|
+
*
|
|
52
|
+
* • DEPLOYMENT NAMES HIDE THE MODEL. o-series auto-detection cannot work on
|
|
53
|
+
* an arbitrary deployment name, so `reasoning` must be declared — the same
|
|
54
|
+
* rationale, word for word, as `azureOpenai()`.
|
|
55
|
+
* • INFERENCE ONLY. The token audience here is the data plane
|
|
56
|
+
* ({@link AZURE_AI_SCOPE}); the ARM control plane is a different audience
|
|
57
|
+
* and a different job — see `entraIdentity()` in the identity adapters.
|
|
58
|
+
* • Everything `openai()` does not do (multi-modal, JSON-mode), this does
|
|
59
|
+
* not do either — it is the same machinery.
|
|
60
|
+
*/
|
|
61
|
+
import { lazyRequire } from '../../lib/lazyRequire.js';
|
|
62
|
+
import { entraBearerToken, openai } from './OpenAIProvider.js';
|
|
63
|
+
import { AZURE_AI_SCOPE } from '../identity/azure.js';
|
|
64
|
+
/** Every refusal this file authors opens with this name. */
|
|
65
|
+
const ADAPTER = 'foundry';
|
|
66
|
+
/** The endpoint shape refusals point at — quoted, never guessed at. */
|
|
67
|
+
const ENDPOINT_SHAPE = 'https://{account}.services.ai.azure.com/api/projects/{project}';
|
|
68
|
+
// ─── URL derivation ─────────────────────────────────────────────────
|
|
69
|
+
/**
|
|
70
|
+
* Project endpoint → the base URL the v1 inference route serves.
|
|
71
|
+
*
|
|
72
|
+
* `https://acct.services.ai.azure.com/api/projects/proj`
|
|
73
|
+
* → `https://acct.services.ai.azure.com/api/projects/proj/openai/v1`
|
|
74
|
+
* …with trailing slashes → the same
|
|
75
|
+
* …already ending in `/openai/v1` → the same (idempotent — `azureUrl.ts`'s
|
|
76
|
+
* rule, applied to Foundry's suffix)
|
|
77
|
+
*
|
|
78
|
+
* Validation lives HERE, beside the derivation, so there is exactly ONE owner
|
|
79
|
+
* of what a Foundry endpoint looks like: it must be `https://` and it must
|
|
80
|
+
* contain `/api/projects/` — anything else is some OTHER Azure endpoint
|
|
81
|
+
* (a resource root, an ARM URL) that would 404 or 401 far from the typo.
|
|
82
|
+
* Endpoints are NOT secrets, so a malformed one is echoed back: seeing what
|
|
83
|
+
* arrived is the fastest fix. The one carve-out is cleartext to LOOPBACK
|
|
84
|
+
* (127.0.0.1 / localhost / [::1]) — that is how the wire tests drive the
|
|
85
|
+
* REAL SDK against a local fake, and refusing bytes that cannot leave the
|
|
86
|
+
* machine would buy no safety.
|
|
87
|
+
*
|
|
88
|
+
* A `?` or `#` is refused too, and for a reason particular to a SUFFIXING
|
|
89
|
+
* derivation: `…/api/projects/p?x=1` + `/openai/v1` is
|
|
90
|
+
* `…/api/projects/p?x=1/openai/v1`, where the route lives entirely inside the
|
|
91
|
+
* query string. That URL is well-formed, constructs without complaint, and
|
|
92
|
+
* 404s on every request — the exact "late and far from the typo" failure this
|
|
93
|
+
* validator exists to convert into an early named one. The v1 inference route
|
|
94
|
+
* takes no query parameters at all (that is the point of it: no
|
|
95
|
+
* `api-version`), so there is nothing legitimate to preserve.
|
|
96
|
+
*/
|
|
97
|
+
export function foundryInferenceUrl(projectEndpoint) {
|
|
98
|
+
const trimmed = projectEndpoint.replace(/\/+$/, '');
|
|
99
|
+
const loopback = /^http:\/\/(127\.0\.0\.1|localhost|\[::1\])(:\d+)?\//i.test(trimmed);
|
|
100
|
+
const shapeOk = (/^https:\/\//i.test(trimmed) || loopback) && trimmed.includes('/api/projects/');
|
|
101
|
+
if (!shapeOk) {
|
|
102
|
+
throw new Error(`${ADAPTER}: \`projectEndpoint\` does not look like a Foundry project endpoint: ` +
|
|
103
|
+
`${projectEndpoint}\n` +
|
|
104
|
+
` Expected: ${ENDPOINT_SHAPE}\n` +
|
|
105
|
+
' Fix: copy the project endpoint from the Foundry portal (project Overview page), or ' +
|
|
106
|
+
'run where the platform injects FOUNDRY_PROJECT_ENDPOINT.');
|
|
107
|
+
}
|
|
108
|
+
// AFTER the shape check: an endpoint that is wrong in both ways gets the
|
|
109
|
+
// more fundamental diagnosis first.
|
|
110
|
+
const marker = trimmed.includes('?') ? '?' : trimmed.includes('#') ? '#' : undefined;
|
|
111
|
+
if (marker !== undefined) {
|
|
112
|
+
throw new Error(`${ADAPTER}: \`projectEndpoint\` carries a \`${marker}\`, and this route is built by ` +
|
|
113
|
+
`SUFFIXING the endpoint: ${projectEndpoint}\n` +
|
|
114
|
+
` Appending \`/openai/v1\` would put the entire inference path INSIDE the ` +
|
|
115
|
+
`${marker === '?' ? 'query string' : 'fragment'} — a URL that constructs fine and then ` +
|
|
116
|
+
`404s on every request, far from the typo.\n` +
|
|
117
|
+
` Expected: ${ENDPOINT_SHAPE}\n` +
|
|
118
|
+
` Fix: drop everything from the \`${marker}\` onward — the v1 route is ` +
|
|
119
|
+
'api-version-free and takes no query parameters.');
|
|
120
|
+
}
|
|
121
|
+
return trimmed.endsWith('/openai/v1') ? trimmed : `${trimmed}/openai/v1`;
|
|
122
|
+
}
|
|
123
|
+
// ─── Factory ────────────────────────────────────────────────────────
|
|
124
|
+
/**
|
|
125
|
+
* Which roles this wire carries inside `messages` — `inner`'s wire, restated
|
|
126
|
+
* rather than inherited by accident (azureOpenai's stance): the v1 route is
|
|
127
|
+
* OpenAI's chat-completions shape, where the system prompt rides as a message
|
|
128
|
+
* (as `developer` on reasoning deployments), so all three roles survive.
|
|
129
|
+
*/
|
|
130
|
+
const CARRIES_IN_MESSAGES = Object.freeze(['system', 'user', 'assistant']);
|
|
131
|
+
/**
|
|
132
|
+
* Build an `LLMProvider` for a **Microsoft Foundry project**.
|
|
133
|
+
*
|
|
134
|
+
* Inside a hosted Foundry container this is a COMPLETE configuration:
|
|
135
|
+
*
|
|
136
|
+
* @example
|
|
137
|
+
* import { foundry } from 'agentfootprint/providers';
|
|
138
|
+
*
|
|
139
|
+
* const agent = Agent.create({
|
|
140
|
+
* provider: foundry(), // endpoint injected, managed identity signs
|
|
141
|
+
* model: 'foundry', // → the configured deployment
|
|
142
|
+
* }).build();
|
|
143
|
+
*
|
|
144
|
+
* Anywhere else, name the project and the deployment (and sign in, or pass a
|
|
145
|
+
* credential):
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* const provider = foundry({
|
|
149
|
+
* projectEndpoint: 'https://my-acct.services.ai.azure.com/api/projects/my-proj',
|
|
150
|
+
* deployment: 'gpt-4o-128k',
|
|
151
|
+
* credential: new DefaultAzureCredential(),
|
|
152
|
+
* });
|
|
153
|
+
*
|
|
154
|
+
* The request's `model` is the DEPLOYMENT name: the shorthand `'foundry'`
|
|
155
|
+
* resolves to the configured default, and a concrete deployment id passes
|
|
156
|
+
* through untouched (so one provider can target several deployments — the
|
|
157
|
+
* azureOpenai precedent).
|
|
158
|
+
*/
|
|
159
|
+
export function foundry(options = {}) {
|
|
160
|
+
const projectEndpoint = options.projectEndpoint ?? process.env.FOUNDRY_PROJECT_ENDPOINT;
|
|
161
|
+
if (!projectEndpoint) {
|
|
162
|
+
throw new Error(`${ADAPTER}: a \`projectEndpoint\` is required — the shape is ${ENDPOINT_SHAPE}.\n` +
|
|
163
|
+
' Hosted Foundry containers have it injected as FOUNDRY_PROJECT_ENDPOINT; anywhere ' +
|
|
164
|
+
'else, copy it from the Foundry portal.\n' +
|
|
165
|
+
' Fix: pass `projectEndpoint`, or set FOUNDRY_PROJECT_ENDPOINT.');
|
|
166
|
+
}
|
|
167
|
+
const baseURL = foundryInferenceUrl(projectEndpoint);
|
|
168
|
+
const deployment = options.deployment ?? process.env.AZURE_AI_MODEL_DEPLOYMENT_NAME ?? process.env.MODEL_NAME;
|
|
169
|
+
if (!deployment) {
|
|
170
|
+
throw new Error(`${ADAPTER}: a \`deployment\` is required — Foundry's "model" is the DEPLOYMENT name.\n` +
|
|
171
|
+
' Fix: pass `deployment`, or set AZURE_AI_MODEL_DEPLOYMENT_NAME (the azd scaffolding ' +
|
|
172
|
+
'convention) or MODEL_NAME.');
|
|
173
|
+
}
|
|
174
|
+
const apiKey = resolveFoundryAuth(options);
|
|
175
|
+
// Reuse ALL of openai()'s logic. The v1 route is CURRENT OpenAI wire, so the
|
|
176
|
+
// custom baseURL must not demote it to the legacy dialect: `legacyEndpoint:
|
|
177
|
+
// false` is the whole reason that dial is public — max_completion_tokens,
|
|
178
|
+
// stream_options.include_usage, and declared forced tool choice.
|
|
179
|
+
const inner = openai({
|
|
180
|
+
baseURL,
|
|
181
|
+
legacyEndpoint: false,
|
|
182
|
+
...(apiKey !== undefined && { apiKey }),
|
|
183
|
+
defaultModel: deployment,
|
|
184
|
+
...(options.reasoning !== undefined && { reasoning: options.reasoning }),
|
|
185
|
+
...(options.defaultMaxTokens !== undefined && { defaultMaxTokens: options.defaultMaxTokens }),
|
|
186
|
+
...(options._client && { _client: options._client }),
|
|
187
|
+
});
|
|
188
|
+
// Foundry's "model" IS the deployment — rewrite the shorthand to it; a
|
|
189
|
+
// concrete id passes through (so you can target multiple deployments).
|
|
190
|
+
const withDeployment = (req) => req.model === 'foundry' ? { ...req, model: deployment } : req;
|
|
191
|
+
return {
|
|
192
|
+
name: 'foundry',
|
|
193
|
+
// The wire is `inner`'s, so the capability is `inner`'s. Re-stating it
|
|
194
|
+
// rather than inheriting by accident: this factory builds a fresh object,
|
|
195
|
+
// and a dropped capability silently becomes the user/assistant floor.
|
|
196
|
+
carriesInMessages: CARRIES_IN_MESSAGES,
|
|
197
|
+
...(inner.carriesForcedToolChoice !== undefined && {
|
|
198
|
+
carriesForcedToolChoice: inner.carriesForcedToolChoice,
|
|
199
|
+
}),
|
|
200
|
+
// `hooks` is FORWARDED, not dropped — see LLMCallHooks in adapters/types.ts.
|
|
201
|
+
complete: (req, hooks) => inner.complete(withDeployment(req), hooks),
|
|
202
|
+
...(inner.stream && {
|
|
203
|
+
stream: (req, hooks) => inner.stream(withDeployment(req), hooks),
|
|
204
|
+
}),
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
// ─── Auth resolution ────────────────────────────────────────────────
|
|
208
|
+
/**
|
|
209
|
+
* Options → what `openai()`'s `apiKey` slot receives. Three doors and one
|
|
210
|
+
* refusal, resolved in one place so the factory above reads as composition.
|
|
211
|
+
*
|
|
212
|
+
* The `credential` door returns a CALLBACK, which is `openai()`'s per-request
|
|
213
|
+
* credential seam: called before every request, and the SDK client is rebuilt
|
|
214
|
+
* only when the returned STRING changes. That is exactly right for
|
|
215
|
+
* MSAL-cached tokens — the cache serves the same string until it refreshes,
|
|
216
|
+
* so a cached token costs one function call and zero client rebuilds, and a
|
|
217
|
+
* refreshed one becomes a new client instead of a 401.
|
|
218
|
+
*/
|
|
219
|
+
function resolveFoundryAuth(options) {
|
|
220
|
+
// Two credentials is not "extra secure" — whichever one this factory
|
|
221
|
+
// silently preferred would be the one the consumer did not think was in use.
|
|
222
|
+
if (options.credential && options.apiKey) {
|
|
223
|
+
throw new Error(`${ADAPTER}: both \`credential\` and \`apiKey\` were given, and they are two answers to ` +
|
|
224
|
+
'the same question — which identity signs the request.\n' +
|
|
225
|
+
' Fix: pass exactly one — `credential` (keyless Entra ID) or `apiKey` (static key).');
|
|
226
|
+
}
|
|
227
|
+
if (options.credential) {
|
|
228
|
+
const credential = options.credential;
|
|
229
|
+
const scope = options.scope ?? AZURE_AI_SCOPE;
|
|
230
|
+
return async () => entraBearerToken(ADAPTER, credential, scope);
|
|
231
|
+
}
|
|
232
|
+
// A string or a callback both pass straight through — `openai()` already
|
|
233
|
+
// owns the re-read-per-request contract for callbacks.
|
|
234
|
+
if (options.apiKey !== undefined)
|
|
235
|
+
return options.apiKey;
|
|
236
|
+
if (options._client) {
|
|
237
|
+
// The injected double replaces the WIRE, not the credential — and with no
|
|
238
|
+
// credential given there is nothing for a test to observe. Constructing a
|
|
239
|
+
// real DefaultAzureCredential underneath a double would reach for genuine
|
|
240
|
+
// cloud identity from inside a unit test, so the double runs keyless.
|
|
241
|
+
return undefined;
|
|
242
|
+
}
|
|
243
|
+
// NEITHER door named → the platform's own blessed zero-config pattern:
|
|
244
|
+
// inside a hosted Foundry container (injected FOUNDRY_PROJECT_ENDPOINT +
|
|
245
|
+
// per-agent managed identity), `new DefaultAzureCredential()` is what
|
|
246
|
+
// Microsoft's own FoundryChatClient does. Constructing the chain fetches
|
|
247
|
+
// NOTHING — tokens are minted per request by the callback below — but the
|
|
248
|
+
// peer-dep is loaded HERE, at factory time, so a missing package is refused
|
|
249
|
+
// where the consumer typed `foundry(...)` (the same stance `openai()` takes
|
|
250
|
+
// on its own SDK).
|
|
251
|
+
let sdk;
|
|
252
|
+
try {
|
|
253
|
+
sdk = lazyRequire('@azure/identity');
|
|
254
|
+
}
|
|
255
|
+
catch {
|
|
256
|
+
throw new Error(`${ADAPTER}: keyless zero-config auth needs the \`@azure/identity\` package (an optional ` +
|
|
257
|
+
'peer this library never bundles).\n' +
|
|
258
|
+
' Fix: npm i @azure/identity — or pass `credential` or `apiKey` explicitly.');
|
|
259
|
+
}
|
|
260
|
+
if (typeof sdk.DefaultAzureCredential !== 'function') {
|
|
261
|
+
throw new Error(`${ADAPTER}: \`@azure/identity\` is installed but exports no \`DefaultAzureCredential\`.\n` +
|
|
262
|
+
' Fix: npm i @azure/identity@^4 — or pass `credential` or `apiKey` explicitly.');
|
|
263
|
+
}
|
|
264
|
+
const chain = new sdk.DefaultAzureCredential();
|
|
265
|
+
const scope = options.scope ?? AZURE_AI_SCOPE;
|
|
266
|
+
return async () => entraBearerToken(ADAPTER, chain, scope);
|
|
267
|
+
}
|
|
268
|
+
//# sourceMappingURL=FoundryProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FoundryProvider.js","sourceRoot":"","sources":["../../../../src/adapters/llm/FoundryProvider.ts"],"names":[],"mappings":"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"}
|