humanish 0.94.0 → 0.96.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 +10 -0
- package/dist/comms-agentmail.d.ts +25 -0
- package/dist/comms-agentmail.js +418 -0
- package/dist/comms-agentmail.js.map +1 -0
- package/dist/comms-connections.d.ts +52 -0
- package/dist/comms-connections.js +123 -0
- package/dist/comms-connections.js.map +1 -0
- package/dist/comms-lease-store.d.ts +90 -0
- package/dist/comms-lease-store.js +489 -0
- package/dist/comms-lease-store.js.map +1 -0
- package/dist/comms-receiving-evidence.d.ts +46 -0
- package/dist/comms-receiving-evidence.js +35 -0
- package/dist/comms-receiving-evidence.js.map +1 -0
- package/dist/comms-receiving-inbox.d.ts +16 -0
- package/dist/comms-receiving-inbox.js +410 -0
- package/dist/comms-receiving-inbox.js.map +1 -0
- package/dist/comms-receiving-runtime.d.ts +25 -0
- package/dist/comms-receiving-runtime.js +45 -0
- package/dist/comms-receiving-runtime.js.map +1 -0
- package/dist/comms-receiving-types.d.ts +98 -0
- package/dist/comms-receiving-types.js +2 -0
- package/dist/comms-receiving-types.js.map +1 -0
- package/dist/comms-receiving.d.ts +58 -0
- package/dist/comms-receiving.js +554 -0
- package/dist/comms-receiving.js.map +1 -0
- package/dist/comms-setup.d.ts +40 -0
- package/dist/comms-setup.js +121 -0
- package/dist/comms-setup.js.map +1 -0
- package/dist/concurrent-shared-world-lab.js +662 -624
- package/dist/concurrent-shared-world-lab.js.map +1 -1
- package/dist/cua-actor-lab.d.ts +4 -1
- package/dist/cua-actor-lab.js +98 -17
- package/dist/cua-actor-lab.js.map +1 -1
- package/dist/doctor-lab.d.ts +7 -0
- package/dist/doctor-lab.js +26 -7
- package/dist/doctor-lab.js.map +1 -1
- package/dist/e2b-terminal-lab.js +3 -0
- package/dist/e2b-terminal-lab.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/key-resolution.d.ts +1 -1
- package/dist/key-resolution.js +6 -4
- package/dist/key-resolution.js.map +1 -1
- package/dist/lab-config.d.ts +20 -3
- package/dist/lab-config.js +65 -3
- package/dist/lab-config.js.map +1 -1
- package/dist/lab-engine.js +8 -3
- package/dist/lab-engine.js.map +1 -1
- package/dist/lab-summary.d.ts +3 -2
- package/dist/lab-summary.js +17 -7
- package/dist/lab-summary.js.map +1 -1
- package/dist/observer-app.html +1 -1
- package/dist/observer-data.js +14 -1
- package/dist/observer-data.js.map +1 -1
- package/dist/oss-lab.d.ts +1 -1
- package/dist/oss-lab.js.map +1 -1
- package/dist/oss-meta-lab.d.ts +1 -1
- package/dist/oss-meta-lab.js.map +1 -1
- package/dist/program.d.ts +4 -0
- package/dist/program.js +231 -74
- package/dist/program.js.map +1 -1
- package/dist/run-narration-secrets.d.ts +5 -0
- package/dist/run-narration-secrets.js +68 -0
- package/dist/run-narration-secrets.js.map +1 -0
- package/dist/run.d.ts +7 -2
- package/dist/run.js +25 -3
- package/dist/run.js.map +1 -1
- package/dist/scripted-browser-lab.js +7 -0
- package/dist/scripted-browser-lab.js.map +1 -1
- package/dist/secret-prompt.d.ts +2 -0
- package/dist/secret-prompt.js +36 -0
- package/dist/secret-prompt.js.map +1 -0
- package/dist/shared-world-lab.js +4 -0
- package/dist/shared-world-lab.js.map +1 -1
- package/dist/study-analysis-engine.js +30 -1
- package/dist/study-analysis-engine.js.map +1 -1
- package/dist/study-analysis-evidence.js +9 -1
- package/dist/study-analysis-evidence.js.map +1 -1
- package/dist/tui-app.js +135 -135
- package/dist/tui-contract.d.ts +26 -1
- package/dist/tui-contract.js.map +1 -1
- package/dist/tui-launch.d.ts +2 -0
- package/dist/tui-launch.js +9 -1
- package/dist/tui-launch.js.map +1 -1
- package/docs/architecture/comms-inbox.md +4 -0
- package/docs/architecture/real-email-receiving.md +135 -0
- package/docs/contracts/run-bundle.md +9 -1
- package/docs/contracts/schemas.md +50 -5
- package/docs/goals/current.md +5 -5
- package/docs/ramp/README.md +13 -3
- package/docs/release/0.95.0-connections-setup.md +38 -0
- package/docs/release/0.96.0-real-email-receiving.md +47 -0
- package/package.json +4 -2
- package/skills/humanish/SKILL.md +55 -14
package/skills/humanish/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: humanish
|
|
3
|
-
description: Install and configure Humanish CLI in a JavaScript app as an open-source-safe persona simulation harness. Use when an agent needs to add humanish, run safe first setup, create synthetic personas or scenarios, configure env var names without values, capture the email
|
|
3
|
+
description: Install and configure Humanish CLI in a JavaScript app as an open-source-safe persona simulation harness. Use when an agent needs to add humanish, run safe first setup, create synthetic personas or scenarios, configure env var names without values, capture the email an app sends so a persona can complete an email-gated flow (e.g. a signup verification link or one-time code), run verification and Observer commands, or draft public-safe feedback issues without GitHub mutation.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Humanish CLI
|
|
@@ -36,10 +36,25 @@ Everything it shows has a machine-readable equivalent, which is what you want:
|
|
|
36
36
|
| browsing runs | `npx humanish runs --json` |
|
|
37
37
|
| starting a run | `npx humanish lab run <lab> --json --no-open` |
|
|
38
38
|
| a run's outcome | `npx humanish review --run <id> --json` |
|
|
39
|
+
| communication setup | `npx humanish comms providers --json` and `npx humanish comms connections list --json` |
|
|
39
40
|
|
|
40
41
|
If a human asks you to "open the TUI", tell them the command to type; do not run
|
|
41
42
|
it on their behalf.
|
|
42
43
|
|
|
44
|
+
For AgentMail credential setup, a human can open `humanish tui`, press `c`,
|
|
45
|
+
and choose **Add API key**. Hidden entry returns to Connections after saving or
|
|
46
|
+
cancelling. The key is stored for that OS user, while the connection profile is
|
|
47
|
+
project-local. Never ask for the key in chat. The CLI alternative is
|
|
48
|
+
`humanish keys set agentmail` (hidden prompt; agents may use `--stdin` from an
|
|
49
|
+
authorized credential source), followed by
|
|
50
|
+
`humanish comms connections add agentmail --json`. Existing env/file precedence
|
|
51
|
+
and `HUMANISH_STRICT_KEYS=1` still apply. Read installed provider capabilities:
|
|
52
|
+
use `humanish comms check --online --json` for read-only authentication.
|
|
53
|
+
Authentication does not establish mailbox permissions, capacity or delivery.
|
|
54
|
+
`humanish comms configure --lab <path> --json` previews an ignored lab copy;
|
|
55
|
+
add `--apply --plan-token <digest>` to save the reviewed version. Launch its
|
|
56
|
+
exact returned path, not a basename that could resolve to another manifest.
|
|
57
|
+
|
|
43
58
|
## Setup Workflow
|
|
44
59
|
|
|
45
60
|
1. Inspect public target-repo files only: `package.json`, docs, route/app
|
|
@@ -203,15 +218,36 @@ npx humanish watch first-run
|
|
|
203
218
|
npx humanish lab run first-run --json --no-open
|
|
204
219
|
```
|
|
205
220
|
|
|
206
|
-
### Off-app email
|
|
207
|
-
|
|
208
|
-
When a flow
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
221
|
+
### Off-app email verification (comms)
|
|
222
|
+
|
|
223
|
+
When a flow needs an email from the app — a verification link, one-time code or
|
|
224
|
+
magic link — configure an inbox so the participant can read and use that message.
|
|
225
|
+
Humanish supports local capture and fresh hosted receiving, with different setup
|
|
226
|
+
and privacy behavior.
|
|
227
|
+
|
|
228
|
+
Choose the transport to match the app:
|
|
229
|
+
|
|
230
|
+
- **Local capture** (below): app send configuration can point at a test catch;
|
|
231
|
+
no external mail service is needed. It tests the email flow without proving
|
|
232
|
+
real delivery.
|
|
233
|
+
- **Real AgentMail receiving**: use `comms.email: { connection: agentmail }`.
|
|
234
|
+
Humanish acquires one fresh hosted inbox per participant before desktops start.
|
|
235
|
+
The app sends normally. Requires a configured organization-scoped key and
|
|
236
|
+
app-url/clone/local-tree hosted computer-use participants; concurrent shared
|
|
237
|
+
worlds work, sequential shared worlds and local-agent do not. Do not combine
|
|
238
|
+
connection with capture settings or substitute fresh addresses for existing
|
|
239
|
+
account identities. `allowedOrigins` can name additional trusted link origins.
|
|
240
|
+
|
|
241
|
+
Real mail can reach hosted desktops, actor models and analysis models. Screenshots
|
|
242
|
+
can contain it. Such runs remain `local_only` even after screenshot blurring;
|
|
243
|
+
this is a publication restriction, not local-only processing. Provider charges
|
|
244
|
+
and model charges are separate. Use `humanish comms recover --json` after an
|
|
245
|
+
interrupted run, then `humanish comms recover --run <id> --apply --json` for its
|
|
246
|
+
privately recorded resources. Never derive deletion authority from run artifacts.
|
|
247
|
+
SMS, participant sending, borrowed inboxes and other providers remain unavailable.
|
|
248
|
+
See `docs/architecture/real-email-receiving.md` for limits and recovery.
|
|
249
|
+
|
|
250
|
+
The following configuration selects **local capture**:
|
|
215
251
|
|
|
216
252
|
```yaml
|
|
217
253
|
comms:
|
|
@@ -247,10 +283,15 @@ The app keeps calling its email API normally (Resend/SendGrid-shaped, or a custo
|
|
|
247
283
|
profile); only the base URL is redirected. Route support: the clone/local-tree
|
|
248
284
|
computer-use route (inbox on the sandbox's own loopback) and the CONCURRENT
|
|
249
285
|
shared-world route (inbox getHost-exposed from the subject sandbox; the default
|
|
250
|
-
since every seat now runs live at once).
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
286
|
+
since every seat now runs live at once). SMTP capture is supported on per-lane
|
|
287
|
+
provisioned routes; shared-world SMTP is rejected because it is not wired there.
|
|
288
|
+
For app-url/operator-provided subjects, run `humanish comms catch` on a reachable
|
|
289
|
+
host, point the app's email sends at that catch, and declare
|
|
290
|
+
`comms.email.external.catchBaseUrl` (plus `inboxBaseUrl` if different). A declared
|
|
291
|
+
`authTokenEnv` is an environment variable name, never a credential value.
|
|
292
|
+
Sequential `concurrency: 1` shared-world email remains unwired; do not silently
|
|
293
|
+
change study concurrency to work around that limitation. The in-sandbox catch
|
|
294
|
+
needs `python3` (the stock E2B desktop has it).
|
|
254
295
|
Evidence is digest-only (`humanish.comms-thread.v1` — counts and digests, never
|
|
255
296
|
raw mail); the *readable* proof a persona saw the email is its screenshots of the
|
|
256
297
|
inbox page. See `docs/contracts/schemas.md` for the full `comms:` shape and
|