@open-mercato/cezar 0.9.2-pr774.1069 → 0.9.2-pr774.1230
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/LICENSE +21 -0
- package/README.md +127 -20
- package/dist/agent-config/model-settings/pi.d.ts +12 -0
- package/dist/agent-config/model-settings/pi.js +18 -0
- package/dist/agent-config/model-settings/pi.js.map +1 -0
- package/dist/agent-config/models.js +2 -0
- package/dist/agent-config/models.js.map +1 -1
- package/dist/automations/types.d.ts +4 -0
- package/dist/automations/types.js +2 -1
- package/dist/automations/types.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.js +3 -1
- package/dist/config.js.map +1 -1
- package/dist/contract/agent-config.d.ts +2 -0
- package/dist/contract/agent-profiles.d.ts +15 -0
- package/dist/contract/automations.d.ts +16 -0
- package/dist/contract/events.d.ts +59 -0
- package/dist/contract/health.d.ts +7 -1
- package/dist/contract/index.js +249 -23
- package/dist/contract/projects.d.ts +30 -5
- package/dist/contract/runs.d.ts +146 -0
- package/dist/contract/skills.d.ts +3 -0
- package/dist/contract/workflows.d.ts +6 -0
- package/dist/contract/workspace.d.ts +107 -2
- package/dist/core/agent-env.js +41 -16
- package/dist/core/agent-env.js.map +1 -1
- package/dist/core/agent-profiles.d.ts +3 -0
- package/dist/core/agent-profiles.js +7 -0
- package/dist/core/agent-profiles.js.map +1 -1
- package/dist/core/agent-runner.d.ts +16 -6
- package/dist/core/agent-runner.js +15 -3
- package/dist/core/agent-runner.js.map +1 -1
- package/dist/core/backend-detect.d.ts +5 -5
- package/dist/core/backend-detect.js +37 -5
- package/dist/core/backend-detect.js.map +1 -1
- package/dist/core/model-identity.d.ts +11 -6
- package/dist/core/model-identity.js +9 -7
- package/dist/core/model-identity.js.map +1 -1
- package/dist/core/model-presets.d.ts +8 -2
- package/dist/core/model-presets.js +51 -8
- package/dist/core/model-presets.js.map +1 -1
- package/dist/core/opencode-model-catalog.d.ts +30 -0
- package/dist/core/opencode-model-catalog.js +126 -0
- package/dist/core/opencode-model-catalog.js.map +1 -0
- package/dist/core/pi-runner.d.ts +24 -0
- package/dist/core/pi-runner.js +349 -0
- package/dist/core/pi-runner.js.map +1 -0
- package/dist/core/pi-ui-mapper.d.ts +34 -0
- package/dist/core/pi-ui-mapper.js +270 -0
- package/dist/core/pi-ui-mapper.js.map +1 -0
- package/dist/core/provider-auth.d.ts +1 -1
- package/dist/core/provider-auth.js +22 -1
- package/dist/core/provider-auth.js.map +1 -1
- package/dist/core/runner-factory.js +3 -0
- package/dist/core/runner-factory.js.map +1 -1
- package/dist/core/ui-events.d.ts +1 -1
- package/dist/git-diff-base.d.ts +51 -26
- package/dist/git-diff-base.js +163 -37
- package/dist/git-diff-base.js.map +1 -1
- package/dist/git-worktree.d.ts +15 -6
- package/dist/git-worktree.js +10 -3
- package/dist/git-worktree.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/runs/agent-tmpdir.d.ts +41 -0
- package/dist/runs/agent-tmpdir.js +183 -0
- package/dist/runs/agent-tmpdir.js.map +1 -0
- package/dist/runs/event-history.d.ts +50 -0
- package/dist/runs/event-history.js +613 -0
- package/dist/runs/event-history.js.map +1 -0
- package/dist/runs/run-index.d.ts +19 -0
- package/dist/runs/run-index.js +43 -0
- package/dist/runs/run-index.js.map +1 -0
- package/dist/runs/store.d.ts +71 -19
- package/dist/runs/store.js +129 -48
- package/dist/runs/store.js.map +1 -1
- package/dist/server/capabilities.d.ts +15 -1
- package/dist/server/capabilities.js +16 -1
- package/dist/server/capabilities.js.map +1 -1
- package/dist/server/forge/index.d.ts +9 -0
- package/dist/server/forge/index.js +14 -0
- package/dist/server/forge/index.js.map +1 -1
- package/dist/server/git-changes.d.ts +7 -5
- package/dist/server/git-changes.js +15 -10
- package/dist/server/git-changes.js.map +1 -1
- package/dist/server/open-in-app.d.ts +2 -1
- package/dist/server/open-in-app.js +3 -1
- package/dist/server/open-in-app.js.map +1 -1
- package/dist/server/open-in-terminal.d.ts +38 -0
- package/dist/server/open-in-terminal.js +57 -6
- package/dist/server/open-in-terminal.js.map +1 -1
- package/dist/server/provider-action-gate.js +3 -1
- package/dist/server/provider-action-gate.js.map +1 -1
- package/dist/server/server.d.ts +1187 -437
- package/dist/server/server.js +314 -102
- package/dist/server/server.js.map +1 -1
- package/dist/server-install/engine.js +5 -18
- package/dist/server-install/engine.js.map +1 -1
- package/dist/server-install/steps.js +6 -2
- package/dist/server-install/steps.js.map +1 -1
- package/dist/workflows/run.d.ts +43 -8
- package/dist/workflows/run.js +187 -73
- package/dist/workflows/run.js.map +1 -1
- package/dist/workflows/types.d.ts +3 -0
- package/dist/workflows/types.js +11 -2
- package/dist/workflows/types.js.map +1 -1
- package/dist/workspace/agent-accounts.d.ts +5 -1
- package/dist/workspace/agent-accounts.js +1 -0
- package/dist/workspace/agent-accounts.js.map +1 -1
- package/dist/workspace/config.d.ts +13 -1
- package/dist/workspace/config.js +45 -2
- package/dist/workspace/config.js.map +1 -1
- package/dist/workspace/projects-cli.js +54 -4
- package/dist/workspace/projects-cli.js.map +1 -1
- package/dist/workspace/projects.d.ts +19 -1
- package/dist/workspace/projects.js +34 -1
- package/dist/workspace/projects.js.map +1 -1
- package/dist/workspace/semaphore.d.ts +7 -1
- package/dist/workspace/semaphore.js +10 -4
- package/dist/workspace/semaphore.js.map +1 -1
- package/dist/workspace/ui-state.d.ts +3 -2
- package/dist/workspace/ui-state.js +3 -2
- package/dist/workspace/ui-state.js.map +1 -1
- package/package.json +3 -3
- package/scripts/mock-pi-rpc.mjs +83 -0
- package/web/dist/assets/{alert-dialog-6dQMgOXw.js → alert-dialog-aRj0GPwj.js} +1 -1
- package/web/dist/assets/arrow-down-urIJtJhs.js +1 -0
- package/web/dist/assets/arrow-left-DcqfJuxU.js +1 -0
- package/web/dist/assets/centered-state-PzB3-cw-.js +43 -0
- package/web/dist/assets/chevron-right-9OF5FBfW.js +1 -0
- package/web/dist/assets/circle-check-CBO0GXqU.js +1 -0
- package/web/dist/assets/{circle-x-DF_Vyxoz.js → circle-x-CItKHQPP.js} +1 -1
- package/web/dist/assets/{collapsible-BJslo1eE.js → collapsible-zcsmjGJX.js} +1 -1
- package/web/dist/assets/{commit-list-DPoEJ-5l.js → commit-list-CmXKE2u7.js} +1 -1
- package/web/dist/assets/{compare-variants-Ddz-oUCA.js → compare-variants-YV5mwuJl.js} +1 -1
- package/web/dist/assets/{diff-BdWNf9S7.js → diff-Dbc_uFRY.js} +2 -2
- package/web/dist/assets/{diff-stat-CXB01WSy.js → diff-stat-BQjvDcTt.js} +1 -1
- package/web/dist/assets/{diff-view-Bsy3QLyj.js → diff-view-DiVoY3FW.js} +1 -1
- package/web/dist/assets/{dropdown-menu-B4Epti3u.js → dropdown-menu-Bz4t9Tsa.js} +1 -1
- package/web/dist/assets/editable-title-DQBBKbL7.js +1 -0
- package/web/dist/assets/{ellipsis-vertical-BVCmLX8u.js → ellipsis-vertical-JcWs9QoQ.js} +1 -1
- package/web/dist/assets/{file-Bml0aHqJ.js → file-DYEmkO_b.js} +1 -1
- package/web/dist/assets/{folder-CBh3ERAX.js → folder-CfyEgJVk.js} +1 -1
- package/web/dist/assets/{git-pull-request-3Jrr-Hnz.js → git-pull-request-BhhwyVKp.js} +1 -1
- package/web/dist/assets/git-toolbar-Bz_kqOVT.js +1 -0
- package/web/dist/assets/github-iEbciKK6.js +1 -0
- package/web/dist/assets/{image-preview-DS7DvehB.js → image-preview-wrZqeqlN.js} +1 -1
- package/web/dist/assets/index-D7uZONCu.js +7 -0
- package/web/dist/assets/index-DMTbKQG0.css +2 -0
- package/web/dist/assets/{markdown-B1EknoxI.js → markdown-Dq_H-sx8.js} +1 -1
- package/web/dist/assets/new-task-form-CX7_XWYk.js +1 -0
- package/web/dist/assets/{pill-BHn0lyG-.js → pill-CNVDL7B8.js} +1 -1
- package/web/dist/assets/{project-router-BkbADB0Z.js → project-router-CWM-ZC-Z.js} +1 -1
- package/web/dist/assets/{prompt-templates-D83ZM7XO.js → prompt-templates-Bc_WXXgy.js} +1 -1
- package/web/dist/assets/{refresh-cw-DX8Tj6b9.js → refresh-cw-B_KM7SC5.js} +1 -1
- package/web/dist/assets/{repo-git-CKR1UKRl.js → repo-git-cawOqDjx.js} +1 -1
- package/web/dist/assets/{run-diff-BKlEMNhf.js → run-diff-DZeLvAWE.js} +2 -2
- package/web/dist/assets/run-header-vCrep_qM.js +1 -0
- package/web/dist/assets/{search-x-B1NrVJwd.js → search-x-DKCO2euN.js} +1 -1
- package/web/dist/assets/{skill-empty-hint-CLB1FsYI.js → skill-empty-hint-DO_JcfQA.js} +1 -1
- package/web/dist/assets/{skills-OLjkJUPE.js → skills-BLFAP-9z.js} +1 -1
- package/web/dist/assets/{sparkles-iifrwy2d.js → sparkles-D2yJ9Ud3.js} +1 -1
- package/web/dist/assets/{square-terminal-B7pjoOV-.js → square-terminal-DoAQ6GbQ.js} +1 -1
- package/web/dist/assets/{tab-link-CDAMnCm8.js → tab-link-CD81Ure_.js} +1 -1
- package/web/dist/assets/task-changes-Co8CeBsZ.js +1 -0
- package/web/dist/assets/task-commits-B1WcRQGo.js +1 -0
- package/web/dist/assets/{task-files-DbzZ7e5E.js → task-files-DsChsXXh.js} +2 -2
- package/web/dist/assets/task-thread-L8fRtvnx.js +9 -0
- package/web/dist/assets/{textarea-BDfkreJ8.js → textarea-C8B1eNYl.js} +1 -1
- package/web/dist/assets/thread-loading-TXIWMozY.js +1 -0
- package/web/dist/assets/{trash-2-Bm7yPRlf.js → trash-2-CE5JQDhC.js} +1 -1
- package/web/dist/assets/{triangle-alert-BoNsVbBe.js → triangle-alert-DrRhj8AI.js} +1 -1
- package/web/dist/assets/{upload-DNOSu710.js → upload-DluHTGts.js} +1 -1
- package/web/dist/assets/{use-desktop-vb6126vH.js → use-desktop-DfiE3E66.js} +1 -1
- package/web/dist/assets/{use-submit-shortcut-DyHLUMIa.js → use-submit-shortcut-BX39dvX4.js} +1 -1
- package/web/dist/assets/utils-6wQu2-ai.js +64 -0
- package/web/dist/assets/{workflows-BJqCaffV.js → workflows-DRywWh2n.js} +3 -3
- package/web/dist/assets/{zoomable-image-C7pDSJpR.js → zoomable-image-BUBcVQZS.js} +1 -1
- package/web/dist/index.html +23 -23
- package/web/dist/assets/arrow-down-9F3rZKJT.js +0 -1
- package/web/dist/assets/arrow-left-BOTr2zuB.js +0 -1
- package/web/dist/assets/centered-state-QSAdDoHK.js +0 -43
- package/web/dist/assets/chevron-right-Bga7k0g0.js +0 -1
- package/web/dist/assets/circle-check-CMvUZyJZ.js +0 -1
- package/web/dist/assets/editable-title-CbQ3uoGg.js +0 -1
- package/web/dist/assets/git-toolbar-Gy4_cPLz.js +0 -1
- package/web/dist/assets/github-BcC0R3jc.js +0 -1
- package/web/dist/assets/index-B84F80Q8.css +0 -2
- package/web/dist/assets/index-BQhkx-lw.js +0 -6
- package/web/dist/assets/new-task-form-1cTj9thS.js +0 -1
- package/web/dist/assets/run-header-BC6ZZQtf.js +0 -1
- package/web/dist/assets/task-changes-Dc7u63rJ.js +0 -1
- package/web/dist/assets/task-commits-BCgNsn2-.js +0 -1
- package/web/dist/assets/task-thread-D6I003ru.js +0 -9
- package/web/dist/assets/thread-loading-D6DMmo5_.js +0 -1
- package/web/dist/assets/utils-CT1niAPs.js +0 -64
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Patryk Lewczuk
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
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 or
|
|
9
|
-
(experimental), or a mix of them per step** — and watch it work live: steps, tool calls,
|
|
8
|
+
Type a task, pick a workflow and an agent — **Claude Code, Codex, OpenCode or pi
|
|
9
|
+
(the latter two 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
|
|
|
@@ -19,7 +19,7 @@ your phone, working your backlog while you're away.
|
|
|
19
19
|
|
|
20
20
|
[A look inside](#a-look-inside) · [What cezar does best](#what-cezar-does-best) · [What it solves](#what-it-solves) · [Who it's for](#who-its-for) · [Quick start](#quick-start) · [How it works](#how-it-works) · [Core concepts](#core-concepts) · [Cockpit tour](#cockpit-tour) · [Agent backends](#coding-agent-backends) · [Remote access](#remote-access-host-cezar-on-a-server)
|
|
21
21
|
|
|
22
|
-
[](
|
|
22
|
+
[](LICENSE)
|
|
23
23
|

|
|
24
24
|

|
|
25
25
|

|
|
@@ -60,7 +60,7 @@ it does better than any of them:
|
|
|
60
60
|
|
|
61
61
|
- 🪶 **Genuinely zero config.** `npx cezar-cli` in your repo and you're running —
|
|
62
62
|
no wizard, no API keys, no env vars, no schema, no database. It rides the
|
|
63
|
-
`claude` / `codex` / `opencode` logins and the `gh` you already have, and every
|
|
63
|
+
`claude` / `codex` / `opencode` / `pi` logins and the `gh` you already have, and every
|
|
64
64
|
missing piece degrades gracefully instead of blocking you.
|
|
65
65
|
- 🖥️ **Built for a server (VPS mode).** cezar is made to live on a **VPS, cloud,
|
|
66
66
|
or dedicated box** as an always-on janitor for your repo — headless-first, with
|
|
@@ -207,7 +207,7 @@ event live and parks the run at a review gate when there's a diff to inspect.
|
|
|
207
207
|
▼
|
|
208
208
|
┌──────────────────────────────┐ ┌───────────────────────────────┐
|
|
209
209
|
│ git worktree per task │ │ agent CLI (your login) │
|
|
210
|
-
│ (isolated branch, parallel) │◄───►│
|
|
210
|
+
│ (isolated branch, parallel) │◄───►│ claude · codex · opencode · pi│
|
|
211
211
|
└──────────────────────────────┘ │ Bash open · no prompts │
|
|
212
212
|
│ └───────────────────────────────┘
|
|
213
213
|
│ agent text · tool calls · tool results · tokens · cost
|
|
@@ -285,11 +285,12 @@ Five moves that make the cockpit worth the browser tab:
|
|
|
285
285
|
|
|
286
286
|
## Cockpit tour
|
|
287
287
|
|
|
288
|
-
|
|
288
|
+
Eight views, one browser window, all live over Server-Sent Events (seven until you opt into the Inbox):
|
|
289
289
|
|
|
290
290
|
| View | What's in it |
|
|
291
291
|
|---|---|
|
|
292
292
|
| **Tasks** | Every task with its status, live event stream (agent text · tool calls · tool results · pasted/generated screenshots), tokens and cost. Continue, cancel, open in terminal (`claude --resume`), review the diff, or push a draft PR. |
|
|
293
|
+
| **All tasks** | Every *registered project's* tasks in one table, filtered and grouped by tag, project, status or workflow — see [Grouping connected repositories](#grouping-connected-repositories-tags-and-the-all-tasks-page). Appears once a second project is registered. |
|
|
293
294
|
| **Inbox** | **Opt-in** (`CEZ_FOLLOWUPS=1`; hidden by default). Follow-ups an agent left behind (`todos.json`) — one click turns a suggestion into the next task, pre-wired to its suggested skill. Off, agents are never asked to leave follow-ups; each task's own **Notes** handoff journal is unaffected. |
|
|
294
295
|
| **Git** | Branch, working-tree status, diff vs HEAD, recent commits (click one for its inline patch + GitHub link), and the configurable base branch that worktrees fork from and PRs target. |
|
|
295
296
|
| **GitHub** | Open issues and PRs of the repo's origin, read through your logged-in `gh`. Hand an issue straight to the agent — pick a workflow and skills, one click runs it. |
|
|
@@ -351,19 +352,79 @@ cockpit — stop the server and use `cezar projects remove <id>` instead.
|
|
|
351
352
|
**From the terminal** — the same registry, no cockpit required (handy over ssh):
|
|
352
353
|
|
|
353
354
|
```bash
|
|
354
|
-
cezar projects # list: id, branch or status, path
|
|
355
|
+
cezar projects # list: id, branch or status, path, tags
|
|
355
356
|
cezar projects add ~/code/api # register a folder (defaults to the current repo)
|
|
356
357
|
cezar projects remove api # drop the registry entry; the repo is untouched
|
|
358
|
+
cezar projects tag api storefront backend # set the grouping tags (no tags clears them)
|
|
357
359
|
```
|
|
358
360
|
|
|
359
361
|
These read and write `~/.cezar/config.json` directly, so they work with the
|
|
360
362
|
server stopped, and `CEZ_HOME` selects which workspace they operate on.
|
|
361
363
|
|
|
362
|
-
Settings split along the same line: **
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
364
|
+
Settings split along the same line: **General** (the project's folder, its
|
|
365
|
+
registry facts, its parallel-task ceiling, and Remove), **Agents**,
|
|
366
|
+
**Worktrees**, **Bookmarklets**, **Prompt templates** and **MCP** describe one
|
|
367
|
+
repo and live under `/p/<projectId>/settings`; **Appearance**,
|
|
368
|
+
**Notifications**, **Resources**, **Projects** and **Keyboard** are yours or the
|
|
369
|
+
machine's and live at `/settings/global`.
|
|
370
|
+
|
|
371
|
+
### Grouping connected repositories: tags and the All tasks page
|
|
372
|
+
|
|
373
|
+
Work rarely stops at a repo boundary. A storefront is an API, a web app and a
|
|
374
|
+
design system; a platform is a handful of services plus the infra that runs
|
|
375
|
+
them. **Tags** are how you say so, and **All tasks** is where saying so pays off.
|
|
376
|
+
|
|
377
|
+
**Tag a repo** in **Settings → Projects**: type into the *Tags* cell on its row
|
|
378
|
+
and press Enter (comma works too; the × on a chip, or Backspace in an empty
|
|
379
|
+
field, removes one). The field **autocompletes from the tags already used in the
|
|
380
|
+
workspace** — click the field to see them all, arrow keys and Enter to pick —
|
|
381
|
+
which is what keeps the second repo landing on the first one's spelling instead
|
|
382
|
+
of inventing `store-front` next to `storefront`. Anything not on the list is
|
|
383
|
+
just typed. A tag is a free-form label — `storefront`, `infra`, `client-acme` —
|
|
384
|
+
and a project can carry several, because a repo can belong to more than one
|
|
385
|
+
piece of work. Tags are trimmed, deduplicated case-insensitively (`API` and
|
|
386
|
+
`api` are one tag) and stored in `~/.cezar/config.json` beside the rest of the
|
|
387
|
+
registry, so they are yours and this machine's, never something added to the
|
|
388
|
+
repo.
|
|
389
|
+
|
|
390
|
+
**All tasks** — the top item in the sidebar, `/tasks`, or `⌘K → All tasks` —
|
|
391
|
+
then shows every registered project's work in one table:
|
|
392
|
+
|
|
393
|
+
- **Filter** by tag, status and workflow. Tags are one-click chips; status and
|
|
394
|
+
workflow are searchable multi-selects. Every facet ORs inside itself and ANDs
|
|
395
|
+
across, so *"anything running or waiting in storefront or infra"* is one set
|
|
396
|
+
of clicks. Each option carries how many tasks it would leave, so a filter that
|
|
397
|
+
would empty the table says so before you click it. The search box matches
|
|
398
|
+
title, project, workflow, branch and tags.
|
|
399
|
+
- **Group by** tag, project, status or workflow — click the pressed one again to
|
|
400
|
+
ungroup. Grouping by tag is the reason tags exist: three repos tagged
|
|
401
|
+
`storefront` become one section, and a repo tagged twice appears under both —
|
|
402
|
+
it genuinely belongs to both.
|
|
403
|
+
|
|
404
|
+
The filters, the grouping and the Active/Archived tab live in the **URL**, so a
|
|
405
|
+
filtered view survives a refresh, pastes into a chat, and sits in a bookmark —
|
|
406
|
+
`/tasks?tag=storefront&status=running&group=tag` is a link to exactly what you
|
|
407
|
+
were looking at. Only what you changed shows up: Active is the default, so the
|
|
408
|
+
Archived view is `?archived=1` and a normal link carries no key for it.
|
|
409
|
+
|
|
410
|
+
Each row shows **every** PR and issue it references — a task opened on an issue
|
|
411
|
+
that landed a PR shows both — plus its cost and live CPU/memory, and can be
|
|
412
|
+
marked **read/unread** (the eye) or **archived** (or restored) right there. Every task title, project name and project group heading links into that
|
|
413
|
+
project, so the thread, its diff and its worktree are one click away and stay
|
|
414
|
+
exactly where they were.
|
|
415
|
+
|
|
416
|
+
There is deliberately **no project filter**: narrowing this page to one project
|
|
417
|
+
is that project's own Tasks page, which is a better version of the same answer
|
|
418
|
+
(live updates, the full column set, the composer). So picking a project *leaves*
|
|
419
|
+
for it rather than turning the global view into a worse local one.
|
|
420
|
+
|
|
421
|
+
Nothing else in cezar reads tags, on purpose: a tag is a lens, not a permission,
|
|
422
|
+
a queue or a routing rule. Removing one changes what you see and nothing else.
|
|
423
|
+
|
|
424
|
+
> The page reads a workspace-wide index capped at the newest 200 tasks per
|
|
425
|
+
> project — it says so, and names the projects it capped, rather than showing a
|
|
426
|
+
> short list as if it were complete. Older tasks are always in that project's own
|
|
427
|
+
> Tasks page.
|
|
367
428
|
|
|
368
429
|
**Old page URLs keep working.** Every unprefixed page path — `/`, `/tasks/<id>`,
|
|
369
430
|
`/settings` — still answers, bound to the project cezar was started in; the
|
|
@@ -392,7 +453,7 @@ steps:
|
|
|
392
453
|
prompt: "{{task}}"
|
|
393
454
|
skill: project-conventions # optional — from .ai/skills or .ai/cezar/skills
|
|
394
455
|
# model: opus # optional per-step model override
|
|
395
|
-
# runner: codex # optional per-step backend: claude · codex · opencode
|
|
456
|
+
# runner: codex # optional per-step backend: claude · codex · opencode · pi
|
|
396
457
|
# allowedTools: [Read, Edit, Write, Grep, Glob, Bash]
|
|
397
458
|
- id: verify
|
|
398
459
|
name: Verify
|
|
@@ -439,16 +500,19 @@ Useful environment variables:
|
|
|
439
500
|
| `CEZ_AGENT_MODELS_LOCKED=1` | Globally lock each runner to the model configured in its native Claude/Codex/OpenCode settings while keeping runner selection available. Exact `1` also delegates authentication and provider enablement to those native agents, so Cezar skips its credential probes and provider-disable preferences. Existing Cezar presets are preserved but ignored, and an environment change requires a restart. The config-file equivalent is `"modelsLocked": true` in global `~/.cezar/config.json` or one repository's `.ai/cezar/config.json`; config-file locks do not disable provider checks. |
|
|
440
501
|
| `CEZ_APPROVAL_GATE=1` | Opt into Claude's interactive approval UI; by default, unapproved tools are denied without interrupting the run. |
|
|
441
502
|
| `CEZ_FOLLOWUPS=1` | Turn on the global follow-up **Inbox**: agents are asked to leave follow-ups in `todos.json` when they finish, and the Inbox view appears. Off by default — each task's own **Notes** handoff journal runs either way. |
|
|
503
|
+
| `CEZ_AUTOMATIONS=1` | Turn on **GitHub automations**: the Automations view appears and cezar polls GitHub on each enabled automation's interval, launching tasks from what it finds. Off by default, and only the exact value `1` enables it — without it nothing polls GitHub, the automations endpoints answer `409`, and the nav item is absent. Read at boot, so restart after changing it; definitions, receipts and high-watermarks are retained, so unsetting it and restarting restores the feature without migration or data loss. |
|
|
442
504
|
| `CEZ_AUTOSAVE=1` | Re-enable the periodic (90 s) autosave commit in task worktrees. Off by default (#471) — turn-end and pre-PR flushes always run, so branches still end complete. Every autosave names its trigger in the commit subject (`cezar autosave (periodic)` vs `(turn end)` / `(run finalize)` / `(pre-PR)`), so the flushes you keep are distinguishable from the timer you disabled. |
|
|
443
505
|
| `CEZ_CLAUDE_BIN=/path/to/claude` | Override which `claude` binary is used. |
|
|
444
506
|
| `CEZ_CODEX_BIN=/path/to/codex` | Override which `codex` binary is used. |
|
|
445
507
|
| `CEZ_OPENCODE_BIN=/path/to/opencode` | Override which `opencode` binary is used. |
|
|
508
|
+
| `CEZ_PI_BIN=/path/to/pi` | Override which `pi` binary is used. |
|
|
446
509
|
| `CLAUDE_CONFIG_DIR`, `CODEX_HOME` | The agents' **own** variables, honoured where the vendor documents one. Setting one moves that agent's **default account** — the config folder cezar discovers. A *second* login of the same CLI is deliberately not an environment setting, since one process-wide value cannot differ per project: add it under **Settings → Agent accounts** and pick it per project. |
|
|
447
510
|
| `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. |
|
|
448
511
|
| `CEZ_PROJECTS_DIR=~/cezar/projects` | Default destination for **Clone from GitHub**. Saved workspace settings override it, and missing directories are created recursively. |
|
|
449
512
|
| `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. |
|
|
450
513
|
| `CEZ_AUTONOMOUS_DEFAULT=0` | Seed the New Task Autonomous default (`0` or `1`). Without a seed, skills default on and workflows off; a saved global Resources setting overrides it. |
|
|
451
514
|
| `CEZ_WORKTREE_DEFAULT=1` | Seed the New Task Worktree default (`0` or `1`). Without a seed, eligible runs default on; a saved global Resources setting overrides it. |
|
|
515
|
+
| `CEZ_DISABLE_REPO_LOCK=1` | **Dangerous escape hatch:** allow any run executing in the repository root — an explicit `worktree=false` run, non-Git degradation, or a continuation whose worktree cannot be restored — to proceed without Cezar’s repository-root lease. Agents can overwrite each other’s files or Git state; isolated worktree runs are unaffected. Off by default; only the exact value `1` enables it. |
|
|
452
516
|
| `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. |
|
|
453
517
|
| `CEZ_HIDE_TOKEN_USAGE=1` | Hide raw input/output token counts throughout the browser cockpit while leaving backend-reported cost visible. Only the exact value `1` enables it; telemetry and API payloads are unchanged, and a restart is required after changing it. |
|
|
454
518
|
| `CEZ_HIDE_COST=1` | Hide backend-reported monetary cost throughout the browser cockpit while leaving raw input/output token counts visible. Only the exact value `1` enables it; telemetry and API payloads are unchanged, and a restart is required after changing it. |
|
|
@@ -456,6 +520,7 @@ Useful environment variables:
|
|
|
456
520
|
| `GITHUB_TOKEN` | Fallback for GitHub reads/PRs when `gh` isn't authenticated. |
|
|
457
521
|
| `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. |
|
|
458
522
|
| `CEZ_AGENT_ENV_FULL=1` | Escape hatch: give spawned agents the full host environment (pre-hardening behavior). Off by default; only set it if you understand that this hands every host secret to the agent process. |
|
|
523
|
+
| `CEZ_AGENT_TMPDIR=0` | Stop giving each task its own temp directory and hand agents the host `TMPDIR` again (pre-#785 behavior). On by default: every run gets `TMPDIR`/`TEMP`/`TMP` pointing at `.ai/cezar/tmp/<task-id>`, created and write-probed before the agent spawns and reaped when the run ends, so concurrent tasks stop sharing one directory and a task refuses to start rather than run against a temp directory that silently swallows its shell output (see Troubleshooting below). Only an exact `0` disables it, and it disables the whole thing — the pre-spawn check included, so this stays an escape hatch you can actually take. |
|
|
459
524
|
| `CEZ_REDACT_SECRETS=0` | Disable scrubbing of credential values/token shapes from the on-disk state (the NDJSON transcript and the free-text fields of `runs.json`). On by default; leave it on. Best-effort defense-in-depth, not a guarantee: it catches known token shapes and the values of your own secret-named env vars, so a credential in neither category can still get through. |
|
|
460
525
|
| `CEZ_TITLE_UPDATES=0` | Turn off the live task-title refresh (namer re-runs on each turn end). The Settings → Agents toggle overrides this default. |
|
|
461
526
|
| `CEZ_AUTONAME=0` | Disable ALL LLM task naming (creation + live) — titles stay heuristic (`437: /om-auto-review-pr`). Under `CEZ_DRY_RUN=1` naming is already off unless forced with `CEZ_AUTONAME=1`. |
|
|
@@ -463,25 +528,56 @@ Useful environment variables:
|
|
|
463
528
|
| `CEZ_NO_BANNER=1` | Skip the `open-mercato/skills` banner on `cezar serve` startup. (The cockpit no longer shows a banner — its skills now live on the Skills page's Manage panel — so this env var is the terminal banner's only switch.) |
|
|
464
529
|
| `VITE_CEZ_API_BASE=http://localhost:4321` | **Build time only**, and only when the cockpit bundle is deployed apart from the service it talks to. Empty (the default) means "the origin that served this page", which is right for both normal cases: the CLI serves the bundle itself, and `npm run dev` proxies `/api` to the local service. A deployment that must be configured without a rebuild can put `<meta name="cez-api-base" content="…">` in the served HTML instead, which wins over this. |
|
|
465
530
|
|
|
531
|
+
### Troubleshooting: the agent's shell returns nothing
|
|
532
|
+
|
|
533
|
+
**Symptom.** A task on the Claude backend keeps working, but every shell command
|
|
534
|
+
comes back with no output and a spurious non-zero exit status — `echo hello`
|
|
535
|
+
included. Redirecting into a file inside the worktree still produces the right
|
|
536
|
+
content, so the commands genuinely run; only the *capture* is lost. Codex tasks
|
|
537
|
+
on the same machine are unaffected, because that backend streams over stdio
|
|
538
|
+
pipes instead of round-tripping a command's output through a temp file.
|
|
539
|
+
|
|
540
|
+
**Diagnosis.** The temp directory the agent was given is out of space or out of
|
|
541
|
+
quota. One line tells you:
|
|
542
|
+
|
|
543
|
+
```bash
|
|
544
|
+
echo probe > "${TMPDIR:-/tmp}/probe" # "Disk quota exceeded" / "No space left on device"
|
|
545
|
+
df -i "${TMPDIR:-/tmp}" # a tmpfs can exhaust inodes long before bytes
|
|
546
|
+
```
|
|
547
|
+
|
|
548
|
+
Under quota the file is *created* and the write then fails, so the backend reads
|
|
549
|
+
back a zero-byte capture file and hands the agent an empty result.
|
|
550
|
+
|
|
551
|
+
**Fix.** Since #785 cezar gives each task its own `TMPDIR` under
|
|
552
|
+
`.ai/cezar/tmp/<task-id>` and write-probes it before spawning, so a broken temp
|
|
553
|
+
directory fails the task with `agent temp directory is not writable: …` on the
|
|
554
|
+
task thread instead of corrupting its work. If you see that error, free space on
|
|
555
|
+
the disk holding the repo. `CEZ_AGENT_TMPDIR=0` turns the whole mechanism off —
|
|
556
|
+
per-task directory and pre-spawn check alike — and hands agents the host
|
|
557
|
+
`TMPDIR` again, which is the way out if the check itself is wrong on your
|
|
558
|
+
platform.
|
|
559
|
+
|
|
466
560
|
---
|
|
467
561
|
|
|
468
562
|
## Coding agent backends
|
|
469
563
|
|
|
470
564
|
cezar is not married to one vendor. Every agent step runs through a single
|
|
471
|
-
`AgentRunner` seam with
|
|
565
|
+
`AgentRunner` seam with four built-in backends:
|
|
472
566
|
|
|
473
567
|
| Backend | CLI | How cezar drives it | Tool access |
|
|
474
568
|
|---|---|---|---|
|
|
475
569
|
| **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). |
|
|
476
570
|
| **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). |
|
|
477
571
|
| **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. |
|
|
572
|
+
| **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. |
|
|
478
573
|
|
|
479
|
-
> ⚠️ **OpenCode support
|
|
480
|
-
> than the Claude Code and Codex backends, and OpenCode auto-approves
|
|
481
|
-
> (it ignores `allowedTools`). Treat
|
|
574
|
+
> ⚠️ **OpenCode and pi support are experimental.** Both runners work but are less
|
|
575
|
+
> battle-tested than the Claude Code and Codex backends, and OpenCode auto-approves
|
|
576
|
+
> every permission (it ignores `allowedTools`). Treat them as previews and expect
|
|
577
|
+
> rough edges.
|
|
482
578
|
|
|
483
579
|
On startup cezar probes which CLIs are installed and the cockpit only offers
|
|
484
|
-
the backends it found — install any one of the
|
|
580
|
+
the backends it found — install any one of the four and you're operational.
|
|
485
581
|
|
|
486
582
|
**Pick a backend at three levels** (most specific wins):
|
|
487
583
|
|
|
@@ -512,6 +608,17 @@ steps:
|
|
|
512
608
|
Parallel variants (×2/×3) of one task share that task's backend — mixing
|
|
513
609
|
happens per task and per step, not inside a variant group.
|
|
514
610
|
|
|
611
|
+
**Models come from your own machine.** For Codex and OpenCode, the model picker
|
|
612
|
+
is not a list cezar ships — it asks the installed CLI what it can actually run
|
|
613
|
+
(`codex app-server`'s `model/list`, and `opencode models`), caches the answer in
|
|
614
|
+
memory for five minutes, and shows it. A model your provider rolled out
|
|
615
|
+
yesterday is selectable without a cezar release, and one it retired stops being
|
|
616
|
+
offered. Claude Code has no equivalent local catalog, so it keeps a short list
|
|
617
|
+
of tier aliases and pinned versions. `auto` (let the agent decide) is always
|
|
618
|
+
available, including when the CLI is missing, logged out, or slow — discovery
|
|
619
|
+
never blocks the cockpit, and a model you pinned yourself stays selectable even
|
|
620
|
+
if it is absent from the discovered list.
|
|
621
|
+
|
|
515
622
|
The seam is deliberately small: a backend is one class implementing the
|
|
516
623
|
`AgentRunner` interface (`packages/cezar/src/core/agent-runner.ts`) that turns a prompt into
|
|
517
624
|
a stream of normalized events. Other CLIs — pi, aider, whatever ships next —
|
|
@@ -581,7 +688,7 @@ never blocks startup):
|
|
|
581
688
|
// the source against a moving branch head — cezar verifies it resolves to
|
|
582
689
|
// exactly that commit, and reports it as `team.commit`.
|
|
583
690
|
"worktreeRetention": 10, // keep the last N finished worktrees on disk; 0 = unlimited (branch always kept)
|
|
584
|
-
"defaultRunner": "claude", // agent backend: "claude" (default) · "codex" · "opencode"
|
|
691
|
+
"defaultRunner": "claude", // agent backend: "claude" (default) · "codex" · "opencode" · "pi"
|
|
585
692
|
"modelsLocked": true, // optional: native per-runner model is fixed/read-only; runner stays selectable
|
|
586
693
|
"plannerModel": "sonnet", // model the "Plan first" button uses to draft chains
|
|
587
694
|
"baseBranch": "develop" // branch worktrees fork from + PRs target (also settable in the Git tab)
|
|
@@ -721,4 +828,4 @@ Start here; graduate to cezar when a team needs shared visibility.
|
|
|
721
828
|
|
|
722
829
|
## License
|
|
723
830
|
|
|
724
|
-
**MIT** © Patryk Lewczuk
|
|
831
|
+
**MIT** © Patryk Lewczuk — full text in [LICENSE](LICENSE).
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AgentModelSettingsStrategy } from './types.ts';
|
|
2
|
+
/**
|
|
3
|
+
* pi's native-settings policy, expressed the same way every other runner's is.
|
|
4
|
+
*
|
|
5
|
+
* Nothing in the agent-config catalog (`catalog.ts`) names a pi-owned settings file yet, so
|
|
6
|
+
* `readNativeSettingsFiles` finds none and this reports "no native default" — which is the
|
|
7
|
+
* truthful answer, not a stub: the cockpit then falls back to cezar's own preset for pi exactly
|
|
8
|
+
* as it does for a runner whose config file the user has never written. Going through the shared
|
|
9
|
+
* reader rather than returning `{}` outright means the day a pi config file IS catalogued, this
|
|
10
|
+
* strategy starts honoring it with no change here.
|
|
11
|
+
*/
|
|
12
|
+
export declare const piModelSettingsStrategy: AgentModelSettingsStrategy;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { firstConfiguredModel, readNativeSettingsFiles } from './shared.js';
|
|
2
|
+
/**
|
|
3
|
+
* pi's native-settings policy, expressed the same way every other runner's is.
|
|
4
|
+
*
|
|
5
|
+
* Nothing in the agent-config catalog (`catalog.ts`) names a pi-owned settings file yet, so
|
|
6
|
+
* `readNativeSettingsFiles` finds none and this reports "no native default" — which is the
|
|
7
|
+
* truthful answer, not a stub: the cockpit then falls back to cezar's own preset for pi exactly
|
|
8
|
+
* as it does for a runner whose config file the user has never written. Going through the shared
|
|
9
|
+
* reader rather than returning `{}` outright means the day a pi config file IS catalogued, this
|
|
10
|
+
* strategy starts honoring it with no change here.
|
|
11
|
+
*/
|
|
12
|
+
export const piModelSettingsStrategy = {
|
|
13
|
+
runner: 'pi',
|
|
14
|
+
async read(repoRoot, env) {
|
|
15
|
+
return { model: firstConfiguredModel(await readNativeSettingsFiles('pi', repoRoot, env)) };
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=pi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pi.js","sourceRoot":"","sources":["../../../src/agent-config/model-settings/pi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAG5E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA+B;IACjE,MAAM,EAAE,IAAI;IACZ,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG;QACtB,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,MAAM,uBAAuB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;IAC7F,CAAC;CACF,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { RUNNER_IDS } from '../core/agent-runner.js';
|
|
|
2
2
|
import { claudeModelSettingsStrategy } from './model-settings/claude.js';
|
|
3
3
|
import { codexModelSettingsStrategy } from './model-settings/codex.js';
|
|
4
4
|
import { opencodeModelSettingsStrategy } from './model-settings/opencode.js';
|
|
5
|
+
import { piModelSettingsStrategy } from './model-settings/pi.js';
|
|
5
6
|
/**
|
|
6
7
|
* Each runner owns its native-settings policy. Adding another backend means
|
|
7
8
|
* registering its strategy here; vendor precedence, environment variables,
|
|
@@ -11,6 +12,7 @@ const MODEL_SETTINGS_STRATEGIES = {
|
|
|
11
12
|
claude: claudeModelSettingsStrategy,
|
|
12
13
|
codex: codexModelSettingsStrategy,
|
|
13
14
|
opencode: opencodeModelSettingsStrategy,
|
|
15
|
+
pi: piModelSettingsStrategy,
|
|
14
16
|
};
|
|
15
17
|
export function readAgentModelSettings(runner, repoRoot, env = process.env) {
|
|
16
18
|
return MODEL_SETTINGS_STRATEGIES[runner].read(repoRoot, env);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/agent-config/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/agent-config/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAMjE;;;;GAIG;AACH,MAAM,yBAAyB,GAAiD;IAC9E,MAAM,EAAE,2BAA2B;IACnC,KAAK,EAAE,0BAA0B;IACjC,QAAQ,EAAE,6BAA6B;IACvC,EAAE,EAAE,uBAAuB;CAC5B,CAAC;AAEF,MAAM,UAAU,sBAAsB,CACpC,MAAgB,EAChB,QAAgB,EAChB,GAAG,GAAsB,OAAO,CAAC,GAAG;IAEpC,OAAO,yBAAyB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC/D,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAAgB,EAChB,GAAG,GAAsB,OAAO,CAAC,GAAG;IAEpC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;QAC/B,MAAM;QACN,CAAC,MAAM,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK;KACnD,CAAC,CACZ,CAAC;IACF,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAwC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC;AACrH,CAAC;AAED,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAgB,EAChB,QAAgB,EAChB,GAAG,GAAsB,OAAO,CAAC,GAAG;IAEpC,OAAO,CAAC,MAAM,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxE,CAAC"}
|
|
@@ -28,6 +28,7 @@ export declare const automationTaskSchema: z.ZodObject<{
|
|
|
28
28
|
claude: "claude";
|
|
29
29
|
codex: "codex";
|
|
30
30
|
opencode: "opencode";
|
|
31
|
+
pi: "pi";
|
|
31
32
|
}>>;
|
|
32
33
|
allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
33
34
|
bashAllowlist: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -41,6 +42,7 @@ export declare const automationTaskSchema: z.ZodObject<{
|
|
|
41
42
|
claude: "claude";
|
|
42
43
|
codex: "codex";
|
|
43
44
|
opencode: "opencode";
|
|
45
|
+
pi: "pi";
|
|
44
46
|
}>>;
|
|
45
47
|
model: z.ZodOptional<z.ZodString>;
|
|
46
48
|
variants: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>>;
|
|
@@ -85,6 +87,7 @@ export declare const automationDefinitionSchema: z.ZodObject<{
|
|
|
85
87
|
claude: "claude";
|
|
86
88
|
codex: "codex";
|
|
87
89
|
opencode: "opencode";
|
|
90
|
+
pi: "pi";
|
|
88
91
|
}>>;
|
|
89
92
|
allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
90
93
|
bashAllowlist: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -98,6 +101,7 @@ export declare const automationDefinitionSchema: z.ZodObject<{
|
|
|
98
101
|
claude: "claude";
|
|
99
102
|
codex: "codex";
|
|
100
103
|
opencode: "opencode";
|
|
104
|
+
pi: "pi";
|
|
101
105
|
}>>;
|
|
102
106
|
model: z.ZodOptional<z.ZodString>;
|
|
103
107
|
variants: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { RUNNER_IDS } from '../core/agent-runner.js';
|
|
2
3
|
import { workflowStepSchema } from '../workflows/types.js';
|
|
3
4
|
export const automationEventSchema = z.enum([
|
|
4
5
|
'pull_request.opened',
|
|
@@ -25,7 +26,7 @@ export const automationTaskSchema = z
|
|
|
25
26
|
prompt: z.string().min(1).max(100_000),
|
|
26
27
|
workflow: z.string().trim().min(1).max(200).optional(),
|
|
27
28
|
steps: z.array(workflowStepSchema).min(1).max(100).optional(),
|
|
28
|
-
runner: z.enum(
|
|
29
|
+
runner: z.enum(RUNNER_IDS).optional(),
|
|
29
30
|
model: z.string().trim().min(1).max(200).optional(),
|
|
30
31
|
variants: z.union([z.literal(1), z.literal(2), z.literal(3)]).optional(),
|
|
31
32
|
worktree: z.boolean().optional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/automations/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC1C,qBAAqB;IACrB,cAAc;IACd,eAAe;IACf,iBAAiB;CAClB,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxD,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;AAE9D,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC;KACrC,MAAM,CAAC;IACN,OAAO,EAAE,UAAU;IACnB,SAAS,EAAE,UAAU;IACrB,SAAS,EAAE,UAAU;IACrB,SAAS,EAAE,UAAU;IACrB,aAAa,EAAE,UAAU;IACzB,aAAa,EAAE,UAAU;IACzB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACzD,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACtD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IAC7D,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/automations/types.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -25,6 +25,7 @@ declare const configSchema: z.ZodObject<{
|
|
|
25
25
|
claude: "claude";
|
|
26
26
|
codex: "codex";
|
|
27
27
|
opencode: "opencode";
|
|
28
|
+
pi: "pi";
|
|
28
29
|
}>>;
|
|
29
30
|
plannerModel: z.ZodDefault<z.ZodString>;
|
|
30
31
|
namerModel: z.ZodDefault<z.ZodString>;
|
|
@@ -36,6 +37,7 @@ declare const configSchema: z.ZodObject<{
|
|
|
36
37
|
claude: z.ZodOptional<z.ZodString>;
|
|
37
38
|
codex: z.ZodOptional<z.ZodString>;
|
|
38
39
|
opencode: z.ZodOptional<z.ZodString>;
|
|
40
|
+
pi: z.ZodOptional<z.ZodString>;
|
|
39
41
|
}, z.core.$strip>>>;
|
|
40
42
|
modelsLocked: z.ZodCatch<z.ZodOptional<z.ZodBoolean>>;
|
|
41
43
|
}, z.core.$strip>;
|
package/dist/config.js
CHANGED
|
@@ -2,6 +2,7 @@ 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';
|
|
5
6
|
/**
|
|
6
7
|
* Optional advanced config at `.ai/cezar/config.json`. Zero-config rule:
|
|
7
8
|
* a missing file behaves exactly like the default below, an unreadable or
|
|
@@ -46,7 +47,7 @@ const configSchema = z.object({
|
|
|
46
47
|
* step (workflow). The GUI only offers runners actually installed; this is
|
|
47
48
|
* the preselected default. Also the runner the chain planner uses.
|
|
48
49
|
*/
|
|
49
|
-
defaultRunner: z.enum(
|
|
50
|
+
defaultRunner: z.enum(RUNNER_IDS).default('claude'),
|
|
50
51
|
/** Model for the chain planner (spec 008) — cheap but reliable at JSON. */
|
|
51
52
|
plannerModel: z.string().min(1).default('sonnet'),
|
|
52
53
|
/** Model for the task namer (spec 2026-07-17-task-auto-naming) — the cheapest
|
|
@@ -87,6 +88,7 @@ const configSchema = z.object({
|
|
|
87
88
|
claude: z.string().trim().min(1).max(200).optional(),
|
|
88
89
|
codex: z.string().trim().min(1).max(200).optional(),
|
|
89
90
|
opencode: z.string().trim().min(1).max(200).optional(),
|
|
91
|
+
pi: z.string().trim().min(1).max(200).optional(),
|
|
90
92
|
})
|
|
91
93
|
.optional()
|
|
92
94
|
.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,EAAwB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,7 @@ export declare const agentConfigFileSchema: z.ZodObject<{
|
|
|
37
37
|
claude: "claude";
|
|
38
38
|
codex: "codex";
|
|
39
39
|
opencode: "opencode";
|
|
40
|
+
pi: "pi";
|
|
40
41
|
}>>;
|
|
41
42
|
kind: z.ZodEnum<{
|
|
42
43
|
mcp: "mcp";
|
|
@@ -89,6 +90,7 @@ export declare const agentConfigListingSchema: z.ZodObject<{
|
|
|
89
90
|
claude: "claude";
|
|
90
91
|
codex: "codex";
|
|
91
92
|
opencode: "opencode";
|
|
93
|
+
pi: "pi";
|
|
92
94
|
}>>;
|
|
93
95
|
kind: z.ZodEnum<{
|
|
94
96
|
mcp: "mcp";
|