humanish 0.65.0 → 0.66.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 +5 -1
- package/dist/actor-contract.d.ts +2 -1
- package/dist/actor-contract.js.map +1 -1
- package/dist/cua-actor-lab.d.ts +23 -0
- package/dist/cua-actor-lab.js +59 -13
- 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 +15 -0
- 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/program.d.ts +3 -0
- package/dist/program.js +44 -6
- package/dist/program.js.map +1 -1
- package/dist/telemetry.d.ts +14 -0
- package/dist/telemetry.js +104 -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
package/dist/telemetry.d.ts
CHANGED
|
@@ -12,6 +12,9 @@ export interface TelemetryProperties {
|
|
|
12
12
|
brain?: "provider-key" | "local-agent" | "none";
|
|
13
13
|
ok?: boolean;
|
|
14
14
|
exitCode?: number;
|
|
15
|
+
/** One of humanish's OWN error codes (`HUMANISH_*`), never a message. Which failure ends a
|
|
16
|
+
* first run is the question the funnel exists to answer. */
|
|
17
|
+
errorCode?: string;
|
|
15
18
|
}
|
|
16
19
|
export interface TelemetryState {
|
|
17
20
|
enabled: boolean;
|
|
@@ -61,6 +64,17 @@ export declare function buildPayload(args: {
|
|
|
61
64
|
platform?: string;
|
|
62
65
|
nodeVersion?: string;
|
|
63
66
|
}): TelemetryPayload;
|
|
67
|
+
/**
|
|
68
|
+
* Read the study facts off a command's result document: mode, outcome, starter lab, brain route,
|
|
69
|
+
* and our own error code. Duck-typed over every result shape the CLI writes, because the point is
|
|
70
|
+
* ONE derivation at the one seam every command already passes through (writeResult), so that a
|
|
71
|
+
* backend added later cannot forget to report. Returns {} for results that carry no study.
|
|
72
|
+
*
|
|
73
|
+
* The first two days of 0.62.0 data had 1,359 `run`/`lab run` events and not one carried a mode
|
|
74
|
+
* or an outcome — the vocabulary existed, nothing populated it — so the one question telemetry
|
|
75
|
+
* was added to answer ("does anyone get to a working LIVE first run") had no answer in the data.
|
|
76
|
+
*/
|
|
77
|
+
export declare function deriveStudyFacts(result: unknown): TelemetryProperties;
|
|
64
78
|
/** The notice, shown once, before anything is sent. */
|
|
65
79
|
export declare const TELEMETRY_NOTICE: string;
|
|
66
80
|
export interface SendDeps {
|
package/dist/telemetry.js
CHANGED
|
@@ -126,10 +126,24 @@ export function safeLabId(lab) {
|
|
|
126
126
|
export function buildPayload(args) {
|
|
127
127
|
const env = args.env ?? process.env;
|
|
128
128
|
const properties = {
|
|
129
|
+
// Ask the receiver not to derive a location from the request. "Anonymous" and "tied to
|
|
130
|
+
// nothing" are only true if the collector honours them too: PostHog enriches every event
|
|
131
|
+
// with GeoIP city/coordinates from the source address unless told not to, and the project
|
|
132
|
+
// is additionally set to discard the client IP at ingestion (`anonymize_ips`). Both, so that
|
|
133
|
+
// neither a default nor a console setting decides what the doc promised.
|
|
134
|
+
$geoip_disable: true,
|
|
129
135
|
version: args.version,
|
|
130
136
|
os: args.platform ?? process.platform,
|
|
131
137
|
node: (args.nodeVersion ?? process.version).split(".")[0].replace("v", ""),
|
|
132
|
-
ci: env.CI !== undefined && env.CI !== "" && env.CI !== "0"
|
|
138
|
+
ci: env.CI !== undefined && env.CI !== "" && env.CI !== "0",
|
|
139
|
+
// A humanish study participant is a real cold install on a machine we do not own, so it emits
|
|
140
|
+
// like any other new adopter and is indistinguishable from one. It is also the exact
|
|
141
|
+
// population we are trying to count, so a busy self-study day reads as an adoption spike.
|
|
142
|
+
// Stamped rather than suppressed, the same shape as `ci`: participant runs stay visible and
|
|
143
|
+
// stay separable, and we keep a genuine measurement of what a cold install does (#546).
|
|
144
|
+
studyParticipant: env.HUMANISH_STUDY_PARTICIPANT !== undefined
|
|
145
|
+
&& env.HUMANISH_STUDY_PARTICIPANT !== ""
|
|
146
|
+
&& env.HUMANISH_STUDY_PARTICIPANT !== "0"
|
|
133
147
|
};
|
|
134
148
|
const given = args.properties ?? {};
|
|
135
149
|
if (given.command !== undefined)
|
|
@@ -148,8 +162,97 @@ export function buildPayload(args) {
|
|
|
148
162
|
properties.ok = given.ok;
|
|
149
163
|
if (given.exitCode !== undefined)
|
|
150
164
|
properties.exit_code = given.exitCode;
|
|
165
|
+
if (given.errorCode !== undefined && OWN_ERROR_CODE.test(given.errorCode))
|
|
166
|
+
properties.error_code = given.errorCode;
|
|
151
167
|
return { event: args.event, distinct_id: args.anonymousId, properties };
|
|
152
168
|
}
|
|
169
|
+
/** Our own codes only. A provider's or the OS's message is free text and never travels. */
|
|
170
|
+
const OWN_ERROR_CODE = /^HUMANISH_[A-Z0-9_]{1,80}$/;
|
|
171
|
+
/**
|
|
172
|
+
* The closed vocabulary an outcome may take. Actor statuses (src/actor-contract.ts), the two
|
|
173
|
+
* shared-world extras, a fan-out roll-up, and the two shapes a non-study command has. Anything
|
|
174
|
+
* else — a provider's reason string, a scorer's verdict text — is dropped, never forwarded.
|
|
175
|
+
*/
|
|
176
|
+
const OUTCOMES = new Set([
|
|
177
|
+
"passed", "abandoned", "incomplete", "blocked", "timed_out", "failed",
|
|
178
|
+
"contract_proof_only",
|
|
179
|
+
"all_passed", "some_passed", "none_passed",
|
|
180
|
+
"ok", "error"
|
|
181
|
+
]);
|
|
182
|
+
const BRAINS_BY_ACTOR = {
|
|
183
|
+
"local-agent": "local-agent",
|
|
184
|
+
"openai-computer-use": "provider-key",
|
|
185
|
+
"codex-exec": "provider-key",
|
|
186
|
+
"codex-tui": "provider-key",
|
|
187
|
+
"codex-app-server": "provider-key",
|
|
188
|
+
"scripted-browser": "none"
|
|
189
|
+
};
|
|
190
|
+
function asRecord(value) {
|
|
191
|
+
return typeof value === "object" && value !== null ? value : undefined;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Read the study facts off a command's result document: mode, outcome, starter lab, brain route,
|
|
195
|
+
* and our own error code. Duck-typed over every result shape the CLI writes, because the point is
|
|
196
|
+
* ONE derivation at the one seam every command already passes through (writeResult), so that a
|
|
197
|
+
* backend added later cannot forget to report. Returns {} for results that carry no study.
|
|
198
|
+
*
|
|
199
|
+
* The first two days of 0.62.0 data had 1,359 `run`/`lab run` events and not one carried a mode
|
|
200
|
+
* or an outcome — the vocabulary existed, nothing populated it — so the one question telemetry
|
|
201
|
+
* was added to answer ("does anyone get to a working LIVE first run") had no answer in the data.
|
|
202
|
+
*/
|
|
203
|
+
export function deriveStudyFacts(result) {
|
|
204
|
+
const r = asRecord(result);
|
|
205
|
+
if (!r)
|
|
206
|
+
return {};
|
|
207
|
+
const facts = {};
|
|
208
|
+
if (r.dryRun === true)
|
|
209
|
+
facts.mode = "dry-run";
|
|
210
|
+
else if (r.dryRun === false)
|
|
211
|
+
facts.mode = "live";
|
|
212
|
+
else if (r.mode === "dry-run" || r.mode === "live")
|
|
213
|
+
facts.mode = r.mode;
|
|
214
|
+
const labRecord = asRecord(r.lab);
|
|
215
|
+
const labId = typeof r.labId === "string" ? r.labId
|
|
216
|
+
: typeof labRecord?.id === "string" ? labRecord.id
|
|
217
|
+
: typeof r.lab === "string" ? r.lab
|
|
218
|
+
: undefined;
|
|
219
|
+
const lab = safeLabId(labId);
|
|
220
|
+
if (lab !== undefined)
|
|
221
|
+
facts.lab = lab;
|
|
222
|
+
const error = asRecord(r.error);
|
|
223
|
+
if (typeof error?.code === "string" && OWN_ERROR_CODE.test(error.code))
|
|
224
|
+
facts.errorCode = error.code;
|
|
225
|
+
const session = asRecord(r.session);
|
|
226
|
+
const laneSummary = asRecord(r.laneSummary);
|
|
227
|
+
let outcome;
|
|
228
|
+
if (laneSummary && typeof laneSummary.total === "number" && typeof laneSummary.passed === "number" && laneSummary.total > 1) {
|
|
229
|
+
outcome = laneSummary.passed === laneSummary.total ? "all_passed"
|
|
230
|
+
: laneSummary.passed === 0 ? "none_passed"
|
|
231
|
+
: "some_passed";
|
|
232
|
+
}
|
|
233
|
+
else if (typeof session?.status === "string") {
|
|
234
|
+
outcome = session.status;
|
|
235
|
+
}
|
|
236
|
+
else if (typeof r.status === "string") {
|
|
237
|
+
outcome = r.status;
|
|
238
|
+
}
|
|
239
|
+
else if (r.error !== undefined && r.error !== null) {
|
|
240
|
+
outcome = "error";
|
|
241
|
+
}
|
|
242
|
+
else if (r.ok === true && facts.mode !== undefined) {
|
|
243
|
+
outcome = "ok";
|
|
244
|
+
}
|
|
245
|
+
if (outcome !== undefined && OUTCOMES.has(outcome))
|
|
246
|
+
facts.outcome = outcome;
|
|
247
|
+
else if (outcome !== undefined && facts.errorCode !== undefined)
|
|
248
|
+
facts.outcome = "error";
|
|
249
|
+
if (typeof r.actor === "string") {
|
|
250
|
+
const brain = facts.mode === "dry-run" ? "none" : BRAINS_BY_ACTOR[r.actor];
|
|
251
|
+
if (brain !== undefined)
|
|
252
|
+
facts.brain = brain;
|
|
253
|
+
}
|
|
254
|
+
return facts;
|
|
255
|
+
}
|
|
153
256
|
/** The notice, shown once, before anything is sent. */
|
|
154
257
|
export const TELEMETRY_NOTICE = [
|
|
155
258
|
"humanish collects anonymous usage data (which command ran, whether it worked, how long it took).",
|
package/dist/telemetry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,yFAAyF;AACzF,EAAE;AACF,iGAAiG;AACjG,oGAAoG;AACpG,iGAAiG;AACjG,EAAE;AACF,iGAAiG;AACjG,oGAAoG;AACpG,8FAA8F;AAC9F,iGAAiG;AACjG,mGAAmG;AAEnG,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,8FAA8F;AAC9F,MAAM,UAAU,GAAG,kDAAkD,CAAC;AACtE,MAAM,WAAW,GAAG,0BAA0B,CAAC;AAE/C,gGAAgG;AAChG,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,sBAAsB,EAAE,KAAK,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Date: 2026-06-02 (current-state note updated 2026-07-14)
|
|
4
4
|
|
|
5
5
|
Status: reference map for the major contracts shipped through source version
|
|
6
|
-
`0.
|
|
6
|
+
`0.66.0`; it is not an exhaustive inventory of command/result envelopes. Exported types,
|
|
7
7
|
schema constants, parsers, and validators in `src/` are authoritative. Rows
|
|
8
8
|
marked "reserved" name layering intent only — no code emits or validates them
|
|
9
9
|
yet. Do not emit a reserved schema.
|
package/docs/goals/current.md
CHANGED
|
@@ -29,7 +29,7 @@ study completed, reproduced, and produced a real accessibility finding via a
|
|
|
29
29
|
keyboard-first participant
|
|
30
30
|
([docs/goals/email-gated-signup/receipts/](email-gated-signup/receipts/)).
|
|
31
31
|
|
|
32
|
-
## Current Program Truth (source `0.
|
|
32
|
+
## Current Program Truth (source `0.66.0`)
|
|
33
33
|
|
|
34
34
|
The package source and repository implementation in this tree agree on these
|
|
35
35
|
points:
|
package/docs/ramp/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Status: public-safe contributor and agent ramp.
|
|
4
4
|
|
|
5
|
-
Package/source version in this tree: `0.
|
|
5
|
+
Package/source version in this tree: `0.66.0` (2026-09-01). The Observer is phone-usable as a stated requirement (observer/AGENTS.md); interactive primitives start from Base UI. The Observer renderer is the observer/ workspace artifact only; the legacy string-concat renderer was deleted at cutover (#426), and rollback is a version pin to 0.42.0. The containment boundary introduced in
|
|
6
6
|
`0.15.1` remains in force: managed run and output paths bind to validated
|
|
7
7
|
physical filesystem identities, and stored provider IDs are evidence, not
|
|
8
8
|
cleanup authority. The bundled OSS meta-lab is dry-run only until
|
package/package.json
CHANGED