humanish 0.90.0 → 0.91.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +11 -7
  2. package/dist/automatic-analysis-completion.d.ts +4 -4
  3. package/dist/automatic-analysis-completion.js +10 -8
  4. package/dist/automatic-analysis-completion.js.map +1 -1
  5. package/dist/automatic-analysis-config.d.ts +9 -1
  6. package/dist/automatic-analysis-config.js +15 -2
  7. package/dist/automatic-analysis-config.js.map +1 -1
  8. package/dist/automatic-study-analysis.d.ts +5 -2
  9. package/dist/automatic-study-analysis.js +34 -15
  10. package/dist/automatic-study-analysis.js.map +1 -1
  11. package/dist/concurrent-shared-world-lab.js +1 -1
  12. package/dist/concurrent-shared-world-lab.js.map +1 -1
  13. package/dist/cua-actor-lab.js +1 -1
  14. package/dist/cua-actor-lab.js.map +1 -1
  15. package/dist/e2b-terminal-lab.js +6 -1
  16. package/dist/e2b-terminal-lab.js.map +1 -1
  17. package/dist/index.d.ts +3 -2
  18. package/dist/index.js +1 -0
  19. package/dist/index.js.map +1 -1
  20. package/dist/lab-config.d.ts +2 -2
  21. package/dist/lab-config.js +2 -2
  22. package/dist/lab-config.js.map +1 -1
  23. package/dist/lab-preflight.d.ts +3 -0
  24. package/dist/lab-preflight.js +3 -0
  25. package/dist/lab-preflight.js.map +1 -1
  26. package/dist/lab-summary.js +6 -4
  27. package/dist/lab-summary.js.map +1 -1
  28. package/dist/observer-app.html +8 -8
  29. package/dist/program.js +7 -1
  30. package/dist/program.js.map +1 -1
  31. package/dist/scripted-browser-lab.js +5 -5
  32. package/dist/scripted-browser-lab.js.map +1 -1
  33. package/dist/shared-world-lab.js +1 -1
  34. package/dist/shared-world-lab.js.map +1 -1
  35. package/dist/study-analysis-engine.d.ts +1 -1
  36. package/dist/study-analysis-engine.js +9 -3
  37. package/dist/study-analysis-engine.js.map +1 -1
  38. package/dist/study-analysis-evidence.js +233 -47
  39. package/dist/study-analysis-evidence.js.map +1 -1
  40. package/dist/study-analysis-job.d.ts +1 -0
  41. package/dist/study-analysis-job.js +1 -1
  42. package/dist/study-analysis-job.js.map +1 -1
  43. package/dist/study-analysis-validation.d.ts +133 -0
  44. package/dist/study-analysis-validation.js +51 -22
  45. package/dist/study-analysis-validation.js.map +1 -1
  46. package/dist/study-analysis.d.ts +8 -0
  47. package/dist/terminal-participant-activity.d.ts +6 -0
  48. package/dist/terminal-participant-activity.js +34 -0
  49. package/dist/terminal-participant-activity.js.map +1 -0
  50. package/dist/tui-app.js +1 -1
  51. package/docs/architecture/examples/state-driven-local-app/README.md +5 -0
  52. package/docs/architecture/examples/state-driven-local-app/runner.mjs +1 -0
  53. package/docs/contracts/schemas.md +1 -1
  54. package/docs/contracts/study-analysis.md +31 -5
  55. package/docs/goals/current.md +4 -4
  56. package/docs/principles/invariants-and-defaults.md +7 -3
  57. package/docs/product/automatic-analysis.md +25 -7
  58. package/docs/ramp/README.md +7 -2
  59. package/docs/release/0.91.0-analysis-quality-and-defaults.md +33 -0
  60. package/package.json +1 -1
package/dist/program.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { automaticAnalysisBudget, formatAutomaticAnalysisBudget } from "./automatic-analysis-config.js";
1
2
  import { automaticAnalysisSucceeded } from "./automatic-analysis-completion.js";
2
3
  import { formatCuaDiagnostics, formatCuaStopCause } from "./cua-diagnostics.js";
3
4
  import { existsSync, readFileSync } from "node:fs";
@@ -966,7 +967,7 @@ function analysisSelection(options, command) {
966
967
  function registerAnalyzeCommand(parent, io) {
967
968
  const analyze = parent.command("analyze")
968
969
  .enablePositionalOptions()
969
- .description("Analyze retained participant evidence into versioned findings. Explicit opt-in: sends selected text and captures to OpenAI. Opening Observer never starts analysis.")
970
+ .description("Analyze retained participant evidence into versioned findings. This request sends selected text and captures to OpenAI. Opening Observer never starts analysis.")
970
971
  .summary("Generate evidence-linked study findings.")
971
972
  .option("--run <id>", "Completed run id or latest pointer.", "latest")
972
973
  .option("--cwd <path>", "Target project directory.", ".")
@@ -2420,6 +2421,10 @@ async function runLabCommand(args) {
2420
2421
  // visibly so the invoker (who may not be the manifest author) knows executable code just ran.
2421
2422
  args.io.writeErr(`warning: review scorer ${scorer.provenance.ref} (${scorer.provenance.source}) is executable host code loaded and run in-process — review it as code, not config.\n`);
2422
2423
  }
2424
+ const analysisBudget = automaticAnalysisBudget(config.review?.analysis, backend);
2425
+ if (analysisBudget && resolveLabDryRun(config, args.options.dryRun, true) === false) {
2426
+ args.io.writeErr(`${formatAutomaticAnalysisBudget(analysisBudget)}\n`);
2427
+ }
2423
2428
  switch (backend) {
2424
2429
  case "synthetic":
2425
2430
  await runSyntheticBackend({ ...args, config, labProvenance: lab });
@@ -3478,6 +3483,7 @@ function formatLabPreflightHuman(result) {
3478
3483
  `targets: ${checkedTargets.length ? `${reachableTargets.length}/${checkedTargets.length} reachable` : `${result.targets.length} declared, not checked`}`,
3479
3484
  ...(blockedTargets.length ? [`blocked-targets: ${blockedTargets.length}`] : []),
3480
3485
  `spend: ${result.spend.e2bDesktop ? "one e2b desktop, no model calls" : "none"}`,
3486
+ ...(result.analysis ? [formatAutomaticAnalysisBudget(result.analysis)] : []),
3481
3487
  ...(result.sandbox.created
3482
3488
  ? [`sandbox: created=yes killed=${result.sandbox.killed === true ? "yes" : "no"}`]
3483
3489
  : []),