@botiverse/oar 0.13.2 → 0.13.4
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 +41 -42
- package/dist/agents/types.d.ts +1 -1
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/runtimes/codex/app-server-client.d.ts.map +1 -1
- package/dist/runtimes/codex/app-server-client.js +7 -1
- package/dist/runtimes/codex/app-server-client.js.map +1 -1
- package/dist/runtimes/codex/home-initialization.d.ts +4 -0
- package/dist/runtimes/codex/home-initialization.d.ts.map +1 -0
- package/dist/runtimes/codex/home-initialization.js +203 -0
- package/dist/runtimes/codex/home-initialization.js.map +1 -0
- package/dist/runtimes/codex/projection.d.ts +3 -0
- package/dist/runtimes/codex/projection.d.ts.map +1 -1
- package/dist/runtimes/codex/projection.js +19 -9
- package/dist/runtimes/codex/projection.js.map +1 -1
- package/dist/runtimes/codex/tasks.d.ts +23 -1
- package/dist/runtimes/codex/tasks.d.ts.map +1 -1
- package/dist/runtimes/codex/tasks.js +51 -1
- package/dist/runtimes/codex/tasks.js.map +1 -1
- package/dist/shared/executable/version.d.ts +2 -1
- package/dist/shared/executable/version.d.ts.map +1 -1
- package/dist/shared/executable/version.js +7 -3
- package/dist/shared/executable/version.js.map +1 -1
- package/dist/shared/failure-class.js +1 -1
- package/dist/shared/failure-class.js.map +1 -1
- package/dist/shared/session-kernel.d.ts +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -28,22 +28,22 @@ if (installation?.kind === "available") {
|
|
|
28
28
|
echoes, text, reasoning, tool call start / progress / end, turn start and end,
|
|
29
29
|
usage, model, effort, compaction start / end, retry, background tasks and
|
|
30
30
|
subagents started, updated and ended, runtime→app requests and oar's answers,
|
|
31
|
-
control rejections, the process exit), each carrying the `seq`
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
native payload verbatim, `RequestRecord`,
|
|
37
|
-
who need the runtime's own frames.
|
|
31
|
+
control rejections, the process exit), each carrying the `seq` and
|
|
32
|
+
`agentPath` of the record it was read from. Kinds a runtime never says (claude
|
|
33
|
+
has no compaction start, ACP runtimes no compaction, only pi says retry) never
|
|
34
|
+
appear; the runtime pages say which. It is a projection over the record
|
|
35
|
+
stream, which `session.rawEvents()` and `session.records()` expose
|
|
36
|
+
(`RawEvent`: `Frame` with the native payload verbatim, `RequestRecord`,
|
|
37
|
+
`ResponseRecord`) for consumers who need the runtime's own frames.
|
|
38
38
|
|
|
39
39
|
`session.deliver(input, { when, origin })` sends input the host produces (a
|
|
40
40
|
subagent's result, a finished job) at the right moment: a new turn when the
|
|
41
|
-
session is idle, so the agent wakes, otherwise steered into the turn or
|
|
42
|
-
|
|
41
|
+
session is idle, so the agent wakes, otherwise steered into the turn or queued
|
|
42
|
+
behind it. `origin` is recorded so a UI can tell it from typed input.
|
|
43
43
|
|
|
44
|
-
For conversation UIs, use the browser-safe `reduceConversation` projection
|
|
45
|
-
`session.rawEvents()`. It joins input requests, responses and native
|
|
46
|
-
identity, including steer → queue fallback. See the
|
|
44
|
+
For conversation UIs, use the browser-safe `reduceConversation` projection
|
|
45
|
+
over `session.rawEvents()`. It joins input requests, responses and native
|
|
46
|
+
echoes by identity, including steer → queue fallback. See the
|
|
47
47
|
[conversation contract](https://github.com/botiverse/oar/blob/main/docs/spec/conversation.md).
|
|
48
48
|
|
|
49
49
|
## Public exports
|
|
@@ -52,12 +52,12 @@ The package has six public entry points:
|
|
|
52
52
|
|
|
53
53
|
- `@botiverse/oar`: the full surface (runtime registry, adapters, and everything below). Node-only (adapters import `node:child_process` and runtime SDKs).
|
|
54
54
|
- `@botiverse/oar/brands`: browser-safe runtime names and SVG icons.
|
|
55
|
-
- `@botiverse/oar/observe`: browser-safe
|
|
55
|
+
- `@botiverse/oar/observe`: the browser-safe pure derivations over `RawEvent`s and `Event`s (`eventsOf`, `coalesceText`, `observeAgent`, `reduceStatus`, `tasksOf`, `observeStalls`, `classifyTool`, …) with no Node or adapter imports, so a browser or Electron-renderer bundle can import it directly. The root export re-exports the same utilities.
|
|
56
56
|
- `@botiverse/oar/kernel`: the runtime-author SPI. `createSessionKernel` is the record stream every built-in adapter is built on (dense `seq`, cursor replay, control recording, the reachability rule) and `sealSession` derives the `Session` API face over an adapter. Pair with `defineRuntime` to ship a custom runtime (a scripted runtime for a host's tests, an in-process agent) without re-implementing the stream contract. `inputImagesRefusal` and `withInputImages` are the image rules every built-in runtime keeps, so a custom runtime refuses the inputs they refuse.
|
|
57
|
-
- `@botiverse/oar/agents`: subagents. `createSubagents()` starts child sessions on any runtime, returns a report for every turn they end, takes follow-ups, enforces depth and concurrency limits, reports each child as a task
|
|
57
|
+
- `@botiverse/oar/agents`: subagents. `createSubagents()` starts child sessions on any runtime, returns a report for every turn they end, takes follow-ups, enforces depth and concurrency limits, and reports each child as a task. The host takes reports with `wait` / `next` or receives them through an `onReport` hook; with `formatReport` and `reportOrigin` it can `deliver` one into a parent session so it wakes. See [subagents](https://github.com/botiverse/oar/blob/main/docs/spec/subagents.md). Node-only.
|
|
58
58
|
- `@botiverse/oar/testing`: `scriptedRuntime({ turn })`, a ready-made runtime on the kernel SPI whose model is a script. It yields a real `Session` (same records, folds and control semantics) with no binary, login or provider, for hosts' tests and demos. A script can also start tasks (`turn.task`) that end after the turn, like a background command. Node-only.
|
|
59
59
|
|
|
60
|
-
Any other deep import (`@botiverse/oar/dist/...`, source paths) is internal and may break without notice.
|
|
60
|
+
Brand SVG files are exported at `@botiverse/oar/assets/brands/<runtime-id>.svg`. Any other deep import (`@botiverse/oar/dist/...`, source paths) is internal and may break without notice.
|
|
61
61
|
|
|
62
62
|
Antigravity, Cursor, Grok, and Kimi share an internal ACP v1 transport and session kernel, but only their concrete runtime identities are public. The registry deliberately does not expose a generic `acp` runtime.
|
|
63
63
|
|
|
@@ -66,7 +66,7 @@ The command-line interface is a separate package: `@botiverse/oar-cli`.
|
|
|
66
66
|
`runtime.listModels(installation, options?)` lists the models an installation
|
|
67
67
|
can run now (`ok`, `unauthenticated` or `unsupported`); every built-in runtime
|
|
68
68
|
has it. `runtime.accountUsage(installation)` reads account quota on claude,
|
|
69
|
-
codex, grok and kimi; its failure semantics are
|
|
69
|
+
codex, grok and kimi; its failure semantics are in the
|
|
70
70
|
[account usage reference](https://github.com/botiverse/oar/blob/main/docs/spec/account-usage.md).
|
|
71
71
|
|
|
72
72
|
`runtime.checkUpdate(installation)` reports the version the runtime's own
|
|
@@ -77,10 +77,10 @@ never by its exit code. oar never upgrades on its own. Claude, Codex, Cursor,
|
|
|
77
77
|
Grok and Kimi have both; Antigravity has only the check; Pi moves with oar.
|
|
78
78
|
See [runtime updates](https://github.com/botiverse/oar/blob/main/docs/spec/update.md).
|
|
79
79
|
|
|
80
|
-
Images go with an input through `InputOptions.images` (
|
|
81
|
-
jpeg, gif or webp files) on prompt, steer and queue,
|
|
82
|
-
content. `session.capabilities.images` says whether
|
|
83
|
-
input it cannot deliver is rejected whole. See
|
|
80
|
+
Images go with an input through `InputOptions.images` (`{ path }` entries:
|
|
81
|
+
absolute paths to png, jpeg, gif or webp files) on prompt, steer and queue,
|
|
82
|
+
as the runtime's own image content. `session.capabilities.images` says whether
|
|
83
|
+
the runtime takes them; an input it cannot deliver is rejected whole. See
|
|
84
84
|
[Images](https://github.com/botiverse/oar/blob/main/docs/spec/conversation.md#images).
|
|
85
85
|
|
|
86
86
|
## Native inventories
|
|
@@ -88,8 +88,9 @@ input it cannot deliver is rejected whole. See
|
|
|
88
88
|
Every runtime exposes `skills(installation, options?)`,
|
|
89
89
|
`mcpServers(installation, options?)`, and `tools(installation, options?)`.
|
|
90
90
|
Options are `{ cwd?: string, timeoutMs?: number }`; cwd defaults to
|
|
91
|
-
`process.cwd()`. Queries
|
|
92
|
-
inspect an existing Session or submit a model prompt
|
|
91
|
+
`process.cwd()`. Queries discover native information independently: they do
|
|
92
|
+
not inspect an existing Session or submit a model prompt, though native
|
|
93
|
+
startup can load extensions and connect configured MCP servers.
|
|
93
94
|
|
|
94
95
|
Results distinguish `ok`, `unsupported`, and `unavailable`. Successful results
|
|
95
96
|
contain `items`, `scope.cwd`, `observedAt`, `view`, and `partial`. A
|
|
@@ -97,39 +98,37 @@ contain `items`, `scope.cwd`, `observedAt`, `view`, and `partial`. A
|
|
|
97
98
|
absent, and an unsupported query never pretends to be an empty catalog.
|
|
98
99
|
|
|
99
100
|
Codex and Claude expose skills and MCP discovery (tools are MCP-only); Grok
|
|
100
|
-
exposes independent skills
|
|
101
|
-
registered tools with active membership. Antigravity, Cursor and Kimi
|
|
102
|
-
inventory queries are unsupported.
|
|
103
|
-
MCP servers.
|
|
101
|
+
exposes independent skills and MCP configuration discovery; Pi exposes skills
|
|
102
|
+
and registered tools with active membership. Antigravity, Cursor and Kimi
|
|
103
|
+
inventory queries are unsupported.
|
|
104
104
|
|
|
105
|
-
Custom runtimes should use `defineRuntime`, which fills
|
|
105
|
+
Custom runtimes should use `defineRuntime`, which fills missing inventory
|
|
106
106
|
methods with explicit unsupported results. A manually constructed `Runtime`
|
|
107
107
|
must implement the three methods.
|
|
108
108
|
|
|
109
109
|
### Runtime branding
|
|
110
110
|
|
|
111
111
|
`runtime.brand` contains `{ name, icon }`. Built-in icons are self-contained SVG
|
|
112
|
-
data URIs, usable as an `<img src>` offline and serializable across IPC.
|
|
113
|
-
installation, login, or runtime process
|
|
114
|
-
|
|
115
|
-
For browser-only consumers (without loading native SDKs):
|
|
112
|
+
data URIs, usable as an `<img src>` offline and serializable across IPC.
|
|
113
|
+
Reading branding needs no installation, login, or runtime process. Browser-only
|
|
114
|
+
consumers can read it without loading native SDKs:
|
|
116
115
|
|
|
117
116
|
```ts
|
|
118
117
|
import { runtimeBrands } from "@botiverse/oar/brands";
|
|
119
118
|
const { name, icon } = runtimeBrands.claude;
|
|
120
119
|
```
|
|
121
120
|
|
|
122
|
-
SVG files
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
`brand.icons?.light` and `brand.icons?.dark` optionally override the default
|
|
129
|
-
light and dark **backgrounds
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
121
|
+
The SVG files' attribution and licenses ship in `assets/brands/NOTICE.md`; Pi
|
|
122
|
+
uses the official `pi.dev` logo assets. Custom runtimes created with
|
|
123
|
+
`defineRuntime` may supply `brand`; otherwise it defaults to
|
|
124
|
+
`{ name: runtime.id, icon: null }`. Runtime branding identifies the provider
|
|
125
|
+
and is independent of an application's project avatars.
|
|
126
|
+
|
|
127
|
+
`brand.icons?.light` and `brand.icons?.dark` optionally override the default
|
|
128
|
+
for light and dark **backgrounds**; they need not be distinct or both present.
|
|
129
|
+
`runtimeBrandIcon(brand, theme)` returns the matching variant, falling back to
|
|
130
|
+
`brand.icon` (null for brands without artwork). Hosts choose the theme from
|
|
131
|
+
their own surface, not necessarily the operating system setting.
|
|
133
132
|
|
|
134
133
|
```ts
|
|
135
134
|
import { runtimeBrands, runtimeBrandIcon } from "@botiverse/oar/brands";
|
package/dist/agents/types.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export interface SubagentsOptions {
|
|
|
17
17
|
readonly maxDepth?: number;
|
|
18
18
|
/** Working directory for children that name none; `process.cwd()` by default. */
|
|
19
19
|
readonly cwd?: string;
|
|
20
|
-
/** Write each child's records to `<logDir>/<
|
|
20
|
+
/** Write each child's records to `<logDir>/<name or runtime>-<sessionId>.jsonl` as an oar-voyage log. */
|
|
21
21
|
readonly logDir?: string;
|
|
22
22
|
/** Environment overlaid on every child (each spawn may add its own). */
|
|
23
23
|
readonly env?: Readonly<Record<string, string>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAChH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;KAAE,CAAC;IAC7D,gGAAgG;IAChG,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-server-client.d.ts","sourceRoot":"","sources":["../../../src/runtimes/codex/app-server-client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"app-server-client.d.ts","sourceRoot":"","sources":["../../../src/runtimes/codex/app-server-client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAG5E;;;;GAIG;AACH,gFAAgF;AAChF,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAEtD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IACtE,QAAQ,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;CACpF;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5G,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IACjD;;;;;;;;OAQG;IACH,MAAM,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC1C;;;;;;OAMG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACjC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IACrD,IAAI,IAAI,IAAI,CAAC;CACd;AAQD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,eAAe,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,EACtD,GAAG,CAAC,EAAE,MAAM,GACX,eAAe,CAIjB"}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import { spawnLineProcess } from "../../shared/executable/index.js";
|
|
2
2
|
import { processFailure } from "../../shared/executable/diagnostics.js";
|
|
3
3
|
import { asRecord, parseJson } from "../../shared/json.js";
|
|
4
|
+
import { coordinateHomeInitialization } from "./home-initialization.js";
|
|
4
5
|
export function startAppServerClient(command, env, configOverrides = {}, cwd) {
|
|
6
|
+
const environment = { ...process.env, ...env };
|
|
7
|
+
const directory = cwd ?? process.cwd();
|
|
8
|
+
return coordinateHomeInitialization(environment, directory, () => createAppServerClient(command, environment, configOverrides, directory));
|
|
9
|
+
}
|
|
10
|
+
function createAppServerClient(command, env, configOverrides, cwd) {
|
|
5
11
|
// -c KEY=VALUE injects config at launch. This is the ONLY seam that reaches
|
|
6
12
|
// codex's exec tool: thread/start.sandboxMode does not (pinned on a real
|
|
7
13
|
// login: thread param honored for its own turns but exec follows config).
|
|
8
14
|
const overrideArgs = Object.entries(configOverrides).flatMap(([key, value]) => ["-c", `${key}=${value}`]);
|
|
9
|
-
const child = spawnLineProcess(command, ["app-server", ...overrideArgs, "--listen", "stdio://"], {
|
|
15
|
+
const child = spawnLineProcess(command, ["app-server", ...overrideArgs, "--listen", "stdio://"], { cwd, env });
|
|
10
16
|
// Session initialization observes spawn failures through its pending RPC.
|
|
11
17
|
// Mark this parallel promise handled while preserving its rejection for
|
|
12
18
|
// callers that explicitly await spawned.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-server-client.js","sourceRoot":"","sources":["../../../src/runtimes/codex/app-server-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAmB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"app-server-client.js","sourceRoot":"","sources":["../../../src/runtimes/codex/app-server-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { AppServerClient } from "./app-server-client.js";
|
|
2
|
+
/** Coordinate first initialization among this module's app-server clients only. */
|
|
3
|
+
export declare function coordinateHomeInitialization(env: NodeJS.ProcessEnv, cwd: string, create: () => AppServerClient): AppServerClient;
|
|
4
|
+
//# sourceMappingURL=home-initialization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"home-initialization.d.ts","sourceRoot":"","sources":["../../../src/runtimes/codex/home-initialization.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AA4F9D,mFAAmF;AACnF,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,eAAe,GAC5B,eAAe,CA6CjB"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { realpathSync, statSync } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
const initializing = new Map();
|
|
5
|
+
// Only an observed successful handshake establishes readiness. Directory
|
|
6
|
+
// identity invalidates it when a host replaces a temporary home at the same path.
|
|
7
|
+
const initialized = new Map();
|
|
8
|
+
function homePath(env, cwd) {
|
|
9
|
+
const userHome = process.platform === "win32" ? homedir() : env.HOME;
|
|
10
|
+
const fallback = path.join(userHome === undefined || userHome === "" ? homedir() : userHome, ".codex");
|
|
11
|
+
const configured = env.CODEX_HOME;
|
|
12
|
+
const directory = path.resolve(cwd, configured === undefined || configured === "" ? fallback : configured);
|
|
13
|
+
try {
|
|
14
|
+
return realpathSync(directory);
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return directory;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function identity(home) {
|
|
21
|
+
try {
|
|
22
|
+
const stat = statSync(home);
|
|
23
|
+
return stat.isDirectory() ? `${String(stat.dev)}:${String(stat.ino)}:${String(stat.birthtimeMs)}` : null;
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/** A queued reader's existing deadline can cancel it before any process starts. */
|
|
30
|
+
function queuedClient(state, start) {
|
|
31
|
+
const ready = Promise.withResolvers();
|
|
32
|
+
const subscriptions = [];
|
|
33
|
+
const exitHandlers = [];
|
|
34
|
+
let actual = null;
|
|
35
|
+
let cancelled = false;
|
|
36
|
+
let handled = false;
|
|
37
|
+
async function spawned() { const client = await ready.promise; await client.spawned; }
|
|
38
|
+
async function exited() {
|
|
39
|
+
try {
|
|
40
|
+
const client = await ready.promise;
|
|
41
|
+
const code = await client.exited;
|
|
42
|
+
return code;
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
const spawn = spawned();
|
|
49
|
+
// Requests normally observe this failure; retain spawned's rejection for
|
|
50
|
+
// explicit callers without creating an unhandled parallel promise.
|
|
51
|
+
// oxlint-disable-next-line promise/prefer-await-to-then
|
|
52
|
+
void spawn.catch(() => { });
|
|
53
|
+
const exit = exited();
|
|
54
|
+
const begin = () => {
|
|
55
|
+
if (cancelled) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
try {
|
|
59
|
+
actual = start();
|
|
60
|
+
for (const subscribe of subscriptions.splice(0)) {
|
|
61
|
+
subscribe(actual);
|
|
62
|
+
}
|
|
63
|
+
exitHandlers.length = 0;
|
|
64
|
+
ready.resolve(actual);
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
ready.reject(error);
|
|
68
|
+
for (const handler of exitHandlers.splice(0)) {
|
|
69
|
+
handler(null);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
state.waiting.add(begin);
|
|
74
|
+
const subscribe = (callback) => {
|
|
75
|
+
if (actual !== null) {
|
|
76
|
+
callback(actual);
|
|
77
|
+
}
|
|
78
|
+
else if (!cancelled) {
|
|
79
|
+
subscriptions.push(callback);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
return {
|
|
83
|
+
spawned: spawn, exited: exit,
|
|
84
|
+
async request(method, params, onSettled) {
|
|
85
|
+
let client = null;
|
|
86
|
+
try {
|
|
87
|
+
client = await ready.promise;
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
const failure = error instanceof Error ? error : new Error(String(error));
|
|
91
|
+
onSettled?.({ kind: "error", error: failure });
|
|
92
|
+
throw failure;
|
|
93
|
+
}
|
|
94
|
+
return client.request(method, params, onSettled);
|
|
95
|
+
},
|
|
96
|
+
notify(method, params) { subscribe((client) => { client.notify(method, params); }); },
|
|
97
|
+
handle(handlers) {
|
|
98
|
+
if (handled) {
|
|
99
|
+
throw new Error("app-server handlers are already registered");
|
|
100
|
+
}
|
|
101
|
+
handled = true;
|
|
102
|
+
subscribe((client) => { client.handle(handlers); });
|
|
103
|
+
},
|
|
104
|
+
mark(callback) { subscribe((client) => { client.mark(callback); }); },
|
|
105
|
+
onExit(handler) {
|
|
106
|
+
if (cancelled) {
|
|
107
|
+
queueMicrotask(() => { handler(null); });
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
if (actual === null) {
|
|
111
|
+
exitHandlers.push(handler);
|
|
112
|
+
}
|
|
113
|
+
subscribe((client) => { client.onExit(handler); });
|
|
114
|
+
},
|
|
115
|
+
kill() {
|
|
116
|
+
if (actual !== null) {
|
|
117
|
+
actual.kill();
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
if (cancelled) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
cancelled = true;
|
|
124
|
+
state.waiting.delete(begin);
|
|
125
|
+
subscriptions.length = 0;
|
|
126
|
+
ready.reject(new Error("Codex app-server startup cancelled before spawn"));
|
|
127
|
+
for (const handler of exitHandlers.splice(0)) {
|
|
128
|
+
handler(null);
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
/** Coordinate first initialization among this module's app-server clients only. */
|
|
134
|
+
export function coordinateHomeInitialization(env, cwd, create) {
|
|
135
|
+
const home = homePath(env, cwd);
|
|
136
|
+
const active = initializing.get(home);
|
|
137
|
+
if (active !== undefined) {
|
|
138
|
+
return queuedClient(active, () => coordinateHomeInitialization(env, cwd, create));
|
|
139
|
+
}
|
|
140
|
+
const current = identity(home);
|
|
141
|
+
if (current !== null && initialized.get(home) === current) {
|
|
142
|
+
return create();
|
|
143
|
+
}
|
|
144
|
+
initialized.delete(home);
|
|
145
|
+
const state = { waiting: new Set() };
|
|
146
|
+
initializing.set(home, state);
|
|
147
|
+
let released = false;
|
|
148
|
+
const release = (success) => {
|
|
149
|
+
if (released) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
released = true;
|
|
153
|
+
const observed = success ? identity(home) : null;
|
|
154
|
+
if (observed !== null) {
|
|
155
|
+
initialized.set(home, observed);
|
|
156
|
+
}
|
|
157
|
+
initializing.delete(home);
|
|
158
|
+
for (const begin of state.waiting) {
|
|
159
|
+
begin();
|
|
160
|
+
}
|
|
161
|
+
state.waiting.clear();
|
|
162
|
+
};
|
|
163
|
+
const createOwner = () => {
|
|
164
|
+
try {
|
|
165
|
+
return create();
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
release(false);
|
|
169
|
+
throw error;
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
const client = createOwner();
|
|
173
|
+
client.onExit(() => { release(false); });
|
|
174
|
+
let accepted = false;
|
|
175
|
+
return {
|
|
176
|
+
...client,
|
|
177
|
+
async request(method, params, onSettled) {
|
|
178
|
+
try {
|
|
179
|
+
return await client.request(method, params, (outcome) => {
|
|
180
|
+
if (method === "initialize" && outcome.kind === "result") {
|
|
181
|
+
accepted = true;
|
|
182
|
+
}
|
|
183
|
+
onSettled?.(outcome);
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
if (method === "initialize") {
|
|
188
|
+
client.kill();
|
|
189
|
+
await client.exited;
|
|
190
|
+
release(false);
|
|
191
|
+
}
|
|
192
|
+
throw error;
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
notify(method, params) {
|
|
196
|
+
client.notify(method, params);
|
|
197
|
+
if (method === "initialized" && accepted) {
|
|
198
|
+
release(true);
|
|
199
|
+
}
|
|
200
|
+
},
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=home-initialization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"home-initialization.js","sourceRoot":"","sources":["../../../src/runtimes/codex/home-initialization.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { FrameBody, SessionEdge } from "../../contracts/session.js";
|
|
2
2
|
import { type JsonRecord } from "../../shared/json.js";
|
|
3
|
+
import { type SubagentThreads } from "./tasks.js";
|
|
3
4
|
export type ProjectionCommand = {
|
|
4
5
|
readonly kind: "frame";
|
|
5
6
|
readonly body: FrameBody;
|
|
@@ -25,6 +26,8 @@ export interface CodexProjectionState {
|
|
|
25
26
|
* flag lets the second report close nothing instead of ending twice.
|
|
26
27
|
*/
|
|
27
28
|
readonly compacting: boolean;
|
|
29
|
+
/** Subagent threads the stream reported starting: who started each, and its path. */
|
|
30
|
+
readonly subagents: SubagentThreads;
|
|
28
31
|
}
|
|
29
32
|
export declare function initialCodexProjection(rootThreadId: string): CodexProjectionState;
|
|
30
33
|
/** Fold one codex notification into the next state plus commands. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../../src/runtimes/codex/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAET,WAAW,EAEZ,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../../src/runtimes/codex/projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAET,WAAW,EAEZ,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAG3E,OAAO,EAAmD,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAiBnG,MAAM,MAAM,iBAAiB,GACzB;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,gEAAgE;IAChE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,oFAAoF;IACpF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,qFAAqF;IACrF,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;CACrC;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,oBAAoB,CAEjF;AA6LD,qEAAqE;AACrE,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,oBAAoB,EAC3B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,GACjB;IAAE,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAAE,CAkC3F"}
|
|
@@ -2,7 +2,7 @@ import { classifyFailure } from "../../shared/failure-class.js";
|
|
|
2
2
|
import { asNumber, asRecord } from "../../shared/json.js";
|
|
3
3
|
import { codexItemExitCode, codexItemInput, codexItemOutput } from "./item-detail.js";
|
|
4
4
|
import { codexReasoningContent } from "./reasoning.js";
|
|
5
|
-
import { codexTaskViews } from "./tasks.js";
|
|
5
|
+
import { aboutOwnChild, codexTaskViews, withStartedChild } from "./tasks.js";
|
|
6
6
|
/**
|
|
7
7
|
* The codex notification → record projection as a PURE FOLD (see
|
|
8
8
|
* runtimes/claude/projection.ts for the shape). Every notification becomes
|
|
@@ -17,7 +17,7 @@ import { codexTaskViews } from "./tasks.js";
|
|
|
17
17
|
const TOOL_ITEM_TYPES = new Set(["commandExecution", "fileChange", "mcpToolCall", "webSearch"]);
|
|
18
18
|
const COLLAB_ITEM_TYPES = new Set(["collabAgentToolCall", "collabToolCall", "subAgentActivity"]);
|
|
19
19
|
export function initialCodexProjection(rootThreadId) {
|
|
20
|
-
return { rootThreadId, lastErrorDetail: null, compacting: false };
|
|
20
|
+
return { rootThreadId, lastErrorDetail: null, compacting: false, subagents: new Map() };
|
|
21
21
|
}
|
|
22
22
|
const COMPACTION_ITEM_TYPE = "contextCompaction";
|
|
23
23
|
function isCompactionItem(params) {
|
|
@@ -129,12 +129,15 @@ function settingsViews(params) {
|
|
|
129
129
|
}
|
|
130
130
|
return events;
|
|
131
131
|
}
|
|
132
|
-
/** Edges a collaboration item establishes: the
|
|
133
|
-
function collabEdges(state, item) {
|
|
132
|
+
/** Edges a collaboration item establishes: the sender thread (the reporting thread unless the item names one) spawned or addressed the named threads. */
|
|
133
|
+
function collabEdges(state, reporter, item) {
|
|
134
134
|
if (item === null || typeof item.type !== "string" || !COLLAB_ITEM_TYPES.has(item.type)) {
|
|
135
135
|
return [];
|
|
136
136
|
}
|
|
137
|
-
|
|
137
|
+
if (item.type === "subAgentActivity" && !aboutOwnChild(state.subagents, state.rootThreadId, reporter, item)) {
|
|
138
|
+
return [];
|
|
139
|
+
}
|
|
140
|
+
const parent = typeof item.senderThreadId === "string" ? item.senderThreadId : reporter;
|
|
138
141
|
const receivers = Array.isArray(item.receiverThreadIds) ? item.receiverThreadIds : [];
|
|
139
142
|
const children = [...receivers, item.agentThreadId]
|
|
140
143
|
.filter((id) => typeof id === "string" && id.length > 0 && id !== parent);
|
|
@@ -147,7 +150,7 @@ function spanIdOf(params) {
|
|
|
147
150
|
const turnId = asRecord(params.turn)?.id;
|
|
148
151
|
return typeof turnId === "string" ? turnId : undefined;
|
|
149
152
|
}
|
|
150
|
-
function viewsFor(state, method, params) {
|
|
153
|
+
function viewsFor(state, reporter, method, params) {
|
|
151
154
|
switch (method) {
|
|
152
155
|
case "item/agentMessage/delta":
|
|
153
156
|
return typeof params.delta === "string" ? [{ kind: "text_delta", text: params.delta }] : [];
|
|
@@ -179,7 +182,10 @@ function viewsFor(state, method, params) {
|
|
|
179
182
|
return [{ kind: "compaction_ended", outcome: "completed" }];
|
|
180
183
|
}
|
|
181
184
|
const item = asRecord(params.item);
|
|
182
|
-
|
|
185
|
+
if (item?.type === "subAgentActivity") {
|
|
186
|
+
return aboutOwnChild(state.subagents, state.rootThreadId, reporter, item) ? codexTaskViews(item) : [];
|
|
187
|
+
}
|
|
188
|
+
return toolViews(method, item);
|
|
183
189
|
}
|
|
184
190
|
case "turn/completed":
|
|
185
191
|
return [{ kind: "turn_ended", outcome: settleOutcome(state, asRecord(params.turn)?.status) }];
|
|
@@ -197,12 +203,12 @@ export function foldCodexNotification(state, method, params) {
|
|
|
197
203
|
const spanId = spanIdOf(params);
|
|
198
204
|
const event = {
|
|
199
205
|
kind: "frame",
|
|
200
|
-
body: { type: method, native: params, events: viewsFor(state, method, params) },
|
|
206
|
+
body: { type: method, native: params, events: viewsFor(state, threadId, method, params) },
|
|
201
207
|
...(spanId === undefined ? {} : { spanId }),
|
|
202
208
|
...(threadId === state.rootThreadId ? {} : { sessionId: threadId }),
|
|
203
209
|
};
|
|
204
210
|
const links = method === "item/started" || method === "item/completed"
|
|
205
|
-
? collabEdges(state, asRecord(params.item)).map((edge) => ({ kind: "link", edge }))
|
|
211
|
+
? collabEdges(state, threadId, asRecord(params.item)).map((edge) => ({ kind: "link", edge }))
|
|
206
212
|
: [];
|
|
207
213
|
let next = state;
|
|
208
214
|
if (method === "error") {
|
|
@@ -223,6 +229,10 @@ export function foldCodexNotification(state, method, params) {
|
|
|
223
229
|
else if (method === "thread/compacted" && threadId === state.rootThreadId) {
|
|
224
230
|
next = { ...state, compacting: false };
|
|
225
231
|
}
|
|
232
|
+
const subagents = withStartedChild(next.subagents, threadId, asRecord(params.item));
|
|
233
|
+
if (subagents !== next.subagents) {
|
|
234
|
+
next = { ...next, subagents };
|
|
235
|
+
}
|
|
226
236
|
return { state: next, commands: [event, ...links] };
|
|
227
237
|
}
|
|
228
238
|
//# sourceMappingURL=projection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../src/runtimes/codex/projection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../src/runtimes/codex/projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,29 @@ import type { JsonRecord } from "../../shared/json.js";
|
|
|
6
6
|
* (0.158.0) completed, with the child's `agentThreadId` and its canonical
|
|
7
7
|
* `agentPath` (`/root/name`). The child thread is its own session, so it is
|
|
8
8
|
* the task id and the `childSessionId`. A codex subagent can be given more
|
|
9
|
-
* work after it completed, which `interacted` reports.
|
|
9
|
+
* work after it completed, which `interacted` reports. The projection passes
|
|
10
|
+
* only items about the reporting thread's own child: a thread messaging the
|
|
11
|
+
* root or a sibling reports `interacted` too, and that changes no task.
|
|
10
12
|
*/
|
|
11
13
|
export declare function codexTaskViews(item: JsonRecord): TaskEventBody[];
|
|
14
|
+
/** A subagent thread as its `started` item reported it: the thread that started it, and its canonical path. */
|
|
15
|
+
export interface SubagentThread {
|
|
16
|
+
readonly parent: string;
|
|
17
|
+
readonly path?: string;
|
|
18
|
+
}
|
|
19
|
+
/** Subagent threads by thread id. */
|
|
20
|
+
export type SubagentThreads = ReadonlyMap<string, SubagentThread>;
|
|
21
|
+
/** `threads` plus the child a `started` item reported on `reporter`'s thread names. */
|
|
22
|
+
export declare function withStartedChild(threads: SubagentThreads, reporter: string, item: JsonRecord | null): SubagentThreads;
|
|
23
|
+
/**
|
|
24
|
+
* A thread reports `subAgentActivity` on its own thread for its own children
|
|
25
|
+
* and for the messages it sends to peers: on 0.158.0 alpha's `interacted
|
|
26
|
+
* /root/beta` (a sibling) and gamma's `interacted /root` (the root) arrived
|
|
27
|
+
* on alpha's and gamma's threads. Only an item about the reporting thread's
|
|
28
|
+
* own child is a task change or an edge. The child's recorded start decides;
|
|
29
|
+
* without one (started before a resume) its `agentPath` does; when neither
|
|
30
|
+
* the parent path's thread nor the reporter's path is known, the child is
|
|
31
|
+
* taken to be the reporter's.
|
|
32
|
+
*/
|
|
33
|
+
export declare function aboutOwnChild(threads: SubagentThreads, rootThreadId: string, reporter: string, item: JsonRecord): boolean;
|
|
12
34
|
//# sourceMappingURL=tasks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../../src/runtimes/codex/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../../src/runtimes/codex/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa,EAAE,CA0BhE;AAED,+GAA+G;AAC/G,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qCAAqC;AACrC,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAKlE,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,eAAe,CAOrH;AAoBD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAUzH"}
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
* (0.158.0) completed, with the child's `agentThreadId` and its canonical
|
|
5
5
|
* `agentPath` (`/root/name`). The child thread is its own session, so it is
|
|
6
6
|
* the task id and the `childSessionId`. A codex subagent can be given more
|
|
7
|
-
* work after it completed, which `interacted` reports.
|
|
7
|
+
* work after it completed, which `interacted` reports. The projection passes
|
|
8
|
+
* only items about the reporting thread's own child: a thread messaging the
|
|
9
|
+
* root or a sibling reports `interacted` too, and that changes no task.
|
|
8
10
|
*/
|
|
9
11
|
export function codexTaskViews(item) {
|
|
10
12
|
const taskId = typeof item.agentThreadId === "string" && item.agentThreadId !== "" ? item.agentThreadId : undefined;
|
|
@@ -33,4 +35,52 @@ export function codexTaskViews(item) {
|
|
|
33
35
|
return [];
|
|
34
36
|
}
|
|
35
37
|
}
|
|
38
|
+
/** The root thread's canonical path (0.158.0: gamma's `interacted` naming the root says `/root`). */
|
|
39
|
+
const ROOT_PATH = "/root";
|
|
40
|
+
/** `threads` plus the child a `started` item reported on `reporter`'s thread names. */
|
|
41
|
+
export function withStartedChild(threads, reporter, item) {
|
|
42
|
+
const child = item?.type === "subAgentActivity" && item.kind === "started" ? item.agentThreadId : undefined;
|
|
43
|
+
if (typeof child !== "string" || child.length === 0 || threads.has(child)) {
|
|
44
|
+
return threads;
|
|
45
|
+
}
|
|
46
|
+
const entry = typeof item?.agentPath === "string" ? { parent: reporter, path: item.agentPath } : { parent: reporter };
|
|
47
|
+
return new Map([...threads, [child, entry]]);
|
|
48
|
+
}
|
|
49
|
+
/** The thread at a canonical path, when the stream has named it. */
|
|
50
|
+
function threadAt(threads, rootThreadId, path) {
|
|
51
|
+
return path === ROOT_PATH ? rootThreadId : [...threads].find(([, thread]) => thread.path === path)?.[0];
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Whether `path` names a child of `reporter`, judged by the parent path:
|
|
55
|
+
* decided when the parent path's thread is known, or when the reporter's own
|
|
56
|
+
* path is (then the parent is someone else); null when neither is.
|
|
57
|
+
*/
|
|
58
|
+
function childByPath(threads, rootThreadId, reporter, path) {
|
|
59
|
+
const parent = threadAt(threads, rootThreadId, path.slice(0, path.lastIndexOf("/")));
|
|
60
|
+
if (parent !== undefined) {
|
|
61
|
+
return parent === reporter;
|
|
62
|
+
}
|
|
63
|
+
return reporter === rootThreadId || threads.get(reporter)?.path !== undefined ? false : null;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* A thread reports `subAgentActivity` on its own thread for its own children
|
|
67
|
+
* and for the messages it sends to peers: on 0.158.0 alpha's `interacted
|
|
68
|
+
* /root/beta` (a sibling) and gamma's `interacted /root` (the root) arrived
|
|
69
|
+
* on alpha's and gamma's threads. Only an item about the reporting thread's
|
|
70
|
+
* own child is a task change or an edge. The child's recorded start decides;
|
|
71
|
+
* without one (started before a resume) its `agentPath` does; when neither
|
|
72
|
+
* the parent path's thread nor the reporter's path is known, the child is
|
|
73
|
+
* taken to be the reporter's.
|
|
74
|
+
*/
|
|
75
|
+
export function aboutOwnChild(threads, rootThreadId, reporter, item) {
|
|
76
|
+
const child = item.agentThreadId;
|
|
77
|
+
if (item.kind === "started" || typeof child !== "string") {
|
|
78
|
+
return item.kind === "started";
|
|
79
|
+
}
|
|
80
|
+
const started = threads.get(child);
|
|
81
|
+
if (child === rootThreadId || started !== undefined) {
|
|
82
|
+
return started?.parent === reporter;
|
|
83
|
+
}
|
|
84
|
+
return (typeof item.agentPath === "string" ? childByPath(threads, rootThreadId, reporter, item.agentPath) : null) ?? true;
|
|
85
|
+
}
|
|
36
86
|
//# sourceMappingURL=tasks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../src/runtimes/codex/tasks.ts"],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../src/runtimes/codex/tasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
export type VersionReader = (stdout: string) => string | undefined;
|
|
3
3
|
/**
|
|
4
4
|
* Read one executable's `--version`, its first line unless `read` picks another part.
|
|
5
|
-
* Returns undefined when the executable rejects the flag;
|
|
5
|
+
* Returns undefined when the executable rejects the flag; execution failures
|
|
6
|
+
* and timeouts throw with the native reason and bounded stderr tail.
|
|
6
7
|
*/
|
|
7
8
|
export declare function readExecutableVersion(executable: string, timeoutMs?: number, read?: VersionReader): Promise<string | undefined>;
|
|
8
9
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/shared/executable/version.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/shared/executable/version.ts"],"names":[],"mappings":"AAGA,qFAAqF;AACrF,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAMnE;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,GAAE,aAAyB,GAC9B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAgB7B"}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { runExecutable } from "./run.js";
|
|
2
|
+
import { processFailure, stderrTail } from "./diagnostics.js";
|
|
2
3
|
function firstLine(stdout) {
|
|
3
4
|
return stdout.trim().split(/\r?\n/u)[0];
|
|
4
5
|
}
|
|
5
6
|
/**
|
|
6
7
|
* Read one executable's `--version`, its first line unless `read` picks another part.
|
|
7
|
-
* Returns undefined when the executable rejects the flag;
|
|
8
|
+
* Returns undefined when the executable rejects the flag; execution failures
|
|
9
|
+
* and timeouts throw with the native reason and bounded stderr tail.
|
|
8
10
|
*/
|
|
9
11
|
export async function readExecutableVersion(executable, timeoutMs, read = firstLine) {
|
|
10
12
|
const result = await runExecutable(executable, ["--version"], timeoutMs === undefined ? {} : { timeoutMs });
|
|
11
|
-
if (!result.ok && result.exitCode === null) {
|
|
12
|
-
throw
|
|
13
|
+
if (!result.ok && (result.exitCode === null || result.diagnostics?.timeoutMs !== undefined)) {
|
|
14
|
+
throw processFailure(`Failed to run ${executable} --version`, result.diagnostics ?? {
|
|
15
|
+
exitCode: result.exitCode, signal: null, stderr: stderrTail(result.stderr),
|
|
16
|
+
});
|
|
13
17
|
}
|
|
14
18
|
if (!result.ok) {
|
|
15
19
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/shared/executable/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/shared/executable/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAK9D,SAAS,SAAS,CAAC,MAAc;IAC/B,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,UAAkB,EAClB,SAAkB,EAClB,OAAsB,SAAS;IAE/B,MAAM,MAAM,GAAG,MAAM,aAAa,CAChC,UAAU,EACV,CAAC,WAAW,CAAC,EACb,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAC7C,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,SAAS,KAAK,SAAS,CAAC,EAAE,CAAC;QAC5F,MAAM,cAAc,CAAC,iBAAiB,UAAU,YAAY,EAAE,MAAM,CAAC,WAAW,IAAI;YAClF,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;SAC3E,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;IAC5C,OAAO,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;AAC7E,CAAC"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* snapshot moves and this table gets a conscious update.
|
|
5
5
|
*/
|
|
6
6
|
export function classifyFailure(reason) {
|
|
7
|
-
if (/\b401\b|
|
|
7
|
+
if (/\b401\b|authenticat(?:e|ed|ion)|\boauth\b|unauthorized|invalid (?:x-)?api[- ]?key|log(?:ged)? ?in/iu.test(reason)) {
|
|
8
8
|
return "auth";
|
|
9
9
|
}
|
|
10
10
|
if (/\b429\b|rate.?limit|quota|usage limit/iu.test(reason)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"failure-class.js","sourceRoot":"","sources":["../../src/shared/failure-class.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,IAAI,
|
|
1
|
+
{"version":3,"file":"failure-class.js","sourceRoot":"","sources":["../../src/shared/failure-class.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,IAAI,qGAAqG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACvH,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,yCAAyC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3D,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,iIAAiI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACnJ,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IACD,IAAI,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -33,7 +33,7 @@ export interface RecordAt {
|
|
|
33
33
|
* prunes facts (record-stream.md, "The rules"). The single-active-turn rule
|
|
34
34
|
* is the adapter's control decision and shows up as a rejected prompt
|
|
35
35
|
* response, never as a dropped event. Adapters keep only runtime-specific
|
|
36
|
-
* pumping (frame → `frame()`) and control decisions (busy,
|
|
36
|
+
* pumping (frame → `frame()`) and control decisions (busy, no_active_turn).
|
|
37
37
|
*/
|
|
38
38
|
export interface SessionKernel {
|
|
39
39
|
readonly sessionId: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botiverse/oar",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.4",
|
|
4
4
|
"description": "A programming interface for all agent harnesses: provider-independent contracts for controlling and observing agent runtimes",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|