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
@@ -14,7 +14,7 @@
14
14
  import { readAutomaticStudyAnalysis } from "./automatic-study-analysis.js";
15
15
  import { readFile } from "node:fs/promises";
16
16
  import path from "node:path";
17
- import { estimateActorCost } from "./pricing.js";
17
+ import { estimateActorCostForExecution } from "./pricing.js";
18
18
  import { resolveRunPath } from "./run.js";
19
19
  export const RUN_DETAIL_SCHEMA = "humanish.run-detail.v1";
20
20
  /**
@@ -76,6 +76,8 @@ function participantFrom(stream, index) {
76
76
  * it is costing actually changes what you do.
77
77
  */
78
78
  function costOf(trace) {
79
+ if (trace.executionProfile?.billing === "account-unknown")
80
+ return { estimatedCostUsd: null };
79
81
  const recorded = trace.estimatedCost?.estimatedCostUsd;
80
82
  if (recorded !== undefined)
81
83
  return { estimatedCostUsd: recorded };
@@ -84,7 +86,7 @@ function costOf(trace) {
84
86
  if (usage === undefined || typeof model !== "string")
85
87
  return {};
86
88
  try {
87
- const estimated = estimateActorCost(usage, model);
89
+ const estimated = estimateActorCostForExecution(usage, model, trace.executionProfile);
88
90
  // A model `src/pricing.ts` cannot price yields no figure rather than a wrong one.
89
91
  return typeof estimated?.estimatedCostUsd === "number" ? { estimatedCostUsd: estimated.estimatedCostUsd } : {};
90
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"run-detail.js","sourceRoot":"","sources":["../src/run-detail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-detail.js","sourceRoot":"","sources":["../src/run-detail.ts"],"names":[],"mappings":"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"}
package/dist/run.d.ts CHANGED
@@ -161,7 +161,7 @@ export interface RunFeedbackCandidate {
161
161
  scenario_id: string;
162
162
  persona_id: string;
163
163
  actor: "codex-tui" | "codex-exec" | "codex-app-server" | "computer-use" | "synthetic-dry-run" | "unknown";
164
- substrate: "e2b-desktop" | "e2b-terminal" | "local-filesystem" | "codex-app-server" | "unknown";
164
+ substrate: "e2b-desktop" | "local-desktop" | "e2b-terminal" | "local-filesystem" | "codex-app-server" | "unknown";
165
165
  failure_owner: "harness" | "target-app" | "actor" | "environment" | "unknown";
166
166
  summary: string;
167
167
  expected: string;
@@ -431,6 +431,12 @@ export interface RunStream {
431
431
  */
432
432
  liveActor?: {
433
433
  schema: "humanish.live-actor.v1";
434
+ executionProfile?: ActorTrace["executionProfile"];
435
+ providerRequests?: ActorTrace["providerRequests"];
436
+ historyTurnsOmitted?: number;
437
+ tokenUsage?: ActorTrace["tokenUsage"];
438
+ estimatedCost?: ActorTrace["estimatedCost"];
439
+ ids?: ActorTrace["ids"];
434
440
  /** When this flush was written (ISO-8601). */
435
441
  updatedAt: string;
436
442
  items: ActorTraceItem[];
@@ -867,7 +873,7 @@ export interface RunCostLine {
867
873
  modelId?: string;
868
874
  /** null = NOT MEASURED / no rate; never coerced to 0. */
869
875
  estimatedCostUsd: number | null;
870
- reason?: "no_rate_for_model" | "no_rate_for_desktop" | "no_token_usage" | "no_duration" | "closing_usage_unreported" | "interaction_usage_unreported" | "no_desktop_resources" | "desktop_lifetime_incomplete";
876
+ reason?: "no_rate_for_model" | "no_rate_for_desktop" | "no_token_usage" | "no_duration" | "closing_usage_unreported" | "interaction_usage_unreported" | "no_desktop_resources" | "desktop_lifetime_incomplete" | "account_billing_unknown";
871
877
  /** Pricing provenance date; non-null iff estimatedCostUsd is non-null. */
872
878
  ratesAsOf: string | null;
873
879
  source?: string;
@@ -903,10 +909,11 @@ export interface RunCostSummary {
903
909
  /** true when any contributing rate is a placeholder (a stand-in, not a live sheet). */
904
910
  placeholder: boolean;
905
911
  breakdown: RunCostLine[];
912
+ /** Missing account token counts remain absent; known counts may be partial. */
906
913
  tokenUsage: {
907
- input: number;
908
- output: number;
909
- total: number;
914
+ input?: number;
915
+ output?: number;
916
+ total?: number;
910
917
  };
911
918
  /** Host-side create->teardown span in minutes; null when no sandbox was created. */
912
919
  desktopMinutes: number | null;
package/dist/run.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { contradictsAccountBilling } from "./pricing.js";
1
2
  import { isCommsReceivingEvidence } from "./comms-receiving-evidence.js";
2
3
  import { randomUUID } from "node:crypto";
3
4
  import { spawn } from "node:child_process";
@@ -13,7 +14,7 @@ import { browserSurfaces, builtinBrowserPersonaJourney, captureBrowserSurface, n
13
14
  import { CODEX_APP_SERVER_TRACE_SCHEMA, runCodexAppServerSessionInPreparedRoot } from "./codex-app-server.js";
14
15
  import { getActor } from "./actor-registry.js";
15
16
  import { artifactReferenceIfWritten, hasWrittenScreenshot } from "./artifact-reference.js";
16
- import { ACTOR_TRACE_SCHEMA } from "./actor-contract.js";
17
+ import { ACTOR_TRACE_SCHEMA, validActorExecutionProfile, validActorProviderRequests } from "./actor-contract.js";
17
18
  import { cuaGoalSource, isCuaTrace, CUA_COMPLETION_NOTE } from "./actor-goal-source.js";
18
19
  import { actorEnding } from "./actor-stop-cause.js";
19
20
  import { captureGitState, GIT_STATE_SCHEMA } from "./core/git-state.js";
@@ -4362,6 +4363,8 @@ function rerunLineageFindings(bundle) {
4362
4363
  */
4363
4364
  function costLabelingFindings(bundle) {
4364
4365
  const findings = [];
4366
+ if (contradictsAccountBilling(bundle.streams, bundle.cost))
4367
+ findings.push("Run cost lines contradict account billing identity");
4365
4368
  const cost = bundle.cost;
4366
4369
  if (cost) {
4367
4370
  if (cost.schema !== "humanish.run-cost-summary.v1") {
@@ -4396,6 +4399,18 @@ function costLabelingFindings(bundle) {
4396
4399
  }
4397
4400
  }
4398
4401
  for (const stream of bundle.streams) {
4402
+ for (const actor of [stream.actor, stream.liveActor]) {
4403
+ if (actor?.executionProfile !== undefined) {
4404
+ if (!validActorExecutionProfile(actor.executionProfile))
4405
+ findings.push("Invalid actor execution profile");
4406
+ if (!validActorProviderRequests(actor.providerRequests))
4407
+ findings.push("Invalid account participant request receipts");
4408
+ if (actor.historyTurnsOmitted !== undefined && (!Number.isSafeInteger(actor.historyTurnsOmitted) || actor.historyTurnsOmitted < 0))
4409
+ findings.push("Invalid participant history omission count");
4410
+ if (actor.executionProfile?.billing === "account-unknown" && (typeof actor.estimatedCost?.estimatedCostUsd === "number" || actor.tokenUsage?.costUsd !== undefined))
4411
+ findings.push("Account participant dollars must remain unknown");
4412
+ }
4413
+ }
4399
4414
  const estimate = stream.actor?.estimatedCost;
4400
4415
  if (!estimate) {
4401
4416
  continue;
@@ -5837,6 +5852,7 @@ function isFeedbackActor(value) {
5837
5852
  }
5838
5853
  function isFeedbackSubstrate(value) {
5839
5854
  return value === "e2b-desktop"
5855
+ || value === "local-desktop"
5840
5856
  || value === "e2b-terminal"
5841
5857
  || value === "local-filesystem"
5842
5858
  || value === "codex-app-server"