@syntero/orca-cli 1.1.16 → 1.1.17

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.
Files changed (53) hide show
  1. package/dist/assistant.d.ts +41 -3
  2. package/dist/assistant.d.ts.map +1 -1
  3. package/dist/assistant.js +143 -14
  4. package/dist/assistant.js.map +1 -1
  5. package/dist/autocomplete.d.ts.map +1 -1
  6. package/dist/autocomplete.js +2 -0
  7. package/dist/autocomplete.js.map +1 -1
  8. package/dist/components/ChatApp.d.ts.map +1 -1
  9. package/dist/components/ChatApp.js +172 -9
  10. package/dist/components/ChatApp.js.map +1 -1
  11. package/dist/components/CommandConfirmation.d.ts +44 -0
  12. package/dist/components/CommandConfirmation.d.ts.map +1 -0
  13. package/dist/components/CommandConfirmation.js +184 -0
  14. package/dist/components/CommandConfirmation.js.map +1 -0
  15. package/dist/components/InputFooter.d.ts +3 -1
  16. package/dist/components/InputFooter.d.ts.map +1 -1
  17. package/dist/components/InputFooter.js +44 -2
  18. package/dist/components/InputFooter.js.map +1 -1
  19. package/dist/components/ResumeMenu.d.ts +23 -0
  20. package/dist/components/ResumeMenu.d.ts.map +1 -0
  21. package/dist/components/ResumeMenu.js +134 -0
  22. package/dist/components/ResumeMenu.js.map +1 -0
  23. package/dist/confirmation/index.d.ts +8 -0
  24. package/dist/confirmation/index.d.ts.map +1 -0
  25. package/dist/confirmation/index.js +8 -0
  26. package/dist/confirmation/index.js.map +1 -0
  27. package/dist/confirmation/patterns.d.ts +58 -0
  28. package/dist/confirmation/patterns.d.ts.map +1 -0
  29. package/dist/confirmation/patterns.js +107 -0
  30. package/dist/confirmation/patterns.js.map +1 -0
  31. package/dist/conversations/index.d.ts +8 -0
  32. package/dist/conversations/index.d.ts.map +1 -0
  33. package/dist/conversations/index.js +8 -0
  34. package/dist/conversations/index.js.map +1 -0
  35. package/dist/conversations/storage.d.ts +80 -0
  36. package/dist/conversations/storage.d.ts.map +1 -0
  37. package/dist/conversations/storage.js +296 -0
  38. package/dist/conversations/storage.js.map +1 -0
  39. package/dist/conversations/types.d.ts +50 -0
  40. package/dist/conversations/types.d.ts.map +1 -0
  41. package/dist/conversations/types.js +5 -0
  42. package/dist/conversations/types.js.map +1 -0
  43. package/dist/index.js +4 -0
  44. package/dist/index.js.map +1 -1
  45. package/dist/terminalTitle.d.ts +28 -0
  46. package/dist/terminalTitle.d.ts.map +1 -0
  47. package/dist/terminalTitle.js +70 -0
  48. package/dist/terminalTitle.js.map +1 -0
  49. package/dist/tools.d.ts +6 -0
  50. package/dist/tools.d.ts.map +1 -1
  51. package/dist/tools.js +7 -6
  52. package/dist/tools.js.map +1 -1
  53. package/package.json +1 -1
@@ -3,15 +3,18 @@ import { useState, useCallback, useRef } from 'react';
3
3
  import { Static, Box, Text, useApp, useInput } from 'ink';
4
4
  import { createRequire } from 'module';
5
5
  import { InputFooter } from './InputFooter.js';
6
+ import { CommandConfirmation } from './CommandConfirmation.js';
6
7
  import { loadSettings } from '../settings.js';
7
8
  // Get package version
8
9
  const require = createRequire(import.meta.url);
9
10
  const pkg = require('../../package.json');
10
- import { runAssistant, summarizeConversation } from '../assistant.js';
11
+ import { runAssistant, summarizeConversation, generateAITitle, } from '../assistant.js';
11
12
  import { Colors, color } from '../utils.js';
12
13
  import { setToken as authSetToken, logout as authLogout, status as authStatus, loadCredentials, } from '../auth.js';
