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.
Files changed (66) hide show
  1. package/CHANGELOG.md +160 -0
  2. package/dist/adapters/identity/azure.js +306 -0
  3. package/dist/adapters/identity/azure.js.map +1 -0
  4. package/dist/adapters/llm/FoundryLocalProvider.js +992 -0
  5. package/dist/adapters/llm/FoundryLocalProvider.js.map +1 -0
  6. package/dist/adapters/llm/FoundryProvider.js +273 -0
  7. package/dist/adapters/llm/FoundryProvider.js.map +1 -0
  8. package/dist/adapters/llm/OllamaProvider.js +171 -12
  9. package/dist/adapters/llm/OllamaProvider.js.map +1 -1
  10. package/dist/adapters/llm/OpenAIProvider.js +117 -5
  11. package/dist/adapters/llm/OpenAIProvider.js.map +1 -1
  12. package/dist/adapters/llm/createProvider.js +143 -10
  13. package/dist/adapters/llm/createProvider.js.map +1 -1
  14. package/dist/adapters/types.js.map +1 -1
  15. package/dist/esm/adapters/identity/azure.d.ts +188 -0
  16. package/dist/esm/adapters/identity/azure.js +302 -0
  17. package/dist/esm/adapters/identity/azure.js.map +1 -0
  18. package/dist/esm/adapters/llm/FoundryLocalProvider.d.ts +215 -0
  19. package/dist/esm/adapters/llm/FoundryLocalProvider.js +986 -0
  20. package/dist/esm/adapters/llm/FoundryLocalProvider.js.map +1 -0
  21. package/dist/esm/adapters/llm/FoundryProvider.d.ts +178 -0
  22. package/dist/esm/adapters/llm/FoundryProvider.js +268 -0
  23. package/dist/esm/adapters/llm/FoundryProvider.js.map +1 -0
  24. package/dist/esm/adapters/llm/OllamaProvider.js +171 -12
  25. package/dist/esm/adapters/llm/OllamaProvider.js.map +1 -1
  26. package/dist/esm/adapters/llm/OpenAIProvider.d.ts +111 -0
  27. package/dist/esm/adapters/llm/OpenAIProvider.js +115 -4
  28. package/dist/esm/adapters/llm/OpenAIProvider.js.map +1 -1
  29. package/dist/esm/adapters/llm/createProvider.d.ts +48 -12
  30. package/dist/esm/adapters/llm/createProvider.js +143 -10
  31. package/dist/esm/adapters/llm/createProvider.js.map +1 -1
  32. package/dist/esm/adapters/types.d.ts +4 -2
  33. package/dist/esm/adapters/types.js.map +1 -1
  34. package/dist/esm/identity.d.ts +1 -0
  35. package/dist/esm/identity.js +9 -0
  36. package/dist/esm/identity.js.map +1 -1
  37. package/dist/esm/index.d.ts +1 -1
  38. package/dist/esm/index.js.map +1 -1
  39. package/dist/esm/providers.d.ts +5 -0
  40. package/dist/esm/providers.js +14 -0
  41. package/dist/esm/providers.js.map +1 -1
  42. package/dist/identity.js +14 -1
  43. package/dist/identity.js.map +1 -1
  44. package/dist/index.js.map +1 -1
  45. package/dist/providers.js +20 -1
  46. package/dist/providers.js.map +1 -1
  47. package/dist/types/adapters/identity/azure.d.ts +189 -0
  48. package/dist/types/adapters/identity/azure.d.ts.map +1 -0
  49. package/dist/types/adapters/llm/FoundryLocalProvider.d.ts +216 -0
  50. package/dist/types/adapters/llm/FoundryLocalProvider.d.ts.map +1 -0
  51. package/dist/types/adapters/llm/FoundryProvider.d.ts +179 -0
  52. package/dist/types/adapters/llm/FoundryProvider.d.ts.map +1 -0
  53. package/dist/types/adapters/llm/OllamaProvider.d.ts.map +1 -1
  54. package/dist/types/adapters/llm/OpenAIProvider.d.ts +111 -0
  55. package/dist/types/adapters/llm/OpenAIProvider.d.ts.map +1 -1
  56. package/dist/types/adapters/llm/createProvider.d.ts +48 -12
  57. package/dist/types/adapters/llm/createProvider.d.ts.map +1 -1
  58. package/dist/types/adapters/types.d.ts +4 -2
  59. package/dist/types/adapters/types.d.ts.map +1 -1
  60. package/dist/types/identity.d.ts +1 -0
  61. package/dist/types/identity.d.ts.map +1 -1
  62. package/dist/types/index.d.ts +1 -1
  63. package/dist/types/index.d.ts.map +1 -1
  64. package/dist/types/providers.d.ts +5 -0
  65. package/dist/types/providers.d.ts.map +1 -1
  66. 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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"}