@onkernel/cua-agent 0.1.0 → 0.2.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 (123) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +44 -19
  3. package/dist/agent.d.ts +83 -27
  4. package/dist/agent.d.ts.map +1 -1
  5. package/dist/agent.js +176 -74
  6. package/dist/agent.js.map +1 -1
  7. package/dist/index.d.ts +3 -3
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +2 -2
  10. package/dist/index.js.map +1 -1
  11. package/dist/tools.d.ts +1 -1
  12. package/dist/tools.d.ts.map +1 -1
  13. package/dist/tools.js.map +1 -1
  14. package/dist/translator/translator.js +63 -6
  15. package/dist/translator/translator.js.map +1 -1
  16. package/dist/vendor/pi-agent-core/agent-loop.d.ts +24 -0
  17. package/dist/vendor/pi-agent-core/agent-loop.d.ts.map +1 -0
  18. package/dist/vendor/pi-agent-core/agent-loop.js +479 -0
  19. package/dist/vendor/pi-agent-core/agent-loop.js.map +1 -0
  20. package/dist/vendor/pi-agent-core/agent.d.ts +125 -0
  21. package/dist/vendor/pi-agent-core/agent.d.ts.map +1 -0
  22. package/dist/vendor/pi-agent-core/agent.js +402 -0
  23. package/dist/vendor/pi-agent-core/agent.js.map +1 -0
  24. package/dist/vendor/pi-agent-core/harness/agent-harness.d.ts +85 -0
  25. package/dist/vendor/pi-agent-core/harness/agent-harness.d.ts.map +1 -0
  26. package/dist/vendor/pi-agent-core/harness/agent-harness.js +728 -0
  27. package/dist/vendor/pi-agent-core/harness/agent-harness.js.map +1 -0
  28. package/dist/vendor/pi-agent-core/harness/compaction/branch-summarization.d.ts +88 -0
  29. package/dist/vendor/pi-agent-core/harness/compaction/branch-summarization.d.ts.map +1 -0
  30. package/dist/vendor/pi-agent-core/harness/compaction/branch-summarization.js +243 -0
  31. package/dist/vendor/pi-agent-core/harness/compaction/branch-summarization.js.map +1 -0
  32. package/dist/vendor/pi-agent-core/harness/compaction/compaction.d.ts +122 -0
  33. package/dist/vendor/pi-agent-core/harness/compaction/compaction.d.ts.map +1 -0
  34. package/dist/vendor/pi-agent-core/harness/compaction/compaction.js +616 -0
  35. package/dist/vendor/pi-agent-core/harness/compaction/compaction.js.map +1 -0
  36. package/dist/vendor/pi-agent-core/harness/compaction/utils.d.ts +38 -0
  37. package/dist/vendor/pi-agent-core/harness/compaction/utils.d.ts.map +1 -0
  38. package/dist/vendor/pi-agent-core/harness/compaction/utils.js +153 -0
  39. package/dist/vendor/pi-agent-core/harness/compaction/utils.js.map +1 -0
  40. package/dist/vendor/pi-agent-core/harness/env/nodejs.d.ts +44 -0
  41. package/dist/vendor/pi-agent-core/harness/env/nodejs.d.ts.map +1 -0
  42. package/dist/vendor/pi-agent-core/harness/env/nodejs.js +348 -0
  43. package/dist/vendor/pi-agent-core/harness/env/nodejs.js.map +1 -0
  44. package/dist/vendor/pi-agent-core/harness/execution-env.d.ts +4 -0
  45. package/dist/vendor/pi-agent-core/harness/execution-env.d.ts.map +1 -0
  46. package/dist/vendor/pi-agent-core/harness/execution-env.js +3 -0
  47. package/dist/vendor/pi-agent-core/harness/execution-env.js.map +1 -0
  48. package/dist/vendor/pi-agent-core/harness/messages.d.ts +51 -0
  49. package/dist/vendor/pi-agent-core/harness/messages.d.ts.map +1 -0
  50. package/dist/vendor/pi-agent-core/harness/messages.js +102 -0
  51. package/dist/vendor/pi-agent-core/harness/messages.js.map +1 -0
  52. package/dist/vendor/pi-agent-core/harness/prompt-templates.d.ts +45 -0
  53. package/dist/vendor/pi-agent-core/harness/prompt-templates.d.ts.map +1 -0
  54. package/dist/vendor/pi-agent-core/harness/prompt-templates.js +200 -0
  55. package/dist/vendor/pi-agent-core/harness/prompt-templates.js.map +1 -0
  56. package/dist/vendor/pi-agent-core/harness/session/repo/jsonl.d.ts +20 -0
  57. package/dist/vendor/pi-agent-core/harness/session/repo/jsonl.d.ts.map +1 -0
  58. package/dist/vendor/pi-agent-core/harness/session/repo/jsonl.js +92 -0
  59. package/dist/vendor/pi-agent-core/harness/session/repo/jsonl.js.map +1 -0
  60. package/dist/vendor/pi-agent-core/harness/session/repo/memory.d.ts +18 -0
  61. package/dist/vendor/pi-agent-core/harness/session/repo/memory.d.ts.map +1 -0
  62. package/dist/vendor/pi-agent-core/harness/session/repo/memory.js +42 -0
  63. package/dist/vendor/pi-agent-core/harness/session/repo/memory.js.map +1 -0
  64. package/dist/vendor/pi-agent-core/harness/session/repo/shared.d.ts +10 -0
  65. package/dist/vendor/pi-agent-core/harness/session/repo/shared.d.ts.map +1 -0
  66. package/dist/vendor/pi-agent-core/harness/session/repo/shared.js +31 -0
  67. package/dist/vendor/pi-agent-core/harness/session/repo/shared.js.map +1 -0
  68. package/dist/vendor/pi-agent-core/harness/session/session.d.ts +32 -0
  69. package/dist/vendor/pi-agent-core/harness/session/session.d.ts.map +1 -0
  70. package/dist/vendor/pi-agent-core/harness/session/session.js +196 -0
  71. package/dist/vendor/pi-agent-core/harness/session/session.js.map +1 -0
  72. package/dist/vendor/pi-agent-core/harness/session/storage/jsonl.d.ts +30 -0
  73. package/dist/vendor/pi-agent-core/harness/session/storage/jsonl.d.ts.map +1 -0
  74. package/dist/vendor/pi-agent-core/harness/session/storage/jsonl.js +170 -0
  75. package/dist/vendor/pi-agent-core/harness/session/storage/jsonl.js.map +1 -0
  76. package/dist/vendor/pi-agent-core/harness/session/storage/memory.d.ts +26 -0
  77. package/dist/vendor/pi-agent-core/harness/session/storage/memory.d.ts.map +1 -0
  78. package/dist/vendor/pi-agent-core/harness/session/storage/memory.js +90 -0
  79. package/dist/vendor/pi-agent-core/harness/session/storage/memory.js.map +1 -0
  80. package/dist/vendor/pi-agent-core/harness/session/uuid.d.ts +2 -0
  81. package/dist/vendor/pi-agent-core/harness/session/uuid.d.ts.map +1 -0
  82. package/dist/vendor/pi-agent-core/harness/session/uuid.js +40 -0
  83. package/dist/vendor/pi-agent-core/harness/session/uuid.js.map +1 -0
  84. package/dist/vendor/pi-agent-core/harness/skills.d.ts +41 -0
  85. package/dist/vendor/pi-agent-core/harness/skills.d.ts.map +1 -0
  86. package/dist/vendor/pi-agent-core/harness/skills.js +259 -0
  87. package/dist/vendor/pi-agent-core/harness/skills.js.map +1 -0
  88. package/dist/vendor/pi-agent-core/harness/system-prompt.d.ts +3 -0
  89. package/dist/vendor/pi-agent-core/harness/system-prompt.d.ts.map +1 -0
  90. package/dist/vendor/pi-agent-core/harness/system-prompt.js +30 -0
  91. package/dist/vendor/pi-agent-core/harness/system-prompt.js.map +1 -0
  92. package/dist/vendor/pi-agent-core/harness/types.d.ts +525 -0
  93. package/dist/vendor/pi-agent-core/harness/types.d.ts.map +1 -0
  94. package/dist/vendor/pi-agent-core/harness/types.js +16 -0
  95. package/dist/vendor/pi-agent-core/harness/types.js.map +1 -0
  96. package/dist/vendor/pi-agent-core/harness/utils/shell-output.d.ts +14 -0
  97. package/dist/vendor/pi-agent-core/harness/utils/shell-output.d.ts.map +1 -0
  98. package/dist/vendor/pi-agent-core/harness/utils/shell-output.js +97 -0
  99. package/dist/vendor/pi-agent-core/harness/utils/shell-output.js.map +1 -0
  100. package/dist/vendor/pi-agent-core/harness/utils/truncate.d.ts +70 -0
  101. package/dist/vendor/pi-agent-core/harness/utils/truncate.d.ts.map +1 -0
  102. package/dist/vendor/pi-agent-core/harness/utils/truncate.js +205 -0
  103. package/dist/vendor/pi-agent-core/harness/utils/truncate.js.map +1 -0
  104. package/dist/vendor/pi-agent-core/index.d.ts +21 -0
  105. package/dist/vendor/pi-agent-core/index.d.ts.map +1 -0
  106. package/dist/vendor/pi-agent-core/index.js +26 -0
  107. package/dist/vendor/pi-agent-core/index.js.map +1 -0
  108. package/dist/vendor/pi-agent-core/proxy.d.ts +69 -0
  109. package/dist/vendor/pi-agent-core/proxy.d.ts.map +1 -0
  110. package/dist/vendor/pi-agent-core/proxy.js +278 -0
  111. package/dist/vendor/pi-agent-core/proxy.js.map +1 -0
  112. package/dist/vendor/pi-agent-core/types.d.ts +386 -0
  113. package/dist/vendor/pi-agent-core/types.d.ts.map +1 -0
  114. package/dist/vendor/pi-agent-core/types.js +2 -0
  115. package/dist/vendor/pi-agent-core/types.js.map +1 -0
  116. package/examples/agent-openai-smoke.ts +4 -10
  117. package/examples/agent-provider-matrix.ts +4 -0
  118. package/examples/harness-openai-smoke.ts +17 -16
  119. package/examples/harness-provider-matrix.ts +16 -4
  120. package/examples/shared/logging.ts +37 -0
  121. package/package.json +6 -4
  122. package/src/vendor/pi-agent-core/LICENSE +21 -0
  123. package/src/vendor/pi-agent-core/README.md +15 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.0 - 2026-05-13
