@botiverse/oar 0.9.1 → 0.10.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/README.md +2 -2
- package/assets/brands/NOTICE.md +6 -5
- package/assets/brands/antigravity.svg +1 -0
- package/assets/brands/cursor-on-dark.svg +1 -0
- package/assets/brands/cursor-on-light.svg +1 -0
- package/assets/brands/cursor.svg +1 -0
- package/dist/brands.d.ts +12 -0
- package/dist/brands.d.ts.map +1 -1
- package/dist/brands.js +12 -0
- package/dist/brands.js.map +1 -1
- package/dist/contracts/input.d.ts +8 -0
- package/dist/contracts/input.d.ts.map +1 -0
- package/dist/contracts/input.js +2 -0
- package/dist/contracts/input.js.map +1 -0
- package/dist/contracts/records.d.ts +4 -0
- package/dist/contracts/records.d.ts.map +1 -1
- package/dist/contracts/records.js +0 -15
- package/dist/contracts/records.js.map +1 -1
- package/dist/contracts/session.d.ts +11 -0
- package/dist/contracts/session.d.ts.map +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/observe/conversation.d.ts +3 -1
- package/dist/observe/conversation.d.ts.map +1 -1
- package/dist/observe/conversation.js +2 -2
- package/dist/observe/conversation.js.map +1 -1
- package/dist/observe/turns.d.ts +3 -1
- package/dist/observe/turns.d.ts.map +1 -1
- package/dist/observe/turns.js +1 -1
- package/dist/observe/turns.js.map +1 -1
- package/dist/runtimes/antigravity/index.d.ts +14 -0
- package/dist/runtimes/antigravity/index.d.ts.map +1 -0
- package/dist/runtimes/antigravity/index.js +14 -0
- package/dist/runtimes/antigravity/index.js.map +1 -0
- package/dist/runtimes/antigravity/installation.d.ts +13 -0
- package/dist/runtimes/antigravity/installation.d.ts.map +1 -0
- package/dist/runtimes/antigravity/installation.js +16 -0
- package/dist/runtimes/antigravity/installation.js.map +1 -0
- package/dist/runtimes/antigravity/list-models.d.ts +12 -0
- package/dist/runtimes/antigravity/list-models.d.ts.map +1 -0
- package/dist/runtimes/antigravity/list-models.js +79 -0
- package/dist/runtimes/antigravity/list-models.js.map +1 -0
- package/dist/runtimes/antigravity/session.d.ts +17 -0
- package/dist/runtimes/antigravity/session.d.ts.map +1 -0
- package/dist/runtimes/antigravity/session.js +57 -0
- package/dist/runtimes/antigravity/session.js.map +1 -0
- package/dist/runtimes/claude/session.d.ts.map +1 -1
- package/dist/runtimes/claude/session.js +27 -14
- package/dist/runtimes/claude/session.js.map +1 -1
- package/dist/runtimes/codex/session.d.ts.map +1 -1
- package/dist/runtimes/codex/session.js +13 -9
- package/dist/runtimes/codex/session.js.map +1 -1
- package/dist/runtimes/cursor/index.d.ts +19 -0
- package/dist/runtimes/cursor/index.d.ts.map +1 -0
- package/dist/runtimes/cursor/index.js +15 -0
- package/dist/runtimes/cursor/index.js.map +1 -0
- package/dist/runtimes/cursor/installation.d.ts +9 -0
- package/dist/runtimes/cursor/installation.d.ts.map +1 -0
- package/dist/runtimes/cursor/installation.js +17 -0
- package/dist/runtimes/cursor/installation.js.map +1 -0
- package/dist/runtimes/cursor/list-models.d.ts +13 -0
- package/dist/runtimes/cursor/list-models.d.ts.map +1 -0
- package/dist/runtimes/cursor/list-models.js +92 -0
- package/dist/runtimes/cursor/list-models.js.map +1 -0
- package/dist/runtimes/cursor/session.d.ts +38 -0
- package/dist/runtimes/cursor/session.d.ts.map +1 -0
- package/dist/runtimes/cursor/session.js +74 -0
- package/dist/runtimes/cursor/session.js.map +1 -0
- package/dist/runtimes/grok/session.d.ts.map +1 -1
- package/dist/runtimes/grok/session.js +3 -1
- package/dist/runtimes/grok/session.js.map +1 -1
- package/dist/runtimes/pi/session.d.ts.map +1 -1
- package/dist/runtimes/pi/session.js +20 -10
- package/dist/runtimes/pi/session.js.map +1 -1
- package/dist/shared/acp/client-app.d.ts +2 -0
- package/dist/shared/acp/client-app.d.ts.map +1 -1
- package/dist/shared/acp/client-app.js +8 -1
- package/dist/shared/acp/client-app.js.map +1 -1
- package/dist/shared/acp/effort.d.ts +14 -0
- package/dist/shared/acp/effort.d.ts.map +1 -1
- package/dist/shared/acp/effort.js +15 -0
- package/dist/shared/acp/effort.js.map +1 -1
- package/dist/shared/acp/model.d.ts +4 -0
- package/dist/shared/acp/model.d.ts.map +1 -1
- package/dist/shared/acp/model.js +10 -1
- package/dist/shared/acp/model.js.map +1 -1
- package/dist/shared/acp/process.d.ts +2 -0
- package/dist/shared/acp/process.d.ts.map +1 -1
- package/dist/shared/acp/process.js +7 -2
- package/dist/shared/acp/process.js.map +1 -1
- package/dist/shared/acp/profile.d.ts +25 -3
- package/dist/shared/acp/profile.d.ts.map +1 -1
- package/dist/shared/acp/profile.js +15 -9
- package/dist/shared/acp/profile.js.map +1 -1
- package/dist/shared/acp/records.d.ts +3 -1
- package/dist/shared/acp/records.d.ts.map +1 -1
- package/dist/shared/acp/records.js +14 -6
- 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 +13 -7
- package/dist/shared/acp/session.js.map +1 -1
- package/dist/shared/acp/turns.d.ts +11 -8
- package/dist/shared/acp/turns.d.ts.map +1 -1
- package/dist/shared/acp/turns.js +34 -15
- package/dist/shared/acp/turns.js.map +1 -1
- package/dist/shared/acp/vendor-updates.d.ts +7 -0
- package/dist/shared/acp/vendor-updates.d.ts.map +1 -0
- package/dist/shared/acp/vendor-updates.js +46 -0
- package/dist/shared/acp/vendor-updates.js.map +1 -0
- package/dist/shared/executable/index.d.ts +1 -1
- package/dist/shared/executable/index.d.ts.map +1 -1
- package/dist/shared/executable/index.js.map +1 -1
- package/dist/shared/executable/version.d.ts +4 -2
- package/dist/shared/executable/version.d.ts.map +1 -1
- package/dist/shared/executable/version.js +7 -4
- package/dist/shared/executable/version.js.map +1 -1
- package/dist/shared/input-images.d.ts +23 -0
- package/dist/shared/input-images.d.ts.map +1 -0
- package/dist/shared/input-images.js +60 -0
- package/dist/shared/input-images.js.map +1 -0
- package/dist/shared/installation.d.ts +3 -0
- package/dist/shared/installation.d.ts.map +1 -1
- package/dist/shared/installation.js +4 -4
- package/dist/shared/installation.js.map +1 -1
- package/dist/testing/scripted-runtime.d.ts +3 -1
- package/dist/testing/scripted-runtime.d.ts.map +1 -1
- package/dist/testing/scripted-runtime.js +7 -6
- package/dist/testing/scripted-runtime.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ModelEntry, ModelLister } from "../../contracts/list-models.js";
|
|
2
|
+
/**
|
|
3
|
+
* Project the `cursor/list_available_models` answer (cursor-agent
|
|
4
|
+
* 2026.09.28): `{models: [{value, name, configOptions}]}`, where `value` is
|
|
5
|
+
* the model name `session/set_config_option` accepts for `model`, `name` the
|
|
6
|
+
* display name, and `configOptions` the model's parameters as select options
|
|
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).
|
|
10
|
+
*/
|
|
11
|
+
export declare function projectCursorModels(result: unknown): ModelEntry[];
|
|
12
|
+
export declare const cursorListModels: ModelLister;
|
|
13
|
+
//# sourceMappingURL=list-models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-models.d.ts","sourceRoot":"","sources":["../../../src/runtimes/cursor/list-models.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAgB9E;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,EAAE,CAqBjE;AA0CD,eAAO,MAAM,gBAAgB,EAAE,WAmB9B,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/* oxlint-disable typescript/promise-function-async -- Deadline callbacks deliberately return the SDK's native promises. */
|
|
2
|
+
import { client as createClient, methods, PROTOCOL_VERSION, RequestError, } from "@agentclientprotocol/sdk";
|
|
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
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Project the `cursor/list_available_models` answer (cursor-agent
|
|
17
|
+
* 2026.09.28): `{models: [{value, name, configOptions}]}`, where `value` is
|
|
18
|
+
* the model name `session/set_config_option` accepts for `model`, `name` the
|
|
19
|
+
* display name, and `configOptions` the model's parameters as select options
|
|
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).
|
|
23
|
+
*/
|
|
24
|
+
export function projectCursorModels(result) {
|
|
25
|
+
const entries = [];
|
|
26
|
+
for (const model of asRecordList(asRecord(result)?.models)) {
|
|
27
|
+
const id = text(model.value);
|
|
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
|
|
34
|
+
? undefined
|
|
35
|
+
: asRecordList(thoughtLevel.options).flatMap((option) => text(option.value) ?? []);
|
|
36
|
+
const defaultEffort = thoughtLevel === undefined ? undefined : text(thoughtLevel.currentValue);
|
|
37
|
+
entries.push({
|
|
38
|
+
id,
|
|
39
|
+
...(displayName === undefined || displayName === id ? {} : { displayName }),
|
|
40
|
+
...(effortLevels === undefined || effortLevels.length === 0 ? {} : { effortLevels }),
|
|
41
|
+
...(defaultEffort === undefined ? {} : { defaultEffort }),
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return entries;
|
|
45
|
+
}
|
|
46
|
+
async function readModels(command, timeoutMs) {
|
|
47
|
+
const runtime = startAcpProcess(command, cursorAcpArgs, createClient({ name: "oar" }), { env: process.env });
|
|
48
|
+
try {
|
|
49
|
+
const initialize = methods.agent.initialize;
|
|
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;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
export const cursorListModels = async (installation, options = {}) => {
|
|
72
|
+
if (installation.via !== "executable") {
|
|
73
|
+
return { kind: "unsupported", reason: "cursor model listing requires the cursor-agent executable" };
|
|
74
|
+
}
|
|
75
|
+
try {
|
|
76
|
+
const result = await readModels(installation.command, options.timeoutMs ?? 15_000);
|
|
77
|
+
return { kind: "ok", models: projectCursorModels(result) };
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
if (error instanceof RequestError) {
|
|
81
|
+
if (error.code === -32_601) {
|
|
82
|
+
return { kind: "unsupported", reason: `this cursor-agent build has no ${listMethod} method` };
|
|
83
|
+
}
|
|
84
|
+
// cursor-agent answers `authRequired` (-32000) until `cursor-agent login` has run.
|
|
85
|
+
if (error.code === -32_000 || /auth(?:entication)?|log(?:ged)? ?in/iu.test(error.message)) {
|
|
86
|
+
return { kind: "unauthenticated", detail: error.message };
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
throw new Error("Failed to list Cursor models", { cause: error });
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
//# sourceMappingURL=list-models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-models.js","sourceRoot":"","sources":["../../../src/runtimes/cursor/list-models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type AcpSessionProfile } from "../../shared/acp/session.js";
|
|
2
|
+
import { type JsonRecord } from "../../shared/json.js";
|
|
3
|
+
export declare function selectCursorAuthMethod(initialized: JsonRecord): string | undefined;
|
|
4
|
+
/**
|
|
5
|
+
* Without `parameterizedModelPicker` cursor-agent 2026.09.28 answers in its
|
|
6
|
+
* "variants" picker mode: every model and effort pair is one flat `model`
|
|
7
|
+
* value and no `thought_level` option exists. With it, `model` lists plain
|
|
8
|
+
* model names and each model parameter is its own select option, the
|
|
9
|
+
* reasoning one under category `thought_level`. Without `subagents` a child
|
|
10
|
+
* is visible only as the parent's `task` tool call.
|
|
11
|
+
*/
|
|
12
|
+
export declare function cursorClientCapabilitiesMeta(): JsonRecord;
|
|
13
|
+
/**
|
|
14
|
+
* With the `subagents` opt-in cursor-agent 2026.09.28 announces each child on
|
|
15
|
+
* the parent's own `session/update` (`subagent_spawned`, then
|
|
16
|
+
* `subagent_state_update` with completed, failed, cancelled or disconnected),
|
|
17
|
+
* and the child's standard updates arrive under its own session id.
|
|
18
|
+
*/
|
|
19
|
+
export declare const CURSOR_VENDOR_SESSION_UPDATES: readonly string[];
|
|
20
|
+
/**
|
|
21
|
+
* `--force` (alias `--yolo`) is a root option, so it precedes the hidden
|
|
22
|
+
* `acp` subcommand. It runs commands without asking; a team whose admin
|
|
23
|
+
* controls auto run can still switch it off, and then the agent asks
|
|
24
|
+
* through `session/request_permission`.
|
|
25
|
+
*/
|
|
26
|
+
export declare const cursorAcpArgs: readonly string[];
|
|
27
|
+
/**
|
|
28
|
+
* Requests cursor-agent 2026.09.28 sends its client beyond standard ACP. oar
|
|
29
|
+
* implements none: each is recorded and refused with `-32601`, as an
|
|
30
|
+
* unregistered method would be. On that refusal `cursor/ask_question` asks
|
|
31
|
+
* one `session/request_permission` per single select question (oar picks its
|
|
32
|
+
* first option), `cursor/create_plan` writes the plan to a local file, and
|
|
33
|
+
* the rest were notices the agent does not wait on.
|
|
34
|
+
*/
|
|
35
|
+
export declare const CURSOR_EXTENSION_REQUESTS: readonly string[];
|
|
36
|
+
export declare const cursorAcpProfile: AcpSessionProfile;
|
|
37
|
+
export declare const cursorSession: import("../../contracts/session.js").StartSession;
|
|
38
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/runtimes/cursor/session.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEjE,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAOlF;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,IAAI,UAAU,CAEzD;AAED;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,SAAS,MAAM,EAAkD,CAAC;AAQ9G;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAAuB,CAAC;AAEnE;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAMtD,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,iBAgB9B,CAAC;AAEF,eAAO,MAAM,aAAa,mDAA+B,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { acpSession } from "../../shared/acp/session.js";
|
|
2
|
+
import { asRecord } from "../../shared/json.js";
|
|
3
|
+
export function selectCursorAuthMethod(initialized) {
|
|
4
|
+
const methods = Array.isArray(initialized.authMethods) ? initialized.authMethods : [];
|
|
5
|
+
return methods
|
|
6
|
+
.map((method) => asRecord(method))
|
|
7
|
+
.some((method) => method?.id === "cursor_login")
|
|
8
|
+
? "cursor_login"
|
|
9
|
+
: undefined;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Without `parameterizedModelPicker` cursor-agent 2026.09.28 answers in its
|
|
13
|
+
* "variants" picker mode: every model and effort pair is one flat `model`
|
|
14
|
+
* value and no `thought_level` option exists. With it, `model` lists plain
|
|
15
|
+
* model names and each model parameter is its own select option, the
|
|
16
|
+
* reasoning one under category `thought_level`. Without `subagents` a child
|
|
17
|
+
* is visible only as the parent's `task` tool call.
|
|
18
|
+
*/
|
|
19
|
+
export function cursorClientCapabilitiesMeta() {
|
|
20
|
+
return { parameterizedModelPicker: true, subagents: true };
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* With the `subagents` opt-in cursor-agent 2026.09.28 announces each child on
|
|
24
|
+
* the parent's own `session/update` (`subagent_spawned`, then
|
|
25
|
+
* `subagent_state_update` with completed, failed, cancelled or disconnected),
|
|
26
|
+
* and the child's standard updates arrive under its own session id.
|
|
27
|
+
*/
|
|
28
|
+
export const CURSOR_VENDOR_SESSION_UPDATES = ["subagent_spawned", "subagent_state_update"];
|
|
29
|
+
function validateCursorOptions(options) {
|
|
30
|
+
if (options.systemPrompt !== undefined || options.appendSystemPrompt !== undefined) {
|
|
31
|
+
throw new Error("Cursor ACP does not expose a system prompt override");
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* `--force` (alias `--yolo`) is a root option, so it precedes the hidden
|
|
36
|
+
* `acp` subcommand. It runs commands without asking; a team whose admin
|
|
37
|
+
* controls auto run can still switch it off, and then the agent asks
|
|
38
|
+
* through `session/request_permission`.
|
|
39
|
+
*/
|
|
40
|
+
export const cursorAcpArgs = ["--force", "acp"];
|
|
41
|
+
/**
|
|
42
|
+
* Requests cursor-agent 2026.09.28 sends its client beyond standard ACP. oar
|
|
43
|
+
* implements none: each is recorded and refused with `-32601`, as an
|
|
44
|
+
* unregistered method would be. On that refusal `cursor/ask_question` asks
|
|
45
|
+
* one `session/request_permission` per single select question (oar picks its
|
|
46
|
+
* first option), `cursor/create_plan` writes the plan to a local file, and
|
|
47
|
+
* the rest were notices the agent does not wait on.
|
|
48
|
+
*/
|
|
49
|
+
export const CURSOR_EXTENSION_REQUESTS = [
|
|
50
|
+
"cursor/ask_question",
|
|
51
|
+
"cursor/create_plan",
|
|
52
|
+
"cursor/update_todos",
|
|
53
|
+
"cursor/task",
|
|
54
|
+
"cursor/generate_image",
|
|
55
|
+
];
|
|
56
|
+
export const cursorAcpProfile = {
|
|
57
|
+
args: cursorAcpArgs,
|
|
58
|
+
// Cursor's ACP method set has no steer. Subagents, once opted into, speak
|
|
59
|
+
// under their own session ids (attribution tier #3,
|
|
60
|
+
// docs/spec/attribution.md): recorded under those ids and linked to the
|
|
61
|
+
// parent.
|
|
62
|
+
capabilities: { steer: false, queue: { durable: false }, attribution: "nested" },
|
|
63
|
+
requestTimeoutMs: 30_000,
|
|
64
|
+
selectAuthMethod: selectCursorAuthMethod,
|
|
65
|
+
validateOptions: validateCursorOptions,
|
|
66
|
+
clientCapabilitiesMeta: cursorClientCapabilitiesMeta,
|
|
67
|
+
// `session/set_model` answers `{}` and cursor never pushes
|
|
68
|
+
// `config_option_update`, so only `set_config_option` reports the switch.
|
|
69
|
+
modelViaConfigOption: true,
|
|
70
|
+
extensionRequests: CURSOR_EXTENSION_REQUESTS,
|
|
71
|
+
vendorSessionUpdates: CURSOR_VENDOR_SESSION_UPDATES,
|
|
72
|
+
};
|
|
73
|
+
export const cursorSession = acpSession(cursorAcpProfile);
|
|
74
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/runtimes/cursor/session.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAA0B,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAmB,MAAM,sBAAsB,CAAC;AAEjE,MAAM,UAAU,sBAAsB,CAAC,WAAuB;IAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACjC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,cAAc,CAAC;QAChD,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B;IAC1C,OAAO,EAAE,wBAAwB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC7D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAsB,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAC;AAE9G,SAAS,qBAAqB,CAAC,OAAuB;IACpD,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,IAAI,OAAO,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACnF,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAsB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAsB;IAC1D,qBAAqB;IACrB,oBAAoB;IACpB,qBAAqB;IACrB,aAAa;IACb,uBAAuB;CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAsB;IACjD,IAAI,EAAE,aAAa;IACnB,0EAA0E;IAC1E,oDAAoD;IACpD,wEAAwE;IACxE,UAAU;IACV,YAAY,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE;IAChF,gBAAgB,EAAE,MAAM;IACxB,gBAAgB,EAAE,sBAAsB;IACxC,eAAe,EAAE,qBAAqB;IACtC,sBAAsB,EAAE,4BAA4B;IACpD,2DAA2D;IAC3D,0EAA0E;IAC1E,oBAAoB,EAAE,IAAI;IAC1B,iBAAiB,EAAE,yBAAyB;IAC5C,oBAAoB,EAAE,6BAA6B;CACpD,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/runtimes/grok/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAS3E,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAQhF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,UAAU,CAYtE;AAYD,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAc1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI,CAUzE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,4BAA4B,EAAE,SAAS,MAAM,EAkBzD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/runtimes/grok/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAS3E,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAQhF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,UAAU,CAYtE;AAYD,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAc1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI,CAUzE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,4BAA4B,EAAE,SAAS,MAAM,EAkBzD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,iBAoB5B,CAAC;AAEF,eAAO,MAAM,WAAW,mDAA6B,CAAC"}
|
|
@@ -122,7 +122,9 @@ export const grokAcpProfile = {
|
|
|
122
122
|
// Native children are independent ACP sessions on the same connection
|
|
123
123
|
// (attribution tier #3, docs/spec/attribution.md): recorded under their own
|
|
124
124
|
// session id, linked in the graph when a lifecycle notification says so.
|
|
125
|
-
|
|
125
|
+
// Images despite `initialize` saying `promptCapabilities.image: false`: grok 1.0.44
|
|
126
|
+
// hands an ACP image block to the model (live, docs/runtimes/grok.md).
|
|
127
|
+
capabilities: { steer: true, queue: { durable: false }, attribution: "nested", images: true },
|
|
126
128
|
extensionNotifications: GROK_EXTENSION_NOTIFICATIONS,
|
|
127
129
|
terminalShellCommand: true,
|
|
128
130
|
initializeMeta: grokInitializeMeta,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/runtimes/grok/session.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/runtimes/grok/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/runtimes/pi/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACuE,YAAY,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/runtimes/pi/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACuE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAkBpI,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAahF,eAAO,MAAM,SAAS,EAAE,YAmOvB,CAAC"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { classifyFailure } from "../../shared/failure-class.js";
|
|
2
|
+
import { withInputImages } from "../../shared/input-images.js";
|
|
2
3
|
import { sealSession } from "../../shared/seal-session.js";
|
|
3
4
|
import { createSessionKernel } from "../../shared/session-kernel.js";
|
|
4
5
|
import { foldPiEvent, initialPiProjection, piAbortRequested, piPrompted, } from "./projection.js";
|
|
5
6
|
import { openPiAgentSession, piEffectiveModel } from "./open.js";
|
|
7
|
+
/** pi's ImageContent: base64 data and its type. */
|
|
8
|
+
const piImages = (images) => images.map((image) => ({ type: "image", data: image.data, mimeType: image.mediaType }));
|
|
6
9
|
export { piEffectiveModel, piEnvBashTool } from "./open.js";
|
|
7
10
|
/*
|
|
8
11
|
* Bundled pi SDK mapping (in-process, no fork; settled 2026-08-21, record
|
|
@@ -53,14 +56,14 @@ export const piSession = async (installation, options) => {
|
|
|
53
56
|
// agent_start waiters: a prompt is `accepted` once pi actually starts the
|
|
54
57
|
// run, `rejected` with pi's own message if pi refuses it first.
|
|
55
58
|
const startWaiters = new Set();
|
|
56
|
-
const start = async (input) => {
|
|
59
|
+
const start = async (input, images) => {
|
|
57
60
|
gate.running = true;
|
|
58
61
|
projection = piPrompted(projection);
|
|
59
62
|
const token = {};
|
|
60
63
|
launch = token;
|
|
61
64
|
const { promise: started, resolve: onStarted } = Promise.withResolvers();
|
|
62
65
|
startWaiters.add(onStarted);
|
|
63
|
-
const run = piAgentSession.prompt(input);
|
|
66
|
+
const run = piAgentSession.prompt(input, images.length === 0 ? undefined : { images: piImages(images) });
|
|
64
67
|
const decided = await Promise.race([
|
|
65
68
|
started.then(() => ({ kind: "accepted" })),
|
|
66
69
|
run.then(() => ({ kind: "accepted" }), (error) => ({ kind: "rejected", code: "runtime_refused", reason: error instanceof Error ? error.message : "pi prompt failed" })),
|
|
@@ -103,7 +106,7 @@ export const piSession = async (installation, options) => {
|
|
|
103
106
|
return;
|
|
104
107
|
}
|
|
105
108
|
void (async () => {
|
|
106
|
-
const decided = await start(next);
|
|
109
|
+
const decided = await start(next.input, next.images);
|
|
107
110
|
if (decided.kind === "rejected") {
|
|
108
111
|
// The queue took the input over; pi refusing it is not silent: pi's
|
|
109
112
|
// refusal enters the stream (no turn ever started, so no turn end).
|
|
@@ -149,16 +152,20 @@ export const piSession = async (installation, options) => {
|
|
|
149
152
|
events: [{ kind: "model", model: openedModel }, { kind: "effort", effort: thinkingLevel }],
|
|
150
153
|
});
|
|
151
154
|
}
|
|
155
|
+
const capabilities = { steer: true, queue: { durable: false }, attribution: "none", images: true };
|
|
152
156
|
const session = sealSession({
|
|
153
157
|
id: kernel.sessionId,
|
|
154
|
-
capabilities
|
|
158
|
+
capabilities,
|
|
155
159
|
prompt: async (input, inputOptions) => {
|
|
156
160
|
const body = { kind: "prompt", input, ...inputOptions };
|
|
157
161
|
const result = await kernel.control(body, async () => {
|
|
158
162
|
if (gate.running) {
|
|
159
163
|
return { kind: "rejected", code: "busy", reason: "busy" };
|
|
160
164
|
}
|
|
161
|
-
const decided = await
|
|
165
|
+
const decided = await withInputImages(capabilities, inputOptions?.images, async (images) => {
|
|
166
|
+
const started = await start(input, images);
|
|
167
|
+
return started;
|
|
168
|
+
});
|
|
162
169
|
return decided;
|
|
163
170
|
});
|
|
164
171
|
return result;
|
|
@@ -168,17 +175,20 @@ export const piSession = async (installation, options) => {
|
|
|
168
175
|
if (!gate.running) {
|
|
169
176
|
return { kind: "rejected", code: "no_active_turn", reason: "not_steerable: no active turn" };
|
|
170
177
|
}
|
|
171
|
-
await
|
|
172
|
-
|
|
178
|
+
const decided = await withInputImages(capabilities, inputOptions?.images, async (images) => {
|
|
179
|
+
await piAgentSession.steer(input, images.length === 0 ? undefined : piImages(images));
|
|
180
|
+
return { kind: "accepted" };
|
|
181
|
+
});
|
|
182
|
+
return decided;
|
|
173
183
|
});
|
|
174
184
|
return result;
|
|
175
185
|
},
|
|
176
186
|
queue: async (input, inputOptions) => {
|
|
177
|
-
const result = await kernel.control({ kind: "queue", input, ...inputOptions }, () => {
|
|
178
|
-
held.push(input);
|
|
187
|
+
const result = await kernel.control({ kind: "queue", input, ...inputOptions }, () => withInputImages(capabilities, inputOptions?.images, (images) => {
|
|
188
|
+
held.push({ input, images });
|
|
179
189
|
drainHeld();
|
|
180
190
|
return { kind: "accepted" };
|
|
181
|
-
});
|
|
191
|
+
}));
|
|
182
192
|
return result;
|
|
183
193
|
},
|
|
184
194
|
abort: async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/runtimes/pi/session.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,GAEX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAsB,MAAM,WAAW,CAAC;AAEhF;;;;;;;;;GASG;AAEH,MAAM,CAAC,MAAM,SAAS,GAAiB,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE;IACrE,IAAI,YAAY,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,mBAAmB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAC7D,IAAI,UAAU,GAAsB,mBAAmB,CAAC;IACxD,2EAA2E;IAC3E,sEAAsE;IACtE,iDAAiD;IACjD,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAChC,0EAA0E;IAC1E,8CAA8C;IAC9C,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,yEAAyE;IACzE,2EAA2E;IAC3E,IAAI,cAAc,GAAyB,IAAI,CAAC;IAChD,6EAA6E;IAC7E,yCAAyC;IACzC,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,0EAA0E;IAC1E,uEAAuE;IACvE,uEAAuE;IACvE,qEAAqE;IACrE,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/runtimes/pi/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,8 @@ export interface AcpClientHooks {
|
|
|
15
15
|
readonly answered: (id: string, reply: unknown) => void;
|
|
16
16
|
readonly extension: (method: string, params: JsonRecord) => void;
|
|
17
17
|
readonly extensionNotifications: readonly string[];
|
|
18
|
+
/** Vendor request methods to record before refusing them as unknown. */
|
|
19
|
+
readonly extensionRequests: readonly string[];
|
|
18
20
|
}
|
|
19
21
|
/** OAR's YOLO answer to a permission request: the broadest allow on offer, else cancel. */
|
|
20
22
|
export declare function allowPermission(request: RequestPermissionRequest): RequestPermissionResponse;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-app.d.ts","sourceRoot":"","sources":["../../../src/shared/acp/client-app.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"client-app.d.ts","sourceRoot":"","sources":["../../../src/shared/acp/client-app.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,SAAS,EAKd,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EAGzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,CAAC,YAAY,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC7D,qCAAqC;IACrC,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1E,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACjE,QAAQ,CAAC,sBAAsB,EAAE,SAAS,MAAM,EAAE,CAAC;IACnD,wEAAwE;IACxE,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C;AAED,2FAA2F;AAC3F,wBAAgB,eAAe,CAAC,OAAO,EAAE,wBAAwB,GAAG,yBAAyB,CAM5F;AAcD,gFAAgF;AAChF,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,cAAc,GACpB,SAAS,CAyCX"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* oxlint-disable typescript/promise-function-async -- SDK handlers deliberately return terminal promises directly. */
|
|
2
|
-
import { client as createClient, methods, } from "@agentclientprotocol/sdk";
|
|
2
|
+
import { client as createClient, methods, RequestError, } from "@agentclientprotocol/sdk";
|
|
3
3
|
import { asRecord } from "../json.js";
|
|
4
4
|
/** OAR's YOLO answer to a permission request: the broadest allow on offer, else cancel. */
|
|
5
5
|
export function allowPermission(request) {
|
|
@@ -50,6 +50,13 @@ export function createAcpClientApp(terminal, hooks) {
|
|
|
50
50
|
hooks.extension(method, params);
|
|
51
51
|
});
|
|
52
52
|
}
|
|
53
|
+
// The same -32601 the SDK sends for an unregistered method, so the agent
|
|
54
|
+
// takes its own fallback, but the request and the refusal are on record.
|
|
55
|
+
for (const method of hooks.extensionRequests) {
|
|
56
|
+
app = app.onRequest(method, passthrough, observed(method, () => {
|
|
57
|
+
throw RequestError.methodNotFound(method);
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
53
60
|
return app;
|
|
54
61
|
}
|
|
55
62
|
//# sourceMappingURL=client-app.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-app.js","sourceRoot":"","sources":["../../../src/shared/acp/client-app.ts"],"names":[],"mappings":"AAAA,sHAAsH;AACtH,OAAO,EACL,MAAM,IAAI,YAAY,EACtB,OAAO,
|
|
1
|
+
{"version":3,"file":"client-app.js","sourceRoot":"","sources":["../../../src/shared/acp/client-app.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,4 +22,18 @@ export declare function applyAcpEffort(process: AcpProcess, opened: {
|
|
|
22
22
|
readonly response: JsonRecord;
|
|
23
23
|
}) => void;
|
|
24
24
|
}): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Apply `SessionOptions.model`: `session/set_model {modelId}`, or with
|
|
27
|
+
* `viaConfigOption` `session/set_config_option` on the `model` option (for
|
|
28
|
+
* agents whose set_model answer reports nothing, cursor-agent 2026.09.28).
|
|
29
|
+
* The answer is observed like any handshake answer and returned.
|
|
30
|
+
*/
|
|
31
|
+
export declare function applyAcpModel(process: AcpProcess, sessionId: string, model: string, context: {
|
|
32
|
+
readonly viaConfigOption: boolean;
|
|
33
|
+
readonly timeoutMs: number;
|
|
34
|
+
readonly observe: (step: {
|
|
35
|
+
readonly method: string;
|
|
36
|
+
readonly response: JsonRecord;
|
|
37
|
+
}) => void;
|
|
38
|
+
}): Promise<JsonRecord | undefined>;
|
|
25
39
|
//# sourceMappingURL=effort.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effort.d.ts","sourceRoot":"","sources":["../../../src/shared/acp/effort.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAEvD,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,cAAc,CAAC;AAchE;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAClG,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IACP,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAA;KAAE,KAAK,IAAI,CAAC;CAC9F,GACA,OAAO,CAAC,IAAI,CAAC,CA2Bf"}
|
|
1
|
+
{"version":3,"file":"effort.d.ts","sourceRoot":"","sources":["../../../src/shared/acp/effort.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAEvD,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,cAAc,CAAC;AAchE;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE;IAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAClG,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IACP,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAA;KAAE,KAAK,IAAI,CAAC;CAC9F,GACA,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;IACP,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAA;KAAE,KAAK,IAAI,CAAC;CAC9F,GACA,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAajC"}
|
|
@@ -44,4 +44,19 @@ export async function applyAcpEffort(process, opened, effort, context) {
|
|
|
44
44
|
throw new Error(`${method} left ${configId} at ${applied ?? "an unreported value"} although effort ${effort} was requested`);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Apply `SessionOptions.model`: `session/set_model {modelId}`, or with
|
|
49
|
+
* `viaConfigOption` `session/set_config_option` on the `model` option (for
|
|
50
|
+
* agents whose set_model answer reports nothing, cursor-agent 2026.09.28).
|
|
51
|
+
* The answer is observed like any handshake answer and returned.
|
|
52
|
+
*/
|
|
53
|
+
export async function applyAcpModel(process, sessionId, model, context) {
|
|
54
|
+
const method = context.viaConfigOption ? "session/set_config_option" : "session/set_model";
|
|
55
|
+
const params = context.viaConfigOption
|
|
56
|
+
? { sessionId, configId: "model", value: model }
|
|
57
|
+
: { sessionId, modelId: model };
|
|
58
|
+
const response = asRecord(await withAcpDeadline(process, method, context.timeoutMs, (requestOptions) => process.connection.agent.request(method, params, requestOptions))) ?? undefined;
|
|
59
|
+
context.observe({ method, response: response ?? {} });
|
|
60
|
+
return response;
|
|
61
|
+
}
|
|
47
62
|
//# sourceMappingURL=effort.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effort.js","sourceRoot":"","sources":["../../../src/shared/acp/effort.ts"],"names":[],"mappings":"AAAA,2HAA2H;AAC3H,OAAO,EAAE,QAAQ,EAAmB,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAmB,eAAe,EAAE,MAAM,cAAc,CAAC;AAEhE,6GAA6G;AAC7G,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;IACnC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,OAAO,KAAK,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;AACxF,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAmB,EACnB,MAAkG,EAClG,MAAc,EACd,OAGC;IAED,MAAM,QAAQ,GAAG,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;IAC5D,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,UAAU,yDAAyD,MAAM,oBAAoB,CAAC,CAAC;IAC3H,CAAC;IACD,MAAM,MAAM,GAAG,2BAA2B,CAAC;IAC3C,IAAI,MAAM,GAAY,SAAS,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,eAAe,CAC5B,OAAO,EACP,MAAM,EACN,OAAO,CAAC,SAAS,EACjB,CAAC,cAAc,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAClD,MAAM,EACN,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EACxD,cAAc,CACf,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,QAAQ,IAAI,MAAM,iBAAiB,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3G,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACxC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,SAAS,QAAQ,OAAO,OAAO,IAAI,qBAAqB,oBAAoB,MAAM,gBAAgB,CAAC,CAAC;IAC/H,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"effort.js","sourceRoot":"","sources":["../../../src/shared/acp/effort.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,10 @@ export declare function acpReportedModel(frame: JsonRecord | null): string | nul
|
|
|
28
28
|
* `thinking` (low/high/max on k3). The category, not the id, is what this
|
|
29
29
|
* shared layer relies on; it carries no runtime identity. Null when the frame
|
|
30
30
|
* advertises none.
|
|
31
|
+
*
|
|
32
|
+
* cursor-agent 2026.09.28 lists two for most Claude models: `thinking`
|
|
33
|
+
* (false/true) and `effort` (low…max). The level menu wins over the on/off
|
|
34
|
+
* switch; a model whose only option is the switch (claude-haiku-4-5) keeps it.
|
|
31
35
|
*/
|
|
32
36
|
export declare function acpThoughtLevelOption(frame: JsonRecord | null): JsonRecord | null;
|
|
33
37
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/shared/acp/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAErE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAexE;AAED
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/shared/acp/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAErE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAexE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,CAMjF;AAOD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAGzE"}
|
package/dist/shared/acp/model.js
CHANGED
|
@@ -43,12 +43,21 @@ export function acpReportedModel(frame) {
|
|
|
43
43
|
* `thinking` (low/high/max on k3). The category, not the id, is what this
|
|
44
44
|
* shared layer relies on; it carries no runtime identity. Null when the frame
|
|
45
45
|
* advertises none.
|
|
46
|
+
*
|
|
47
|
+
* cursor-agent 2026.09.28 lists two for most Claude models: `thinking`
|
|
48
|
+
* (false/true) and `effort` (low…max). The level menu wins over the on/off
|
|
49
|
+
* switch; a model whose only option is the switch (claude-haiku-4-5) keeps it.
|
|
46
50
|
*/
|
|
47
51
|
export function acpThoughtLevelOption(frame) {
|
|
48
52
|
if (frame === null) {
|
|
49
53
|
return null;
|
|
50
54
|
}
|
|
51
|
-
|
|
55
|
+
const candidates = asRecordList(frame.configOptions).filter((entry) => entry.category === "thought_level");
|
|
56
|
+
return candidates.find((entry) => !isOnOffSwitch(entry)) ?? candidates[0] ?? null;
|
|
57
|
+
}
|
|
58
|
+
function isOnOffSwitch(option) {
|
|
59
|
+
const values = asRecordList(option.options).map((entry) => entry.value);
|
|
60
|
+
return values.length === 2 && values.includes("false") && values.includes("true");
|
|
52
61
|
}
|
|
53
62
|
/**
|
|
54
63
|
* The reasoning effort an ACP agent reports as in effect: the `thought_level`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/shared/acp/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAmB,MAAM,YAAY,CAAC;AAErE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAwB;IACvD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;IACvF,IAAI,OAAO,MAAM,EAAE,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC7C,OAAO,MAAM,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IAC9D,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;QACvC,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,iGAAiG;IACjG,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IAC/C,OAAO,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1D,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/shared/acp/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAmB,MAAM,YAAY,CAAC;AAErE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAwB;IACvD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;IACvF,IAAI,OAAO,MAAM,EAAE,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC7C,OAAO,MAAM,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IAC9D,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;QACvC,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,iGAAiG;IACjG,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IAC/C,OAAO,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1D,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAwB;IAC5D,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,eAAe,CAAC,CAAC;IAC3G,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AACpF,CAAC;AAED,SAAS,aAAa,CAAC,MAAkB;IACvC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxE,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACpF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAwB;IACxD,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC3D,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5E,CAAC"}
|
|
@@ -4,6 +4,8 @@ export type { ClientApp, SessionNotification } from "@agentclientprotocol/sdk";
|
|
|
4
4
|
export interface AcpProcessOptions {
|
|
5
5
|
readonly cwd?: string;
|
|
6
6
|
readonly env?: NodeJS.ProcessEnv;
|
|
7
|
+
/** Vendor `session/update` kinds to carry past the SDK's parse (see vendor-updates.ts). */
|
|
8
|
+
readonly vendorSessionUpdates?: readonly string[];
|
|
7
9
|
}
|
|
8
10
|
/** A child process connected directly to an official SDK client app. */
|
|
9
11
|
export interface AcpProcess {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../src/shared/acp/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../src/shared/acp/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAC9E,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAqB/E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,2FAA2F;IAC3F,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnD;AAED,wEAAwE;AACxE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,IAAI,IAAI,IAAI,CAAC;CACd;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAC5C,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,kBAAkB,KAAK,OAAO,CAAC,QAAQ,CAAC,GACxD,OAAO,CAAC,QAAQ,CAAC,CA4BnB;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,EAAE,SAAS,EACd,OAAO,GAAE,iBAAsB,GAC9B,UAAU,CAqCZ"}
|