@patze/code-cli 0.18.0 → 0.24.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 +84 -0
- package/VERSION +1 -1
- package/dist/backend/agent-trace.d.ts +4 -0
- package/dist/backend/agent-trace.d.ts.map +1 -1
- package/dist/backend/agent-trace.js +13 -0
- package/dist/backend/agent-trace.js.map +1 -1
- package/dist/backend/cancel-client.d.ts +19 -0
- package/dist/backend/cancel-client.d.ts.map +1 -0
- package/dist/backend/cancel-client.js +45 -0
- package/dist/backend/cancel-client.js.map +1 -0
- package/dist/backend/execute-client.d.ts +2 -0
- package/dist/backend/execute-client.d.ts.map +1 -1
- package/dist/backend/execute-client.js +2 -0
- package/dist/backend/execute-client.js.map +1 -1
- package/dist/backend/preview-payload.d.ts +8 -0
- package/dist/backend/preview-payload.d.ts.map +1 -1
- package/dist/backend/preview-payload.js +36 -1
- package/dist/backend/preview-payload.js.map +1 -1
- package/dist/backend/run-record.d.ts +2 -0
- package/dist/backend/run-record.d.ts.map +1 -1
- package/dist/backend/run-record.js +3 -1
- package/dist/backend/run-record.js.map +1 -1
- package/dist/cli/commands/agent.d.ts.map +1 -1
- package/dist/cli/commands/agent.js +34 -11
- package/dist/cli/commands/agent.js.map +1 -1
- package/dist/cli/commands/exec.d.ts +5 -0
- package/dist/cli/commands/exec.d.ts.map +1 -0
- package/dist/cli/commands/exec.js +80 -0
- package/dist/cli/commands/exec.js.map +1 -0
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +1 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/interactive/agent-activity.d.ts +11 -0
- package/dist/cli/interactive/agent-activity.d.ts.map +1 -0
- package/dist/cli/interactive/agent-activity.js +41 -0
- package/dist/cli/interactive/agent-activity.js.map +1 -0
- package/dist/cli/interactive/agent-event-feed.d.ts +14 -0
- package/dist/cli/interactive/agent-event-feed.d.ts.map +1 -0
- package/dist/cli/interactive/agent-event-feed.js +151 -0
- package/dist/cli/interactive/agent-event-feed.js.map +1 -0
- package/dist/cli/interactive/agent-events.d.ts +45 -0
- package/dist/cli/interactive/agent-events.d.ts.map +1 -0
- package/dist/cli/interactive/agent-events.js +70 -0
- package/dist/cli/interactive/agent-events.js.map +1 -0
- package/dist/cli/interactive/agent-execute-turn.d.ts +7 -0
- package/dist/cli/interactive/agent-execute-turn.d.ts.map +1 -1
- package/dist/cli/interactive/agent-execute-turn.js +163 -119
- package/dist/cli/interactive/agent-execute-turn.js.map +1 -1
- package/dist/cli/interactive/agent-stream-format.d.ts +6 -2
- package/dist/cli/interactive/agent-stream-format.d.ts.map +1 -1
- package/dist/cli/interactive/agent-stream-format.js +71 -18
- package/dist/cli/interactive/agent-stream-format.js.map +1 -1
- package/dist/cli/interactive/agent-turn-classify.d.ts +1 -1
- package/dist/cli/interactive/agent-turn-classify.d.ts.map +1 -1
- package/dist/cli/interactive/agent-turn-classify.js +25 -9
- package/dist/cli/interactive/agent-turn-classify.js.map +1 -1
- package/dist/cli/interactive/agent-turn-context.d.ts +2 -0
- package/dist/cli/interactive/agent-turn-context.d.ts.map +1 -1
- package/dist/cli/interactive/agent-turn-context.js +8 -2
- package/dist/cli/interactive/agent-turn-context.js.map +1 -1
- package/dist/cli/interactive/agent-turn-format.d.ts +2 -0
- package/dist/cli/interactive/agent-turn-format.d.ts.map +1 -1
- package/dist/cli/interactive/agent-turn-format.js +38 -7
- package/dist/cli/interactive/agent-turn-format.js.map +1 -1
- package/dist/cli/interactive/agent-turn.d.ts +6 -0
- package/dist/cli/interactive/agent-turn.d.ts.map +1 -1
- package/dist/cli/interactive/agent-turn.js +48 -45
- package/dist/cli/interactive/agent-turn.js.map +1 -1
- package/dist/cli/interactive/feed-run-stats.d.ts +9 -0
- package/dist/cli/interactive/feed-run-stats.d.ts.map +1 -0
- package/dist/cli/interactive/feed-run-stats.js +51 -0
- package/dist/cli/interactive/feed-run-stats.js.map +1 -0
- package/dist/cli/interactive/header.d.ts +6 -1
- package/dist/cli/interactive/header.d.ts.map +1 -1
- package/dist/cli/interactive/header.js +7 -3
- package/dist/cli/interactive/header.js.map +1 -1
- package/dist/cli/interactive/json-agent-stream.d.ts +8 -0
- package/dist/cli/interactive/json-agent-stream.d.ts.map +1 -0
- package/dist/cli/interactive/json-agent-stream.js +14 -0
- package/dist/cli/interactive/json-agent-stream.js.map +1 -0
- package/dist/cli/interactive/model-command.d.ts.map +1 -1
- package/dist/cli/interactive/model-command.js +37 -3
- package/dist/cli/interactive/model-command.js.map +1 -1
- package/dist/cli/interactive/plain-agent-render.d.ts +16 -0
- package/dist/cli/interactive/plain-agent-render.d.ts.map +1 -0
- package/dist/cli/interactive/plain-agent-render.js +69 -0
- package/dist/cli/interactive/plain-agent-render.js.map +1 -0
- package/dist/cli/interactive/session-controller.d.ts +4 -0
- package/dist/cli/interactive/session-controller.d.ts.map +1 -1
- package/dist/cli/interactive/session-controller.js +23 -2
- package/dist/cli/interactive/session-controller.js.map +1 -1
- package/dist/cli/interactive/session-store.d.ts +3 -0
- package/dist/cli/interactive/session-store.d.ts.map +1 -1
- package/dist/cli/interactive/session-store.js +3 -0
- package/dist/cli/interactive/session-store.js.map +1 -1
- package/dist/cli/interactive/session.d.ts +19 -0
- package/dist/cli/interactive/session.d.ts.map +1 -1
- package/dist/cli/interactive/session.js +44 -0
- package/dist/cli/interactive/session.js.map +1 -1
- package/dist/cli/interactive/slash-dispatch.d.ts +3 -0
- package/dist/cli/interactive/slash-dispatch.d.ts.map +1 -1
- package/dist/cli/interactive/slash-dispatch.js +3 -0
- package/dist/cli/interactive/slash-dispatch.js.map +1 -1
- package/dist/cli/interactive/tool-arg-summary.d.ts +7 -0
- package/dist/cli/interactive/tool-arg-summary.d.ts.map +1 -0
- package/dist/cli/interactive/tool-arg-summary.js +86 -0
- package/dist/cli/interactive/tool-arg-summary.js.map +1 -0
- package/dist/cli/interactive/trace-glyphs.d.ts +13 -0
- package/dist/cli/interactive/trace-glyphs.d.ts.map +1 -0
- package/dist/cli/interactive/trace-glyphs.js +175 -0
- package/dist/cli/interactive/trace-glyphs.js.map +1 -0
- package/dist/cli/interactive/transcript-line-parse.js +2 -2
- package/dist/cli/interactive/transcript-line-parse.js.map +1 -1
- package/dist/cli/interactive/transcript-upsert.d.ts.map +1 -1
- package/dist/cli/interactive/transcript-upsert.js +21 -4
- package/dist/cli/interactive/transcript-upsert.js.map +1 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +5 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/config/model-preferences.d.ts +13 -0
- package/dist/config/model-preferences.d.ts.map +1 -0
- package/dist/config/model-preferences.js +50 -0
- package/dist/config/model-preferences.js.map +1 -0
- package/dist/config/models.d.ts +2 -1
- package/dist/config/models.d.ts.map +1 -1
- package/dist/config/models.js +5 -2
- package/dist/config/models.js.map +1 -1
- package/opentui/src/App.tsx +40 -5
- package/package.json +1 -1
package/dist/config/models.js
CHANGED
|
@@ -38,14 +38,17 @@ export function resolveEffectiveModel(input) {
|
|
|
38
38
|
}
|
|
39
39
|
return DEFAULT_PATZE_MODEL;
|
|
40
40
|
}
|
|
41
|
-
export function formatModelPickerLines(current) {
|
|
41
|
+
export function formatModelPickerLines(current, prefs) {
|
|
42
42
|
const lines = [`Model · current: ${current}`, ""];
|
|
43
|
+
if (prefs) {
|
|
44
|
+
lines.push(` thinking ${prefs.thinking === null ? "auto" : prefs.thinking ? "on" : "off"} · fast ${prefs.fast === null ? "auto" : prefs.fast ? "on" : "off"}`, "");
|
|
45
|
+
}
|
|
43
46
|
for (const model of PATZE_SUPPORTED_MODELS) {
|
|
44
47
|
const marker = model.toLowerCase() === current.toLowerCase() ? "›" : " ";
|
|
45
48
|
lines.push(` ${marker} ${model}`);
|
|
46
49
|
}
|
|
47
50
|
lines.push("");
|
|
48
|
-
lines.push("Usage: /model <id> · /model clear");
|
|
51
|
+
lines.push("Usage: /model <id> · /model thinking on|off · /model fast on|off · /model clear");
|
|
49
52
|
return lines;
|
|
50
53
|
}
|
|
51
54
|
//# sourceMappingURL=models.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/config/models.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/config/models.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAA;AAEtD,wFAAwF;AACxF,MAAM,CAAC,MAAM,sBAAsB,GAAsB;IACvD,mBAAmB;IACnB,cAAc;IACd,YAAY;IACZ,cAAc;IACd,SAAS;CACV,CAAA;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAgC;IAC/D,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAA;IAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;IACnC,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAA;IACnF,OAAO,KAAK,IAAI,OAAO,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;IAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,WAAW,EAAE,CAAC,CAAA;AACjG,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAGrC;IACC,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;IAC3D,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,WAAW,CAAA;IACpB,CAAC;IACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IAC9D,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IACtD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,OAAO,mBAAmB,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,KAAwB;IAC9E,MAAM,KAAK,GAAG,CAAC,oBAAoB,OAAO,EAAE,EAAE,EAAE,CAAC,CAAA;IACjD,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,CAAC,IAAI,CACR,cAAc,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,WAC5E,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KACrD,EAAE,EACF,EAAE,CACH,CAAA;IACH,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,sBAAsB,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;QACxE,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,KAAK,EAAE,CAAC,CAAA;IACpC,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAA;IAC7F,OAAO,KAAK,CAAA;AACd,CAAC"}
|
package/opentui/src/App.tsx
CHANGED
|
@@ -23,6 +23,8 @@ import {
|
|
|
23
23
|
} from "./transcript-render.js"
|
|
24
24
|
import { classifyPlainOutput, createTranscriptSink, inferErrorKind } from "./tui-sink.js"
|
|
25
25
|
import { upsertTranscriptEntry } from "../../dist/cli/interactive/transcript-upsert.js"
|
|
26
|
+
import { applyAgentEvent } from "../../dist/cli/interactive/agent-event-feed.js"
|
|
27
|
+
import type { AgentEvent } from "../../dist/cli/interactive/agent-events.js"
|
|
26
28
|
|
|
27
29
|
extend({ "tui-input": InputRenderable })
|
|
28
30
|
|
|
@@ -65,7 +67,12 @@ type InteractiveController = {
|
|
|
65
67
|
processLine: (
|
|
66
68
|
rawLine: string,
|
|
67
69
|
output: { line: (text?: string) => void },
|
|
68
|
-
context?: {
|
|
70
|
+
context?: {
|
|
71
|
+
signal?: AbortSignal
|
|
72
|
+
onActivity?: (label: string | null) => void
|
|
73
|
+
useActivitySpinner?: boolean
|
|
74
|
+
onAgentEvent?: (event: AgentEvent) => void
|
|
75
|
+
}
|
|
69
76
|
) => Promise<{ exitShell: boolean; exitCode: number; streamed?: boolean }>
|
|
70
77
|
}
|
|
71
78
|
|
|
@@ -92,6 +99,8 @@ export function App({ cwd: cwdArg }: { cwd?: string }) {
|
|
|
92
99
|
const [ready, setReady] = useState(false)
|
|
93
100
|
const [bootError, setBootError] = useState<string | null>(null)
|
|
94
101
|
const [busy, setBusy] = useState(false)
|
|
102
|
+
const [activityLabel, setActivityLabel] = useState<string | null>(null)
|
|
103
|
+
const [activityFrame, setActivityFrame] = useState(0)
|
|
95
104
|
const [input, setInput] = useState("")
|
|
96
105
|
const [mode, setMode] = useState<ViewMode>("input")
|
|
97
106
|
const [modelSearch, setModelSearch] = useState("")
|
|
@@ -219,6 +228,18 @@ export function App({ cwd: cwdArg }: { cwd?: string }) {
|
|
|
219
228
|
}
|
|
220
229
|
}, [])
|
|
221
230
|
|
|
231
|
+
useEffect(() => {
|
|
232
|
+
if (!activityLabel) {
|
|
233
|
+
return
|
|
234
|
+
}
|
|
235
|
+
const timer = setInterval(() => {
|
|
236
|
+
setActivityFrame((frame) => frame + 1)
|
|
237
|
+
}, 80)
|
|
238
|
+
return () => {
|
|
239
|
+
clearInterval(timer)
|
|
240
|
+
}
|
|
241
|
+
}, [activityLabel])
|
|
242
|
+
|
|
222
243
|
useEffect(() => {
|
|
223
244
|
let cancelled = false
|
|
224
245
|
|
|
@@ -305,9 +326,11 @@ export function App({ cwd: cwdArg }: { cwd?: string }) {
|
|
|
305
326
|
}
|
|
306
327
|
|
|
307
328
|
setBusy(true)
|
|
329
|
+
setActivityLabel(null)
|
|
308
330
|
clearStreaming()
|
|
309
331
|
markScrollPinned()
|
|
310
332
|
|
|
333
|
+
const turnAssistantId = nextId()
|
|
311
334
|
const abort = new AbortController()
|
|
312
335
|
activeAbortRef.current = abort
|
|
313
336
|
|
|
@@ -325,7 +348,16 @@ export function App({ cwd: cwdArg }: { cwd?: string }) {
|
|
|
325
348
|
})
|
|
326
349
|
|
|
327
350
|
try {
|
|
328
|
-
const result = await controller.processLine(value, sink, {
|
|
351
|
+
const result = await controller.processLine(value, sink, {
|
|
352
|
+
signal: abort.signal,
|
|
353
|
+
onActivity: setActivityLabel,
|
|
354
|
+
useActivitySpinner: false,
|
|
355
|
+
onAgentEvent: (event) => {
|
|
356
|
+
setActivityLabel(null)
|
|
357
|
+
setTranscript((items) => applyAgentEvent(items, event, turnAssistantId))
|
|
358
|
+
followTranscript()
|
|
359
|
+
},
|
|
360
|
+
})
|
|
329
361
|
if (result.streamed) {
|
|
330
362
|
clearStreaming()
|
|
331
363
|
}
|
|
@@ -336,6 +368,7 @@ export function App({ cwd: cwdArg }: { cwd?: string }) {
|
|
|
336
368
|
} finally {
|
|
337
369
|
activeAbortRef.current = null
|
|
338
370
|
setBusy(false)
|
|
371
|
+
setActivityLabel(null)
|
|
339
372
|
clearStreaming()
|
|
340
373
|
}
|
|
341
374
|
},
|
|
@@ -701,7 +734,9 @@ export function App({ cwd: cwdArg }: { cwd?: string }) {
|
|
|
701
734
|
createElement(TuiInput, {
|
|
702
735
|
focused: ready && !busy,
|
|
703
736
|
placeholder: busy
|
|
704
|
-
?
|
|
737
|
+
? activityLabel
|
|
738
|
+
? `${["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"][activityFrame % 10]} ${activityLabel}… · Ctrl+C cancel`
|
|
739
|
+
: "Ctrl+C cancel · waiting for agent…"
|
|
705
740
|
: ready
|
|
706
741
|
? "Ask or type /help"
|
|
707
742
|
: "Loading Patze Code…",
|
|
@@ -722,8 +757,8 @@ export function App({ cwd: cwdArg }: { cwd?: string }) {
|
|
|
722
757
|
),
|
|
723
758
|
createElement("text", {
|
|
724
759
|
content: busy
|
|
725
|
-
? "Esc exit · Ctrl+C cancel run ·
|
|
726
|
-
: "Esc exit · Ctrl+C quit ·
|
|
760
|
+
? "Esc exit · Ctrl+C cancel run · agent executing"
|
|
761
|
+
: "Esc exit · Ctrl+C quit · /diff · /approve · /apply when patch ready",
|
|
727
762
|
attributes: TextAttributes.DIM,
|
|
728
763
|
})
|
|
729
764
|
)
|