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.
- package/README.md +12 -2
- package/dist/actor-contract.d.ts +4 -1
- package/dist/actor-contract.js.map +1 -1
- package/dist/actor-goal-source.d.ts +5 -0
- package/dist/actor-goal-source.js +32 -0
- package/dist/actor-goal-source.js.map +1 -0
- package/dist/actor-stop-cause.d.ts +2 -0
- package/dist/actor-stop-cause.js +7 -2
- package/dist/actor-stop-cause.js.map +1 -1
- package/dist/computer-use.d.ts +3 -0
- package/dist/computer-use.js +30 -4
- package/dist/computer-use.js.map +1 -1
- package/dist/cua-actor-lab.d.ts +10 -3
- package/dist/cua-actor-lab.js +35 -10
- package/dist/cua-actor-lab.js.map +1 -1
- package/dist/cua-admission-limit.d.ts +12 -0
- package/dist/cua-admission-limit.js +20 -0
- package/dist/cua-admission-limit.js.map +1 -0
- package/dist/cua-diagnostics.d.ts +38 -0
- package/dist/cua-diagnostics.js +68 -0
- package/dist/cua-diagnostics.js.map +1 -0
- package/dist/e2b-desktop-executor.js +4 -2
- package/dist/e2b-desktop-executor.js.map +1 -1
- package/dist/feedback.js +5 -3
- package/dist/feedback.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/observer-data.js +11 -4
- package/dist/observer-data.js.map +1 -1
- package/dist/openai-responses-cu.js +13 -2
- package/dist/openai-responses-cu.js.map +1 -1
- package/dist/program.d.ts +2 -0
- package/dist/program.js +9 -4
- package/dist/program.js.map +1 -1
- package/dist/run.d.ts +18 -5
- package/dist/run.js +70 -2
- package/dist/run.js.map +1 -1
- package/dist/stats.js +1 -1
- package/dist/stats.js.map +1 -1
- package/dist/telemetry.d.ts +3 -0
- package/dist/telemetry.js +15 -1
- package/dist/telemetry.js.map +1 -1
- package/docs/architecture/examples/state-driven-local-app/README.md +75 -0
- package/docs/architecture/examples/state-driven-local-app/app.mjs +48 -0
- package/docs/architecture/examples/state-driven-local-app/runner.mjs +104 -0
- package/docs/architecture/state-driven-executor.md +19 -26
- package/docs/contracts/adapter-admission.md +54 -0
- package/docs/contracts/run-bundle.md +8 -1
- package/docs/contracts/schemas.md +16 -2
- package/docs/goals/current.md +9 -4
- package/docs/ramp/README.md +11 -1
- package/docs/release/0.88.0-study-diagnostics.md +43 -0
- package/docs/release/0.88.1-completion-evidence-and-local-app.md +79 -0
- package/package.json +1 -1
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Humanish 0.88.0: see what ended a study
|
|
2
|
+
|
|
3
|
+
When a computer-use study stops before the task is done, `humanish lab run` now
|
|
4
|
+
shows its diagnostic category and recorded stop cause. Fan-out results retain
|
|
5
|
+
each participant's ending. Different endings remain mixed. Older generic budget
|
|
6
|
+
stops retain an unspecified limit. Successful dry-runs are reported as contract
|
|
7
|
+
previews.
|
|
8
|
+
|
|
9
|
+
New review packets and feedback participant summaries use recorded interruption
|
|
10
|
+
labels. Previously saved review packets keep their original wording.
|
|
11
|
+
|
|
12
|
+
An adapter can use the new `CuaAdmissionLimitError` to declare that its local
|
|
13
|
+
limit refused a request before dispatch. Humanish records **adapter admission
|
|
14
|
+
limit** and ends the interaction without another retry, action or closing
|
|
15
|
+
report. Earlier actions and measured usage remain available. A refusal of an
|
|
16
|
+
optional closing report preserves the already observed task outcome. See the
|
|
17
|
+
[adapter contract](../contracts/adapter-admission.md) for when this signal applies.
|
|
18
|
+
|
|
19
|
+
If an earlier request stalled or had an ambiguous transport outcome, a later
|
|
20
|
+
success or local refusal does not make its missing usage known. The cost summary
|
|
21
|
+
keeps measured token estimates and an explicit unmeasured line. With a spending
|
|
22
|
+
cap, Humanish skips the optional closing report while that usage is uncertain.
|
|
23
|
+
|
|
24
|
+
Install with `npm install -g humanish@0.88.0`. CLI JSON adds optional diagnostics
|
|
25
|
+
without changing the existing status or exit-code contract. Usage telemetry,
|
|
26
|
+
enabled by default, adds two fields with fixed allowed values: diagnostic
|
|
27
|
+
category and stop cause. See [TELEMETRY.md](https://github.com/danielgwilson/humanish/blob/main/TELEMETRY.md)
|
|
28
|
+
for their scope and opt-out controls.
|
|
29
|
+
|
|
30
|
+
## Verification and limits
|
|
31
|
+
|
|
32
|
+
[Admission-limit checks](https://github.com/danielgwilson/humanish/pull/759)
|
|
33
|
+
cover refusal before and after activity, sanitized error handling, preserved
|
|
34
|
+
outcomes and unknown usage after both successful and refused retries.
|
|
35
|
+
[CLI diagnostic checks](https://github.com/danielgwilson/humanish/pull/758)
|
|
36
|
+
cover previews, mixed endings, missing causes, invalid evidence and telemetry
|
|
37
|
+
allowlists. The required release checks also cover package installation,
|
|
38
|
+
Observer rendering and the website.
|
|
39
|
+
|
|
40
|
+
The admission signal depends on an accurate adapter declaration; it is not a
|
|
41
|
+
provider billing receipt. Existing generic failures keep their recorded
|
|
42
|
+
outcomes. This release does not infer causes from participant prose or establish
|
|
43
|
+
why an older study failed.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Humanish 0.88.1: distinguish reported completion from condition matches
|
|
2
|
+
|
|
3
|
+
When a computer-use participant says it finished, review and Observer now
|
|
4
|
+
label that completion as **participant-reported**. A recorded `stopWhen` match
|
|
5
|
+
or completed dwell window identifies a **recorded completion condition** instead.
|
|
6
|
+
Missing, malformed or conflicting completion evidence is labeled unavailable.
|
|
7
|
+
Zero-completion counts use **0/N recorded completions**, and aggregate stats use
|
|
8
|
+
**recorded goal completions**.
|
|
9
|
+
|
|
10
|
+
A matched condition establishes only that condition, not every aspect of the
|
|
11
|
+
mission. The run gate and share-safety verification remain separate from task
|
|
12
|
+
adjudication. This release adds no automatic semantic evaluator.
|
|
13
|
+
|
|
14
|
+
Existing actor statuses, `participants.reachedGoal`, verdict values and
|
|
15
|
+
denominators stay unchanged. Current review commands, Observer rendering and
|
|
16
|
+
newly generated feedback drafts apply these labels to older runs while
|
|
17
|
+
preserving original bundles and actor traces. Existing HTML exports keep their
|
|
18
|
+
original renderer. Other actor routes retain their own completion semantics.
|
|
19
|
+
|
|
20
|
+
## Run a local app from npm
|
|
21
|
+
|
|
22
|
+
To connect your local app's state and actions to Humanish, start with the
|
|
23
|
+
[complete npm example](../architecture/examples/state-driven-local-app/README.md):
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm install humanish@0.88.1
|
|
27
|
+
node node_modules/humanish/docs/architecture/examples/state-driven-local-app/runner.mjs
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
It starts a synthetic loopback app, reads its state, sends a greeting through
|
|
31
|
+
its HTTP action endpoint and verifies the recorded run. A `finally` block closes
|
|
32
|
+
the app. The provider follows a deterministic rule, so the example needs no
|
|
33
|
+
model credentials or E2B desktop. Use Node.js 20.3 or later.
|
|
34
|
+
|
|
35
|
+
The runner supplies both `CuaExecutor` and `CuaProvider`, passes a decoded object
|
|
36
|
+
to `parseLabConfig`, and checks the config and backend discriminants. The
|
|
37
|
+
existing `stableProgressKey` utility is now exported from `humanish`, so callers
|
|
38
|
+
can use the same bounded state projection as the loop. Replace the two ports
|
|
39
|
+
with your app bridge and provider; the example guide explains the responsibilities
|
|
40
|
+
that remain with them.
|
|
41
|
+
|
|
42
|
+
## Clipboard fallback returns after the write
|
|
43
|
+
|
|
44
|
+
When direct desktop typing fails, Humanish can write the text to the X clipboard
|
|
45
|
+
and paste it. `xclip` and `xsel` fork a process to keep the selection available;
|
|
46
|
+
inherited output pipes could leave the command runner waiting until timeout.
|
|
47
|
+
Both clipboard-write commands now detach their output while preserving the
|
|
48
|
+
existing exit checks, temporary-file cleanup and paste dispatch.
|
|
49
|
+
|
|
50
|
+
Custom desktop images still need a working `xclip` or `xsel`. Missing utilities
|
|
51
|
+
continue to report `clipboard-utility-missing`. This patch adds no typing retry,
|
|
52
|
+
and recovery after a primary write inserted an unknown partial prefix remains
|
|
53
|
+
unproven. [Issue #340](https://github.com/danielgwilson/humanish/issues/340) remains
|
|
54
|
+
open for that broader typing problem.
|
|
55
|
+
|
|
56
|
+
## Verification and limits
|
|
57
|
+
|
|
58
|
+
[Completion label checks](https://github.com/danielgwilson/humanish/pull/765)
|
|
59
|
+
cover participant reports, recorded condition matches, zero completions and
|
|
60
|
+
unavailable legacy detail. They preserve recorded counts and statuses while
|
|
61
|
+
refreshing historical review and feedback projections. Existing adapter
|
|
62
|
+
narrative remains available.
|
|
63
|
+
|
|
64
|
+
[The packaged example](https://github.com/danielgwilson/humanish/pull/762) completed
|
|
65
|
+
two independent local runs on Node 20.20.2 and 24.12.0. Each made two HTTP state
|
|
66
|
+
reads and one state-changing request, reached `goal_satisfied`, verified as
|
|
67
|
+
`share_ready` and closed its server. These checks used locally packed candidate
|
|
68
|
+
source labeled 0.88.0, distinct from the registry release with that version.
|
|
69
|
+
|
|
70
|
+
[The clipboard correction](https://github.com/danielgwilson/humanish/pull/761)
|
|
71
|
+
passed two real desktop conformance cases, one with explicitly installed `xclip`
|
|
72
|
+
and one with `xsel`. Each preserved the exact Unicode/newline/quoted text with
|
|
73
|
+
one paste and removed its transfer file. Both cases refused the primary write
|
|
74
|
+
before it could type anything. They do not establish default-image clipboard
|
|
75
|
+
availability or recovery from partial typing.
|
|
76
|
+
|
|
77
|
+
Both checks were model-free. They establish the tested integration and executor
|
|
78
|
+
behavior; persona effectiveness and independent maintainer adoption remain
|
|
79
|
+
separate questions.
|
package/package.json
CHANGED