@patze/code-cli 0.43.3 → 0.55.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/CHANGELOG.md +238 -0
- package/README.md +84 -57
- package/VERSION +1 -1
- package/dist/backend/auth-token-kind.d.ts +3 -0
- package/dist/backend/auth-token-kind.d.ts.map +1 -0
- package/dist/backend/auth-token-kind.js +6 -0
- package/dist/backend/auth-token-kind.js.map +1 -0
- package/dist/backend/client.d.ts.map +1 -1
- package/dist/backend/client.js +7 -1
- package/dist/backend/client.js.map +1 -1
- package/dist/backend/execute-client.d.ts +1 -1
- package/dist/backend/execute-client.d.ts.map +1 -1
- package/dist/backend/execute-client.js +26 -0
- package/dist/backend/execute-client.js.map +1 -1
- package/dist/backend/plugin-session-client.d.ts +33 -0
- package/dist/backend/plugin-session-client.d.ts.map +1 -0
- package/dist/backend/plugin-session-client.js +108 -0
- package/dist/backend/plugin-session-client.js.map +1 -0
- package/dist/backend/runs-client.d.ts.map +1 -1
- package/dist/backend/runs-client.js +2 -1
- package/dist/backend/runs-client.js.map +1 -1
- package/dist/cli/auth/pairing-login.d.ts +10 -0
- package/dist/cli/auth/pairing-login.d.ts.map +1 -0
- package/dist/cli/auth/pairing-login.js +78 -0
- package/dist/cli/auth/pairing-login.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +10 -4
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/exec.d.ts.map +1 -1
- package/dist/cli/commands/exec.js +33 -8
- package/dist/cli/commands/exec.js.map +1 -1
- package/dist/cli/commands/login.d.ts +1 -0
- package/dist/cli/commands/login.d.ts.map +1 -1
- package/dist/cli/commands/login.js +36 -5
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/commands/runs-format.d.ts.map +1 -1
- package/dist/cli/commands/runs-format.js +2 -1
- package/dist/cli/commands/runs-format.js.map +1 -1
- package/dist/cli/commands/runs.d.ts.map +1 -1
- package/dist/cli/commands/runs.js +63 -5
- package/dist/cli/commands/runs.js.map +1 -1
- package/dist/cli/commands/status-format.d.ts.map +1 -1
- package/dist/cli/commands/status-format.js +4 -3
- package/dist/cli/commands/status-format.js.map +1 -1
- package/dist/cli/doctor/e2e-readiness.d.ts +12 -0
- package/dist/cli/doctor/e2e-readiness.d.ts.map +1 -0
- package/dist/cli/doctor/e2e-readiness.js +95 -0
- package/dist/cli/doctor/e2e-readiness.js.map +1 -0
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +2 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/interactive/agent-execute-turn.d.ts.map +1 -1
- package/dist/cli/interactive/agent-execute-turn.js +3 -1
- package/dist/cli/interactive/agent-execute-turn.js.map +1 -1
- package/dist/cli/interactive/agent-turn-context.d.ts +2 -2
- package/dist/cli/interactive/agent-turn-context.d.ts.map +1 -1
- package/dist/cli/interactive/agent-turn-context.js +23 -8
- package/dist/cli/interactive/agent-turn-context.js.map +1 -1
- package/dist/cli/interactive/agent-turn.d.ts.map +1 -1
- package/dist/cli/interactive/agent-turn.js +8 -7
- package/dist/cli/interactive/agent-turn.js.map +1 -1
- package/dist/cli/interactive/auth-credential-resolve.d.ts +20 -0
- package/dist/cli/interactive/auth-credential-resolve.d.ts.map +1 -0
- package/dist/cli/interactive/auth-credential-resolve.js +65 -0
- package/dist/cli/interactive/auth-credential-resolve.js.map +1 -0
- package/dist/cli/interactive/auth-gate.d.ts +1 -1
- package/dist/cli/interactive/auth-gate.d.ts.map +1 -1
- package/dist/cli/interactive/auth-gate.js +12 -3
- package/dist/cli/interactive/auth-gate.js.map +1 -1
- package/dist/cli/interactive/auth-readiness.d.ts +16 -0
- package/dist/cli/interactive/auth-readiness.d.ts.map +1 -0
- package/dist/cli/interactive/auth-readiness.js +50 -0
- package/dist/cli/interactive/auth-readiness.js.map +1 -0
- package/dist/cli/interactive/codex-feed-writer.d.ts.map +1 -1
- package/dist/cli/interactive/codex-feed-writer.js +4 -0
- package/dist/cli/interactive/codex-feed-writer.js.map +1 -1
- package/dist/cli/interactive/composer-chrome.d.ts +1 -1
- package/dist/cli/interactive/composer-chrome.d.ts.map +1 -1
- package/dist/cli/interactive/composer-chrome.js +1 -1
- package/dist/cli/interactive/composer-chrome.js.map +1 -1
- package/dist/cli/interactive/composer-edit-keys.d.ts +21 -0
- package/dist/cli/interactive/composer-edit-keys.d.ts.map +1 -0
- package/dist/cli/interactive/composer-edit-keys.js +57 -0
- package/dist/cli/interactive/composer-edit-keys.js.map +1 -0
- package/dist/cli/interactive/ensure-execute-auth.d.ts.map +1 -1
- package/dist/cli/interactive/ensure-execute-auth.js +8 -13
- package/dist/cli/interactive/ensure-execute-auth.js.map +1 -1
- package/dist/cli/interactive/header-refresh-triggers.d.ts +3 -0
- package/dist/cli/interactive/header-refresh-triggers.d.ts.map +1 -0
- package/dist/cli/interactive/header-refresh-triggers.js +16 -0
- package/dist/cli/interactive/header-refresh-triggers.js.map +1 -0
- package/dist/cli/interactive/header-refresh.d.ts +4 -0
- package/dist/cli/interactive/header-refresh.d.ts.map +1 -0
- package/dist/cli/interactive/header-refresh.js +33 -0
- package/dist/cli/interactive/header-refresh.js.map +1 -0
- package/dist/cli/interactive/header.d.ts +3 -2
- package/dist/cli/interactive/header.d.ts.map +1 -1
- package/dist/cli/interactive/header.js +23 -14
- package/dist/cli/interactive/header.js.map +1 -1
- package/dist/cli/interactive/interactive-footer-hints.d.ts +12 -0
- package/dist/cli/interactive/interactive-footer-hints.d.ts.map +1 -0
- package/dist/cli/interactive/interactive-footer-hints.js +32 -0
- package/dist/cli/interactive/interactive-footer-hints.js.map +1 -0
- package/dist/cli/interactive/interactive-model-apply.d.ts +15 -0
- package/dist/cli/interactive/interactive-model-apply.d.ts.map +1 -0
- package/dist/cli/interactive/interactive-model-apply.js +28 -0
- package/dist/cli/interactive/interactive-model-apply.js.map +1 -0
- package/dist/cli/interactive/interactive-ui.d.ts +13 -0
- package/dist/cli/interactive/interactive-ui.d.ts.map +1 -0
- package/dist/cli/interactive/interactive-ui.js +64 -0
- package/dist/cli/interactive/interactive-ui.js.map +1 -0
- package/dist/cli/interactive/launcher.d.ts.map +1 -1
- package/dist/cli/interactive/launcher.js +24 -17
- package/dist/cli/interactive/launcher.js.map +1 -1
- package/dist/cli/interactive/line-editor.d.ts +5 -4
- package/dist/cli/interactive/line-editor.d.ts.map +1 -1
- package/dist/cli/interactive/line-editor.js +102 -30
- package/dist/cli/interactive/line-editor.js.map +1 -1
- package/dist/cli/interactive/model-catalog-resolve.d.ts +11 -0
- package/dist/cli/interactive/model-catalog-resolve.d.ts.map +1 -0
- package/dist/cli/interactive/model-catalog-resolve.js +49 -0
- package/dist/cli/interactive/model-catalog-resolve.js.map +1 -0
- package/dist/cli/interactive/model-picker-panel.d.ts +22 -2
- package/dist/cli/interactive/model-picker-panel.d.ts.map +1 -1
- package/dist/cli/interactive/model-picker-panel.js +99 -16
- package/dist/cli/interactive/model-picker-panel.js.map +1 -1
- package/dist/cli/interactive/model-selector.d.ts.map +1 -1
- package/dist/cli/interactive/model-selector.js +3 -2
- package/dist/cli/interactive/model-selector.js.map +1 -1
- package/dist/cli/interactive/model-tty-picker.d.ts +3 -1
- package/dist/cli/interactive/model-tty-picker.d.ts.map +1 -1
- package/dist/cli/interactive/model-tty-picker.js +154 -24
- package/dist/cli/interactive/model-tty-picker.js.map +1 -1
- package/dist/cli/interactive/plain-codex-feed.d.ts.map +1 -1
- package/dist/cli/interactive/plain-codex-feed.js +48 -0
- package/dist/cli/interactive/plain-codex-feed.js.map +1 -1
- package/dist/cli/interactive/run-cancel.d.ts +23 -0
- package/dist/cli/interactive/run-cancel.d.ts.map +1 -0
- package/dist/cli/interactive/run-cancel.js +67 -0
- package/dist/cli/interactive/run-cancel.js.map +1 -0
- package/dist/cli/interactive/select-list-nav.d.ts +10 -0
- package/dist/cli/interactive/select-list-nav.d.ts.map +1 -0
- package/dist/cli/interactive/select-list-nav.js +45 -0
- package/dist/cli/interactive/select-list-nav.js.map +1 -0
- package/dist/cli/interactive/session-controller.d.ts +1 -0
- package/dist/cli/interactive/session-controller.d.ts.map +1 -1
- package/dist/cli/interactive/session-controller.js +5 -1
- package/dist/cli/interactive/session-controller.js.map +1 -1
- package/dist/cli/interactive/session-hints.d.ts +4 -1
- package/dist/cli/interactive/session-hints.d.ts.map +1 -1
- package/dist/cli/interactive/session-hints.js +23 -16
- package/dist/cli/interactive/session-hints.js.map +1 -1
- package/dist/cli/interactive/shell.d.ts.map +1 -1
- package/dist/cli/interactive/shell.js +17 -7
- package/dist/cli/interactive/shell.js.map +1 -1
- package/dist/cli/interactive/slash-dispatch.d.ts +2 -0
- package/dist/cli/interactive/slash-dispatch.d.ts.map +1 -1
- package/dist/cli/interactive/slash-dispatch.js +55 -28
- package/dist/cli/interactive/slash-dispatch.js.map +1 -1
- package/dist/cli/interactive/slash-menu.d.ts.map +1 -1
- package/dist/cli/interactive/slash-menu.js +29 -2
- package/dist/cli/interactive/slash-menu.js.map +1 -1
- package/dist/cli/interactive/slash-registry.js +2 -2
- package/dist/cli/interactive/slash-registry.js.map +1 -1
- package/dist/cli/interactive/smoke-trust-fixture.d.ts +10 -0
- package/dist/cli/interactive/smoke-trust-fixture.d.ts.map +1 -0
- package/dist/cli/interactive/smoke-trust-fixture.js +66 -0
- package/dist/cli/interactive/smoke-trust-fixture.js.map +1 -0
- package/dist/cli/interactive/tools-catalog.d.ts.map +1 -1
- package/dist/cli/interactive/tools-catalog.js +17 -12
- package/dist/cli/interactive/tools-catalog.js.map +1 -1
- package/dist/config/config.d.ts +2 -0
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +8 -0
- package/dist/config/config.js.map +1 -1
- package/dist/config/web-ui.d.ts +5 -0
- package/dist/config/web-ui.d.ts.map +1 -0
- package/dist/config/web-ui.js +12 -0
- package/dist/config/web-ui.js.map +1 -0
- package/docs/beta-release-handoff.md +56 -29
- package/docs/internal-beta.md +6 -3
- package/docs/known-limitations.md +32 -19
- package/docs/release-checklist.md +11 -3
- package/opentui/src/App.tsx +626 -218
- package/package.json +6 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,244 @@ All notable changes to `@patze/code-cli` are documented here.
|
|
|
4
4
|
|
|
5
5
|
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
6
6
|
|
|
7
|
+
## [0.55.1] - 2026-05-31
|
|
8
|
+
|
|
9
|
+
### Fixed (Codex-clean composer)
|
|
10
|
+
|
|
11
|
+
- **Composer** — input box is prompt-only (no in-box model/path footer, no auth placeholder); status stays in header + transcript hints like Codex CLI.
|
|
12
|
+
- **TTY + OpenTUI** — shared empty `COMPOSER_PLACEHOLDER`; removed `getChrome` footer row from line editor.
|
|
13
|
+
|
|
14
|
+
## [0.55.0] - 2026-05-31
|
|
15
|
+
|
|
16
|
+
### Added (Wave L — CI cloud gate + release docs)
|
|
17
|
+
|
|
18
|
+
- **`scripts/ci-e2e-cloud.mjs`** + **`verify:ci-e2e-cloud`** — gated cloud execute proof (SKIP when API, GitHub origin, or server cloud flag unavailable).
|
|
19
|
+
- **GitHub Actions** job **`cloud-e2e-gated`** on `patze-code-cli-verify.yml` (same secrets as smart-agent e2e).
|
|
20
|
+
- **`docs/beta-release-handoff.md`** — synced to 0.55.x; CI secrets table; removed stale 0.10.x / “runs planned” copy.
|
|
21
|
+
- **`docs/release-checklist.md`** — CI proof lanes + current test count band.
|
|
22
|
+
|
|
23
|
+
## [0.54.0] - 2026-05-31
|
|
24
|
+
|
|
25
|
+
### Changed (Wave K — docs + ops parity)
|
|
26
|
+
|
|
27
|
+
- **README** — synced to 0.54: cookbook parity table, `patze runs`/`config`/`exec`/`login --pair`, verify/e2e commands.
|
|
28
|
+
- **`docs/internal-beta.md`** + **`known-limitations.md`** — removed stale “planned” runs/OAuth copy.
|
|
29
|
+
- **`patze doctor`** — e2e block hints for `verify:all`, `e2e:cloud`, `CURSOR_API_KEY`.
|
|
30
|
+
- **`patze --help`** — documents `--pair` login and optional live model catalog env.
|
|
31
|
+
|
|
32
|
+
## [0.53.0] - 2026-05-31
|
|
33
|
+
|
|
34
|
+
### Added (Wave J — live catalog + TTY model search)
|
|
35
|
+
|
|
36
|
+
- **`model-catalog-resolve.ts`** — merge bundled Patze catalog with live `Cursor.models.list` when `CURSOR_API_KEY` is set.
|
|
37
|
+
- **OpenTUI picker** — uses merged `pickerCatalog` (SDK extras searchable/selectable).
|
|
38
|
+
- **Node TTY `/model` picker** — cookbook-style type-to-search + T/F thinking/fast toggles (`formatSearchableModelPickerPanel`).
|
|
39
|
+
- **Tests** — `model-catalog-resolve.test.mjs`.
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
|
|
43
|
+
- `filterModelCatalogEntries` / `buildFilteredModelSelectOptions` accept an explicit catalog.
|
|
44
|
+
- `applyInteractiveModelChoice` accepts optional catalog entry for SDK-only models.
|
|
45
|
+
|
|
46
|
+
## [0.52.0] - 2026-05-31
|
|
47
|
+
|
|
48
|
+
### Added (Wave I — cookbook model picker parity)
|
|
49
|
+
|
|
50
|
+
- **OpenTUI model search** — type-to-filter catalog in `/model` picker (`buildFilteredModelSelectOptions`).
|
|
51
|
+
- **OpenTUI T/F shortcuts** — toggle `thinking` / `fast` preferences in model picker (persists to session).
|
|
52
|
+
- **Footer hints** — model picker bar shows search + T/F state (cookbook-aligned).
|
|
53
|
+
- **Tests** — `opentui-model-picker.test.mjs`.
|
|
54
|
+
|
|
55
|
+
### Changed
|
|
56
|
+
|
|
57
|
+
- Model picker panel adds search row + preference hint line; viewport reserves extra row.
|
|
58
|
+
|
|
59
|
+
## [0.51.0] - 2026-05-31
|
|
60
|
+
|
|
61
|
+
### Added (Wave H — inline slash + pipe feed parity)
|
|
62
|
+
|
|
63
|
+
- **OpenTUI inline slash palette** — `/` menu renders above composer (Codex-style); composer stays focused.
|
|
64
|
+
- **`patze exec` pipe mode** — non-TTY stdout uses plain Codex feed (stderr annotations + stdout assistant), same as `patze agent`.
|
|
65
|
+
- **Tests** — inline slash wiring, exec plain feed, tool upsert defer on pipe feed.
|
|
66
|
+
|
|
67
|
+
### Changed
|
|
68
|
+
|
|
69
|
+
- **Plain Codex feed** — defers in-progress think/tool/run upserts on stderr; emits on completion or phase change.
|
|
70
|
+
- **Footer hints** — idle bar mentions Ctrl+U clear.
|
|
71
|
+
- **Doctor auth hint** — recommends `patze login --pair --api <url>` when credentials missing.
|
|
72
|
+
|
|
73
|
+
## [0.50.0] - 2026-05-31
|
|
74
|
+
|
|
75
|
+
### Added (Wave G — runs automation + Codex pipe polish)
|
|
76
|
+
|
|
77
|
+
- **`patze runs cancel [id]`** + **`/runs cancel`** + **`/run cancel`** — server cancel via existing API.
|
|
78
|
+
- **`patze runs list|open --json`** — machine-readable run history for automation.
|
|
79
|
+
- **`run-cancel.ts`** — shared cancel helper + session last-run fallback.
|
|
80
|
+
- **Tests** — `run-cancel.test.mjs`.
|
|
81
|
+
|
|
82
|
+
### Changed
|
|
83
|
+
|
|
84
|
+
- **OpenTUI composer** — Ctrl+U / Ctrl+K clear buffer (Codex-style kill line).
|
|
85
|
+
- **Codex feed (pipe)** — tool/status upserts emit updated rows instead of going stale.
|
|
86
|
+
- **`patze config`** — shows resolved `web` URL.
|
|
87
|
+
- **Runs auth** — list/cancel work with plugin session tokens (no userId required in config when server resolves auth).
|
|
88
|
+
|
|
89
|
+
## [0.49.0] - 2026-05-31
|
|
90
|
+
|
|
91
|
+
### Added (Wave F — cookbook auth + Codex parity)
|
|
92
|
+
|
|
93
|
+
- **`patze login --pair`** — dashboard device-code pairing (Discord OAuth via web; reuses plugin pairing API).
|
|
94
|
+
- **Plugin session auth** — 64-hex tokens use `X-Plugin-Session`; validate via dashboard `/api/plugin-session/validate`.
|
|
95
|
+
- **`PATZE_WEB_UI_URL` / config `web`** — dashboard URL for pairing and plugin session resolve.
|
|
96
|
+
- **Tests** — `plugin-session-auth.test.mjs`.
|
|
97
|
+
|
|
98
|
+
### Changed (Codex / OpenTUI parity)
|
|
99
|
+
|
|
100
|
+
- **OpenTUI** — header repaints sync after model picker; composer chrome uses shared `buildComposerChromeForSession`.
|
|
101
|
+
- **OpenTUI feed** — disable duplicate activity spinner when Codex event feed is active.
|
|
102
|
+
- **Empty-session hints** — show login onboarding when auth incomplete (Codex-style welcome block).
|
|
103
|
+
- **`patze exec --json`** — emits structured `{ type: "error", message, exit_code }` on execute failure.
|
|
104
|
+
|
|
105
|
+
## [0.48.0] - 2026-05-30
|
|
106
|
+
|
|
107
|
+
### Added (Wave E — live proof + header PTY + e2e ergonomics)
|
|
108
|
+
|
|
109
|
+
- **`pty-header-model-smoke.mjs`** — real TTY: `/model gpt-5.4` repaints header; `/model clear` restores Patze default.
|
|
110
|
+
- **`e2e-readiness.ts`** — doctor shows dev API env/token/user posture + `verify:e2e` / `dev.sh` hints.
|
|
111
|
+
- **Tests** — `e2e-readiness.test.mjs`.
|
|
112
|
+
|
|
113
|
+
### Changed
|
|
114
|
+
|
|
115
|
+
- **`verify-e2e`** — skip message names `./server/scripts/dev.sh` when API is down.
|
|
116
|
+
|
|
117
|
+
## [0.47.0] - 2026-05-30
|
|
118
|
+
|
|
119
|
+
### Added (Wave D — PTY proof + e2e ergonomics)
|
|
120
|
+
|
|
121
|
+
- **`pty-slash-menu-smoke.mjs`** — real TTY: slash digit jump (`7` → `/status`) + `j` → `/local`.
|
|
122
|
+
- **`verify:all`** — `npm run verify` then gated `verify:e2e`.
|
|
123
|
+
- **Tests** — line-editor digit/j slash nav; header refresh on `/model` + `/logout`.
|
|
124
|
+
|
|
125
|
+
### Changed
|
|
126
|
+
|
|
127
|
+
- **Header refresh trigger** — also fires on `Model prefs cleared` (`/model clear`).
|
|
128
|
+
|
|
129
|
+
## [0.46.0] - 2026-05-30
|
|
130
|
+
|
|
131
|
+
### Added (Wave C — composer + header polish)
|
|
132
|
+
|
|
133
|
+
- **`composer-edit-keys.ts`** — Emacs-style line edits + horizontal scroll helpers.
|
|
134
|
+
- **`header-refresh-triggers.ts`** — shared `shouldRefreshInteractiveHeader()` for model/auth changes.
|
|
135
|
+
- **Tests** — composer edit keys, ctrl-a/e/u/k in line editor.
|
|
136
|
+
|
|
137
|
+
### Changed
|
|
138
|
+
|
|
139
|
+
- **Node TTY composer** — Ctrl+A/E/U/K; long lines scroll horizontally with cursor.
|
|
140
|
+
- **`/model` header refresh** — uses shared trigger (model + auth credential changes).
|
|
141
|
+
|
|
142
|
+
## [0.45.0] - 2026-05-30
|
|
143
|
+
|
|
144
|
+
### Added (Wave B — OpenTUI + TTY parity)
|
|
145
|
+
|
|
146
|
+
- **`select-list-nav.ts`** — shared ↑↓/j/k + 1–9 list navigation + `COMPOSER_MENU_MAX_ROWS`.
|
|
147
|
+
- **`interactive-footer-hints.ts`** — shared bottom hint bar for Node TTY and OpenTUI.
|
|
148
|
+
- **Integration tests** — `select-list-nav`, `interactive-footer-hints`, `opentui-keyboard-parity`.
|
|
149
|
+
|
|
150
|
+
### Changed
|
|
151
|
+
|
|
152
|
+
- **OpenTUI** — j/k + digit jump on slash/model/reasoning pickers; controlled `selectedIndex`; shared footer hints.
|
|
153
|
+
- **Node TTY composer** — bottom hint row; slash menu digit jump; menu redraw capped at 6 rows.
|
|
154
|
+
|
|
155
|
+
## [0.44.0] - 2026-05-30
|
|
156
|
+
|
|
157
|
+
### Added (Wave A — credibility)
|
|
158
|
+
|
|
159
|
+
- **GitHub Actions** — `.github/workflows/patze-code-cli-verify.yml` (verify + gated `e2e-gated` job).
|
|
160
|
+
- **`verify:ci-e2e`** / **`scripts/ci-verify-e2e.mjs`** — CI wrapper with secret overrides or local `server/.env`.
|
|
161
|
+
- **PTY trust apply smoke** — `scripts/pty-trust-apply-smoke.mjs` (fixture-seeded `/apply` + typed confirmation on real TTY).
|
|
162
|
+
- **`smoke-trust-fixture.ts`** — smoke-only `PATZE_CLI_TRUST_FIXTURE=apply-gated` hook in `prepareInteractiveController`.
|
|
163
|
+
|
|
164
|
+
### Fixed
|
|
165
|
+
|
|
166
|
+
- **`patze doctor`** — `auth` + `execute` + `agent` lines; no ambiguous “ready” when execute is off or user id missing.
|
|
167
|
+
- **Docs** — `known-limitations.md`, README version band aligned to **0.44.x**.
|
|
168
|
+
|
|
169
|
+
## [0.43.9] - 2026-05-30
|
|
170
|
+
|
|
171
|
+
### Fixed (P0 — credibility + trust loop proof)
|
|
172
|
+
|
|
173
|
+
- **`/tools` catalog** — `execute`, `run_stream`, and `runs` marked **active**; removed stale “Phase 3” execute copy.
|
|
174
|
+
- **`verify:e2e`** — probes `/health` first; **SKIP** when API creds exist but server is down (no false-red local verify).
|
|
175
|
+
- **PTY smoke** — `/permissions edit-with-approval` + `/apply` asserts fail-closed without approval gate.
|
|
176
|
+
- **Trust-loop shell test** — scripted `/apply` gate + typed confirmation via `prepareInteractiveController`.
|
|
177
|
+
|
|
178
|
+
## [0.43.8] - 2026-05-30
|
|
179
|
+
|
|
180
|
+
### Fixed (Wave 2 — Codex parity)
|
|
181
|
+
|
|
182
|
+
- **OpenTUI keyboard parity** — input history on ↑/↓ when transcript pinned; transcript scroll when unpinned; Tab/`commandRequiresArg` slash complete; Ctrl+J / Alt+Enter newline; Esc dismisses slash menu without clearing buffer; Home/End scroll only when viewing history.
|
|
183
|
+
- **Shared model picker** — OpenTUI uses catalog-only list with `(current)` / `(default)` markers and pre-selects current model (parity with Node TTY).
|
|
184
|
+
- **Reasoning picker** — Esc dismisses entire picker (TTY-aligned); markers on effort rows.
|
|
185
|
+
|
|
186
|
+
### Added
|
|
187
|
+
|
|
188
|
+
- **`verify:e2e`** — gated smart-agent E2E (`scripts/verify-e2e.mjs`); skips when dev API creds absent.
|
|
189
|
+
- **PTY smoke** — `/permissions` opens permission selector.
|
|
190
|
+
- **`formatCodexListItemLabel`** / exported **`buildModelListItems`** for shared picker labels.
|
|
191
|
+
|
|
192
|
+
## [0.43.7] - 2026-05-30
|
|
193
|
+
|
|
194
|
+
### Fixed (Wave 1 — Codex parity)
|
|
195
|
+
|
|
196
|
+
- **Auth flow unified** — `patze login` and `/login` share `persistCredentialsWithUserResolution` (session user-id resolve + warning on failure).
|
|
197
|
+
- **Live header refresh** — TTY shell repaints startup card after `/login`, `/logout`, and `/model` (model set); OpenTUI refreshes header on the same signal.
|
|
198
|
+
- **PTY smoke** — adds `/inspect` and `/help` on a real TTY.
|
|
199
|
+
|
|
200
|
+
### Added
|
|
201
|
+
|
|
202
|
+
- **`auth-credential-resolve.ts`**, **`header-refresh.ts`**, and focused tests.
|
|
203
|
+
|
|
204
|
+
## [0.43.6] - 2026-05-30
|
|
205
|
+
|
|
206
|
+
### Fixed (council polish — auth + keyboard parity)
|
|
207
|
+
|
|
208
|
+
- **Auth UX unified** — header, `/status`, `patze doctor`, empty-session hints, and task gate copy use `resolveAuthReadiness()` (missing `userId` vs not logged in).
|
|
209
|
+
- **Conversation replies** use `agentReady` so meta-chat does not claim “auth ready” when execute is blocked.
|
|
210
|
+
- **Composer placeholder** shows even when `NO_COLOR=1`.
|
|
211
|
+
- **OpenTUI** — header refreshes after turns; Ctrl+C clears composer text; Esc dismisses command palette without wiping input.
|
|
212
|
+
- **`patze exec`** — auto-resolves session user id before auth gate (parity with interactive shell).
|
|
213
|
+
- **Slash menu** — `j`/`k` navigation when palette is open.
|
|
214
|
+
|
|
215
|
+
## [0.43.5] - 2026-05-30
|
|
216
|
+
|
|
217
|
+
### Fixed
|
|
218
|
+
|
|
219
|
+
- **Auth posture** — `resolveAuthReadiness` splits credentials vs execute-ready; “am I logged in?” and composer placeholder call out missing `userId` when execute is enabled.
|
|
220
|
+
- **OpenTUI `/model`** — catalog selection uses `applyModelSelection` with optional reasoning sub-step (parity with Node TTY picker).
|
|
221
|
+
- **PTY smoke** — asserts `/model` opens “Select Model and Effort” on a real TTY.
|
|
222
|
+
|
|
223
|
+
### Added
|
|
224
|
+
|
|
225
|
+
- **`auth-readiness.ts`**, **`interactive-model-apply.ts`**, and focused tests.
|
|
226
|
+
|
|
227
|
+
## [0.43.4] - 2026-05-30
|
|
228
|
+
|
|
229
|
+
### Fixed (composer + smart UX — council polish)
|
|
230
|
+
|
|
231
|
+
- **Composer cursor** clamps to visible inner width when typing long lines (no cursor drift outside the box).
|
|
232
|
+
- **Composer chrome/placeholder** snapshot once per turn (no `loadConfig` on every keystroke).
|
|
233
|
+
- **Terminal resize (`SIGWINCH`)** re-renders the composer frame.
|
|
234
|
+
- **Bracketed paste** enabled in raw-mode lifecycle (`?2004h/l`).
|
|
235
|
+
- **Clean handoff** after agent feed — newline before next composer turn.
|
|
236
|
+
- **Slash palette** — `/models` and `/quit` aliases match in live filter; Codex keyboard footer (↑↓ · Tab · Esc).
|
|
237
|
+
- **OpenTUI** empty-session hints gated like Node TTY when auth incomplete.
|
|
238
|
+
- **`patze doctor`** reports resolved interactive UI stack (node vs opentui, bun, deps, overrides).
|
|
239
|
+
- **Launcher** logs one-line UI lane; falls back from OpenTUI when Bun missing.
|
|
240
|
+
|
|
241
|
+
### Added
|
|
242
|
+
|
|
243
|
+
- **`tests/model-picker-integration.test.mjs`** — picker cancel + Patze one-step select.
|
|
244
|
+
|
|
7
245
|
## [0.43.3] - 2026-05-30
|
|
8
246
|
|
|
9
247
|
### Fixed (composer TTY — Codex parity)
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ Professional local terminal client for Patze Code / PatzeAgents.
|
|
|
4
4
|
|
|
5
5
|
Patze Code runs coding tasks against your workspace while keeping **PatzeAgents server** as the authority for auth, entitlements, run records, artifacts, verification, and policy.
|
|
6
6
|
|
|
7
|
-
> **Internal beta (0.
|
|
7
|
+
> **Internal beta (0.55.x):** Codex/cookbook-style composer, trust loop, runs automation, and gated agent execute. See [`docs/internal-beta.md`](docs/internal-beta.md) and [`docs/known-limitations.md`](docs/known-limitations.md). Not yet `npm latest` / 1.0.
|
|
8
8
|
|
|
9
9
|
## Requirements
|
|
10
10
|
|
|
@@ -20,7 +20,7 @@ cd packages/patze-code-cli
|
|
|
20
20
|
|
|
21
21
|
# Or manual tarball
|
|
22
22
|
npm run build && npm pack
|
|
23
|
-
npm install -g ./patze-code-cli-0.
|
|
23
|
+
npm install -g ./patze-code-cli-0.55.0.tgz
|
|
24
24
|
patze --version
|
|
25
25
|
```
|
|
26
26
|
|
|
@@ -41,10 +41,16 @@ Full guide: [`docs/install-beta.md`](docs/install-beta.md) · Checklist: [`docs/
|
|
|
41
41
|
mkdir -p /tmp/patze-beta && cd /tmp/patze-beta
|
|
42
42
|
git init
|
|
43
43
|
|
|
44
|
-
# 2. Optional — server
|
|
44
|
+
# 2. Optional — server auth (use env, never commit secrets)
|
|
45
45
|
export PATZE_CODE_API=https://api.example.com
|
|
46
46
|
export PATZE_CODE_TOKEN=<internal-api-key>
|
|
47
|
-
export PATZE_CODE_USER_ID=<user-uuid>
|
|
47
|
+
export PATZE_CODE_USER_ID=<user-uuid>
|
|
48
|
+
|
|
49
|
+
# Or dashboard pairing (recommended for humans)
|
|
50
|
+
# patze login --pair --api https://api.example.com [--web https://app.example.com]
|
|
51
|
+
|
|
52
|
+
# Optional — live Cursor model list in /model picker (OpenTUI + TTY)
|
|
53
|
+
# export CURSOR_API_KEY=crsr_...
|
|
48
54
|
|
|
49
55
|
# 3. Read-only checks
|
|
50
56
|
patze status
|
|
@@ -59,7 +65,7 @@ patze
|
|
|
59
65
|
Running `patze` shows a status card and tips:
|
|
60
66
|
|
|
61
67
|
```text
|
|
62
|
-
╭─ Patze Code · v0.
|
|
68
|
+
╭─ Patze Code · v0.55.0 ────────────────────────────────────╮
|
|
63
69
|
│ workspace /mnt/d/pat-test │
|
|
64
70
|
│ auth incomplete │
|
|
65
71
|
│ permission Read-only │
|
|
@@ -67,7 +73,7 @@ Running `patze` shows a status card and tips:
|
|
|
67
73
|
╰───────────────────────────────────────────────────────────╯
|
|
68
74
|
Beta · Dev demo — for internal testing only
|
|
69
75
|
|
|
70
|
-
! auth incomplete — run `patze login
|
|
76
|
+
! auth incomplete — run `patze login --pair --api <url>` or set PATZE_CODE_* env
|
|
71
77
|
|
|
72
78
|
Type a task, or /help for commands.
|
|
73
79
|
Tips
|
|
@@ -94,76 +100,64 @@ argument (e.g. `/goal <task>`) complete to `/goal ` and wait for your input.
|
|
|
94
100
|
When the palette is closed, ↑↓ recalls in-session history. The composer is
|
|
95
101
|
TTY-only; piped / scripted input stays on readline and remains deterministic.
|
|
96
102
|
|
|
97
|
-
Authenticate
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
(`PATZE_CODE_USER_ID` is optional).
|
|
102
|
-
|
|
103
|
-
Inside `patze`:
|
|
104
|
-
|
|
105
|
-
```text
|
|
106
|
-
/goal Update README quickstart
|
|
107
|
-
/plan
|
|
108
|
-
/diff
|
|
109
|
-
/permissions suggest
|
|
110
|
-
/approve
|
|
111
|
-
/permissions edit-with-approval
|
|
112
|
-
/apply
|
|
113
|
-
APPLY artifa…90ab
|
|
114
|
-
/verify
|
|
115
|
-
/status
|
|
116
|
-
```
|
|
103
|
+
Authenticate with **`patze login --pair --api <url>`** (dashboard device-code), **`/login`**
|
|
104
|
+
inside the shell, or **`patze login <api> <token> [userId]`**. Environment variables
|
|
105
|
+
`PATZE_CODE_API` / `PATZE_CODE_TOKEN` / `PATZE_CODE_USER_ID` also work. Tokens are
|
|
106
|
+
masked in output and never kept in transcript or recall history.
|
|
117
107
|
|
|
118
|
-
##
|
|
108
|
+
## Cookbook parity ([Cursor coding-agent-cli](https://github.com/cursor/cookbook/tree/main/sdk/coding-agent-cli))
|
|
119
109
|
|
|
120
|
-
|
|
121
|
-
prompt → inspect → plan → diff → permissions → approve → apply → verify
|
|
122
|
-
```
|
|
110
|
+
Patze Code is a **PatzeAgents-backed** hybrid (server authority + Codex/cookbook UX):
|
|
123
111
|
|
|
124
|
-
|
|
112
|
+
| Cookbook capability | Patze CLI |
|
|
113
|
+
|---------------------|-----------|
|
|
114
|
+
| Interactive TUI (`patze`) | ✅ OpenTUI (Bun) or Node TTY fallback |
|
|
115
|
+
| One-shot + stdin pipe | ✅ `patze "task"`, `patze agent`, `patze exec` |
|
|
116
|
+
| `/` slash menu (inline palette) | ✅ filter-as-you-type; composer stays focused |
|
|
117
|
+
| `/local`, `/cloud`, `/model`, `/reset` | ✅ + Patze trust loop commands |
|
|
118
|
+
| Model picker search + T/F prefs | ✅ OpenTUI + Node TTY |
|
|
119
|
+
| Live model catalog | ✅ bundled + `Cursor.models.list` when `CURSOR_API_KEY` set |
|
|
120
|
+
| Plain pipe feed (stderr meta) | ✅ Codex feed on `patze exec` / non-TTY agent |
|
|
121
|
+
| Direct `@cursor/sdk` runtime | ⚠️ Patze uses FastAPI execute + policy (by design) |
|
|
125
122
|
|
|
126
|
-
## Command status (0.
|
|
123
|
+
## Command status (0.55.0)
|
|
127
124
|
|
|
128
125
|
### Interactive (`patze` shell)
|
|
129
126
|
|
|
130
127
|
| Command | Status | Notes |
|
|
131
128
|
|---------|--------|-------|
|
|
132
|
-
| free-text prompt | ✅ | Agent
|
|
129
|
+
| free-text prompt | ✅ | Agent execute + SSE when auth ready |
|
|
133
130
|
| `/help` | ✅ | |
|
|
134
131
|
| `/status [--check]` | ✅ | Trust-loop snapshot + auth posture |
|
|
132
|
+
| `/login`, `/logout` | ✅ | Save or clear credentials |
|
|
133
|
+
| `/local`, `/cloud` | ✅ | Execution mode (cloud gated by server) |
|
|
134
|
+
| `/model` | ✅ | Searchable picker + T/F thinking/fast (TTY + OpenTUI) |
|
|
135
|
+
| `/runs`, `/run` | ✅ | List/open/cancel server runs |
|
|
136
|
+
| `/reset`, `/clear` | ✅ | Fresh agent / clear transcript |
|
|
135
137
|
| `/context` | ✅ | Session state (digests masked) |
|
|
136
|
-
| `/goal
|
|
137
|
-
| `/
|
|
138
|
-
| `/
|
|
139
|
-
| `/permissions [mode]` | ✅ | Selector + direct set |
|
|
140
|
-
| `/tools` | ✅ | Tool availability catalog |
|
|
141
|
-
| `/diff` | ✅ | Read-only patch preview |
|
|
142
|
-
| `/approve` | ✅ | Approval gate (no writes) |
|
|
143
|
-
| `/apply` | ✅ | Gated apply + typed confirmation |
|
|
144
|
-
| `/verify` | ✅ | Local read-only hash verify |
|
|
145
|
-
| `/reject` | ✅ | Clear gate / drift recovery |
|
|
146
|
-
| `/reset` | ✅ | Clear agent session state |
|
|
147
|
-
| `/clear` | ✅ | Clear transcript |
|
|
138
|
+
| `/goal`, `/inspect`, `/plan` | ✅ | Trust loop + preview |
|
|
139
|
+
| `/permissions`, `/tools` | ✅ | Mode selector + tool catalog |
|
|
140
|
+
| `/diff`, `/approve`, `/apply`, `/verify`, `/reject` | ✅ | Gated local apply loop |
|
|
148
141
|
| `/exit` | ✅ | |
|
|
149
142
|
|
|
150
143
|
### Top-level CLI
|
|
151
144
|
|
|
152
145
|
| Command | Status | Notes |
|
|
153
146
|
|---------|--------|-------|
|
|
154
|
-
| `patze` | ✅ | Interactive shell (
|
|
147
|
+
| `patze` | ✅ | Interactive shell (OpenTUI or Node TTY) |
|
|
148
|
+
| `patze "<task>"` / `patze agent` | ✅ | One-shot agent; pipe uses Codex plain feed |
|
|
149
|
+
| `patze exec "<task>" [--json]` | ✅ | CI/automation JSONL stream |
|
|
155
150
|
| `patze --version` | ✅ | |
|
|
156
151
|
| `patze status [--check]` | ✅ | |
|
|
157
|
-
| `patze doctor [--check]` | ✅ | Read-only;
|
|
158
|
-
| `patze login
|
|
152
|
+
| `patze doctor [--check]` | ✅ | Read-only; e2e + cloud hints when dev env present |
|
|
153
|
+
| `patze login --pair --api <url>` | ✅ | Dashboard device-code (recommended) |
|
|
154
|
+
| `patze login <api> <token> [id]` | ✅ | Manual token paste |
|
|
159
155
|
| `patze goal "<task>" --dry-run` | ✅ | Non-interactive plan |
|
|
160
|
-
| `patze code inspect` | ✅ | |
|
|
161
|
-
| `patze code plan --preview` | ✅ | Needs auth |
|
|
162
|
-
| `patze code diff` | ✅ | Read-only |
|
|
156
|
+
| `patze code inspect|plan|diff` | ✅ | Workspace / preview commands |
|
|
163
157
|
| `patze code apply` | 🚫 disabled | Interactive `/apply` only |
|
|
164
158
|
| `patze code verify` | ℹ️ help-only | No session apply → summary only |
|
|
165
|
-
| `patze runs
|
|
166
|
-
| `patze config` |
|
|
159
|
+
| `patze runs list|open|cancel` | ✅ | Server run history; `--json` on list/open |
|
|
160
|
+
| `patze config` | ✅ | Resolved config paths + `web` URL |
|
|
167
161
|
|
|
168
162
|
### Permission modes
|
|
169
163
|
|
|
@@ -174,7 +168,30 @@ Docs: [`docs/trust-loop.md`](docs/trust-loop.md) · [`docs/safety-model.md`](doc
|
|
|
174
168
|
| `edit-with-approval` | ✅ | + gated `/apply` |
|
|
175
169
|
| `full-auto` | 🚫 forbidden | Never enabled |
|
|
176
170
|
|
|
177
|
-
Legend: ✅ implemented · 🚫 explicitly disabled ·
|
|
171
|
+
Legend: ✅ implemented · 🚫 explicitly disabled · ℹ️ informational only
|
|
172
|
+
|
|
173
|
+
## Trust loop
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
prompt → inspect → plan → diff → permissions → approve → apply → verify
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Example inside `patze`:
|
|
180
|
+
|
|
181
|
+
```text
|
|
182
|
+
/goal Update README quickstart
|
|
183
|
+
/plan
|
|
184
|
+
/diff
|
|
185
|
+
/permissions suggest
|
|
186
|
+
/approve
|
|
187
|
+
/permissions edit-with-approval
|
|
188
|
+
/apply
|
|
189
|
+
APPLY artifa…90ab
|
|
190
|
+
/verify
|
|
191
|
+
/status
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
Docs: [`docs/trust-loop.md`](docs/trust-loop.md) · [`docs/safety-model.md`](docs/safety-model.md)
|
|
178
195
|
|
|
179
196
|
## Safety model (summary)
|
|
180
197
|
|
|
@@ -190,20 +207,30 @@ Full detail: [`docs/safety-model.md`](docs/safety-model.md)
|
|
|
190
207
|
|
|
191
208
|
```bash
|
|
192
209
|
cd packages/patze-code-cli
|
|
193
|
-
npm run verify # version + pack
|
|
210
|
+
npm run verify # version + pack + typecheck + tests + smoke + PTY suite
|
|
211
|
+
npm run verify:all # verify + gated verify:e2e (needs dev API up)
|
|
194
212
|
npm run verify:pack # tarball audit (--verbose for JSON summary)
|
|
195
213
|
npm run smoke # temp workspace + local npm pack install
|
|
196
214
|
```
|
|
197
215
|
|
|
216
|
+
Optional live-agent checks (repo root API + `server/.env`):
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
npm run verify:e2e # smart-agent smoke when /health is up
|
|
220
|
+
npm run e2e:cloud # cloud preview → execute → SSE (GitHub origin required)
|
|
221
|
+
npm run e2e:cloud:interactive # /cloud flow inside interactive shell
|
|
222
|
+
npm run verify:ci-e2e-cloud # CI gate for cloud execute (skip when API/cloud flag absent)
|
|
223
|
+
```
|
|
224
|
+
|
|
198
225
|
## Release blockers (before npm `latest` / 1.0)
|
|
199
226
|
|
|
200
227
|
- [ ] Public npm publish policy + scoped access review
|
|
201
228
|
- [ ] Shell-based verify (npm test/lint) as optional gated capability
|
|
202
|
-
- [ ] `patze runs` read-only sync (no mutation path)
|
|
203
229
|
- [ ] Server apply receipt correlation (read-only)
|
|
204
230
|
- [ ] Cross-restart session persistence decision
|
|
205
|
-
- [ ] OAuth
|
|
231
|
+
- [ ] OAuth polish beyond `login --pair` (token refresh, production redirect UX)
|
|
206
232
|
- [ ] Production error telemetry without leaking secrets
|
|
233
|
+
- [x] Cloud execute e2e in CI (optional gated job `cloud-e2e-gated`; needs secrets + `FEATURE_PATZE_CODE_CLI_CLOUD_EXECUTE`)
|
|
207
234
|
|
|
208
235
|
## Documentation
|
|
209
236
|
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.55.1
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-token-kind.d.ts","sourceRoot":"","sources":["../../src/backend/auth-token-kind.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAG9E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-token-kind.js","sourceRoot":"","sources":["../../src/backend/auth-token-kind.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,UAAU,oBAAoB,CAAC,KAAgC;IACnE,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IACnC,OAAO,OAAO,CAAC,MAAM,KAAK,EAAE,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AACjE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/backend/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/backend/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGzD,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,cAAc;IAEnD,IAAI,OAAO,IAAI,MAAM,GAAG,IAAI,CAE3B;IAED,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAkBhC,WAAW,CAAC,SAAS,SAAQ,GAAG,OAAO,CAAC,WAAW,CAAC;CA4B3D"}
|
package/dist/backend/client.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isPluginSessionToken } from "./auth-token-kind.js";
|
|
1
2
|
export class PatzeBackendClient {
|
|
2
3
|
config;
|
|
3
4
|
constructor(config) {
|
|
@@ -12,7 +13,12 @@ export class PatzeBackendClient {
|
|
|
12
13
|
"Content-Type": "application/json",
|
|
13
14
|
};
|
|
14
15
|
if (this.config.token) {
|
|
15
|
-
|
|
16
|
+
if (isPluginSessionToken(this.config.token)) {
|
|
17
|
+
headers["X-Plugin-Session"] = this.config.token;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
headers["X-Internal-API-Key"] = this.config.token;
|
|
21
|
+
}
|
|
16
22
|
}
|
|
17
23
|
if (this.config.userId) {
|
|
18
24
|
headers["X-Internal-User-Id"] = this.config.userId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/backend/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/backend/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAQ3D,MAAM,OAAO,kBAAkB;IACA;IAA7B,YAA6B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAEvD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAA;IACxB,CAAC;IAED,YAAY;QACV,MAAM,OAAO,GAA2B;YACtC,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,kBAAkB;SACnC,CAAA;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5C,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA;YACjD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA;YACnD,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;QACpD,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAS,GAAG,KAAK;QACjC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACrB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAA;QACvE,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;QACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAA;QAE7D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;gBAChE,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAA;YACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,OAAO,EAAE,mBAAmB,QAAQ,CAAC,MAAM,EAAE;iBAC9C,CAAA;YACH,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAA;QACpE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAA;YAC9E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;QAC7C,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-client.d.ts","sourceRoot":"","sources":["../../src/backend/execute-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,WAAW,CAAC,EAAE,OAAO,EAAE,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,uBAAuB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACrF;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,wBAAwB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACvF;
|
|
1
|
+
{"version":3,"file":"execute-client.d.ts","sourceRoot":"","sources":["../../src/backend/execute-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,WAAW,CAAC,EAAE,OAAO,EAAE,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,uBAAuB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACrF;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,wBAAwB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACvF;IACE,EAAE,EAAE,KAAK,CAAA;IACT,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;IAC/C,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B,CAAA;AAEL,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAC/C,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,OAAO,EAAE,kBAAkB,CAAA;IAC3B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAqF/B"}
|
|
@@ -46,6 +46,15 @@ export async function postUserTaskExecute(input) {
|
|
|
46
46
|
return { ok: true, kind: "accepted", response: normalized, httpStatus: response.status };
|
|
47
47
|
}
|
|
48
48
|
if (response.status === 200 || response.status === 409) {
|
|
49
|
+
const blocked = normalizeBlocked(body);
|
|
50
|
+
if (blocked) {
|
|
51
|
+
return {
|
|
52
|
+
ok: false,
|
|
53
|
+
kind: "blocked",
|
|
54
|
+
message: blocked.message,
|
|
55
|
+
httpStatus: response.status,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
49
58
|
const normalized = normalizeCompleted(body);
|
|
50
59
|
if (!normalized) {
|
|
51
60
|
return {
|
|
@@ -86,6 +95,23 @@ function extractDetail(body) {
|
|
|
86
95
|
}
|
|
87
96
|
return null;
|
|
88
97
|
}
|
|
98
|
+
function normalizeBlocked(body) {
|
|
99
|
+
if (!body || typeof body !== "object") {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
const record = body;
|
|
103
|
+
const status = String(record.status ?? "").trim().toLowerCase();
|
|
104
|
+
const runId = String(record.run_id ?? "").trim();
|
|
105
|
+
const errorCode = String(record.error_code ?? "").trim();
|
|
106
|
+
const outcomeSummary = String(record.outcome_summary ?? "").trim();
|
|
107
|
+
const blocked = status === "blocked" || (!runId && Boolean(errorCode));
|
|
108
|
+
if (!blocked) {
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
message: outcomeSummary || errorCode || "execute blocked",
|
|
113
|
+
};
|
|
114
|
+
}
|
|
89
115
|
function normalizeAccepted(body) {
|
|
90
116
|
if (!body || typeof body !== "object") {
|
|
91
117
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-client.js","sourceRoot":"","sources":["../../src/backend/execute-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"execute-client.js","sourceRoot":"","sources":["../../src/backend/execute-client.ts"],"names":[],"mappings":"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"}
|