@kirosnn/mosaic 0.0.91 → 0.73.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.
Files changed (99) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +2 -6
  3. package/package.json +55 -48
  4. package/src/agent/Agent.ts +353 -131
  5. package/src/agent/context.ts +4 -4
  6. package/src/agent/prompts/systemPrompt.ts +209 -70
  7. package/src/agent/prompts/toolsPrompt.ts +285 -138
  8. package/src/agent/provider/anthropic.ts +109 -105
  9. package/src/agent/provider/google.ts +111 -107
  10. package/src/agent/provider/mistral.ts +95 -95
  11. package/src/agent/provider/ollama.ts +73 -17
  12. package/src/agent/provider/openai.ts +146 -102
  13. package/src/agent/provider/rateLimit.ts +178 -0
  14. package/src/agent/provider/reasoning.ts +29 -0
  15. package/src/agent/provider/xai.ts +108 -104
  16. package/src/agent/tools/definitions.ts +15 -1
  17. package/src/agent/tools/executor.ts +717 -98
  18. package/src/agent/tools/exploreExecutor.ts +20 -22
  19. package/src/agent/tools/fetch.ts +58 -0
  20. package/src/agent/tools/glob.ts +20 -4
  21. package/src/agent/tools/grep.ts +64 -9
  22. package/src/agent/tools/plan.ts +27 -0
  23. package/src/agent/tools/question.ts +7 -1
  24. package/src/agent/tools/read.ts +2 -0
  25. package/src/agent/types.ts +15 -14
  26. package/src/components/App.tsx +50 -8
  27. package/src/components/CustomInput.tsx +461 -77
  28. package/src/components/Main.tsx +1459 -1112
  29. package/src/components/Setup.tsx +1 -1
  30. package/src/components/ShortcutsModal.tsx +11 -8
  31. package/src/components/Welcome.tsx +1 -1
  32. package/src/components/main/ApprovalPanel.tsx +4 -3
  33. package/src/components/main/ChatPage.tsx +858 -516
  34. package/src/components/main/HomePage.tsx +58 -39
  35. package/src/components/main/QuestionPanel.tsx +52 -7
  36. package/src/components/main/ThinkingIndicator.tsx +13 -2
  37. package/src/components/main/types.ts +11 -10
  38. package/src/index.tsx +53 -25
  39. package/src/mcp/approvalPolicy.ts +148 -0
  40. package/src/mcp/cli/add.ts +185 -0
  41. package/src/mcp/cli/doctor.ts +77 -0
  42. package/src/mcp/cli/index.ts +85 -0
  43. package/src/mcp/cli/list.ts +50 -0
  44. package/src/mcp/cli/logs.ts +24 -0
  45. package/src/mcp/cli/manage.ts +99 -0
  46. package/src/mcp/cli/show.ts +53 -0
  47. package/src/mcp/cli/tools.ts +77 -0
  48. package/src/mcp/config.ts +223 -0
  49. package/src/mcp/index.ts +80 -0
  50. package/src/mcp/processManager.ts +299 -0
  51. package/src/mcp/rateLimiter.ts +50 -0
  52. package/src/mcp/registry.ts +151 -0
  53. package/src/mcp/schemaConverter.ts +100 -0
  54. package/src/mcp/servers/navigation.ts +854 -0
  55. package/src/mcp/toolCatalog.ts +169 -0
  56. package/src/mcp/types.ts +95 -0
  57. package/src/utils/approvalBridge.ts +45 -12
  58. package/src/utils/approvalModeBridge.ts +17 -0
  59. package/src/utils/commands/approvals.ts +48 -0
  60. package/src/utils/commands/compact.ts +30 -0
  61. package/src/utils/commands/echo.ts +1 -1
  62. package/src/utils/commands/image.ts +109 -0
  63. package/src/utils/commands/index.ts +9 -7
  64. package/src/utils/commands/new.ts +15 -0
  65. package/src/utils/commands/types.ts +3 -0
  66. package/src/utils/config.ts +3 -1
  67. package/src/utils/diffRendering.tsx +13 -16
  68. package/src/utils/exploreBridge.ts +10 -0
  69. package/src/utils/history.ts +82 -40
  70. package/src/utils/imageBridge.ts +28 -0
  71. package/src/utils/images.ts +31 -0
  72. package/src/utils/markdown.tsx +163 -99
  73. package/src/utils/models.ts +31 -16
  74. package/src/utils/notificationBridge.ts +23 -0
  75. package/src/utils/questionBridge.ts +36 -1
  76. package/src/utils/tokenEstimator.ts +32 -0
  77. package/src/utils/toolFormatting.ts +428 -48
  78. package/src/web/app.tsx +65 -5
  79. package/src/web/assets/css/ChatPage.css +102 -30
  80. package/src/web/assets/css/MessageItem.css +26 -29
  81. package/src/web/assets/css/ThinkingIndicator.css +44 -6
  82. package/src/web/assets/css/ToolMessage.css +36 -14
  83. package/src/web/components/ChatPage.tsx +228 -105
  84. package/src/web/components/HomePage.tsx +3 -3
  85. package/src/web/components/MessageItem.tsx +80 -81
  86. package/src/web/components/QuestionPanel.tsx +72 -12
  87. package/src/web/components/Setup.tsx +1 -1
  88. package/src/web/components/Sidebar.tsx +1 -3
  89. package/src/web/components/ThinkingIndicator.tsx +41 -21
  90. package/src/web/router.ts +1 -1
  91. package/src/web/server.tsx +894 -662
  92. package/src/web/storage.ts +23 -1
  93. package/src/web/types.ts +7 -6
  94. package/src/utils/commands/redo.ts +0 -74
  95. package/src/utils/commands/sessions.ts +0 -129
  96. package/src/utils/commands/undo.ts +0 -75
  97. package/src/utils/undoRedo.ts +0 -429
  98. package/src/utils/undoRedoBridge.ts +0 -45
  99. package/src/utils/undoRedoDb.ts +0 -338
