diff --git a/package.json b/package.json index dd93b110..39a420b0 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "main": "dist/index.js", "scripts": { "dev": "tsx src/index.ts", - "agent:cli": "tsx src/agent/cli.ts", + "agent:cli": "tsx --env-file=.env src/agent/cli.ts", "agent:interactive": "tsx src/agent/interactive-cli.ts", "agent:profile": "tsx src/agent/profile-cli.ts", "dev:gateway": "tsx --watch src/gateway/main.ts", diff --git a/src/agent/runner.ts b/src/agent/runner.ts index 8c0d7413..61be8343 100644 --- a/src/agent/runner.ts +++ b/src/agent/runner.ts @@ -90,8 +90,9 @@ export class Agent { this.output = createAgentOutput({ stdout, stderr }); this.debug = options.debug ?? false; - // Resolve provider for API key and base URL - const resolvedProvider = options.provider ?? "kimi-coding"; + // Resolve provider and model from options > env vars > defaults + const resolvedProvider = options.provider ?? process.env.AGENT_PROVIDER ?? "kimi-coding"; + const resolvedModel = options.model ?? process.env.AGENT_MODEL; const apiKey = resolveApiKey(resolvedProvider, options.apiKey); this.agent = new PiAgentCore( @@ -142,11 +143,9 @@ export class Agent { return tempSession.getMeta(); })(); - let model = options.provider && options.model ? resolveModel(options) : resolveModel({ - ...options, - provider: storedMeta?.provider, - model: storedMeta?.model, - }); + const effectiveProvider = resolvedModel ? resolvedProvider : (options.provider ?? storedMeta?.provider); + const effectiveModel = resolvedModel ?? options.model ?? storedMeta?.model; + let model = resolveModel({ ...options, provider: effectiveProvider, model: effectiveModel }); // Override base URL if provided via options or environment variable const baseUrl = resolveBaseUrl(model.provider, options.baseUrl);