@ask-thane/thane-cli 0.1.5 → 0.1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AAkMA,wBAAsB,OAAO,CAAC,cAAc,SAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA+IvE"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AAiUA,wBAAsB,OAAO,CAAC,cAAc,SAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAicvE"}
package/dist/chat.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { stdin as input, stdout as output } from "node:process";
2
2
  import { emitKeypressEvents } from "node:readline";
3
- import { renderSlashCommands } from "./slash-commands.js";
3
+ import { completeSlashCommand, renderSlashCommands, slashCommands } from "./slash-commands.js";
4
4
  import { ThaneStore } from "./store.js";
5
5
  const CLEAR = "\x1b[2J\x1b[H";
6
6
  const HIDE_CURSOR = "\x1b[?25l";
@@ -105,16 +105,92 @@ async function selectConversation(store, target) {
105
105
  }
106
106
  return store.createChannel(target.replace(/^#/, ""));
107
107
  }
108
- function renderMessage(message, width) {
108
+ function renderMessage(message, width, selected = false) {
109
109
  const date = new Date(message.createdAt);
110
110
  const time = Number.isNaN(date.getTime())
111
111
  ? message.createdAt
112
112
  : date.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" });
113
- const prefix = `${DIM}${time}${RESET} ${BOLD}${message.author}${RESET}: `;
113
+ const marker = selected ? `${BOLD}>${RESET} ` : " ";
114
+ const thread = message.replyCount > 0 ? ` ${DIM}(${message.replyCount} replies)${RESET}` : "";
115
+ const reactions = message.reactions.length > 0
116
+ ? ` ${DIM}${message.reactions.map((reaction) => reaction.emoji).join(" ")}${RESET}`
117
+ : "";
118
+ const prefix = `${marker}${DIM}${time}${RESET} ${BOLD}${message.author}${RESET}: `;
114
119
  const bodyWidth = Math.max(10, width - visibleLength(prefix));
115
- const lines = wrap(message.text, bodyWidth);
120
+ const lines = wrap(`${message.text}${thread}${reactions}`, bodyWidth);
116
121
  return lines.map((line, index) => (index === 0 ? `${prefix}${line}` : `${" ".repeat(visibleLength(prefix))}${line}`));
117
122
  }
123
+ function commandMatches(inputText) {
124
+ if (!inputText.startsWith("/")) {
125
+ return [];
126
+ }
127
+ const [names] = completeSlashCommand(inputText);
128
+ return names
129
+ .map((name) => slashCommands.find((command) => command.name === name))
130
+ .filter((command) => Boolean(command));
131
+ }
132
+ function replaceTrailingToken(inputText, value) {
133
+ const match = inputText.match(/(^|\s)(\S*)$/);
134
+ if (!match || match.index === undefined) {
135
+ return value;
136
+ }
137
+ const start = match.index + (match[1]?.length ?? 0);
138
+ return `${inputText.slice(0, start)}${value}`;
139
+ }
140
+ function completionCandidates(store, inputText) {
141
+ if (inputText.startsWith("/join ")) {
142
+ const prefix = inputText.slice("/join ".length).replace(/^#/, "").toLowerCase();
143
+ return store
144
+ .listChannels()
145
+ .filter((channel) => channel.name.startsWith(prefix))
146
+ .map((channel) => ({ label: `#${channel.name}`, value: `/join ${channel.name}` }));
147
+ }
148
+ if (inputText.startsWith("/workspace ")) {
149
+ const prefix = inputText.slice("/workspace ".length).toLowerCase();
150
+ return store
151
+ .listWorkspaces()
152
+ .filter((workspace) => workspace.slug.startsWith(prefix))
153
+ .map((workspace) => ({ label: workspace.slug, value: `/workspace ${workspace.slug}` }));
154
+ }
155
+ if (inputText.startsWith("/dm ")) {
156
+ const prefix = inputText.slice("/dm ".length).replace(/^@/, "").toLowerCase();
157
+ return store
158
+ .listUsers()
159
+ .filter((user) => user.handle.startsWith(prefix) && user.id !== store.currentUser.id)
160
+ .map((user) => ({ label: `@${user.handle}`, value: `/dm ${user.handle}` }));
161
+ }
162
+ const trailingMention = inputText.match(/(^|\s)@([a-z0-9._-]*)$/i);
163
+ if (trailingMention) {
164
+ const prefix = trailingMention[2]?.toLowerCase() ?? "";
165
+ return store
166
+ .listUsers()
167
+ .filter((user) => user.handle.startsWith(prefix))
168
+ .map((user) => ({ label: `@${user.handle}`, value: replaceTrailingToken(inputText, `@${user.handle}`) }));
169
+ }
170
+ return commandMatches(inputText).map((command) => ({
171
+ label: command.usage,
172
+ value: commandInput(command)
173
+ }));
174
+ }
175
+ function renderMenuLines(selectedIndex, availableRows) {
176
+ const visibleRows = Math.max(1, availableRows - 4);
177
+ const start = Math.max(0, Math.min(selectedIndex - Math.floor(visibleRows / 2), slashCommands.length - visibleRows));
178
+ const visibleCommands = slashCommands.slice(start, start + visibleRows);
179
+ return [
180
+ `${BOLD}Command Menu${RESET}`,
181
+ `${DIM}Use arrows, Return to choose, Esc to close.${RESET}`,
182
+ "",
183
+ ...visibleCommands.map((command, index) => {
184
+ const actualIndex = start + index;
185
+ const pointer = actualIndex === selectedIndex ? "> " : " ";
186
+ const row = `${pointer}${command.usage.padEnd(26)} ${command.description}`;
187
+ return actualIndex === selectedIndex ? `${INVERSE}${row}${RESET}` : row;
188
+ })
189
+ ];
190
+ }
191
+ function commandInput(command) {
192
+ return command.needsArgument ? `${command.name} ` : command.name;
193
+ }
118
194
  function renderScreen(inputText, state) {
119
195
  const { columns, rows } = size();
120
196
  const sidebarWidth = Math.min(32, Math.max(24, Math.floor(columns * 0.28)));
@@ -123,28 +199,44 @@ function renderScreen(inputText, state) {
123
199
  const active = state.store.findChannel(state.activeChannelId);
124
200
  const items = conversations(state.store, state.activeChannelId);
125
201
  const messages = state.store.recent(state.activeChannelId, 200);
202
+ const targetMessage = state.targetMessageId ? messages.find((message) => message.id === state.targetMessageId) : undefined;
126
203
  const lines = [];
127
- lines.push(`${CLEAR}${HIDE_CURSOR}${BOLD}Thane Chat${RESET} ${DIM}${state.store.activeWorkspace.slug}${RESET}`);
204
+ const focusLabel = state.focus === "composer" ? "typing" : state.focus === "sidebar" ? "channels" : "messages";
205
+ lines.push(`${CLEAR}${HIDE_CURSOR}${BOLD}Thane Chat${RESET} ${DIM}${state.store.activeWorkspace.slug} / ${focusLabel}${RESET}`);
128
206
  lines.push(`${"─".repeat(columns)}`);
129
- const renderedMessages = messages.flatMap((message) => renderMessage(message, mainWidth - 2));
130
- const helpLines = state.showHelp
131
- ? [
132
- `${BOLD}Commands${RESET}`,
133
- "/join <channel> /dm <handle> /workspace <slug>",
134
- "/commands /help /quit",
135
- "",
136
- ...renderSlashCommands().split("\n").slice(0, Math.max(0, contentRows - 5))
137
- ]
138
- : renderedMessages.slice(-contentRows);
207
+ const firstVisibleMessage = state.focus === "messages"
208
+ ? Math.max(0, Math.min(state.messageIndex - Math.floor(contentRows / 2), messages.length - contentRows))
209
+ : Math.max(0, messages.length - contentRows);
210
+ const renderedMessages = messages
211
+ .slice(firstVisibleMessage)
212
+ .flatMap((message, index) => renderMessage(message, mainWidth - 2, state.focus === "messages" && firstVisibleMessage + index === state.messageIndex));
213
+ const firstVisibleConversation = state.focus === "sidebar"
214
+ ? Math.max(0, Math.min(state.conversationIndex - Math.floor(contentRows / 2), items.length - contentRows))
215
+ : 0;
216
+ const helpLines = state.showMenu
217
+ ? renderMenuLines(state.menuIndex, contentRows)
218
+ : state.showHelp
219
+ ? [
220
+ `${BOLD}Commands${RESET}`,
221
+ "/join <channel> /dm <handle> /workspace <slug>",
222
+ "/commands /help /quit",
223
+ "",
224
+ ...renderSlashCommands().split("\n").slice(0, Math.max(0, contentRows - 5))
225
+ ]
226
+ : renderedMessages.slice(-contentRows);
139
227
  for (let row = 0; row < contentRows; row += 1) {
140
- const item = items[row];
228
+ const itemIndex = firstVisibleConversation + row;
229
+ const item = items[itemIndex];
141
230
  let left = "";
142
231
  if (item) {
143
232
  const unread = item.unreadCount > 0 ? ` ${item.unreadCount}` : "";
144
233
  const mention = item.mentionCount > 0 ? " @" : "";
145
234
  const marker = item.id === state.activeChannelId ? ">" : " ";
146
235
  left = `${marker} ${item.label}${mention}${unread}`;
147
- if (item.id === state.activeChannelId) {
236
+ if (state.focus === "sidebar" && itemIndex === state.conversationIndex) {
237
+ left = `${INVERSE}${fit(left, sidebarWidth)}${RESET}`;
238
+ }
239
+ else if (item.id === state.activeChannelId) {
148
240
  left = `${INVERSE}${fit(left, sidebarWidth)}${RESET}`;
149
241
  }
150
242
  else {
@@ -157,10 +249,25 @@ function renderScreen(inputText, state) {
157
249
  const right = fit(helpLines[row] ?? "", mainWidth - 1);
158
250
  lines.push(`${left}│${right}`);
159
251
  }
160
- const status = state.status || `${active ? channelLabel(active) : "conversation"} ${DIM}Enter sends. Up/down switches. /help for commands.${RESET}`;
252
+ const matches = state.showMenu ? [] : completionCandidates(state.store, inputText).slice(0, 4);
253
+ const suggestionStatus = matches.length > 0
254
+ ? `${DIM}Tab completes:${RESET} ${matches.map((candidate) => candidate.label).join(" ")}`
255
+ : "";
256
+ const modePrefix = state.composerMode === "reply" && targetMessage
257
+ ? `Replying to @${targetMessage.author}. `
258
+ : state.composerMode === "react" && targetMessage
259
+ ? `Reacting to @${targetMessage.author}. `
260
+ : "";
261
+ const defaultStatus = state.focus === "sidebar"
262
+ ? `${DIM}Up/down chooses a channel or DM. Enter opens it. Right returns to messages.${RESET}`
263
+ : state.focus === "messages"
264
+ ? `${DIM}Up/down chooses a message. Enter or r replies. e reacts. Left opens channels. Right types.${RESET}`
265
+ : `${active ? channelLabel(active) : "conversation"} ${DIM}Left channels. Right messages. Up/down recalls input. /menu opens menu.${RESET}`;
266
+ const status = modePrefix || suggestionStatus || state.status || defaultStatus;
161
267
  lines.push(`${"─".repeat(columns)}`);
162
268
  lines.push(fit(status, columns));
163
- lines.push(fit(`> ${inputText}`, columns));
269
+ const prompt = state.composerMode === "reply" ? "reply> " : state.composerMode === "react" ? "react> " : "> ";
270
+ lines.push(fit(`${prompt}${inputText}`, columns));
164
271
  output.write(lines.join("\n"));
165
272
  }
166
273
  export async function runChat(initialChannel = "general") {
@@ -169,10 +276,46 @@ export async function runChat(initialChannel = "general") {
169
276
  let inputText = "";
170
277
  let status = "";
171
278
  let showHelp = false;
279
+ let showMenu = false;
280
+ let menuIndex = 0;
281
+ let focus = "composer";
282
+ let conversationIndex = 0;
283
+ let messageIndex = 0;
284
+ let composerMode = "message";
285
+ let targetMessageId;
286
+ const inputHistory = [];
287
+ let historyIndex;
288
+ let draftInput = "";
172
289
  let isOpen = true;
173
290
  const refresh = async () => {
174
291
  store = await ThaneStore.open();
175
- renderScreen(inputText, { store, activeChannelId: activeChannel.id, status, showHelp });
292
+ const items = conversations(store, activeChannel.id);
293
+ const activeIndex = items.findIndex((item) => item.id === activeChannel.id);
294
+ if (focus !== "sidebar") {
295
+ conversationIndex = Math.max(0, activeIndex);
296
+ }
297
+ else {
298
+ conversationIndex = Math.min(Math.max(0, conversationIndex), Math.max(0, items.length - 1));
299
+ }
300
+ const messages = store.recent(activeChannel.id, 200);
301
+ messageIndex = Math.min(Math.max(0, messageIndex), Math.max(0, messages.length - 1));
302
+ if (targetMessageId && !messages.some((message) => message.id === targetMessageId)) {
303
+ targetMessageId = undefined;
304
+ composerMode = "message";
305
+ }
306
+ renderScreen(inputText, {
307
+ store,
308
+ activeChannelId: activeChannel.id,
309
+ status,
310
+ showHelp,
311
+ showMenu,
312
+ menuIndex,
313
+ focus,
314
+ conversationIndex,
315
+ messageIndex,
316
+ composerMode,
317
+ ...(targetMessageId ? { targetMessageId } : {})
318
+ });
176
319
  };
177
320
  const switchTo = async (conversationId) => {
178
321
  const channel = store.findChannel(conversationId);
@@ -181,11 +324,14 @@ export async function runChat(initialChannel = "general") {
181
324
  }
182
325
  activeChannel = channel;
183
326
  showHelp = false;
327
+ showMenu = false;
328
+ focus = "messages";
329
+ messageIndex = Math.max(0, store.recent(activeChannel.id, 200).length - 1);
184
330
  status = `Switched to ${channelLabel(channel)}`;
185
331
  await store.markReadConversation(activeChannel.id);
186
332
  await refresh();
187
333
  };
188
- const moveSelection = async (direction) => {
334
+ const switchConversation = async (direction) => {
189
335
  const items = conversations(store, activeChannel.id);
190
336
  const index = Math.max(0, items.findIndex((item) => item.id === activeChannel.id));
191
337
  const next = items[(index + direction + items.length) % items.length];
@@ -193,6 +339,84 @@ export async function runChat(initialChannel = "general") {
193
339
  await switchTo(next.id);
194
340
  }
195
341
  };
342
+ const focusSidebar = () => {
343
+ const items = conversations(store, activeChannel.id);
344
+ conversationIndex = Math.max(0, items.findIndex((item) => item.id === activeChannel.id));
345
+ focus = "sidebar";
346
+ status = "";
347
+ };
348
+ const focusMessages = () => {
349
+ const messages = store.recent(activeChannel.id, 200);
350
+ messageIndex = Math.max(0, messages.length - 1);
351
+ focus = "messages";
352
+ status = "";
353
+ };
354
+ const focusComposer = () => {
355
+ focus = "composer";
356
+ status = "";
357
+ };
358
+ const selectedMessage = () => {
359
+ return store.recent(activeChannel.id, 200)[messageIndex];
360
+ };
361
+ const startReply = () => {
362
+ const message = selectedMessage();
363
+ if (!message) {
364
+ status = "No message selected.";
365
+ return;
366
+ }
367
+ targetMessageId = message.id;
368
+ composerMode = "reply";
369
+ inputText = "";
370
+ focus = "composer";
371
+ status = `Replying to @${message.author}`;
372
+ };
373
+ const startReact = () => {
374
+ const message = selectedMessage();
375
+ if (!message) {
376
+ status = "No message selected.";
377
+ return;
378
+ }
379
+ targetMessageId = message.id;
380
+ composerMode = "react";
381
+ inputText = "";
382
+ focus = "composer";
383
+ status = `Reacting to @${message.author}`;
384
+ };
385
+ const rememberInput = (line) => {
386
+ if (!line.trim()) {
387
+ return;
388
+ }
389
+ if (inputHistory[inputHistory.length - 1] !== line) {
390
+ inputHistory.push(line);
391
+ }
392
+ historyIndex = undefined;
393
+ draftInput = "";
394
+ };
395
+ const recallInput = (direction) => {
396
+ if (inputHistory.length === 0) {
397
+ return;
398
+ }
399
+ if (historyIndex === undefined) {
400
+ draftInput = inputText;
401
+ historyIndex = direction === -1 ? inputHistory.length - 1 : 0;
402
+ }
403
+ else {
404
+ historyIndex += direction;
405
+ }
406
+ if (historyIndex < 0) {
407
+ historyIndex = undefined;
408
+ inputText = draftInput;
409
+ draftInput = "";
410
+ return;
411
+ }
412
+ if (historyIndex >= inputHistory.length) {
413
+ historyIndex = undefined;
414
+ inputText = draftInput;
415
+ draftInput = "";
416
+ return;
417
+ }
418
+ inputText = inputHistory[historyIndex] ?? "";
419
+ };
196
420
  const runLine = async (line) => {
197
421
  const trimmed = line.trim();
198
422
  if (!trimmed) {
@@ -202,8 +426,41 @@ export async function runChat(initialChannel = "general") {
202
426
  isOpen = false;
203
427
  return;
204
428
  }
205
- if (trimmed === "/help" || trimmed === "/commands" || trimmed === "/menu") {
429
+ if (composerMode === "reply") {
430
+ if (!targetMessageId) {
431
+ composerMode = "message";
432
+ status = "No reply target selected.";
433
+ return;
434
+ }
435
+ const sent = await store.reply(targetMessageId, trimmed);
436
+ composerMode = "message";
437
+ targetMessageId = undefined;
438
+ messageIndex = Math.max(0, store.recent(activeChannel.id, 200).findIndex((message) => message.id === sent.id));
439
+ status = "";
440
+ await store.markReadConversation(activeChannel.id);
441
+ return;
442
+ }
443
+ if (composerMode === "react") {
444
+ if (!targetMessageId) {
445
+ composerMode = "message";
446
+ status = "No reaction target selected.";
447
+ return;
448
+ }
449
+ await store.react(targetMessageId, trimmed);
450
+ composerMode = "message";
451
+ targetMessageId = undefined;
452
+ status = "Reaction added";
453
+ return;
454
+ }
455
+ if (trimmed === "/menu") {
456
+ showMenu = true;
457
+ showHelp = false;
458
+ status = "Command menu";
459
+ return;
460
+ }
461
+ if (trimmed === "/help" || trimmed === "/commands") {
206
462
  showHelp = !showHelp;
463
+ showMenu = false;
207
464
  status = showHelp ? "Command help" : "";
208
465
  return;
209
466
  }
@@ -212,6 +469,9 @@ export async function runChat(initialChannel = "general") {
212
469
  await store.markReadConversation(activeChannel.id);
213
470
  status = `Joined ${channelLabel(activeChannel)}`;
214
471
  showHelp = false;
472
+ showMenu = false;
473
+ focus = "messages";
474
+ messageIndex = Math.max(0, store.recent(activeChannel.id, 200).length - 1);
215
475
  return;
216
476
  }
217
477
  if (trimmed.startsWith("/dm ")) {
@@ -219,6 +479,9 @@ export async function runChat(initialChannel = "general") {
219
479
  await store.markReadConversation(activeChannel.id);
220
480
  status = `Opened ${channelLabel(activeChannel)}`;
221
481
  showHelp = false;
482
+ showMenu = false;
483
+ focus = "messages";
484
+ messageIndex = Math.max(0, store.recent(activeChannel.id, 200).length - 1);
222
485
  return;
223
486
  }
224
487
  if (trimmed.startsWith("/workspace ")) {
@@ -226,6 +489,7 @@ export async function runChat(initialChannel = "general") {
226
489
  activeChannel = await selectConversation(store, "general");
227
490
  status = `Switched to workspace ${workspace.slug}`;
228
491
  showHelp = false;
492
+ showMenu = false;
229
493
  return;
230
494
  }
231
495
  if (trimmed.startsWith("/")) {
@@ -235,9 +499,48 @@ export async function runChat(initialChannel = "general") {
235
499
  const sent = await store.sendMessage(activeChannel.id, trimmed);
236
500
  const messages = store.recent(activeChannel.id, 200);
237
501
  status = messages.some((message) => message.id === sent.id) ? "" : "";
502
+ messageIndex = Math.max(0, messages.findIndex((message) => message.id === sent.id));
238
503
  showHelp = false;
504
+ showMenu = false;
239
505
  await store.markReadConversation(activeChannel.id);
240
506
  };
507
+ const completeInput = () => {
508
+ const matches = completionCandidates(store, inputText);
509
+ if (matches.length === 0) {
510
+ return false;
511
+ }
512
+ if (matches.length === 1) {
513
+ const match = matches[0];
514
+ if (!match) {
515
+ return false;
516
+ }
517
+ inputText = match.value;
518
+ return true;
519
+ }
520
+ const values = matches.map((candidate) => candidate.value);
521
+ let prefix = values[0] ?? inputText;
522
+ for (const value of values.slice(1)) {
523
+ while (!value.startsWith(prefix) && prefix.length > 1) {
524
+ prefix = prefix.slice(0, -1);
525
+ }
526
+ }
527
+ if (prefix.length > inputText.length) {
528
+ inputText = prefix;
529
+ }
530
+ else {
531
+ const firstCommand = commandMatches(inputText)[0];
532
+ if (firstCommand) {
533
+ menuIndex = Math.max(0, slashCommands.findIndex((command) => command.name === firstCommand.name));
534
+ showMenu = true;
535
+ showHelp = false;
536
+ status = "Command menu";
537
+ }
538
+ else {
539
+ status = `Matches: ${matches.slice(0, 4).map((candidate) => candidate.label).join(" ")}`;
540
+ }
541
+ }
542
+ return true;
543
+ };
241
544
  emitKeypressEvents(input);
242
545
  if (input.isTTY) {
243
546
  input.setRawMode?.(true);
@@ -250,28 +553,153 @@ export async function runChat(initialChannel = "general") {
250
553
  isOpen = false;
251
554
  return;
252
555
  }
556
+ if (showMenu) {
557
+ if (key.name === "escape") {
558
+ showMenu = false;
559
+ status = "";
560
+ }
561
+ else if (key.name === "up") {
562
+ menuIndex = menuIndex === 0 ? slashCommands.length - 1 : menuIndex - 1;
563
+ }
564
+ else if (key.name === "down" || key.name === "tab") {
565
+ menuIndex = menuIndex === slashCommands.length - 1 ? 0 : menuIndex + 1;
566
+ }
567
+ else if (key.name === "return") {
568
+ const selected = slashCommands[menuIndex];
569
+ if (!selected) {
570
+ showMenu = false;
571
+ status = "";
572
+ await refresh();
573
+ return;
574
+ }
575
+ showMenu = false;
576
+ if (selected.needsArgument) {
577
+ inputText = commandInput(selected);
578
+ status = `${selected.usage} ${DIM}${selected.description}${RESET}`;
579
+ }
580
+ else {
581
+ inputText = "";
582
+ await runLine(selected.name);
583
+ }
584
+ }
585
+ if (!isOpen) {
586
+ return;
587
+ }
588
+ await refresh();
589
+ return;
590
+ }
591
+ if (focus === "sidebar") {
592
+ const items = conversations(store, activeChannel.id);
593
+ if (key.name === "up") {
594
+ conversationIndex = conversationIndex === 0 ? Math.max(0, items.length - 1) : conversationIndex - 1;
595
+ }
596
+ else if (key.name === "down") {
597
+ conversationIndex = conversationIndex >= items.length - 1 ? 0 : conversationIndex + 1;
598
+ }
599
+ else if (key.name === "return") {
600
+ const selected = items[conversationIndex];
601
+ if (selected) {
602
+ await switchTo(selected.id);
603
+ return;
604
+ }
605
+ }
606
+ else if (key.name === "right") {
607
+ focusMessages();
608
+ }
609
+ else if (key.name === "left") {
610
+ focusComposer();
611
+ }
612
+ else if (key.name === "escape") {
613
+ focusComposer();
614
+ }
615
+ else if (key.sequence && key.sequence >= " " && !key.ctrl) {
616
+ inputText = key.sequence;
617
+ focusComposer();
618
+ historyIndex = undefined;
619
+ }
620
+ await refresh();
621
+ return;
622
+ }
623
+ if (focus === "messages") {
624
+ const messages = store.recent(activeChannel.id, 200);
625
+ if (key.name === "up") {
626
+ messageIndex = messageIndex === 0 ? Math.max(0, messages.length - 1) : messageIndex - 1;
627
+ }
628
+ else if (key.name === "down") {
629
+ messageIndex = messageIndex >= messages.length - 1 ? 0 : messageIndex + 1;
630
+ }
631
+ else if (key.name === "return" || key.name === "r") {
632
+ startReply();
633
+ }
634
+ else if (key.name === "e" || key.name === "+") {
635
+ startReact();
636
+ }
637
+ else if (key.name === "left") {
638
+ focusSidebar();
639
+ }
640
+ else if (key.name === "right") {
641
+ focusComposer();
642
+ }
643
+ else if (key.name === "escape") {
644
+ focusComposer();
645
+ }
646
+ else if (key.sequence && key.sequence >= " " && !key.ctrl) {
647
+ inputText = key.sequence;
648
+ focusComposer();
649
+ historyIndex = undefined;
650
+ }
651
+ await refresh();
652
+ return;
653
+ }
253
654
  if (key.name === "return") {
254
655
  const submitted = inputText;
255
656
  inputText = "";
657
+ rememberInput(submitted);
256
658
  await runLine(submitted);
257
659
  }
258
660
  else if (key.name === "backspace") {
259
661
  inputText = inputText.slice(0, -1);
662
+ historyIndex = undefined;
260
663
  }
261
664
  else if (key.name === "up") {
262
- await moveSelection(-1);
263
- return;
665
+ if (key.ctrl || key.meta || key.sequence === "\u001b[1;5A" || key.sequence === "\u001b[1;3A") {
666
+ await switchConversation(-1);
667
+ return;
668
+ }
669
+ recallInput(-1);
264
670
  }
265
- else if (key.name === "down" || key.name === "tab") {
266
- await moveSelection(1);
267
- return;
671
+ else if (key.name === "down") {
672
+ if (key.ctrl || key.meta || key.sequence === "\u001b[1;5B" || key.sequence === "\u001b[1;3B") {
673
+ await switchConversation(1);
674
+ return;
675
+ }
676
+ recallInput(1);
677
+ }
678
+ else if (key.name === "tab") {
679
+ if (completeInput()) {
680
+ await refresh();
681
+ return;
682
+ }
683
+ }
684
+ else if (key.name === "left") {
685
+ focusSidebar();
686
+ }
687
+ else if (key.name === "right") {
688
+ focusMessages();
268
689
  }
269
690
  else if (key.name === "escape") {
270
691
  showHelp = false;
692
+ showMenu = false;
693
+ if (composerMode !== "message") {
694
+ composerMode = "message";
695
+ targetMessageId = undefined;
696
+ inputText = "";
697
+ }
271
698
  status = "";
272
699
  }
273
700
  else if (key.sequence && key.sequence >= " " && !key.ctrl) {
274
701
  inputText += key.sequence;
702
+ historyIndex = undefined;
275
703
  }
276
704
  if (!isOpen) {
277
705
  return;
package/dist/chat.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"slash-commands.d.ts","sourceRoot":"","sources":["../src/slash-commands.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,aAAa,EAAE,YAAY,EAmBvC,CAAC;AAEF,wBAAgB,mBAAmB,IAAI,MAAM,CAI5C;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAQrE"}
1
+ {"version":3,"file":"slash-commands.d.ts","sourceRoot":"","sources":["../src/slash-commands.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,aAAa,EAAE,YAAY,EAmBvC,CAAC;AAEF,wBAAgB,mBAAmB,IAAI,MAAM,CAI5C;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CASrE"}
@@ -27,9 +27,10 @@ export function completeSlashCommand(line) {
27
27
  if (!line.startsWith("/")) {
28
28
  return [[], line];
29
29
  }
30
+ const commandPrefix = line.match(/^\/\S*/)?.[0] ?? line;
30
31
  const hits = slashCommands
31
32
  .map((command) => command.name)
32
- .filter((name) => name.startsWith(line));
33
+ .filter((name) => name.startsWith(commandPrefix));
33
34
  return [hits.length > 0 ? hits : slashCommands.map((command) => command.name), line];
34
35
  }
35
36
  //# sourceMappingURL=slash-commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../src/slash-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../src/slash-commands.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ask-thane/thane-cli",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "type": "module",
5
5
  "description": "Terminal-native team chat for Thane workspaces.",
6
6
  "repository": {