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.
- package/AGENTS.md +86 -79
- package/CONTRIBUTING.md +7 -2
- package/README.md +7 -1
- package/dist/actor-contract.d.ts +35 -1
- package/dist/actor-contract.js +38 -0
- package/dist/actor-contract.js.map +1 -1
- package/dist/adapter-extension.js +1 -0
- package/dist/adapter-extension.js.map +1 -1
- package/dist/browser-control-client.d.ts +14 -0
- package/dist/browser-control-client.js +134 -0
- package/dist/browser-control-client.js.map +1 -0
- package/dist/browser-control-dispatcher.d.ts +14 -0
- package/dist/browser-control-dispatcher.js +109 -0
- package/dist/browser-control-dispatcher.js.map +1 -0
- package/dist/browser-control-protocol.d.ts +371 -0
- package/dist/browser-control-protocol.js +155 -0
- package/dist/browser-control-protocol.js.map +1 -0
- package/dist/browser-control-transport.d.ts +24 -0
- package/dist/browser-control-transport.js +156 -0
- package/dist/browser-control-transport.js.map +1 -0
- package/dist/comms-lease-store.d.ts +1 -0
- package/dist/comms-lease-store.js +9 -3
- package/dist/comms-lease-store.js.map +1 -1
- package/dist/computer-use-actor.d.ts +2 -2
- package/dist/computer-use-actor.js +6 -1
- package/dist/computer-use-actor.js.map +1 -1
- package/dist/computer-use.d.ts +23 -1
- package/dist/computer-use.js +253 -70
- package/dist/computer-use.js.map +1 -1
- package/dist/cua-actor-lab.d.ts +6 -1
- package/dist/cua-actor-lab.js +55 -15
- package/dist/cua-actor-lab.js.map +1 -1
- package/dist/cua-executor-error.d.ts +31 -0
- package/dist/cua-executor-error.js +48 -0
- package/dist/cua-executor-error.js.map +1 -0
- package/dist/cua-provider-error.d.ts +12 -0
- package/dist/cua-provider-error.js +28 -0
- package/dist/cua-provider-error.js.map +1 -0
- package/dist/desktop-session.js +3 -1
- package/dist/desktop-session.js.map +1 -1
- package/dist/doctor-lab.d.ts +2 -0
- package/dist/doctor-lab.js +25 -7
- package/dist/doctor-lab.js.map +1 -1
- package/dist/e2b-desktop-executor.d.ts +1 -24
- package/dist/e2b-desktop-executor.js +2 -127
- package/dist/e2b-desktop-executor.js.map +1 -1
- package/dist/e2b-terminal-lab.js +1 -0
- package/dist/e2b-terminal-lab.js.map +1 -1
- package/dist/frame-signature.d.ts +24 -0
- package/dist/frame-signature.js +128 -0
- package/dist/frame-signature.js.map +1 -0
- package/dist/guest-bootstrap.d.ts +43 -0
- package/dist/guest-bootstrap.js +240 -0
- package/dist/guest-bootstrap.js.map +1 -0
- package/dist/guest-browser-tools.d.ts +8 -0
- package/dist/guest-browser-tools.js +66 -0
- package/dist/guest-browser-tools.js.map +1 -0
- package/dist/guest-chromium-text.d.ts +27 -0
- package/dist/guest-chromium-text.js +281 -0
- package/dist/guest-chromium-text.js.map +1 -0
- package/dist/guest-desktop-executor.d.ts +22 -0
- package/dist/guest-desktop-executor.js +177 -0
- package/dist/guest-desktop-executor.js.map +1 -0
- package/dist/guest-desktop-native.d.ts +14 -0
- package/dist/guest-desktop-native.js +131 -0
- package/dist/guest-desktop-native.js.map +1 -0
- package/dist/guest-runtime-desktop.d.ts +35 -0
- package/dist/guest-runtime-desktop.js +231 -0
- package/dist/guest-runtime-desktop.js.map +1 -0
- package/dist/guest-runtime-main.d.ts +1 -0
- package/dist/guest-runtime-main.js +31 -0
- package/dist/guest-runtime-main.js.map +1 -0
- package/dist/guest-runtime-revision.d.ts +1 -0
- package/dist/guest-runtime-revision.js +3 -0
- package/dist/guest-runtime-revision.js.map +1 -0
- package/dist/guest-runtime.d.ts +25 -0
- package/dist/guest-runtime.js +96 -0
- package/dist/guest-runtime.js.map +1 -0
- package/dist/lab-config.js +10 -3
- package/dist/lab-config.js.map +1 -1
- package/dist/lab-engine.js +6 -0
- package/dist/lab-engine.js.map +1 -1
- package/dist/lab-summary.d.ts +2 -0
- package/dist/lab-summary.js +5 -0
- package/dist/lab-summary.js.map +1 -1
- package/dist/local-agent-cli.js +1 -1
- package/dist/local-agent-cli.js.map +1 -1
- package/dist/local-firecracker-desktop.d.ts +13 -0
- package/dist/local-firecracker-desktop.js +150 -0
- package/dist/local-firecracker-desktop.js.map +1 -0
- package/dist/local-firecracker-study.d.ts +9 -0
- package/dist/local-firecracker-study.js +93 -0
- package/dist/local-firecracker-study.js.map +1 -0
- package/dist/local-runtime-config.d.ts +6 -0
- package/dist/local-runtime-config.js +56 -0
- package/dist/local-runtime-config.js.map +1 -0
- package/dist/local-runtime-release.d.ts +3 -0
- package/dist/local-runtime-release.js +8 -0
- package/dist/local-runtime-release.js.map +1 -0
- package/dist/local-runtime.d.ts +25 -0
- package/dist/local-runtime.js +113 -0
- package/dist/local-runtime.js.map +1 -0
- package/dist/observer-app.html +4 -4
- package/dist/pricing.d.ts +22 -1
- package/dist/pricing.js +22 -0
- package/dist/pricing.js.map +1 -1
- package/dist/program.js +26 -0
- package/dist/program.js.map +1 -1
- package/dist/restricted-codex-participant-policy.d.ts +39 -0
- package/dist/restricted-codex-participant-policy.js +69 -0
- package/dist/restricted-codex-participant-policy.js.map +1 -0
- package/dist/restricted-codex-participant-run.d.ts +20 -0
- package/dist/restricted-codex-participant-run.js +78 -0
- package/dist/restricted-codex-participant-run.js.map +1 -0
- package/dist/restricted-codex-participant.d.ts +14 -0
- package/dist/restricted-codex-participant.js +178 -0
- package/dist/restricted-codex-participant.js.map +1 -0
- package/dist/restricted-codex-session.d.ts +2 -2
- package/dist/restricted-codex-session.js +11 -17
- package/dist/restricted-codex-session.js.map +1 -1
- package/dist/run-detail.js +4 -2
- package/dist/run-detail.js.map +1 -1
- package/dist/run.d.ts +12 -5
- package/dist/run.js +17 -1
- package/dist/run.js.map +1 -1
- package/dist/shared-world-lab.js +2 -2
- package/dist/shared-world-lab.js.map +1 -1
- package/dist/study-analysis-job.d.ts +2 -2
- package/dist/study-analysis-validation.d.ts +14 -14
- package/dist/study-costs.js +6 -0
- package/dist/study-costs.js.map +1 -1
- package/dist/tui-app.js +37 -37
- package/docs/architecture/browser-control.md +117 -0
- package/docs/architecture/guest-desktop.md +87 -0
- package/docs/architecture/local-browser-runtime.md +100 -0
- package/docs/architecture/restricted-codex-analysis.md +4 -2
- package/docs/architecture/runtime-broker-core.md +30 -0
- package/docs/contracts/schemas.md +1 -1
- package/docs/goals/current.md +24 -8
- package/docs/product/open-source-install-experience.md +7 -0
- package/docs/ramp/README.md +24 -13
- package/docs/release/0.98.0-local-browser-studies.md +31 -0
- package/package.json +4 -2
- package/skills/humanish/SKILL.md +23 -3
package/dist/run-detail.js
CHANGED
|
@@ -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 {
|
|
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 =
|
|
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
|
}
|
package/dist/run-detail.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-detail.js","sourceRoot":"","sources":["../src/run-detail.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,EAAE;AACF,iGAAiG;AACjG,iGAAiG;AACjG,mGAAmG;AACnG,+FAA+F;AAC/F,qCAAqC;AACrC,EAAE;AACF,yFAAyF;AACzF,2EAA2E;AAC3E,2CAA2C;AAC3C,iGAAiG;AACjG,8BAA8B;AAE9B,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,
|
|
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
|
|
908
|
-
output
|
|
909
|
-
total
|
|
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"
|