@qwen-code/web-shell 0.25.4-preview.0 → 0.26.0-nightly.20261022.bf66a26c97
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 +82 -34
- package/dist/{PierreFilePreview-vbxsbBX2.js → PierreFilePreview-4cB4L1-g.js} +1 -1
- package/dist/{SpreadsheetPreview-yFPFfgME.js → SpreadsheetPreview-DGbGBaEF.js} +2 -2
- package/dist/{WorkspaceFileBrowser-DGQbVeSD.js → WorkspaceFileBrowser-B5XfnDl5.js} +1008 -1041
- package/dist/{agents-route-D6wGe0cs.js → agents-route-hl7LLKgC.js} +2 -2
- package/dist/daemon-react-sdk.js +1 -1
- package/dist/{index-ChD_Ub2E.js → index-OJ6CsSGD.js} +63040 -58550
- package/dist/index.js +3 -3
- package/dist/sw.js +1 -1
- package/dist/transcript.js +7992 -8072
- package/dist/types/App.d.ts +6 -1
- package/dist/types/ManagedStandaloneApp.d.ts +9 -0
- package/dist/types/components/ChatEditor.d.ts +8 -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/ModelRefreshControl.d.ts +3 -0
- package/dist/types/components/SessionPrBadge.d.ts +7 -2
- package/dist/types/components/SplitView.d.ts +4 -1
- package/dist/types/components/UnavailableModelTooltip.d.ts +12 -0
- package/dist/types/components/WorkspaceSelector.d.ts +3 -1
- package/dist/types/components/artifacts/ArtifactPanel.d.ts +4 -1
- package/dist/types/components/artifacts/SideTaskPanel.d.ts +4 -1
- package/dist/types/components/artifacts/TrajectoryDetail.d.ts +34 -0
- package/dist/types/components/artifacts/TrajectoryExecutions.d.ts +6 -8
- package/dist/types/components/artifacts/TrajectoryOverview.d.ts +2 -0
- package/dist/types/components/artifacts/TrajectorySummaryBar.d.ts +35 -0
- package/dist/types/components/artifacts/TrajectoryToolbar.d.ts +24 -0
- package/dist/types/components/artifacts/TurnCallsPanel.d.ts +5 -0
- package/dist/types/components/artifacts/tool-call-content.d.ts +34 -0
- package/dist/types/components/dialogs/AddWorkspaceDialog.d.ts +5 -1
- package/dist/types/components/dialogs/SessionRenameDialog.d.ts +10 -0
- package/dist/types/components/dialogs/WorkspaceAddStatusDialog.d.ts +3 -1
- 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 +18 -0
- package/dist/types/components/managed/ManagedSessionsPage.d.ts +20 -3
- package/dist/types/components/managed/ManagedTaskPanel.d.ts +3 -1
- package/dist/types/components/managed/ManagedWorkspaceNavigation.d.ts +16 -0
- package/dist/types/components/managed/WorkspaceBindingCreator.d.ts +17 -2
- package/dist/types/components/managed/generated/managed-agent-api.d.ts +807 -68
- package/dist/types/components/managed/java-managed-agent-client.d.ts +70 -0
- package/dist/types/components/managed/java-managed-agent-provider.d.ts +2 -5
- package/dist/types/components/managed/managed-agent-provider.d.ts +95 -7
- package/dist/types/components/managed/managed-creation-skills.d.ts +7 -0
- 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 +3 -0
- 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-session-rename.d.ts +13 -0
- package/dist/types/components/managed/use-managed-session.d.ts +1 -0
- package/dist/types/components/managed/use-managed-skills.d.ts +9 -2
- 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/McpApp.d.ts +4 -0
- package/dist/types/components/plugins/PluginManagerPage.d.ts +8 -1
- package/dist/types/components/sidebar/WebShellSidebar.d.ts +5 -1
- package/dist/types/components/sidebar/WorkspaceSection.d.ts +2 -1
- package/dist/types/components/ui/tabs.d.ts +1 -1
- package/dist/types/components/workspaces/WorkspaceExecutionSelect.d.ts +6 -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 +19 -0
- package/dist/types/daemon-react-sdk.d.ts +2 -0
- package/dist/types/desktop-relay/desktop-relay-client.d.ts +1 -1
- package/dist/types/hooks/useContextUsageControls.d.ts +8 -3
- package/dist/types/index.d.ts +1 -0
- package/dist/types/main.d.ts +3 -1
- package/dist/types/mcpAppHostContext.d.ts +10 -1
- package/dist/types/settings.d.ts +1 -0
- package/dist/types/trajectory/summarizeTrajectory.d.ts +5 -0
- package/dist/types/trajectory/trajectory-status.d.ts +51 -0
- package/dist/types/trajectory/useTrajectoryWindow.d.ts +2 -0
- package/dist/types/unavailableModels.d.ts +24 -0
- package/dist/types/utils/composerModels.d.ts +18 -0
- package/dist/{useDaemonMidTurnInjected-CfhBFIym.js → useDaemonMidTurnInjected-TnZPRjfx.js} +4256 -4021
- package/package.json +1 -1
- package/dist/types/components/artifacts/TrajectoryFilters.d.ts +0 -15
- package/dist/types/components/artifacts/TrajectoryInspector.d.ts +0 -25
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { AtMentionWorkspaceActions } from '../../hooks/useAtMentionSources';
|
|
2
|
+
import type { ManagedAgentProvider } from './managed-agent-provider';
|
|
3
|
+
export declare function useManagedMcp(provider: ManagedAgentProvider, clientId: string, sessionId: string | undefined, catalogScope?: string): AtMentionWorkspaceActions | undefined;
|
|
@@ -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 {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ManagedAgentProvider, ManagedAgentSessionSummary } from './managed-agent-provider';
|
|
2
|
+
export declare function useManagedSessionRename(provider: ManagedAgentProvider, clientId: string, sessionId: string | undefined, summary: ManagedAgentSessionSummary | undefined, interactive: boolean, onRenamed: (displayName: string) => void): {
|
|
3
|
+
supported: boolean;
|
|
4
|
+
editor: {
|
|
5
|
+
value: string;
|
|
6
|
+
busy: boolean;
|
|
7
|
+
error?: string;
|
|
8
|
+
} | undefined;
|
|
9
|
+
open(): void;
|
|
10
|
+
close(): void;
|
|
11
|
+
setValue(value: string): void;
|
|
12
|
+
submit(displayName: string): Promise<void>;
|
|
13
|
+
};
|
|
@@ -16,6 +16,7 @@ export declare function useManagedSession(provider: ManagedAgentProvider, client
|
|
|
16
16
|
loadOlder: () => Promise<void>;
|
|
17
17
|
reload: () => void;
|
|
18
18
|
refreshSummary: (signal?: AbortSignal) => Promise<ManagedAgentSessionSummary | undefined>;
|
|
19
|
+
applyTitle: (id: string, title: string) => void;
|
|
19
20
|
sessionId?: string;
|
|
20
21
|
summary?: ManagedAgentSessionSummary;
|
|
21
22
|
events: ManagedAgentSessionEvent[];
|
|
@@ -1,12 +1,19 @@
|
|
|
1
|
+
import type { ManagedCreationSkillsSource } from './managed-creation-skills';
|
|
1
2
|
import type { ManagedAgentProvider } from './managed-agent-provider';
|
|
2
|
-
export declare function useManagedSkills(provider: ManagedAgentProvider, clientId: string, sessionId: string | undefined): {
|
|
3
|
+
export declare function useManagedSkills(provider: ManagedAgentProvider, clientId: string, sessionId: string | undefined, creationSkills?: ManagedCreationSkillsSource): {
|
|
3
4
|
supported: boolean;
|
|
4
5
|
skills: {
|
|
5
6
|
name: string;
|
|
6
7
|
description: string;
|
|
7
8
|
}[];
|
|
9
|
+
commands: {
|
|
10
|
+
name: string;
|
|
11
|
+
description: string;
|
|
12
|
+
source: string;
|
|
13
|
+
displayCategory: "skill";
|
|
14
|
+
}[];
|
|
8
15
|
loading: boolean;
|
|
9
16
|
loaded: boolean;
|
|
10
17
|
error: boolean;
|
|
11
|
-
onOpenChange:
|
|
18
|
+
onOpenChange: (next: boolean) => void;
|
|
12
19
|
};
|
|
@@ -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;
|
|
@@ -3,6 +3,7 @@ type SandboxResource = Parameters<AppBridge['sendSandboxResourceReady']>[0];
|
|
|
3
3
|
type AppToolResult = Parameters<AppBridge['sendToolResult']>[0];
|
|
4
4
|
export interface McpAppDisplay {
|
|
5
5
|
type: 'mcp_app';
|
|
6
|
+
requiredFeature?: 'generated-ui';
|
|
6
7
|
serverName: string;
|
|
7
8
|
resourceUri: string;
|
|
8
9
|
html: string;
|
|
@@ -15,6 +16,9 @@ export interface McpAppDisplay {
|
|
|
15
16
|
export declare function getMcpAppDisplay(value: unknown): McpAppDisplay | undefined;
|
|
16
17
|
export declare function resolveMcpAppSandboxUrl(daemonBaseUrl: string, hostUrl: string, dataMode?: boolean): string | undefined;
|
|
17
18
|
export declare function applySandboxCspQuery(sandboxUrl: string, cspJson: string): string;
|
|
19
|
+
export declare function GeneratedUiFallback({ display }: {
|
|
20
|
+
display: McpAppDisplay;
|
|
21
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
18
22
|
export declare function McpApp({ display }: {
|
|
19
23
|
display: McpAppDisplay;
|
|
20
24
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import { type Ref } from 'react';
|
|
2
|
+
import { type ManagedMcpManagerPageProps } from '../managed/ManagedMcpManagerPage';
|
|
3
|
+
type PluginTab = 'extensions' | 'mcp' | 'skills' | 'agents';
|
|
2
4
|
interface PluginManagerPageProps {
|
|
3
5
|
onClose: () => void;
|
|
4
6
|
onUseSkill: (name: string) => void;
|
|
5
7
|
initialFocusRef?: Ref<HTMLButtonElement>;
|
|
8
|
+
initialTab?: PluginTab;
|
|
9
|
+
skillsWorkspaceCwd?: string;
|
|
10
|
+
onSkillsWorkspaceChange?: (cwd: string) => void;
|
|
11
|
+
managedSkills?: boolean;
|
|
12
|
+
managedMcp?: ManagedMcpManagerPageProps;
|
|
6
13
|
}
|
|
7
|
-
export declare function PluginManagerPage({ onClose, onUseSkill, initialFocusRef, }: 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;
|
|
8
15
|
export {};
|
|
@@ -138,6 +138,10 @@ interface WebShellSidebarProps {
|
|
|
138
138
|
/** Replace daemon history with navigation owned by an external session provider. */
|
|
139
139
|
sessionContent?: ReactNode;
|
|
140
140
|
sessionHeader?: ReactNode;
|
|
141
|
+
managedWorkspaces?: ReactNode;
|
|
142
|
+
onSearchQueryChange?: (query: string) => void;
|
|
143
|
+
/** Selection styling only; the attached session still owns its actions. */
|
|
144
|
+
currentSessionActive?: boolean;
|
|
141
145
|
/** Whether to show the Tasks/Channels session-source switch. Defaults to true. */
|
|
142
146
|
showSessionSourceSwitch?: boolean;
|
|
143
147
|
/** Show Live conversations and, in rail layout, the Live entry. Defaults to false. */
|
|
@@ -165,4 +169,4 @@ interface WebShellSidebarProps {
|
|
|
165
169
|
onLoadStandaloneSession?: (sessionId: string) => Promise<void> | void;
|
|
166
170
|
onStandaloneNotice?: (message: string) => void;
|
|
167
171
|
}
|
|
168
|
-
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, showSessionSourceSwitch, showLive, hideProjectHeader, sessionActions: sessionActionsOptions, footer, workspaceOverview, onOpenWorkspaceManagement, onNewWorktreeSession, projectFeaturesEnabled, onLoadStandaloneSession, onStandaloneNotice, }: WebShellSidebarProps): import("react/jsx-runtime").JSX.Element;
|
|
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;
|
|
@@ -10,6 +10,7 @@ export interface WorkspaceHeaderActionsContext {
|
|
|
10
10
|
}
|
|
11
11
|
interface WorkspaceSectionProps {
|
|
12
12
|
workspace: DaemonWorkspaceCapability;
|
|
13
|
+
executionLabel?: string;
|
|
13
14
|
/**
|
|
14
15
|
* localStorage seed for the expansion/collapsed-group preferences,
|
|
15
16
|
* defaulting to the workspace id. Multi-host renderers pass an
|
|
@@ -125,5 +126,5 @@ interface WorkspaceSectionProps {
|
|
|
125
126
|
/** Commit entry for the same picker; the row still opens without it. */
|
|
126
127
|
onOpenCommit?: (workspaceCwd: string) => void;
|
|
127
128
|
}
|
|
128
|
-
export declare function WorkspaceSection({ workspace, storageKey, remote, renderHeader, hideHeader, client, reloadToken, untrustedLabel, readOnlyLabel, trustToOpenLabel, noSessionsLabel, loadErrorLabel, organizationEnabled, sessionCatalogRequestsEnabled, sessionGroupCatalog, sessionLiveStateEnabled, sourceType, channelGroupingEnabled, ungroupedLabel, searchQuery, expanded: controlledExpanded, autoExpandKey, forceAutoExpand, onExpandedChange, renderSessions, renderSession, pendingSession, mapSession, showSessionDetails, headerActions, overviewEnabled, overviewMenuOpen, overviewItems, gitBranchWanted, sessionStats, onRenameGroup, onDeleteGroup, renameGroupLabel, deleteGroupLabel, groupActionsDisabled, excludePinned, limitSessions, isPinnedSectionMember, onOpenPathLocally, onOpenTerminalLocally, onOpenGitDiff, onOpenCommit, }: WorkspaceSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
129
|
+
export declare function WorkspaceSection({ workspace, executionLabel, storageKey, remote, renderHeader, hideHeader, client, reloadToken, untrustedLabel, readOnlyLabel, trustToOpenLabel, noSessionsLabel, loadErrorLabel, organizationEnabled, sessionCatalogRequestsEnabled, sessionGroupCatalog, sessionLiveStateEnabled, sourceType, channelGroupingEnabled, ungroupedLabel, searchQuery, expanded: controlledExpanded, autoExpandKey, forceAutoExpand, onExpandedChange, renderSessions, renderSession, pendingSession, mapSession, showSessionDetails, headerActions, overviewEnabled, overviewMenuOpen, overviewItems, gitBranchWanted, sessionStats, onRenameGroup, onDeleteGroup, renameGroupLabel, deleteGroupLabel, groupActionsDisabled, excludePinned, limitSessions, isPinnedSectionMember, onOpenPathLocally, onOpenTerminalLocally, onOpenGitDiff, onOpenCommit, }: WorkspaceSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
129
130
|
export {};
|
|
@@ -8,6 +8,6 @@ declare const tabsListVariants: (props?: ({
|
|
|
8
8
|
declare const TabsList: import("react").ForwardRefExoticComponent<Omit<Omit<TabsPrimitive.TabsListProps & import("react").RefAttributes<HTMLDivElement>, "ref">, "asChild"> & VariantProps<(props?: ({
|
|
9
9
|
variant?: "default" | "line" | null | undefined;
|
|
10
10
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string> & import("react").RefAttributes<HTMLDivElement>>;
|
|
11
|
-
declare
|
|
11
|
+
declare const TabsTrigger: import("react").ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & import("react").RefAttributes<HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
12
12
|
declare function TabsContent({ className, ...props }: ComponentProps<typeof TabsPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
|
|
13
13
|
export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type WorkspaceExecutionMode = 'daemon' | 'managed';
|
|
2
|
+
export declare function WorkspaceExecutionSelect({ value, onValueChange, disabled, }: {
|
|
3
|
+
value: WorkspaceExecutionMode;
|
|
4
|
+
onValueChange: (value: WorkspaceExecutionMode) => void;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -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,11 @@ 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
|
|
169
|
+
* task; absent on a daemon that predates gates. */
|
|
170
|
+
gate?: string | null;
|
|
171
|
+
gateStatus?: DaemonScheduledTaskGateStatus | null;
|
|
153
172
|
createdAt: number;
|
|
154
173
|
lastFiredAt: number | null;
|
|
155
174
|
/** Next scheduled fire (epoch ms), or null for a disabled task. A GET-time
|
|
@@ -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. */
|
|
@@ -18,7 +18,7 @@ export declare const DESKTOP_RELAY_URL = "http://127.0.0.1:47821";
|
|
|
18
18
|
* `packages/node-repl/package.json`, and `.github/workflows/cd-cua-driver.yml`
|
|
19
19
|
* must publish that version before the setup command can be used.
|
|
20
20
|
*/
|
|
21
|
-
export declare const DESKTOP_RELAY_INSTALL_COMMAND = "npx -y @qwen-code/node-repl-mcp@0.
|
|
21
|
+
export declare const DESKTOP_RELAY_INSTALL_COMMAND = "npx -y @qwen-code/node-repl-mcp@0.26.0 desktop-relay install";
|
|
22
22
|
export type DesktopRelayRemotePhase = 'connecting' | 'registering' | 'connected' | 'stopped' | 'failed';
|
|
23
23
|
export interface DesktopRelayActive {
|
|
24
24
|
sessionId: string;
|
|
@@ -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
|
@@ -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;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DaemonMcpAppToolCall, DaemonMcpAppToolResult } from '@qwen-code/sdk/daemon';
|
|
1
|
+
import type { DaemonSession, DaemonMcpAppToolCall, DaemonMcpAppToolResult } from '@qwen-code/sdk/daemon';
|
|
2
2
|
export declare const McpAppHostContext: import("react").Context<string | undefined>;
|
|
3
3
|
export type McpAppToolCallRequest = DaemonMcpAppToolCall;
|
|
4
4
|
export declare const McpAppSessionContext: import("react").Context<string | undefined>;
|
|
@@ -19,3 +19,12 @@ export declare const McpAppToolsContext: import("react").Context<{
|
|
|
19
19
|
sessionId: string;
|
|
20
20
|
callTool: (request: McpAppToolCallRequest, signal: AbortSignal) => Promise<DaemonMcpAppToolResult>;
|
|
21
21
|
} | undefined>;
|
|
22
|
+
export interface McpAppGeneratedUi {
|
|
23
|
+
sessionId: string;
|
|
24
|
+
status: NonNullable<DaemonSession['generatedUi']>;
|
|
25
|
+
}
|
|
26
|
+
export declare const McpAppGeneratedUiContext: import("react").Context<McpAppGeneratedUi | undefined>;
|
|
27
|
+
export declare function useMcpAppAdmission(display?: {
|
|
28
|
+
resourceUri: string;
|
|
29
|
+
requiredFeature?: 'generated-ui';
|
|
30
|
+
}): boolean;
|
package/dist/types/settings.d.ts
CHANGED
|
@@ -50,6 +50,7 @@ declare const SETTING_KEYS: {
|
|
|
50
50
|
readonly 'setting:model-proposed-goals': "goals.modelProposed";
|
|
51
51
|
readonly 'setting:arena-artifacts': "agents.arena.preserveArtifacts";
|
|
52
52
|
readonly 'setting:session-workflow': "experimental.sessionWorkflow";
|
|
53
|
+
readonly 'setting:generated-ui': "experimental.generatedUi";
|
|
53
54
|
readonly 'setting:scheduled-tasks': "experimental.cron";
|
|
54
55
|
readonly 'setting:session-writer-lease': "experimental.sessionWriterLease";
|
|
55
56
|
readonly 'setting:agent-team': "experimental.agentTeam";
|
|
@@ -16,5 +16,10 @@ export interface TrajectorySummary {
|
|
|
16
16
|
plottedCount: number;
|
|
17
17
|
missingStartCount: number;
|
|
18
18
|
missingTimingCount: number;
|
|
19
|
+
/** Main-session requests that reported usage; absent when none did. */
|
|
20
|
+
tokens?: {
|
|
21
|
+
input: number;
|
|
22
|
+
output: number;
|
|
23
|
+
};
|
|
19
24
|
}
|
|
20
25
|
export declare function summarizeTrajectory(trajectory: Trajectory): TrajectorySummary;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Qwen Team
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { TrajectoryLifecycleProjection } from './project-trajectory-lifecycle';
|
|
7
|
+
import type { TrajectoryWindowFailure } from './useTrajectoryWindow';
|
|
8
|
+
/** What the summary bar's single status control says. */
|
|
9
|
+
export type TrajectoryPillState = 'none' | 'live' | 'connecting' | 'reconnecting' | 'paused' | 'returning' | 'history';
|
|
10
|
+
export declare function trajectoryPillState(input: {
|
|
11
|
+
windowMode: 'latest' | 'history';
|
|
12
|
+
following: boolean;
|
|
13
|
+
returning: boolean;
|
|
14
|
+
liveStatus: TrajectoryLifecycleProjection['status'];
|
|
15
|
+
}): TrajectoryPillState;
|
|
16
|
+
export type TrajectoryWarning = {
|
|
17
|
+
kind: 'refresh-failed';
|
|
18
|
+
failure: TrajectoryWindowFailure;
|
|
19
|
+
} | {
|
|
20
|
+
kind: 'navigation-failed';
|
|
21
|
+
failure: TrajectoryWindowFailure;
|
|
22
|
+
} | {
|
|
23
|
+
kind: 'history-gap';
|
|
24
|
+
} | {
|
|
25
|
+
kind: 'lifecycle-incomplete';
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Conditions worth acting on or knowing about while records are on screen,
|
|
29
|
+
* most urgent first. A read that failed with nothing loaded is not a warning:
|
|
30
|
+
* the list itself says so.
|
|
31
|
+
*/
|
|
32
|
+
export declare function trajectoryWarnings(input: {
|
|
33
|
+
hasTrajectory: boolean;
|
|
34
|
+
error?: TrajectoryWindowFailure;
|
|
35
|
+
navigationError?: TrajectoryWindowFailure;
|
|
36
|
+
historyStale: boolean;
|
|
37
|
+
lifecycleIncomplete: boolean;
|
|
38
|
+
}): TrajectoryWarning[];
|
|
39
|
+
type Translate = (key: string, vars?: Record<string, string | number>) => string;
|
|
40
|
+
/** What a failed read says, wherever it is shown. */
|
|
41
|
+
export declare function trajectoryFailureText(failure: TrajectoryWindowFailure, t: Translate): string;
|
|
42
|
+
/** Only an unreadable or partial page can be read again with the same cursor. */
|
|
43
|
+
export declare function isRetryableFailure(failure: TrajectoryWindowFailure): boolean;
|
|
44
|
+
/** The row above the first record: what lies before the loaded window. */
|
|
45
|
+
export type TrajectoryTopBoundary = 'start' | 'earlier' | 'loading' | 'failed';
|
|
46
|
+
export declare function trajectoryTopBoundary(input: {
|
|
47
|
+
truncated: boolean;
|
|
48
|
+
loading: boolean;
|
|
49
|
+
olderFailure?: TrajectoryWindowFailure;
|
|
50
|
+
}): TrajectoryTopBoundary;
|
|
51
|
+
export {};
|
|
@@ -75,6 +75,8 @@ export interface TrajectoryWindow {
|
|
|
75
75
|
truncated: boolean;
|
|
76
76
|
olderFailure?: TrajectoryWindowFailure;
|
|
77
77
|
navigationError?: TrajectoryWindowFailure;
|
|
78
|
+
/** What the read in flight is for; absent while nothing is loading. */
|
|
79
|
+
loadingKind?: 'latest' | 'older' | 'newer';
|
|
78
80
|
mode: 'latest' | 'history';
|
|
79
81
|
navigationVersion: number;
|
|
80
82
|
canRefresh: boolean;
|
|
@@ -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[];
|