@corenel/web-ui 0.1.0 → 0.3.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.
- package/dist/AskUser.d.ts.map +1 -1
- package/dist/AskUser.js +49 -13
- package/dist/AskUser.js.map +1 -1
- package/dist/CommandTray.d.ts +21 -0
- package/dist/CommandTray.d.ts.map +1 -0
- package/dist/CommandTray.js +102 -0
- package/dist/CommandTray.js.map +1 -0
- package/dist/Composer.d.ts +17 -1
- package/dist/Composer.d.ts.map +1 -1
- package/dist/Composer.js +93 -6
- package/dist/Composer.js.map +1 -1
- package/dist/ContextBar.d.ts +9 -1
- package/dist/ContextBar.d.ts.map +1 -1
- package/dist/ContextBar.js +9 -3
- package/dist/ContextBar.js.map +1 -1
- package/dist/ContextManager.d.ts +78 -2
- package/dist/ContextManager.d.ts.map +1 -1
- package/dist/ContextManager.js +175 -51
- package/dist/ContextManager.js.map +1 -1
- package/dist/Lightbox.d.ts.map +1 -1
- package/dist/Lightbox.js +2 -10
- package/dist/Lightbox.js.map +1 -1
- package/dist/ProcessDock.d.ts +45 -0
- package/dist/ProcessDock.d.ts.map +1 -0
- package/dist/ProcessDock.js +150 -0
- package/dist/ProcessDock.js.map +1 -0
- package/dist/RichContent.d.ts +4 -2
- package/dist/RichContent.d.ts.map +1 -1
- package/dist/RichContent.js +12 -7
- package/dist/RichContent.js.map +1 -1
- package/dist/TodoBar.d.ts +3 -0
- package/dist/TodoBar.d.ts.map +1 -0
- package/dist/TodoBar.js +163 -0
- package/dist/TodoBar.js.map +1 -0
- package/dist/Transcript.d.ts +2 -1
- package/dist/Transcript.d.ts.map +1 -1
- package/dist/Transcript.js +7 -7
- package/dist/Transcript.js.map +1 -1
- package/dist/agentChat/AgentChat.d.ts +132 -0
- package/dist/agentChat/AgentChat.d.ts.map +1 -0
- package/dist/agentChat/AgentChat.js +588 -0
- package/dist/agentChat/AgentChat.js.map +1 -0
- package/dist/agentChat/OptionsDrawer.d.ts +81 -0
- package/dist/agentChat/OptionsDrawer.d.ts.map +1 -0
- package/dist/agentChat/OptionsDrawer.js +321 -0
- package/dist/agentChat/OptionsDrawer.js.map +1 -0
- package/dist/agentChat/SkillsSection.d.ts +3 -0
- package/dist/agentChat/SkillsSection.d.ts.map +1 -0
- package/dist/agentChat/SkillsSection.js +86 -0
- package/dist/agentChat/SkillsSection.js.map +1 -0
- package/dist/agentChat/controller.d.ts +116 -0
- package/dist/agentChat/controller.d.ts.map +1 -0
- package/dist/agentChat/controller.js +25 -0
- package/dist/agentChat/controller.js.map +1 -0
- package/dist/agentChat/skillRunner.d.ts +14 -0
- package/dist/agentChat/skillRunner.d.ts.map +1 -0
- package/dist/agentChat/skillRunner.js +4 -0
- package/dist/agentChat/skillRunner.js.map +1 -0
- package/dist/commandTurn.d.ts +47 -0
- package/dist/commandTurn.d.ts.map +1 -0
- package/dist/commandTurn.js +64 -0
- package/dist/commandTurn.js.map +1 -0
- package/dist/composerHistory.d.ts +10 -0
- package/dist/composerHistory.d.ts.map +1 -0
- package/dist/composerHistory.js +44 -0
- package/dist/composerHistory.js.map +1 -0
- package/dist/sendLater/SendLater.d.ts +31 -0
- package/dist/sendLater/SendLater.d.ts.map +1 -0
- package/dist/sendLater/SendLater.js +145 -0
- package/dist/sendLater/SendLater.js.map +1 -0
- package/dist/sendLater/queue.d.ts +69 -0
- package/dist/sendLater/queue.d.ts.map +1 -0
- package/dist/sendLater/queue.js +216 -0
- package/dist/sendLater/queue.js.map +1 -0
- package/dist/toolRender.d.ts +8 -0
- package/dist/toolRender.d.ts.map +1 -1
- package/dist/toolRender.js +7 -1
- package/dist/toolRender.js.map +1 -1
- package/package.json +16 -21
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentChat.js","sourceRoot":"","sources":["../../agentChat/AgentChat.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { AgentTool } from '@corenel/protocol';
|
|
3
|
+
export interface DrawerConnections {
|
|
4
|
+
listMcpTools(force?: boolean): Promise<McpToolInfoLike[]>;
|
|
5
|
+
listToolKeys(): Promise<Record<string, {
|
|
6
|
+
hasKey: boolean;
|
|
7
|
+
paidFallback?: boolean;
|
|
8
|
+
}>>;
|
|
9
|
+
setToolKey(id: string, key: string): Promise<void>;
|
|
10
|
+
clearToolKey(id: string): Promise<void>;
|
|
11
|
+
listMcpServers(): Promise<McpServerLike[]>;
|
|
12
|
+
addMcpServer(s: {
|
|
13
|
+
label: string;
|
|
14
|
+
url: string;
|
|
15
|
+
apiKey?: string;
|
|
16
|
+
}): Promise<void>;
|
|
17
|
+
removeMcpServer(id: string): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
export interface McpToolInfoLike {
|
|
20
|
+
serverId: string;
|
|
21
|
+
serverLabel: string;
|
|
22
|
+
name?: string;
|
|
23
|
+
description?: string;
|
|
24
|
+
error?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface McpServerLike {
|
|
27
|
+
id: string;
|
|
28
|
+
label: string;
|
|
29
|
+
url: string;
|
|
30
|
+
hasKey?: boolean;
|
|
31
|
+
}
|
|
32
|
+
export interface OptionsDrawerProps {
|
|
33
|
+
open: boolean;
|
|
34
|
+
onClose(): void;
|
|
35
|
+
/** persona/policy are controlled here (AgentChat owns the state; drawer renders). */
|
|
36
|
+
personaName: string;
|
|
37
|
+
onPersona(id: string): void;
|
|
38
|
+
policyName: string;
|
|
39
|
+
onPolicy(name: string): void;
|
|
40
|
+
/** Hide the persona + policy selection (a fixed-identity surface owns them). */
|
|
41
|
+
hideIdentity?: boolean;
|
|
42
|
+
/** Budget section: AgentChat owns override state; the HOST renders the form. */
|
|
43
|
+
budgetSection?: React.ReactNode;
|
|
44
|
+
/** Extra Settings-tab sections (editor's "Agent prompts"). */
|
|
45
|
+
settingsExtras?: React.ReactNode;
|
|
46
|
+
/** MCP/web-key management; omitted = those sections hidden (no fake forms). */
|
|
47
|
+
connections?: DrawerConnections;
|
|
48
|
+
/** Per-tool provenance badge (editor tags sidecar tools). */
|
|
49
|
+
toolBadge?: (toolName: string) => string | undefined;
|
|
50
|
+
/** Host PolicyEditor modal (Monaco — stays host-side). Rendered when the user
|
|
51
|
+
* clicks "Edit policies…"; host closes via the callback props. */
|
|
52
|
+
policyEditor?: (p: {
|
|
53
|
+
initialName: string;
|
|
54
|
+
onClose(): void;
|
|
55
|
+
onSaved(name: string | null): void;
|
|
56
|
+
}) => React.ReactNode;
|
|
57
|
+
/** Bumped by AgentChat so tool counts re-render on registry changes. */
|
|
58
|
+
registryTick?: number;
|
|
59
|
+
/** Capability registries for display — the same object the host built its
|
|
60
|
+
* runtime with (defaults: harness allTools / listSkills), so the drawer lists
|
|
61
|
+
* exactly what the engine runs with. */
|
|
62
|
+
capabilities?: {
|
|
63
|
+
tools?: () => AgentTool[];
|
|
64
|
+
skills?: () => Promise<import('@corenel/harness/skills').InstalledSkill[]>;
|
|
65
|
+
};
|
|
66
|
+
/** Fired after an MCP server add/remove mutation, alongside the drawer's own
|
|
67
|
+
* post-mutation refresh — lets a host's separate MCP tool list (AgentChat's
|
|
68
|
+
* `useMcpTools` instance, used to build the "/" command menu) pick up the
|
|
69
|
+
* change immediately instead of waiting for the next drawer open. Optional so
|
|
70
|
+
* existing hosts/fixtures are unaffected. */
|
|
71
|
+
onConnectionsChanged?: () => void;
|
|
72
|
+
}
|
|
73
|
+
/** Discovered MCP tools — mount-load + refresh-on-`refreshKey` (the drawer bumps
|
|
74
|
+
* this when it opens or after a server/key mutation). Also consumed by
|
|
75
|
+
* AgentChat's slash menu, which is why this lives outside the drawer's render.
|
|
76
|
+
* The first fetch (refreshKey's initial value) reads the cache; every later bump
|
|
77
|
+
* forces a re-list, mirroring the old AgentPanel's mount-load + drawer-open
|
|
78
|
+
* refresh + post-mutation `listMcpTools(true)` calls. */
|
|
79
|
+
export declare function useMcpTools(connections: DrawerConnections | undefined, refreshKey: number): McpToolInfoLike[];
|
|
80
|
+
export declare function OptionsDrawer(props: OptionsDrawerProps): React.ReactElement;
|
|
81
|
+
//# sourceMappingURL=OptionsDrawer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionsDrawer.d.ts","sourceRoot":"","sources":["../../agentChat/OptionsDrawer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/* The Corenel options drawer — Settings (persona/policy/display/budget) and
|
|
3
|
+
* Capabilities (built-in tools, web-search key, skills, MCP servers) — extracted
|
|
4
|
+
* from the editor AgentPanel so every agent surface (editor, /agent, /craft) can
|
|
5
|
+
* render the same drawer. Persona/policy selection is CONTROLLED (the host owns
|
|
6
|
+
* the selected id and persists it); everything else — persona/policy LISTS,
|
|
7
|
+
* skills, transcript-view, live-edits — is harness/web-ui-backed and lives here.
|
|
8
|
+
*
|
|
9
|
+
* Four host couplings come in as props instead of direct imports, so this module
|
|
10
|
+
* never touches @corenel/tools-web or src/: MCP/web-key management
|
|
11
|
+
* (`connections`, omitted = those sections hidden, no fake forms), the per-run
|
|
12
|
+
* budget form (`budgetSection`), the Monaco PolicyEditor modal (`policyEditor`,
|
|
13
|
+
* a render prop — Monaco stays host-side), and a per-tool provenance badge
|
|
14
|
+
* (`toolBadge`, e.g. the editor's "sidecar" tag). */
|
|
15
|
+
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
16
|
+
import { allTools } from '@corenel/harness/tools/builtins';
|
|
17
|
+
import { resolveNamespace, toolAddress, toolMatchesAnyGlob, NAMESPACE_LABELS } from '@corenel/harness/tools/namespaces';
|
|
18
|
+
import { PermissionService, STANDARD_POLICY, listPolicies, getPolicy } from '@corenel/harness/guardrail';
|
|
19
|
+
import { loadPersonas, createPersona, deletePersona } from '@corenel/harness/prompts/config';
|
|
20
|
+
import { useBrand } from '@corenel/ui-kit/host';
|
|
21
|
+
import { getEditorControls } from '@corenel/ui-kit/theme';
|
|
22
|
+
import { IcPlus, IcTrash, IcX, IcKey, IcCheck, IcSliders, IcZap, IcSearch, IcEdit } from '@corenel/ui-kit/icons';
|
|
23
|
+
import { Section, Row, Toggle, MenuBtn } from '@corenel/ui-kit/FieldControls';
|
|
24
|
+
import { useTranscriptView, TranscriptViewToggle } from '../transcriptView';
|
|
25
|
+
import { useLiveEditsSetting } from '../liveEdit';
|
|
26
|
+
import { SkillsSection } from './SkillsSection';
|
|
27
|
+
const BUILTIN_BLURB = {
|
|
28
|
+
standard: 'Reads run automatically; writes ask first.',
|
|
29
|
+
'read-only': 'Inspection only — writes are refused.',
|
|
30
|
+
autonomous: 'Everything runs without prompts.',
|
|
31
|
+
};
|
|
32
|
+
const policyBlurb = (p) => BUILTIN_BLURB[p.name] || p.description || '';
|
|
33
|
+
/** Effective per-tool status under a policy, for the tool list badges. Matches by
|
|
34
|
+
* namespace address (fs:*) and bare name. */
|
|
35
|
+
function toolStatus(policy, tool) {
|
|
36
|
+
const deny = policy.tools?.deny ?? [];
|
|
37
|
+
const allow = policy.tools?.allow ?? [];
|
|
38
|
+
if (deny.length && toolMatchesAnyGlob(tool, deny))
|
|
39
|
+
return 'deny';
|
|
40
|
+
if (allow.length && !toolMatchesAnyGlob(tool, allow))
|
|
41
|
+
return 'deny';
|
|
42
|
+
return new PermissionService({ policy }).resolveLevel({
|
|
43
|
+
name: tool.name, address: toolAddress(tool), mutates: tool.mutates, permission: tool.permission,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/** Discovered MCP tools — mount-load + refresh-on-`refreshKey` (the drawer bumps
|
|
47
|
+
* this when it opens or after a server/key mutation). Also consumed by
|
|
48
|
+
* AgentChat's slash menu, which is why this lives outside the drawer's render.
|
|
49
|
+
* The first fetch (refreshKey's initial value) reads the cache; every later bump
|
|
50
|
+
* forces a re-list, mirroring the old AgentPanel's mount-load + drawer-open
|
|
51
|
+
* refresh + post-mutation `listMcpTools(true)` calls. */
|
|
52
|
+
export function useMcpTools(connections, refreshKey) {
|
|
53
|
+
const [tools, setTools] = useState([]);
|
|
54
|
+
const firstRef = React.useRef(true);
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
if (!connections) {
|
|
57
|
+
setTools([]);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const force = !firstRef.current;
|
|
61
|
+
firstRef.current = false;
|
|
62
|
+
connections.listMcpTools(force).then(setTools).catch(() => setTools([]));
|
|
63
|
+
}, [connections, refreshKey]);
|
|
64
|
+
return tools;
|
|
65
|
+
}
|
|
66
|
+
export function OptionsDrawer(props) {
|
|
67
|
+
const { name: brandName } = useBrand();
|
|
68
|
+
const { open, onClose, personaName, onPersona, policyName, onPolicy, hideIdentity, budgetSection, settingsExtras, connections, toolBadge, policyEditor, registryTick, capabilities, onConnectionsChanged, } = props;
|
|
69
|
+
const [drawerTab, setDrawerTab] = useState('settings');
|
|
70
|
+
const [toolQuery, setToolQuery] = useState('');
|
|
71
|
+
useEffect(() => { if (open) {
|
|
72
|
+
setToolQuery('');
|
|
73
|
+
setDrawerTab('settings');
|
|
74
|
+
} }, [open]);
|
|
75
|
+
const [transcriptView, setTranscriptView] = useTranscriptView();
|
|
76
|
+
const [liveEdits, setLiveEdits] = useLiveEditsSetting();
|
|
77
|
+
// Persona/policy LISTS stay internal — only the selected ids are the host's.
|
|
78
|
+
const [personas, setPersonas] = useState([]);
|
|
79
|
+
const [personaMenuOpen, setPersonaMenuOpen] = useState(false);
|
|
80
|
+
const [newPersona, setNewPersona] = useState(null);
|
|
81
|
+
const reloadPersonas = useCallback(() => { loadPersonas().then(setPersonas); }, []);
|
|
82
|
+
useEffect(() => { reloadPersonas(); }, [reloadPersonas]);
|
|
83
|
+
const personaLabel = personas.find((p) => p.id === personaName)?.name || personaName;
|
|
84
|
+
const pickPersona = (id) => { onPersona(id); setPersonaMenuOpen(false); };
|
|
85
|
+
const addPersona = async () => {
|
|
86
|
+
const name = (newPersona?.name || '').trim();
|
|
87
|
+
const system = (newPersona?.system || '').trim();
|
|
88
|
+
if (!name || !system)
|
|
89
|
+
return;
|
|
90
|
+
const id = await createPersona(name, system);
|
|
91
|
+
await loadPersonas().then(setPersonas);
|
|
92
|
+
setNewPersona(null);
|
|
93
|
+
onPersona(id);
|
|
94
|
+
};
|
|
95
|
+
const removePersona = async (id) => {
|
|
96
|
+
await deletePersona(id);
|
|
97
|
+
const list = await loadPersonas();
|
|
98
|
+
setPersonas(list);
|
|
99
|
+
if (personaName === id)
|
|
100
|
+
onPersona(list[0]?.id || 'default');
|
|
101
|
+
};
|
|
102
|
+
const [policyMenuOpen, setPolicyMenuOpen] = useState(false);
|
|
103
|
+
const [policyEditorOpen, setPolicyEditorOpen] = useState(false);
|
|
104
|
+
const [policyListVersion, setPolicyListVersion] = useState(0); // bump to re-resolve after edits
|
|
105
|
+
const selectPolicy = useCallback((name) => { onPolicy(name); setPolicyMenuOpen(false); }, [onPolicy]);
|
|
106
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
107
|
+
const activePolicy = useMemo(() => getPolicy(policyName) ?? STANDARD_POLICY, [policyName, policyListVersion]);
|
|
108
|
+
// Connections (web-search key + MCP servers) — omitted entirely when
|
|
109
|
+
// `connections` is not supplied (no fake forms for a surface that can't act on them).
|
|
110
|
+
const [toolKeys, setToolKeys] = useState({});
|
|
111
|
+
const [mcpServers, setMcpServers] = useState([]);
|
|
112
|
+
const [connAuthNeeded, setConnAuthNeeded] = useState(false);
|
|
113
|
+
const [connBusy, setConnBusy] = useState(false);
|
|
114
|
+
const [connErr, setConnErr] = useState(null);
|
|
115
|
+
const [serverForm, setServerForm] = useState(null);
|
|
116
|
+
const [webKeyEdit, setWebKeyEdit] = useState(null); // input value while editing, else null
|
|
117
|
+
const loadConnections = useCallback(() => {
|
|
118
|
+
if (!connections)
|
|
119
|
+
return;
|
|
120
|
+
setConnErr(null);
|
|
121
|
+
Promise.all([connections.listToolKeys(), connections.listMcpServers()])
|
|
122
|
+
.then(([keys, servers]) => { setToolKeys(keys); setMcpServers(servers); setConnAuthNeeded(false); })
|
|
123
|
+
.catch((e) => { if (String(e?.message) === 'AUTH_REQUIRED')
|
|
124
|
+
setConnAuthNeeded(true);
|
|
125
|
+
else
|
|
126
|
+
setConnErr(String(e?.message || e)); });
|
|
127
|
+
}, [connections]);
|
|
128
|
+
useEffect(() => { if (open && connections)
|
|
129
|
+
loadConnections(); }, [open, connections, loadConnections]);
|
|
130
|
+
// MCP tools — mount-load + refresh whenever the drawer opens or a mutation
|
|
131
|
+
// below bumps the key (matching the old `listMcpTools(true)` refresh calls).
|
|
132
|
+
const [mcpRefresh, setMcpRefresh] = useState(0);
|
|
133
|
+
useEffect(() => { if (open)
|
|
134
|
+
setMcpRefresh((k) => k + 1); }, [open]);
|
|
135
|
+
const mcpTools = useMcpTools(connections, mcpRefresh);
|
|
136
|
+
const refreshMcp = useCallback(() => { setMcpRefresh((k) => k + 1); loadConnections(); onConnectionsChanged?.(); }, [loadConnections, onConnectionsChanged]);
|
|
137
|
+
const runConn = async (fn) => {
|
|
138
|
+
setConnBusy(true);
|
|
139
|
+
setConnErr(null);
|
|
140
|
+
try {
|
|
141
|
+
await fn();
|
|
142
|
+
}
|
|
143
|
+
catch (e) {
|
|
144
|
+
setConnErr(String(e?.message || e));
|
|
145
|
+
}
|
|
146
|
+
finally {
|
|
147
|
+
setConnBusy(false);
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
const addServer = () => {
|
|
151
|
+
if (!connections)
|
|
152
|
+
return;
|
|
153
|
+
return runConn(async () => {
|
|
154
|
+
if (!serverForm)
|
|
155
|
+
return;
|
|
156
|
+
const label = serverForm.label.trim();
|
|
157
|
+
const url = serverForm.url.trim();
|
|
158
|
+
if (!label || !url) {
|
|
159
|
+
setConnErr('Label and URL are required.');
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
await connections.addMcpServer({ label, url, apiKey: serverForm.apiKey.trim() || undefined });
|
|
163
|
+
setServerForm(null);
|
|
164
|
+
refreshMcp();
|
|
165
|
+
});
|
|
166
|
+
};
|
|
167
|
+
const removeServer = (id) => { if (!connections)
|
|
168
|
+
return; return runConn(async () => { await connections.removeMcpServer(id); refreshMcp(); }); };
|
|
169
|
+
const saveWebKey = () => {
|
|
170
|
+
if (!connections)
|
|
171
|
+
return;
|
|
172
|
+
return runConn(async () => {
|
|
173
|
+
const k = (webKeyEdit ?? '').trim();
|
|
174
|
+
if (k.length < 8) {
|
|
175
|
+
setConnErr('Enter a valid Tavily key.');
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
await connections.setToolKey('tavily', k);
|
|
179
|
+
setWebKeyEdit(null);
|
|
180
|
+
loadConnections();
|
|
181
|
+
});
|
|
182
|
+
};
|
|
183
|
+
const clearWebKey = () => { if (!connections)
|
|
184
|
+
return; return runConn(async () => { await connections.clearToolKey('tavily'); loadConnections(); }); };
|
|
185
|
+
const toolsFn = capabilities?.tools ?? allTools;
|
|
186
|
+
// Built-in tools grouped by UI category, filtered — memoized so tab-count and
|
|
187
|
+
// list rendering share the same pass; registryTick forces a recompute when
|
|
188
|
+
// the host's registry changes underneath (sidecar connect, etc.).
|
|
189
|
+
const toolGroups = useMemo(() => {
|
|
190
|
+
const needle = toolQuery.trim().toLowerCase();
|
|
191
|
+
const matches = (name, desc) => !needle || name.toLowerCase().includes(needle) || desc.toLowerCase().includes(needle);
|
|
192
|
+
return NAMESPACE_LABELS
|
|
193
|
+
.map((c) => ({ key: c.ns, label: c.label, items: toolsFn().filter((t) => resolveNamespace(t) === c.ns && matches(t.name, t.description)) }))
|
|
194
|
+
.filter((g) => g.items.length > 0);
|
|
195
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
196
|
+
}, [toolQuery, toolsFn, registryTick]);
|
|
197
|
+
if (!open) {
|
|
198
|
+
// The PolicyEditor modal is independent of the drawer's open state (matches
|
|
199
|
+
// the old AgentPanel, where the modal lived at the panel root, not inside
|
|
200
|
+
// the drawer's conditional block) — it can stay open after the drawer closes.
|
|
201
|
+
return _jsx(_Fragment, { children: policyEditorOpen && policyEditor?.({
|
|
202
|
+
initialName: policyName,
|
|
203
|
+
onClose: () => setPolicyEditorOpen(false),
|
|
204
|
+
onSaved: (name) => { setPolicyListVersion((v) => v + 1); if (name)
|
|
205
|
+
onPolicy(name); },
|
|
206
|
+
}) });
|
|
207
|
+
}
|
|
208
|
+
const needle = toolQuery.trim().toLowerCase();
|
|
209
|
+
const matches = (name, desc) => !needle || name.toLowerCase().includes(needle) || desc.toLowerCase().includes(needle);
|
|
210
|
+
const ec = getEditorControls();
|
|
211
|
+
const toggleDisplay = ec === 'icons' ? 'icons' : ec === 'labels' ? 'labels' : 'both';
|
|
212
|
+
// Discovered MCP tools (+ per-server errors) keyed by serverId, so each
|
|
213
|
+
// configured server can show its own tools beneath it.
|
|
214
|
+
const mcpByServer = new Map();
|
|
215
|
+
const mcpErrByServer = new Map();
|
|
216
|
+
for (const t of mcpTools) {
|
|
217
|
+
if (t.error) {
|
|
218
|
+
mcpErrByServer.set(t.serverId, t.error);
|
|
219
|
+
continue;
|
|
220
|
+
}
|
|
221
|
+
(mcpByServer.get(t.serverId) ?? mcpByServer.set(t.serverId, []).get(t.serverId)).push(t);
|
|
222
|
+
}
|
|
223
|
+
const serverShown = (s) => {
|
|
224
|
+
if (!needle)
|
|
225
|
+
return true;
|
|
226
|
+
if (s.label.toLowerCase().includes(needle) || s.url.toLowerCase().includes(needle))
|
|
227
|
+
return true;
|
|
228
|
+
return (mcpByServer.get(s.id) || []).some((t) => matches(t.name || '', t.description || ''));
|
|
229
|
+
};
|
|
230
|
+
const shownServers = mcpServers.filter(serverShown);
|
|
231
|
+
const showSkills = !needle || 'skills'.includes(needle);
|
|
232
|
+
const showWeb = !!connections && (!needle || 'web search tavily key api'.includes(needle));
|
|
233
|
+
const showMcp = !!connections && (!needle || 'mcp server'.includes(needle) || shownServers.length > 0);
|
|
234
|
+
const nothing = toolGroups.length === 0 && !showSkills && !showWeb && !showMcp;
|
|
235
|
+
return (_jsxs(_Fragment, { children: [_jsx("div", { style: S.drawerBackdrop, onClick: onClose }), _jsxs("aside", { style: S.drawer, role: "dialog", "aria-label": `${brandName} options`, children: [_jsxs("div", { style: S.drawerHead, children: [_jsx("span", { style: S.drawerTitle, children: brandName }), _jsx("button", { style: S.iconBtn, onClick: onClose, "aria-label": "Close options", children: _jsx(IcX, { size: 16 }) })] }), _jsxs("div", { style: S.drawerTabs, role: "tablist", "aria-label": `${brandName} settings sections`, children: [_jsxs("button", { role: "tab", "aria-selected": drawerTab === 'settings', style: drawerTabStyle(drawerTab === 'settings'), onClick: () => setDrawerTab('settings'), children: [_jsx(IcSliders, { size: 13 }), " Settings"] }), _jsxs("button", { role: "tab", "aria-selected": drawerTab === 'capabilities', style: drawerTabStyle(drawerTab === 'capabilities'), onClick: () => setDrawerTab('capabilities'), children: [_jsx(IcZap, { size: 13 }), " Capabilities", _jsx("span", { style: S.drawerTabCount, children: toolsFn().length + mcpTools.length })] })] }), drawerTab === 'settings' ? (_jsxs("div", { style: S.settingsScroll, children: [!hideIdentity && (_jsxs(Section, { label: "Behavior", children: [_jsx(Row, { label: "Persona", children: _jsx(MenuBtn, { value: personaLabel, open: personaMenuOpen, onClick: () => { setPersonaMenuOpen((o) => !o); setPolicyMenuOpen(false); } }) }), personaMenuOpen && (_jsxs("div", { style: S.ddPanel, children: [personas.map((p) => (_jsxs("div", { style: S.personaRow, children: [_jsxs("button", { style: personaPickStyle(p.id === personaName), onClick: () => pickPersona(p.id), children: [_jsxs("span", { style: S.personaPickName, children: [p.name, p.id === personaName && _jsx(IcCheck, { size: 11 })] }), p.description && _jsx("span", { style: S.personaDesc, children: p.description })] }), _jsx("button", { style: S.menuDel, onClick: () => removePersona(p.id), title: "Delete persona", children: _jsx(IcTrash, { size: 12 }) })] }, p.id))), newPersona ? (_jsxs("div", { style: S.personaForm, children: [_jsx("input", { style: S.personaInput, placeholder: "persona name", value: newPersona.name, onChange: (e) => setNewPersona((n) => ({ ...n, name: e.target.value })) }), _jsx("textarea", { style: S.personaTextarea, placeholder: "System prompt \u2014 the voice/role\u2026", value: newPersona.system, onChange: (e) => setNewPersona((n) => ({ ...n, system: e.target.value })) }), _jsxs("div", { style: S.personaFormActions, children: [_jsx("button", { style: S.personaGhost, onClick: () => setNewPersona(null), children: "Cancel" }), _jsxs("button", { style: S.personaSave, onClick: addPersona, children: [_jsx(IcCheck, { size: 12 }), " Save"] })] })] })) : (_jsxs("button", { style: S.menuItem, onClick: () => setNewPersona({ name: '', system: '' }), children: [_jsx(IcPlus, { size: 13 }), " New persona"] }))] })), _jsx(Row, { label: "Policy", children: _jsx(MenuBtn, { value: policyName, open: policyMenuOpen, onClick: () => { setPolicyMenuOpen((o) => !o); setPersonaMenuOpen(false); }, title: policyBlurb(activePolicy) }) }), policyMenuOpen && (_jsxs("div", { style: S.ddPanel, children: [listPolicies().map((e) => (_jsxs("button", { style: policyOptStyle(e.name === policyName), onClick: () => selectPolicy(e.name), children: [_jsxs("span", { style: S.personaPickName, children: [e.name, !e.builtin && _jsx("span", { style: S.policyTag, children: "custom" }), e.name === policyName && _jsx(IcCheck, { size: 11 })] }), _jsx("span", { style: S.personaDesc, children: policyBlurb(e.policy) })] }, e.name))), _jsxs("button", { style: S.policyEditBtn, onClick: () => { setPolicyMenuOpen(false); setPolicyEditorOpen(true); }, children: [_jsx(IcEdit, { size: 12 }), " Edit policies\u2026"] })] }))] })), _jsxs(Section, { label: "Display", children: [_jsx(Row, { label: "Transcript detail", children: _jsx(TranscriptViewToggle, { view: transcriptView, onChange: setTranscriptView, display: toggleDisplay }) }), _jsx(Row, { label: "Show live edits", tip: "Review AI edits inline in the editor (Accept/Reject there); the chat diff collapses. Off: review in chat.", children: _jsx(Toggle, { ariaLabel: "Show live edits", checked: liveEdits, onChange: setLiveEdits }) })] }), budgetSection && (_jsx(Section, { label: "Budget", meta: "this chat", children: budgetSection })), settingsExtras] })) : (_jsxs(_Fragment, { children: [_jsxs("div", { style: S.toolsScroll, children: [_jsxs("div", { style: S.toolsSearch, children: [_jsx(IcSearch, { size: 13 }), _jsx("input", { style: S.toolsSearchInput, placeholder: "Filter tools, skills, MCP\u2026", value: toolQuery, onChange: (e) => setToolQuery(e.target.value), onKeyDown: (e) => { if (e.key === 'Escape') {
|
|
236
|
+
e.preventDefault();
|
|
237
|
+
onClose();
|
|
238
|
+
} } }), toolQuery && _jsx("button", { style: S.toolsClear, onClick: () => setToolQuery(''), "aria-label": "Clear filter", children: _jsx(IcX, { size: 12 }) })] }), connErr && _jsx("div", { style: S.connError, children: connErr }), toolGroups.map((g) => (_jsx(Section, { label: g.label, meta: g.items.length, children: g.items.map((t) => {
|
|
239
|
+
const st = toolStatus(activePolicy, t);
|
|
240
|
+
const badge = toolBadge?.(t.name);
|
|
241
|
+
return (_jsxs("div", { style: S.toolRow, title: t.description, children: [_jsxs("span", { style: S.toolMain, children: [_jsxs("span", { style: S.toolNm, children: [t.name, badge && _jsx("span", { style: S.toolSidecar, children: badge })] }), _jsx("span", { style: S.toolDesc, children: t.description })] }), _jsx("span", { style: st === 'deny' ? S.toolDenied : st === 'ask' ? S.toolAsks : S.toolAuto, children: st })] }, t.name));
|
|
242
|
+
}) }, g.key))), showWeb && (_jsx(Section, { label: "Web search key", meta: "Tavily", children: connAuthNeeded ? (_jsx("div", { style: S.connHint, children: "Sign in to manage your web-search key." })) : webKeyEdit != null ? (_jsxs("div", { style: S.connForm, children: [_jsx("input", { style: S.connInput, type: "password", placeholder: "Tavily API key (tvly-\u2026)", value: webKeyEdit, onChange: (e) => setWebKeyEdit(e.target.value), autoFocus: true }), _jsxs("div", { style: S.connFormRow, children: [_jsx("button", { style: S.connGhost, onClick: () => setWebKeyEdit(null), disabled: connBusy, children: "Cancel" }), _jsxs("button", { style: S.connSave, onClick: saveWebKey, disabled: connBusy, children: [_jsx(IcCheck, { size: 12 }), " Save key"] })] })] })) : (_jsxs("div", { style: S.connRow, children: [_jsxs("span", { style: S.connMain, children: [_jsxs("span", { style: S.connName, children: [_jsx(IcKey, { size: 12 }), " ", toolKeys.tavily?.hasKey ? 'Your key is set' : toolKeys.tavily?.paidFallback ? 'Using the Prompd-provided key' : 'No key set'] }), _jsx("span", { style: S.connSub, children: toolKeys.tavily?.hasKey ? 'web_search uses your Tavily key' : toolKeys.tavily?.paidFallback ? 'add your own key to use your own Tavily quota' : 'web_search is unavailable until a key is added' })] }), _jsx("button", { style: S.connBtn, onClick: () => setWebKeyEdit(''), disabled: connBusy, children: toolKeys.tavily?.hasKey ? 'Change' : 'Add key' }), toolKeys.tavily?.hasKey && _jsx("button", { style: S.connBtnDanger, onClick: clearWebKey, disabled: connBusy, title: "Remove your key", children: _jsx(IcTrash, { size: 12 }) })] })) })), showSkills && _jsx(SkillsSection, {}), showMcp && (_jsx(Section, { label: "MCP servers", meta: connAuthNeeded ? undefined : _jsxs("button", { style: S.catAdd, onClick: () => setServerForm({ label: '', url: '', apiKey: '' }), disabled: connBusy, children: [_jsx(IcPlus, { size: 12 }), " Add"] }), children: connAuthNeeded ? (_jsx("div", { style: S.connHint, children: "Sign in to add and manage MCP servers." })) : (_jsxs(_Fragment, { children: [serverForm && (_jsxs("div", { style: S.connForm, children: [_jsx("input", { style: S.connInput, placeholder: "Label (e.g. GitHub)", value: serverForm.label, onChange: (e) => setServerForm((f) => ({ ...f, label: e.target.value })), autoFocus: true }), _jsx("input", { style: S.connInput, placeholder: "https://server.example.com/mcp", value: serverForm.url, onChange: (e) => setServerForm((f) => ({ ...f, url: e.target.value })) }), _jsx("input", { style: S.connInput, type: "password", placeholder: "Bearer key (optional)", value: serverForm.apiKey, onChange: (e) => setServerForm((f) => ({ ...f, apiKey: e.target.value })) }), _jsxs("div", { style: S.connFormRow, children: [_jsx("button", { style: S.connGhost, onClick: () => setServerForm(null), disabled: connBusy, children: "Cancel" }), _jsxs("button", { style: S.connSave, onClick: addServer, disabled: connBusy, children: [_jsx(IcCheck, { size: 12 }), " Add server"] })] })] })), shownServers.length === 0 && !serverForm && _jsx("div", { style: S.connHint, children: "No MCP servers yet. Add one to give the agent remote tools." }), shownServers.map((s) => {
|
|
243
|
+
const stools = (mcpByServer.get(s.id) || []).filter((t) => matches(t.name || '', t.description || ''));
|
|
244
|
+
const err = mcpErrByServer.get(s.id);
|
|
245
|
+
return (_jsxs("div", { style: S.serverBlock, children: [_jsxs("div", { style: S.serverHead, children: [_jsxs("span", { style: S.connMain, children: [_jsxs("span", { style: S.connName, children: [s.label, s.hasKey && _jsx(IcKey, { size: 11 })] }), _jsx("span", { style: S.connSub, children: s.url })] }), _jsx("span", { style: S.serverCount, children: err ? 'error' : `${stools.length} tool${stools.length === 1 ? '' : 's'}` }), _jsx("button", { style: S.connBtnDanger, onClick: () => removeServer(s.id), disabled: connBusy, title: "Remove server", children: _jsx(IcTrash, { size: 12 }) })] }), err && _jsx("div", { style: S.serverErr, children: err }), stools.map((t, i) => (_jsxs("div", { style: S.toolRow, title: t.description, children: [_jsxs("span", { style: S.toolMain, children: [_jsx("span", { style: S.toolNm, children: t.name }), t.description && _jsx("span", { style: S.toolDesc, children: t.description })] }), _jsx("span", { style: S.toolAuto, children: "mcp" })] }, `${s.id}-${t.name || i}`)))] }, s.id));
|
|
246
|
+
})] })) })), nothing && _jsxs("div", { style: S.toolsEmpty, children: ["No matches for \u201C", toolQuery.trim(), "\u201D."] })] }), _jsxs("div", { style: S.toolsNote, children: ["Status reflects the \u201C", policyName, "\u201D policy: \u201Callow\u201D runs, \u201Cask\u201D needs approval, \u201Cdeny\u201D is blocked."] })] }))] }), policyEditorOpen && policyEditor?.({
|
|
247
|
+
initialName: policyName,
|
|
248
|
+
onClose: () => setPolicyEditorOpen(false),
|
|
249
|
+
onSaved: (name) => { setPolicyListVersion((v) => v + 1); if (name)
|
|
250
|
+
onPolicy(name); },
|
|
251
|
+
})] }));
|
|
252
|
+
}
|
|
253
|
+
// Style keyed by an "active"/state flag — kept out of S (a flat style map) and
|
|
254
|
+
// typed as their own helpers.
|
|
255
|
+
const drawerTabStyle = (active) => ({ display: 'inline-flex', alignItems: 'center', gap: 6, height: 30, padding: '0 11px', border: 0, borderRadius: 'var(--radius-sm)', background: active ? 'var(--accent-soft)' : 'transparent', color: active ? 'var(--accent)' : 'var(--text-secondary)', fontSize: 12.5, fontWeight: 600, fontFamily: 'inherit', cursor: 'pointer' });
|
|
256
|
+
const policyOptStyle = (active) => ({ display: 'flex', flexDirection: 'column', gap: 1, textAlign: 'left', padding: '7px 9px', border: 0, borderRadius: 'var(--radius-sm)', background: active ? 'var(--accent-soft)' : 'transparent', color: active ? 'var(--accent)' : 'var(--text-primary)', cursor: 'pointer', fontFamily: 'inherit' });
|
|
257
|
+
const personaPickStyle = (active) => ({ flex: 1, display: 'flex', flexDirection: 'column', gap: 1, textAlign: 'left', padding: '7px 9px', border: 0, borderRadius: 'var(--radius-sm)', background: active ? 'var(--accent-soft)' : 'transparent', color: active ? 'var(--accent)' : 'var(--text-primary)', cursor: 'pointer', fontFamily: 'inherit' });
|
|
258
|
+
const S = {
|
|
259
|
+
iconBtn: { display: 'inline-flex', alignItems: 'center', justifyContent: 'center', width: 30, height: 30, border: 0, borderRadius: 'var(--radius-sm)', background: 'transparent', color: 'var(--text-tertiary)', cursor: 'pointer' },
|
|
260
|
+
// Options drawer — scoped to the panel (absolute, not viewport-fixed) so it
|
|
261
|
+
// slides over the chat, not the whole app.
|
|
262
|
+
drawerBackdrop: { position: 'absolute', inset: 0, background: 'color-mix(in srgb, var(--surface-0, #000) 40%, transparent)', zIndex: 40 },
|
|
263
|
+
drawer: { position: 'absolute', top: 0, right: 0, bottom: 0, width: 340, maxWidth: '92%', display: 'flex', flexDirection: 'column', background: 'var(--surface-1)', borderLeft: '1px solid var(--border-default)', boxShadow: 'var(--shadow-4)', zIndex: 41 },
|
|
264
|
+
drawerHead: { display: 'flex', alignItems: 'center', height: 48, padding: '0 10px 0 14px', borderBottom: '1px solid var(--border-subtle)', flexShrink: 0 },
|
|
265
|
+
drawerTitle: { flex: 1, fontSize: 14, fontWeight: 600, color: 'var(--text-primary)' },
|
|
266
|
+
// Drawer section tabs — a clean segmented row, monochrome with an accent-soft
|
|
267
|
+
// pill on the active tab (gradients stay reserved for the brand mark).
|
|
268
|
+
drawerTabs: { display: 'flex', gap: 4, padding: '6px 8px', borderBottom: '1px solid var(--border-subtle)', flexShrink: 0 },
|
|
269
|
+
drawerTabCount: { fontSize: 10.5, fontFamily: 'var(--font-mono)', fontVariantNumeric: 'tabular-nums', color: 'currentColor', opacity: 0.7 },
|
|
270
|
+
// Right-aligned action button used inside a drawerRow (icon + short label).
|
|
271
|
+
rowBtn: { display: 'inline-flex', alignItems: 'center', gap: 6, height: 28, padding: '0 11px', border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-sm)', background: 'var(--surface-2)', color: 'var(--text-secondary)', fontSize: 12.5, fontWeight: 600, fontFamily: 'inherit', cursor: 'pointer', flexShrink: 0 },
|
|
272
|
+
ddPanel: { margin: '0 9px 6px', padding: 4, border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-md)', background: 'var(--surface-2)', display: 'flex', flexDirection: 'column', gap: 2 },
|
|
273
|
+
policyTag: { marginLeft: 6, padding: '0 5px', borderRadius: 'var(--radius-pill, 999px)', background: 'var(--surface-3)', color: 'var(--text-tertiary)', fontSize: 9.5, fontWeight: 700, textTransform: 'uppercase', letterSpacing: 0.4, verticalAlign: 'middle' },
|
|
274
|
+
policyEditBtn: { display: 'inline-flex', alignItems: 'center', gap: 6, marginTop: 2, padding: '7px 9px', border: 0, borderTop: '1px solid var(--border-subtle)', borderRadius: 0, background: 'transparent', color: 'var(--accent)', fontSize: 12, fontWeight: 600, fontFamily: 'inherit', cursor: 'pointer', textAlign: 'left' },
|
|
275
|
+
menuItem: { display: 'flex', alignItems: 'center', gap: 8, width: '100%', padding: '8px 9px', border: 0, borderRadius: 'var(--radius-sm)', background: 'transparent', color: 'var(--text-primary)', cursor: 'pointer', fontSize: 13, fontWeight: 500 },
|
|
276
|
+
menuDel: { display: 'inline-flex', width: 26, height: 26, alignItems: 'center', justifyContent: 'center', border: 0, borderRadius: 'var(--radius-sm)', background: 'transparent', color: 'var(--text-disabled)', cursor: 'pointer' },
|
|
277
|
+
toolsScroll: { flex: 1, minHeight: 0, overflowY: 'auto', padding: '4px 6px 6px' },
|
|
278
|
+
settingsScroll: { flex: 1, overflowY: 'auto', padding: '4px 12px 12px', display: 'flex', flexDirection: 'column' },
|
|
279
|
+
textAction: { border: 0, background: 'transparent', color: 'var(--accent)', fontSize: 11.5, fontWeight: 600, fontFamily: 'inherit', cursor: 'pointer', padding: 0 },
|
|
280
|
+
toolMain: { display: 'flex', flexDirection: 'column', gap: 1, flex: 1, minWidth: 0 },
|
|
281
|
+
toolDesc: { fontSize: 11, lineHeight: 1.35, color: 'var(--text-tertiary)', overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' },
|
|
282
|
+
toolsEmpty: { padding: '20px 9px', fontSize: 12.5, color: 'var(--text-tertiary)', textAlign: 'center' },
|
|
283
|
+
toolsSearch: { display: 'flex', alignItems: 'center', gap: 7, height: 28, padding: '0 9px', border: '1px solid var(--border-default)', borderRadius: 'var(--radius-sm)', background: 'var(--surface-2)', color: 'var(--text-tertiary)' },
|
|
284
|
+
toolsSearchInput: { flex: 1, minWidth: 0, border: 0, outline: 'none', background: 'transparent', color: 'var(--text-primary)', fontSize: 12.5, fontFamily: 'inherit' },
|
|
285
|
+
toolsClear: { display: 'inline-flex', alignItems: 'center', justifyContent: 'center', width: 16, height: 16, border: 0, borderRadius: 999, background: 'transparent', color: 'var(--text-tertiary)', cursor: 'pointer', padding: 0, flexShrink: 0 },
|
|
286
|
+
catAdd: { display: 'inline-flex', alignItems: 'center', gap: 4, height: 22, padding: '0 8px', border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-pill, 999px)', background: 'var(--surface-2)', color: 'var(--text-secondary)', fontSize: 11, fontWeight: 600, fontFamily: 'inherit', cursor: 'pointer', textTransform: 'none', letterSpacing: 0 },
|
|
287
|
+
connError: { margin: '4px 3px 6px', padding: '7px 9px', borderRadius: 'var(--radius-sm)', background: 'var(--danger-soft)', color: 'var(--danger)', fontSize: 12, lineHeight: 1.4 },
|
|
288
|
+
connHint: { padding: '4px 9px 8px', fontSize: 12, lineHeight: 1.45, color: 'var(--text-tertiary)' },
|
|
289
|
+
connRow: { display: 'flex', alignItems: 'center', gap: 8, padding: '4px 9px 6px' },
|
|
290
|
+
connMain: { display: 'flex', flexDirection: 'column', gap: 1, flex: 1, minWidth: 0 },
|
|
291
|
+
connName: { display: 'inline-flex', alignItems: 'center', gap: 6, fontSize: 13, fontWeight: 600, color: 'var(--text-primary)' },
|
|
292
|
+
connSub: { fontSize: 11, color: 'var(--text-tertiary)', overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' },
|
|
293
|
+
connBtn: { flexShrink: 0, height: 26, padding: '0 10px', border: '1px solid var(--border-default)', borderRadius: 'var(--radius-sm)', background: 'var(--surface-2)', color: 'var(--text-secondary)', fontSize: 12, fontWeight: 600, fontFamily: 'inherit', cursor: 'pointer' },
|
|
294
|
+
connBtnDanger: { flexShrink: 0, display: 'inline-flex', alignItems: 'center', justifyContent: 'center', width: 26, height: 26, border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-sm)', background: 'transparent', color: 'var(--text-tertiary)', cursor: 'pointer', padding: 0 },
|
|
295
|
+
connForm: { display: 'flex', flexDirection: 'column', gap: 6, padding: '2px 9px 8px' },
|
|
296
|
+
connInput: { height: 'var(--control-h)', padding: '0 var(--space-3)', border: '1px solid var(--border-default)', borderRadius: 'var(--radius-sm)', background: 'var(--surface-2)', color: 'var(--text-primary)', fontSize: 'var(--fs-body-sm)', fontFamily: 'inherit', outline: 'none' },
|
|
297
|
+
connFormRow: { display: 'flex', justifyContent: 'flex-end', gap: 6 },
|
|
298
|
+
connGhost: { height: 28, padding: '0 10px', border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-sm)', background: 'transparent', color: 'var(--text-tertiary)', fontSize: 12, fontWeight: 600, fontFamily: 'inherit', cursor: 'pointer' },
|
|
299
|
+
connSave: { display: 'inline-flex', alignItems: 'center', gap: 5, height: 28, padding: '0 12px', border: 0, borderRadius: 'var(--radius-sm)', background: 'var(--grad-brand)', color: 'var(--text-on-accent, #fff)', fontSize: 12, fontWeight: 600, fontFamily: 'inherit', cursor: 'pointer' },
|
|
300
|
+
serverBlock: { border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-md)', padding: 6, margin: '0 3px 6px' },
|
|
301
|
+
serverHead: { display: 'flex', alignItems: 'center', gap: 8, padding: '2px 4px 4px' },
|
|
302
|
+
serverCount: { flexShrink: 0, fontSize: 10.5, color: 'var(--text-disabled)', fontFamily: 'var(--font-mono)', textTransform: 'uppercase', letterSpacing: '0.05em' },
|
|
303
|
+
serverErr: { padding: '2px 6px 6px', fontSize: 11.5, lineHeight: 1.4, color: 'var(--danger)' },
|
|
304
|
+
personaRow: { display: 'flex', alignItems: 'stretch', gap: 4 },
|
|
305
|
+
personaPickName: { display: 'inline-flex', alignItems: 'center', gap: 6, fontSize: 13, fontWeight: 600, fontFamily: 'var(--font-mono)' },
|
|
306
|
+
personaDesc: { fontSize: 11.5, color: 'var(--text-tertiary)', lineHeight: 1.4 },
|
|
307
|
+
personaForm: { display: 'flex', flexDirection: 'column', gap: 6, padding: 6, borderTop: '1px solid var(--border-subtle)', marginTop: 4 },
|
|
308
|
+
personaInput: { height: 'var(--control-h)', padding: '0 var(--space-3)', border: '1px solid var(--border-default)', borderRadius: 'var(--radius-sm)', background: 'var(--surface-2)', color: 'var(--text-primary)', fontSize: 'var(--fs-body-sm)', fontFamily: 'var(--font-mono)', outline: 'none' },
|
|
309
|
+
personaTextarea: { minHeight: 'calc(var(--control-h) * 2.5)', resize: 'vertical', padding: '8px 9px', border: '1px solid var(--border-default)', borderRadius: 'var(--radius-sm)', background: 'var(--surface-2)', color: 'var(--text-primary)', fontSize: 'var(--fs-body-sm)', fontFamily: 'inherit', lineHeight: 1.5, outline: 'none' },
|
|
310
|
+
personaFormActions: { display: 'flex', justifyContent: 'flex-end', gap: 6 },
|
|
311
|
+
personaGhost: { height: 28, padding: '0 12px', border: '1px solid var(--border-default)', borderRadius: 'var(--radius-sm)', background: 'var(--surface-1)', color: 'var(--text-secondary)', fontSize: 12.5, fontWeight: 600, fontFamily: 'inherit', cursor: 'pointer' },
|
|
312
|
+
personaSave: { display: 'inline-flex', alignItems: 'center', gap: 5, height: 28, padding: '0 12px', border: 0, borderRadius: 'var(--radius-sm)', background: 'var(--grad-brand)', color: 'var(--text-on-accent, #fff)', fontSize: 12.5, fontWeight: 600, fontFamily: 'inherit', cursor: 'pointer' },
|
|
313
|
+
toolRow: { display: 'flex', alignItems: 'center', gap: 8, minHeight: 28, padding: '0 9px', borderRadius: 'var(--radius-sm)', color: 'var(--text-secondary)' },
|
|
314
|
+
toolNm: { fontFamily: 'var(--font-mono)', fontSize: 12, color: 'var(--text-primary)', overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' },
|
|
315
|
+
toolSidecar: { marginLeft: 6, padding: '0 5px', borderRadius: 'var(--radius-sm)', background: 'var(--accent-soft)', color: 'var(--accent)', fontFamily: 'var(--font-sans)', fontSize: 9.5, fontWeight: 600, textTransform: 'uppercase', letterSpacing: '0.06em', verticalAlign: 'middle' },
|
|
316
|
+
toolAuto: { marginLeft: 'auto', flexShrink: 0, alignSelf: 'center', fontSize: 10.5, color: 'var(--text-disabled)', textTransform: 'uppercase', letterSpacing: '0.06em' },
|
|
317
|
+
toolAsks: { marginLeft: 'auto', flexShrink: 0, alignSelf: 'center', fontSize: 10.5, color: 'var(--warning)', textTransform: 'uppercase', letterSpacing: '0.06em' },
|
|
318
|
+
toolDenied: { marginLeft: 'auto', flexShrink: 0, alignSelf: 'center', fontSize: 10.5, color: 'var(--danger)', textTransform: 'uppercase', letterSpacing: '0.06em' },
|
|
319
|
+
toolsNote: { padding: '8px 10px', fontSize: 11.5, lineHeight: 1.45, color: 'var(--text-tertiary)', borderTop: '1px solid var(--border-subtle)', flexShrink: 0, background: 'var(--surface-1)' },
|
|
320
|
+
};
|
|
321
|
+
//# sourceMappingURL=OptionsDrawer.js.map
|