13
14
  import { estimateConversationTokens, shouldAutoCompact, formatTokenCount, AUTO_COMPACT_THRESHOLD, calculateContextBreakdown, generateContextDisplay, } from '../tokens.js';
14
15
  import { debugLog } from '../settings.js';
16
+ import { createConversation, saveConversation, loadConversation, updateConversation, renameConversation, updateConversationTitle, } from '../conversations/index.js';
17
+ import { setConversationTitle, resetTerminalTitle } from '../terminalTitle.js';
15
18
  /**
16
19
  * ChatApp - Main chat component using Ink's Static for persistent footer pattern.
17
20
  *
@@ -33,6 +36,10 @@ export function ChatApp({ settings: initialSettings, createClient, onUpdateComma
33
36
  const [conversationHistory, setConversationHistory] = useState([]);
34
37
  const [streamingMessageId, setStreamingMessageId] = useState(null);
35
38
  const [isCompacting, setIsCompacting] = useState(false);
39
+ // Conversation persistence state
40
+ const [currentConversationId, setCurrentConversationId] = useState(null);
41
+ // Ref to track conversation ID for save logic (avoids closure issues)
42
+ const currentConversationIdRef = useRef(null);
36
43
  // Derived state: check if we're currently streaming
37
44
  const isStreaming = streamingMessageId !== null;
38
45
  // Message queue for messages sent during streaming (using ref for stable reference)
@@ -43,6 +50,11 @@ export function ChatApp({ settings: initialSettings, createClient, onUpdateComma
43
50
  const [commandHistory, setCommandHistory] = useState([]);
44
51
  // Abort controller for interrupting streams
45
52
  const abortControllerRef = useRef(null);
53
+ // Command confirmation state
54
+ const [approvedCategories, setApprovedCategories] = useState(new Set());
55
+ const [pendingConfirmation, setPendingConfirmation] = useState(null);
56
+ // Ref to hold the resolve function for the confirmation Promise
57
+ const confirmationResolverRef = useRef(null);
46
58
  // Next message ID
47
59
  const nextIdRef = useRef(1);
48
60
  const getNextId = () => nextIdRef.current++;
@@ -167,6 +179,8 @@ Available commands:
167
179
  /settings Show current settings
168
180
  /update [path] Update to latest version (pull images, restart services)
169
181
  /sync Sync library from cloud (opens menu)
182
+ /resume Resume a previous conversation
183
+ /rename <title> Rename current conversation
170
184
  /clear Clear conversation
171
185
  /compact [msg] Compact conversation (summarize and reset)
172
186
  Optional: add instructions for what to preserve
@@ -185,6 +199,9 @@ Current conversation: ~${formatTokenCount(tokenCount)} tokens (auto-compact at $
185
199
  if (cmd === '/clear') {
186
200
  setMessages([]);
187
201
  setConversationHistory([]);
202
+ currentConversationIdRef.current = null; // Reset ref
203
+ setCurrentConversationId(null); // Reset conversation ID for fresh start
204
+ resetTerminalTitle(); // Reset terminal title to just "Orca"
188
205
  return { handled: true, output: color('Conversation cleared.', Colors.dim) };
189
206
  }
190
207
  if (cmd === '/compact') {
@@ -214,6 +231,25 @@ Current conversation: ~${formatTokenCount(tokenCount)} tokens (auto-compact at $
214
231
  // Sync is handled inline by InputFooter via SyncMenu
215
232
  return { handled: false };
216
233
  }
234
+ if (cmd === '/resume') {
235
+ // Resume is handled inline by InputFooter via ResumeMenu
236
+ return { handled: false };
237
+ }
238
+ if (cmd === '/rename') {
239
+ if (!currentConversationId) {
240
+ return { handled: true, output: color('No active conversation to rename.', Colors.yellow) };
241
+ }
242
+ const newTitle = args.trim();
243
+ if (!newTitle) {
244
+ return { handled: true, output: color('Usage: /rename <new title>', Colors.yellow) };
245
+ }
246
+ const success = renameConversation(currentConversationId, newTitle);
247
+ if (success) {
248
+ setConversationTitle(newTitle); // Update terminal title
249
+ return { handled: true, output: color(`Conversation renamed to: "${newTitle}"`, Colors.green) };
250
+ }
251
+ return { handled: true, output: color('Failed to rename conversation.', Colors.red) };
252
+ }
217
253
  if (cmd === '/model') {
218
254
  // Model selection is handled inline by InputFooter
219
255
  return { handled: false };
@@ -368,8 +404,17 @@ Current conversation: ~${formatTokenCount(tokenCount)} tokens (auto-compact at $
368
404
  }
369
405
  return null;
370
406
  };
407
+ // Create callback to confirm dangerous commands
408
+ const confirmCommand = async (command, dangerCheck) => {
409
+ return new Promise((resolve) => {
410
+ // Store the resolver so the confirmation handlers can call it
411
+ confirmationResolverRef.current = resolve;
412
+ // Show the confirmation dialog
413
+ setPendingConfirmation({ command, dangerCheck });
414
+ });
415
+ };
371
416
  try {
372
- const generator = runAssistant(client, settings, input, conversationHistory, abortControllerRef.current.signal, getQueuedMessage);
417
+ const generator = runAssistant(client, settings, input, conversationHistory, abortControllerRef.current.signal, getQueuedMessage, confirmCommand, approvedCategories);
373
418
  let fullResponse = '';
374
419
  let result = await generator.next();
375
420
  while (!result.done) {
@@ -397,9 +442,56 @@ Current conversation: ~${formatTokenCount(tokenCount)} tokens (auto-compact at $
397
442
  }
398
443
  }
399
444
  // Mark the streaming message as complete (it's already in the messages array)
400
- setMessages(prev => prev.map(msg => msg.id === assistantMsgId
401
- ? { ...msg, isStreaming: false }
402
- : msg));
445
+ setMessages(prev => {
446
+ const updatedMessages = prev.map(msg => msg.id === assistantMsgId
447
+ ? { ...msg, isStreaming: false }
448
+ : msg);
449
+ // Auto-save conversation after assistant response completes
450
+ // Filter out system messages for storage (keep only user/assistant)
451
+ const savableMessages = updatedMessages.filter(m => m.role !== 'system');
452
+ if (savableMessages.length > 0 && result.value) {
453
+ try {
454
+ // Use ref to get current conversation ID (avoids closure stale value issue)
455
+ const convId = currentConversationIdRef.current;
456
+ debugLog(`[auto-save] convId from ref: ${convId}, savableMessages: ${savableMessages.length}`);
457
+ if (convId) {
458
+ // Update existing conversation
459
+ debugLog(`[auto-save] Updating existing conversation: ${convId}`);
460
+ updateConversation(convId, savableMessages, result.value);
461
+ }
462
+ else {
463
+ // Create new conversation
464
+ const newConversation = createConversation(savableMessages, result.value);
465
+ debugLog(`[auto-save] Creating NEW conversation: ${newConversation.id}`);
466
+ saveConversation(newConversation);
467
+ // Set both ref and state immediately to prevent race condition
468
+ currentConversationIdRef.current = newConversation.id;
469
+ setCurrentConversationId(newConversation.id);
470
+ // Generate AI title asynchronously in background
471
+ // Don't block the user - do it after save completes
472
+ setTimeout(async () => {
473
+ try {
474
+ const aiTitle = await generateAITitle(client, settings, savableMessages);
475
+ if (aiTitle) {
476
+ updateConversationTitle(newConversation.id, aiTitle);
477
+ setConversationTitle(aiTitle); // Update terminal title
478
+ debugLog(`[auto-save] AI title generated: "${aiTitle}"`);
479
+ }
480
+ }
481
+ catch (titleError) {
482
+ // Silently fail - AI title is non-critical
483
+ debugLog(`[auto-save] AI title generation failed: ${titleError}`);
484
+ }
485
+ }, 100);
486
+ }
487
+ }
488
+ catch (saveError) {
489
+ // Silently fail on save errors - don't interrupt user experience
490
+ debugLog(`[auto-save] Error saving conversation: ${saveError}`);
491
+ }
492
+ }
493
+ return updatedMessages;
494
+ });
403
495
  }
404
496
  catch (e) {
405
497
  // Handle abort error gracefully (user interrupted with Escape)
@@ -431,7 +523,7 @@ Current conversation: ~${formatTokenCount(tokenCount)} tokens (auto-compact at $
431
523
  setStreamingMessageId(null);
432
524
  abortControllerRef.current = null;
433
525
  }
434
- }, [client, settings, conversationHistory, commandHistory, handleCommand, reconnectClient, exit, performCompaction]);
526
+ }, [client, settings, conversationHistory, commandHistory, handleCommand, reconnectClient, exit, performCompaction, approvedCategories]);
435
527
  // Handle user input submission - queues messages during streaming
436
528
  const handleSubmit = useCallback(async (input) => {
437
529
  if (!input.trim())
@@ -457,9 +549,80 @@ Current conversation: ~${formatTokenCount(tokenCount)} tokens (auto-compact at $
457
549
  // Not streaming - process immediately
458
550
  await processMessage(input);
459
551
  }, [isStreaming, processMessage]);
460
- // Handle Escape key to interrupt streaming
552
+ // Handle confirmation dialog result
553
+ const handleConfirmationResult = useCallback((result) => {
554
+ if (!confirmationResolverRef.current)
555
+ return;
556
+ if (result.action === 'allow') {
557
+ // Execute the command
558
+ confirmationResolverRef.current({ confirmed: true });
559
+ }
560
+ else if (result.action === 'allow_category' && result.categories) {
561
+ // Add categories to session approvals and execute
562
+ setApprovedCategories(prev => {
563
+ const newSet = new Set(prev);
564
+ for (const cat of result.categories) {
565
+ newSet.add(cat);
566
+ }
567
+ return newSet;
568
+ });
569
+ confirmationResolverRef.current({ confirmed: true, approveCategories: result.categories });
570
+ }
571
+ else {
572
+ // Deny the command
573
+ confirmationResolverRef.current({ confirmed: false });
574
+ }
575
+ // Clear the pending confirmation
576
+ confirmationResolverRef.current = null;
577
+ setPendingConfirmation(null);
578
+ }, []);
579
+ // Handle confirmation cancel (Escape)
580
+ const handleConfirmationCancel = useCallback(() => {
581
+ if (confirmationResolverRef.current) {
582
+ confirmationResolverRef.current({ confirmed: false });
583
+ confirmationResolverRef.current = null;
584
+ }
585
+ setPendingConfirmation(null);
586
+ }, []);
587
+ // Handle resuming a conversation from the ResumeMenu
588
+ const handleResumeConversation = useCallback((conversationId) => {
589
+ const conversation = loadConversation(conversationId);
590
+ if (!conversation) {
591
+ setMessages(prev => [...prev, {
592
+ id: getNextId(),
593
+ role: 'system',
594
+ content: color('Failed to load conversation.', Colors.red),
595
+ timestamp: Date.now(),
596
+ }]);
597
+ return;
598
+ }
599
+ // Clear the terminal screen before showing resumed conversation
600
+ // This prevents old content from mixing with resumed content
601
+ process.stdout.write('\x1B[2J\x1B[0;0H');
602
+ // Reassign message IDs so Ink's Static component treats them as new
603
+ // (Static only renders items it hasn't seen before based on key)
604
+ const messagesWithNewIds = conversation.messages.map(msg => ({
605
+ ...msg,
606
+ id: getNextId(),
607
+ }));
608
+ // Restore the conversation state
609
+ setMessages(messagesWithNewIds);
610
+ setConversationHistory(conversation.conversationHistory);
611
+ currentConversationIdRef.current = conversation.id; // Set ref
612
+ setCurrentConversationId(conversation.id);
613
+ // Update terminal title to reflect the resumed conversation
614
+ setConversationTitle(conversation.title);
615
+ // Add a system message indicating the conversation was resumed
616
+ setMessages(prev => [...prev, {
617
+ id: getNextId(),
618
+ role: 'system',
619
+ content: color(`Resumed conversation: "${conversation.title}"`, Colors.dim),
620
+ timestamp: Date.now(),
621
+ }]);
622
+ }, []);
623
+ // Handle Escape key to interrupt streaming (only when not showing confirmation)
461
624
  useInput((input, key) => {
462
- if (key.escape && isStreaming && abortControllerRef.current) {
625
+ if (key.escape && isStreaming && abortControllerRef.current && !pendingConfirmation) {
463
626
  abortControllerRef.current.abort();
464
627
  }
465
628
  });
@@ -479,6 +642,6 @@ Current conversation: ~${formatTokenCount(tokenCount)} tokens (auto-compact at $
479
642
  // Split messages into completed (for Static) and streaming (rendered dynamically)
480
643
  const completedMessages = messages.filter(m => !m.isStreaming);
481
644
  const streamingMessage = messages.find(m => m.isStreaming);
482
- return (_jsxs(Box, { flexDirection: "column", width: "100%", children: [_jsx(Static, { items: completedMessages, children: renderMessage }), streamingMessage && (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { color: "blue", bold: true, children: "Assistant: " }), streamingMessage.content ? (_jsx(Text, { children: streamingMessage.content })) : (_jsx(Text, { dimColor: true, children: "Thinking..." }))] })), isStreaming && queueLength > 0 && (_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { dimColor: true, children: ["(", queueLength, " message", queueLength > 1 ? 's' : '', " queued)"] }) })), _jsx(InputFooter, { onSubmit: handleSubmit, history: commandHistory, isDisabled: isStreaming || isCompacting, settings: settings })] }));
645
+ return (_jsxs(Box, { flexDirection: "column", width: "100%", children: [_jsx(Static, { items: completedMessages, children: renderMessage }), streamingMessage && (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { color: "blue", bold: true, children: "Assistant: " }), streamingMessage.content ? (_jsx(Text, { children: streamingMessage.content })) : (_jsx(Text, { dimColor: true, children: "Thinking..." }))] })), isStreaming && queueLength > 0 && (_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { dimColor: true, children: ["(", queueLength, " message", queueLength > 1 ? 's' : '', " queued)"] }) })), pendingConfirmation && (_jsx(CommandConfirmation, { isOpen: true, command: pendingConfirmation.command, risks: pendingConfirmation.dangerCheck.matches, riskLevel: pendingConfirmation.dangerCheck.highestRisk || 'moderate', approvedCategories: approvedCategories, onConfirm: handleConfirmationResult, onCancel: handleConfirmationCancel })), _jsx(InputFooter, { onSubmit: handleSubmit, history: commandHistory, isDisabled: isStreaming || isCompacting || !!pendingConfirmation, settings: settings, onResumeConversation: handleResumeConversation })] }));
483
646
  }
484
647
  //# sourceMappingURL=ChatApp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatApp.js","sourceRoot":"","sources":["../../src/components/ChatApp.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatApp.js","sourceRoot":"","sources":["../../src/components/ChatApp.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import React from 'react';
2
+ import { DangerousCommand, RiskLevel } from '../confirmation/patterns.js';
3
+ /**
4
+ * Result of the confirmation dialog.
5
+ */
6
+ export interface ConfirmationResult {
7
+ action: 'allow' | 'deny' | 'allow_category';
8
+ /** Categories to allow for the session (only set when action is 'allow_category') */
9
+ categories?: string[];
10
+ }
11
+ interface CommandConfirmationProps {
12
+ /** Whether the confirmation dialog is open */
13
+ isOpen: boolean;
14
+ /** The command that requires confirmation */
15
+ command: string;
16
+ /** The detected dangerous patterns */
17
+ risks: DangerousCommand[];
18
+ /** The highest risk level detected */
19
+ riskLevel: RiskLevel;
20
+ /** Categories that are already approved for this session */
21
+ approvedCategories: Set<string>;
22
+ /** Callback when user makes a decision */
23
+ onConfirm: (result: ConfirmationResult) => void;
24
+ /** Callback when user cancels (Escape) */
25
+ onCancel: () => void;
26
+ }
27
+ /**
28
+ * CommandConfirmation - Menu-based confirmation dialog for dangerous commands.
29
+ *
30
+ * Uses arrow key navigation with a visual menu of options:
31
+ * - Arrow up/down to navigate between options
32
+ * - Enter to select the highlighted option
33
+ * - First letter shortcuts (Y, N, A) for quick selection
34
+ * - Escape to cancel (same as No)
35
+ *
36
+ * For moderate risks: Select from menu and action executes immediately
37
+ * For severe risks: Select from menu, then type "CONFIRM" to proceed
38
+ */
39
+ export declare function CommandConfirmation({ isOpen, command, risks, riskLevel, approvedCategories, onConfirm, onCancel, }: CommandConfirmationProps): React.ReactElement | null;
40
+ /**
41
+ * Export types for use in other modules.
42
+ */
43
+ export type { DangerousCommand, RiskLevel };
44
+ //# sourceMappingURL=CommandConfirmation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandConfirmation.d.ts","sourceRoot":"","sources":["../../src/components/CommandConfirmation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,gBAAgB,CAAC;IAC5C,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,UAAU,wBAAwB;IAChC,8CAA8C;IAC9C,MAAM,EAAE,OAAO,CAAC;IAChB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,sCAAsC;IACtC,SAAS,EAAE,SAAS,CAAC;IACrB,4DAA4D;IAC5D,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,0CAA0C;IAC1C,SAAS,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAChD,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAgBD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,OAAO,EACP,KAAK,EACL,SAAS,EACT,kBAAkB,EAClB,SAAS,EACT,QAAQ,GACT,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAiRtD;AAED;;GAEG;AACH,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,184 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { useState, useEffect, useCallback } from 'react';
3
+ import { Box, Text, useInput } from 'ink';
4
+ /**
5
+ * CommandConfirmation - Menu-based confirmation dialog for dangerous commands.
6
+ *
7
+ * Uses arrow key navigation with a visual menu of options:
8
+ * - Arrow up/down to navigate between options
9
+ * - Enter to select the highlighted option
10
+ * - First letter shortcuts (Y, N, A) for quick selection
11
+ * - Escape to cancel (same as No)
12
+ *
13
+ * For moderate risks: Select from menu and action executes immediately
14
+ * For severe risks: Select from menu, then type "CONFIRM" to proceed
15
+ */
16
+ export function CommandConfirmation({ isOpen, command, risks, riskLevel, approvedCategories, onConfirm, onCancel, }) {
17
+ // Menu selection state
18
+ const [selectedIndex, setSelectedIndex] = useState(0);
19
+ // Phase tracking for severe risk commands
20
+ const [confirmPhase, setConfirmPhase] = useState('menu');
21
+ const [selectedAction, setSelectedAction] = useState(null);
22
+ // Text input state for typing "CONFIRM" (severe risks only)
23
+ const [confirmText, setConfirmText] = useState('');
24
+ const [cursorPos, setCursorPos] = useState(0);
25
+ // Get unique categories from risks that aren't already approved
26
+ const unapprovedCategories = [...new Set(risks.map(r => r.category))]
27
+ .filter(cat => !approvedCategories.has(cat));
28
+ // Build menu options dynamically
29
+ const menuOptions = [
30
+ { id: 'yes', label: 'Yes - Execute this command', shortcut: 'Y', color: 'green' },
31
+ { id: 'no', label: 'No - Cancel', shortcut: 'N', color: 'red' },
32
+ ];
33
+ // Only show "Allow for session" if there are unapproved categories
34
+ if (unapprovedCategories.length > 0) {
35
+ const categoryLabel = unapprovedCategories.join('/');
36
+ menuOptions.push({
37
+ id: 'allow_category',
38
+ label: `Allow ${categoryLabel} for session`,
39
+ shortcut: 'A',
40
+ color: 'blue',
41
+ });
42
+ }
43
+ // Reset state when dialog opens
44
+ useEffect(() => {
45
+ if (isOpen) {
46
+ setSelectedIndex(0);
47
+ setConfirmPhase('menu');
48
+ setSelectedAction(null);
49
+ setConfirmText('');
50
+ setCursorPos(0);
51
+ }
52
+ }, [isOpen]);
53
+ // Execute the final action
54
+ const executeAction = useCallback((action) => {
55
+ if (action === 'yes') {
56
+ onConfirm({ action: 'allow' });
57
+ }
58
+ else if (action === 'no') {
59
+ onConfirm({ action: 'deny' });
60
+ }
61
+ else if (action === 'allow_category') {
62
+ onConfirm({
63
+ action: 'allow_category',
64
+ categories: unapprovedCategories,
65
+ });
66
+ }
67
+ }, [onConfirm, unapprovedCategories]);
68
+ // Handle menu option selection
69
+ const handleMenuSelect = useCallback((action) => {
70
+ // "No" doesn't require typing CONFIRM even for severe risks
71
+ if (action === 'no') {
72
+ executeAction(action);
73
+ return;
74
+ }
75
+ if (riskLevel === 'severe') {
76
+ // For severe risks, transition to typing phase
77
+ setSelectedAction(action);
78
+ setConfirmPhase('typing');
79
+ setConfirmText('');
80
+ setCursorPos(0);
81
+ }
82
+ else {
83
+ // For moderate risks, execute immediately
84
+ executeAction(action);
85
+ }
86
+ }, [riskLevel, executeAction]);
87
+ // Handle keyboard input
88
+ useInput((input, key) => {
89
+ if (!isOpen)
90
+ return;
91
+ // Escape handling
92
+ if (key.escape) {
93
+ if (confirmPhase === 'typing') {
94
+ // Go back to menu from typing phase
95
+ setConfirmPhase('menu');
96
+ setSelectedAction(null);
97
+ setConfirmText('');
98
+ setCursorPos(0);
99
+ }
100
+ else {
101
+ // Cancel the entire dialog
102
+ onCancel();
103
+ }
104
+ return;
105
+ }
106
+ if (confirmPhase === 'menu') {
107
+ // Arrow key navigation (with wraparound)
108
+ if (key.upArrow) {
109
+ setSelectedIndex(prev => (prev > 0 ? prev - 1 : menuOptions.length - 1));
110
+ return;
111
+ }
112
+ if (key.downArrow) {
113
+ setSelectedIndex(prev => (prev < menuOptions.length - 1 ? prev + 1 : 0));
114
+ return;
115
+ }
116
+ // Enter to select current option
117
+ if (key.return) {
118
+ handleMenuSelect(menuOptions[selectedIndex].id);
119
+ return;
120
+ }
121
+ // First letter shortcuts (Y, N, A)
122
+ const upperInput = input.toUpperCase();
123
+ for (const option of menuOptions) {
124
+ if (upperInput === option.shortcut) {
125
+ handleMenuSelect(option.id);
126
+ return;
127
+ }
128
+ }
129
+ }
130
+ else if (confirmPhase === 'typing') {
131
+ // Typing "CONFIRM" for severe risks
132
+ if (key.return) {
133
+ if (confirmText.toUpperCase() === 'CONFIRM' && selectedAction) {
134
+ executeAction(selectedAction);
135
+ }
136
+ // Otherwise ignore Enter - need correct text
137
+ return;
138
+ }
139
+ // Backspace to delete character
140
+ if (key.backspace || key.delete) {
141
+ if (cursorPos > 0) {
142
+ setConfirmText(prev => prev.slice(0, cursorPos - 1) + prev.slice(cursorPos));
143
+ setCursorPos(prev => prev - 1);
144
+ }
145
+ return;
146
+ }
147
+ // Arrow keys for cursor movement within text
148
+ if (key.leftArrow) {
149
+ setCursorPos(prev => Math.max(0, prev - 1));
150
+ return;
151
+ }
152
+ if (key.rightArrow) {
153
+ setCursorPos(prev => Math.min(confirmText.length, prev + 1));
154
+ return;
155
+ }
156
+ // Ctrl+U to clear input
157
+ if (input === 'u' && key.ctrl) {
158
+ setConfirmText('');
159
+ setCursorPos(0);
160
+ return;
161
+ }
162
+ // Regular character input
163
+ if (input && !key.ctrl && !key.meta) {
164
+ setConfirmText(prev => prev.slice(0, cursorPos) + input + prev.slice(cursorPos));
165
+ setCursorPos(prev => prev + input.length);
166
+ }
167
+ }
168
+ }, { isActive: isOpen });
169
+ if (!isOpen) {
170
+ return null;
171
+ }
172
+ // Truncate command if too long for display
173
+ const displayCommand = command.length > 100 ? command.slice(0, 100) + '...' : command;
174
+ // Risk level styling
175
+ const riskColor = riskLevel === 'severe' ? 'red' : 'yellow';
176
+ const riskLabel = riskLevel === 'severe' ? 'SEVERE RISK' : 'MODERATE RISK';
177
+ return (_jsxs(Box, { flexDirection: "column", borderStyle: "double", borderColor: riskColor, paddingX: 1, marginTop: 0, children: [_jsx(Box, { marginBottom: 0, children: _jsxs(Text, { bold: true, color: riskColor, children: ["Command Confirmation Required - ", riskLabel] }) }), _jsxs(Box, { marginTop: 1, marginBottom: 1, children: [_jsx(Text, { dimColor: true, children: "Command: " }), _jsx(Text, { color: "cyan", children: displayCommand })] }), _jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsx(Text, { bold: true, children: "Detected risks:" }), risks.map((risk, index) => (_jsxs(Box, { marginLeft: 2, children: [_jsxs(Text, { color: risk.riskLevel === 'severe' ? 'red' : 'yellow', children: ["[", risk.category, "]"] }), _jsxs(Text, { children: [" ", risk.description] })] }, index)))] }), confirmPhase === 'menu' ? (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { children: "Proceed with this command?" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: menuOptions.map((option, index) => {
178
+ const isSelected = index === selectedIndex;
179
+ return (_jsx(Box, { children: isSelected ? (_jsx(Text, { inverse: true, bold: true, children: ' > [' + option.shortcut + '] ' + option.label + ' ' })) : (_jsxs(Text, { children: [' ', _jsxs(Text, { color: option.color, children: ["[", option.shortcut, "]"] }), _jsxs(Text, { children: [" ", option.label] })] })) }, option.id));
180
+ }) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: "Use arrows to navigate, Enter or shortcut key to select, Esc to cancel" }) })] })) : (
181
+ // Typing "CONFIRM" phase for severe risks
182
+ _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Text, { color: "red", bold: true, children: ["Type CONFIRM to ", selectedAction === 'yes' ? 'execute this command' : 'allow category for session', ":"] }), _jsxs(Box, { marginTop: 0, children: [_jsx(Text, { dimColor: true, children: '> ' }), _jsx(Text, { children: confirmText.slice(0, cursorPos) }), _jsx(Text, { inverse: true, children: confirmText[cursorPos] || ' ' }), _jsx(Text, { children: confirmText.slice(cursorPos + 1) }), confirmText.toUpperCase() === 'CONFIRM' && (_jsx(Text, { color: "green", children: " (Press Enter to proceed)" }))] }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: "Type CONFIRM and press Enter, or Esc to go back" }) })] }))] }));
183
+ }
184
+ //# sourceMappingURL=CommandConfirmation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandConfirmation.js","sourceRoot":"","sources":["../../src/components/CommandConfirmation.tsx"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ interface InputFooterProps {
5
5
  history?: string[];
