@patze/code-cli 0.43.1 → 0.55.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +256 -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-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 +4 -1
- package/dist/cli/interactive/header.d.ts.map +1 -1
- package/dist/cli/interactive/header.js +44 -20
- 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 +7 -2
- package/dist/cli/interactive/line-editor.d.ts.map +1 -1
- package/dist/cli/interactive/line-editor.js +133 -42
- 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 +124 -30
- 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 +1 -0
- package/dist/cli/interactive/session-hints.d.ts.map +1 -1
- package/dist/cli/interactive/session-hints.js +24 -8
- 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 +19 -3
- 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/cli/interactive/tty-arrow-selector.d.ts.map +1 -1
- package/dist/cli/interactive/tty-arrow-selector.js +5 -8
- package/dist/cli/interactive/tty-arrow-selector.js.map +1 -1
- package/dist/cli/interactive/tty-frame.d.ts +14 -0
- package/dist/cli/interactive/tty-frame.d.ts.map +1 -1
- package/dist/cli/interactive/tty-frame.js +127 -14
- package/dist/cli/interactive/tty-frame.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 +636 -213
- package/package.json +6 -2
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
const HIDE_CURSOR = "\x1b[?25l";
|
|
2
2
|
export const SHOW_CURSOR = "\x1b[?25h";
|
|
3
|
+
const SAVE_CURSOR = "\x1b[s";
|
|
4
|
+
const RESTORE_CURSOR = "\x1b[u";
|
|
5
|
+
export function clampLinesToSingleRow(lines, width) {
|
|
6
|
+
const cols = Math.max(1, width);
|
|
7
|
+
return lines.map((line) => clampStyledLineToSingleRow(line, cols));
|
|
8
|
+
}
|
|
9
|
+
function clampStyledLineToSingleRow(line, width) {
|
|
10
|
+
const plain = stripAnsi(line);
|
|
11
|
+
if ([...plain].length <= width) {
|
|
12
|
+
return line;
|
|
13
|
+
}
|
|
14
|
+
const open = line.match(/^(\x1b\[[0-9;]*m)+/);
|
|
15
|
+
const close = line.endsWith("\x1b[0m") ? "\x1b[0m" : "";
|
|
16
|
+
const innerPlain = truncatePlainChars(plain, width);
|
|
17
|
+
if (open) {
|
|
18
|
+
return `${open[0]}${innerPlain}${close}`;
|
|
19
|
+
}
|
|
20
|
+
return innerPlain;
|
|
21
|
+
}
|
|
22
|
+
function truncatePlainChars(text, max) {
|
|
23
|
+
const chars = [...text];
|
|
24
|
+
if (chars.length <= max) {
|
|
25
|
+
return text;
|
|
26
|
+
}
|
|
27
|
+
if (max <= 1) {
|
|
28
|
+
return "…";
|
|
29
|
+
}
|
|
30
|
+
return `${chars.slice(0, max - 1).join("")}…`;
|
|
31
|
+
}
|
|
3
32
|
export function stripAnsi(text) {
|
|
4
33
|
return text.replace(/\x1b\[[0-9;]*m/g, "");
|
|
5
34
|
}
|
|
@@ -8,29 +37,113 @@ export function countVisualRows(lines, width) {
|
|
|
8
37
|
const cols = Math.max(1, width);
|
|
9
38
|
let total = 0;
|
|
10
39
|
for (const line of lines) {
|
|
11
|
-
|
|
12
|
-
const length = [...plain].length;
|
|
13
|
-
total += Math.max(1, Math.ceil(length / cols));
|
|
40
|
+
total += lineVisualRows(line, cols);
|
|
14
41
|
}
|
|
15
42
|
return total;
|
|
16
43
|
}
|
|
44
|
+
export function lineVisualRows(line, width) {
|
|
45
|
+
const plain = stripAnsi(line);
|
|
46
|
+
const length = [...plain].length;
|
|
47
|
+
return Math.max(1, Math.ceil(length / Math.max(1, width)));
|
|
48
|
+
}
|
|
49
|
+
/** Pin overlay redraws to the cursor position where the picker opened (Codex-style). */
|
|
50
|
+
export class TtyAnchoredOverlay {
|
|
51
|
+
frameRows = 0;
|
|
52
|
+
anchored = false;
|
|
53
|
+
begin(output) {
|
|
54
|
+
output.write(SAVE_CURSOR);
|
|
55
|
+
this.anchored = true;
|
|
56
|
+
this.frameRows = 0;
|
|
57
|
+
}
|
|
58
|
+
redraw(output, lines, width, options) {
|
|
59
|
+
const clamped = clampLinesToSingleRow(lines, width);
|
|
60
|
+
const visualRows = clamped.length;
|
|
61
|
+
let out = HIDE_CURSOR;
|
|
62
|
+
if (this.anchored) {
|
|
63
|
+
out += RESTORE_CURSOR;
|
|
64
|
+
out += clearRowsEscape(this.frameRows);
|
|
65
|
+
if (this.frameRows > 0) {
|
|
66
|
+
out += RESTORE_CURSOR;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else if (this.frameRows > 0) {
|
|
70
|
+
out += rewindAndClearRowsEscape(this.frameRows);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
out += "\r";
|
|
74
|
+
}
|
|
75
|
+
out += clamped.join("\n");
|
|
76
|
+
if (options?.showCursor !== false) {
|
|
77
|
+
out += SHOW_CURSOR;
|
|
78
|
+
}
|
|
79
|
+
output.write(out);
|
|
80
|
+
this.frameRows = visualRows;
|
|
81
|
+
if (!this.anchored) {
|
|
82
|
+
output.write(SAVE_CURSOR);
|
|
83
|
+
this.anchored = true;
|
|
84
|
+
}
|
|
85
|
+
return visualRows;
|
|
86
|
+
}
|
|
87
|
+
clear(output) {
|
|
88
|
+
if (this.frameRows <= 0) {
|
|
89
|
+
this.anchored = false;
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
let out = HIDE_CURSOR;
|
|
93
|
+
if (this.anchored) {
|
|
94
|
+
out += RESTORE_CURSOR;
|
|
95
|
+
out += clearRowsEscape(this.frameRows);
|
|
96
|
+
out += RESTORE_CURSOR;
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
out += rewindAndClearRowsEscape(this.frameRows);
|
|
100
|
+
}
|
|
101
|
+
out += SHOW_CURSOR;
|
|
102
|
+
out += "\n";
|
|
103
|
+
output.write(out);
|
|
104
|
+
this.frameRows = 0;
|
|
105
|
+
this.anchored = false;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
function clearRowsEscape(rows) {
|
|
109
|
+
if (rows <= 0) {
|
|
110
|
+
return "";
|
|
111
|
+
}
|
|
112
|
+
let out = "";
|
|
113
|
+
for (let i = 0; i < rows; i += 1) {
|
|
114
|
+
out += "\x1b[2K";
|
|
115
|
+
if (i < rows - 1) {
|
|
116
|
+
out += "\x1b[1B";
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return out;
|
|
120
|
+
}
|
|
121
|
+
function rewindAndClearRowsEscape(rows) {
|
|
122
|
+
if (rows <= 0) {
|
|
123
|
+
return "\r";
|
|
124
|
+
}
|
|
125
|
+
let out = "";
|
|
126
|
+
for (let i = 0; i < rows; i += 1) {
|
|
127
|
+
out += "\x1b[1A\x1b[2K";
|
|
128
|
+
}
|
|
129
|
+
return `${out}\r`;
|
|
130
|
+
}
|
|
131
|
+
/** @deprecated Prefer TtyAnchoredOverlay for interactive overlays. */
|
|
17
132
|
export function redrawTtyFrame(output, input) {
|
|
18
|
-
const
|
|
19
|
-
let out = HIDE_CURSOR;
|
|
133
|
+
const overlay = new TtyAnchoredOverlay();
|
|
20
134
|
if (input.previousRows > 0) {
|
|
21
|
-
|
|
135
|
+
overlay["frameRows"] = input.previousRows;
|
|
136
|
+
overlay["anchored"] = false;
|
|
22
137
|
}
|
|
23
138
|
else {
|
|
24
|
-
|
|
139
|
+
overlay.begin(output);
|
|
25
140
|
}
|
|
26
|
-
|
|
27
|
-
out += SHOW_CURSOR;
|
|
28
|
-
output.write(out);
|
|
29
|
-
return visualRows;
|
|
141
|
+
return overlay.redraw(output, input.lines, input.width);
|
|
30
142
|
}
|
|
143
|
+
/** @deprecated Prefer TtyAnchoredOverlay.clear */
|
|
31
144
|
export function clearTtyFrame(output, frameRows) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
145
|
+
const overlay = new TtyAnchoredOverlay();
|
|
146
|
+
overlay["frameRows"] = frameRows;
|
|
147
|
+
overlay.clear(output);
|
|
35
148
|
}
|
|
36
149
|
//# sourceMappingURL=tty-frame.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tty-frame.js","sourceRoot":"","sources":["../../../src/cli/interactive/tty-frame.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG,WAAW,CAAA;AAC/B,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"tty-frame.js","sourceRoot":"","sources":["../../../src/cli/interactive/tty-frame.ts"],"names":[],"mappings":"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"}
|
package/dist/config/config.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export type ApprovalMode = "preview-first" | "trusted";
|
|
|
2
2
|
export type SandboxMode = "read-only" | "workspace-write";
|
|
3
3
|
export type PatzeConfigFile = {
|
|
4
4
|
api?: string;
|
|
5
|
+
web?: string;
|
|
5
6
|
token?: string;
|
|
6
7
|
userId?: string;
|
|
7
8
|
model?: string;
|
|
@@ -12,6 +13,7 @@ export type PatzeConfigFile = {
|
|
|
12
13
|
};
|
|
13
14
|
export type ResolvedConfig = {
|
|
14
15
|
api: string | null;
|
|
16
|
+
web: string | null;
|
|
15
17
|
token: string | null;
|
|
16
18
|
userId: string | null;
|
|
17
19
|
model: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,YAAY,GAAG,eAAe,GAAG,SAAS,CAAA;AACtD,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,iBAAiB,CAAA;AAEzD,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,YAAY,EAAE,YAAY,CAAA;IAC1B,WAAW,EAAE,WAAW,CAAA;IACxB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;QACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;QAC1B,GAAG,EAAE,MAAM,EAAE,CAAA;KACd,CAAA;CACF,CAAA;AAMD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiChE;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,YAAY,GAAG,eAAe,GAAG,SAAS,CAAA;AACtD,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,iBAAiB,CAAA;AAEzD,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,YAAY,EAAE,YAAY,CAAA;IAC1B,WAAW,EAAE,WAAW,CAAA;IACxB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;QACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;QAC1B,GAAG,EAAE,MAAM,EAAE,CAAA;KACd,CAAA;CACF,CAAA;AAMD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiChE;AA8DD,wBAAgB,UAAU,CAAC,GAAG,SAAgB,GAAG,cAAc,CAsD9D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAQvD"}
|
package/dist/config/config.js
CHANGED
|
@@ -62,6 +62,7 @@ function pickStringArray(value) {
|
|
|
62
62
|
function normalizeConfig(raw) {
|
|
63
63
|
return {
|
|
64
64
|
api: pickString(raw.api) ?? undefined,
|
|
65
|
+
web: pickString(raw.web) ?? undefined,
|
|
65
66
|
token: pickString(raw.token) ?? undefined,
|
|
66
67
|
userId: pickString(raw.userId) ?? undefined,
|
|
67
68
|
model: pickString(raw.model) ?? undefined,
|
|
@@ -80,6 +81,8 @@ function mergeConfigs(...layers) {
|
|
|
80
81
|
for (const layer of layers) {
|
|
81
82
|
if (layer.api)
|
|
82
83
|
merged.api = layer.api;
|
|
84
|
+
if (layer.web)
|
|
85
|
+
merged.web = layer.web;
|
|
83
86
|
if (layer.token)
|
|
84
87
|
merged.token = layer.token;
|
|
85
88
|
if (layer.userId)
|
|
@@ -114,6 +117,10 @@ export function loadConfig(cwd = process.cwd()) {
|
|
|
114
117
|
envLayer.api = process.env.PATZE_CODE_API.trim();
|
|
115
118
|
envKeys.push("PATZE_CODE_API");
|
|
116
119
|
}
|
|
120
|
+
if (process.env.PATZE_WEB_UI_URL?.trim()) {
|
|
121
|
+
envLayer.web = process.env.PATZE_WEB_UI_URL.trim();
|
|
122
|
+
envKeys.push("PATZE_WEB_UI_URL");
|
|
123
|
+
}
|
|
117
124
|
if (process.env.PATZE_CODE_TOKEN?.trim()) {
|
|
118
125
|
envLayer.token = process.env.PATZE_CODE_TOKEN.trim();
|
|
119
126
|
envKeys.push("PATZE_CODE_TOKEN");
|
|
@@ -129,6 +136,7 @@ export function loadConfig(cwd = process.cwd()) {
|
|
|
129
136
|
const merged = normalizeConfig(mergeConfigs(...fileLayers, envLayer));
|
|
130
137
|
return {
|
|
131
138
|
api: merged.api ?? null,
|
|
139
|
+
web: merged.web ?? null,
|
|
132
140
|
token: merged.token ?? null,
|
|
133
141
|
userId: merged.userId ?? null,
|
|
134
142
|
model: merged.model ?? null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-ui.d.ts","sourceRoot":"","sources":["../../src/config/web-ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,wBAAgB,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CAU5G"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function resolveWebUiUrl(config) {
|
|
2
|
+
const fromConfig = config.web?.trim();
|
|
3
|
+
if (fromConfig) {
|
|
4
|
+
return fromConfig.replace(/\/$/, "");
|
|
5
|
+
}
|
|
6
|
+
const fromEnv = process.env.PATZE_WEB_UI_URL?.trim();
|
|
7
|
+
if (fromEnv) {
|
|
8
|
+
return fromEnv.replace(/\/$/, "");
|
|
9
|
+
}
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=web-ui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-ui.js","sourceRoot":"","sources":["../../src/config/web-ui.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,MAA6D;IAC3F,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,CAAA;IACrC,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACtC,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAA;IACpD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
# Beta release handoff — @patze/code-cli@0.
|
|
1
|
+
# Beta release handoff — @patze/code-cli@0.55.x
|
|
2
2
|
|
|
3
|
-
**Audience:** maintainers publishing `@beta` and
|
|
4
|
-
**Safety:** trust loop unchanged
|
|
3
|
+
**Audience:** maintainers publishing `@beta` and internal testers.
|
|
4
|
+
**Safety:** trust loop unchanged — interactive `/apply` only; smoke fixture is opt-in via `PATZE_CLI_TRUST_FIXTURE`.
|
|
5
|
+
|
|
6
|
+
> **Note:** Detailed version history lives in [`CHANGELOG.md`](../CHANGELOG.md). This handoff focuses on publish/verify steps.
|
|
5
7
|
|
|
6
8
|
---
|
|
7
9
|
|
|
@@ -16,11 +18,37 @@ npm pack --dry-run
|
|
|
16
18
|
|
|
17
19
|
Expected:
|
|
18
20
|
|
|
19
|
-
- `VERSION` = `package.json` =
|
|
20
|
-
- **
|
|
21
|
+
- `VERSION` = `package.json` = current beta (see `package.json`)
|
|
22
|
+
- **330+** tests, smoke OK, PTY suite OK, verify-pack OK
|
|
21
23
|
- No `src/`, `tests/`, `.cookbook-vendor` in tarball
|
|
22
24
|
- Secret scan clean (no raw tokens, home paths, bearer strings in publish tree)
|
|
23
25
|
|
|
26
|
+
Optional live proof (maintainers, dev API up):
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm run verify:all # verify + gated smart-agent e2e
|
|
30
|
+
npm run verify:ci-e2e-cloud # same gate CI uses for /cloud execute
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## CI secrets (optional e2e jobs)
|
|
36
|
+
|
|
37
|
+
GitHub Actions job **`cloud-e2e-gated`** (and **`e2e-gated`**) use repository secrets when configured:
|
|
38
|
+
|
|
39
|
+
| Secret | Purpose |
|
|
40
|
+
|--------|---------|
|
|
41
|
+
| `PATZE_CODE_E2E_API` | FastAPI base URL (must expose `/health`) |
|
|
42
|
+
| `PATZE_CODE_E2E_TOKEN` | Internal API key |
|
|
43
|
+
| `PATZE_CODE_E2E_USER_ID` | Entitled user UUID |
|
|
44
|
+
|
|
45
|
+
Cloud job additionally requires:
|
|
46
|
+
|
|
47
|
+
- Checkout with **GitHub `remote.origin.url`** (Actions default)
|
|
48
|
+
- Server **`FEATURE_PATZE_CODE_CLI_CLOUD_EXECUTE=true`**
|
|
49
|
+
|
|
50
|
+
Jobs **SKIP** (exit 0) when secrets or cloud flag are missing — PRs stay green. Use **workflow_dispatch** on `Patze Code CLI verify` for strict e2e proof.
|
|
51
|
+
|
|
24
52
|
---
|
|
25
53
|
|
|
26
54
|
## Publish
|
|
@@ -35,7 +63,7 @@ Confirm dist-tag:
|
|
|
35
63
|
|
|
36
64
|
```bash
|
|
37
65
|
npm view @patze/code-cli dist-tags
|
|
38
|
-
npm view @patze/code-cli@beta version
|
|
66
|
+
npm view @patze/code-cli@beta version
|
|
39
67
|
```
|
|
40
68
|
|
|
41
69
|
**Do not** publish as `latest` until release blockers in README are cleared.
|
|
@@ -48,16 +76,16 @@ npm **cannot reliably unpublish** after 72h; prefer **dist-tag move**, not delet
|
|
|
48
76
|
|
|
49
77
|
| Action | Command |
|
|
50
78
|
|--------|---------|
|
|
51
|
-
| Point `@beta` back to prior version | `npm dist-tag add @patze/code-cli
|
|
52
|
-
| Remove bad tag from a version | `npm dist-tag rm @patze/code-cli
|
|
79
|
+
| Point `@beta` back to prior version | `npm dist-tag add @patze/code-cli@<prior> beta` |
|
|
80
|
+
| Remove bad tag from a version | `npm dist-tag rm @patze/code-cli@<bad> beta` |
|
|
53
81
|
| Tester reinstall after rollback | `npm install -g @patze/code-cli@beta` |
|
|
54
82
|
|
|
55
83
|
Tarball handoff (no registry):
|
|
56
84
|
|
|
57
85
|
```bash
|
|
58
86
|
npm pack
|
|
59
|
-
# share patze-code-cli
|
|
60
|
-
npm install -g ./patze-code-cli
|
|
87
|
+
# share patze-code-cli-<version>.tgz
|
|
88
|
+
npm install -g ./patze-code-cli-<version>.tgz
|
|
61
89
|
```
|
|
62
90
|
|
|
63
91
|
---
|
|
@@ -67,21 +95,28 @@ npm install -g ./patze-code-cli-0.10.2.tgz
|
|
|
67
95
|
```bash
|
|
68
96
|
npm install -g @patze/code-cli@beta
|
|
69
97
|
# or pinned:
|
|
70
|
-
npm install -g @patze/code-cli@0.
|
|
98
|
+
npm install -g @patze/code-cli@0.55.0
|
|
71
99
|
|
|
72
100
|
patze --version
|
|
73
101
|
patze doctor
|
|
74
102
|
patze status # exit 1 without auth is EXPECTED
|
|
75
103
|
```
|
|
76
104
|
|
|
77
|
-
|
|
105
|
+
Recommended auth (device code):
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
patze login --pair --api https://api.example.com
|
|
109
|
+
patze status --check
|
|
110
|
+
patze doctor --check
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Legacy env (never paste into issues):
|
|
78
114
|
|
|
79
115
|
```bash
|
|
80
116
|
export PATZE_CODE_API=https://api.example.com
|
|
81
117
|
export PATZE_CODE_TOKEN=<internal-api-key>
|
|
82
118
|
export PATZE_CODE_USER_ID=<user-uuid>
|
|
83
119
|
patze status --check
|
|
84
|
-
patze doctor --check
|
|
85
120
|
```
|
|
86
121
|
|
|
87
122
|
Uninstall: `npm uninstall -g @patze/code-cli` — see `docs/uninstall-reset.md`.
|
|
@@ -101,6 +136,7 @@ patze status # expect exit 1 if no auth — OK
|
|
|
101
136
|
patze code inspect
|
|
102
137
|
patze goal "smoke" --dry-run
|
|
103
138
|
patze code apply # must say disabled
|
|
139
|
+
patze runs list # needs auth; read-only when configured
|
|
104
140
|
```
|
|
105
141
|
|
|
106
142
|
### B. Trust loop (15 min, temp repo)
|
|
@@ -111,7 +147,7 @@ patze
|
|
|
111
147
|
|
|
112
148
|
Run: `/goal` → `/plan` → `/diff` → `/permissions suggest` → `/approve` → `/permissions edit-with-approval` → `/apply` → type `APPLY <masked-digest>` → `/verify` → `/status`.
|
|
113
149
|
|
|
114
|
-
Optional:
|
|
150
|
+
Optional: `/model` (search + T/F prefs), `/runs`, `/local` vs `/cloud` (cloud needs GitHub origin + server flag).
|
|
115
151
|
|
|
116
152
|
### C. Report back
|
|
117
153
|
|
|
@@ -142,6 +178,7 @@ Copy template: `docs/beta-feedback-template.md`
|
|
|
142
178
|
| `patze code plan --preview` fails | No auth or API down |
|
|
143
179
|
| `patze code apply` disabled | By design — use `/apply` in shell |
|
|
144
180
|
| `/plan` local-only without auth | By design |
|
|
181
|
+
| `/cloud` blocked | Server cloud flag off or non-GitHub origin |
|
|
145
182
|
| Session history lost on restart | In-memory only (known limit) |
|
|
146
183
|
| No npm test from `/verify` | Shell verify not implemented |
|
|
147
184
|
|
|
@@ -162,21 +199,11 @@ Or run repo smoke: `npm run smoke` (includes local pack install).
|
|
|
162
199
|
|
|
163
200
|
---
|
|
164
201
|
|
|
165
|
-
## Publish notes (changelog summary)
|
|
166
|
-
|
|
167
|
-
**0.10.2** — internal beta rollout assets only:
|
|
168
|
-
|
|
169
|
-
- `patze doctor [--check]` (read-only diagnostics)
|
|
170
|
-
- Install helper + rollout docs (checklist, feedback template, known limits)
|
|
171
|
-
- No trust-loop or safety posture changes
|
|
172
|
-
|
|
173
|
-
---
|
|
174
|
-
|
|
175
202
|
## After beta feedback — recommended next slice
|
|
176
203
|
|
|
177
|
-
1.
|
|
178
|
-
2. **
|
|
179
|
-
3. **
|
|
180
|
-
4. **
|
|
204
|
+
1. **OAuth polish** beyond `login --pair` (token refresh, production redirect UX)
|
|
205
|
+
2. **Session persistence decision** (SQLite vs server transcript)
|
|
206
|
+
3. **Optional gated shell verify** (explicit opt-in only; never default)
|
|
207
|
+
4. **Production error telemetry** without leaking secrets
|
|
181
208
|
|
|
182
|
-
Do **not** start with `--yes`, auto-apply, full-auto,
|
|
209
|
+
Do **not** start with `--yes`, auto-apply, full-auto, or telemetry until beta trust-loop feedback is collected.
|
package/docs/internal-beta.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Internal beta — @patze/code-cli
|
|
2
2
|
|
|
3
|
-
Status: **0.
|
|
3
|
+
Status: **0.55.x internal beta** (cookbook/Codex UX + trust loop + runs automation)
|
|
4
4
|
|
|
5
5
|
Audience: Patze team and trusted beta testers only. Not `npm latest` / 1.0.
|
|
6
6
|
|
|
@@ -69,8 +69,11 @@ Full list: [`known-limitations.md`](known-limitations.md)
|
|
|
69
69
|
| Apply history | In-memory, current process only (max 20 records) |
|
|
70
70
|
| Verify | Last apply only; no shell/npm test |
|
|
71
71
|
| Apply | Interactive only; no `--yes` |
|
|
72
|
-
| Runs |
|
|
73
|
-
| OAuth |
|
|
72
|
+
| Runs | **`patze runs list|open|cancel`** + `/runs` (server history; cancel mutates remote run) |
|
|
73
|
+
| OAuth | **`patze login --pair`** (partial); manual token paste still supported |
|
|
74
|
+
| Model picker | Search + T/F prefs; optional live list via **`CURSOR_API_KEY`** |
|
|
75
|
+
| Cloud execute | **`/cloud`** + `npm run e2e:cloud*` when server flag + GitHub origin ready |
|
|
76
|
+
| CI proof | **`cloud-e2e-gated`** + **`e2e-gated`** jobs skip without secrets/API; see handoff |
|
|
74
77
|
| Persistence | No cross-restart session restore |
|
|
75
78
|
|
|
76
79
|
## Reporting issues
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
# Known limitations —
|
|
1
|
+
# Known limitations — Patze Code CLI (0.55.x)
|
|
2
2
|
|
|
3
|
-
These are **intentional** for the current slice
|
|
3
|
+
These are **intentional** for the current slice unless behavior contradicts this list.
|
|
4
|
+
Last aligned with **`npm run verify`** (unit + smoke + PTY suite) at **0.55.0**.
|
|
4
5
|
|
|
5
6
|
## Authentication
|
|
6
7
|
|
|
7
8
|
| Limitation | Status |
|
|
8
9
|
|------------|--------|
|
|
9
|
-
| OAuth / dashboard login | **
|
|
10
|
+
| OAuth / dashboard login | **Partial** — `patze login --pair` (device-code via dashboard); manual token paste still supported |
|
|
10
11
|
| Token refresh | Manual re-login |
|
|
12
|
+
| Doctor auth | **`patze doctor`** shows `auth` + `execute` + `agent` lines (no ambiguous “ready” when execute is off) |
|
|
11
13
|
|
|
12
14
|
## Apply and permissions
|
|
13
15
|
|
|
@@ -18,6 +20,7 @@ These are **intentional** for the current slice. Do not treat them as bugs unles
|
|
|
18
20
|
| `--yes` flag | **Not supported** |
|
|
19
21
|
| `full-auto` permission | **Forbidden permanently** |
|
|
20
22
|
| Auto-apply | **Disabled** |
|
|
23
|
+
| Trust state across restart | **Not persisted** — approval gate / diff review in-memory only |
|
|
21
24
|
|
|
22
25
|
## Verify
|
|
23
26
|
|
|
@@ -27,34 +30,35 @@ These are **intentional** for the current slice. Do not treat them as bugs unles
|
|
|
27
30
|
| Network verify | **Not implemented** — local hash check only |
|
|
28
31
|
| `patze code verify` | Help-only summary when no session apply |
|
|
29
32
|
|
|
30
|
-
## Runs and
|
|
33
|
+
## Runs, execute, and agent
|
|
31
34
|
|
|
32
35
|
| Limitation | Status |
|
|
33
36
|
|------------|--------|
|
|
34
|
-
| `patze runs`
|
|
35
|
-
| Session persistence | **Partial
|
|
36
|
-
| Multi-turn context | **Partial
|
|
37
|
-
| `/local` / `/cloud` | **Partial** — `/local` default;
|
|
38
|
-
|
|
|
39
|
-
|
|
|
40
|
-
|
|
|
41
|
-
| `/
|
|
42
|
-
|
|
|
37
|
+
| `patze runs` / `/runs` | **Implemented** — list/open/stream/**cancel**; **`--json`** on list/open |
|
|
38
|
+
| Session persistence | **Partial** — `~/.patze/sessions/<hash>.json` (transcript, model, permission mode, last run) |
|
|
39
|
+
| Multi-turn context | **Partial** — `conversation_context` + `cursor_agent_id`; `/reset` for fresh epoch |
|
|
40
|
+
| `/local` / `/cloud` | **Partial** — `/local` default; cloud execute gated by server `FEATURE_PATZE_CODE_CLI_CLOUD_EXECUTE` |
|
|
41
|
+
| Cloud e2e (maintainers) | **`npm run e2e:cloud`** / **`e2e:cloud:interactive`** — needs dev API + GitHub `origin` |
|
|
42
|
+
| Interactive agent execute + SSE | **Implemented** — requires auth + user id; opt-out `PATZE_CODE_CLI_EXECUTE=0` |
|
|
43
|
+
| One-shot / `patze exec --json` | **Implemented** |
|
|
44
|
+
| `/model` + reasoning picker | **Implemented** — searchable picker + T/F prefs (TTY + OpenTUI); live SDK models when `CURSOR_API_KEY` set |
|
|
45
|
+
| OpenTUI keyboard | **Implemented** — j/k, digit jump, inline slash palette, shared footer hints |
|
|
46
|
+
| Cookbook plain feed (pipe) | **Implemented** — `patze exec` + non-TTY agent use Codex feed on stderr |
|
|
47
|
+
| Live e2e proof | **Gated** — `verify:e2e`, `verify:ci-e2e-cloud`; CI jobs skip when API/cloud flag down |
|
|
43
48
|
|
|
44
49
|
## Session and persistence
|
|
45
50
|
|
|
46
51
|
| Limitation | Status |
|
|
47
52
|
|------------|--------|
|
|
48
|
-
| Apply history persistence | **In-memory only** (
|
|
49
|
-
| Cross-restart
|
|
50
|
-
| Transcript persistence | **Partial (0.14+)** — saved on each interactive turn |
|
|
53
|
+
| Apply history persistence | **In-memory only** (max 20) |
|
|
54
|
+
| Cross-restart trust loop restore | **Not implemented** (by design) |
|
|
51
55
|
|
|
52
56
|
## Diagnostics
|
|
53
57
|
|
|
54
58
|
| Capability | Notes |
|
|
55
59
|
|------------|-------|
|
|
56
|
-
| `patze doctor` | Read-only; **no network by default** |
|
|
57
|
-
| `patze doctor --check` | Optional `/health`
|
|
60
|
+
| `patze doctor` | Read-only; **no network by default**; includes **e2e (dev API)** posture |
|
|
61
|
+
| `patze doctor --check` | Optional `/health` when **agent-ready** |
|
|
58
62
|
|
|
59
63
|
## Telemetry
|
|
60
64
|
|
|
@@ -63,6 +67,15 @@ These are **intentional** for the current slice. Do not treat them as bugs unles
|
|
|
63
67
|
| Usage telemetry upload | **Not implemented** |
|
|
64
68
|
| Error reporting to server | **Not implemented** |
|
|
65
69
|
|
|
70
|
+
## CI / release
|
|
71
|
+
|
|
72
|
+
| Item | Notes |
|
|
73
|
+
|------|-------|
|
|
74
|
+
| `npm run verify` | Unit + smoke-beta + PTY composer + slash menu + **header model** + PTY trust apply |
|
|
75
|
+
| `npm run verify:all` | `verify` + gated `verify:e2e` (skips when API down) |
|
|
76
|
+
| GitHub Actions | `.github/workflows/patze-code-cli-verify.yml` |
|
|
77
|
+
| Optional e2e | `verify:ci-e2e` — secrets `PATZE_CODE_E2E_*` or local `server/.env` + running API |
|
|
78
|
+
|
|
66
79
|
## Before 1.0 / npm latest
|
|
67
80
|
|
|
68
|
-
See README **Release blockers** — public publish policy,
|
|
81
|
+
See README **Release blockers** — public publish policy, OAuth login, OpenTUI parity, optional cloud execute e2e in CI.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Release checklist — @patze/code-cli internal beta
|
|
2
2
|
|
|
3
|
-
Use before tagging
|
|
3
|
+
Use before tagging internal beta (currently **0.55.x**). **Not** npm `latest` / 1.0 gate.
|
|
4
4
|
|
|
5
5
|
## Version bump
|
|
6
6
|
|
|
@@ -22,7 +22,7 @@ Includes:
|
|
|
22
22
|
- [ ] `tsc` build
|
|
23
23
|
- [ ] `verify-pack.mjs` (tarball audit)
|
|
24
24
|
- [ ] `typecheck`
|
|
25
|
-
- [ ] unit tests (`node --test tests/*.test.mjs`)
|
|
25
|
+
- [ ] unit tests (`node --test tests/*.test.mjs`) — **330+**
|
|
26
26
|
- [ ] `smoke-beta.mjs` (temp workspace + local pack install)
|
|
27
27
|
|
|
28
28
|
Individual commands:
|
|
@@ -55,15 +55,23 @@ npm pack --dry-run
|
|
|
55
55
|
- [ ] No real home paths or tokens in committed docs
|
|
56
56
|
- [ ] `patze doctor` / `patze status` mask tokens in output
|
|
57
57
|
|
|
58
|
-
## Rollout assets
|
|
58
|
+
## Rollout assets
|
|
59
59
|
|
|
60
60
|
- [ ] `docs/install-beta.md` + `scripts/install-beta.sh`
|
|
61
61
|
- [ ] `docs/beta-tester-checklist.md`
|
|
62
62
|
- [ ] `docs/beta-feedback-template.md`
|
|
63
63
|
- [ ] `docs/known-limitations.md`
|
|
64
|
+
- [ ] `docs/beta-release-handoff.md`
|
|
64
65
|
- [ ] `docs/smoke-command-guide.md`
|
|
65
66
|
- [ ] `docs/uninstall-reset.md`
|
|
66
67
|
|
|
68
|
+
## CI (optional proof lanes)
|
|
69
|
+
|
|
70
|
+
Workflow: `.github/workflows/patze-code-cli-verify.yml`
|
|
71
|
+
|
|
72
|
+
- [ ] `e2e-gated` — smart-agent preview/execute (secrets or skip)
|
|
73
|
+
- [ ] `cloud-e2e-gated` — `/cloud` execute path (secrets + `FEATURE_PATZE_CODE_CLI_CLOUD_EXECUTE` or skip)
|
|
74
|
+
|
|
67
75
|
## Publish (when ready)
|
|
68
76
|
|
|
69
77
|
```bash
|