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":"Agent.js","sourceRoot":"","sources":["../../src/agent/Agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { EventEmitter } from 'node:events';
2
+ import { type Plan } from '../actions/schema.js';
3
+ export declare class Control extends EventEmitter {
4
+ paused: boolean;
5
+ stopped: boolean;
6
+ revision: number;
7
+ pending?: {
8
+ reason: string;
9
+ action: unknown;
10
+ };
11
+ replacement?: Plan;
12
+ private decide?;
13
+ private approvalTail;
14
+ pause(): void;
15
+ resume(): void;
16
+ stop(): void;
17
+ approve(): void;
18
+ reject(): void;
19
+ edit(value: unknown): void;
20
+ reset(): void;
21
+ checkpoint(): Promise<void>;
22
+ confirm(reason: string, action: unknown): Promise<void>;
23
+ }
@@ -0,0 +1,51 @@
1
+ import { EventEmitter } from 'node:events';
2
+ import { PlanSchema } from '../actions/schema.js';
3
+ export class Control extends EventEmitter {
4
+ paused = false;
5
+ stopped = false;
6
+ revision = 0;
7
+ pending;
8
+ replacement;
9
+ decide;
10
+ approvalTail = Promise.resolve();
11
+ pause() { this.paused = true; this.emit('change'); }
12
+ resume() { this.paused = false; this.revision++; this.emit('change'); }
13
+ stop() { this.stopped = true; this.paused = false; this.decide?.(false); this.emit('change'); }
14
+ approve() { if (!this.decide)
15
+ throw new Error('No action is awaiting approval'); this.decide(true); }
16
+ reject() { if (!this.decide)
17
+ throw new Error('No action is awaiting approval'); this.decide(false); }
18
+ edit(value) { if (!this.paused)
19
+ throw new Error('Pause before editing the plan'); this.replacement = PlanSchema.parse(value); }
20
+ reset() { if (this.pending || this.decide)
21
+ throw new Error('Cannot reset control while approval is pending'); this.paused = false; this.stopped = false; this.replacement = undefined; this.revision++; this.emit('change'); }
22
+ async checkpoint() {
23
+ while (this.paused && !this.stopped)
24
+ await new Promise(resolve => this.once('change', resolve));
25
+ if (this.stopped)
26
+ throw new Error('Task stopped by human');
27
+ }
28
+ async confirm(reason, action) {
29
+ // Frames/popups can request permissions concurrently. Never overwrite the
30
+ // decision callback for an approval already visible to the human.
31
+ const predecessor = this.approvalTail;
32
+ let release;
33
+ this.approvalTail = new Promise(resolve => { release = resolve; });
34
+ await predecessor;
35
+ try {
36
+ if (this.stopped)
37
+ throw new Error('Task stopped by human');
38
+ this.pending = { reason, action };
39
+ const approved = await new Promise(resolve => { this.decide = resolve; this.emit('approval', this.pending); });
40
+ this.pending = undefined;
41
+ this.decide = undefined;
42
+ this.emit('change');
43
+ if (!approved)
44
+ throw new Error('Sensitive action rejected by human');
45
+ }
46
+ finally {
47
+ release();
48
+ }
49
+ }
50
+ }
51
+ //# sourceMappingURL=Control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Control.js","sourceRoot":"","sources":["../../src/agent/Control.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ export interface Usage {
2
+ input: number;
3
+ output: number;
4
+ cacheHit?: number;
5
+ cacheMiss?: number;
6
+ estimated?: boolean;
7
+ }
8
+ export interface BudgetLimits {
9
+ maxLLMCalls: number | null;
10
+ maxInputTokens: number | null;
11
+ maxOutputTokens: number | null;
12
+ }
13
+ export interface Reservation {
14
+ id: number;
15
+ maxOutput: number;
16
+ inputBound: number;
17
+ }
18
+ export declare class TokenBudget {
19
+ readonly limits: BudgetLimits;
20
+ readonly prices?: {
21
+ input: number;
22
+ output: number;
23
+ cachedInput?: number;
24
+ } | undefined;
25
+ calls: number;
26
+ input: number;
27
+ output: number;
28
+ cost: number | null;
29
+ private reservations;
30
+ constructor(limits?: BudgetLimits, prices?: {
31
+ input: number;
32
+ output: number;
33
+ cachedInput?: number;
34
+ } | undefined);
35
+ get tight(): boolean;
36
+ get pendingInput(): number;
37
+ get pendingOutput(): number;
38
+ reserve(inputBound: number, requestedOutput?: number): {
39
+ id: number;
40
+ maxOutput: number;
41
+ inputBound: number;
42
+ };
43
+ record(usage: Usage, reservationId?: number): void;
44
+ snapshot(actions?: number): {
45
+ llmCalls: number;
46
+ inputTokens: number;
47
+ outputTokens: number;
48
+ estimatedCostUSD: number | null;
49
+ actionsPerLLMCall: number | null;
50
+ tokensPerAction: number | null;
51
+ };
52
+ }
@@ -0,0 +1,47 @@
1
+ export class TokenBudget {
2
+ limits;
3
+ prices;
4
+ calls = 0;
5
+ input = 0;
6
+ output = 0;
7
+ cost;
8
+ reservations = new Map();
9
+ constructor(limits = { maxLLMCalls: null, maxInputTokens: null, maxOutputTokens: null }, prices) {
10
+ this.limits = limits;
11
+ this.prices = prices;
12
+ this.cost = prices ? 0 : null;
13
+ }
14
+ get tight() { return (this.limits.maxLLMCalls !== null && this.calls >= this.limits.maxLLMCalls * .7) || (this.limits.maxInputTokens !== null && this.input + this.pendingInput >= this.limits.maxInputTokens * .7) || (this.limits.maxOutputTokens !== null && this.output + this.pendingOutput >= this.limits.maxOutputTokens * .7); }
15
+ get pendingInput() { return [...this.reservations.values()].reduce((n, r) => n + r.inputBound, 0); }
16
+ get pendingOutput() { return [...this.reservations.values()].reduce((n, r) => n + r.maxOutput, 0); }
17
+ reserve(inputBound, requestedOutput = 1600) {
18
+ if (!Number.isSafeInteger(inputBound) || inputBound < 0 || !Number.isSafeInteger(requestedOutput) || requestedOutput < 100)
19
+ throw new Error('Invalid token reservation');
20
+ const maxOutput = this.limits.maxOutputTokens === null ? requestedOutput : Math.min(requestedOutput, this.limits.maxOutputTokens - this.output - this.pendingOutput);
21
+ if (this.limits.maxLLMCalls !== null && this.calls >= this.limits.maxLLMCalls)
22
+ throw new Error('LLM call budget exhausted');
23
+ if (this.limits.maxInputTokens !== null && this.input + this.pendingInput + inputBound > this.limits.maxInputTokens)
24
+ throw new Error('LLM input budget cannot admit this request; narrow context or raise the explicit budget');
25
+ if (maxOutput < 100)
26
+ throw new Error('LLM output budget exhausted');
27
+ this.calls++;
28
+ const reservation = { id: this.calls, maxOutput, inputBound };
29
+ this.reservations.set(reservation.id, reservation);
30
+ return reservation;
31
+ }
32
+ record(usage, reservationId) {
33
+ if (!Number.isSafeInteger(usage.input) || usage.input < 0 || !Number.isSafeInteger(usage.output) || usage.output < 0 || usage.cacheHit !== undefined && (usage.cacheHit < 0 || usage.cacheHit > usage.input))
34
+ throw new Error('Invalid provider token usage');
35
+ const id = reservationId ?? this.reservations.keys().next().value;
36
+ if (id !== undefined)
37
+ this.reservations.delete(id);
38
+ this.input += usage.input;
39
+ this.output += usage.output;
40
+ if (this.prices) {
41
+ const cached = usage.cacheHit ?? 0;
42
+ this.cost = (this.cost ?? 0) + ((usage.input - cached) * this.prices.input + cached * (this.prices.cachedInput ?? this.prices.input) + usage.output * this.prices.output) / 1e6;
43
+ }
44
+ }
45
+ snapshot(actions = 0) { return { llmCalls: this.calls, inputTokens: this.input, outputTokens: this.output, estimatedCostUSD: this.cost, actionsPerLLMCall: this.calls ? actions / this.calls : null, tokensPerAction: actions ? (this.input + this.output) / actions : null }; }
46
+ }
47
+ //# sourceMappingURL=TokenBudget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenBudget.js","sourceRoot":"","sources":["../../src/agent/TokenBudget.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { Condition } from '../actions/schema.js';
2
+ export declare function goalCriteria(goal: string): Condition[];
@@ -0,0 +1,13 @@
1
+ export function goalCriteria(goal) {
2
+ const criteria = [];
3
+ if (/\b(extract|list|read|tell me|give me|find the cheapest|find the relevant information)\b/i.test(goal)) {
4
+ criteria.push({ type: 'extraction_created' });
5
+ const count = goal.match(/\b(?:first|top)\s+(\d+|one|two|three|four|five|six|seven|eight|nine|ten)\b/i)?.[1]?.toLowerCase();
6
+ const words = { one: 1, two: 2, three: 3, four: 4, five: 5, six: 6, seven: 7, eight: 8, nine: 9, ten: 10 };
7
+ const amount = count ? (words[count] ?? Number(count)) : 0;
8
+ if (amount > 0 && amount <= 1000)
9
+ criteria.push({ type: 'extraction_count', min: amount, max: amount });
10
+ }
11
+ return criteria;
12
+ }
13
+ //# sourceMappingURL=goalCriteria.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goalCriteria.js","sourceRoot":"","sources":["../../src/agent/goalCriteria.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,YAAY,CAAC,IAAW;IACtC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAG,0FAA0F,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC;QACxG,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,oBAAoB,EAAC,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAC,IAAI,CAAC,KAAK,CAAC,6EAA6E,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QAC1H,MAAM,KAAK,GAAuB,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC;QAC1G,MAAM,MAAM,GAAC,KAAK,CAAA,CAAC,CAAA,CAAC,KAAK,CAAC,KAAK,CAAC,IAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC;QACnD,IAAG,MAAM,GAAC,CAAC,IAAE,MAAM,IAAE,IAAI;YAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,kBAAkB,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,MAAM,EAAC,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,72 @@
1
+ import { type BrowserContext, type Page } from 'playwright';
2
+ import type { SemanticTarget } from '../actions/schema.js';
3
+ import { Interaction } from './Interaction.js';
4
+ export interface BrowserOptions {
5
+ headless?: boolean;
6
+ profileDir?: string;
7
+ timeoutMs?: number;
8
+ allowedOrigins?: string[];
9
+ blockedOrigins?: string[];
10
+ allowExternal?: boolean;
11
+ beforeNavigate?: (url: string) => Promise<void>;
12
+ visualInteraction?: boolean;
13
+ }
14
+ export declare function checkedHttpURL(value: string, base?: string): URL;
15
+ export declare function assertNoPrivateDNSResolution(value: string): Promise<void>;
16
+ export declare class Browser {
17
+ readonly options: BrowserOptions;
18
+ context: BrowserContext;
19
+ page: Page;
20
+ readonly downloads: {
21
+ path: string;
22
+ filename: string;
23
+ }[];
24
+ readonly extractions: {
25
+ key: string;
26
+ value: unknown;
27
+ }[];
28
+ readonly responses: {
29
+ url: string;
30
+ status: number;
31
+ time: number;
32
+ method: string;
33
+ resource: string;
34
+ }[];
35
+ readonly formReceipts: {
36
+ target: SemanticTarget;
37
+ actionURL: string;
38
+ method: string;
39
+ id: string;
40
+ label: string;
41
+ unique: boolean;
42
+ time: number;
43
+ }[];
44
+ private wired;
45
+ private cdpSocket?;
46
+ private cdpSequence;
47
+ private cdpPending;
48
+ private initialPageGuard?;
49
+ private networkProxy?;
50
+ private temporaryProfileDir?;
51
+ private closing;
52
+ private closePromise?;
53
+ readonly interaction: Interaction;
54
+ constructor(options?: BrowserOptions);
55
+ private checkNetworkDestination;
56
+ launch(): Promise<this>;
57
+ private wire;
58
+ private startRedirectGuard;
59
+ private receiveCDP;
60
+ private guardTarget;
61
+ private guardPausedRequest;
62
+ private sendCDP;
63
+ private failCDP;
64
+ private cleanupTemporaryProfile;
65
+ permits(value: string): boolean;
66
+ navigate(value: string): Promise<void>;
67
+ openTab(url: string): Promise<void>;
68
+ switchTab(index: number, timeoutMs?: number): Promise<void>;
69
+ closeTab(): Promise<void>;
70
+ prepareForNextRun(): Promise<void>;
71
+ close(): Promise<void>;
72
+ }