flowviant 0.24.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,7 +8,7 @@ import { spawn } from 'node:child_process';
8
8
  import { mkdtempSync, writeFileSync } from 'node:fs';
9
9
  import { tmpdir } from 'node:os';
10
10
  import { join } from 'node:path';
11
- import { SAFE } from './config.mjs';
11
+ import { SAFE, MODEL } from './config.mjs';
12
12
 
13
13
  // Multi-task loop (TOKEN / TOKENS modes): drain the whole queue in one session.
14
14
  export const SYSTEM_MULTI = `You are a Flowviant build agent running FULLY AUTONOMOUSLY via the "flowviant" MCP
@@ -291,6 +291,9 @@ export function runTurn({ prompt, resume, system, cwd, mcpConfig, label, onSpawn
291
291
  const args = [];
292
292
  if (resume) args.push('--continue');
293
293
  args.push('-p', prompt, '--mcp-config', mcpConfig, '--append-system-prompt', system);
294
+ // Pin the model — never inherit the user's global default (which may be a
295
+ // 1M/long-context tier their subscription can't bill autonomous work on).
296
+ args.push('--model', MODEL);
294
297
  if (streamJson) args.push('--output-format', 'stream-json', '--verbose');
295
298
  args.push(...PERM);
296
299
  // Force the user's Claude Code subscription — never the API. A key exported in
@@ -4,7 +4,15 @@ import { readFileSync } from 'node:fs';
4
4
  import { join } from 'node:path';
5
5
  import { homedir } from 'node:os';
6
6
 
7
- export const VERSION = '0.24.0';
7
+ export const VERSION = '0.25.0';
8
+
9
+ // The model EVERY daemon Claude turn runs on — pinned so autonomous work never
10
+ // inherits your interactive `~/.claude/settings.json` default. That matters: a
11
+ // default of `opus[1m]` puts big prompts (wiki-gen over a whole repo, >200K
12
+ // tokens) onto the 1M long-context premium tier, which a Max plan does NOT cover
13
+ // — the turn dies with "usage credits required for this model". Standard `opus`
14
+ // is fully covered. Override with FLOWVIANT_MODEL (e.g. `sonnet` for cheaper/faster).
15
+ export const MODEL = process.env.FLOWVIANT_MODEL || 'opus';
8
16
 
9
17
  // Credential stored by `flowviant login` (device auth) — the no-token,
10
18
  // no-env-var path. An explicit --fleet flag or FLOWVIANT_FLEET env still wins.
package/bin/lib/live.mjs CHANGED
@@ -22,6 +22,7 @@ import { query } from '@anthropic-ai/claude-agent-sdk';
22
22
  import {
23
23
  MCP_URL,
24
24
  SAFE,
25
+ MODEL,
25
26
  POLL_SECONDS,
26
27
  IDLE_SECONDS,
27
28
  PARK_TIMEOUT_SECONDS,
@@ -419,6 +420,9 @@ export async function runLiveTask({ mcpUrl, token, cwd, baseRef, isAlive, resume
419
420
  options: {
420
421
  cwd,
421
422
  env,
423
+ // Pin the model — never inherit the user's global default (which may be a
424
+ // 1M/long-context tier their subscription can't bill autonomous work on).
425
+ model: MODEL,
422
426
  permissionMode: SAFE ? 'default' : 'bypassPermissions',
423
427
  ...(SAFE ? { allowedTools: SAFE_TOOLS } : {}),
424
428
  systemPrompt: { type: 'preset', preset: 'claude_code', append: SYSTEM_LIVE },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flowviant",
3
- "version": "0.24.0",
3
+ "version": "0.25.0",
4
4
  "description": "Run your own Claude Code as headless build agents for Flowviant — on your own credentials. Claims dispatched work, opens PRs, captures review evidence, and routes questions back to you.",
5
5
  "type": "module",
6
6
  "bin": {