humanish 0.15.2 → 0.16.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 (59) hide show
  1. package/README.md +15 -7
  2. package/dist/actor-contract.d.ts +2 -3
  3. package/dist/actor-contract.js +6 -7
  4. package/dist/actor-contract.js.map +1 -1
  5. package/dist/actor-registry.d.ts +4 -4
  6. package/dist/actor-registry.js +8 -7
  7. package/dist/actor-registry.js.map +1 -1
  8. package/dist/artifact-reference.js +1 -1
  9. package/dist/artifact-reference.js.map +1 -1
  10. package/dist/concurrent-shared-world-lab.js +24 -11
  11. package/dist/concurrent-shared-world-lab.js.map +1 -1
  12. package/dist/cua-actor-lab.d.ts +101 -4
  13. package/dist/cua-actor-lab.js +456 -77
  14. package/dist/cua-actor-lab.js.map +1 -1
  15. package/dist/device-presets.d.ts +4 -4
  16. package/dist/device-presets.js +5 -5
  17. package/dist/device-presets.js.map +1 -1
  18. package/dist/e2b-terminal-lab.d.ts +18 -20
  19. package/dist/e2b-terminal-lab.js +28 -28
  20. package/dist/e2b-terminal-lab.js.map +1 -1
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/lab-config.d.ts +27 -28
  24. package/dist/lab-config.js +6 -6
  25. package/dist/lab-config.js.map +1 -1
  26. package/dist/lab-engine.d.ts +1 -1
  27. package/dist/lab-engine.js +8 -10
  28. package/dist/lab-engine.js.map +1 -1
  29. package/dist/observer-assets.js +92 -15
  30. package/dist/observer-assets.js.map +1 -1
  31. package/dist/oss-meta-lab.js +2 -4
  32. package/dist/oss-meta-lab.js.map +1 -1
  33. package/dist/program.js +1 -1
  34. package/dist/program.js.map +1 -1
  35. package/dist/run.d.ts +38 -0
  36. package/dist/run.js +71 -1
  37. package/dist/run.js.map +1 -1
  38. package/dist/shared-world-lab.d.ts +20 -1
  39. package/dist/shared-world-lab.js +197 -23
  40. package/dist/shared-world-lab.js.map +1 -1
  41. package/dist/terminal-agent-actor.d.ts +12 -7
  42. package/dist/terminal-agent-actor.js +18 -16
  43. package/dist/terminal-agent-actor.js.map +1 -1
  44. package/docs/architecture/actor-contract.md +32 -21
  45. package/docs/architecture/observer.md +15 -9
  46. package/docs/architecture/state-driven-executor.md +3 -3
  47. package/docs/architecture/terminal-product-lane.md +29 -25
  48. package/docs/assets/humanish-drawdb-hero.png +0 -0
  49. package/docs/contracts/adapter-fixtures.md +4 -2
  50. package/docs/contracts/core.md +9 -4
  51. package/docs/contracts/feedback.md +4 -2
  52. package/docs/contracts/policy.md +5 -3
  53. package/docs/contracts/run-bundle.md +24 -3
  54. package/docs/contracts/schemas.md +34 -23
  55. package/docs/goals/current.md +69 -20
  56. package/docs/ramp/README.md +32 -13
  57. package/docs/release/open-source-readiness.md +5 -4
  58. package/docs/release/public-readiness-standard.md +6 -1
  59. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  # Current Goals
2
2
 
3
- Status date: 2026-07-14 (rev 14)
3
+ Status date: 2026-07-14 (rev 15)
4
4
 
5
5
  This page is the current public-safe operating goal for `humanish`. Keep it
6
6
  short enough to reread before a coding session and concrete enough that future
@@ -16,7 +16,39 @@ Humanish should be the open-source CLI that lets a maintainer ask:
16
16
  The answer should be observable, verifiable, public-safe, and easy to turn into
17
17
  actionable feedback.
18
18
 
