humanish 0.97.0 → 0.98.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 (144) hide show
  1. package/AGENTS.md +86 -79
  2. package/CONTRIBUTING.md +7 -2
  3. package/README.md +7 -1
  4. package/dist/actor-contract.d.ts +35 -1
  5. package/dist/actor-contract.js +38 -0
  6. package/dist/actor-contract.js.map +1 -1
  7. package/dist/adapter-extension.js +1 -0
  8. package/dist/adapter-extension.js.map +1 -1
  9. package/dist/browser-control-client.d.ts +14 -0
  10. package/dist/browser-control-client.js +134 -0
  11. package/dist/browser-control-client.js.map +1 -0
  12. package/dist/browser-control-dispatcher.d.ts +14 -0
  13. package/dist/browser-control-dispatcher.js +109 -0
  14. package/dist/browser-control-dispatcher.js.map +1 -0
  15. package/dist/browser-control-protocol.d.ts +371 -0
  16. package/dist/browser-control-protocol.js +155 -0
  17. package/dist/browser-control-protocol.js.map +1 -0
  18. package/dist/browser-control-transport.d.ts +24 -0
  19. package/dist/browser-control-transport.js +156 -0
  20. package/dist/browser-control-transport.js.map +1 -0
  21. package/dist/comms-lease-store.d.ts +1 -0
  22. package/dist/comms-lease-store.js +9 -3
  23. package/dist/comms-lease-store.js.map +1 -1
  24. package/dist/computer-use-actor.d.ts +2 -2
  25. package/dist/computer-use-actor.js +6 -1
  26. package/dist/computer-use-actor.js.map +1 -1
  27. package/dist/computer-use.d.ts +23 -1
  28. package/dist/computer-use.js +253 -70
  29. package/dist/computer-use.js.map +1 -1
  30. package/dist/cua-actor-lab.d.ts +6 -1
  31. package/dist/cua-actor-lab.js +55 -15
  32. package/dist/cua-actor-lab.js.map +1 -1
  33. package/dist/cua-executor-error.d.ts +31 -0
  34. package/dist/cua-executor-error.js +48 -0
  35. package/dist/cua-executor-error.js.map +1 -0
  36. package/dist/cua-provider-error.d.ts +12 -0
  37. package/dist/cua-provider-error.js +28 -0
  38. package/dist/cua-provider-error.js.map +1 -0
  39. package/dist/desktop-session.js +3 -1
  40. package/dist/desktop-session.js.map +1 -1
  41. package/dist/doctor-lab.d.ts +2 -0
  42. package/dist/doctor-lab.js +25 -7
  43. package/dist/doctor-lab.js.map +1 -1
  44. package/dist/e2b-desktop-executor.d.ts +1 -24
  45. package/dist/e2b-desktop-executor.js +2 -127
  46. package/dist/e2b-desktop-executor.js.map +1 -1
  47. package/dist/e2b-terminal-lab.js +1 -0
  48. package/dist/e2b-terminal-lab.js.map +1 -1
  49. package/dist/frame-signature.d.ts +24 -0
  50. package/dist/frame-signature.js +128 -0
  51. package/dist/frame-signature.js.map +1 -0
  52. package/dist/guest-bootstrap.d.ts +43 -0
  53. package/dist/guest-bootstrap.js +240 -0
  54. package/dist/guest-bootstrap.js.map +1 -0
  55. package/dist/guest-browser-tools.d.ts +8 -0
  56. package/dist/guest-browser-tools.js +66 -0
  57. package/dist/guest-browser-tools.js.map +1 -0
  58. package/dist/guest-chromium-text.d.ts +27 -0
  59. package/dist/guest-chromium-text.js +281 -0
  60. package/dist/guest-chromium-text.js.map +1 -0
  61. package/dist/guest-desktop-executor.d.ts +22 -0
  62. package/dist/guest-desktop-executor.js +177 -0
  63. package/dist/guest-desktop-executor.js.map +1 -0
  64. package/dist/guest-desktop-native.d.ts +14 -0
  65. package/dist/guest-desktop-native.js +131 -0
  66. package/dist/guest-desktop-native.js.map +1 -0
  67. package/dist/guest-runtime-desktop.d.ts +35 -0
  68. package/dist/guest-runtime-desktop.js +231 -0
  69. package/dist/guest-runtime-desktop.js.map +1 -0
  70. package/dist/guest-runtime-main.d.ts +1 -0
  71. package/dist/guest-runtime-main.js +31 -0
  72. package/dist/guest-runtime-main.js.map +1 -0
  73. package/dist/guest-runtime-revision.d.ts +1 -0
  74. package/dist/guest-runtime-revision.js +3 -0
  75. package/dist/guest-runtime-revision.js.map +1 -0
  76. package/dist/guest-runtime.d.ts +25 -0
  77. package/dist/guest-runtime.js +96 -0
  78. package/dist/guest-runtime.js.map +1 -0
  79. package/dist/lab-config.js +10 -3
  80. package/dist/lab-config.js.map +1 -1
  81. package/dist/lab-engine.js +6 -0
  82. package/dist/lab-engine.js.map +1 -1
  83. package/dist/lab-summary.d.ts +2 -0
  84. package/dist/lab-summary.js +5 -0
  85. package/dist/lab-summary.js.map +1 -1
  86. package/dist/local-agent-cli.js +1 -1
  87. package/dist/local-agent-cli.js.map +1 -1
  88. package/dist/local-firecracker-desktop.d.ts +13 -0
  89. package/dist/local-firecracker-desktop.js +150 -0
  90. package/dist/local-firecracker-desktop.js.map +1 -0
  91. package/dist/local-firecracker-study.d.ts +9 -0
  92. package/dist/local-firecracker-study.js +93 -0
  93. package/dist/local-firecracker-study.js.map +1 -0
  94. package/dist/local-runtime-config.d.ts +6 -0
  95. package/dist/local-runtime-config.js +56 -0
  96. package/dist/local-runtime-config.js.map +1 -0
  97. package/dist/local-runtime-release.d.ts +3 -0
  98. package/dist/local-runtime-release.js +8 -0
  99. package/dist/local-runtime-release.js.map +1 -0
  100. package/dist/local-runtime.d.ts +25 -0
  101. package/dist/local-runtime.js +113 -0
  102. package/dist/local-runtime.js.map +1 -0
  103. package/dist/observer-app.html +4 -4
  104. package/dist/pricing.d.ts +22 -1
  105. package/dist/pricing.js +22 -0
  106. package/dist/pricing.js.map +1 -1
  107. package/dist/program.js +26 -0
  108. package/dist/program.js.map +1 -1
  109. package/dist/restricted-codex-participant-policy.d.ts +39 -0
  110. package/dist/restricted-codex-participant-policy.js +69 -0
  111. package/dist/restricted-codex-participant-policy.js.map +1 -0
  112. package/dist/restricted-codex-participant-run.d.ts +20 -0
  113. package/dist/restricted-codex-participant-run.js +78 -0
  114. package/dist/restricted-codex-participant-run.js.map +1 -0
  115. package/dist/restricted-codex-participant.d.ts +14 -0
  116. package/dist/restricted-codex-participant.js +178 -0
  117. package/dist/restricted-codex-participant.js.map +1 -0
  118. package/dist/restricted-codex-session.d.ts +2 -2
  119. package/dist/restricted-codex-session.js +11 -17
  120. package/dist/restricted-codex-session.js.map +1 -1
  121. package/dist/run-detail.js +4 -2
  122. package/dist/run-detail.js.map +1 -1
  123. package/dist/run.d.ts +12 -5
  124. package/dist/run.js +17 -1
  125. package/dist/run.js.map +1 -1
  126. package/dist/shared-world-lab.js +2 -2
  127. package/dist/shared-world-lab.js.map +1 -1
  128. package/dist/study-analysis-job.d.ts +2 -2
  129. package/dist/study-analysis-validation.d.ts +14 -14
  130. package/dist/study-costs.js +6 -0
  131. package/dist/study-costs.js.map +1 -1
  132. package/dist/tui-app.js +37 -37
  133. package/docs/architecture/browser-control.md +117 -0
  134. package/docs/architecture/guest-desktop.md +87 -0
  135. package/docs/architecture/local-browser-runtime.md +100 -0
  136. package/docs/architecture/restricted-codex-analysis.md +4 -2
  137. package/docs/architecture/runtime-broker-core.md +30 -0
  138. package/docs/contracts/schemas.md +1 -1
  139. package/docs/goals/current.md +24 -8
  140. package/docs/product/open-source-install-experience.md +7 -0
  141. package/docs/ramp/README.md +24 -13
  142. package/docs/release/0.98.0-local-browser-studies.md +31 -0
  143. package/package.json +4 -2
  144. package/skills/humanish/SKILL.md +23 -3
