humanish 0.87.0 → 0.88.1

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 (55) hide show
  1. package/README.md +12 -2
  2. package/dist/actor-contract.d.ts +4 -1
  3. package/dist/actor-contract.js.map +1 -1
  4. package/dist/actor-goal-source.d.ts +5 -0
  5. package/dist/actor-goal-source.js +32 -0
  6. package/dist/actor-goal-source.js.map +1 -0
  7. package/dist/actor-stop-cause.d.ts +2 -0
  8. package/dist/actor-stop-cause.js +7 -2
  9. package/dist/actor-stop-cause.js.map +1 -1
  10. package/dist/computer-use.d.ts +3 -0
  11. package/dist/computer-use.js +30 -4
  12. package/dist/computer-use.js.map +1 -1
  13. package/dist/cua-actor-lab.d.ts +10 -3
  14. package/dist/cua-actor-lab.js +35 -10
  15. package/dist/cua-actor-lab.js.map +1 -1
  16. package/dist/cua-admission-limit.d.ts +12 -0
  17. package/dist/cua-admission-limit.js +20 -0
  18. package/dist/cua-admission-limit.js.map +1 -0
  19. package/dist/cua-diagnostics.d.ts +38 -0
  20. package/dist/cua-diagnostics.js +68 -0
  21. package/dist/cua-diagnostics.js.map +1 -0
  22. package/dist/e2b-desktop-executor.js +4 -2
  23. package/dist/e2b-desktop-executor.js.map +1 -1
  24. package/dist/feedback.js +5 -3
  25. package/dist/feedback.js.map +1 -1
  26. package/dist/index.d.ts +2 -1
  27. package/dist/index.js +2 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/observer-data.js +11 -4
  30. package/dist/observer-data.js.map +1 -1
  31. package/dist/openai-responses-cu.js +13 -2
  32. package/dist/openai-responses-cu.js.map +1 -1
  33. package/dist/program.d.ts +2 -0
  34. package/dist/program.js +9 -4
  35. package/dist/program.js.map +1 -1
  36. package/dist/run.d.ts +18 -5
  37. package/dist/run.js +70 -2
  38. package/dist/run.js.map +1 -1
  39. package/dist/stats.js +1 -1
  40. package/dist/stats.js.map +1 -1
  41. package/dist/telemetry.d.ts +3 -0
  42. package/dist/telemetry.js +15 -1
  43. package/dist/telemetry.js.map +1 -1
  44. package/docs/architecture/examples/state-driven-local-app/README.md +75 -0
  45. package/docs/architecture/examples/state-driven-local-app/app.mjs +48 -0
  46. package/docs/architecture/examples/state-driven-local-app/runner.mjs +104 -0
  47. package/docs/architecture/state-driven-executor.md +19 -26
  48. package/docs/contracts/adapter-admission.md +54 -0
  49. package/docs/contracts/run-bundle.md +8 -1
  50. package/docs/contracts/schemas.md +16 -2
  51. package/docs/goals/current.md +9 -4
  52. package/docs/ramp/README.md +11 -1
  53. package/docs/release/0.88.0-study-diagnostics.md +43 -0
  54. package/docs/release/0.88.1-completion-evidence-and-local-app.md +79 -0
  55. package/package.json +1 -1
package/dist/stats.js CHANGED
@@ -170,7 +170,7 @@ export function formatStatsHuman(result) {
170
170
  `humanish stats${scope.length === 0 ? "" : ` (${scope.join(", ")})`}`,
171
171
  `runs: ${t.runs} (${t.live} live, ${t.dryRun} dry-run${t.running > 0 ? `, ${t.running} running` : ""})`,
172
172
  `estimated spend: ${money(t.estimatedSpendUsd)} over ${t.runs - t.unpricedRuns} priced run(s); ${t.unpricedRuns} unpriced (counted, not $0)`,
173
- `participants: ${t.participants.reachedGoal}/${t.participants.total} reached the goal, ${t.participants.reportedFriction} reported friction`,
173
+ `participants: ${t.participants.reachedGoal}/${t.participants.total} recorded goal completions, ${t.participants.reportedFriction} reported friction`,
174
174
  `verdicts: ${Object.entries(t.verdicts).map(([verdict, count]) => `${verdict} ${count}`).join(", ") || "none recorded"}`
175
175
  ];
176
176
  if (result.labs.length > 0) {
package/dist/stats.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"stats.js","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,9 @@ export interface TelemetryProperties {
15
15
  /** One of humanish's OWN error codes (`HUMANISH_*`), never a message. Which failure ends a
16
16
  * first run is the question the funnel exists to answer. */
17
17
  errorCode?: string;
18
+ /** Finite result categories and recorded stop causes; never raw errors or lane details. */
19
+ diagnosticCategory?: string;
20
+ stopCause?: string;
18
21
  }
