@qwen-code/web-shell 0.26.0 → 0.26.1
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 +88 -34
- package/dist/{PierreFilePreview-BKwQRLBv.js → PierreFilePreview-BSn2Dh41.js} +1 -1
- package/dist/{SpreadsheetPreview-gWWUaRgJ.js → SpreadsheetPreview-Cs6SPlHq.js} +2 -2
- package/dist/{WorkspaceFileBrowser-BLwOb5Br.js → WorkspaceFileBrowser-Du2JJJeH.js} +2 -2
- package/dist/{agents-route-Pu5E-8GT.js → agents-route-Dk7VmGeH.js} +2 -2
- package/dist/daemon-react-sdk.js +1 -1
- package/dist/{index-BSBUK1JZ.js → index-C7o_tVb8.js} +60955 -56828
- package/dist/index.js +3 -3
- package/dist/sw.js +1 -1
- package/dist/transcript.js +6903 -6937
- package/dist/types/App.d.ts +7 -1
- package/dist/types/ManagedStandaloneApp.d.ts +9 -0
- package/dist/types/components/ChatEditor.d.ts +5 -2
- package/dist/types/components/ChatPane.d.ts +4 -1
- package/dist/types/components/ContextCompressionFeedback.d.ts +2 -2
- package/dist/types/components/ContextUsagePopover.d.ts +2 -2
- package/dist/types/components/SessionPrBadge.d.ts +5 -3
- package/dist/types/components/SplitView.d.ts +4 -1
- package/dist/types/components/UnavailableModelTooltip.d.ts +12 -0
- package/dist/types/components/artifacts/ArtifactPanel.d.ts +4 -1
- package/dist/types/components/artifacts/SideTaskPanel.d.ts +4 -1
- package/dist/types/components/dialogs/ScheduledTasksDialog.d.ts +5 -1
- package/dist/types/components/dialogs/scheduledTasksSchedule.d.ts +1 -0
- package/dist/types/components/managed/ManagedArchivedSessions.d.ts +17 -0
- package/dist/types/components/managed/ManagedChildSessionView.d.ts +8 -0
- package/dist/types/components/managed/ManagedMcpManagerPage.d.ts +8 -0
- package/dist/types/components/managed/ManagedRecoveryPanel.d.ts +9 -0
- package/dist/types/components/managed/ManagedSessionActions.d.ts +19 -0
- package/dist/types/components/managed/ManagedSessionNavigationRow.d.ts +9 -0
- package/dist/types/components/managed/ManagedSessionsPage.d.ts +4 -2
- package/dist/types/components/managed/ManagedTaskPanel.d.ts +3 -1
- package/dist/types/components/managed/ManagedWorkspaceNavigation.d.ts +3 -1
- package/dist/types/components/managed/WorkspaceBindingCreator.d.ts +3 -1
- package/dist/types/components/managed/generated/managed-agent-api.d.ts +594 -34
- package/dist/types/components/managed/java-managed-agent-client.d.ts +67 -3
- package/dist/types/components/managed/java-managed-agent-event-projector.d.ts +1 -2
- package/dist/types/components/managed/java-managed-agent-provider.d.ts +2 -6
- package/dist/types/components/managed/managed-agent-provider.d.ts +75 -13
- package/dist/types/components/managed/managed-lifecycle-messages.d.ts +80 -0
- package/dist/types/components/managed/managed-lifecycle-messages.transcript-stub.d.ts +2 -0
- package/dist/types/components/managed/managed-mcp-command-storage.d.ts +16 -0
- package/dist/types/components/managed/managed-mcp-management-types.d.ts +8 -0
- package/dist/types/components/managed/managed-mcp-messages.d.ts +4 -0
- package/dist/types/components/managed/managed-mcp-messages.transcript-stub.d.ts +2 -0
- package/dist/types/components/managed/managed-recovery-handoff.d.ts +17 -0
- package/dist/types/components/managed/managed-recovery-messages.d.ts +31 -0
- package/dist/types/components/managed/managed-session-export.d.ts +21 -0
- package/dist/types/components/managed/use-managed-actions.d.ts +2 -1
- package/dist/types/components/managed/use-managed-context-compression.d.ts +23 -0
- package/dist/types/components/managed/use-managed-mcp-management.d.ts +25 -0
- package/dist/types/components/managed/use-managed-mcp.d.ts +1 -1
- package/dist/types/components/managed/use-managed-recovery.d.ts +14 -0
- package/dist/types/components/managed/use-managed-session-lifecycle.d.ts +26 -0
- package/dist/types/components/managed/use-managed-tasks.d.ts +3 -0
- package/dist/types/components/managed/use-managed-turn-cancel.d.ts +9 -0
- package/dist/types/components/mcp/McpDetails.d.ts +30 -0
- package/dist/types/components/messages/SettingsMessage.d.ts +7 -1
- package/dist/types/components/plugins/PluginManagerPage.d.ts +3 -1
- package/dist/types/components/sidebar/RecentSessions.d.ts +23 -0
- package/dist/types/components/sidebar/SessionDetailsTooltip.d.ts +2 -1
- package/dist/types/components/sidebar/StandaloneRecents.d.ts +1 -1
- package/dist/types/components/sidebar/WebShellSidebar.d.ts +10 -3
- package/dist/types/components/sidebar/WorkspaceMenu.d.ts +3 -0
- package/dist/types/components/sidebar/workspaceOrder.d.ts +12 -0
- package/dist/types/customization.d.ts +1 -0
- package/dist/types/daemon/index.d.ts +1 -1
- package/dist/types/daemon/workspace/index.d.ts +1 -1
- package/dist/types/daemon/workspace/types.d.ts +25 -0
- package/dist/types/daemon-react-sdk.d.ts +2 -0
- package/dist/types/hooks/composer-draft-attachments.d.ts +21 -0
- package/dist/types/hooks/composer-draft-session.d.ts +39 -0
- package/dist/types/hooks/useComposerCore.d.ts +1 -0
- package/dist/types/hooks/useContextUsageControls.d.ts +8 -3
- package/dist/types/index.d.ts +2 -1
- package/dist/types/main.d.ts +3 -1
- package/dist/types/settings.d.ts +4 -0
- package/dist/types/unavailableModels.d.ts +24 -0
- package/dist/types/utils/composerModels.d.ts +18 -0
- package/dist/types/utils/indexeddb.d.ts +17 -0
- package/dist/{useDaemonMidTurnInjected-BoG_wM2a.js → useDaemonMidTurnInjected-DGp6d4J1.js} +1455 -1224
- package/package.json +1 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ManagedAgentProvider, ManagedAgentSessionSummary } from './managed-agent-provider';
|
|
2
|
+
export declare function useManagedRecovery(provider: ManagedAgentProvider, clientId: string, summary: ManagedAgentSessionSummary | undefined, interactive: boolean, refreshSummary: () => Promise<ManagedAgentSessionSummary | undefined>): {
|
|
3
|
+
value: {
|
|
4
|
+
state: "recovering" | "awaiting_evidence" | "cleanup_pending" | "ready" | "operator_required";
|
|
5
|
+
reasonCode: string;
|
|
6
|
+
turnId?: string;
|
|
7
|
+
nextTurnAllowed: boolean;
|
|
8
|
+
actions: import("./generated/managed-agent-api").components["schemas"]["SessionRecoveryActions"];
|
|
9
|
+
nextRecheckAt?: number;
|
|
10
|
+
} | undefined;
|
|
11
|
+
busy: boolean;
|
|
12
|
+
error: string | undefined;
|
|
13
|
+
recheck: () => Promise<void>;
|
|
14
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ManagedAgentProvider, ManagedAgentSessionSummary, ManagedLifecycleAction, ManagedLifecycleKind } from './managed-agent-provider';
|
|
2
|
+
interface LifecycleIntent {
|
|
3
|
+
sessionId: string;
|
|
4
|
+
workspaceId?: string;
|
|
5
|
+
action: ManagedLifecycleAction;
|
|
6
|
+
kind: ManagedLifecycleKind | 'unarchive';
|
|
7
|
+
idempotencyKey?: string;
|
|
8
|
+
archiveKey?: string;
|
|
9
|
+
operationId?: string;
|
|
10
|
+
failed?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface ManagedLifecycleState {
|
|
13
|
+
action: ManagedLifecycleAction;
|
|
14
|
+
status: string;
|
|
15
|
+
busy: boolean;
|
|
16
|
+
canConfirm?: boolean;
|
|
17
|
+
kind?: LifecycleIntent['kind'];
|
|
18
|
+
code?: string;
|
|
19
|
+
}
|
|
20
|
+
export declare function useManagedSessionLifecycle(provider: ManagedAgentProvider, clientId: string, summaries: readonly ManagedAgentSessionSummary[], onChange: (sessionId: string, action?: ManagedLifecycleAction, workspaceId?: string) => void): {
|
|
21
|
+
states: Record<string, ManagedLifecycleState>;
|
|
22
|
+
blocked: (id?: string) => boolean;
|
|
23
|
+
start(session: ManagedAgentSessionSummary, action: ManagedLifecycleAction): void;
|
|
24
|
+
confirm(id: string): void;
|
|
25
|
+
};
|
|
26
|
+
export {};
|
|
@@ -5,6 +5,7 @@ export declare function useManagedTasks(provider: ManagedAgentProvider, clientId
|
|
|
5
5
|
data: import("./generated/managed-agent-api").components["schemas"]["WebShellTask"][];
|
|
6
6
|
hasMore: boolean;
|
|
7
7
|
nextCursor?: string | null;
|
|
8
|
+
activeChildCount?: number;
|
|
8
9
|
};
|
|
9
10
|
task: {
|
|
10
11
|
taskId: string;
|
|
@@ -20,6 +21,8 @@ export declare function useManagedTasks(provider: ManagedAgentProvider, clientId
|
|
|
20
21
|
outputCursor?: string;
|
|
21
22
|
artifactRefs: string[];
|
|
22
23
|
actionCapabilities: import("./generated/managed-agent-api").components["schemas"]["TaskActionCapability"][];
|
|
24
|
+
stopRequested?: boolean;
|
|
25
|
+
approvalMode?: "default" | "auto-edit" | "yolo";
|
|
23
26
|
} | undefined;
|
|
24
27
|
selectedId: string | undefined;
|
|
25
28
|
events: {
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ManagedAgentProvider, ManagedAgentSessionSummary } from './managed-agent-provider';
|
|
2
|
+
export declare function useManagedTurnCancel(provider: ManagedAgentProvider, clientId: string, sessionId: string | undefined, summary: ManagedAgentSessionSummary | undefined, interactive: boolean, refreshSummary: () => Promise<ManagedAgentSessionSummary | undefined>): {
|
|
3
|
+
request: () => Promise<void>;
|
|
4
|
+
retry: () => Promise<void>;
|
|
5
|
+
status: "failed" | "stopping" | "unconfirmed" | undefined;
|
|
6
|
+
error: string | undefined;
|
|
7
|
+
busy: boolean;
|
|
8
|
+
pending: boolean;
|
|
9
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export declare function McpDetailField({ label, value, }: {
|
|
3
|
+
label: string;
|
|
4
|
+
value: string;
|
|
5
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export declare function McpToolDetail({ tool, }: {
|
|
7
|
+
tool: {
|
|
8
|
+
description?: string;
|
|
9
|
+
schema?: unknown;
|
|
10
|
+
annotations?: Record<string, unknown>;
|
|
11
|
+
isValid?: boolean;
|
|
12
|
+
invalidReason?: string;
|
|
13
|
+
};
|
|
14
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare function McpResourceDetail({ resource, }: {
|
|
16
|
+
resource: {
|
|
17
|
+
uri: string;
|
|
18
|
+
name?: string;
|
|
19
|
+
title?: string;
|
|
20
|
+
mimeType?: string;
|
|
21
|
+
size?: number;
|
|
22
|
+
description?: string;
|
|
23
|
+
};
|
|
24
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
export declare function McpServerCard({ name, description, status, onOpen, }: {
|
|
26
|
+
name: string;
|
|
27
|
+
description?: string;
|
|
28
|
+
status: ReactNode;
|
|
29
|
+
onOpen: () => void;
|
|
30
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -10,6 +10,12 @@ interface SettingsMessageProps {
|
|
|
10
10
|
settingsState: SettingsMessageSettingsState;
|
|
11
11
|
presentation?: WebShellSettingsOptions;
|
|
12
12
|
onLanguageChange: (language: WebShellLanguage, scope: Scope) => void;
|
|
13
|
+
/**
|
|
14
|
+
* Applies a model output language through `/language output`. Resolves to
|
|
15
|
+
* whether the value was applied, so a rejected commit can restore the saved
|
|
16
|
+
* value instead of leaving an unsaved draft on screen.
|
|
17
|
+
*/
|
|
18
|
+
onOutputLanguageChange: (language: string) => Promise<boolean> | boolean;
|
|
13
19
|
onSubDialog: (settingKey: string, scope: Scope) => void;
|
|
14
20
|
onThemeChange: (theme: WebShellTheme) => void;
|
|
15
21
|
chatWidthMode: ChatWidthMode;
|
|
@@ -45,5 +51,5 @@ export type FlatRow = {
|
|
|
45
51
|
localKey: 'chatWidth' | 'browserNotifications';
|
|
46
52
|
};
|
|
47
53
|
export declare function nextSettingIdx(rows: FlatRow[], current: number, dir: 1 | -1): number;
|
|
48
|
-
export declare function SettingsMessage({ settingsState, presentation, onLanguageChange, onSubDialog, onThemeChange, chatWidthMode, onChatWidthModeChange, modelManagementSectionProps, connections, embedded, initialCategory, }: SettingsMessageProps): import("react/jsx-runtime").JSX.Element;
|
|
54
|
+
export declare function SettingsMessage({ settingsState, presentation, onLanguageChange, onOutputLanguageChange, onSubDialog, onThemeChange, chatWidthMode, onChatWidthModeChange, modelManagementSectionProps, connections, embedded, initialCategory, }: SettingsMessageProps): import("react/jsx-runtime").JSX.Element;
|
|
49
55
|
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type Ref } from 'react';
|
|
2
|
+
import { type ManagedMcpManagerPageProps } from '../managed/ManagedMcpManagerPage';
|
|
2
3
|
type PluginTab = 'extensions' | 'mcp' | 'skills' | 'agents';
|
|
3
4
|
interface PluginManagerPageProps {
|
|
4
5
|
onClose: () => void;
|
|
@@ -8,6 +9,7 @@ interface PluginManagerPageProps {
|
|
|
8
9
|
skillsWorkspaceCwd?: string;
|
|
9
10
|
onSkillsWorkspaceChange?: (cwd: string) => void;
|
|
10
11
|
managedSkills?: boolean;
|
|
12
|
+
managedMcp?: ManagedMcpManagerPageProps;
|
|
11
13
|
}
|
|
12
|
-
export declare function PluginManagerPage({ onClose, onUseSkill, initialFocusRef, initialTab, skillsWorkspaceCwd, onSkillsWorkspaceChange, managedSkills, }: PluginManagerPageProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare function PluginManagerPage({ onClose, onUseSkill, initialFocusRef, initialTab, skillsWorkspaceCwd, onSkillsWorkspaceChange, managedSkills, managedMcp, }: PluginManagerPageProps): import("react/jsx-runtime").JSX.Element;
|
|
13
15
|
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { DaemonClient, DaemonSessionSummary, DaemonWorkspaceCapability } from '@qwen-code/sdk/daemon';
|
|
3
|
+
export interface RecentSessionEntry {
|
|
4
|
+
session: DaemonSessionSummary;
|
|
5
|
+
workspaceCwd?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function sortRecentSessions(entries: RecentSessionEntry[]): RecentSessionEntry[];
|
|
8
|
+
interface RecentSessionsProps {
|
|
9
|
+
client: DaemonClient;
|
|
10
|
+
workspaces: DaemonWorkspaceCapability[];
|
|
11
|
+
includeStandalone: boolean;
|
|
12
|
+
sourceMetadataEnabled: boolean;
|
|
13
|
+
organizationEnabled: boolean;
|
|
14
|
+
currentSessionId?: string;
|
|
15
|
+
refreshKey: number;
|
|
16
|
+
refreshPaused?: boolean;
|
|
17
|
+
onNewSession: () => void;
|
|
18
|
+
newSessionDisabled: boolean;
|
|
19
|
+
renderSession: (entry: RecentSessionEntry) => ReactNode;
|
|
20
|
+
onVisibleRowsChange?: (keys: string) => void;
|
|
21
|
+
}
|
|
22
|
+
export declare function RecentSessions({ client, workspaces, includeStandalone, sourceMetadataEnabled, organizationEnabled, currentSessionId, refreshKey, refreshPaused, renderSession, onVisibleRowsChange, onNewSession, newSessionDisabled, }: RecentSessionsProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export {};
|
|
@@ -5,6 +5,7 @@ interface SessionDetailsTooltipProps {
|
|
|
5
5
|
label: string;
|
|
6
6
|
time: string;
|
|
7
7
|
completedUnread: boolean;
|
|
8
|
+
statusLabel?: string;
|
|
8
9
|
workspaceLabel?: string;
|
|
9
10
|
openOnClick?: boolean;
|
|
10
11
|
ownerToken?: string;
|
|
@@ -13,5 +14,5 @@ interface SessionDetailsTooltipProps {
|
|
|
13
14
|
side?: 'right' | 'bottom';
|
|
14
15
|
children: ReactElement;
|
|
15
16
|
}
|
|
16
|
-
export declare function SessionDetailsTooltip({ session, label, time, completedUnread, workspaceLabel, openOnClick, ownerToken, open: controlledOpen, onOpenChange, side, children, }: SessionDetailsTooltipProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export declare function SessionDetailsTooltip({ session, label, time, completedUnread, statusLabel, workspaceLabel, openOnClick, ownerToken, open: controlledOpen, onOpenChange, side, children, }: SessionDetailsTooltipProps): import("react/jsx-runtime").JSX.Element;
|
|
17
18
|
export {};
|
|
@@ -18,7 +18,7 @@ interface StandaloneRecentsProps {
|
|
|
18
18
|
onUnarchive?: () => void;
|
|
19
19
|
onDelete: () => void;
|
|
20
20
|
}) => ReactNode;
|
|
21
|
-
onLoadSession: (sessionId: string) => Promise<void> | void;
|
|
21
|
+
onLoadSession: (sessionId: string, displayName?: string) => Promise<void> | void;
|
|
22
22
|
onRenameSession?: (sessionId: string, displayName: string) => void;
|
|
23
23
|
onMutated?: () => void;
|
|
24
24
|
onStatusChange?: (status: {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
2
|
import { type DaemonWorkspaceCapability } from '@qwen-code/sdk/daemon';
|
|
3
|
+
import type { ManagedArchivedSessionsStatus } from '../managed/ManagedArchivedSessions';
|
|
3
4
|
import { type WebShellTheme } from '../../themeContext';
|
|
4
5
|
import { type WorkspaceManagementTarget, type WorkspaceOverviewItem } from './workspaceOverviewModel';
|
|
5
6
|
export declare const SIDEBAR_RAIL_WIDTH = 56;
|
|
@@ -39,12 +40,15 @@ export interface WebShellSidebarSessionActionsOptions {
|
|
|
39
40
|
/** Session action items to show. Defaults to all. */
|
|
40
41
|
items?: readonly WebShellSidebarSessionActionItem[];
|
|
41
42
|
/**
|
|
42
|
-
* Which items appear as inline buttons (on hover).
|
|
43
|
+
* Which items appear as inline buttons on standard session rows (on hover).
|
|
44
|
+
* Defaults to ['pin'];
|
|
43
45
|
* archive stays in the dropdown so a stray click on the hover slot cannot
|
|
44
46
|
* archive a session.
|
|
45
47
|
* Only items that also pass their built-in visibility condition are rendered.
|
|
46
48
|
* Only items with working inline handlers are accepted
|
|
47
49
|
* (details/group/archive are dropdown-only).
|
|
50
|
+
* Recent sessions use dedicated Pin and Archive buttons instead of this
|
|
51
|
+
* layout; the items policy still controls whether those actions are enabled.
|
|
48
52
|
*/
|
|
49
53
|
inlineItems?: readonly WebShellSidebarSessionInlineActionItem[];
|
|
50
54
|
}
|
|
@@ -139,6 +143,9 @@ interface WebShellSidebarProps {
|
|
|
139
143
|
sessionContent?: ReactNode;
|
|
140
144
|
sessionHeader?: ReactNode;
|
|
141
145
|
managedWorkspaces?: ReactNode;
|
|
146
|
+
managedArchivedSessions?: ManagedArchivedSessionsStatus & {
|
|
147
|
+
content: ReactNode;
|
|
148
|
+
};
|
|
142
149
|
onSearchQueryChange?: (query: string) => void;
|
|
143
150
|
/** Selection styling only; the attached session still owns its actions. */
|
|
144
151
|
currentSessionActive?: boolean;
|
|
@@ -166,7 +173,7 @@ interface WebShellSidebarProps {
|
|
|
166
173
|
/** Start a new session that works in an isolated git worktree. */
|
|
167
174
|
onNewWorktreeSession?: (workspaceCwd?: string) => Promise<boolean> | boolean | void;
|
|
168
175
|
projectFeaturesEnabled?: boolean;
|
|
169
|
-
onLoadStandaloneSession?: (sessionId: string) => Promise<void> | void;
|
|
176
|
+
onLoadStandaloneSession?: (sessionId: string, displayName?: string) => Promise<void> | void;
|
|
170
177
|
onStandaloneNotice?: (message: string) => void;
|
|
171
178
|
}
|
|
172
|
-
export declare function WebShellSidebar({ collapsed, layout, activePage, containerWidth, onOpenHome, onCollapsedChange, onOpenSettings, onOpenAgents, onOpenPlugins, onOpenChannels, onOpenLive, onLiveVoiceSlotChange, onOpenManagedSessions, onOpenDaemonStatus, onOpenScheduledTasks, onOpenWorkflows, onOpenGoals, onOpenSessions, canOpenSessionsOverview, onOpenWorkspacesOverview, onOpenSplitView, canOpenSplitView, onNewSession, onNewStandaloneSession, onLoadSession, onOpenHostSession, onSelectCurrentSession, onSessionRenameConfirmed, onSessionsDeleted, onError, theme, onThemeChange, mobileOpen, onMobileClose, selectedWorkspaceCwd, onSelectWorkspace, onOpenGitDiff, onOpenCommit, onOpenAddWorkspace, workspaces: providedWorkspaces, lockedWorkspaceCwd, lockedWorkspace: lockedWorkspaceOptions, branding, primaryNav: primaryNavOptions, sessionContent, sessionHeader, managedWorkspaces, onSearchQueryChange, currentSessionActive, showSessionSourceSwitch, showLive, hideProjectHeader, sessionActions: sessionActionsOptions, footer, workspaceOverview, onOpenWorkspaceManagement, onNewWorktreeSession, projectFeaturesEnabled, onLoadStandaloneSession, onStandaloneNotice, }: WebShellSidebarProps): import("react/jsx-runtime").JSX.Element;
|
|
179
|
+
export declare function WebShellSidebar({ collapsed, layout, activePage, containerWidth, onOpenHome, onCollapsedChange, onOpenSettings, onOpenAgents, onOpenPlugins, onOpenChannels, onOpenLive, onLiveVoiceSlotChange, onOpenManagedSessions, onOpenDaemonStatus, onOpenScheduledTasks, onOpenWorkflows, onOpenGoals, onOpenSessions, canOpenSessionsOverview, onOpenWorkspacesOverview, onOpenSplitView, canOpenSplitView, onNewSession, onNewStandaloneSession, onLoadSession, onOpenHostSession, onSelectCurrentSession, onSessionRenameConfirmed, onSessionsDeleted, onError, theme, onThemeChange, mobileOpen, onMobileClose, selectedWorkspaceCwd, onSelectWorkspace, onOpenGitDiff, onOpenCommit, onOpenAddWorkspace, workspaces: providedWorkspaces, lockedWorkspaceCwd, lockedWorkspace: lockedWorkspaceOptions, branding, primaryNav: primaryNavOptions, sessionContent, sessionHeader, managedWorkspaces, managedArchivedSessions, onSearchQueryChange, currentSessionActive, showSessionSourceSwitch, showLive, hideProjectHeader, sessionActions: sessionActionsOptions, footer, workspaceOverview, onOpenWorkspaceManagement, onNewWorktreeSession, projectFeaturesEnabled, onLoadStandaloneSession, onStandaloneNotice, }: WebShellSidebarProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -19,6 +19,9 @@ export interface WorkspaceMenuActions {
|
|
|
19
19
|
openTerminal?: () => void;
|
|
20
20
|
newSession?: () => void;
|
|
21
21
|
newWorktreeSession?: () => void;
|
|
22
|
+
createGroup?: () => void;
|
|
23
|
+
moveUp?: () => void;
|
|
24
|
+
moveDown?: () => void;
|
|
22
25
|
openManagement?: (target: WorkspaceManagementTarget) => void;
|
|
23
26
|
reload?: () => void;
|
|
24
27
|
remove?: () => void;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare function readWorkspaceOrder(scope: string): string[];
|
|
2
|
+
export declare function writeWorkspaceOrder(scope: string, cwds: readonly string[]): void;
|
|
3
|
+
/**
|
|
4
|
+
* Applies a stored cwd order. Known entries sort by their stored rank; entries
|
|
5
|
+
* the order does not mention (a workspace added since it was written) keep
|
|
6
|
+
* their incoming relative order after them, so a new workspace appends.
|
|
7
|
+
*/
|
|
8
|
+
export declare function orderWorkspaces<T extends {
|
|
9
|
+
cwd: string;
|
|
10
|
+
}>(workspaces: readonly T[], order: readonly string[]): T[];
|
|
11
|
+
/** Swaps `cwd` with its neighbour; `undefined` when the move is out of range. */
|
|
12
|
+
export declare function moveWorkspace(orderedCwds: readonly string[], cwd: string, direction: -1 | 1): string[] | undefined;
|
|
@@ -510,6 +510,7 @@ export type FooterRenderer = ComponentType<WebShellFooterRenderInfo>;
|
|
|
510
510
|
* resolved UI language. Return phrases to override the built-in defaults, an
|
|
511
511
|
* empty array to hide the phrase entirely, or `undefined`/`null` to fall back
|
|
512
512
|
* to the built-in defaults for that language.
|
|
513
|
+
* `ui.accessibility.enableLoadingPhrases: false` hides even custom phrases.
|
|
513
514
|
*/
|
|
514
515
|
export type LoadingPhrasesResolver = (language: string) => readonly string[] | undefined | null;
|
|
515
516
|
export interface WebShellCustomization {
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
export { DaemonSessionProvider, useDaemonActions, useDaemonActiveTodoList, useDaemonConnection, useDaemonPendingPermissions, useDaemonPromptStatus, useDaemonSessionNotices, useDaemonSessionOwnerGuard, useDaemonStreamingState, useDaemonSession, useDaemonTranscriptBlocks, useDaemonTranscriptHistory, useDaemonTranscriptState, useDaemonTranscriptStore, useDaemonTurnNavigationState, useDaemonTurnNavigationStore, useDaemonWorkspaceEventSignals, extractDaemonTodosFromToolBlock, hasDaemonActiveTodos, isDaemonSubAgentToolBlock, parseDaemonTodoItemsFromEntries, selectDaemonActiveTodoList, selectDaemonLatestTodoList, selectDaemonPendingPermissions, selectDaemonSubAgentToolBlocks, selectDaemonStreamingState, selectDaemonTodoLists, selectDaemonTranscriptStreamingState, isMissingSessionHttpStatus, toDaemonPromptContent, } from './session/index.js';
|
|
7
7
|
export type { DaemonCommandInfo, DaemonConnectionState, DaemonConnectionStatus, DaemonModelInfo, DaemonProductSessionContext, DaemonStandaloneConnectionState, DaemonNoticeCategory, DaemonNoticeOperation, DaemonNoticeSeverity, DaemonPromptFile, DaemonPromptImage, DaemonPromptStatus, DaemonReasoningControls, DaemonSessionActions, DaemonSessionContextValue, DaemonSessionNotice, DaemonSessionOwnerGuard, DaemonSessionOwnerSnapshot, DaemonSessionProviderProps, DaemonTranscriptHistory, DaemonPromptAdmission, DaemonProvisionalTurn, DaemonSelectedTurnState, DaemonTurnIndexPage, DaemonTurnLocation, DaemonTurnNavigationClient, DaemonTurnNavigationError, DaemonTurnNavigationSession, DaemonTurnNavigationSnapshot, DaemonTurnNavigationStore, HistoricalTranscriptPage, HistoricalTranscriptRange, TranscriptBoundary, DaemonTokenUsage, DaemonTodoItem, DaemonTodoList, DaemonTodoPriority, DaemonTodoStatus, DaemonStreamingState, DaemonWorkspaceEventSignals, PendingPromptActionOptions, SendPromptOptions, SubmitPromptOptions, SubmitPromptResult, } from './session/index.js';
|
|
8
8
|
export { DaemonWorkspaceProvider, useDaemonWorkspace, useDaemonWorkspaceActions, useOptionalDaemonWorkspace, useDaemonAgents, useDaemonAuth, useDaemonChannels, useDaemonDiagnostics, useDaemonFiles, useDaemonGlob, useDaemonMcp, useDaemonMemory, useDaemonResource, useDaemonSessions, useDaemonSkills, useDaemonStatusReport, useDaemonUsageDashboard, useDaemonTools, useDaemonSettings, useDaemonProviders, } from './workspace/index.js';
|
|
9
|
-
export type { DaemonDirectoryEntry, DaemonDirectoryListing, DaemonFileStat, DaemonGlobOptions, DaemonGlobResult, DaemonGoal, DaemonGoalList, DaemonScheduledTask, DaemonScheduledTaskRun, DaemonCreateScheduledTaskRequest, DaemonUpdateScheduledTaskRequest, DaemonResourceOptions, DaemonChannelPairingActions, DaemonChannelsResource, DaemonStatusReportOptions, DaemonUsageDashboardOptions, DaemonWorkspaceActions, DaemonWorkspaceContextValue, DaemonWorkspaceProviderProps, DaemonWorkspaceStatus, ResourceResult, ResourceState, } from './workspace/index.js';
|
|
9
|
+
export type { DaemonDirectoryEntry, DaemonDirectoryListing, DaemonFileStat, DaemonGlobOptions, DaemonGlobResult, DaemonGoal, DaemonGoalList, DaemonScheduledTask, DaemonScheduledTaskGateStatus, DaemonScheduledTaskRun, DaemonCreateScheduledTaskRequest, DaemonUpdateScheduledTaskRequest, DaemonResourceOptions, DaemonChannelPairingActions, DaemonChannelsResource, DaemonStatusReportOptions, DaemonUsageDashboardOptions, DaemonWorkspaceActions, DaemonWorkspaceContextValue, DaemonWorkspaceProviderProps, DaemonWorkspaceStatus, ResourceResult, ResourceState, } from './workspace/index.js';
|
|
10
10
|
export { useDaemonFollowupSuggestion, type UseDaemonFollowupSuggestionReturn, } from './useDaemonFollowupSuggestion.js';
|
|
11
11
|
export { useDaemonMidTurnInjected } from './useDaemonMidTurnInjected.js';
|
|
12
12
|
export { getPendingPromptVersion, getPendingPromptEvents, consumePendingPromptEvents, subscribePendingPromptEvents, subscribePendingPromptVersion, } from './pendingPromptVersion.js';
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
export { DaemonWorkspaceProvider, useDaemonWorkspace, useDaemonWorkspaceActions, useOptionalDaemonWorkspace, } from './DaemonWorkspaceProvider.js';
|
|
7
|
-
export type { DaemonDirectoryEntry, DaemonDirectoryListing, DaemonFileStat, DaemonGlobOptions, DaemonGlobResult, DaemonGoal, DaemonGoalList, DaemonScheduledTask, DaemonScheduledTaskRun, DaemonCreateScheduledTaskRequest, DaemonUpdateScheduledTaskRequest, DaemonResourceOptions, DaemonChannelPairingActions, DaemonChannelsResource, DaemonWorkspaceActions, DaemonWorkspaceContextValue, DaemonWorkspaceProviderProps, DaemonWorkspaceStatus, ResourceResult, ResourceState, } from './types.js';
|
|
7
|
+
export type { DaemonDirectoryEntry, DaemonDirectoryListing, DaemonFileStat, DaemonGlobOptions, DaemonGlobResult, DaemonGoal, DaemonGoalList, DaemonScheduledTask, DaemonScheduledTaskGateStatus, DaemonScheduledTaskRun, DaemonCreateScheduledTaskRequest, DaemonUpdateScheduledTaskRequest, DaemonResourceOptions, DaemonChannelPairingActions, DaemonChannelsResource, DaemonWorkspaceActions, DaemonWorkspaceContextValue, DaemonWorkspaceProviderProps, DaemonWorkspaceStatus, ResourceResult, ResourceState, } from './types.js';
|
|
8
8
|
export { useDaemonAgents, useDaemonAuth, useDaemonChannels, useDaemonDiagnostics, useDaemonFiles, useDaemonGlob, useDaemonMcp, useDaemonMemory, useDaemonResource, useDaemonSessions, useDaemonSkills, useDaemonStatusReport, useDaemonUsageDashboard, useDaemonTools, useDaemonSettings, useDaemonProviders, } from './hooks/index.js';
|
|
9
9
|
export type { DaemonStatusReportOptions } from './hooks/index.js';
|
|
10
10
|
export type { DaemonUsageDashboardOptions } from './hooks/index.js';
|
|
@@ -137,12 +137,26 @@ export interface DaemonScheduledTaskRun {
|
|
|
137
137
|
sessionId?: string;
|
|
138
138
|
/** The daemon could not create the fresh session requested for this run. */
|
|
139
139
|
sessionDispatchFailed?: boolean;
|
|
140
|
+
/** How the task's gate decided this fire; quiet fires are never recorded. */
|
|
141
|
+
gate?: 'delivered' | 'failed' | 'blocked';
|
|
140
142
|
/** READ-ONLY legacy compat: a pre-removal version stamped this on a fire whose
|
|
141
143
|
* precondition withheld the prompt. Never written now, but kept so the UI can
|
|
142
144
|
* still mark such stored entries "skipped" instead of showing them as ordinary
|
|
143
145
|
* successful runs. Absent = a real dispatched run. */
|
|
144
146
|
withheld?: boolean;
|
|
145
147
|
}
|
|
148
|
+
/** Summary of a gated task's recent gate runs, as the daemon keeps it. */
|
|
149
|
+
export interface DaemonScheduledTaskGateStatus {
|
|
150
|
+
/** Fire time (epoch ms) of the most recent gate run. */
|
|
151
|
+
lastAt: number;
|
|
152
|
+
lastOutcome: 'quiet' | 'delivered' | 'failed' | 'blocked';
|
|
153
|
+
/** Quiet fires since the last delivery. */
|
|
154
|
+
quietSinceDelivery: number;
|
|
155
|
+
lastDeliveredAt?: number;
|
|
156
|
+
/** Failed and blocked fires since the last quiet or delivered one. */
|
|
157
|
+
consecutiveFailures: number;
|
|
158
|
+
lastError?: string;
|
|
159
|
+
}
|
|
146
160
|
export interface DaemonScheduledTask {
|
|
147
161
|
id: string;
|
|
148
162
|
name: string | null;
|
|
@@ -150,6 +164,12 @@ export interface DaemonScheduledTask {
|
|
|
150
164
|
prompt: string;
|
|
151
165
|
recurring: boolean;
|
|
152
166
|
enabled: boolean;
|
|
167
|
+
/** Shell command the owning session runs at each fire outside the model;
|
|
168
|
+
* silence skips the fire, output wakes the session. Null for an ungated task.
|
|
169
|
+
* Views carry it whether or not the daemon advertises `scheduled_task_gate`;
|
|
170
|
+
* the capability says whether POST and PATCH accept it. */
|
|
171
|
+
gate?: string | null;
|
|
172
|
+
gateStatus?: DaemonScheduledTaskGateStatus | null;
|
|
153
173
|
createdAt: number;
|
|
154
174
|
lastFiredAt: number | null;
|
|
155
175
|
/** Next scheduled fire (epoch ms), or null for a disabled task. A GET-time
|
|
@@ -193,6 +213,9 @@ export interface DaemonCreateScheduledTaskRequest {
|
|
|
193
213
|
modelServiceId?: string;
|
|
194
214
|
/** Named group for fresh per-run sessions. */
|
|
195
215
|
groupId?: string;
|
|
216
|
+
/** Gate command; only to a daemon advertising `scheduled_task_gate`, and
|
|
217
|
+
* only on a recurring task. */
|
|
218
|
+
gate?: string;
|
|
196
219
|
}
|
|
197
220
|
/** Partial update. `name: null` (or '') clears the name. Omitted fields are
|
|
198
221
|
* left unchanged. */
|
|
@@ -207,6 +230,8 @@ export interface DaemonUpdateScheduledTaskRequest {
|
|
|
207
230
|
modelServiceId?: string | null;
|
|
208
231
|
/** Null clears the selected group. */
|
|
209
232
|
groupId?: string | null;
|
|
233
|
+
/** Null (or '') removes the gate. */
|
|
234
|
+
gate?: string | null;
|
|
210
235
|
}
|
|
211
236
|
export interface DaemonAddWorkspaceResult {
|
|
212
237
|
id: string;
|
|
@@ -223,6 +223,8 @@ DaemonGoal,
|
|
|
223
223
|
DaemonGoalList,
|
|
224
224
|
/** A durable scheduled task (cron) as returned by the daemon. */
|
|
225
225
|
DaemonScheduledTask,
|
|
226
|
+
/** Summary of a gated task's recent gate runs. */
|
|
227
|
+
DaemonScheduledTaskGateStatus,
|
|
226
228
|
/** One recorded fire in a scheduled task's run history. */
|
|
227
229
|
DaemonScheduledTaskRun,
|
|
228
230
|
/** Request body for creating a scheduled task. */
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { PromptFile, PromptImage } from '../adapters/promptTypes';
|
|
2
|
+
export interface ComposerDraftAttachments {
|
|
3
|
+
images: PromptImage[];
|
|
4
|
+
files: PromptFile[];
|
|
5
|
+
}
|
|
6
|
+
export interface ComposerDraftAttachmentStore {
|
|
7
|
+
save(key: string, attachments: ComposerDraftAttachments): Promise<boolean>;
|
|
8
|
+
load(key: string): Promise<ComposerDraftAttachments | undefined>;
|
|
9
|
+
delete(key: string): Promise<boolean>;
|
|
10
|
+
}
|
|
11
|
+
export declare function subtractDraftAttachments(attachments: ComposerDraftAttachments, overlap: ComposerDraftAttachments): ComposerDraftAttachments;
|
|
12
|
+
/**
|
|
13
|
+
* Combines what the composer already holds with what the store returned.
|
|
14
|
+
*
|
|
15
|
+
* A restore resolves after other code may have staged attachments for the same
|
|
16
|
+
* draft (a cancelled queued prompt, a host-driven restore). Keep both sides;
|
|
17
|
+
* a filename collision does not mean the payloads are the same.
|
|
18
|
+
* Returns `current` unchanged when the store adds nothing.
|
|
19
|
+
*/
|
|
20
|
+
export declare function mergeDraftAttachments(current: ComposerDraftAttachments, stored: ComposerDraftAttachments): ComposerDraftAttachments;
|
|
21
|
+
export declare function createComposerDraftAttachmentStore(idb?: IDBFactory | undefined): ComposerDraftAttachmentStore | null;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { DaemonInputAnnotation } from '@qwen-code/sdk/daemon';
|
|
2
|
+
import type { WebShellComposerTag } from '../customization';
|
|
3
|
+
import type { InlineTagPlacement } from './useComposerCore';
|
|
4
|
+
import { type ComposerDraftAttachments, type ComposerDraftAttachmentStore } from './composer-draft-attachments';
|
|
5
|
+
export interface ComposerDraftContent {
|
|
6
|
+
text: string;
|
|
7
|
+
inlineTags: InlineTagPlacement[];
|
|
8
|
+
tags: WebShellComposerTag[];
|
|
9
|
+
inputAnnotations: DaemonInputAnnotation[];
|
|
10
|
+
}
|
|
11
|
+
type DraftChange = 'content' | 'attachments' | 'clear';
|
|
12
|
+
type Listener = (change: DraftChange) => void;
|
|
13
|
+
export declare function findComposerDraftSession(key: string | undefined): ComposerDraftSession | undefined;
|
|
14
|
+
export declare function getComposerDraftSession(key: string, content: ComposerDraftContent, store: ComposerDraftAttachmentStore | null): ComposerDraftSession;
|
|
15
|
+
export declare class ComposerDraftSession {
|
|
16
|
+
readonly key: string;
|
|
17
|
+
content: ComposerDraftContent;
|
|
18
|
+
private readonly store;
|
|
19
|
+
attachments: ComposerDraftAttachments;
|
|
20
|
+
loading: boolean;
|
|
21
|
+
loaded: Promise<void>;
|
|
22
|
+
private restored;
|
|
23
|
+
private pending;
|
|
24
|
+
private removed;
|
|
25
|
+
private discardStored;
|
|
26
|
+
private ingestionCounts;
|
|
27
|
+
get pendingBatches(): number;
|
|
28
|
+
get restoring(): boolean;
|
|
29
|
+
constructor(key: string, content: ComposerDraftContent, store: ComposerDraftAttachmentStore | null);
|
|
30
|
+
subscribe(listener: Listener): () => void;
|
|
31
|
+
setIngestionCount(listener: Listener, count: number): void;
|
|
32
|
+
private release;
|
|
33
|
+
private emit;
|
|
34
|
+
setContent(content: ComposerDraftContent, source?: Listener): void;
|
|
35
|
+
private persist;
|
|
36
|
+
setAttachments(attachments: ComposerDraftAttachments, clear?: boolean): void;
|
|
37
|
+
restoreAttachments(): void;
|
|
38
|
+
}
|
|
39
|
+
export {};
|
|
@@ -128,6 +128,7 @@ export interface UseComposerCoreOptions {
|
|
|
128
128
|
editorTheme: Parameters<typeof EditorView.theme>[0];
|
|
129
129
|
}
|
|
130
130
|
export declare function getComposerDraftStorageKey(sessionId: string | undefined, workspaceCwd: string | undefined): string | undefined;
|
|
131
|
+
export declare function captureComposerDraftGuard(storageKey: string | undefined): () => boolean;
|
|
131
132
|
export declare function clearComposerDraftIfMatches(storageKey: string | undefined, text: string): void;
|
|
132
133
|
export interface SearchState {
|
|
133
134
|
searchMode: boolean;
|
|
@@ -5,12 +5,17 @@ type CompressionResult = {
|
|
|
5
5
|
} | {
|
|
6
6
|
kind: 'failed' | 'cancelled' | 'refreshFailed' | 'interrupted';
|
|
7
7
|
};
|
|
8
|
-
export interface
|
|
9
|
-
sessionId: string;
|
|
8
|
+
export interface ContextCompressionControls {
|
|
10
9
|
canCompress: boolean;
|
|
11
10
|
compressing: boolean;
|
|
12
|
-
result?: CompressionResult
|
|
11
|
+
result?: CompressionResult | {
|
|
12
|
+
kind: 'compressed' | 'noop';
|
|
13
|
+
};
|
|
13
14
|
compress(): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
export interface ContextUsageControls extends ContextCompressionControls {
|
|
17
|
+
sessionId: string;
|
|
18
|
+
result?: CompressionResult;
|
|
14
19
|
captureOwner(): DaemonSessionOwnerSnapshot;
|
|
15
20
|
getContextUsage: DaemonSessionActions['getContextUsage'];
|
|
16
21
|
}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export type { WebShellTranscriptProps } from './components/WebShellTranscript';
|
|
|
8
8
|
export * from './daemon-react-sdk';
|
|
9
9
|
export type { WebShellApprovalMode } from './utils/planMode';
|
|
10
10
|
export type { WebShellBrowserNotificationsOptions } from './browser-turn-notifications';
|
|
11
|
-
export { JavaManagedAgentClient, JavaManagedAgentHttpError, type JavaAgentCommandAdmission, type JavaAgentEnvironment, type JavaAgentEvent, type JavaAgentSession, type JavaAgentTranscript, type JavaAgentTurn, type JavaManagedAgentClientOptions, } from './components/managed/java-managed-agent-client';
|
|
11
|
+
export { JavaManagedAgentClient, JavaManagedAgentHttpError, type JavaAgentCommandAdmission, type JavaAgentTurnAdmission, type JavaAgentEnvironment, type JavaAgentEvent, type JavaAgentSession, type JavaAgentTranscript, type JavaAgentTurn, type JavaManagedAgentClientOptions, } from './components/managed/java-managed-agent-client';
|
|
12
12
|
export { createJavaManagedAgentProvider, type JavaManagedAgentProviderOptions, } from './components/managed/java-managed-agent-provider';
|
|
13
13
|
export { ManagedAgentWebShell, type ManagedAgentWebShellProps, } from './ManagedAgentWebShell';
|
|
14
14
|
export type { ManagedArtifact, ManagedArtifactPage, ManagedArtifactResponse, ManagedArtifactSave, ManagedToolResult, ManagedToolResultReader, ManagedToolResultResponse, } from './components/managed/managed-tool-result-types';
|
|
@@ -82,6 +82,7 @@ export type { DatasetCell, EchartsFullDataBlockProps, EchartsFullDataOption, Ech
|
|
|
82
82
|
export { WEB_SHELL_SETTING_ITEM_IDS } from './settings';
|
|
83
83
|
export type { WebShellSettingItemId, WebShellSettingsOptions, } from './settings';
|
|
84
84
|
export type { WebShellModelManagementOptions } from './modelManagement';
|
|
85
|
+
export type { WebShellUnavailableModel, WebShellUnavailableModelTooltipHandle, WebShellUnavailableModelTooltipInfo, WebShellUnavailableModelTooltipMount, } from './unavailableModels';
|
|
85
86
|
export type { WebShellMessageNavigationRequest, WebShellMessageNavigationResult, } from './hooks/useMessageNavigation';
|
|
86
87
|
export { highlightCode } from './components/messages/codeHighlighter';
|
|
87
88
|
export type { CodeHighlightRequest } from './components/messages/codeHighlighter';
|
package/dist/types/main.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import './styles/globals.css';
|
|
2
|
+
import type { ManagedAgentProvider } from './components/managed/managed-agent-provider';
|
|
2
3
|
import 'katex/dist/katex.min.css';
|
|
3
4
|
import './styles/standalone.css';
|
|
4
|
-
export declare function StandaloneApp({ daemonToken }: {
|
|
5
|
+
export declare function StandaloneApp({ daemonToken, managedAgentProvider: providedManagedAgentProvider, }: {
|
|
5
6
|
daemonToken?: string;
|
|
7
|
+
managedAgentProvider?: ManagedAgentProvider;
|
|
6
8
|
}): import("react/jsx-runtime").JSX.Element;
|
package/dist/types/settings.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/** Stable presentation aliases; schema paths are private implementation details. */
|
|
2
|
+
export declare const OUTPUT_LANGUAGE_SETTING_KEY = "general.outputLanguage";
|
|
2
3
|
declare const SETTING_KEYS: {
|
|
3
4
|
readonly 'setting:auto-update': "general.enableAutoUpdate";
|
|
4
5
|
readonly 'setting:session-recap': "general.showSessionRecap";
|
|
@@ -7,6 +8,7 @@ declare const SETTING_KEYS: {
|
|
|
7
8
|
readonly 'setting:git-commit-co-author': "general.gitCoAuthor.commit";
|
|
8
9
|
readonly 'setting:git-pr-co-author': "general.gitCoAuthor.pr";
|
|
9
10
|
readonly 'setting:language': "general.language";
|
|
11
|
+
readonly 'setting:output-language': "general.outputLanguage";
|
|
10
12
|
readonly 'setting:prevent-system-sleep': "general.preventSystemSleep";
|
|
11
13
|
readonly 'setting:review-attribution': "review.attribution";
|
|
12
14
|
readonly 'setting:review-sandbox': "review.sandbox";
|
|
@@ -20,6 +22,7 @@ declare const SETTING_KEYS: {
|
|
|
20
22
|
readonly 'setting:workflow-keyword-trigger': "ui.disableWorkflowKeywordTrigger";
|
|
21
23
|
readonly 'setting:status-in-title': "ui.showStatusInTitle";
|
|
22
24
|
readonly 'setting:response-speed': "ui.showResponseTokensPerSecond";
|
|
25
|
+
readonly 'setting:loading-phrases': "ui.accessibility.enableLoadingPhrases";
|
|
23
26
|
readonly 'setting:followup-suggestions': "ui.enableFollowupSuggestions";
|
|
24
27
|
readonly 'setting:tool-call-details': "ui.showToolCallDetails";
|
|
25
28
|
readonly 'setting:shell-output-limit': "ui.shellOutputMaxLines";
|
|
@@ -47,6 +50,7 @@ declare const SETTING_KEYS: {
|
|
|
47
50
|
readonly 'setting:workflow-size': "tools.workflowSizeGuideline";
|
|
48
51
|
readonly 'setting:workflow-name-only': "tools.workflowNameOnly";
|
|
49
52
|
readonly 'setting:permission-strategy': "policy.permissionStrategy";
|
|
53
|
+
readonly 'setting:max-sessions': "serve.maxSessions";
|
|
50
54
|
readonly 'setting:model-proposed-goals': "goals.modelProposed";
|
|
51
55
|
readonly 'setting:arena-artifacts': "agents.arena.preserveArtifacts";
|
|
52
56
|
readonly 'setting:session-workflow': "experimental.sessionWorkflow";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Qwen Team
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/** Host-injected catalog row. Shown disabled in the composer picker. */
|
|
7
|
+
export interface WebShellUnavailableModel {
|
|
8
|
+
id: string;
|
|
9
|
+
label?: string;
|
|
10
|
+
/** Plain-text hint. A successful mount replaces this string. */
|
|
11
|
+
tooltip?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface WebShellUnavailableModelTooltipInfo {
|
|
14
|
+
readonly model: WebShellUnavailableModel;
|
|
15
|
+
}
|
|
16
|
+
export interface WebShellUnavailableModelTooltipHandle {
|
|
17
|
+
update(info: WebShellUnavailableModelTooltipInfo): void;
|
|
18
|
+
dispose(): void;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Synchronous, keep referentially stable. Return null/undefined to fall back
|
|
22
|
+
* to `model.tooltip` or no hint.
|
|
23
|
+
*/
|
|
24
|
+
export type WebShellUnavailableModelTooltipMount = (container: HTMLElement, info: WebShellUnavailableModelTooltipInfo) => WebShellUnavailableModelTooltipHandle | null | undefined;
|
|
@@ -44,3 +44,21 @@ export declare function isStandaloneModelPickerUnavailable(input: {
|
|
|
44
44
|
id: string;
|
|
45
45
|
}[] | undefined;
|
|
46
46
|
}): boolean;
|
|
47
|
+
export interface ComposerModelOption {
|
|
48
|
+
id: string;
|
|
49
|
+
label?: string;
|
|
50
|
+
tooltip?: string;
|
|
51
|
+
disabled?: boolean;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Append host-injected unavailable models after the daemon-available list.
|
|
55
|
+
* Available ids win. Empty, hidden, and duplicate injected ids are skipped.
|
|
56
|
+
*/
|
|
57
|
+
export declare function appendUnavailableComposerModels(available: readonly {
|
|
58
|
+
id: string;
|
|
59
|
+
label?: string;
|
|
60
|
+
}[], unavailable?: readonly {
|
|
61
|
+
id: string;
|
|
62
|
+
label?: string;
|
|
63
|
+
tooltip?: string;
|
|
64
|
+
}[]): ComposerModelOption[];
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared IndexedDB plumbing for the Web Shell.
|
|
3
|
+
*
|
|
4
|
+
* Every operation opens a fresh connection and resolves only on transaction
|
|
5
|
+
* commit: a write acknowledged before `oncomplete` can still be lost if the
|
|
6
|
+
* page goes away. A `blocked` open is not terminal — a success can still
|
|
7
|
+
* follow — so a success that arrives after the rejection closes that fresh
|
|
8
|
+
* connection instead of leaking one that would block future upgrades.
|
|
9
|
+
*/
|
|
10
|
+
export interface IndexedDbSchema {
|
|
11
|
+
name: string;
|
|
12
|
+
version: number;
|
|
13
|
+
store: string;
|
|
14
|
+
blockedMessage?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function openIndexedDatabase(idb: IDBFactory, schema: IndexedDbSchema): Promise<IDBDatabase>;
|
|
17
|
+
export declare function runIndexedDbRequest<T>(idb: IDBFactory, schema: IndexedDbSchema, mode: IDBTransactionMode, issue: (store: IDBObjectStore) => IDBRequest<T>): Promise<T>;
|