humanish 0.15.2 → 0.16.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 (59) hide show
  1. package/README.md +15 -7
  2. package/dist/actor-contract.d.ts +2 -3
  3. package/dist/actor-contract.js +6 -7
  4. package/dist/actor-contract.js.map +1 -1
  5. package/dist/actor-registry.d.ts +4 -4
  6. package/dist/actor-registry.js +8 -7
  7. package/dist/actor-registry.js.map +1 -1
  8. package/dist/artifact-reference.js +1 -1
  9. package/dist/artifact-reference.js.map +1 -1
  10. package/dist/concurrent-shared-world-lab.js +24 -11
  11. package/dist/concurrent-shared-world-lab.js.map +1 -1
  12. package/dist/cua-actor-lab.d.ts +101 -4
  13. package/dist/cua-actor-lab.js +456 -77
  14. package/dist/cua-actor-lab.js.map +1 -1
  15. package/dist/device-presets.d.ts +4 -4
  16. package/dist/device-presets.js +5 -5
  17. package/dist/device-presets.js.map +1 -1
  18. package/dist/e2b-terminal-lab.d.ts +18 -20
  19. package/dist/e2b-terminal-lab.js +28 -28
  20. package/dist/e2b-terminal-lab.js.map +1 -1
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/lab-config.d.ts +27 -28
  24. package/dist/lab-config.js +6 -6
  25. package/dist/lab-config.js.map +1 -1
  26. package/dist/lab-engine.d.ts +1 -1
  27. package/dist/lab-engine.js +8 -10
  28. package/dist/lab-engine.js.map +1 -1
  29. package/dist/observer-assets.js +92 -15
  30. package/dist/observer-assets.js.map +1 -1
  31. package/dist/oss-meta-lab.js +2 -4
  32. package/dist/oss-meta-lab.js.map +1 -1
  33. package/dist/program.js +1 -1
  34. package/dist/program.js.map +1 -1
  35. package/dist/run.d.ts +38 -0
  36. package/dist/run.js +71 -1
  37. package/dist/run.js.map +1 -1
  38. package/dist/shared-world-lab.d.ts +20 -1
  39. package/dist/shared-world-lab.js +197 -23
  40. package/dist/shared-world-lab.js.map +1 -1
  41. package/dist/terminal-agent-actor.d.ts +12 -7
  42. package/dist/terminal-agent-actor.js +18 -16
  43. package/dist/terminal-agent-actor.js.map +1 -1
  44. package/docs/architecture/actor-contract.md +32 -21
  45. package/docs/architecture/observer.md +15 -9
  46. package/docs/architecture/state-driven-executor.md +3 -3
  47. package/docs/architecture/terminal-product-lane.md +29 -25
  48. package/docs/assets/humanish-drawdb-hero.png +0 -0
  49. package/docs/contracts/adapter-fixtures.md +4 -2
  50. package/docs/contracts/core.md +9 -4
  51. package/docs/contracts/feedback.md +4 -2
  52. package/docs/contracts/policy.md +5 -3
  53. package/docs/contracts/run-bundle.md +24 -3
  54. package/docs/contracts/schemas.md +34 -23
  55. package/docs/goals/current.md +69 -20
  56. package/docs/ramp/README.md +32 -13
  57. package/docs/release/open-source-readiness.md +5 -4
  58. package/docs/release/public-readiness-standard.md +6 -1
  59. package/package.json +1 -1
@@ -11,7 +11,7 @@ import { type LabConfig, type LabSubjectStateCheckpoint } from "./lab-config.js"
11
11
  import { renderObserver, type ObserverResult } from "./observer.js";
12
12
  import type { LocalTreeArchive } from "./source-archive.js";
13
13
  import type { StopWhen } from "./stop-conditions.js";
14
- import { type RunBundle, type RunSubjectProvenance, type SharedWorldCheckpoint } from "./run.js";
14
+ import { type RunBundle, type RunDesktopGeometry, type RunSubjectProvenance, type SharedWorldCheckpoint } from "./run.js";
15
15
  export declare const SHARED_WORLD_LAB_SCHEMA = "humanish.shared-world-lab-result.v1";