@@ -0,0 +1,31 @@
1
+ declare const messages: Readonly<{
2
+ executor_closed: "Desktop session is closed.";
3
+ executor_not_ready: "Desktop executor is not ready.";
4
+ executor_busy: "Desktop executor is handling another request.";
5
+ invalid_request: "Desktop executor rejected an invalid request.";
6
+ invalid_response: "Desktop executor returned an invalid response.";
7
+ protocol_mismatch: "Desktop executor protocol does not match.";
8
+ session_revoked: "Desktop executor session was revoked.";
9
+ transport_failed: "Desktop executor transport failed.";
10
+ deadline_exceeded: "Desktop executor request exceeded its deadline.";
11
+ action_rejected: "Desktop executor rejected the action.";
12
+ execution_failed: "Desktop executor could not complete the request.";
13
+ cancelled: "Desktop executor request was cancelled.";
14
+ }>;
15
+ export type CuaExecutorErrorCode = keyof typeof messages;
16
+ export type CuaExecutorDisposition = "not_dispatched" | "outcome_uncertain";
17
+ export declare function isCuaExecutorErrorCode(value: unknown): value is CuaExecutorErrorCode;
18
+ /**
19
+ * An executor's bounded failure declaration. No backend message, cause, action payload or
20
+ * transport details belong here. `not_dispatched` requires evidence that dispatch never
21
+ * began; a lost acknowledgement or partial action is `outcome_uncertain`, never a retry.
22
+ * Import from the same installation as the loop: names and lookalike objects do not qualify.
23
+ */
24
+ export declare class CuaExecutorError extends Error {
25
+ readonly code: CuaExecutorErrorCode;
26
+ readonly disposition: CuaExecutorDisposition;
27
+ constructor(code: CuaExecutorErrorCode, disposition: CuaExecutorDisposition);
28
+ }
29
+ /** A forged prototype is not an executor declaration. */
30
+ export declare function isCuaExecutorError(error: unknown): error is CuaExecutorError;
31
+ export {};
@@ -0,0 +1,48 @@
1
+ const messages = Object.freeze({
2
+ executor_closed: "Desktop session is closed.",
3
+ executor_not_ready: "Desktop executor is not ready.",
4
+ executor_busy: "Desktop executor is handling another request.",
5
+ invalid_request: "Desktop executor rejected an invalid request.",
6
+ invalid_response: "Desktop executor returned an invalid response.",
7
+ protocol_mismatch: "Desktop executor protocol does not match.",
8
+ session_revoked: "Desktop executor session was revoked.",
9
+ transport_failed: "Desktop executor transport failed.",
10
+ deadline_exceeded: "Desktop executor request exceeded its deadline.",
11
+ action_rejected: "Desktop executor rejected the action.",
12
+ execution_failed: "Desktop executor could not complete the request.",
13
+ cancelled: "Desktop executor request was cancelled."
14
+ });
15
+ export function isCuaExecutorErrorCode(value) {
16
+ return typeof value === "string" && Object.hasOwn(messages, value);
17
+ }
18
+ const executorErrors = new WeakSet();
19
+ /**
20
+ * An executor's bounded failure declaration. No backend message, cause, action payload or
21
+ * transport details belong here. `not_dispatched` requires evidence that dispatch never
22
+ * began; a lost acknowledgement or partial action is `outcome_uncertain`, never a retry.
23
+ * Import from the same installation as the loop: names and lookalike objects do not qualify.
24
+ */
25
+ export class CuaExecutorError extends Error {
26
+ code;
27
+ disposition;
28
+ constructor(code, disposition) {
29
+ if (!isCuaExecutorErrorCode(code) || (disposition !== "not_dispatched" && disposition !== "outcome_uncertain")) {
30
+ throw new TypeError("Invalid desktop executor error declaration.");
31
+ }
32
+ super(messages[code]);
33
+ this.name = "CuaExecutorError";
34
+ this.code = code;
35
+ this.disposition = disposition;
36
+ // Keep the values used in durable diagnostics finite even for JavaScript callers.
37
+ Object.defineProperties(this, {
38
+ code: { writable: false, configurable: false },
39
+ disposition: { writable: false, configurable: false }
40
+ });
41
+ executorErrors.add(this);
42
+ }
43
+ }
44
+ /** A forged prototype is not an executor declaration. */
45
+ export function isCuaExecutorError(error) {
46
+ return typeof error === "object" && error !== null && executorErrors.has(error);
47
+ }
48
+ //# sourceMappingURL=cua-executor-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cua-executor-error.js","sourceRoot":"","sources":["../src/cua-executor-error.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,eAAe,EAAE,4BAA4B;IAC7C,kBAAkB,EAAE,gCAAgC;IACpD,aAAa,EAAE,+CAA+C;IAC9D,eAAe,EAAE,+CAA+C;IAChE,gBAAgB,EAAE,gDAAgD;IAClE,iBAAiB,EAAE,2CAA2C;IAC9D,eAAe,EAAE,uCAAuC;IACxD,gBAAgB,EAAE,oCAAoC;IACtD,iBAAiB,EAAE,iDAAiD;IACpE,eAAe,EAAE,uCAAuC;IACxD,gBAAgB,EAAE,kDAAkD;IACpE,SAAS,EAAE,yCAAyC;CACrD,CAAC,CAAC;AAKH,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,cAAc,GAAG,IAAI,OAAO,EAAU,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAChC,IAAI,CAAuB;IAC3B,WAAW,CAAyB;IAE7C,YAAY,IAA0B,EAAE,WAAmC;QACzE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,gBAAgB,IAAI,WAAW,KAAK,mBAAmB,CAAC,EAAE,CAAC;YAC/G,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;QACrE,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,kFAAkF;QAClF,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE;YAC5B,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;YAC9C,WAAW,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;SACtD,CAAC,CAAC;QACH,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;CACF;AAED,yDAAyD;AACzD,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAClF,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { ActorTokenUsage, ProviderRequestReceipt } from "./actor-contract.js";
2
+ declare const codes: readonly ["request_rejected", "unavailable", "busy", "refused", "invalid_response", "protocol_error", "timeout", "cancelled", "process_failed", "cleanup_unconfirmed"];
3
+ export type CuaProviderErrorCode = typeof codes[number];
4
+ /** Safe local classification. Never attach provider prose, stderr, paths or a raw cause. */
5
+ export declare class CuaProviderError extends Error {
6
+ readonly code: CuaProviderErrorCode;
7
+ readonly receipt: ProviderRequestReceipt;
8
+ readonly usage?: ActorTokenUsage;
9
+ constructor(code: CuaProviderErrorCode, receipt: ProviderRequestReceipt, usage?: ActorTokenUsage);
10
+ }
11
+ export declare const isCuaProviderError: (value: unknown) => value is CuaProviderError;
12
+ export {};
@@ -0,0 +1,28 @@
1
+ const codes = Object.freeze(["request_rejected", "unavailable", "busy", "refused", "invalid_response",
2
+ "protocol_error", "timeout", "cancelled", "process_failed", "cleanup_unconfirmed"]);
3
+ const errors = new WeakSet();
4
+ /** Safe local classification. Never attach provider prose, stderr, paths or a raw cause. */
5
+ export class CuaProviderError extends Error {
6
+ code;
7
+ receipt;
8
+ usage;
9
+ constructor(code, receipt, usage) {
10
+ if (typeof code !== "string" || !codes.includes(code) || !receipt || typeof receipt !== "object" ||
11
+ Object.keys(receipt).length !== 3 || !(typeof receipt.dispatched === "boolean" || receipt.dispatched === "unknown") ||
12
+ typeof receipt.usageComplete !== "boolean" || (receipt.cleanup !== "confirmed" && receipt.cleanup !== "unconfirmed") ||
13
+ (usage !== undefined && (!usage || typeof usage !== "object" || Array.isArray(usage) || Object.entries(usage).some(([key, count]) => !["input", "output", "cachedInput", "cacheWriteInput", "total"].includes(key) || typeof count !== "number" || !Number.isSafeInteger(count) || count < 0)))) {
14
+ throw new TypeError("Invalid participant provider error declaration.");
15
+ }
16
+ super(`Participant provider: ${code}`);
17
+ this.name = "CuaProviderError";
18
+ this.code = code;
19
+ this.receipt = Object.freeze({ dispatched: receipt.dispatched, usageComplete: receipt.usageComplete, cleanup: receipt.cleanup });
20
+ if (usage !== undefined)
21
+ this.usage = Object.freeze({ ...usage });
22
+ for (const key of ["code", "receipt", "usage"])
23
+ Object.defineProperty(this, key, { writable: false, configurable: false });
24
+ errors.add(this);
25
+ }
26
+ }
27
+ export const isCuaProviderError = (value) => typeof value === "object" && value !== null && errors.has(value);
28
+ //# sourceMappingURL=cua-provider-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cua-provider-error.js","sourceRoot":"","sources":["../src/cua-provider-error.ts"],"names":[],"mappings":"AAEA,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB;IACnG,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,qBAAqB,CAAU,CAAC,CAAC;AAE/F,MAAM,MAAM,GAAG,IAAI,OAAO,EAAU,CAAC;AACrC,4FAA4F;AAC5F,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAChC,IAAI,CAAuB;IAC3B,OAAO,CAAyB;IAChC,KAAK,CAAmB;IACjC,YAAY,IAA0B,EAAE,OAA+B,EAAE,KAAuB;QAC9F,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;YAC9F,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC;YACnH,OAAO,OAAO,CAAC,aAAa,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,OAAO,KAAK,aAAa,CAAC;YACpH,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAClI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/J,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAC;QACzE,CAAC;QACD,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACjI,IAAI,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAClE,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;YAAE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3H,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;CACF;AACD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAA6B,EAAE,CAC9E,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { CuaExecutorError } from "./cua-executor-error.js";
1
2
  /**
2
3
  * Wrap an already-acquired resource. The adapter supplies release authority as a closure;
3
4
  * this layer never reconstructs it from a saved ID or enumerates provider resources.
@@ -11,7 +12,7 @@ export function ownDesktopAllocation(options) {
11
12
  let closing;
12
13
  const assertOpen = () => {
13
14
  if (closing !== undefined)
14
- throw new Error("Desktop session is closed.");
15
+ throw new CuaExecutorError("executor_closed", "not_dispatched");
15
16
  };
16
17
  const close = (policy = {}) => {
17
18
  // Install the promise before invoking release: concurrent/reentrant callers share it.
@@ -34,6 +35,7 @@ export function ownDesktopAllocation(options) {
34
35
  resourceId,
35
36
  close,
36
37
  executor: {
38
+ ...(executor.stallRecovery === "fail_closed" ? { stallRecovery: "fail_closed" } : {}),
37
39
  observe: async () => { assertOpen(); return executor.observe(); },
38
40
  execute: async (action, signal) => { assertOpen(); return executor.execute(action, signal); }
39
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"desktop-session.js","sourceRoot":"","sources":["../src/desktop-session.ts"],"names":[],"mappings":"AAsBA;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAGpC;IACC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,OAAkD,CAAC;IACvD,MAAM,UAAU,GAAG,GAAS,EAAE;QAC5B,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC3E,CAAC,CAAC;IACF,MAAM,KAAK,GAAoC,CAAC,MAAM,GAAG,EAAE,EAAE,EAAE;QAC7D,sFAAsF;QACtF,OAAO,KAAK,MAAM,CAAC,cAAc,KAAK,IAAI;YACxC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC1D,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAwB,EAAE,CAAC,CAAC;gBAC/E,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK;aACvD,CAAC,CAAC,CAAC;QACR,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,UAAU;QACV,KAAK;QACL,IAAI,CAAC,QAAqB;YACxB,UAAU,EAAE,CAAC;YACb,IAAI,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;YACrF,MAAM,GAAG,IAAI,CAAC;YACd,OAAO,MAAM,CAAC,MAAM,CAAC;gBACnB,UAAU;gBACV,KAAK;gBACL,QAAQ,EAAE;oBACR,OAAO,EAAE,KAAK,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBACjE,OAAO,EAAE,KAAK,EAAE,MAAiB,EAAE,MAAoB,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;iBACvH;aACF,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"desktop-session.js","sourceRoot":"","sources":["../src/desktop-session.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAsB3D;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAGpC;IACC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,OAAkD,CAAC;IACvD,MAAM,UAAU,GAAG,GAAS,EAAE;QAC5B,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;IAC7F,CAAC,CAAC;IACF,MAAM,KAAK,GAAoC,CAAC,MAAM,GAAG,EAAE,EAAE,EAAE;QAC7D,sFAAsF;QACtF,OAAO,KAAK,MAAM,CAAC,cAAc,KAAK,IAAI;YACxC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC1D,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAwB,EAAE,CAAC,CAAC;gBAC/E,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK;aACvD,CAAC,CAAC,CAAC;QACR,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,UAAU;QACV,KAAK;QACL,IAAI,CAAC,QAAqB;YACxB,UAAU,EAAE,CAAC;YACb,IAAI,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;YACrF,MAAM,GAAG,IAAI,CAAC;YACd,OAAO,MAAM,CAAC,MAAM,CAAC;gBACnB,UAAU;gBACV,KAAK;gBACL,QAAQ,EAAE;oBACR,GAAG,CAAC,QAAQ,CAAC,aAAa,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,aAAsB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9F,OAAO,EAAE,KAAK,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBACjE,OAAO,EAAE,KAAK,EAAE,MAAiB,EAAE,MAAoB,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;iBACvH;aACF,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { type LocalRuntimeStatus } from "./local-runtime.js";
1
2
  import type { LabConfig } from "./lab-config.js";
2
3
  import type { LabBackend } from "./lab-engine.js";
3
4
  import type { DetectedLocalAgent } from "./local-agent-cli.js";
@@ -11,6 +12,7 @@ export declare function labSetupChecks(args: {
11
12
  agents: DetectedLocalAgent[];
12
13
  keyPresent: (name: string) => boolean;
13
14
  /** Internal read-only qualification seam; never a participant/model request. */
