/**
 * Agent runtime adapter interface and factory.
 */
import { ClaudeCodeRuntime } from './claude-code-runtime/index.js';
import { CodexRuntime } from './codex-runtime.js';
import { HermesRuntime } from './hermes-runtime.js';
import { LangChainRuntime } from './langchain-runtime.js';
import { OhMyPiRuntime } from './oh-my-pi-runtime.js';
import { OpenAgentSdkRuntime } from './open-agent-sdk-runtime.js';
export { ClaudeCodeRuntime } from './claude-code-runtime/index.js';
export { CodexRuntime } from './codex-runtime.js';
export { HermesRuntime } from './hermes-runtime.js';
export { LangChainRuntime } from './langchain-runtime.js';
export { OhMyPiRuntime } from './oh-my-pi-runtime.js';
export { OpenAgentSdkRuntime } from './open-agent-sdk-runtime.js';
export function createAgentRuntime(configOrProvider = {}, model) {
    const config = typeof configOrProvider === 'string'
        ? { provider: configOrProvider, model }
        : configOrProvider;
    switch (config.kind ?? 'open-agent-sdk') {
        case 'open-agent-sdk':
            return new OpenAgentSdkRuntime(config);
        case 'claude-code':
            return new ClaudeCodeRuntime(config);
        case 'codex':
            return new CodexRuntime(config);
        case 'langchain':
            return new LangChainRuntime(config);
        case 'hermes':
            return new HermesRuntime(config);
        case 'oh-my-pi':
            return new OhMyPiRuntime(config);
    }
}
//# sourceMappingURL=agent-runtime.js.map