19
- ## Current Safety State (`0.15.1`)
19
+ ## Current Program Truth (source `0.16.0`)
20
+
21
+ The package source and repository implementation in this tree agree on these
22
+ points:
23
+
24
+ The immutable 2026-06-10 proof-roadmap packet is paired with a
25
+ [current implementation checkpoint](https://github.com/danielgwilson/humanish/blob/main/docs/goals/proof-roadmap/README.md).
26
+
27
+ | Surface | Shipped | Still unproven or unbuilt |
28
+ | --- | --- | --- |
29
+ | Actor execution | Six first-party registry descriptors; computer-use, scripted-browser, and terminal-product dispatch paths | Public out-of-tree actor registration and conformance certification |
30
+ | Persona scale | Bounded per-lane-world fan-out, including differentiated lanes and roster expansion; kept deterministic and live receipts | A completed first-party deletion branch that replaces a bespoke generic harness |
31
+ | Shared state | Sequential and concurrent single-origin shared-world execution; sequential has deterministic proof, concurrent has deterministic and kept live proof | Multi-origin shared-world runtime/schema support; real-adopter deletion proof |
32
+ | Subject sources/routes | Six declared sources: `this-repo`, `clone`, `app-url`, `local-app`, `terminal-product`, and `local-tree`; support is route-specific and `this-repo` remains dry-run-only | One centralized run/resource lifecycle boundary across all routes |
33
+ | Public proof | Version-pinned synthetic Observer sample shipped in the npm payload | A legible Observer hero from one verified real public-application run |
34
+ | OSS meta-lab | Dry-run contract and separate disposable smoke harness | Live meta-lab execution; disabled until repository instructions and actor credentials have an isolated boundary |
35
+
36
+ Capability proof and adopter replacement are different gates. A deterministic
37
+ test or kept live receipt proves that a Humanish mechanism works. The depth-axis
38
+ goal is met only when an adopter produces decision-equivalent evidence on a
39
+ green branch that deletes its bespoke generic harness and retains at most a
40
+ thin product-specific extension. No first-party deletion branch had met that
41
+ bar as of this status date.
42
+
43
+ Multi-origin shared-world has a ratified core-design direction, but the
44
+ implementation gate is still closed. A real adopter must first show a concrete
45
+ cross-origin need that the single-origin path or a downstream facade cannot
46
+ serve cleanly; the implementation packet then requires maintainer review before
47
+ build work starts. The current amendment is
48
+ [`docs/goals/multi-origin-shared-world/README.md`](https://github.com/danielgwilson/humanish/blob/main/docs/goals/multi-origin-shared-world/README.md);
49
+ the dated design packet remains unchanged.
50
+
51
+ ## Current Safety Boundary
20
52
 
21
53
  - Managed run, Observer, feedback, lab, actor-output, and source-archive paths
22
54
  bind to validated physical filesystem identities and fail closed on unsafe
@@ -141,9 +173,9 @@ Minimum acceptance:
141
173
  re-sequences the proof roadmap: a redaction redesign and an overridable
142
174
  public-target policy are prerequisites for any decision-grade depth evidence, so
143
175
  they land BEFORE the consumer-web-app / agent-skill depth phases. `done`
144
- - Device presets (0.6.1): viewport/device is a real dimension, with LITERAL values copied
176
+ - Device presets (0.6.1): screen/device is a real dimension, with LITERAL values copied
145
177
  from the in-house sims (mobile 414×896 … wide 1920×1080; default `desktop` 1440×950) —
146
- not guessed. `execution.desktop.device` picks the per-run viewport; the guessed 1280×800
178
+ not guessed. `execution.desktop.device` picks the per-run hosted screen; the guessed 1280×800
147
179
  is gone. Honest fidelity: on the E2B route only width/height render (real mobile *layout*)
148
180
  + the model is told its device, matching the sims' organic lanes; true touch/DPR/UA needs
149
181
  the CDP actor. Per-*persona* device (N×devices) rides fan-out. `done`
@@ -241,8 +273,9 @@ ONE shared world.
241
273
  host-side commit/dirty when the packed root is a git work tree; local-tree has no repo/publicRepo
242
274
  field. The N actor desktops on the concurrent route still drive the harness-minted getHost URL
243
275
  exactly as before; only the subject's provisioning + provenance source changed. The multi-origin
244
- design (`docs/goals/multi-origin-shared-world/design.md`) remains a separate, still-held
245
- downstream slice. `next patch`
276
+ design (`docs/goals/multi-origin-shared-world/design.md`) remains a separate,
277
+ ratified but implementation-gated downstream slice. It is not part of
278
+ `0.15.3`.
246
279
 
247
280
  Adopter-driven engine features (0.11.0; surfaced by real bespoke-sim migrations):
248
281
 
@@ -302,7 +335,7 @@ Evidence hygiene and readback polish (0.12.16):
302
335
  (`local_only`), while feedback draft/issue commands require `share_ready` and fail
303
336
  closed with structured reasons. `done`
304
337
 
305
- Attached CUA live Observer (next patch):
338
+ Attached CUA live Observer (shipped):
306
339
 
307
340
  - Plain computer-use labs now honor the same attached `onObserverReady` lifecycle as shared-world
308
341
  labs: a live CUA run writes an in-progress bundle before actor sessions complete, loopback
@@ -356,7 +389,7 @@ Minimum acceptance:
356
389
  Make the maintainer `oss` lab report nested lane health back into the
357
390
  top-level Observer instead of relying on a human watching the desktops.
358
391
 
359
- The `0.15.1` safety state above governs this lane. The completed bullets below
392
+ The current safety boundary above governs this lane. The completed bullets below
360
393
  record prior capability and evidence shape; they do not mean the live
361
394
  entrypoint is currently enabled.
362
395
 
@@ -414,15 +447,31 @@ Stop and correct course if:
414
447
 
415
448
  ## Best Next Work
416
449
 
417
- The next most useful engineering slice is repeated agent dogfood against real
418
- apps and tools, while preserving the public-safety boundary:
419
-
420
- - public/open-source fixture proof for publishable examples;
421
- - private maintainer dogfood through the repo-only public-safe packet, which is
422
- intentionally not part of the npm payload, at
423
- [`docs/goals/private-repo-agent-dogfood/goal.md`](https://github.com/danielgwilson/humanish/blob/main/docs/goals/private-repo-agent-dogfood/goal.md);
424
- - then richer provider-backed app-specific browser persona manifests.
425
-
426
- That sequence keeps the package honest: first prove a new maintainer or agent
427
- can start, then prove Humanish can observe real product behavior, then use the
428
- failures to improve the harness.
450
+ After the public-truth reset, take one bounded public-proof side task: capture a
451
+ verified, legible four-lane Observer from a commit-pinned public application.
452
+ That run treats the application as a study subject, not a Humanish adopter, and
453
+ must not imply endorsement. Stop and return to this order if the capture would
454
+ require an Observer redesign or broader architecture work.
455
+
456
+ The next engineering proof slice remains the first depth-axis deletion branch:
457
+ run an existing first-party consumer web-app study through current Humanish,
458
+ compare the decision outputs, and delete the adopter's bespoke generic harness
459
+ while retaining only a thin product extension. The public-application capture
460
+ does not satisfy this depth gate.
461
+
462
+ After that checkpoint, re-evaluate this order rather than treating it as an
463
+ automatic queue:
464
+
465
+ 1. centralize run identity, history, and provider ownership behind tested
466
+ `RunStore` and `ResourceLease` interfaces, and make generated first-run
467
+ source load-bearing or explicitly optional;
468
+ 2. complete the agent-skill deletion branch and use it to force the real
469
+ external extension budget;
470
+ 3. implement multi-origin shared-world only if its adopter gate opens and the
471
+ ratified packet passes maintainer review;
472
+ 4. complete the multi-app adopter deletion branch;
473
+ 5. establish the external stratified panel.
474
+
475
+ The existing version-pinned README hero is a synthetic technical sample. It
476
+ proves package/Observer rendering and public-safe asset delivery, not
477
+ real-application evidence.
@@ -2,9 +2,10 @@
2
2
 
3
3
  Status: public-safe contributor and agent ramp.
4
4
 
5
- Current safety state: `0.15.1` (2026-07-14). Managed run and output paths bind
6
- to validated physical filesystem identities. Stored provider IDs are evidence,
7
- not cleanup authority. The bundled OSS meta-lab is dry-run only until
5
+ Package/source version in this tree: `0.16.0` (2026-08-01). The containment boundary introduced in
6
+ `0.15.1` remains in force: managed run and output paths bind to validated
7
+ physical filesystem identities, and stored provider IDs are evidence, not
8
+ cleanup authority. The bundled OSS meta-lab is dry-run only until
8
9
  repository-derived instructions have an isolated credential boundary.
9
10
 
10
11
  Use this page when you are starting cold on `humanish`. It is meant to be
@@ -69,13 +70,22 @@ Implemented:
69
70
  - first-class lab manifest resolution through `humanish/labs/*.yaml` and
70
71
  ignored `.humanish/labs/*.yaml` overlays — `humanish.lab.v2` compositions
71
72
  (`src/lab-config.ts`), one engine, no hardcoded lab kinds;
72
- - a pluggable actor registry with four registered actors
73
- (`src/actor-registry.ts`); on the computer-use routes `actors[0].type` is a
74
- real dispatch key;
73
+ - a first-party actor registry with six registered descriptors
74
+ (`src/actor-registry.ts`); `actors[0].type` is a real dispatch key on the
75
+ computer-use, scripted-browser, and terminal-product routes;
75
76
  - a computer-use route and clone subject provider: `subject.source: app-url`
76
77
  drives a lab-owner loopback app in a hosted desktop, and `subject.source:
77
78
  clone` + `serve` clones, installs, and serves a real app in-sandbox from
78
79
  config before the actor drives it (`src/cua-actor-lab.ts`);
80
+ - six declared subject sources: `this-repo` (dry-run-only), `clone`, `app-url`,
81
+ `local-app` (library-assisted, in-process, no desktop), `terminal-product`,
82
+ and `local-tree`; each route fails closed on unsupported combinations;
83
+ - bounded per-lane-world fan-out (`actors[0].count`, `lanes[]`, or `roster[]`),
84
+ backed by deterministic and kept live proof;
85
+ - sequential/concurrent single-origin shared-world execution: sequential has
86
+ deterministic proof, while concurrent has deterministic and kept live proof;
87
+ - `subject.source: local-tree`, which packages one selected working tree with a
88
+ content pin before using the same provision-and-serve path as clone subjects;
79
89
  - containment checks for managed run storage, Observer and feedback reads,
80
90
  actor artifacts, lab discovery, Git metadata, and source archives;
81
91
  - an OSS meta-lab dry-run contract and a separate disposable public-repo OSS
@@ -85,16 +95,25 @@ Implemented:
85
95
 
86
96
  Still not good enough:
87
97
 
88
- - live `--app-url` browser proof now supports app-specific executable
89
- `browser.steps` in `humanish/scenarios/*.yaml`, with headed provider-backed
90
- public proof against two app/tool targets;
91
- - live PTY and Codex UI lanes need stronger completion health;
98
+ The [current proof-roadmap checkpoint](https://github.com/danielgwilson/humanish/blob/main/docs/goals/proof-roadmap/README.md)
99
+ supersedes implementation-status phrases in the immutable 2026-06-10 roadmap
100
+ packet without changing its success standard.
101
+
102
+ - capability receipts are not adopter replacement: no first-party deletion
103
+ branch has yet removed a bespoke generic harness while preserving
104
+ decision-equivalent proof;
105
+ - the six actor descriptors are a closed first-party union, not a supported
106
+ out-of-tree actor-registration API;
107
+ - run storage and provider-resource lifecycle logic still spans several routes
108
+ instead of one `RunStore` and `ResourceLease` boundary;
109
+ - multi-origin shared-world is a ratified design direction, but remains
110
+ unimplemented and gated on a real adopter proving the need;
92
111
  - live OSS meta-lab execution remains disabled until repository-derived
93
112
  instructions have an isolated credential boundary; historical headed-lane
94
113
  evidence does not make the current entrypoint available;
95
- - Observer evidence has real screenshots/traces for browser app proof; richer
96
- multi-step product journeys and broader multi-persona matrices remain the next
97
- gap.
114
+ - the README hero is a shipped, synthetic four-lane technical sample. It is not
115
+ proof of a real application study; a legible real-application capture remains open
116
+ product proof.
98
117
 
99
118
  ## First Commands
100
119
 
@@ -81,7 +81,8 @@ from a fresh clone:
81
81
  - history scans have no private upstream system names, absolute maintainer paths,
82
82
  secret patterns, or generated runtime bundles;
83
83
  - reachable commit author and committer emails are GitHub noreply-style
84
- addresses or explicitly approved public maintainer emails;
84
+ addresses (including GitHub's documented `ID+USERNAME` and username-only
85
+ forms) or explicitly approved public maintainer emails;
85
86
  - GitHub issues, PRs, labels, and project fields have been scanned or rewritten
86
87
  for public-safe language.
87
88
 
@@ -172,8 +173,8 @@ order is load-bearing (the OIDC binding is exact owner/repo + workflow path):
172
173
  A tag pushed before steps 1-2 fails auth (OIDC repository claim mismatch) or
173
174
  provenance validation (package.json repository.url vs actual workflow repo).
174
175
 
175
- Trusted Publishing should be configured for GitHub Actions before cutting the
176
- next tag:
176
+ Trusted Publishing is configured for GitHub Actions. Verify these exact binding
177
+ fields before each tag and re-point them after any repository rename:
177
178
 
178
179
  - provider: GitHub Actions
179
180
  - repository owner: `danielgwilson`
@@ -191,7 +192,7 @@ The workflow uses:
191
192
  - `npm publish --access public`;
192
193
  - no long-lived npm token secret.
193
194
 
194
- Future automated release flow after trusted publishing is configured:
195
+ Automated release flow:
195
196
 
196
197
  ```bash
197
198
  pnpm release:check
@@ -10,6 +10,7 @@ durable context future contributors and agents need.
10
10
 
11
11
  - [GitHub Docs: Removing sensitive data from a repository](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository)
12
12
  - [GitHub Docs: Setting your commit email address](https://docs.github.com/en/account-and-profile/how-tos/email-preferences/setting-your-commit-email-address)
13
+ - [GitHub Docs: Email addresses reference](https://docs.github.com/en/account-and-profile/reference/email-addresses-reference)
13
14
  - [GitHub Docs: About secret scanning](https://docs.github.com/code-security/secret-scanning/about-secret-scanning)
14
15
  - [GitHub Docs: About push protection](https://docs.github.com/en/code-security/concepts/secret-security/about-push-protection)
15
16
  - [npm Docs: package.json files field](https://docs.npmjs.com/cli/v11/configuring-npm/package-json/#files)
@@ -103,7 +104,11 @@ Noreply commit emails are preferred for privacy and consistency.
103
104
 
104
105
  Allowed commit metadata:
105
106
 
106
- - GitHub noreply addresses.
107
+ - GitHub's two documented personal-account noreply forms:
108
+ `ID+USERNAME@users.noreply.github.com` and
109
+ `USERNAME@users.noreply.github.com`. The username-only form remains valid for
110
+ accounts using GitHub's pre-July 18, 2017 privacy form.
111
+ - `github-actions[bot]@users.noreply.github.com` for GitHub Actions commits.
107
112
  - `noreply@github.com` for GitHub-generated commits.
108
113
  - Explicitly approved public maintainer emails.
109
114
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "humanish",
3
- "version": "0.15.2",
3
+ "version": "0.16.0",
4
4
  "description": "Open-source-safe CLI for persona simulation, observer review, and public-safe feedback drafts.",
5
5
  "author": "Daniel G Wilson <daniel@danielgwilson.com>",
6
6
  "keywords": [