15
+ localRuntimeReadiness?: () => Promise<LocalRuntimeStatus>;
14
16
  codexAnalysisReadiness?: (env: NodeJS.ProcessEnv) => Promise<{
15
17
  ready: boolean;
16
18
  errorCode: string | null;
@@ -1,3 +1,5 @@
1
+ import { isLocalBrowserLab } from "./local-runtime-config.js";
2
+ import { localRuntimeStatus } from "./local-runtime.js";
1
3
  import { automaticAnalysisBudget } from "./automatic-analysis-config.js";
2
4
  import { receivingRequiredKey } from "./comms-setup.js";
3
5
  /** Setup checks only: no model turn, browser or desktop creation. CLI startup may use the network. */
@@ -17,6 +19,14 @@ export async function labSetupChecks(args) {
17
19
  if (unsupported)
18
20
  return { desktop: false, keys: [], checks: [...checks, { name: "live route", ok: false, message: unsupported }] };
19
21
  const { desktop, keys } = labKeyRequirements(config, backend, false, args.keyPresent);
22
+ const local = isLocalBrowserLab(config);
23
+ let accountReadiness;
24
+ const checkAccount = () => accountReadiness ??= (args.codexAnalysisReadiness ?? (async (env) => (await import("./restricted-codex-analysis.js")).checkRestrictedCodexAnalysisReadiness({ timeoutMs: 5000 }, { env })))(args.env)
25
+ .catch(() => ({ ready: false, errorCode: "codex_unavailable" }));
26
+ if (local) {
27
+ const runtime = await (args.localRuntimeReadiness ?? (() => localRuntimeStatus({ env: args.env })))();
28
+ checks.push({ name: "local browser runtime", ok: runtime.ok, message: runtime.message });
29
+ }
20
30
  if (config.comms?.email?.kind === "real") {
21
31
  const name = await receivingRequiredKey(args.cwd, config.comms.email.connection);
22
32
  if (name)
@@ -34,9 +44,17 @@ export async function labSetupChecks(args) {
34
44
  else if (backend === "cua" && config.actors[0]?.type === "local-agent") {
35
45
  const choice = config.actors[0]?.localAgent ?? "codex";
36
46
  const agent = args.agents.find(entry => entry.id === choice);
37
- checks.push({ name: "local participant authentication", ok: agent?.authStatus === "authenticated", message: agent?.authStatus === "authenticated" ? `${agent.label} reports authenticated on the host. E2B supplies the desktop; no OpenAI API key is required for this participant.`
38
- : agent ? `${agent.label} ${agent.authStatus === "unauthenticated" ? "reports not signed in" : "authentication could not be checked"}. Run \`${choice === "codex" ? "codex login status" : "claude auth status"}\`; sign in or update the CLI before running.`
39
- : `${choice} is not on this process's PATH. Install and sign in to that CLI, or choose openai-computer-use with OPENAI_API_KEY.` });
47
+ if (local) {
48
+ const readiness = await checkAccount();
49
+ checks.push({ name: "local participant authentication", ok: readiness.ready, message: readiness.ready
50
+ ? "Qualified Codex CLI and ChatGPT login are ready for restricted local browser participants. No E2B or model API key is required; remote model access and quota remain untested."
51
+ : `Local Codex participant setup is unavailable (${readiness.errorCode}). Run humanish doctor --lab <lab>; install the qualified CLI and sign in with a ChatGPT account. No API fallback is used.` });
52
+ }
53
+ else {
54
+ checks.push({ name: "local participant authentication", ok: agent?.authStatus === "authenticated", message: agent?.authStatus === "authenticated" ? `${agent.label} reports authenticated on the host. E2B supplies the desktop; no OpenAI API key is required for this participant.`
55
+ : agent ? `${agent.label} ${agent.authStatus === "unauthenticated" ? "reports not signed in" : "authentication could not be checked"}. Run \`${choice === "codex" ? "codex login status" : "claude auth status"}\`; sign in or update the CLI before running.`
56
+ : `${choice} is not on this process's PATH. Install and sign in to that CLI, or choose openai-computer-use with OPENAI_API_KEY.` });
57
+ }
40
58
  }
41
59
  if (backend === "scripted") {
42
60
  const { resolveBrowserCommand } = await import("./scripted-browser-actor.js");
@@ -47,8 +65,7 @@ export async function labSetupChecks(args) {
47
65
  }
48
66
  const analysis = automaticAnalysisBudget(config.review?.analysis, backend);
49
67
  if (analysis?.provider === "codex") {
50
- const check = args.codexAnalysisReadiness ?? (async (env) => (await import("./restricted-codex-analysis.js")).checkRestrictedCodexAnalysisReadiness({ timeoutMs: 5000 }, { env }));
51
- const readiness = await check(args.env).catch(() => ({ ready: false, errorCode: "codex_unavailable" }));
68
+ const readiness = await checkAccount();
52
69
  const recovery = readiness.errorCode === "codex_unsupported_platform"
53
70
  ? "Use a Linux x64 host for this qualified account route, or explicitly select provider: openai with an API key."
54
71
  : readiness.errorCode === "codex_busy"
@@ -72,8 +89,9 @@ export async function labSetupChecks(args) {
72
89
  export function labKeyRequirements(config, backend, dryRun, keyPresent) {
73
90
  if (dryRun || unsupportedCliRoute(config, backend))
74
91
  return { desktop: false, keys: [] };
75
- const desktop = backend === "cua" || backend === "terminal" || backend.includes("shared-world")
76
- || backend === "scripted" && config.subject.source === "clone";
92
+ // This flag controls the hosted desktop SDK check as well as its API key.
93
+ const desktop = !isLocalBrowserLab(config) && (backend === "cua" || backend === "terminal" || backend.includes("shared-world")
94
+ || backend === "scripted" && config.subject.source === "clone");
77
95
  const keys = desktop ? ["E2B_API_KEY"] : [];
78
96
  if (backend === "terminal")
79
97
  keys.push(keyPresent("CODEX_API_KEY") ? "CODEX_API_KEY" : "OPENAI_API_KEY");
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-lab.js","sourceRoot":"","sources":["../src/doctor-lab.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor-lab.js","sourceRoot":"","sources":["../src/doctor-lab.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export { perceptualSignature } from "./frame-signature.js";
1
2
  import type { CuaExecutor, CuaObservation } from "./computer-use.js";
2
3
  /**
3
4
  * The minimal slice of the real @e2b/desktop Sandbox the executor depends on. A
@@ -98,27 +99,3 @@ export declare class CuaTypeFallbackError extends Error {
98
99
  * screenshot or action is ever logged.
99
100
  */
100
101
  export declare function createE2BDesktopExecutor(desktop: E2BDesktopLike, options?: E2BDesktopExecutorOptions): CuaExecutor;
101
- /**
102
- * A perceptual hash of a PNG frame for no-progress detection. Decodes the PNG, area-averages it to
103
- * a SIGNATURE_GRID x SIGNATURE_GRID grayscale grid, CONTRAST-NORMALIZES that grid, quantizes each
104
- * cell to SIGNATURE_LEVELS, and packs the cells into a hex string. Deterministic (no Date, no
105
- * random). Returns SIGNATURE_FALLBACK on any decode failure so two unreadable frames compare equal.
106
- *
107
- * Why normalization, and why this grid (#383). The original was 16x16 at 2 bits per cell with no
108
- * normalization. On a 1440x950 desktop that is one cell per ~90x59 px, and on a light-themed web app
109
- * the area-average of nearly every cell lands at the top of the range: a measured run had 93% of the
110
- * 256 cells pinned to level 3 and levels 0 and 1 never used at all. The hash was effectively a
111
- * constant, so renaming a row in a sidebar, adding a list item, or opening a small panel could not
112
- * move it — 22 frames across one run produced 5 distinct values, and 9 visibly different consecutive
113
- * frames produced ONE. The no-progress backstop read that as a stuck agent and ended a lane that was
114
- * a foreign key away from finishing its mission.
115
- *
116
- * Stretching each frame's own min..max across the full range before quantizing is what makes a
117
- * mostly-white UI use the levels it actually has, and the finer grid shrinks a cell to ~45x30 px so
118
- * ordinary widget-sized changes survive the averaging.
119
- *
120
- * This is still a coarse whole-frame hash and it is still only ONE input to the backstop — see the
121
- * corroboration rule in computer-use.ts, which is what keeps a blind frame from ending a run on its
122
- * own.
123
- */
124
- export declare function perceptualSignature(pngBytes: Buffer | Uint8Array): string;
@@ -1,4 +1,5 @@
1
- import { PNG } from "pngjs";
1
+ import { perceptualSignature } from "./frame-signature.js";
2
+ export { perceptualSignature } from "./frame-signature.js";
2
3
  import { commandFailureInfo, tailOf } from "./command-failure.js";
3
4
  const DEFAULT_WAIT_MS = 500;
4
5
  const DEFAULT_SCROLL_AMOUNT_PER_TICK = 100;
@@ -290,130 +291,4 @@ export function createE2BDesktopExecutor(desktop, options = {}) {
290
291
  }
291
292
  };
292
293
  }
293
- // ---------------------------------------------------------------------------
294
- // Perceptual signature.
295
- //
296
- // A coarse, deterministic hash of a frame for no-progress detection in the loop.
297
- // It is robust to small noise (a blinking cursor, a single changed clock digit)
298
- // because it area-averages the frame down to a 16x16 grayscale grid and then
299
- // quantizes each cell to 4 levels (2 bits). Two visually-identical frames produce
300
- // the same signature; a clearly different frame differs. It is NOT reversible to
301
- // the image, so exposing it (e.g. in a trace) is public-safe. On any decode
302
- // failure it returns a stable fallback so two unreadable frames compare equal.
303
- // ---------------------------------------------------------------------------
304
- const SIGNATURE_GRID = 32;
305
- const SIGNATURE_LEVELS = 16;
306
- const SIGNATURE_FALLBACK = "unreadable";
307
- /**
308
- * A perceptual hash of a PNG frame for no-progress detection. Decodes the PNG, area-averages it to
309
- * a SIGNATURE_GRID x SIGNATURE_GRID grayscale grid, CONTRAST-NORMALIZES that grid, quantizes each
310
- * cell to SIGNATURE_LEVELS, and packs the cells into a hex string. Deterministic (no Date, no
311
- * random). Returns SIGNATURE_FALLBACK on any decode failure so two unreadable frames compare equal.
312
- *
313
- * Why normalization, and why this grid (#383). The original was 16x16 at 2 bits per cell with no
314
- * normalization. On a 1440x950 desktop that is one cell per ~90x59 px, and on a light-themed web app
315
- * the area-average of nearly every cell lands at the top of the range: a measured run had 93% of the
316
- * 256 cells pinned to level 3 and levels 0 and 1 never used at all. The hash was effectively a
317
- * constant, so renaming a row in a sidebar, adding a list item, or opening a small panel could not
318
- * move it — 22 frames across one run produced 5 distinct values, and 9 visibly different consecutive
319
- * frames produced ONE. The no-progress backstop read that as a stuck agent and ended a lane that was
320
- * a foreign key away from finishing its mission.
321
- *
322
- * Stretching each frame's own min..max across the full range before quantizing is what makes a
323
- * mostly-white UI use the levels it actually has, and the finer grid shrinks a cell to ~45x30 px so
324
- * ordinary widget-sized changes survive the averaging.
325
- *
326
- * This is still a coarse whole-frame hash and it is still only ONE input to the backstop — see the
327
- * corroboration rule in computer-use.ts, which is what keeps a blind frame from ending a run on its
328
- * own.
329
- */
330
- export function perceptualSignature(pngBytes) {
331
- let cells;
332
- try {
333
- const source = Buffer.isBuffer(pngBytes) ? pngBytes : Buffer.from(pngBytes);
334
- if (source.length === 0)
335
- return SIGNATURE_FALLBACK;
336
- const decoded = PNG.sync.read(source);
337
- const srcW = decoded.width;
338
- const srcH = decoded.height;
339
- if (!srcW || !srcH)
340
- return SIGNATURE_FALLBACK;
341
- cells = quantizedGrid(decoded.data, srcW, srcH);
342
- return `${brightnessAnchor(decoded.data, srcW, srcH)}${packCells(cells)}`;
343
- }
344
- catch {
345
- return SIGNATURE_FALLBACK;
346
- }
347
- }
348
- /** Area-average an RGBA buffer to a grid of grayscale cells, contrast-normalized then quantized. */
349
- function quantizedGrid(data, srcW, srcH) {
350
- const grays = [];
351
- const xRatio = srcW / SIGNATURE_GRID;
352
- const yRatio = srcH / SIGNATURE_GRID;
353
- for (let gy = 0; gy < SIGNATURE_GRID; gy += 1) {
354
- const sy0 = Math.floor(gy * yRatio);
355
- const sy1 = Math.min(srcH, Math.max(sy0 + 1, Math.floor((gy + 1) * yRatio)));
356
- for (let gx = 0; gx < SIGNATURE_GRID; gx += 1) {
357
- const sx0 = Math.floor(gx * xRatio);
358
- const sx1 = Math.min(srcW, Math.max(sx0 + 1, Math.floor((gx + 1) * xRatio)));
359
- let sum = 0;
360
- let n = 0;
361
- for (let sy = sy0; sy < sy1; sy += 1) {
362
- for (let sx = sx0; sx < sx1; sx += 1) {
363
- const si = (sy * srcW + sx) * 4;
364
- const r = data[si] ?? 0;
365
- const g = data[si + 1] ?? 0;
366
- const b = data[si + 2] ?? 0;
367
- sum += Math.round((r + g + b) / 3);
368
- n += 1;
369
- }
370
- }
371
- grays.push(n ? Math.round(sum / n) : 0);
372
- }
373
- }
374
- // Stretch this frame's own range across the full scale before quantizing. Without this a light UI
375
- // occupies a sliver at the top of 0..255 and quantizes to a near-constant (#383).
376
- //
377
- // The endpoints are TRIMMED rather than the raw min/max: a handful of extreme cells must not be
378
- // able to rescale the whole frame, or a blinking text cursor would rewrite every cell and read as
379
- // progress forever. Trimming K cells from each end clamps that away while still preserving real
380
- // structure, which occupies far more cells than K (a row of sidebar text covers dozens).
381
- const sorted = [...grays].sort((a, b) => a - b);
382
- const trim = Math.max(2, Math.floor(sorted.length / 256));
383
- const lo = sorted[Math.min(trim, sorted.length - 1)] ?? 0;
384
- const hi = sorted[Math.max(0, sorted.length - 1 - trim)] ?? 255;
385
- const span = hi - lo;
386
- const top = SIGNATURE_LEVELS - 1;
387
- return grays.map((gray) => span <= 0 ? 0 : Math.min(top, Math.max(0, Math.round(((gray - lo) / span) * top))));
388
- }
389
- /**
390
- * The frame's overall brightness, coarsely quantized. Normalization deliberately discards absolute
391
- * level, so this is prefixed back on for the two cases where absolute level IS the change: a uniform
392
- * frame (an all-white blank vs an all-black screen normalize identically), and a whole-page dim such
393
- * as a modal overlay, which preserves relative structure while changing the whole frame. Quantized
394
- * coarsely so ordinary antialiasing noise cannot move it.
395
- */
396
- function brightnessAnchor(data, srcW, srcH) {
397
- let sum = 0;
398
- let n = 0;
399
- const stride = Math.max(1, Math.floor((srcW * srcH) / 4096));
400
- for (let p = 0; p < srcW * srcH; p += stride) {
401
- const si = p * 4;
402
- sum += ((data[si] ?? 0) + (data[si + 1] ?? 0) + (data[si + 2] ?? 0)) / 3;
403
- n += 1;
404
- }
405
- const mean = n ? sum / n : 0;
406
- return (Math.min(15, Math.floor(mean / 16))).toString(16);
407
- }
408
- /** Pack 4-bit cells (two per byte) into a compact hex string. */
409
- function packCells(cells) {
410
- const bytes = Buffer.alloc(Math.ceil(cells.length / 2));
411
- for (let i = 0; i < cells.length; i += 1) {
412
- const byteIndex = i >> 1;
413
- const shift = (i & 1) * 4;
414
- const value = (cells[i] ?? 0) & 0xf;
415
- bytes[byteIndex] = (bytes[byteIndex] ?? 0) | (value << shift);
416
- }
417
- return bytes.toString("hex");
418
- }
419
294
  //# sourceMappingURL=e2b-desktop-executor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"e2b-desktop-executor.js","sourceRoot":"","sources":["../src/e2b-desktop-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"e2b-desktop-executor.js","sourceRoot":"","sources":["../src/e2b-desktop-executor.ts"],"names":[],"mappings":"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"}
@@ -1360,6 +1360,7 @@ function isAdapterFeedbackActor(value) {
1360
1360
  }
1361
1361
  function isAdapterFeedbackSubstrate(value) {
1362
1362
  return value === "e2b-desktop"
1363
+ || value === "local-desktop"
1363
1364
  || value === "e2b-terminal"
1364
1365
  || value === "local-filesystem"
1365
1366
  || value === "codex-app-server"