humanish 0.65.0 → 0.67.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/README.md +14 -3
- package/dist/actor-contract.d.ts +2 -1
- package/dist/actor-contract.js.map +1 -1
- package/dist/computer-use.d.ts +17 -0
- package/dist/computer-use.js +114 -5
- package/dist/computer-use.js.map +1 -1
- package/dist/cua-actor-lab.d.ts +23 -0
- package/dist/cua-actor-lab.js +90 -19
- package/dist/cua-actor-lab.js.map +1 -1
- package/dist/e2b-desktop-launch.d.ts +11 -0
- package/dist/e2b-desktop-launch.js.map +1 -1
- package/dist/e2b-terminal-lab.js +20 -1
- package/dist/e2b-terminal-lab.js.map +1 -1
- package/dist/lab-config.d.ts +17 -0
- package/dist/lab-config.js +14 -0
- package/dist/lab-config.js.map +1 -1
- package/dist/local-agent-claude-session.d.ts +45 -0
- package/dist/local-agent-claude-session.js +201 -0
- package/dist/local-agent-claude-session.js.map +1 -0
- package/dist/local-agent-cli.d.ts +2 -1
- package/dist/local-agent-cli.js +1 -1
- package/dist/local-agent-cli.js.map +1 -1
- package/dist/program.d.ts +3 -0
- package/dist/program.js +64 -6
- package/dist/program.js.map +1 -1
- package/dist/stats.d.ts +75 -0
- package/dist/stats.js +196 -0
- package/dist/stats.js.map +1 -0
- package/dist/telemetry.d.ts +14 -0
- package/dist/telemetry.js +109 -1
- package/dist/telemetry.js.map +1 -1
- package/docs/contracts/schemas.md +1 -1
- package/docs/goals/current.md +1 -1
- package/docs/ramp/README.md +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
// ONE Claude Code process as the computer-use brain, instead of a fresh `claude -p` per turn.
|
|
2
|
+
//
|
|
3
|
+
// WHY (#520): `actors[].localAgent: codex` already runs through a persistent app-server thread,
|
|
4
|
+
// so the participant remembers what it tried. `claude` spawned `claude -p` per turn, so EVERY
|
|
5
|
+
// turn started cold. Measured on the same lab with the same credentials (n=1 each): one-shot,
|
|
6
|
+
// 188 actions over 90 turns and never finished; a thread that remembers, 21 actions over 8 turns
|
|
7
|
+
// and goal_satisfied in 103 s. A participant that cannot remember trying the menu tries the menu
|
|
8
|
+
// again. Until this existed, comparing the two agents measured the transport, not the model.
|
|
9
|
+
//
|
|
10
|
+
// THE MECHANISM, checked on this machine before it was written: `claude -p --input-format
|
|
11
|
+
// stream-json --output-format stream-json --verbose` is a bidirectional session over stdio. One
|
|
12
|
+
// NDJSON `user` message in, a stream of `system` / `assistant` / `result` messages out, then it
|
|
13
|
+
// waits for the next `user` message with the conversation intact. Two messages, one session id,
|
|
14
|
+
// and a codeword given in the first turn was recalled in the second. `--allowedTools Read` keeps
|
|
15
|
+
// the bound the one-shot version had: it looks at a picture, and that is all it can do.
|
|
16
|
+
//
|
|
17
|
+
// What this is NOT: a change to the loop, the executor, the trace, or the Observer. Only where
|
|
18
|
+
// the next action comes from.
|
|
19
|
+
import { spawn } from "node:child_process";
|
|
20
|
+
import { mkdtemp, rm, unlink, writeFile } from "node:fs/promises";
|
|
21
|
+
import { tmpdir } from "node:os";
|
|
22
|
+
import path from "node:path";
|
|
23
|
+
import readline from "node:readline";
|
|
24
|
+
import { parseAgentJson, promptFor, toCuaActions, LOCAL_AGENT_CAPABILITIES } from "./local-agent-cli.js";
|
|
25
|
+
/** NDJSON over the child's stdio. Everything that is not a `result` is a progress line and is ignored. */
|
|
26
|
+
export function stdioClaudeTransport(child) {
|
|
27
|
+
const rl = readline.createInterface({ input: child.stdout });
|
|
28
|
+
let waiter;
|
|
29
|
+
let stderrTail = "";
|
|
30
|
+
let exited;
|
|
31
|
+
const fail = (error) => {
|
|
32
|
+
const pending = waiter;
|
|
33
|
+
waiter = undefined;
|
|
34
|
+
pending?.reject(error);
|
|
35
|
+
};
|
|
36
|
+
rl.on("line", (line) => {
|
|
37
|
+
let message;
|
|
38
|
+
try {
|
|
39
|
+
message = JSON.parse(line);
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return; // never a reason to end a run
|
|
43
|
+
}
|
|
44
|
+
if (message.type !== "result")
|
|
45
|
+
return;
|
|
46
|
+
const pending = waiter;
|
|
47
|
+
waiter = undefined;
|
|
48
|
+
pending?.resolve(message);
|
|
49
|
+
});
|
|
50
|
+
child.stderr.on("data", (chunk) => {
|
|
51
|
+
stderrTail = (stderrTail + chunk.toString("utf8")).slice(-400);
|
|
52
|
+
});
|
|
53
|
+
child.on("close", (code, signal) => {
|
|
54
|
+
exited = `Claude Code exited ${code ?? `on ${signal ?? "a signal"}`}${stderrTail.trim() ? `: ${stderrTail.trim()}` : ""}`;
|
|
55
|
+
// Fail loud with the CLI's own words: a rate-limited plan says so here, which is a sentence
|
|
56
|
+
// the operator can act on, unlike "turn failed".
|
|
57
|
+
fail(new Error(exited));
|
|
58
|
+
});
|
|
59
|
+
return {
|
|
60
|
+
send(message) {
|
|
61
|
+
if (exited !== undefined)
|
|
62
|
+
throw new Error(exited);
|
|
63
|
+
child.stdin.write(`${JSON.stringify(message)}\n`);
|
|
64
|
+
},
|
|
65
|
+
awaitResult(timeoutMs, signal) {
|
|
66
|
+
if (exited !== undefined)
|
|
67
|
+
return Promise.reject(new Error(exited));
|
|
68
|
+
return new Promise((resolve, reject) => {
|
|
69
|
+
const timer = setTimeout(() => fail(new Error(`Claude Code produced no result within ${timeoutMs}ms`)), timeoutMs);
|
|
70
|
+
const onAbort = () => fail(new Error("run stopped"));
|
|
71
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
72
|
+
waiter = {
|
|
73
|
+
resolve: (value) => { clearTimeout(timer); signal?.removeEventListener("abort", onAbort); resolve(value); },
|
|
74
|
+
reject: (error) => { clearTimeout(timer); signal?.removeEventListener("abort", onAbort); reject(error); }
|
|
75
|
+
};
|
|
76
|
+
});
|
|
77
|
+
},
|
|
78
|
+
close() {
|
|
79
|
+
rl.close();
|
|
80
|
+
child.stdin.end();
|
|
81
|
+
child.kill();
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
export const CLAUDE_SESSION_CAPABILITIES = LOCAL_AGENT_CAPABILITIES;
|
|
86
|
+
/** The message shape Claude Code reads on stdin in stream-json mode. */
|
|
87
|
+
export function userMessage(text) {
|
|
88
|
+
return { type: "user", message: { role: "user", content: [{ type: "text", text }] } };
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Start one Claude Code session and return a provider that spends it, one user message per
|
|
92
|
+
* computer-use turn. Started EAGERLY (before the first screenshot) so the CLI's own boot is paid
|
|
93
|
+
* while the sandbox is still settling rather than inside turn one.
|
|
94
|
+
*/
|
|
95
|
+
export async function startClaudeSession(options = {}) {
|
|
96
|
+
const timeoutMs = options.timeoutMs ?? 180_000;
|
|
97
|
+
const effort = options.reasoningEffort ?? "low";
|
|
98
|
+
const work = await mkdtemp(path.join(options.workRoot ?? tmpdir(), "humanish-claude-session-"));
|
|
99
|
+
let child;
|
|
100
|
+
let transport = options.transport;
|
|
101
|
+
if (transport === undefined) {
|
|
102
|
+
const spawnFn = options.spawnFn ?? spawn;
|
|
103
|
+
child = spawnFn("claude", [
|
|
104
|
+
"-p",
|
|
105
|
+
"--input-format", "stream-json",
|
|
106
|
+
"--output-format", "stream-json",
|
|
107
|
+
// Required for stream-json output in -p mode; it is what makes the per-turn `result` visible.
|
|
108
|
+
"--verbose",
|
|
109
|
+
// Read is the only tool it needs — the screenshot — and the only one it gets.
|
|
110
|
+
"--allowedTools", "Read",
|
|
111
|
+
...(options.model === undefined ? [] : ["--model", options.model])
|
|
112
|
+
], { cwd: work, stdio: ["pipe", "pipe", "pipe"] });
|
|
113
|
+
transport = stdioClaudeTransport(child);
|
|
114
|
+
}
|
|
115
|
+
let turnIndex = 0;
|
|
116
|
+
let previousShot;
|
|
117
|
+
const provider = {
|
|
118
|
+
id: "local-agent-claude-session",
|
|
119
|
+
version: options.model ?? "claude (local, operator-authenticated, one session per run)",
|
|
120
|
+
modelSettings: { reasoningEffort: effort },
|
|
121
|
+
capabilities: CLAUDE_SESSION_CAPABILITIES,
|
|
122
|
+
requiresFrame: true,
|
|
123
|
+
async nextTurn(request, signal) {
|
|
124
|
+
const frame = request.observation.screenshot;
|
|
125
|
+
if (frame === undefined) {
|
|
126
|
+
throw new Error("the Claude session provider needs a screenshot and this observation has none");
|
|
127
|
+
}
|
|
128
|
+
turnIndex += 1;
|
|
129
|
+
const shot = path.join(work, `screen-${String(turnIndex).padStart(3, "0")}.png`);
|
|
130
|
+
await writeFile(shot, frame);
|
|
131
|
+
const hint = request.contextHint === undefined ? "" : `\n\nNote from the harness: ${request.contextHint}`;
|
|
132
|
+
// The persona and the reply shape are in the conversation after turn one; re-sending them
|
|
133
|
+
// every turn is what the one-shot version had to do, and it is most of what it cost.
|
|
134
|
+
const text = turnIndex === 1
|
|
135
|
+
? promptFor(request, shot, "claude")
|
|
136
|
+
: `Read the image file ${shot}. That is the CURRENT SCREEN, after your last actions took effect. `
|
|
137
|
+
+ "Same participant, same task: decide what to do next. "
|
|
138
|
+
+ "Reply with ONLY a JSON object of the same shape as before."
|
|
139
|
+
+ hint;
|
|
140
|
+
transport.send(userMessage(text));
|
|
141
|
+
const result = await transport.awaitResult(timeoutMs, signal);
|
|
142
|
+
// The frame it already looked at is not needed on disk; the conversation remembers it.
|
|
143
|
+
if (previousShot !== undefined)
|
|
144
|
+
await unlink(previousShot).catch(() => undefined);
|
|
145
|
+
previousShot = shot;
|
|
146
|
+
return turnFromResult(result);
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
return {
|
|
150
|
+
provider,
|
|
151
|
+
close: async () => {
|
|
152
|
+
transport?.close();
|
|
153
|
+
child?.kill();
|
|
154
|
+
await rm(work, { recursive: true, force: true }).catch(() => undefined);
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
/** Read a stream-json `result` message into a CuaTurn. Exported for tests. */
|
|
159
|
+
export function turnFromResult(result) {
|
|
160
|
+
if (result.is_error === true || (typeof result.subtype === "string" && result.subtype !== "success")) {
|
|
161
|
+
// A turn that errored is a BROKEN turn, never an empty one: an empty turn reads to the loop
|
|
162
|
+
// as "the participant chose to do nothing".
|
|
163
|
+
throw new Error(`Claude Code turn ended ${String(result.subtype ?? "in error")}: ${String(result.result ?? "").slice(0, 160)}`);
|
|
164
|
+
}
|
|
165
|
+
const text = typeof result.result === "string" ? result.result : "";
|
|
166
|
+
let parsed;
|
|
167
|
+
try {
|
|
168
|
+
parsed = parseAgentJson(text);
|
|
169
|
+
}
|
|
170
|
+
catch {
|
|
171
|
+
throw new Error(`Claude Code returned no structured turn output (${text.slice(0, 160)})`);
|
|
172
|
+
}
|
|
173
|
+
const actions = toCuaActions(Array.isArray(parsed.actions) ? parsed.actions : []);
|
|
174
|
+
const done = parsed.done === true || (actions.length === 0 && typeof parsed.message === "string");
|
|
175
|
+
const usage = result.usage;
|
|
176
|
+
const count = (key) => (typeof usage?.[key] === "number" ? usage[key] : undefined);
|
|
177
|
+
const input = count("input_tokens");
|
|
178
|
+
const output = count("output_tokens");
|
|
179
|
+
const cachedInput = count("cache_read_input_tokens");
|
|
180
|
+
const cacheWriteInput = count("cache_creation_input_tokens");
|
|
181
|
+
return {
|
|
182
|
+
actions,
|
|
183
|
+
pendingSafetyChecks: [],
|
|
184
|
+
done,
|
|
185
|
+
...(typeof parsed.reasoning === "string" && parsed.reasoning.length > 0 ? { reasoning: parsed.reasoning } : {}),
|
|
186
|
+
...(typeof parsed.message === "string" && parsed.message.length > 0 ? { message: parsed.message } : {}),
|
|
187
|
+
// Claude Code reports its token counts per turn (#531). They are recorded as counts; the
|
|
188
|
+
// run's cost line stays "not priced", because a subscription is not a rate card.
|
|
189
|
+
...(input === undefined && output === undefined
|
|
190
|
+
? {}
|
|
191
|
+
: {
|
|
192
|
+
usage: {
|
|
193
|
+
...(input === undefined ? {} : { input }),
|
|
194
|
+
...(output === undefined ? {} : { output }),
|
|
195
|
+
...(cachedInput === undefined ? {} : { cachedInput }),
|
|
196
|
+
...(cacheWriteInput === undefined ? {} : { cacheWriteInput })
|
|
197
|
+
}
|
|
198
|
+
})
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=local-agent-claude-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-agent-claude-session.js","sourceRoot":"","sources":["../src/local-agent-claude-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ActorCapabilities } from "./actor-contract.js";
|
|
2
|
-
import type { CuaAction, CuaProvider } from "./computer-use.js";
|
|
2
|
+
import type { CuaAction, CuaProvider, CuaTurnRequest } from "./computer-use.js";
|
|
3
3
|
import type { ReasoningEffort } from "./reasoning-effort.js";
|
|
4
4
|
export type LocalAgentId = "codex" | "claude";
|
|
5
5
|
export interface LocalAgentDescriptor {
|
|
@@ -65,6 +65,7 @@ export interface LocalAgentProviderOptions {
|
|
|
65
65
|
workRoot?: string;
|
|
66
66
|
}
|
|
67
67
|
export declare const LOCAL_AGENT_CAPABILITIES: ActorCapabilities;
|
|
68
|
+
export declare function promptFor(request: CuaTurnRequest, screenshotPath: string, agent: LocalAgentId): string;
|
|
68
69
|
/**
|
|
69
70
|
* A CuaProvider backed by a coding agent that is already signed in on this machine.
|
|
70
71
|
*
|
package/dist/local-agent-cli.js
CHANGED
|
@@ -170,7 +170,7 @@ export const LOCAL_AGENT_CAPABILITIES = {
|
|
|
170
170
|
inProcessTools: false,
|
|
171
171
|
license: "open"
|
|
172
172
|
};
|
|
173
|
-
function promptFor(request, screenshotPath, agent) {
|
|
173
|
+
export function promptFor(request, screenshotPath, agent) {
|
|
174
174
|
const hint = request.contextHint === undefined ? "" : `\n\nNote from the harness: ${request.contextHint}`;
|
|
175
175
|
// Claude Code has no --output-schema, so the shape is stated in the prompt for both; codex gets
|
|
176
176
|
// it enforced as well. Saying it twice costs nothing and keeps one prompt for both adapters.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-agent-cli.js","sourceRoot":"","sources":["../src/local-agent-cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"local-agent-cli.js","sourceRoot":"","sources":["../src/local-agent-cli.ts"],"names":[],"mappings":"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"}
|
package/dist/program.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
import { discoverProviderKeys } from "./key-resolution.js";
|
|
3
|
+
import { type TelemetryProperties } from "./telemetry.js";
|
|
3
4
|
import type { ObserverResult, ObserverServer } from "./observer.js";
|
|
4
5
|
import type { OssMetaLabResult } from "./oss-meta-lab.js";
|
|
5
6
|
import { type TuiModule } from "./tui-contract.js";
|
|
@@ -55,6 +56,8 @@ export declare function resolveBackendShouldOpen(args: {
|
|
|
55
56
|
wantsMachine: boolean;
|
|
56
57
|
}): boolean;
|
|
57
58
|
export declare function writeResult<T>(command: Command, io: CliIo, result: T, formatHuman: (result: T) => string): void;
|
|
59
|
+
/** Exported for tests: the facts writeResult read off a command's result document. */
|
|
60
|
+
export declare function studyFactsFor(command: Command): TelemetryProperties;
|
|
58
61
|
type WatchStopSignal = "SIGINT" | "SIGTERM" | "SIGHUP";
|
|
59
62
|
interface WatchSignalTarget {
|
|
60
63
|
once(event: WatchStopSignal, listener: () => void): unknown;
|
package/dist/program.js
CHANGED
|
@@ -10,7 +10,8 @@ import { discoverProviderKeys, listUserKeys, resolveKeyName, setUserKey, unsetUs
|
|
|
10
10
|
import { redactText } from "./redaction.js";
|
|
11
11
|
import { draftFeedback, listFeedback, renderIssueMarkdown, renderIssueUrl, verifyFeedback } from "./feedback.js";
|
|
12
12
|
import { runInit } from "./init.js";
|
|
13
|
-
import {
|
|
13
|
+
import { computeStats, formatStatsHuman } from "./stats.js";
|
|
14
|
+
import { buildPayload, disabledByEnvironment, inHumanishCheckout, durationBucket, readTelemetryState, sendTelemetry, telemetryStatePath, deriveStudyFacts, TELEMETRY_NOTICE, writeTelemetryState } from "./telemetry.js";
|
|
14
15
|
import { inspectLabManifest, listLabManifests, resolveLabManifest } from "./labs.js";
|
|
15
16
|
import { runLabPreflight } from "./lab-preflight.js";
|
|
16
17
|
import { runLab, resolveLabDryRun, selectLabBackend } from "./lab-engine.js";
|
|
@@ -94,7 +95,9 @@ async function announceTelemetryOnce(command, io) {
|
|
|
94
95
|
// Never blocks the command.
|
|
95
96
|
}
|
|
96
97
|
}
|
|
97
|
-
|
|
98
|
+
/** The exit code the most recent command chose through CliIo.setExitCode; 0 until it says otherwise. */
|
|
99
|
+
let lastExitCode = 0;
|
|
100
|
+
async function recordCommandTelemetry(command, ok, durationMs, exitCode) {
|
|
98
101
|
try {
|
|
99
102
|
// `telemetry` itself is never measured: instrumenting the opt-out would be indecent.
|
|
100
103
|
const name = commandPath(command);
|
|
@@ -112,7 +115,16 @@ async function recordCommandTelemetry(command, ok, durationMs) {
|
|
|
112
115
|
event: "cli_command",
|
|
113
116
|
anonymousId: state.anonymousId,
|
|
114
117
|
version: CLI_VERSION,
|
|
115
|
-
|
|
118
|
+
// The study facts (mode, outcome, starter lab, brain, our own error code) were read off the
|
|
119
|
+
// result document when it was written; see writeResult. Without them every `run` event
|
|
120
|
+
// looked the same whether it was a dry run or the first live study that ever worked.
|
|
121
|
+
properties: {
|
|
122
|
+
...studyFactsFor(command),
|
|
123
|
+
command: name,
|
|
124
|
+
ok: ok && exitCode === 0,
|
|
125
|
+
exitCode,
|
|
126
|
+
durationBucket: durationBucket(durationMs)
|
|
127
|
+
}
|
|
116
128
|
});
|
|
117
129
|
if (process.env.HUMANISH_TELEMETRY_DEBUG !== undefined && process.env.HUMANISH_TELEMETRY_DEBUG !== "") {
|
|
118
130
|
process.stderr.write(`humanish telemetry (debug, not sent): ${JSON.stringify(payload)}\n`);
|
|
@@ -150,13 +162,14 @@ class HumanishCommand extends Command {
|
|
|
150
162
|
// Twenty .action() handlers each remembering to record a metric is twenty chances to forget
|
|
151
163
|
// one, and a funnel with a hole in it is worse than no funnel.
|
|
152
164
|
const startedAt = Date.now();
|
|
165
|
+
lastExitCode = 0;
|
|
153
166
|
// The NOTICE is awaited; the SEND is not. They have opposite requirements: disclosure must
|
|
154
167
|
// never be lost (a silent default-on collector is indefensible), and a metric must never
|
|
155
168
|
// make anyone wait. The first version put both in the fire-and-forget path, and the notice
|
|
156
169
|
// lost the race with process exit — a real participant ran this build and never saw it.
|
|
157
170
|
const noticed = announceTelemetryOnce(this, cliIo);
|
|
158
171
|
const finish = (ok) => {
|
|
159
|
-
void recordCommandTelemetry(this, ok, Date.now() - startedAt);
|
|
172
|
+
void recordCommandTelemetry(this, ok, Date.now() - startedAt, lastExitCode);
|
|
160
173
|
};
|
|
161
174
|
try {
|
|
162
175
|
// Reflect.apply (not fn.apply) sidesteps TS's special CallableFunction
|
|
@@ -269,7 +282,17 @@ export function withSiblingFlagHint(text, root) {
|
|
|
269
282
|
return `${text.replace(/\n+$/, "")}\n${match[1]} is an option of ${list}${tail}, not of this command.\n`;
|
|
270
283
|
}
|
|
271
284
|
export function createProgram(io = {}) {
|
|
272
|
-
const
|
|
285
|
+
const given = { ...defaultIo, ...io };
|
|
286
|
+
// Telemetry's `ok` used to mean "the handler did not throw", which is true of nearly every
|
|
287
|
+
// failure: commands report failure through their envelope and setExitCode(2), not by throwing.
|
|
288
|
+
// 1,359 study events in two days and every one said ok. Record the exit code the command chose.
|
|
289
|
+
const cliIo = {
|
|
290
|
+
...given,
|
|
291
|
+
setExitCode: (code) => {
|
|
292
|
+
lastExitCode = code;
|
|
293
|
+
given.setExitCode(code);
|
|
294
|
+
}
|
|
295
|
+
};
|
|
273
296
|
keyDiscoveryFn = io.keyDiscovery ?? discoverProviderKeys;
|
|
274
297
|
tuiRuntime = { ...defaultTuiRuntime, ...io.tuiRuntime };
|
|
275
298
|
const program = new HumanishCommand(undefined, cliIo);
|
|
@@ -328,6 +351,7 @@ export function createProgram(io = {}) {
|
|
|
328
351
|
registerCleanupCommand(program, cliIo);
|
|
329
352
|
registerReviewCommand(program, cliIo);
|
|
330
353
|
registerRunsCommand(program, cliIo);
|
|
354
|
+
registerStatsCommand(program, cliIo);
|
|
331
355
|
registerCommsCommands(program, cliIo);
|
|
332
356
|
registerReclaimCommand(program, cliIo);
|
|
333
357
|
registerWatchCommand(program, cliIo);
|
|
@@ -432,7 +456,7 @@ function registerTelemetryCommand(parent, io) {
|
|
|
432
456
|
event: "cli_command",
|
|
433
457
|
anonymousId: state.anonymousId,
|
|
434
458
|
version: CLI_VERSION,
|
|
435
|
-
properties: { command: "run", lab: "try-live", mode: "live", outcome: "passed", durationBucket: "1-5m", ok: true }
|
|
459
|
+
properties: { command: "run", lab: "try-live", mode: "live", outcome: "passed", brain: "provider-key", durationBucket: "1-5m", ok: true }
|
|
436
460
|
});
|
|
437
461
|
const result = {
|
|
438
462
|
schema: "humanish.telemetry-status.v1",
|
|
@@ -869,6 +893,24 @@ function registerReviewCommand(parent, io) {
|
|
|
869
893
|
io.setExitCode("ok" in result && result.ok === false ? 2 : 0);
|
|
870
894
|
});
|
|
871
895
|
}
|
|
896
|
+
function registerStatsCommand(parent, io) {
|
|
897
|
+
parent
|
|
898
|
+
.command("stats")
|
|
899
|
+
.description("Cost, outcome, and duration roll-ups across run history (#472). Estimates stay labelled; unknown costs count as unknown.")
|
|
900
|
+
.summary("Roll up cost, outcomes, and durations across runs.")
|
|
901
|
+
.option("--lab <id>", "Only runs from this lab id.")
|
|
902
|
+
.option("--since <date>", "Only runs that started on or after this ISO date or datetime.")
|
|
903
|
+
.option("--cwd <path>", "Target project directory.", ".")
|
|
904
|
+
.option("--json", JSON_OPTION_DESCRIPTION)
|
|
905
|
+
.action(async (options, command) => {
|
|
906
|
+
const result = await computeStats(options.cwd, {
|
|
907
|
+
...(options.lab === undefined ? {} : { lab: options.lab }),
|
|
908
|
+
...(options.since === undefined ? {} : { since: options.since })
|
|
909
|
+
});
|
|
910
|
+
writeResult(command, io, result, formatStatsHuman);
|
|
911
|
+
io.setExitCode(result.ok ? 0 : 2);
|
|
912
|
+
});
|
|
913
|
+
}
|
|
872
914
|
function registerRunsCommand(parent, io) {
|
|
873
915
|
parent
|
|
874
916
|
.command("runs")
|
|
@@ -2111,6 +2153,9 @@ async function runLabCommand(args) {
|
|
|
2111
2153
|
// and carried into the run's status record and bundle so the filesystem can answer "which lab
|
|
2112
2154
|
// produced this run" without the old `persona.source = "lab:<id>"` string convention.
|
|
2113
2155
|
const lab = { id: config.id, path: resolved.path, origin: resolved.origin };
|
|
2156
|
+
// Named here, once, for every backend: a synthetic or terminal result carries no labId, so the
|
|
2157
|
+
// starter lab `first-run` went unnamed in telemetry while the computer-use ones were named.
|
|
2158
|
+
noteStudyFacts(args.command, deriveStudyFacts({ labId: config.id }));
|
|
2114
2159
|
const backend = selectLabBackend(config);
|
|
2115
2160
|
if (backend !== "cua" && labRerunFlagsRequested(args.options)) {
|
|
2116
2161
|
writeUnsupportedRerunFlagsResult(args, backend);
|
|
@@ -3045,6 +3090,19 @@ export function writeResult(command, io, result, formatHuman) {
|
|
|
3045
3090
|
io.writeOut(formatHuman(result));
|
|
3046
3091
|
}
|
|
3047
3092
|
markInvocationEnvelopeWritten(command);
|
|
3093
|
+
// Every backend's result passes through here, so this is where a study's facts get read for
|
|
3094
|
+
// telemetry — not in each backend, which is how they went unreported for two releases.
|
|
3095
|
+
noteStudyFacts(command, deriveStudyFacts(result));
|
|
3096
|
+
}
|
|
3097
|
+
const studyFactsByCommand = new WeakMap();
|
|
3098
|
+
function noteStudyFacts(command, facts) {
|
|
3099
|
+
if (Object.keys(facts).length === 0)
|
|
3100
|
+
return;
|
|
3101
|
+
studyFactsByCommand.set(command, { ...studyFactsByCommand.get(command), ...facts });
|
|
3102
|
+
}
|
|
3103
|
+
/** Exported for tests: the facts writeResult read off a command's result document. */
|
|
3104
|
+
export function studyFactsFor(command) {
|
|
3105
|
+
return { ...studyFactsByCommand.get(command) };
|
|
3048
3106
|
}
|
|
3049
3107
|
function formatDoctorHuman(result) {
|
|
3050
3108
|
return [
|