@agentorg/computer 0.0.7 → 0.0.8

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.
@@ -146,7 +146,7 @@ export interface paths {
146
146
  };
147
147
  get?: never;
148
148
  put?: never;
149
- /** A one-time ticket to watch or operate one of its surfaces live: the agent's commands as they run, or a shell of your own. Open its url as a WebSocket within 60 seconds. */
149
+ /** A one-time ticket to watch or operate one of its surfaces live: the agent's commands as they run, a shell of your own, its files, or its browser. Open its url as a WebSocket within 60 seconds. */
150
150
  post: operations["createLiveSession"];
151
151
  delete?: never;
152
152
  options?: never;
@@ -248,12 +248,12 @@ export interface components {
248
248
  };
249
249
  };
250
250
  /**
251
- * @description commands: the agent's commands as they run, read-only, in commands@1. terminal: a shell of your own in its workspace, as its user, in pty@1. browser: its browser, in screencast@1: binary messages are JPEG frames of the page shown, text messages are ScreencastEvent one way and ScreencastInput the other. Opening it to operate makes you the driver: the agent's browser calls wait up to 25 seconds while you are, then answer that a person has or had it. You stop being the driver when you send release, close the socket, or send nothing for 60 seconds, and sending input takes it again.
251
+ * @description commands: the agent's commands as they run, read-only, in commands@1. terminal: a shell of your own in its workspace, as its user, in pty@1. files: its workspace's files, in files@1: text messages are FilesRequest one way and FilesAnswer the other, and a file's bytes travel as binary messages of at most 1,048,576 bytes. Watching lists and reads; operating also writes, which a computer with read access doesn't offer. browser: its browser, in screencast@1: binary messages are JPEG frames of the page shown, text messages are ScreencastEvent one way and ScreencastInput the other. Nobody waits for anybody: the agent's tools and a person's input act on the same browser at once. The page shown is each socket's own. A socket is shown each new tab as it opens, until it sends a tab input to show or open one; from then its page changes only when that page closes.
252
252
  * @enum {string}
253
253
  */
254
- Surface: "commands" | "terminal" | "browser";
254
+ Surface: "commands" | "terminal" | "files" | "browser";
255
255
  /**
256
- * @description In watch, what you send is dropped.
256
+ * @description In watch you see and don't act: what you send is dropped, except that a files socket may still ask to list, to read and for what changed.
257
257
  * @enum {string}
258
258
  */
259
259
  LiveMode: "watch" | "operate";
@@ -262,7 +262,7 @@ export interface components {
262
262
  protocol: string;
263
263
  /** @description Whether it can be operated */
264
264
  operate: boolean;
265
- /** @description Why it can't be opened here */
265
+ /** @description Why it can't be opened now, if it can't. */
266
266
  unavailable?: string;
267
267
  };
268
268
  NewLiveSession: {
@@ -316,12 +316,6 @@ export interface components {
316
316
  label: string;
317
317
  selected: boolean;
318
318
  }[];
319
- } | {
320
- /** @constant */
321
- type: "driver";
322
- you: boolean;
323
- held: boolean;
324
- agentWaiting: boolean;
325
319
  };
326
320
  /** @description What an operate socket sends on screencast@1, as JSON text. A watch socket's is dropped. */
327
321
  ScreencastInput: {
@@ -374,11 +368,90 @@ export interface components {
374
368
  } | {
375
369
  /** @constant */
376
370
  type: "navigate";
377
- /** @description A URL */
371
+ /** @description A URL, or back, forward or reload. */
378
372
  to: string;
373
+ };
374
+ /** @description What a socket sends on files@1, as JSON text. Each has an id of its own choosing, which the answer repeats; answers come as they are ready, in any order, and ids aren't checked for repeats. A request still unanswered when the socket closes gets no answer. A path is from the workspace, with / between its parts, or absolute inside it, and nothing outside the workspace is reached. A binary message that follows no write closes the socket, and so does any message over 1,048,576 bytes. */
375
+ FilesRequest: {
376
+ /** @constant */
377
+ type: "list";
378
+ id: string;
379
+ /** @description The workspace itself, if left out. */
380
+ path?: string;
381
+ } | {
382
+ /** @constant */
383
+ type: "read";
384
+ id: string;
385
+ path: string;
386
+ offset: number;
387
+ length: number;
388
+ } | {
389
+ /** @constant */
390
+ type: "changed";
391
+ id: string;
392
+ /** Format: date-time */
393
+ since: string;
394
+ } | {
395
+ /** @constant */
396
+ type: "write";
397
+ id: string;
398
+ path: string;
399
+ offset: number;
400
+ length: number;
401
+ last: boolean;
402
+ };
403
+ /** @description What the service sends on files@1, as JSON text, each with the id it answers. Nothing comes between a data message and its bytes. */
404
+ FilesAnswer: {
405
+ /** @constant */
406
+ type: "entries";
407
+ id: string;
408
+ path: string;
409
+ entries: {
410
+ name: string;
411
+ /** @enum {string} */
412
+ kind: "file" | "folder" | "link";
413
+ size: number;
414
+ /** Format: date-time */
415
+ modifiedAt: string;
416
+ }[];
417
+ /** @description Whether the folder has more than these. */
418
+ more: boolean;
379
419
  } | {
380
420
  /** @constant */
381
- type: "release";
421
+ type: "data";
422
+ id: string;
423
+ path: string;
424
+ offset: number;
425
+ /** @description How many bytes follow. */
426
+ length: number;
427
+ size: number;
428
+ /** Format: date-time */
429
+ modifiedAt: string;
430
+ } | {
431
+ /** @constant */
432
+ type: "changes";
433
+ id: string;
434
+ /** Format: date-time */
435
+ since: string;
436
+ changes: {
437
+ path: string;
438
+ size: number;
439
+ /** Format: date-time */
440
+ modifiedAt: string;
441
+ }[];
442
+ /** @description Whether more than these changed. */
443
+ more: boolean;
444
+ } | {
445
+ /** @constant */
446
+ type: "written";
447
+ id: string;
448
+ path: string;
449
+ size: number;
450
+ } | {
451
+ /** @constant */
452
+ type: "refused";
453
+ id: string;
454
+ message: string;
382
455
  };
383
456
  ComputerLogs: {
384
457
  logs: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentorg/computer",
3
- "version": "0.0.7",
3
+ "version": "0.0.8",
4
4
  "description": "Computers for agents, as a service: a terminal, files and a browser over MCP",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -28,15 +28,15 @@
28
28
  "test": "npm run build && node --test --test-timeout=60000 \"out/test/**/*.test.js\""
29
29
  },
30
30
  "dependencies": {
31
- "@playwright/mcp": "0.0.84",
32
31
  "playwright-core": "1.65.0-alpha-2026-10-30"
33
32
  },
34
33
  "devDependencies": {
35
- "@agentorg/exec": "0.0.3",
34
+ "@agentorg/exec": "0.0.4",
36
35
  "@biomejs/biome": "2.6.5",
37
36
  "@modelcontextprotocol/client": "2.4.0",
38
37
  "@modelcontextprotocol/node": "2.1.2",
39
38
  "@modelcontextprotocol/server": "2.4.0",
39
+ "@playwright/mcp": "0.0.84",
40
40
  "@types/node": "^22.20.5",
41
41
  "@types/ws": "8.18.2",
42
42
  "ajv": "8.20.0",