@relace-ai/jacq 0.1.1-beta.1 → 0.1.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/dist/actions/messages.d.ts +41 -0
- package/dist/actions/messages.js +77 -0
- package/dist/actions/messages.js.map +1 -0
- package/dist/actions/prompts.d.ts +6 -0
- package/dist/actions/prompts.js +18 -0
- package/dist/actions/prompts.js.map +1 -0
- package/dist/actions/tasks.d.ts +13 -0
- package/dist/actions/tasks.js +66 -0
- package/dist/actions/tasks.js.map +1 -0
- package/dist/auth.d.ts +12 -0
- package/dist/auth.js +131 -0
- package/dist/auth.js.map +1 -0
- package/dist/clipboard.d.ts +21 -0
- package/dist/clipboard.js +126 -0
- package/dist/clipboard.js.map +1 -0
- package/dist/commands.d.ts +15 -0
- package/dist/commands.js +23 -0
- package/dist/commands.js.map +1 -0
- package/dist/config.d.ts +12 -0
- package/dist/config.js +63 -0
- package/dist/config.js.map +1 -0
- package/dist/connection.d.ts +43 -0
- package/dist/connection.js +231 -0
- package/dist/connection.js.map +1 -0
- package/dist/constants.d.ts +2 -0
- package/dist/constants.js +3 -0
- package/dist/constants.js.map +1 -0
- package/dist/debug.d.ts +96 -0
- package/dist/debug.js +144 -0
- package/dist/debug.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +390 -0
- package/dist/index.js.map +1 -0
- package/dist/markdown/index.d.ts +11 -0
- package/dist/markdown/index.js +12 -0
- package/dist/markdown/index.js.map +1 -0
- package/dist/markdown/parser.d.ts +22 -0
- package/dist/markdown/parser.js +310 -0
- package/dist/markdown/parser.js.map +1 -0
- package/dist/markdown/renderer.d.ts +23 -0
- package/dist/markdown/renderer.js +358 -0
- package/dist/markdown/renderer.js.map +1 -0
- package/dist/markdown/types.d.ts +74 -0
- package/dist/markdown/types.js +12 -0
- package/dist/markdown/types.js.map +1 -0
- package/dist/protocol.d.ts +46 -0
- package/dist/protocol.js +608 -0
- package/dist/protocol.js.map +1 -0
- package/dist/renderer.d.ts +46 -0
- package/dist/renderer.js +144 -0
- package/dist/renderer.js.map +1 -0
- package/dist/screen.d.ts +34 -0
- package/dist/screen.js +167 -0
- package/dist/screen.js.map +1 -0
- package/dist/state.d.ts +6 -0
- package/dist/state.js +77 -0
- package/dist/state.js.map +1 -0
- package/dist/styles.d.ts +16 -0
- package/dist/styles.js +68 -0
- package/dist/styles.js.map +1 -0
- package/dist/terminal.d.ts +46 -0
- package/dist/terminal.js +67 -0
- package/dist/terminal.js.map +1 -0
- package/dist/tools/executor.d.ts +8 -0
- package/dist/tools/executor.js +20 -0
- package/dist/tools/executor.js.map +1 -0
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.js +6 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/registry.d.ts +32 -0
- package/dist/tools/registry.js +344 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/types.d.ts +200 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/backgroundTasks.d.ts +7 -0
- package/dist/ui/backgroundTasks.js +192 -0
- package/dist/ui/backgroundTasks.js.map +1 -0
- package/dist/ui/filePicker.d.ts +9 -0
- package/dist/ui/filePicker.js +315 -0
- package/dist/ui/filePicker.js.map +1 -0
- package/dist/ui/index.d.ts +33 -0
- package/dist/ui/index.js +289 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/input.d.ts +7 -0
- package/dist/ui/input.js +320 -0
- package/dist/ui/input.js.map +1 -0
- package/dist/ui/messages.d.ts +9 -0
- package/dist/ui/messages.js +329 -0
- package/dist/ui/messages.js.map +1 -0
- package/dist/ui/primitives.d.ts +35 -0
- package/dist/ui/primitives.js +94 -0
- package/dist/ui/primitives.js.map +1 -0
- package/dist/ui/promptInput.d.ts +8 -0
- package/dist/ui/promptInput.js +198 -0
- package/dist/ui/promptInput.js.map +1 -0
- package/dist/ui/promptPicker.d.ts +7 -0
- package/dist/ui/promptPicker.js +214 -0
- package/dist/ui/promptPicker.js.map +1 -0
- package/dist/ui/sessions.d.ts +6 -0
- package/dist/ui/sessions.js +214 -0
- package/dist/ui/sessions.js.map +1 -0
- package/dist/ui/welcome.d.ts +6 -0
- package/dist/ui/welcome.js +114 -0
- package/dist/ui/welcome.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Messages Component — full-screen draw() API
|
|
3
|
+
* Displays message history with scroll support
|
|
4
|
+
*/
|
|
5
|
+
import type { StyledLine, UIComponent } from '../types.js';
|
|
6
|
+
declare const messages: UIComponent & {
|
|
7
|
+
getLines(width: number): StyledLine[];
|
|
8
|
+
};
|
|
9
|
+
export default messages;
|
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Messages Component — full-screen draw() API
|
|
3
|
+
* Displays message history with scroll support
|
|
4
|
+
*/
|
|
5
|
+
import { drawStyledLine, drawText } from './primitives.js';
|
|
6
|
+
import { getVisibleMessages, isCurrentTaskRunning } from '../actions/messages.js';
|
|
7
|
+
import { state } from '../state.js';
|
|
8
|
+
import { parse } from '../markdown/parser.js';
|
|
9
|
+
import { renderTokens } from '../markdown/renderer.js';
|
|
10
|
+
/**
|
|
11
|
+
* Format tool context (file paths, commands, etc.)
|
|
12
|
+
*/
|
|
13
|
+
function formatToolContext(toolCall) {
|
|
14
|
+
const args = toolCall.args || {};
|
|
15
|
+
const name = toolCall.name;
|
|
16
|
+
switch (name) {
|
|
17
|
+
case 'bash': {
|
|
18
|
+
const cmd = String(args.command || '');
|
|
19
|
+
const firstLine = cmd.split('\n')[0];
|
|
20
|
+
return firstLine.length > 80 ? firstLine.slice(0, 80) + '…' : firstLine;
|
|
21
|
+
}
|
|
22
|
+
case 'write_file':
|
|
23
|
+
case 'read_file':
|
|
24
|
+
return String(args.path || '');
|
|
25
|
+
case 'list_files': {
|
|
26
|
+
const listPath = String(args.path || '.');
|
|
27
|
+
const pattern = args.pattern ? ` [${args.pattern}]` : '';
|
|
28
|
+
return `${listPath}${pattern}`;
|
|
29
|
+
}
|
|
30
|
+
case 'grep': {
|
|
31
|
+
const grepPattern = String(args.pattern || '');
|
|
32
|
+
const grepPath = String(args.path || '.');
|
|
33
|
+
return `"${grepPattern.slice(0, 40)}" in ${grepPath}`;
|
|
34
|
+
}
|
|
35
|
+
case 'tap':
|
|
36
|
+
case 'type_text': {
|
|
37
|
+
const text = String(args.text || args.element_id || '');
|
|
38
|
+
return text.length > 60 ? text.slice(0, 60) + '…' : text;
|
|
39
|
+
}
|
|
40
|
+
case 'goto': {
|
|
41
|
+
const url = String(args.path || args.url || '');
|
|
42
|
+
return url.length > 60 ? url.slice(0, 60) + '…' : url;
|
|
43
|
+
}
|
|
44
|
+
case 'scroll':
|
|
45
|
+
return String(args.direction || '');
|
|
46
|
+
case 'search': {
|
|
47
|
+
const query = String(args.query || '');
|
|
48
|
+
return query.length > 60 ? query.slice(0, 60) + '…' : query;
|
|
49
|
+
}
|
|
50
|
+
default: {
|
|
51
|
+
const firstArg = Object.values(args).find(v => typeof v === 'string');
|
|
52
|
+
if (firstArg && typeof firstArg === 'string') {
|
|
53
|
+
return firstArg.length > 60 ? firstArg.slice(0, 60) + '…' : firstArg;
|
|
54
|
+
}
|
|
55
|
+
return '';
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Format token count (e.g., 1234 -> "1.2k")
|
|
61
|
+
*/
|
|
62
|
+
function formatTokens(count) {
|
|
63
|
+
if (count >= 1000) {
|
|
64
|
+
return (count / 1000).toFixed(1) + 'k';
|
|
65
|
+
}
|
|
66
|
+
return String(count);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get all message lines as styled lines.
|
|
70
|
+
* Internal method — getLines() returns an array for use by draw().
|
|
71
|
+
*/
|
|
72
|
+
function getLines(width) {
|
|
73
|
+
const messages = getVisibleMessages();
|
|
74
|
+
const lines = [];
|
|
75
|
+
const maxWidth = width - 4;
|
|
76
|
+
const isRunning = isCurrentTaskRunning();
|
|
77
|
+
const showThinking = !state.pendingPrompt && (state.activityPhase === 'submitting' ||
|
|
78
|
+
state.activityPhase === 'waiting_for_first_step');
|
|
79
|
+
let lastToolIdx = -1;
|
|
80
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
81
|
+
if (messages[i].type === 'tool') {
|
|
82
|
+
lastToolIdx = i;
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
for (let msgIdx = 0; msgIdx < messages.length; msgIdx++) {
|
|
87
|
+
const msg = messages[msgIdx];
|
|
88
|
+
switch (msg.type) {
|
|
89
|
+
case 'user': {
|
|
90
|
+
lines.push({ text: '', styleKey: 'text' });
|
|
91
|
+
const attachMatch = msg.content.match(/^(.*?)\n\[Attached: (.+)\]$/s);
|
|
92
|
+
let userContent = msg.content;
|
|
93
|
+
let fileCount = 0;
|
|
94
|
+
if (attachMatch) {
|
|
95
|
+
const [, mainContent, fileList] = attachMatch;
|
|
96
|
+
userContent = mainContent;
|
|
97
|
+
fileCount = fileList.split(', ').length;
|
|
98
|
+
}
|
|
99
|
+
const userLines = userContent.split('\n');
|
|
100
|
+
for (let i = 0; i < userLines.length; i++) {
|
|
101
|
+
const line = userLines[i];
|
|
102
|
+
if (i === 0) {
|
|
103
|
+
lines.push({ text: ` ▶ ${line} `, styleKey: 'userText' });
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
lines.push({ text: ` ⎿ ${line}`, styleKey: 'text' });
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if (fileCount > 0) {
|
|
110
|
+
const attachText = fileCount === 1 ? '1 file attached' : `${fileCount} files attached`;
|
|
111
|
+
lines.push({ text: ` ⎿ ${attachText}`, styleKey: 'dim' });
|
|
112
|
+
}
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
case 'tool': {
|
|
116
|
+
lines.push({ text: '', styleKey: 'text' });
|
|
117
|
+
const hasDoneTool = msg.toolCalls?.some(tc => tc.name === 'done');
|
|
118
|
+
const nextMsg = messages[msgIdx + 1];
|
|
119
|
+
const isFollowedByUser = nextMsg && (nextMsg.type === 'user' || nextMsg.type === 'status' || nextMsg.type === 'error');
|
|
120
|
+
const stepIsDone = !!hasDoneTool || (msgIdx !== lastToolIdx && !!isFollowedByUser);
|
|
121
|
+
const isInProgress = state.activityPhase === 'streaming' &&
|
|
122
|
+
isRunning &&
|
|
123
|
+
msgIdx === lastToolIdx &&
|
|
124
|
+
!showThinking &&
|
|
125
|
+
!stepIsDone;
|
|
126
|
+
const stepDot = isInProgress ? (state.blinkVisible ? '●' : ' ') : '●';
|
|
127
|
+
let tokenSuffix = '';
|
|
128
|
+
if (msg.tokens) {
|
|
129
|
+
const input = msg.tokens.input || 0;
|
|
130
|
+
const output = msg.tokens.output || 0;
|
|
131
|
+
if (input + output > 0) {
|
|
132
|
+
tokenSuffix = ` ↓${formatTokens(input)} ↑${formatTokens(output)}`;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
const stepText = `${stepDot} ${msg.content}`;
|
|
136
|
+
const fullText = ' ' + stepText + tokenSuffix;
|
|
137
|
+
const stepContentEnd = 2 + stepText.length;
|
|
138
|
+
if (isInProgress) {
|
|
139
|
+
const segments = [{ start: 4, end: stepContentEnd, styleKey: 'dotDone' }];
|
|
140
|
+
if (tokenSuffix) {
|
|
141
|
+
segments.push({ start: stepContentEnd, end: fullText.length, styleKey: 'dim' });
|
|
142
|
+
}
|
|
143
|
+
lines.push({
|
|
144
|
+
text: fullText,
|
|
145
|
+
styleKey: 'dim',
|
|
146
|
+
segments,
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
const segments = tokenSuffix
|
|
151
|
+
? [{ start: stepContentEnd, end: fullText.length, styleKey: 'dim' }]
|
|
152
|
+
: undefined;
|
|
153
|
+
lines.push({ text: fullText, styleKey: 'dotDone', segments });
|
|
154
|
+
}
|
|
155
|
+
if (msg.toolCalls) {
|
|
156
|
+
for (const tc of msg.toolCalls) {
|
|
157
|
+
if (tc.name === 'done')
|
|
158
|
+
continue;
|
|
159
|
+
const context = formatToolContext(tc);
|
|
160
|
+
let tcText = ` → ${tc.name}`;
|
|
161
|
+
if (context) {
|
|
162
|
+
tcText += ` ${context}`;
|
|
163
|
+
}
|
|
164
|
+
if (tcText.length > maxWidth) {
|
|
165
|
+
tcText = tcText.slice(0, maxWidth - 1) + '…';
|
|
166
|
+
}
|
|
167
|
+
lines.push({ text: tcText, styleKey: 'toolCall' });
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
if (msg.agentMessage) {
|
|
171
|
+
lines.push({ text: '', styleKey: 'text' });
|
|
172
|
+
const mdTokens = parse(msg.agentMessage);
|
|
173
|
+
const mdLines = renderTokens(mdTokens, maxWidth - 6);
|
|
174
|
+
const prefix = ' │ ';
|
|
175
|
+
const prefixLen = prefix.length;
|
|
176
|
+
for (const mdLine of mdLines) {
|
|
177
|
+
const segments = [];
|
|
178
|
+
if (mdLine.text.length > 0 && mdLine.styleKey !== 'text') {
|
|
179
|
+
segments.push({
|
|
180
|
+
start: prefixLen,
|
|
181
|
+
end: prefixLen + mdLine.text.length,
|
|
182
|
+
styleKey: mdLine.styleKey,
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
if (mdLine.segments) {
|
|
186
|
+
for (const s of mdLine.segments) {
|
|
187
|
+
segments.push({
|
|
188
|
+
start: s.start + prefixLen,
|
|
189
|
+
end: s.end + prefixLen,
|
|
190
|
+
styleKey: s.styleKey,
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
lines.push({
|
|
195
|
+
text: prefix + mdLine.text,
|
|
196
|
+
styleKey: 'text',
|
|
197
|
+
segments: segments.length > 0 ? segments : undefined,
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
if (stepIsDone) {
|
|
202
|
+
lines.push({ text: '', styleKey: 'text' });
|
|
203
|
+
lines.push({ text: ' ■ Done', styleKey: 'statusDone' });
|
|
204
|
+
}
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
case 'agent': {
|
|
208
|
+
lines.push({ text: '', styleKey: 'text' });
|
|
209
|
+
const agentTokens = parse(msg.content);
|
|
210
|
+
const agentLines = renderTokens(agentTokens, maxWidth - 6);
|
|
211
|
+
for (const mdLine of agentLines) {
|
|
212
|
+
lines.push({
|
|
213
|
+
text: ' │ ' + mdLine.text,
|
|
214
|
+
styleKey: mdLine.styleKey,
|
|
215
|
+
segments: mdLine.segments ? mdLine.segments.map(s => ({
|
|
216
|
+
...s,
|
|
217
|
+
start: s.start + 6,
|
|
218
|
+
end: s.end + 6
|
|
219
|
+
})) : undefined,
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
case 'status': {
|
|
225
|
+
lines.push({ text: '', styleKey: 'text' });
|
|
226
|
+
const isDone = msg.content.includes('Done') || msg.content.includes('completed');
|
|
227
|
+
const isCancelled = msg.content.includes('Cancelled');
|
|
228
|
+
if (isDone) {
|
|
229
|
+
lines.push({ text: ' ■ Done', styleKey: 'statusDone' });
|
|
230
|
+
}
|
|
231
|
+
else if (isCancelled) {
|
|
232
|
+
lines.push({ text: ' ⊘ Cancelled', styleKey: 'statusDone' });
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
const lineText = ' ' + msg.content;
|
|
236
|
+
const line = { text: lineText, styleKey: 'statusDefault' };
|
|
237
|
+
if (msg.linkUrl) {
|
|
238
|
+
const linkLabel = 'Open ↗';
|
|
239
|
+
const linkStart = lineText.indexOf(linkLabel);
|
|
240
|
+
if (linkStart >= 0) {
|
|
241
|
+
line.links = [{ start: linkStart, end: linkStart + linkLabel.length, url: msg.linkUrl }];
|
|
242
|
+
line.segments = [{ start: linkStart, end: linkStart + linkLabel.length, styleKey: 'value' }];
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
lines.push(line);
|
|
246
|
+
}
|
|
247
|
+
break;
|
|
248
|
+
}
|
|
249
|
+
case 'error':
|
|
250
|
+
lines.push({ text: '', styleKey: 'text' });
|
|
251
|
+
lines.push({ text: ' ✗ ' + msg.content, styleKey: 'statusDefault' });
|
|
252
|
+
break;
|
|
253
|
+
default:
|
|
254
|
+
lines.push({ text: ' ' + msg.content, styleKey: 'text' });
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
// Show "Thinking" with blinking dot when waiting for next step
|
|
258
|
+
if (showThinking && !state.pendingPrompt) {
|
|
259
|
+
lines.push({ text: '', styleKey: 'text' });
|
|
260
|
+
const thinkingDot = state.blinkVisible ? '●' : ' ';
|
|
261
|
+
lines.push({ text: ` ${thinkingDot} Thinking...`, styleKey: 'toolStep' });
|
|
262
|
+
}
|
|
263
|
+
// Show pending question indicator
|
|
264
|
+
if (state.pendingPrompt) {
|
|
265
|
+
lines.push({ text: '', styleKey: 'text' });
|
|
266
|
+
lines.push({ text: ' ? Awaiting answer', styleKey: 'statusDone' });
|
|
267
|
+
}
|
|
268
|
+
// Show cancellation progress (transient — replaced by status message when server confirms)
|
|
269
|
+
if (state.currentTaskId && state.activityPhase === 'cancelling') {
|
|
270
|
+
lines.push({ text: '', styleKey: 'text' });
|
|
271
|
+
lines.push({ text: ' ⊘ Cancelling...', styleKey: 'statusDefault' });
|
|
272
|
+
}
|
|
273
|
+
// Stream buffer (in-progress streaming text with markdown)
|
|
274
|
+
if (state.streamBuffer) {
|
|
275
|
+
lines.push({ text: '', styleKey: 'text' });
|
|
276
|
+
const streamTokens = parse(state.streamBuffer);
|
|
277
|
+
const streamMdLines = renderTokens(streamTokens, maxWidth);
|
|
278
|
+
for (const mdLine of streamMdLines) {
|
|
279
|
+
lines.push({
|
|
280
|
+
text: mdLine.text,
|
|
281
|
+
styleKey: 'streamText',
|
|
282
|
+
segments: mdLine.segments,
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
return lines;
|
|
287
|
+
}
|
|
288
|
+
const messages = {
|
|
289
|
+
getLines,
|
|
290
|
+
height(state) {
|
|
291
|
+
return getLines(state.layout.width).length;
|
|
292
|
+
},
|
|
293
|
+
draw(screen, y, state, layout, styles) {
|
|
294
|
+
const height = layout.messagesHeight;
|
|
295
|
+
if (height <= 0)
|
|
296
|
+
return;
|
|
297
|
+
const lines = getLines(layout.width);
|
|
298
|
+
const totalLines = lines.length;
|
|
299
|
+
// Clamp scrollOffset to valid range (scrollOffset is bottom-based:
|
|
300
|
+
// 0 = pinned to latest, higher = scrolled further back)
|
|
301
|
+
const maxScroll = Math.max(0, totalLines - height);
|
|
302
|
+
state.scrollOffset = Math.min(state.scrollOffset || 0, maxScroll);
|
|
303
|
+
const scrollOffset = state.scrollOffset;
|
|
304
|
+
// Calculate visible range (scroll from bottom)
|
|
305
|
+
const startLine = Math.max(0, totalLines - height - scrollOffset);
|
|
306
|
+
const endLine = Math.min(totalLines, startLine + height);
|
|
307
|
+
// Pin content to bottom of available space
|
|
308
|
+
const visibleLines = endLine - startLine;
|
|
309
|
+
const bottomOffset = height - visibleLines;
|
|
310
|
+
for (let i = startLine; i < endLine; i++) {
|
|
311
|
+
const drawY = y + bottomOffset + (i - startLine);
|
|
312
|
+
drawStyledLine(screen, 0, drawY, lines[i], styles, layout.width);
|
|
313
|
+
}
|
|
314
|
+
// Scroll indicators
|
|
315
|
+
if (scrollOffset > 0) {
|
|
316
|
+
const indicator = 'Shift+\u2B07';
|
|
317
|
+
drawText(screen, layout.width - indicator.length - 1, y + height - 1, indicator, styles.dim || 0);
|
|
318
|
+
}
|
|
319
|
+
if (startLine > 0) {
|
|
320
|
+
const indicator = 'Shift+\u2B06';
|
|
321
|
+
drawText(screen, layout.width - indicator.length - 1, y + bottomOffset, indicator, styles.dim || 0);
|
|
322
|
+
}
|
|
323
|
+
},
|
|
324
|
+
handleKey(_str, _key, _state) {
|
|
325
|
+
return { handled: false };
|
|
326
|
+
}
|
|
327
|
+
};
|
|
328
|
+
export default messages;
|
|
329
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/ui/messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI Drawing Primitives — Screen-based drawing for full-screen renderer
|
|
3
|
+
*
|
|
4
|
+
* Components use these to draw directly to the Screen buffer.
|
|
5
|
+
*/
|
|
6
|
+
import type { Screen } from '../screen.js';
|
|
7
|
+
import type { StyleMap, StyledLine, LineSegment, LineLink } from '../types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Draw text at position, using a single style.
|
|
10
|
+
* Clips to maxWidth if specified.
|
|
11
|
+
*/
|
|
12
|
+
export declare function drawText(screen: Screen, x: number, y: number, text: string, styleId: number, maxWidth?: number): void;
|
|
13
|
+
/**
|
|
14
|
+
* Draw text with per-character style overrides via segments.
|
|
15
|
+
* Used for markdown rendering, syntax highlighting, etc.
|
|
16
|
+
*/
|
|
17
|
+
export declare function drawTextWithSegments(screen: Screen, x: number, y: number, text: string, defaultStyleId: number, segments: LineSegment[] | undefined, styles: StyleMap, maxWidth?: number, links?: LineLink[]): void;
|
|
18
|
+
/**
|
|
19
|
+
* Draw a styled line at position.
|
|
20
|
+
* Resolves styleKey + segments against the styles map.
|
|
21
|
+
*/
|
|
22
|
+
export declare function drawStyledLine(screen: Screen, x: number, y: number, line: StyledLine, styles: StyleMap, maxWidth?: number): void;
|
|
23
|
+
/**
|
|
24
|
+
* Draw text as a clickable hyperlink (OSC 8).
|
|
25
|
+
* The display text is shown; clicking opens the URL.
|
|
26
|
+
*/
|
|
27
|
+
export declare function drawLink(screen: Screen, x: number, y: number, text: string, url: string, styleId: number, maxWidth?: number): void;
|
|
28
|
+
/**
|
|
29
|
+
* Draw a horizontal line.
|
|
30
|
+
*/
|
|
31
|
+
export declare function drawHLine(screen: Screen, x: number, y: number, width: number, styleId: number, char?: string): void;
|
|
32
|
+
/**
|
|
33
|
+
* Draw a box outline using box-drawing characters.
|
|
34
|
+
*/
|
|
35
|
+
export declare function drawBox(screen: Screen, x: number, y: number, w: number, h: number, styleId: number): void;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI Drawing Primitives — Screen-based drawing for full-screen renderer
|
|
3
|
+
*
|
|
4
|
+
* Components use these to draw directly to the Screen buffer.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Draw text at position, using a single style.
|
|
8
|
+
* Clips to maxWidth if specified.
|
|
9
|
+
*/
|
|
10
|
+
export function drawText(screen, x, y, text, styleId, maxWidth) {
|
|
11
|
+
const limit = maxWidth !== undefined ? Math.min(text.length, maxWidth) : text.length;
|
|
12
|
+
for (let i = 0; i < limit; i++) {
|
|
13
|
+
screen.set(x + i, y, text[i], styleId);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Draw text with per-character style overrides via segments.
|
|
18
|
+
* Used for markdown rendering, syntax highlighting, etc.
|
|
19
|
+
*/
|
|
20
|
+
export function drawTextWithSegments(screen, x, y, text, defaultStyleId, segments, styles, maxWidth, links) {
|
|
21
|
+
const limit = maxWidth !== undefined ? Math.min(text.length, maxWidth) : text.length;
|
|
22
|
+
for (let i = 0; i < limit; i++) {
|
|
23
|
+
let styleId = defaultStyleId;
|
|
24
|
+
// Check if this character falls within any segment
|
|
25
|
+
if (segments) {
|
|
26
|
+
for (const seg of segments) {
|
|
27
|
+
if (i >= seg.start && i < seg.end) {
|
|
28
|
+
styleId = styles[seg.styleKey] ?? defaultStyleId;
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// Check if this character falls within a link
|
|
34
|
+
let linkUrl;
|
|
35
|
+
if (links) {
|
|
36
|
+
for (const link of links) {
|
|
37
|
+
if (i >= link.start && i < link.end) {
|
|
38
|
+
linkUrl = link.url;
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
screen.set(x + i, y, text[i], styleId, linkUrl);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Draw a styled line at position.
|
|
48
|
+
* Resolves styleKey + segments against the styles map.
|
|
49
|
+
*/
|
|
50
|
+
export function drawStyledLine(screen, x, y, line, styles, maxWidth) {
|
|
51
|
+
const defaultStyleId = styles[line.styleKey] ?? 0;
|
|
52
|
+
if ((line.segments && line.segments.length > 0) || (line.links && line.links.length > 0)) {
|
|
53
|
+
drawTextWithSegments(screen, x, y, line.text, defaultStyleId, line.segments, styles, maxWidth, line.links);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
drawText(screen, x, y, line.text, defaultStyleId, maxWidth);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Draw text as a clickable hyperlink (OSC 8).
|
|
61
|
+
* The display text is shown; clicking opens the URL.
|
|
62
|
+
*/
|
|
63
|
+
export function drawLink(screen, x, y, text, url, styleId, maxWidth) {
|
|
64
|
+
const limit = maxWidth !== undefined ? Math.min(text.length, maxWidth) : text.length;
|
|
65
|
+
for (let i = 0; i < limit; i++) {
|
|
66
|
+
screen.set(x + i, y, text[i], styleId, url);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Draw a horizontal line.
|
|
71
|
+
*/
|
|
72
|
+
export function drawHLine(screen, x, y, width, styleId, char = '─') {
|
|
73
|
+
for (let i = 0; i < width; i++) {
|
|
74
|
+
screen.set(x + i, y, char, styleId);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Draw a box outline using box-drawing characters.
|
|
79
|
+
*/
|
|
80
|
+
export function drawBox(screen, x, y, w, h, styleId) {
|
|
81
|
+
screen.set(x, y, '╭', styleId);
|
|
82
|
+
screen.set(x + w - 1, y, '╮', styleId);
|
|
83
|
+
screen.set(x, y + h - 1, '╰', styleId);
|
|
84
|
+
screen.set(x + w - 1, y + h - 1, '╯', styleId);
|
|
85
|
+
for (let i = 1; i < w - 1; i++) {
|
|
86
|
+
screen.set(x + i, y, '─', styleId);
|
|
87
|
+
screen.set(x + i, y + h - 1, '─', styleId);
|
|
88
|
+
}
|
|
89
|
+
for (let i = 1; i < h - 1; i++) {
|
|
90
|
+
screen.set(x, y + i, '│', styleId);
|
|
91
|
+
screen.set(x + w - 1, y + i, '│', styleId);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=primitives.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/ui/primitives.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt Input Component — full-screen draw() API
|
|
3
|
+
* Shows when agent asks a freeform question (no options)
|
|
4
|
+
* or when user selects "Other" from prompt picker
|
|
5
|
+
*/
|
|
6
|
+
import type { UIComponent } from '../types.js';
|
|
7
|
+
declare const promptInput: UIComponent;
|
|
8
|
+
export default promptInput;
|