free-computer-use 0.1.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.
Files changed (135) hide show
  1. package/.env.example +31 -0
  2. package/CHANGELOG.md +19 -0
  3. package/CONTRIBUTING.md +66 -0
  4. package/LICENSE +21 -0
  5. package/README.md +140 -0
  6. package/SECURITY.md +133 -0
  7. package/artifacts/benchmark-public.json +797 -0
  8. package/assets/readme/hero.svg +53 -0
  9. package/assets/readme/incident-demo.gif +0 -0
  10. package/assets/readme/incident-evidence.json +52 -0
  11. package/dist/actions/compiler.d.ts +5 -0
  12. package/dist/actions/compiler.js +16 -0
  13. package/dist/actions/compiler.js.map +1 -0
  14. package/dist/actions/executor.d.ts +38 -0
  15. package/dist/actions/executor.js +305 -0
  16. package/dist/actions/executor.js.map +1 -0
  17. package/dist/actions/policy.d.ts +4 -0
  18. package/dist/actions/policy.js +18 -0
  19. package/dist/actions/policy.js.map +1 -0
  20. package/dist/actions/schema.d.ts +4149 -0
  21. package/dist/actions/schema.js +59 -0
  22. package/dist/actions/schema.js.map +1 -0
  23. package/dist/adapters/generic.d.ts +14 -0
  24. package/dist/adapters/generic.js +33 -0
  25. package/dist/adapters/generic.js.map +1 -0
  26. package/dist/agent/Agent.d.ts +69 -0
  27. package/dist/agent/Agent.js +375 -0
  28. package/dist/agent/Agent.js.map +1 -0
  29. package/dist/agent/Control.d.ts +23 -0
  30. package/dist/agent/Control.js +51 -0
  31. package/dist/agent/Control.js.map +1 -0
  32. package/dist/agent/TokenBudget.d.ts +52 -0
  33. package/dist/agent/TokenBudget.js +47 -0
  34. package/dist/agent/TokenBudget.js.map +1 -0
  35. package/dist/agent/goalCriteria.d.ts +2 -0
  36. package/dist/agent/goalCriteria.js +13 -0
  37. package/dist/agent/goalCriteria.js.map +1 -0
  38. package/dist/browser/Browser.d.ts +72 -0
  39. package/dist/browser/Browser.js +378 -0
  40. package/dist/browser/Browser.js.map +1 -0
  41. package/dist/browser/DomExtractor.d.ts +6 -0
  42. package/dist/browser/DomExtractor.js +134 -0
  43. package/dist/browser/DomExtractor.js.map +1 -0
  44. package/dist/browser/Interaction.d.ts +43 -0
  45. package/dist/browser/Interaction.js +225 -0
  46. package/dist/browser/Interaction.js.map +1 -0
  47. package/dist/browser/NetworkGuardProxy.d.ts +31 -0
  48. package/dist/browser/NetworkGuardProxy.js +331 -0
  49. package/dist/browser/NetworkGuardProxy.js.map +1 -0
  50. package/dist/browser/Observer.d.ts +12 -0
  51. package/dist/browser/Observer.js +31 -0
  52. package/dist/browser/Observer.js.map +1 -0
  53. package/dist/browser/PageCompressor.d.ts +47 -0
  54. package/dist/browser/PageCompressor.js +62 -0
  55. package/dist/browser/PageCompressor.js.map +1 -0
  56. package/dist/browser/SecurityBoundaryError.d.ts +3 -0
  57. package/dist/browser/SecurityBoundaryError.js +4 -0
  58. package/dist/browser/SecurityBoundaryError.js.map +1 -0
  59. package/dist/browser/SelectorEngine.d.ts +18 -0
  60. package/dist/browser/SelectorEngine.js +72 -0
  61. package/dist/browser/SelectorEngine.js.map +1 -0
  62. package/dist/browser/types.d.ts +38 -0
  63. package/dist/browser/types.js +2 -0
  64. package/dist/browser/types.js.map +1 -0
  65. package/dist/cli/index.d.ts +2 -0
  66. package/dist/cli/index.js +284 -0
  67. package/dist/cli/index.js.map +1 -0
  68. package/dist/config.d.ts +11 -0
  69. package/dist/config.js +77 -0
  70. package/dist/config.js.map +1 -0
  71. package/dist/history/TraceStore.d.ts +29 -0
  72. package/dist/history/TraceStore.js +53 -0
  73. package/dist/history/TraceStore.js.map +1 -0
  74. package/dist/index.d.ts +18 -0
  75. package/dist/index.js +16 -0
  76. package/dist/index.js.map +1 -0
  77. package/dist/llm/ClaudeSubscriptionProvider.d.ts +26 -0
  78. package/dist/llm/ClaudeSubscriptionProvider.js +182 -0
  79. package/dist/llm/ClaudeSubscriptionProvider.js.map +1 -0
  80. package/dist/llm/CodexSubscriptionProvider.d.ts +26 -0
  81. package/dist/llm/CodexSubscriptionProvider.js +168 -0
  82. package/dist/llm/CodexSubscriptionProvider.js.map +1 -0
  83. package/dist/llm/FlashProvider.d.ts +27 -0
  84. package/dist/llm/FlashProvider.js +103 -0
  85. package/dist/llm/FlashProvider.js.map +1 -0
  86. package/dist/llm/LLMProvider.d.ts +37 -0
  87. package/dist/llm/LLMProvider.js +2 -0
  88. package/dist/llm/LLMProvider.js.map +1 -0
  89. package/dist/llm/cliEnvironment.d.ts +5 -0
  90. package/dist/llm/cliEnvironment.js +21 -0
  91. package/dist/llm/cliEnvironment.js.map +1 -0
  92. package/dist/llm/prompts.d.ts +4 -0
  93. package/dist/llm/prompts.js +12 -0
  94. package/dist/llm/prompts.js.map +1 -0
  95. package/dist/llm/structuredOutput.d.ts +3 -0
  96. package/dist/llm/structuredOutput.js +58 -0
  97. package/dist/llm/structuredOutput.js.map +1 -0
  98. package/dist/mcp/index.d.ts +13 -0
  99. package/dist/mcp/index.js +243 -0
  100. package/dist/mcp/index.js.map +1 -0
  101. package/dist/profile/ProfileStore.d.ts +7 -0
  102. package/dist/profile/ProfileStore.js +52 -0
  103. package/dist/profile/ProfileStore.js.map +1 -0
  104. package/dist/profile/VariableResolver.d.ts +15 -0
  105. package/dist/profile/VariableResolver.js +50 -0
  106. package/dist/profile/VariableResolver.js.map +1 -0
  107. package/dist/server/index.d.ts +14 -0
  108. package/dist/server/index.js +239 -0
  109. package/dist/server/index.js.map +1 -0
  110. package/dist/ui/app.js +132 -0
  111. package/dist/ui/index.html +29 -0
  112. package/dist/ui/logo.svg +5 -0
  113. package/dist/ui/results.js +59 -0
  114. package/dist/ui/style.css +33 -0
  115. package/dist/verification/Verifier.d.ts +72 -0
  116. package/dist/verification/Verifier.js +87 -0
  117. package/dist/verification/Verifier.js.map +1 -0
  118. package/dist/workflows/WorkflowEngine.d.ts +23 -0
  119. package/dist/workflows/WorkflowEngine.js +52 -0
  120. package/dist/workflows/WorkflowEngine.js.map +1 -0
  121. package/docs/ADOPTION.md +61 -0
  122. package/docs/ARCHITECTURE.md +65 -0
  123. package/docs/BENCHMARKS.md +64 -0
  124. package/docs/IMPLEMENTATION.md +93 -0
  125. package/docs/LOCAL_DATA.md +98 -0
  126. package/docs/LOCAL_VALIDATION.md +87 -0
  127. package/docs/MCP.md +81 -0
  128. package/docs/PROVIDERS.md +150 -0
  129. package/docs/RELEASE_CHECKLIST.md +37 -0
  130. package/docs/REQUIREMENTS.md +39 -0
  131. package/docs/SUPPORT_MATRIX.md +193 -0
  132. package/docs/THREAT_MODEL.md +108 -0
  133. package/docs/USEFUL_EXAMPLES.md +151 -0
  134. package/docs/brand-mark.svg +12 -0
  135. package/package.json +90 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { TokenBudget } from './agent/TokenBudget.js';
