src/index.ts
Rama master · réplica de lectura del repositorio original.
/**
* Barrel exports for the subset of AgentOS modules that external consumers
* should generally import. Internal modules can still be reached via
* `@framers/agentos/<path>` thanks to the workspace exports map.
*/
export * from './api/AgentOS.js';
export * from './api/runtime/AgentOSOrchestrator';
export * from './api/types/AgentOSInput';
export * from './api/types/AgentOSResponse';
export * from './api/types/AgentOSExternalToolRequest';
export * from './api/types/AgentOSToolResult';
export * from './cognition/substrate/IGMI';
export * from './cognition/substrate/GMIManager';
export type {
ITool,
ToolExecutionResult,
ToolExecutionContext,
JSONSchemaObject,
} from './core/tools/ITool';
export * from './core/llm/IPromptEngine';
export * from './core/config/ToolOrchestratorConfig';
export * from './core/tools/permissions/IToolPermissionManager';
export * from './core/conversation/ConversationManager';
export * from './core/conversation/IRollingSummaryMemorySink';
export * from './core/conversation/ILongTermMemoryRetriever';
export * from './core/conversation/LongTermMemoryPolicy';
export * from './core/streaming/StreamingManager';
export * from './core/llm/providers/AIModelProviderManager';
export * from './orchestration/turn-planner/TurnPlanner';
export * from './orchestration/turn-planner/SqlTaskOutcomeTelemetryStore';
export * from './orchestration/workflows/WorkflowTypes';
export * from './orchestration/workflows/IWorkflowEngine';
export * from './orchestration/workflows/storage/IWorkflowStore';
export { WorkflowEngine } from './orchestration/workflows/WorkflowEngine';
export { InMemoryWorkflowStore } from './orchestration/workflows/storage/InMemoryWorkflowStore';
// Agency (Multi-Agent Collectives)
export * from './agents/agency/AgencyTypes';
export { AgencyRegistry } from './agents/agency/AgencyRegistry';
export { AgencyMemoryManager } from './agents/agency/AgencyMemoryManager';
export type {
AgencyMemoryIngestInput,
AgencyMemoryChunk,
AgencyMemoryQueryResult,
AgencyMemoryStats,
} from './agents/agency/AgencyMemoryManager';
export { AgentCommunicationBus } from './agents/agency/AgentCommunicationBus';
export type {
IAgentCommunicationBus,
AgentMessage,
AgentMessageType,
AgentRequest,
AgentResponse,
HandoffContext,
HandoffResult,
} from './agents/agency/IAgentCommunicationBus';
// Planning Engine
export * from './orchestration/planner';
// Human-in-the-Loop (HITL)
export * from './orchestration/hitl';
// Structured Outputs (JSON Schema, Function Calling)
export * from './api/structured/output';
// Code Execution Sandbox
export * from './safety/sandbox/executor';
// Observability & Tracing
export * from './safety/evaluation/observability';
// Evaluation Framework
export * from './safety/evaluation';
// Knowledge Graph
export * from './cognition/memory/retrieval/graph/index';
// Agent Marketplace
export * from './cognition/marketplace/store';
// Per-agent workspace helpers
export * from './cognition/marketplace/workspace';
export * from './cognition/substrate/personas/definitions';
export * from './cognition/substrate/personas/IPersonaDefinition';
export type { IPersonaLoader, PersonaLoaderConfig } from './cognition/substrate/personas/IPersonaLoader';
export { PersonaLoader } from './cognition/substrate/personas/PersonaLoader';
export type { FileSystemPersonaLoaderConfig } from './cognition/substrate/personas/PersonaLoader';
export { InMemoryPersonaLoader, assertInlinePersonaDefinitions, INLINE_PERSONA_LOADER_CONFIG } from './cognition/substrate/personas/InMemoryPersonaLoader';
export { clonePersonaDefinition, normalizePersonaDefinition } from './cognition/substrate/personas/personaNormalization';
export * from './cognition/substrate/persona_overlays/PersonaOverlayTypes';
export { PersonaOverlayManager } from './cognition/substrate/persona_overlays/PersonaOverlayManager';
// Guardrails
export * from './safety/guardrails';
export * from './extensions';
// Messaging Channels (external platform adapters)
export * from './io/channels';
// Voice Calls (telephony providers)
export * from './io/channels/telephony';
// Meeting bots (the meeting-participant channel)
export * from './io/channels/meetings/index.js';
// Unified speech runtime (STT/TTS/VAD/wake-word)
export * from './io/speech';
// Unified image generation providers
export * from './io/media/images';
// Unified video generation, analysis, and scene detection
export * from './io/media/video/index.js';
// Unified audio generation (music + SFX) and provider registry
export * from './io/media/audio/index.js';
// Hearing module (audio processing + STT/VAD providers)
export * from './io/hearing';
// Media provider preference resolver (shared across image/video/audio)
export * from './io/media/ProviderPreferences.js';
// Unified vision pipeline (OCR + handwriting + document AI + CLIP + cloud)
export { VisionPipeline, createVisionPipeline, LLMVisionProvider, PipelineVisionProvider } from './io/vision/index.js';
export type {
VisionPipelineConfig,
VisionResult,
VisionStrategy,
VisionTier,
VisionCloudTask,
ContentCategory as VisionContentCategory,
TierResult as VisionTierResult,
FailedTier as VisionFailedTier,
TextRegion as VisionTextRegion,
DocumentLayout,
DocumentPage,
LayoutBlock,
VisionPreprocessingConfig,
} from './io/vision/types.js';
export type { LLMVisionProviderConfig } from './io/vision/providers/LLMVisionProvider.js';
// Skills (SKILL.md prompt modules)
export * from './cognition/skills';
// Multilingual exports
export * from './cognition/nlp/language/interfaces';
export * from './cognition/nlp/language/LanguageService';
export * from './cognition/nlp/language/TranscriptTranslator';
// NLP AI Utilities (classification, sentiment, similarity, keyword extraction, etc.)
export * from './cognition/nlp/ai_utilities/IUtilityAI';
export * from './cognition/nlp/ai_utilities/LLMUtilityAI';
export * from './cognition/nlp/ai_utilities/StatisticalUtilityAI';
export * from './cognition/nlp/ai_utilities/HybridUtilityAI';
export type { ILogger } from './core/logging/ILogger';
export { createLogger, setLoggerFactory, resetLoggerFactory } from './core/logging/loggerFactory';
// Rate limit types
export * from './core/rate-limiting/types';
// Storage adapters
export * from './core/storage';
// Usage & cost accounting
export * from './core/utils/usage/UsageLedger';
// RAG (Retrieval Augmented Generation)
export * from './cognition/rag';
export type {
MemoryRetrievalPolicy,
MemoryRetrievalProfile,
ResolvedMemoryRetrievalPolicy,
} from './cognition/rag/unified/policy.js';
export {
DEFAULT_MEMORY_RETRIEVAL_POLICY,
buildRetrievalPlanFromPolicy,
getCandidateLimit,
resolveMemoryRetrievalPolicy,
} from './cognition/rag/unified/policy.js';
// Cognitive Memory System
export * from './cognition/memory';
// Two barrels above export an `isPublicAddress`: the memory barrel `guardedFetch`'s rule, and the meetings barrel the
// checked egress module's stricter rule, which the outbox delivery holds. The root exports `guardedFetch`'s.
export { isPublicAddress } from './cognition/memory';
// Memory Wiki — markdown-first long-term memory for soul-file agents
export {
WikiMemoryStore,
WikiCompiler,
ensureMemoryDir,
parsePage,
serializePage,
renderCatalog,
extractWikiLinks,
WIKI_PAGE_TYPES,
isWikiPageType,
InvalidWikiPageIdError,
isWikiPageId,
assertWikiPageId,
MAX_WIKI_PAGE_ID_LENGTH,
} from './cognition/substrate/memory/wiki/index.js';
export type {
WikiPage,
WikiPageType,
WikiPageIdProblem,
MetaIndex,
IndexResult as WikiIndexResult,
CompileResult as WikiCompileResult,
MemoryIndexPort,
WikiMemoryStoreOptions,
WikiCompilerOptions,
WikiCompilerStorePort,
} from './cognition/substrate/memory/wiki/index.js';
export { attachMemoryWiki } from './cognition/memory/io/attachMemoryWiki.js';
export type {
AttachMemoryWikiOptions,
AttachMemoryWikiResult,
WikiAttachableMemory,
} from './cognition/memory/io/attachMemoryWiki.js';
export { ReadMemoryPageTool } from './cognition/memory/io/tools/ReadMemoryPageTool.js';
// Query Router (classification, retrieval dispatch, grounded answer generation)
export {
QueryClassifier,
QueryDispatcher,
QueryGenerator,
QueryRouter,
TopicExtractor,
KeywordFallback,
} from './orchestration/pipeline/query/index.js';
export type {
QueryTier,
ClassificationResult,
RetrievedChunk,
SourceCitation,
RetrievalResult,
ConversationMessage,
QueryRouterConfig,
ClassifyStartEvent,
ClassifyCompleteEvent,
ClassifyErrorEvent,
RetrieveStartEvent,
RetrieveVectorEvent,
RetrieveGraphEvent,
RetrieveRerankEvent,
RetrieveCompleteEvent,
RetrieveFallbackEvent,
ResearchStartEvent,
ResearchPhaseEvent,
ResearchCompleteEvent,
GenerateStartEvent,
GenerateCompleteEvent,
RouteCompleteEvent,
QueryRouterEventUnion,
CorpusChunk,
TopicEntry,
QueryResult as QueryRouterResult,
QueryRouterEmbeddingStatus,
QueryRouterRetrievalMode,
QueryRouterRuntimeMode,
QueryRouterToggleableRuntimeMode,
QueryRouterCorpusStats,
} from './orchestration/pipeline/query/types.js';
// Orchestration Layer (IR, Events, Checkpoint, Runtime)
export * from './orchestration/index.js';
// Provenance, Audit & Immutability
export * from './safety/provenance';
// Safety Primitives (circuit breaker, dedup, cost guard, stuck detection)
export * from './safety/runtime';
// Emergent Capability Engine (runtime tool creation)
export * from './cognition/emergent/index.js';
// Extension Secrets Catalog
export {
EXTENSION_SECRET_DEFINITIONS,
type ExtensionSecretDefinition,
getSecretDefinition,
resolveSecretForProvider,
} from './core/config/extensionSecrets.js';
// --- High-Level API (AI SDK style) ---
export {
generateText,
isRetryableError,
isContentPolicyRefusal,
buildFallbackChain,
buildPolicyAwareFallbackChain,
} from './api/generateText.js';
export { CONTEXT_WINDOW_EXCEEDED_CODE } from './core/llm/providers/errors/errorCodes.js';
export { ContextWindowExceededError } from './core/llm/providers/errors/ContextWindowExceededError.js';
export { checkContextFit, type ContextFit, type ContextFitRequest } from './api/runtime/contextWindowFit.js';
export type {
GenerateTextOptions,
GenerateTextResult,
FallbackProviderEntry,
FallbackSignal,
HostLLMPolicy,
GenerationHookContext,
GenerationHookResult,
Message,
ToolCallRecord,
ToolCallHookInfo,
TokenUsage,
SystemContentBlock,
} from './api/generateText.js';
export type {
AttemptOutcome,
CacheDiagnostics,
CacheMissReason,
} from './core/llm/providers/IProvider.js';
export { normalizeHostLLMPolicy } from './api/runtime/hostPolicy.js';
export { streamText, normalizeStreamFinishReason } from './api/streamText.js';
export type { StreamTextResult, StreamPart, StreamFinishReason } from './api/streamText.js';
export { createCompletionGateway, toolFormatFor } from './api/runtime/completionGateway.js';
export type {
CompletionAttempt,
CompletionGateway,
CompletionHop,
CompletionOutcome,
CompletionResolution,
CompletionRoute,
LateAttemptUsage,
} from './api/runtime/completionGateway.js';
export { GatewayProviderManager } from './api/runtime/gatewayProviderManager.js';
export { agent } from './api/agent.js';
export { souledAgent } from './api/souledAgent.js';
export type { SouledAgentOptions, SouledAgent } from './api/souledAgent.js';
export type {
Agent,
AgentLearning,
AgentSession,
AgentSessionOptions,
AgentOptions,
AgentMemoryProvider,
SessionSendOptions,
SessionSendStructuredResult,
} from './api/agent.js';
export { gmi, createGmi } from './api/gmi.js';
export type { GmiOptions, GmiHandle } from './api/gmi.js';
export { resolveCognition } from './api/runtime/gmiCognition.js';
export type {
CognitionProfile,
CognitionConfig,
CognitionInputs,
MetapromptPreset,
ResolvedCognition,
} from './api/runtime/gmiCognition.js';
export { personaFromAgentOptions } from './api/runtime/gmiPersona.js';
// Teams a gmi() agent launches from a turn (`agencies.launch` registers `launch_agency`), and persistent gmi()
// agents seated in an agency as themselves (`sessionSeat()`).
export { LAUNCH_AGENCY_TOOL_NAME } from './api/runtime/agencyLaunch/types.js';
export type {
AgencyLaunchOptions,
LaunchAgencyArgs,
LaunchAgencyResult,
LaunchRefusal,
LaunchRefusalCode,
LaunchSeatRecord,
LaunchSeatSpec,
LaunchStatus,
LaunchUsage,
} from './api/runtime/agencyLaunch/types.js';
export { sessionSeat } from './api/runtime/agencyLaunch/sessionSeat.js';
export type { SeatHandle, SessionSeatOptions } from './api/runtime/agencyLaunch/sessionSeat.js';
// The rest of the launch surface (docs/AGENCIES.md): the runtime's `agencies` option, a launch tree's limits, the frame
// a seat's turns and tool calls carry, the live objects of the turn that made a tool call, a tool hook, and a launched
// team's registry record.
export type {
AgencyLaunchFrame,
CallerTurnContext,
LaunchLimits,
LaunchRecordMetadata,
RuntimeAgencyLaunchOptions,
ToolCallHook,
} from './api/runtime/agencyLaunch/index.js';
// The learning layer (docs/GMI.md, "Learning"): off unless a host sets its `learning` option. Everything else of the
// module is on the `@framers/agentos/cognition/learning` subpath.
export { createLearningLayer, InMemoryLearningStore, SqlLearningStore, toolLearningContextFor } from './cognition/learning/index.js';
export type {
ForgetReport,
FreezeScope,
HostLoopName,
ILearnerSession,
ILearningLayer,
ImportReport,
LearnedStateDocument,
LearnerContext,
LearnerKey,
LearningConfig,
LearningLayerHandle,
LearningLayerOptions,
LearningLoopName,
LearningMemoryTools,
LearningMode,
LearningProfile,
LearningStore,
LedgerEntry,
LoopManifest,
LoopName,
LoopState,
NoLearnerReason,
OperatorSetInput,
ProposalResult,
ResolvedLearning,
SelfChangeTurn,
SessionSelfChange,
SqlLearningStoreOptions,
ToolLearningContext,
TurnInputForLearning,
TurnPreparation,
TurnScopes,
} from './cognition/learning/index.js';
// The trait map a learner context carries (`LearnerContext.authoredTraits`) and a learner session answers
// (`currentTraits()`).
export type { HexacoTraitValues } from './cognition/substrate/personas/hexaco.js';
// The directive line each trait renders, for a host that shows it beside the trait's control (an agent builder's
// slider): the lines `agent()` sends in its personality section.
export { renderPersonalityDirectives } from './cognition/substrate/personas/personalityPrompt.js';
export type {
PersonalityDirective,
PersonalityRegister,
PersonalityRenderOptions,
TraitBand,
} from './cognition/substrate/personas/personalityPrompt.js';
export type { HexacoTraitKey } from './cognition/substrate/personas/hexaco.js';
export { createAgentCognitiveMemory } from './api/runtime/agentCognitiveMemory.js';
export type { AgentCognitiveMemory, AgentCognitiveMemoryOptions } from './api/runtime/agentCognitiveMemory.js';
export type { MemoryProviderHookOptions } from './api/runtime/memoryProviderHooks.js';
export type {
IModelRouter,
ModelRouteParams,
ModelRouteResult,
} from './core/llm/routing/IModelRouter.js';
export { ModelRouter } from './core/llm/routing/ModelRouter.js';
export { agency, runPostApprovalGuardrails } from './api/agency.js';
export type { GuardrailHitlOverrideResult } from './api/agency.js';
export {
exportAgentConfig,
exportAgentConfigJSON,
exportAgentConfigYAML,
importAgent,
importAgentFromJSON,
importAgentFromYAML,
validateAgentExport,
} from './api/agentExport.js';
export type {
AgentExportConfig,
ExportAgentConfigOptions,
ImportAgentOptions,
PrebuiltSeatMarker,
} from './api/agentExport.js';
export { hitl } from './api/hitl.js';
export type { HitlHandler } from './api/hitl.js';
export * from './api/runtime/processRequestWithExternalTools.js';
export * from './api/runtime/externalToolRegistry.js';
export * from './api/runtime/processRequestWithRegisteredTools.js';
export * from './api/runtime/resumeExternalToolRequestWithRegisteredTools.js';
export type {
AgencyOptions,
AgencySeatConfig,
AgencyStrategy,
AgencyConfigError as AgencyConfigErrorType,
AgencyCallbacks,
AgencyStreamResult,
AgencyStreamPart,
AgencyTraceEvent,
AgentCallRecord,
ApprovalRequest,
ApprovalDecision,
ResourceControls,
HitlConfig,
CompiledStrategy,
CompiledStrategyStreamResult,
Agency,
SeatMetadata,
ModelPoolEntry,
SeatingConfig,
PanelOptions,
PanelSeatRecord,
PanelSeatStatus,
SeatingRecord,
SeatingSeatRecord,
PanelQuorumRecord,
AgencyResult,
PanelResult,
PanelLedger,
AgencyInstance,
AgencyQuorumConfig,
} from './api/types.js';
export { AgencyConfigError, AgencyQuorumError, AgencyPanelError, AgencySeatingError } from './api/types.js';
export { vendorOf } from './api/runtime/pool/vendor.js';
export { generateImage } from './api/generateImage.js';
export type { GenerateImageOptions, GenerateImageResult } from './api/generateImage.js';
export { editImage } from './api/editImage.js';
export type { EditImageOptions, EditImageResult } from './api/editImage.js';
export { upscaleImage } from './api/upscaleImage.js';
export type { UpscaleImageOptions, UpscaleImageResult } from './api/upscaleImage.js';
export { variateImage } from './api/variateImage.js';
export type { VariateImageOptions, VariateImageResult } from './api/variateImage.js';
export { segment } from './api/segment.js';
export { removeBackground, DEFAULT_BACKGROUND_REMOVAL_TIMEOUT_MS } from './api/removeBackground.js';
export {
maskToEditMask,
cropRegion,
ReplicateSegmentationProvider,
registerSegmentationProvider,
resolveSegmentationProvider,
resetSegmentationProviders,
SegmentationModeNotSupportedError,
InvalidSegmentationPromptError,
SegmentationProviderError,
FalBackgroundRemovalProvider,
FAL_BIREFNET_MODEL,
registerBackgroundRemovalProvider,
resolveBackgroundRemovalProvider,
resetBackgroundRemovalProviders,
} from './io/segmentation/index.js';
export type {
SegmentOptions,
SegmentationResult,
SegmentMask,
SegmentationMode,
SegmentationBox,
SegmentationPoint,
SegmentationRequest,
ISegmentationProvider,
SegmentationProviderId,
SegmentationProviderOptionBag,
ReplicateSegmentationOptions,
SegmentationErrorCode,
RemoveBackgroundOptions,
BackgroundRemovalResult,
BackgroundRemovalImage,
BackgroundRemovalRequest,
BackgroundRemovalOutput,
BackgroundRemovalFormat,
IBackgroundRemovalProvider,
BackgroundRemovalProviderId,
BackgroundRemovalProviderOptionBag,
BackgroundRemovalProviderConfig,
FalBackgroundRemovalOptions,
FalBiRefNetVariant,
} from './io/segmentation/index.js';
export { generateVideo } from './api/generateVideo.js';
export type { GenerateVideoOptions, GenerateVideoResult } from './api/generateVideo.js';
export { generateMusic } from './api/generateMusic.js';
export type { GenerateMusicOptions, GenerateMusicResult } from './api/generateMusic.js';
export { generateSFX } from './api/generateSFX.js';
export type { GenerateSFXOptions, GenerateSFXResult } from './api/generateSFX.js';
export { analyzeVideo } from './api/analyzeVideo.js';
export type { AnalyzeVideoOptions, AnalyzeVideoResult } from './api/analyzeVideo.js';
export { detectScenes } from './api/detectScenes.js';
export type { DetectScenesOptions } from './api/detectScenes.js';
export { performOCR } from './api/performOCR.js';
export type { PerformOCROptions, OCRResult } from './api/performOCR.js';
export { generateObject, ObjectGenerationError } from './api/generateObject.js';
export {
resolveStructuredReply,
resolveStructuredReplySpec,
checkStructuredReply,
recheckStructuredReply,
structuredRepairMessage,
StructuredReplyConfigError,
} from './api/runtime/structuredReply.js';
export type { StructuredReplySpec, StructuredOutputMeta, StructuredReplyOutput, IStructuredSchemaRegistry, ResolvedStructuredReply } from './api/runtime/structuredReply.js';
export type { GenerateObjectOptions, GenerateObjectResult } from './api/generateObject.js';
export { streamObject } from './api/streamObject.js';
export type { StreamObjectOptions, StreamObjectResult, StreamObjectElement, DeepPartial } from './api/streamObject.js';
export { embedText } from './api/embedText.js';
export type { EmbedTextOptions, EmbedTextResult } from './api/embedText.js';
export { SpendBudget, UnpricedModelError, asSpendBudget, costOfUsageUSD, estimateCallCostUSD } from './api/runtime/spendBudget.js';
export type { SpendBudgetCall, SpendBudgetOptions, SpendBudgetSettlement, SpendLimitInfo } from './api/runtime/spendBudget.js';
export { transferStyle } from './api/transferStyle.js';
// Convenience re-export: every meaningful generateObject / structured-output
// example uses Zod schemas, so consumers can `import { z } from '@framers/agentos'`
// without adding zod as a separate direct dependency. The pinned version
// matches the one agentos itself depends on.
export { z } from 'zod';
export { createTestAgentOSConfig } from './core/config/AgentOSConfig.js';
export {
setDefaultProvider,
getDefaultProvider,
clearDefaultProvider,
type GlobalDefaultProvider,
} from './api/runtime/global-default.js';
export {
parseModelString,
resolveProvider,
resolveModelOption,
shutdownProviderManagers,
ProviderInitializationError,
} from './api/model.js';
export { PROVIDER_DEFAULTS, autoDetectProvider } from './api/runtime/provider-defaults.js';
export type { ProviderDefaults } from './api/runtime/provider-defaults.js';
export {
setProviderPriority,
getProviderPriority,
clearProviderPriority,
} from './api/runtime/provider-priority.js';
export type { TaskType, ModelOption } from './api/model.js';
export { adaptTools, adaptToolsToMap, mergeAdaptableTools } from './api/runtime/toolAdapter.js';
export type { AdaptableToolInput, ToolDefinitionMap } from './api/runtime/toolAdapter.js';
export {
getDefaultAgentOSUsageLedgerPath,
resolveAgentOSUsageLedgerPath,
readRecordedAgentOSUsageEvents,
recordAgentOSUsage,
getRecordedAgentOSUsage,
clearRecordedAgentOSUsage,
} from './api/runtime/usageLedger.js';
export type {
AgentOSUsageLedgerOptions,
AgentOSUsageEvent,
AgentOSUsageRecordInput,
AgentOSUsageAggregate,
} from './api/runtime/usageLedger.js';
// JSON extraction (centralized LLM output parsing)
export { extractJson } from './safety/validation/extractJson.js';
// Global LLM usage observer (host-side cost telemetry hook). Hosts
// register a single callback at boot; every generateText / generateObject
// / streamText / streamObject call fires it once with the resolved
// provider / model / usage / source so downstream cost + billing
// systems don't need per-callsite wrappers.
export {
setGlobalLlmObserver,
getGlobalLlmObserver,
fireLlmUsageObserver,
} from './api/observers.js';
export type { LlmUsageAccountContext, LlmUsageAccountResolver, LlmUsageEvent, LlmUsageObserver } from './api/observers.js';
// CI retrigger
// API key pools: several keys per provider from one comma-separated string,
// failover to the next usable key when one is revoked, unpaid or throttled,
// probes before a failed key returns, and state a host may persist.
export {
ApiKeyPool,
keyFingerprint,
keyPoolStrategyFromEnv,
InMemoryKeyPoolStateStore,
SqlKeyPoolStateStore,
keyPoolStateDdl,
KEY_POOL_STATE_DDL,
classifyKeyFailure,
isQuotaError,
retryAfterMs as retryAfterHeaderMs,
} from './core/providers/index.js';
export { setKeyPoolDefaults, getKeyPoolDefaults } from './api/keyPoolDefaults.js';
export type { KeyPoolDefaults } from './api/keyPoolDefaults.js';
// One key's standing, by its provider's billing probe: ok, exhausted, invalid, throttled or unknown.
export { probeProviderKey, PROBEABLE_KEY_PROVIDERS } from './api/probeProviderKey.js';
export type { ProbeProviderKeyOptions, ProbeProviderKeyResult, ProviderKeyState, ProbeableKeyProvider } from './api/probeProviderKey.js';
export type { KeyProbeOptions, KeyProbeAnswer, KeyProbeFailure } from './core/providers/index.js';
export type {
ApiKeyPoolConfig,
ProbeResult as KeyProbeResult,
KeyPoolStateStore,
KeyState,
SqlKeyPoolStateStoreOptions,
KeyFailureKind,
} from './core/providers/index.js';