@wrongstack/webui 1.0.24 → 1.0.26
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/assets/AgentRosterView-udJ14GYq.js +12 -0
- package/dist/assets/{AnalyticsDashboard-DgqJODVI.js → AnalyticsDashboard-DwF-0cUA.js} +1 -1
- package/dist/assets/AudienceMemoryPanel-DpBGeZv_.js +3 -0
- package/dist/assets/ChangesView-BfM0T_aS.js +3 -0
- package/dist/assets/ChimeraReviewsView-Q_5C4DU1.js +1 -0
- package/dist/assets/ChronicleDashboard-D6LnZzhy.js +1 -0
- package/dist/assets/CodeEditor-DonrWH9u.js +2 -0
- package/dist/assets/CodeMap-Dxtc378S.js +1 -0
- package/dist/assets/{CronJobsPanel-GTK038V9.js → CronJobsPanel-Cn2PQO_p.js} +1 -1
- package/dist/assets/{DeadCodeScanPanel-DX4OEuyp.js → DeadCodeScanPanel-Mc5py-kJ.js} +1 -1
- package/dist/assets/{DebugDashboard-CKp3sa_k.js → DebugDashboard-D0LRcT4J.js} +1 -1
- package/dist/assets/{DesignGalleryView-DVUTYaP6.js → DesignGalleryView-DAD-wRUc.js} +1 -1
- package/dist/assets/GoalView-CqeSw0tK.js +1 -0
- package/dist/assets/KanbanView-V-bkFftp.js +3 -0
- package/dist/assets/{MailboxDetailView-CylnzTVc.js → MailboxDetailView-CTEjap3r.js} +1 -1
- package/dist/assets/{MemoryDrawer-DJ0Y98Z8.js → MemoryDrawer-RCduY0FV.js} +1 -1
- package/dist/assets/MemoryManager-B-p6-Bic.js +1 -0
- package/dist/assets/{ProcessMonitor-BnQ3vJtn.js → ProcessMonitor-B9tpPo4r.js} +1 -1
- package/dist/assets/PromptJournalView-DVNqlac9.js +1 -0
- package/dist/assets/ProviderTestView-mmfpnAbZ.js +1 -0
- package/dist/assets/QueuePanel-BB9qozjm.js +1 -0
- package/dist/assets/{RefreshDebugView-s6MyGpPq.js → RefreshDebugView-CCCWzq29.js} +1 -1
- package/dist/assets/{RepositoryHistoryView-CWi_Zo3F.js → RepositoryHistoryView-RQVRkkUU.js} +2 -2
- package/dist/assets/RequirementIntakeView-D_JRhgzW.js +1 -0
- package/dist/assets/{SageTabs-D6eTg3ix.js → SageTabs--k2hQTvl.js} +2 -2
- package/dist/assets/{SddFlowGraph-B-ptkFX6.js → SddFlowGraph-DKrrRXKy.js} +1 -1
- package/dist/assets/SddHub-B5XO56oY.js +2 -0
- package/dist/assets/{SessionInspectView-NSpj5WEN.js → SessionInspectView-j3VJwXNi.js} +1 -1
- package/dist/assets/SessionList-CCVHBseu.js +1 -0
- package/dist/assets/{SessionsDashboard-mF4PzdKY.js → SessionsDashboard-DsM7sXQw.js} +1 -1
- package/dist/assets/SetupScreen-DeuR8Y8S.js +1 -0
- package/dist/assets/{SkillDetailView-B9BFyB1i.js → SkillDetailView-BeZyGIpW.js} +3 -3
- package/dist/assets/TechStackView-CpSMRQE0.js +2 -0
- package/dist/assets/TerminalPanel-BVJ5w-5R.js +1 -0
- package/dist/assets/activity-BS2aW_NN.js +10 -0
- package/dist/assets/activity-CR2KFruY.js +10 -0
- package/dist/assets/activity-Cd0qM2Hx.js +10 -0
- package/dist/assets/activity-DyXRoY2s.js +10 -0
- package/dist/assets/activity-bBAOetvE.js +10 -0
- package/dist/assets/activity-fI3Jy_jD.js +10 -0
- package/dist/assets/activity-t6fUmVjo.js +10 -0
- package/dist/assets/{button-BbeB5Qm8.js → button-UuKTnoM-.js} +1 -1
- package/dist/assets/chat-9GLubejR.js +1 -0
- package/dist/assets/chat-B50ssTLh.js +1 -0
- package/dist/assets/chat-CDioiM1L.js +1 -0
- package/dist/assets/chat-Cll_3gXD.js +1 -0
- package/dist/assets/chat-Cqhc6jQa.js +1 -0
- package/dist/assets/chat-DN1MggWt.js +1 -0
- package/dist/assets/chat-fyvZyUZM.js +1 -0
- package/dist/assets/chat-store-uzGtJfDz.js +1 -0
- package/dist/assets/{codemap-activity-store-Ha7XbGgq.js → codemap-activity-store-WjfEZe4_.js} +1 -1
- package/dist/assets/config-store-P5_updTQ.js +21 -0
- package/dist/assets/{dialog-b-Ai37sa.js → dialog-BDUaV5gY.js} +1 -1
- package/dist/assets/{empty-state-pfuS5znr.js → empty-state-BzoEa04Q.js} +1 -1
- package/dist/assets/{fonts-DRGbd-AM.js → fonts-C303yVU_.js} +2 -2
- package/dist/assets/i18n-t7rIS4DB.js +3 -0
- package/dist/assets/index-B4ELbNoz.js +181 -0
- package/dist/assets/index-qdrakcnP.css +1 -0
- package/dist/assets/{input-BA6D2L3K.js → input-DMnC2O7-.js} +1 -1
- package/dist/assets/{mailbox-store-ZQO_Rv6E.js → mailbox-store-DyOOYbni.js} +1 -1
- package/dist/assets/{roster-ws-Cv_PHlEV.js → roster-ws-szSqUkqP.js} +1 -1
- package/dist/assets/settings-BMHZcBqe.js +1 -0
- package/dist/assets/settings-BQ5J8WXE.js +1 -0
- package/dist/assets/settings-BfNJfO4z.js +1 -0
- package/dist/assets/settings-ClDQ01ie.js +1 -0
- package/dist/assets/settings-DD31lC4f.js +1 -0
- package/dist/assets/settings-Da3EIcna.js +1 -0
- package/dist/assets/settings-Dl_QM2QZ.js +1 -0
- package/dist/assets/{shared-BFJvAYzX.js → shared-CLNEiW00.js} +1 -1
- package/dist/assets/stores-Cx52UOxM.js +7 -0
- package/dist/assets/toasts-3tM1krOo.js +1 -0
- package/dist/assets/toasts-BrHW33qA.js +1 -0
- package/dist/assets/toasts-Buww129h.js +1 -0
- package/dist/assets/toasts-CSN9Fy47.js +1 -0
- package/dist/assets/toasts-DOoYxbHd.js +1 -0
- package/dist/assets/toasts-DkDnbhs_.js +1 -0
- package/dist/assets/toasts-Jo4VH13n.js +1 -0
- package/dist/assets/ui-store-DI0iusYZ.js +1 -0
- package/dist/assets/{utils-CKsqCaP8.js → utils-B21Devim.js} +1 -1
- package/dist/assets/{vector-memory-panel-YWv6xcza.js → vector-memory-panel-DnX-ODHC.js} +1 -1
- package/dist/assets/{vendor-V3ydTHqN.js → vendor-BfBvt432.js} +28 -28
- package/dist/assets/{view-navigation-CpIPxhZp.js → view-navigation-Cvrp_uJm.js} +1 -1
- package/dist/components/BrowserLivePane.d.ts +2 -0
- package/dist/components/ChangesView.d.ts +3 -1
- package/dist/components/ChatInput/chat-input-bars.d.ts +1 -1
- package/dist/components/ChatInput/image-attachments.d.ts +19 -2
- package/dist/components/ChatInput/slash-routing.d.ts +18 -0
- package/dist/components/ChatInput/use-paste-drop.d.ts +3 -0
- package/dist/components/ChatInput/use-prompt-queue-view.d.ts +13 -0
- package/dist/components/ChatView/BackgroundShellStrip.d.ts +16 -0
- package/dist/components/ChatView/TerminalStrip.d.ts +8 -0
- package/dist/components/CodeMap.d.ts +0 -12
- package/dist/components/GoalPanel.d.ts +2 -1
- package/dist/components/ImageDiffView.d.ts +12 -0
- package/dist/components/KanbanTaskExecution.d.ts +64 -0
- package/dist/components/KanbanTaskInspector.d.ts +1 -1
- package/dist/components/MessageBubble/AttachmentGallery.d.ts +1 -1
- package/dist/components/MessageBubble/GeneratedImagePreview.d.ts +10 -0
- package/dist/components/SessionTabBar/summaries.d.ts +4 -0
- package/dist/components/SettingsPanel/LimitsSection.d.ts +7 -0
- package/dist/components/SettingsPanel/MCPSection.d.ts +1 -37
- package/dist/components/SettingsPanel/MCPServerCards.d.ts +67 -0
- package/dist/components/SettingsPanel/MCPServerDialog.d.ts +11 -0
- package/dist/components/SettingsPanel/PreferenceControls.d.ts +8 -0
- package/dist/components/SettingsPanel/ProviderSavedProfiles.d.ts +50 -0
- package/dist/components/SettingsPanel/ProviderSection.d.ts +2 -79
- package/dist/components/SettingsPanel/SettingsNavigation.d.ts +12 -0
- package/dist/components/SettingsPanel/brain-section-options.d.ts +1 -2
- package/dist/components/SettingsPanel/provider-section-types.d.ts +79 -0
- package/dist/components/SidePanel/SessionList.d.ts +1 -34
- package/dist/components/SidePanel/session-history.d.ts +61 -0
- package/dist/components/SystemPromptPresetEditor.d.ts +9 -0
- package/dist/components/TerminalPanel.d.ts +8 -1
- package/dist/components/WorkspaceDock.d.ts +2 -2
- package/dist/components/review/ReviewDiff.d.ts +21 -0
- package/dist/components/review/ReviewTray.d.ts +15 -0
- package/dist/components/review/review-diff-model.d.ts +31 -0
- package/dist/components/use-code-map-flow.d.ts +25 -0
- package/dist/components/use-office-map-canvas.d.ts +1 -1
- package/dist/components/use-office-map-topology.d.ts +31 -0
- package/dist/hooks/use-live-browser.d.ts +7 -0
- package/dist/hooks/useWebSocket.d.ts +1 -2
- package/dist/hooks/ws-handlers/goal-handlers.d.ts +2 -0
- package/dist/hooks/ws-handlers/prompt-queue-handlers.d.ts +18 -0
- package/dist/index.css +3013 -3013
- package/dist/index.html +18 -18
- package/dist/index.js +97375 -92924
- package/dist/lib/compact-file-tree.d.ts +30 -0
- package/dist/lib/project-image.d.ts +26 -0
- package/dist/lib/provider-warm.d.ts +3 -0
- package/dist/lib/ws-client-session-methods.d.ts +2 -0
- package/dist/lib/ws-client.d.ts +3 -0
- package/dist/stores/chat-lane-data.d.ts +153 -0
- package/dist/stores/chat-lanes.d.ts +3 -174
- package/dist/stores/chat-queue-helpers.d.ts +9 -0
- package/dist/stores/chat-store-types.d.ts +3 -0
- package/dist/stores/chat-store.d.ts +1 -1
- package/dist/stores/context-editor-store.d.ts +1 -1
- package/dist/stores/fleet-transcript.d.ts +14 -0
- package/dist/stores/git-changes-store.d.ts +3 -0
- package/dist/stores/goal-run-store.d.ts +8 -0
- package/dist/stores/goal-state-store.d.ts +3 -0
- package/dist/stores/goal-store.d.ts +9 -11
- package/dist/stores/local-prefs-defaults.d.ts +340 -0
- package/dist/stores/local-prefs.d.ts +2 -318
- package/dist/stores/notification-store.d.ts +9 -0
- package/dist/stores/review-store.d.ts +54 -0
- package/dist/stores/session-activity.d.ts +33 -0
- package/dist/stores/session-tab-store.d.ts +1 -46
- package/dist/stores/terminal-strip-store.d.ts +26 -0
- package/dist/stores/ui-store-chrome.d.ts +1 -1
- package/dist/stores/ui-store-persist.d.ts +2 -2
- package/dist/stores/ui-store-types.d.ts +3 -3
- package/dist/stores/ui-store.d.ts +5 -5
- package/dist/types/brain.d.ts +4 -2
- package/dist/types/client-message.d.ts +119 -11
- package/dist/types/prompt-queue.d.ts +55 -0
- package/dist/types/protocol-core.d.ts +4 -216
- package/dist/types/runtime.d.ts +3 -38
- package/dist/types/server-message-files.d.ts +22 -0
- package/dist/types/server-message-mcp.d.ts +30 -0
- package/dist/types/server-message-system.d.ts +110 -0
- package/dist/types/server-message.d.ts +4 -3
- package/dist/types/system.d.ts +2 -24
- package/package.json +10 -9
- package/dist/assets/AgentRosterView-Dq8Xa0WK.js +0 -12
- package/dist/assets/AudienceMemoryPanel-BVGdDVTT.js +0 -3
- package/dist/assets/ChangesView-BVyLENBb.js +0 -1
- package/dist/assets/ChimeraReviewsView-CTuxzgTC.js +0 -1
- package/dist/assets/ChronicleDashboard-BRP7D6RZ.js +0 -1
- package/dist/assets/CodeEditor-k3z3M0NG.js +0 -2
- package/dist/assets/CodeMap-CvHNQZEF.js +0 -1
- package/dist/assets/GoalView-D8G8e8YG.js +0 -1
- package/dist/assets/KanbanView-BMXGDqGo.js +0 -3
- package/dist/assets/MemoryManager-DfcsYPUB.js +0 -1
- package/dist/assets/PromptJournalView-D7k8Yh5a.js +0 -1
- package/dist/assets/ProviderTestView-DSd6kkWT.js +0 -1
- package/dist/assets/QueuePanel-79KiyZWD.js +0 -1
- package/dist/assets/RequirementIntakeView-D_Ea20fx.js +0 -1
- package/dist/assets/SddHub-CSVfLGpr.js +0 -2
- package/dist/assets/SessionList-BYRCs1AK.js +0 -1
- package/dist/assets/SetupScreen-BUZeJSZi.js +0 -1
- package/dist/assets/TechStackView-CXJilX0M.js +0 -2
- package/dist/assets/TerminalPanel-CAXevSAa.js +0 -1
- package/dist/assets/activity-B3wutYIE.js +0 -10
- package/dist/assets/activity-Be03cc7g.js +0 -10
- package/dist/assets/activity-CiYZ3y4e.js +0 -10
- package/dist/assets/activity-CmIA2MhR.js +0 -10
- package/dist/assets/activity-Cp5GhldB.js +0 -10
- package/dist/assets/activity-DFCf7l5d.js +0 -10
- package/dist/assets/activity-EbNUY7Ci.js +0 -10
- package/dist/assets/chat-6dE2AJNN.js +0 -1
- package/dist/assets/chat-B3AJmhGD.js +0 -1
- package/dist/assets/chat-BHsbpaVt.js +0 -1
- package/dist/assets/chat-BITJe8-v.js +0 -1
- package/dist/assets/chat-U-Jjb8_k.js +0 -1
- package/dist/assets/chat-_Xp5fDnj.js +0 -1
- package/dist/assets/chat-mSbSzPl5.js +0 -1
- package/dist/assets/chat-store-C7InoWAO.js +0 -1
- package/dist/assets/config-store-BbL0WxLE.js +0 -21
- package/dist/assets/i18n-Dv97urcO.js +0 -3
- package/dist/assets/index-CON0Nbm4.css +0 -1
- package/dist/assets/index-DX6tHUzs.js +0 -177
- package/dist/assets/settings-BCvuzOJ6.js +0 -1
- package/dist/assets/settings-DMPKd-4K.js +0 -1
- package/dist/assets/settings-DxQ2452f.js +0 -1
- package/dist/assets/settings-Dz3StaVx.js +0 -1
- package/dist/assets/settings-EBW1mlXc.js +0 -1
- package/dist/assets/settings-Er2LHp9d.js +0 -1
- package/dist/assets/settings-EzznCDaX.js +0 -1
- package/dist/assets/stores-DXn5tdr7.js +0 -7
- package/dist/assets/toasts-BsmyGP95.js +0 -1
- package/dist/assets/toasts-CgXHu8ZB.js +0 -1
- package/dist/assets/toasts-DZ6HdKgG.js +0 -1
- package/dist/assets/toasts-DizCJjAR.js +0 -1
- package/dist/assets/toasts-NC2MT4uN.js +0 -1
- package/dist/assets/toasts-bPl097de.js +0 -1
- package/dist/assets/toasts-tCVo15mP.js +0 -1
- package/dist/assets/ui-store-DxDwFHNK.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./mailbox-store-
|
|
1
|
+
import{i as e}from"./mailbox-store-DyOOYbni.js";import{n as t}from"./ui-store-DI0iusYZ.js";var n=(()=>{try{if(typeof navigator>`u`)return!1;let e=navigator.userAgentData?.platform??navigator.platform??``;return/mac|iphone|ipad|ipod/i.test(e)}catch{return!1}})(),r=n?`⌘`:`Ctrl`,i=n?`⌥`:`Alt`,a=n?`⇧`:`Shift`;function o(e){switch(e){case`Ctrl`:return r;case`Alt`:return i;case`Shift`:return a;default:return e}}var s={chat:`chat`,agents:`chat`,files:`files`,changes:`changes`,mailbox:`mailbox`,skills:`skill`,design:`design-gallery`},c={chat:`chat`,files:`files`,changes:`changes`,mailbox:`mailbox`,skill:`skills`,"design-gallery":`design`},l={1:`chat`,2:`files`,3:`changes`,4:`mailbox`,5:`skills`,0:`design`},u=Object.entries(l).reduce((e,[t,n])=>(e[n]=`${r}+${t}`,e),{chat:``,agents:``,files:``,changes:``,mailbox:``,skills:``,design:``});function d(e){return s[e]??`chat`}function f(e){return u[e]??``}function p(e){let n=t.getState();n.currentView!==e&&n.setCurrentView(e)}function m(e){let n=t.getState();n.setSidebarOpen(!0),n.selectActivity(e),p(d(e))}function h(e){let n=t.getState();if(!n.sidebarOpen)n.setSidebarOpen(!0),n.selectActivity(e);else if(n.activeActivity===e){n.setSidebarOpen(!1);return}else n.activeActivity===`agents`&&n.setSidebarOpen(!0),n.selectActivity(e);p(d(e))}function g(e){let n=t.getState();if(n.currentView===e){m(`chat`);return}n.setSidebarOpen(!1),p(e)}function _(n){if(n===`intake`){e.getState().setActiveHubTab(`requirements`),g(`sddhub`);return}let r=c[n];if(r){m(r);return}t.getState().setSidebarOpen(!1),p(n)}export{f as a,h as i,_ as n,m as o,g as r,o as s,l as t};
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
* ChangesView — the main-pane diff surface for the Changes (source-control)
|
|
3
3
|
* activity. The file list lives in the SidePanel (ChangesPanel); selecting a
|
|
4
4
|
* row populates the git-changes store, and this view renders the resolved
|
|
5
|
-
* before/after content
|
|
5
|
+
* before/after content — as a unified diff that takes line review comments
|
|
6
|
+
* (ReviewDiff), or Monaco side-by-side in edit mode. The review tray sends
|
|
7
|
+
* the collected comments to the chat composer as one message.
|
|
6
8
|
*/
|
|
7
9
|
export declare function ChangesView({ className }: {
|
|
8
10
|
className?: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { useFileReferenceStore } from '@/stores';
|
|
2
|
-
import type
|
|
2
|
+
import { type ImageAttachment } from './image-attachments.js';
|
|
3
3
|
import type { PasteHintState } from './use-paste-drop.js';
|
|
4
4
|
export declare function PasteHintBar({ pasteHint, onDismiss, t, }: {
|
|
5
5
|
pasteHint: PasteHintState;
|
|
@@ -29,16 +29,26 @@ export interface ImageAttachment {
|
|
|
29
29
|
}
|
|
30
30
|
/** Max images per message — mirrors core's MAX_INCOMING_IMAGES. */
|
|
31
31
|
export declare const MAX_ATTACHED_IMAGES = 8;
|
|
32
|
+
/** Max PDFs per message — mirrors core's MAX_INCOMING_DOCUMENTS. */
|
|
33
|
+
export declare const MAX_ATTACHED_PDFS = 4;
|
|
34
|
+
/** Per-PDF cap — mirrors core's MAX_INCOMING_DOCUMENT_BYTES. A PDF is sent
|
|
35
|
+
* as picked: there is nothing to downscale. */
|
|
36
|
+
export declare const MAX_ATTACHED_PDF_BYTES: number;
|
|
37
|
+
export declare const PDF_MEDIA_TYPE = "application/pdf";
|
|
38
|
+
export declare function isPdfFile(file: File): boolean;
|
|
39
|
+
export declare function isPdfAttachment(attachment: {
|
|
40
|
+
mediaType: string;
|
|
41
|
+
}): boolean;
|
|
32
42
|
/** Hard per-image cap after processing. Mirrors nothing server-side exactly
|
|
33
43
|
* (the server allows 8 MB) — the tighter client cap keeps multi-image
|
|
34
44
|
* messages inside the WS payload budget. */
|
|
35
45
|
export declare const MAX_PROCESSED_IMAGE_BYTES: number;
|
|
36
46
|
export declare class ImageAttachmentError extends Error {
|
|
37
47
|
/** i18n key the caller can surface; message is the English fallback. */
|
|
38
|
-
readonly reason: 'decode_failed' | 'too_large';
|
|
48
|
+
readonly reason: 'decode_failed' | 'too_large' | 'pdf_too_large' | 'pdf_read_failed';
|
|
39
49
|
constructor(message: string,
|
|
40
50
|
/** i18n key the caller can surface; message is the English fallback. */
|
|
41
|
-
reason: 'decode_failed' | 'too_large');
|
|
51
|
+
reason: 'decode_failed' | 'too_large' | 'pdf_too_large' | 'pdf_read_failed');
|
|
42
52
|
}
|
|
43
53
|
/**
|
|
44
54
|
* Normalize one image file into a pending attachment: decode, downscale to
|
|
@@ -47,6 +57,13 @@ export declare class ImageAttachmentError extends Error {
|
|
|
47
57
|
* can't be decoded or can't be squeezed under the size cap.
|
|
48
58
|
*/
|
|
49
59
|
export declare function processImageFile(file: File): Promise<ImageAttachment>;
|
|
60
|
+
/**
|
|
61
|
+
* A PDF as a pending attachment. It rides the image list (one pipeline
|
|
62
|
+
* through queue, steer and resend) and the server tells it apart by media
|
|
63
|
+
* type; the model gets the file or its extracted text depending on whether it
|
|
64
|
+
* takes PDF input.
|
|
65
|
+
*/
|
|
66
|
+
export declare function processPdfFile(file: File): Promise<ImageAttachment>;
|
|
50
67
|
/** Wire shape sent inside the `user_message` payload (`images` field). */
|
|
51
68
|
interface WireImage {
|
|
52
69
|
data: string;
|
|
@@ -16,6 +16,18 @@ type SlashRoutingClientMessage = Extract<WSClientMessage, {
|
|
|
16
16
|
type: 'autonomy.switch';
|
|
17
17
|
} | {
|
|
18
18
|
type: 'goal.get';
|
|
19
|
+
} | {
|
|
20
|
+
type: 'goal-state.get';
|
|
21
|
+
} | {
|
|
22
|
+
type: 'goal-state.set';
|
|
23
|
+
} | {
|
|
24
|
+
type: 'goal-state.refine';
|
|
25
|
+
} | {
|
|
26
|
+
type: 'goal-state.pause';
|
|
27
|
+
} | {
|
|
28
|
+
type: 'goal-state.resume';
|
|
29
|
+
} | {
|
|
30
|
+
type: 'goal-state.clear';
|
|
19
31
|
} | {
|
|
20
32
|
type: 'mode.switch';
|
|
21
33
|
} | {
|
|
@@ -34,6 +46,12 @@ type SlashRoutingClientMessage = Extract<WSClientMessage, {
|
|
|
34
46
|
type: 'working_dir.set';
|
|
35
47
|
} | {
|
|
36
48
|
type: 'goal.start';
|
|
49
|
+
} | {
|
|
50
|
+
type: 'goal.load';
|
|
51
|
+
} | {
|
|
52
|
+
type: 'goal.save';
|
|
53
|
+
} | {
|
|
54
|
+
type: 'goal.list';
|
|
37
55
|
} | {
|
|
38
56
|
type: 'goal.pause';
|
|
39
57
|
} | {
|
|
@@ -18,6 +18,9 @@ interface UsePasteDropOptions {
|
|
|
18
18
|
tooManyImages: (max: number) => string;
|
|
19
19
|
imageProcessFailed: (name: string) => string;
|
|
20
20
|
imageTooLarge: (name: string) => string;
|
|
21
|
+
tooManyPdfs: (max: number) => string;
|
|
22
|
+
pdfTooLarge: (name: string, maxMb: number) => string;
|
|
23
|
+
pdfReadFailed: (name: string) => string;
|
|
21
24
|
};
|
|
22
25
|
}
|
|
23
26
|
export declare function usePasteDrop({ input, textareaRef, setInput, errorText }: UsePasteDropOptions): {
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { QueuedItem } from '@/stores/chat-store-types';
|
|
2
|
+
/**
|
|
3
|
+
* The queue as the chips and the queue panel show it: this lane's local items
|
|
4
|
+
* (btw notes, and everything on a server without a session queue) followed by
|
|
5
|
+
* the prompts the server holds for the session. Removing or clearing goes to
|
|
6
|
+
* whoever owns the item.
|
|
7
|
+
*/
|
|
8
|
+
export declare function usePromptQueueView(): {
|
|
9
|
+
queue: QueuedItem[];
|
|
10
|
+
remove: (index: number) => void;
|
|
11
|
+
clear: () => void;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=use-prompt-queue-view.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BackgroundShellStrip — this tab's background shells, above the composer.
|
|
3
|
+
*
|
|
4
|
+
* `bash` with `background: true` (and `pwsh` with `run_in_background`) leaves
|
|
5
|
+
* a process running after the tool returns, and its output goes to a log file
|
|
6
|
+
* (tools background-log.ts). The strip shows one chip per such process, with
|
|
7
|
+
* how long it has run; a chip opens the last lines of its output, refreshed
|
|
8
|
+
* while open, and a Stop button. Subagents are not repeated here: AgentTabs
|
|
9
|
+
* above the transcript already lists them with live status.
|
|
10
|
+
*
|
|
11
|
+
* No steady polling: the list is asked for when the tab connects and after
|
|
12
|
+
* every shell tool call, and re-asked every few seconds only while a
|
|
13
|
+
* background shell is running.
|
|
14
|
+
*/
|
|
15
|
+
export declare function BackgroundShellStrip(): React.ReactElement | null;
|
|
16
|
+
//# sourceMappingURL=BackgroundShellStrip.d.ts.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TerminalStrip — this browser's integrated terminals, above the composer,
|
|
3
|
+
* while the terminal dock is hidden (hiding it keeps them running). A chip
|
|
4
|
+
* shows a spinner while its terminal is printing; opening it shows the last
|
|
5
|
+
* lines, and "Open" brings the dock back on that terminal.
|
|
6
|
+
*/
|
|
7
|
+
export declare function TerminalStrip(): React.ReactElement | null;
|
|
8
|
+
//# sourceMappingURL=TerminalStrip.d.ts.map
|
|
@@ -1,15 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Code Atlas — persistent code tree, dependency canvas, and relation inspector.
|
|
3
|
-
*
|
|
4
|
-
* The explorer never disappears while the user moves package → file → symbol.
|
|
5
|
-
* A graph click opens packages/files; the relation action focuses relationships.
|
|
6
|
-
*
|
|
7
|
-
* Performance notes:
|
|
8
|
-
* - Activity store is subscribed via selectors (not the whole store).
|
|
9
|
-
* - React Flow rebuilds are immediate for structural changes and throttled for
|
|
10
|
-
* telemetry-only updates (see FLOW_ACTIVITY_THROTTLE_MS).
|
|
11
|
-
* - SMART mode caps canvas nodes; MiniMap is gated by node count.
|
|
12
|
-
*/
|
|
13
1
|
import '@xyflow/react/dist/style.css';
|
|
14
2
|
export declare function CodeMap(): React.ReactElement;
|
|
15
3
|
//# sourceMappingURL=CodeMap.d.ts.map
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { GoalState } from '@/lib/goal';
|
|
2
2
|
export interface GoalPanelProps {
|
|
3
3
|
goal: GoalState | null;
|
|
4
|
+
refining?: boolean | undefined;
|
|
4
5
|
className?: string | undefined;
|
|
5
6
|
}
|
|
6
|
-
export declare function GoalPanel({ goal, className }: GoalPanelProps): React.ReactElement | null;
|
|
7
|
+
export declare function GoalPanel({ goal, refining, className, }: GoalPanelProps): React.ReactElement | null;
|
|
7
8
|
//# sourceMappingURL=GoalPanel.d.ts.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A changed image in the Changes view: the version at HEAD next to the one in
|
|
3
|
+
* the working tree, or the two stacked with a slider that fades between them
|
|
4
|
+
* (onion skin). Each side says its pixel size and file size; an added or
|
|
5
|
+
* deleted image shows its one side.
|
|
6
|
+
*/
|
|
7
|
+
import type { GitImageDiff } from '@/types/server-message';
|
|
8
|
+
export declare function ImageDiffView({ image, path }: {
|
|
9
|
+
image: GitImageDiff;
|
|
10
|
+
path: string;
|
|
11
|
+
}): import("react").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=ImageDiffView.d.ts.map
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { TFunction } from 'i18next';
|
|
2
|
+
export declare function KanbanTaskExecution({ activeTab, board, nextManagedStage, t, currentManagedStage, transitionAction, setTransitionAction, transitionComment, setTransitionComment, transitionAttachmentUrl, setTransitionAttachmentUrl, advanceManagedTask, task, activityEvents, activityPresence, activitySessionId, sessionProvider, sessionModel, runLink, modelCandidates, sendRaw, routingMode, setRoutingMode, model, provider, setModel, setProvider, fallbackProfile, meta, setFallbackProfile, fallbackModels, setFallbackModels, role, setRole, skills, setSkills, tools, setTools, setShowAdvanced, showAdvanced, name, setName, retryPolicy, setRetryPolicy, maxAttempts, setMaxAttempts, costCeilingUsd, setCostCeilingUsd, allowedCapabilities, setAllowedCapabilities, assign, dispatch, boards, targetBoardId, setTargetBoardId, copyTask, transferTask, }: {
|
|
3
|
+
activeTab: import('./KanbanTaskInspectorChrome.js').TaskInspectorTab;
|
|
4
|
+
board: import('../../../kanban/dist/types.js').KanbanBoard | null;
|
|
5
|
+
nextManagedStage: 'backlog' | 'todo' | 'running' | 'review' | 'done' | undefined;
|
|
6
|
+
t: TFunction<'translation', undefined>;
|
|
7
|
+
currentManagedStage: import('../../../kanban/dist/types.js').KanbanLifecycleStage | undefined;
|
|
8
|
+
transitionAction: string;
|
|
9
|
+
setTransitionAction: React.Dispatch<React.SetStateAction<string>>;
|
|
10
|
+
transitionComment: string;
|
|
11
|
+
setTransitionComment: React.Dispatch<React.SetStateAction<string>>;
|
|
12
|
+
transitionAttachmentUrl: string;
|
|
13
|
+
setTransitionAttachmentUrl: React.Dispatch<React.SetStateAction<string>>;
|
|
14
|
+
advanceManagedTask: () => void;
|
|
15
|
+
task: import('../../../kanban/dist/types.js').KanbanTask;
|
|
16
|
+
activityEvents: import('../../../kanban/dist/types.js').KanbanEvent[];
|
|
17
|
+
activityPresence: import('../../../kanban/dist/types.js').KanbanBoardPresence[] | undefined;
|
|
18
|
+
activitySessionId: string | undefined;
|
|
19
|
+
sessionProvider: string | undefined;
|
|
20
|
+
sessionModel: string | undefined;
|
|
21
|
+
runLink: import('./KanbanRunControls.js').RunLink | null;
|
|
22
|
+
modelCandidates: import('../hooks/useProviderModels.js').ModelCandidate[];
|
|
23
|
+
sendRaw: (type: string, payload?: Record<string, unknown> | undefined) => void;
|
|
24
|
+
routingMode: import('../../../kanban/dist/supervision-types.js').KanbanModelRoutingMode;
|
|
25
|
+
setRoutingMode: React.Dispatch<React.SetStateAction<import('../../../kanban/dist/supervision-types.js').KanbanModelRoutingMode>>;
|
|
26
|
+
model: string;
|
|
27
|
+
provider: string;
|
|
28
|
+
setModel: React.Dispatch<React.SetStateAction<string>>;
|
|
29
|
+
setProvider: React.Dispatch<React.SetStateAction<string>>;
|
|
30
|
+
fallbackProfile: string;
|
|
31
|
+
meta: ReturnType<typeof import('../hooks/useKanbanMeta.js').useKanbanMeta>;
|
|
32
|
+
setFallbackProfile: React.Dispatch<React.SetStateAction<string>>;
|
|
33
|
+
fallbackModels: string[];
|
|
34
|
+
setFallbackModels: React.Dispatch<React.SetStateAction<string[]>>;
|
|
35
|
+
role: string;
|
|
36
|
+
setRole: React.Dispatch<React.SetStateAction<string>>;
|
|
37
|
+
skills: string[];
|
|
38
|
+
setSkills: React.Dispatch<React.SetStateAction<string[]>>;
|
|
39
|
+
tools: string[];
|
|
40
|
+
setTools: React.Dispatch<React.SetStateAction<string[]>>;
|
|
41
|
+
setShowAdvanced: React.Dispatch<React.SetStateAction<boolean>>;
|
|
42
|
+
showAdvanced: boolean;
|
|
43
|
+
name: string;
|
|
44
|
+
setName: React.Dispatch<React.SetStateAction<string>>;
|
|
45
|
+
retryPolicy: NonNullable<import('../../../kanban/dist/task-policy-types.js').KanbanRetryPolicy | undefined>;
|
|
46
|
+
setRetryPolicy: React.Dispatch<React.SetStateAction<NonNullable<import('../../../kanban/dist/task-policy-types.js').KanbanRetryPolicy | undefined>>>;
|
|
47
|
+
maxAttempts: string;
|
|
48
|
+
setMaxAttempts: React.Dispatch<React.SetStateAction<string>>;
|
|
49
|
+
costCeilingUsd: string;
|
|
50
|
+
setCostCeilingUsd: React.Dispatch<React.SetStateAction<string>>;
|
|
51
|
+
allowedCapabilities: string[];
|
|
52
|
+
setAllowedCapabilities: React.Dispatch<React.SetStateAction<string[]>>;
|
|
53
|
+
assign: () => void;
|
|
54
|
+
dispatch: () => void;
|
|
55
|
+
boards: {
|
|
56
|
+
id: string;
|
|
57
|
+
title: string;
|
|
58
|
+
}[];
|
|
59
|
+
targetBoardId: string;
|
|
60
|
+
setTargetBoardId: React.Dispatch<React.SetStateAction<string>>;
|
|
61
|
+
copyTask: () => void;
|
|
62
|
+
transferTask: () => void;
|
|
63
|
+
}): false | import("react").JSX.Element;
|
|
64
|
+
//# sourceMappingURL=KanbanTaskExecution.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { KanbanBoard, KanbanBoardPresence, KanbanEvent, KanbanTask } from '@wrongstack/kanban';
|
|
2
|
-
import {
|
|
2
|
+
import type { RunLink } from './KanbanRunControls.js';
|
|
3
3
|
export declare function KanbanTaskInspector({ boards, board, task, runLink, onClose, onSelectTask, sendKanban, sendRaw, activityEvents, activityPresence, activityLoading, activityError, activitySessionId, refreshActivity, }: {
|
|
4
4
|
boards: Array<{
|
|
5
5
|
id: string;
|
|
@@ -3,7 +3,7 @@ import type { ChatMessageAttachment } from '@/stores/types.js';
|
|
|
3
3
|
* Thumbnail strip for images attached to a user message. Click toggles a
|
|
4
4
|
* thumbnail between compact and full-size. Attachments rehydrated from
|
|
5
5
|
* localStorage arrive without `dataUrl` (stripped to protect the quota) and
|
|
6
|
-
* degrade to a name/size placeholder chip.
|
|
6
|
+
* degrade to a name/size placeholder chip. A PDF is always a name chip.
|
|
7
7
|
*/
|
|
8
8
|
export declare function AttachmentGallery({ attachments, notRetainedLabel, }: {
|
|
9
9
|
attachments: readonly ChatMessageAttachment[];
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The pictures an `image_generate` call saved, shown on its tool card without
|
|
3
|
+
* opening it. The tool's result names the files; each one is loaded from the
|
|
4
|
+
* project (`files.image`). Click a picture to see it at full size.
|
|
5
|
+
*/
|
|
6
|
+
export declare function GeneratedImagePreview({ result, messageId, }: {
|
|
7
|
+
result?: string;
|
|
8
|
+
messageId: string;
|
|
9
|
+
}): import("react").JSX.Element | null;
|
|
10
|
+
//# sourceMappingURL=GeneratedImagePreview.d.ts.map
|
|
@@ -14,24 +14,28 @@ export declare function slotAccent(slot: number): {
|
|
|
14
14
|
readonly text: 'text-primary';
|
|
15
15
|
readonly border: 'border-primary';
|
|
16
16
|
readonly soft: 'bg-primary/10';
|
|
17
|
+
readonly activeBg: 'bg-primary/15';
|
|
17
18
|
} | {
|
|
18
19
|
readonly name: 'info';
|
|
19
20
|
readonly dot: 'bg-info';
|
|
20
21
|
readonly text: 'text-info';
|
|
21
22
|
readonly border: 'border-info';
|
|
22
23
|
readonly soft: 'bg-info/10';
|
|
24
|
+
readonly activeBg: 'bg-info/15';
|
|
23
25
|
} | {
|
|
24
26
|
readonly name: 'warning';
|
|
25
27
|
readonly dot: 'bg-warning';
|
|
26
28
|
readonly text: 'text-warning';
|
|
27
29
|
readonly border: 'border-warning';
|
|
28
30
|
readonly soft: 'bg-warning/10';
|
|
31
|
+
readonly activeBg: 'bg-warning/15';
|
|
29
32
|
} | {
|
|
30
33
|
readonly name: 'success';
|
|
31
34
|
readonly dot: 'bg-success';
|
|
32
35
|
readonly text: 'text-success';
|
|
33
36
|
readonly border: 'border-success';
|
|
34
37
|
readonly soft: 'bg-success/10';
|
|
38
|
+
readonly activeBg: 'bg-success/15';
|
|
35
39
|
};
|
|
36
40
|
/** Live summaries for every open slot, in slot order. */
|
|
37
41
|
export declare function useTabSummaries(titles?: Map<string, string>): TabSummary[];
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface LimitsSectionProps {
|
|
2
|
+
/** Writes the pref locally AND pushes it to the server (see SettingsPanel). */
|
|
3
|
+
syncPref: (key: string, value: unknown) => void;
|
|
4
|
+
}
|
|
5
|
+
export declare function LimitsSection({ syncPref }: LimitsSectionProps): React.ReactElement;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=LimitsSection.d.ts.map
|
|
@@ -1,41 +1,5 @@
|
|
|
1
1
|
import { type ReactElement } from 'react';
|
|
2
|
-
export
|
|
3
|
-
name: string;
|
|
4
|
-
transport: string;
|
|
5
|
-
status: 'stopped' | 'connecting' | 'connected' | 'sleeping' | 'discovering' | 'error';
|
|
6
|
-
enabled: boolean;
|
|
7
|
-
description?: string;
|
|
8
|
-
tools?: string[];
|
|
9
|
-
error?: string;
|
|
10
|
-
lastError?: string;
|
|
11
|
-
pid?: number;
|
|
12
|
-
lazy?: boolean;
|
|
13
|
-
command?: string;
|
|
14
|
-
args?: string[];
|
|
15
|
-
env?: Record<string, string>;
|
|
16
|
-
url?: string;
|
|
17
|
-
health?: {
|
|
18
|
-
healthState: 'disabled' | 'dormant' | 'connecting' | 'healthy' | 'degraded' | 'failed';
|
|
19
|
-
consecutiveFailures: number;
|
|
20
|
-
failures: {
|
|
21
|
-
transport: number;
|
|
22
|
-
protocol: number;
|
|
23
|
-
tool: number;
|
|
24
|
-
};
|
|
25
|
-
reconnectCount: number;
|
|
26
|
-
wakeCount: number;
|
|
27
|
-
sleepCount: number;
|
|
28
|
-
restartCount: number;
|
|
29
|
-
inFlightCalls: number;
|
|
30
|
-
peakInFlightCalls: number;
|
|
31
|
-
callLatency: {
|
|
32
|
-
count: number;
|
|
33
|
-
lastMs?: number;
|
|
34
|
-
p50Ms?: number;
|
|
35
|
-
p95Ms?: number;
|
|
36
|
-
};
|
|
37
|
-
};
|
|
38
|
-
}
|
|
2
|
+
export type { MCPServer } from './MCPServerCards.js';
|
|
39
3
|
import type { MCPServerConfig } from './contracts.js';
|
|
40
4
|
export type { MCPServerConfig };
|
|
41
5
|
export declare function MCPSection(): ReactElement;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { OfficialServer } from './official-servers';
|
|
2
|
+
/** Non-secret OAuth state pushed by the server for an HTTP MCP endpoint. */
|
|
3
|
+
export type MCPAuthState = 'not_authorized' | 'pending' | 'authorized' | 'expired' | 'reauth_required' | 'failed';
|
|
4
|
+
export interface MCPServer {
|
|
5
|
+
name: string;
|
|
6
|
+
transport: string;
|
|
7
|
+
status: 'stopped' | 'connecting' | 'connected' | 'sleeping' | 'discovering' | 'error';
|
|
8
|
+
enabled: boolean;
|
|
9
|
+
description?: string;
|
|
10
|
+
tools?: string[];
|
|
11
|
+
error?: string;
|
|
12
|
+
lastError?: string;
|
|
13
|
+
pid?: number;
|
|
14
|
+
lazy?: boolean;
|
|
15
|
+
command?: string;
|
|
16
|
+
args?: string[];
|
|
17
|
+
env?: Record<string, string>;
|
|
18
|
+
url?: string;
|
|
19
|
+
health?: {
|
|
20
|
+
healthState: 'disabled' | 'dormant' | 'connecting' | 'healthy' | 'degraded' | 'failed';
|
|
21
|
+
consecutiveFailures: number;
|
|
22
|
+
failures: {
|
|
23
|
+
transport: number;
|
|
24
|
+
protocol: number;
|
|
25
|
+
tool: number;
|
|
26
|
+
};
|
|
27
|
+
reconnectCount: number;
|
|
28
|
+
wakeCount: number;
|
|
29
|
+
sleepCount: number;
|
|
30
|
+
restartCount: number;
|
|
31
|
+
inFlightCalls: number;
|
|
32
|
+
peakInFlightCalls: number;
|
|
33
|
+
callLatency: {
|
|
34
|
+
count: number;
|
|
35
|
+
lastMs?: number;
|
|
36
|
+
p50Ms?: number;
|
|
37
|
+
p95Ms?: number;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/** Map server status to a human-readable label and color */
|
|
42
|
+
export declare function statusInfo(status: MCPServer['status']): {
|
|
43
|
+
color: string;
|
|
44
|
+
};
|
|
45
|
+
/** Small colored dot for status indication */
|
|
46
|
+
export declare function StatusDot({ status }: {
|
|
47
|
+
status: MCPServer['status'];
|
|
48
|
+
}): import("react").JSX.Element;
|
|
49
|
+
/** Expandable server card */
|
|
50
|
+
export declare function ServerCard({ server, authState, onWake, onSleep, onDiscover, onEdit, onRemove, onAuthorize, onSignOut, }: {
|
|
51
|
+
server: MCPServer;
|
|
52
|
+
authState?: MCPAuthState | undefined;
|
|
53
|
+
onWake: () => void;
|
|
54
|
+
onSleep: () => void;
|
|
55
|
+
onDiscover: () => void;
|
|
56
|
+
onEdit: () => void;
|
|
57
|
+
onRemove: () => void;
|
|
58
|
+
onAuthorize: () => void;
|
|
59
|
+
onSignOut: () => void;
|
|
60
|
+
}): import("react").JSX.Element;
|
|
61
|
+
/** Official/recommended server card */
|
|
62
|
+
export declare function OfficialServerCard({ server, isAdded, onAdd, }: {
|
|
63
|
+
server: OfficialServer;
|
|
64
|
+
isAdded: boolean;
|
|
65
|
+
onAdd: () => void;
|
|
66
|
+
}): import("react").JSX.Element;
|
|
67
|
+
//# sourceMappingURL=MCPServerCards.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { MCPServerConfig } from './contracts.js';
|
|
2
|
+
import type { MCPServer } from './MCPServerCards.js';
|
|
3
|
+
/** Edit/Add Server Dialog */
|
|
4
|
+
export declare function ServerDialog({ open, onOpenChange, server, onSave, prefillConfig, }: {
|
|
5
|
+
open: boolean;
|
|
6
|
+
onOpenChange: (open: boolean) => void;
|
|
7
|
+
server?: MCPServer;
|
|
8
|
+
prefillConfig?: MCPServerConfig;
|
|
9
|
+
onSave: (config: MCPServerConfig) => void;
|
|
10
|
+
}): import("react").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=MCPServerDialog.d.ts.map
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/** Runtime limits use zero for unlimited and accept any nonnegative integer. */
|
|
2
|
+
export declare function PreferenceLimit({ label, hint, value, onChange, unlimitedLabel, }: {
|
|
3
|
+
label: string;
|
|
4
|
+
hint: string;
|
|
5
|
+
value: number;
|
|
6
|
+
onChange: (value: number) => void;
|
|
7
|
+
unlimitedLabel: string;
|
|
8
|
+
}): import("react").JSX.Element;
|
|
1
9
|
/** A labeled slider with current value display. */
|
|
2
10
|
export declare function PreferenceSlider({ label, hint, value, min, max, step, onChange, unit, }: {
|
|
3
11
|
label: string;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { TFunction } from 'i18next';
|
|
2
|
+
export declare function ProviderSavedProfiles({ t, savedProviders, savedProviderStats, setShowAddProviderForm, showAddProviderForm, newProviderId, handlePickLocalPreset, setNewProviderId, addProviderNav, newProviderFamily, setNewProviderFamily, newProviderBaseUrl, setNewProviderBaseUrl, newProviderApiKey, setNewProviderApiKey, newProviderModels, setNewProviderModels, handleAddProvider, saving, isLoadingSaved, save, onRemoveProvider, ws, onPickProviderModel, setShowAddKeyForm, showAddKeyForm, onSetActiveKey, onDeleteKey, newKeyLabel, setNewKeyLabel, addKeyNav, showNewKeyValue, newKeyValue, setNewKeyValue, setShowNewKeyValue, handleAddKey, }: {
|
|
3
|
+
t: TFunction<'translation', undefined>;
|
|
4
|
+
savedProviders: import('./provider-section-types.js').SavedProvider[];
|
|
5
|
+
savedProviderStats: {
|
|
6
|
+
keys: number;
|
|
7
|
+
activeKeys: number;
|
|
8
|
+
models: number;
|
|
9
|
+
};
|
|
10
|
+
setShowAddProviderForm: React.Dispatch<React.SetStateAction<boolean>>;
|
|
11
|
+
showAddProviderForm: boolean;
|
|
12
|
+
newProviderId: string;
|
|
13
|
+
handlePickLocalPreset: (preset: import('../../../../providers/dist/provider-definitions.js').LocalProviderPresetProjection) => void;
|
|
14
|
+
setNewProviderId: React.Dispatch<React.SetStateAction<string>>;
|
|
15
|
+
addProviderNav: {
|
|
16
|
+
setFieldRef: (index: number) => (el: HTMLElement | null) => void;
|
|
17
|
+
handleKeyDown: (e: React.KeyboardEvent<Element>, index: number, onEnter?: (() => void) | undefined) => void;
|
|
18
|
+
};
|
|
19
|
+
newProviderFamily: string;
|
|
20
|
+
setNewProviderFamily: React.Dispatch<React.SetStateAction<string>>;
|
|
21
|
+
newProviderBaseUrl: string;
|
|
22
|
+
setNewProviderBaseUrl: React.Dispatch<React.SetStateAction<string>>;
|
|
23
|
+
newProviderApiKey: string;
|
|
24
|
+
setNewProviderApiKey: React.Dispatch<React.SetStateAction<string>>;
|
|
25
|
+
newProviderModels: import('../SetupScreen/ModelEditor.js').ModelEntry[];
|
|
26
|
+
setNewProviderModels: React.Dispatch<React.SetStateAction<import('../SetupScreen/ModelEditor.js').ModelEntry[]>>;
|
|
27
|
+
handleAddProvider: () => void;
|
|
28
|
+
saving: boolean;
|
|
29
|
+
isLoadingSaved: boolean;
|
|
30
|
+
save: (action: () => void | Promise<boolean | void>, confirmed: () => void) => Promise<void>;
|
|
31
|
+
onRemoveProvider: (providerId: string) => void | Promise<boolean>;
|
|
32
|
+
ws: import('../../lib/ws-client.js').WrongStackWebSocketClient;
|
|
33
|
+
onPickProviderModel: (providerId: string, modelId: string) => void;
|
|
34
|
+
setShowAddKeyForm: React.Dispatch<React.SetStateAction<string | null>>;
|
|
35
|
+
showAddKeyForm: string | null;
|
|
36
|
+
onSetActiveKey: (providerId: string, label: string) => void | Promise<boolean>;
|
|
37
|
+
onDeleteKey: (providerId: string, label: string) => void | Promise<boolean>;
|
|
38
|
+
newKeyLabel: string;
|
|
39
|
+
setNewKeyLabel: React.Dispatch<React.SetStateAction<string>>;
|
|
40
|
+
addKeyNav: {
|
|
41
|
+
setFieldRef: (index: number) => (el: HTMLElement | null) => void;
|
|
42
|
+
handleKeyDown: (e: React.KeyboardEvent<Element>, index: number, onEnter?: (() => void) | undefined) => void;
|
|
43
|
+
};
|
|
44
|
+
showNewKeyValue: boolean;
|
|
45
|
+
newKeyValue: string;
|
|
46
|
+
setNewKeyValue: React.Dispatch<React.SetStateAction<string>>;
|
|
47
|
+
setShowNewKeyValue: React.Dispatch<React.SetStateAction<boolean>>;
|
|
48
|
+
handleAddKey: (providerId: string) => void;
|
|
49
|
+
}): import("react").JSX.Element;
|
|
50
|
+
//# sourceMappingURL=ProviderSavedProfiles.d.ts.map
|
|
@@ -1,81 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export
|
|
3
|
-
id: string;
|
|
4
|
-
name: string;
|
|
5
|
-
family: string;
|
|
6
|
-
apiBase?: string | undefined;
|
|
7
|
-
envVars: string[];
|
|
8
|
-
modelCount: number;
|
|
9
|
-
hasApiKey: boolean;
|
|
10
|
-
}
|
|
11
|
-
export interface SavedProvider {
|
|
12
|
-
id: string;
|
|
13
|
-
type?: string | undefined;
|
|
14
|
-
family?: string | undefined;
|
|
15
|
-
baseUrl?: string | undefined;
|
|
16
|
-
/** Saved model allowlist, in the order the user pinned them. */
|
|
17
|
-
models?: string[] | undefined;
|
|
18
|
-
/** Per-model metadata (display name, output limits, capability overrides). */
|
|
19
|
-
customModels?: Record<string, {
|
|
20
|
-
name?: string | undefined;
|
|
21
|
-
maxOutput?: number | undefined;
|
|
22
|
-
capabilities?: {
|
|
23
|
-
maxContext?: number | undefined;
|
|
24
|
-
tools?: boolean | undefined;
|
|
25
|
-
vision?: boolean | undefined;
|
|
26
|
-
reasoning?: boolean | undefined;
|
|
27
|
-
streaming?: boolean | undefined;
|
|
28
|
-
jsonMode?: boolean | undefined;
|
|
29
|
-
} | undefined;
|
|
30
|
-
}> | undefined;
|
|
31
|
-
/** First entry of `models`, surfaced for the panel's "Using" line. */
|
|
32
|
-
pickedModelId?: string | undefined;
|
|
33
|
-
apiKeys: Array<{
|
|
34
|
-
label: string;
|
|
35
|
-
maskedKey: string;
|
|
36
|
-
isActive: boolean;
|
|
37
|
-
createdAt: string;
|
|
38
|
-
}>;
|
|
39
|
-
}
|
|
40
|
-
export type ProviderTab = 'catalog' | 'saved';
|
|
41
|
-
interface ProviderSectionProps {
|
|
42
|
-
/** Currently selected provider id. */
|
|
43
|
-
activeProvider: string;
|
|
44
|
-
/** Catalog providers list. */
|
|
45
|
-
catalogProviders: CatalogProvider[];
|
|
46
|
-
/** Loading flag. */
|
|
47
|
-
isLoadingCatalog: boolean;
|
|
48
|
-
/** Saved providers list. */
|
|
49
|
-
savedProviders: SavedProvider[];
|
|
50
|
-
/** Loading flag. */
|
|
51
|
-
isLoadingSaved: boolean;
|
|
52
|
-
/** Which sub-tab is active. */
|
|
53
|
-
providerTab: ProviderTab;
|
|
54
|
-
setProviderTab: (v: ProviderTab) => void;
|
|
55
|
-
/** Called when a catalog provider is selected. */
|
|
56
|
-
onSelectProvider: (id: string) => void;
|
|
57
|
-
/** Called to add an API key. */
|
|
58
|
-
onAddKey: (providerId: string, label: string, value: string) => Promise<boolean> | void;
|
|
59
|
-
/** Called to delete an API key. */
|
|
60
|
-
onDeleteKey: (providerId: string, label: string) => Promise<boolean> | void;
|
|
61
|
-
/** Called to set a key as active. */
|
|
62
|
-
onSetActiveKey: (providerId: string, label: string) => Promise<boolean> | void;
|
|
63
|
-
/** Called to add a custom provider. */
|
|
64
|
-
onAddProvider: (id: string, family: string, baseUrl?: string | undefined, apiKey?: string, models?: string[] | undefined, customModels?: Record<string, {
|
|
65
|
-
name?: string | undefined;
|
|
66
|
-
maxOutput?: number | undefined;
|
|
67
|
-
capabilities?: Record<string, unknown> | undefined;
|
|
68
|
-
}> | undefined, providerType?: string | undefined) => Promise<boolean> | void;
|
|
69
|
-
/** Called to remove a saved provider. */
|
|
70
|
-
onRemoveProvider: (providerId: string) => Promise<boolean> | void;
|
|
71
|
-
/** Called when a saved provider model is picked. */
|
|
72
|
-
onPickProviderModel: (providerId: string, modelId: string) => void;
|
|
73
|
-
/** WebSocket client used for saved-provider model probing/clearing. */
|
|
74
|
-
ws: WrongStackWebSocketClient;
|
|
75
|
-
/** Search filter text. */
|
|
76
|
-
catalogQuery: string;
|
|
77
|
-
setCatalogQuery: (v: string) => void;
|
|
78
|
-
}
|
|
1
|
+
import type { ProviderSectionProps } from './provider-section-types.js';
|
|
2
|
+
export type { CatalogProvider, ProviderTab, SavedProvider, } from './provider-section-types.js';
|
|
79
3
|
export declare function ProviderSection({ activeProvider, catalogProviders, isLoadingCatalog, savedProviders, isLoadingSaved, providerTab, setProviderTab, onSelectProvider, onAddKey, onDeleteKey, onSetActiveKey, onAddProvider, onRemoveProvider, onPickProviderModel, ws, catalogQuery, setCatalogQuery, }: ProviderSectionProps): import("react").JSX.Element;
|
|
80
|
-
export {};
|
|
81
4
|
//# sourceMappingURL=ProviderSection.d.ts.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface SettingsTab {
|
|
2
|
+
id: string;
|
|
3
|
+
icon: React.ReactNode;
|
|
4
|
+
labelKey: string;
|
|
5
|
+
descKey?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function SettingsNavigation({ tabs, activeTab, onSelect, }: {
|
|
8
|
+
tabs: SettingsTab[];
|
|
9
|
+
activeTab: string;
|
|
10
|
+
onSelect: (tab: string) => void;
|
|
11
|
+
}): import("react").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=SettingsNavigation.d.ts.map
|
|
@@ -14,8 +14,7 @@ export declare function councilPersonaOptions(catalog: BrainConfigWire['personaC
|
|
|
14
14
|
export declare const DECISION_TIMEOUTS: BrainOption[];
|
|
15
15
|
export declare const HUMAN_TIMEOUTS: BrainOption[];
|
|
16
16
|
export declare const FRACTIONS: BrainOption[];
|
|
17
|
-
/**
|
|
18
|
-
* the default is a LABELLED concrete option rather than a `default` sentinel. */
|
|
17
|
+
/** `default` = no cap: the model's own output ceiling. */
|
|
19
18
|
export declare const LLM_MAX_TOKENS: BrainOption[];
|
|
20
19
|
export declare const MIN_CONFIDENCE: BrainOption[];
|
|
21
20
|
export declare const DECISION_LOG_SIZES: BrainOption[];
|