@botiverse/oar 0.18.0 → 0.19.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 +1 -1
- package/dist/runtimes/cursor/installation.d.ts +4 -2
- package/dist/runtimes/cursor/installation.d.ts.map +1 -1
- package/dist/runtimes/cursor/installation.js +4 -2
- package/dist/runtimes/cursor/installation.js.map +1 -1
- package/dist/runtimes/cursor/sdk.d.ts +40 -4
- package/dist/runtimes/cursor/sdk.d.ts.map +1 -1
- package/dist/runtimes/cursor/sdk.js +3 -0
- package/dist/runtimes/cursor/sdk.js.map +1 -1
- package/package.json +10 -2
package/README.md
CHANGED
|
@@ -67,7 +67,7 @@ The package has six public entry points:
|
|
|
67
67
|
|
|
68
68
|
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.
|
|
69
69
|
|
|
70
|
-
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
|
|
70
|
+
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. The pi SDK (`@earendil-works/pi-coding-agent`) is a dependency of this package. `@cursor/sdk` is an optional peer dependency: install it yourself to use cursor (`npm install @cursor/sdk@1.0.35`); without it cursor reports `not_found` and everything else works. It is Cursor's own package under Cursor's terms, and it signs in with `CURSOR_API_KEY` or its own `Cursor.auth.login()`.
|
|
71
71
|
|
|
72
72
|
The command-line interface is a separate package: `@botiverse/oar-cli`.
|
|
73
73
|
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { InstallationProbe } from "../../contracts/installation.js";
|
|
2
2
|
/**
|
|
3
|
-
* Cursor
|
|
4
|
-
*
|
|
3
|
+
* Cursor runs in process through `@cursor/sdk`, the way pi does, but the SDK
|
|
4
|
+
* is an optional peer dependency: the host installs it (it is large, with a
|
|
5
|
+
* native companion package per platform), and without it cursor is
|
|
6
|
+
* `not_found`. There is no executable to probe and no version to report (the
|
|
5
7
|
* embedder pins the SDK). The SDK's agent needs its native companion package,
|
|
6
8
|
* which exists only for the platforms in `PLATFORMS`.
|
|
7
9
|
*/
|
|
@@ -1 +1 @@
|
|
|
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
|
|
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;;;;;;;GAOG;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"}
|
|
@@ -13,8 +13,10 @@ async function sdkLoads() {
|
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
|
-
* Cursor
|
|
17
|
-
*
|
|
16
|
+
* Cursor runs in process through `@cursor/sdk`, the way pi does, but the SDK
|
|
17
|
+
* is an optional peer dependency: the host installs it (it is large, with a
|
|
18
|
+
* native companion package per platform), and without it cursor is
|
|
19
|
+
* `not_found`. There is no executable to probe and no version to report (the
|
|
18
20
|
* embedder pins the SDK). The SDK's agent needs its native companion package,
|
|
19
21
|
* which exists only for the platforms in `PLATFORMS`.
|
|
20
22
|
*/
|
|
@@ -1 +1 @@
|
|
|
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
|
|
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;;;;;;;GAOG;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,5 +1,40 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export interface ModelParameterValue {
|
|
2
|
+
readonly id: string;
|
|
3
|
+
readonly value: string;
|
|
4
|
+
}
|
|
5
|
+
/** Also an argument the SDK takes, whose `params` it types as a mutable array. */
|
|
6
|
+
export interface ModelSelection {
|
|
7
|
+
readonly id: string;
|
|
8
|
+
readonly params?: ModelParameterValue[];
|
|
9
|
+
}
|
|
10
|
+
export interface ModelListItem {
|
|
11
|
+
readonly id: string;
|
|
12
|
+
readonly displayName: string;
|
|
13
|
+
readonly description?: string;
|
|
14
|
+
readonly aliases?: readonly string[];
|
|
15
|
+
readonly parameters?: readonly {
|
|
16
|
+
readonly id: string;
|
|
17
|
+
readonly displayName?: string;
|
|
18
|
+
readonly values: readonly {
|
|
19
|
+
readonly value: string;
|
|
20
|
+
readonly displayName?: string;
|
|
21
|
+
}[];
|
|
22
|
+
}[];
|
|
23
|
+
readonly variants?: readonly {
|
|
24
|
+
readonly params: readonly ModelParameterValue[];
|
|
25
|
+
readonly displayName: string;
|
|
26
|
+
readonly description?: string;
|
|
27
|
+
readonly isDefault?: boolean;
|
|
28
|
+
}[];
|
|
29
|
+
}
|
|
30
|
+
export type SteerAckOutcome = "complete_delivered" | "revert_to_followup";
|
|
31
|
+
interface CursorUserMessage {
|
|
32
|
+
readonly text: string;
|
|
33
|
+
readonly images?: {
|
|
34
|
+
readonly data: string;
|
|
35
|
+
readonly mimeType: string;
|
|
36
|
+
}[];
|
|
37
|
+
}
|
|
3
38
|
export type CursorDeltaListener = (args: {
|
|
4
39
|
readonly update: unknown;
|
|
5
40
|
}) => void;
|
|
@@ -7,7 +42,7 @@ export type CursorDeltaListener = (args: {
|
|
|
7
42
|
export interface CursorRun {
|
|
8
43
|
readonly id: string;
|
|
9
44
|
/** Settles with the run's status once it ends (finished, error or cancelled). */
|
|
10
|
-
wait(): Promise<
|
|
45
|
+
wait(): Promise<unknown>;
|
|
11
46
|
cancel(): Promise<void>;
|
|
12
47
|
/** Present on runs that take mid-run input; settles once the agent took the text or handed it back. */
|
|
13
48
|
steer?(text: string): Promise<SteerAckOutcome>;
|
|
@@ -16,7 +51,7 @@ export interface CursorAgent {
|
|
|
16
51
|
readonly agentId: string;
|
|
17
52
|
readonly model: ModelSelection | undefined;
|
|
18
53
|
/** `local.force` takes the agent over from a run its store still holds as active. */
|
|
19
|
-
send(message: string |
|
|
54
|
+
send(message: string | CursorUserMessage, options: {
|
|
20
55
|
readonly onDelta: CursorDeltaListener;
|
|
21
56
|
readonly local?: {
|
|
22
57
|
readonly force: boolean;
|
|
@@ -61,4 +96,5 @@ export interface CursorSdk {
|
|
|
61
96
|
* should not pay for it.
|
|
62
97
|
*/
|
|
63
98
|
export declare function loadCursorSdk(): Promise<CursorSdk>;
|
|
99
|
+
export {};
|
|
64
100
|
//# sourceMappingURL=sdk.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../../src/runtimes/cursor/sdk.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../../src/runtimes/cursor/sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,9 @@ async function importSdk() {
|
|
|
34
34
|
}
|
|
35
35
|
catch (error) {
|
|
36
36
|
loading = null;
|
|
37
|
+
if (error instanceof Error && "code" in error && error.code === "ERR_MODULE_NOT_FOUND" && error.message.includes("'@cursor/sdk'")) {
|
|
38
|
+
throw new Error("cursor needs @cursor/sdk 1.0.35, an optional peer dependency of @botiverse/oar: install it next to OAR", { cause: error });
|
|
39
|
+
}
|
|
37
40
|
throw error;
|
|
38
41
|
}
|
|
39
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../../src/runtimes/cursor/sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../../src/runtimes/cursor/sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAwF7B,IAAI,OAAO,GAA8B,IAAI,CAAC;AAE9C;;;;;;;;GAQG;AACH,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC;IACvG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB;IAC9B,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;IACjC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,6BAA6B,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7G,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,IAAI,CAAC;QACH,uBAAuB,EAAE,CAAC;QAC1B,OAAO,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,IAAI,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YAClI,MAAM,IAAI,KAAK,CAAC,wGAAwG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9I,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,OAAO,KAAK,SAAS,EAAE,CAAC;IACxB,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC;IAC1B,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botiverse/oar",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "A programming interface for all agent harnesses: provider-independent contracts for controlling and observing agent runtimes",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -51,14 +51,22 @@
|
|
|
51
51
|
"license": "Apache-2.0",
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"@agentclientprotocol/sdk": "^1.4.0",
|
|
54
|
-
"@cursor/sdk": "1.0.35",
|
|
55
54
|
"@earendil-works/pi-ai": "^1.0.0",
|
|
56
55
|
"@earendil-works/pi-coding-agent": "^1.0.0",
|
|
57
56
|
"cross-spawn": "^7.0.6",
|
|
58
57
|
"undici": "8.10.2",
|
|
59
58
|
"which": "^2.0.2"
|
|
60
59
|
},
|
|
60
|
+
"peerDependencies": {
|
|
61
|
+
"@cursor/sdk": "1.0.35"
|
|
62
|
+
},
|
|
63
|
+
"peerDependenciesMeta": {
|
|
64
|
+
"@cursor/sdk": {
|
|
65
|
+
"optional": true
|
|
66
|
+
}
|
|
67
|
+
},
|
|
61
68
|
"devDependencies": {
|
|
69
|
+
"@cursor/sdk": "1.0.35",
|
|
62
70
|
"@types/cross-spawn": "^6.0.6",
|
|
63
71
|
"@types/which": "^2.0.2"
|
|
64
72
|
},
|