@botiverse/oar 0.15.2 → 0.16.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.
- package/README.md +4 -3
- package/dist/observe/tool-activity.d.ts +9 -2
- package/dist/observe/tool-activity.d.ts.map +1 -1
- package/dist/observe/tool-activity.js +34 -9
- package/dist/observe/tool-activity.js.map +1 -1
- package/dist/observe/tool-groups.d.ts.map +1 -1
- package/dist/observe/tool-groups.js +1 -0
- package/dist/observe/tool-groups.js.map +1 -1
- package/dist/runtimes/cursor/index.d.ts +6 -3
- package/dist/runtimes/cursor/index.d.ts.map +1 -1
- package/dist/runtimes/cursor/index.js +6 -3
- package/dist/runtimes/cursor/index.js.map +1 -1
- package/dist/runtimes/cursor/installation.d.ts +7 -6
- package/dist/runtimes/cursor/installation.d.ts.map +1 -1
- package/dist/runtimes/cursor/installation.js +35 -13
- package/dist/runtimes/cursor/installation.js.map +1 -1
- package/dist/runtimes/cursor/list-models.d.ts +7 -8
- package/dist/runtimes/cursor/list-models.d.ts.map +1 -1
- package/dist/runtimes/cursor/list-models.js +50 -82
- package/dist/runtimes/cursor/list-models.js.map +1 -1
- package/dist/runtimes/cursor/model.d.ts +25 -0
- package/dist/runtimes/cursor/model.d.ts.map +1 -0
- package/dist/runtimes/cursor/model.js +98 -0
- package/dist/runtimes/cursor/model.js.map +1 -0
- package/dist/runtimes/cursor/projection.d.ts +40 -0
- package/dist/runtimes/cursor/projection.d.ts.map +1 -0
- package/dist/runtimes/cursor/projection.js +205 -0
- package/dist/runtimes/cursor/projection.js.map +1 -0
- package/dist/runtimes/cursor/run.d.ts +33 -0
- package/dist/runtimes/cursor/run.d.ts.map +1 -0
- package/dist/runtimes/cursor/run.js +68 -0
- package/dist/runtimes/cursor/run.js.map +1 -0
- package/dist/runtimes/cursor/sdk.d.ts +64 -0
- package/dist/runtimes/cursor/sdk.d.ts.map +1 -0
- package/dist/runtimes/cursor/sdk.js +50 -0
- package/dist/runtimes/cursor/sdk.js.map +1 -0
- package/dist/runtimes/cursor/session.d.ts +4 -37
- package/dist/runtimes/cursor/session.d.ts.map +1 -1
- package/dist/runtimes/cursor/session.js +265 -71
- package/dist/runtimes/cursor/session.js.map +1 -1
- package/dist/shared/acp/client-app.d.ts +0 -2
- package/dist/shared/acp/client-app.d.ts.map +1 -1
- package/dist/shared/acp/client-app.js +1 -8
- package/dist/shared/acp/client-app.js.map +1 -1
- package/dist/shared/acp/effort.d.ts +1 -1
- package/dist/shared/acp/effort.js +1 -1
- package/dist/shared/acp/model.d.ts +5 -8
- package/dist/shared/acp/model.d.ts.map +1 -1
- package/dist/shared/acp/model.js +6 -14
- package/dist/shared/acp/model.js.map +1 -1
- package/dist/shared/acp/process.d.ts +0 -2
- package/dist/shared/acp/process.d.ts.map +1 -1
- package/dist/shared/acp/process.js +2 -7
- package/dist/shared/acp/process.js.map +1 -1
- package/dist/shared/acp/profile.d.ts +2 -17
- package/dist/shared/acp/profile.d.ts.map +1 -1
- package/dist/shared/acp/profile.js +1 -5
- package/dist/shared/acp/profile.js.map +1 -1
- package/dist/shared/acp/records.d.ts +1 -3
- package/dist/shared/acp/records.d.ts.map +1 -1
- package/dist/shared/acp/records.js +6 -14
- package/dist/shared/acp/records.js.map +1 -1
- package/dist/shared/acp/session.d.ts.map +1 -1
- package/dist/shared/acp/session.js +1 -6
- package/dist/shared/acp/session.js.map +1 -1
- package/dist/shared/failure-class.js +1 -1
- package/dist/shared/failure-class.js.map +1 -1
- package/dist/shared/update.d.ts +1 -1
- package/dist/shared/update.d.ts.map +1 -1
- package/dist/shared/update.js +3 -4
- package/dist/shared/update.js.map +1 -1
- package/package.json +6 -5
- package/dist/runtimes/cursor/update.d.ts +0 -19
- package/dist/runtimes/cursor/update.d.ts.map +0 -1
- package/dist/runtimes/cursor/update.js +0 -88
- package/dist/runtimes/cursor/update.js.map +0 -1
- package/dist/shared/acp/vendor-updates.d.ts +0 -7
- package/dist/shared/acp/vendor-updates.d.ts.map +0 -1
- package/dist/shared/acp/vendor-updates.js +0 -46
- package/dist/shared/acp/vendor-updates.js.map +0 -1
package/README.md
CHANGED
|
@@ -59,7 +59,7 @@ The package has six public entry points:
|
|
|
59
59
|
|
|
60
60
|
Brand SVG files are exported at `@botiverse/oar/assets/brands/<runtime-id>.svg`. Any other deep import (`@botiverse/oar/dist/...`, source paths) is internal and may break without notice.
|
|
61
61
|
|
|
62
|
-
Antigravity,
|
|
62
|
+
Antigravity, Grok, and Kimi share an internal ACP v1 transport and session kernel, but only their concrete runtime identities are public. The registry deliberately does not expose a generic `acp` runtime. Pi and Cursor run in the host process through their SDKs (`@earendil-works/pi-coding-agent`, `@cursor/sdk`), both dependencies of this package; `@cursor/sdk` is Cursor's own package under Cursor's terms, and it signs in with `CURSOR_API_KEY` or its own `Cursor.auth.login()`.
|
|
63
63
|
|
|
64
64
|
The command-line interface is a separate package: `@botiverse/oar-cli`.
|
|
65
65
|
|
|
@@ -73,8 +73,9 @@ codex, grok and kimi; its failure semantics are in the
|
|
|
73
73
|
updater would install and where that answer came from;
|
|
74
74
|
`runtime.upgrade(installation)` runs that updater without a terminal and
|
|
75
75
|
judges the result by the version the same executable reports afterwards,
|
|
76
|
-
never by its exit code. oar never upgrades on its own. Claude, Codex,
|
|
77
|
-
|
|
76
|
+
never by its exit code. oar never upgrades on its own. Claude, Codex, Grok
|
|
77
|
+
and Kimi have both; Antigravity has only the check; Pi and Cursor move with
|
|
78
|
+
oar.
|
|
78
79
|
See [runtime updates](https://github.com/botiverse/oar/blob/main/docs/spec/update.md).
|
|
79
80
|
|
|
80
81
|
Images go with an input through `InputOptions.images` (`{ path }` entries:
|
|
@@ -8,18 +8,25 @@
|
|
|
8
8
|
* The tool set is OPEN (custom + MCP tools have arbitrary names), so unknown
|
|
9
9
|
* tools fall back to "other" rather than being force-fit.
|
|
10
10
|
*/
|
|
11
|
-
export type ToolActionKind = "run_command" | "read_file" | "edit_file" | "search" | "web" | "mcp" | "other";
|
|
11
|
+
export type ToolActionKind = "run_command" | "read_file" | "edit_file" | "search" | "web" | "mcp" | "wait" | "other";
|
|
12
12
|
export interface ToolAction {
|
|
13
13
|
readonly kind: ToolActionKind;
|
|
14
14
|
/** A short target extracted from the tool input: the command text, a file path, a query. */
|
|
15
15
|
readonly detail?: string;
|
|
16
16
|
/**
|
|
17
17
|
* `run_command`: the command line as the runtime reported it. Set only for runtimes whose
|
|
18
|
-
* shell input shape is recorded (claude `Bash`, codex `commandExecution`, pi `bash`).
|
|
18
|
+
* shell input shape is recorded (claude `Bash`, codex `commandExecution`, pi `bash`, cursor `shell`).
|
|
19
19
|
*/
|
|
20
20
|
readonly command?: string;
|
|
21
21
|
/** The agent's own one-line account of the call, where the runtime sends one (claude `Bash`). */
|
|
22
22
|
readonly description?: string;
|
|
23
|
+
/**
|
|
24
|
+
* `wait`: how long the agent asked to wait, in ms, as the runtime reported it (codex
|
|
25
|
+
* `sleep`'s `durationMs`). How long it waited, as OAR saw it, is the tool part's
|
|
26
|
+
* `endedAt - startedAt` (when OAR observed the call start and end): a steer can end a
|
|
27
|
+
* wait early.
|
|
28
|
+
*/
|
|
29
|
+
readonly durationMs?: number;
|
|
23
30
|
}
|
|
24
31
|
/** Classify one tool call into a cross-runtime semantic action plus an extracted detail. */
|
|
25
32
|
export declare function classifyTool(runtimeId: string, tool: string, inputJson?: string): ToolAction;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-activity.d.ts","sourceRoot":"","sources":["../../src/observe/tool-activity.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,MAAM,MAAM,cAAc,GACtB,aAAa,GACb,WAAW,GACX,WAAW,GACX,QAAQ,GACR,KAAK,GACL,KAAK,GACL,OAAO,CAAC;AAEZ,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,iGAAiG;IACjG,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-activity.d.ts","sourceRoot":"","sources":["../../src/observe/tool-activity.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,MAAM,MAAM,cAAc,GACtB,aAAa,GACb,WAAW,GACX,WAAW,GACX,QAAQ,GACR,KAAK,GACL,KAAK,GACL,MAAM,GACN,OAAO,CAAC;AAEZ,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,iGAAiG;IACjG,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAiID,4FAA4F;AAC5F,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,UAAU,CAM5F;AAaD,kHAAkH;AAClH,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAElG"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { asRecord, parseJson } from "../shared/json.js";
|
|
1
|
+
import { asNumber, asRecord, parseJson } from "../shared/json.js";
|
|
2
2
|
// Per-runtime tool name → kind. Names are what the tool_call_started event
|
|
3
3
|
// carries (codex uses its item type; claude/pi use the tool name).
|
|
4
4
|
const BY_RUNTIME = {
|
|
@@ -18,6 +18,7 @@ const BY_RUNTIME = {
|
|
|
18
18
|
fileChange: "edit_file",
|
|
19
19
|
webSearch: "web",
|
|
20
20
|
mcpToolCall: "mcp",
|
|
21
|
+
sleep: "wait",
|
|
21
22
|
},
|
|
22
23
|
pi: {
|
|
23
24
|
bash: "run_command",
|
|
@@ -28,6 +29,21 @@ const BY_RUNTIME = {
|
|
|
28
29
|
grep: "search",
|
|
29
30
|
find: "search",
|
|
30
31
|
},
|
|
32
|
+
// The `toolCall.type` of `@cursor/sdk` 1.0.35's tool updates.
|
|
33
|
+
cursor: {
|
|
34
|
+
shell: "run_command",
|
|
35
|
+
read: "read_file",
|
|
36
|
+
ls: "read_file",
|
|
37
|
+
edit: "edit_file",
|
|
38
|
+
write: "edit_file",
|
|
39
|
+
delete: "edit_file",
|
|
40
|
+
grep: "search",
|
|
41
|
+
glob: "search",
|
|
42
|
+
semSearch: "search",
|
|
43
|
+
webSearch: "web",
|
|
44
|
+
webFetch: "web",
|
|
45
|
+
mcp: "mcp",
|
|
46
|
+
},
|
|
31
47
|
};
|
|
32
48
|
function kindOf(runtimeId, tool) {
|
|
33
49
|
const runtime = runtimeId.replace(/-aimock$/u, "");
|
|
@@ -55,18 +71,26 @@ function stringFields(inputJson, withDescription) {
|
|
|
55
71
|
...(description === undefined ? {} : { description }),
|
|
56
72
|
};
|
|
57
73
|
}
|
|
74
|
+
/** A wait's asked duration: the input's `durationMs`, when a finite positive number. */
|
|
75
|
+
function waitFields(inputJson) {
|
|
76
|
+
const durationMs = asNumber(asRecord(parseJson(inputJson))?.durationMs);
|
|
77
|
+
return durationMs !== null && durationMs > 0 ? { durationMs } : {};
|
|
78
|
+
}
|
|
58
79
|
/**
|
|
59
|
-
* Where each runtime's
|
|
60
|
-
* (tests/replay/fixtures/*-tool-round.raw.jsonl)
|
|
61
|
-
*
|
|
62
|
-
* not JSON
|
|
80
|
+
* Where each runtime's tools keep the fields a host shows, from recorded inputs
|
|
81
|
+
* (tests/replay/fixtures/*-tool-round.raw.jsonl): a shell tool's command (and
|
|
82
|
+
* description), a wait's duration. A runtime with no recorded shape gets none.
|
|
83
|
+
* codex's `commandExecution` input is the bare command line, not JSON
|
|
84
|
+
* (codex/item-detail.ts).
|
|
63
85
|
*/
|
|
64
|
-
const
|
|
86
|
+
const FIELDS = {
|
|
65
87
|
claude: { Bash: (input) => stringFields(input, true) },
|
|
66
88
|
codex: {
|
|
67
89
|
commandExecution: (input) => input.length === 0 || asRecord(parseJson(input)) !== null ? {} : { command: input },
|
|
90
|
+
sleep: waitFields,
|
|
68
91
|
},
|
|
69
92
|
pi: { bash: (input) => stringFields(input, false) },
|
|
93
|
+
cursor: { shell: (input) => stringFields(input, false) },
|
|
70
94
|
};
|
|
71
95
|
const FIRST_STRING_KEYS = ["command", "cmd", "path", "file_path", "filePath", "file", "pattern", "query", "url"];
|
|
72
96
|
function detailOf(inputJson) {
|
|
@@ -96,9 +120,9 @@ function detailOf(inputJson) {
|
|
|
96
120
|
export function classifyTool(runtimeId, tool, inputJson) {
|
|
97
121
|
const kind = kindOf(runtimeId, tool);
|
|
98
122
|
const runtime = runtimeId.replace(/-aimock$/u, "");
|
|
99
|
-
const
|
|
100
|
-
const detail = detailOf(inputJson) ??
|
|
101
|
-
return { kind, ...(detail === undefined ? {} : { detail }), ...
|
|
123
|
+
const fields = inputJson === undefined ? {} : (FIELDS[runtime]?.[tool]?.(inputJson) ?? {});
|
|
124
|
+
const detail = detailOf(inputJson) ?? fields.command ?? (kind === "other" ? tool : undefined);
|
|
125
|
+
return { kind, ...(detail === undefined ? {} : { detail }), ...fields };
|
|
102
126
|
}
|
|
103
127
|
const LABELS = {
|
|
104
128
|
run_command: { running: "Running command", done: "Ran command", failed: "Command failed" },
|
|
@@ -107,6 +131,7 @@ const LABELS = {
|
|
|
107
131
|
search: { running: "Searching", done: "Searched", failed: "Search failed" },
|
|
108
132
|
web: { running: "Searching the web", done: "Searched the web", failed: "Web request failed" },
|
|
109
133
|
mcp: { running: "Using a tool", done: "Used a tool", failed: "Tool failed" },
|
|
134
|
+
wait: { running: "Waiting", done: "Waited", failed: "Wait failed" },
|
|
110
135
|
other: { running: "Working", done: "Done", failed: "Failed" },
|
|
111
136
|
};
|
|
112
137
|
/** The human label for an action in a given lifecycle state; tense centralized here so events stay consistent. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-activity.js","sourceRoot":"","sources":["../../src/observe/tool-activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-activity.js","sourceRoot":"","sources":["../../src/observe/tool-activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AA2ClE,2EAA2E;AAC3E,mEAAmE;AACnE,MAAM,UAAU,GAAmD;IACjE,MAAM,EAAE;QACN,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;QAClB,YAAY,EAAE,WAAW;QACzB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,KAAK;QACf,SAAS,EAAE,KAAK;KACjB;IACD,KAAK,EAAE;QACL,gBAAgB,EAAE,aAAa;QAC/B,UAAU,EAAE,WAAW;QACvB,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,KAAK;QAClB,KAAK,EAAE,MAAM;KACd;IACD,EAAE,EAAE;QACF,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,WAAW;QACjB,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;KACf;IACD,8DAA8D;IAC9D,MAAM,EAAE;QACN,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,WAAW;QACjB,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,WAAW;QACnB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,QAAQ;QACnB,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,KAAK;QACf,GAAG,EAAE,KAAK;KACX;CACF,CAAC;AAEF,SAAS,MAAM,CAAC,SAAiB,EAAE,IAAY;IAC7C,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,uEAAuE;IACvE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAID,+FAA+F;AAC/F,SAAS,YAAY,CAAC,SAAiB,EAAE,eAAwB;IAC/D,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,CAAC,GAAW,EAAsB,EAAE;QAC/C,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;QAC3B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,OAAO;QACL,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;QAC7C,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,wFAAwF;AACxF,SAAS,UAAU,CAAC,SAAiB;IACnC,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACxE,OAAO,UAAU,KAAK,IAAI,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACrE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,MAAM,GAAmE;IAC7E,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE;IACtD,KAAK,EAAE;QACL,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE,CAC1B,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;QACrF,KAAK,EAAE,UAAU;KAClB;IACD,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;IACnD,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;CACzD,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAEjH,SAAS,QAAQ,CAAC,SAA6B;IAC7C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,sEAAsE;QACtE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,GAAY,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,YAAY,CAAC,SAAiB,EAAE,IAAY,EAAE,SAAkB;IAC9E,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3F,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC9F,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;AAC1E,CAAC;AAED,MAAM,MAAM,GAA8E;IACxF,WAAW,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,gBAAgB,EAAE;IAC1F,SAAS,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE;IAChF,SAAS,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE;IAClF,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE;IAC3E,GAAG,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,oBAAoB,EAAE;IAC7F,GAAG,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE;IAC5E,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE;IACnE,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;CAC9D,CAAC;AAEF,kHAAkH;AAClH,MAAM,UAAU,eAAe,CAAC,IAAoB,EAAE,KAAoC;IACxF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-groups.d.ts","sourceRoot":"","sources":["../../src/observe/tool-groups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEvE;;;;;;GAMG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,CAAC;AAErE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,qDAAqD;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,GAAG,aAAa,CAAC,EAAE,CAAC;IACtD,qFAAqF;IACrF,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtF,sCAAsC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC;CAC7B;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC1E,SAAS,CAAC;AAqBd,qGAAqG;AACrG,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,gBAAgB,EAAE,CAoBnG;
|
|
1
|
+
{"version":3,"file":"tool-groups.d.ts","sourceRoot":"","sources":["../../src/observe/tool-groups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEvE;;;;;;GAMG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAC3D,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,CAAC;AAErE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,qDAAqD;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,GAAG,aAAa,CAAC,EAAE,CAAC;IACtD,qFAAqF;IACrF,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtF,sCAAsC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC;CAC7B;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC1E,SAAS,CAAC;AAqBd,qGAAqG;AACrG,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,gBAAgB,EAAE,CAoBnG;AAaD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,MAAM,CAkBpE"}
|
|
@@ -47,6 +47,7 @@ const DONE = {
|
|
|
47
47
|
search: (n) => (n === 1 ? "searched" : `searched ${n} times`),
|
|
48
48
|
web: (n) => (n === 1 ? "searched the web" : `searched the web ${n} times`),
|
|
49
49
|
mcp: (n) => (n === 1 ? "used a tool" : `used ${n} tools`),
|
|
50
|
+
wait: (n) => (n === 1 ? "waited" : `waited ${n} times`),
|
|
50
51
|
other: (n) => (n === 1 ? "used a tool" : `used ${n} tools`),
|
|
51
52
|
};
|
|
52
53
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-groups.js","sourceRoot":"","sources":["../../src/observe/tool-groups.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool-groups.js","sourceRoot":"","sources":["../../src/observe/tool-groups.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Cursor, embedded through its official SDK (`@cursor/sdk`): the agent runs
|
|
3
|
+
* in this process, the way pi does. Account usage is absent: the SDK's
|
|
4
|
+
* usage call is not available to every account (`feature_unavailable`,
|
|
5
|
+
* probed 2026-10-03), and each run reports its own tokens anyway.
|
|
6
|
+
*/
|
|
2
7
|
export declare const cursorRuntime: {
|
|
3
8
|
readonly id: "cursor";
|
|
4
9
|
readonly brand: {
|
|
@@ -11,8 +16,6 @@ export declare const cursorRuntime: {
|
|
|
11
16
|
};
|
|
12
17
|
readonly installation: import("../../index.js").InstallationProbe;
|
|
13
18
|
readonly listModels: import("../../index.js").ModelLister;
|
|
14
|
-
readonly checkUpdate: import("../../index.js").UpdateChecker;
|
|
15
|
-
readonly upgrade: typeof cursorUpgrade;
|
|
16
19
|
readonly session: import("../../index.js").StartSession;
|
|
17
20
|
} & import("../../index.js").RuntimeInventories & {
|
|
18
21
|
readonly brand: import("../../brands.js").RuntimeBrand;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtimes/cursor/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtimes/cursor/index.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;CAMxB,CAAC;AAEH,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -2,15 +2,18 @@ import { runtimeBrands } from "../../brands.js";
|
|
|
2
2
|
import { defineRuntime } from "../../contracts/runtime.js";
|
|
3
3
|
import { cursorInstallation } from "./installation.js";
|
|
4
4
|
import { cursorListModels } from "./list-models.js";
|
|
5
|
-
import { cursorCheckUpdate, cursorUpgrade } from "./update.js";
|
|
6
5
|
import { cursorSession } from "./session.js";
|
|
6
|
+
/**
|
|
7
|
+
* Cursor, embedded through its official SDK (`@cursor/sdk`): the agent runs
|
|
8
|
+
* in this process, the way pi does. Account usage is absent: the SDK's
|
|
9
|
+
* usage call is not available to every account (`feature_unavailable`,
|
|
10
|
+
* probed 2026-10-03), and each run reports its own tokens anyway.
|
|
11
|
+
*/
|
|
7
12
|
export const cursorRuntime = defineRuntime({
|
|
8
13
|
id: "cursor",
|
|
9
14
|
brand: runtimeBrands.cursor,
|
|
10
15
|
installation: cursorInstallation,
|
|
11
16
|
listModels: cursorListModels,
|
|
12
|
-
checkUpdate: cursorCheckUpdate,
|
|
13
|
-
upgrade: cursorUpgrade,
|
|
14
17
|
session: cursorSession,
|
|
15
18
|
});
|
|
16
19
|
export { cursorListModels, projectCursorModels } from "./list-models.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtimes/cursor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtimes/cursor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC;IACzC,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,aAAa,CAAC,MAAM;IAC3B,YAAY,EAAE,kBAAkB;IAChC,UAAU,EAAE,gBAAgB;IAC5B,OAAO,EAAE,aAAa;CACvB,CAAC,CAAC;AAEH,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import type { InstallationProbe } from "../../contracts/installation.js";
|
|
1
2
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* Cursor ships inside this package as the `@cursor/sdk` dependency, the way
|
|
4
|
+
* pi does: there is no executable to probe and no version to report (the
|
|
5
|
+
* embedder pins the SDK). The SDK's agent needs its native companion package,
|
|
6
|
+
* which exists only for the platforms in `PLATFORMS`.
|
|
6
7
|
*/
|
|
7
|
-
export declare function
|
|
8
|
-
export declare const cursorInstallation:
|
|
8
|
+
export declare function cursorInstallationFor(platform: string, arch: string, resolvable: () => Promise<boolean>): InstallationProbe;
|
|
9
|
+
export declare const cursorInstallation: InstallationProbe;
|
|
9
10
|
//# sourceMappingURL=installation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installation.d.ts","sourceRoot":"","sources":["../../../src/runtimes/cursor/installation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"installation.d.ts","sourceRoot":"","sources":["../../../src/runtimes/cursor/installation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAwB,MAAM,iCAAiC,CAAC;AAkB/F;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAO3H;AAED,eAAO,MAAM,kBAAkB,EAAE,iBAQ/B,CAAC"}
|
|
@@ -1,17 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
const SDK_PACKAGE = "@cursor/sdk";
|
|
2
|
+
/** The platforms `@cursor/sdk` 1.0.35 ships a native companion package for. */
|
|
3
|
+
const PLATFORMS = new Set(["darwin-arm64", "darwin-x64", "linux-arm64", "linux-x64", "win32-x64"]);
|
|
4
|
+
async function sdkLoads() {
|
|
5
|
+
try {
|
|
6
|
+
// A string LITERAL, not SDK_PACKAGE: bundlers only compile in (and
|
|
7
|
+
// resolve) literal specifiers, and this fallback exists for bundles.
|
|
8
|
+
await import("@cursor/sdk");
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
4
15
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
16
|
+
* Cursor ships inside this package as the `@cursor/sdk` dependency, the way
|
|
17
|
+
* pi does: there is no executable to probe and no version to report (the
|
|
18
|
+
* embedder pins the SDK). The SDK's agent needs its native companion package,
|
|
19
|
+
* which exists only for the platforms in `PLATFORMS`.
|
|
9
20
|
*/
|
|
10
|
-
export function
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
21
|
+
export function cursorInstallationFor(platform, arch, resolvable) {
|
|
22
|
+
return async () => {
|
|
23
|
+
if (!PLATFORMS.has(`${platform}-${arch}`)) {
|
|
24
|
+
return { kind: "unsupported", reason: `@cursor/sdk has no native package for ${platform}-${arch}` };
|
|
25
|
+
}
|
|
26
|
+
return await resolvable() ? { kind: "available", via: "bundled" } : { kind: "not_found" };
|
|
27
|
+
};
|
|
15
28
|
}
|
|
16
|
-
export const cursorInstallation =
|
|
29
|
+
export const cursorInstallation = cursorInstallationFor(process.platform, process.arch, async () => {
|
|
30
|
+
try {
|
|
31
|
+
import.meta.resolve(SDK_PACKAGE);
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
const loads = await sdkLoads();
|
|
36
|
+
return loads;
|
|
37
|
+
}
|
|
38
|
+
});
|
|
17
39
|
//# sourceMappingURL=installation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installation.js","sourceRoot":"","sources":["../../../src/runtimes/cursor/installation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"installation.js","sourceRoot":"","sources":["../../../src/runtimes/cursor/installation.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,GAAG,aAAa,CAAC;AAElC,+EAA+E;AAC/E,MAAM,SAAS,GAAwB,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;AAExH,KAAK,UAAU,QAAQ;IACrB,IAAI,CAAC;QACH,mEAAmE;QACnE,qEAAqE;QACrE,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,IAAY,EAAE,UAAkC;IACtG,OAAO,KAAK,IAAmC,EAAE;QAC/C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;YAC1C,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,yCAAyC,QAAQ,IAAI,IAAI,EAAE,EAAE,CAAC;QACtG,CAAC;QACD,OAAO,MAAM,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC5F,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAsB,qBAAqB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;IACpH,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import type { ModelEntry, ModelLister } from "../../contracts/list-models.js";
|
|
2
|
+
import { type CursorSdk, type ModelListItem } from "./sdk.js";
|
|
2
3
|
/**
|
|
3
|
-
* Project
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* at their default values. The reasoning parameter is the `thought_level`
|
|
8
|
-
* option a session would set for that model (`acpThoughtLevelOption`: the
|
|
9
|
-
* `effort` menu over the `thinking` switch when a Claude model has both).
|
|
4
|
+
* Project `Cursor.models.list()` (SDK 1.0.35): `id` is the selector the SDK
|
|
5
|
+
* accepts, the effort menu is the model's reasoning parameter
|
|
6
|
+
* (`cursorEffortParameter`), and the default effort is that parameter's
|
|
7
|
+
* value in the variant the catalog marks `isDefault`.
|
|
10
8
|
*/
|
|
11
|
-
export declare function projectCursorModels(
|
|
9
|
+
export declare function projectCursorModels(models: readonly ModelListItem[]): ModelEntry[];
|
|
10
|
+
export declare function cursorListModelsWith(load: () => Promise<CursorSdk>): ModelLister;
|
|
12
11
|
export declare const cursorListModels: ModelLister;
|
|
13
12
|
//# sourceMappingURL=list-models.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-models.d.ts","sourceRoot":"","sources":["../../../src/runtimes/cursor/list-models.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"list-models.d.ts","sourceRoot":"","sources":["../../../src/runtimes/cursor/list-models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE9E,OAAO,EAAiB,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAE7E;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,GAAG,UAAU,EAAE,CAalF;AAYD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,WAAW,CAyBhF;AAED,eAAO,MAAM,gBAAgB,EAAE,WAAiD,CAAC"}
|
|
@@ -1,92 +1,60 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import { acpThoughtLevelOption } from "../../shared/acp/model.js";
|
|
4
|
-
import { startAcpProcess, withAcpDeadline } from "../../shared/acp/process.js";
|
|
5
|
-
import { asRecord, asRecordList } from "../../shared/json.js";
|
|
6
|
-
import { cursorAcpArgs, cursorClientCapabilitiesMeta, selectCursorAuthMethod } from "./session.js";
|
|
7
|
-
const listMethod = "cursor/list_available_models";
|
|
8
|
-
function text(value) {
|
|
9
|
-
if (typeof value !== "string") {
|
|
10
|
-
return undefined;
|
|
11
|
-
}
|
|
12
|
-
const trimmed = value.trim();
|
|
13
|
-
return trimmed.length > 0 ? trimmed : undefined;
|
|
14
|
-
}
|
|
1
|
+
import { cursorEffortParameter } from "./model.js";
|
|
2
|
+
import { loadCursorSdk } from "./sdk.js";
|
|
15
3
|
/**
|
|
16
|
-
* Project
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* at their default values. The reasoning parameter is the `thought_level`
|
|
21
|
-
* option a session would set for that model (`acpThoughtLevelOption`: the
|
|
22
|
-
* `effort` menu over the `thinking` switch when a Claude model has both).
|
|
4
|
+
* Project `Cursor.models.list()` (SDK 1.0.35): `id` is the selector the SDK
|
|
5
|
+
* accepts, the effort menu is the model's reasoning parameter
|
|
6
|
+
* (`cursorEffortParameter`), and the default effort is that parameter's
|
|
7
|
+
* value in the variant the catalog marks `isDefault`.
|
|
23
8
|
*/
|
|
24
|
-
export function projectCursorModels(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
if (id === undefined) {
|
|
29
|
-
continue;
|
|
30
|
-
}
|
|
31
|
-
const displayName = text(model.name);
|
|
32
|
-
const thoughtLevel = acpThoughtLevelOption({ configOptions: model.configOptions }) ?? undefined;
|
|
33
|
-
const effortLevels = thoughtLevel === undefined
|
|
9
|
+
export function projectCursorModels(models) {
|
|
10
|
+
return models.map((model) => {
|
|
11
|
+
const parameter = cursorEffortParameter(model);
|
|
12
|
+
const defaultEffort = parameter === null
|
|
34
13
|
? undefined
|
|
35
|
-
:
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
id,
|
|
39
|
-
...(
|
|
40
|
-
...(effortLevels === undefined || effortLevels.length === 0 ? {} : { effortLevels }),
|
|
14
|
+
: model.variants?.find((variant) => variant.isDefault === true)?.params.find((param) => param.id === parameter.id)?.value;
|
|
15
|
+
return {
|
|
16
|
+
id: model.id,
|
|
17
|
+
...(model.displayName === "" || model.displayName === model.id ? {} : { displayName: model.displayName }),
|
|
18
|
+
...(parameter === null || parameter.levels.length === 0 ? {} : { effortLevels: parameter.levels }),
|
|
41
19
|
...(defaultEffort === undefined ? {} : { defaultEffort }),
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return entries;
|
|
20
|
+
};
|
|
21
|
+
});
|
|
45
22
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
const response = await withAcpDeadline(runtime, initialize, timeoutMs, (requestOptions) => runtime.connection.agent.request(initialize, {
|
|
51
|
-
protocolVersion: PROTOCOL_VERSION,
|
|
52
|
-
clientCapabilities: {
|
|
53
|
-
fs: { readTextFile: false, writeTextFile: false },
|
|
54
|
-
terminal: false,
|
|
55
|
-
_meta: cursorClientCapabilitiesMeta(),
|
|
56
|
-
},
|
|
57
|
-
clientInfo: { name: "oar", version: "0.0.0" },
|
|
58
|
-
}, requestOptions));
|
|
59
|
-
const method = selectCursorAuthMethod(asRecord(response) ?? {});
|
|
60
|
-
if (method !== undefined) {
|
|
61
|
-
const authenticate = methods.agent.authenticate;
|
|
62
|
-
await withAcpDeadline(runtime, authenticate, timeoutMs, (requestOptions) => runtime.connection.agent.request(authenticate, { methodId: method }, requestOptions));
|
|
63
|
-
}
|
|
64
|
-
return await withAcpDeadline(runtime, listMethod, timeoutMs, (requestOptions) => runtime.connection.agent.request(listMethod, {}, requestOptions));
|
|
65
|
-
}
|
|
66
|
-
finally {
|
|
67
|
-
runtime.kill();
|
|
68
|
-
await runtime.exited;
|
|
23
|
+
/** Without a credential the SDK refuses before asking (`ConfigurationError`: "API key is required …"). */
|
|
24
|
+
function unauthenticated(error) {
|
|
25
|
+
if (!(error instanceof Error)) {
|
|
26
|
+
return null;
|
|
69
27
|
}
|
|
28
|
+
return error.name === "AuthenticationError" || /api key is required|invalid (?:user )?api key/iu.test(error.message)
|
|
29
|
+
? error.message
|
|
30
|
+
: null;
|
|
70
31
|
}
|
|
71
|
-
export
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
32
|
+
export function cursorListModelsWith(load) {
|
|
33
|
+
return async (installation, options = {}) => {
|
|
34
|
+
if (installation.via !== "bundled") {
|
|
35
|
+
return { kind: "unsupported", reason: "cursor model listing needs the bundled @cursor/sdk" };
|
|
36
|
+
}
|
|
37
|
+
const timeoutMs = options.timeoutMs ?? 15_000;
|
|
38
|
+
try {
|
|
39
|
+
const sdk = await load();
|
|
40
|
+
const models = await Promise.race([
|
|
41
|
+
sdk.Cursor.models.list(),
|
|
42
|
+
new Promise((_resolve, reject) => {
|
|
43
|
+
setTimeout(() => {
|
|
44
|
+
reject(new Error(`Cursor.models.list() did not answer within ${String(timeoutMs)} ms`));
|
|
45
|
+
}, timeoutMs).unref();
|
|
46
|
+
}),
|
|
47
|
+
]);
|
|
48
|
+
return { kind: "ok", models: projectCursorModels(models) };
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
const detail = unauthenticated(error);
|
|
52
|
+
if (detail !== null) {
|
|
53
|
+
return { kind: "unauthenticated", detail };
|
|
87
54
|
}
|
|
55
|
+
throw new Error("Failed to list Cursor models", { cause: error });
|
|
88
56
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export const cursorListModels = cursorListModelsWith(loadCursorSdk);
|
|
92
60
|
//# sourceMappingURL=list-models.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-models.js","sourceRoot":"","sources":["../../../src/runtimes/cursor/list-models.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"list-models.js","sourceRoot":"","sources":["../../../src/runtimes/cursor/list-models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { SessionOptions } from "../../contracts/session.js";
|
|
2
|
+
import type { CursorSdk, ModelListItem, ModelSelection } from "./sdk.js";
|
|
3
|
+
/** The catalog's "Auto" entry; a local agent needs a model, and this is the one Cursor picks for the user. */
|
|
4
|
+
export declare const CURSOR_DEFAULT_MODEL = "default";
|
|
5
|
+
export declare function cursorEffortParameter(model: ModelListItem): {
|
|
6
|
+
readonly id: string;
|
|
7
|
+
readonly levels: readonly string[];
|
|
8
|
+
} | null;
|
|
9
|
+
/** The effort a selection carries, by the same parameter preference. */
|
|
10
|
+
export declare function cursorSelectionEffort(selection: ModelSelection | undefined): string | null;
|
|
11
|
+
/**
|
|
12
|
+
* The selection a session opens with. A local agent always needs one, and a
|
|
13
|
+
* resumed agent does not restore its own, so on resume without a model the
|
|
14
|
+
* agent's latest recorded run says what it ran. A requested effort is
|
|
15
|
+
* checked against the model's own parameter menu, because the SDK passes an
|
|
16
|
+
* unknown value through unchecked and reports it back as given (probed
|
|
17
|
+
* 2026-10-03: `reasoning: "ludicrous"` ran and came back verbatim). It
|
|
18
|
+
* replaces only that parameter: the other parameters stay as the resumed run
|
|
19
|
+
* had them, or as the catalog's default variant sets them (a `thinking`
|
|
20
|
+
* switch stays on beside an `effort` level).
|
|
21
|
+
*/
|
|
22
|
+
/** Options the SDK cannot honor, refused before anything opens. */
|
|
23
|
+
export declare function validateCursorOptions(options: SessionOptions): void;
|
|
24
|
+
export declare function cursorModelSelection(sdk: CursorSdk, options: SessionOptions): Promise<ModelSelection>;
|
|
25
|
+
//# sourceMappingURL=model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/runtimes/cursor/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAczE,8GAA8G;AAC9G,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAE9C,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAS9H;AAED,wEAAwE;AACxE,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAS1F;AAMD;;;;;;;;;;GAUG;AACH,mEAAmE;AACnE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CASnE;AAED,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAsB3G"}
|