6
6
  isDisabled?: boolean;
7
7
  settings?: Settings;
8
+ /** Called when user selects a conversation to resume */
9
+ onResumeConversation?: (conversationId: string) => void;
8
10
  }
9
11
  /**
10
12
  * InputFooter - Persistent input component for the chat footer.
@@ -28,6 +30,6 @@ interface InputFooterProps {
28
30
  * - Escape: Close command palette (during streaming, parent handles interrupt)
29
31
  * - Ctrl+C: Exit
30
32
  */
31
- export declare function InputFooter({ onSubmit, history, isDisabled, settings, }: InputFooterProps): React.ReactElement;
33
+ export declare function InputFooter({ onSubmit, history, isDisabled, settings, onResumeConversation, }: InputFooterProps): React.ReactElement;
32
34
  export {};
33
35
  //# sourceMappingURL=InputFooter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputFooter.d.ts","sourceRoot":"","sources":["../../src/components/InputFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AASzE,OAAO,EAAE,QAAQ,EAAwD,MAAM,gBAAgB,CAAC;AAOhG,UAAU,gBAAgB;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,OAAY,EACZ,UAAkB,EAClB,QAAQ,GACT,EAAE,gBAAgB,GAAG,KAAK,CAAC,YAAY,CAwuBvC"}
1
+ {"version":3,"file":"InputFooter.d.ts","sourceRoot":"","sources":["../../src/components/InputFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAWzE,OAAO,EAAE,QAAQ,EAAwD,MAAM,gBAAgB,CAAC;AAOhG,UAAU,gBAAgB;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,wDAAwD;IACxD,oBAAoB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;CACzD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,OAAY,EACZ,UAAkB,EAClB,QAAQ,EACR,oBAAoB,GACrB,EAAE,gBAAgB,GAAG,KAAK,CAAC,YAAY,CAgyBvC"}