@mohou/panel 1.0.20
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/README.md +8 -0
- package/lib/types/chrome/hue.d.ts +3 -0
- package/lib/types/chrome/hue.d.ts.map +1 -0
- package/lib/types/gallery/card-style.d.ts +8 -0
- package/lib/types/gallery/card-style.d.ts.map +1 -0
- package/lib/types/gallery/client.d.ts +20 -0
- package/lib/types/gallery/client.d.ts.map +1 -0
- package/lib/types/gallery/desk.d.ts +16 -0
- package/lib/types/gallery/desk.d.ts.map +1 -0
- package/lib/types/gallery/list.d.ts +37 -0
- package/lib/types/gallery/list.d.ts.map +1 -0
- package/lib/types/gallery/sort.d.ts +24 -0
- package/lib/types/gallery/sort.d.ts.map +1 -0
- package/lib/types/gallery/state.d.ts +90 -0
- package/lib/types/gallery/state.d.ts.map +1 -0
- package/lib/types/gallery/tabs.d.ts +45 -0
- package/lib/types/gallery/tabs.d.ts.map +1 -0
- package/lib/types/gallery/view.d.ts +57 -0
- package/lib/types/gallery/view.d.ts.map +1 -0
- package/lib/types/history/client.d.ts +25 -0
- package/lib/types/history/client.d.ts.map +1 -0
- package/lib/types/history/state.d.ts +39 -0
- package/lib/types/history/state.d.ts.map +1 -0
- package/lib/types/history/view.d.ts +15 -0
- package/lib/types/history/view.d.ts.map +1 -0
- package/lib/types/index.d.ts +24 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/labels.d.ts +267 -0
- package/lib/types/labels.d.ts.map +1 -0
- package/lib/types/settings/author-mcp-view.d.ts +15 -0
- package/lib/types/settings/author-mcp-view.d.ts.map +1 -0
- package/lib/types/settings/author-mcp.d.ts +4 -0
- package/lib/types/settings/author-mcp.d.ts.map +1 -0
- package/lib/types/settings/client.d.ts +198 -0
- package/lib/types/settings/client.d.ts.map +1 -0
- package/lib/types/settings/credentials-view.d.ts +15 -0
- package/lib/types/settings/credentials-view.d.ts.map +1 -0
- package/lib/types/settings/form.d.ts +27 -0
- package/lib/types/settings/form.d.ts.map +1 -0
- package/lib/types/settings/install-row.d.ts +10 -0
- package/lib/types/settings/install-row.d.ts.map +1 -0
- package/lib/types/settings/mcp-view.d.ts +14 -0
- package/lib/types/settings/mcp-view.d.ts.map +1 -0
- package/lib/types/settings/skill-dirs.d.ts +6 -0
- package/lib/types/settings/skill-dirs.d.ts.map +1 -0
- package/lib/types/settings/skill-install.d.ts +13 -0
- package/lib/types/settings/skill-install.d.ts.map +1 -0
- package/lib/types/settings/state.d.ts +94 -0
- package/lib/types/settings/state.d.ts.map +1 -0
- package/lib/types/settings/update-dialog.d.ts +56 -0
- package/lib/types/settings/update-dialog.d.ts.map +1 -0
- package/lib/types/settings/view.d.ts +26 -0
- package/lib/types/settings/view.d.ts.map +1 -0
- package/lib/types/storage/client.d.ts +15 -0
- package/lib/types/storage/client.d.ts.map +1 -0
- package/lib/types/storage/state.d.ts +42 -0
- package/lib/types/storage/state.d.ts.map +1 -0
- package/lib/types/storage/view.d.ts +16 -0
- package/lib/types/storage/view.d.ts.map +1 -0
- package/lib/types/surface/state.d.ts +42 -0
- package/lib/types/surface/state.d.ts.map +1 -0
- package/lib/types/surface/view.d.ts +34 -0
- package/lib/types/surface/view.d.ts.map +1 -0
- package/lib/types/theme/client.d.ts +45 -0
- package/lib/types/theme/client.d.ts.map +1 -0
- package/lib/types/theme/menu.d.ts +25 -0
- package/lib/types/theme/menu.d.ts.map +1 -0
- package/lib/types/theme/state.d.ts +46 -0
- package/lib/types/theme/state.d.ts.map +1 -0
- package/lib/types/theme/view.d.ts +16 -0
- package/lib/types/theme/view.d.ts.map +1 -0
- package/lib/types/ui/dialog.d.ts +12 -0
- package/lib/types/ui/dialog.d.ts.map +1 -0
- package/lib/types/ui/tooltip.d.ts +12 -0
- package/lib/types/ui/tooltip.d.ts.map +1 -0
- package/package.json +38 -0
- package/src/chrome/hue.ts +6 -0
- package/src/gallery/card-style.ts +27 -0
- package/src/gallery/client.ts +26 -0
- package/src/gallery/desk.tsx +54 -0
- package/src/gallery/list.ts +54 -0
- package/src/gallery/sort.ts +72 -0
- package/src/gallery/state.ts +229 -0
- package/src/gallery/tabs.ts +85 -0
- package/src/gallery/view.tsx +501 -0
- package/src/history/client.ts +27 -0
- package/src/history/state.ts +90 -0
- package/src/history/view.tsx +131 -0
- package/src/index.ts +61 -0
- package/src/labels.ts +536 -0
- package/src/settings/author-mcp-view.tsx +154 -0
- package/src/settings/author-mcp.ts +24 -0
- package/src/settings/client.ts +205 -0
- package/src/settings/credentials-view.tsx +195 -0
- package/src/settings/form.ts +27 -0
- package/src/settings/install-row.tsx +35 -0
- package/src/settings/mcp-view.tsx +793 -0
- package/src/settings/skill-dirs.ts +41 -0
- package/src/settings/skill-install.tsx +134 -0
- package/src/settings/state.ts +225 -0
- package/src/settings/update-dialog.tsx +207 -0
- package/src/settings/view.tsx +722 -0
- package/src/storage/client.ts +16 -0
- package/src/storage/state.ts +94 -0
- package/src/storage/view.tsx +190 -0
- package/src/surface/state.ts +72 -0
- package/src/surface/view.tsx +255 -0
- package/src/theme/client.ts +34 -0
- package/src/theme/menu.tsx +286 -0
- package/src/theme/state.ts +113 -0
- package/src/theme/view.tsx +73 -0
- package/src/ui/dialog.tsx +25 -0
- package/src/ui/tooltip.tsx +19 -0
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
/** Locales the panel chrome speaks. No third locale. */
|
|
2
|
+
export declare const panelLocales: readonly ["en", "zh-CN"];
|
|
3
|
+
export type PanelLocale = (typeof panelLocales)[number];
|
|
4
|
+
export type PanelLabelMode = 'development' | 'production';
|
|
5
|
+
declare const en: {
|
|
6
|
+
readonly 'host-unreachable': "Host is unreachable";
|
|
7
|
+
readonly 'gallery-empty': "No apps yet";
|
|
8
|
+
readonly 'gallery-title': "Library";
|
|
9
|
+
readonly 'gallery-count': "{n} apps";
|
|
10
|
+
readonly 'status-ready': "Host ready";
|
|
11
|
+
readonly 'card-style': "Card style";
|
|
12
|
+
readonly 'card-hero': "Glow";
|
|
13
|
+
readonly 'card-stamp': "Stamp";
|
|
14
|
+
readonly 'card-etch': "Cutout";
|
|
15
|
+
readonly 'card-pulse': "Firefly";
|
|
16
|
+
readonly 'card-list': "List";
|
|
17
|
+
readonly 'card-glass': "Glass";
|
|
18
|
+
readonly 'search-placeholder': "Search mini apps";
|
|
19
|
+
readonly 'search-empty': "No matching apps";
|
|
20
|
+
readonly 'list-failed': "The app list failed";
|
|
21
|
+
readonly 'trash-failed': "Trash failed to load";
|
|
22
|
+
readonly 'reload-failed': "Reload failed";
|
|
23
|
+
readonly 'probe-ok': "Healthy";
|
|
24
|
+
readonly 'probe-failed': "Probe failed";
|
|
25
|
+
readonly 'history-empty': "No history yet";
|
|
26
|
+
readonly 'history-failed': "History failed to load";
|
|
27
|
+
readonly 'delete-confirm': "Delete this app?";
|
|
28
|
+
readonly 'delete-failed': "Delete failed";
|
|
29
|
+
readonly 'unsaved-confirm': "Discard unsaved changes?";
|
|
30
|
+
readonly 'port-invalid': "Port must be from 1024 to 65535";
|
|
31
|
+
readonly 'save-failed': "Save failed";
|
|
32
|
+
readonly 'update-failed': "Update check failed";
|
|
33
|
+
readonly 'storage-failed': "Storage failed to load";
|
|
34
|
+
readonly 'storage-size-notice': "The storage file is large ({table}). Ask an agent to help split the data.";
|
|
35
|
+
readonly 'restore-storage': "Restore storage";
|
|
36
|
+
readonly 'restore-storage-confirm': "Restore the last storage backup? This replaces the live database.";
|
|
37
|
+
readonly 'theme-save-failed': "Theme pin failed to save";
|
|
38
|
+
readonly search: "Search";
|
|
39
|
+
readonly open: "Open";
|
|
40
|
+
readonly 'open-failed': "Open failed";
|
|
41
|
+
readonly 'frame-pending': "Opening…";
|
|
42
|
+
readonly 'close-tab': "Close";
|
|
43
|
+
readonly gallery: "All";
|
|
44
|
+
readonly delete: "Delete";
|
|
45
|
+
readonly cancel: "Cancel";
|
|
46
|
+
readonly confirm: "Confirm";
|
|
47
|
+
readonly restore: "Restore";
|
|
48
|
+
readonly language: "Language";
|
|
49
|
+
readonly port: "Host port";
|
|
50
|
+
readonly 'port-help': "Local HTTP port for the host: panel, app iframes, APIs, and MCP authoring. Changing it needs a host restart and an MCP connection update.";
|
|
51
|
+
readonly 'port-edit': "Edit host port";
|
|
52
|
+
readonly 'port-lock': "Lock host port";
|
|
53
|
+
readonly 'port-open-panel': "Open in browser";
|
|
54
|
+
readonly 'port-panel-url': "Panel";
|
|
55
|
+
readonly 'port-mcp-url': "MCP authoring";
|
|
56
|
+
readonly save: "Save";
|
|
57
|
+
readonly saving: "Saving…";
|
|
58
|
+
readonly saved: "Saved";
|
|
59
|
+
readonly probe: "Probe";
|
|
60
|
+
readonly 'restart-required': "The host must restart before the new port or runtime is used.";
|
|
61
|
+
readonly 'restart-mcp-hint': "After restart, open Agent settings and update the MCP authoring connection so assistants use the new port.";
|
|
62
|
+
readonly 'restart-runtime-hint': "Mini-apps keep the previous runtime until the host restarts.";
|
|
63
|
+
readonly 'restart-runtime-pending': "Save, then restart the host. Apps still use the previous runtime until then.";
|
|
64
|
+
readonly 'restart-host': "Restart host";
|
|
65
|
+
readonly 'restart-wait': "Restarting the host…";
|
|
66
|
+
readonly 'restart-failed': "The host did not restart.";
|
|
67
|
+
readonly dismiss: "Dismiss";
|
|
68
|
+
readonly 'follow-host': "Follow host";
|
|
69
|
+
readonly 'app-file': "App file";
|
|
70
|
+
readonly 'clear-pin': "Clear";
|
|
71
|
+
readonly refresh: "Refresh";
|
|
72
|
+
readonly reload: "Reload";
|
|
73
|
+
readonly 'settings-close': "Close settings";
|
|
74
|
+
readonly 'section-appearance': "Appearance";
|
|
75
|
+
readonly 'section-workbench': "Workbench";
|
|
76
|
+
readonly 'desk-switch': "Workbench";
|
|
77
|
+
readonly 'workbench-builtin': "Library";
|
|
78
|
+
readonly 'workbench-mark': "Workbench";
|
|
79
|
+
readonly 'set-default-workbench': "Set as home";
|
|
80
|
+
readonly 'current-default-workbench': "Current home";
|
|
81
|
+
readonly 'clear-default-workbench': "Clear home";
|
|
82
|
+
readonly 'open-workbench-tab': "Open as tab";
|
|
83
|
+
readonly 'open-workbench-tab-now': "Custom home";
|
|
84
|
+
readonly 'open-workbench-tab-more': "More in a tab";
|
|
85
|
+
readonly 'open-workbench-tab-hint': "Open this workbench in a tab for storage, history, and theme";
|
|
86
|
+
readonly 'section-network': "Network";
|
|
87
|
+
readonly 'section-runtime': "Runtime";
|
|
88
|
+
readonly 'section-model': "Mini-app model";
|
|
89
|
+
readonly 'section-agent': "Agent";
|
|
90
|
+
readonly 'section-about': "About";
|
|
91
|
+
readonly 'section-mcp': "MCP";
|
|
92
|
+
readonly 'section-credentials': "Credentials";
|
|
93
|
+
readonly 'credentials-empty': "No credentials yet. Add one and a server can name it instead of holding the secret.";
|
|
94
|
+
readonly 'credentials-add': "Add credential";
|
|
95
|
+
readonly 'credentials-new': "New credential";
|
|
96
|
+
readonly 'credentials-edit': "Edit credential";
|
|
97
|
+
readonly 'credentials-name': "Name";
|
|
98
|
+
readonly 'credentials-name-hint': "e.g. github";
|
|
99
|
+
readonly 'credentials-description': "Description";
|
|
100
|
+
readonly 'credentials-desc-hint': "What this account is for";
|
|
101
|
+
readonly 'credentials-secret': "Secret";
|
|
102
|
+
readonly 'credentials-secret-hint': "Paste the token";
|
|
103
|
+
readonly 'credentials-replace-hint': "Leave the secret empty to keep the stored one.";
|
|
104
|
+
readonly 'credentials-need-name': "Give the credential a name first.";
|
|
105
|
+
readonly 'credentials-need-secret': "A new credential needs a secret.";
|
|
106
|
+
readonly 'credentials-save': "Save";
|
|
107
|
+
readonly 'credentials-saved': "Saved on this machine only.";
|
|
108
|
+
readonly 'credentials-saved-description': "Description saved. The stored secret is unchanged.";
|
|
109
|
+
readonly 'credentials-read-only': "This store cannot be written from here.";
|
|
110
|
+
readonly 'credentials-load-failed': "Credentials could not be read.";
|
|
111
|
+
readonly 'credentials-save-failed': "The credential was not saved.";
|
|
112
|
+
readonly 'credentials-delete-confirm': "Delete this credential? Servers that name it stop starting.";
|
|
113
|
+
readonly 'credentials-reference': "A server references this as {reference}";
|
|
114
|
+
readonly 'mcp-reference-hint': "A value may be ${env:NAME} or ${credential:NAME}";
|
|
115
|
+
readonly 'mcp-unstarted': "Not started";
|
|
116
|
+
readonly 'mcp-unresolved-hint': "A server below is not running because a value names something missing. Add it in Credentials, then restart the host.";
|
|
117
|
+
readonly 'mcp-add': "Add server";
|
|
118
|
+
readonly 'mcp-new': "New server";
|
|
119
|
+
readonly 'mcp-edit': "Edit server";
|
|
120
|
+
readonly 'mcp-check': "Check connection";
|
|
121
|
+
readonly 'mcp-check-ok': "Connected. {n} tools.";
|
|
122
|
+
readonly 'mcp-need-name': "Give the server a name first.";
|
|
123
|
+
readonly 'mcp-save': "Add server";
|
|
124
|
+
readonly 'mcp-empty': "No servers yet. Add one to give apps external tools.";
|
|
125
|
+
readonly 'mcp-transport': "Transport";
|
|
126
|
+
readonly 'mcp-stdio': "Local command";
|
|
127
|
+
readonly 'mcp-sse': "SSE";
|
|
128
|
+
readonly 'mcp-http': "HTTP";
|
|
129
|
+
readonly 'mcp-name': "Name";
|
|
130
|
+
readonly 'mcp-description': "Description";
|
|
131
|
+
readonly 'mcp-command': "Command";
|
|
132
|
+
readonly 'mcp-args': "Arguments";
|
|
133
|
+
readonly 'mcp-url': "URL";
|
|
134
|
+
readonly 'mcp-env': "Environment";
|
|
135
|
+
readonly 'mcp-tools': "Tools";
|
|
136
|
+
readonly 'mcp-schema-input': "Input";
|
|
137
|
+
readonly 'mcp-schema-output': "Output";
|
|
138
|
+
readonly 'mcp-schema-required': "required";
|
|
139
|
+
readonly 'mcp-schema-no-fields': "This schema declares no fields.";
|
|
140
|
+
readonly 'mcp-connected': "Connected";
|
|
141
|
+
readonly 'mcp-offline': "Not connected";
|
|
142
|
+
readonly 'mcp-saved': "Saved. Apps use this file the next time the host starts.";
|
|
143
|
+
readonly 'mcp-name-hint': "e.g. filesystem";
|
|
144
|
+
readonly 'mcp-desc-hint': "What this server does";
|
|
145
|
+
readonly 'mcp-command-hint': "e.g. npx";
|
|
146
|
+
readonly 'mcp-args-hint': "-y @mcp/server";
|
|
147
|
+
readonly 'mcp-url-hint': "https://example.com/mcp";
|
|
148
|
+
readonly 'mcp-env-hint': "KEY=value, one per line";
|
|
149
|
+
readonly 'mcp-headers': "Headers";
|
|
150
|
+
readonly 'mcp-headers-hint': "Authorization=Bearer token";
|
|
151
|
+
readonly 'mcp-authoring': "Install MCP authoring tools";
|
|
152
|
+
readonly 'mcp-authoring-help': "Lets Cursor, Pi, and similar assistants create and edit mini-apps on this machine.";
|
|
153
|
+
readonly 'mcp-authoring-generate': "Generate connection";
|
|
154
|
+
readonly 'mcp-authoring-install': "Install connection";
|
|
155
|
+
readonly 'mcp-authoring-update-install': "Update connection";
|
|
156
|
+
readonly 'mcp-authoring-failed': "The connection could not be installed.";
|
|
157
|
+
readonly 'mcp-authoring-blurb': "Create and edit mini-apps on this machine.";
|
|
158
|
+
readonly 'agent-apps-help': "Mini-apps use this model for chat and agents.";
|
|
159
|
+
readonly 'agent-others': "App authoring agents";
|
|
160
|
+
readonly 'agent-others-help': "Install the writing skill and tools on agents.";
|
|
161
|
+
readonly installing: "Installing";
|
|
162
|
+
readonly 'skill-help': "Teaches the assistant how to write mini-apps. Choose where to install.";
|
|
163
|
+
readonly 'skill-install': "Install writing skill";
|
|
164
|
+
readonly 'skill-installed': "Installed";
|
|
165
|
+
readonly 'skill-update': "Update available";
|
|
166
|
+
readonly 'skill-update-install': "Update writing skill";
|
|
167
|
+
readonly 'skill-version': "Version {n}";
|
|
168
|
+
readonly 'skill-reinstall': "Reinstall";
|
|
169
|
+
readonly 'skill-failed': "The skill could not be installed.";
|
|
170
|
+
readonly 'skill-missing-home': "Not detected";
|
|
171
|
+
readonly 'skill-open': "Open";
|
|
172
|
+
readonly 'skill-custom': "Custom folder";
|
|
173
|
+
readonly 'skill-custom-hint': "e.g. ~/.agents/skills or project/.agents/skills";
|
|
174
|
+
readonly 'skill-custom-format': "The last folder must be named skills.";
|
|
175
|
+
readonly 'skill-add-dir': "Add";
|
|
176
|
+
readonly 'mcp-copy': "Copy";
|
|
177
|
+
readonly 'mcp-copied': "Copied";
|
|
178
|
+
readonly 'mcp-paste': "Paste";
|
|
179
|
+
readonly 'mcp-from-pi': "From Pi";
|
|
180
|
+
readonly 'mcp-from-file': "Choose file";
|
|
181
|
+
readonly 'mcp-import': "Import";
|
|
182
|
+
readonly 'mcp-admit': "Recognize";
|
|
183
|
+
readonly 'mcp-import-none': "No servers were found in that config.";
|
|
184
|
+
readonly 'mcp-load-failed': "The MCP file could not be read.";
|
|
185
|
+
readonly 'mcp-running': "Running";
|
|
186
|
+
readonly 'mcp-stopped': "Stopped";
|
|
187
|
+
readonly 'mcp-more': "{n} more";
|
|
188
|
+
readonly 'mcp-tool-empty': "This tool has no description.";
|
|
189
|
+
readonly 'mcp-pick': "Choose servers to import";
|
|
190
|
+
readonly 'model-empty': "This runtime does not list models.";
|
|
191
|
+
readonly 'runtime-missing': "No runtime is registered.";
|
|
192
|
+
readonly 'update-checking': "Checking…";
|
|
193
|
+
readonly 'update-ok': "This version is current.";
|
|
194
|
+
readonly 'update-available': "A newer version is available.";
|
|
195
|
+
readonly 'update-current': "This version: {n}";
|
|
196
|
+
readonly 'update-newest': "Latest: {n}";
|
|
197
|
+
readonly 'lang-zh': "Chinese";
|
|
198
|
+
readonly 'lang-en': "English";
|
|
199
|
+
readonly 'theme-system': "System";
|
|
200
|
+
readonly 'theme-light': "Light";
|
|
201
|
+
readonly 'theme-dark': "Dark";
|
|
202
|
+
readonly 'scope-global': "Global";
|
|
203
|
+
readonly 'scope-app': "This app";
|
|
204
|
+
readonly 'chip-system': "System";
|
|
205
|
+
readonly 'chip-custom': "Custom";
|
|
206
|
+
readonly 'chip-app': "App";
|
|
207
|
+
readonly 'follow-global': "Follow global";
|
|
208
|
+
readonly trash: "Trash";
|
|
209
|
+
readonly 'close-panel': "Close panel";
|
|
210
|
+
readonly appearance: "Appearance";
|
|
211
|
+
readonly 'theme-app-hint': "Pin a palette for this app so it stays put when the host palette changes. Light and dark still follow the host.";
|
|
212
|
+
readonly palette: "Palette";
|
|
213
|
+
readonly provider: "Provider";
|
|
214
|
+
readonly model: "Model";
|
|
215
|
+
readonly about: "About";
|
|
216
|
+
readonly 'product-name': "Mohou";
|
|
217
|
+
readonly 'product-meaning': "Mohou is the small monkey once kept to grind ink. It is small, stays at hand, and serves one task.\nThis product is that set of tools. You bring the idea. The language model writes the implementation. Mohou supplies the brush, the ink, the paper, the inkstone, the library, and the shelf.";
|
|
218
|
+
readonly update: "Check for updates";
|
|
219
|
+
readonly 'update-install': "Install update";
|
|
220
|
+
readonly 'update-install-failed': "The update could not be installed.";
|
|
221
|
+
readonly 'update-card-title': "Update available";
|
|
222
|
+
readonly 'update-card-current': "Current";
|
|
223
|
+
readonly 'update-card-latest': "Latest";
|
|
224
|
+
readonly 'update-channel-tarball': "Local package";
|
|
225
|
+
readonly 'update-channel-registry': "Registry";
|
|
226
|
+
readonly 'update-card-note': "The window restarts during the update and comes back here. Usually seconds, at most two minutes. Do not close it.";
|
|
227
|
+
readonly 'update-installing-title': "Installing {n}";
|
|
228
|
+
readonly 'update-installing-elapsed': "{n} elapsed";
|
|
229
|
+
readonly 'update-installing-note': "The window restarts by itself and comes back here. Do not close it.";
|
|
230
|
+
readonly 'update-failed-title': "The update did not finish";
|
|
231
|
+
readonly 'update-failed-back': "Back on {n}, still running.";
|
|
232
|
+
readonly 'update-reason-timeout': "The install ran past two minutes.";
|
|
233
|
+
readonly 'update-reason-exit': "The installer exited with code {n}.";
|
|
234
|
+
readonly 'update-reason-exit-plain': "The installer exited with an error.";
|
|
235
|
+
readonly 'update-reason-prepare': "The install prefix was not ready, so the update did not start.";
|
|
236
|
+
readonly 'update-reason-closed': "The window closed, so the update was cancelled.";
|
|
237
|
+
readonly 'update-reason-leftover': "An earlier update did not finish.";
|
|
238
|
+
readonly 'update-reason-verify': "The installed version is not the one that was asked for.";
|
|
239
|
+
readonly 'update-reason-boot': "The new version did not start.";
|
|
240
|
+
readonly 'update-log': "Log: {n}";
|
|
241
|
+
readonly 'update-card-close': "Close";
|
|
242
|
+
readonly 'update-card-retry': "Install again";
|
|
243
|
+
readonly 'update-card-done-title': "Updated to {n}";
|
|
244
|
+
readonly 'update-card-done-note': "The new version is running.";
|
|
245
|
+
readonly 'update-card-ok': "OK";
|
|
246
|
+
readonly settings: "Settings";
|
|
247
|
+
readonly history: "History";
|
|
248
|
+
readonly storage: "Storage";
|
|
249
|
+
readonly theme: "Theme";
|
|
250
|
+
readonly 'pane-close': "Close";
|
|
251
|
+
readonly 'history-pick': "Select a commit to see what changed";
|
|
252
|
+
readonly 'storage-empty-rows': "This table has no rows";
|
|
253
|
+
readonly 'storage-preview': "Preview";
|
|
254
|
+
readonly 'storage-raw': "Raw";
|
|
255
|
+
};
|
|
256
|
+
export type PanelLabelKey = keyof typeof en;
|
|
257
|
+
/**
|
|
258
|
+
* Look up one panel chrome string. A missing key fails in development and falls back to the key in production.
|
|
259
|
+
* App content is not translated here.
|
|
260
|
+
* @param locale - `en` or `zh-CN`
|
|
261
|
+
* @param key - chrome key
|
|
262
|
+
* @param mode - development fails closed
|
|
263
|
+
*/
|
|
264
|
+
export declare function panelText(locale: string, key: string, mode: PanelLabelMode): string;
|
|
265
|
+
export declare function isPanelLocale(value: string): value is PanelLocale;
|
|
266
|
+
export {};
|
|
267
|
+
//# sourceMappingURL=labels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../../src/labels.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,eAAO,MAAM,YAAY,0BAA2B,CAAA;AAEpD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAEvD,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,YAAY,CAAA;AAEzD,QAAA,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0PE,CAAA;AA8PV,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,EAAE,CAAA;AAO3C;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,CAMnF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,WAAW,CAEjE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { PanelAbout, PanelAuthorMcpStatus } from './client.ts';
|
|
3
|
+
/**
|
|
4
|
+
* Authoring MCP dest list. One-click merge into assistant MCP files.
|
|
5
|
+
* Generate-snippet stays as a fallback.
|
|
6
|
+
* @param props - status loaders, about reader, and chrome labels
|
|
7
|
+
*/
|
|
8
|
+
export declare function AuthorMcpInstall(props: {
|
|
9
|
+
readonly label: (key: string) => string;
|
|
10
|
+
readonly readAbout?: () => Promise<PanelAbout>;
|
|
11
|
+
readonly readAuthorMcp?: () => Promise<PanelAuthorMcpStatus>;
|
|
12
|
+
readonly installAuthorMcp?: (agentIds: readonly string[], description: string) => Promise<PanelAuthorMcpStatus>;
|
|
13
|
+
readonly revealAuthorMcp?: (dest: string) => Promise<void>;
|
|
14
|
+
}): ReactNode;
|
|
15
|
+
//# sourceMappingURL=author-mcp-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"author-mcp-view.d.ts","sourceRoot":"","sources":["../../../src/settings/author-mcp-view.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAK3D,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAGnE;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAA;IAC9C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAC5D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAC/G,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3D,GAAG,SAAS,CAwEZ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"author-mcp.d.ts","sourceRoot":"","sources":["../../../src/settings/author-mcp.ts"],"names":[],"mappings":"AAEA,2DAA2D;AAC3D,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,GAAG,SAAS,CAY5D;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAMnE"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/** Public host policy the settings form can read. No secrets. */
|
|
2
|
+
export interface PanelPolicy {
|
|
3
|
+
readonly theme: 'system' | 'light' | 'dark';
|
|
4
|
+
readonly palette: string;
|
|
5
|
+
readonly locale: string;
|
|
6
|
+
readonly chatLanguage: string;
|
|
7
|
+
readonly hostPort: number;
|
|
8
|
+
readonly llm: {
|
|
9
|
+
readonly provider: string;
|
|
10
|
+
readonly model: string;
|
|
11
|
+
} | null;
|
|
12
|
+
readonly runtimeProvider: {
|
|
13
|
+
readonly id: string;
|
|
14
|
+
};
|
|
15
|
+
readonly defaultWorkbenchId?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface PanelPolicyWrite {
|
|
18
|
+
readonly policy: PanelPolicy;
|
|
19
|
+
readonly restartRequired: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface PanelProbe {
|
|
22
|
+
readonly healthy: boolean;
|
|
23
|
+
readonly code?: string;
|
|
24
|
+
readonly message?: string;
|
|
25
|
+
}
|
|
26
|
+
/** Writing skill install status for one assistant or custom folder. */
|
|
27
|
+
export interface PanelSkillCopy {
|
|
28
|
+
readonly dest: string;
|
|
29
|
+
readonly installed: boolean;
|
|
30
|
+
readonly version: string | null;
|
|
31
|
+
readonly updateAvailable: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface PanelSkillAgent extends PanelSkillCopy {
|
|
34
|
+
readonly id: string;
|
|
35
|
+
readonly label: string;
|
|
36
|
+
readonly skillsDir: string;
|
|
37
|
+
readonly homePresent: boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface PanelSkillStatus {
|
|
40
|
+
readonly skillId: string;
|
|
41
|
+
readonly version: string | null;
|
|
42
|
+
readonly agents: readonly PanelSkillAgent[];
|
|
43
|
+
readonly customs: readonly (PanelSkillCopy & {
|
|
44
|
+
readonly dir: string;
|
|
45
|
+
})[];
|
|
46
|
+
}
|
|
47
|
+
/** Authoring MCP install status for one assistant. */
|
|
48
|
+
export interface PanelAuthorMcpAgent {
|
|
49
|
+
readonly id: string;
|
|
50
|
+
readonly label: string;
|
|
51
|
+
readonly dest: string;
|
|
52
|
+
readonly homePresent: boolean;
|
|
53
|
+
readonly installed: boolean;
|
|
54
|
+
readonly updateAvailable: boolean;
|
|
55
|
+
readonly adapter?: string;
|
|
56
|
+
}
|
|
57
|
+
export interface PanelAuthorMcpStatus {
|
|
58
|
+
readonly agents: readonly PanelAuthorMcpAgent[];
|
|
59
|
+
}
|
|
60
|
+
/** Owner about block, including the authoring MCP snippet. */
|
|
61
|
+
export interface PanelAbout {
|
|
62
|
+
readonly name: string;
|
|
63
|
+
readonly current: string;
|
|
64
|
+
readonly platform: string;
|
|
65
|
+
readonly authoring: {
|
|
66
|
+
readonly url: string;
|
|
67
|
+
readonly token: string;
|
|
68
|
+
readonly tools: readonly {
|
|
69
|
+
readonly name: string;
|
|
70
|
+
readonly description: string;
|
|
71
|
+
}[];
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/** Why an install did not finish. Closed: the panel owns the wording of each code. */
|
|
75
|
+
export declare const panelUpdateFailureCodes: readonly ["timeout", "exit", "prepare", "closed", "leftover", "verify", "boot"];
|
|
76
|
+
export type PanelUpdateFailureCode = (typeof panelUpdateFailureCodes)[number];
|
|
77
|
+
/**
|
|
78
|
+
* What the launcher recorded about the last install, in the runtime root.
|
|
79
|
+
* `from` is the version that was running when the attempt started, and `at` is epoch milliseconds.
|
|
80
|
+
*/
|
|
81
|
+
export type PanelUpdateAttempt = {
|
|
82
|
+
readonly state: 'done';
|
|
83
|
+
readonly from?: string;
|
|
84
|
+
readonly to?: string;
|
|
85
|
+
readonly at: number;
|
|
86
|
+
} | {
|
|
87
|
+
readonly state: 'failed';
|
|
88
|
+
readonly code: PanelUpdateFailureCode;
|
|
89
|
+
readonly from?: string;
|
|
90
|
+
readonly to?: string;
|
|
91
|
+
readonly rolledBack: boolean;
|
|
92
|
+
readonly exitCode?: number;
|
|
93
|
+
readonly log?: string;
|
|
94
|
+
readonly at: number;
|
|
95
|
+
};
|
|
96
|
+
/** One registry check. `latest` is missing when the registry did not answer. */
|
|
97
|
+
export interface PanelUpdateCheck {
|
|
98
|
+
readonly name: string;
|
|
99
|
+
readonly current: string;
|
|
100
|
+
readonly latest: string | null;
|
|
101
|
+
readonly updateAvailable: boolean;
|
|
102
|
+
readonly channel?: 'registry' | 'tarball';
|
|
103
|
+
readonly installable?: boolean;
|
|
104
|
+
readonly error?: string;
|
|
105
|
+
/** The last install this machine recorded, when one is on disk. The panel shows it once. */
|
|
106
|
+
readonly lastAttempt?: PanelUpdateAttempt;
|
|
107
|
+
}
|
|
108
|
+
/** One registered brain and the vendor/model pairs it publishes. */
|
|
109
|
+
export interface PanelRuntime {
|
|
110
|
+
readonly id: string;
|
|
111
|
+
readonly label?: string;
|
|
112
|
+
readonly models: readonly {
|
|
113
|
+
readonly provider: string;
|
|
114
|
+
readonly models: readonly string[];
|
|
115
|
+
}[];
|
|
116
|
+
}
|
|
117
|
+
/** Settings calls. Absent means the settings entry is hidden. No route string lives here. */
|
|
118
|
+
export interface PanelSettingsClient {
|
|
119
|
+
readPolicy(): Promise<PanelPolicy>;
|
|
120
|
+
writePolicy(policy: PanelPolicy): Promise<PanelPolicyWrite>;
|
|
121
|
+
probe(id: string): Promise<PanelProbe>;
|
|
122
|
+
readAbout?(): Promise<PanelAbout>;
|
|
123
|
+
checkUpdate?(): Promise<PanelUpdateCheck>;
|
|
124
|
+
installUpdate?(version: string): Promise<void>;
|
|
125
|
+
/** Tell Host the launcher's last attempt was shown, so the next check does not open it again. */
|
|
126
|
+
ackUpdate?(at: number): Promise<void>;
|
|
127
|
+
restartHost?(): Promise<void>;
|
|
128
|
+
listRuntimes?(): Promise<readonly PanelRuntime[]>;
|
|
129
|
+
readSkill?(customDirs?: readonly string[]): Promise<PanelSkillStatus>;
|
|
130
|
+
installSkill?(agentIds: readonly string[], customDirs: readonly string[]): Promise<PanelSkillStatus>;
|
|
131
|
+
revealSkill?(dest: string): Promise<void>;
|
|
132
|
+
readAuthorMcp?(): Promise<PanelAuthorMcpStatus>;
|
|
133
|
+
installAuthorMcp?(agentIds: readonly string[], description: string): Promise<PanelAuthorMcpStatus>;
|
|
134
|
+
revealAuthorMcp?(dest: string): Promise<void>;
|
|
135
|
+
/** Names, descriptions, and whether the store accepts a write. A secret never crosses this. */
|
|
136
|
+
readCredentials?(): Promise<PanelCredentials>;
|
|
137
|
+
/**
|
|
138
|
+
* Save one account. An omitted secret keeps the one already stored, which is how the form edits a
|
|
139
|
+
* description without the owner pasting a secret again. Host reads the stored value; the panel
|
|
140
|
+
* never receives one.
|
|
141
|
+
*/
|
|
142
|
+
putCredential?(name: string, description: string, secret?: string): Promise<void>;
|
|
143
|
+
removeCredential?(name: string): Promise<void>;
|
|
144
|
+
listMcp?(): Promise<PanelMcpList>;
|
|
145
|
+
writeMcp?(servers: readonly McpServerDraft[]): Promise<{
|
|
146
|
+
unresolved: readonly PanelMcpFailure[];
|
|
147
|
+
}>;
|
|
148
|
+
checkMcp?(server: McpServerDraft): Promise<McpCheckResult>;
|
|
149
|
+
admitMcp?(text: string): Promise<readonly McpServerDraft[]>;
|
|
150
|
+
importMcp?(source: string): Promise<readonly McpServerDraft[]>;
|
|
151
|
+
}
|
|
152
|
+
/** One stored account, as the editor lists it. No secret: values are write-only. */
|
|
153
|
+
export interface PanelCredential {
|
|
154
|
+
readonly name: string;
|
|
155
|
+
readonly description: string;
|
|
156
|
+
}
|
|
157
|
+
export interface PanelCredentials {
|
|
158
|
+
readonly credentials: readonly PanelCredential[];
|
|
159
|
+
/** False when the store is read-only, and then the form shows no write control. */
|
|
160
|
+
readonly writable: boolean;
|
|
161
|
+
}
|
|
162
|
+
/** One server the last boot left out, and why. */
|
|
163
|
+
export interface PanelMcpFailure {
|
|
164
|
+
readonly id: string;
|
|
165
|
+
readonly code: string;
|
|
166
|
+
readonly message: string;
|
|
167
|
+
}
|
|
168
|
+
export interface PanelMcpList {
|
|
169
|
+
readonly servers: readonly McpServerDraft[];
|
|
170
|
+
readonly unresolved: readonly PanelMcpFailure[];
|
|
171
|
+
}
|
|
172
|
+
/** One MCP server the settings section can edit. */
|
|
173
|
+
export interface McpServerDraft {
|
|
174
|
+
readonly id: string;
|
|
175
|
+
readonly description?: string;
|
|
176
|
+
readonly enabled?: boolean;
|
|
177
|
+
readonly command?: string;
|
|
178
|
+
readonly args?: readonly string[];
|
|
179
|
+
readonly env?: Readonly<Record<string, string>>;
|
|
180
|
+
readonly url?: string;
|
|
181
|
+
readonly transport?: 'sse' | 'streamable-http';
|
|
182
|
+
readonly headers?: Readonly<Record<string, string>>;
|
|
183
|
+
}
|
|
184
|
+
/** One tool a check listed, with the schemas the server declared. */
|
|
185
|
+
export interface McpToolRow {
|
|
186
|
+
readonly name: string;
|
|
187
|
+
readonly description?: string;
|
|
188
|
+
readonly inputSchema?: Record<string, unknown>;
|
|
189
|
+
readonly outputSchema?: Record<string, unknown>;
|
|
190
|
+
}
|
|
191
|
+
/** Result of trying one server without saving. */
|
|
192
|
+
export interface McpCheckResult {
|
|
193
|
+
readonly ok: boolean;
|
|
194
|
+
readonly tools: readonly McpToolRow[];
|
|
195
|
+
readonly code?: string;
|
|
196
|
+
readonly message?: string;
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/settings/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import { type PanelLabelMode, type PanelLocale } from '../labels.ts';
|
|
3
|
+
import type { PanelSettingsClient } from './client.ts';
|
|
4
|
+
/**
|
|
5
|
+
* Credentials settings. The list carries names and descriptions only: a secret is written once and
|
|
6
|
+
* never read back, so the form has no field that can show an existing value.
|
|
7
|
+
* A read-only store keeps the list and hides every write control.
|
|
8
|
+
* @param props - settings client and chrome locale
|
|
9
|
+
*/
|
|
10
|
+
export declare function CredentialSettings(props: {
|
|
11
|
+
readonly client: PanelSettingsClient;
|
|
12
|
+
readonly locale: PanelLocale;
|
|
13
|
+
readonly mode: PanelLabelMode;
|
|
14
|
+
}): ReactNode;
|
|
15
|
+
//# sourceMappingURL=credentials-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials-view.d.ts","sourceRoot":"","sources":["../../../src/settings/credentials-view.tsx"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEnE,OAAO,EAAa,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/E,OAAO,KAAK,EAAmB,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAYvE;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAA;IACpC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;CAC9B,GAAG,SAAS,CAgJZ"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type PanelLocale } from '../labels.ts';
|
|
2
|
+
/** Settings port range. Locked in the product decisions, not a host tunable. */
|
|
3
|
+
export declare const panelPortBound: {
|
|
4
|
+
readonly min: 1024;
|
|
5
|
+
readonly max: 65535;
|
|
6
|
+
};
|
|
7
|
+
export type PanelPortResult = {
|
|
8
|
+
readonly ok: true;
|
|
9
|
+
readonly port: number;
|
|
10
|
+
} | {
|
|
11
|
+
readonly ok: false;
|
|
12
|
+
readonly key: 'port-invalid';
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Admit a settings port before any write. A bad value is not sent to Host.
|
|
16
|
+
* @param value - the form value
|
|
17
|
+
*/
|
|
18
|
+
export declare function admitPanelPort(value: unknown): PanelPortResult;
|
|
19
|
+
/**
|
|
20
|
+
* The one language control. Both fields are the same locale.
|
|
21
|
+
* @param locale - `en` or `zh-CN`
|
|
22
|
+
*/
|
|
23
|
+
export declare function panelLanguageFields(locale: string): {
|
|
24
|
+
locale: PanelLocale;
|
|
25
|
+
chatLanguage: PanelLocale;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../src/settings/form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AAE9D,gFAAgF;AAChF,eAAO,MAAM,cAAc;;;CAAqC,CAAA;AAEhE,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAA;CAAE,CAAA;AAExD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAI9D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,YAAY,EAAE,WAAW,CAAA;CAAE,CAGtG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/** Toggle one id in a remembered pick set. */
|
|
3
|
+
export declare function toggleId(current: ReadonlySet<string>, id: string): ReadonlySet<string>;
|
|
4
|
+
/** Home-relative dest shown next to the status caption. */
|
|
5
|
+
export declare function shortHomePath(dest: string): string;
|
|
6
|
+
/** Custom dests must end with a `skills` folder. */
|
|
7
|
+
export declare function endsWithSkills(raw: string): boolean;
|
|
8
|
+
/** Caption while a picked dest is being written. */
|
|
9
|
+
export declare function installingCaption(label: (key: string) => string): ReactNode;
|
|
10
|
+
//# sourceMappingURL=install-row.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-row.d.ts","sourceRoot":"","sources":["../../../src/settings/install-row.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,8CAA8C;AAC9C,wBAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAKtF;AAED,2DAA2D;AAC3D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED,oDAAoD;AACpD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGnD;AAED,oDAAoD;AACpD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAO3E"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import { type PanelLabelMode, type PanelLocale } from '../labels.ts';
|
|
3
|
+
import type { PanelSettingsClient } from './client.ts';
|
|
4
|
+
/**
|
|
5
|
+
* MCP settings. Cards show status and tools. Add, edit, paste, and import open a dialog.
|
|
6
|
+
* A connection check does not write the file. Import writes only the servers the person keeps.
|
|
7
|
+
* @param props - settings client and chrome locale
|
|
8
|
+
*/
|
|
9
|
+
export declare function McpSettings(props: {
|
|
10
|
+
readonly client: PanelSettingsClient;
|
|
11
|
+
readonly locale: PanelLocale;
|
|
12
|
+
readonly mode: PanelLabelMode;
|
|
13
|
+
}): ReactNode;
|
|
14
|
+
//# sourceMappingURL=mcp-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-view.d.ts","sourceRoot":"","sources":["../../../src/settings/mcp-view.tsx"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEnE,OAAO,EAAa,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/E,OAAO,KAAK,EAAmD,mBAAmB,EAAE,MAAM,aAAa,CAAA;AA6BvG;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE;IACjC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAA;IACpC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;CAC9B,GAAG,SAAS,CAkIZ"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Custom `.../skills` directories remembered in this browser. */
|
|
2
|
+
export declare function readSkillCustomDirs(): string[];
|
|
3
|
+
export declare function writeSkillCustomDirs(dirs: readonly string[]): void;
|
|
4
|
+
export declare function readSkillAgentIds(): string[] | undefined;
|
|
5
|
+
export declare function writeSkillAgentIds(ids: readonly string[]): void;
|
|
6
|
+
//# sourceMappingURL=skill-dirs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-dirs.d.ts","sourceRoot":"","sources":["../../../src/settings/skill-dirs.ts"],"names":[],"mappings":"AAGA,kEAAkE;AAClE,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAElE;AAED,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,GAAG,SAAS,CAGxD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAE/D"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { PanelSkillStatus } from './client.ts';
|
|
3
|
+
/**
|
|
4
|
+
* Writing-skill dest list. One-click copy into the assistants Shell named.
|
|
5
|
+
* @param props - status loaders and chrome labels
|
|
6
|
+
*/
|
|
7
|
+
export declare function SkillInstall(props: {
|
|
8
|
+
readonly label: (key: string) => string;
|
|
9
|
+
readonly readSkill?: (customDirs?: readonly string[]) => Promise<PanelSkillStatus>;
|
|
10
|
+
readonly installSkill?: (agentIds: readonly string[], customDirs: readonly string[]) => Promise<PanelSkillStatus>;
|
|
11
|
+
readonly revealSkill?: (dest: string) => Promise<void>;
|
|
12
|
+
}): ReactNode;
|
|
13
|
+
//# sourceMappingURL=skill-install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-install.d.ts","sourceRoot":"","sources":["../../../src/settings/skill-install.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAG3D,OAAO,KAAK,EAAkB,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAInE;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAClC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAClF,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACjH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACvD,GAAG,SAAS,CAgGZ"}
|