@mohanscodex/spectra-code 0.4.6 → 0.4.8
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/package.json +1 -1
- package/dist/src/agents/definitions.d.ts +2 -2
- package/dist/src/agents/definitions.d.ts.map +1 -1
- package/dist/src/agents/definitions.js +18 -18
- package/dist/src/agents/definitions.js.map +1 -1
- package/dist/src/agents/registry.d.ts +1 -1
- package/dist/src/agents/registry.d.ts.map +1 -1
- package/dist/src/agents/registry.js.map +1 -1
- package/dist/src/cli.js +117 -115
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/agent.d.ts +1 -1
- package/dist/src/commands/agent.d.ts.map +1 -1
- package/dist/src/commands/agent.js +14 -14
- package/dist/src/commands/agent.js.map +1 -1
- package/dist/src/commands/db.d.ts +1 -1
- package/dist/src/commands/db.d.ts.map +1 -1
- package/dist/src/commands/db.js +11 -11
- package/dist/src/commands/db.js.map +1 -1
- package/dist/src/commands/doctor.d.ts.map +1 -1
- package/dist/src/commands/doctor.js +33 -30
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/mcp.d.ts +1 -1
- package/dist/src/commands/mcp.d.ts.map +1 -1
- package/dist/src/commands/mcp.js +39 -39
- package/dist/src/commands/mcp.js.map +1 -1
- package/dist/src/commands/plugin.d.ts +1 -1
- package/dist/src/commands/plugin.d.ts.map +1 -1
- package/dist/src/commands/plugin.js +13 -13
- package/dist/src/commands/plugin.js.map +1 -1
- package/dist/src/commands/session.d.ts +1 -1
- package/dist/src/commands/session.d.ts.map +1 -1
- package/dist/src/commands/session.js +12 -12
- package/dist/src/commands/session.js.map +1 -1
- package/dist/src/index.d.ts +18 -18
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +16 -16
- package/dist/src/index.js.map +1 -1
- package/dist/src/integrations/acp/index.d.ts +1 -1
- package/dist/src/integrations/acp/index.js +1 -1
- package/dist/src/integrations/acp/server.d.ts.map +1 -1
- package/dist/src/integrations/acp/server.js +89 -79
- package/dist/src/integrations/acp/server.js.map +1 -1
- package/dist/src/integrations/custom-tools/index.d.ts +2 -2
- package/dist/src/integrations/custom-tools/index.js +1 -1
- package/dist/src/integrations/custom-tools/loader.d.ts +2 -2
- package/dist/src/integrations/custom-tools/loader.d.ts.map +1 -1
- package/dist/src/integrations/custom-tools/loader.js +19 -18
- package/dist/src/integrations/custom-tools/loader.js.map +1 -1
- package/dist/src/integrations/mcp/client.d.ts +5 -5
- package/dist/src/integrations/mcp/client.d.ts.map +1 -1
- package/dist/src/integrations/mcp/client.js +7 -7
- package/dist/src/integrations/mcp/client.js.map +1 -1
- package/dist/src/integrations/mcp/index.d.ts +2 -2
- package/dist/src/integrations/mcp/index.d.ts.map +1 -1
- package/dist/src/integrations/mcp/index.js +1 -1
- package/dist/src/integrations/mcp/index.js.map +1 -1
- package/dist/src/security/doom-loop.d.ts +1 -1
- package/dist/src/security/doom-loop.d.ts.map +1 -1
- package/dist/src/security/doom-loop.js +4 -4
- package/dist/src/security/doom-loop.js.map +1 -1
- package/dist/src/security/index.d.ts +10 -10
- package/dist/src/security/index.d.ts.map +1 -1
- package/dist/src/security/index.js +116 -69
- package/dist/src/security/index.js.map +1 -1
- package/dist/src/security/path-safety.d.ts +1 -1
- package/dist/src/security/path-safety.d.ts.map +1 -1
- package/dist/src/security/path-safety.js +19 -19
- package/dist/src/security/path-safety.js.map +1 -1
- package/dist/src/security/permissions.d.ts +1 -1
- package/dist/src/security/permissions.d.ts.map +1 -1
- package/dist/src/security/permissions.js +12 -10
- package/dist/src/security/permissions.js.map +1 -1
- package/dist/src/security/read-tracker.d.ts +2 -2
- package/dist/src/security/read-tracker.d.ts.map +1 -1
- package/dist/src/security/read-tracker.js +15 -13
- package/dist/src/security/read-tracker.js.map +1 -1
- package/dist/src/security/ssrf-guard.d.ts +1 -1
- package/dist/src/security/ssrf-guard.d.ts.map +1 -1
- package/dist/src/security/ssrf-guard.js +11 -11
- package/dist/src/security/ssrf-guard.js.map +1 -1
- package/dist/src/security/types.d.ts +4 -4
- package/dist/src/security/types.d.ts.map +1 -1
- package/dist/src/security/wildcard.d.ts.map +1 -1
- package/dist/src/security/wildcard.js +14 -16
- package/dist/src/security/wildcard.js.map +1 -1
- package/dist/src/services/auth-store.d.ts +3 -3
- package/dist/src/services/auth-store.d.ts.map +1 -1
- package/dist/src/services/auth-store.js +7 -7
- package/dist/src/services/auth-store.js.map +1 -1
- package/dist/src/services/config.d.ts +3 -3
- package/dist/src/services/config.d.ts.map +1 -1
- package/dist/src/services/config.js +17 -21
- package/dist/src/services/config.js.map +1 -1
- package/dist/src/services/context.d.ts.map +1 -1
- package/dist/src/services/context.js +5 -8
- package/dist/src/services/context.js.map +1 -1
- package/dist/src/services/custom-providers.d.ts +2 -2
- package/dist/src/services/custom-providers.d.ts.map +1 -1
- package/dist/src/services/custom-providers.js +108 -49
- package/dist/src/services/custom-providers.js.map +1 -1
- package/dist/src/services/session-store.d.ts +1 -1
- package/dist/src/services/session-store.d.ts.map +1 -1
- package/dist/src/services/session-store.js +32 -24
- package/dist/src/services/session-store.js.map +1 -1
- package/dist/src/services/snapshot-manager.d.ts.map +1 -1
- package/dist/src/services/snapshot-manager.js +14 -15
- package/dist/src/services/snapshot-manager.js.map +1 -1
- package/dist/src/tools/edit.d.ts +1 -1
- package/dist/src/tools/edit.js +18 -16
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/glob.d.ts +1 -1
- package/dist/src/tools/glob.d.ts.map +1 -1
- package/dist/src/tools/glob.js +20 -16
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/grep.d.ts +1 -1
- package/dist/src/tools/grep.d.ts.map +1 -1
- package/dist/src/tools/grep.js +18 -18
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/index.d.ts +4 -4
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +40 -32
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts +2 -2
- package/dist/src/tools/mcp-tool.d.ts.map +1 -1
- package/dist/src/tools/mcp-tool.js +28 -25
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/read.d.ts +1 -1
- package/dist/src/tools/read.d.ts.map +1 -1
- package/dist/src/tools/read.js +15 -13
- package/dist/src/tools/read.js.map +1 -1
- package/dist/src/tools/shell.d.ts +1 -1
- package/dist/src/tools/shell.d.ts.map +1 -1
- package/dist/src/tools/shell.js +75 -66
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/task.d.ts +1 -1
- package/dist/src/tools/task.js +22 -22
- package/dist/src/tools/task.js.map +1 -1
- package/dist/src/tools/types.d.ts +3 -3
- package/dist/src/tools/types.d.ts.map +1 -1
- package/dist/src/tools/utils.d.ts +1 -1
- package/dist/src/tools/utils.js +2 -2
- package/dist/src/tools/utils.js.map +1 -1
- package/dist/src/tools/web-fetch.d.ts +1 -1
- package/dist/src/tools/web-fetch.js +31 -31
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/write.d.ts +1 -1
- package/dist/src/tools/write.js +9 -9
- package/dist/src/tools/write.js.map +1 -1
- package/dist/src/tui/app-constants.d.ts.map +1 -1
- package/dist/src/tui/app-constants.js +11 -2
- package/dist/src/tui/app-constants.js.map +1 -1
- package/dist/src/tui/app.d.ts +1 -1
- package/dist/src/tui/app.d.ts.map +1 -1
- package/dist/src/tui/app.js +314 -121
- package/dist/src/tui/app.js.map +1 -1
- package/dist/src/tui/commands.d.ts +14 -14
- package/dist/src/tui/commands.d.ts.map +1 -1
- package/dist/src/tui/commands.js +242 -49
- package/dist/src/tui/commands.js.map +1 -1
- package/dist/src/tui/components/chat-area.d.ts +2 -2
- package/dist/src/tui/components/chat-area.d.ts.map +1 -1
- package/dist/src/tui/components/chat-area.js +5 -5
- package/dist/src/tui/components/chat-area.js.map +1 -1
- package/dist/src/tui/components/command-palette.d.ts.map +1 -1
- package/dist/src/tui/components/command-palette.js +7 -5
- package/dist/src/tui/components/command-palette.js.map +1 -1
- package/dist/src/tui/components/message.d.ts +2 -2
- package/dist/src/tui/components/message.d.ts.map +1 -1
- package/dist/src/tui/components/message.js +63 -52
- package/dist/src/tui/components/message.js.map +1 -1
- package/dist/src/tui/components/slash-autocomplete.d.ts +2 -2
- package/dist/src/tui/components/slash-autocomplete.d.ts.map +1 -1
- package/dist/src/tui/components/slash-autocomplete.js +6 -8
- package/dist/src/tui/components/slash-autocomplete.js.map +1 -1
- package/dist/src/tui/components/toast.d.ts +2 -2
- package/dist/src/tui/components/toast.d.ts.map +1 -1
- package/dist/src/tui/components/toast.js +11 -6
- package/dist/src/tui/components/toast.js.map +1 -1
- package/dist/src/tui/hooks/use-agent.d.ts +3 -3
- package/dist/src/tui/hooks/use-agent.d.ts.map +1 -1
- package/dist/src/tui/hooks/use-agent.js +22 -29
- package/dist/src/tui/hooks/use-agent.js.map +1 -1
- package/dist/src/tui/hooks/use-app-keyboard.d.ts +3 -3
- package/dist/src/tui/hooks/use-app-keyboard.d.ts.map +1 -1
- package/dist/src/tui/hooks/use-app-keyboard.js +28 -29
- package/dist/src/tui/hooks/use-app-keyboard.js.map +1 -1
- package/dist/src/tui/hooks/use-chat-submit.d.ts +6 -6
- package/dist/src/tui/hooks/use-chat-submit.d.ts.map +1 -1
- package/dist/src/tui/hooks/use-chat-submit.js +115 -54
- package/dist/src/tui/hooks/use-chat-submit.js.map +1 -1
- package/dist/src/tui/hooks/use-permission-queue.d.ts +2 -2
- package/dist/src/tui/hooks/use-permission-queue.d.ts.map +1 -1
- package/dist/src/tui/hooks/use-permission-queue.js +1 -1
- package/dist/src/tui/hooks/use-permission-queue.js.map +1 -1
- package/dist/src/tui/hooks/use-revert.d.ts +4 -4
- package/dist/src/tui/hooks/use-revert.d.ts.map +1 -1
- package/dist/src/tui/hooks/use-revert.js +22 -13
- package/dist/src/tui/hooks/use-revert.js.map +1 -1
- package/dist/src/tui/index.d.ts.map +1 -1
- package/dist/src/tui/index.js +11 -11
- package/dist/src/tui/index.js.map +1 -1
- package/dist/src/tui/prompt-bar.d.ts +1 -1
- package/dist/src/tui/prompt-bar.d.ts.map +1 -1
- package/dist/src/tui/prompt-bar.js +45 -16
- package/dist/src/tui/prompt-bar.js.map +1 -1
- package/dist/src/tui/slash-commands.d.ts +2 -2
- package/dist/src/tui/slash-commands.d.ts.map +1 -1
- package/dist/src/tui/slash-commands.js +9 -9
- package/dist/src/tui/slash-commands.js.map +1 -1
- package/dist/src/tui/theme.d.ts +1 -1
- package/dist/src/tui/theme.d.ts.map +1 -1
- package/dist/src/tui/theme.js +46 -38
- package/dist/src/tui/theme.js.map +1 -1
- package/dist/src/tui/tips.d.ts.map +1 -1
- package/dist/src/tui/tips.js +14 -14
- package/dist/src/tui/tips.js.map +1 -1
- package/dist/src/tui/types.d.ts +5 -5
- package/dist/src/tui/types.d.ts.map +1 -1
- package/dist/src/tui/ui/about-dialog.d.ts.map +1 -1
- package/dist/src/tui/ui/about-dialog.js +5 -5
- package/dist/src/tui/ui/about-dialog.js.map +1 -1
- package/dist/src/tui/ui/agent-switcher.d.ts.map +1 -1
- package/dist/src/tui/ui/agent-switcher.js +16 -14
- package/dist/src/tui/ui/agent-switcher.js.map +1 -1
- package/dist/src/tui/ui/debug-dialog.d.ts +1 -1
- package/dist/src/tui/ui/debug-dialog.d.ts.map +1 -1
- package/dist/src/tui/ui/debug-dialog.js +26 -26
- package/dist/src/tui/ui/debug-dialog.js.map +1 -1
- package/dist/src/tui/ui/doctor-dialog.d.ts +2 -2
- package/dist/src/tui/ui/doctor-dialog.d.ts.map +1 -1
- package/dist/src/tui/ui/doctor-dialog.js +10 -8
- package/dist/src/tui/ui/doctor-dialog.js.map +1 -1
- package/dist/src/tui/ui/manage-providers-dialog.d.ts +1 -1
- package/dist/src/tui/ui/manage-providers-dialog.d.ts.map +1 -1
- package/dist/src/tui/ui/manage-providers-dialog.js +102 -86
- package/dist/src/tui/ui/manage-providers-dialog.js.map +1 -1
- package/dist/src/tui/ui/mcp-toggle-dialog.d.ts.map +1 -1
- package/dist/src/tui/ui/mcp-toggle-dialog.js +17 -14
- package/dist/src/tui/ui/mcp-toggle-dialog.js.map +1 -1
- package/dist/src/tui/ui/message-controls.d.ts +1 -1
- package/dist/src/tui/ui/message-controls.d.ts.map +1 -1
- package/dist/src/tui/ui/message-controls.js +40 -28
- package/dist/src/tui/ui/message-controls.js.map +1 -1
- package/dist/src/tui/ui/model-switcher.d.ts.map +1 -1
- package/dist/src/tui/ui/model-switcher.js +40 -25
- package/dist/src/tui/ui/model-switcher.js.map +1 -1
- package/dist/src/tui/ui/permission-dialog.d.ts +1 -1
- package/dist/src/tui/ui/permission-dialog.d.ts.map +1 -1
- package/dist/src/tui/ui/permission-dialog.js +11 -11
- package/dist/src/tui/ui/permission-dialog.js.map +1 -1
- package/dist/src/tui/ui/provider-dialog.d.ts.map +1 -1
- package/dist/src/tui/ui/provider-dialog.js +75 -64
- package/dist/src/tui/ui/provider-dialog.js.map +1 -1
- package/dist/src/tui/ui/session-list.d.ts +3 -3
- package/dist/src/tui/ui/session-list.d.ts.map +1 -1
- package/dist/src/tui/ui/session-list.js +44 -32
- package/dist/src/tui/ui/session-list.js.map +1 -1
- package/dist/src/tui/ui/thinking-effort-dialog.d.ts.map +1 -1
- package/dist/src/tui/ui/thinking-effort-dialog.js +19 -19
- package/dist/src/tui/ui/thinking-effort-dialog.js.map +1 -1
- package/dist/src/tui/ui/update-dialog.d.ts +11 -0
- package/dist/src/tui/ui/update-dialog.d.ts.map +1 -0
- package/dist/src/tui/ui/update-dialog.js +23 -0
- package/dist/src/tui/ui/update-dialog.js.map +1 -0
- package/dist/src/tui/utils/model-config.d.ts.map +1 -1
- package/dist/src/tui/utils/model-config.js +13 -13
- package/dist/src/tui/utils/model-config.js.map +1 -1
- package/dist/src/tui/utils/session-messages.d.ts +2 -2
- package/dist/src/tui/utils/session-messages.d.ts.map +1 -1
- package/dist/src/tui/utils/session-messages.js +35 -22
- package/dist/src/tui/utils/session-messages.js.map +1 -1
- package/dist/src/tui/utils/update-check.d.ts +2 -0
- package/dist/src/tui/utils/update-check.d.ts.map +1 -0
- package/dist/src/tui/utils/update-check.js +65 -0
- package/dist/src/tui/utils/update-check.js.map +1 -0
- package/dist/src/tui/utils/version.d.ts.map +1 -1
- package/dist/src/tui/utils/version.js +7 -7
- package/dist/src/tui/utils/version.js.map +1 -1
- package/dist/src/tui/utils.d.ts +2 -2
- package/dist/src/tui/utils.d.ts.map +1 -1
- package/dist/src/tui/utils.js +7 -7
- package/dist/src/tui/utils.js.map +1 -1
- package/dist/src/tui/variant-cycle.d.ts.map +1 -1
- package/dist/src/tui/variant-cycle.js +23 -23
- package/dist/src/tui/variant-cycle.js.map +1 -1
- package/dist/src/utils/paths.d.ts.map +1 -1
- package/dist/src/utils/paths.js +25 -25
- package/dist/src/utils/paths.js.map +1 -1
- package/dist/src/utils/platform.d.ts.map +1 -1
- package/dist/src/utils/platform.js +15 -17
- package/dist/src/utils/platform.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
|
|
2
|
-
import { useState, useMemo, useRef, useEffect } from
|
|
3
|
-
import { c } from
|
|
4
|
-
import clipboard from
|
|
2
|
+
import { useState, useMemo, useRef, useEffect } from 'react';
|
|
3
|
+
import { c } from '../theme.js';
|
|
4
|
+
import clipboard from 'clipboardy';
|
|
5
5
|
function getActions(revertPoint) {
|
|
6
6
|
const actions = [
|
|
7
|
-
{ id:
|
|
8
|
-
{ id:
|
|
9
|
-
{ id:
|
|
7
|
+
{ id: 'revert', label: 'Revert', desc: 'undo messages and file changes' },
|
|
8
|
+
{ id: 'copy', label: 'Copy', desc: 'message text to clipboard' },
|
|
9
|
+
{ id: 'fork', label: 'Fork', desc: 'create a new session' },
|
|
10
10
|
];
|
|
11
11
|
if (revertPoint) {
|
|
12
|
-
actions.unshift({ id:
|
|
12
|
+
actions.unshift({ id: 'redo', label: 'Redo', desc: 'restore reverted messages' });
|
|
13
13
|
}
|
|
14
14
|
return actions;
|
|
15
15
|
}
|
|
16
16
|
export function MessageControls(props) {
|
|
17
|
-
const { message, sessionId, messages, revertPoint, onRevert, onRedo, onFork, onClose, registerHandler, termWidth, termHeight } = props;
|
|
17
|
+
const { message, sessionId, messages, revertPoint, onRevert, onRedo, onFork, onClose, registerHandler, termWidth, termHeight, } = props;
|
|
18
18
|
const mw = Math.min(64, termWidth - 4);
|
|
19
19
|
const ml = Math.floor((termWidth - mw) / 2);
|
|
20
20
|
const mh = Math.min(14, termHeight - 4);
|
|
@@ -26,22 +26,22 @@ export function MessageControls(props) {
|
|
|
26
26
|
const scrollRef = useRef(null);
|
|
27
27
|
const ACTIONS = useMemo(() => getActions(revertPoint), [revertPoint]);
|
|
28
28
|
const msgText = useMemo(() => {
|
|
29
|
-
if (message.role ===
|
|
29
|
+
if (message.role === 'user')
|
|
30
30
|
return message.content;
|
|
31
|
-
if (message.role ===
|
|
31
|
+
if (message.role === 'assistant') {
|
|
32
32
|
if (message.blocks) {
|
|
33
33
|
return message.blocks
|
|
34
|
-
.filter((b) => b.type ===
|
|
34
|
+
.filter((b) => b.type === 'text')
|
|
35
35
|
.map((b) => b.content)
|
|
36
|
-
.join(
|
|
36
|
+
.join('\n');
|
|
37
37
|
}
|
|
38
|
-
return message.content ||
|
|
38
|
+
return message.content || '';
|
|
39
39
|
}
|
|
40
|
-
return message.content ||
|
|
40
|
+
return message.content || '';
|
|
41
41
|
}, [message]);
|
|
42
42
|
useEffect(() => {
|
|
43
43
|
registerHandler((key) => {
|
|
44
|
-
if (key.name ===
|
|
44
|
+
if (key.name === 'escape') {
|
|
45
45
|
if (confirmAction) {
|
|
46
46
|
setConfirmAction(null);
|
|
47
47
|
return;
|
|
@@ -49,54 +49,66 @@ export function MessageControls(props) {
|
|
|
49
49
|
onClose();
|
|
50
50
|
return;
|
|
51
51
|
}
|
|
52
|
-
if (key.name ===
|
|
52
|
+
if (key.name === 'return' || key.name === 'enter') {
|
|
53
53
|
const action = ACTIONS[sel];
|
|
54
54
|
if (!action)
|
|
55
55
|
return;
|
|
56
56
|
if (confirmAction === action.id) {
|
|
57
|
-
if (action.id ===
|
|
57
|
+
if (action.id === 'revert' && sessionId) {
|
|
58
58
|
onRevert(message.id);
|
|
59
59
|
}
|
|
60
|
-
else if (action.id ===
|
|
60
|
+
else if (action.id === 'fork' && sessionId) {
|
|
61
61
|
onFork(sessionId);
|
|
62
62
|
}
|
|
63
|
-
else if (action.id ===
|
|
63
|
+
else if (action.id === 'copy') {
|
|
64
64
|
clipboard.write(msgText).catch(() => { });
|
|
65
65
|
}
|
|
66
|
-
else if (action.id ===
|
|
66
|
+
else if (action.id === 'redo') {
|
|
67
67
|
onRedo();
|
|
68
68
|
}
|
|
69
69
|
onClose();
|
|
70
70
|
return;
|
|
71
71
|
}
|
|
72
|
-
if (action.id ===
|
|
72
|
+
if (action.id === 'revert' || action.id === 'fork') {
|
|
73
73
|
setConfirmAction(action.id);
|
|
74
74
|
return;
|
|
75
75
|
}
|
|
76
|
-
if (action.id ===
|
|
76
|
+
if (action.id === 'redo') {
|
|
77
77
|
onRedo();
|
|
78
78
|
onClose();
|
|
79
79
|
return;
|
|
80
80
|
}
|
|
81
|
-
if (action.id ===
|
|
81
|
+
if (action.id === 'copy') {
|
|
82
82
|
clipboard.write(msgText).catch(() => { });
|
|
83
83
|
onClose();
|
|
84
84
|
}
|
|
85
85
|
return;
|
|
86
86
|
}
|
|
87
|
-
if (key.name ===
|
|
87
|
+
if (key.name === 'up') {
|
|
88
88
|
setSel((p) => (p > 0 ? p - 1 : ACTIONS.length - 1));
|
|
89
89
|
return;
|
|
90
90
|
}
|
|
91
|
-
if (key.name ===
|
|
91
|
+
if (key.name === 'down') {
|
|
92
92
|
setSel((p) => (p < ACTIONS.length - 1 ? p + 1 : 0));
|
|
93
93
|
return;
|
|
94
94
|
}
|
|
95
95
|
});
|
|
96
|
-
}, [
|
|
97
|
-
|
|
96
|
+
}, [
|
|
97
|
+
sel,
|
|
98
|
+
confirmAction,
|
|
99
|
+
msgText,
|
|
100
|
+
sessionId,
|
|
101
|
+
message.id,
|
|
102
|
+
onRevert,
|
|
103
|
+
onRedo,
|
|
104
|
+
onFork,
|
|
105
|
+
onClose,
|
|
106
|
+
registerHandler,
|
|
107
|
+
ACTIONS,
|
|
108
|
+
]);
|
|
109
|
+
return (_jsx("box", { position: "absolute", left: 0, right: 0, top: 0, bottom: 0, backgroundColor: c.bgOverlay, children: _jsxs("box", { position: "absolute", left: ml, top: mt, width: mw, height: mh, backgroundColor: c.bgCard, children: [_jsxs("box", { height: 1, paddingX: 2, paddingTop: 1, flexDirection: "row", justifyContent: "space-between", alignItems: "center", children: [_jsx("text", { fg: c.text, attributes: 1, children: "Message Actions" }), _jsx("text", { fg: c.dim, children: "esc" })] }), _jsx("box", { height: 1 }), _jsx("box", { height: 1, paddingX: 2, children: _jsx("text", { fg: c.border, children: '─'.repeat(innerW) }) }), _jsx("scrollbox", { ref: scrollRef, paddingX: 1, maxHeight: listH, scrollY: true, scrollbarOptions: { visible: false }, children: _jsx("box", { flexDirection: "column", children: ACTIONS.map((action, i) => {
|
|
98
110
|
const isSelected = i === sel;
|
|
99
111
|
return (_jsxs("box", { id: action.id, height: 1, paddingLeft: 2, paddingRight: 1, backgroundColor: isSelected ? c.bgSelect : c.bgCard, flexDirection: "row", justifyContent: "space-between", alignItems: "center", children: [_jsx("text", { fg: isSelected ? c.accent : c.text, overflow: "hidden", wrapMode: "none", flexGrow: 1, children: action.label }), _jsx("text", { fg: c.dim, flexShrink: 0, children: action.desc })] }, action.id));
|
|
100
|
-
}) }) }), confirmAction && (_jsx("box", { height: 1, paddingX: 2, backgroundColor: c.bgBar, children: _jsxs("text", { fg: c.warn, children: ["Confirm ", confirmAction ===
|
|
112
|
+
}) }) }), confirmAction && (_jsx("box", { height: 1, paddingX: 2, backgroundColor: c.bgBar, children: _jsxs("text", { fg: c.warn, children: ["Confirm ", confirmAction === 'revert' ? 'Revert' : confirmAction === 'fork' ? 'Fork' : 'Action', "? Press Enter"] }) })), _jsx("box", { paddingX: 2, paddingTop: 1, paddingBottom: 1, flexDirection: "row", justifyContent: "center", children: _jsxs("text", { fg: c.dim, children: ['\u2191\u2193', " navigate \u00B7 ", '\u23CE', " select \u00B7 esc close"] }) })] }) }));
|
|
101
113
|
}
|
|
102
114
|
//# sourceMappingURL=message-controls.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-controls.js","sourceRoot":"","sources":["../../../../src/tui/ui/message-controls.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"message-controls.js","sourceRoot":"","sources":["../../../../src/tui/ui/message-controls.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-switcher.d.ts","sourceRoot":"","sources":["../../../../src/tui/ui/model-switcher.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,kBAAkB;
|
|
1
|
+
{"version":3,"file":"model-switcher.d.ts","sourceRoot":"","sources":["../../../../src/tui/ui/model-switcher.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,kBAAkB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;CAC3D;AA4CD,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,6BAoMtD"}
|
|
@@ -1,32 +1,47 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
|
|
2
|
-
import { useState, useEffect, useMemo, useRef } from
|
|
3
|
-
import { c } from
|
|
4
|
-
import { listProviders, getModels } from
|
|
5
|
-
import { loadConfig } from
|
|
6
|
-
import { readAll } from
|
|
2
|
+
import { useState, useEffect, useMemo, useRef } from 'react';
|
|
3
|
+
import { c } from '../theme.js';
|
|
4
|
+
import { listProviders, getModels } from '@mohanscodex/spectra-ai';
|
|
5
|
+
import { loadConfig } from '../../services/config.js';
|
|
6
|
+
import { readAll } from '../../services/auth-store.js';
|
|
7
7
|
function isProviderConnected(providerId) {
|
|
8
8
|
const cred = readAll()[providerId];
|
|
9
|
-
return cred?.type ===
|
|
9
|
+
return cred?.type === 'api' && !!cred.key;
|
|
10
10
|
}
|
|
11
11
|
function getProviderDisplayName(providerId, customProviders) {
|
|
12
12
|
const custom = customProviders[providerId];
|
|
13
13
|
if (custom?.name)
|
|
14
14
|
return custom.name;
|
|
15
15
|
const builtinNames = {
|
|
16
|
-
anthropic:
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
16
|
+
anthropic: 'Anthropic',
|
|
17
|
+
openai: 'OpenAI',
|
|
18
|
+
'openai-completions': 'OpenAI',
|
|
19
|
+
'openai-responses': 'OpenAI',
|
|
20
|
+
openrouter: 'OpenRouter',
|
|
21
|
+
groq: 'Groq',
|
|
22
|
+
google: 'Google',
|
|
23
|
+
xai: 'xAI',
|
|
24
|
+
deepseek: 'DeepSeek',
|
|
25
|
+
mistral: 'Mistral',
|
|
26
|
+
cerebras: 'Cerebras',
|
|
27
|
+
'fireworks-ai': 'Fireworks AI',
|
|
28
|
+
togetherai: 'Together AI',
|
|
29
|
+
perplexity: 'Perplexity',
|
|
30
|
+
cohere: 'Cohere',
|
|
31
|
+
'novita-ai': 'Novita AI',
|
|
32
|
+
moonshotai: 'Moonshot AI',
|
|
33
|
+
chutes: 'Chutes',
|
|
34
|
+
minimax: 'MiniMax',
|
|
35
|
+
huggingface: 'Hugging Face',
|
|
36
|
+
nvidia: 'NVIDIA',
|
|
37
|
+
zai: 'Z.AI',
|
|
23
38
|
};
|
|
24
39
|
return builtinNames[providerId] || providerId;
|
|
25
40
|
}
|
|
26
41
|
export function ModelSwitcher(props) {
|
|
27
42
|
const { providerId, termWidth, termHeight, onModelSelected, onClose, registerHandler } = props;
|
|
28
43
|
const [allModels, setAllModels] = useState([]);
|
|
29
|
-
const [filter, setFilter] = useState(
|
|
44
|
+
const [filter, setFilter] = useState('');
|
|
30
45
|
const [sel, setSel] = useState(0);
|
|
31
46
|
const scrollRef = useRef(null);
|
|
32
47
|
useEffect(() => {
|
|
@@ -57,7 +72,7 @@ export function ModelSwitcher(props) {
|
|
|
57
72
|
return a.name.localeCompare(b.name);
|
|
58
73
|
});
|
|
59
74
|
setAllModels(sorted);
|
|
60
|
-
const currentIdx = sorted.findIndex(m => m.provider === providerId);
|
|
75
|
+
const currentIdx = sorted.findIndex((m) => m.provider === providerId);
|
|
61
76
|
setSel(currentIdx >= 0 ? currentIdx : 0);
|
|
62
77
|
});
|
|
63
78
|
}, [providerId]);
|
|
@@ -72,11 +87,11 @@ export function ModelSwitcher(props) {
|
|
|
72
87
|
}, [filter, allModels]);
|
|
73
88
|
useEffect(() => {
|
|
74
89
|
registerHandler((key) => {
|
|
75
|
-
if (key.name ===
|
|
90
|
+
if (key.name === 'escape') {
|
|
76
91
|
onClose();
|
|
77
92
|
return;
|
|
78
93
|
}
|
|
79
|
-
if (key.name ===
|
|
94
|
+
if (key.name === 'return' || key.name === 'enter') {
|
|
80
95
|
if (filtered.length > 0 && filtered[sel]) {
|
|
81
96
|
onModelSelected(filtered[sel].id, filtered[sel].provider);
|
|
82
97
|
onClose();
|
|
@@ -84,15 +99,15 @@ export function ModelSwitcher(props) {
|
|
|
84
99
|
}
|
|
85
100
|
return;
|
|
86
101
|
}
|
|
87
|
-
if (key.name ===
|
|
102
|
+
if (key.name === 'up') {
|
|
88
103
|
setSel((p) => (p > 0 ? p - 1 : filtered.length - 1));
|
|
89
104
|
return;
|
|
90
105
|
}
|
|
91
|
-
if (key.name ===
|
|
106
|
+
if (key.name === 'down') {
|
|
92
107
|
setSel((p) => (p < filtered.length - 1 ? p + 1 : 0));
|
|
93
108
|
return;
|
|
94
109
|
}
|
|
95
|
-
if (key.name ===
|
|
110
|
+
if (key.name === 'backspace') {
|
|
96
111
|
setFilter((p) => p.slice(0, -1));
|
|
97
112
|
setSel(0);
|
|
98
113
|
return;
|
|
@@ -107,7 +122,7 @@ export function ModelSwitcher(props) {
|
|
|
107
122
|
}, [filtered, sel, onModelSelected, onClose, registerHandler]);
|
|
108
123
|
useEffect(() => {
|
|
109
124
|
const el = scrollRef.current;
|
|
110
|
-
if (el && typeof el.scrollChildIntoView ===
|
|
125
|
+
if (el && typeof el.scrollChildIntoView === 'function' && filtered[sel]) {
|
|
111
126
|
el.scrollChildIntoView(`${filtered[sel].provider}-${filtered[sel].id}`);
|
|
112
127
|
}
|
|
113
128
|
}, [sel, filtered]);
|
|
@@ -118,7 +133,7 @@ export function ModelSwitcher(props) {
|
|
|
118
133
|
const listH = mh - 5;
|
|
119
134
|
const rows = useMemo(() => {
|
|
120
135
|
const r = [];
|
|
121
|
-
let prevProvider =
|
|
136
|
+
let prevProvider = '';
|
|
122
137
|
for (let i = 0; i < filtered.length; i++) {
|
|
123
138
|
const m = filtered[i];
|
|
124
139
|
if (m.providerName !== prevProvider) {
|
|
@@ -132,8 +147,8 @@ export function ModelSwitcher(props) {
|
|
|
132
147
|
}
|
|
133
148
|
return r;
|
|
134
149
|
}, [filtered, sel]);
|
|
135
|
-
return (_jsx("box", { position: "absolute", left: 0, right: 0, top: 0, bottom: 0, backgroundColor: c.bgOverlay, children: _jsxs("box", { position: "absolute", left: ml, top: mt, width: mw, height: mh, backgroundColor: c.bgCard, children: [_jsxs("box", { paddingX: 2, paddingTop: 1, flexDirection: "row", justifyContent: "space-between", alignItems: "center", height: 1, children: [_jsxs("box", { flexDirection: "row", gap: 1, children: [_jsx("text", { fg: c.accent, children:
|
|
136
|
-
|
|
137
|
-
|
|
150
|
+
return (_jsx("box", { position: "absolute", left: 0, right: 0, top: 0, bottom: 0, backgroundColor: c.bgOverlay, children: _jsxs("box", { position: "absolute", left: ml, top: mt, width: mw, height: mh, backgroundColor: c.bgCard, children: [_jsxs("box", { paddingX: 2, paddingTop: 1, flexDirection: "row", justifyContent: "space-between", alignItems: "center", height: 1, children: [_jsxs("box", { flexDirection: "row", gap: 1, children: [_jsx("text", { fg: c.accent, children: '>' }), _jsx("text", { fg: c.text, children: filter || 'Search models...' })] }), _jsx("box", { flexDirection: "row", height: 1, children: _jsx("text", { fg: c.dim, children: "esc" }) })] }), _jsx("box", { height: 1 }), _jsx("box", { height: 1, paddingX: 2, children: _jsx("text", { fg: c.border, children: '─'.repeat(mw - 4) }) }), _jsx("scrollbox", { ref: (r) => {
|
|
151
|
+
scrollRef.current = r;
|
|
152
|
+
}, paddingX: 1, maxHeight: listH, scrollY: true, scrollbarOptions: { visible: false }, children: _jsx("box", { flexDirection: "column", children: rows.length === 0 ? (_jsx("box", { height: 1, paddingX: 1, backgroundColor: c.bgCard, children: _jsx("text", { fg: c.dim, children: "No models. Connect a provider first." }) })) : (rows) }) }), _jsx("box", { height: 1, paddingX: 2, paddingTop: 1, flexDirection: "row", justifyContent: "center", children: _jsxs("text", { fg: c.dim, children: ['\u2191\u2193', " navigate \u00B7 ", '\u23CE', " select \u00B7 esc close"] }) })] }) }));
|
|
138
153
|
}
|
|
139
154
|
//# sourceMappingURL=model-switcher.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-switcher.js","sourceRoot":"","sources":["../../../../src/tui/ui/model-switcher.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"model-switcher.js","sourceRoot":"","sources":["../../../../src/tui/ui/model-switcher.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-dialog.d.ts","sourceRoot":"","sources":["../../../../src/tui/ui/permission-dialog.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,
|
|
1
|
+
{"version":3,"file":"permission-dialog.d.ts","sourceRoot":"","sources":["../../../../src/tui/ui/permission-dialog.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAIjE,MAAM,WAAW,qBAAqB;IACrC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,EAChC,OAAO,EACP,SAAS,EACT,UAAU,EACV,OAAO,EACP,aAAa,EACb,MAAM,EACN,OAAO,GACP,EAAE,qBAAqB,6BAoGvB"}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
|
|
2
|
-
import { useState } from
|
|
3
|
-
import { c } from
|
|
4
|
-
import { useKeyboard } from
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { c } from '../theme.js';
|
|
4
|
+
import { useKeyboard } from '@opentui/react';
|
|
5
5
|
export function PermissionDialog({ request, termWidth, termHeight, onAllow, onAllowAlways, onDeny, onClose, }) {
|
|
6
6
|
const [selected, setSelected] = useState(0);
|
|
7
7
|
const options = [
|
|
8
|
-
{ label:
|
|
9
|
-
{ label:
|
|
10
|
-
{ label:
|
|
8
|
+
{ label: 'Allow Once', action: () => onAllow(request.id) },
|
|
9
|
+
{ label: 'Allow Always', action: () => onAllowAlways(request.id) },
|
|
10
|
+
{ label: 'Deny', action: () => onDeny(request.id) },
|
|
11
11
|
];
|
|
12
12
|
useKeyboard((key) => {
|
|
13
|
-
if (key.name ===
|
|
13
|
+
if (key.name === 'escape') {
|
|
14
14
|
onClose();
|
|
15
15
|
return;
|
|
16
16
|
}
|
|
17
|
-
if (key.name ===
|
|
17
|
+
if (key.name === 'return' || key.name === 'enter') {
|
|
18
18
|
options[selected].action();
|
|
19
19
|
return;
|
|
20
20
|
}
|
|
21
|
-
if (key.name ===
|
|
21
|
+
if (key.name === 'left' || key.name === 'up') {
|
|
22
22
|
setSelected((p) => (p > 0 ? p - 1 : options.length - 1));
|
|
23
23
|
return;
|
|
24
24
|
}
|
|
25
|
-
if (key.name ===
|
|
25
|
+
if (key.name === 'right' || key.name === 'down') {
|
|
26
26
|
setSelected((p) => (p < options.length - 1 ? p + 1 : 0));
|
|
27
27
|
return;
|
|
28
28
|
}
|
|
@@ -32,6 +32,6 @@ export function PermissionDialog({ request, termWidth, termHeight, onAllow, onAl
|
|
|
32
32
|
const innerWidth = dialogWidth - 4;
|
|
33
33
|
const dialogHeight = 12;
|
|
34
34
|
const dialogTop = Math.max(1, Math.floor((termHeight - dialogHeight) / 2));
|
|
35
|
-
return (_jsx("box", { position: "absolute", left: 0, right: 0, top: 0, bottom: 0, backgroundColor: c.bgOverlay, children: _jsxs("box", { position: "absolute", left: dialogLeft, top: dialogTop, width: dialogWidth, height: dialogHeight, backgroundColor: c.bg, children: [_jsx("box", { height: 1, paddingTop: 1, paddingX: 2, flexDirection: "row", justifyContent: "center", children: _jsx("text", { fg: c.accent, attributes: 1, children: "Spectra Permission" }) }), _jsx("box", { height: 1 }), _jsxs("box", { paddingX: 2, flexDirection: "column", children: [_jsxs("box", { height: 1, flexDirection: "row", gap: 1, children: [_jsx("text", { fg: c.dim, flexShrink: 0, children: "Tool:" }), _jsx("text", { fg: c.text, overflow: "hidden", wrapMode: "none", flexGrow: 1, children: request.tool ?? request.permission })] }), _jsxs("box", { height: 1, flexDirection: "row", gap: 1, children: [_jsx("text", { fg: c.dim, flexShrink: 0, children: "Pattern:" }), _jsxs("text", { fg: c.info, overflow: "hidden", wrapMode: "none", flexGrow: 1, children: [request.permission, " ", request.pattern] })] })] }), _jsx("box", { height: 1, paddingX: 2, paddingTop: 1, children: _jsx("text", { fg: c.border, children:
|
|
35
|
+
return (_jsx("box", { position: "absolute", left: 0, right: 0, top: 0, bottom: 0, backgroundColor: c.bgOverlay, children: _jsxs("box", { position: "absolute", left: dialogLeft, top: dialogTop, width: dialogWidth, height: dialogHeight, backgroundColor: c.bg, children: [_jsx("box", { height: 1, paddingTop: 1, paddingX: 2, flexDirection: "row", justifyContent: "center", children: _jsx("text", { fg: c.accent, attributes: 1, children: "Spectra Permission" }) }), _jsx("box", { height: 1 }), _jsxs("box", { paddingX: 2, flexDirection: "column", children: [_jsxs("box", { height: 1, flexDirection: "row", gap: 1, children: [_jsx("text", { fg: c.dim, flexShrink: 0, children: "Tool:" }), _jsx("text", { fg: c.text, overflow: "hidden", wrapMode: "none", flexGrow: 1, children: request.tool ?? request.permission })] }), _jsxs("box", { height: 1, flexDirection: "row", gap: 1, children: [_jsx("text", { fg: c.dim, flexShrink: 0, children: "Pattern:" }), _jsxs("text", { fg: c.info, overflow: "hidden", wrapMode: "none", flexGrow: 1, children: [request.permission, " ", request.pattern] })] })] }), _jsx("box", { height: 1, paddingX: 2, paddingTop: 1, children: _jsx("text", { fg: c.border, children: '─'.repeat(innerWidth) }) }), _jsx("box", { height: 1, paddingX: 2, flexDirection: "row", justifyContent: "center", gap: 2, children: options.map((opt, i) => (_jsxs("box", { flexDirection: "row", gap: 1, children: [_jsx("text", { fg: i === selected ? c.accent : c.dim, children: i === selected ? '▸' : ' ' }), _jsx("text", { fg: i === selected ? (i === 2 ? c.error : c.accent) : c.dim, attributes: i === selected ? 1 : 0, children: opt.label }), _jsx("text", { fg: i === selected ? c.accent : c.dim, children: i === selected ? '◂' : ' ' })] }, opt.label))) }), _jsx("box", { height: 1, paddingX: 2, paddingTop: 1, flexDirection: "row", justifyContent: "center", children: _jsx("text", { fg: c.dim, children: "\u2190 \u2192 select \u00B7 enter confirm \u00B7 esc close" }) })] }) }));
|
|
36
36
|
}
|
|
37
37
|
//# sourceMappingURL=permission-dialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission-dialog.js","sourceRoot":"","sources":["../../../../src/tui/ui/permission-dialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"permission-dialog.js","sourceRoot":"","sources":["../../../../src/tui/ui/permission-dialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-dialog.d.ts","sourceRoot":"","sources":["../../../../src/tui/ui/provider-dialog.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider-dialog.d.ts","sourceRoot":"","sources":["../../../../src/tui/ui/provider-dialog.tsx"],"names":[],"mappings":"AA0SA,MAAM,WAAW,mBAAmB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,EAAE;QAAE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAA;KAAE,CAAC;CACxD;AAOD,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,6BAgHxD"}
|