@namzu/cli 33.2.0 → 33.2.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 +6 -0
- package/dist/tui/App.js +2 -2
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/ComposerFrame.d.ts +4 -3
- package/dist/tui/ComposerFrame.d.ts.map +1 -1
- package/dist/tui/ComposerFrame.js +31 -31
- package/dist/tui/ComposerFrame.js.map +1 -1
- package/dist/tui/StatusBar.d.ts +2 -22
- package/dist/tui/StatusBar.d.ts.map +1 -1
- package/dist/tui/StatusBar.js +4 -26
- package/dist/tui/StatusBar.js.map +1 -1
- package/dist/tui/theme.d.ts +1 -7
- package/dist/tui/theme.d.ts.map +1 -1
- package/dist/tui/theme.js +0 -14
- package/dist/tui/theme.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
2
|
/** A bounded command frame; its content stays mounted while another prompt owns focus. */
|
|
3
|
-
export declare function ComposerFrame({ focus, hidden, mode, activation, animate, children, }: {
|
|
3
|
+
export declare function ComposerFrame({ focus, hidden, mode, columns, activation, animate, children, }: {
|
|
4
4
|
readonly focus: boolean;
|
|
5
5
|
readonly hidden?: boolean;
|
|
6
6
|
readonly working?: boolean;
|
|
7
7
|
readonly animate?: boolean;
|
|
8
8
|
/**
|
|
9
|
-
* A session mode
|
|
10
|
-
* footer names it once; the border never repeats the label.
|
|
9
|
+
* A session mode named on the frame's upper right — today only `hypermode`.
|
|
11
10
|
*/
|
|
12
11
|
readonly mode?: string;
|
|
12
|
+
/** The frame's actual width, excluding a parent's horizontal padding. */
|
|
13
|
+
readonly columns?: number;
|
|
13
14
|
/** Increment only when the operator successfully turns the session mode on. */
|
|
14
15
|
readonly activation?: number;
|
|
15
16
|
readonly children: ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComposerFrame.d.ts","sourceRoot":"","sources":["../../src/tui/ComposerFrame.tsx"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"ComposerFrame.d.ts","sourceRoot":"","sources":["../../src/tui/ComposerFrame.tsx"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAQnE,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,EAC7B,KAAK,EACL,MAAc,EACd,IAAI,EACJ,OAAO,EACP,UAAc,EACd,OAAc,EACd,QAAQ,GACR,EAAE;IACF,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,yEAAyE;IACzE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,+EAA+E;IAC/E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;CAC5B,2CA6FA"}
|
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Box, Text, useAnimation, useIsScreenReaderEnabled, useStdout, useWindowSize } from 'ink';
|
|
3
3
|
import { useEffect, useRef, useState } from 'react';
|
|
4
|
-
import {
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
'ansi256(231)',
|
|
9
|
-
'ansi256(225)',
|
|
10
|
-
'ansi256(219)',
|
|
11
|
-
'ansi256(177)',
|
|
12
|
-
'ansi256(141)',
|
|
13
|
-
'ansi256(105)',
|
|
14
|
-
'ansi256(63)',
|
|
15
|
-
];
|
|
4
|
+
import { theme } from './theme.js';
|
|
5
|
+
const HYPERMODE_GLOW_MS = 880;
|
|
6
|
+
const HYPERMODE_GLOW_COLORS = ['ansi256(183)', theme.accent.hypermode, 'ansi256(97)'];
|
|
7
|
+
const MESSAGE_CAPTION_COLUMNS = 10;
|
|
16
8
|
/** A bounded command frame; its content stays mounted while another prompt owns focus. */
|
|
17
|
-
export function ComposerFrame({ focus, hidden = false, mode, activation = 0, animate = true, children, }) {
|
|
9
|
+
export function ComposerFrame({ focus, hidden = false, mode, columns, activation = 0, animate = true, children, }) {
|
|
18
10
|
const terminal = useWindowSize();
|
|
19
11
|
const { stdout } = useStdout();
|
|
20
12
|
const screenReader = useIsScreenReaderEnabled();
|
|
21
13
|
const accent = focus ? theme.border.focus : theme.text.muted;
|
|
22
|
-
const
|
|
23
|
-
|
|
14
|
+
const frameColumns = Math.max(2, columns ?? terminal.columns ?? 80);
|
|
15
|
+
// Keep the mode visible on small screens by giving its label the caption's
|
|
16
|
+
// space. Only a frame too narrow to hold the complete word omits it.
|
|
17
|
+
const showMode = mode !== undefined && frameColumns >= mode.length + 7;
|
|
18
|
+
const showCaption = !showMode || frameColumns >= 28;
|
|
19
|
+
const ruleColumns = Math.max(1, frameColumns - 2 - (showCaption ? MESSAGE_CAPTION_COLUMNS : 0) - (showMode ? mode.length + 3 : 0));
|
|
20
|
+
// Below this width the caption yields its space to the label, leaving the
|
|
21
|
+
// rule on the left of the input center. A pulse there would appear off-center.
|
|
22
|
+
const motion = animate && stdout.isTTY === true && !screenReader && showMode && showCaption && colourAllowed();
|
|
24
23
|
const [igniting, setIgniting] = useState(false);
|
|
25
24
|
const previousActivation = useRef(activation);
|
|
26
25
|
const { time, reset } = useAnimation({
|
|
@@ -39,38 +38,39 @@ export function ComposerFrame({ focus, hidden = false, mode, activation = 0, ani
|
|
|
39
38
|
setIgniting(false);
|
|
40
39
|
}, [activation, hidden, motion, reset]);
|
|
41
40
|
useEffect(() => {
|
|
42
|
-
if (igniting && (time >=
|
|
41
|
+
if (igniting && (time >= HYPERMODE_GLOW_MS || !motion || hidden))
|
|
43
42
|
setIgniting(false);
|
|
44
43
|
}, [hidden, igniting, motion, time]);
|
|
45
|
-
const
|
|
46
|
-
return (_jsxs(Box, { position: "relative", flexDirection: "column", marginTop: hidden ? 0 : 1, children: [_jsxs(Box, { display: hidden ? 'none' : 'flex', height: 1, flexShrink: 0, children: [_jsx(Box, { flexShrink: 0, children: _jsx(Text, { color: accent, children: "\u250C" }) }), _jsx(Box, { minWidth: 0, children: _jsxs(Text, { color: accent, wrap: "truncate-end", children: ["\u2500 ", _jsx(Text, { bold: true, children: "MESSAGE" }), ' '] }) }),
|
|
44
|
+
const glowTime = igniting && motion && !hidden && time < HYPERMODE_GLOW_MS ? time : undefined;
|
|
45
|
+
return (_jsxs(Box, { position: "relative", flexDirection: "column", width: frameColumns, marginTop: hidden ? 0 : 1, children: [_jsxs(Box, { display: hidden ? 'none' : 'flex', height: 1, flexShrink: 0, children: [_jsx(Box, { flexShrink: 0, children: _jsx(Text, { color: accent, children: "\u250C" }) }), showCaption ? (_jsx(Box, { minWidth: 0, children: _jsxs(Text, { color: accent, wrap: "truncate-end", children: ["\u2500 ", _jsx(Text, { bold: true, children: "MESSAGE" }), ' '] }) })) : null, glowTime !== undefined ? (_jsx(GlowRule, { columns: ruleColumns, time: glowTime })) : (_jsx(Rule, {})), showMode ? (_jsxs(Box, { flexShrink: 0, children: [_jsxs(Text, { color: theme.accent.hypermode, bold: true, children: [' ', mode, ' '] }), _jsx(Text, { color: theme.border.default, children: "\u2500" })] })) : null, _jsx(Box, { flexShrink: 0, children: _jsx(Text, { color: accent, children: "\u2510" }) })] }), _jsx(Box, { flexDirection: "column", ...(hidden ? {} : { borderStyle: 'single' }), borderTop: false, borderBottom: false, borderLeft: !hidden, borderRight: !hidden, borderColor: theme.border.default, children: children }), _jsxs(Box, { display: hidden ? 'none' : 'flex', height: 1, flexShrink: 0, children: [_jsx(Box, { flexShrink: 0, children: _jsx(Text, { color: accent, children: "\u2514" }) }), _jsx(Box, { minWidth: 0, children: _jsx(Text, { color: accent, wrap: "truncate-end", children: "\u2500" }) }), _jsx(Rule, {}), _jsx(Box, { flexShrink: 0, children: _jsx(Text, { color: accent, children: "\u2518" }) })] })] }));
|
|
47
46
|
}
|
|
48
47
|
/** Yoga sizes the rule; a repeated text string would truncate with an ellipsis. */
|
|
49
48
|
function Rule() {
|
|
50
49
|
return (_jsx(Box, { flexGrow: 1, minWidth: 0, height: 1, borderStyle: "single", borderBottom: false, borderLeft: false, borderRight: false, borderColor: theme.border.default }));
|
|
51
50
|
}
|
|
52
51
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
* and clipped to one row, so no width is computed here that could disagree
|
|
56
|
-
* with the box's own.
|
|
52
|
+
* A single violet/lavender pulse travels from the rule's center toward both
|
|
53
|
+
* ends. The settled rule is plain graphite, so no colour cycles behind a draft.
|
|
57
54
|
*/
|
|
58
|
-
function
|
|
55
|
+
function GlowRule({ columns, time, }) {
|
|
59
56
|
const cells = Math.max(1, columns);
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
: Math.floor((ignitionTime / HYPERMODE_IGNITION_MS) * (cells + 12)) - 6;
|
|
57
|
+
const center = (cells - 1) / 2;
|
|
58
|
+
const radius = 1 + (time / HYPERMODE_GLOW_MS) * (center + 9);
|
|
63
59
|
return (_jsx(Box, { flexGrow: 1, flexBasis: 0, minWidth: 0, height: 1, overflow: "hidden", children: _jsx(Text, { wrap: "wrap", children: Array.from({ length: cells }, (_, index) => {
|
|
64
|
-
const trail =
|
|
65
|
-
const color = trail >= 0 && trail <
|
|
66
|
-
?
|
|
67
|
-
:
|
|
60
|
+
const trail = radius - Math.abs(index - center);
|
|
61
|
+
const color = trail >= 0 && trail < 2
|
|
62
|
+
? HYPERMODE_GLOW_COLORS[0]
|
|
63
|
+
: trail >= 2 && trail < 5
|
|
64
|
+
? HYPERMODE_GLOW_COLORS[1]
|
|
65
|
+
: trail >= 5 && trail < 9
|
|
66
|
+
? HYPERMODE_GLOW_COLORS[2]
|
|
67
|
+
: theme.border.default;
|
|
68
68
|
return (
|
|
69
69
|
// biome-ignore lint/suspicious/noArrayIndexKey: one fixed cell per column; nothing reorders.
|
|
70
70
|
_jsx(Text, { color: color, children: "\u2500" }, index));
|
|
71
71
|
}) }) }));
|
|
72
72
|
}
|
|
73
|
-
/** The
|
|
73
|
+
/** The pulse is decoration; wherever colour is refused, the plain rule is drawn instead. */
|
|
74
74
|
function colourAllowed() {
|
|
75
75
|
return (process.env.NO_COLOR === undefined &&
|
|
76
76
|
process.env.FORCE_COLOR !== '0' &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComposerFrame.js","sourceRoot":"","sources":["../../src/tui/ComposerFrame.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,wBAAwB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACjG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAA;AAEnE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ComposerFrame.js","sourceRoot":"","sources":["../../src/tui/ComposerFrame.tsx"],"names":[],"mappings":"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"}
|
package/dist/tui/StatusBar.d.ts
CHANGED
|
@@ -16,8 +16,6 @@ export interface StatusBarProps {
|
|
|
16
16
|
readonly model: string | null;
|
|
17
17
|
/** An explicit reasoning-effort override; omitted/undefined means the model's own default, which this footer does not name. */
|
|
18
18
|
readonly effort?: string | null;
|
|
19
|
-
/** The session's hypermode (`/hypermode`) — a setting shown beside effort, never as a level of it. */
|
|
20
|
-
readonly hypermode?: boolean;
|
|
21
19
|
/** Ambient durable goal status; interaction hints take precedence. */
|
|
22
20
|
readonly goal?: string | null;
|
|
23
21
|
readonly state: 'idle' | 'thinking' | 'tool' | 'awaiting-permission';
|
|
@@ -37,7 +35,7 @@ export declare const MODE_MARK: {
|
|
|
37
35
|
readonly moving: "⏵⏵";
|
|
38
36
|
readonly held: "‖";
|
|
39
37
|
};
|
|
40
|
-
export declare function StatusBar({ cwd, provider, model, effort,
|
|
38
|
+
export declare function StatusBar({ cwd, provider, model, effort, goal, state, hint, permissionMode, canCycleMode, }: StatusBarProps): import("react/jsx-runtime").JSX.Element;
|
|
41
39
|
/**
|
|
42
40
|
* A path shortened from the LEFT, keeping the leaf.
|
|
43
41
|
*
|
|
@@ -51,8 +49,6 @@ export interface StatusLineLayout {
|
|
|
51
49
|
readonly mode: string | null;
|
|
52
50
|
readonly cycleSuffix: string | null;
|
|
53
51
|
readonly effort: string | null;
|
|
54
|
-
/** The hypermode marker, held apart from `effort` — see `fitStatusLine`'s doc for why. */
|
|
55
|
-
readonly hypermode: string | null;
|
|
56
52
|
readonly cwd: string | null;
|
|
57
53
|
readonly gap: string;
|
|
58
54
|
readonly right: {
|
|
@@ -76,17 +72,7 @@ export interface StatusLineLayout {
|
|
|
76
72
|
* and a deep worktree checkout should not be what costs the operator their
|
|
77
73
|
* only advertisement of Shift+Tab — then the effort label, then the cycle
|
|
78
74
|
* key reminder, then the model on the right is dropped entirely, then the
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
* Hypermode sits second-to-last, not bundled with effort, on purpose: it is
|
|
82
|
-
* a persistent, behavior-changing session setting (pins effort to the
|
|
83
|
-
* model's highest level and strengthens delegation guidance for every later
|
|
84
|
-
* turn) with no other on-screen indicator, so it earns the mode badge's own
|
|
85
|
-
* survival priority rather than the effort label's — dropping effort for
|
|
86
|
-
* room must never take hypermode down with it. It still never forces the
|
|
87
|
-
* badge itself to shrink to make room: if `hypermode` does not fit beside
|
|
88
|
-
* an already-fitted badge, the badge wins and it is hypermode that goes,
|
|
89
|
-
* whole, never truncated to a fragment of the word.
|
|
75
|
+
* badge itself truncates.
|
|
90
76
|
*/
|
|
91
77
|
export declare function fitStatusLine(input: {
|
|
92
78
|
readonly columns: number;
|
|
@@ -94,12 +80,6 @@ export declare function fitStatusLine(input: {
|
|
|
94
80
|
readonly provider: string | null;
|
|
95
81
|
readonly model: string | null;
|
|
96
82
|
readonly effort?: string | null;
|
|
97
|
-
/**
|
|
98
|
-
* Session hypermode. Rendered as its own segment beside `effort`
|
|
99
|
-
* (never fabricating an effort value when there is nothing pinned), and
|
|
100
|
-
* held to the mode badge's own drop priority — see `fitStatusLine`'s doc.
|
|
101
|
-
*/
|
|
102
|
-
readonly hypermode?: boolean;
|
|
103
83
|
readonly hint?: string | undefined;
|
|
104
84
|
readonly goal?: string | null | undefined;
|
|
105
85
|
readonly modeLabel: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../src/tui/StatusBar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAE,KAAK,cAAc,EAAuB,MAAM,wBAAwB,CAAA;AAGjF,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,+HAA+H;IAC/H,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,
|
|
1
|
+
{"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../src/tui/StatusBar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAE,KAAK,cAAc,EAAuB,MAAM,wBAAwB,CAAA;AAGjF,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,+HAA+H;IAC/H,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,sEAAsE;IACtE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,qBAAqB,CAAA;IACpE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,sHAAsH;IACtH,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAA;IACxC,2GAA2G;IAC3G,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED;;;;;GAKG;AACH,eAAO,MAAM,SAAS;;;CAAuC,CAAA;AAgB7D,wBAAgB,SAAS,CAAC,EACzB,GAAG,EACH,QAAQ,EACR,KAAK,EACL,MAAM,EACN,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,cAAc,EACd,YAAY,GACZ,EAAE,cAAc,2CAgDhB;AAsBD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAUlE;AAED,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,KAAK,EACX;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,GAC1E;QAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;CAC5D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC,GAAG,gBAAgB,CAiEnB"}
|
package/dist/tui/StatusBar.js
CHANGED
|
@@ -30,7 +30,7 @@ function modeGlyph(mode) {
|
|
|
30
30
|
}
|
|
31
31
|
const QUIET_MODE_HINT = 'shift+tab to cycle';
|
|
32
32
|
const CYCLE_SUFFIX = ' (shift+tab to cycle)';
|
|
33
|
-
export function StatusBar({ cwd, provider, model, effort,
|
|
33
|
+
export function StatusBar({ cwd, provider, model, effort, goal, state, hint, permissionMode, canCycleMode, }) {
|
|
34
34
|
const terminal = useWindowSize();
|
|
35
35
|
const activeMode = permissionMode !== undefined && permissionMode !== 'prompt' ? modeGlyph(permissionMode) : null;
|
|
36
36
|
const layout = fitStatusLine({
|
|
@@ -42,13 +42,12 @@ export function StatusBar({ cwd, provider, model, effort, hypermode, goal, state
|
|
|
42
42
|
model,
|
|
43
43
|
provider,
|
|
44
44
|
effort: effort ?? null,
|
|
45
|
-
hypermode: hypermode ?? false,
|
|
46
45
|
hint,
|
|
47
46
|
goal,
|
|
48
47
|
modeLabel: activeMode ? `${activeMode.icon} ${activeMode.label}` : QUIET_MODE_HINT,
|
|
49
48
|
cycleSuffix: activeMode && canCycleMode ? CYCLE_SUFFIX : null,
|
|
50
49
|
});
|
|
51
|
-
return (_jsxs(Text, { wrap: "truncate-end", children: [layout.mode ? (_jsx(Text, { color: activeMode ? activeMode.color : theme.text.muted, children: layout.mode })) : null, layout.cycleSuffix ? _jsx(Text, { color: theme.text.muted, children: layout.cycleSuffix }) : null, layout.effort ? (_jsxs(_Fragment, { children: [_jsx(Text, { color: theme.text.muted, children: " \u00B7 " }), _jsx(Text, { color: theme.text.secondary, children: layout.effort })] })) : null, layout.
|
|
50
|
+
return (_jsxs(Text, { wrap: "truncate-end", children: [layout.mode ? (_jsx(Text, { color: activeMode ? activeMode.color : theme.text.muted, children: layout.mode })) : null, layout.cycleSuffix ? _jsx(Text, { color: theme.text.muted, children: layout.cycleSuffix }) : null, layout.effort ? (_jsxs(_Fragment, { children: [_jsx(Text, { color: theme.text.muted, children: " \u00B7 " }), _jsx(Text, { color: theme.text.secondary, children: layout.effort })] })) : null, layout.cwd ? (_jsxs(_Fragment, { children: [_jsx(Text, { color: theme.text.muted, children: " \u00B7 " }), _jsx(Text, { color: theme.text.secondary, children: layout.cwd })] })) : null, _jsx(Text, { children: layout.gap }), layout.right.kind === 'text' ? (_jsx(Text, { color: layout.right.isGoal ? theme.accent.system : colorForState(state), children: layout.right.text })) : layout.right.model ? (_jsx(Text, { color: theme.text.primary, bold: true, children: layout.right.model })) : null] }));
|
|
52
51
|
}
|
|
53
52
|
function colorForState(state) {
|
|
54
53
|
switch (state) {
|
|
@@ -102,17 +101,7 @@ export function shortenPathToFit(path, max) {
|
|
|
102
101
|
* and a deep worktree checkout should not be what costs the operator their
|
|
103
102
|
* only advertisement of Shift+Tab — then the effort label, then the cycle
|
|
104
103
|
* key reminder, then the model on the right is dropped entirely, then the
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
* Hypermode sits second-to-last, not bundled with effort, on purpose: it is
|
|
108
|
-
* a persistent, behavior-changing session setting (pins effort to the
|
|
109
|
-
* model's highest level and strengthens delegation guidance for every later
|
|
110
|
-
* turn) with no other on-screen indicator, so it earns the mode badge's own
|
|
111
|
-
* survival priority rather than the effort label's — dropping effort for
|
|
112
|
-
* room must never take hypermode down with it. It still never forces the
|
|
113
|
-
* badge itself to shrink to make room: if `hypermode` does not fit beside
|
|
114
|
-
* an already-fitted badge, the badge wins and it is hypermode that goes,
|
|
115
|
-
* whole, never truncated to a fragment of the word.
|
|
104
|
+
* badge itself truncates.
|
|
116
105
|
*/
|
|
117
106
|
export function fitStatusLine(input) {
|
|
118
107
|
const columns = Math.max(0, input.columns);
|
|
@@ -133,15 +122,10 @@ export function fitStatusLine(input) {
|
|
|
133
122
|
let mode = input.modeLabel;
|
|
134
123
|
let cycleSuffix = input.cycleSuffix ?? null;
|
|
135
124
|
let effort = input.effort ? `effort ${input.effort}` : null;
|
|
136
|
-
// Its own segment, not a suffix riding on `effort`: an operator reading
|
|
137
|
-
// "effort hypermode" would take it for a fabricated level, and bundling
|
|
138
|
-
// it with effort would drop the two together the instant effort does —
|
|
139
|
-
// exactly the width-pressure case hypermode has to survive.
|
|
140
|
-
let hypermode = input.hypermode ? 'hypermode' : null;
|
|
141
125
|
let cwd = input.cwd.length > 0 ? input.cwd : null;
|
|
142
126
|
const left = () => {
|
|
143
127
|
const withMode = `${mode ?? ''}${cycleSuffix ?? ''}`;
|
|
144
|
-
return [withMode, effort,
|
|
128
|
+
return [withMode, effort, cwd]
|
|
145
129
|
.filter((value) => Boolean(value))
|
|
146
130
|
.join(' · ');
|
|
147
131
|
};
|
|
@@ -163,11 +147,6 @@ export function fitStatusLine(input) {
|
|
|
163
147
|
gapWidth = 0;
|
|
164
148
|
leftBudget = columns;
|
|
165
149
|
}
|
|
166
|
-
// Hypermode outranks nothing dropped above it (cwd, effort, the cycle
|
|
167
|
-
// reminder, the model) but does outrank the badge itself: it goes whole,
|
|
168
|
-
// never truncated, before the badge loses a single character.
|
|
169
|
-
if (left().length > leftBudget)
|
|
170
|
-
hypermode = null;
|
|
171
150
|
if (left().length > leftBudget && mode) {
|
|
172
151
|
mode = shortenRightToFit(mode, leftBudget);
|
|
173
152
|
}
|
|
@@ -181,7 +160,6 @@ export function fitStatusLine(input) {
|
|
|
181
160
|
mode,
|
|
182
161
|
cycleSuffix: mode ? cycleSuffix : null,
|
|
183
162
|
effort: mode ? effort : null,
|
|
184
|
-
hypermode: mode ? hypermode : null,
|
|
185
163
|
cwd,
|
|
186
164
|
gap,
|
|
187
165
|
right: rightText !== null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../src/tui/StatusBar.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AAEzC,OAAO,EAAuB,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AACjF,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../src/tui/StatusBar.tsx"],"names":[],"mappings":"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"}
|
package/dist/tui/theme.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export interface SemanticColors {
|
|
|
21
21
|
readonly tool: string;
|
|
22
22
|
/**
|
|
23
23
|
* The hypermode session mode's own colour (violet), used wherever the
|
|
24
|
-
* mode is named: the effort slider's last stop and the
|
|
24
|
+
* mode is named: the effort slider's last stop and the composer tag.
|
|
25
25
|
* Never a status colour.
|
|
26
26
|
*/
|
|
27
27
|
readonly hypermode: string;
|
|
@@ -43,10 +43,4 @@ export interface SemanticColors {
|
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
45
|
export declare const theme: SemanticColors;
|
|
46
|
-
/**
|
|
47
|
-
* The resting colour run across the message box's top rule while hypermode
|
|
48
|
-
* is on. A brief activation sweep can pass over it; afterwards these colours
|
|
49
|
-
* stay still. A renderer without colour draws the plain rule instead.
|
|
50
|
-
*/
|
|
51
|
-
export declare const HYPERMODE_RULE_COLORS: readonly string[];
|
|
52
46
|
//# sourceMappingURL=theme.d.ts.map
|
package/dist/tui/theme.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/tui/theme.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,cAAc;IAC9B,qDAAqD;IACrD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE;QACd,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;QAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,QAAQ,CAAC,MAAM,EAAE;QAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;QAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB;;;;WAIG;QACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;QAC1B;;;;WAIG;QACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KACxB,CAAA;IACD,QAAQ,CAAC,MAAM,EAAE;QAChB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,QAAQ,CAAC,MAAM,EAAE;QAChB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KACtB,CAAA;CACD;AAED,eAAO,MAAM,KAAK,EAAE,cAwBnB,CAAA
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/tui/theme.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,cAAc;IAC9B,qDAAqD;IACrD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE;QACd,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;QAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,QAAQ,CAAC,MAAM,EAAE;QAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;QAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB;;;;WAIG;QACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;QAC1B;;;;WAIG;QACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KACxB,CAAA;IACD,QAAQ,CAAC,MAAM,EAAE;QAChB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,QAAQ,CAAC,MAAM,EAAE;QAChB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KACtB,CAAA;CACD;AAED,eAAO,MAAM,KAAK,EAAE,cAwBnB,CAAA"}
|
package/dist/tui/theme.js
CHANGED
|
@@ -31,18 +31,4 @@ export const theme = {
|
|
|
31
31
|
focus: 'ansi256(83)',
|
|
32
32
|
},
|
|
33
33
|
};
|
|
34
|
-
/**
|
|
35
|
-
* The resting colour run across the message box's top rule while hypermode
|
|
36
|
-
* is on. A brief activation sweep can pass over it; afterwards these colours
|
|
37
|
-
* stay still. A renderer without colour draws the plain rule instead.
|
|
38
|
-
*/
|
|
39
|
-
export const HYPERMODE_RULE_COLORS = [
|
|
40
|
-
'ansi256(110)',
|
|
41
|
-
'ansi256(140)',
|
|
42
|
-
'ansi256(175)',
|
|
43
|
-
'ansi256(203)',
|
|
44
|
-
'ansi256(209)',
|
|
45
|
-
'ansi256(221)',
|
|
46
|
-
'ansi256(114)',
|
|
47
|
-
];
|
|
48
34
|
//# sourceMappingURL=theme.js.map
|
package/dist/tui/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/tui/theme.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAuCH,MAAM,CAAC,MAAM,KAAK,GAAmB;IACpC,UAAU,EAAE,SAAS;IACrB,IAAI,EAAE;QACL,OAAO,EAAE,cAAc;QACvB,SAAS,EAAE,cAAc;QACzB,KAAK,EAAE,cAAc;KACrB;IACD,MAAM,EAAE;QACP,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,aAAa;QACxB,MAAM,EAAE,cAAc;QACtB,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE,cAAc;QACzB,OAAO,EAAE,cAAc;KACvB;IACD,MAAM,EAAE;QACP,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,cAAc;KACrB;IACD,MAAM,EAAE;QACP,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,aAAa;KACpB;CACD,CAAA
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/tui/theme.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAuCH,MAAM,CAAC,MAAM,KAAK,GAAmB;IACpC,UAAU,EAAE,SAAS;IACrB,IAAI,EAAE;QACL,OAAO,EAAE,cAAc;QACvB,SAAS,EAAE,cAAc;QACzB,KAAK,EAAE,cAAc;KACrB;IACD,MAAM,EAAE;QACP,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,aAAa;QACxB,MAAM,EAAE,cAAc;QACtB,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE,cAAc;QACzB,OAAO,EAAE,cAAc;KACvB;IACD,MAAM,EAAE;QACP,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,cAAc;KACrB;IACD,MAAM,EAAE;QACP,OAAO,EAAE,cAAc;QACvB,KAAK,EAAE,aAAa;KACpB;CACD,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@namzu/cli",
|
|
3
|
-
"version": "33.2.
|
|
3
|
+
"version": "33.2.1",
|
|
4
4
|
"description": "Interactive and headless terminal agent for Namzu, with provider discovery, durable sessions, tools and diagnostics.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"namzu",
|
|
@@ -50,8 +50,8 @@
|
|
|
50
50
|
"yaml": "^2.9.0",
|
|
51
51
|
"@namzu/anthropic": "6.2.2",
|
|
52
52
|
"@namzu/browser": "2.0.0",
|
|
53
|
-
"@namzu/computer-use": "3.1.0",
|
|
54
53
|
"@namzu/deepseek": "^2.0.2",
|
|
54
|
+
"@namzu/computer-use": "3.1.0",
|
|
55
55
|
"@namzu/files": "1.1.2",
|
|
56
56
|
"@namzu/ollama": "2.2.5",
|
|
57
57
|
"@namzu/openai": "4.1.3",
|