@jx-grxf/patchpilot 1.0.0 → 1.2.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/README.md +51 -16
- package/dist/cli.js +46 -3
- package/dist/cli.js.map +1 -1
- package/dist/core/agent.d.ts +44 -1
- package/dist/core/agent.js +617 -70
- package/dist/core/agent.js.map +1 -1
- package/dist/core/clipboard.d.ts +14 -0
- package/dist/core/clipboard.js +134 -0
- package/dist/core/clipboard.js.map +1 -0
- package/dist/core/codex.d.ts +8 -0
- package/dist/core/codex.js +28 -2
- package/dist/core/codex.js.map +1 -1
- package/dist/core/compaction.d.ts +23 -0
- package/dist/core/compaction.js +145 -0
- package/dist/core/compaction.js.map +1 -0
- package/dist/core/contextFormat.d.ts +21 -0
- package/dist/core/contextFormat.js +87 -0
- package/dist/core/contextFormat.js.map +1 -0
- package/dist/core/contextItem.d.ts +41 -0
- package/dist/core/contextItem.js +93 -0
- package/dist/core/contextItem.js.map +1 -0
- package/dist/core/contextStore.d.ts +48 -0
- package/dist/core/contextStore.js +306 -0
- package/dist/core/contextStore.js.map +1 -0
- package/dist/core/doctor.js +9 -8
- package/dist/core/doctor.js.map +1 -1
- package/dist/core/gemini.js +10 -4
- package/dist/core/gemini.js.map +1 -1
- package/dist/core/geminiWrapper.d.ts +43 -2
- package/dist/core/geminiWrapper.js +582 -42
- package/dist/core/geminiWrapper.js.map +1 -1
- package/dist/core/http.js +70 -6
- package/dist/core/http.js.map +1 -1
- package/dist/core/json.d.ts +1 -1
- package/dist/core/json.js +18 -20
- package/dist/core/json.js.map +1 -1
- package/dist/core/nvidia.d.ts +1 -1
- package/dist/core/nvidia.js +13 -4
- package/dist/core/nvidia.js.map +1 -1
- package/dist/core/ollama.js +13 -3
- package/dist/core/ollama.js.map +1 -1
- package/dist/core/openrouter.js +15 -6
- package/dist/core/openrouter.js.map +1 -1
- package/dist/core/reasoning.js +3 -0
- package/dist/core/reasoning.js.map +1 -1
- package/dist/core/session.js +9 -3
- package/dist/core/session.js.map +1 -1
- package/dist/core/tokenAccounting.d.ts +4 -0
- package/dist/core/tokenAccounting.js +75 -13
- package/dist/core/tokenAccounting.js.map +1 -1
- package/dist/core/types.d.ts +58 -3
- package/dist/core/types.js +30 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/updateCheck.d.ts +19 -0
- package/dist/core/updateCheck.js +103 -0
- package/dist/core/updateCheck.js.map +1 -0
- package/dist/core/workspace.d.ts +29 -0
- package/dist/core/workspace.js +1271 -92
- package/dist/core/workspace.js.map +1 -1
- package/dist/tui/App.d.ts +1 -0
- package/dist/tui/App.js +1346 -112
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/commands.js +109 -6
- package/dist/tui/commands.js.map +1 -1
- package/dist/tui/components/ApprovalPanel.js +16 -1
- package/dist/tui/components/ApprovalPanel.js.map +1 -1
- package/dist/tui/components/CommandSuggestions.js +26 -3
- package/dist/tui/components/CommandSuggestions.js.map +1 -1
- package/dist/tui/components/Composer.d.ts +3 -0
- package/dist/tui/components/Composer.js +57 -5
- package/dist/tui/components/Composer.js.map +1 -1
- package/dist/tui/components/ExperimentalPanel.d.ts +1 -1
- package/dist/tui/components/ExperimentalPanel.js +5 -0
- package/dist/tui/components/ExperimentalPanel.js.map +1 -1
- package/dist/tui/components/OnboardingPanel.d.ts +12 -0
- package/dist/tui/components/OnboardingPanel.js +69 -21
- package/dist/tui/components/OnboardingPanel.js.map +1 -1
- package/dist/tui/components/StartupBanner.d.ts +4 -0
- package/dist/tui/components/StartupBanner.js +9 -0
- package/dist/tui/components/StartupBanner.js.map +1 -0
- package/dist/tui/components/Transcript.d.ts +7 -0
- package/dist/tui/components/Transcript.js +86 -16
- package/dist/tui/components/Transcript.js.map +1 -1
- package/dist/tui/contextCommands.d.ts +8 -0
- package/dist/tui/contextCommands.js +205 -0
- package/dist/tui/contextCommands.js.map +1 -0
- package/dist/tui/experimental/AnimatedText.d.ts +38 -0
- package/dist/tui/experimental/AnimatedText.js +55 -0
- package/dist/tui/experimental/AnimatedText.js.map +1 -0
- package/dist/tui/experimental/Banner.d.ts +10 -0
- package/dist/tui/experimental/Banner.js +33 -0
- package/dist/tui/experimental/Banner.js.map +1 -0
- package/dist/tui/experimental/CommandPalette.d.ts +11 -0
- package/dist/tui/experimental/CommandPalette.js +25 -0
- package/dist/tui/experimental/CommandPalette.js.map +1 -0
- package/dist/tui/experimental/ExperimentalShell.d.ts +58 -0
- package/dist/tui/experimental/ExperimentalShell.js +366 -0
- package/dist/tui/experimental/ExperimentalShell.js.map +1 -0
- package/dist/tui/experimental/ThemePicker.d.ts +13 -0
- package/dist/tui/experimental/ThemePicker.js +12 -0
- package/dist/tui/experimental/ThemePicker.js.map +1 -0
- package/dist/tui/experimental/attachments.d.ts +35 -0
- package/dist/tui/experimental/attachments.js +244 -0
- package/dist/tui/experimental/attachments.js.map +1 -0
- package/dist/tui/experimental/composer.d.ts +24 -0
- package/dist/tui/experimental/composer.js +84 -0
- package/dist/tui/experimental/composer.js.map +1 -0
- package/dist/tui/experimental/geminiPricing.d.ts +16 -0
- package/dist/tui/experimental/geminiPricing.js +39 -0
- package/dist/tui/experimental/geminiPricing.js.map +1 -0
- package/dist/tui/experimental/layout.d.ts +46 -0
- package/dist/tui/experimental/layout.js +112 -0
- package/dist/tui/experimental/layout.js.map +1 -0
- package/dist/tui/experimental/theme.d.ts +35 -0
- package/dist/tui/experimental/theme.js +86 -0
- package/dist/tui/experimental/theme.js.map +1 -0
- package/dist/tui/experimental/transcriptRows.d.ts +20 -0
- package/dist/tui/experimental/transcriptRows.js +169 -0
- package/dist/tui/experimental/transcriptRows.js.map +1 -0
- package/dist/tui/experimental/ultraModes.d.ts +46 -0
- package/dist/tui/experimental/ultraModes.js +95 -0
- package/dist/tui/experimental/ultraModes.js.map +1 -0
- package/dist/tui/experimental/ultramaxx.d.ts +19 -0
- package/dist/tui/experimental/ultramaxx.js +43 -0
- package/dist/tui/experimental/ultramaxx.js.map +1 -0
- package/dist/tui/format.d.ts +4 -2
- package/dist/tui/format.js +14 -0
- package/dist/tui/format.js.map +1 -1
- package/dist/tui/hosts.js +7 -1
- package/dist/tui/hosts.js.map +1 -1
- package/dist/tui/layout.d.ts +26 -0
- package/dist/tui/layout.js +66 -0
- package/dist/tui/layout.js.map +1 -0
- package/dist/tui/modelSelection.d.ts +1 -1
- package/dist/tui/modelSelection.js +8 -6
- package/dist/tui/modelSelection.js.map +1 -1
- package/dist/tui/modes.d.ts +7 -0
- package/dist/tui/modes.js +12 -0
- package/dist/tui/modes.js.map +1 -1
- package/dist/tui/onboardingPreferences.d.ts +37 -0
- package/dist/tui/onboardingPreferences.js +118 -0
- package/dist/tui/onboardingPreferences.js.map +1 -0
- package/dist/tui/runStatus.d.ts +50 -0
- package/dist/tui/runStatus.js +164 -0
- package/dist/tui/runStatus.js.map +1 -0
- package/dist/tui/types.d.ts +8 -0
- package/dist/tui/types.js.map +1 -1
- package/docs/architecture.md +115 -0
- package/docs/gemini-wrapper.md +23 -0
- package/docs/product-context.md +43 -0
- package/docs/releases/v1.0.1.md +25 -0
- package/docs/releases/v1.1.0.md +30 -0
- package/docs/releases/v1.2.0.md +28 -0
- package/package.json +4 -2
package/dist/tui/commands.js
CHANGED
|
@@ -26,7 +26,7 @@ export const slashCommands = [
|
|
|
26
26
|
usage: "/provider ollama|gemini|gemini-wrapper|openrouter|nvidia|codex",
|
|
27
27
|
description: "Switch between Ollama, Gemini, Gemini-Wrapper, OpenRouter, NVIDIA, and Codex inference.",
|
|
28
28
|
category: "model",
|
|
29
|
-
detail: "Provider controls where inference runs. Gemini-Wrapper runs the installed gemini_webapi bridge with
|
|
29
|
+
detail: "Provider controls where inference runs. Gemini-Wrapper runs the installed gemini_webapi bridge with pasted cookies or an explicit local browser-cookie import."
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
32
|
name: "think",
|
|
@@ -41,7 +41,7 @@ export const slashCommands = [
|
|
|
41
41
|
usage: "/reasoning low|medium|high|xhigh|adaptive",
|
|
42
42
|
description: "Set provider reasoning effort where the provider supports it.",
|
|
43
43
|
category: "model",
|
|
44
|
-
detail: "Codex supports low, medium, high, and xhigh. OpenRouter receives reasoning.effort for compatible models. Gemini maps xhigh to high. Ollama has no common reasoning-effort API, so the value is ignored there. adaptive chooses effort from task complexity."
|
|
44
|
+
detail: "Codex supports low, medium, high, and xhigh. OpenRouter receives reasoning.effort for compatible models. Gemini maps xhigh to high. Gemini-Wrapper does not expose Gemini Web Denkaufwand controls yet. Ollama has no common reasoning-effort API, so the value is ignored there. adaptive chooses effort from task complexity."
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
47
|
name: "onboarding",
|
|
@@ -56,6 +56,54 @@ export const slashCommands = [
|
|
|
56
56
|
category: "session",
|
|
57
57
|
detail: "Clears the visible transcript, telemetry, advisor notes, approvals, and starts a new session file. Provider, model, mode, and permissions stay unchanged."
|
|
58
58
|
},
|
|
59
|
+
{
|
|
60
|
+
name: "context",
|
|
61
|
+
usage: "/context show|files|pins|clear|export",
|
|
62
|
+
description: "Inspect and manage saved session context.",
|
|
63
|
+
category: "session",
|
|
64
|
+
aliases: ["ctx"],
|
|
65
|
+
detail: "Use /context show for the dashboard, /context files for path-backed context, /context pins for pinned items, /context clear to drop unpinned context, or /context export to print the snapshot path and JSON."
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: "context show",
|
|
69
|
+
usage: "/context show",
|
|
70
|
+
description: "Show saved session context counts, pins, tokens, and recent items.",
|
|
71
|
+
category: "session",
|
|
72
|
+
aliases: ["ctx show"],
|
|
73
|
+
detail: "Reads the current session ContextStore snapshot and prints the dashboard used for context-aware follow-up runs."
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
name: "context files",
|
|
77
|
+
usage: "/context files",
|
|
78
|
+
description: "List active context entries that point at files, artifacts, or attachments.",
|
|
79
|
+
category: "session",
|
|
80
|
+
aliases: ["ctx files"],
|
|
81
|
+
detail: "Shows active path-backed context so you can see which files or artifacts are still part of the current session memory."
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
name: "context pins",
|
|
85
|
+
usage: "/context pins",
|
|
86
|
+
description: "List pinned context items that compaction must keep.",
|
|
87
|
+
category: "session",
|
|
88
|
+
aliases: ["ctx pins", "context pinned"],
|
|
89
|
+
detail: "Pinned context is preserved by /context clear and /compact now. Use this to audit what will remain sticky."
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
name: "context clear",
|
|
93
|
+
usage: "/context clear",
|
|
94
|
+
description: "Drop unpinned saved context for the current session.",
|
|
95
|
+
category: "session",
|
|
96
|
+
aliases: ["ctx clear"],
|
|
97
|
+
detail: "Clears unpinned ContextStore items for this session. Pinned files and other pinned items stay active."
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
name: "context export",
|
|
101
|
+
usage: "/context export",
|
|
102
|
+
description: "Print the current context snapshot path and JSON.",
|
|
103
|
+
category: "session",
|
|
104
|
+
aliases: ["ctx export"],
|
|
105
|
+
detail: "Writes or refreshes the current .patchpilot/context snapshot, then prints the path and snapshot JSON for inspection."
|
|
106
|
+
},
|
|
59
107
|
{
|
|
60
108
|
name: "write",
|
|
61
109
|
usage: "/write on|off",
|
|
@@ -131,9 +179,48 @@ export const slashCommands = [
|
|
|
131
179
|
{
|
|
132
180
|
name: "status",
|
|
133
181
|
usage: "/status",
|
|
134
|
-
description: "
|
|
182
|
+
description: "Operational dock: provider/model, permissions, compute target, session, advisors, tool counters.",
|
|
135
183
|
category: "session"
|
|
136
184
|
},
|
|
185
|
+
{
|
|
186
|
+
name: "usage",
|
|
187
|
+
usage: "/usage",
|
|
188
|
+
description: "Show detailed token, tool-call, cache, and cost counters.",
|
|
189
|
+
category: "session",
|
|
190
|
+
detail: "Shows current-session request counts, input/output/cache tokens, tool counters by name, and estimated cost/savings. If exact model pricing is unavailable, PatchPilot marks the figure as fallback-priced."
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
name: "compact",
|
|
194
|
+
usage: "/compact now|auto|reset",
|
|
195
|
+
description: "Run or configure session-context compaction.",
|
|
196
|
+
category: "session",
|
|
197
|
+
aliases: ["compress"],
|
|
198
|
+
detail: "Use /compact now to compact eligible unpinned context, /compact auto [on|off] to toggle automatic compaction, or /compact reset to drop generated summaries and turn auto-compaction off."
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
name: "compact now",
|
|
202
|
+
usage: "/compact now",
|
|
203
|
+
description: "Compact eligible unpinned context immediately.",
|
|
204
|
+
category: "session",
|
|
205
|
+
aliases: ["compress now"],
|
|
206
|
+
detail: "Pinned context and exact referenced file/artifact paths are kept. Secret-like context is dropped rather than summarized."
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
name: "compact auto",
|
|
210
|
+
usage: "/compact auto [on|off]",
|
|
211
|
+
description: "Toggle automatic ContextStore compaction.",
|
|
212
|
+
category: "session",
|
|
213
|
+
aliases: ["compress auto"],
|
|
214
|
+
detail: "Without on/off, /compact auto enables automatic compaction. Use /compact auto off to disable it."
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
name: "compact reset",
|
|
218
|
+
usage: "/compact reset",
|
|
219
|
+
description: "Drop generated context summaries and disable automatic compaction.",
|
|
220
|
+
category: "session",
|
|
221
|
+
aliases: ["compress reset"],
|
|
222
|
+
detail: "Leaves regular and pinned context items in place, but marks generated summary items as dropped and turns automatic compaction off."
|
|
223
|
+
},
|
|
137
224
|
{
|
|
138
225
|
name: "sessions",
|
|
139
226
|
usage: "/sessions",
|
|
@@ -180,10 +267,17 @@ export const slashCommands = [
|
|
|
180
267
|
},
|
|
181
268
|
{
|
|
182
269
|
name: "experimental",
|
|
183
|
-
usage: "/experimental [file-analysis|memory|subagents] [on|off]",
|
|
270
|
+
usage: "/experimental [file-analysis|memory|subagents|shell-metacharacters] [on|off]",
|
|
184
271
|
description: "Open or update experimental feature toggles.",
|
|
185
272
|
category: "utility",
|
|
186
|
-
detail: "Run /experimental to open the checkbox menu. Use space to toggle file-analysis, memory, and
|
|
273
|
+
detail: "Run /experimental to open the checkbox menu. Use space to toggle file-analysis, memory, subagents, and shell-metacharacters."
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
name: "theme",
|
|
277
|
+
usage: "/theme [new|legacy]",
|
|
278
|
+
description: "Switch between the New experimental shell and the Legacy TUI.",
|
|
279
|
+
category: "utility",
|
|
280
|
+
detail: "Run /theme to open the picker, or /theme new / /theme legacy directly. New is the default fullscreen shell; Legacy is the original sidebar TUI. The choice is remembered."
|
|
187
281
|
},
|
|
188
282
|
{
|
|
189
283
|
name: "init",
|
|
@@ -210,10 +304,19 @@ export function filterSlashCommands(input) {
|
|
|
210
304
|
if (!input.startsWith("/")) {
|
|
211
305
|
return [];
|
|
212
306
|
}
|
|
213
|
-
const
|
|
307
|
+
const normalizedInput = input.slice(1).trimStart().replace(/\s+/g, " ").toLowerCase();
|
|
308
|
+
const commandPart = normalizedInput.split(/\s+/)[0] ?? "";
|
|
214
309
|
if (!commandPart) {
|
|
215
310
|
return slashCommands;
|
|
216
311
|
}
|
|
312
|
+
const fullPrefixMatches = slashCommands.filter((command) => command.name.startsWith(normalizedInput));
|
|
313
|
+
const fullAliasPrefixMatches = slashCommands.filter((command) => command.aliases?.some((alias) => alias.startsWith(normalizedInput)));
|
|
314
|
+
if (fullPrefixMatches.length > 0) {
|
|
315
|
+
return [...fullPrefixMatches, ...fullAliasPrefixMatches.filter((command) => !fullPrefixMatches.includes(command))];
|
|
316
|
+
}
|
|
317
|
+
if (fullAliasPrefixMatches.length > 0) {
|
|
318
|
+
return fullAliasPrefixMatches;
|
|
319
|
+
}
|
|
217
320
|
const prefixMatches = slashCommands.filter((command) => command.name.startsWith(commandPart));
|
|
218
321
|
const aliasPrefixMatches = slashCommands.filter((command) => command.aliases?.some((alias) => alias.startsWith(commandPart)));
|
|
219
322
|
if (prefixMatches.length > 0) {
|
package/dist/tui/commands.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/tui/commands.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,aAAa,GAAmB;IAC3C;QACE,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,qCAAqC;QAClD,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,2GAA2G;KACpH;IACD;QACE,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,mCAAmC;QAChD,QAAQ,EAAE,aAAa;QACvB,OAAO,EAAE,CAAC,OAAO,CAAC;KACnB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,wDAAwD;QACrE,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,CAAC,WAAW,CAAC;QACtB,MAAM,EAAE,uLAAuL;KAChM;IACD;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,gEAAgE;QACvE,WAAW,EAAE,yFAAyF;QACtG,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/tui/commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,21 @@ export function ApprovalPanel(props) {
|
|
|
11
11
|
if (!request) {
|
|
12
12
|
return null;
|
|
13
13
|
}
|
|
14
|
-
return (_jsxs(Box, { borderStyle: "double", borderColor: "yellow", flexDirection: "column", paddingX: 1, marginTop: 1, height:
|
|
14
|
+
return (_jsxs(Box, { borderStyle: "double", borderColor: "yellow", flexDirection: "column", paddingX: 1, marginTop: 1, height: 6, overflowY: "hidden", children: [_jsxs(Text, { color: "yellow", bold: true, children: ["ACTION REQUIRED ", request.tool, " needs ", request.permission, " approval"] }), _jsxs(Text, { color: "gray", children: ["risk ", request.risk, " scope allow-session applies only to this tool", request.bypassable === false ? " bypass cannot skip this" : ""] }), _jsxs(Text, { color: "white", bold: true, wrap: "wrap", children: [request.preview, " ", formatApprovalTarget(request.arguments)] }), _jsx(Text, { color: "cyan", bold: true, children: "Press [y] allow once [a] allow session [n/Esc] deny" })] }));
|
|
15
|
+
}
|
|
16
|
+
function formatApprovalTarget(argumentsValue) {
|
|
17
|
+
const pathValue = typeof argumentsValue.path === "string" ? argumentsValue.path : "";
|
|
18
|
+
const commandValue = typeof argumentsValue.command === "string" ? argumentsValue.command : "";
|
|
19
|
+
const scriptValue = typeof argumentsValue.script === "string" ? argumentsValue.script : "";
|
|
20
|
+
if (pathValue) {
|
|
21
|
+
return `target ${pathValue}`;
|
|
22
|
+
}
|
|
23
|
+
if (scriptValue) {
|
|
24
|
+
return `script ${scriptValue}`;
|
|
25
|
+
}
|
|
26
|
+
if (commandValue) {
|
|
27
|
+
return `command ${commandValue}`;
|
|
28
|
+
}
|
|
29
|
+
return "";
|
|
15
30
|
}
|
|
16
31
|
//# sourceMappingURL=ApprovalPanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApprovalPanel.js","sourceRoot":"","sources":["../../../src/tui/components/ApprovalPanel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAGhC,MAAM,UAAU,aAAa,CAAC,KAG7B;IACC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAC7B,OAAO,CACP,MAAC,GAAG,IAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAC,QAAQ,aACzH,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,EAAC,IAAI,sDAEf,EACL,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,EAAC,IAAI,mGAAoF,EAC5G,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,qFAAsE,IACzF,CACP,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,QAAQ,EAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAC,QAAQ,aAC5H,MAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,wCACL,OAAO,CAAC,IAAI,aAAS,OAAO,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"ApprovalPanel.js","sourceRoot":"","sources":["../../../src/tui/components/ApprovalPanel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAGhC,MAAM,UAAU,aAAa,CAAC,KAG7B;IACC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAC7B,OAAO,CACP,MAAC,GAAG,IAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAC,QAAQ,aACzH,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,EAAC,IAAI,sDAEf,EACL,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,EAAC,IAAI,mGAAoF,EAC5G,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,qFAAsE,IACzF,CACP,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,QAAQ,EAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAC,QAAQ,aAC5H,MAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,wCACL,OAAO,CAAC,IAAI,aAAS,OAAO,CAAC,UAAU,iBACpD,EACP,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,sBACV,OAAO,CAAC,IAAI,qDAAiD,OAAO,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,IAC7H,EACP,MAAC,IAAI,IAAC,KAAK,EAAC,OAAO,EAAC,IAAI,QAAC,IAAI,EAAC,MAAM,aACjC,OAAO,CAAC,OAAO,OAAG,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,IACrD,EACP,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,4EAA6D,IAChF,CACP,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,cAAuC;IACnE,MAAM,SAAS,GAAG,OAAO,cAAc,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,MAAM,YAAY,GAAG,OAAO,cAAc,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9F,MAAM,WAAW,GAAG,OAAO,cAAc,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3F,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,UAAU,SAAS,EAAE,CAAC;IAC/B,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,UAAU,WAAW,EAAE,CAAC;IACjC,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,WAAW,YAAY,EAAE,CAAC;IACnC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -8,10 +8,33 @@ export function CommandSuggestions(props) {
|
|
|
8
8
|
const startIndex = Math.max(0, Math.min(props.selectedIndex - Math.floor(maxRows / 2), Math.max(0, props.items.length - maxRows)));
|
|
9
9
|
const visibleItems = props.items.slice(startIndex, startIndex + maxRows);
|
|
10
10
|
const endIndex = startIndex + visibleItems.length;
|
|
11
|
-
|
|
11
|
+
const selectedItem = props.items[props.selectedIndex] ?? props.items[0];
|
|
12
|
+
const hasPreview = Boolean(selectedItem);
|
|
13
|
+
return (_jsxs(Box, { borderStyle: "round", borderColor: "cyan", flexDirection: "column", paddingX: 1, height: Math.min(maxRows, props.items.length) + (hasPreview ? 7 : 4), overflowY: "hidden", children: [_jsxs(Text, { color: "gray", children: ["Command palette use up/down to pick, Enter to apply, Escape to clear. ", startIndex + 1, "-", endIndex, "/", props.items.length] }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: "cyan", bold: true, children: "Commands" }), _jsx(Text, { color: "gray", children: " grouped by category" })] }), visibleItems.map((item, index) => {
|
|
12
14
|
const absoluteIndex = startIndex + index;
|
|
13
15
|
const isSelected = absoluteIndex === props.selectedIndex;
|
|
14
|
-
return (_jsxs(Box, { marginTop: index === 0 ? 1 : 0, children: [_jsx(Box, { width: 2, children: _jsx(Text, { color: isSelected ? "cyan" : "gray", children: isSelected ? ">" : " " }) }), _jsx(Box, { width: 13, children: _jsx(Text, { color: isSelected ? "cyan" : "gray", bold: isSelected, children: item.category }) }), _jsx(Box, { width: 32, children: _jsx(Text, { color: isSelected ? "white" : "cyan", bold: isSelected, wrap: "truncate", children: item.label }) }), _jsxs(Text, { color: isSelected ? "white" : "gray", wrap: "truncate", children: [item.detail, item.hint ? ` ${item.hint}` : ""] })] }, item.key));
|
|
15
|
-
})] }));
|
|
16
|
+
return (_jsxs(Box, { marginTop: index === 0 ? 1 : 0, children: [_jsx(Box, { width: 2, children: _jsx(Text, { color: isSelected ? "cyan" : "gray", children: isSelected ? ">" : " " }) }), _jsx(Box, { width: 13, children: _jsx(Text, { color: isSelected ? "cyan" : "gray", bold: isSelected, children: formatCategory(item.category) }) }), _jsx(Box, { width: 32, children: _jsx(Text, { color: isSelected ? "white" : "cyan", bold: isSelected, wrap: "truncate", children: item.label }) }), _jsxs(Text, { color: isSelected ? "white" : "gray", wrap: "truncate", children: [item.detail, item.hint ? ` ${item.hint}` : ""] })] }, item.key));
|
|
17
|
+
}), selectedItem ? (_jsxs(Box, { marginTop: 1, borderStyle: "single", borderColor: "gray", paddingX: 1, flexDirection: "column", children: [_jsx(Text, { color: "cyan", bold: true, children: selectedItem.label }), _jsx(Text, { color: "white", wrap: "truncate", children: selectedItem.detail }), _jsx(Text, { color: "gray", wrap: "truncate", children: selectedItem.hint ?? previewForCommand(selectedItem) })] })) : null] }));
|
|
18
|
+
}
|
|
19
|
+
function formatCategory(category) {
|
|
20
|
+
return category.length > 11 ? category.slice(0, 11) : category;
|
|
21
|
+
}
|
|
22
|
+
function previewForCommand(item) {
|
|
23
|
+
if (item.label.startsWith("/models") || item.label.startsWith("/model")) {
|
|
24
|
+
return "Preview: load provider models, filter by query, then select.";
|
|
25
|
+
}
|
|
26
|
+
if (item.label.startsWith("/sessions") || item.label.startsWith("/resume")) {
|
|
27
|
+
return "Preview: inspect saved workspace session history.";
|
|
28
|
+
}
|
|
29
|
+
if (item.label.startsWith("/connect") || item.label.startsWith("/hosts")) {
|
|
30
|
+
return "Preview: choose local, LAN, Tailscale, or manual Ollama host.";
|
|
31
|
+
}
|
|
32
|
+
if (item.label.startsWith("/doctor")) {
|
|
33
|
+
return "Preview: check runtime, git, provider auth, and bridge setup.";
|
|
34
|
+
}
|
|
35
|
+
if (item.label.startsWith("/experimental")) {
|
|
36
|
+
return "Preview: toggle file analysis, memory, and subagent features.";
|
|
37
|
+
}
|
|
38
|
+
return `Preview: ${item.category} command`;
|
|
16
39
|
}
|
|
17
40
|
//# sourceMappingURL=CommandSuggestions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandSuggestions.js","sourceRoot":"","sources":["../../../src/tui/components/CommandSuggestions.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAUhC,MAAM,UAAU,kBAAkB,CAAC,KAGlC;IACC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,CAAC;IAClB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACnI,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"CommandSuggestions.js","sourceRoot":"","sources":["../../../src/tui/components/CommandSuggestions.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import type { AgentWorkState } from "../../core/types.js";
|
|
2
3
|
export declare function Composer(props: {
|
|
3
4
|
input: string;
|
|
4
5
|
isRunning: boolean;
|
|
5
6
|
isApprovalWaiting?: boolean;
|
|
6
7
|
status: string;
|
|
8
|
+
workState: AgentWorkState;
|
|
7
9
|
draftTokens: number;
|
|
10
|
+
width: number;
|
|
8
11
|
mask?: string;
|
|
9
12
|
onChange: (value: string) => void;
|
|
10
13
|
onSubmit: (value: string) => void;
|
|
@@ -1,17 +1,31 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useState } from "react";
|
|
3
|
-
import { Box, Text } from "ink";
|
|
4
|
-
import
|
|
3
|
+
import { Box, Text, useInput } from "ink";
|
|
4
|
+
import { computeComposerLayout } from "../layout.js";
|
|
5
|
+
import { randomRunStatusSeed, runStatusParts } from "../runStatus.js";
|
|
5
6
|
export function Composer(props) {
|
|
6
7
|
const [frameIndex, setFrameIndex] = useState(0);
|
|
7
8
|
const [runningSince, setRunningSince] = useState(null);
|
|
9
|
+
const [verbSeed, setVerbSeed] = useState(() => randomRunStatusSeed());
|
|
10
|
+
const prompt = props.isApprovalWaiting ? "input > " : props.isRunning ? "run > " : "patch > ";
|
|
11
|
+
const layout = computeComposerLayout({
|
|
12
|
+
input: props.input,
|
|
13
|
+
width: props.width,
|
|
14
|
+
promptWidth: prompt.length
|
|
15
|
+
});
|
|
8
16
|
useEffect(() => {
|
|
9
17
|
if (!props.isRunning) {
|
|
10
18
|
setRunningSince(null);
|
|
11
19
|
setFrameIndex(0);
|
|
12
20
|
return;
|
|
13
21
|
}
|
|
14
|
-
setRunningSince((currentValue) =>
|
|
22
|
+
setRunningSince((currentValue) => {
|
|
23
|
+
if (currentValue === null) {
|
|
24
|
+
setVerbSeed(randomRunStatusSeed());
|
|
25
|
+
return Date.now();
|
|
26
|
+
}
|
|
27
|
+
return currentValue;
|
|
28
|
+
});
|
|
15
29
|
const timer = setInterval(() => {
|
|
16
30
|
setFrameIndex((currentValue) => (currentValue + 1) % spinnerFrames.length);
|
|
17
31
|
}, 120);
|
|
@@ -19,11 +33,49 @@ export function Composer(props) {
|
|
|
19
33
|
clearInterval(timer);
|
|
20
34
|
};
|
|
21
35
|
}, [props.isRunning]);
|
|
36
|
+
useInput((inputValue, key) => {
|
|
37
|
+
if (props.isRunning || props.isApprovalWaiting) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (key.return) {
|
|
41
|
+
if (key.shift || key.meta || key.super) {
|
|
42
|
+
props.onChange(`${props.input}\n`);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
props.onSubmit(props.input);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (key.backspace || key.delete) {
|
|
49
|
+
props.onChange(props.input.slice(0, -1));
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (key.tab || key.escape || key.upArrow || key.downArrow || key.leftArrow || key.rightArrow || key.pageUp || key.pageDown || key.home || key.end) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (key.ctrl || inputValue.length === 0) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
props.onChange(`${props.input}${inputValue}`);
|
|
59
|
+
}, {
|
|
60
|
+
isActive: !props.isRunning && !props.isApprovalWaiting
|
|
61
|
+
});
|
|
22
62
|
const elapsedSeconds = runningSince ? Math.max(0, Math.floor((Date.now() - runningSince) / 1000)) : 0;
|
|
23
|
-
|
|
63
|
+
const runStatus = runStatusParts({
|
|
64
|
+
workState: props.workState,
|
|
65
|
+
status: props.status,
|
|
66
|
+
elapsedMs: elapsedSeconds * 1000,
|
|
67
|
+
seed: verbSeed
|
|
68
|
+
});
|
|
69
|
+
const renderedRows = props.mask ? layout.visibleRows.map((row) => props.mask?.repeat(row.length) ?? row) : layout.visibleRows;
|
|
70
|
+
const placeholder = props.input.length === 0 ? "Ask PatchPilot or type /help..." : "";
|
|
71
|
+
return (_jsxs(Box, { flexDirection: "column", height: layout.height, overflowY: "hidden", children: [_jsx(Box, { height: layout.editorRows, flexDirection: "column", children: props.isApprovalWaiting || props.isRunning ? (_jsxs(Box, { height: 1, children: [_jsx(Text, { color: props.isApprovalWaiting ? "yellow" : "cyan", children: prompt }), props.isApprovalWaiting ? (_jsx(Text, { color: "yellow", children: "approval waiting" })) : (_jsxs(Text, { color: "yellow", children: [spinnerFrames[frameIndex], " ", runStatus.verb, " \u00B7 ", runStatus.state, runStatus.detail ? ` · ${runStatus.detail}` : "", _jsx(Text, { color: "gray", children: elapsedSeconds > 0 ? ` ${elapsedSeconds}s` : " starting" })] }))] })) : renderedRows.map((row, index) => {
|
|
72
|
+
const isLastRow = index === renderedRows.length - 1;
|
|
73
|
+
const text = row || (isLastRow ? placeholder : "");
|
|
74
|
+
return (_jsxs(Box, { height: 1, children: [_jsx(Text, { color: "cyan", children: index === 0 ? prompt : " ".repeat(prompt.length) }), _jsxs(Text, { color: placeholder && isLastRow ? "gray" : "white", children: [text, isLastRow ? _jsx(Text, { inverse: true, children: " " }) : null] })] }, `composer-row-${index}`));
|
|
75
|
+
}) }), _jsx(Text, { color: "gray", wrap: "truncate", children: props.isApprovalWaiting ? "Approval waiting: press y once, a session, or n deny." : props.isRunning ? "Input is locked while the current run is active." : `prompt ${props.draftTokens} tok est${layout.hiddenRows > 0 ? ` ${layout.hiddenRows} earlier draft line${layout.hiddenRows === 1 ? "" : "s"}` : ""} Enter sends Shift/Meta+Enter newline` })] }));
|
|
24
76
|
}
|
|
25
77
|
export function FooterHints(props) {
|
|
26
78
|
return (_jsx(Box, { height: 1, overflowY: "hidden", children: _jsxs(Text, { color: "gray", children: ["tab plan/build/bypass | pane ", props.activePane, " | left/right pane | pgup/pgdn scroll | / starts palette"] }) }));
|
|
27
79
|
}
|
|
28
|
-
const spinnerFrames = ["
|
|
80
|
+
const spinnerFrames = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
|
|
29
81
|
//# sourceMappingURL=Composer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Composer.js","sourceRoot":"","sources":["../../../src/tui/components/Composer.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"Composer.js","sourceRoot":"","sources":["../../../src/tui/components/Composer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export type ExperimentalFlag = "fileAnalysis" | "memory" | "subagents";
|
|
2
|
+
export type ExperimentalFlag = "fileAnalysis" | "memory" | "subagents" | "shellMetacharacters";
|
|
3
3
|
export type ExperimentalFlags = Record<ExperimentalFlag, boolean>;
|
|
4
4
|
export declare function ExperimentalPanel(props: {
|
|
5
5
|
flags: ExperimentalFlags;
|
|
@@ -15,6 +15,11 @@ const experimentalRows = [
|
|
|
15
15
|
key: "subagents",
|
|
16
16
|
label: "Subagents",
|
|
17
17
|
description: "Enable explorer, planner, and reviewer advisors for larger workspace tasks."
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
key: "shellMetacharacters",
|
|
21
|
+
label: "Shell Metachars",
|
|
22
|
+
description: "Allow pipes, &&, and ; in run_shell. Redirects and expansion still ask even in bypass."
|
|
18
23
|
}
|
|
19
24
|
];
|
|
20
25
|
export function ExperimentalPanel(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExperimentalPanel.js","sourceRoot":"","sources":["../../../src/tui/components/ExperimentalPanel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAMhC,MAAM,gBAAgB,GAIjB;IACH;QACE,GAAG,EAAE,cAAc;QACnB,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,qGAAqG;KACnH;IACD;QACE,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,gFAAgF;KAC9F;IACD;QACE,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,6EAA6E;KAC3F;CACF,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,KAIjC;IACC,OAAO,CACL,MAAC,GAAG,IAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,MAAM,EAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAC,QAAQ,aACtH,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,8CAEhB,EACP,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,gFAAuE,EAC1F,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,YACrC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;oBACnC,MAAM,QAAQ,GAAG,KAAK,KAAK,KAAK,CAAC,aAAa,CAAC;oBAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACrC,OAAO,CACL,MAAC,GAAG,IAAe,SAAS,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAC/C,KAAC,GAAG,IAAC,KAAK,EAAE,CAAC,YACX,KAAC,IAAI,IAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,YAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAQ,GAClE,EACN,KAAC,GAAG,IAAC,KAAK,EAAE,CAAC,YACX,KAAC,IAAI,IAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,YAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAQ,GACrE,EACN,KAAC,GAAG,IAAC,KAAK,EAAE,EAAE,YACZ,KAAC,IAAI,IAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,YACrD,GAAG,CAAC,KAAK,GACL,GACH,EACN,KAAC,IAAI,IAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,YAAG,GAAG,CAAC,WAAW,GAAQ,KAZ1D,GAAG,CAAC,GAAG,CAaX,CACP,CAAC;gBACJ,CAAC,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,cAAc,CAAC;AAC5G,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,gBAAgB,CAAC,MAAM,CAAC;AACjC,CAAC"}
|
|
1
|
+
{"version":3,"file":"ExperimentalPanel.js","sourceRoot":"","sources":["../../../src/tui/components/ExperimentalPanel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAMhC,MAAM,gBAAgB,GAIjB;IACH;QACE,GAAG,EAAE,cAAc;QACnB,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,qGAAqG;KACnH;IACD;QACE,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,gFAAgF;KAC9F;IACD;QACE,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,6EAA6E;KAC3F;IACD;QACE,GAAG,EAAE,qBAAqB;QAC1B,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,wFAAwF;KACtG;CACF,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,KAIjC;IACC,OAAO,CACL,MAAC,GAAG,IAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,MAAM,EAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAC,QAAQ,aACtH,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,8CAEhB,EACP,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,gFAAuE,EAC1F,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,YACrC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;oBACnC,MAAM,QAAQ,GAAG,KAAK,KAAK,KAAK,CAAC,aAAa,CAAC;oBAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACrC,OAAO,CACL,MAAC,GAAG,IAAe,SAAS,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAC/C,KAAC,GAAG,IAAC,KAAK,EAAE,CAAC,YACX,KAAC,IAAI,IAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,YAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAQ,GAClE,EACN,KAAC,GAAG,IAAC,KAAK,EAAE,CAAC,YACX,KAAC,IAAI,IAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,YAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAQ,GACrE,EACN,KAAC,GAAG,IAAC,KAAK,EAAE,EAAE,YACZ,KAAC,IAAI,IAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,YACrD,GAAG,CAAC,KAAK,GACL,GACH,EACN,KAAC,IAAI,IAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,YAAG,GAAG,CAAC,WAAW,GAAQ,KAZ1D,GAAG,CAAC,GAAG,CAaX,CACP,CAAC;gBACJ,CAAC,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,cAAc,CAAC;AAC5G,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,gBAAgB,CAAC,MAAM,CAAC;AACjC,CAAC"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { ModelProvider } from "../../core/types.js";
|
|
3
3
|
import type { OllamaHost } from "../hosts.js";
|
|
4
|
+
import { type OnboardingPreferences } from "../onboardingPreferences.js";
|
|
4
5
|
export type ApiKeyProvider = "gemini" | "gemini-wrapper" | "openrouter" | "nvidia";
|
|
5
6
|
export type OnboardingState = {
|
|
7
|
+
step: "welcome";
|
|
8
|
+
} | {
|
|
9
|
+
step: "disclaimer";
|
|
10
|
+
} | {
|
|
6
11
|
step: "entry";
|
|
7
12
|
} | {
|
|
8
13
|
step: "host";
|
|
@@ -38,6 +43,11 @@ export type OnboardingState = {
|
|
|
38
43
|
provider: ModelProvider;
|
|
39
44
|
models: string[];
|
|
40
45
|
deviceName?: string;
|
|
46
|
+
} | {
|
|
47
|
+
step: "preferences";
|
|
48
|
+
provider: ModelProvider;
|
|
49
|
+
model: string;
|
|
50
|
+
preferences: OnboardingPreferences;
|
|
41
51
|
};
|
|
42
52
|
export declare function OnboardingPanel(props: {
|
|
43
53
|
state: OnboardingState;
|
|
@@ -50,6 +60,8 @@ export declare function OnboardingPanel(props: {
|
|
|
50
60
|
text: string;
|
|
51
61
|
detail?: string;
|
|
52
62
|
} | null;
|
|
63
|
+
formatModelLabel?: (model: string) => string;
|
|
64
|
+
formatModelDescription?: (model: string) => string;
|
|
53
65
|
onInputChange: (value: string) => void;
|
|
54
66
|
onInputSubmit: (value: string) => void;
|
|
55
67
|
}): React.ReactElement;
|