@patze/code-cli 0.42.2 → 0.43.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 +48 -0
- package/VERSION +1 -1
- package/dist/cli/commands/runs-format.d.ts.map +1 -1
- package/dist/cli/commands/runs-format.js +3 -2
- 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 +2 -1
- package/dist/cli/commands/runs.js.map +1 -1
- package/dist/cli/interactive/composer-session-chrome.d.ts.map +1 -1
- package/dist/cli/interactive/composer-session-chrome.js +1 -0
- package/dist/cli/interactive/composer-session-chrome.js.map +1 -1
- package/dist/cli/interactive/header.d.ts +1 -0
- package/dist/cli/interactive/header.d.ts.map +1 -1
- package/dist/cli/interactive/header.js +2 -0
- package/dist/cli/interactive/header.js.map +1 -1
- package/dist/cli/interactive/model-command.d.ts.map +1 -1
- package/dist/cli/interactive/model-command.js +1 -0
- package/dist/cli/interactive/model-command.js.map +1 -1
- package/dist/cli/interactive/model-picker-panel.d.ts +40 -0
- package/dist/cli/interactive/model-picker-panel.d.ts.map +1 -0
- package/dist/cli/interactive/model-picker-panel.js +170 -0
- package/dist/cli/interactive/model-picker-panel.js.map +1 -0
- package/dist/cli/interactive/model-selection-apply.d.ts +6 -0
- package/dist/cli/interactive/model-selection-apply.d.ts.map +1 -0
- package/dist/cli/interactive/model-selection-apply.js +15 -0
- package/dist/cli/interactive/model-selection-apply.js.map +1 -0
- package/dist/cli/interactive/model-selector.d.ts +1 -0
- package/dist/cli/interactive/model-selector.d.ts.map +1 -1
- package/dist/cli/interactive/model-selector.js +18 -60
- package/dist/cli/interactive/model-selector.js.map +1 -1
- package/dist/cli/interactive/model-tty-picker.d.ts +18 -0
- package/dist/cli/interactive/model-tty-picker.d.ts.map +1 -0
- package/dist/cli/interactive/model-tty-picker.js +85 -0
- package/dist/cli/interactive/model-tty-picker.js.map +1 -0
- package/dist/cli/interactive/run-replay.d.ts.map +1 -1
- package/dist/cli/interactive/run-replay.js +2 -1
- package/dist/cli/interactive/run-replay.js.map +1 -1
- package/dist/cli/interactive/session-controller.d.ts.map +1 -1
- package/dist/cli/interactive/session-controller.js +2 -0
- package/dist/cli/interactive/session-controller.js.map +1 -1
- package/dist/cli/interactive/session-store.d.ts +1 -0
- package/dist/cli/interactive/session-store.d.ts.map +1 -1
- package/dist/cli/interactive/session-store.js +2 -0
- package/dist/cli/interactive/session-store.js.map +1 -1
- package/dist/cli/interactive/session.d.ts +6 -0
- package/dist/cli/interactive/session.d.ts.map +1 -1
- package/dist/cli/interactive/session.js +22 -1
- package/dist/cli/interactive/session.js.map +1 -1
- package/dist/cli/interactive/tty-arrow-selector.d.ts +10 -0
- package/dist/cli/interactive/tty-arrow-selector.d.ts.map +1 -1
- package/dist/cli/interactive/tty-arrow-selector.js +35 -28
- package/dist/cli/interactive/tty-arrow-selector.js.map +1 -1
- package/dist/cli/interactive/tty-frame.d.ts +11 -0
- package/dist/cli/interactive/tty-frame.d.ts.map +1 -0
- package/dist/cli/interactive/tty-frame.js +36 -0
- package/dist/cli/interactive/tty-frame.js.map +1 -0
- package/dist/config/model-preferences.d.ts +2 -0
- package/dist/config/model-preferences.d.ts.map +1 -1
- package/dist/config/model-preferences.js +14 -4
- package/dist/config/model-preferences.js.map +1 -1
- package/dist/config/model-reasoning.d.ts +15 -0
- package/dist/config/model-reasoning.d.ts.map +1 -0
- package/dist/config/model-reasoning.js +132 -0
- package/dist/config/model-reasoning.js.map +1 -0
- package/dist/config/models.d.ts +9 -0
- package/dist/config/models.d.ts.map +1 -1
- package/dist/config/models.js +128 -26
- package/dist/config/models.js.map +1 -1
- package/opentui/src/App.tsx +9 -3
- package/package.json +1 -1
package/dist/config/models.js
CHANGED
|
@@ -1,45 +1,139 @@
|
|
|
1
|
+
/** Wire id sent to Cursor/backend — never shown in user-facing UI. */
|
|
1
2
|
export const DEFAULT_PATZE_MODEL = "composer-2.5-fast";
|
|
3
|
+
/** Primary user-facing brand for the default agent model. */
|
|
4
|
+
export const PATZE_DEFAULT_DISPLAY_NAME = "Patze";
|
|
2
5
|
/** User-facing model catalog (wire ids stay Cursor/OpenAI ids). */
|
|
6
|
+
// Display rule: ONLY `composer-2.5-fast` (and its fast aliases) → Patze.
|
|
7
|
+
// Composer tiers (`composer-2.5`, `composer-2`) are not offered in the CLI catalog.
|
|
3
8
|
export const PATZE_MODEL_CATALOG = [
|
|
4
9
|
{
|
|
5
|
-
id:
|
|
6
|
-
displayName:
|
|
7
|
-
description: "Default agent
|
|
10
|
+
id: DEFAULT_PATZE_MODEL,
|
|
11
|
+
displayName: PATZE_DEFAULT_DISPLAY_NAME,
|
|
12
|
+
description: "Default Patze agent for everyday coding",
|
|
8
13
|
},
|
|
9
14
|
{
|
|
10
|
-
id: "
|
|
11
|
-
displayName: "
|
|
12
|
-
description: "
|
|
15
|
+
id: "gpt-5.5",
|
|
16
|
+
displayName: "GPT-5.5",
|
|
17
|
+
description: "Frontier model for complex coding, research, and real-world work",
|
|
13
18
|
},
|
|
14
19
|
{
|
|
15
|
-
id: "
|
|
16
|
-
displayName: "
|
|
17
|
-
description: "
|
|
20
|
+
id: "gpt-5.4",
|
|
21
|
+
displayName: "GPT-5.4",
|
|
22
|
+
description: "Strong model for everyday coding",
|
|
18
23
|
},
|
|
19
24
|
{
|
|
20
25
|
id: "gpt-5.4-mini",
|
|
21
26
|
displayName: "GPT-5.4 mini",
|
|
22
|
-
description: "
|
|
27
|
+
description: "Small, fast, and cost-efficient model for simpler coding tasks",
|
|
23
28
|
},
|
|
24
29
|
{
|
|
25
|
-
id: "
|
|
26
|
-
displayName: "
|
|
27
|
-
description: "
|
|
30
|
+
id: "claude-opus-4-7-thinking-medium",
|
|
31
|
+
displayName: "Opus 4.7",
|
|
32
|
+
description: "Top-tier reasoning for complex problems and careful edits",
|
|
28
33
|
},
|
|
29
34
|
];
|
|
30
35
|
/** Models aligned with server PATZE_CODE_CURSOR_MODEL_FALLBACKS + cookbook defaults. */
|
|
31
36
|
export const PATZE_SUPPORTED_MODELS = PATZE_MODEL_CATALOG.map((entry) => entry.id);
|
|
32
37
|
const MODEL_ALIASES = {
|
|
33
|
-
patze:
|
|
34
|
-
"patze-fast":
|
|
38
|
+
patze: DEFAULT_PATZE_MODEL,
|
|
39
|
+
"patze-fast": DEFAULT_PATZE_MODEL,
|
|
40
|
+
"composer 2.5 fast": DEFAULT_PATZE_MODEL,
|
|
41
|
+
"composer 2.5-fast": DEFAULT_PATZE_MODEL,
|
|
42
|
+
"composer-2.5 fast": DEFAULT_PATZE_MODEL,
|
|
43
|
+
"composer2.5fast": DEFAULT_PATZE_MODEL,
|
|
44
|
+
"gpt 5.5": "gpt-5.5",
|
|
45
|
+
"gpt5.5": "gpt-5.5",
|
|
46
|
+
"opus 4.7": "claude-opus-4-7-thinking-medium",
|
|
47
|
+
"claude opus 4.7": "claude-opus-4-7-thinking-medium",
|
|
48
|
+
"claude-4.7-opus": "claude-opus-4-7-thinking-medium",
|
|
35
49
|
};
|
|
50
|
+
function compactModelToken(value) {
|
|
51
|
+
return value.trim().toLowerCase().replace(/[^a-z0-9]/g, "");
|
|
52
|
+
}
|
|
53
|
+
function lookupModelAlias(value) {
|
|
54
|
+
const trimmed = value.trim().toLowerCase();
|
|
55
|
+
if (!trimmed) {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
const direct = MODEL_ALIASES[trimmed];
|
|
59
|
+
if (direct) {
|
|
60
|
+
return direct;
|
|
61
|
+
}
|
|
62
|
+
const spaced = trimmed.replace(/\s+/g, " ");
|
|
63
|
+
const spacedAlias = MODEL_ALIASES[spaced];
|
|
64
|
+
if (spacedAlias) {
|
|
65
|
+
return spacedAlias;
|
|
66
|
+
}
|
|
67
|
+
const slug = trimmed.replace(/\s+/g, "-");
|
|
68
|
+
const slugAlias = MODEL_ALIASES[slug];
|
|
69
|
+
if (slugAlias) {
|
|
70
|
+
return slugAlias;
|
|
71
|
+
}
|
|
72
|
+
const compact = compactModelToken(trimmed);
|
|
73
|
+
if (compact === "composer25fast" || compact === "patze" || compact === "patzefast") {
|
|
74
|
+
return DEFAULT_PATZE_MODEL;
|
|
75
|
+
}
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
export function isPatzeDefaultModel(value) {
|
|
79
|
+
const resolved = normalizeModelId(value);
|
|
80
|
+
if (resolved?.toLowerCase() === DEFAULT_PATZE_MODEL) {
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
if (!value?.trim()) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
return lookupModelAlias(value) === DEFAULT_PATZE_MODEL;
|
|
87
|
+
}
|
|
36
88
|
export function formatModelDisplayName(modelId) {
|
|
89
|
+
if (isPatzeDefaultModel(modelId)) {
|
|
90
|
+
return PATZE_DEFAULT_DISPLAY_NAME;
|
|
91
|
+
}
|
|
37
92
|
const normalized = normalizeModelId(modelId);
|
|
38
93
|
if (!normalized) {
|
|
39
|
-
return modelId.trim() ||
|
|
94
|
+
return modelId.trim() || PATZE_DEFAULT_DISPLAY_NAME;
|
|
40
95
|
}
|
|
41
96
|
const entry = PATZE_MODEL_CATALOG.find((candidate) => candidate.id.toLowerCase() === normalized.toLowerCase());
|
|
42
|
-
|
|
97
|
+
if (entry) {
|
|
98
|
+
return entry.displayName;
|
|
99
|
+
}
|
|
100
|
+
if (isPatzeDefaultModel(normalized)) {
|
|
101
|
+
return PATZE_DEFAULT_DISPLAY_NAME;
|
|
102
|
+
}
|
|
103
|
+
return normalized;
|
|
104
|
+
}
|
|
105
|
+
/** Resolved config model for `patze config` and other ops surfaces. */
|
|
106
|
+
export function formatConfigModelLabel(configModel) {
|
|
107
|
+
if (!configModel?.trim()) {
|
|
108
|
+
return `${PATZE_DEFAULT_DISPLAY_NAME} (default)`;
|
|
109
|
+
}
|
|
110
|
+
return formatModelDisplayName(configModel);
|
|
111
|
+
}
|
|
112
|
+
export function formatAgentModelLabel(modelId) {
|
|
113
|
+
const trimmed = modelId?.trim();
|
|
114
|
+
if (!trimmed) {
|
|
115
|
+
return "unknown";
|
|
116
|
+
}
|
|
117
|
+
return formatModelDisplayName(trimmed);
|
|
118
|
+
}
|
|
119
|
+
/** Collapse Patze-default wire ids and aliases to one catalog row in pickers. */
|
|
120
|
+
export function dedupeModelIds(modelIds) {
|
|
121
|
+
const seen = new Set();
|
|
122
|
+
const result = [];
|
|
123
|
+
for (const raw of modelIds) {
|
|
124
|
+
const normalized = normalizeModelId(raw);
|
|
125
|
+
const key = isPatzeDefaultModel(raw) || normalized?.toLowerCase() === DEFAULT_PATZE_MODEL
|
|
126
|
+
? DEFAULT_PATZE_MODEL
|
|
127
|
+
: (normalized ?? raw).toLowerCase();
|
|
128
|
+
if (seen.has(key)) {
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
seen.add(key);
|
|
132
|
+
result.push(isPatzeDefaultModel(raw) || normalized?.toLowerCase() === DEFAULT_PATZE_MODEL
|
|
133
|
+
? DEFAULT_PATZE_MODEL
|
|
134
|
+
: (normalized ?? raw));
|
|
135
|
+
}
|
|
136
|
+
return result;
|
|
43
137
|
}
|
|
44
138
|
export function getModelCatalogEntry(modelId) {
|
|
45
139
|
const normalized = normalizeModelId(modelId);
|
|
@@ -53,7 +147,7 @@ export function normalizeModelId(value) {
|
|
|
53
147
|
if (!trimmed) {
|
|
54
148
|
return null;
|
|
55
149
|
}
|
|
56
|
-
const alias =
|
|
150
|
+
const alias = lookupModelAlias(trimmed);
|
|
57
151
|
if (alias) {
|
|
58
152
|
return alias;
|
|
59
153
|
}
|
|
@@ -90,17 +184,25 @@ export function formatModelPickerLines(current, prefs) {
|
|
|
90
184
|
const currentId = normalizeModelId(current) ?? DEFAULT_PATZE_MODEL;
|
|
91
185
|
const currentLabel = formatModelDisplayName(currentId);
|
|
92
186
|
const lines = [`Model · ${currentLabel}`];
|
|
93
|
-
if (prefs) {
|
|
94
|
-
lines
|
|
187
|
+
if (prefs?.reasoningLevel) {
|
|
188
|
+
lines[0] = `Model · ${currentLabel} ${prefs.reasoningLevel}`;
|
|
95
189
|
}
|
|
96
190
|
lines.push("");
|
|
97
|
-
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
191
|
+
PATZE_MODEL_CATALOG.forEach((entry, index) => {
|
|
192
|
+
const isCurrent = entry.id.toLowerCase() === currentId.toLowerCase();
|
|
193
|
+
const suffixParts = [];
|
|
194
|
+
if (entry.id === DEFAULT_PATZE_MODEL) {
|
|
195
|
+
suffixParts.push("(default)");
|
|
196
|
+
}
|
|
197
|
+
if (isCurrent) {
|
|
198
|
+
suffixParts.push("(current)");
|
|
199
|
+
}
|
|
200
|
+
const suffix = suffixParts.length ? ` ${suffixParts.join(" ")}` : "";
|
|
201
|
+
const marker = isCurrent ? "›" : " ";
|
|
202
|
+
lines.push(`${marker} ${index + 1}. ${entry.displayName}${suffix} ${entry.description}`);
|
|
203
|
+
});
|
|
102
204
|
lines.push("");
|
|
103
|
-
lines.push("
|
|
205
|
+
lines.push("Press enter to confirm or esc to go back");
|
|
104
206
|
return lines;
|
|
105
207
|
}
|
|
106
208
|
//# sourceMappingURL=models.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/config/models.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/config/models.ts"],"names":[],"mappings":"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"}
|
package/opentui/src/App.tsx
CHANGED
|
@@ -25,10 +25,13 @@ import { upsertTranscriptEntry } from "../../dist/cli/interactive/transcript-ups
|
|
|
25
25
|
import { applyOpenTuiAgentEvent } from "../../dist/cli/interactive/opentui-agent-event.js"
|
|
26
26
|
import type { AgentEvent } from "../../dist/cli/interactive/agent-events.js"
|
|
27
27
|
import {
|
|
28
|
+
dedupeModelIds,
|
|
28
29
|
formatModelDisplayName,
|
|
29
30
|
getModelCatalogEntry,
|
|
31
|
+
isPatzeDefaultModel,
|
|
30
32
|
PATZE_MODEL_CATALOG,
|
|
31
33
|
} from "../../dist/config/models.js"
|
|
34
|
+
import { formatModelDisplay } from "../../dist/config/model-preferences.js"
|
|
32
35
|
|
|
33
36
|
extend({ "tui-input": InputRenderable })
|
|
34
37
|
|
|
@@ -546,7 +549,10 @@ export function App({ cwd: cwdArg }: { cwd?: string }) {
|
|
|
546
549
|
: composerChromeRows)
|
|
547
550
|
)
|
|
548
551
|
|
|
549
|
-
const composerModelLabel =
|
|
552
|
+
const composerModelLabel = formatModelDisplay(currentModel, {
|
|
553
|
+
thinking: modelThinking,
|
|
554
|
+
fast: modelFast,
|
|
555
|
+
})
|
|
550
556
|
const composerPathLabel = shortenComposerPath(cwd)
|
|
551
557
|
|
|
552
558
|
const scrollableEntries = useMemo(() => transcript, [transcript])
|
|
@@ -578,7 +584,7 @@ export function App({ cwd: cwdArg }: { cwd?: string }) {
|
|
|
578
584
|
|
|
579
585
|
const modelItems = useMemo(() => {
|
|
580
586
|
const catalogIds = PATZE_MODEL_CATALOG.map((entry) => entry.id)
|
|
581
|
-
const merged =
|
|
587
|
+
const merged = dedupeModelIds([...catalogIds, ...supportedModels])
|
|
582
588
|
const normalized = modelSearch.trim().toLowerCase()
|
|
583
589
|
return merged
|
|
584
590
|
.filter((model) => {
|
|
@@ -589,7 +595,7 @@ export function App({ cwd: cwdArg }: { cwd?: string }) {
|
|
|
589
595
|
if (model.toLowerCase().includes(normalized) || display.includes(normalized)) {
|
|
590
596
|
return true
|
|
591
597
|
}
|
|
592
|
-
if (normalized === "patze" && model
|
|
598
|
+
if (normalized === "patze" && isPatzeDefaultModel(model)) {
|
|
593
599
|
return true
|
|
594
600
|
}
|
|
595
601
|
return false
|