humanish 0.101.0 → 0.102.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.
Files changed (102) hide show
  1. package/README.md +3 -2
  2. package/dist/affordance.d.ts +2 -0
  3. package/dist/affordance.js +3 -0
  4. package/dist/affordance.js.map +1 -1
  5. package/dist/browser-control-client.d.ts +2 -0
  6. package/dist/browser-control-client.js +4 -0
  7. package/dist/browser-control-client.js.map +1 -1
  8. package/dist/browser-control-dispatcher.js +3 -0
  9. package/dist/browser-control-dispatcher.js.map +1 -1
  10. package/dist/browser-control-protocol.d.ts +77 -0
  11. package/dist/browser-control-protocol.js +31 -4
  12. package/dist/browser-control-protocol.js.map +1 -1
  13. package/dist/computer-use.d.ts +9 -0
  14. package/dist/computer-use.js +36 -8
  15. package/dist/computer-use.js.map +1 -1
  16. package/dist/cua-actor-lab.d.ts +1 -0
  17. package/dist/cua-actor-lab.js +10 -6
  18. package/dist/cua-actor-lab.js.map +1 -1
  19. package/dist/cua-speech.d.ts +13 -0
  20. package/dist/cua-speech.js +2 -0
  21. package/dist/cua-speech.js.map +1 -0
  22. package/dist/desktop-session.js +1 -0
  23. package/dist/desktop-session.js.map +1 -1
  24. package/dist/doctor-lab.js +1 -1
  25. package/dist/doctor-lab.js.map +1 -1
  26. package/dist/e2b-cua-desktop.js +51 -42
  27. package/dist/e2b-cua-desktop.js.map +1 -1
  28. package/dist/e2b-cua-provisioning.d.ts +4 -1
  29. package/dist/e2b-cua-provisioning.js +8 -2
  30. package/dist/e2b-cua-provisioning.js.map +1 -1
  31. package/dist/e2b-desktop-executor.js +3 -0
  32. package/dist/e2b-desktop-executor.js.map +1 -1
  33. package/dist/e2b-desktop-launch.d.ts +11 -1
  34. package/dist/e2b-desktop-launch.js.map +1 -1
  35. package/dist/e2b-desktop-media.d.ts +14 -0
  36. package/dist/e2b-desktop-media.js +58 -0
  37. package/dist/e2b-desktop-media.js.map +1 -0
  38. package/dist/guest-bootstrap.d.ts +4 -2
  39. package/dist/guest-bootstrap.js +16 -9
  40. package/dist/guest-bootstrap.js.map +1 -1
  41. package/dist/guest-desktop-executor.js +1 -0
  42. package/dist/guest-desktop-executor.js.map +1 -1
  43. package/dist/guest-desktop-media.d.ts +33 -0
  44. package/dist/guest-desktop-media.js +281 -0
  45. package/dist/guest-desktop-media.js.map +1 -0
  46. package/dist/guest-media-config.d.ts +15 -0
  47. package/dist/guest-media-config.js +8 -0
  48. package/dist/guest-media-config.js.map +1 -0
  49. package/dist/guest-media-worker.d.ts +1 -0
  50. package/dist/guest-media-worker.js +319 -0
  51. package/dist/guest-media-worker.js.map +1 -0
  52. package/dist/guest-runtime-desktop.d.ts +3 -1
  53. package/dist/guest-runtime-desktop.js +20 -3
  54. package/dist/guest-runtime-desktop.js.map +1 -1
  55. package/dist/guest-runtime-main.js +2 -2
  56. package/dist/guest-runtime-main.js.map +1 -1
  57. package/dist/guest-runtime.d.ts +2 -1
  58. package/dist/guest-runtime.js +1 -1
  59. package/dist/guest-runtime.js.map +1 -1
  60. package/dist/lab-config.d.ts +2 -2
  61. package/dist/lab-config.js +15 -4
  62. package/dist/lab-config.js.map +1 -1
  63. package/dist/lab-summary.js +1 -1
  64. package/dist/lab-summary.js.map +1 -1
  65. package/dist/local-firecracker-desktop.d.ts +3 -0
  66. package/dist/local-firecracker-desktop.js +7 -1
  67. package/dist/local-firecracker-desktop.js.map +1 -1
  68. package/dist/local-firecracker-study.js +16 -2
  69. package/dist/local-firecracker-study.js.map +1 -1
  70. package/dist/local-runtime-config.js +5 -2
  71. package/dist/local-runtime-config.js.map +1 -1
  72. package/dist/local-runtime-release.d.ts +2 -0
  73. package/dist/local-runtime-release.js +15 -0
  74. package/dist/local-runtime-release.js.map +1 -1
  75. package/dist/local-runtime.d.ts +1 -0
  76. package/dist/local-runtime.js +11 -9
  77. package/dist/local-runtime.js.map +1 -1
  78. package/dist/program.js +3 -2
  79. package/dist/program.js.map +1 -1
  80. package/dist/restricted-codex-participant-policy.d.ts +2 -1
  81. package/dist/restricted-codex-participant-policy.js +9 -6
  82. package/dist/restricted-codex-participant-policy.js.map +1 -1
  83. package/dist/restricted-codex-participant-run.js +2 -1
  84. package/dist/restricted-codex-participant-run.js.map +1 -1
  85. package/dist/restricted-codex-participant.d.ts +2 -0
  86. package/dist/restricted-codex-participant.js +20 -7
  87. package/dist/restricted-codex-participant.js.map +1 -1
  88. package/dist/run.d.ts +8 -5
  89. package/dist/run.js +6 -6
  90. package/dist/run.js.map +1 -1
  91. package/dist/study-analysis-engine.d.ts +1 -1
  92. package/dist/study-analysis-engine.js +53 -10
  93. package/dist/study-analysis-engine.js.map +1 -1
  94. package/docs/architecture/local-browser-runtime.md +3 -2
  95. package/docs/architecture/participant-media.md +90 -0
  96. package/docs/contracts/schemas.md +1 -1
  97. package/docs/contracts/study-analysis.md +14 -0
  98. package/docs/goals/current.md +13 -9
  99. package/docs/ramp/README.md +7 -1
  100. package/docs/release/0.102.0-participant-media.md +43 -0
  101. package/package.json +5 -4
  102. package/skills/humanish/SKILL.md +8 -5
