@runappsai/sdk 0.8.2 → 0.9.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/dist/client.d.ts +1 -3
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +2 -5
- package/dist/client.js.map +1 -1
- package/dist/events.d.ts +3 -3
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +2 -2
- package/dist/events.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/sdk.umd.js +3 -3
- package/dist/sdk.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/client.ts +2 -5
- package/src/events.ts +2 -3
- package/src/index.ts +0 -7
- package/dist/computer.d.ts +0 -57
- package/dist/computer.d.ts.map +0 -1
- package/dist/computer.js +0 -21
- package/dist/computer.js.map +0 -1
- package/src/computer.ts +0 -80
package/package.json
CHANGED
package/src/client.ts
CHANGED
|
@@ -5,7 +5,6 @@ import { ImageService } from "./image.js";
|
|
|
5
5
|
import { AudioService } from "./audio.js";
|
|
6
6
|
import { RealtimeService } from "./realtime.js";
|
|
7
7
|
import { VideoService } from "./video.js";
|
|
8
|
-
import { ComputerService } from "./computer.js";
|
|
9
8
|
import { FilesService } from "./files.js";
|
|
10
9
|
import { EmbeddingsService } from "./embeddings.js";
|
|
11
10
|
import { BrowserAuth, type BrowserUser } from "./browser-auth.js";
|
|
@@ -153,7 +152,6 @@ export class RunApps {
|
|
|
153
152
|
readonly image: ImageService;
|
|
154
153
|
readonly audio: AudioService;
|
|
155
154
|
readonly video: VideoService;
|
|
156
|
-
readonly computer: ComputerService;
|
|
157
155
|
readonly files: FilesService;
|
|
158
156
|
readonly embeddings: EmbeddingsService;
|
|
159
157
|
/** Realtime voice sessions over WebSocket — see `RealtimeService.connect`. */
|
|
@@ -176,7 +174,7 @@ export class RunApps {
|
|
|
176
174
|
|
|
177
175
|
/**
|
|
178
176
|
* Runtime event bus for SDK-call telemetry. Every LLM-ish service
|
|
179
|
-
* (chat / embeddings / image / audio / video
|
|
177
|
+
* (chat / embeddings / image / audio / video) fires
|
|
180
178
|
* `request:start`, `request:streamDelta`, `request:end`, and
|
|
181
179
|
* `request:error` events here so UI overlays — like the bottom-right
|
|
182
180
|
* identity badge's activity ring — can render real-time state
|
|
@@ -253,7 +251,7 @@ export class RunApps {
|
|
|
253
251
|
...(options.fetch ? { fetchImpl: options.fetch } : {}),
|
|
254
252
|
});
|
|
255
253
|
// Service constructors receive the shared event bus so each call
|
|
256
|
-
// path (chat/embeddings/image/audio/video
|
|
254
|
+
// path (chat/embeddings/image/audio/video) can emit
|
|
257
255
|
// start/end/error around its network operations. Files and Models
|
|
258
256
|
// intentionally don't take it — they're infrastructure, not
|
|
259
257
|
// user-facing LLM calls, and surfacing them would clutter the
|
|
@@ -263,7 +261,6 @@ export class RunApps {
|
|
|
263
261
|
this.image = new ImageService(transport, this.events);
|
|
264
262
|
this.audio = new AudioService(transport, this.events);
|
|
265
263
|
this.video = new VideoService(transport, this.events);
|
|
266
|
-
this.computer = new ComputerService(transport, this.events);
|
|
267
264
|
// `project` also scopes the file URLs (/v1/p/<project>/files/...),
|
|
268
265
|
// so two apps never issue byte-identical file requests. Omitted →
|
|
269
266
|
// legacy unscoped /v1/files/... paths.
|
package/src/events.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Typed runtime event bus for SDK call telemetry.
|
|
3
3
|
*
|
|
4
|
-
* Every LLM-ish service method (chat, embeddings, image, audio, video
|
|
5
|
-
*
|
|
4
|
+
* Every LLM-ish service method (chat, embeddings, image, audio, video)
|
|
5
|
+
* emits start / streamDelta / end / error events on the
|
|
6
6
|
* shared `client.events` bus so UI overlays (e.g. the bottom-right
|
|
7
7
|
* identity badge with its activity ring) can render real-time state
|
|
8
8
|
* without business code having to thread anything through.
|
|
@@ -32,7 +32,6 @@ export type SDKCapability =
|
|
|
32
32
|
| "text_to_speech"
|
|
33
33
|
| "speech_to_text"
|
|
34
34
|
| "video_generation"
|
|
35
|
-
| "computer_use"
|
|
36
35
|
/** A realtime voice session (`client.realtime`). */
|
|
37
36
|
| "realtime"
|
|
38
37
|
/** A file-space call (`client.files`). Shown on the badge while in
|
package/src/index.ts
CHANGED
|
@@ -157,13 +157,6 @@ export type {
|
|
|
157
157
|
// Media helpers (shared by image + video + chat-multimodal)
|
|
158
158
|
export { encodeImageUrl, decodeMediaUrl } from "./media.js";
|
|
159
159
|
|
|
160
|
-
// Computer
|
|
161
|
-
export type {
|
|
162
|
-
ComputerStepParams,
|
|
163
|
-
ComputerContentBlock,
|
|
164
|
-
ComputerResponse,
|
|
165
|
-
} from "./computer.js";
|
|
166
|
-
|
|
167
160
|
// Files (per-project file system)
|
|
168
161
|
export type {
|
|
169
162
|
FileObject,
|
package/dist/computer.d.ts
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import type { Transport } from "./transport.js";
|
|
2
|
-
import type { Usage } from "./types.js";
|
|
3
|
-
import type { SDKEvents } from "./events.js";
|
|
4
|
-
/** Single-step computer-use request — a screenshot + history → next action(s). */
|
|
5
|
-
export interface ComputerStepParams {
|
|
6
|
-
/**
|
|
7
|
-
* Conversation history including screenshots and tool results. Each
|
|
8
|
-
* entry has `role` + `content` (string or array of blocks). Format is
|
|
9
|
-
* intentionally opaque to support both Anthropic and OpenAI computer-use
|
|
10
|
-
* protocols — the gateway adapts.
|
|
11
|
-
*/
|
|
12
|
-
messages: Record<string, unknown>[];
|
|
13
|
-
/** Screen resolution. Defaults to 1920×1080 if omitted. */
|
|
14
|
-
display_width?: number;
|
|
15
|
-
display_height?: number;
|
|
16
|
-
max_tokens?: number;
|
|
17
|
-
enable_zoom?: boolean;
|
|
18
|
-
/** OpenAI Responses-API state chaining. */
|
|
19
|
-
previous_response_id?: string;
|
|
20
|
-
/** Follow-up `computer_call_output` for OpenAI's Responses API. */
|
|
21
|
-
openai_input?: unknown;
|
|
22
|
-
user?: string;
|
|
23
|
-
}
|
|
24
|
-
/** One block of a computer-use response: text, tool_use (Anthropic), or computer_call (OpenAI). */
|
|
25
|
-
export interface ComputerContentBlock {
|
|
26
|
-
type: string;
|
|
27
|
-
text?: string;
|
|
28
|
-
id?: string;
|
|
29
|
-
name?: string;
|
|
30
|
-
/** Anthropic tool input (raw JSON). */
|
|
31
|
-
input?: unknown;
|
|
32
|
-
call_id?: string;
|
|
33
|
-
/** OpenAI computer-call action. */
|
|
34
|
-
action?: Record<string, unknown>;
|
|
35
|
-
}
|
|
36
|
-
export interface ComputerResponse {
|
|
37
|
-
content: ComputerContentBlock[];
|
|
38
|
-
stop_reason?: string;
|
|
39
|
-
usage: Usage;
|
|
40
|
-
response_id?: string;
|
|
41
|
-
/** "anthropic" | "openai" — which protocol the upstream returned. */
|
|
42
|
-
protocol?: string;
|
|
43
|
-
}
|
|
44
|
-
export declare class ComputerService {
|
|
45
|
-
private readonly transport;
|
|
46
|
-
private readonly events;
|
|
47
|
-
constructor(transport: Transport, events: SDKEvents);
|
|
48
|
-
/**
|
|
49
|
-
* Execute one step of a computer-use agent loop. Given a screenshot
|
|
50
|
-
* and conversation history, returns the next action(s) the model
|
|
51
|
-
* wants the caller to execute.
|
|
52
|
-
*/
|
|
53
|
-
step(model: string, params: ComputerStepParams, init?: {
|
|
54
|
-
signal?: AbortSignal;
|
|
55
|
-
}): Promise<ComputerResponse>;
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=computer.d.ts.map
|
package/dist/computer.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"computer.d.ts","sourceRoot":"","sources":["../src/computer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,kFAAkF;AAClF,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACpC,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2CAA2C;IAC3C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mEAAmE;IACnE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,mGAAmG;AACnG,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS;IAGpC;;;;OAIG;IACG,IAAI,CACR,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,kBAAkB,EAC1B,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC9B,OAAO,CAAC,gBAAgB,CAAC;CAgB7B"}
|
package/dist/computer.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { wrapEvents } from "./event-wrap.js";
|
|
2
|
-
export class ComputerService {
|
|
3
|
-
transport;
|
|
4
|
-
events;
|
|
5
|
-
constructor(transport, events) {
|
|
6
|
-
this.transport = transport;
|
|
7
|
-
this.events = events;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Execute one step of a computer-use agent loop. Given a screenshot
|
|
11
|
-
* and conversation history, returns the next action(s) the model
|
|
12
|
-
* wants the caller to execute.
|
|
13
|
-
*/
|
|
14
|
-
async step(model, params, init) {
|
|
15
|
-
return wrapEvents(this.events, { model, capability: "computer_use" }, () => this.transport.postJSON("/v1/computer/step", { model, ...params }, init), (r) => ({
|
|
16
|
-
totalTokens: r.usage?.completion_tokens,
|
|
17
|
-
costUSD: r.usage?.total_cost,
|
|
18
|
-
}));
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=computer.js.map
|
package/dist/computer.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"computer.js","sourceRoot":"","sources":["../src/computer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA6C7C,MAAM,OAAO,eAAe;IAEP;IACA;IAFnB,YACmB,SAAoB,EACpB,MAAiB;QADjB,cAAS,GAAT,SAAS,CAAW;QACpB,WAAM,GAAN,MAAM,CAAW;IACjC,CAAC;IAEJ;;;;OAIG;IACH,KAAK,CAAC,IAAI,CACR,KAAa,EACb,MAA0B,EAC1B,IAA+B;QAE/B,OAAO,UAAU,CACf,IAAI,CAAC,MAAM,EACX,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,EACrC,GAAG,EAAE,CACH,IAAI,CAAC,SAAS,CAAC,QAAQ,CACrB,mBAAmB,EACnB,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,EACpB,IAAI,CACL,EACH,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACN,WAAW,EAAE,CAAC,CAAC,KAAK,EAAE,iBAAiB;YACvC,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU;SAC7B,CAAC,CACH,CAAC;IACJ,CAAC;CACF"}
|
package/src/computer.ts
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import type { Transport } from "./transport.js";
|
|
2
|
-
import type { Usage } from "./types.js";
|
|
3
|
-
import type { SDKEvents } from "./events.js";
|
|
4
|
-
import { wrapEvents } from "./event-wrap.js";
|
|
5
|
-
|
|
6
|
-
/** Single-step computer-use request — a screenshot + history → next action(s). */
|
|
7
|
-
export interface ComputerStepParams {
|
|
8
|
-
/**
|
|
9
|
-
* Conversation history including screenshots and tool results. Each
|
|
10
|
-
* entry has `role` + `content` (string or array of blocks). Format is
|
|
11
|
-
* intentionally opaque to support both Anthropic and OpenAI computer-use
|
|
12
|
-
* protocols — the gateway adapts.
|
|
13
|
-
*/
|
|
14
|
-
messages: Record<string, unknown>[];
|
|
15
|
-
/** Screen resolution. Defaults to 1920×1080 if omitted. */
|
|
16
|
-
display_width?: number;
|
|
17
|
-
display_height?: number;
|
|
18
|
-
max_tokens?: number;
|
|
19
|
-
enable_zoom?: boolean;
|
|
20
|
-
/** OpenAI Responses-API state chaining. */
|
|
21
|
-
previous_response_id?: string;
|
|
22
|
-
/** Follow-up `computer_call_output` for OpenAI's Responses API. */
|
|
23
|
-
openai_input?: unknown;
|
|
24
|
-
user?: string;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/** One block of a computer-use response: text, tool_use (Anthropic), or computer_call (OpenAI). */
|
|
28
|
-
export interface ComputerContentBlock {
|
|
29
|
-
type: string;
|
|
30
|
-
text?: string;
|
|
31
|
-
id?: string;
|
|
32
|
-
name?: string;
|
|
33
|
-
/** Anthropic tool input (raw JSON). */
|
|
34
|
-
input?: unknown;
|
|
35
|
-
call_id?: string;
|
|
36
|
-
/** OpenAI computer-call action. */
|
|
37
|
-
action?: Record<string, unknown>;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export interface ComputerResponse {
|
|
41
|
-
content: ComputerContentBlock[];
|
|
42
|
-
stop_reason?: string;
|
|
43
|
-
usage: Usage;
|
|
44
|
-
response_id?: string;
|
|
45
|
-
/** "anthropic" | "openai" — which protocol the upstream returned. */
|
|
46
|
-
protocol?: string;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export class ComputerService {
|
|
50
|
-
constructor(
|
|
51
|
-
private readonly transport: Transport,
|
|
52
|
-
private readonly events: SDKEvents,
|
|
53
|
-
) {}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Execute one step of a computer-use agent loop. Given a screenshot
|
|
57
|
-
* and conversation history, returns the next action(s) the model
|
|
58
|
-
* wants the caller to execute.
|
|
59
|
-
*/
|
|
60
|
-
async step(
|
|
61
|
-
model: string,
|
|
62
|
-
params: ComputerStepParams,
|
|
63
|
-
init?: { signal?: AbortSignal },
|
|
64
|
-
): Promise<ComputerResponse> {
|
|
65
|
-
return wrapEvents(
|
|
66
|
-
this.events,
|
|
67
|
-
{ model, capability: "computer_use" },
|
|
68
|
-
() =>
|
|
69
|
-
this.transport.postJSON<ComputerResponse>(
|
|
70
|
-
"/v1/computer/step",
|
|
71
|
-
{ model, ...params },
|
|
72
|
-
init,
|
|
73
|
-
),
|
|
74
|
-
(r) => ({
|
|
75
|
-
totalTokens: r.usage?.completion_tokens,
|
|
76
|
-
costUSD: r.usage?.total_cost,
|
|
77
|
-
}),
|
|
78
|
-
);
|
|
79
|
-
}
|
|
80
|
-
}
|