@onkernel/cua-ai 0.1.0 → 0.2.1
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.
- package/CHANGELOG.md +100 -0
- package/README.md +341 -65
- package/dist/chunk-D7D4PA-g.js +13 -0
- package/dist/index.d.ts +576 -10
- package/dist/index.js +1999 -11
- package/docs/supported-models.md +77 -0
- package/examples/quickstart.ts +28 -22
- package/package.json +10 -6
- package/dist/api-keys.d.ts +0 -8
- package/dist/api-keys.d.ts.map +0 -1
- package/dist/api-keys.js +0 -48
- package/dist/api-keys.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/models.d.ts +0 -33
- package/dist/models.d.ts.map +0 -1
- package/dist/models.js +0 -159
- package/dist/models.js.map +0 -1
- package/dist/providers/anthropic/index.d.ts +0 -10
- package/dist/providers/anthropic/index.d.ts.map +0 -1
- package/dist/providers/anthropic/index.js +0 -16
- package/dist/providers/anthropic/index.js.map +0 -1
- package/dist/providers/common.d.ts +0 -111
- package/dist/providers/common.d.ts.map +0 -1
- package/dist/providers/common.js +0 -138
- package/dist/providers/common.js.map +0 -1
- package/dist/providers/gemini/index.d.ts +0 -11
- package/dist/providers/gemini/index.d.ts.map +0 -1
- package/dist/providers/gemini/index.js +0 -14
- package/dist/providers/gemini/index.js.map +0 -1
- package/dist/providers/openai/index.d.ts +0 -8
- package/dist/providers/openai/index.d.ts.map +0 -1
- package/dist/providers/openai/index.js +0 -22
- package/dist/providers/openai/index.js.map +0 -1
- package/dist/providers/tzafon/index.d.ts +0 -12
- package/dist/providers/tzafon/index.d.ts.map +0 -1
- package/dist/providers/tzafon/index.js +0 -18
- package/dist/providers/tzafon/index.js.map +0 -1
- package/dist/providers/tzafon/provider.d.ts +0 -8
- package/dist/providers/tzafon/provider.d.ts.map +0 -1
- package/dist/providers/tzafon/provider.js +0 -234
- package/dist/providers/tzafon/provider.js.map +0 -1
- package/dist/providers/yutori/index.d.ts +0 -12
- package/dist/providers/yutori/index.d.ts.map +0 -1
- package/dist/providers/yutori/index.js +0 -23
- package/dist/providers/yutori/index.js.map +0 -1
- package/dist/providers/yutori/provider.d.ts +0 -9
- package/dist/providers/yutori/provider.d.ts.map +0 -1
- package/dist/providers/yutori/provider.js +0 -307
- package/dist/providers/yutori/provider.js.map +0 -1
- package/dist/providers.d.ts +0 -6
- package/dist/providers.d.ts.map +0 -1
- package/dist/providers.js +0 -26
- package/dist/providers.js.map +0 -1
- package/dist/runtime-spec.d.ts +0 -29
- package/dist/runtime-spec.d.ts.map +0 -1
- package/dist/runtime-spec.js +0 -58
- package/dist/runtime-spec.js.map +0 -1
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Supported CUA Models
|
|
2
|
+
|
|
3
|
+
`@onkernel/cua-ai` accepts any pi-ai model whose ID is annotated as
|
|
4
|
+
CUA-supporting in `CUA_MODEL_ANNOTATIONS` (see
|
|
5
|
+
[`src/models.ts`](https://github.com/kernel/cua/blob/main/packages/ai/src/models.ts)).
|
|
6
|
+
Annotations are either a `family`
|
|
7
|
+
match or an `exact` ID match. A family match covers the family root plus
|
|
8
|
+
suffixes made of hyphen-separated numeric segments — revisions and dated
|
|
9
|
+
snapshots such as `claude-opus-4-7`, `gpt-5.5-2026-04-23`, or
|
|
10
|
+
`claude-3-7-sonnet-20250219`. Named sibling variants like `gpt-5.4-mini`
|
|
11
|
+
are distinct models that may not support computer use, so they need their
|
|
12
|
+
own annotation. Each annotation cites the provider's CUA docs.
|
|
13
|
+
|
|
14
|
+
The list below is the current snapshot. Run
|
|
15
|
+
`listCuaModels(provider?)` for the live list — it merges pi-ai's registry
|
|
16
|
+
with CUA-only entries that pi-ai does not ship yet.
|
|
17
|
+
|
|
18
|
+
## `openai`
|
|
19
|
+
|
|
20
|
+
API: `openai-responses` · coordinates: pixel
|
|
21
|
+
|
|
22
|
+
Family matches (root + numeric revision/dated-snapshot suffixes):
|
|
23
|
+
|
|
24
|
+
- `gpt-5.4` ([docs](https://developers.openai.com/api/docs/models/gpt-5.4))
|
|
25
|
+
- `gpt-5.5` ([docs](https://developers.openai.com/api/docs/models/gpt-5.5))
|
|
26
|
+
|
|
27
|
+
## `anthropic`
|
|
28
|
+
|
|
29
|
+
API: `anthropic-messages` · coordinates: pixel
|
|
30
|
+
|
|
31
|
+
Family matches (root + numeric revision/dated-snapshot suffixes):
|
|
32
|
+
|
|
33
|
+
- `claude-3-7-sonnet`
|
|
34
|
+
- `claude-opus-4`
|
|
35
|
+
- `claude-sonnet-4`
|
|
36
|
+
- `claude-haiku-4`
|
|
37
|
+
- `claude-fable-5`
|
|
38
|
+
|
|
39
|
+
Source: [Anthropic computer use docs](https://docs.anthropic.com/en/docs/build-with-claude/computer-use).
|
|
40
|
+
|
|
41
|
+
## `google`
|
|
42
|
+
|
|
43
|
+
API: `google-generative-ai` · coordinates: normalized 0–999
|
|
44
|
+
|
|
45
|
+
Model refs use the `google:` prefix; `gemini:` is accepted as an alias.
|
|
46
|
+
|
|
47
|
+
Exact IDs:
|
|
48
|
+
|
|
49
|
+
- `gemini-3-flash-preview`
|
|
50
|
+
- `gemini-3-pro-preview`
|
|
51
|
+
|
|
52
|
+
`gemini-2.5-computer-use-preview-10-2025` is deliberately not annotated: it
|
|
53
|
+
rejects the standard function declarations this package sends and requires
|
|
54
|
+
Google's native `tools.computer_use` request wrapper instead.
|
|
55
|
+
|
|
56
|
+
Source: [Gemini computer use docs](https://ai.google.dev/gemini-api/docs/computer-use).
|
|
57
|
+
|
|
58
|
+
## `tzafon`
|
|
59
|
+
|
|
60
|
+
API: `tzafon-responses` · coordinates: normalized 0–999
|
|
61
|
+
|
|
62
|
+
Exact IDs:
|
|
63
|
+
|
|
64
|
+
- `tzafon.northstar-cua-fast` ([model card](https://huggingface.co/Tzafon/Northstar-CUA-Fast))
|
|
65
|
+
|
|
66
|
+
## `yutori`
|
|
67
|
+
|
|
68
|
+
API: `yutori-chat-completions` · coordinates: normalized 0–1000
|
|
69
|
+
|
|
70
|
+
Exact IDs:
|
|
71
|
+
|
|
72
|
+
- `n1-latest`
|
|
73
|
+
- `n1-20260203`
|
|
74
|
+
- `n1.5-latest`
|
|
75
|
+
- `n1.5-20260428`
|
|
76
|
+
|
|
77
|
+
Source: [Yutori Navigator reference](https://docs.yutori.com/reference/navigator).
|
package/examples/quickstart.ts
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import {
|
|
3
|
+
complete,
|
|
4
|
+
getCuaModel,
|
|
5
|
+
requireCuaEnvApiKeyForModel,
|
|
6
|
+
resolveCuaRuntimeSpec,
|
|
7
|
+
type CuaModelRef,
|
|
8
|
+
} from "@onkernel/cua-ai";
|
|
5
9
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const modelRef = "openai:gpt-5.5";
|
|
10
|
+
// Switch providers by setting CUA_MODEL (and the matching API key env var):
|
|
11
|
+
// anthropic:claude-opus-4-7 ANTHROPIC_API_KEY
|
|
12
|
+
// google:gemini-3-flash-preview GOOGLE_API_KEY
|
|
13
|
+
// tzafon:tzafon.northstar-cua-fast TZAFON_API_KEY
|
|
14
|
+
// yutori:n1.5-latest YUTORI_API_KEY
|
|
15
|
+
const modelRef = (process.env.CUA_MODEL ?? "openai:gpt-5.5") as CuaModelRef;
|
|
12
16
|
const model = getCuaModel(modelRef);
|
|
13
|
-
const
|
|
17
|
+
const apiKey = requireCuaEnvApiKeyForModel(modelRef);
|
|
18
|
+
|
|
19
|
+
// resolveCuaRuntimeSpec returns the provider's default tool definitions
|
|
20
|
+
// (narrowed here to click-only). For a single provider you can use its
|
|
21
|
+
// namespace directly, e.g. openai.computerTools({ actions: ["click"] }).
|
|
22
|
+
const spec = resolveCuaRuntimeSpec(modelRef, { actions: ["click"] });
|
|
14
23
|
|
|
15
|
-
|
|
16
|
-
// const apiKey = process.env.ANTHROPIC_API_KEY;
|
|
17
|
-
// const modelRef = "anthropic:claude-opus-4-7";
|
|
18
|
-
// const model = getCuaModel(modelRef);
|
|
19
|
-
// const tools = anthropic.createComputerToolDefinitions({ actions: ["click"] });
|
|
20
|
-
//
|
|
21
|
-
// const apiKey = process.env.GOOGLE_API_KEY;
|
|
22
|
-
// const modelRef = "google:gemini-2.5-computer-use-preview-10-2025";
|
|
23
|
-
// const model = getCuaModel(modelRef);
|
|
24
|
-
// const tools = gemini.createComputerToolDefinitions({ actions: ["click"] });
|
|
24
|
+
const screenshot = await readFile(new URL("./screenshot.png", import.meta.url));
|
|
25
25
|
|
|
26
26
|
const response = await complete(
|
|
27
27
|
model,
|
|
28
28
|
{
|
|
29
29
|
systemPrompt: [
|
|
30
30
|
"You are controlling a browser from a screenshot.",
|
|
31
|
-
"Call the computer tool with the
|
|
31
|
+
"Call the computer tool with the coordinates of the target. Do not describe the click in prose unless you cannot identify the target.",
|
|
32
32
|
].join("\n"),
|
|
33
33
|
messages: [
|
|
34
34
|
{
|
|
@@ -40,7 +40,7 @@ const response = await complete(
|
|
|
40
40
|
timestamp: Date.now(),
|
|
41
41
|
},
|
|
42
42
|
],
|
|
43
|
-
tools:
|
|
43
|
+
tools: spec.toolDefinitions,
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
apiKey,
|
|
@@ -48,6 +48,12 @@ const response = await complete(
|
|
|
48
48
|
},
|
|
49
49
|
);
|
|
50
50
|
|
|
51
|
+
// complete() resolves instead of throwing on provider errors; always check
|
|
52
|
+
// stopReason before reading content.
|
|
53
|
+
if (response.stopReason === "error" || response.stopReason === "aborted") {
|
|
54
|
+
throw new Error(response.errorMessage ?? `request ended with stopReason "${response.stopReason}"`);
|
|
55
|
+
}
|
|
56
|
+
|
|
51
57
|
console.log(`model: ${modelRef}`);
|
|
52
58
|
for (const block of response.content) {
|
|
53
59
|
if (block.type === "text") {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onkernel/cua-ai",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Kernel-curated computer-use model access built on pi-ai",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
"files": [
|
|
26
26
|
"dist",
|
|
27
|
+
"docs",
|
|
27
28
|
"examples",
|
|
28
29
|
"README.md",
|
|
29
30
|
"CHANGELOG.md"
|
|
@@ -32,17 +33,20 @@
|
|
|
32
33
|
"access": "public"
|
|
33
34
|
},
|
|
34
35
|
"scripts": {
|
|
35
|
-
"build": "
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
36
|
+
"build": "tsdown",
|
|
37
|
+
"typecheck": "tsc -b",
|
|
38
|
+
"clean": "tsc -b --clean && rm -rf dist dist-tsc",
|
|
39
|
+
"example:quickstart": "NODE_OPTIONS=--conditions=source tsx examples/quickstart.ts",
|
|
40
|
+
"test": "vitest --run",
|
|
41
|
+
"test:integration": "vitest --run --config vitest.integration.config.ts"
|
|
39
42
|
},
|
|
40
43
|
"dependencies": {
|
|
41
|
-
"@earendil-works/pi-ai": "
|
|
44
|
+
"@earendil-works/pi-ai": "0.79.1",
|
|
42
45
|
"@tzafon/lightcone": "^0.7.0",
|
|
43
46
|
"openai": "^6.26.0"
|
|
44
47
|
},
|
|
45
48
|
"devDependencies": {
|
|
49
|
+
"tsdown": "^0.22.2",
|
|
46
50
|
"vitest": "^3.2.4"
|
|
47
51
|
}
|
|
48
52
|
}
|
package/dist/api-keys.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { Api, Model } from "@earendil-works/pi-ai";
|
|
2
|
-
import { type CuaModelRef } from "./models";
|
|
3
|
-
export declare function cuaApiKeyEnvVarsForProvider(provider: string): readonly string[];
|
|
4
|
-
export declare function getCuaEnvApiKey(provider: string): string | undefined;
|
|
5
|
-
export declare function requireCuaEnvApiKey(provider: string): string;
|
|
6
|
-
export declare function getCuaEnvApiKeyForModel(input: CuaModelRef | Model<Api>): string | undefined;
|
|
7
|
-
export declare function requireCuaEnvApiKeyForModel(input: CuaModelRef | Model<Api>): string;
|
|
8
|
-
//# sourceMappingURL=api-keys.d.ts.map
|
package/dist/api-keys.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../src/api-keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAsC,KAAK,WAAW,EAAoB,MAAM,UAAU,CAAC;AAiBlG,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAK/E;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMpE;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQ5D;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,SAAS,CAG3F;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAGnF"}
|
package/dist/api-keys.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { parseCuaModelRef, providerForModel } from "./models";
|
|
2
|
-
/**
|
|
3
|
-
* Environment variables accepted for each CUA provider.
|
|
4
|
-
*
|
|
5
|
-
* This mirrors pi-ai's approach: model lookup is pure, while auth is resolved
|
|
6
|
-
* when streaming. These helpers let callers share one readable convention for
|
|
7
|
-
* explicit `getApiKey` wiring (especially useful for `google` vs `gemini`).
|
|
8
|
-
*/
|
|
9
|
-
const CUA_PROVIDER_API_KEY_ENV_VARS = {
|
|
10
|
-
openai: ["OPENAI_API_KEY"],
|
|
11
|
-
anthropic: ["ANTHROPIC_OAUTH_TOKEN", "ANTHROPIC_API_KEY"],
|
|
12
|
-
google: ["GOOGLE_API_KEY", "GEMINI_API_KEY"],
|
|
13
|
-
tzafon: ["TZAFON_API_KEY"],
|
|
14
|
-
yutori: ["YUTORI_API_KEY"],
|
|
15
|
-
};
|
|
16
|
-
export function cuaApiKeyEnvVarsForProvider(provider) {
|
|
17
|
-
if (provider === "gemini") {
|
|
18
|
-
return CUA_PROVIDER_API_KEY_ENV_VARS.google;
|
|
19
|
-
}
|
|
20
|
-
return CUA_PROVIDER_API_KEY_ENV_VARS[provider] ?? [];
|
|
21
|
-
}
|
|
22
|
-
export function getCuaEnvApiKey(provider) {
|
|
23
|
-
for (const envVar of cuaApiKeyEnvVarsForProvider(provider)) {
|
|
24
|
-
const value = process.env[envVar];
|
|
25
|
-
if (value?.trim())
|
|
26
|
-
return value;
|
|
27
|
-
}
|
|
28
|
-
return undefined;
|
|
29
|
-
}
|
|
30
|
-
export function requireCuaEnvApiKey(provider) {
|
|
31
|
-
const apiKey = getCuaEnvApiKey(provider);
|
|
32
|
-
if (apiKey)
|
|
33
|
-
return apiKey;
|
|
34
|
-
const envVars = cuaApiKeyEnvVarsForProvider(provider);
|
|
35
|
-
if (envVars.length === 0) {
|
|
36
|
-
throw new Error(`No known API key environment variables for provider "${provider}"`);
|
|
37
|
-
}
|
|
38
|
-
throw new Error(`Missing API key for "${provider}". Set one of: ${envVars.join(", ")}`);
|
|
39
|
-
}
|
|
40
|
-
export function getCuaEnvApiKeyForModel(input) {
|
|
41
|
-
const provider = typeof input === "string" ? parseCuaModelRef(input).provider : providerForModel(input);
|
|
42
|
-
return getCuaEnvApiKey(provider);
|
|
43
|
-
}
|
|
44
|
-
export function requireCuaEnvApiKeyForModel(input) {
|
|
45
|
-
const provider = typeof input === "string" ? parseCuaModelRef(input).provider : providerForModel(input);
|
|
46
|
-
return requireCuaEnvApiKey(provider);
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=api-keys.js.map
|
package/dist/api-keys.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api-keys.js","sourceRoot":"","sources":["../src/api-keys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAsC,MAAM,UAAU,CAAC;AAElG;;;;;;GAMG;AACH,MAAM,6BAA6B,GAA2C;IAC7E,MAAM,EAAE,CAAC,gBAAgB,CAAC;IAC1B,SAAS,EAAE,CAAC,uBAAuB,EAAE,mBAAmB,CAAC;IACzD,MAAM,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,MAAM,EAAE,CAAC,gBAAgB,CAAC;IAC1B,MAAM,EAAE,CAAC,gBAAgB,CAAC;CAC1B,CAAC;AAEF,MAAM,UAAU,2BAA2B,CAAC,QAAgB;IAC3D,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,6BAA6B,CAAC,MAAM,CAAC;IAC7C,CAAC;IACD,OAAO,6BAA6B,CAAC,QAAsD,CAAC,IAAI,EAAE,CAAC;AACpG,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC/C,KAAK,MAAM,MAAM,IAAI,2BAA2B,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,KAAK,EAAE,IAAI,EAAE;YAAE,OAAO,KAAK,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IACnD,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,OAAO,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,wDAAwD,QAAQ,GAAG,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,kBAAkB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzF,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAA+B;IACtE,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxG,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,KAA+B;IAC1E,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxG,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC"}
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,uBAAuB,CAAC;AAEtC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,OAAO,KAAK,SAAS,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,cAAc,uBAAuB,CAAC;AAEtC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,OAAO,KAAK,SAAS,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AAEnD,oBAAoB,EAAE,CAAC"}
|
package/dist/models.d.ts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { type Api, type Model } from "@earendil-works/pi-ai";
|
|
2
|
-
export type CuaProvider = "openai" | "anthropic" | "google" | "tzafon" | "yutori";
|
|
3
|
-
export type CuaModelRef = `${CuaProvider}:${string}`;
|
|
4
|
-
export interface CuaModelInfo {
|
|
5
|
-
ref: CuaModelRef;
|
|
6
|
-
provider: CuaProvider;
|
|
7
|
-
model: string;
|
|
8
|
-
name: string;
|
|
9
|
-
}
|
|
10
|
-
export declare const CUA_PROVIDERS: readonly CuaProvider[];
|
|
11
|
-
export type CuaModelMatch = {
|
|
12
|
-
readonly kind: "exact";
|
|
13
|
-
readonly id: string;
|
|
14
|
-
} | {
|
|
15
|
-
readonly kind: "family";
|
|
16
|
-
readonly family: string;
|
|
17
|
-
};
|
|
18
|
-
export interface CuaModelAnnotation {
|
|
19
|
-
readonly match: CuaModelMatch;
|
|
20
|
-
readonly source: string;
|
|
21
|
-
}
|
|
22
|
-
export declare const CUA_MODEL_ANNOTATIONS: Record<CuaProvider, readonly CuaModelAnnotation[]>;
|
|
23
|
-
export declare function parseCuaModelRef(ref: string): {
|
|
24
|
-
provider: CuaProvider;
|
|
25
|
-
model: string;
|
|
26
|
-
};
|
|
27
|
-
export declare function formatCuaModelRef(provider: CuaProvider, model: string): CuaModelRef;
|
|
28
|
-
export declare function listCuaModels(provider?: CuaProvider): CuaModelInfo[];
|
|
29
|
-
export declare function getCuaModel(ref: CuaModelRef): Model<Api>;
|
|
30
|
-
export declare function providerForModel(model: Model<Api>): CuaProvider;
|
|
31
|
-
export declare function isCuaProvider(value: string): value is CuaProvider;
|
|
32
|
-
export declare function findCuaAnnotation(provider: CuaProvider, modelId: string): CuaModelAnnotation | undefined;
|
|
33
|
-
//# sourceMappingURL=models.d.ts.map
|
package/dist/models.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,GAAG,EACR,KAAK,KAAK,EAGV,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAClF,MAAM,MAAM,WAAW,GAAG,GAAG,WAAW,IAAI,MAAM,EAAE,CAAC;AAErD,MAAM,WAAW,YAAY;IAC5B,GAAG,EAAE,WAAW,CAAC;IACjB,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAA0D,CAAC;AAiB3G,MAAM,MAAM,aAAa,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,WAAW,EAAE,SAAS,kBAAkB,EAAE,CAyBpF,CAAC;AA2BF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAWtF;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAEnF;AAED,wBAAgB,aAAa,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,YAAY,EAAE,CAuBpE;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAUxD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,WAAW,CAK/D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,WAAW,CAEjE;AAMD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAWxG"}
|
package/dist/models.js
DELETED
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
import { getModel, getModels, } from "@earendil-works/pi-ai";
|
|
2
|
-
export const CUA_PROVIDERS = ["openai", "anthropic", "google", "tzafon", "yutori"];
|
|
3
|
-
export const CUA_MODEL_ANNOTATIONS = {
|
|
4
|
-
openai: [
|
|
5
|
-
{ match: { kind: "family", family: "gpt-5.4" }, source: "https://developers.openai.com/api/docs/models/gpt-5.4" },
|
|
6
|
-
{ match: { kind: "family", family: "gpt-5.5" }, source: "https://developers.openai.com/api/docs/models/gpt-5.5" },
|
|
7
|
-
],
|
|
8
|
-
anthropic: [
|
|
9
|
-
{ match: { kind: "family", family: "claude-3-7-sonnet" }, source: "https://docs.anthropic.com/en/docs/build-with-claude/computer-use" },
|
|
10
|
-
{ match: { kind: "family", family: "claude-opus-4" }, source: "https://docs.anthropic.com/en/docs/build-with-claude/computer-use" },
|
|
11
|
-
{ match: { kind: "family", family: "claude-sonnet-4" }, source: "https://docs.anthropic.com/en/docs/build-with-claude/computer-use" },
|
|
12
|
-
{ match: { kind: "family", family: "claude-haiku-4" }, source: "https://docs.anthropic.com/en/docs/build-with-claude/computer-use" },
|
|
13
|
-
],
|
|
14
|
-
google: [
|
|
15
|
-
{ match: { kind: "exact", id: "gemini-3-flash-preview" }, source: "https://ai.google.dev/gemini-api/docs/computer-use" },
|
|
16
|
-
{ match: { kind: "exact", id: "gemini-3-pro-preview" }, source: "https://ai.google.dev/gemini-api/docs/computer-use" },
|
|
17
|
-
{ match: { kind: "exact", id: "gemini-2.5-computer-use-preview-10-2025" }, source: "https://ai.google.dev/gemini-api/docs/computer-use" },
|
|
18
|
-
],
|
|
19
|
-
tzafon: [
|
|
20
|
-
{ match: { kind: "exact", id: "tzafon.northstar-cua-fast" }, source: "https://huggingface.co/Tzafon/Northstar-CUA-Fast" },
|
|
21
|
-
],
|
|
22
|
-
yutori: [
|
|
23
|
-
{ match: { kind: "exact", id: "n1-latest" }, source: "https://docs.yutori.com/reference/navigator" },
|
|
24
|
-
{ match: { kind: "exact", id: "n1-20260203" }, source: "https://docs.yutori.com/reference/navigator" },
|
|
25
|
-
{ match: { kind: "exact", id: "n1.5-latest" }, source: "https://docs.yutori.com/reference/navigator" },
|
|
26
|
-
{ match: { kind: "exact", id: "n1.5-20260428" }, source: "https://docs.yutori.com/reference/navigator" },
|
|
27
|
-
],
|
|
28
|
-
};
|
|
29
|
-
// Models that CUA supports which pi-ai's registry does not yet carry. Each
|
|
30
|
-
// entry is a complete Model<Api> so getCuaModel() can return it directly
|
|
31
|
-
// without synthesizing fields at call time. Add an entry here when a provider
|
|
32
|
-
// ships a new model before pi-ai picks it up — and add a matching annotation
|
|
33
|
-
// in CUA_MODEL_ANNOTATIONS above so the support filter recognizes it.
|
|
34
|
-
const CUA_MODEL_OVERRIDES = {
|
|
35
|
-
openai: [
|
|
36
|
-
cuaModel("openai", "gpt-5.5", "GPT-5.5"),
|
|
37
|
-
cuaModel("openai", "gpt-5.5-2026-04-23", "GPT-5.5 (2026-04-23)"),
|
|
38
|
-
],
|
|
39
|
-
anthropic: [],
|
|
40
|
-
google: [
|
|
41
|
-
cuaModel("google", "gemini-2.5-computer-use-preview-10-2025", "Gemini 2.5 Computer Use Preview"),
|
|
42
|
-
],
|
|
43
|
-
tzafon: [
|
|
44
|
-
cuaModel("tzafon", "tzafon.northstar-cua-fast", "Tzafon Northstar CUA Fast"),
|
|
45
|
-
],
|
|
46
|
-
yutori: [
|
|
47
|
-
cuaModel("yutori", "n1.5-latest", "Yutori Navigator n1.5"),
|
|
48
|
-
cuaModel("yutori", "n1.5-20260428", "Yutori Navigator n1.5 (2026-04-28)"),
|
|
49
|
-
cuaModel("yutori", "n1-latest", "Yutori Navigator n1"),
|
|
50
|
-
cuaModel("yutori", "n1-20260203", "Yutori Navigator n1 (2026-02-03)"),
|
|
51
|
-
],
|
|
52
|
-
};
|
|
53
|
-
export function parseCuaModelRef(ref) {
|
|
54
|
-
const idx = ref.indexOf(":");
|
|
55
|
-
if (idx <= 0 || idx === ref.length - 1) {
|
|
56
|
-
throw new Error(`CUA model ref must be provider-qualified as "<provider>:<model>"; got "${ref}"`);
|
|
57
|
-
}
|
|
58
|
-
const provider = ref.slice(0, idx);
|
|
59
|
-
const model = ref.slice(idx + 1);
|
|
60
|
-
if (!isCuaProvider(provider)) {
|
|
61
|
-
throw new Error(`unsupported CUA provider "${provider}"`);
|
|
62
|
-
}
|
|
63
|
-
return { provider, model };
|
|
64
|
-
}
|
|
65
|
-
export function formatCuaModelRef(provider, model) {
|
|
66
|
-
return `${provider}:${model}`;
|
|
67
|
-
}
|
|
68
|
-
export function listCuaModels(provider) {
|
|
69
|
-
const providers = provider ? [provider] : [...CUA_PROVIDERS];
|
|
70
|
-
const byRef = new Map();
|
|
71
|
-
for (const p of providers) {
|
|
72
|
-
for (const model of CUA_MODEL_OVERRIDES[p]) {
|
|
73
|
-
const ref = formatCuaModelRef(p, model.id);
|
|
74
|
-
byRef.set(ref, { ref, provider: p, model: model.id, name: model.name });
|
|
75
|
-
}
|
|
76
|
-
for (const model of getModels(p)) {
|
|
77
|
-
if (!supportsCuaProvider(p, model.id))
|
|
78
|
-
continue;
|
|
79
|
-
const ref = formatCuaModelRef(p, model.id);
|
|
80
|
-
if (byRef.has(ref))
|
|
81
|
-
continue;
|
|
82
|
-
byRef.set(ref, {
|
|
83
|
-
ref,
|
|
84
|
-
provider: p,
|
|
85
|
-
model: model.id,
|
|
86
|
-
name: model.name,
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
return [...byRef.values()].sort(compareCuaModels);
|
|
91
|
-
}
|
|
92
|
-
export function getCuaModel(ref) {
|
|
93
|
-
const { provider, model: modelId } = parseCuaModelRef(ref);
|
|
94
|
-
if (!supportsCuaProvider(provider, modelId)) {
|
|
95
|
-
throw new Error(`unsupported CUA model "${ref}"`);
|
|
96
|
-
}
|
|
97
|
-
const fromRegistry = getModel(provider, modelId);
|
|
98
|
-
if (fromRegistry)
|
|
99
|
-
return fromRegistry;
|
|
100
|
-
const override = CUA_MODEL_OVERRIDES[provider].find((m) => m.id === modelId);
|
|
101
|
-
if (override)
|
|
102
|
-
return override;
|
|
103
|
-
throw new Error(`CUA model "${ref}" is supported but not registered. Add it to pi-ai (models.dev) or CUA_MODEL_OVERRIDES.`);
|
|
104
|
-
}
|
|
105
|
-
export function providerForModel(model) {
|
|
106
|
-
if (!isCuaProvider(model.provider)) {
|
|
107
|
-
throw new Error(`unsupported CUA model provider "${model.provider}"`);
|
|
108
|
-
}
|
|
109
|
-
return model.provider;
|
|
110
|
-
}
|
|
111
|
-
export function isCuaProvider(value) {
|
|
112
|
-
return CUA_PROVIDERS.includes(value);
|
|
113
|
-
}
|
|
114
|
-
function supportsCuaProvider(provider, modelId) {
|
|
115
|
-
return findCuaAnnotation(provider, modelId) !== undefined;
|
|
116
|
-
}
|
|
117
|
-
export function findCuaAnnotation(provider, modelId) {
|
|
118
|
-
const id = modelId.toLowerCase();
|
|
119
|
-
for (const annotation of CUA_MODEL_ANNOTATIONS[provider]) {
|
|
120
|
-
if (annotation.match.kind === "exact") {
|
|
121
|
-
if (id === annotation.match.id.toLowerCase())
|
|
122
|
-
return annotation;
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
125
|
-
const family = annotation.match.family.toLowerCase();
|
|
126
|
-
if (id === family || id.startsWith(`${family}-`))
|
|
127
|
-
return annotation;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
return undefined;
|
|
131
|
-
}
|
|
132
|
-
function cuaModel(provider, id, name) {
|
|
133
|
-
const base = {
|
|
134
|
-
id,
|
|
135
|
-
name,
|
|
136
|
-
provider,
|
|
137
|
-
reasoning: provider === "openai" || provider === "anthropic" || provider === "google",
|
|
138
|
-
input: ["text", "image"],
|
|
139
|
-
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
140
|
-
};
|
|
141
|
-
switch (provider) {
|
|
142
|
-
case "openai":
|
|
143
|
-
return { ...base, api: "openai-responses", baseUrl: "https://api.openai.com/v1", contextWindow: 400_000, maxTokens: 32_768 };
|
|
144
|
-
case "anthropic":
|
|
145
|
-
return { ...base, api: "anthropic-messages", baseUrl: "https://api.anthropic.com", contextWindow: 200_000, maxTokens: 64_000 };
|
|
146
|
-
case "google":
|
|
147
|
-
return { ...base, api: "google-generative-ai", baseUrl: "https://generativelanguage.googleapis.com/v1beta", contextWindow: 1_048_576, maxTokens: 65_536 };
|
|
148
|
-
case "tzafon":
|
|
149
|
-
return { ...base, api: "tzafon-responses", baseUrl: "https://api.lightcone.ai", contextWindow: 128_000, maxTokens: 4_096 };
|
|
150
|
-
case "yutori":
|
|
151
|
-
return { ...base, api: "yutori-chat-completions", baseUrl: "https://api.yutori.com/v1", contextWindow: 128_000, maxTokens: 4_096 };
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
function compareCuaModels(a, b) {
|
|
155
|
-
if (a.provider !== b.provider)
|
|
156
|
-
return CUA_PROVIDERS.indexOf(a.provider) - CUA_PROVIDERS.indexOf(b.provider);
|
|
157
|
-
return a.model.localeCompare(b.model);
|
|
158
|
-
}
|
|
159
|
-
//# sourceMappingURL=models.js.map
|
package/dist/models.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export { CUA_ACTION_TYPES as ANTHROPIC_CUA_ACTION_TYPES, CUA_BATCH_TOOL_DESCRIPTION as ANTHROPIC_BATCH_DESCRIPTION, CUA_BATCH_TOOL_NAME as ANTHROPIC_BATCH_TOOL_NAME, createComputerToolDefinitions, createCuaActionSchema as createActionSchema, createCuaBatchSchema as createBatchSchema, CuaBatchSchema as AnthropicBatchSchema, } from "../common";
|
|
2
|
-
export type { CuaAction as AnthropicAction, CreateComputerToolDefinitionsOptions, CuaBatchInput as AnthropicBatchInput, } from "../common";
|
|
3
|
-
export declare const COMPUTER_TOOL_COORDINATES: {
|
|
4
|
-
readonly type: "pixel";
|
|
5
|
-
};
|
|
6
|
-
export declare const ANTHROPIC_COMPUTER_INSTRUCTIONS = "You control a Kernel cloud browser through computer-use tools. Use batched actions for predictable browser interaction, keyboard navigation where possible, and explicit screenshot or url reads when you need to inspect state.";
|
|
7
|
-
export declare function buildAnthropicSystemPrompt(opts?: {
|
|
8
|
-
suffix?: string;
|
|
9
|
-
}): string;
|
|
10
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/anthropic/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,gBAAgB,IAAI,0BAA0B,EAC9C,0BAA0B,IAAI,2BAA2B,EACzD,mBAAmB,IAAI,yBAAyB,EAChD,6BAA6B,EAC7B,qBAAqB,IAAI,kBAAkB,EAC3C,oBAAoB,IAAI,iBAAiB,EACzC,cAAc,IAAI,oBAAoB,GACtC,MAAM,WAAW,CAAC;AACnB,YAAY,EACX,SAAS,IAAI,eAAe,EAC5B,oCAAoC,EACpC,aAAa,IAAI,mBAAmB,GACpC,MAAM,WAAW,CAAC;AAWnB,eAAO,MAAM,yBAAyB;;CAAoE,CAAC;AAE3G,eAAO,MAAM,+BAA+B,qOAAqO,CAAC;AAElR,wBAAgB,0BAA0B,CAAC,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAEjF"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export { CUA_ACTION_TYPES as ANTHROPIC_CUA_ACTION_TYPES, CUA_BATCH_TOOL_DESCRIPTION as ANTHROPIC_BATCH_DESCRIPTION, CUA_BATCH_TOOL_NAME as ANTHROPIC_BATCH_TOOL_NAME, createComputerToolDefinitions, createCuaActionSchema as createActionSchema, createCuaBatchSchema as createBatchSchema, CuaBatchSchema as AnthropicBatchSchema, } from "../common";
|
|
2
|
-
// Provider-native action vocabulary emitted on `tool_use.input.action`. Latest
|
|
3
|
-
// tool version is `computer_20251124`, which extends earlier dated versions:
|
|
4
|
-
// computer_20241022: key, type, mouse_move, left_click, left_click_drag,
|
|
5
|
-
// right_click, middle_click, double_click, screenshot,
|
|
6
|
-
// cursor_position
|
|
7
|
-
// computer_20250124: + left_mouse_down, left_mouse_up, scroll, hold_key,
|
|
8
|
-
// wait, triple_click
|
|
9
|
-
// computer_20251124: + zoom
|
|
10
|
-
// Source: https://github.com/anthropics/anthropic-quickstarts/blob/main/computer-use-demo/computer_use_demo/tools/computer.py
|
|
11
|
-
export const COMPUTER_TOOL_COORDINATES = { type: "pixel" };
|
|
12
|
-
export const ANTHROPIC_COMPUTER_INSTRUCTIONS = `You control a Kernel cloud browser through computer-use tools. Use batched actions for predictable browser interaction, keyboard navigation where possible, and explicit screenshot or url reads when you need to inspect state.`;
|
|
13
|
-
export function buildAnthropicSystemPrompt(opts = {}) {
|
|
14
|
-
return [ANTHROPIC_COMPUTER_INSTRUCTIONS, opts.suffix].filter(Boolean).join("\n\n");
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/anthropic/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,gBAAgB,IAAI,0BAA0B,EAC9C,0BAA0B,IAAI,2BAA2B,EACzD,mBAAmB,IAAI,yBAAyB,EAChD,6BAA6B,EAC7B,qBAAqB,IAAI,kBAAkB,EAC3C,oBAAoB,IAAI,iBAAiB,EACzC,cAAc,IAAI,oBAAoB,GACtC,MAAM,WAAW,CAAC;AAOnB,+EAA+E;AAC/E,6EAA6E;AAC7E,2EAA2E;AAC3E,4EAA4E;AAC5E,uCAAuC;AACvC,2EAA2E;AAC3E,4CAA4C;AAC5C,8BAA8B;AAC9B,8HAA8H;AAC9H,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,IAAI,EAAE,OAAO,EAAkD,CAAC;AAE3G,MAAM,CAAC,MAAM,+BAA+B,GAAG,kOAAkO,CAAC;AAElR,MAAM,UAAU,0BAA0B,CAAC,OAA4B,EAAE;IACxE,OAAO,CAAC,+BAA+B,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACpF,CAAC"}
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { Type, type Static, type TSchema, type Tool } from "@earendil-works/pi-ai";
|
|
2
|
-
export declare const CUA_ACTION_TYPES: readonly ["click", "double_click", "mouse_down", "mouse_up", "type", "keypress", "scroll", "move", "drag", "wait", "screenshot", "goto", "back", "forward", "url", "cursor_position"];
|
|
3
|
-
export type CuaActionType = (typeof CUA_ACTION_TYPES)[number];
|
|
4
|
-
export interface CuaActionClick {
|
|
5
|
-
type: "click";
|
|
6
|
-
x: number;
|
|
7
|
-
y: number;
|
|
8
|
-
button?: string;
|
|
9
|
-
hold_keys?: string[];
|
|
10
|
-
}
|
|
11
|
-
export interface CuaActionDoubleClick {
|
|
12
|
-
type: "double_click";
|
|
13
|
-
x: number;
|
|
14
|
-
y: number;
|
|
15
|
-
hold_keys?: string[];
|
|
16
|
-
}
|
|
17
|
-
export interface CuaActionMouseDown {
|
|
18
|
-
type: "mouse_down";
|
|
19
|
-
x: number;
|
|
20
|
-
y: number;
|
|
21
|
-
button?: string;
|
|
22
|
-
hold_keys?: string[];
|
|
23
|
-
}
|
|
24
|
-
export interface CuaActionMouseUp {
|
|
25
|
-
type: "mouse_up";
|
|
26
|
-
x: number;
|
|
27
|
-
y: number;
|
|
28
|
-
button?: string;
|
|
29
|
-
hold_keys?: string[];
|
|
30
|
-
}
|
|
31
|
-
export interface CuaActionTypeText {
|
|
32
|
-
type: "type";
|
|
33
|
-
text: string;
|
|
34
|
-
}
|
|
35
|
-
export interface CuaActionKeypress {
|
|
36
|
-
type: "keypress";
|
|
37
|
-
keys: string[];
|
|
38
|
-
}
|
|
39
|
-
export interface CuaActionScroll {
|
|
40
|
-
type: "scroll";
|
|
41
|
-
x?: number;
|
|
42
|
-
y?: number;
|
|
43
|
-
scroll_x?: number;
|
|
44
|
-
scroll_y?: number;
|
|
45
|
-
hold_keys?: string[];
|
|
46
|
-
}
|
|
47
|
-
export interface CuaActionMove {
|
|
48
|
-
type: "move";
|
|
49
|
-
x: number;
|
|
50
|
-
y: number;
|
|
51
|
-
}
|
|
52
|
-
export interface CuaActionDrag {
|
|
53
|
-
type: "drag";
|
|
54
|
-
path: Array<{
|
|
55
|
-
x: number;
|
|
56
|
-
y: number;
|
|
57
|
-
}>;
|
|
58
|
-
button?: string;
|
|
59
|
-
hold_keys?: string[];
|
|
60
|
-
}
|
|
61
|
-
export interface CuaActionWait {
|
|
62
|
-
type: "wait";
|
|
63
|
-
ms?: number;
|
|
64
|
-
}
|
|
65
|
-
export interface CuaActionScreenshot {
|
|
66
|
-
type: "screenshot";
|
|
67
|
-
}
|
|
68
|
-
export interface CuaActionGoto {
|
|
69
|
-
type: "goto";
|
|
70
|
-
url: string;
|
|
71
|
-
}
|
|
72
|
-
export interface CuaActionBack {
|
|
73
|
-
type: "back";
|
|
74
|
-
}
|
|
75
|
-
export interface CuaActionForward {
|
|
76
|
-
type: "forward";
|
|
77
|
-
}
|
|
78
|
-
export interface CuaActionUrl {
|
|
79
|
-
type: "url";
|
|
80
|
-
}
|
|
81
|
-
export interface CuaActionCursorPosition {
|
|
82
|
-
type: "cursor_position";
|
|
83
|
-
}
|
|
84
|
-
export type CuaAction = CuaActionClick | CuaActionDoubleClick | CuaActionMouseDown | CuaActionMouseUp | CuaActionTypeText | CuaActionKeypress | CuaActionScroll | CuaActionMove | CuaActionDrag | CuaActionWait | CuaActionScreenshot | CuaActionGoto | CuaActionBack | CuaActionForward | CuaActionUrl | CuaActionCursorPosition;
|
|
85
|
-
export declare function createCuaActionSchema(actions?: readonly CuaActionType[]): TSchema;
|
|
86
|
-
export declare const CuaActionSchema: Type.TSchema;
|
|
87
|
-
export declare function createCuaBatchSchema(actions?: readonly CuaActionType[]): TSchema;
|
|
88
|
-
export declare const CuaBatchSchema: Type.TSchema;
|
|
89
|
-
export declare const CuaNavigationSchema: Type.TObject<{
|
|
90
|
-
action: Type.TUnion<[Type.TLiteral<"goto">, Type.TLiteral<"back">, Type.TLiteral<"forward">, Type.TLiteral<"url">]>;
|
|
91
|
-
url: Type.TOptional<Type.TString>;
|
|
92
|
-
}>;
|
|
93
|
-
export interface CuaBatchInput {
|
|
94
|
-
actions: CuaAction[];
|
|
95
|
-
}
|
|
96
|
-
export type CuaNavigationInput = Static<typeof CuaNavigationSchema>;
|
|
97
|
-
export declare const CUA_BATCH_TOOL_NAME = "batch_computer_actions";
|
|
98
|
-
export declare const CUA_NAVIGATION_TOOL_NAME = "computer_use_extra";
|
|
99
|
-
export declare const CUA_BATCH_TOOL_DESCRIPTION: string;
|
|
100
|
-
export declare const CUA_NAVIGATION_TOOL_DESCRIPTION = "High-level browser navigation helpers for goto, back, forward, and url.";
|
|
101
|
-
export interface CreateComputerToolDefinitionsOptions {
|
|
102
|
-
actions?: readonly CuaActionType[];
|
|
103
|
-
}
|
|
104
|
-
export type ComputerToolCoordinateSystem = {
|
|
105
|
-
type: "pixel";
|
|
106
|
-
} | {
|
|
107
|
-
type: "normalized";
|
|
108
|
-
range: readonly [number, number];
|
|
109
|
-
};
|
|
110
|
-
export declare function createComputerToolDefinitions(options?: CreateComputerToolDefinitionsOptions): Tool[];
|
|
111
|
-
//# sourceMappingURL=common.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/providers/common.ts"],"names":[],"mappings":"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"}
|