package/README.md CHANGED
@@ -52,8 +52,9 @@ your lab; installing Codex does not change an `openai-computer-use` lab.
52
52
  For local browsers, install only `humanish` and follow the
53
53
  [local study setup](docs/architecture/local-browser-runtime.md). The first live
54
54
  run downloads a verified runtime image; `npx humanish runtime setup` prepares it
55
- ahead of time. Supported Macs use Lima instead of Docker Desktop. Local inboxes
56
- and local camera/microphone support remain follow-ups.
55
+ ahead of time. Supported Macs use Lima instead of Docker Desktop.
56
+ [Optional camera and spoken conversation](docs/architecture/participant-media.md)
57
+ use a separate media runtime. Local inboxes remain a follow-up.
57
58
 
58
59
  For a new local study, initialize with your app URL and task:
59
60
 
@@ -10,6 +10,8 @@ export type AffordanceClass =
10
10
  "pointer"
11
11
  /** Keyboard input into the page: typed text that is not a URL and not script. */
12
12
  | "keyboard"
13
+ /** Spoken input sent through the participant's admitted microphone path. */
14
+ | "speech"
13
15
  /** Direct navigation by URL (the `nav` subset). A human affordance; see the note above. */
14
16
  | "url-navigation"
15
17
  /** Script execution via the address bar (a `javascript:` URL). Not a human affordance. */
@@ -28,6 +28,7 @@ export const AFFORDANCE_CLASS_SCHEMA = "humanish.affordance-use.v1";
28
28
  export const NATURALISTIC_AFFORDANCE_CLASSES = [
29
29
  "pointer",
30
30
  "keyboard",
31
+ "speech",
31
32
  "url-navigation",
32
33
  "observation"
33
34
  ];
@@ -98,6 +99,8 @@ export function classifyCuaAction(action) {
98
99
  }
99
100
  return { affordance: "keyboard" };
100
101
  }
102
+ case "speak":
103
+ return { affordance: "speech" };
101
104
  default:
102
105
  // The wire->CuaAction mapper drops unrecognized action types before they reach here, so
103
106
  // this is unreachable today; classify defensively rather than throwing inside a run.
