zerg-ztc 0.1.3 → 0.1.5
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/dist/App.d.ts.map +1 -1
- package/dist/App.js +183 -19
- package/dist/App.js.map +1 -1
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +3 -1
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/commands/config.d.ts.map +1 -1
- package/dist/agent/commands/config.js +68 -2
- package/dist/agent/commands/config.js.map +1 -1
- package/dist/agent/commands/index.d.ts.map +1 -1
- package/dist/agent/commands/index.js +4 -1
- package/dist/agent/commands/index.js.map +1 -1
- package/dist/agent/commands/input_mode.d.ts +3 -0
- package/dist/agent/commands/input_mode.d.ts.map +1 -0
- package/dist/agent/commands/input_mode.js +21 -0
- package/dist/agent/commands/input_mode.js.map +1 -0
- package/dist/agent/commands/keybindings.d.ts +3 -0
- package/dist/agent/commands/keybindings.d.ts.map +1 -0
- package/dist/agent/commands/keybindings.js +38 -0
- package/dist/agent/commands/keybindings.js.map +1 -0
- package/dist/agent/commands/types.d.ts +2 -0
- package/dist/agent/commands/types.d.ts.map +1 -1
- package/dist/agent/commands/update.d.ts +3 -0
- package/dist/agent/commands/update.d.ts.map +1 -0
- package/dist/agent/commands/update.js +33 -0
- package/dist/agent/commands/update.js.map +1 -0
- package/dist/cli.js +68 -16
- package/dist/cli.js.map +1 -1
- package/dist/components/ActivityLine.d.ts +11 -0
- package/dist/components/ActivityLine.d.ts.map +1 -0
- package/dist/components/ActivityLine.js +9 -0
- package/dist/components/ActivityLine.js.map +1 -0
- package/dist/components/FullScreen.d.ts +1 -0
- package/dist/components/FullScreen.d.ts.map +1 -1
- package/dist/components/FullScreen.js +30 -30
- package/dist/components/FullScreen.js.map +1 -1
- package/dist/components/InputArea.d.ts.map +1 -1
- package/dist/components/InputArea.js +476 -19
- package/dist/components/InputArea.js.map +1 -1
- package/dist/components/MessageList.d.ts +2 -1
- package/dist/components/MessageList.d.ts.map +1 -1
- package/dist/components/MessageList.js +41 -2
- package/dist/components/MessageList.js.map +1 -1
- package/dist/components/SingleMessage.d.ts +9 -0
- package/dist/components/SingleMessage.d.ts.map +1 -0
- package/dist/components/SingleMessage.js +27 -0
- package/dist/components/SingleMessage.js.map +1 -0
- package/dist/components/StatusBar.d.ts +2 -0
- package/dist/components/StatusBar.d.ts.map +1 -1
- package/dist/components/StatusBar.js +3 -1
- package/dist/components/StatusBar.js.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -1
- package/dist/config/types.d.ts +1 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +8 -0
- package/dist/config.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/core/input_segments.d.ts +1 -0
- package/dist/ui/core/input_segments.d.ts.map +1 -1
- package/dist/ui/core/input_segments.js +46 -14
- package/dist/ui/core/input_segments.js.map +1 -1
- package/dist/ui/core/types.d.ts +1 -0
- package/dist/ui/core/types.d.ts.map +1 -1
- package/dist/ui/ink/render.d.ts +3 -1
- package/dist/ui/ink/render.d.ts.map +1 -1
- package/dist/ui/ink/render.js +7 -5
- package/dist/ui/ink/render.js.map +1 -1
- package/dist/ui/views/activity_line.d.ts +11 -0
- package/dist/ui/views/activity_line.d.ts.map +1 -0
- package/dist/ui/views/activity_line.js +20 -0
- package/dist/ui/views/activity_line.js.map +1 -0
- package/dist/ui/views/app.d.ts +5 -1
- package/dist/ui/views/app.d.ts.map +1 -1
- package/dist/ui/views/app.js +18 -14
- package/dist/ui/views/app.js.map +1 -1
- package/dist/ui/views/header.d.ts.map +1 -1
- package/dist/ui/views/header.js +7 -5
- package/dist/ui/views/header.js.map +1 -1
- package/dist/ui/views/input_area.d.ts.map +1 -1
- package/dist/ui/views/input_area.js +25 -12
- package/dist/ui/views/input_area.js.map +1 -1
- package/dist/ui/views/message_list.d.ts +3 -2
- package/dist/ui/views/message_list.d.ts.map +1 -1
- package/dist/ui/views/message_list.js +33 -19
- package/dist/ui/views/message_list.js.map +1 -1
- package/dist/ui/views/status_bar.d.ts +3 -1
- package/dist/ui/views/status_bar.d.ts.map +1 -1
- package/dist/ui/views/status_bar.js +8 -2
- package/dist/ui/views/status_bar.js.map +1 -1
- package/dist/utils/spinner_frames.d.ts +2 -0
- package/dist/utils/spinner_frames.d.ts.map +1 -0
- package/dist/utils/spinner_frames.js +2 -0
- package/dist/utils/spinner_frames.js.map +1 -0
- package/dist/utils/spinner_verbs.d.ts +4 -0
- package/dist/utils/spinner_verbs.d.ts.map +1 -0
- package/dist/utils/spinner_verbs.js +22 -0
- package/dist/utils/spinner_verbs.js.map +1 -0
- package/dist/utils/tool_trace.d.ts.map +1 -1
- package/dist/utils/tool_trace.js +12 -2
- package/dist/utils/tool_trace.js.map +1 -1
- package/dist/utils/update.d.ts +9 -0
- package/dist/utils/update.d.ts.map +1 -0
- package/dist/utils/update.js +37 -0
- package/dist/utils/update.js.map +1 -0
- package/dist/utils/version.d.ts +2 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +16 -0
- package/dist/utils/version.js.map +1 -0
- package/package.json +1 -1
- package/src/App.tsx +226 -32
- package/src/agent/agent.ts +3 -1
- package/src/agent/commands/config.ts +76 -2
- package/src/agent/commands/index.ts +6 -0
- package/src/agent/commands/input_mode.ts +22 -0
- package/src/agent/commands/keybindings.ts +40 -0
- package/src/agent/commands/types.ts +2 -0
- package/src/agent/commands/update.ts +32 -0
- package/src/cli.tsx +77 -15
- package/src/components/ActivityLine.tsx +23 -0
- package/src/components/FullScreen.tsx +41 -35
- package/src/components/InputArea.tsx +489 -19
- package/src/components/MessageList.tsx +52 -6
- package/src/components/SingleMessage.tsx +59 -0
- package/src/components/StatusBar.tsx +6 -0
- package/src/components/index.tsx +3 -1
- package/src/config/types.ts +1 -0
- package/src/config.ts +8 -0
- package/src/types.ts +1 -0
- package/src/ui/core/input_segments.ts +49 -14
- package/src/ui/core/types.ts +1 -0
- package/src/ui/ink/render.tsx +16 -5
- package/src/ui/views/activity_line.ts +33 -0
- package/src/ui/views/app.ts +25 -13
- package/src/ui/views/header.ts +7 -5
- package/src/ui/views/input_area.ts +28 -17
- package/src/ui/views/message_list.ts +36 -20
- package/src/ui/views/status_bar.ts +11 -1
- package/src/utils/spinner_frames.ts +1 -0
- package/src/utils/spinner_verbs.ts +23 -0
- package/src/utils/tool_trace.ts +12 -2
- package/src/utils/update.ts +44 -0
- package/src/utils/version.ts +15 -0
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { DEFAULT_SPINNER_VERBS, formatSpinnerVerbs, parseSpinnerVerbs } from '../../utils/spinner_verbs.js';
|
|
1
2
|
export const configCommand = {
|
|
2
3
|
name: 'config',
|
|
3
4
|
description: 'Manage configuration',
|
|
4
|
-
usage: '<show|key|provider|endpoint|model> [value]',
|
|
5
|
+
usage: '<show|key|provider|endpoint|model|spinner> [value]',
|
|
5
6
|
handler: async (args, ctx) => {
|
|
6
7
|
const [subCmd, ...rest] = args;
|
|
7
8
|
const value = rest.join(' ');
|
|
@@ -21,6 +22,7 @@ export const configCommand = {
|
|
|
21
22
|
` Max Tokens: ${config.maxTokens}`,
|
|
22
23
|
` Zerg Endpoint: ${config.zergEndpoint || '(not set)'}`,
|
|
23
24
|
` Emulation: ${ctx.config.getEmulationId() || '(none)'}`,
|
|
25
|
+
` Spinner verbs: ${formatSpinnerVerbs(config.spinnerVerbs || DEFAULT_SPINNER_VERBS)}`,
|
|
24
26
|
'',
|
|
25
27
|
`Config storage: ${ctx.config.locationLabel || '~/.ztc/config.json'}`
|
|
26
28
|
].join('\n')
|
|
@@ -109,10 +111,74 @@ export const configCommand = {
|
|
|
109
111
|
content: `✓ Model updated: ${value}`
|
|
110
112
|
});
|
|
111
113
|
break;
|
|
114
|
+
case 'spinner': {
|
|
115
|
+
const [action, ...restParts] = rest;
|
|
116
|
+
const actionValue = restParts.join(' ');
|
|
117
|
+
const current = ctx.config.get().spinnerVerbs || DEFAULT_SPINNER_VERBS;
|
|
118
|
+
if (!action || action === 'show') {
|
|
119
|
+
ctx.addMessage({
|
|
120
|
+
role: 'system',
|
|
121
|
+
content: `Spinner verbs:\n ${formatSpinnerVerbs(current)}\n\nUsage:\n /config spinner show\n /config spinner set <verb1, verb2, ...>\n /config spinner add <verb>\n /config spinner remove <verb>\n /config spinner reset\n /config spinner off`
|
|
122
|
+
});
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
if (action === 'reset') {
|
|
126
|
+
ctx.config.set('spinnerVerbs', DEFAULT_SPINNER_VERBS);
|
|
127
|
+
ctx.config.save();
|
|
128
|
+
ctx.addMessage({ role: 'system', content: '✓ Spinner verbs reset to defaults.' });
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
if (action === 'off') {
|
|
132
|
+
ctx.config.set('spinnerVerbs', []);
|
|
133
|
+
ctx.config.save();
|
|
134
|
+
ctx.addMessage({ role: 'system', content: '✓ Spinner verbs disabled.' });
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
if (action === 'set') {
|
|
138
|
+
const verbs = parseSpinnerVerbs(actionValue);
|
|
139
|
+
if (verbs.length === 0) {
|
|
140
|
+
ctx.addMessage({ role: 'system', content: 'Usage: /config spinner set <verb1, verb2, ...>' });
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
ctx.config.set('spinnerVerbs', verbs);
|
|
144
|
+
ctx.config.save();
|
|
145
|
+
ctx.addMessage({ role: 'system', content: `✓ Spinner verbs updated: ${formatSpinnerVerbs(verbs)}` });
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
if (action === 'add') {
|
|
149
|
+
const verbs = parseSpinnerVerbs(actionValue);
|
|
150
|
+
if (verbs.length === 0) {
|
|
151
|
+
ctx.addMessage({ role: 'system', content: 'Usage: /config spinner add <verb>' });
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
const next = [...current, ...verbs];
|
|
155
|
+
ctx.config.set('spinnerVerbs', next);
|
|
156
|
+
ctx.config.save();
|
|
157
|
+
ctx.addMessage({ role: 'system', content: `✓ Added spinner verbs: ${formatSpinnerVerbs(verbs)}` });
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
if (action === 'remove') {
|
|
161
|
+
const verbs = parseSpinnerVerbs(actionValue).map(v => v.toLowerCase());
|
|
162
|
+
if (verbs.length === 0) {
|
|
163
|
+
ctx.addMessage({ role: 'system', content: 'Usage: /config spinner remove <verb>' });
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const next = current.filter(v => !verbs.includes(v.toLowerCase()));
|
|
167
|
+
ctx.config.set('spinnerVerbs', next);
|
|
168
|
+
ctx.config.save();
|
|
169
|
+
ctx.addMessage({ role: 'system', content: `✓ Removed spinner verbs: ${formatSpinnerVerbs(verbs)}` });
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
ctx.addMessage({
|
|
173
|
+
role: 'system',
|
|
174
|
+
content: 'Usage: /config spinner <show|set|add|remove|reset|off> [value]'
|
|
175
|
+
});
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
112
178
|
default:
|
|
113
179
|
ctx.addMessage({
|
|
114
180
|
role: 'system',
|
|
115
|
-
content: 'Usage: /config <show|key|provider|endpoint|model> [value]\n\nExamples:\n /config show Show current config\n /config key sk-ant-... Set API key (current provider)\n /config key openai sk-... Set API key for provider\n /config provider openai Set provider\n /config endpoint https://api.example.com/v1 Set OpenAI-compatible base URL\n /config model claude-opus-4-20250514 Set model'
|
|
181
|
+
content: 'Usage: /config <show|key|provider|endpoint|model|spinner> [value]\n\nExamples:\n /config show Show current config\n /config key sk-ant-... Set API key (current provider)\n /config key openai sk-... Set API key for provider\n /config provider openai Set provider\n /config endpoint https://api.example.com/v1 Set OpenAI-compatible base URL\n /config model claude-opus-4-20250514 Set model\n /config spinner set Reticulating splines, Organizing thoughts'
|
|
116
182
|
});
|
|
117
183
|
}
|
|
118
184
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/agent/commands/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/agent/commands/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/commands/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/commands/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AA2BrC,eAAO,MAAM,QAAQ,WAAc,CAAC;AACpC,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -12,8 +12,11 @@ import { modelCommand } from './model.js';
|
|
|
12
12
|
import { permissionsCommand } from './permissions.js';
|
|
13
13
|
import { skillsCommand } from './skills.js';
|
|
14
14
|
import { retryCommand } from './retry.js';
|
|
15
|
+
import { inputModeCommand } from './input_mode.js';
|
|
16
|
+
import { keybindingsCommand } from './keybindings.js';
|
|
17
|
+
import { updateCommand } from './update.js';
|
|
15
18
|
const commandList = [];
|
|
16
19
|
const helpCommand = makeHelpCommand(() => commandList);
|
|
17
|
-
commandList.push(helpCommand, configCommand, debugCommand, clearCommand, statusCommand, emulationCommand, shellCommand, cdCommand, clipboardCommand, modelsCommand, modelCommand, permissionsCommand, skillsCommand, retryCommand, exitCommand);
|
|
20
|
+
commandList.push(helpCommand, configCommand, debugCommand, clearCommand, statusCommand, emulationCommand, shellCommand, cdCommand, clipboardCommand, modelsCommand, modelCommand, permissionsCommand, skillsCommand, keybindingsCommand, updateCommand, inputModeCommand, retryCommand, exitCommand);
|
|
18
21
|
export const commands = commandList;
|
|
19
22
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agent/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agent/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,WAAW,GAAc,EAAE,CAAC;AAElC,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;AAEvD,WAAW,CAAC,IAAI,CACd,WAAW,EACX,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,WAAW,CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input_mode.d.ts","sourceRoot":"","sources":["../../../src/agent/commands/input_mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,eAAO,MAAM,gBAAgB,EAAE,OAmB9B,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export const inputModeCommand = {
|
|
2
|
+
name: 'inputmode',
|
|
3
|
+
description: 'Set input mode while an agent is running',
|
|
4
|
+
usage: '<queue|interrupt>',
|
|
5
|
+
handler: (args, ctx) => {
|
|
6
|
+
const mode = (args[0] || '').toLowerCase();
|
|
7
|
+
if (mode !== 'queue' && mode !== 'interrupt') {
|
|
8
|
+
ctx.addMessage({
|
|
9
|
+
role: 'system',
|
|
10
|
+
content: `Current input mode: ${ctx.getInputMode()}\n\nUsage: /inputmode <queue|interrupt>`
|
|
11
|
+
});
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
ctx.setInputMode(mode);
|
|
15
|
+
ctx.addMessage({
|
|
16
|
+
role: 'system',
|
|
17
|
+
content: `✓ Input mode set: ${mode}`
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=input_mode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input_mode.js","sourceRoot":"","sources":["../../../src/agent/commands/input_mode.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAY;IACvC,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,0CAA0C;IACvD,KAAK,EAAE,mBAAmB;IAC1B,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACrB,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YAC7C,GAAG,CAAC,UAAU,CAAC;gBACb,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,uBAAuB,GAAG,CAAC,YAAY,EAAE,yCAAyC;aAC5F,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACvB,GAAG,CAAC,UAAU,CAAC;YACb,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,qBAAqB,IAAI,EAAE;SACrC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keybindings.d.ts","sourceRoot":"","sources":["../../../src/agent/commands/keybindings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAiCrC,eAAO,MAAM,kBAAkB,EAAE,OAMhC,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const lines = [
|
|
2
|
+
'Keybindings (readline-style):',
|
|
3
|
+
'',
|
|
4
|
+
'Movement:',
|
|
5
|
+
' Ctrl+A start of line',
|
|
6
|
+
' Ctrl+E end of line',
|
|
7
|
+
' Ctrl+B move left',
|
|
8
|
+
' Ctrl+F move right',
|
|
9
|
+
' Alt+B word left',
|
|
10
|
+
' Alt+F word right',
|
|
11
|
+
'',
|
|
12
|
+
'Editing:',
|
|
13
|
+
' Ctrl+U kill to start',
|
|
14
|
+
' Ctrl+K kill to end',
|
|
15
|
+
' Ctrl+W kill previous word',
|
|
16
|
+
' Alt+D kill next word',
|
|
17
|
+
' Ctrl+D delete forward',
|
|
18
|
+
' Ctrl+Y yank',
|
|
19
|
+
' Alt+Y yank-pop',
|
|
20
|
+
' Ctrl+T transpose chars',
|
|
21
|
+
' Alt+T transpose words',
|
|
22
|
+
'',
|
|
23
|
+
'History:',
|
|
24
|
+
' Ctrl+P previous',
|
|
25
|
+
' Ctrl+N next',
|
|
26
|
+
' Up/Down arrows also work',
|
|
27
|
+
'',
|
|
28
|
+
'Input mode:',
|
|
29
|
+
' /inputmode queue|interrupt'
|
|
30
|
+
];
|
|
31
|
+
export const keybindingsCommand = {
|
|
32
|
+
name: 'keybindings',
|
|
33
|
+
description: 'Show keybindings',
|
|
34
|
+
handler: (_args, ctx) => {
|
|
35
|
+
ctx.addMessage({ role: 'system', content: lines.join('\n') });
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=keybindings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keybindings.js","sourceRoot":"","sources":["../../../src/agent/commands/keybindings.ts"],"names":[],"mappings":"AAEA,MAAM,KAAK,GAAG;IACZ,+BAA+B;IAC/B,EAAE;IACF,WAAW;IACX,yBAAyB;IACzB,uBAAuB;IACvB,qBAAqB;IACrB,sBAAsB;IACtB,qBAAqB;IACrB,sBAAsB;IACtB,EAAE;IACF,UAAU;IACV,yBAAyB;IACzB,uBAAuB;IACvB,8BAA8B;IAC9B,0BAA0B;IAC1B,0BAA0B;IAC1B,gBAAgB;IAChB,oBAAoB;IACpB,2BAA2B;IAC3B,2BAA2B;IAC3B,EAAE;IACF,UAAU;IACV,oBAAoB;IACpB,gBAAgB;IAChB,4BAA4B;IAC5B,EAAE;IACF,aAAa;IACb,8BAA8B;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAY;IACzC,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,kBAAkB;IAC/B,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,GAAG,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;CACF,CAAC"}
|
|
@@ -60,6 +60,8 @@ export interface CommandContext {
|
|
|
60
60
|
clipboard: ClipboardController;
|
|
61
61
|
models: ModelsController;
|
|
62
62
|
skills: SkillsController;
|
|
63
|
+
getInputMode: () => 'queue' | 'interrupt';
|
|
64
|
+
setInputMode: (mode: 'queue' | 'interrupt') => void;
|
|
63
65
|
}
|
|
64
66
|
export interface Command {
|
|
65
67
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agent/commands/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agent/commands/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/agent/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAIrC,eAAO,MAAM,aAAa,EAAE,OA2B3B,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { getVersion } from '../../utils/version.js';
|
|
2
|
+
import { checkForUpdate } from '../../utils/update.js';
|
|
3
|
+
export const updateCommand = {
|
|
4
|
+
name: 'update',
|
|
5
|
+
description: 'Check for updates and install the latest version',
|
|
6
|
+
handler: async (_args, ctx) => {
|
|
7
|
+
try {
|
|
8
|
+
ctx.addMessage({ role: 'system', content: 'Checking for updates...' });
|
|
9
|
+
const current = getVersion();
|
|
10
|
+
const info = await checkForUpdate(current);
|
|
11
|
+
if (!info.hasUpdate) {
|
|
12
|
+
ctx.addMessage({ role: 'system', content: `ZTC is up to date (v${current}).` });
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
ctx.addMessage({ role: 'system', content: `Updating to v${info.latest}...` });
|
|
16
|
+
const result = await ctx.shell.run('npm install -g zerg-ztc@latest');
|
|
17
|
+
if (result.exitCode === 0) {
|
|
18
|
+
ctx.addMessage({ role: 'system', content: `✓ Updated to v${info.latest}. Restart ZTC to use the new version.` });
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
ctx.addMessage({
|
|
22
|
+
role: 'system',
|
|
23
|
+
content: `Update failed (exit ${result.exitCode}).\n${result.stderr || result.stdout || ''}`.trim()
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
const message = err instanceof Error ? err.message : 'Update failed';
|
|
29
|
+
ctx.addMessage({ role: 'system', content: `Update failed: ${message}` });
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/agent/commands/update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,CAAC,MAAM,aAAa,GAAY;IACpC,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,kDAAkD;IAC/D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC5B,IAAI,CAAC;YACH,GAAG,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,GAAG,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,uBAAuB,OAAO,IAAI,EAAE,CAAC,CAAC;gBAChF,OAAO;YACT,CAAC;YACD,GAAG,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,IAAI,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC;YAC9E,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;YACrE,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC1B,GAAG,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,IAAI,CAAC,MAAM,uCAAuC,EAAE,CAAC,CAAC;YACnH,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,UAAU,CAAC;oBACb,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,uBAAuB,MAAM,CAAC,QAAQ,OAAO,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;iBACpG,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACrE,GAAG,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,OAAO,EAAE,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;CACF,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import { render } from 'ink';
|
|
4
|
-
import { resolve
|
|
5
|
-
import { statSync
|
|
6
|
-
import { fileURLToPath } from 'url';
|
|
4
|
+
import { resolve } from 'path';
|
|
5
|
+
import { statSync } from 'fs';
|
|
7
6
|
import { App } from './App.js';
|
|
8
7
|
import { configStore } from './config.js';
|
|
8
|
+
import { getVersion } from './utils/version.js';
|
|
9
9
|
// --- CLI Entry Point ---
|
|
10
10
|
// Parse command line args
|
|
11
11
|
const args = process.argv.slice(2);
|
|
@@ -69,26 +69,78 @@ if (cwdIndex >= 0) {
|
|
|
69
69
|
}
|
|
70
70
|
async function main() {
|
|
71
71
|
await configStore.load(true);
|
|
72
|
+
const isTty = Boolean(process.stdout.isTTY);
|
|
73
|
+
const useAltScreen = isTty
|
|
74
|
+
&& process.env.ZTC_ALT_SCREEN === '1'
|
|
75
|
+
&& process.env.ZTC_NO_ALT_SCREEN !== '1'
|
|
76
|
+
&& process.env.ZTC_SCROLLBACK !== '1';
|
|
77
|
+
if (useAltScreen) {
|
|
78
|
+
process.stdout.write('\x1b[?1049h');
|
|
79
|
+
process.stdout.write('\x1b[?25l');
|
|
80
|
+
}
|
|
81
|
+
if (isTty) {
|
|
82
|
+
// Clear screen and move cursor home for a clean start
|
|
83
|
+
process.stdout.write('\x1b[2J');
|
|
84
|
+
process.stdout.write('\x1b[H');
|
|
85
|
+
}
|
|
86
|
+
// In scrollback mode, print a static header once at startup
|
|
87
|
+
const scrollback = !useAltScreen;
|
|
88
|
+
if (scrollback && isTty) {
|
|
89
|
+
const version = getVersion();
|
|
90
|
+
const dateLabel = new Date().toLocaleDateString('en-US', {
|
|
91
|
+
month: 'short',
|
|
92
|
+
day: '2-digit',
|
|
93
|
+
year: 'numeric'
|
|
94
|
+
});
|
|
95
|
+
const cols = process.stdout.columns || 80;
|
|
96
|
+
const title = 'Zerg Terminal Client';
|
|
97
|
+
const right = `${dateLabel} • v${version} • Ctrl+C exit • /help`;
|
|
98
|
+
const padding = Math.max(0, cols - title.length - right.length - 4);
|
|
99
|
+
const borderLine = '─'.repeat(cols - 2);
|
|
100
|
+
console.log(`┌${borderLine}┐`);
|
|
101
|
+
console.log(`│ ${title}${' '.repeat(padding)}${right} │`);
|
|
102
|
+
console.log(`└${borderLine}┘`);
|
|
103
|
+
console.log(''); // Extra line after header
|
|
104
|
+
}
|
|
105
|
+
// Enable bracketed paste mode so we can detect paste boundaries
|
|
106
|
+
process.stdout.write('\x1b[?2004h');
|
|
107
|
+
// Enable Kitty keyboard protocol (progressive enhancement)
|
|
108
|
+
// This allows detection of Cmd+V and other modifier combinations
|
|
109
|
+
// Flags: 1 = disambiguate escape codes, 2 = report event types, 4 = report alternate keys, 8 = report all keys
|
|
110
|
+
// Using flags=1 for basic disambiguation which reports Cmd+V as CSI sequence
|
|
111
|
+
process.stdout.write('\x1b[>1u');
|
|
112
|
+
if (useAltScreen) {
|
|
113
|
+
// Wrap stdout.write to use synchronized output (reduces flicker)
|
|
114
|
+
// DECSM/DECRM 2026 tells terminal to batch updates
|
|
115
|
+
const originalWrite = process.stdout.write.bind(process.stdout);
|
|
116
|
+
let syncPending = false;
|
|
117
|
+
process.stdout.write = function (chunk, encoding, callback) {
|
|
118
|
+
if (!syncPending) {
|
|
119
|
+
syncPending = true;
|
|
120
|
+
originalWrite('\x1b[?2026h'); // Begin synchronized update
|
|
121
|
+
setImmediate(() => {
|
|
122
|
+
originalWrite('\x1b[?2026l'); // End synchronized update
|
|
123
|
+
syncPending = false;
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
return originalWrite(chunk, encoding, callback);
|
|
127
|
+
};
|
|
128
|
+
}
|
|
72
129
|
// Render the app
|
|
73
|
-
// Note: FullScreen component handles alternate screen buffer
|
|
74
130
|
const { waitUntilExit } = render(_jsx(App, {}));
|
|
75
131
|
// Handle clean exit
|
|
76
132
|
waitUntilExit().then(() => {
|
|
133
|
+
// Disable Kitty keyboard protocol
|
|
134
|
+
process.stdout.write('\x1b[<u');
|
|
135
|
+
// Disable bracketed paste mode
|
|
136
|
+
process.stdout.write('\x1b[?2004l');
|
|
137
|
+
if (useAltScreen) {
|
|
138
|
+
process.stdout.write('\x1b[?25h');
|
|
139
|
+
process.stdout.write('\x1b[?1049l');
|
|
140
|
+
}
|
|
77
141
|
console.log('Goodbye from ZTC! 👋');
|
|
78
142
|
process.exit(0);
|
|
79
143
|
});
|
|
80
144
|
}
|
|
81
145
|
void main();
|
|
82
|
-
function getVersion() {
|
|
83
|
-
try {
|
|
84
|
-
const here = dirname(fileURLToPath(import.meta.url));
|
|
85
|
-
const pkgPath = resolve(here, '../package.json');
|
|
86
|
-
const raw = readFileSync(pkgPath, 'utf-8');
|
|
87
|
-
const parsed = JSON.parse(raw);
|
|
88
|
-
return parsed.version || '0.0.0';
|
|
89
|
-
}
|
|
90
|
-
catch {
|
|
91
|
-
return '0.0.0';
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
146
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":";;AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { AgentState } from '../types.js';
|
|
3
|
+
interface ActivityLineProps {
|
|
4
|
+
state: AgentState;
|
|
5
|
+
spinnerLabel?: string | null;
|
|
6
|
+
spinnerFrame?: string | null;
|
|
7
|
+
inputMode?: 'queue' | 'interrupt';
|
|
8
|
+
}
|
|
9
|
+
export declare const ActivityLine: React.FC<ActivityLineProps>;
|
|
10
|
+
export default ActivityLine;
|
|
11
|
+
//# sourceMappingURL=ActivityLine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActivityLine.d.ts","sourceRoot":"","sources":["../../src/components/ActivityLine.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,UAAU,iBAAiB;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;CACnC;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAQpD,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { InkNode } from '../ui/ink/index.js';
|
|
3
|
+
import { buildActivityLineView } from '../ui/views/activity_line.js';
|
|
4
|
+
export const ActivityLine = ({ state, spinnerLabel, spinnerFrame, inputMode }) => {
|
|
5
|
+
const node = buildActivityLineView({ state, spinnerLabel, spinnerFrame, inputMode });
|
|
6
|
+
return _jsx(InkNode, { node: node });
|
|
7
|
+
};
|
|
8
|
+
export default ActivityLine;
|
|
9
|
+
//# sourceMappingURL=ActivityLine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActivityLine.js","sourceRoot":"","sources":["../../src/components/ActivityLine.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AASrE,MAAM,CAAC,MAAM,YAAY,GAAgC,CAAC,EACxD,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,SAAS,EACV,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,qBAAqB,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC;IACrF,OAAO,KAAC,OAAO,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;AACjC,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FullScreen.d.ts","sourceRoot":"","sources":["../../src/components/FullScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"FullScreen.d.ts","sourceRoot":"","sources":["../../src/components/FullScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAuB,MAAM,OAAO,CAAC;AAGtE;;;;;;;;;;;;;GAaG;AAEH,UAAU,eAAgB,SAAQ,iBAAiB;IACjD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AASD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAehD,CAAC;AAEF;;GAEG;AACH,wBAAgB,aAAa;;;EA0B5B;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -1,40 +1,40 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect } from 'react';
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
3
|
import { Box } from 'ink';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
// Enter alternate screen buffer
|
|
16
|
-
process.stdout.write('\x1b[?1049h');
|
|
17
|
-
// Hide cursor (we'll draw our own)
|
|
18
|
-
process.stdout.write('\x1b[?25l');
|
|
19
|
-
// Clear the alternate screen
|
|
20
|
-
process.stdout.write('\x1b[2J');
|
|
21
|
-
// Move cursor to top-left
|
|
22
|
-
process.stdout.write('\x1b[H');
|
|
23
|
-
// Cleanup: restore terminal state
|
|
24
|
-
return () => {
|
|
25
|
-
// Show cursor
|
|
26
|
-
process.stdout.write('\x1b[?25h');
|
|
27
|
-
// Exit alternate screen buffer (restores original content)
|
|
28
|
-
process.stdout.write('\x1b[?1049l');
|
|
29
|
-
};
|
|
30
|
-
}, [useAltScreen]);
|
|
31
|
-
return (_jsx(Box, { flexDirection: "column", borderStyle: debug ? 'single' : undefined, borderColor: debug ? 'red' : undefined, children: children }));
|
|
4
|
+
function getTerminalSize() {
|
|
5
|
+
return {
|
|
6
|
+
columns: process.stdout.columns || 80,
|
|
7
|
+
rows: process.stdout.rows || 24,
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export const FullScreen = ({ children, debug = false, scrollback = false }) => {
|
|
11
|
+
const { rows, columns } = useScreenSize();
|
|
12
|
+
return (_jsx(Box, { flexDirection: "column", width: columns, height: scrollback ? undefined : rows, overflow: scrollback ? undefined : 'hidden', borderStyle: debug ? 'single' : undefined, borderColor: debug ? 'red' : undefined, children: children }));
|
|
32
13
|
};
|
|
33
14
|
/**
|
|
34
15
|
* Hook to get current screen size with resize tracking
|
|
35
16
|
*/
|
|
36
17
|
export function useScreenSize() {
|
|
37
|
-
|
|
18
|
+
const [size, setSize] = useState(getTerminalSize);
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
const updateSize = () => {
|
|
21
|
+
const current = getTerminalSize();
|
|
22
|
+
setSize(prev => {
|
|
23
|
+
if (prev.rows !== current.rows || prev.columns !== current.columns) {
|
|
24
|
+
return current;
|
|
25
|
+
}
|
|
26
|
+
return prev;
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
process.stdout.on('resize', updateSize);
|
|
30
|
+
// Also check on an interval as a fallback for some terminals
|
|
31
|
+
const interval = setInterval(updateSize, 1000);
|
|
32
|
+
return () => {
|
|
33
|
+
process.stdout.off('resize', updateSize);
|
|
34
|
+
clearInterval(interval);
|
|
35
|
+
};
|
|
36
|
+
}, []);
|
|
37
|
+
return size;
|
|
38
38
|
}
|
|
39
39
|
export default FullScreen;
|
|
40
40
|
//# sourceMappingURL=FullScreen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FullScreen.js","sourceRoot":"","sources":["../../src/components/FullScreen.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"FullScreen.js","sourceRoot":"","sources":["../../src/components/FullScreen.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAqB,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAsB1B,SAAS,eAAe;IACtB,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;QACrC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;KAChC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAA8B,CAAC,EAAE,QAAQ,EAAE,KAAK,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK,EAAE,EAAE,EAAE;IACvG,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE,CAAC;IAE1C,OAAO,CACL,KAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EACrC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAC3C,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EACzC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,YAErC,QAAQ,GACL,CACP,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;IAElD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,GAAG,EAAE;YACtB,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACb,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;oBACnE,OAAO,OAAO,CAAC;gBACjB,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAExC,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAE/C,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACzC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,IAAI,CAAC;AACd,CAAC;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputArea.d.ts","sourceRoot":"","sources":["../../src/components/InputArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAC;AAIvD,OAAO,EAAE,QAAQ,EAAY,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAgB,MAAM,2BAA2B,CAAC;AAqBrE,UAAU,cAAc;IACtB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACtD,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AA0D5D,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"InputArea.d.ts","sourceRoot":"","sources":["../../src/components/InputArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAC;AAIvD,OAAO,EAAE,QAAQ,EAAY,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAgB,MAAM,2BAA2B,CAAC;AAqBrE,UAAU,cAAc;IACtB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACtD,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AA0D5D,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA45B9C,CAAC;AAEF,eAAe,SAAS,CAAC"}
|