koneck 2.120.0 → 2.121.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/dist/highlight-spans.d.ts +35 -0
- package/dist/highlight-spans.d.ts.map +1 -0
- package/dist/highlight-spans.js +216 -0
- package/dist/highlight-spans.js.map +1 -0
- package/dist/ink-chat.d.ts +15 -0
- package/dist/ink-chat.d.ts.map +1 -1
- package/dist/ink-chat.js +575 -362
- package/dist/ink-chat.js.map +1 -1
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Syntax highlighting as structured spans, for the terminal's diff panel.
|
|
3
|
+
*
|
|
4
|
+
* `highlight.ts` returns lines with ANSI codes already embedded, built by running one regex
|
|
5
|
+
* replacement after another over the same string. That is fine for printing a line and wrong here,
|
|
6
|
+
* for two reasons. The colours it inserts become text the later regexes then match against — the
|
|
7
|
+
* number rule sees the `32` inside the green it just wrote — so the chain is correct only in the
|
|
8
|
+
* order it happens to run in, and a rule added later can quietly corrupt the ones before it. And
|
|
9
|
+
* embedded ANSI cannot be combined with a background: the diff panel tints added lines green, and a
|
|
10
|
+
* pre-coloured string carries its own resets that fight the tint.
|
|
11
|
+
*
|
|
12
|
+
* So this walks each line once, character by character, and returns typed spans. Nothing is
|
|
13
|
+
* re-scanned, so nothing can be corrupted; whitespace is preserved exactly, which the regex chain
|
|
14
|
+
* did not manage either; and the caller decides what colour a kind is and what sits behind it.
|
|
15
|
+
*
|
|
16
|
+
* Line-at-a-time deliberately. A diff shows fragments — hunks with gaps between them — so there is
|
|
17
|
+
* no whole file to parse and a block comment's opening may never be in view. Each line is judged on
|
|
18
|
+
* what it contains, which is what a diff reader is looking at anyway.
|
|
19
|
+
*/
|
|
20
|
+
export type SpanKind = 'plain' | 'keyword' | 'string' | 'comment' | 'number' | 'fn' | 'type' | 'punct';
|
|
21
|
+
export interface Span {
|
|
22
|
+
text: string;
|
|
23
|
+
kind: SpanKind;
|
|
24
|
+
}
|
|
25
|
+
export type SpanLang = 'js' | 'py' | 'sh' | 'css' | 'json' | 'md' | 'generic';
|
|
26
|
+
/** The language to tokenise as, from a file name. */
|
|
27
|
+
export declare function spanLangFor(filename: string): SpanLang;
|
|
28
|
+
/**
|
|
29
|
+
* One line, walked once, as typed spans.
|
|
30
|
+
*
|
|
31
|
+
* Adjacent spans of the same kind are merged so the caller renders a handful of elements rather
|
|
32
|
+
* than one per character — a 100-column line of plain text is one span, not a hundred.
|
|
33
|
+
*/
|
|
34
|
+
export declare function tokenizeLine(line: string, lang?: SpanLang): Span[];
|
|
35
|
+
//# sourceMappingURL=highlight-spans.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"highlight-spans.d.ts","sourceRoot":"","sources":["../src/highlight-spans.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,MAAM,QAAQ,GAChB,OAAO,GACP,SAAS,GACT,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,IAAI,GACJ,MAAM,GACN,OAAO,CAAC;AAEZ,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAE9E,qDAAqD;AACrD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAYtD;AA4DD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,QAAoB,GAAG,IAAI,EAAE,CAqF7E"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Syntax highlighting as structured spans, for the terminal's diff panel.
|
|
3
|
+
*
|
|
4
|
+
* `highlight.ts` returns lines with ANSI codes already embedded, built by running one regex
|
|
5
|
+
* replacement after another over the same string. That is fine for printing a line and wrong here,
|
|
6
|
+
* for two reasons. The colours it inserts become text the later regexes then match against — the
|
|
7
|
+
* number rule sees the `32` inside the green it just wrote — so the chain is correct only in the
|
|
8
|
+
* order it happens to run in, and a rule added later can quietly corrupt the ones before it. And
|
|
9
|
+
* embedded ANSI cannot be combined with a background: the diff panel tints added lines green, and a
|
|
10
|
+
* pre-coloured string carries its own resets that fight the tint.
|
|
11
|
+
*
|
|
12
|
+
* So this walks each line once, character by character, and returns typed spans. Nothing is
|
|
13
|
+
* re-scanned, so nothing can be corrupted; whitespace is preserved exactly, which the regex chain
|
|
14
|
+
* did not manage either; and the caller decides what colour a kind is and what sits behind it.
|
|
15
|
+
*
|
|
16
|
+
* Line-at-a-time deliberately. A diff shows fragments — hunks with gaps between them — so there is
|
|
17
|
+
* no whole file to parse and a block comment's opening may never be in view. Each line is judged on
|
|
18
|
+
* what it contains, which is what a diff reader is looking at anyway.
|
|
19
|
+
*/
|
|
20
|
+
/** The language to tokenise as, from a file name. */
|
|
21
|
+
export function spanLangFor(filename) {
|
|
22
|
+
const ext = filename.split('.').pop()?.toLowerCase() ?? '';
|
|
23
|
+
const map = {
|
|
24
|
+
js: 'js', jsx: 'js', ts: 'js', tsx: 'js', mjs: 'js', cjs: 'js',
|
|
25
|
+
py: 'py', pyi: 'py',
|
|
26
|
+
sh: 'sh', bash: 'sh', zsh: 'sh', fish: 'sh',
|
|
27
|
+
css: 'css', scss: 'css', sass: 'css', less: 'css',
|
|
28
|
+
json: 'json',
|
|
29
|
+
md: 'md', mdx: 'md',
|
|
30
|
+
groovy: 'js', java: 'js', kt: 'js', gradle: 'js',
|
|
31
|
+
};
|
|
32
|
+
return map[ext] ?? 'generic';
|
|
33
|
+
}
|
|
34
|
+
const JS_KEYWORDS = new Set([
|
|
35
|
+
'const', 'let', 'var', 'function', 'return', 'if', 'else', 'for', 'while', 'do', 'break',
|
|
36
|
+
'continue', 'new', 'delete', 'typeof', 'instanceof', 'in', 'of', 'class', 'extends', 'super',
|
|
37
|
+
'this', 'import', 'export', 'from', 'as', 'default', 'async', 'await', 'yield', 'try', 'catch',
|
|
38
|
+
'finally', 'throw', 'switch', 'case', 'interface', 'type', 'enum', 'implements', 'private',
|
|
39
|
+
'public', 'protected', 'readonly', 'static', 'abstract', 'declare', 'namespace', 'satisfies',
|
|
40
|
+
'true', 'false', 'null', 'undefined', 'void', 'never', 'unknown', 'any',
|
|
41
|
+
]);
|
|
42
|
+
/** Built-in types and constructors, which read differently from control flow. */
|
|
43
|
+
const JS_TYPES = new Set([
|
|
44
|
+
'string', 'number', 'boolean', 'object', 'symbol', 'bigint', 'Array', 'Promise', 'Map', 'Set',
|
|
45
|
+
'Record', 'Partial', 'Readonly', 'Object', 'String', 'Number', 'Boolean', 'Date', 'RegExp',
|
|
46
|
+
'Error', 'JSON', 'Math', 'console', 'process', 'Buffer',
|
|
47
|
+
]);
|
|
48
|
+
const PY_KEYWORDS = new Set([
|
|
49
|
+
'def', 'class', 'return', 'if', 'elif', 'else', 'for', 'while', 'break', 'continue', 'import',
|
|
50
|
+
'from', 'as', 'pass', 'raise', 'try', 'except', 'finally', 'with', 'lambda', 'yield', 'global',
|
|
51
|
+
'nonlocal', 'assert', 'del', 'and', 'or', 'not', 'in', 'is', 'None', 'True', 'False', 'async',
|
|
52
|
+
'await', 'self',
|
|
53
|
+
]);
|
|
54
|
+
const SH_KEYWORDS = new Set([
|
|
55
|
+
'if', 'then', 'else', 'elif', 'fi', 'for', 'while', 'do', 'done', 'case', 'esac', 'function',
|
|
56
|
+
'return', 'exit', 'export', 'local', 'echo', 'cd', 'set', 'unset', 'source', 'in',
|
|
57
|
+
]);
|
|
58
|
+
function keywordsFor(lang) {
|
|
59
|
+
if (lang === 'py')
|
|
60
|
+
return PY_KEYWORDS;
|
|
61
|
+
if (lang === 'sh')
|
|
62
|
+
return SH_KEYWORDS;
|
|
63
|
+
return JS_KEYWORDS;
|
|
64
|
+
}
|
|
65
|
+
/** Where a line comment starts, ignoring ones inside a string. -1 when there is none. */
|
|
66
|
+
function lineCommentAt(line, lang) {
|
|
67
|
+
const markers = lang === 'py' || lang === 'sh' ? ['#'] : lang === 'css' ? [] : ['//'];
|
|
68
|
+
if (!markers.length)
|
|
69
|
+
return -1;
|
|
70
|
+
let quote = '';
|
|
71
|
+
for (let i = 0; i < line.length; i++) {
|
|
72
|
+
const ch = line[i];
|
|
73
|
+
if (quote) {
|
|
74
|
+
if (ch === '\\') {
|
|
75
|
+
i++;
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
if (ch === quote)
|
|
79
|
+
quote = '';
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
if (ch === '"' || ch === "'" || ch === '`') {
|
|
83
|
+
quote = ch;
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
for (const m of markers) {
|
|
87
|
+
if (line.startsWith(m, i))
|
|
88
|
+
return i;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return -1;
|
|
92
|
+
}
|
|
93
|
+
const IDENT_START = /[A-Za-z_$@]/;
|
|
94
|
+
const IDENT_REST = /[A-Za-z0-9_$]/;
|
|
95
|
+
const PUNCT = /[{}()[\];:,.<>=!+\-*/%&|^~?]/;
|
|
96
|
+
/**
|
|
97
|
+
* One line, walked once, as typed spans.
|
|
98
|
+
*
|
|
99
|
+
* Adjacent spans of the same kind are merged so the caller renders a handful of elements rather
|
|
100
|
+
* than one per character — a 100-column line of plain text is one span, not a hundred.
|
|
101
|
+
*/
|
|
102
|
+
export function tokenizeLine(line, lang = 'generic') {
|
|
103
|
+
const out = [];
|
|
104
|
+
const push = (text, kind) => {
|
|
105
|
+
if (!text)
|
|
106
|
+
return;
|
|
107
|
+
const last = out[out.length - 1];
|
|
108
|
+
if (last && last.kind === kind)
|
|
109
|
+
last.text += text;
|
|
110
|
+
else
|
|
111
|
+
out.push({ text, kind });
|
|
112
|
+
};
|
|
113
|
+
if (lang === 'md')
|
|
114
|
+
return markdownSpans(line);
|
|
115
|
+
// A whole-line comment, and a block comment's body, are comments however they are indented.
|
|
116
|
+
const trimmed = line.trim();
|
|
117
|
+
if (trimmed.startsWith('//') || trimmed.startsWith('/*') || trimmed.startsWith('*')
|
|
118
|
+
|| ((lang === 'py' || lang === 'sh') && trimmed.startsWith('#'))) {
|
|
119
|
+
return [{ text: line, kind: 'comment' }];
|
|
120
|
+
}
|
|
121
|
+
// A trailing comment is taken off first, so the code before it is tokenised on its own.
|
|
122
|
+
const comment = lineCommentAt(line, lang);
|
|
123
|
+
const code = comment === -1 ? line : line.slice(0, comment);
|
|
124
|
+
const tail = comment === -1 ? '' : line.slice(comment);
|
|
125
|
+
const keywords = keywordsFor(lang);
|
|
126
|
+
let i = 0;
|
|
127
|
+
while (i < code.length) {
|
|
128
|
+
const ch = code[i];
|
|
129
|
+
// Whitespace stays exactly as it is — this is what the regex chain lost.
|
|
130
|
+
if (ch === ' ' || ch === '\t') {
|
|
131
|
+
let j = i;
|
|
132
|
+
while (j < code.length && (code[j] === ' ' || code[j] === '\t'))
|
|
133
|
+
j++;
|
|
134
|
+
push(code.slice(i, j), 'plain');
|
|
135
|
+
i = j;
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
// A string, to its closing quote or the end of the line if it is unterminated.
|
|
139
|
+
if (ch === '"' || ch === "'" || ch === '`') {
|
|
140
|
+
let j = i + 1;
|
|
141
|
+
while (j < code.length) {
|
|
142
|
+
if (code[j] === '\\') {
|
|
143
|
+
j += 2;
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
if (code[j] === ch) {
|
|
147
|
+
j++;
|
|
148
|
+
break;
|
|
149
|
+
}
|
|
150
|
+
j++;
|
|
151
|
+
}
|
|
152
|
+
push(code.slice(i, j), 'string');
|
|
153
|
+
i = j;
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
// A number, including decimals, hex and separators.
|
|
157
|
+
if (/[0-9]/.test(ch)) {
|
|
158
|
+
let j = i;
|
|
159
|
+
while (j < code.length && /[0-9a-fA-FxX._]/.test(code[j]))
|
|
160
|
+
j++;
|
|
161
|
+
push(code.slice(i, j), 'number');
|
|
162
|
+
i = j;
|
|
163
|
+
continue;
|
|
164
|
+
}
|
|
165
|
+
// An identifier: a keyword, a known type, a call, or a plain name.
|
|
166
|
+
if (IDENT_START.test(ch)) {
|
|
167
|
+
let j = i + 1;
|
|
168
|
+
while (j < code.length && IDENT_REST.test(code[j]))
|
|
169
|
+
j++;
|
|
170
|
+
const word = code.slice(i, j);
|
|
171
|
+
// A call is the name followed by an opening paren, whitespace allowed between.
|
|
172
|
+
let k = j;
|
|
173
|
+
while (k < code.length && code[k] === ' ')
|
|
174
|
+
k++;
|
|
175
|
+
const called = code[k] === '(';
|
|
176
|
+
push(word, keywords.has(word) ? 'keyword'
|
|
177
|
+
: JS_TYPES.has(word) ? 'type'
|
|
178
|
+
: called ? 'fn'
|
|
179
|
+
: /^[A-Z]/.test(word) ? 'type'
|
|
180
|
+
: 'plain');
|
|
181
|
+
i = j;
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
if (PUNCT.test(ch)) {
|
|
185
|
+
push(ch, 'punct');
|
|
186
|
+
i++;
|
|
187
|
+
continue;
|
|
188
|
+
}
|
|
189
|
+
push(ch, 'plain');
|
|
190
|
+
i++;
|
|
191
|
+
}
|
|
192
|
+
if (tail)
|
|
193
|
+
push(tail, 'comment');
|
|
194
|
+
return out;
|
|
195
|
+
}
|
|
196
|
+
/** Markdown, where the structure is the syntax: headings, fences, emphasis, list bullets. */
|
|
197
|
+
function markdownSpans(line) {
|
|
198
|
+
const t = line.trim();
|
|
199
|
+
if (t.startsWith('#'))
|
|
200
|
+
return [{ text: line, kind: 'keyword' }];
|
|
201
|
+
if (t.startsWith('```'))
|
|
202
|
+
return [{ text: line, kind: 'type' }];
|
|
203
|
+
if (t.startsWith('>'))
|
|
204
|
+
return [{ text: line, kind: 'comment' }];
|
|
205
|
+
if (/^[-*+]\s/.test(t) || /^\d+\.\s/.test(t)) {
|
|
206
|
+
const at = line.indexOf(t[0]);
|
|
207
|
+
const parts = [
|
|
208
|
+
{ text: line.slice(0, at), kind: 'plain' },
|
|
209
|
+
{ text: t.slice(0, t.indexOf(' ') + 1), kind: 'punct' },
|
|
210
|
+
{ text: t.slice(t.indexOf(' ') + 1), kind: 'plain' },
|
|
211
|
+
];
|
|
212
|
+
return parts.filter(s => s.text);
|
|
213
|
+
}
|
|
214
|
+
return [{ text: line, kind: 'plain' }];
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=highlight-spans.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"highlight-spans.js","sourceRoot":"","sources":["../src/highlight-spans.ts"],"names":[],"mappings":"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"}
|
package/dist/ink-chat.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { type FileDiff } from './diff-view.js';
|
|
2
3
|
import type { AllowRule } from './permissions.js';
|
|
3
4
|
import { type KoneckPolicy } from './policy.js';
|
|
4
5
|
import type { AgentConfig } from './types.js';
|
|
@@ -278,6 +279,20 @@ export declare function defaultAltScreen(stdout?: {
|
|
|
278
279
|
rows?: number;
|
|
279
280
|
columns?: number;
|
|
280
281
|
}, env?: NodeJS.ProcessEnv): boolean;
|
|
282
|
+
/**
|
|
283
|
+
* The live diff panel — the work as it happens, beside the conversation.
|
|
284
|
+
*
|
|
285
|
+
* Asked for: the same running view the web has, in the terminal. It shows every file the session
|
|
286
|
+
* has changed, newest first, with the counts in the header, so a person watching can see the edit
|
|
287
|
+
* land rather than reading a description of it afterwards. Bounded on both axes: the newest files
|
|
288
|
+
* fill the height available and the rest are counted, since a panel that scrolls past what you
|
|
289
|
+
* wanted is no better than no panel.
|
|
290
|
+
*/
|
|
291
|
+
export declare function DiffPanel({ files, width, height }: {
|
|
292
|
+
files: readonly FileDiff[];
|
|
293
|
+
width: number;
|
|
294
|
+
height: number;
|
|
295
|
+
}): React.JSX.Element;
|
|
281
296
|
/**
|
|
282
297
|
* Exported for one reason: so a test can mount it.
|
|
283
298
|
*
|
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":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ink-chat.d.ts","sourceRoot":"","sources":["../src/ink-chat.tsx"],"names":[],"mappings":"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"}
|