16
16
  export declare const SHARED_WORLD_LAB_PROVIDER_METADATA: {
17
17
  readonly mode: "shared-world-lab";
@@ -156,6 +156,7 @@ interface RoleOutcome {
156
156
  sessionError?: string;
157
157
  screenshots: string[];
158
158
  desktopBrowser?: DesktopBrowserEvidence;
159
+ desktopGeometry?: RunDesktopGeometry;
159
160
  /** Set when fail-fast skipped this role before it ran. */
160
161
  skippedReason?: string;
161
162
  noEngagement: boolean;
@@ -163,6 +164,23 @@ interface RoleOutcome {
163
164
  /** The checkpoint snapshot taken AFTER this role's turn (absent for skipped roles). */
164
165
  afterCheckpoint?: SharedWorldCheckpoint;
165
166
  }
167
+ /**
168
+ * Self-match-proof pkill/pgrep -f pattern for a seat's unique profile dir: bracket the first
169
+ * character so the in-sandbox shell running the termination script (whose own command line
170
+ * carries this pattern) can never match itself. Exported (pure) for contract tests.
171
+ */
172
+ export declare function seatProfilePkillPattern(profileDir: string): string;
173
+ /**
174
+ * Build the in-sandbox command that ends ONE seat's browser when its turn ends (pure; exported
175
+ * for contract tests). All roles share the ONE desktop, so a prior seat's browser left alive
176
+ * could keep polling/holding websockets and mutating the shared plane during a later role's
177
+ * turn, with its authenticated window one Alt-Tab away from the current actor. The recorded
178
+ * launch PID (a setsid session leader) is the primary kill (its process group takes the whole
179
+ * browser tree); pkill -f on the seat's unique profile dir is the fallback; a short bounded
180
+ * wait escalates to SIGKILL. Exit is always 0: a termination failure degrades to the caller's
181
+ * warning, never a failed run.
182
+ */
183
+ export declare function buildSeatBrowserTerminationCommand(processId: string | undefined, profileDir: string): string;
166
184
  /** Combine a snapshot's per-probe digests into ONE sha256-16 (digest-only; no raw value). */
167
185
  export declare function combineCheckpointDigest(parts: string[]): string;
168
186
  /**
@@ -201,6 +219,7 @@ export declare function buildSharedWorldBundle(args: {
201
219
  subject: RunSubjectProvenance;
202
220
  sandboxResolution: [number, number];
203
221
  sandboxPreset: DevicePreset;
222
+ desktopGeometry?: RunDesktopGeometry;
204
223
  seedDigest: string;
205
224
  subjectCommit?: string;
206
225
  failFastReason?: string;
@@ -17,16 +17,16 @@
17
17
  // persist DIGEST-ONLY. The concurrent (getHost) topology, a handoff/barrier grammar, an onTurn
18
18
  // hook, and real per-role login are named NON-GOALS (PR2+).
19
19
  //
20
- // FIDELITY NOTE: one sandbox has ONE desktop geometry, so a role's `device` is a PROMPT SIGNAL
21
- // (composed into its persona context) — physical per-role geometry is the concurrent topology's
22
- // job. Each role's stream viewport records the sandbox's actual rendered resolution (honest).
20
+ // FIDELITY NOTE: one sandbox has ONE screen geometry, so a role's `device` is a PROMPT SIGNAL
21
+ // (composed into its persona context) — physical per-role screen geometry is the concurrent
22
+ // topology's job. Each role records its measured browser viewport separately from that screen.
23
23
  import { randomBytes } from "node:crypto";
24
24
  import path from "node:path";
25
25
  import { runDesktopCommandOrThrow, toErrorMessage } from "./command-failure.js";
26
26
  import { adapterScoreFailureMessage, applyBrowserAdapterHooks } from "./adapter-extension.js";
27
27
  import { actorRegistry, isCuaActorDescriptor } from "./actor-registry.js";
28
28
  import { CHROMIUM_EVIDENCE_HYGIENE_FLAGS, chromiumEvidenceProfilePreferencesJson } from "./browser-evidence-hygiene.js";
29
- import { commandDigestOf, composeLaneInstructions, defaultPackLocalTree, makeChromeBrowserStateObserver, makeLaneWriteScreenshot, provisionCloneSubject, provisionLocalTreeSubject, resolveLaneDevice, resolveSubjectState, SUBJECT_DIR } from "./cua-actor-lab.js";
29
+ import { commandDigestOf, composeLaneInstructions, defaultPackLocalTree, makeChromeBrowserStateObserver, captureDesktopBrowserGeometry, inspectDesktopScreenGeometry, makeLaneWriteScreenshot, provisionCloneSubject, provisionLocalTreeSubject, resolveLaneDevice, resolveSubjectState, SUBJECT_DIR, desktopBrowserFamily } from "./cua-actor-lab.js";
30
30
  import { createDesktopSandbox, loadE2BDesktopModule } from "./e2b-desktop-launch.js";
31
31
  import { runDetachedStep } from "./e2b-detached.js";
32
32
  import { resolveSeatUrl, sharedWorldValidationReason } from "./lab-config.js";
@@ -43,6 +43,8 @@ export const SHARED_WORLD_LAB_PROVIDER_METADATA = {
43
43
  const DEFAULT_SESSION_TIMEOUT_MS = 300_000;
44
44
  // Settle after opening a seat's browser, before the session's first screenshot.
45
45
  const BROWSER_SETTLE_MS = 8_000;
46
+ // In-sandbox budget for ending one seat's browser at turn end (TERM, short wait, KILL).
47
+ const SEAT_BROWSER_TERMINATION_TIMEOUT_MS = 15_000;
46
48
  // Server-side reclamation buffer past the loop's own wall-clock stop.
47
49
  const SANDBOX_TIMEOUT_BUFFER_MS = 10 * 60_000;
48
50
  // Room for the one-time clone/install/build/start/probe + the sequential per-role sessions.
@@ -90,15 +92,27 @@ async function launchSeatBrowser(desktop, args) {
90
92
  " local label=\"$1\"",
91
93
  " local binary=\"$2\"",
92
94
  " if ! command -v \"$binary\" >/dev/null 2>&1; then return 127; fi",
93
- " echo \"HUMANISH_BROWSER_RESOLVED=$label\"",
94
- " pkill -f '[r]emote-debugging-port=9222' 2>/dev/null || true",
95
95
  " prepare_chrome_profile",
96
- " setsid -f \"$binary\" --new-window --remote-debugging-address=127.0.0.1 --remote-debugging-port=9222 --user-data-dir=\"$profile_dir\" \"${chrome_debug_flags[@]}\" \"$seat_url\" > /dev/null 2>&1 < /dev/null",
96
+ " rm -f \"$profile_dir/DevToolsActivePort\"",
97
+ " setsid \"$binary\" --new-window --remote-debugging-address=127.0.0.1 --remote-debugging-port=0 --user-data-dir=\"$profile_dir\" \"${chrome_debug_flags[@]}\" \"$seat_url\" > /dev/null 2>&1 < /dev/null &",
98
+ " local launch_pid=$!",
99
+ " echo \"HUMANISH_BROWSER_RESOLVED=$label\"",
100
+ " echo \"HUMANISH_BROWSER_PID=$launch_pid\"",
101
+ " for _ in $(seq 1 30); do",
102
+ " if [ -s \"$profile_dir/DevToolsActivePort\" ]; then",
103
+ " head -n 1 \"$profile_dir/DevToolsActivePort\" | sed 's/^/HUMANISH_BROWSER_CDP_PORT=/'",
104
+ " break",
105
+ " fi",
106
+ " sleep 0.1",
107
+ " done",
97
108
  "}",
98
109
  "launch_firefox() {",
99
110
  " if ! command -v firefox >/dev/null 2>&1; then return 127; fi",
111
+ " setsid firefox --new-instance --no-remote --new-window --profile \"$profile_dir\" \"$seat_url\" > /dev/null 2>&1 < /dev/null &",
112
+ " local launch_pid=$!",
100
113
  " echo \"HUMANISH_BROWSER_RESOLVED=firefox\"",
101
- " setsid -f firefox --new-window --profile \"$profile_dir\" \"$seat_url\" > /dev/null 2>&1 < /dev/null",
114
+ " echo \"HUMANISH_BROWSER_PID=$launch_pid\"",
115
+ " echo \"HUMANISH_BROWSER_PROFILE_DIR=$profile_dir\"",
102
116
  "}",
103
117
  "case \"$browser_preference\" in",
104
118
  " chrome)",
@@ -121,15 +135,60 @@ async function launchSeatBrowser(desktop, args) {
121
135
  if (args.browserPreference !== undefined && args.browserPreference !== "default" && result.exitCode !== undefined && result.exitCode !== 0) {
122
136
  throw new Error(`requested desktop browser "${args.browserPreference}" could not be launched for shared-world seat`);
123
137
  }
124
- if (args.browserPreference === undefined) {
125
- return undefined;
126
- }
127
138
  const resolved = (result.stdout ?? "").match(/^HUMANISH_BROWSER_RESOLVED=(\S+)$/m)?.[1];
139
+ const processId = (result.stdout ?? "").match(/^HUMANISH_BROWSER_PID=(\d+)$/m)?.[1];
140
+ const profileDir = (result.stdout ?? "").match(/^HUMANISH_BROWSER_PROFILE_DIR=(\S+)$/m)?.[1] ?? args.profileDir;
141
+ const cdpPortRaw = (result.stdout ?? "").match(/^HUMANISH_BROWSER_CDP_PORT=(\d+)$/m)?.[1];
142
+ const cdpPort = cdpPortRaw === undefined ? undefined : Number(cdpPortRaw);
128
143
  return {
129
- requested,
130
- ...(resolved === undefined ? {} : { resolved })
144
+ family: desktopBrowserFamily(resolved ?? requested),
145
+ ...(processId === undefined
146
+ ? {}
147
+ : { identity: { processId, profileDir, targetUrl: args.seatUrl, ...(cdpPort === undefined ? {} : { cdpPort }) } }),
148
+ ...(args.browserPreference === undefined
149
+ ? {}
150
+ : { evidence: { requested, ...(resolved === undefined ? {} : { resolved }) } })
131
151
  };
132
152
  }
153
+ /**
154
+ * Self-match-proof pkill/pgrep -f pattern for a seat's unique profile dir: bracket the first
155
+ * character so the in-sandbox shell running the termination script (whose own command line
156
+ * carries this pattern) can never match itself. Exported (pure) for contract tests.
157
+ */
158
+ export function seatProfilePkillPattern(profileDir) {
159
+ const head = profileDir.slice(0, 1);
160
+ const tail = profileDir.slice(1).replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
161
+ return `[${head}]${tail}`;
162
+ }
163
+ /**
164
+ * Build the in-sandbox command that ends ONE seat's browser when its turn ends (pure; exported
165
+ * for contract tests). All roles share the ONE desktop, so a prior seat's browser left alive
166
+ * could keep polling/holding websockets and mutating the shared plane during a later role's
167
+ * turn, with its authenticated window one Alt-Tab away from the current actor. The recorded
168
+ * launch PID (a setsid session leader) is the primary kill (its process group takes the whole
169
+ * browser tree); pkill -f on the seat's unique profile dir is the fallback; a short bounded
170
+ * wait escalates to SIGKILL. Exit is always 0: a termination failure degrades to the caller's
171
+ * warning, never a failed run.
172
+ */
173
+ export function buildSeatBrowserTerminationCommand(processId, profileDir) {
174
+ return [
175
+ "set -u",
176
+ `launch_pid=${shellQuote(processId ?? "")}`,
177
+ `profile_pattern=${shellQuote(seatProfilePkillPattern(profileDir))}`,
178
+ 'if [ -n "$launch_pid" ]; then',
179
+ ' kill -TERM -- "-$launch_pid" 2>/dev/null || kill -TERM "$launch_pid" 2>/dev/null || true',
180
+ "fi",
181
+ 'pkill -TERM -f "$profile_pattern" 2>/dev/null || true',
182
+ "for _ in $(seq 1 20); do",
183
+ ' if ! pgrep -f "$profile_pattern" >/dev/null 2>&1; then',
184
+ " exit 0",
185
+ " fi",
186
+ " sleep 0.1",
187
+ "done",
188
+ 'pkill -KILL -f "$profile_pattern" 2>/dev/null || true',
189
+ "exit 0"
190
+ ].join("\n");
191
+ }
133
192
  /** Combine a snapshot's per-probe digests into ONE sha256-16 (digest-only; no raw value). */
134
193
  export function combineCheckpointDigest(parts) {
135
194
  return commandDigestOf(parts.join("\n"));
@@ -300,6 +359,9 @@ export async function runSharedWorldLab(options) {
300
359
  let sandboxId;
301
360
  let killed = false;
302
361
  let failFastReason;
362
+ let sharedScreenGeometry = {
363
+ screen: { requested: { width: sandboxResolution[0], height: sandboxResolution[1] } }
364
+ };
303
365
  // Pack the working tree ONCE per run, on the host, BEFORE any sandbox is created (mirrors the
304
366
  // cua route's ordering): a packing failure fails the run closed here, never spending sandbox
305
367
  // cost. Dry-run packs nothing (no fs side effects; the contract bundle carries no archiveSha256).
@@ -353,6 +415,23 @@ export async function runSharedWorldLab(options) {
353
415
  if (hooks.prepareDesktop) {
354
416
  await hooks.prepareDesktop(desktop);
355
417
  }
418
+ const screenGeometry = await inspectDesktopScreenGeometry({
419
+ desktop,
420
+ laneId: "shared-world",
421
+ requestedScreen: sandboxResolution,
422
+ requestTimeoutMs
423
+ });
424
+ if (screenGeometry.verified) {
425
+ sharedScreenGeometry = {
426
+ screen: { ...sharedScreenGeometry.screen, verified: screenGeometry.verified }
427
+ };
428
+ }
429
+ if (screenGeometry.warning) {
430
+ warnings.push(screenGeometry.warning);
431
+ sharedScreenGeometry = { ...sharedScreenGeometry, warnings: [screenGeometry.warning] };
432
+ }
433
+ if (screenGeometry.error)
434
+ throw new Error(screenGeometry.error);
356
435
  // Provision the shared plane ONCE: clone + install/build + seed + serve + readiness probe
357
436
  // (clone route), or upload/extract the once-per-run packed archive + the SAME shared serve
358
437
  // pipeline (local-tree route). One stderr line per phase boundary by default; hooks.onPhase
@@ -418,15 +497,38 @@ export async function runSharedWorldLab(options) {
418
497
  let session;
419
498
  let sessionError;
420
499
  let desktopBrowser;
500
+ let launchedBrowserFamily = "unknown";
501
+ let browserLaunchIdentity;
502
+ let browserLaunched = false;
503
+ let initialBrowserGeometry;
504
+ let browserWindowId;
505
+ let browserTargetId;
506
+ let desktopGeometry = sharedScreenGeometry;
421
507
  try {
422
508
  // Fresh isolated browser profile per seat, opened at the role's same-origin loopback entry.
423
- desktopBrowser = await launchSeatBrowser(desktop, {
509
+ const browserLaunch = await launchSeatBrowser(desktop, {
424
510
  ...(config.execution?.desktop?.browser === undefined ? {} : { browserPreference: config.execution.desktop.browser }),
425
511
  profileDir: spec.profileDir,
426
512
  seatUrl: spec.seatUrl,
427
513
  requestTimeoutMs
428
514
  });
515
+ desktopBrowser = browserLaunch.evidence;
516
+ launchedBrowserFamily = browserLaunch.family;
517
+ browserLaunchIdentity = browserLaunch.identity;
518
+ browserLaunched = true;
429
519
  await desktop.wait(BROWSER_SETTLE_MS).catch(() => undefined);
520
+ const browserGeometry = await captureDesktopBrowserGeometry({
521
+ desktop,
522
+ browserFamily: launchedBrowserFamily,
523
+ ...(browserLaunchIdentity === undefined ? {} : { launchIdentity: browserLaunchIdentity }),
524
+ laneId: spec.roleId,
525
+ targetUrl: spec.seatUrl,
526
+ requestedScreen: sandboxResolution,
527
+ requestTimeoutMs
528
+ });
529
+ initialBrowserGeometry = browserGeometry;
530
+ browserWindowId = browserGeometry.browserWindowId;
531
+ browserTargetId = browserGeometry.browserTargetId;
430
532
  const sessionOptions = {
431
533
  instructions: spec.instructions,
432
534
  persona: spec.persona,
@@ -436,9 +538,17 @@ export async function runSharedWorldLab(options) {
436
538
  ...(config.actors[0]?.model ? { model: config.actors[0].model } : {})
437
539
  },
438
540
  desktop: desktop,
439
- executorOptions: {
440
- observeBrowserState: makeChromeBrowserStateObserver(desktop, requestTimeoutMs)
441
- },
541
+ ...(launchedBrowserFamily === "chromium"
542
+ ? {
543
+ executorOptions: {
544
+ observeBrowserState: makeChromeBrowserStateObserver(desktop, requestTimeoutMs, {
545
+ ...(browserLaunchIdentity?.cdpPort === undefined ? {} : { cdpPort: browserLaunchIdentity.cdpPort }),
546
+ ...(browserLaunchIdentity?.profileDir === undefined ? {} : { profileDir: browserLaunchIdentity.profileDir }),
547
+ targetUrl: spec.seatUrl
548
+ }, browserTargetId)
549
+ }
550
+ }
551
+ : {}),
442
552
  redactScreenshots,
443
553
  scrubText: scrubKnownValues,
444
554
  writeScreenshot,
@@ -449,6 +559,49 @@ export async function runSharedWorldLab(options) {
449
559
  catch (error) {
450
560
  sessionError = redactText(scrubKnownValues(toErrorMessage(error)));
451
561
  }
562
+ if (browserLaunched) {
563
+ const finalGeometry = await captureDesktopBrowserGeometry({
564
+ desktop,
565
+ browserFamily: launchedBrowserFamily,
566
+ ...(browserLaunchIdentity === undefined ? {} : { launchIdentity: browserLaunchIdentity }),
567
+ ...(browserWindowId === undefined ? {} : { browserWindowId }),
568
+ ...(browserTargetId === undefined ? {} : { browserTargetId }),
569
+ laneId: spec.roleId,
570
+ targetUrl: spec.seatUrl,
571
+ requestedScreen: sandboxResolution,
572
+ requestTimeoutMs,
573
+ resize: false
574
+ }).catch((error) => ({
575
+ warnings: [`Final browser geometry measurement failed for lane ${spec.roleId}: ${redactText(scrubKnownValues(toErrorMessage(error)))}`]
576
+ }));
577
+ // Chosen capture rule (mirrors runCuaLane): seat-end-if-it-measured-anything, else
578
+ // seat-open. A seat-end capture that measured EITHER field wins whole, so a partial
579
+ // seat-end capture omits fields the seat-open capture had (honest omission); only a
580
+ // seat-end capture that measured NOTHING falls back to the seat-open capture.
581
+ const chosenGeometry = finalGeometry.browserWindow !== undefined || finalGeometry.viewport !== undefined
582
+ ? finalGeometry
583
+ : initialBrowserGeometry ?? finalGeometry;
584
+ const geometryWarnings = [...new Set(chosenGeometry.warnings.map((warning) => scrubKnownValues(warning)))];
585
+ warnings.push(...geometryWarnings);
586
+ desktopGeometry = {
587
+ ...sharedScreenGeometry,
588
+ ...(chosenGeometry.browserWindow === undefined ? {} : { browserWindow: chosenGeometry.browserWindow }),
589
+ ...(chosenGeometry.viewport === undefined ? {} : { viewport: chosenGeometry.viewport }),
590
+ ...((sharedScreenGeometry.warnings?.length ?? 0) + geometryWarnings.length === 0
591
+ ? {}
592
+ : { warnings: [...(sharedScreenGeometry.warnings ?? []), ...geometryWarnings] })
593
+ };
594
+ // End THIS seat's browser now that its turn (and its final geometry capture) is done:
595
+ // every role shares the ONE desktop, so this is the per-seat identity boundary. Runs
596
+ // after the final seat too. Bounded + best-effort: a failure degrades to an explicit
597
+ // warning (the run continues), never a hang.
598
+ try {
599
+ await desktop.commands.run(buildSeatBrowserTerminationCommand(browserLaunchIdentity?.processId, spec.profileDir), { requestTimeoutMs, timeoutMs: SEAT_BROWSER_TERMINATION_TIMEOUT_MS });
600
+ }
601
+ catch (error) {
602
+ warnings.push(`Seat browser termination failed for role ${spec.roleId} (run continues; the seat's browser may remain open on the shared desktop): ${redactText(scrubKnownValues(toErrorMessage(error)))}`);
603
+ }
604
+ }
452
605
  if (session) {
453
606
  await writeContainedOutputFile(runPaths, spec.traceArtifactPath, `${JSON.stringify(session.trace, null, 2)}\n`, "utf8");
454
607
  if (session.trace.redaction.screenshots === "raw") {
@@ -482,6 +635,7 @@ export async function runSharedWorldLab(options) {
482
635
  ...(sessionError === undefined ? {} : { sessionError }),
483
636
  screenshots,
484
637
  ...(desktopBrowser === undefined ? {} : { desktopBrowser }),
638
+ desktopGeometry,
485
639
  noEngagement,
486
640
  harnessError,
487
641
  afterCheckpoint
@@ -566,6 +720,7 @@ export async function runSharedWorldLab(options) {
566
720
  subject,
567
721
  sandboxResolution,
568
722
  sandboxPreset,
723
+ desktopGeometry: sharedScreenGeometry,
569
724
  seedDigest: seedRecipeDigest(config),
570
725
  ...(planeCommit === undefined ? {} : { subjectCommit: planeCommit }),
571
726
  ...(failFastReason === undefined ? {} : { failFastReason })
@@ -719,6 +874,9 @@ export function buildSharedWorldBundle(args) {
719
874
  roleSpecs.forEach((spec, index) => {
720
875
  const outcome = roleOutcomes[index];
721
876
  const session = outcome?.session;
877
+ const desktopGeometry = outcome?.desktopGeometry ?? args.desktopGeometry ?? {
878
+ screen: { requested: { width: args.sandboxResolution[0], height: args.sandboxResolution[1] } }
879
+ };
722
880
  const screenshots = outcome?.screenshots ?? [];
723
881
  const lastScreenshot = screenshots[screenshots.length - 1];
724
882
  const status = outcome?.skippedReason !== undefined
@@ -768,12 +926,17 @@ export function buildSharedWorldBundle(args) {
768
926
  embed: lastScreenshot
769
927
  ? { kind: "screenshot", url: lastScreenshot, title: `Shared desktop, role ${spec.roleId} (${screenshotMode})` }
770
928
  : { kind: "placeholder", title: `Shared desktop, role ${spec.roleId}` },
771
- viewport: {
772
- width: args.sandboxResolution[0],
773
- height: args.sandboxResolution[1],
774
- deviceScaleFactor: args.sandboxPreset.deviceScaleFactor,
775
- isMobile: args.sandboxPreset.isMobile
776
- },
929
+ ...(desktopGeometry.viewport === undefined
930
+ ? {}
931
+ : {
932
+ viewport: {
933
+ width: desktopGeometry.viewport.width,
934
+ height: desktopGeometry.viewport.height,
935
+ deviceScaleFactor: desktopGeometry.viewport.deviceScaleFactor,
936
+ isMobile: args.sandboxPreset.isMobile
937
+ }
938
+ }),
939
+ desktopGeometry,
777
940
  ui: {
778
941
  route: spec.seatUrl,
779
942
  intent: `Watch role ${spec.roleId} (${spec.persona.id}) drive the SHARED app (one plane; sequential turn).`,
@@ -841,6 +1004,17 @@ export function buildSharedWorldBundle(args) {
841
1004
  streamId: spec.streamId
842
1005
  });
843
1006
  }
1007
+ for (const warning of desktopGeometry.warnings ?? []) {
1008
+ events.push({
1009
+ id: nextEventId(`geometry-warning-${spec.roleId}`),
1010
+ at: createdAt,
1011
+ level: "warn",
1012
+ type: "shared-world.geometry.warning",
1013
+ message: warning,
1014
+ simId: spec.simId,
1015
+ streamId: spec.streamId
1016
+ });
1017
+ }
844
1018
  });
845
1019
  // Build the shared-world evidence block (the timeline + plane + attribution ceiling).
846
1020
  const seedDigest = args.seedDigest;
@@ -1 +1 @@
1
- {"version":3,"file":"shared-world-lab.js","sourceRoot":"","sources":["../src/shared-world-lab.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared-world-lab.js","sourceRoot":"","sources":["../src/shared-world-lab.ts"],"names":[],"mappings":"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"}