@@ -1 +1 @@
1
- {"version":3,"file":"affordance.js","sourceRoot":"","sources":["../src/affordance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"affordance.js","sourceRoot":"","sources":["../src/affordance.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ export interface BrowserControlClientOptions {
5
5
  transport: Duplex;
6
6
  identity: BrowserControlIdentity;
7
7
  requestTimeoutMs?: number;
8
+ /** Set only after the optional media runtime was admitted for this desktop. */
9
+ speechEnabled?: boolean;
8
10
  }
9
11
  export interface BrowserControlClient {
10
12
  executor: CuaExecutor;
@@ -103,6 +103,7 @@ export function createBrowserControlClient(options) {
103
103
  };
104
104
  const executor = {
105
105
  stallRecovery: "fail_closed",
106
+ ...(options.speechEnabled === true ? { speechEnabled: true } : {}),
106
107
  observe: () => withOperation(async () => {
107
108
  await ensureReady();
108
109
  const reply = await exchange("OBSERVE");
@@ -118,6 +119,9 @@ export function createBrowserControlClient(options) {
118
119
  }),
119
120
  execute: (action, signal) => withOperation(async () => {
120
121
  const validAction = validateBrowserControlAction(action);
122
+ if (validAction.kind === "speak" && options.speechEnabled !== true) {
123
+ throw new CuaExecutorError("action_rejected", "not_dispatched");
124
+ }
121
125
  if (signal?.aborted)
122
126
  throw new CuaExecutorError("cancelled", "not_dispatched");
123
127
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"browser-control-client.js","sourceRoot":"","sources":["../src/browser-control-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-control-client.js","sourceRoot":"","sources":["../src/browser-control-client.ts"],"names":[],"mappings":"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"}
@@ -70,6 +70,9 @@ export function attachBrowserControlDispatcher(options) {
70
70
  reply = { ...common, ok: true, observation: encodeBrowserControlObservation(observation) };
71
71
  }
72
72
  else {
73
+ if (request.action.kind === "speak" && options.executor.speechEnabled !== true) {
74
+ throw new CuaExecutorError("action_rejected", "not_dispatched");
75
+ }
73
76
  // No await between the owner gate above and invocation. The physical driver must
74
77
  // check this signal again immediately before each actual input after preparation.
75
78
  invoked = true;
@@ -1 +1 @@
1
- {"version":3,"file":"browser-control-dispatcher.js","sourceRoot":"","sources":["../src/browser-control-dispatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-control-dispatcher.js","sourceRoot":"","sources":["../src/browser-control-dispatcher.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import type { CuaAction, CuaObservation } from "./computer-use.js";
3
+ import { type HeardSpeech } from "./cua-speech.js";
3
4
  import { type CuaExecutorErrorCode } from "./cua-executor-error.js";
4
5
  export declare const BROWSER_CONTROL_VERSION = 1;
5
6
  export declare const BROWSER_CONTROL_LIMITS: Readonly<{
@@ -8,6 +9,10 @@ export declare const BROWSER_CONTROL_LIMITS: Readonly<{
8
9
  dimension: 4096;
9
10
  pixels: 16000000;
10
11
  textBytes: number;
12
+ speechCharacters: 400;
13
+ speechBytes: 1600;
14
+ heardSpeech: 4;
15
+ speechDurationMs: 120000;
11
16
  chordKeys: 16;
12
17
  keyCharacters: 64;
13
18
  dragPoints: 1024;
@@ -20,6 +25,47 @@ export interface BrowserControlIdentity {
20
25
  challenge: string;
21
26
  runtimeRevision: string;
22
27
  }
28
+ export declare const browserOnlyControlActionSchema: z.ZodDiscriminatedUnion<readonly [z.ZodObject<{
29
+ button: z.ZodOptional<z.ZodEnum<{
30
+ left: "left";
31
+ right: "right";
32
+ middle: "middle";
33
+ }>>;
34
+ x: z.ZodNumber;
35
+ y: z.ZodNumber;
36
+ kind: z.ZodLiteral<"click">;
37
+ }, z.core.$strict>, z.ZodObject<{
38
+ x: z.ZodNumber;
39
+ y: z.ZodNumber;
40
+ kind: z.ZodLiteral<"double_click">;
41
+ }, z.core.$strict>, z.ZodObject<{
42
+ x: z.ZodNumber;
43
+ y: z.ZodNumber;
44
+ kind: z.ZodLiteral<"move">;
45
+ }, z.core.$strict>, z.ZodObject<{
46
+ dx: z.ZodNumber;
47
+ dy: z.ZodNumber;
48
+ x: z.ZodNumber;
49
+ y: z.ZodNumber;
50
+ kind: z.ZodLiteral<"scroll">;
51
+ }, z.core.$strict>, z.ZodObject<{
52
+ kind: z.ZodLiteral<"type">;
53
+ text: z.ZodString;
54
+ }, z.core.$strict>, z.ZodObject<{
55
+ kind: z.ZodLiteral<"keypress">;
56
+ keys: z.ZodArray<z.ZodString>;
57
+ }, z.core.$strict>, z.ZodObject<{
58
+ kind: z.ZodLiteral<"drag">;
59
+ path: z.ZodArray<z.ZodObject<{
60
+ x: z.ZodNumber;
61
+ y: z.ZodNumber;
62
+ }, z.core.$strict>>;
63
+ }, z.core.$strict>, z.ZodObject<{
64
+ kind: z.ZodLiteral<"wait">;
65
+ ms: z.ZodOptional<z.ZodNumber>;
66
+ }, z.core.$strict>, z.ZodObject<{
67
+ kind: z.ZodLiteral<"screenshot">;
68
+ }, z.core.$strict>], "kind">;
23
69
  export declare const browserControlActionSchema: z.ZodPipe<z.ZodDiscriminatedUnion<[z.ZodObject<{
24
70
  button: z.ZodOptional<z.ZodEnum<{
25
71
  left: "left";
@@ -60,6 +106,9 @@ export declare const browserControlActionSchema: z.ZodPipe<z.ZodDiscriminatedUni
60
106
  ms: z.ZodOptional<z.ZodNumber>;
61
107
  }, z.core.$strict>, z.ZodObject<{
62
108
  kind: z.ZodLiteral<"screenshot">;
109
+ }, z.core.$strict>, z.ZodObject<{
110
+ kind: z.ZodLiteral<"speak">;
111
+ text: z.ZodString;
63
112
  }, z.core.$strict>], "kind">, z.ZodTransform<{
64
113
  kind: "click";
65
114
  x: number;
@@ -94,6 +143,9 @@ export declare const browserControlActionSchema: z.ZodPipe<z.ZodDiscriminatedUni
94
143
  } | {
95
144
  kind: "wait";
96
145
  ms?: number;
146
+ } | {
147
+ kind: "speak";
148
+ text: string;
97
149
  } | {
98
150
  kind: "screenshot";
99
151
  }, {
@@ -132,6 +184,9 @@ export declare const browserControlActionSchema: z.ZodPipe<z.ZodDiscriminatedUni
132
184
  ms?: number | undefined;
133
185
  } | {
134
186
  kind: "screenshot";
187
+ } | {
188
+ kind: "speak";
189
+ text: string;
135
190
  }>>;
136
191
  declare const observationSchema: z.ZodObject<{
137
192
  png: z.ZodString;
@@ -140,6 +195,12 @@ declare const observationSchema: z.ZodObject<{
140
195
  title: z.ZodOptional<z.ZodString>;
141
196
  text: z.ZodOptional<z.ZodString>;
142
197
  scrollY: z.ZodOptional<z.ZodNumber>;
198
+ heardSpeech: z.ZodOptional<z.ZodArray<z.ZodObject<{
199
+ id: z.ZodString;
200
+ source: z.ZodLiteral<"speaker_audio">;
201
+ text: z.ZodString;
202
+ durationMs: z.ZodNumber;
203
+ }, z.core.$strict>>>;
143
204
  }, z.core.$strict>;
144
205
  type WireObservation = z.infer<typeof observationSchema>;
145
206
  declare const requestSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -208,6 +269,9 @@ declare const requestSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
208
269
  ms: z.ZodOptional<z.ZodNumber>;
209
270
  }, z.core.$strict>, z.ZodObject<{
210
271
  kind: z.ZodLiteral<"screenshot">;
272
+ }, z.core.$strict>, z.ZodObject<{
273
+ kind: z.ZodLiteral<"speak">;
274
+ text: z.ZodString;
211
275
  }, z.core.$strict>], "kind">, z.ZodTransform<{
212
276
  kind: "click";
213
277
  x: number;
@@ -242,6 +306,9 @@ declare const requestSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
242
306
  } | {
243
307
  kind: "wait";
244
308
  ms?: number;
309
+ } | {
310
+ kind: "speak";
311
+ text: string;
245
312
  } | {
246
313
  kind: "screenshot";
247
314
  }, {
@@ -280,6 +347,9 @@ declare const requestSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
280
347
  ms?: number | undefined;
281
348
  } | {
282
349
  kind: "screenshot";
350
+ } | {
351
+ kind: "speak";
352
+ text: string;
283
353
  }>>;
284
354
  version: z.ZodLiteral<1>;
285
355
  identity: z.ZodObject<{
@@ -299,6 +369,12 @@ declare const replySchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
299
369
  title: z.ZodOptional<z.ZodString>;
300
370
  text: z.ZodOptional<z.ZodString>;
301
371
  scrollY: z.ZodOptional<z.ZodNumber>;
372
+ heardSpeech: z.ZodOptional<z.ZodArray<z.ZodObject<{
373
+ id: z.ZodString;
374
+ source: z.ZodLiteral<"speaker_audio">;
375
+ text: z.ZodString;
376
+ durationMs: z.ZodNumber;
377
+ }, z.core.$strict>>>;
302
378
  }, z.core.$strict>>;
303
379
  type: z.ZodLiteral<"reply">;
304
380
  operation: z.ZodEnum<{
@@ -360,6 +436,7 @@ export declare function sameBrowserControlIdentity(a: BrowserControlIdentity, b:
360
436
  export declare function parseBrowserControlRequest(value: unknown): BrowserControlRequest;
361
437
  export declare function parseBrowserControlReply(value: unknown): BrowserControlReply;
362
438
  export declare function validateBrowserControlAction(value: unknown): CuaAction;
439
+ export declare function validateHeardSpeech(value: unknown): HeardSpeech[];
363
440
  /** Check dimensions before allocating decoder output; v1 accepts browser-style 8-bit, noninterlaced PNG. */
364
441
  export declare function validateBrowserControlPng(bytes: Buffer): void;
365
442
  export declare function encodeBrowserControlObservation(observation: CuaObservation): WireObservation;
@@ -1,19 +1,24 @@
1
1
  import { PNG } from "pngjs";
2
2
  import { z } from "zod";
3
+ import { CUA_SPEECH_LIMITS } from "./cua-speech.js";
3
4
  import { CuaExecutorError, isCuaExecutorError } from "./cua-executor-error.js";
4
5
  export const BROWSER_CONTROL_VERSION = 1;
5
6
  export const BROWSER_CONTROL_LIMITS = Object.freeze({
6
7
  frameBytes: 12 * 1024 * 1024, pngBytes: 8 * 1024 * 1024,
7
8
  dimension: 4096, pixels: 16_000_000, textBytes: 64 * 1024,
9
+ speechCharacters: CUA_SPEECH_LIMITS.characters, speechBytes: CUA_SPEECH_LIMITS.bytes,
10
+ heardSpeech: CUA_SPEECH_LIMITS.utterances, speechDurationMs: CUA_SPEECH_LIMITS.durationMs,
8
11
  chordKeys: 16, keyCharacters: 64, dragPoints: 1024, waitMs: 30_000,
9
12
  requestTimeoutMs: 35_000, maxRequestTimeoutMs: 60_000
10
13
  });
11
14
  const token = z.string().min(1).max(128).regex(/^[A-Za-z0-9._-]+$/);
12
15
  const identitySchema = z.strictObject({ generation: token, challenge: token, runtimeRevision: token });
13
16
  const text = z.string().max(BROWSER_CONTROL_LIMITS.textBytes).refine(value => Buffer.byteLength(value) <= BROWSER_CONTROL_LIMITS.textBytes);
17
+ const speechText = z.string().min(1).max(BROWSER_CONTROL_LIMITS.speechCharacters)
18
+ .refine(value => value.trim().length > 0 && Buffer.byteLength(value) <= BROWSER_CONTROL_LIMITS.speechBytes);
14
19
  const coordinate = z.number().finite().min(-1_000_000).max(1_000_000);
15
20
  const point = { x: coordinate, y: coordinate };
16
- export const browserControlActionSchema = z.discriminatedUnion("kind", [
21
+ const browserActionSchemas = [
17
22
  z.strictObject({ kind: z.literal("click"), ...point, button: z.enum(["left", "right", "middle"]).optional() }),
18
23
  z.strictObject({ kind: z.literal("double_click"), ...point }),
19
24
  z.strictObject({ kind: z.literal("move"), ...point }),
@@ -23,6 +28,11 @@ export const browserControlActionSchema = z.discriminatedUnion("kind", [
23
28
  z.strictObject({ kind: z.literal("drag"), path: z.array(z.strictObject(point)).min(1).max(BROWSER_CONTROL_LIMITS.dragPoints) }),
24
29
  z.strictObject({ kind: z.literal("wait"), ms: z.number().finite().min(0).max(BROWSER_CONTROL_LIMITS.waitMs).optional() }),
25
30
  z.strictObject({ kind: z.literal("screenshot") })
31
+ ];
32
+ export const browserOnlyControlActionSchema = z.discriminatedUnion("kind", browserActionSchemas);
33
+ export const browserControlActionSchema = z.discriminatedUnion("kind", [
34
+ ...browserActionSchemas,
35
+ z.strictObject({ kind: z.literal("speak"), text: speechText })
26
36
  ]).transform((action) => {
27
37
  if (action.kind === "click")
28
38
  return { kind: action.kind, x: action.x, y: action.y, ...(action.button !== undefined ? { button: action.button } : {}) };
@@ -30,9 +40,18 @@ export const browserControlActionSchema = z.discriminatedUnion("kind", [
30
40
  return { kind: action.kind, ...(action.ms !== undefined ? { ms: action.ms } : {}) };
31
41
  return action;
32
42
  });
43
+ const heardSpeechSchema = z.strictObject({
44
+ id: token,
45
+ source: z.literal("speaker_audio"),
46
+ text: speechText,
47
+ durationMs: z.number().int().min(1).max(BROWSER_CONTROL_LIMITS.speechDurationMs)
48
+ });
49
+ const heardSpeechListSchema = z.array(heardSpeechSchema).min(1).max(BROWSER_CONTROL_LIMITS.heardSpeech)
50
+ .refine(rows => new Set(rows.map(row => row.id)).size === rows.length);
33
51
  const observationSchema = z.strictObject({
34
52
  png: z.string().min(1).max(4 * Math.ceil(BROWSER_CONTROL_LIMITS.pngBytes / 3)).regex(/^[A-Za-z0-9+/]*={0,2}$/).refine(value => value.length % 4 === 0),
35
- stateSignature: text, url: text.optional(), title: text.optional(), text: text.optional(), scrollY: coordinate.optional()
53
+ stateSignature: text, url: text.optional(), title: text.optional(), text: text.optional(), scrollY: coordinate.optional(),
54
+ heardSpeech: heardSpeechListSchema.optional()
36
55
  });
37
56
  const common = {
38
57
  version: z.literal(BROWSER_CONTROL_VERSION), identity: identitySchema,
@@ -83,6 +102,12 @@ export function validateBrowserControlAction(value) {
83
102
  throw new CuaExecutorError("invalid_request", "not_dispatched");
84
103
  return parsed.data;
85
104
  }
105
+ export function validateHeardSpeech(value) {
106
+ const parsed = heardSpeechListSchema.safeParse(value);
107
+ if (!parsed.success)
108
+ throw new CuaExecutorError("invalid_response", "outcome_uncertain");
109
+ return parsed.data;
110
+ }
86
111
  /** Check dimensions before allocating decoder output; v1 accepts browser-style 8-bit, noninterlaced PNG. */
87
112
  export function validateBrowserControlPng(bytes) {
88
113
  const fail = () => { throw new CuaExecutorError("invalid_response", "outcome_uncertain"); };
@@ -129,7 +154,8 @@ export function encodeBrowserControlObservation(observation) {
129
154
  validateBrowserControlPng(observation.screenshot);
130
155
  const parsed = observationSchema.safeParse({ png: observation.screenshot.toString("base64"), stateSignature: observation.stateSignature,
131
156
  ...(observation.url !== undefined ? { url: observation.url } : {}), ...(observation.title !== undefined ? { title: observation.title } : {}),
132
- ...(observation.text !== undefined ? { text: observation.text } : {}), ...(observation.scrollY !== undefined ? { scrollY: observation.scrollY } : {}) });
157
+ ...(observation.text !== undefined ? { text: observation.text } : {}), ...(observation.scrollY !== undefined ? { scrollY: observation.scrollY } : {}),
158
+ ...(observation.heardSpeech !== undefined ? { heardSpeech: observation.heardSpeech } : {}) });
133
159
  if (!parsed.success)
134
160
  throw new CuaExecutorError("invalid_response", "outcome_uncertain");
135
161
  return parsed.data;
@@ -145,7 +171,8 @@ export function decodeBrowserControlObservation(value) {
145
171
  validateBrowserControlPng(screenshot);
146
172
  return { screenshot, stateSignature: state.stateSignature,
147
173
  ...(state.url !== undefined ? { url: state.url } : {}), ...(state.title !== undefined ? { title: state.title } : {}),
148
- ...(state.text !== undefined ? { text: state.text } : {}), ...(state.scrollY !== undefined ? { scrollY: state.scrollY } : {}) };
174
+ ...(state.text !== undefined ? { text: state.text } : {}), ...(state.scrollY !== undefined ? { scrollY: state.scrollY } : {}),
175
+ ...(state.heardSpeech !== undefined ? { heardSpeech: state.heardSpeech } : {}) };
149
176
  }
150
177
  export function safeBrowserControlFailure(error, dispatched) {
151
178
  if (isCuaExecutorError(error))
@@ -1 +1 @@
1
- {"version":3,"file":"browser-control-protocol.js","sourceRoot":"","sources":["../src/browser-control-protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-control-protocol.js","sourceRoot":"","sources":["../src/browser-control-protocol.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { type HeardSpeech } from "./cua-speech.js";
2
+ export { CUA_SPEECH_LIMITS, type HeardSpeech } from "./cua-speech.js";
1
3
  import { type ActorCapabilities, type ActorCompletionReason, type ActorPersonaRef, type ActorStatus, type ActorTokenUsage, type ActorTrace, type ActorTraceItem, type ParticipantDeclaredOutcome, type ParticipantClosingReport } from "./actor-contract.js";
2
4
  import type { ActorExecutionProfile, ProviderRequestReceipt } from "./actor-contract.js";
3
5
  import type { RedactionHooks } from "./redaction.js";
@@ -38,6 +40,9 @@ export type CuaAction = {
38
40
  } | {
39
41
  kind: "wait";
40
42
  ms?: number;
43
+ } | {
44
+ kind: "speak";
45
+ text: string;
41
46
  } | {
42
47
  kind: "screenshot";
43
48
  };
@@ -93,6 +98,8 @@ export interface CuaObservation {
93
98
  scrollY?: number;
94
99
  title?: string;
95
100
  text?: string;
101
+ /** Finalized speech captured from the participant's speaker sink. */
102
+ heardSpeech?: HeardSpeech[];
96
103
  }
97
104
  /**
98
105
  * A safety check the model raised. The triple is preserved verbatim from the
@@ -212,6 +219,8 @@ export interface CuaExecutor {
212
219
  * legacy observation/idle stall recovery. Wrappers must preserve this value.
213
220
  */
214
221
  readonly stallRecovery?: "fail_closed";
222
+ /** True only when this executor can play a `speak` action into the participant microphone. */
223
+ readonly speechEnabled?: boolean;
215
224
  /** Capture the current desktop frame and its state signature. */
216
225
  observe(): Promise<CuaObservation>;
217
226
  /**
@@ -1,3 +1,5 @@
1
+ import { CUA_SPEECH_LIMITS } from "./cua-speech.js";
2
+ export { CUA_SPEECH_LIMITS } from "./cua-speech.js";
1
3
  import { ACTOR_TRACE_SCHEMA } from "./actor-contract.js";
2
4
  import { CuaProviderError, isCuaProviderError } from "./cua-provider-error.js";
3
5
  import { classifyCuaAction, summarizeAffordanceUse } from "./affordance.js";
@@ -80,6 +82,8 @@ export function actionFingerprint(actions) {
80
82
  return `scroll@${bucket(action.x)},${bucket(action.y)}:${Math.sign(action.dx)},${Math.sign(action.dy)}`;
81
83
  case "type":
82
84
  return `type:${action.text.length}`;
85
+ case "speak":
86
+ return `speak:${action.text.length}`;
83
87
  case "keypress":
84
88
  return `keypress:${action.keys.join("+")}`;
85
89
  case "drag":
@@ -213,6 +217,8 @@ export function describeCuaAction(action) {
213
217
  return `scroll (${action.dx}, ${action.dy}) at (${action.x}, ${action.y})`;
214
218
  case "type":
215
219
  return `type [${action.text.length} chars]`;
220
+ case "speak":
221
+ return `speak [${action.text.length} chars]`;
216
222
  case "keypress":
217
223
  return `keypress ${action.keys.join("+")}`;
218
224
  case "drag":
@@ -742,6 +748,24 @@ export async function runComputerUseLoop(options) {
742
748
  return await raceBounded(`observe (${label}, retry)`, executor.observe(), remaining(), observationTimeoutMs, signal);
743
749
  }
744
750
  };
751
+ const seenSpeechIds = new Set();
752
+ let pendingHeardSpeech = [];
753
+ let heardSpeechChanged = false;
754
+ const collectHeardSpeech = (value) => {
755
+ for (const utterance of value.heardSpeech ?? []) {
756
+ if (seenSpeechIds.has(utterance.id))
757
+ continue;
758
+ seenSpeechIds.add(utterance.id);
759
+ pendingHeardSpeech.push(utterance);
760
+ heardSpeechChanged = true;
761
+ record({ id: nextId("notice"), kind: "notice", lifecycle: "completed", status: "ok",
762
+ title: "speech heard", text: redactNarration(utterance.text) });
763
+ }
764
+ if (pendingHeardSpeech.length > CUA_SPEECH_LIMITS.utterances) {
765
+ throw new CuaExecutorError("invalid_response", "outcome_uncertain");
766
+ }
767
+ return pendingHeardSpeech.length === 0 ? value : { ...value, heardSpeech: pendingHeardSpeech.slice() };
768
+ };
745
769
  // The declared observation window (#510). The harness holds, looks, and takes nothing back to
746
770
  // the model: no action, no turn, no tokens. It runs once, cut to whatever session budget is
747
771
  // left, and says in the trace that the time was deliberate.
@@ -780,7 +804,7 @@ export async function runComputerUseLoop(options) {
780
804
  throw new CuaAbortError();
781
805
  await sleep(Math.min(dwell.everyMs, budget - (now() - dwellStartedAtMs)));
782
806
  currentPhase = `dwell frame ${frames + 1}`;
783
- const frameObservation = await observeBounded(`dwell frame ${frames + 1}`);
807
+ const frameObservation = collectHeardSpeech(await observeBounded(`dwell frame ${frames + 1}`));
784
808
  frames += 1;
785
809
  if (frameObservation.screenshot !== undefined)
786
810
  onScreenshot?.(frameObservation.screenshot);
@@ -804,7 +828,7 @@ export async function runComputerUseLoop(options) {
804
828
  contextHint = `The study held this page under observation for ${Math.round(dwellHeldMs / 1000)} seconds (a declared dwell window; you took no actions in that time). Continue the mission from the current state of the page.`;
805
829
  return "continue";
806
830
  };
807
- let observation = await observeBounded("initial");
831
+ let observation = collectHeardSpeech(await observeBounded("initial"));
808
832
  // Runtime-only: hand the seat's live location.href back to the orchestrator (never persisted).
809
833
  onObservedUrl?.(observation.url);
810
834
  if (observation.screenshot !== undefined)
@@ -819,7 +843,7 @@ export async function runComputerUseLoop(options) {
819
843
  observeTasks(observation, 0);
820
844
  const initialDwell = await dwellIfDue(observation, 0);
821
845
  if (initialDwell !== undefined) {
822
- observation = await observeBounded("after dwell");
846
+ observation = collectHeardSpeech(await observeBounded("after dwell"));
823
847
  onObservedUrl?.(observation.url);
824
848
  if (observation.screenshot !== undefined)
825
849
  onScreenshot?.(observation.screenshot);
@@ -952,6 +976,8 @@ export async function runComputerUseLoop(options) {
952
976
  }
953
977
  }
954
978
  bump("turns");
979
+ pendingHeardSpeech = [];
980
+ heardSpeechChanged = false;
955
981
  previousResponseId = turn.responseId ?? previousResponseId;
956
982
  lastResponseId = turn.responseId ?? lastResponseId;
957
983
  recordUsage(turn);
@@ -1112,7 +1138,7 @@ export async function runComputerUseLoop(options) {
1112
1138
  if (taskTracker !== undefined) {
1113
1139
  try {
1114
1140
  currentPhase = "observing closing task state";
1115
- const closing = await observeBounded("closing");
1141
+ const closing = collectHeardSpeech(await observeBounded("closing"));
1116
1142
  observeTasks(closing, turnNumber);
1117
1143
  }
1118
1144
  catch (error) {
@@ -1286,6 +1312,7 @@ export async function runComputerUseLoop(options) {
1286
1312
  kind: "ui_action",
1287
1313
  lifecycle: "completed",
1288
1314
  title: actionTitle,
1315
+ ...(action.kind === "speak" ? { text: redactNarration(action.text) } : {}),
1289
1316
  // Structured pin coordinates (#441), exactly the click classes the Observer
1290
1317
  // pins render — recorded fact instead of a title re-parse downstream.
1291
1318
  ...(action.kind === "click" || action.kind === "double_click"
@@ -1296,7 +1323,7 @@ export async function runComputerUseLoop(options) {
1296
1323
  if (signal?.aborted)
1297
1324
  throw new CuaAbortError();
1298
1325
  currentPhase = `observing UI state after turn ${turnNumber}`;
1299
- observation = await observeBounded(`after turn ${turnNumber}`);
1326
+ observation = collectHeardSpeech(await observeBounded(`after turn ${turnNumber}`));
1300
1327
  // Runtime-only: hand the seat's live location.href back to the orchestrator (never persisted).
1301
1328
  onObservedUrl?.(observation.url);
1302
1329
  if (observation.screenshot !== undefined)
@@ -1311,7 +1338,7 @@ export async function runComputerUseLoop(options) {
1311
1338
  observeTasks(observation, turnNumber);
1312
1339
  const dwellOutcome = await dwellIfDue(observation, turnNumber);
1313
1340
  if (dwellOutcome !== undefined) {
1314
- observation = await observeBounded("after dwell");
1341
+ observation = collectHeardSpeech(await observeBounded("after dwell"));
1315
1342
  onObservedUrl?.(observation.url);
1316
1343
  if (observation.screenshot !== undefined)
1317
1344
  onScreenshot?.(observation.screenshot);
@@ -1359,13 +1386,14 @@ export async function runComputerUseLoop(options) {
1359
1386
  // behavioral signal already (the agent took nothing but screenshots and waits), so it keeps
1360
1387
  // reading the frame on its own — a repeated screenshot is exactly what an idle streak IS, and
1361
1388
  // feeding repetition into it would grant an extra forgiveness step for being idle.
1362
- const progressed = frameChanged || !repeatingRecentAction;
1389
+ const observedProgress = frameChanged || heardSpeechChanged;
1390
+ const progressed = observedProgress || !repeatingRecentAction;
1363
1391
  // A screenshot/wait turn while the UI visibly changes may be patience through loading or a
1364
1392
  // transition, so grant a bounded recovery window. Do not grant infinite immunity: animated
1365
1393
  // pixels or state-executor turn counters can otherwise keep a screenshot/wait loop alive
1366
1394
  // until the wall-clock timeout.
1367
1395
  if (idleThisTurn) {
1368
- if (frameChanged && idleProgressForgivenessUsed < IDLE_PROGRESS_FORGIVENESS_STEPS) {
1396
+ if (observedProgress && idleProgressForgivenessUsed < IDLE_PROGRESS_FORGIVENESS_STEPS) {
1369
1397
  idleProgressForgivenessUsed += 1;
1370
1398
  consecutiveIdle = 0;
1371
1399
  }