Files
ai-terminal-assistant/packages/core/src/index.ts
T
kurihada 6ec6fe2f9f feat(provider): 添加独立的 Provider 模块管理模型提供商
实现可扩展的 Provider 系统,支持动态注册自定义提供商:

Core 模块 (packages/core/src/provider/):
- types.ts: Provider 相关类型定义
- builtin/: 内置提供商 (Anthropic, OpenAI, DeepSeek)
- registry.ts: ProviderRegistry 单例类
- config.ts: 配置持久化 (~/.ai-terminal-assistant/providers.json)
- utils.ts: 连接测试等工具函数

Server API (packages/server/src/routes/providers.ts):
- GET/POST/PUT/DELETE /providers 提供商管理
- POST /providers/:id/test 连接测试
- 自定义模型管理接口

Frontend (packages/ui/):
- ProvidersPanel 组件用于管理提供商
- API client 函数和类型定义

主要功能:
- 支持动态注册 OpenAI 兼容服务 (Ollama, vLLM 等)
- 每个提供商独立的 API Key 配置
- 预设模型列表 + 自定义模型输入
- 连接测试验证
2025-12-13 01:50:27 +08:00

195 lines
4.3 KiB
TypeScript

export { Agent } from './core/agent.js';
export { toolRegistry, todoManager, initTaskContext, updateTaskDescription, updateSkillDescription } from './tools/index.js';
export { loadConfig, saveConfig, getConfig, loadVisionConfig } from './utils/config.js';
export type { VisionConfig } from './utils/config.js';
export { SessionStorage } from './session/storage.js';
export { SessionManager } from './session/index.js';
export type { SessionData, SessionSummary } from './session/types.js';
// Types
export type { UserInput } from './types/index.js';
// Permission
export { getPermissionManager } from './permission/index.js';
export type {
PermissionContext,
PermissionDecision,
PermissionCheckResult,
FilePermissionContext,
GitPermissionContext,
WebPermissionContext,
} from './permission/index.js';
// LSP
export { initLSP, shutdownLSP } from './lsp/index.js';
export {
printServerList,
installServer,
installAllServers,
showServerInfo,
} from './lsp/cli.js';
// Skills
export { getSkillRegistry } from './skills/index.js';
// Image utils
export {
extractImageReferences,
loadImages,
loadImage,
formatFileSize,
isImagePath,
IMAGE_EXTENSIONS,
} from './utils/image.js';
export type { ImageInfo, ImageLoadResult } from './utils/image.js';
// Commands
export { getCommandRegistry, createCommandExecutor, createCommandManager } from './commands/index.js';
export type {
Command,
CommandInput,
CommandExecutionResult,
CreateCommandInput,
UpdateCommandInput,
CommandContent,
CommandOperationResult,
} from './commands/index.js';
// Checkpoint
export {
CheckpointManager,
getCheckpointManager,
initCheckpointManager,
resetCheckpointManager,
ShadowGit,
createShadowGit,
hashWorkingDir,
CheckpointSafetyChecker,
createSafetyChecker,
SessionTracker,
createSessionTracker,
CheckpointLock,
LFSPatternLoader,
createLFSPatternLoader,
isCommonLargeFile,
COMMON_LARGE_FILE_EXTENSIONS,
WorkspacePathValidator,
createPathValidator,
CommitMessageGenerator,
createCommitMessageGenerator,
RestoreMode,
DEFAULT_CHECKPOINT_CONFIG,
} from './checkpoint/index.js';
export type {
CheckpointMetadata,
CheckpointConfig,
CheckpointTrigger,
FileChange,
FileChangeType,
DiffInfo,
FileDiff,
RollbackOptions,
RollbackResult,
CheckpointEvent,
CheckpointEventType,
CheckpointEventListener,
RollbackRecord,
UnrevertResult,
SafetyCheckResult,
SessionState,
SessionStats,
PathValidationResult,
} from './checkpoint/index.js';
// Hooks
export {
HookManager,
getHookManager,
initHookManager,
resetHookManager,
loadProjectConfig,
loadHookConfig,
loadPluginList,
createDefaultConfig,
getConfigFilePath,
} from './hooks/index.js';
export type {
HookType,
HookConfig,
HookEvent,
HookEventListener,
ShellCommandConfig,
FileHookConfig,
Hooks,
Plugin,
PluginInput,
ToolExecuteBeforeInput,
ToolExecuteBeforeOutput,
ToolExecuteAfterInput,
ToolExecuteAfterOutput,
SessionStartInput,
SessionEndInput,
MessageBeforeInput,
MessageBeforeOutput,
MessageAfterInput,
FileChangeInput,
FileChangeOutput,
ProjectConfig,
} from './hooks/index.js';
// Agent Registry & Presets
export { agentRegistry, AgentRegistry } from './agent/index.js';
export { loadAgentConfig, saveAgentConfig, getConfigTemplate } from './agent/index.js';
export { presetAgents, isPresetAgent, getPresetAgentNames } from './agent/index.js';
export type {
AgentMode,
AgentInfo,
AgentConfigFile,
AgentModelConfig,
AgentToolConfig,
AgentPermission,
} from './agent/index.js';
// MCP
export {
getMCPManager,
loadMCPConfig,
createMCPToolAdapter,
} from './mcp/index.js';
// Provider
export {
ProviderRegistry,
providerRegistry,
getProviderRegistry,
builtinProviders,
getBuiltinProviders,
getBuiltinProvider,
isBuiltinProvider,
loadProvidersConfig,
saveProvidersConfig,
resolveApiKey,
testOpenAICompatibleConnection,
createOpenAICompatibleFactory,
isValidProviderId,
isValidUrl,
} from './provider/index.js';
export type {
BuiltinProviderType,
ProviderType,
ModelCapabilities,
ModelInfo,
ProviderInfo,
ProviderConfig,
CustomProviderDefinition,
ConnectionTestResult,
ProviderFactory,
RegisteredProvider,
ProvidersConfigFile,
ProviderListItem,
ProviderDetail,
} from './provider/index.js';