@@ -30,7 +30,7 @@ type SetupStep =
30
30
  | 'apikey'
31
31
  | 'confirm';
32
32
 
33
- export function Setup({ onComplete, pasteRequestId = 0, shortcutsOpen = false, commandsOpen = false }: SetupProps) {
33
+ export function Setup({ onComplete, pasteRequestId = 0, shortcutsOpen = false, commandsOpen: _commandsOpen = false }: SetupProps) {
34
34
  const [step, setStep] = useState<SetupStep>('provider');
35
35
  const [selectedProvider, setSelectedProvider] = useState<string>('');
36
36
  const [selectedModel, setSelectedModel] = useState<string>('');
@@ -10,13 +10,16 @@ interface ShortcutsModalProps {
10
10
  }
11
11
 
12
12
  export function ShortcutsModal({ activeTab }: ShortcutsModalProps) {
13
- const shortcutsGeneral: ShortcutItem[] = [
14
- { keys: "Ctrl+P / Alt+P", description: "Open/close this shortcuts panel" },
15
- { keys: "Alt+V (or Ctrl+V)", description: "Paste from clipboard into the focused input" },
16
- { keys: "Enter", description: "Confirm / submit" },
17
- { keys: "↑/↓ (or j/k)", description: "Navigate lists" },
18
- { keys: "PageUp/PageDown", description: "Scroll chat faster" },
19
- ];
13
+ const shortcutsGeneral: ShortcutItem[] = [
14
+ { keys: "Ctrl+P / Alt+P", description: "Open/close this shortcuts panel" },
15
+ { keys: "Alt+V (or Ctrl+V)", description: "Paste from clipboard into the focused input" },
16
+ { keys: "Ctrl+C", description: "Cancel the current request" },
17
+ { keys: "Alt+C (or Cmd+C)", description: "Copy the last assistant message" },
18
+ { keys: "Shift+Tab", description: "Toggle auto-approve for agent changes" },
19
+ { keys: "Enter", description: "Confirm / submit" },
20
+ { keys: "↑/↓ (or j/k)", description: "Navigate lists" },
21
+ { keys: "PageUp/PageDown", description: "Scroll chat faster" },
22
+ ];
20
23
 
21
24
  const shortcutsSetup: ShortcutItem[] = [
22
25
  { keys: "Esc", description: "Go back to the previous step" },
@@ -64,4 +67,4 @@ export function ShortcutsModal({ activeTab }: ShortcutsModalProps) {
64
67
  </box>
65
68
  </box>
66
69
  );
67
- }
70
+ }
@@ -9,7 +9,7 @@ interface WelcomeProps {
9
9
  commandsOpen?: boolean;
10
10
  }
11
11
 
12
- export function Welcome({ onComplete, isFirstRun, shortcutsOpen = false, commandsOpen = false }: WelcomeProps) {
12
+ export function Welcome({ onComplete, isFirstRun, shortcutsOpen = false, commandsOpen: _commandsOpen = false }: WelcomeProps) {
13
13
  useKeyboard((key) => {
14
14
  if (shortcutsOpen) return;
15
15
  if (key.name === 'return') {
@@ -9,9 +9,10 @@ interface ApprovalPanelProps {
9
9
  request: ApprovalRequest;
10
10
  disabled?: boolean;
11
11
  onRespond: (approved: boolean, customResponse?: string) => void;
12
+ maxWidth?: number;
12
13
  }
13
14
 
14
- export function ApprovalPanel({ request, disabled = false, onRespond }: ApprovalPanelProps) {
15
+ export function ApprovalPanel({ request, disabled = false, onRespond, maxWidth }: ApprovalPanelProps) {
15
16
  const [selectedIndex, setSelectedIndex] = useState(0);
16
17
  const [scrollOffset, setScrollOffset] = useState(0);
17
18
  const allOptions = ['Yes', 'No'];
@@ -127,8 +128,8 @@ export function ApprovalPanel({ request, disabled = false, onRespond }: Approval
127
128
  </box>
128
129
 
129
130
  <box flexDirection="row" paddingLeft={1} >
130
- <CustomInput onSubmit={handleCustomSubmit} placeholder="> Tell Mosaic what to do instead and press Enter" focused={!disabled} disableHistory={true} />
131
+ <CustomInput onSubmit={handleCustomSubmit} placeholder="> Tell Mosaic what to do instead and press Enter" focused={!disabled} disableHistory={true} maxWidth={maxWidth} />
131
132
  </box>
132
133
  </box>
133
134
  );
134
- }
135
+ }