koneck 2.6.5 → 2.6.7
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/ink-chat.d.ts.map +1 -1
- package/dist/ink-chat.js +355 -25
- package/dist/ink-chat.js.map +1 -1
- package/package.json +1 -1
package/dist/ink-chat.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ink-chat.d.ts","sourceRoot":"","sources":["../src/ink-chat.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ink-chat.d.ts","sourceRoot":"","sources":["../src/ink-chat.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA+e9C,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAWvE"}
|
package/dist/ink-chat.js
CHANGED
|
@@ -1,65 +1,385 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { Box, Text, render, useApp, useInput } from 'ink';
|
|
4
|
+
import { execa } from 'execa';
|
|
4
5
|
import { createAgentSession } from './engine.js';
|
|
6
|
+
import { estimateCost, formatCost } from './pricing.js';
|
|
7
|
+
import { generateSessionId, saveSession, listSessions } from './session.js';
|
|
8
|
+
import { loadMemory } from './memory.js';
|
|
9
|
+
import { loadKoneckConfig, saveKoneckConfig, setConfigKey, configKeyDescriptions, CONFIG_FILE } from './config-store.js';
|
|
10
|
+
import { PROVIDERS } from './providers.js';
|
|
5
11
|
const CYAN = '#54D7E7';
|
|
6
12
|
const GREEN = '#9BCB8F';
|
|
7
13
|
const CRIMSON = '#E8878D';
|
|
8
14
|
const AMBER = '#F6C453';
|
|
9
15
|
const MUTED = '#9AAAB2';
|
|
10
16
|
const INK = '#F4F1EA';
|
|
11
|
-
|
|
17
|
+
const DIM = '#5C717A';
|
|
18
|
+
const MODES = ['auto', 'plan', 'code'];
|
|
19
|
+
const MODE_PREFIXES = {
|
|
20
|
+
auto: '',
|
|
21
|
+
plan: 'Think step-by-step. Create an explicit plan before touching any file. List every file you will change and why.\n\nTask: ',
|
|
22
|
+
code: 'Be concise and direct. Only code changes. Skip explanations unless non-obvious.\n\nTask: ',
|
|
23
|
+
};
|
|
24
|
+
const HELP_TEXT = `
|
|
25
|
+
Slash commands:
|
|
26
|
+
/help Show this help
|
|
27
|
+
/status Provider, model, mode, tokens, cost, CWD
|
|
28
|
+
/clear /reset /new Clear conversation history
|
|
29
|
+
/model [name] Show or switch model
|
|
30
|
+
/provider [name] Show or switch provider
|
|
31
|
+
/mode [auto|plan|code] Show or set mode
|
|
32
|
+
/effort [low|med|high|max] Set reasoning effort
|
|
33
|
+
/config [key] [value] View or set persistent config
|
|
34
|
+
/tokens Show token usage breakdown
|
|
35
|
+
/cost Show session cost
|
|
36
|
+
/memory Show .koneck/MEMORY.md
|
|
37
|
+
/diff Show uncommitted git changes
|
|
38
|
+
/verify Run project test command
|
|
39
|
+
/rewind Undo last exchange
|
|
40
|
+
/save Save session to disk
|
|
41
|
+
/sessions List recent saved sessions
|
|
42
|
+
/exit /quit Save and exit
|
|
43
|
+
|
|
44
|
+
Keyboard:
|
|
45
|
+
Tab Toggle analytics panel
|
|
46
|
+
Shift+Tab Cycle mode (auto → plan → code)
|
|
47
|
+
Ctrl+C Cancel task / exit if idle
|
|
48
|
+
`.trim();
|
|
49
|
+
function App({ config: initialConfig }) {
|
|
12
50
|
const { exit } = useApp();
|
|
13
|
-
const [
|
|
51
|
+
const [cfg, setCfg] = useState(initialConfig);
|
|
52
|
+
// Session Promise is created eagerly at mount so it resolves before the user sends the first message.
|
|
53
|
+
const activeSession = useState(() => ({
|
|
54
|
+
p: createAgentSession({ ...initialConfig, silent: true }),
|
|
55
|
+
}))[0];
|
|
14
56
|
const [rows, setRows] = useState([]);
|
|
15
57
|
const [draft, setDraft] = useState('');
|
|
16
58
|
const [busy, setBusy] = useState(false);
|
|
17
59
|
const [agentState, setAgentState] = useState('ready');
|
|
60
|
+
const [mode, setMode] = useState('auto');
|
|
61
|
+
const [effort, setEffort] = useState('medium');
|
|
62
|
+
const [showAnalytics, setShowAnalytics] = useState(false);
|
|
63
|
+
const [sessionId] = useState(() => generateSessionId());
|
|
64
|
+
const [stats, setStats] = useState({ turns: 0, promptTokens: 0, completionTokens: 0, totalTokens: 0 });
|
|
65
|
+
const [lastAgentText, setLastAgentText] = useState('');
|
|
66
|
+
const addRow = (row) => setRows(prev => [...prev, row]);
|
|
67
|
+
const addSystem = (text) => addRow({ role: 'system', text });
|
|
68
|
+
async function getSession() {
|
|
69
|
+
return activeSession.p;
|
|
70
|
+
}
|
|
71
|
+
async function resetSession(newCfg) {
|
|
72
|
+
const c = newCfg ?? cfg;
|
|
73
|
+
// Start building the new session immediately so it's ready by next message
|
|
74
|
+
activeSession.p = createAgentSession({ ...c, silent: true });
|
|
75
|
+
if (newCfg)
|
|
76
|
+
setCfg(newCfg);
|
|
77
|
+
}
|
|
78
|
+
async function doSave() {
|
|
79
|
+
const s = await activeSession.p.catch(() => null);
|
|
80
|
+
const firstUser = s?.messages.find((m) => m.role === 'user');
|
|
81
|
+
const task = firstUser && typeof firstUser.content === 'string'
|
|
82
|
+
? firstUser.content.slice(0, 120) : '(chat session)';
|
|
83
|
+
return saveSession(cfg.cwd, sessionId, {
|
|
84
|
+
id: sessionId, task, provider: cfg.provider, model: cfg.model,
|
|
85
|
+
cwd: cfg.cwd, startedAt: new Date().toISOString(),
|
|
86
|
+
turns: stats.turns, totalTokens: stats.totalTokens,
|
|
87
|
+
}, s?.messages ?? []);
|
|
88
|
+
}
|
|
89
|
+
async function handleCommand(cmd, arg) {
|
|
90
|
+
switch (cmd) {
|
|
91
|
+
case '/help':
|
|
92
|
+
addSystem(HELP_TEXT);
|
|
93
|
+
return;
|
|
94
|
+
case '/exit':
|
|
95
|
+
case '/quit': {
|
|
96
|
+
const file = await doSave().catch(() => '');
|
|
97
|
+
addSystem(file ? `Session saved: ${file}\nGoodbye.` : 'Goodbye.');
|
|
98
|
+
setTimeout(() => exit(), 300);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
case '/status': {
|
|
102
|
+
const cost = estimateCost(cfg.model, stats.promptTokens, stats.completionTokens);
|
|
103
|
+
const costStr = cost.known ? formatCost(cost.total) : 'unavailable';
|
|
104
|
+
const ws = cfg.cwd.replace(process.env['HOME'] ?? '', '~');
|
|
105
|
+
addSystem(`Provider : ${cfg.provider}\n` +
|
|
106
|
+
`Model : ${cfg.model}\n` +
|
|
107
|
+
`Mode : ${mode} · effort: ${effort}\n` +
|
|
108
|
+
`Approval : ${cfg.requireApproval ? 'on' : 'off'}\n` +
|
|
109
|
+
`Workspace : ${ws}\n` +
|
|
110
|
+
`Turns : ${stats.turns}\n` +
|
|
111
|
+
`Tokens : ${stats.totalTokens.toLocaleString()}\n` +
|
|
112
|
+
`Cost : ${costStr}`);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
case '/clear':
|
|
116
|
+
case '/reset':
|
|
117
|
+
case '/new':
|
|
118
|
+
await resetSession();
|
|
119
|
+
setRows([]);
|
|
120
|
+
setStats({ turns: 0, promptTokens: 0, completionTokens: 0, totalTokens: 0 });
|
|
121
|
+
addSystem('Conversation cleared.');
|
|
122
|
+
return;
|
|
123
|
+
case '/model': {
|
|
124
|
+
if (!arg) {
|
|
125
|
+
addSystem(`Current model: ${cfg.model}\nUsage: /model <name>`);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const newCfg = { ...cfg, model: arg };
|
|
129
|
+
await resetSession(newCfg);
|
|
130
|
+
addSystem(`Model → ${arg} (session reset)`);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
case '/provider': {
|
|
134
|
+
if (!arg) {
|
|
135
|
+
addSystem(`Current provider: ${cfg.provider}\nAvailable: ${Object.keys(PROVIDERS).join(', ')}\nUsage: /provider <name>`);
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
const def = PROVIDERS[arg.toLowerCase()];
|
|
139
|
+
const newCfg = { ...cfg, provider: arg.toLowerCase(), model: def?.defaultModel ?? cfg.model, baseURL: def?.baseURL };
|
|
140
|
+
await resetSession(newCfg);
|
|
141
|
+
addSystem(`Provider → ${arg} model → ${newCfg.model} (session reset)`);
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
case '/mode':
|
|
145
|
+
case '/auto':
|
|
146
|
+
case '/plan':
|
|
147
|
+
case '/code': {
|
|
148
|
+
const target = cmd === '/mode' ? arg : cmd.slice(1);
|
|
149
|
+
if (!target) {
|
|
150
|
+
addSystem(`Current mode: ${mode}\nUsage: /mode auto|plan|code or Shift+Tab to cycle`);
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
if (!MODES.includes(target)) {
|
|
154
|
+
addSystem(`Unknown mode "${target}". Use: auto, plan, code`);
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
setMode(target);
|
|
158
|
+
addSystem(`Mode → ${target}`);
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
case '/effort': {
|
|
162
|
+
const levels = ['low', 'medium', 'high', 'max'];
|
|
163
|
+
if (!arg) {
|
|
164
|
+
addSystem(`Current effort: ${effort}\nUsage: /effort low|medium|high|max`);
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
if (!levels.includes(arg)) {
|
|
168
|
+
addSystem(`Unknown level "${arg}". Use: low, medium, high, max`);
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
setEffort(arg);
|
|
172
|
+
addSystem(`Effort → ${arg}`);
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
case '/tokens': {
|
|
176
|
+
addSystem(`Prompt : ${stats.promptTokens.toLocaleString()}\n` +
|
|
177
|
+
`Completion : ${stats.completionTokens.toLocaleString()}\n` +
|
|
178
|
+
`Total : ${stats.totalTokens.toLocaleString()}\n` +
|
|
179
|
+
`Turns : ${stats.turns}`);
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
case '/cost': {
|
|
183
|
+
const cost = estimateCost(cfg.model, stats.promptTokens, stats.completionTokens);
|
|
184
|
+
addSystem(cost.known
|
|
185
|
+
? `Session cost: ${formatCost(cost.total)} (input ${formatCost(cost.inputCost)} + output ${formatCost(cost.outputCost)})`
|
|
186
|
+
: `Cost unknown — no pricing data for "${cfg.model}"`);
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
case '/memory': {
|
|
190
|
+
const mem = await loadMemory(cfg.cwd).catch(() => null);
|
|
191
|
+
addSystem(mem?.trim() ? mem : 'No memory in .koneck/MEMORY.md');
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
case '/diff': {
|
|
195
|
+
try {
|
|
196
|
+
const result = await execa('git', ['diff'], { cwd: cfg.cwd, all: true, reject: false });
|
|
197
|
+
const out = result.all?.trim() ?? '';
|
|
198
|
+
addSystem(out || 'No uncommitted changes.');
|
|
199
|
+
}
|
|
200
|
+
catch {
|
|
201
|
+
addSystem('Not a git repository.');
|
|
202
|
+
}
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
case '/verify': {
|
|
206
|
+
const { detectProject } = await import('./project.js');
|
|
207
|
+
const project = await detectProject(cfg.cwd);
|
|
208
|
+
const testCmd = project.testCommand;
|
|
209
|
+
if (!testCmd) {
|
|
210
|
+
addSystem('No test command detected for this project.');
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
addSystem(`Running: ${testCmd}\n…`);
|
|
214
|
+
const r = await execa(testCmd, { shell: true, cwd: cfg.cwd, all: true, reject: false });
|
|
215
|
+
const out = (r.all ?? '').slice(0, 2000);
|
|
216
|
+
addSystem(out + (r.exitCode === 0 ? '\n\n✔ Tests passed.' : '\n\n✗ Tests failed.'));
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
case '/rewind': {
|
|
220
|
+
const s = await activeSession.p.catch(() => null);
|
|
221
|
+
if (!s) {
|
|
222
|
+
addSystem('Nothing to rewind.');
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
const msgs = s.messages;
|
|
226
|
+
const lastUser = [...msgs].reverse().findIndex(m => m.role === 'user');
|
|
227
|
+
if (lastUser === -1) {
|
|
228
|
+
addSystem('Nothing to rewind.');
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
msgs.splice(msgs.length - 1 - lastUser);
|
|
232
|
+
addSystem(`Rewound. History now has ${msgs.length} message(s).`);
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
case '/save': {
|
|
236
|
+
const file = await doSave().catch(e => { addSystem(`Save failed: ${e instanceof Error ? e.message : String(e)}`); return ''; });
|
|
237
|
+
if (file)
|
|
238
|
+
addSystem(`Saved: ${file}`);
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
case '/sessions': {
|
|
242
|
+
const sessions = await listSessions(cfg.cwd).catch(() => []);
|
|
243
|
+
if (!sessions.length) {
|
|
244
|
+
addSystem('No sessions found.');
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
const lines = sessions.map(s => {
|
|
248
|
+
const cost = estimateCost(s.model, Math.round(s.totalTokens * 0.75), Math.round(s.totalTokens * 0.25));
|
|
249
|
+
return `${s.id} ${s.task.slice(0, 40).padEnd(40)} ${s.turns} turns${cost.known ? ` · ${formatCost(cost.total)}` : ''}`;
|
|
250
|
+
});
|
|
251
|
+
addSystem(lines.join('\n'));
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
case '/config': {
|
|
255
|
+
const parts = arg.split(/\s+/).filter(Boolean);
|
|
256
|
+
const key = parts[0];
|
|
257
|
+
const val = parts.slice(1).join(' ');
|
|
258
|
+
if (key === 'reset') {
|
|
259
|
+
await saveKoneckConfig({});
|
|
260
|
+
addSystem('Config reset to defaults.');
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
if (key && val) {
|
|
264
|
+
const r = await setConfigKey(key, val);
|
|
265
|
+
if (!r.ok) {
|
|
266
|
+
addSystem(`✗ ${r.error}`);
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
addSystem(`${key} = ${val} (saved to ${CONFIG_FILE})`);
|
|
270
|
+
if (key === 'model') {
|
|
271
|
+
const nc = { ...cfg, model: val };
|
|
272
|
+
await resetSession(nc);
|
|
273
|
+
}
|
|
274
|
+
if (key === 'effort' && ['low', 'medium', 'high', 'max'].includes(val))
|
|
275
|
+
setEffort(val);
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
if (key) {
|
|
279
|
+
const stored = await loadKoneckConfig();
|
|
280
|
+
const v = stored[key];
|
|
281
|
+
addSystem(v !== undefined ? `${key}: ${String(v)}` : `"${key}" not set`);
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
const stored = await loadKoneckConfig();
|
|
285
|
+
const descs = configKeyDescriptions();
|
|
286
|
+
const live = {
|
|
287
|
+
provider: cfg.provider, model: cfg.model, effort, requireApproval: cfg.requireApproval,
|
|
288
|
+
maxTurns: cfg.maxTurns, budget: cfg.budget, baseURL: cfg.baseURL,
|
|
289
|
+
};
|
|
290
|
+
const lines2 = Object.entries(descs).map(([k, desc]) => {
|
|
291
|
+
const v = live[k] ?? stored[k];
|
|
292
|
+
return `${k.padEnd(18)} ${v !== undefined ? String(v) : '(not set)'} ${desc}`;
|
|
293
|
+
});
|
|
294
|
+
addSystem(lines2.join('\n') + `\n\nUsage: /config <key> <value> | /config reset`);
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
case '/copy': {
|
|
298
|
+
if (!lastAgentText) {
|
|
299
|
+
addSystem('No response to copy yet.');
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
const cmds = [['wl-copy'], ['xclip', '-selection', 'clipboard'], ['xsel', '--clipboard', '--input'], ['pbcopy']];
|
|
303
|
+
for (const [bin, ...a] of cmds) {
|
|
304
|
+
try {
|
|
305
|
+
await execa(bin, a, { input: lastAgentText });
|
|
306
|
+
addSystem('Copied to clipboard.');
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
catch { /* try next */ }
|
|
310
|
+
}
|
|
311
|
+
addSystem('Clipboard tool not found (wl-copy/xclip/xsel/pbcopy).');
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
default:
|
|
315
|
+
addSystem(`Unknown command: ${cmd}. Type /help for the full list.`);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
18
318
|
useInput((input, key) => {
|
|
19
319
|
if (key.ctrl && input === 'c') {
|
|
20
|
-
exit();
|
|
320
|
+
void doSave().catch(() => { }).then(() => exit());
|
|
21
321
|
return;
|
|
22
322
|
}
|
|
23
|
-
|
|
323
|
+
// Tab → toggle analytics
|
|
324
|
+
if (key.tab && !key.shift) {
|
|
325
|
+
setShowAnalytics(prev => !prev);
|
|
24
326
|
return;
|
|
327
|
+
}
|
|
328
|
+
// Shift+Tab → cycle mode
|
|
329
|
+
if (key.shift && key.tab) {
|
|
330
|
+
setMode(prev => {
|
|
331
|
+
const idx = MODES.indexOf(prev);
|
|
332
|
+
return MODES[(idx + 1) % MODES.length];
|
|
333
|
+
});
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
25
336
|
if (busy)
|
|
26
337
|
return;
|
|
27
338
|
if (key.return) {
|
|
28
339
|
const task = draft.trim();
|
|
29
340
|
if (!task)
|
|
30
341
|
return;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
342
|
+
setDraft('');
|
|
343
|
+
addRow({ role: 'user', text: task });
|
|
344
|
+
if (task.startsWith('/')) {
|
|
345
|
+
const spaceIdx = task.indexOf(' ');
|
|
346
|
+
const cmd = spaceIdx === -1 ? task : task.slice(0, spaceIdx);
|
|
347
|
+
const arg = spaceIdx === -1 ? '' : task.slice(spaceIdx + 1).trim();
|
|
348
|
+
setBusy(true);
|
|
349
|
+
void handleCommand(cmd, arg).finally(() => setBusy(false));
|
|
38
350
|
return;
|
|
39
351
|
}
|
|
40
|
-
setRows(value => [...value, { role: 'user', text: task }]);
|
|
41
|
-
setDraft('');
|
|
42
352
|
setBusy(true);
|
|
43
353
|
setAgentState('processing');
|
|
44
354
|
const started = Date.now();
|
|
45
355
|
void (async () => {
|
|
46
356
|
try {
|
|
47
|
-
const active = await
|
|
48
|
-
|
|
357
|
+
const active = await getSession();
|
|
358
|
+
const prefix = MODE_PREFIXES[mode] + (effort !== 'medium' ? `[Effort: ${effort}]\n` : '');
|
|
359
|
+
await active.send(prefix + task);
|
|
49
360
|
setAgentState('syncing');
|
|
50
361
|
const last = active.messages
|
|
51
|
-
.filter(
|
|
362
|
+
.filter(m => m.role === 'assistant' && typeof m.content === 'string' && m.content.trim().length > 0)
|
|
52
363
|
.at(-1);
|
|
53
364
|
const content = last && typeof last.content === 'string'
|
|
54
365
|
? last.content
|
|
55
|
-
: '
|
|
56
|
-
|
|
366
|
+
: 'Task finished with no written response.';
|
|
367
|
+
setLastAgentText(content);
|
|
368
|
+
const elapsed = Date.now() - started;
|
|
369
|
+
setStats({
|
|
370
|
+
turns: active.stats.turns,
|
|
371
|
+
promptTokens: active.stats.promptTokens,
|
|
372
|
+
completionTokens: active.stats.completionTokens,
|
|
373
|
+
totalTokens: active.stats.totalTokens,
|
|
374
|
+
});
|
|
375
|
+
addRow({ role: 'agent', text: content, tokens: active.stats.completionTokens, elapsed });
|
|
57
376
|
setAgentState('completed');
|
|
58
377
|
setTimeout(() => setAgentState('ready'), 700);
|
|
59
378
|
}
|
|
60
379
|
catch (error) {
|
|
61
380
|
const detail = error instanceof Error ? error.message : String(error);
|
|
62
|
-
|
|
381
|
+
addRow({ role: 'error', text: detail });
|
|
382
|
+
setAgentState('ready');
|
|
63
383
|
}
|
|
64
384
|
finally {
|
|
65
385
|
setBusy(false);
|
|
@@ -68,14 +388,16 @@ function App({ config }) {
|
|
|
68
388
|
return;
|
|
69
389
|
}
|
|
70
390
|
if (key.backspace || key.delete) {
|
|
71
|
-
setDraft(
|
|
391
|
+
setDraft(prev => prev.slice(0, -1));
|
|
72
392
|
return;
|
|
73
393
|
}
|
|
74
394
|
if (!key.ctrl && !key.meta && input)
|
|
75
|
-
setDraft(
|
|
395
|
+
setDraft(prev => prev + input);
|
|
76
396
|
});
|
|
77
|
-
const workspace =
|
|
78
|
-
const modelShort =
|
|
397
|
+
const workspace = cfg.cwd.replace(process.env['HOME'] ?? '', '~');
|
|
398
|
+
const modelShort = cfg.model.split('/').at(-1) ?? cfg.model;
|
|
399
|
+
const termCols = process.stdout.columns ?? 80;
|
|
400
|
+
const uiWidth = Math.min(termCols, 120);
|
|
79
401
|
const statusLabel = agentState === 'ready' ? 'READY'
|
|
80
402
|
: agentState === 'processing' ? 'PROCESSING'
|
|
81
403
|
: agentState === 'syncing' ? 'SYNCING'
|
|
@@ -87,10 +409,18 @@ function App({ config }) {
|
|
|
87
409
|
: agentState === 'processing' ? 'Processing…'
|
|
88
410
|
: agentState === 'syncing' ? 'Syncing…'
|
|
89
411
|
: 'Done';
|
|
90
|
-
return (_jsxs(Box, { flexDirection: "column",
|
|
412
|
+
return (_jsxs(Box, { flexDirection: "column", width: uiWidth, paddingX: 2, children: [_jsxs(Box, { flexDirection: "column", alignItems: "center", marginTop: 1, marginBottom: 1, children: [_jsx(Text, { color: CYAN, bold: true, children: "KONECK / SOFTWARE DELIVERY SYSTEM" }), _jsx(Text, { color: MUTED, children: "Deliberate engineering, with control at every change." })] }), _jsxs(Box, { borderStyle: "round", borderColor: CYAN, paddingX: 1, marginBottom: 1, flexDirection: "column", children: [_jsxs(Box, { children: [_jsx(Text, { color: AMBER, children: "\u03DF " }), _jsx(Text, { color: CYAN, bold: true, children: "KONECK " }), _jsx(Text, { color: MUTED, children: "[" }), _jsx(Text, { color: statusColor, bold: true, children: statusLabel }), _jsx(Text, { color: MUTED, children: "]" }), _jsx(Text, { color: DIM, children: " \u00B7 mode: " }), _jsx(Text, { color: MUTED, children: mode })] }), _jsxs(Box, { children: [_jsx(Text, { color: MUTED, children: "STATUS: " }), _jsx(Text, { color: statusColor, children: statusText }), _jsx(Text, { color: MUTED, children: " \u2022 MODEL: " }), _jsxs(Text, { color: INK, children: ["[", modelShort, "]"] }), _jsx(Text, { color: MUTED, children: " \u2022 PROVIDER: " }), _jsxs(Text, { color: INK, children: ["[", cfg.provider, "]"] }), _jsx(Text, { color: MUTED, children: " \u2022 WORKSPACE: " }), _jsx(Text, { color: INK, children: workspace })] })] }), showAnalytics && (_jsxs(Box, { borderStyle: "round", borderColor: AMBER, paddingX: 1, marginBottom: 1, flexDirection: "column", children: [_jsx(Text, { color: AMBER, bold: true, children: "\u25C6 Session Analytics" }), _jsxs(Text, { color: MUTED, children: ["Turns : ", _jsx(Text, { color: INK, children: stats.turns })] }), _jsxs(Text, { color: MUTED, children: ["Prompt tok : ", _jsx(Text, { color: INK, children: stats.promptTokens.toLocaleString() })] }), _jsxs(Text, { color: MUTED, children: ["Output tok : ", _jsx(Text, { color: INK, children: stats.completionTokens.toLocaleString() })] }), _jsxs(Text, { color: MUTED, children: ["Total tok : ", _jsx(Text, { color: INK, children: stats.totalTokens.toLocaleString() })] }), _jsxs(Text, { color: MUTED, children: ["Model : ", _jsx(Text, { color: INK, children: modelShort }), " Provider: ", _jsx(Text, { color: INK, children: cfg.provider })] }), _jsx(Text, { color: DIM, children: "Tab to close" })] })), _jsxs(Box, { flexDirection: "column", flexGrow: 1, children: [rows.map((row, index) => row.role === 'user' ? (_jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: CYAN, bold: true, children: "\u276F " }), _jsx(Text, { color: INK, children: row.text })] }, index)) : row.role === 'error' ? (_jsxs(Box, { borderStyle: "round", borderColor: CRIMSON, paddingX: 1, flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: CRIMSON, bold: true, children: "[!] ERROR NOTICE" }), _jsxs(Text, { color: CRIMSON, children: ["\u2716 ", row.text] }), _jsx(Text, { color: MUTED, children: "[r] Retry connection or [t] Test API credentials." })] }, index)) : row.role === 'system' ? (_jsx(Box, { borderStyle: "round", borderColor: DIM, paddingX: 1, flexDirection: "column", marginTop: 1, children: row.text.split('\n').map((line, li) => (_jsx(Text, { color: MUTED, children: line }, li))) }, index)) : (_jsxs(Box, { flexDirection: "column", borderStyle: "round", borderColor: DIM, paddingX: 1, marginTop: 1, children: [_jsxs(Box, { children: [_jsx(Text, { color: CYAN, bold: true, children: "K " }), _jsx(Text, { color: INK, children: row.text })] }), row.tokens != null && (_jsxs(Text, { color: MUTED, children: ["\u25AE ", row.tokens, " tokens | ", ((row.elapsed ?? 0) / 1000).toFixed(1), "s | ", cfg.provider, " ", modelShort, " model"] }))] }, index))), busy && agentState !== 'ready' && (_jsx(Box, { marginTop: 1, children: _jsx(Text, { color: GREEN, children: "\u280B KONECK is working\u2026" }) }))] }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { color: CYAN, bold: true, children: "\u276F " }), _jsx(Text, { color: INK, children: draft }), _jsx(Text, { color: CYAN, children: busy ? '' : '█' })] }), _jsxs(Box, { marginTop: 1, paddingX: 1, children: [_jsx(Text, { backgroundColor: "#24343B", color: MUTED, children: "TAB " }), _jsx(Text, { backgroundColor: "#24343B", color: INK, children: "Analytics" }), _jsx(Text, { backgroundColor: "#24343B", color: MUTED, children: " / " }), _jsx(Text, { backgroundColor: "#24343B", color: CYAN, children: "/HELP" }), _jsx(Text, { backgroundColor: "#24343B", color: INK, children: " Commands" }), _jsx(Text, { backgroundColor: "#24343B", color: MUTED, children: " / SHIFT+TAB " }), _jsx(Text, { backgroundColor: "#24343B", color: INK, children: "Mode" }), _jsx(Text, { backgroundColor: "#24343B", color: MUTED, children: " / MODEL: " }), _jsx(Text, { backgroundColor: "#24343B", color: INK, children: modelShort }), _jsx(Text, { backgroundColor: "#24343B", color: MUTED, children: " / PING: " }), _jsx(Text, { backgroundColor: "#24343B", color: INK, children: "50ms" })] })] }));
|
|
91
413
|
}
|
|
92
414
|
export async function runInkChatMode(config) {
|
|
93
|
-
|
|
415
|
+
// Apply persistent config overrides before entering the UI
|
|
416
|
+
const saved = await loadKoneckConfig().catch(() => ({}));
|
|
417
|
+
const merged = {
|
|
418
|
+
...config,
|
|
419
|
+
...(saved.model ? { model: saved.model } : {}),
|
|
420
|
+
...(saved.provider ? { provider: saved.provider } : {}),
|
|
421
|
+
...(saved.baseURL ? { baseURL: saved.baseURL } : {}),
|
|
422
|
+
};
|
|
423
|
+
const app = render(_jsx(App, { config: merged }), { exitOnCtrlC: false, patchConsole: false });
|
|
94
424
|
await app.waitUntilExit();
|
|
95
425
|
}
|
|
96
426
|
//# sourceMappingURL=ink-chat.js.map
|
package/dist/ink-chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ink-chat.js","sourceRoot":"","sources":["../src/ink-chat.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ink-chat.js","sourceRoot":"","sources":["../src/ink-chat.tsx"],"names":[],"mappings":"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"}
|