humanish 0.100.1 → 0.101.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/dist/actor-contract.d.ts +9 -9
- package/dist/actor-contract.js +15 -5
- package/dist/actor-contract.js.map +1 -1
- package/dist/computer-use.d.ts +13 -2
- package/dist/computer-use.js +108 -24
- package/dist/computer-use.js.map +1 -1
- package/dist/cua-actor-lab.js +34 -15
- package/dist/cua-actor-lab.js.map +1 -1
- package/dist/local-agent-cli.d.ts +10 -0
- package/dist/local-agent-cli.js +23 -7
- package/dist/local-agent-cli.js.map +1 -1
- package/dist/observer-app.html +1 -1
- package/dist/restricted-codex-participant-policy.d.ts +11 -5
- package/dist/restricted-codex-participant-policy.js +21 -49
- package/dist/restricted-codex-participant-policy.js.map +1 -1
- package/dist/restricted-codex-participant.d.ts +5 -1
- package/dist/restricted-codex-participant.js +158 -106
- package/dist/restricted-codex-participant.js.map +1 -1
- package/dist/restricted-codex-policy.d.ts +12 -5
- package/dist/restricted-codex-policy.js +62 -37
- package/dist/restricted-codex-policy.js.map +1 -1
- package/dist/restricted-codex-session.d.ts +24 -3
- package/dist/restricted-codex-session.js +208 -51
- package/dist/restricted-codex-session.js.map +1 -1
- package/dist/restricted-codex-transport.d.ts +11 -2
- package/dist/restricted-codex-transport.js +57 -6
- package/dist/restricted-codex-transport.js.map +1 -1
- package/docs/architecture/restricted-codex-analysis.md +7 -4
- package/docs/contracts/schemas.md +1 -1
- package/docs/goals/current.md +3 -3
- package/docs/ramp/README.md +4 -1
- package/docs/release/0.101.0-codex-ui-tools.md +28 -0
- package/package.json +1 -1
- package/dist/local-agent-appserver.d.ts +0 -44
- package/dist/local-agent-appserver.js +0 -269
- package/dist/local-agent-appserver.js.map +0 -1
|
@@ -10,15 +10,22 @@ export declare class RestrictedCodexStop extends Error {
|
|
|
10
10
|
constructor(code: RestrictedCodexAnalysisErrorCode);
|
|
11
11
|
}
|
|
12
12
|
export declare class RestrictedCodexDeadline {
|
|
13
|
+
private readonly timeoutMs;
|
|
13
14
|
private readonly signal?;
|
|
14
|
-
|
|
15
|
+
private deadlineAt;
|
|
15
16
|
code: RestrictedCodexAnalysisErrorCode | null;
|
|
16
17
|
private readonly stopped;
|
|
17
18
|
private rejectStopped;
|
|
18
|
-
private
|
|
19
|
+
private timer;
|
|
20
|
+
private paused;
|
|
19
21
|
private readonly onAbort;
|
|
20
22
|
constructor(timeoutMs: number, signal?: AbortSignal | undefined);
|
|
21
23
|
stop(code: RestrictedCodexAnalysisErrorCode): void;
|
|
24
|
+
get expiresAt(): number;
|
|
25
|
+
private arm;
|
|
26
|
+
/** Host tool execution is outside model time. A response starts a fresh inference slice. */
|
|
27
|
+
pause(): void;
|
|
28
|
+
resume(): void;
|
|
22
29
|
check(): void;
|
|
23
30
|
wait<T>(promise: Promise<T>): Promise<T>;
|
|
24
31
|
close(): void;
|
|
@@ -44,6 +51,8 @@ export declare class RestrictedCodexTransport {
|
|
|
44
51
|
private eventCount;
|
|
45
52
|
private closing;
|
|
46
53
|
onNotification: (method: string, params: Record<string, unknown>) => void;
|
|
54
|
+
onRequest: ((method: string, params: Record<string, unknown>) => Promise<Record<string, unknown>>) | undefined;
|
|
55
|
+
onRequestComplete: (() => void) | undefined;
|
|
47
56
|
constructor(owned: OwnedCodexProcess, deadline: RestrictedCodexDeadline, frameLimit?: number);
|
|
48
57
|
/** A completed turn releases its deadline and wire budget, not its conversation. */
|
|
49
58
|
beginRequest(deadline: RestrictedCodexDeadline, frameLimit: number): void;
|
|
@@ -9,19 +9,22 @@ export class RestrictedCodexStop extends Error {
|
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
11
|
export class RestrictedCodexDeadline {
|
|
12
|
+
timeoutMs;
|
|
12
13
|
signal;
|
|
13
|
-
|
|
14
|
+
deadlineAt;
|
|
14
15
|
code = null;
|
|
15
16
|
stopped;
|
|
16
17
|
rejectStopped;
|
|
17
18
|
timer;
|
|
19
|
+
paused = false;
|
|
18
20
|
onAbort = () => this.stop("cancelled");
|
|
19
21
|
constructor(timeoutMs, signal) {
|
|
22
|
+
this.timeoutMs = timeoutMs;
|
|
20
23
|
this.signal = signal;
|
|
21
|
-
this.
|
|
24
|
+
this.deadlineAt = performance.now() + timeoutMs;
|
|
22
25
|
this.stopped = new Promise((_resolve, reject) => { this.rejectStopped = reject; });
|
|
23
26
|
void this.stopped.catch(() => undefined);
|
|
24
|
-
this.
|
|
27
|
+
this.arm(timeoutMs);
|
|
25
28
|
signal?.addEventListener("abort", this.onAbort, { once: true });
|
|
26
29
|
if (signal?.aborted)
|
|
27
30
|
this.stop("cancelled");
|
|
@@ -32,8 +35,29 @@ export class RestrictedCodexDeadline {
|
|
|
32
35
|
this.code = code;
|
|
33
36
|
this.rejectStopped(new RestrictedCodexStop(code));
|
|
34
37
|
}
|
|
38
|
+
get expiresAt() { return this.deadlineAt; }
|
|
39
|
+
arm(ms) {
|
|
40
|
+
clearTimeout(this.timer);
|
|
41
|
+
this.timer = setTimeout(() => this.stop("timeout"), Math.max(1, ms));
|
|
42
|
+
}
|
|
43
|
+
/** Host tool execution is outside model time. A response starts a fresh inference slice. */
|
|
44
|
+
pause() {
|
|
45
|
+
this.check();
|
|
46
|
+
if (this.paused)
|
|
47
|
+
throw new RestrictedCodexStop("codex_protocol_error");
|
|
48
|
+
clearTimeout(this.timer);
|
|
49
|
+
this.timer = undefined;
|
|
50
|
+
this.paused = true;
|
|
51
|
+
}
|
|
52
|
+
resume() {
|
|
53
|
+
if (!this.paused || this.code !== null)
|
|
54
|
+
return;
|
|
55
|
+
this.paused = false;
|
|
56
|
+
this.deadlineAt = performance.now() + this.timeoutMs;
|
|
57
|
+
this.arm(this.timeoutMs);
|
|
58
|
+
}
|
|
35
59
|
check() {
|
|
36
|
-
if (this.code === null && performance.now() >= this.
|
|
60
|
+
if (!this.paused && this.code === null && performance.now() >= this.deadlineAt)
|
|
37
61
|
this.stop("timeout");
|
|
38
62
|
if (this.code !== null)
|
|
39
63
|
throw new RestrictedCodexStop(this.code);
|
|
@@ -102,6 +126,8 @@ export class RestrictedCodexTransport {
|
|
|
102
126
|
eventCount = 0;
|
|
103
127
|
closing = false;
|
|
104
128
|
onNotification = () => undefined;
|
|
129
|
+
onRequest;
|
|
130
|
+
onRequestComplete;
|
|
105
131
|
constructor(owned, deadline, frameLimit = CODEX_MAX_OUTPUT_BYTES) {
|
|
106
132
|
this.owned = owned;
|
|
107
133
|
this.deadline = deadline;
|
|
@@ -172,8 +198,33 @@ export class RestrictedCodexTransport {
|
|
|
172
198
|
return;
|
|
173
199
|
}
|
|
174
200
|
if (value.id !== undefined && typeof value.method === "string") {
|
|
175
|
-
this.
|
|
176
|
-
|
|
201
|
+
if (!this.onRequest || ++this.eventCount > CODEX_MAX_EVENTS) {
|
|
202
|
+
this.write({ id: value.id, error: { code: -32601, message: "Host request is disabled" } });
|
|
203
|
+
this.fail(this.eventCount > CODEX_MAX_EVENTS ? "response_too_large" : "codex_tool_call");
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
const id = value.id;
|
|
207
|
+
void this.onRequest(value.method, codexRecord(value.params)).then(result => {
|
|
208
|
+
try {
|
|
209
|
+
if (this.closing || this.deadline.code !== null)
|
|
210
|
+
return;
|
|
211
|
+
this.write({ id, result });
|
|
212
|
+
this.deadline.resume();
|
|
213
|
+
this.stdoutBytes = 0;
|
|
214
|
+
this.eventCount = 0;
|
|
215
|
+
this.onRequestComplete?.();
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
this.fail("codex_process_failed");
|
|
219
|
+
}
|
|
220
|
+
}, error => {
|
|
221
|
+
try {
|
|
222
|
+
if (!this.closing && this.deadline.code === null)
|
|
223
|
+
this.write({ id, error: { code: -32000, message: "Host request failed" } });
|
|
224
|
+
}
|
|
225
|
+
catch { /* The owned process is already failing. */ }
|
|
226
|
+
this.fail(error instanceof RestrictedCodexStop ? error.code : "codex_tool_call");
|
|
227
|
+
});
|
|
177
228
|
return;
|
|
178
229
|
}
|
|
179
230
|
if (typeof value.id === "number" && value.method === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restricted-codex-transport.js","sourceRoot":"","sources":["../src/restricted-codex-transport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"restricted-codex-transport.js","sourceRoot":"","sources":["../src/restricted-codex-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,12 +37,15 @@ actual notification/denial captures and provenance are in
|
|
|
37
37
|
[`tests/fixtures/restricted-codex`](https://github.com/danielgwilson/humanish/blob/46330116726f74080fa18947c36da4fb4b333805/tests/fixtures/restricted-codex/README.md).
|
|
38
38
|
|
|
39
39
|
Each analyst or readiness request owns a separate child process, temporary home
|
|
40
|
-
and fresh thread. Participants
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
and fresh thread. Participants share the native session implementation with a
|
|
41
|
+
separate UI-tool policy: Code Mode can call one Humanish desktop tool, and each
|
|
42
|
+
result supplies actual input acknowledgments and the current screenshot. Local
|
|
43
|
+
Firecracker and hosted E2B use this same participant implementation. Hosted
|
|
44
|
+
participants preserve operator authentication and model configuration; the
|
|
45
|
+
restricted analyst profile above remains unchanged.
|
|
43
46
|
Codex manages context compaction. Humanish does not replace it with a rolling
|
|
44
47
|
history window or restart a failed conversation without its memory. Participant
|
|
45
|
-
threads never share state with each other or the analyst.
|
|
48
|
+
threads never share conversation state with each other or the analyst.
|
|
46
49
|
|
|
47
50
|
An unresolved child process blocks new sessions until its exit is confirmed.
|
|
48
51
|
Limits and deadlines apply to each request, including startup on the first turn.
|
|
@@ -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.
|
|
6
|
+
`0.101.0`; 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.
|
package/docs/goals/current.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Current Goals
|
|
2
2
|
|
|
3
|
-
Status date: 2026-09-25. Release baseline: `0.
|
|
3
|
+
Status date: 2026-09-25. Release baseline: `0.101.0`.
|
|
4
4
|
|
|
5
5
|
This page guides work on current merged source. Published behavior is described
|
|
6
|
-
in the [release notes](../release/0.
|
|
6
|
+
in the [release notes](../release/0.101.0-codex-ui-tools.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.
|
|
91
|
+
## Current Program Truth (source `0.101.0`)
|
|
92
92
|
|
|
93
93
|
| Surface | Available in merged source | Remaining boundary |
|
|
94
94
|
| --- | --- | --- |
|
package/docs/ramp/README.md
CHANGED
|
@@ -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.
|
|
5
|
+
Package/source version in this tree: `0.101.0` (2026-09-25). 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
|
|
@@ -54,6 +54,9 @@ If a change does not improve one of those loops, it probably belongs elsewhere.
|
|
|
54
54
|
|
|
55
55
|
## Current State
|
|
56
56
|
|
|
57
|
+
The [0.101.0 release note](../release/0.101.0-codex-ui-tools.md) describes native
|
|
58
|
+
Codex UI tools shared by local Firecracker and hosted E2B participants.
|
|
59
|
+
|
|
57
60
|
The [0.100.1 release note](../release/0.100.1-participant-continuity.md) describes
|
|
58
61
|
continuing local participant conversations and per-turn usage accounting.
|
|
59
62
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# 0.101.0 — Shared Codex UI tools
|
|
2
|
+
|
|
3
|
+
Codex participants now interact through a native Humanish UI tool. One continuing
|
|
4
|
+
Codex conversation can call the tool repeatedly, inspect each new screenshot,
|
|
5
|
+
and give its final feedback. Humanish executes and records the inputs, including
|
|
6
|
+
rejected or skipped actions, before returning their actual status to Codex.
|
|
7
|
+
|
|
8
|
+
Local Firecracker and hosted E2B Codex participants use the same implementation.
|
|
9
|
+
The duplicate hosted adapter is removed. Hosted studies retain their operator
|
|
10
|
+
login, configured model selection and explicit reasoning effort; local account
|
|
11
|
+
studies retain their qualified isolated login profile. Codex runs on the host,
|
|
12
|
+
with desktop inputs sent to the selected sandbox. No credentials are moved into
|
|
13
|
+
the desktop and no new Firecracker image is required.
|
|
14
|
+
|
|
15
|
+
The native integration uses Codex CLI **0.154.0** and its experimental dynamic
|
|
16
|
+
tool protocol. Other CLI versions fail with an unsupported-version diagnostic.
|
|
17
|
+
Update to the supported version when moving a hosted study from an older CLI.
|
|
18
|
+
|
|
19
|
+
The existing loop still owns recordings, action limits, stop conditions and
|
|
20
|
+
cancellation. Pending tool calls are not counted as finished model requests.
|
|
21
|
+
Known pending usage informs spend estimates; final usage is recorded once when
|
|
22
|
+
the native turn settles. Per-inference token counts preserve API pricing tiers
|
|
23
|
+
inside a continuing conversation. Interrupted or compacted requests retain explicit usage
|
|
24
|
+
uncertainty. Account inference has unknown dollar cost.
|
|
25
|
+
|
|
26
|
+
Automatic analysis remains a separate, restricted analyst. The OpenAI Responses
|
|
27
|
+
computer-use provider and Claude Code conversation adapter remain supported.
|
|
28
|
+
Older recordings remain readable in Observer.
|
package/package.json
CHANGED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { type ChildProcessWithoutNullStreams } from "node:child_process";
|
|
2
|
-
import type { ActorCapabilities } from "./actor-contract.js";
|
|
3
|
-
import type { CuaProvider, CuaTurn } from "./computer-use.js";
|
|
4
|
-
import type { ReasoningEffort } from "./reasoning-effort.js";
|
|
5
|
-
type JsonObject = Record<string, unknown>;
|
|
6
|
-
/** The transport, injected so tests drive a fake server with no CLI and no spend. */
|
|
7
|
-
export interface AppServerTransport {
|
|
8
|
-
request(method: string, params: JsonObject): Promise<JsonObject>;
|
|
9
|
-
notify(method: string, params: JsonObject): void;
|
|
10
|
-
/** Resolves when the named notification arrives after the current turn began. */
|
|
11
|
-
awaitNotification(method: string, timeoutMs: number): Promise<JsonObject>;
|
|
12
|
-
close(): void;
|
|
13
|
-
}
|
|
14
|
-
/** Newline-delimited JSON-RPC over the child's stdio — the framing codex-app-server.ts uses. */
|
|
15
|
-
export declare function stdioTransport(child: ChildProcessWithoutNullStreams): AppServerTransport;
|
|
16
|
-
export interface AppServerProviderOptions {
|
|
17
|
-
/** Absent = spawn `codex app-server`. Injected in tests. */
|
|
18
|
-
transport?: AppServerTransport;
|
|
19
|
-
model?: string;
|
|
20
|
-
reasoningEffort?: ReasoningEffort;
|
|
21
|
-
/** Per-turn wall clock. */
|
|
22
|
-
timeoutMs?: number;
|
|
23
|
-
cwd?: string;
|
|
24
|
-
/** The persona/mission, set ONCE on the thread instead of re-sent every turn. */
|
|
25
|
-
baseInstructions?: string;
|
|
26
|
-
}
|
|
27
|
-
export declare const APP_SERVER_CAPABILITIES: ActorCapabilities;
|
|
28
|
-
/** The reply shape a turn is constrained to. Strict mode: every property in `required`. */
|
|
29
|
-
export declare function turnOutputSchema(): JsonObject;
|
|
30
|
-
export interface AppServerSession {
|
|
31
|
-
provider: CuaProvider;
|
|
32
|
-
/** Ends the thread and the process. The run owns the lifetime, not the provider. */
|
|
33
|
-
close(): void;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Start a thread and return a provider that spends it, one `turn/start` per computer-use turn.
|
|
37
|
-
*
|
|
38
|
-
* The thread is started EAGERLY (before the first screenshot) so the ~500ms handshake is paid
|
|
39
|
-
* while the sandbox is still booting rather than inside turn one.
|
|
40
|
-
*/
|
|
41
|
-
export declare function startAppServerSession(options?: AppServerProviderOptions): Promise<AppServerSession>;
|
|
42
|
-
/** Read a `turn/completed` notification into a CuaTurn. Exported for tests. */
|
|
43
|
-
export declare function turnFromNotification(note: JsonObject): CuaTurn;
|
|
44
|
-
export {};
|
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
// A codex app-server THREAD as the computer-use brain, instead of a fresh `codex exec` per turn.
|
|
2
|
-
//
|
|
3
|
-
// WHY THIS REPLACED THE ONE-SHOT VERSION, measured on this machine:
|
|
4
|
-
// `codex exec` per turn ~9s every turn, and every turn starts cold
|
|
5
|
-
// app-server thread ~500ms ONCE, then 2.7s / 5.8s / 8.9s per turn
|
|
6
|
-
//
|
|
7
|
-
// The speed is the smaller half. `codex exec` boots a CLI, loads config, agents and MCP servers on
|
|
8
|
-
// every single turn, and — the part that actually matters — hands the model a conversation that
|
|
9
|
-
// begins fresh each time. A participant driving a desktop that way has AMNESIA: it cannot remember
|
|
10
|
-
// that it already tried the menu, because nothing carried. A thread remembers, which is how the
|
|
11
|
-
// OpenAI computer-use provider has always worked (previous_response_id), and it is the difference
|
|
12
|
-
// between studying one participant and studying sixty strangers who each see one screenshot.
|
|
13
|
-
//
|
|
14
|
-
// The protocol is not guessed: `codex app-server generate-json-schema` emits it, and it gives us
|
|
15
|
-
// exactly what this loop needs — `turn/start` takes `input: [{type:"localImage", path}, ...]`,
|
|
16
|
-
// an `outputSchema` that constrains the reply (so no fence-scraping), and per-turn `effort` and
|
|
17
|
-
// `model` overrides described as applying "for this turn and subsequent turns".
|
|
18
|
-
import { spawn } from "node:child_process";
|
|
19
|
-
import readline from "node:readline";
|
|
20
|
-
import { declaredOutcomeOf, toCuaActions } from "./local-agent-cli.js";
|
|
21
|
-
/** Newline-delimited JSON-RPC over the child's stdio — the framing codex-app-server.ts uses. */
|
|
22
|
-
export function stdioTransport(child) {
|
|
23
|
-
const rl = readline.createInterface({ input: child.stdout });
|
|
24
|
-
const pending = new Map();
|
|
25
|
-
const waiters = [];
|
|
26
|
-
let nextId = 0;
|
|
27
|
-
rl.on("line", (line) => {
|
|
28
|
-
let message;
|
|
29
|
-
try {
|
|
30
|
-
message = JSON.parse(line);
|
|
31
|
-
}
|
|
32
|
-
catch {
|
|
33
|
-
return; // the server also logs non-JSON; ignore rather than crash the run
|
|
34
|
-
}
|
|
35
|
-
const id = message.id;
|
|
36
|
-
if (typeof id === "number" && pending.has(id)) {
|
|
37
|
-
const entry = pending.get(id);
|
|
38
|
-
pending.delete(id);
|
|
39
|
-
if (message.error !== undefined) {
|
|
40
|
-
entry.reject(new Error(`codex app-server: ${JSON.stringify(message.error).slice(0, 300)}`));
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
entry.resolve((message.result ?? {}));
|
|
44
|
-
}
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
if (typeof message.method === "string") {
|
|
48
|
-
for (let index = waiters.length - 1; index >= 0; index -= 1) {
|
|
49
|
-
if (waiters[index].method === message.method) {
|
|
50
|
-
waiters.splice(index, 1)[0].resolve(message);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
return {
|
|
56
|
-
request: async (method, params) => await new Promise((resolve, reject) => {
|
|
57
|
-
const id = (nextId += 1);
|
|
58
|
-
pending.set(id, { resolve, reject });
|
|
59
|
-
child.stdin.write(`${JSON.stringify({ jsonrpc: "2.0", id, method, params })}\n`);
|
|
60
|
-
}),
|
|
61
|
-
notify: (method, params) => {
|
|
62
|
-
child.stdin.write(`${JSON.stringify({ method, params })}\n`);
|
|
63
|
-
},
|
|
64
|
-
awaitNotification: async (method, timeoutMs) => await new Promise((resolve, reject) => {
|
|
65
|
-
const timer = setTimeout(() => reject(new Error(`timed out waiting for ${method}`)), timeoutMs);
|
|
66
|
-
waiters.push({
|
|
67
|
-
method,
|
|
68
|
-
resolve: (value) => {
|
|
69
|
-
clearTimeout(timer);
|
|
70
|
-
resolve(value);
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
}),
|
|
74
|
-
close: () => {
|
|
75
|
-
rl.close();
|
|
76
|
-
child.kill();
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
export const APP_SERVER_CAPABILITIES = {
|
|
81
|
-
headless: true,
|
|
82
|
-
structuredTrace: true,
|
|
83
|
-
lanes: ["computer-use"],
|
|
84
|
-
producesScreenshots: true,
|
|
85
|
-
byoModel: true,
|
|
86
|
-
preGrantableApprovals: false,
|
|
87
|
-
inProcessTools: false,
|
|
88
|
-
license: "open"
|
|
89
|
-
};
|
|
90
|
-
/** The reply shape a turn is constrained to. Strict mode: every property in `required`. */
|
|
91
|
-
export function turnOutputSchema() {
|
|
92
|
-
return {
|
|
93
|
-
type: "object",
|
|
94
|
-
additionalProperties: false,
|
|
95
|
-
required: ["reasoning", "done", "message", "outcome", "actions"],
|
|
96
|
-
properties: {
|
|
97
|
-
reasoning: { type: "string" },
|
|
98
|
-
done: { type: "boolean" },
|
|
99
|
-
message: { type: ["string", "null"] },
|
|
100
|
-
outcome: { type: ["string", "null"], enum: ["reached", "not_reached", "blocked", null] },
|
|
101
|
-
actions: {
|
|
102
|
-
type: "array",
|
|
103
|
-
items: {
|
|
104
|
-
type: "object",
|
|
105
|
-
additionalProperties: false,
|
|
106
|
-
required: ["kind", "x", "y", "text", "keys", "ms"],
|
|
107
|
-
properties: {
|
|
108
|
-
kind: { type: "string", enum: ["click", "double_click", "type", "keypress", "scroll", "wait", "done"] },
|
|
109
|
-
x: { type: ["integer", "null"] },
|
|
110
|
-
y: { type: ["integer", "null"] },
|
|
111
|
-
text: { type: ["string", "null"] },
|
|
112
|
-
keys: { type: ["array", "null"], items: { type: "string" } },
|
|
113
|
-
ms: { type: ["integer", "null"] }
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
function readNested(value, keys) {
|
|
121
|
-
let current = value;
|
|
122
|
-
for (const key of keys) {
|
|
123
|
-
if (typeof current !== "object" || current === null)
|
|
124
|
-
return undefined;
|
|
125
|
-
current = current[key];
|
|
126
|
-
}
|
|
127
|
-
return typeof current === "string" ? current : undefined;
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Start a thread and return a provider that spends it, one `turn/start` per computer-use turn.
|
|
131
|
-
*
|
|
132
|
-
* The thread is started EAGERLY (before the first screenshot) so the ~500ms handshake is paid
|
|
133
|
-
* while the sandbox is still booting rather than inside turn one.
|
|
134
|
-
*/
|
|
135
|
-
export async function startAppServerSession(options = {}) {
|
|
136
|
-
const timeoutMs = options.timeoutMs ?? 180_000;
|
|
137
|
-
const cwd = options.cwd ?? process.cwd();
|
|
138
|
-
const effort = options.reasoningEffort ?? "low";
|
|
139
|
-
let child;
|
|
140
|
-
let transport = options.transport;
|
|
141
|
-
if (transport === undefined) {
|
|
142
|
-
child = spawn("codex", ["app-server"], { cwd, stdio: ["pipe", "pipe", "pipe"] });
|
|
143
|
-
// The server logs to stderr; draining it keeps the pipe from filling and stalling the run.
|
|
144
|
-
child.stderr.resume();
|
|
145
|
-
transport = stdioTransport(child);
|
|
146
|
-
}
|
|
147
|
-
await transport.request("initialize", {
|
|
148
|
-
clientInfo: { name: "humanish_cli", title: "Humanish CLI", version: "0.1.0" },
|
|
149
|
-
capabilities: {}
|
|
150
|
-
});
|
|
151
|
-
transport.notify("initialized", {});
|
|
152
|
-
const thread = await transport.request("thread/start", {
|
|
153
|
-
cwd,
|
|
154
|
-
// The participant is here to look at a screen, not to touch this machine. read-only + never
|
|
155
|
-
// is the same bound the one-shot version had, declared once for the whole thread.
|
|
156
|
-
approvalPolicy: "never",
|
|
157
|
-
sandbox: "read-only",
|
|
158
|
-
serviceName: "humanish",
|
|
159
|
-
// Nothing about this study belongs in the operator's codex history.
|
|
160
|
-
ephemeral: true,
|
|
161
|
-
...(options.baseInstructions === undefined ? {} : { baseInstructions: options.baseInstructions }),
|
|
162
|
-
...(options.model === undefined ? {} : { model: options.model })
|
|
163
|
-
});
|
|
164
|
-
const threadId = readNested(thread, ["thread", "id"]);
|
|
165
|
-
if (threadId === undefined) {
|
|
166
|
-
transport.close();
|
|
167
|
-
throw new Error("codex app-server did not return a thread id");
|
|
168
|
-
}
|
|
169
|
-
const provider = {
|
|
170
|
-
id: "local-agent-codex-app-server",
|
|
171
|
-
version: options.model ?? "codex app-server (local, operator-authenticated)",
|
|
172
|
-
modelSettings: { reasoningEffort: effort },
|
|
173
|
-
capabilities: APP_SERVER_CAPABILITIES,
|
|
174
|
-
requiresFrame: true,
|
|
175
|
-
async nextTurn(request, signal) {
|
|
176
|
-
const frame = request.observation.screenshot;
|
|
177
|
-
if (frame === undefined) {
|
|
178
|
-
throw new Error("the codex app-server provider needs a screenshot and this observation has none");
|
|
179
|
-
}
|
|
180
|
-
const { mkdtemp, rm, writeFile } = await import("node:fs/promises");
|
|
181
|
-
const { tmpdir } = await import("node:os");
|
|
182
|
-
const path = await import("node:path");
|
|
183
|
-
const work = await mkdtemp(path.join(tmpdir(), "humanish-appserver-"));
|
|
184
|
-
try {
|
|
185
|
-
const shot = path.join(work, "screen.png");
|
|
186
|
-
await writeFile(shot, frame);
|
|
187
|
-
const hint = request.contextHint === undefined ? "" : `\n\nNote from the harness: ${request.contextHint}`;
|
|
188
|
-
const completed = transport.awaitNotification("turn/completed", timeoutMs);
|
|
189
|
-
await transport.request("turn/start", {
|
|
190
|
-
threadId,
|
|
191
|
-
cwd,
|
|
192
|
-
approvalPolicy: "never",
|
|
193
|
-
sandboxPolicy: { type: "readOnly" },
|
|
194
|
-
// Per-turn, because a lane declares it and the schema says it applies to this turn and
|
|
195
|
-
// the ones after — so a lane that raises effort raises it from that point on.
|
|
196
|
-
effort,
|
|
197
|
-
...(options.model === undefined ? {} : { model: options.model }),
|
|
198
|
-
outputSchema: turnOutputSchema(),
|
|
199
|
-
input: [
|
|
200
|
-
{ type: "localImage", path: shot },
|
|
201
|
-
{
|
|
202
|
-
type: "text",
|
|
203
|
-
// The persona already lives in baseInstructions; this is only the turn's ask, which
|
|
204
|
-
// is why it stays this short.
|
|
205
|
-
text: `This is the current screen. What do you do next? When you set done=true, set outcome: reached if the task is finished, blocked if something in the app stopped you, not_reached if you are stopping for another reason.${hint}`,
|
|
206
|
-
text_elements: []
|
|
207
|
-
}
|
|
208
|
-
]
|
|
209
|
-
});
|
|
210
|
-
const abort = signal === undefined
|
|
211
|
-
? undefined
|
|
212
|
-
: new Promise((_resolve, reject) => {
|
|
213
|
-
signal.addEventListener("abort", () => reject(new Error("run stopped")), { once: true });
|
|
214
|
-
});
|
|
215
|
-
const note = await (abort === undefined ? completed : Promise.race([completed, abort]));
|
|
216
|
-
return turnFromNotification(note);
|
|
217
|
-
}
|
|
218
|
-
finally {
|
|
219
|
-
await rm(work, { recursive: true, force: true }).catch(() => undefined);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
};
|
|
223
|
-
return {
|
|
224
|
-
provider,
|
|
225
|
-
close: () => {
|
|
226
|
-
transport?.close();
|
|
227
|
-
child?.kill();
|
|
228
|
-
}
|
|
229
|
-
};
|
|
230
|
-
}
|
|
231
|
-
/** Read a `turn/completed` notification into a CuaTurn. Exported for tests. */
|
|
232
|
-
export function turnFromNotification(note) {
|
|
233
|
-
const params = (note.params ?? {});
|
|
234
|
-
const turn = (params.turn ?? {});
|
|
235
|
-
// Read the protocol, do not guess it: `turn/completed` carries `turn.items`, and the model's
|
|
236
|
-
// answer is the LAST `agentMessage` item, whose `text` is a plain string. The first cut of this
|
|
237
|
-
// looked for `turn.output`, found nothing, and silently produced an empty turn — which the loop
|
|
238
|
-
// read as "the participant is finished", ending a live study after one screenshot.
|
|
239
|
-
const items = Array.isArray(turn.items) ? turn.items : [];
|
|
240
|
-
const message = [...items].reverse().find((item) => item.type === "agentMessage");
|
|
241
|
-
const text = typeof message?.text === "string" ? message.text : "";
|
|
242
|
-
let parsed;
|
|
243
|
-
try {
|
|
244
|
-
// `outputSchema` constrains it to JSON, but a fence costs nothing to tolerate.
|
|
245
|
-
const fenced = /```(?:json)?\s*([\s\S]*?)```/.exec(text);
|
|
246
|
-
parsed = JSON.parse((fenced?.[1] ?? text).trim());
|
|
247
|
-
}
|
|
248
|
-
catch {
|
|
249
|
-
// A turn whose constrained output did not arrive is a BROKEN turn, never an empty one: an
|
|
250
|
-
// empty turn reads to the loop as "the participant chose to do nothing".
|
|
251
|
-
throw new Error(`codex app-server returned no structured turn output (${text.slice(0, 160)})`);
|
|
252
|
-
}
|
|
253
|
-
const actions = toCuaActions(Array.isArray(parsed.actions) ? parsed.actions : []);
|
|
254
|
-
return {
|
|
255
|
-
actions,
|
|
256
|
-
pendingSafetyChecks: [],
|
|
257
|
-
// EXPLICIT only. The first version also inferred done from "no actions plus a message", and
|
|
258
|
-
// that inference ended a live study on turn one with a 7-second "goal_satisfied": the model
|
|
259
|
-
// narrated the screen, chose no action, and the provider called it finished. The schema
|
|
260
|
-
// guarantees a `done` boolean, so there is nothing to infer.
|
|
261
|
-
done: parsed.done === true,
|
|
262
|
-
...(declaredOutcomeOf(parsed.outcome) === undefined ? {} : { outcome: declaredOutcomeOf(parsed.outcome) }),
|
|
263
|
-
...(typeof parsed.reasoning === "string" && parsed.reasoning.length > 0 ? { reasoning: parsed.reasoning } : {}),
|
|
264
|
-
...(typeof parsed.message === "string" && parsed.message.length > 0 ? { message: parsed.message } : {})
|
|
265
|
-
// No `usage`: a subscription thread reports nothing we could price, and a number invented here
|
|
266
|
-
// is what would make the run's cost line a lie.
|
|
267
|
-
};
|
|
268
|
-
}
|
|
269
|
-
//# sourceMappingURL=local-agent-appserver.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"local-agent-appserver.js","sourceRoot":"","sources":["../src/local-agent-appserver.ts"],"names":[],"mappings":"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"}
|