19
22
  export interface TelemetryState {
20
23
  enabled: boolean;
package/dist/telemetry.js CHANGED
@@ -10,6 +10,7 @@
10
10
  // no persona or mission text, no run ids, no evidence, no key values, no key names. A study's
11
11
  // subject is the adopter's product and often unannounced; leaking a lab id would leak a roadmap.
12
12
  // The allowlist below is the whole vocabulary — anything not on it cannot be sent by construction.
13
+ import { isCuaDiagnosticCategory, isCuaDiagnosticStopCause } from "./cua-diagnostics.js";
13
14
  import { randomUUID } from "node:crypto";
14
15
  import { mkdir, readFile, writeFile } from "node:fs/promises";
15
16
  import { homedir } from "node:os";
@@ -181,6 +182,10 @@ export function buildPayload(args) {
181
182
  properties.exit_code = given.exitCode;
182
183
  if (given.errorCode !== undefined && OWN_ERROR_CODE.test(given.errorCode))
183
184
  properties.error_code = given.errorCode;
185
+ if (isCuaDiagnosticCategory(given.diagnosticCategory))
186
+ properties.diagnostic_category = given.diagnosticCategory;
187
+ if (isCuaDiagnosticStopCause(given.stopCause))
188
+ properties.stop_cause = given.stopCause;
184
189
  return { event: args.event, distinct_id: args.anonymousId, properties };
185
190
  }
186
191
  /** Our own codes only. A provider's or the OS's message is free text and never travels. */
@@ -239,10 +244,19 @@ export function deriveStudyFacts(result) {
239
244
  const error = asRecord(r.error);
240
245
  if (typeof error?.code === "string" && OWN_ERROR_CODE.test(error.code))
241
246
  facts.errorCode = error.code;
247
+ const cuaResult = r.schema === "humanish.cua-lab-result.v2";
248
+ const diagnostics = cuaResult ? asRecord(r.diagnostics) : undefined;
249
+ if (isCuaDiagnosticCategory(diagnostics?.category))
250
+ facts.diagnosticCategory = diagnostics.category;
251
+ if (isCuaDiagnosticStopCause(diagnostics?.stopCause))
252
+ facts.stopCause = diagnostics.stopCause;
242
253
  const session = asRecord(r.session);
243
254
  const laneSummary = asRecord(r.laneSummary);
244
255
  let outcome;
245
- if (laneSummary && typeof laneSummary.total === "number" && typeof laneSummary.passed === "number" && laneSummary.total > 1) {
256
+ if (cuaResult && facts.mode === "dry-run") {
257
+ outcome = r.ok === true ? "contract_proof_only" : "error";
258
+ }
259
+ else if (laneSummary && typeof laneSummary.total === "number" && typeof laneSummary.passed === "number" && laneSummary.total > 1) {
246
260
  outcome = laneSummary.passed === laneSummary.total ? "all_passed"
247
261
  : laneSummary.passed === 0 ? "none_passed"
248
262
  : "some_passed";
@@ -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;AAiCtG,MAAM,UAAU,kBAAkB,CAAC,MAAyB,OAAO,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,EAAE;IACvF,MAAM,QAAQ,GAAG,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;IAC7C,uFAAuF;IACvF,oDAAoD;IACpD,MAAM,UAAU,GAAG,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QACvF,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAsB;IAC1D,MAAM,MAAM,GAAG,CAAC,KAAyB,EAAW,EAAE,CACpD,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC;IAC/G,OAAO,CACL,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;WACrB,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC;QAC1C,4FAA4F;QAC5F,4FAA4F;QAC5F,4FAA4F;QAC5F,8FAA8F;QAC9F,gDAAgD;QAChD,EAAE;QACF,4FAA4F;QAC5F,2FAA2F;QAC3F,8EAA8E;WAC3E,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAC5B,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,cAAqC;IACxF,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,2FAA2F;IAC3F,2FAA2F;IAC3F,2EAA2E;IAC3E,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAGvE,CAAC;YACF,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU;gBAAE,OAAO,IAAI,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;QAC1D,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAAW,EACX,MAAc,EACd,cAAqC;IAErC,OAAO,kBAAkB,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,kBAAkB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAC/F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAyB,OAAO,CAAC,GAAG,EACpC,IAAI,GAAG,OAAO,EAAE;IAEhB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;QAC1D,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK,KAAK;YACjC,WAAW,EAAE,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE;YACvF,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI;SACjC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACtE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAAqB,EACrB,MAAyB,OAAO,CAAC,GAAG,EACpC,IAAI,GAAG,OAAO,EAAE;IAEhB,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3C,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACvE,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,cAAc,CAAC,EAAU;IACvC,IAAI,EAAE,GAAG,KAAK;QAAE,OAAO,KAAK,CAAC;IAC7B,IAAI,EAAE,GAAG,MAAM;QAAE,OAAO,OAAO,CAAC;IAChC,IAAI,EAAE,GAAG,MAAM;QAAE,OAAO,QAAQ,CAAC;IACjC,IAAI,EAAE,GAAG,OAAO;QAAE,OAAO,MAAM,CAAC;IAChC,IAAI,EAAE,GAAG,OAAO;QAAE,OAAO,OAAO,CAAC;IACjC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,SAAS,CAAC,GAAuB;IAC/C,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;AAChD,CAAC;AAQD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAQ5B;IACC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACpC,MAAM,UAAU,GAA8C;QAC5D,uFAAuF;QACvF,yFAAyF;QACzF,0FAA0F;QAC1F,6FAA6F;QAC7F,yEAAyE;QACzE,cAAc,EAAE,IAAI;QACpB,uFAAuF;QACvF,0FAA0F;QAC1F,4FAA4F;QAC5F,iBAAiB;QACjB,uBAAuB,EAAE,KAAK;QAC9B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,EAAE,EAAE,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ;QACrC,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QAC3E,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,SAAS,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG;QAC3D,8FAA8F;QAC9F,qFAAqF;QACrF,0FAA0F;QAC1F,4FAA4F;QAC5F,wFAAwF;QACxF,gBAAgB,EAAE,GAAG,CAAC,0BAA0B,KAAK,SAAS;eACzD,GAAG,CAAC,0BAA0B,KAAK,EAAE;eACrC,GAAG,CAAC,0BAA0B,KAAK,GAAG;KAC5C,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IACpC,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;QAAE,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IACpE,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;QAAE,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IACxD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,UAAU,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IAC3D,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;QAAE,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IACpE,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS;QAAE,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC;IACnF,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QAAE,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC9D,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS;QAAE,UAAU,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IACrD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;QAAE,UAAU,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC;IACxE,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QAAE,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC;IACnH,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC;AAC1E,CAAC;AAED,2FAA2F;AAC3F,MAAM,cAAc,GAAG,4BAA4B,CAAC;AAEpD;;;;GAIG;AACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;IACvB,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ;IACrE,qBAAqB;IACrB,YAAY,EAAE,aAAa,EAAE,aAAa;IAC1C,IAAI,EAAE,OAAO;CACd,CAAC,CAAC;AAEH,MAAM,eAAe,GAA8D;IACjF,aAAa,EAAE,aAAa;IAC5B,qBAAqB,EAAE,cAAc;IACrC,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,cAAc;IAC3B,kBAAkB,EAAE,cAAc;IAClC,kBAAkB,EAAE,MAAM;CAC3B,CAAC;AAEF,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAE,KAAiC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtG,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAe;IAC9C,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3B,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAClB,MAAM,KAAK,GAAwB,EAAE,CAAC;IAEtC,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI;QAAE,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;SACzC,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK;QAAE,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;SAC5C,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;QAAE,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IAExE,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;QACjD,CAAC,CAAC,OAAO,SAAS,EAAE,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE;YAClD,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;gBACnC,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,GAAG,KAAK,SAAS;QAAE,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;IAEvC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;IAErG,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,OAA2B,CAAC;IAChC,IAAI,WAAW,IAAI,OAAO,WAAW,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,WAAW,CAAC,MAAM,KAAK,QAAQ,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QAC5H,OAAO,GAAG,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY;YAC/D,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa;gBAC1C,CAAC,CAAC,aAAa,CAAC;IACpB,CAAC;SAAM,IAAI,OAAO,OAAO,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/C,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3B,CAAC;SAAM,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;IACrB,CAAC;SAAM,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACrD,OAAO,GAAG,OAAO,CAAC;IACpB,CAAC;SAAM,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACrD,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;SACvE,IAAI,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;QAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IAEzF,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAI,KAAK,KAAK,SAAS;YAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IAC/C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,uDAAuD;AACvD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,kGAAkG;IAClG,qFAAqF;IACrF,6DAA6D;IAC7D,qEAAqE;CACtE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAOb;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAyB,EAAE,OAAiB,EAAE;IAChF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC;IACjD,IAAI,OAAO,OAAO,KAAK,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACrE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;IAC1D,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,WAAW,UAAU,EAAE;YACtC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,OAAO,EAAE,UAAU;gBACnB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,CAAC;YACF,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,+DAA+D;IACjE,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ # Run a local app through its state contract
2
+
3
+ This complete library example starts a synthetic loopback HTTP app, reads its
4
+ state with a `CuaExecutor`, sends a greeting through its action endpoint, and
5
+ verifies the resulting Humanish run. It uses a deterministic `CuaProvider` with
6
+ no model calls, API keys, browser, screenshots or E2B resources. It demonstrates
7
+ the integration; it does not test persona behavior or the quality of an app's UI.
8
+
9
+ ## Run from an npm installation
10
+
11
+ Use Node.js 20.3 or later (`AbortSignal.any`), in a new directory:
12
+
13
+ ```bash
14
+ npm init -y
15
+ npm install humanish
16
+ node node_modules/humanish/docs/architecture/examples/state-driven-local-app/runner.mjs
17
+ ```
18
+
19
+ The package includes both [runner.mjs](runner.mjs) and [app.mjs](app.mjs).
20
+ No checkout, TypeScript loader or initialization command is needed. Each
21
+ invocation starts a fresh app and writes a new run under `.humanish/runs/` in
22
+ your current directory. Run the last command again for an independent repeat.
23
+ Add `.humanish/` to your project's `.gitignore` before adapting this example to
24
+ real app data; running the library directly does not create that ignore rule.
25
+
26
+ Expected output includes `goal_satisfied`, `sandboxCreated: false`, zero
27
+ screenshots, a successful `verification`, and a synthetic app receipt with
28
+ `greeted: true` and `messages: 1`. The final cleanup line shows
29
+ `serverClosed: true`; `finally` closes the server even when the run or verification
30
+ fails. The evidence remains on disk.
31
+
32
+ Review the bundle and its sharing grade:
33
+
34
+ ```bash
35
+ npx humanish verify --run latest --json
36
+ npx humanish review --run latest --json
37
+ ```
38
+
39
+ `appState` drives the loop in memory and is not persisted in the actor trace.
40
+ This example separately prints only its own synthetic counters. A successful
41
+ verification describes the evidence bundle, not persona efficacy or human
42
+ task completion. The reported cost basis comes from executing only local code
43
+ and loopback requests; absent model usage is not treated as a billing receipt.
44
+
45
+ ## Adapt the two ports
46
+
47
+ In `runner.mjs`, replace `createAppContractExecutor` with your trusted bridge to
48
+ your app's `getState()` and actions. Here those calls use `GET /state` and
49
+ `POST /chat`; a browser bridge could call `window.app` through `page.evaluate`.
50
+ Map supported actions explicitly and reject unsupported ones. Forward the
51
+ optional execution signal and check it before dispatching an input.
52
+
53
+ Replace the deterministic provider if you want a model to choose actions from
54
+ `request.observation.appState`. Keep `requiresFrame: false` for a state-only
55
+ provider. Your replacement owns its model credentials and costs. The
56
+ `openai-computer-use` actor id selects the registered CUA route; the injected
57
+ `buildProvider` chooses the actual provider, so this example never invokes OpenAI.
58
+
59
+ The runner shows both required discriminant checks: `parseLabConfig` receives
60
+ an object containing `schema: LAB_CONFIG_SCHEMA` and is narrowed on `.ok`;
61
+ `runLab` is narrowed on `backend === "cua"` before inspecting its result.
62
+ Supplying both `buildExecutor` and `buildProvider` selects the library-assisted
63
+ route. It is not a config-only CLI actor or an out-of-tree actor registration API.
64
+
65
+ Both JavaScript files carry JSDoc types against the public `humanish` exports.
66
+ To check an installed copy against its packaged declarations:
67
+
68
+ ```bash
69
+ npm install --save-dev typescript @types/node@20
70
+ npx tsc --allowJs --checkJs --noEmit --strict --skipLibCheck --types node --target ES2022 --module NodeNext --moduleResolution NodeNext node_modules/humanish/docs/architecture/examples/state-driven-local-app/*.mjs
71
+ ```
72
+
73
+ See the [state-driven executor guide](../../state-driven-executor.md) for progress
74
+ projection limits, runtime-only state, unpinned local-app provenance, and the
75
+ fail-closed guards on this route.
@@ -0,0 +1,48 @@
1
+ // @ts-check
2
+ import { once } from "node:events";
3
+ import { createServer } from "node:http";
4
+
5
+ /** A synthetic app with a real loopback HTTP state/action contract. */
6
+ export async function startLocalApp() {
7
+ let greeted = false;
8
+ let messages = 0;
9
+ let stateReads = 0;
10
+ const server = createServer(async (request, response) => {
11
+ if (request.method === "GET" && request.url === "/state") {
12
+ stateReads += 1;
13
+ response.writeHead(200, { "content-type": "application/json" });
14
+ response.end(JSON.stringify({ greeted, messages }));
15
+ } else if (request.method === "POST" && request.url === "/chat") {
16
+ // The demo accepts only a short synthetic message; it stores no raw text.
17
+ let text = "";
18
+ for await (const chunk of request) {
19
+ text += chunk.toString();
20
+ if (text.length > 1024) {
21
+ response.writeHead(413).end();
22
+ return;
23
+ }
24
+ }
25
+ messages += 1;
26
+ if (text.toLowerCase().includes("hello")) greeted = true;
27
+ response.writeHead(204).end();
28
+ } else {
29
+ response.writeHead(404).end();
30
+ }
31
+ });
32
+ server.listen(0, "127.0.0.1");
33
+ await once(server, "listening");
34
+ const address = server.address();
35
+ if (!address || typeof address === "string") throw new Error("No loopback port");
36
+
37
+ return {
38
+ appUrl: `http://127.0.0.1:${address.port}/`,
39
+ // These counters make real HTTP reads and state-changing writes inspectable.
40
+ getReceipt: () => ({ greeted, messages, stateReads, serverClosed: !server.listening }),
41
+ async close() {
42
+ await new Promise((resolve, reject) => {
43
+ server.close((error) => error ? reject(error) : resolve(undefined));
44
+ server.closeAllConnections();
45
+ });
46
+ }
47
+ };
48
+ }
@@ -0,0 +1,104 @@
1
+ // @ts-check
2
+ import { LAB_CONFIG_SCHEMA, parseLabConfig, runLab, stableProgressKey, verifyRun } from "humanish";
3
+ import { startLocalApp } from "./app.mjs";
4
+
5
+ /** @param {string} appUrl @returns {import("humanish").CuaExecutor} */
6
+ function createAppContractExecutor(appUrl) {
7
+ return {
8
+ async observe() {
9
+ const response = await fetch(new URL("state", appUrl), { signal: AbortSignal.timeout(5000) });
10
+ if (!response.ok) throw new Error(`State read failed: HTTP ${response.status}`);
11
+ const state = await response.json();
12
+ if (typeof state?.greeted !== "boolean" || !Number.isInteger(state?.messages)) {
13
+ throw new Error("Unexpected app state");
14
+ }
15
+ const appState = { greeted: state.greeted, messages: state.messages };
16
+ return { stateSignature: stableProgressKey(appState), appState };
17
+ },
18
+ async execute(action, signal) {
19
+ signal?.throwIfAborted();
20
+ if (action.kind !== "type") throw new Error(`Unsupported app action: ${action.kind}`);
21
+ const response = await fetch(new URL("chat", appUrl), {
22
+ method: "POST",
23
+ body: action.text,
24
+ signal: AbortSignal.any([AbortSignal.timeout(5000), ...(signal ? [signal] : [])])
25
+ });
26
+ if (!response.ok) throw new Error(`Chat write failed: HTTP ${response.status}`);
27
+ }
28
+ };
29
+ }
30
+
31
+ // A deterministic rule, not an AI participant: no model SDK, requests or credentials.
32
+ /** @type {import("humanish").CuaProvider} */
33
+ const provider = {
34
+ id: "local-app-deterministic-example",
35
+ version: "1.0.0",
36
+ requiresFrame: false,
37
+ capabilities: {
38
+ headless: true,
39
+ structuredTrace: true,
40
+ lanes: ["computer-use"],
41
+ producesScreenshots: false,
42
+ byoModel: true,
43
+ preGrantableApprovals: false,
44
+ inProcessTools: false,
45
+ license: "open"
46
+ },
47
+ async nextTurn(request, signal) {
48
+ signal.throwIfAborted();
49
+ const greeted = request.observation.appState?.greeted;
50
+ if (typeof greeted !== "boolean") throw new Error("Missing greeted observation");
51
+ return {
52
+ actions: greeted ? [] : [{ kind: "type", text: "hello there" }],
53
+ pendingSafetyChecks: [],
54
+ done: greeted,
55
+ message: greeted ? "The app accepted the greeting." : "Sending a greeting."
56
+ };
57
+ }
58
+ };
59
+
60
+ const app = await startLocalApp();
61
+ try {
62
+ // parseLabConfig accepts a decoded OBJECT, not a YAML string.
63
+ const parsed = parseLabConfig({
64
+ schema: LAB_CONFIG_SCHEMA,
65
+ id: "state-driven-local-app-example",
66
+ title: "Deterministic local-app integration example",
67
+ subject: { source: "local-app", appUrl: app.appUrl },
68
+ // This registry id selects the CUA loop. buildProvider supplies the actual provider.
69
+ actors: [{ type: "openai-computer-use", persona: "pixel-pat", mission: "Greet the app." }],
70
+ scenario: { mode: "live" },
71
+ execution: { timeoutMs: 15_000 }
72
+ });
73
+ if (!parsed.ok) throw new Error(parsed.error.message);
74
+ const outcome = await runLab(parsed.config, {
75
+ cwd: process.cwd(),
76
+ dryRun: false,
77
+ cuaHooks: {
78
+ buildExecutor: async ({ appUrl }) => createAppContractExecutor(appUrl),
79
+ buildProvider: async () => provider
80
+ }
81
+ });
82
+ if (outcome.backend !== "cua") throw new Error(`Unexpected backend: ${outcome.backend}`);
83
+ const { result } = outcome;
84
+ const verified = await verifyRun(process.cwd(), result.runId);
85
+ console.log(JSON.stringify({
86
+ runId: result.runId,
87
+ ok: result.ok,
88
+ completionReason: result.session?.completionReason,
89
+ provider: provider.id,
90
+ sandboxCreated: result.sandbox !== undefined,
91
+ screenshots: result.session?.screenshots,
92
+ verification: verified,
93
+ app: app.getReceipt(),
94
+ // A mechanism statement, not an inference from missing provider usage/rates.
95
+ costBasis: "No model calls or hosted resources; only this process and loopback HTTP."
96
+ }, null, 2));
97
+ if (!result.ok || !verified.ok || result.session?.completionReason !== "goal_satisfied"
98
+ || result.sandbox !== undefined || !app.getReceipt().greeted) {
99
+ throw new Error(result.error?.message ?? "Local-app example did not complete and verify");
100
+ }
101
+ } finally {
102
+ await app.close();
103
+ console.log(JSON.stringify({ cleanup: app.getReceipt() }));
104
+ }
@@ -52,8 +52,9 @@ wait and does not cache a previous action's position.
52
52
  `redaction.screenshots` resolves to `"n/a"`. No fabricated `Buffer.alloc(0)`
53
53
  ever reaches disk. (A vision executor still returns a frame, exactly as before.)
54
54
  - **`stateSignature` is still required.** Derive it from your own state — e.g.
55
- `JSON.stringify({ route, turn, modal })`. It is the canonical fallback progress
56
- key when `appState` is absent. It is never written to the trace as text.
55
+ `stableProgressKey({ route, turn, modal })` (exported from `humanish`). It is the
56
+ canonical fallback progress key when `appState` is absent. It is never written
57
+ to the trace as text.
57
58
  - **`appState` is the preferred progress input.** When present, the loop's
58
59
  friction / no-progress detection keys off a deterministic, sorted-key,
59
60
  depth/length-capped projection of it (`stableProgressKey`) rather than the
@@ -168,33 +169,25 @@ from your own state, pair it with a non-vision `CuaProvider`, and call
168
169
 
169
170
  ### 2. `runLab` + `buildExecutor` / `buildProvider` (keeps the composition)
170
171
 
171
- The supported library path. It keeps personas, the Observer, the evidence
172
- bundle, redaction, and the friction loop, while skipping E2B entirely:
172
+ The supported library path keeps personas, the Observer, the evidence bundle,
173
+ redaction, and the friction loop, while skipping E2B entirely. Start with the
174
+ [complete runnable example](examples/state-driven-local-app/README.md), which
175
+ ships in the npm package:
173
176
 
174
- ```ts
175
- import { runLab, parseLabConfig, type CuaExecutor, type CuaProvider } from "humanish";
176
-
177
- // local-app YAML (shareable; fails closed without hooks):
178
- // schema: humanish.lab.v2
179
- // id: downstream-local-app-state
180
- // subject: { source: local-app, appUrl: http://localhost:5173 }
181
- // actors: [{ type: openai-computer-use, persona: curious-tester, mission: "…" }]
182
- // scenario: { mode: live }
183
- const parsed = parseLabConfig(yaml);
184
- if (!parsed.ok) throw new Error(parsed.error.message);
185
-
186
- const outcome = await runLab(parsed.config, {
187
- cwd: process.cwd(),
188
- dryRun: false,
189
- cuaHooks: {
190
- buildExecutor: async ({ appUrl }) => createAppContractExecutor(bridge, appUrl),
191
- buildProvider: async () => createStateBrain(),
192
- },
193
- });
194
- // outcome.backend === "cua"; outcome.result.sandbox === undefined (NO E2B); the
195
- // trace's provider id is the injected brain's id.
177
+ ```bash
178
+ npm install humanish
179
+ node node_modules/humanish/docs/architecture/examples/state-driven-local-app/runner.mjs
196
180
  ```
197
181
 
182
+ The example includes a real loopback app, HTTP state/action bridge, full config
183
+ object (`schema: LAB_CONFIG_SCHEMA`), deterministic non-vision provider,
184
+ `stableProgressKey`, `runLab`, verification, a printed report and `finally`
185
+ cleanup. It makes no model calls and does not demonstrate persona efficacy.
186
+ `parseLabConfig` accepts a decoded object, not a YAML string; narrow its result
187
+ on `.ok`, then narrow `runLab`'s result on `backend === "cua"` before accessing
188
+ the CUA result. The example defines all helpers rather than requiring a consumer
189
+ to reconstruct them.
190
+
198
191
  When `cuaHooks.buildExecutor` is set, `runCuaActorLab` takes a branch that NEVER
199
192
  loads the E2B module, creates a sandbox, runs `prepareDesktop`, provisions a
200
193
  clone, opens a browser, or starts a stream. `sandboxId`/`streamUrl` stay
@@ -0,0 +1,54 @@
1
+ # Adapter admission limits
2
+
3
+ Library callers can throw `CuaAdmissionLimitError` from a custom `CuaProvider`
4
+ or the `fetchFn` supplied to `createOpenAiResponsesProvider` when a configured
5
+ local control limit refuses a request **before provider dispatch**:
6
+
7
+ ```ts
8
+ import { CuaAdmissionLimitError, createOpenAiResponsesProvider } from "humanish";
9
+
10
+ const provider = createOpenAiResponsesProvider({
11
+ apiKey,
12
+ fetchFn: async (url, init) => {
13
+ if (localLimitReached()) {
14
+ await recordLocalAdmissionRefusal();
15
+ throw new CuaAdmissionLimitError();
16
+ }
17
+ return transport(url, init);
18
+ }
19
+ });
20
+ ```
21
+
22
+ The example's admission check, local receipt and transport belong to the caller.
23
+ The error accepts no message or payload. Import it from the same Humanish
24
+ installation as the provider and loop: a plain error with the same name or text
25
+ does not activate the contract. Do not use it for invalid configuration, a
26
+ provider rejection, or an already dispatched request with unknown outcome or
27
+ usage. An unknown prior request stays unknown even if a later call is refused.
28
+
29
+ A stalled interaction or an OpenAI transport retry may have consumed additional
30
+ tokens without reporting usage. The trace then retains
31
+ `interactionUsageIncomplete: true`; its cost summary keeps the known token
32
+ estimate and adds an unmeasured `interaction_usage_unreported` line. A later
33
+ successful retry or local refusal does not remove that uncertainty. Custom
34
+ providers can expose a latched `interactionUsageIncomplete` boolean for hidden
35
+ interactive attempts. Absence of the field does not attest complete billing.
36
+
37
+ The OpenAI provider does not retry this explicit refusal. The CUA loop records
38
+ `incomplete`, `budget_reached` and `stopCause: adapter_limit`, with a fixed
39
+ notice. It does not record another successful turn, usage, action or closing
40
+ request. Previous actions, captures, usage and observed task outcomes remain
41
+ available for review. Observer labels the ending “adapter admission limit.”
42
+ Older generic error recordings remain unchanged.
43
+
44
+ If a structured task outcome already ended interaction and the optional closing
45
+ report is refused before dispatch, that task outcome remains intact. The report
46
+ is `skipped` and `debrief.usageReported` is absent, because this declaration says
47
+ no provider request was sent. This does not invent zero usage or settle any
48
+ earlier unknown cost.
49
+
50
+ Humanish records the adapter's declaration; it does not independently attest
51
+ transport behavior or provider billing. Retain local limit/admission receipts
52
+ when auditing those facts. Keep credentials, request bodies and provider URLs
53
+ out of such receipts. The contract does not add a manifest request-count cap,
54
+ increase an allowance, or turn a safety limit into participant abandonment.
@@ -88,7 +88,7 @@ responses, but durable run bundles use the public-safe `[target-cwd]` marker.
88
88
  An actor trace may include `stopCause` alongside its unchanged `status`,
89
89
  `completionReason` and verbatim `reason`. Computer-use sessions distinguish
90
90
  `provider_output_limit`, `provider_token_limit`, `time_limit`, `spend_limit`,
91
- `study_spend_limit`, `provider_incomplete`, `provider_status`, and
91
+ `study_spend_limit`, `adapter_limit`, `provider_incomplete`, `provider_status`, and
92
92
  `harness_aborted`. Absence means the route or recording did not retain this
93
93
  precise field; it does not mean the participant finished.
94
94
 
@@ -100,6 +100,13 @@ Participant prose is never used to infer the cause. Study summaries retain the
100
100
  recorded outcome counts while explaining a cause only when the matching traces
101
101
  cover that outcome's count.
102
102
 
103
+ `adapter_limit` records a library adapter's explicit declaration that a configured
104
+ local control limit refused the next request before provider dispatch. It ends
105
+ the interactive session as `incomplete` / `budget_reached`; earlier actions,
106
+ usage and task observations remain intact. It is not independent transport or
107
+ billing attestation, and generic historical errors are not reclassified. See
108
+ [the adapter admission contract](adapter-admission.md).
109
+
103
110
  ## Participant Assignment
104
111
 
105
112
  `streams[].assignment` optionally records the original participant-facing assignment:
@@ -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.87.0`; it is not an exhaustive inventory of command/result envelopes. Exported types,
6
+ `0.88.1`; 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.
@@ -210,7 +210,11 @@ A lab is a composition over code primitives, not a hardcoded kind:
210
210
  template actually used is recorded in the run bundle as `desktopTemplate`
211
211
  (public-safe — a template name is not a secret). Inert (warned) on every route
212
212
  that creates no desktop, incl. the in-process `local-app` cua route and the
213
- meta route — never silently ignored (invariant 6);
213
+ meta route — never silently ignored (invariant 6). Custom images need the
214
+ Desktop SDK's `xdotool` input support and `xclip` or `xsel` on `PATH` for
215
+ clipboard recovery when direct typing fails. If both clipboard utilities are
216
+ absent, recovery fails with `clipboard-utility-missing`; a dry-run does not
217
+ inspect the image's installed tools;
214
218
  - `execution.desktop.browser` (e2b-desktop computer-use/fan-out routes, plus
215
219
  sequential and concurrent shared-world actor seats): optional browser family
216
220
  preference: `default`, `chrome`, `chromium`, or `firefox`. Absent/default
@@ -1228,6 +1232,16 @@ the stream shape, the meaningful-use rubric, and hard-failure rules.
1228
1232
  Review summarizes whether evidence supports the claim. It does not replace
1229
1233
  verification or maintainer acceptance.
1230
1234
 
1235
+ `verdict` is the run gate result. `participants.reachedGoal` retains the count of
1236
+ recorded successful sessions; it is not an independent adjudication of their
1237
+ claims. Computer-use review and Observer labels distinguish a participant's
1238
+ reported completion from a recorded `stopWhen` or dwell condition match. A
1239
+ condition match establishes that condition, not every aspect of the mission.
1240
+ Missing or malformed completion evidence is labeled unavailable. Other actor
1241
+ routes retain their own completion semantics. Re-reading a historical review
1242
+ refreshes these labels without rewriting the original bundle or actor trace.
1243
+ Share-safety verification does not establish task success.
1244
+
1231
1245
  Core-owned fields:
1232
1246
 
1233
1247
  - `schema`
@@ -1,9 +1,9 @@
1
1
  # Current Goals
2
2
 
3
- Status date: 2026-09-10. Published baseline: `0.87.0`.
3
+ Status date: 2026-09-12. Published baseline: `0.88.1`.
4
4
 
5
5
  This page guides work on current merged source. Published behavior is described
6
- in the [release notes](../release/0.87.0-participant-endings-and-phone-review.md).
6
+ in the [release notes](../release/0.88.1-completion-evidence-and-local-app.md).
7
7
  The [September 9 history](https://github.com/danielgwilson/humanish/blob/main/docs/goals/current-history-2026-09-09.md)
8
8
  preserves the former status log; its queues do not supersede this page.
9
9
 
@@ -88,7 +88,7 @@ requires decision-equivalent retained evidence and a real deletion branch.
88
88
  No first-party deletion branch has met that gate. Public demonstrations do not
89
89
  substitute for it.
90
90
 
91
- ## Current Program Truth (source `0.87.0`)
91
+ ## Current Program Truth (source `0.88.1`)
92
92
 
93
93
  | Surface | Available in merged source | Remaining boundary |
94
94
  | --- | --- | --- |
@@ -98,7 +98,7 @@ substitute for it.
98
98
  | Task protocol | Hidden criteria and per-task outcomes on supported per-lane CUA paths, including local-agent and desktop-cli | Shared-world, terminal-product, scripted and synthetic routes reject `tasks` before execution |
99
99
  | Shared state | Sequential and concurrent single-origin shared-world studies with retained evidence | Multi-origin implementation remains gated; concurrent state change does not establish per-action causation |
100
100
  | Observer | Live/recorded views, participant assignments, action-specific links, saved moments, zoom, comparison and phone-width review | Sparse captures cannot prove every action's effect; visual comparison alone is not a controlled experiment |
101
- | Review and feedback | Verification grades, feedback drafts, portable HTML and redacted bundle derivatives | Sharing requires the appropriate grade; generated findings still need adjudication |
101
+ | Review and feedback | Verification grades, feedback drafts, portable HTML, redacted bundle derivatives and computer-use completion-source labels | Sharing requires the appropriate grade; participant reports and condition matches still need task adjudication |
102
102
  | TUI and serving | Detached starts, run stopping, reclamation, Observer attachment, loopback serving and run library | Stopping a process does not itself prove sandbox cleanup; TUI views over CLI `stats`/`export` remain follow-ups |
103
103
  | Off-app communication | In-sandbox email/SMS catch and digest-only thread evidence | This does not establish real-provider delivery |
104
104
  | Mobile and media | Hosted viewport/emulation, desktop geometry checks, bounded dwell and declared camera feed | Physical-device and touch fidelity remain unproven; unsupported microphone declarations are rejected |
@@ -108,6 +108,11 @@ Use the [task support matrix](../architecture/task-protocol-support.md),
108
108
  and [CLI reference](https://humanish.dev/docs/cli) when choosing a concrete path.
109
109
  Source behavior and required tests outrank stale status prose.
110
110
 
111
+ The library-assisted `local-app` route now includes a
112
+ [runnable npm example](../architecture/examples/state-driven-local-app/README.md).
113
+ Its deterministic provider demonstrates the integration with a real loopback
114
+ app; it does not establish persona effectiveness or independent adoption.
115
+
111
116
  ## Gates And Deferred Work
112
117
 
113
118
  - Live OSS meta-lab execution remains disabled until repository-derived
@@ -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.87.0` (2026-09-10). 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
5
+ Package/source version in this tree: `0.88.1` (2026-09-12). 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
@@ -47,6 +47,16 @@ If a change does not improve one of those loops, it probably belongs elsewhere.
47
47
 
48
48
  ## Current State
49
49
 
50
+ The [0.88.1 release note](../release/0.88.1-completion-evidence-and-local-app.md)
51
+ describes computer-use labels that distinguish participant reports from
52
+ recorded condition matches. It also covers the complete npm local-app example
53
+ and public `stableProgressKey` export, plus the clipboard fallback correction
54
+ for inherited output pipes.
55
+
56
+ The [0.88.0 release note](../release/0.88.0-study-diagnostics.md) describes
57
+ computer-use CLI diagnostics, explicit local admission limits and retained
58
+ uncertainty when an earlier provider request did not report usage.
59
+
50
60
  The [0.87.0 release note](../release/0.87.0-participant-endings-and-phone-review.md)
51
61
  describes recorded interruption causes, phone playback controls beside fitted
52
62
  captures, and credential and evidence-sharing guidance by execution route.