2
+ import { FlashProvider } from './llm/FlashProvider.js';
3
+ import { CodexSubscriptionProvider } from './llm/CodexSubscriptionProvider.js';
4
+ import { ClaudeSubscriptionProvider } from './llm/ClaudeSubscriptionProvider.js';
5
+ export declare function loadEnvironment(): void;
6
+ export declare function ensureDataDirectory(path: string): void;
7
+ export declare function runtimeConfig(): {
8
+ dataDir: string;
9
+ budget: TokenBudget;
10
+ provider: ClaudeSubscriptionProvider | CodexSubscriptionProvider | FlashProvider | undefined;
11
+ };
package/dist/config.js ADDED
@@ -0,0 +1,77 @@
1
+ import { loadEnvFile } from 'node:process';
2
+ import { chmodSync, lstatSync, mkdirSync, realpathSync } from 'node:fs';
3
+ import { resolve } from 'node:path';
4
+ import { homedir, tmpdir } from 'node:os';
5
+ import { z } from 'zod';
6
+ import { TokenBudget } from './agent/TokenBudget.js';
7
+ import { FlashProvider } from './llm/FlashProvider.js';
8
+ import { CodexSubscriptionProvider } from './llm/CodexSubscriptionProvider.js';
9
+ import { ClaudeSubscriptionProvider } from './llm/ClaudeSubscriptionProvider.js';
10
+ export function loadEnvironment() {
11
+ const path = resolve('.env');
12
+ try {
13
+ const info = lstatSync(path);
14
+ if (!info.isFile())
15
+ throw new Error('Local .env must be a regular file');
16
+ if (process.platform !== 'win32' && (info.mode & 0o777) !== (info.mode & 0o600))
17
+ chmodSync(path, info.mode & 0o600);
18
+ loadEnvFile(path);
19
+ }
20
+ catch (error) {
21
+ if (error.code !== 'ENOENT')
22
+ throw error;
23
+ }
24
+ }
25
+ export function ensureDataDirectory(path) {
26
+ const canonical = (value) => { try {
27
+ return realpathSync(value);
28
+ }
29
+ catch {
30
+ return resolve(value);
31
+ } };
32
+ const requested = canonical(path), sharedRoots = [resolve('/'), resolve(homedir()), resolve(tmpdir()), resolve('/tmp'), resolve('/var/tmp'), resolve(process.cwd())].map(canonical);
33
+ if (sharedRoots.includes(requested))
34
+ throw new Error('Choose a dedicated FCU data directory, not a shared system or workspace directory');
35
+ try {
36
+ const info = lstatSync(path);
37
+ if (!info.isDirectory() || info.isSymbolicLink())
38
+ throw new Error('FCU data path must be a real local directory');
39
+ }
40
+ catch (error) {
41
+ if (error.code !== 'ENOENT')
42
+ throw error;
43
+ mkdirSync(path, { recursive: true, mode: 0o700 });
44
+ }
45
+ if (process.platform !== 'win32')
46
+ chmodSync(path, 0o700);
47
+ }
48
+ const positive = z.coerce.number().int().positive();
49
+ const optionalCap = (name) => process.env[name] ? positive.parse(process.env[name]) : null;
50
+ export function runtimeConfig() {
51
+ const dataDir = resolve(process.env.FCU_DATA_DIR ?? '.fcu');
52
+ const providerKind = process.env.LLM_PROVIDER ?? 'openai-compatible';
53
+ if (!['openai-compatible', 'anthropic', 'codex-subscription', 'claude-subscription'].includes(providerKind))
54
+ throw new Error('LLM_PROVIDER must be openai-compatible, anthropic, codex-subscription or claude-subscription');
55
+ const subscription = providerKind === 'codex-subscription' || providerKind === 'claude-subscription';
56
+ const prices = process.env.LLM_INPUT_PRICE && process.env.LLM_OUTPUT_PRICE ? {
57
+ input: z.coerce.number().nonnegative().parse(process.env.LLM_INPUT_PRICE), output: z.coerce.number().nonnegative().parse(process.env.LLM_OUTPUT_PRICE),
58
+ cachedInput: process.env.LLM_CACHED_INPUT_PRICE ? z.coerce.number().nonnegative().parse(process.env.LLM_CACHED_INPUT_PRICE) : undefined,
59
+ } : undefined;
60
+ const budget = new TokenBudget({ maxLLMCalls: optionalCap('FCU_MAX_LLM_CALLS'), maxInputTokens: optionalCap('FCU_MAX_INPUT_TOKENS'), maxOutputTokens: optionalCap('FCU_MAX_OUTPUT_TOKENS') }, subscription ? undefined : prices);
61
+ const model = process.env.LLM_MODEL || (providerKind === 'anthropic' || subscription ? undefined : 'deepseek-flash');
62
+ let provider;
63
+ if (providerKind === 'codex-subscription')
64
+ provider = new CodexSubscriptionProvider({ command: process.env.CODEX_CLI_PATH, model }, budget);
65
+ else if (providerKind === 'claude-subscription')
66
+ provider = new ClaudeSubscriptionProvider({ command: process.env.CLAUDE_CLI_PATH, model }, budget);
67
+ else if (process.env.LLM_API_KEY) {
68
+ const baseURL = process.env.LLM_BASE_URL ?? (providerKind === 'anthropic' ? 'https://api.anthropic.com/v1' : 'https://api.deepseek.com');
69
+ const configuredTokenParam = process.env.LLM_MAX_OUTPUT_TOKENS_PARAM;
70
+ if (configuredTokenParam && configuredTokenParam !== 'max_tokens' && configuredTokenParam !== 'max_completion_tokens')
71
+ throw new Error('LLM_MAX_OUTPUT_TOKENS_PARAM must be max_tokens or max_completion_tokens');
72
+ const maxOutputTokensParam = configuredTokenParam === 'max_tokens' || configuredTokenParam === 'max_completion_tokens' ? configuredTokenParam : new URL(baseURL).hostname === 'api.openai.com' ? 'max_completion_tokens' : undefined;
73
+ provider = new FlashProvider({ key: process.env.LLM_API_KEY, model: model ?? '', protocol: providerKind === 'anthropic' ? 'anthropic' : 'openai-chat', baseURL, format: process.env.LLM_RESPONSE_FORMAT === 'json_schema' ? 'json_schema' : 'json_object', maxOutputTokensParam }, budget);
74
+ }
75
+ return { dataDir, budget, provider };
76
+ }
77
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { DatabaseSync } from 'node:sqlite';
2
+ import type { Plan, Condition } from '../actions/schema.js';
3
+ import type { ActionResult } from '../actions/executor.js';
4
+ import type { LLMCall } from '../llm/LLMProvider.js';
5
+ export interface Trace {
6
+ version: 1;
7
+ id: string;
8
+ goal: string;
9
+ url: string;
10
+ status: 'running' | 'completed' | 'failed' | 'stopped';
11
+ failureKind?: 'security';
12
+ startedAt: number;
13
+ durationMs: number;
14
+ plans: Plan[];
15
+ actions: ActionResult[];
16
+ completion: Condition[];
17
+ calls: LLMCall[];
18
+ metrics: Record<string, unknown>;
19
+ error?: string;
20
+ }
21
+ export declare class TraceStore {
22
+ readonly path: string;
23
+ readonly db: DatabaseSync;
24
+ constructor(path: string);
25
+ save(trace: Trace): void;
26
+ get(id: string): Trace | undefined;
27
+ history(limit?: number): Record<string, import("node:sqlite").SQLOutputValue>[];
28
+ close(): void;
29
+ }
@@ -0,0 +1,53 @@
1
+ import { DatabaseSync } from 'node:sqlite';
2
+ import { mkdirSync, chmodSync, closeSync, lstatSync, openSync } from 'node:fs';
3
+ import { dirname } from 'node:path';
4
+ export class TraceStore {
5
+ path;
6
+ db;
7
+ constructor(path) {
8
+ this.path = path;
9
+ if (path !== ':memory:') {
10
+ const directory = dirname(path);
11
+ mkdirSync(directory, { recursive: true, mode: 0o700 });
12
+ const directoryInfo = lstatSync(directory);
13
+ if (!directoryInfo.isDirectory() || directoryInfo.isSymbolicLink())
14
+ throw new Error('Trace database directory must be a real local directory');
15
+ if (process.platform !== 'win32' && (directoryInfo.mode & 0o077) !== 0)
16
+ throw new Error('Trace database directory must be private (mode 0700); choose a dedicated data directory');
17
+ try {
18
+ const info = lstatSync(path);
19
+ if (!info.isFile() || info.isSymbolicLink())
20
+ throw new Error('Trace database must be a regular local file');
21
+ chmodSync(path, 0o600);
22
+ }
23
+ catch (error) {
24
+ if (error.code !== 'ENOENT')
25
+ throw error;
26
+ let descriptor;
27
+ try {
28
+ descriptor = openSync(path, 'wx', 0o600);
29
+ }
30
+ catch (error) {
31
+ if (error.code !== 'EEXIST')
32
+ throw error;
33
+ const info = lstatSync(path);
34
+ if (!info.isFile() || info.isSymbolicLink())
35
+ throw new Error('Trace database must be a regular local file');
36
+ chmodSync(path, 0o600);
37
+ descriptor = -1;
38
+ }
39
+ if (descriptor !== -1)
40
+ closeSync(descriptor);
41
+ }
42
+ }
43
+ this.db = new DatabaseSync(path);
44
+ this.db.exec('PRAGMA journal_mode=DELETE; PRAGMA busy_timeout=3000; CREATE TABLE IF NOT EXISTS runs(id TEXT PRIMARY KEY, started INTEGER, status TEXT, goal TEXT, url TEXT, trace TEXT); CREATE TABLE IF NOT EXISTS workflows(id TEXT PRIMARY KEY, domain TEXT, intent TEXT, structure TEXT, workflow TEXT, hits INTEGER DEFAULT 0);');
45
+ if (path !== ':memory:')
46
+ chmodSync(path, 0o600);
47
+ }
48
+ save(trace) { this.db.prepare('INSERT OR REPLACE INTO runs VALUES(?,?,?,?,?,?)').run(trace.id, trace.startedAt, trace.status, trace.goal, trace.url, JSON.stringify(trace)); }
49
+ get(id) { const row = this.db.prepare('SELECT trace FROM runs WHERE id=?').get(id); return row ? JSON.parse(row.trace) : undefined; }
50
+ history(limit = 30) { return this.db.prepare('SELECT id,started,status,goal,url FROM runs ORDER BY started DESC LIMIT ?').all(limit); }
51
+ close() { this.db.close(); }
52
+ }
53
+ //# sourceMappingURL=TraceStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TraceStore.js","sourceRoot":"","sources":["../../src/history/TraceStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export { Agent } from './agent/Agent.js';
2
+ export { Browser } from './browser/Browser.js';
3
+ export { Observer } from './browser/Observer.js';
4
+ export { PageCompressor, diffPages } from './browser/PageCompressor.js';
5
+ export { SelectorEngine } from './browser/SelectorEngine.js';
6
+ export { ActionSchema, PlanSchema, RepairSchema, ConditionSchema } from './actions/schema.js';
7
+ export { Executor } from './actions/executor.js';
8
+ export { Verifier } from './verification/Verifier.js';
9
+ export { FlashProvider } from './llm/FlashProvider.js';
10
+ export { TokenBudget } from './agent/TokenBudget.js';
11
+ export { Control } from './agent/Control.js';
12
+ export { VariableResolver } from './profile/VariableResolver.js';
13
+ export { ProfileStore } from './profile/ProfileStore.js';
14
+ export { TraceStore } from './history/TraceStore.js';
15
+ export { WorkflowEngine } from './workflows/WorkflowEngine.js';
16
+ export type { AgentOptions, AgentEvent } from './agent/Agent.js';
17
+ export type { Action, Condition, Plan, Repair, Target } from './actions/schema.js';
18
+ export type { LLMProvider, PlanningContext, RepairContext } from './llm/LLMProvider.js';
package/dist/index.js ADDED
@@ -0,0 +1,16 @@
1
+ export { Agent } from './agent/Agent.js';
2
+ export { Browser } from './browser/Browser.js';
3
+ export { Observer } from './browser/Observer.js';
4
+ export { PageCompressor, diffPages } from './browser/PageCompressor.js';
5
+ export { SelectorEngine } from './browser/SelectorEngine.js';
6
+ export { ActionSchema, PlanSchema, RepairSchema, ConditionSchema } from './actions/schema.js';
7
+ export { Executor } from './actions/executor.js';
8
+ export { Verifier } from './verification/Verifier.js';
9
+ export { FlashProvider } from './llm/FlashProvider.js';
10
+ export { TokenBudget } from './agent/TokenBudget.js';
11
+ export { Control } from './agent/Control.js';
12
+ export { VariableResolver } from './profile/VariableResolver.js';
13
+ export { ProfileStore } from './profile/ProfileStore.js';
14
+ export { TraceStore } from './history/TraceStore.js';
15
+ export { WorkflowEngine } from './workflows/WorkflowEngine.js';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAC,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAC,UAAU,EAAC,YAAY,EAAC,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { type Plan, type Repair } from '../actions/schema.js';
2
+ import type { LLMProvider, PlanningContext, RepairContext, LLMCall } from './LLMProvider.js';
3
+ import { TokenBudget } from '../agent/TokenBudget.js';
4
+ export interface ClaudeSubscriptionConfig {
5
+ command?: string;
6
+ model?: string;
7
+ timeoutMs?: number;
8
+ }
9
+ export declare class ClaudeSubscriptionProvider implements LLMProvider {
10
+ readonly config: ClaudeSubscriptionConfig;
11
+ readonly budget: TokenBudget;
12
+ readonly name: string;
13
+ readonly calls: LLMCall[];
14
+ private controllers;
15
+ private cliVersion?;
16
+ constructor(config: ClaudeSubscriptionConfig, budget: TokenBudget);
17
+ cancel(): void;
18
+ checkLogin(): Promise<string>;
19
+ plan(context: PlanningContext): Promise<Plan>;
20
+ repair(context: RepairContext): Promise<Repair>;
21
+ classify(goal: string): Promise<{
22
+ intent: string;
23
+ }>;
24
+ private request;
25
+ private run;
26
+ }
@@ -0,0 +1,182 @@
1
+ import { execFile as execFileCallback, spawn } from 'node:child_process';
2
+ import { mkdtemp, rm } from 'node:fs/promises';
3
+ import { promisify } from 'node:util';
4
+ import { join } from 'node:path';
5
+ import { tmpdir } from 'node:os';
6
+ import { z } from 'zod';
7
+ import { PlanSchema, RepairSchema } from '../actions/schema.js';
8
+ import { SYSTEM_POLICY, PLAN_FORMAT, REPAIR_FORMAT, untrusted } from './prompts.js';
9
+ import { cliVersionAtLeast, parseCliVersion, safeCliEnvironment } from './cliEnvironment.js';
10
+ const execFile = promisify(execFileCallback);
11
+ function claudeEnvironment() {
12
+ const env = safeCliEnvironment();
13
+ for (const key of Object.keys(env))
14
+ if (/^(?:ANTHROPIC_|CLAUDE_CODE_USE_|AWS_|GOOGLE_|VERTEXAI_|CLOUD_ML_|AZURE_)/i.test(key))
15
+ delete env[key];
16
+ for (const key of ['OPENAI_BASE_URL', 'OPENAI_ORG_ID', 'OPENAI_PROJECT_ID', 'CODEX_MODEL_PROVIDER'])
17
+ delete env[key];
18
+ env.CLAUDE_CODE_SKIP_PROMPT_HISTORY = '1';
19
+ return env;
20
+ }
21
+ export class ClaudeSubscriptionProvider {
22
+ config;
23
+ budget;
24
+ name;
25
+ calls = [];
26
+ controllers = new Set();
27
+ cliVersion;
28
+ constructor(config, budget) {
29
+ this.config = config;
30
+ this.budget = budget;
31
+ this.name = config.model ?? 'Claude subscription';
32
+ }
33
+ cancel() { for (const controller of this.controllers)
34
+ controller.abort(); }
35
+ async checkLogin() {
36
+ let version = this.cliVersion;
37
+ if (!version) {
38
+ try {
39
+ const { stdout } = await execFile(this.config.command ?? 'claude', ['--version'], { encoding: 'utf8', timeout: 15000, cwd: tmpdir(), env: claudeEnvironment(), maxBuffer: 4096 });
40
+ version = parseCliVersion(String(stdout), 'Claude Code');
41
+ }
42
+ catch {
43
+ throw new Error('Claude Code CLI could not report its version. Install or update to 2.1.248 or newer, then verify `claude --version`.');
44
+ }
45
+ if (!cliVersionAtLeast(version, '2.1.248'))
46
+ throw new Error(`Claude Code ${version} is too old. Install version 2.1.248 or newer.`);
47
+ this.cliVersion = version;
48
+ }
49
+ try {
50
+ const { stdout } = await execFile(this.config.command ?? 'claude', ['auth', 'status'], { encoding: 'utf8', timeout: 15000, cwd: tmpdir(), env: claudeEnvironment(), maxBuffer: 4096 });
51
+ const auth = JSON.parse(String(stdout));
52
+ if (!auth.loggedIn || !['claude.ai', 'oauth_token'].includes(auth.authMethod ?? '') || auth.apiProvider !== 'firstParty' || auth.apiKeySource && auth.apiKeySource !== '/login managed key')
53
+ throw new Error();
54
+ }
55
+ catch {
56
+ throw new Error('Claude Code is not signed in with a Claude subscription. Run `claude auth login` without `--console`.');
57
+ }
58
+ return version;
59
+ }
60
+ plan(context) { return this.request('PLAN', context, PlanSchema, PLAN_FORMAT); }
61
+ repair(context) { return this.request('REPAIR', context, RepairSchema, REPAIR_FORMAT); }
62
+ classify(goal) { return this.request('CLASSIFY', { goal }, z.object({ intent: z.string().max(80) }).strict(), 'Return {"intent":short lowercase intent}.'); }
63
+ async request(operation, context, schema, format, correcting = false) {
64
+ const { page, ...task } = context;
65
+ const suffix = correcting ? '\nYour previous JSON failed strict schema validation. Follow the requested schema exactly and use only listed keys.' : '';
66
+ const systemPrompt = `${SYSTEM_POLICY}\n${format}${suffix}\nReturn only the requested JSON object.`;
67
+ const build = (pageText) => `${format}${suffix}\nReturn only the requested JSON object.\n${JSON.stringify({ operation, ...task })}\n${untrusted(pageText)}`;
68
+ let pageText = page ?? '';
69
+ const available = this.budget.limits.maxInputTokens === null ? Infinity : this.budget.limits.maxInputTokens - this.budget.input - this.budget.pendingInput;
70
+ while (Buffer.byteLength(systemPrompt) + Buffer.byteLength(build(pageText)) > available && pageText.length)
71
+ pageText = pageText.slice(0, Math.max(0, pageText.length - Math.max(128, Buffer.byteLength(systemPrompt) + Buffer.byteLength(build(pageText)) - available)));
72
+ const prompt = build(pageText), inputBound = Buffer.byteLength(systemPrompt) + Buffer.byteLength(prompt);
73
+ const reservation = this.budget.reserve(inputBound, operation === 'CLASSIFY' ? 100 : 1800);
74
+ const controller = new AbortController();
75
+ this.controllers.add(controller);
76
+ const started = Date.now();
77
+ let usage, validationFailure = false;
78
+ try {
79
+ await this.checkLogin();
80
+ const output = await this.run(prompt, systemPrompt, controller.signal);
81
+ const outputBound = Math.ceil(Buffer.byteLength(output) / 4);
82
+ usage = { input: inputBound, output: outputBound, estimated: true };
83
+ this.budget.record(usage, reservation.id);
84
+ if (outputBound > reservation.maxOutput)
85
+ throw new Error('Claude response exceeded the estimated output-token budget');
86
+ let value;
87
+ try {
88
+ value = JSON.parse(output);
89
+ }
90
+ catch {
91
+ throw new Error('Claude returned invalid JSON');
92
+ }
93
+ const checked = schema.safeParse(value);
94
+ if (!checked.success) {
95
+ validationFailure = true;
96
+ throw new Error('Claude response failed strict action schema validation: ' + checked.error.issues.map(i => i.path.join('.') + ': ' + i.code).join('; '));
97
+ }
98
+ this.calls.push({ operation, model: this.name, durationMs: Date.now() - started, usage, success: true });
99
+ return checked.data;
100
+ }
101
+ catch (error) {
102
+ const safeError = error instanceof Error ? error.message : 'Claude subscription request failed';
103
+ if (!usage) {
104
+ usage = { input: inputBound, output: 0, estimated: true };
105
+ this.budget.record(usage, reservation.id);
106
+ }
107
+ this.calls.push({ operation, model: this.name, durationMs: Date.now() - started, usage, success: false, error: safeError });
108
+ if (validationFailure && !correcting)
109
+ return this.request(operation, context, schema, format + suffix, true);
110
+ throw error;
111
+ }
112
+ finally {
113
+ this.controllers.delete(controller);
114
+ }
115
+ }
116
+ async run(prompt, systemPrompt, signal) {
117
+ const directory = await mkdtemp(join(tmpdir(), 'fcu-claude-'));
118
+ try {
119
+ const args = ['-p', '--input-format', 'text', '--output-format', 'json', '--restricted', '--bare', '--tools', '', '--strict-mcp-config', '--mcp-config', '{"mcpServers":{}}',
120
+ '--disallowedTools', 'mcp__*', '--no-session-persistence', '--max-turns', '1', '--permission-mode', 'dontAsk', '--no-chrome', '--disable-slash-commands',
121
+ '--append-system-prompt', systemPrompt];
122
+ if (this.config.model)
123
+ args.push('--model', this.config.model);
124
+ return await new Promise((resolve, reject) => {
125
+ if (signal.aborted) {
126
+ reject(new Error('Claude request cancelled'));
127
+ return;
128
+ }
129
+ const child = spawn(this.config.command ?? 'claude', args, { cwd: directory, env: claudeEnvironment(), stdio: ['pipe', 'pipe', 'ignore'] });
130
+ let output = '', failure, timedOut = false;
131
+ const timer = setTimeout(() => { timedOut = true; child.kill('SIGTERM'); }, this.config.timeoutMs ?? 60000);
132
+ const stop = () => child.kill('SIGTERM');
133
+ signal.addEventListener('abort', stop, { once: true });
134
+ if (signal.aborted)
135
+ stop();
136
+ child.stdout.setEncoding('utf8').on('data', (chunk) => { output += chunk; if (Buffer.byteLength(output) > 1_000_000) {
137
+ failure = new Error('Claude response exceeded the output-size limit');
138
+ child.kill('SIGTERM');
139
+ } });
140
+ child.on('error', () => { failure = new Error('Claude Code CLI could not start; install Claude Code and run `claude auth login`.'); });
141
+ child.on('close', code => {
142
+ clearTimeout(timer);
143
+ signal.removeEventListener('abort', stop);
144
+ if (timedOut)
145
+ failure = new Error('Claude Code CLI timed out');
146
+ else if (signal.aborted)
147
+ failure = new Error('Claude request cancelled');
148
+ else if (code !== 0 && !failure)
149
+ failure = new Error('Claude Code CLI failed; check `claude auth status` and your subscription limits.');
150
+ if (failure) {
151
+ reject(failure);
152
+ return;
153
+ }
154
+ let result;
155
+ try {
156
+ result = JSON.parse(output.trim());
157
+ }
158
+ catch {
159
+ reject(new Error('Claude Code returned invalid JSON output'));
160
+ return;
161
+ }
162
+ if (result.is_error) {
163
+ reject(new Error('Claude Code returned an error'));
164
+ return;
165
+ }
166
+ const text = typeof result.result === 'string' ? result.result : result.structured_output !== undefined ? JSON.stringify(result.structured_output) : undefined;
167
+ if (!text) {
168
+ reject(new Error('Claude Code returned no response'));
169
+ return;
170
+ }
171
+ resolve(text);
172
+ });
173
+ child.stdin.on('error', () => { });
174
+ child.stdin.end(prompt);
175
+ });
176
+ }
177
+ finally {
178
+ await rm(directory, { recursive: true, force: true });
179
+ }
180
+ }
181
+ }
182
+ //# sourceMappingURL=ClaudeSubscriptionProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClaudeSubscriptionProvider.js","sourceRoot":"","sources":["../../src/llm/ClaudeSubscriptionProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { type Plan, type Repair } from '../actions/schema.js';
2
+ import type { LLMProvider, PlanningContext, RepairContext, LLMCall } from './LLMProvider.js';
3
+ import { TokenBudget } from '../agent/TokenBudget.js';
4
+ export interface CodexSubscriptionConfig {
5
+ command?: string;
6
+ model?: string;
7
+ timeoutMs?: number;
8
+ }
9
+ export declare class CodexSubscriptionProvider implements LLMProvider {
10
+ readonly config: CodexSubscriptionConfig;
11
+ readonly budget: TokenBudget;
12
+ readonly name: string;
13
+ readonly calls: LLMCall[];
14
+ private controllers;
15
+ private cliVersion?;
16
+ constructor(config: CodexSubscriptionConfig, budget: TokenBudget);
17
+ cancel(): void;
18
+ checkLogin(): Promise<string>;
19
+ plan(context: PlanningContext): Promise<Plan>;
20
+ repair(context: RepairContext): Promise<Repair>;
21
+ classify(goal: string): Promise<{
22
+ intent: string;
23
+ }>;
24
+ private request;
25
+ private run;
26
+ }