4
+
5
+ - Adds `CuaAgentHarness`, a provider-aware harness API with session-backed turns, resource and prompt helpers, active tool selection, and model switching.
6
+ - Keeps CUA runtime defaults in sync when changing models so provider-specific tools, prompts, and payload middleware update together.
7
+ - Improves browser keyboard shortcut translation for Kernel computer actions.
8
+
3
9
  ## 0.1.0
4
10
 
5
11
  - Class-first CUA runtime: `CuaAgent` and `CuaHarness` on top of pi-agent-core.
package/README.md CHANGED
@@ -1,9 +1,9 @@
1
1
  # `@onkernel/cua-agent`
2
2
 
3
- Kernel browser computer-use classes built on
4
- [`@earendil-works/pi-agent-core`](https://github.com/earendil-works/pi/tree/main/packages/agent).
3
+ Kernel browser computer-use classes built on vendored pi `Agent` and
4
+ `AgentHarness` source.
5
5
 
6
- This package keeps pi-agent-core semantics intact and adds browser execution
6
+ This package keeps pi agent semantics intact and adds browser execution
7
7
  plumbing for canonical CUA tools.
8
8
 
9
9
  ## Installation
@@ -33,45 +33,59 @@ const agent = new CuaAgent({
33
33
  await agent.prompt("Open news.ycombinator.com and summarize the top story.");
34
34
  ```
35
35
 
36
- ## Quick Start (`CuaHarness`)
36
+ ## Quick Start (`CuaAgentHarness`)
37
37
 
38
38
  ```ts
39
- import { CuaHarness } from "@onkernel/cua-agent";
39
+ import { CuaAgentHarness, InMemorySessionRepo, NodeExecutionEnv } from "@onkernel/cua-agent";
40
40
 
41
- const harness = new CuaHarness({
41
+ const sessionRepo = new InMemorySessionRepo();
42
+ const session = await sessionRepo.create({ id: "example" });
43
+
44
+ const harness = new CuaAgentHarness({
42
45
  browser,
43
46
  client,
47
+ env: new NodeExecutionEnv({ cwd: process.cwd() }),
44
48
  model: "openai:gpt-5.5",
49
+ session,
45
50
  });
46
51
 
47
- await harness.prompt("Open example.com and tell me the current URL.");
48
- const transcript = harness.getTranscript();
49
- console.log("messages in transcript:", transcript.length);
52
+ const response = await harness.prompt("Open example.com and tell me the current URL.");
53
+ const branch = await session.getBranch();
54
+ const lastAssistant = [...branch]
55
+ .reverse()
56
+ .flatMap((entry) =>
57
+ entry.type === "message" && entry.message.role === "assistant" ? [entry.message] : [],
58
+ )[0];
59
+ const assistant = lastAssistant ?? response;
60
+ const assistantText = assistant.content
61
+ .flatMap((block) => (block.type === "text" ? [block.text] : []))
62
+ .join("")
63
+ .trim();
64
+ console.log("assistant stopReason:", assistant.stopReason);
65
+ console.log("assistant text:", assistantText || "(no text)");
50
66
  ```
51
67
 
52
- Use `CuaAgent` when you want direct pi `Agent` control: raw transcript state,
68
+ Use `CuaAgent` when you want direct pi `Agent` control: raw message state,
53
69
  lifecycle events, custom streaming, and explicit prompt/continue/queue control.
54
70
  Reach for the harness shape when you want an app layer around the loop:
55
- session/transcript helpers, resource and prompt entry points, provider/auth
56
- hooks, active tool selection, compaction/tree workflows, and higher-level queue
57
- events. `CuaHarness` is the thin CUA version of that shape today: it installs
58
- CUA defaults, delegates runtime methods to the wrapped `Agent`, and adds
59
- `getTranscript()`.
71
+ session-backed turns, resource and prompt entry points, provider/auth hooks,
72
+ active tool selection, compaction/tree workflows, and higher-level queue events.
73
+ `CuaAgentHarness` extends pi `AgentHarness`, installs CUA defaults, and refreshes
74
+ provider-specific runtime state when `setModel()` changes models.
60
75
 
61
76
  ## Core Concepts
62
77
 
63
78
  ### Class-First API
64
79
 
65
80
  - `CuaAgent extends Agent`
66
- - `CuaHarness` wraps a pi `Agent` with a harness-style constructor and
67
- delegated runtime methods.
81
+ - `CuaAgentHarness extends AgentHarness`
68
82
 
69
83
  Both classes mirror pi constructor shapes and behavior, with minimal additions:
70
84
  - `browser` (Kernel browser response)
71
85
  - `client` (Kernel SDK client)
72
86
  - CUA model refs (`"provider:model"`) accepted where pi expects a concrete model
73
87
 
74
- If `getApiKey` is omitted, both classes default to CUA env var conventions:
88
+ If auth callbacks are omitted, both classes default to CUA env var conventions:
75
89
  - OpenAI: `OPENAI_API_KEY`
76
90
  - Anthropic: `ANTHROPIC_OAUTH_TOKEN` or `ANTHROPIC_API_KEY`
77
91
  - Gemini: `GOOGLE_API_KEY` or `GEMINI_API_KEY`
@@ -84,6 +98,17 @@ If tools are omitted, the classes install canonical CUA computer tool executors
84
98
  using runtime specs from `@onkernel/cua-ai`. If tools are provided, they are
85
99
  used exactly.
86
100
 
101
+ ### Model Switching
102
+
103
+ `CuaAgent` follows pi `Agent` semantics: assign `agent.state.model` to a
104
+ concrete model or CUA model ref. CUA-owned tools and the default system prompt
105
+ refresh with the new provider runtime.
106
+
107
+ `CuaAgentHarness` follows pi `AgentHarness` semantics: call
108
+ `await harness.setModel(model)`. The harness updates its model through pi's
109
+ snapshot machinery and refreshes CUA-owned tools and default prompt state for
110
+ the next provider request.
111
+
87
112
  ### Tool Composition
88
113
 
89
114
  Use `createCuaComputerTools()` to compose your own tool list from canonical
@@ -105,4 +130,4 @@ const tools = [
105
130
  ```
106
131
 
107
132
  For full event semantics, steering, follow-up queues, and tool execution
108
- details, see the pi-agent-core README.
133
+ details, see the pi agent core source vendored in this package.
package/dist/agent.d.ts CHANGED
@@ -1,46 +1,102 @@
1
- import { Agent, type AgentOptions, type AgentTool, type AgentEvent, type AgentMessage } from "@earendil-works/pi-agent-core";
2
- import { type ImageContent, type Api, type Model, type CuaModelRef } from "@onkernel/cua-ai";
1
+ import { Agent, AgentHarness, type AgentHarnessOptions, type AgentOptions, type AgentState, type AgentTool, type PromptTemplate, type Skill } from "./vendor/pi-agent-core/index";
2
+ import { type Api, type CuaModelRef, type Model, type SimpleStreamOptions } from "@onkernel/cua-ai";
3
3
  import type Kernel from "@onkernel/sdk";
4
4
  import type { KernelBrowser } from "./translator/translator";
5
+ /** A CUA model reference string or a concrete pi model object. */
6
+ type CuaRuntimeInput = CuaModelRef | Model<Api>;
7
+ /**
8
+ * Agent state exposed by {@link CuaAgent}.
9
+ *
10
+ * It is the regular pi `AgentState`, except assigning `state.model` may use a
11
+ * CUA model ref such as `"openai:gpt-5.5"`. CUA-owned tools and the default
12
+ * system prompt are refreshed to match the new provider runtime.
13
+ */
14
+ export interface CuaAgentState extends Omit<AgentState, "model"> {
15
+ /** The concrete pi model currently used by the underlying agent loop. */
16
+ get model(): Model<Api>;
17
+ /** Assign a concrete pi model or CUA model ref and refresh CUA runtime defaults. */
18
+ set model(model: CuaRuntimeInput);
19
+ }
20
+ /** Initial state for {@link CuaAgent}. */
5
21
  type CuaAgentInitialState = Omit<NonNullable<AgentOptions["initialState"]>, "model" | "tools"> & {
6
- model: CuaModelRef | Model<Api>;
22
+ /** Model to use for the first turn. CUA refs are resolved before pi sees the state. */
23
+ model: CuaRuntimeInput;
24
+ /** Optional caller-owned tools. Omit this to install the provider's default CUA tools. */
7
25
  tools?: AgentTool[];
8
26
  };
27
+ /**
28
+ * Constructor options for {@link CuaAgent}.
29
+ *
30
+ * `browser` and `client` are used to build the default computer-use tools.
31
+ * Everything else follows pi `AgentOptions`, with `initialState.model`
32
+ * widened to accept CUA model refs.
33
+ */
9
34
  export type CuaAgentOptions = Omit<AgentOptions, "initialState"> & {
35
+ /** Kernel browser session used by default CUA tools. */
10
36
  browser: KernelBrowser;
37
+ /** Kernel SDK client used by default CUA tools. */
11
38
  client: Kernel;
39
+ /** Initial pi state plus a CUA-aware model value. */
12
40
  initialState: CuaAgentInitialState;
13
41
  };
14
- export type CuaHarnessOptions = Omit<AgentOptions, "initialState"> & {
42
+ /**
43
+ * Constructor options for {@link CuaAgentHarness}.
44
+ *
45
+ * The harness keeps pi `AgentHarnessOptions` intact except that `model`
46
+ * accepts CUA refs and `browser`/`client` are required to build default
47
+ * computer-use tools. Callers provide pi's `env` and `session` directly.
48
+ */
49
+ export type CuaAgentHarnessOptions<TSkill extends Skill = Skill, TPromptTemplate extends PromptTemplate = PromptTemplate> = Omit<AgentHarnessOptions<TSkill, TPromptTemplate, AgentTool>, "model"> & {
50
+ /** Kernel browser session used by default CUA tools. */
15
51
  browser: KernelBrowser;
52
+ /** Kernel SDK client used by default CUA tools. */
16
53
  client: Kernel;
17
- model: CuaModelRef | Model<Api>;
18
- tools?: AgentTool[];
19
- systemPrompt?: string;
54
+ /** Model used by the harness. CUA refs are resolved before pi sees the model. */
55
+ model: CuaRuntimeInput;
56
+ /** Optional payload hook composed after the provider-specific CUA payload hook. */
57
+ onPayload?: SimpleStreamOptions["onPayload"];
20
58
  };
59
+ /**
60
+ * Pi `Agent` configured for Kernel browser computer use.
61
+ *
62
+ * Use this class when you want direct access to the lower-level pi agent state,
63
+ * queues, event stream, and `state.model` mutation model. It resolves CUA model
64
+ * refs, installs provider-appropriate CUA tools by default, and keeps those
65
+ * defaults in sync when `agent.state.model` changes.
66
+ */
21
67
  export declare class CuaAgent extends Agent {
68
+ private readonly runtime;
69
+ private stateProxy?;
22
70
  constructor(options: CuaAgentOptions);
71
+ /**
72
+ * Return a state proxy so `agent.state.model = "provider:model"` can behave
73
+ * like pi's normal mutable state while also re-resolving CUA tools, prompt,
74
+ * and payload hooks for the selected provider.
75
+ */
76
+ get state(): CuaAgentState;
77
+ private applyRuntime;
23
78
  }
24
- export declare class CuaHarness {
25
- readonly agent: Agent;
26
- constructor(options: CuaHarnessOptions);
27
- get state(): import("@earendil-works/pi-agent-core").AgentState;
28
- get steeringMode(): "all" | "one-at-a-time";
29
- set steeringMode(mode: "all" | "one-at-a-time");
30
- get followUpMode(): "all" | "one-at-a-time";
31
- set followUpMode(mode: "all" | "one-at-a-time");
32
- subscribe(listener: (event: AgentEvent, signal: AbortSignal) => Promise<void> | void): () => void;
33
- prompt(message: AgentMessage | AgentMessage[]): Promise<void>;
34
- prompt(input: string, images?: ImageContent[]): Promise<void>;
35
- steer(message: AgentMessage): void;
36
- followUp(message: AgentMessage): void;
37
- continue(): Promise<void>;
38
- clearSteeringQueue(): void;
39
- clearFollowUpQueue(): void;
40
- clearAllQueues(): void;
41
- abort(): void;
42
- waitForIdle(): Promise<void>;
43
- getTranscript(): AgentMessage[];
79
+ /**
80
+ * Pi `AgentHarness` configured for Kernel browser computer use.
81
+ *
82
+ * Use this class when you want pi's higher-level harness APIs for sessions,
83
+ * resources, prompt templates, queue events, compaction, and model selection.
84
+ * It installs provider CUA tools by default and keeps CUA-owned runtime
85
+ * defaults in sync through `setModel()`.
86
+ */
87
+ export declare class CuaAgentHarness<TSkill extends Skill = Skill, TPromptTemplate extends PromptTemplate = PromptTemplate> extends AgentHarness<TSkill, TPromptTemplate, AgentTool> {
88
+ private readonly runtime;
89
+ private requestedActiveToolNames?;
90
+ constructor(options: CuaAgentHarnessOptions<TSkill, TPromptTemplate>);
91
+ /**
92
+ * Mirror pi `AgentHarness.setModel()` while accepting CUA model refs.
93
+ *
94
+ * The override refreshes CUA-owned tools before delegating to pi so the
95
+ * harness snapshot and session model-change entry are written with the
96
+ * concrete model selected by `@onkernel/cua-ai`.
97
+ */
98
+ setModel(model: CuaRuntimeInput): Promise<void>;
99
+ setActiveTools(toolNames: string[]): Promise<void>;
44
100
  }
45
101
  export {};
46
102
  //# sourceMappingURL=agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,EACL,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,GAAG,EACR,KAAK,KAAK,EACV,KAAK,WAAW,EAIhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,KAAK,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG;IAChG,KAAK,EAAE,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,GAAG;IAClE,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,oBAAoB,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,GAAG;IACpE,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,qBAAa,QAAS,SAAQ,KAAK;gBACtB,OAAO,EAAE,eAAe;CAmBpC;AAED,qBAAa,UAAU;IACtB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;gBAEV,OAAO,EAAE,iBAAiB;IAiBtC,IAAI,KAAK,uDAER;IAED,IAAI,YAAY,IAIO,KAAK,GAAG,eAAe,CAF7C;IAED,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,eAAe,EAE7C;IAED,IAAI,YAAY,IAIO,KAAK,GAAG,eAAe,CAF7C;IAED,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,eAAe,EAE7C;IAED,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,MAAM,IAAI;IAI3F,MAAM,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IASnE,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIlC,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAI/B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,kBAAkB,IAAI,IAAI;IAI1B,kBAAkB,IAAI,IAAI;IAI1B,cAAc,IAAI,IAAI;IAItB,KAAK,IAAI,IAAI;IAIP,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC,aAAa,IAAI,YAAY,EAAE;CAG/B"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,KAAK,EAEV,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACN,KAAK,GAAG,EACR,KAAK,WAAW,EAEhB,KAAK,KAAK,EAEV,KAAK,mBAAmB,EAExB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,kEAAkE;AAClE,KAAK,eAAe,GAAG,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAIhD;;;;;;GAMG;AACH,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;IAC/D,yEAAyE;IACzE,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IACxB,oFAAoF;IACpF,IAAI,KAAK,CAAC,KAAK,EAAE,eAAe,EAAE;CAClC;AAED,0CAA0C;AAC1C,KAAK,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG;IAChG,uFAAuF;IACvF,KAAK,EAAE,eAAe,CAAC;IACvB,0FAA0F;IAC1F,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;CACpB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,GAAG;IAClE,wDAAwD;IACxD,OAAO,EAAE,aAAa,CAAC;IACvB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,YAAY,EAAE,oBAAoB,CAAC;CACnC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,sBAAsB,CACjC,MAAM,SAAS,KAAK,GAAG,KAAK,EAC5B,eAAe,SAAS,cAAc,GAAG,cAAc,IACpD,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,GAAG;IAC5E,wDAAwD;IACxD,OAAO,EAAE,aAAa,CAAC;IACvB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,KAAK,EAAE,eAAe,CAAC;IACvB,mFAAmF;IACnF,SAAS,CAAC,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;CAC7C,CAAC;AA8DF;;;;;;;GAOG;AACH,qBAAa,QAAS,SAAQ,KAAK;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,UAAU,CAAC,CAAgB;gBAEvB,OAAO,EAAE,eAAe;IA2DpC;;;;OAIG;IACH,IAAa,KAAK,IAAI,aAAa,CAalC;IAED,OAAO,CAAC,YAAY;CAWpB;AAED;;;;;;;GAOG;AACH,qBAAa,eAAe,CAC3B,MAAM,SAAS,KAAK,GAAG,KAAK,EAC5B,eAAe,SAAS,cAAc,GAAG,cAAc,CACtD,SAAQ,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,CAAC;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,wBAAwB,CAAC,CAAW;gBAEhC,OAAO,EAAE,sBAAsB,CAAC,MAAM,EAAE,eAAe,CAAC;IAsCpE;;;;;;OAMG;IACY,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/C,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAIjE"}
package/dist/agent.js CHANGED
@@ -1,95 +1,197 @@
1
- import { Agent, } from "@earendil-works/pi-agent-core";
1
+ import { Agent, AgentHarness, } from "./vendor/pi-agent-core/index";
2
2
  import { getCuaEnvApiKey, resolveCuaRuntimeSpec, streamSimple, } from "@onkernel/cua-ai";
3
3
  import { createCuaComputerTools } from "./tools";
4
+ /**
5
+ * Holds the CUA-specific pieces that have to change when a model changes.
6
+ *
7
+ * If callers omit `tools` or `systemPrompt`, CUA owns those values and refreshes
8
+ * them from `@onkernel/cua-ai` whenever the model changes. If callers pass
9
+ * their own tools or prompt, the controller preserves those caller-owned values.
10
+ */
11
+ class CuaRuntimeController {
12
+ options;
13
+ runtimeSpec;
14
+ constructor(options) {
15
+ this.options = options;
16
+ this.runtimeSpec = resolveCuaRuntimeSpec(options.model);
17
+ }
18
+ get model() {
19
+ return this.runtimeSpec.model;
20
+ }
21
+ get ownsTools() {
22
+ return this.options.tools === undefined;
23
+ }
24
+ get ownsSystemPrompt() {
25
+ return this.options.systemPrompt === undefined;
26
+ }
27
+ get systemPrompt() {
28
+ return this.runtimeSpec.defaultSystemPrompt;
29
+ }
30
+ setModel(model) {
31
+ this.runtimeSpec = resolveCuaRuntimeSpec(model);
32
+ }
33
+ tools() {
34
+ return (this.options.tools ??
35
+ createCuaComputerTools({
36
+ browser: this.options.browser,
37
+ client: this.options.client,
38
+ toolDefinitions: this.runtimeSpec.toolDefinitions,
39
+ }));
40
+ }
41
+ onPayloadFor(model) {
42
+ const runtimeSpec = resolveCuaRuntimeSpec(model);
43
+ return composeOnPayload(runtimeSpec.onPayload, this.options.onPayload);
44
+ }
45
+ }
46
+ /**
47
+ * Pi `Agent` configured for Kernel browser computer use.
48
+ *
49
+ * Use this class when you want direct access to the lower-level pi agent state,
50
+ * queues, event stream, and `state.model` mutation model. It resolves CUA model
51
+ * refs, installs provider-appropriate CUA tools by default, and keeps those
52
+ * defaults in sync when `agent.state.model` changes.
53
+ */
4
54
  export class CuaAgent extends Agent {
55
+ runtime;
56
+ stateProxy;
5
57
  constructor(options) {
6
- const { browser, client, initialState, onPayload, streamFn, ...agentOptions } = options;
7
- const runtimeSpec = resolveCuaRuntimeSpec(initialState.model);
8
- const tools = initialState.tools ?? createCuaComputerTools({ browser, client, toolDefinitions: runtimeSpec.toolDefinitions });
9
- const systemPrompt = initialState.systemPrompt ?? runtimeSpec.defaultSystemPrompt;
58
+ const { browser, client, initialState, onPayload, streamFn, prepareNextTurn, ...agentOptions } = options;
59
+ const runtime = new CuaRuntimeController({
60
+ browser,
61
+ client,
62
+ model: initialState.model,
63
+ tools: initialState.tools,
64
+ systemPrompt: initialState.systemPrompt,
65
+ onPayload,
66
+ });
67
+ const wrappedStreamFn = (model, context, streamOptions) => (streamFn ?? streamSimple)(model, context, {
68
+ ...streamOptions,
69
+ onPayload: runtime.onPayloadFor(model),
70
+ });
10
71
  super({
11
72
  ...agentOptions,
12
73
  getApiKey: agentOptions.getApiKey ?? getCuaEnvApiKey,
13
- streamFn: streamFn ?? streamSimple,
14
- onPayload: composeOnPayload(runtimeSpec.onPayload, onPayload),
74
+ streamFn: wrappedStreamFn,
15
75
  initialState: {
16
76
  ...initialState,
17
- model: runtimeSpec.model,
18
- tools,
19
- systemPrompt,
77
+ model: runtime.model,
78
+ tools: runtime.tools(),
79
+ systemPrompt: initialState.systemPrompt ?? runtime.systemPrompt,
20
80
  },
21
81
  });
82
+ this.runtime = runtime;
83
+ /**
84
+ * pi calls `prepareNextTurn` between provider requests. Wrapping it lets CUA
85
+ * honor any user-provided turn update while also refreshing provider-specific
86
+ * defaults if that update changes the model.
87
+ */
88
+ this.prepareNextTurn = async (signal) => {
89
+ const update = await prepareNextTurn?.(signal);
90
+ if (update?.model) {
91
+ this.applyRuntime(update.model);
92
+ }
93
+ const state = super.state;
94
+ const context = update?.context ?? {
95
+ systemPrompt: state.systemPrompt,
96
+ messages: state.messages.slice(),
97
+ tools: state.tools.slice(),
98
+ };
99
+ return {
100
+ ...update,
101
+ model: state.model,
102
+ context: {
103
+ ...context,
104
+ systemPrompt: this.runtime.ownsSystemPrompt ? state.systemPrompt : context.systemPrompt,
105
+ tools: this.runtime.ownsTools ? state.tools.slice() : context.tools,
106
+ },
107
+ };
108
+ };
109
+ }
110
+ /**
111
+ * Return a state proxy so `agent.state.model = "provider:model"` can behave
112
+ * like pi's normal mutable state while also re-resolving CUA tools, prompt,
113
+ * and payload hooks for the selected provider.
114
+ */
115
+ get state() {
116
+ if (!this.stateProxy) {
117
+ this.stateProxy = new Proxy(super.state, {
118
+ set: (target, prop, value, receiver) => {
119
+ if (prop === "model") {
120
+ this.applyRuntime(value);
121
+ return true;
122
+ }
123
+ return Reflect.set(target, prop, value, receiver);
124
+ },
125
+ });
126
+ }
127
+ return this.stateProxy;
128
+ }
129
+ applyRuntime(model) {
130
+ this.runtime.setModel(model);
131
+ const state = super.state;
132
+ state.model = this.runtime.model;
133
+ if (this.runtime.ownsTools) {
134
+ state.tools = this.runtime.tools();
135
+ }
136
+ if (this.runtime.ownsSystemPrompt) {
137
+ state.systemPrompt = this.runtime.systemPrompt;
138
+ }
22
139
  }
23
140
  }
24
- export class CuaHarness {
25
- agent;
141
+ /**
142
+ * Pi `AgentHarness` configured for Kernel browser computer use.
143
+ *
144
+ * Use this class when you want pi's higher-level harness APIs for sessions,
145
+ * resources, prompt templates, queue events, compaction, and model selection.
146
+ * It installs provider CUA tools by default and keeps CUA-owned runtime
147
+ * defaults in sync through `setModel()`.
148
+ */
149
+ export class CuaAgentHarness extends AgentHarness {
150
+ runtime;
151
+ requestedActiveToolNames;
26
152
  constructor(options) {
27
- const { browser, client, model, tools, systemPrompt, onPayload, streamFn, ...agentOptions } = options;
28
- const runtimeSpec = resolveCuaRuntimeSpec(model);
29
- const resolvedTools = tools ?? createCuaComputerTools({ browser, client, toolDefinitions: runtimeSpec.toolDefinitions });
30
- this.agent = new Agent({
31
- ...agentOptions,
32
- getApiKey: agentOptions.getApiKey ?? getCuaEnvApiKey,
33
- streamFn: streamFn ?? streamSimple,
34
- onPayload: composeOnPayload(runtimeSpec.onPayload, onPayload),
35
- initialState: {
36
- model: runtimeSpec.model,
37
- tools: resolvedTools,
38
- systemPrompt: systemPrompt ?? runtimeSpec.defaultSystemPrompt,
39
- },
153
+ const { browser, client, model, tools, systemPrompt, getApiKeyAndHeaders, onPayload, activeToolNames, ...harnessOptions } = options;
154
+ const runtime = new CuaRuntimeController({ browser, client, model, tools, systemPrompt, onPayload });
155
+ const resolvedTools = runtime.tools();
156
+ super({
157
+ ...harnessOptions,
158
+ model: runtime.model,
159
+ tools: resolvedTools,
160
+ systemPrompt: systemPrompt ?? (() => runtime.systemPrompt),
161
+ getApiKeyAndHeaders: getApiKeyAndHeaders ??
162
+ (async (requestModel) => {
163
+ const apiKey = getCuaEnvApiKey(requestModel.provider);
164
+ return apiKey ? { apiKey } : undefined;
165
+ }),
166
+ activeToolNames: activeToolNames ?? resolvedTools.map((tool) => tool.name),
167
+ });
168
+ this.runtime = runtime;
169
+ this.requestedActiveToolNames = activeToolNames;
170
+ this.on("before_provider_payload", async ({ model, payload }) => {
171
+ const onPayload = this.runtime.onPayloadFor(model);
172
+ if (!onPayload)
173
+ return { payload };
174
+ return { payload: (await onPayload(payload, model)) ?? payload };
40
175
  });
41
176
  }
42
- get state() {
43
- return this.agent.state;
44
- }
45
- get steeringMode() {
46
- return this.agent.steeringMode;
47
- }
48
- set steeringMode(mode) {
49
- this.agent.steeringMode = mode;
50
- }
51
- get followUpMode() {
52
- return this.agent.followUpMode;
53
- }
54
- set followUpMode(mode) {
55
- this.agent.followUpMode = mode;
56
- }
57
- subscribe(listener) {
58
- return this.agent.subscribe(listener);
59
- }
60
- async prompt(input, images) {
61
- if (typeof input === "string") {
62
- await this.agent.prompt(input, images);
63
- return;
177
+ /**
178
+ * Mirror pi `AgentHarness.setModel()` while accepting CUA model refs.
179
+ *
180
+ * The override refreshes CUA-owned tools before delegating to pi so the
181
+ * harness snapshot and session model-change entry are written with the
182
+ * concrete model selected by `@onkernel/cua-ai`.
183
+ */
184
+ async setModel(model) {
185
+ this.runtime.setModel(model);
186
+ if (this.runtime.ownsTools) {
187
+ const tools = this.runtime.tools();
188
+ await super.setTools(tools, this.requestedActiveToolNames ?? tools.map((tool) => tool.name));
64
189
  }
65
- await this.agent.prompt(input);
66
- }
67
- steer(message) {
68
- this.agent.steer(message);
69
- }
70
- followUp(message) {
71
- this.agent.followUp(message);
72
- }
73
- async continue() {
74
- await this.agent.continue();
75
- }
76
- clearSteeringQueue() {
77
- this.agent.clearSteeringQueue();
78
- }
79
- clearFollowUpQueue() {
80
- this.agent.clearFollowUpQueue();
81
- }
82
- clearAllQueues() {
83
- this.agent.clearAllQueues();
84
- }
85
- abort() {
86
- this.agent.abort();
87
- }
88
- async waitForIdle() {
89
- await this.agent.waitForIdle();
190
+ await super.setModel(this.runtime.model);
90
191
  }
91
- getTranscript() {
92
- return [...this.agent.state.messages];
192
+ async setActiveTools(toolNames) {
193
+ await super.setActiveTools(toolNames);
194
+ this.requestedActiveToolNames = [...toolNames];
93
195
  }
94
196
  }
95
197
  function composeOnPayload(first, second) {
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- export * from "@earendil-works/pi-agent-core";
1
+ export * from "./vendor/pi-agent-core/index";
2
2
  export type { KernelBrowser } from "./translator/translator";
3
3
  export { createCuaComputerTools } from "./tools";
4
4
  export type { BatchDetails, ComputerToolOptions, CuaExecutorTool, NavigationDetails, SupportedCuaExecutorToolName, } from "./tools";
5
5
  export { SUPPORTED_CUA_EXECUTOR_TOOL_NAMES } from "./tools";
6
- export { CuaAgent, CuaHarness } from "./agent";
7
- export type { CuaAgentOptions, CuaHarnessOptions } from "./agent";
6
+ export { CuaAgent, CuaAgentHarness } from "./agent";
7
+ export type { CuaAgentHarnessOptions, CuaAgentOptions, CuaAgentState } from "./agent";
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAE9C,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACjD,YAAY,EACX,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,4BAA4B,GAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,iCAAiC,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC/C,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAE7C,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACjD,YAAY,EACX,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,4BAA4B,GAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,iCAAiC,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACpD,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- export * from "@earendil-works/pi-agent-core";
1
+ export * from "./vendor/pi-agent-core/index";
2
2
  export { createCuaComputerTools } from "./tools";
3
3
  export { SUPPORTED_CUA_EXECUTOR_TOOL_NAMES } from "./tools";
4
- export { CuaAgent, CuaHarness } from "./agent";
4
+ export { CuaAgent, CuaAgentHarness } from "./agent";
5
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAG9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAQjD,OAAO,EAAE,iCAAiC,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAG7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAQjD,OAAO,EAAE,iCAAiC,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
package/dist/tools.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import type Kernel from "@onkernel/sdk";
2
- import type { AgentTool } from "@earendil-works/pi-agent-core";
3
2
  import type { Tool } from "@earendil-works/pi-ai";
4
3
  import { CuaBatchSchema, CuaNavigationSchema } from "@onkernel/cua-ai";
5
4
  import { type KernelBrowser } from "./translator/translator";
5
+ import type { AgentTool } from "./vendor/pi-agent-core/index";
6
6
  export interface ComputerToolOptions {
7
7
  browser: KernelBrowser;
8
8
  client: Kernel;
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,+BAA+B,CAAC;AAChF,OAAO,KAAK,EAA6B,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAGN,cAAc,EACd,mBAAmB,EAGnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAA8B,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAEzF,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,IAAI,EAAE,CAAC;CACxB;AAED,eAAO,MAAM,iCAAiC,2DAA2D,CAAC;AAC1G,MAAM,MAAM,4BAA4B,GAAG,CAAC,OAAO,iCAAiC,CAAC,CAAC,MAAM,CAAC,CAAC;AAI9F,MAAM,WAAW,YAAY;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,iBAAiB,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7I,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,KAAK,SAAS,GAAG,SAAS,CAAC,OAAO,cAAc,EAAE,YAAY,CAAC,CAAC;AAChE,KAAK,cAAc,GAAG,SAAS,CAAC,OAAO,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;AAC/E,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,cAAc,CAAC;AAEzD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,GAAG,eAAe,EAAE,CAGnF"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAA6B,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAGN,cAAc,EACd,mBAAmB,EAGnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAA8B,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,8BAA8B,CAAC;AAE/E,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,IAAI,EAAE,CAAC;CACxB;AAED,eAAO,MAAM,iCAAiC,2DAA2D,CAAC;AAC1G,MAAM,MAAM,4BAA4B,GAAG,CAAC,OAAO,iCAAiC,CAAC,CAAC,MAAM,CAAC,CAAC;AAI9F,MAAM,WAAW,YAAY;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,iBAAiB,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7I,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,KAAK,SAAS,GAAG,SAAS,CAAC,OAAO,cAAc,EAAE,YAAY,CAAC,CAAC;AAChE,KAAK,cAAc,GAAG,SAAS,CAAC,OAAO,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;AAC/E,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,cAAc,CAAC;AAEzD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,GAAG,eAAe,EAAE,CAGnF"}