6ec6fe2f9f
实现可扩展的 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 配置 - 预设模型列表 + 自定义模型输入 - 连接测试验证
195 lines
4.3 KiB
TypeScript
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';
|