@open-mercato/cezar 0.9.1-pr470.729 → 0.9.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 +9 -13
- package/dist/config.d.ts +3 -7
- package/dist/config.js +1 -3
- package/dist/config.js.map +1 -1
- package/dist/core/agent-env.js +15 -21
- package/dist/core/agent-env.js.map +1 -1
- package/dist/core/agent-runner.d.ts +6 -16
- package/dist/core/agent-runner.js +3 -15
- package/dist/core/agent-runner.js.map +1 -1
- package/dist/core/backend-detect.d.ts +5 -5
- package/dist/core/backend-detect.js +5 -37
- package/dist/core/backend-detect.js.map +1 -1
- package/dist/core/model-identity.js +0 -4
- package/dist/core/model-identity.js.map +1 -1
- package/dist/core/model-presets.js +0 -5
- package/dist/core/model-presets.js.map +1 -1
- package/dist/core/runner-factory.js +0 -3
- package/dist/core/runner-factory.js.map +1 -1
- package/dist/core/ui-events.d.ts +1 -1
- package/dist/runs/store.d.ts +12 -13
- package/dist/runs/store.js +2 -3
- package/dist/runs/store.js.map +1 -1
- package/dist/server/open-in-app.d.ts +1 -2
- package/dist/server/open-in-app.js +0 -1
- package/dist/server/open-in-app.js.map +1 -1
- package/dist/server/server.d.ts +0 -7
- package/dist/server/server.js +7 -102
- package/dist/server/server.js.map +1 -1
- package/dist/server-install/steps.js +2 -6
- package/dist/server-install/steps.js.map +1 -1
- package/dist/workflows/types.d.ts +14 -14
- package/dist/workflows/types.js +1 -2
- package/dist/workflows/types.js.map +1 -1
- package/dist/workspace/config.d.ts +0 -11
- package/dist/workspace/config.js +0 -13
- package/dist/workspace/config.js.map +1 -1
- package/package.json +1 -1
- package/web/dist/assets/{centered-state-Dk2G08OJ.js → centered-state-DOsTcJZF.js} +11 -11
- package/web/dist/assets/{commit-list-BKRBe1ff.js → commit-list-BrxBEzRK.js} +1 -1
- package/web/dist/assets/{compare-variants-BcWTGJrd.js → compare-variants-Bv2c9ORF.js} +1 -1
- package/web/dist/assets/{diff-view-CFQ0zXBT.js → diff-view-DCeSegKk.js} +3 -3
- package/web/dist/assets/{dist-DC3TJo3T.js → dist-B6XQOhgM.js} +1 -1
- package/web/dist/assets/{git-toolbar-CaBCbiSp.js → git-toolbar-pIC1ubPM.js} +1 -1
- package/web/dist/assets/github-DTTSG0ht.js +1 -0
- package/web/dist/assets/index-Cijmlz7q.js +30 -0
- package/web/dist/assets/index-DzroxqBG.css +2 -0
- package/web/dist/assets/{project-router-CXmL3t6s.js → project-router-BMx4e8m-.js} +1 -1
- package/web/dist/assets/{repo-git-D5N2okPE.js → repo-git-BusYfa3t.js} +1 -1
- package/web/dist/assets/{run-diff-3xRPsGI4.js → run-diff-wOJ3odA-.js} +2 -2
- package/web/dist/assets/run-header-Cg5incil.js +1 -0
- package/web/dist/assets/skills-PpP2owbM.js +1 -0
- package/web/dist/assets/{tab-link-Q8NhDqnE.js → tab-link-F3uQrdm2.js} +1 -1
- package/web/dist/assets/{task-changes-DHpP7WS3.js → task-changes-iD9kS79I.js} +1 -1
- package/web/dist/assets/{task-commits-D0IcDbGX.js → task-commits-COkLaUri.js} +1 -1
- package/web/dist/assets/{task-files-DvKQHU1f.js → task-files-Ckttz7XH.js} +2 -2
- package/web/dist/assets/task-thread-CQD91VPt.js +9 -0
- package/web/dist/assets/{use-desktop-M42tdz-1.js → use-desktop-DUh0STzq.js} +2 -2
- package/web/dist/assets/workflows-BFk8C0co.js +11 -0
- package/web/dist/index.html +5 -5
- package/dist/core/pi-runner.d.ts +0 -24
- package/dist/core/pi-runner.js +0 -342
- package/dist/core/pi-runner.js.map +0 -1
- package/dist/core/pi-ui-mapper.d.ts +0 -24
- package/dist/core/pi-ui-mapper.js +0 -255
- package/dist/core/pi-ui-mapper.js.map +0 -1
- package/dist/skills-update.d.ts +0 -88
- package/dist/skills-update.js +0 -392
- package/dist/skills-update.js.map +0 -1
- package/scripts/mock-pi-rpc.mjs +0 -83
- package/web/dist/assets/circle-check-ClxqLJCI.js +0 -1
- package/web/dist/assets/github-Dn-ZvcbO.js +0 -1
- package/web/dist/assets/index-CDk4tcLt.js +0 -30
- package/web/dist/assets/index-CwNZ1v7S.css +0 -2
- package/web/dist/assets/run-header-Bd1vyMz_.js +0 -1
- package/web/dist/assets/skills-C5b1tbwv.js +0 -1
- package/web/dist/assets/task-thread-JlVT8p1a.js +0 -9
- package/web/dist/assets/workflows-D_gHO2WW.js +0 -11
package/README.md
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
**Parallel coding agents orchestrator** — a local cockpit for running and
|
|
6
6
|
tracking AI coding-agent tasks in your repo.
|
|
7
7
|
|
|
8
|
-
Type a task, pick a workflow and an agent — **Claude Code, Codex
|
|
9
|
-
(
|
|
8
|
+
Type a task, pick a workflow and an agent — **Claude Code, Codex or OpenCode
|
|
9
|
+
(experimental), or a mix of them per step** — and watch it work live: steps, tool calls,
|
|
10
10
|
tokens, diffs, in a browser cockpit that runs entirely on your machine.
|
|
11
11
|
Your CLI logins, your `gh`, your files. No accounts, no database, no cloud.
|
|
12
12
|
|
|
@@ -382,7 +382,7 @@ steps:
|
|
|
382
382
|
prompt: "{{task}}"
|
|
383
383
|
skill: project-conventions # optional — from .ai/skills or .ai/cezar/skills
|
|
384
384
|
# model: opus # optional per-step model override
|
|
385
|
-
# runner: codex # optional per-step backend: claude · codex · opencode
|
|
385
|
+
# runner: codex # optional per-step backend: claude · codex · opencode
|
|
386
386
|
# allowedTools: [Read, Edit, Write, Grep, Glob, Bash]
|
|
387
387
|
- id: verify
|
|
388
388
|
name: Verify
|
|
@@ -432,10 +432,8 @@ Useful environment variables:
|
|
|
432
432
|
| `CEZ_CLAUDE_BIN=/path/to/claude` | Override which `claude` binary is used. |
|
|
433
433
|
| `CEZ_CODEX_BIN=/path/to/codex` | Override which `codex` binary is used. |
|
|
434
434
|
| `CEZ_OPENCODE_BIN=/path/to/opencode` | Override which `opencode` binary is used. |
|
|
435
|
-
| `CEZ_PI_BIN=/path/to/pi` | Override which `pi` binary is used. |
|
|
436
435
|
| `CEZ_BROWSE_ROOT=~/` | Default root for **Add project → Open local folder…**. The picker cannot navigate above it; a saved workspace value overrides the environment default and must name an existing folder. |
|
|
437
436
|
| `CEZ_PROJECTS_DIR=~/cezar/projects` | Default destination for **Clone from GitHub**. Saved workspace settings override it, and missing directories are created recursively. |
|
|
438
|
-
| `CEZ_SKILLS_AUTO_UPDATE=0` | Disable automatic checks and updates for upstream-CLI-tracked Open Mercato skill installations. On by default; a saved global Skills setting overrides this environment default. Checks are delayed, bounded, cached, and non-blocking. |
|
|
439
437
|
| `CEZ_SINGLE_PROJECT=1` | Opt into a launch-project-only cockpit: only the exact value `1` enables it. Project add, edit, checkout, folder browsing, and removal are refused and only the launch project is shown. Off by default; stored registry rows are retained, so unsetting it and restarting restores the full multi-project workspace without migration or data loss. |
|
|
440
438
|
| `GITHUB_TOKEN` | Fallback for GitHub reads/PRs when `gh` isn't authenticated. |
|
|
441
439
|
| `CEZ_ENV_PASSTHROUGH=A,B` | Forward these extra host env vars to spawned agents. By default agents get a least-privilege env (safe shell/toolchain vars + the backend's own auth + `GITHUB_TOKEN` + `CEZ_*`), not your full environment — use this to add a var an agent needs. |
|
|
@@ -451,22 +449,20 @@ Useful environment variables:
|
|
|
451
449
|
## Coding agent backends
|
|
452
450
|
|
|
453
451
|
cezar is not married to one vendor. Every agent step runs through a single
|
|
454
|
-
`AgentRunner` seam with
|
|
452
|
+
`AgentRunner` seam with three built-in backends:
|
|
455
453
|
|
|
456
454
|
| Backend | CLI | How cezar drives it | Tool access |
|
|
457
455
|
|---|---|---|---|
|
|
458
456
|
| **Claude Code** (default) | [`claude`](https://github.com/anthropics/claude-code) | Headless `stream-json` mode. | Per-tool `--allowedTools` (`bashAllowlist` scopes `Bash`); `dontAsk` denies unapproved tools without prompting (`CEZ_APPROVAL_GATE=1` → `acceptEdits` + approval UI). |
|
|
459
457
|
| **Codex** | [`codex`](https://github.com/openai/codex) | `codex app-server` — JSON-RPC over stdio, the same transport the Codex IDE extensions use. | Ignores `allowedTools`; the default auto mode uses `danger-full-access` with `approvalPolicy: never` (`CEZ_CODEX_NETWORK=0` opts into the network-blocked `workspace-write` sandbox). |
|
|
460
458
|
| **OpenCode** _(experimental)_ | [`opencode`](https://opencode.ai) | `opencode serve` — a local HTTP server with an SSE event stream. | Ignores `allowedTools` entirely; every permission is auto-approved. |
|
|
461
|
-
| **pi** _(experimental)_ | [`pi`](https://github.com/badlogic/pi-mono) | Persistent `--mode rpc` over JSONL; models are picked with the `provider/model` convention. | Maps `allowedTools` onto pi's `--tools` allowlist; a configured `bashAllowlist` disables Bash because pi cannot express command-prefix rules. |
|
|
462
459
|
|
|
463
|
-
> ⚠️ **OpenCode
|
|
464
|
-
>
|
|
465
|
-
>
|
|
466
|
-
> rough edges.
|
|
460
|
+
> ⚠️ **OpenCode support is experimental.** The runner works but is less battle-tested
|
|
461
|
+
> than the Claude Code and Codex backends, and OpenCode auto-approves every permission
|
|
462
|
+
> (it ignores `allowedTools`). Treat it as a preview and expect rough edges.
|
|
467
463
|
|
|
468
464
|
On startup cezar probes which CLIs are installed and the cockpit only offers
|
|
469
|
-
the backends it found — install any one of the
|
|
465
|
+
the backends it found — install any one of the three and you're operational.
|
|
470
466
|
|
|
471
467
|
**Pick a backend at three levels** (most specific wins):
|
|
472
468
|
|
|
@@ -566,7 +562,7 @@ never blocks startup):
|
|
|
566
562
|
// the source against a moving branch head — cezar verifies it resolves to
|
|
567
563
|
// exactly that commit, and reports it as `team.commit`.
|
|
568
564
|
"worktreeRetention": 10, // keep the last N finished worktrees on disk; 0 = unlimited (branch always kept)
|
|
569
|
-
"defaultRunner": "claude", // agent backend: "claude" (default) · "codex" · "opencode"
|
|
565
|
+
"defaultRunner": "claude", // agent backend: "claude" (default) · "codex" · "opencode"
|
|
570
566
|
"plannerModel": "sonnet", // model the "Plan first" button uses to draft chains
|
|
571
567
|
"baseBranch": "develop" // branch worktrees fork from + PRs target (also settable in the Git tab)
|
|
572
568
|
}
|
package/dist/config.d.ts
CHANGED
|
@@ -54,7 +54,7 @@ declare const configSchema: z.ZodObject<{
|
|
|
54
54
|
* step (workflow). The GUI only offers runners actually installed; this is
|
|
55
55
|
* the preselected default. Also the runner the chain planner uses.
|
|
56
56
|
*/
|
|
57
|
-
defaultRunner: z.ZodDefault<z.ZodEnum<["claude", "codex", "opencode"
|
|
57
|
+
defaultRunner: z.ZodDefault<z.ZodEnum<["claude", "codex", "opencode"]>>;
|
|
58
58
|
/** Model for the chain planner (spec 008) — cheap but reliable at JSON. */
|
|
59
59
|
plannerModel: z.ZodDefault<z.ZodString>;
|
|
60
60
|
/** Model for the task namer (spec 2026-07-17-task-auto-naming) — the cheapest
|
|
@@ -94,17 +94,14 @@ declare const configSchema: z.ZodObject<{
|
|
|
94
94
|
claude: z.ZodOptional<z.ZodString>;
|
|
95
95
|
codex: z.ZodOptional<z.ZodString>;
|
|
96
96
|
opencode: z.ZodOptional<z.ZodString>;
|
|
97
|
-
pi: z.ZodOptional<z.ZodString>;
|
|
98
97
|
}, "strip", z.ZodTypeAny, {
|
|
99
98
|
claude?: string | undefined;
|
|
100
99
|
codex?: string | undefined;
|
|
101
100
|
opencode?: string | undefined;
|
|
102
|
-
pi?: string | undefined;
|
|
103
101
|
}, {
|
|
104
102
|
claude?: string | undefined;
|
|
105
103
|
codex?: string | undefined;
|
|
106
104
|
opencode?: string | undefined;
|
|
107
|
-
pi?: string | undefined;
|
|
108
105
|
}>>>;
|
|
109
106
|
}, "strip", z.ZodTypeAny, {
|
|
110
107
|
skillsRepos: {
|
|
@@ -114,7 +111,7 @@ declare const configSchema: z.ZodObject<{
|
|
|
114
111
|
maxParallel: number;
|
|
115
112
|
worktreeRetention: number;
|
|
116
113
|
memoryLimitMb?: number | undefined;
|
|
117
|
-
defaultRunner: "claude" | "codex" | "opencode"
|
|
114
|
+
defaultRunner: "claude" | "codex" | "opencode";
|
|
118
115
|
plannerModel: string;
|
|
119
116
|
namerModel: string;
|
|
120
117
|
liveTitleUpdates?: boolean | undefined;
|
|
@@ -125,7 +122,6 @@ declare const configSchema: z.ZodObject<{
|
|
|
125
122
|
claude?: string | undefined;
|
|
126
123
|
codex?: string | undefined;
|
|
127
124
|
opencode?: string | undefined;
|
|
128
|
-
pi?: string | undefined;
|
|
129
125
|
} | undefined;
|
|
130
126
|
}, {
|
|
131
127
|
skillsRepos?: {
|
|
@@ -135,7 +131,7 @@ declare const configSchema: z.ZodObject<{
|
|
|
135
131
|
maxParallel?: number | undefined;
|
|
136
132
|
worktreeRetention?: unknown;
|
|
137
133
|
memoryLimitMb?: unknown;
|
|
138
|
-
defaultRunner?: "claude" | "codex" | "opencode" |
|
|
134
|
+
defaultRunner?: "claude" | "codex" | "opencode" | undefined;
|
|
139
135
|
plannerModel?: string | undefined;
|
|
140
136
|
namerModel?: string | undefined;
|
|
141
137
|
liveTitleUpdates?: boolean | undefined;
|
package/dist/config.js
CHANGED
|
@@ -2,7 +2,6 @@ import { readFile } from 'node:fs/promises';
|
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { loadWorkspaceConfig } from './workspace/config.js';
|
|
5
|
-
import { RUNNER_IDS } from './core/agent-runner.js';
|
|
6
5
|
/**
|
|
7
6
|
* Optional advanced config at `.ai/cezar/config.json`. Zero-config rule:
|
|
8
7
|
* a missing file behaves exactly like the default below, an unreadable or
|
|
@@ -47,7 +46,7 @@ const configSchema = z.object({
|
|
|
47
46
|
* step (workflow). The GUI only offers runners actually installed; this is
|
|
48
47
|
* the preselected default. Also the runner the chain planner uses.
|
|
49
48
|
*/
|
|
50
|
-
defaultRunner: z.enum(
|
|
49
|
+
defaultRunner: z.enum(['claude', 'codex', 'opencode']).default('claude'),
|
|
51
50
|
/** Model for the chain planner (spec 008) — cheap but reliable at JSON. */
|
|
52
51
|
plannerModel: z.string().min(1).default('sonnet'),
|
|
53
52
|
/** Model for the task namer (spec 2026-07-17-task-auto-naming) — the cheapest
|
|
@@ -88,7 +87,6 @@ const configSchema = z.object({
|
|
|
88
87
|
claude: z.string().trim().min(1).max(200).optional(),
|
|
89
88
|
codex: z.string().trim().min(1).max(200).optional(),
|
|
90
89
|
opencode: z.string().trim().min(1).max(200).optional(),
|
|
91
|
-
pi: z.string().trim().min(1).max(200).optional(),
|
|
92
90
|
})
|
|
93
91
|
.optional()
|
|
94
92
|
.catch(undefined),
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,gFAAgF;IAChF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;CACvC,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,oBAAoB,GAAuB;IACtD,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,MAAM,EAAE;CAC7C,CAAC;AAEF,mFAAmF;AACnF,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAE7C;;oEAEoE;AACpE,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAElE,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC;IACpE,4EAA4E;IAC5E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD;;;;;;OAMG;IACH,iBAAiB,EAAE,uBAAuB,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC;IAChH;;;;;OAKG;IACH,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACjF;;;;OAIG;IACH,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACxE,2EAA2E;IAC3E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACjD;sFACkF;IAClF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC9C;;gCAE4B;IAC5B,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACxC;;;mEAG+D;IAC/D,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC;;;OAGG;IACH,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/C;;;;;;;OAOG;IACH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IAC9E;;;;;;OAMG;IACH,aAAa,EAAE,CAAC;SACb,MAAM,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;QACpD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;QACnD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;KACvD,CAAC;SACD,QAAQ,EAAE;SACV,KAAK,CAAC,SAAS,CAAC;CACpB,CAAC,CAAC;AAIH,2EAA2E;AAC3E,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACvD,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,wDAAwD;IAC1D,CAAC;IACD,OAAO,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,oBAAoB,CAAC,QAAgB;IAClD,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC,CAAC,wBAAwB;IAC5C,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAC5D,MAAM,KAAK,GAAI,MAAkC,CAAC,iBAAiB,CAAC;QACpE,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC1C,MAAM,KAAK,GAAG,uBAAuB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC,CAAC,iCAAiC;IACrD,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,QAAgB;IACrD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;QACpE,OAAO,IAAI,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,OAAO,IAAI,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,2EAA2E;QAC3E,0EAA0E;QAC1E,IAAK,MAAkC,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAC/E,OAAO,IAAI,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;QACvE,OAAO,IAAI,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,QAAgB;IAC7D,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAClC,MAAM,SAAS,GAAG,MAAM,mBAAmB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,SAAS,EAAE,SAAS,CAAC,wBAAwB,IAAI,0BAA0B,CAAC;AACrF,CAAC"}
|
package/dist/core/agent-env.js
CHANGED
|
@@ -192,32 +192,26 @@ const BASE_ALLOW_PREFIXES = [
|
|
|
192
192
|
'MISE_',
|
|
193
193
|
'COMPOSER_',
|
|
194
194
|
];
|
|
195
|
-
/** The provider credentials a backend that selects models as `provider/model` may need — it can
|
|
196
|
-
* be pointed at any of them, so none can be pruned without breaking a legitimate model id. */
|
|
197
|
-
const MULTI_PROVIDER_PREFIXES = [
|
|
198
|
-
'OPENAI_',
|
|
199
|
-
'ANTHROPIC_',
|
|
200
|
-
'AZURE_OPENAI_',
|
|
201
|
-
'OPENROUTER_',
|
|
202
|
-
'GROQ_',
|
|
203
|
-
'MISTRAL_',
|
|
204
|
-
'GEMINI_',
|
|
205
|
-
'GOOGLE_GENERATIVE_AI_',
|
|
206
|
-
'DEEPSEEK_',
|
|
207
|
-
'XAI_',
|
|
208
|
-
'PERPLEXITY_',
|
|
209
|
-
'TOGETHER_',
|
|
210
|
-
'FIREWORKS_',
|
|
211
|
-
];
|
|
212
195
|
/** Per-backend auth/config the runner genuinely needs, by prefix. */
|
|
213
196
|
const BACKEND_ALLOW_PREFIXES = {
|
|
214
197
|
claude: ['ANTHROPIC_', 'CLAUDE_'],
|
|
215
198
|
'claude-cli': ['ANTHROPIC_', 'CLAUDE_'],
|
|
216
199
|
codex: ['OPENAI_', 'CODEX_', 'AZURE_OPENAI_'],
|
|
217
|
-
opencode:
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
200
|
+
opencode: [
|
|
201
|
+
'OPENAI_',
|
|
202
|
+
'ANTHROPIC_',
|
|
203
|
+
'AZURE_OPENAI_',
|
|
204
|
+
'OPENROUTER_',
|
|
205
|
+
'GROQ_',
|
|
206
|
+
'MISTRAL_',
|
|
207
|
+
'GEMINI_',
|
|
208
|
+
'GOOGLE_GENERATIVE_AI_',
|
|
209
|
+
'DEEPSEEK_',
|
|
210
|
+
'XAI_',
|
|
211
|
+
'PERPLEXITY_',
|
|
212
|
+
'TOGETHER_',
|
|
213
|
+
'FIREWORKS_',
|
|
214
|
+
],
|
|
221
215
|
};
|
|
222
216
|
/** `gh` handoff (draft PRs) works in every backend — the one credential the
|
|
223
217
|
* project deliberately keeps in the environment (AGENTS.md "No secrets in
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-env.js","sourceRoot":"","sources":["../../src/core/agent-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;;;;;GAOG;AACH,SAAS,QAAQ,CAAC,KAAwB;IACxC,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,6EAA6E;AAC7E,MAAM,gBAAgB,GAAwB,QAAQ,CAAC;IACrD,gCAAgC;IAChC,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,SAAS;IACT,OAAO;IACP,KAAK;IACL,QAAQ;IACR,OAAO;IACP,UAAU;IACV,MAAM;IACN,UAAU;IACV,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,KAAK;IACL,IAAI;IACJ,SAAS;IACT,MAAM;IACN,UAAU;IACV,qBAAqB;IACrB,MAAM;IACN,UAAU;IACV,WAAW;IACX,SAAS;IACT,OAAO;IACP,UAAU;IACV,aAAa;IACb,UAAU;IACV,SAAS;IACT,iBAAiB;IACjB,YAAY;IACZ,uEAAuE;IACvE,eAAe;IACf,eAAe;IACf,mBAAmB;IACnB,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,MAAM;IACN,SAAS;IACT,UAAU;IACV,oCAAoC;IACpC,WAAW;IACX,YAAY;IACZ,qBAAqB;IACrB,SAAS;IACT,iBAAiB;IACjB,eAAe;IACf,yEAAyE;IACzE,YAAY;IACZ,aAAa;IACb,WAAW;IACX,WAAW;IACX,UAAU;IACV,2EAA2E;IAC3E,wEAAwE;IACxE,wEAAwE;IACxE,4EAA4E;IAC5E,oCAAoC;IACpC,YAAY;IACZ,aAAa;IACb,QAAQ;IACR,SAAS;IACT,SAAS;IACT,aAAa;IACb,WAAW;IACX,UAAU;IACV,SAAS;IACT,cAAc;IACd,aAAa;IACb,iBAAiB;IACjB,QAAQ;IACR,cAAc;IACd,mBAAmB;IACnB,cAAc;IACd,oBAAoB;IACpB,yBAAyB;IACzB,oBAAoB;IACpB,cAAc;IACd,UAAU;IACV,YAAY;IACZ,cAAc;IACd,aAAa;IACb,aAAa;IACb,IAAI;IACJ,sBAAsB;IACtB,wBAAwB;IACxB,sBAAsB;IACtB,iBAAiB;IACjB,oBAAoB;CACrB,CAAC,CAAC;AAEH;;gEAEgE;AAChE,MAAM,mBAAmB,GAAsB;IAC7C,KAAK;IACL,MAAM;IACN,OAAO;IACP,YAAY;IACZ,OAAO;IACP,aAAa;IACb,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,QAAQ;IACR,MAAM;IACN,WAAW;IACX,SAAS;IACT,OAAO;IACP,QAAQ;IACR,MAAM;IACN,SAAS;IACT,SAAS;IACT,aAAa;IACb,QAAQ;IACR,KAAK;IACL,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,SAAS;IACT,OAAO;IACP,SAAS;IACT,QAAQ;IACR,OAAO;IACP,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,SAAS;IACT,YAAY;IACZ,SAAS;IACT,SAAS;IACT,WAAW;IACX,aAAa;IACb,MAAM;IACN,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,aAAa;IACb,yBAAyB;IACzB,MAAM;IACN,MAAM;IACN,QAAQ;IACR,SAAS;IACT,SAAS;IACT,UAAU;IACV,SAAS;IACT,eAAe;IACf,SAAS;IACT,QAAQ;IACR,OAAO;IACP,OAAO;IACP,WAAW;IACX,OAAO;IACP,OAAO;IACP,WAAW;CACZ,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"agent-env.js","sourceRoot":"","sources":["../../src/core/agent-env.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,28 +4,18 @@
|
|
|
4
4
|
* no token-budget circuit breaker, no zod response schemas — one run is one
|
|
5
5
|
* agent-CLI session streaming normalized events.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* Three interchangeable backends implement this seam, each as a persistent
|
|
8
8
|
* process so multi-turn follow-ups, `waiting`, interrupt and resume all work:
|
|
9
9
|
* - `claude` — Claude Code CLI, stream-json over stdin/stdout;
|
|
10
10
|
* - `codex` — `codex app-server`, JSON-RPC 2.0 (JSONL) over stdin/stdout;
|
|
11
|
-
* - `opencode` — `opencode serve`, HTTP + SSE
|
|
12
|
-
* - `pi` — pi coding CLI, RPC over JSONL stdin/stdout, selecting its
|
|
13
|
-
* model with `provider/model`.
|
|
11
|
+
* - `opencode` — `opencode serve`, HTTP + SSE.
|
|
14
12
|
*/
|
|
15
13
|
import type { UiEvent } from './ui-events.js';
|
|
16
|
-
/**
|
|
17
|
-
* The user-selectable runners (what config/GUI expose), in display order — the SINGLE source of
|
|
18
|
-
* truth for the set. Every runtime enumeration derives from this tuple (zod schemas, the
|
|
19
|
-
* server-install "at least one agent CLI" gate, the CLI-handoff registry) rather than repeating
|
|
20
|
-
* the literals, so adding runner #5 is a one-line change here and typecheck finds the rest.
|
|
21
|
-
*/
|
|
22
|
-
export declare const RUNNER_IDS: readonly ['claude', 'codex', 'opencode', 'pi'];
|
|
23
|
-
/** The user-selectable runners (what config/GUI expose). */
|
|
24
|
-
export type RunnerId = (typeof RUNNER_IDS)[number];
|
|
25
14
|
/** `claude-cli` is the legacy id kept so old run records still parse. */
|
|
26
|
-
export type AgentBackend =
|
|
27
|
-
/**
|
|
28
|
-
export
|
|
15
|
+
export type AgentBackend = 'claude' | 'codex' | 'opencode' | 'claude-cli';
|
|
16
|
+
/** The user-selectable runners (what config/GUI expose). */
|
|
17
|
+
export type RunnerId = 'claude' | 'codex' | 'opencode';
|
|
18
|
+
export declare const RUNNER_IDS: readonly RunnerId[];
|
|
29
19
|
export interface AgentRunSpec {
|
|
30
20
|
/** Appended to the CLI's default system prompt (`--append-system-prompt`). */
|
|
31
21
|
systemPrompt?: string;
|
|
@@ -4,25 +4,13 @@
|
|
|
4
4
|
* no token-budget circuit breaker, no zod response schemas — one run is one
|
|
5
5
|
* agent-CLI session streaming normalized events.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* Three interchangeable backends implement this seam, each as a persistent
|
|
8
8
|
* process so multi-turn follow-ups, `waiting`, interrupt and resume all work:
|
|
9
9
|
* - `claude` — Claude Code CLI, stream-json over stdin/stdout;
|
|
10
10
|
* - `codex` — `codex app-server`, JSON-RPC 2.0 (JSONL) over stdin/stdout;
|
|
11
|
-
* - `opencode` — `opencode serve`, HTTP + SSE
|
|
12
|
-
* - `pi` — pi coding CLI, RPC over JSONL stdin/stdout, selecting its
|
|
13
|
-
* model with `provider/model`.
|
|
11
|
+
* - `opencode` — `opencode serve`, HTTP + SSE.
|
|
14
12
|
*/
|
|
15
|
-
|
|
16
|
-
* The user-selectable runners (what config/GUI expose), in display order — the SINGLE source of
|
|
17
|
-
* truth for the set. Every runtime enumeration derives from this tuple (zod schemas, the
|
|
18
|
-
* server-install "at least one agent CLI" gate, the CLI-handoff registry) rather than repeating
|
|
19
|
-
* the literals, so adding runner #5 is a one-line change here and typecheck finds the rest.
|
|
20
|
-
*/
|
|
21
|
-
export const RUNNER_IDS = ['claude', 'codex', 'opencode', 'pi'];
|
|
22
|
-
/** Narrow an arbitrary string (a config value, a check name) to a runner id. */
|
|
23
|
-
export function isRunnerId(value) {
|
|
24
|
-
return RUNNER_IDS.includes(value);
|
|
25
|
-
}
|
|
13
|
+
export const RUNNER_IDS = ['claude', 'codex', 'opencode'];
|
|
26
14
|
/**
|
|
27
15
|
* Backends without a dedicated system-prompt channel (codex app-server,
|
|
28
16
|
* opencode serve) deliver `spec.systemPrompt` as a leading block of the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-runner.js","sourceRoot":"","sources":["../../src/core/agent-runner.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"agent-runner.js","sourceRoot":"","sources":["../../src/core/agent-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AASH,MAAM,CAAC,MAAM,UAAU,GAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AAsC/E;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,YAAgC,EAAE,UAAkB;IACtF,OAAO,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,cAAc,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;AAC/E,CAAC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
export interface BackendCheck {
|
|
2
|
-
name: 'claude' | 'codex' | 'opencode' | '
|
|
2
|
+
name: 'claude' | 'codex' | 'opencode' | 'gh' | 'git';
|
|
3
3
|
available: boolean;
|
|
4
4
|
version?: string;
|
|
5
5
|
hint?: string;
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
8
8
|
* Probe the host for everything cez leans on: the agent CLIs (`claude`, and
|
|
9
|
-
* the optional `codex` / `opencode`
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* the optional `codex` / `opencode` alternatives), `gh` (GitHub auth for PR
|
|
10
|
+
* creation) and `git`. Nothing is required except at least one agent CLI — the
|
|
11
|
+
* GUI degrades gracefully, only offers the runners that are present, and shows
|
|
12
|
+
* the hints for the rest.
|
|
13
13
|
*/
|
|
14
14
|
export declare function detectEnvironment(): Promise<BackendCheck[]>;
|
|
15
15
|
/** The host's GitHub token: logged-in `gh` first, `GITHUB_TOKEN` fallback. */
|
|
@@ -3,20 +3,13 @@ import { promisify } from 'node:util';
|
|
|
3
3
|
const exec = promisify(execFile);
|
|
4
4
|
/**
|
|
5
5
|
* Probe the host for everything cez leans on: the agent CLIs (`claude`, and
|
|
6
|
-
* the optional `codex` / `opencode`
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* the optional `codex` / `opencode` alternatives), `gh` (GitHub auth for PR
|
|
7
|
+
* creation) and `git`. Nothing is required except at least one agent CLI — the
|
|
8
|
+
* GUI degrades gracefully, only offers the runners that are present, and shows
|
|
9
|
+
* the hints for the rest.
|
|
10
10
|
*/
|
|
11
11
|
export async function detectEnvironment() {
|
|
12
|
-
return Promise.all([
|
|
13
|
-
probeClaude(),
|
|
14
|
-
probeCodex(),
|
|
15
|
-
probeOpencode(),
|
|
16
|
-
probePi(),
|
|
17
|
-
probeGh(),
|
|
18
|
-
probeGit(),
|
|
19
|
-
]);
|
|
12
|
+
return Promise.all([probeClaude(), probeCodex(), probeOpencode(), probeGh(), probeGit()]);
|
|
20
13
|
}
|
|
21
14
|
async function probeClaude() {
|
|
22
15
|
if (process.env.CEZ_DRY_RUN === '1') {
|
|
@@ -87,31 +80,6 @@ async function probeOpencode() {
|
|
|
87
80
|
};
|
|
88
81
|
}
|
|
89
82
|
}
|
|
90
|
-
async function probePi() {
|
|
91
|
-
// Dry-run stands the runner up on the shared mock, so report it present.
|
|
92
|
-
if (process.env.CEZ_DRY_RUN === '1') {
|
|
93
|
-
return { name: 'pi', available: true, version: 'mock (CEZ_DRY_RUN=1)' };
|
|
94
|
-
}
|
|
95
|
-
const bin = process.env.CEZ_PI_BIN ?? 'pi';
|
|
96
|
-
try {
|
|
97
|
-
const { stdout } = await exec(bin, ['--version'], { timeout: 10_000 });
|
|
98
|
-
return {
|
|
99
|
-
name: 'pi',
|
|
100
|
-
available: true,
|
|
101
|
-
version: stdout.trim(),
|
|
102
|
-
hint: 'if not authenticated, run `pi` once and log in',
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
catch {
|
|
106
|
-
// A missing `pi` CLI is never a boot failure — the runner just isn't
|
|
107
|
-
// offered, exactly like an absent codex/opencode.
|
|
108
|
-
return {
|
|
109
|
-
name: 'pi',
|
|
110
|
-
available: false,
|
|
111
|
-
hint: 'optional: install the pi CLI and log in to use the pi runner',
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
83
|
async function probeGh() {
|
|
116
84
|
try {
|
|
117
85
|
const { stdout } = await exec('gh', ['auth', 'token'], { timeout: 10_000 });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend-detect.js","sourceRoot":"","sources":["../../src/core/backend-detect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AASjC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,OAAO,OAAO,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"backend-detect.js","sourceRoot":"","sources":["../../src/core/backend-detect.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,10 +28,6 @@ export const BACKEND_MODEL_MAP = {
|
|
|
28
28
|
// opencode selects across providers, so a bare model is ambiguous: reject it
|
|
29
29
|
// loudly rather than let the server pick a default the user never asked for.
|
|
30
30
|
opencode: {},
|
|
31
|
-
// pi selects across providers with the same `provider/model` convention as
|
|
32
|
-
// opencode (#387) — no default provider, so a bare model is rejected loudly
|
|
33
|
-
// and `toBackendModel` hands pi the full `provider/model` on its `--model`.
|
|
34
|
-
pi: {},
|
|
35
31
|
};
|
|
36
32
|
const SLASH = '/';
|
|
37
33
|
/** Serialize a canonical identity to its `provider/model` string form. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-identity.js","sourceRoot":"","sources":["../../src/core/model-identity.ts"],"names":[],"mappings":"AAkCA;;;;;GAKG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAU,CAAC;AAkBxF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAoD;IAChF,MAAM,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE;IACxC,YAAY,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE;IAC9C,KAAK,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE;IACpC,6EAA6E;IAC7E,6EAA6E;IAC7E,QAAQ,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"model-identity.js","sourceRoot":"","sources":["../../src/core/model-identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,11 +25,6 @@ export const KNOWN_PRESETS_BY_RUNNER = {
|
|
|
25
25
|
'openai/gpt-5.1',
|
|
26
26
|
'openai/gpt-5.1-codex',
|
|
27
27
|
],
|
|
28
|
-
// pi picks a model with the same `provider/model` convention as opencode, so its presets
|
|
29
|
-
// deliberately overlap opencode's — a shared id is one runner's own preset for BOTH, which
|
|
30
|
-
// `modelConflictsWithRunner` treats as no conflict (it only rejects ids exclusive to another
|
|
31
|
-
// runner). Same shape as the composer's `MODELS_BY_RUNNER.pi`.
|
|
32
|
-
pi: ['anthropic/claude-opus-4-8', 'anthropic/claude-sonnet-5', 'openai/gpt-5.1'],
|
|
33
28
|
};
|
|
34
29
|
/** True when `model` is recognizably a preset of a runner OTHER than `runner` (and not also
|
|
35
30
|
* one of `runner`'s own presets). `''`/unknown/custom ids never conflict. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-presets.js","sourceRoot":"","sources":["../../src/core/model-presets.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAwC;IAC1E,MAAM,EAAE;QACN,MAAM;QACN,QAAQ;QACR,OAAO;QACP,gBAAgB;QAChB,iBAAiB;QACjB,iBAAiB;QACjB,kBAAkB;KACnB;IACD,KAAK,EAAE,CAAC,eAAe,EAAE,oBAAoB,EAAE,aAAa,CAAC;IAC7D,QAAQ,EAAE;QACR,2BAA2B;QAC3B,2BAA2B;QAC3B,gBAAgB;QAChB,sBAAsB;KACvB;
|
|
1
|
+
{"version":3,"file":"model-presets.js","sourceRoot":"","sources":["../../src/core/model-presets.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAwC;IAC1E,MAAM,EAAE;QACN,MAAM;QACN,QAAQ;QACR,OAAO;QACP,gBAAgB;QAChB,iBAAiB;QACjB,iBAAiB;QACjB,kBAAkB;KACnB;IACD,KAAK,EAAE,CAAC,eAAe,EAAE,oBAAoB,EAAE,aAAa,CAAC;IAC7D,QAAQ,EAAE;QACR,2BAA2B;QAC3B,2BAA2B;QAC3B,gBAAgB;QAChB,sBAAsB;KACvB;CACF,CAAC;AAEF;8EAC8E;AAC9E,MAAM,UAAU,wBAAwB,CAAC,KAAa,EAAE,MAAgB;IACtE,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,IAAI,uBAAuB,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACnE,OAAO,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,IAAI,CACjD,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAClE,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ClaudeCliRunner } from './claude-cli-runner.js';
|
|
2
2
|
import { CodexAppServerRunner } from './codex-app-server-runner.js';
|
|
3
3
|
import { OpencodeServerRunner } from './opencode-server-runner.js';
|
|
4
|
-
import { PiRunner } from './pi-runner.js';
|
|
5
4
|
/**
|
|
6
5
|
* The single place that maps a backend id onto a concrete runner. Everything
|
|
7
6
|
* that used to `new ClaudeCliRunner()` (the planner and the workflow engine)
|
|
@@ -14,8 +13,6 @@ export function createRunner(backend) {
|
|
|
14
13
|
return new CodexAppServerRunner();
|
|
15
14
|
case 'opencode':
|
|
16
15
|
return new OpencodeServerRunner();
|
|
17
|
-
case 'pi':
|
|
18
|
-
return new PiRunner();
|
|
19
16
|
case 'claude':
|
|
20
17
|
case 'claude-cli':
|
|
21
18
|
default:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-factory.js","sourceRoot":"","sources":["../../src/core/runner-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"runner-factory.js","sourceRoot":"","sources":["../../src/core/runner-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,OAA4C;IACvE,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,IAAI,oBAAoB,EAAE,CAAC;QACpC,KAAK,UAAU;YACb,OAAO,IAAI,oBAAoB,EAAE,CAAC;QACpC,KAAK,QAAQ,CAAC;QACd,KAAK,YAAY,CAAC;QAClB;YACE,OAAO,IAAI,eAAe,EAAE,CAAC;IACjC,CAAC;AACH,CAAC"}
|
package/dist/core/ui-events.d.ts
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
/** The backend that produced a session — mirrors `RunnerId` in
|
|
25
25
|
* `agent-runner.ts` (kept structurally identical; a type-level test
|
|
26
26
|
* guards against drift so this module stays dependency-free). */
|
|
27
|
-
export type UiBackend = 'claude' | 'codex' | 'opencode'
|
|
27
|
+
export type UiBackend = 'claude' | 'codex' | 'opencode';
|
|
28
28
|
/**
|
|
29
29
|
* Tool lifecycle status (ACP: pending/in_progress/completed/failed).
|
|
30
30
|
* `running` ≡ ACP `in_progress` (opencode's word — reads better in code);
|
package/dist/runs/store.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from 'node:events';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import type { RunnerId } from '../core/agent-runner.js';
|
|
4
3
|
export type RunStatus = 'queued' | 'running' | 'waiting' | 'review' | 'done' | 'failed' | 'cancelled';
|
|
5
4
|
/**
|
|
6
5
|
* A sub-state of `running` (spec 2026-07-18-subagent-monitoring-status, #490):
|
|
@@ -24,7 +23,7 @@ declare const stepStateSchema: z.ZodObject<{
|
|
|
24
23
|
/** Latest backend-owned session id, used for same-backend Continue. */
|
|
25
24
|
sessionId: z.ZodOptional<z.ZodString>;
|
|
26
25
|
/** Backend that owns `sessionId`. Optional so pre-affinity runs.json files still parse. */
|
|
27
|
-
backend: z.ZodOptional<z.ZodEnum<["claude", "codex", "opencode"
|
|
26
|
+
backend: z.ZodOptional<z.ZodEnum<["claude", "codex", "opencode"]>>;
|
|
28
27
|
/** Dollar cost reported by the claude CLI for this step's turns. */
|
|
29
28
|
costUsd: z.ZodOptional<z.ZodNumber>;
|
|
30
29
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -38,7 +37,7 @@ declare const stepStateSchema: z.ZodObject<{
|
|
|
38
37
|
finishedAt?: string | undefined;
|
|
39
38
|
error?: string | undefined;
|
|
40
39
|
sessionId?: string | undefined;
|
|
41
|
-
backend?: "claude" | "codex" | "opencode" |
|
|
40
|
+
backend?: "claude" | "codex" | "opencode" | undefined;
|
|
42
41
|
costUsd?: number | undefined;
|
|
43
42
|
}, {
|
|
44
43
|
id: string;
|
|
@@ -51,7 +50,7 @@ declare const stepStateSchema: z.ZodObject<{
|
|
|
51
50
|
finishedAt?: string | undefined;
|
|
52
51
|
error?: string | undefined;
|
|
53
52
|
sessionId?: string | undefined;
|
|
54
|
-
backend?: "claude" | "codex" | "opencode" |
|
|
53
|
+
backend?: "claude" | "codex" | "opencode" | undefined;
|
|
55
54
|
costUsd?: number | undefined;
|
|
56
55
|
}>;
|
|
57
56
|
/** One prompt message stacked onto a run while it waits for a free agent slot
|
|
@@ -132,7 +131,7 @@ declare const runRecordSchema: z.ZodObject<{
|
|
|
132
131
|
* is the parseable identity cost attribution and reproducible replay key off. */
|
|
133
132
|
modelIdentity: z.ZodOptional<z.ZodString>;
|
|
134
133
|
/** Agent backend this run used — drives "open in CLI" resume command. */
|
|
135
|
-
runner: z.ZodOptional<z.ZodEnum<["claude", "codex", "opencode"
|
|
134
|
+
runner: z.ZodOptional<z.ZodEnum<["claude", "codex", "opencode"]>>;
|
|
136
135
|
/** Echo of the extra system prompt this run actually used (R2): the
|
|
137
136
|
* `POST /api/runs` override, or the `config.json` default it fell back to.
|
|
138
137
|
* Deliberately NOT the full composed prompt — skill bodies and the handoff
|
|
@@ -242,7 +241,7 @@ declare const runRecordSchema: z.ZodObject<{
|
|
|
242
241
|
/** Latest backend-owned session id, used for same-backend Continue. */
|
|
243
242
|
sessionId: z.ZodOptional<z.ZodString>;
|
|
244
243
|
/** Backend that owns `sessionId`. Optional so pre-affinity runs.json files still parse. */
|
|
245
|
-
backend: z.ZodOptional<z.ZodEnum<["claude", "codex", "opencode"
|
|
244
|
+
backend: z.ZodOptional<z.ZodEnum<["claude", "codex", "opencode"]>>;
|
|
246
245
|
/** Dollar cost reported by the claude CLI for this step's turns. */
|
|
247
246
|
costUsd: z.ZodOptional<z.ZodNumber>;
|
|
248
247
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -256,7 +255,7 @@ declare const runRecordSchema: z.ZodObject<{
|
|
|
256
255
|
finishedAt?: string | undefined;
|
|
257
256
|
error?: string | undefined;
|
|
258
257
|
sessionId?: string | undefined;
|
|
259
|
-
backend?: "claude" | "codex" | "opencode" |
|
|
258
|
+
backend?: "claude" | "codex" | "opencode" | undefined;
|
|
260
259
|
costUsd?: number | undefined;
|
|
261
260
|
}, {
|
|
262
261
|
id: string;
|
|
@@ -269,7 +268,7 @@ declare const runRecordSchema: z.ZodObject<{
|
|
|
269
268
|
finishedAt?: string | undefined;
|
|
270
269
|
error?: string | undefined;
|
|
271
270
|
sessionId?: string | undefined;
|
|
272
|
-
backend?: "claude" | "codex" | "opencode" |
|
|
271
|
+
backend?: "claude" | "codex" | "opencode" | undefined;
|
|
273
272
|
costUsd?: number | undefined;
|
|
274
273
|
}>, "many">;
|
|
275
274
|
/** Full workflow definition, persisted so a `queued` run can be re-enqueued
|
|
@@ -297,7 +296,7 @@ declare const runRecordSchema: z.ZodObject<{
|
|
|
297
296
|
taskImages?: string[] | undefined;
|
|
298
297
|
model?: string | undefined;
|
|
299
298
|
modelIdentity?: string | undefined;
|
|
300
|
-
runner?: "claude" | "codex" | "opencode" |
|
|
299
|
+
runner?: "claude" | "codex" | "opencode" | undefined;
|
|
301
300
|
systemPrompt?: string | undefined;
|
|
302
301
|
generateFollowups?: boolean | undefined;
|
|
303
302
|
autonomous?: boolean | undefined;
|
|
@@ -344,7 +343,7 @@ declare const runRecordSchema: z.ZodObject<{
|
|
|
344
343
|
finishedAt?: string | undefined;
|
|
345
344
|
error?: string | undefined;
|
|
346
345
|
sessionId?: string | undefined;
|
|
347
|
-
backend?: "claude" | "codex" | "opencode" |
|
|
346
|
+
backend?: "claude" | "codex" | "opencode" | undefined;
|
|
348
347
|
costUsd?: number | undefined;
|
|
349
348
|
}[];
|
|
350
349
|
workflowDef?: Record<string, unknown> | undefined;
|
|
@@ -368,7 +367,7 @@ declare const runRecordSchema: z.ZodObject<{
|
|
|
368
367
|
taskImages?: string[] | undefined;
|
|
369
368
|
model?: string | undefined;
|
|
370
369
|
modelIdentity?: string | undefined;
|
|
371
|
-
runner?: "claude" | "codex" | "opencode" |
|
|
370
|
+
runner?: "claude" | "codex" | "opencode" | undefined;
|
|
372
371
|
systemPrompt?: string | undefined;
|
|
373
372
|
generateFollowups?: boolean | undefined;
|
|
374
373
|
autonomous?: boolean | undefined;
|
|
@@ -415,7 +414,7 @@ declare const runRecordSchema: z.ZodObject<{
|
|
|
415
414
|
finishedAt?: string | undefined;
|
|
416
415
|
error?: string | undefined;
|
|
417
416
|
sessionId?: string | undefined;
|
|
418
|
-
backend?: "claude" | "codex" | "opencode" |
|
|
417
|
+
backend?: "claude" | "codex" | "opencode" | undefined;
|
|
419
418
|
costUsd?: number | undefined;
|
|
420
419
|
}[];
|
|
421
420
|
workflowDef?: Record<string, unknown> | undefined;
|
|
@@ -458,7 +457,7 @@ export declare class RunStore extends EventEmitter {
|
|
|
458
457
|
workflow: string;
|
|
459
458
|
task: string;
|
|
460
459
|
model?: string;
|
|
461
|
-
runner?:
|
|
460
|
+
runner?: 'claude' | 'codex' | 'opencode';
|
|
462
461
|
generateFollowups?: boolean;
|
|
463
462
|
autonomous?: boolean;
|
|
464
463
|
groupId?: string;
|