agentfootprint
Version:
The explainable agent framework — backtrack a wrong answer to the exact context that caused it (evidence, not guesses). Built on footprintjs.
98 lines • 9.59 kB
JavaScript
;
/**
* LLM provider adapters — implementation behind the `agentfootprint/providers`
* subpath (which re-exports this file).
*
* The standalone `agentfootprint/providers` subpath alias was removed in 4.0.0.
* Import from the canonical subpath:
*
* import { mock, anthropic, openai } from 'agentfootprint/providers';
*
* Pattern: Adapter (GoF) — concrete `LLMProvider` implementations that
* translate the agentfootprint port to a specific vendor SDK.
* Role: Outer ring (Hexagonal). Swappable at runtime; the Agent
* knows nothing about vendor specifics.
*
* What's here today:
* • `mock` / `MockProvider` — deterministic + realistic-mode mock
* • `ollama` / `OllamaProvider` — local models, free, no API key
* • `anthropic` / `AnthropicProvider` — real provider (Claude)
* • `openai` / `OpenAIProvider` — real provider (GPT)
* • `gemini` / `GeminiProvider` — Gemini on Vertex or the Gemini API
* • `bedrock`, `azureOpenai`, and the `browser*` variants
* • `foundry` / `foundryLocal` — Microsoft Foundry: a project endpoint in
* the cloud (Entra or key), and the on-device Foundry Local service
*
* The ladder these are FOR: `mock()` while you shape the logic →
* `ollama('<model>')` for a real model that costs nothing and needs no
* key → a paid API in production. The agent code above them does not
* change between the three; that is the whole point of the port.
*
* Bring your own (BYO):
* For Cohere / on-prem / fine-tuned models, implement the
* `LLMProvider` interface (see `LLMProvider` exported from the main
* barrel) — `complete()` is required, `stream()` is optional. The
* `MockProvider` source is the canonical reference.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.createProvider = exports.BrowserAzureOpenAIProvider = exports.browserAzureOpenai = exports.BrowserOpenAIProvider = exports.browserOpenai = exports.InvokeModelGatewayError = exports.InvokeModelGatewayProvider = exports.invokeModelGateway = exports.BrowserAnthropicProvider = exports.browserAnthropic = exports.GeminiProvider = exports.gemini = exports.BedrockProvider = exports.bedrock = exports.FoundryLocalUnavailableError = exports.FoundryLocalProvider = exports.foundryLocal = exports.foundryInferenceUrl = exports.foundry = exports.OllamaUnavailableError = exports.OllamaProvider = exports.ollama = exports.azureOpenai = exports.OpenAIProvider = exports.openai = exports.AnthropicProvider = exports.anthropic = exports.mock = exports.MockProvider = exports.UnsafeThinkingReplayError = exports.UnsupportedNativeOutputError = exports.nativeOutputSchemaFor = exports.UnsupportedToolChoiceError = exports.forcedToolChoiceFor = void 0;
var forcedToolChoice_js_1 = require("./provider-contract/forcedToolChoice.js");
Object.defineProperty(exports, "forcedToolChoiceFor", { enumerable: true, get: function () { return forcedToolChoice_js_1.forcedToolChoiceFor; } });
Object.defineProperty(exports, "UnsupportedToolChoiceError", { enumerable: true, get: function () { return forcedToolChoice_js_1.UnsupportedToolChoiceError; } });
var nativeOutputSchema_js_1 = require("./provider-contract/nativeOutputSchema.js");
Object.defineProperty(exports, "nativeOutputSchemaFor", { enumerable: true, get: function () { return nativeOutputSchema_js_1.nativeOutputSchemaFor; } });
Object.defineProperty(exports, "UnsupportedNativeOutputError", { enumerable: true, get: function () { return nativeOutputSchema_js_1.UnsupportedNativeOutputError; } });
var replay_js_1 = require("./thinking/replay.js");
Object.defineProperty(exports, "UnsafeThinkingReplayError", { enumerable: true, get: function () { return replay_js_1.UnsafeThinkingReplayError; } });
var MockProvider_js_1 = require("./adapters/llm/MockProvider.js");
Object.defineProperty(exports, "MockProvider", { enumerable: true, get: function () { return MockProvider_js_1.MockProvider; } });
Object.defineProperty(exports, "mock", { enumerable: true, get: function () { return MockProvider_js_1.mock; } });
var AnthropicProvider_js_1 = require("./adapters/llm/AnthropicProvider.js");
Object.defineProperty(exports, "anthropic", { enumerable: true, get: function () { return AnthropicProvider_js_1.anthropic; } });
Object.defineProperty(exports, "AnthropicProvider", { enumerable: true, get: function () { return AnthropicProvider_js_1.AnthropicProvider; } });
var OpenAIProvider_js_1 = require("./adapters/llm/OpenAIProvider.js");
Object.defineProperty(exports, "openai", { enumerable: true, get: function () { return OpenAIProvider_js_1.openai; } });
Object.defineProperty(exports, "OpenAIProvider", { enumerable: true, get: function () { return OpenAIProvider_js_1.OpenAIProvider; } });
Object.defineProperty(exports, "azureOpenai", { enumerable: true, get: function () { return OpenAIProvider_js_1.azureOpenai; } });
var OllamaProvider_js_1 = require("./adapters/llm/OllamaProvider.js");
Object.defineProperty(exports, "ollama", { enumerable: true, get: function () { return OllamaProvider_js_1.ollama; } });
Object.defineProperty(exports, "OllamaProvider", { enumerable: true, get: function () { return OllamaProvider_js_1.OllamaProvider; } });
Object.defineProperty(exports, "OllamaUnavailableError", { enumerable: true, get: function () { return OllamaProvider_js_1.OllamaUnavailableError; } });
// Microsoft Foundry, both doors (9.74.0). `foundry()` speaks a PROJECT
// endpoint's `/openai/v1` route — deployment name as the model, Entra
// credential or key as the auth; the hosted platform injects
// FOUNDRY_PROJECT_ENDPOINT so a deployed container needs zero config.
// `entraBearerToken` is deliberately NOT re-exported: it is the two Entra
// doors' shared plumbing, not a promise; vend tokens through
// `entraIdentity` (agentfootprint/security) instead.
var FoundryProvider_js_1 = require("./adapters/llm/FoundryProvider.js");
Object.defineProperty(exports, "foundry", { enumerable: true, get: function () { return FoundryProvider_js_1.foundry; } });
Object.defineProperty(exports, "foundryInferenceUrl", { enumerable: true, get: function () { return FoundryProvider_js_1.foundryInferenceUrl; } });
// Foundry Local: the on-device service. Fetch-only like `ollama()` — the
// service's own OpenAI-compatible `/v1` is the wire, the typed refusal
// carries the fix (`foundry server start` / `status`; the port is dynamic).
var FoundryLocalProvider_js_1 = require("./adapters/llm/FoundryLocalProvider.js");
Object.defineProperty(exports, "foundryLocal", { enumerable: true, get: function () { return FoundryLocalProvider_js_1.foundryLocal; } });
Object.defineProperty(exports, "FoundryLocalProvider", { enumerable: true, get: function () { return FoundryLocalProvider_js_1.FoundryLocalProvider; } });
Object.defineProperty(exports, "FoundryLocalUnavailableError", { enumerable: true, get: function () { return FoundryLocalProvider_js_1.FoundryLocalUnavailableError; } });
var BedrockProvider_js_1 = require("./adapters/llm/BedrockProvider.js");
Object.defineProperty(exports, "bedrock", { enumerable: true, get: function () { return BedrockProvider_js_1.bedrock; } });
Object.defineProperty(exports, "BedrockProvider", { enumerable: true, get: function () { return BedrockProvider_js_1.BedrockProvider; } });
var GeminiProvider_js_1 = require("./adapters/llm/GeminiProvider.js");
Object.defineProperty(exports, "gemini", { enumerable: true, get: function () { return GeminiProvider_js_1.gemini; } });
Object.defineProperty(exports, "GeminiProvider", { enumerable: true, get: function () { return GeminiProvider_js_1.GeminiProvider; } });
var BrowserAnthropicProvider_js_1 = require("./adapters/llm/BrowserAnthropicProvider.js");
Object.defineProperty(exports, "browserAnthropic", { enumerable: true, get: function () { return BrowserAnthropicProvider_js_1.browserAnthropic; } });
Object.defineProperty(exports, "BrowserAnthropicProvider", { enumerable: true, get: function () { return BrowserAnthropicProvider_js_1.BrowserAnthropicProvider; } });
var InvokeModelGatewayProvider_js_1 = require("./adapters/llm/InvokeModelGatewayProvider.js");
Object.defineProperty(exports, "invokeModelGateway", { enumerable: true, get: function () { return InvokeModelGatewayProvider_js_1.invokeModelGateway; } });
Object.defineProperty(exports, "InvokeModelGatewayProvider", { enumerable: true, get: function () { return InvokeModelGatewayProvider_js_1.InvokeModelGatewayProvider; } });
Object.defineProperty(exports, "InvokeModelGatewayError", { enumerable: true, get: function () { return InvokeModelGatewayProvider_js_1.InvokeModelGatewayError; } });
var BrowserOpenAIProvider_js_1 = require("./adapters/llm/BrowserOpenAIProvider.js");
Object.defineProperty(exports, "browserOpenai", { enumerable: true, get: function () { return BrowserOpenAIProvider_js_1.browserOpenai; } });
Object.defineProperty(exports, "BrowserOpenAIProvider", { enumerable: true, get: function () { return BrowserOpenAIProvider_js_1.BrowserOpenAIProvider; } });
Object.defineProperty(exports, "browserAzureOpenai", { enumerable: true, get: function () { return BrowserOpenAIProvider_js_1.browserAzureOpenai; } });
Object.defineProperty(exports, "BrowserAzureOpenAIProvider", { enumerable: true, get: function () { return BrowserOpenAIProvider_js_1.BrowserAzureOpenAIProvider; } });
var createProvider_js_1 = require("./adapters/llm/createProvider.js");
Object.defineProperty(exports, "createProvider", { enumerable: true, get: function () { return createProvider_js_1.createProvider; } });
//# sourceMappingURL=providers.js.map