@qwen-code/web-shell 0.26.4 → 0.26.5-nightly.20261102.0441faff21
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 +1 -1
- package/dist/{PierreFilePreview-CVoJL-kD.js → PierreFilePreview-DuLRVr43.js} +1 -1
- package/dist/{SpreadsheetPreview-CPSqOai5.js → SpreadsheetPreview-DfkCKz5L.js} +2 -2
- package/dist/{WorkspaceFileBrowser-IuQcqNWd.js → WorkspaceFileBrowser-WVPK4t2E.js} +2 -2
- package/dist/{agents-route-BBfOMyJ5.js → agents-route-dRC-txQm.js} +2 -2
- package/dist/daemon-react-sdk.js +1 -1
- package/dist/{index-DyFoZ0bq.js → index-CTDaf1PT.js} +56298 -53533
- package/dist/index.js +3 -3
- package/dist/sw.js +1 -1
- package/dist/transcript.js +10153 -9866
- package/dist/types/App.d.ts +1 -1
- package/dist/types/completions/slashCompletion.d.ts +1 -1
- package/dist/types/components/ChatEditor.d.ts +6 -2
- package/dist/types/components/MessageItem.d.ts +3 -0
- package/dist/types/components/MessageList.d.ts +3 -1
- package/dist/types/components/SplitView.d.ts +1 -1
- package/dist/types/components/WebShellTranscript.d.ts +1 -1
- package/dist/types/components/artifacts/ArtifactPanel.d.ts +4 -2
- package/dist/types/components/artifacts/ContextUsagePanel.d.ts +3 -2
- package/dist/types/components/artifacts/TokenUsageTrend.d.ts +30 -0
- package/dist/types/components/artifacts/readContextInstructionFile.d.ts +22 -0
- package/dist/types/components/channels/channel-editor-state.d.ts +5 -2
- package/dist/types/components/channels/channel-platform.d.ts +1 -0
- package/dist/types/components/composer/AddMenu.d.ts +3 -1
- package/dist/types/components/managed/generated/managed-agent-api.d.ts +113 -20
- package/dist/types/components/managed/java-managed-agent-client.d.ts +3 -1
- package/dist/types/components/managed/managed-agent-provider.d.ts +3 -1
- package/dist/types/components/managed/managed-session-export.d.ts +1 -0
- package/dist/types/components/managed/managed-session-messages.d.ts +1 -1
- package/dist/types/components/messages/ContextUsageMessage.d.ts +4 -2
- package/dist/types/components/messages/SystemMessage.d.ts +3 -0
- package/dist/types/components/messages/tools/DiffView.d.ts +6 -0
- package/dist/types/components/plugins/PluginManagerPage.d.ts +2 -1
- package/dist/types/components/plugins/manager-page.d.ts +1 -0
- package/dist/types/components/sidebar/ActivityView.d.ts +41 -0
- package/dist/types/components/sidebar/SidebarSectionHeader.d.ts +7 -0
- package/dist/types/components/sidebar/WebShellSidebar.d.ts +7 -3
- package/dist/types/components/sidebar/activity-messages.d.ts +4 -0
- package/dist/types/components/sidebar/activity-model.d.ts +34 -0
- package/dist/types/components/sidebar/pinned-session-order.d.ts +2 -0
- package/dist/types/components/sidebar/use-activity-catalog.d.ts +31 -0
- package/dist/types/components/workflow-mode-control-state.d.ts +43 -0
- package/dist/types/components/workflow-mode-messages.d.ts +28 -0
- package/dist/types/daemon/index.d.ts +1 -1
- package/dist/types/daemon/session/DaemonSessionProvider.d.ts +9 -0
- package/dist/types/daemon/session/actions.d.ts +2 -1
- package/dist/types/daemon/session/index.d.ts +1 -1
- package/dist/types/daemon/session/mappers.d.ts +6 -0
- package/dist/types/daemon/session/session-config-sync.d.ts +22 -0
- package/dist/types/daemon/session/types.d.ts +17 -1
- package/dist/types/daemon-react-sdk.d.ts +1 -1
- package/dist/types/extensions/inputHighlight.d.ts +3 -2
- package/dist/types/hooks/useMcpAppMessages.d.ts +9 -10
- package/dist/types/hooks/useOtherWorkspaceSessions.d.ts +29 -0
- package/dist/types/hooks/useScopedSessions.d.ts +5 -0
- package/dist/types/i18n.d.ts +1 -1
- package/dist/types/mcpAppHostContext.d.ts +19 -0
- package/dist/types/session-catalog/session-catalog-hooks.d.ts +1 -0
- package/dist/types/utils/composerTasks.d.ts +7 -0
- package/dist/types/utils/standalone-session-routing.d.ts +20 -1
- package/dist/{useDaemonMidTurnInjected-BpWZTnoN.js → useDaemonMidTurnInjected-D5dlDeW-.js} +7004 -6445
- package/package.json +1 -1
package/dist/types/App.d.ts
CHANGED
|
@@ -136,7 +136,7 @@ export interface WebShellProps {
|
|
|
136
136
|
*/
|
|
137
137
|
onThemeResolved?: (theme: WebShellTheme) => void;
|
|
138
138
|
/** UI language for the web-shell. Defaults to `?language=` or browser language. */
|
|
139
|
-
language?: 'en' | 'zh-CN' | 'zh' | 'zh-cn';
|
|
139
|
+
language?: 'en' | 'zh-CN' | 'zh' | 'zh-cn' | 'ru' | 'ru-ru';
|
|
140
140
|
/** Called when `/language ui` changes the web-shell UI language. */
|
|
141
141
|
onLanguageChange?: (language: WebShellLanguage) => void;
|
|
142
142
|
/**
|
|
@@ -29,7 +29,7 @@ export interface SlashCommandCompletionResult {
|
|
|
29
29
|
type Translate = (key: string) => string;
|
|
30
30
|
export declare function getMissingSlashPrefixCompletion(text: string, commands: CommandInfo[]): string | null;
|
|
31
31
|
export declare function getImplicitTabCompletion(text: string, commands: CommandInfo[], language: WebShellLanguage): string | null;
|
|
32
|
-
export declare function getSlashCommandArgumentHint(text: string, commands: CommandInfo[], language: WebShellLanguage): string | null;
|
|
32
|
+
export declare function getSlashCommandArgumentHint(text: string, commands: CommandInfo[], language: WebShellLanguage, skillNames?: ReadonlySet<string>): string | null;
|
|
33
33
|
export declare function getSlashCommandCompletionResult(text: string, cursor: number, commands: CommandInfo[], skills?: SkillInfo[], language?: WebShellLanguage, translate?: Translate, categoryOrder?: CommandDisplayCategoryOrder, includeEmpty?: boolean): SlashCommandCompletionResult | null;
|
|
34
34
|
export declare function slashCompletionSource(getCommands: () => CommandInfo[], getSkills?: () => SkillInfo[], getLanguage?: () => WebShellLanguage, translate?: Translate, getCategoryOrder?: () => CommandDisplayCategoryOrder | undefined): (context: CompletionContext) => CompletionResult | null;
|
|
35
35
|
export {};
|
|
@@ -7,7 +7,7 @@ import type { UseDaemonFollowupSuggestionReturn } from '@qwen-code/web-shell/dae
|
|
|
7
7
|
import type { DaemonSessionGroupPresetColor, DaemonWorkspaceGitStatus, ReasoningSelection } from '@qwen-code/sdk/daemon';
|
|
8
8
|
import type { CommandDisplayCategoryOrder } from '../utils/commandDisplay';
|
|
9
9
|
import type { SkillInfo } from '../completions/slashCompletion';
|
|
10
|
-
import type { DaemonReasoningControls } from '@qwen-code/web-shell/daemon-react-sdk';
|
|
10
|
+
import type { DaemonReasoningControls, DaemonWorkflowMode, DaemonWorkflowModeStatus } from '@qwen-code/web-shell/daemon-react-sdk';
|
|
11
11
|
import { type WebShellComposerInput, type WebShellComposerTag, type WebShellComposerTagIconMap, type WebShellAtProvider, type WebShellBuiltinAtProvidersConfig } from '../customization';
|
|
12
12
|
import { type ComposerSubmitMetadata, type EditorHandle } from '../hooks/useComposerCore';
|
|
13
13
|
import { type UseFileUploadOptions } from '../hooks/useFileUpload';
|
|
@@ -16,7 +16,7 @@ import type { WebShellUnavailableModel, WebShellUnavailableModelTooltipMount } f
|
|
|
16
16
|
import type { VoiceStatusRevision, VoiceWorkspaceTarget } from '../voice/voice-workspace-target';
|
|
17
17
|
import { type SessionGitIntent } from './GitModePopover';
|
|
18
18
|
import { type WorkspaceSelectorOption } from './WorkspaceSelector';
|
|
19
|
-
export type ComposerToolbarAction = 'approvalMode' | 'plan' | 'contextUsage' | 'gitBranch' | 'model' | 'commands' | 'files' | 'widthMode' | 'voice' | 'workspace' | 'addMenu';
|
|
19
|
+
export type ComposerToolbarAction = 'approvalMode' | 'plan' | 'workflowMode' | 'contextUsage' | 'gitBranch' | 'model' | 'commands' | 'files' | 'widthMode' | 'voice' | 'workspace' | 'addMenu';
|
|
20
20
|
interface ChatEditorProps {
|
|
21
21
|
onSubmit: (text: string, images?: import('../adapters/promptTypes').PromptImage[], files?: import('../adapters/promptTypes').PromptFile[], commitAccepted?: import('../hooks/useComposerCore').ComposerSubmitCommit, metadata?: ComposerSubmitMetadata) => boolean | void;
|
|
22
22
|
onInputTextChange?: (text: string) => void;
|
|
@@ -115,6 +115,10 @@ interface ChatEditorProps {
|
|
|
115
115
|
mountUnavailableModelTooltip?: WebShellUnavailableModelTooltipMount;
|
|
116
116
|
onSelectMode?: (mode: string) => void;
|
|
117
117
|
onSelectModel?: (model: string) => void;
|
|
118
|
+
workflowMode?: DaemonWorkflowMode;
|
|
119
|
+
workflowModeStatus?: DaemonWorkflowModeStatus;
|
|
120
|
+
workflowModePending?: boolean;
|
|
121
|
+
onWorkflowModeChange?: (requested: boolean) => void;
|
|
118
122
|
reasoning?: DaemonReasoningControls;
|
|
119
123
|
onSelectReasoningEffort?: (value: ReasoningSelection, source?: 'toggle') => Promise<void> | void;
|
|
120
124
|
workspaces?: WorkspaceSelectorOption[];
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Message, PermissionRequest } from '../adapters/types';
|
|
2
|
+
import type { DaemonContextMemoryDetail } from '@qwen-code/web-shell/daemon-react-sdk';
|
|
2
3
|
import type { WebShellAssistantFeedbackRating, WebShellAssistantTurnFooterRenderInfo, WebShellSource } from '../customization';
|
|
3
4
|
import { type SessionContentGenerator } from './messages/AssistantMessage';
|
|
4
5
|
import type { TurnOutputOpenRequest } from './artifacts/TurnOutputs';
|
|
@@ -8,6 +9,8 @@ interface MessageItemProps {
|
|
|
8
9
|
pendingApproval?: PermissionRequest | null;
|
|
9
10
|
/** Run /context detail, exactly like typing it (context-usage panels). */
|
|
10
11
|
onShowContextDetail?: () => void;
|
|
12
|
+
/** Open a context instruction file in a read-only preview. */
|
|
13
|
+
onOpenMemoryFile?: (file: DaemonContextMemoryDetail, workspaceCwd: string) => void;
|
|
11
14
|
onLocateBackgroundSource?: (messageId: string, callId?: string) => boolean;
|
|
12
15
|
/** Click an uploaded image in a user message to preview it in the right panel. */
|
|
13
16
|
onImagePreview?: (src: string, alt?: string) => void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
|
-
import type { DaemonSessionArtifact } from '@qwen-code/sdk/daemon';
|
|
2
|
+
import type { DaemonContextMemoryDetail, DaemonSessionArtifact } from '@qwen-code/sdk/daemon';
|
|
3
3
|
import type { Message, TurnCollapseHead } from '../adapters/types';
|
|
4
4
|
import type { PermissionRequest } from '../adapters/types';
|
|
5
5
|
import { type ParallelAgentDisplayItem } from '../adapters/parallelAgentGrouping';
|
|
@@ -16,6 +16,8 @@ export interface MessageListProps {
|
|
|
16
16
|
pendingApproval: PermissionRequest | null;
|
|
17
17
|
/** Run /context detail, exactly like typing it (context-usage panels). */
|
|
18
18
|
onShowContextDetail?: () => void;
|
|
19
|
+
/** Open a context instruction file in a read-only preview. */
|
|
20
|
+
onOpenMemoryFile?: (file: DaemonContextMemoryDetail, workspaceCwd: string) => void;
|
|
19
21
|
/** Click an uploaded image in a user message to preview it in the right panel. */
|
|
20
22
|
onImagePreview?: (src: string, alt?: string) => void;
|
|
21
23
|
onAttachmentPreview?: (file: AttachmentPreviewRequest) => void;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { type DaemonSessionActions } from '@qwen-code/web-shell/daemon-react-sdk';
|
|
7
|
-
import type
|
|
7
|
+
import { type DaemonSessionArtifact, type DaemonSessionMonitorTaskStatus, type DaemonWorkspaceCapability } from '@qwen-code/sdk/daemon';
|
|
8
8
|
import type { WebShellSlashCommandHandler } from '../App';
|
|
9
9
|
import type { WebShellModelManagementOptions } from '../modelManagement';
|
|
10
10
|
import type { WebShellUnavailableModel, WebShellUnavailableModelTooltipMount } from '../unavailableModels';
|
|
@@ -8,7 +8,7 @@ export interface WebShellTranscriptProps {
|
|
|
8
8
|
blocks: readonly DaemonTranscriptBlock[];
|
|
9
9
|
renderMode?: 'readonly' | 'document';
|
|
10
10
|
theme?: WebShellTheme;
|
|
11
|
-
language?: 'en' | 'zh-CN' | 'zh' | 'zh-cn';
|
|
11
|
+
language?: 'en' | 'zh-CN' | 'zh' | 'zh-cn' | 'ru' | 'ru-ru';
|
|
12
12
|
className?: string;
|
|
13
13
|
style?: CSSProperties;
|
|
14
14
|
chatMaxWidth?: number;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { DaemonSessionArtifact, SessionSource, DaemonSessionMonitorTaskStatus, DaemonSessionShellTaskStatus, DaemonSessionTaskStatus } from '@qwen-code/sdk/daemon';
|
|
2
2
|
import type { ACPToolCall, TodoItem } from '../../adapters/types';
|
|
3
3
|
import type { WebShellRightPanelItem } from '../../customization';
|
|
4
|
-
import { type DaemonSessionOwnerSnapshot, type DaemonSessionActions } from '@qwen-code/web-shell/daemon-react-sdk';
|
|
4
|
+
import { type DaemonContextMemoryDetail, type DaemonSessionOwnerSnapshot, type DaemonSessionActions } from '@qwen-code/web-shell/daemon-react-sdk';
|
|
5
5
|
import { type TurnOutputFileChange, type TurnOutputOpenRequest, type TurnOutputScheduledTask } from './TurnOutputs';
|
|
6
6
|
import type { EnvironmentAgentTask } from '../panels/EnvironmentPanel';
|
|
7
7
|
import type { WebShellModelManagementOptions } from '../../modelManagement';
|
|
@@ -213,6 +213,8 @@ interface ArtifactPanelProps {
|
|
|
213
213
|
onSelectTab: (tabId: string) => void;
|
|
214
214
|
onCloseTab: (tabId: string) => void;
|
|
215
215
|
onOpenFilePreview: (change: TurnOutputFileChange | string, workspaceCwd?: string, workspaceId?: string) => void;
|
|
216
|
+
/** Open a context-panel memory file in a read-only preview. */
|
|
217
|
+
onOpenMemoryFile?: (file: DaemonContextMemoryDetail, workspaceCwd: string) => void;
|
|
216
218
|
latestReviewAvailable?: boolean;
|
|
217
219
|
onOpenLatestReview?: () => void;
|
|
218
220
|
/** Open an interactive terminal tab in this panel (shown as an empty-state action). */
|
|
@@ -280,5 +282,5 @@ interface ArtifactPanelProps {
|
|
|
280
282
|
fullscreen?: boolean;
|
|
281
283
|
onToggleFullscreen?: () => void;
|
|
282
284
|
}
|
|
283
|
-
export declare function ArtifactPanel({ contextUsageControls, artifacts, tabs, activeTabId, reviewChanges, selectedReviewPath, panelWidth, workspaceCwd, loading, restoring, error, onSelectTab, onSelectTurnCallsPrompt, onCloseTab, onOpenFilePreview, latestReviewAvailable, onOpenLatestReview, onOpenTerminal, onOpenTrajectory, trajectoryTabId, onOpenFiles, onReferenceFile, onOpenWebPreview, onWebPreviewChange, items, sideTaskAvailable, sideTasks, archivedSideTasks, sideTasksLoading, onCreateSideTask, onOpenSideTask, onArchiveSideTasks, onUnarchiveSideTasks, onSideTaskMenuOpen, onCreateSideTaskSession, onSideTaskCreated, onSideTaskTitleChange, onSideTaskInitialPromptRefused, onNestedRightPanelOpen, onNestedArtifactsChange, onOpenNestedSubagent, agentTasks, agentTraceLoading, agentTraceError, onOpenWorkflowAgent, onError, sessionWorkflowEnabled, modelManagement, unavailableModels, mountUnavailableModelTooltip, workflow, onImageIngestionNotice, deferSubagentMount, onClose, variant, fullscreen, onToggleFullscreen, }: ArtifactPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
285
|
+
export declare function ArtifactPanel({ contextUsageControls, artifacts, tabs, activeTabId, reviewChanges, selectedReviewPath, panelWidth, workspaceCwd, loading, restoring, error, onSelectTab, onSelectTurnCallsPrompt, onCloseTab, onOpenFilePreview, onOpenMemoryFile, latestReviewAvailable, onOpenLatestReview, onOpenTerminal, onOpenTrajectory, trajectoryTabId, onOpenFiles, onReferenceFile, onOpenWebPreview, onWebPreviewChange, items, sideTaskAvailable, sideTasks, archivedSideTasks, sideTasksLoading, onCreateSideTask, onOpenSideTask, onArchiveSideTasks, onUnarchiveSideTasks, onSideTaskMenuOpen, onCreateSideTaskSession, onSideTaskCreated, onSideTaskTitleChange, onSideTaskInitialPromptRefused, onNestedRightPanelOpen, onNestedArtifactsChange, onOpenNestedSubagent, agentTasks, agentTraceLoading, agentTraceError, onOpenWorkflowAgent, onError, sessionWorkflowEnabled, modelManagement, unavailableModels, mountUnavailableModelTooltip, workflow, onImageIngestionNotice, deferSubagentMount, onClose, variant, fullscreen, onToggleFullscreen, }: ArtifactPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
284
286
|
export {};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { DaemonSessionActions } from '@qwen-code/web-shell/daemon-react-sdk';
|
|
1
|
+
import type { DaemonContextMemoryDetail, DaemonSessionActions } from '@qwen-code/web-shell/daemon-react-sdk';
|
|
2
2
|
import type { ContextUsageControls } from '../../hooks/useContextUsageControls';
|
|
3
|
-
export declare function ContextUsagePanel({ sessionActions, sessionId, controls, }: {
|
|
3
|
+
export declare function ContextUsagePanel({ sessionActions, sessionId, controls, onOpenMemoryFile, }: {
|
|
4
4
|
sessionActions?: DaemonSessionActions;
|
|
5
5
|
sessionId: string;
|
|
6
6
|
controls?: Omit<ContextUsageControls, 'captureOwner'>;
|
|
7
|
+
onOpenMemoryFile?: (file: DaemonContextMemoryDetail, workspaceCwd: string) => void;
|
|
7
8
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Qwen Team
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { DaemonSessionStatsModelMetrics } from '@qwen-code/web-shell/daemon-react-sdk';
|
|
7
|
+
type TimingSample = NonNullable<DaemonSessionStatsModelMetrics['timingSamples']>[number];
|
|
8
|
+
type FailureSample = NonNullable<DaemonSessionStatsModelMetrics['failures']>['recent'][number];
|
|
9
|
+
export interface TrendSeries {
|
|
10
|
+
key: string;
|
|
11
|
+
label: string;
|
|
12
|
+
/** Color slot shared with the model card. */
|
|
13
|
+
color: string;
|
|
14
|
+
samples: TimingSample[];
|
|
15
|
+
failures: FailureSample[];
|
|
16
|
+
}
|
|
17
|
+
export type TrendMetric = 'speed' | 'ttft';
|
|
18
|
+
/** Output tokens per second, or undefined when the window is too short. */
|
|
19
|
+
export declare function sampleSpeed(sample: TimingSample): number | undefined;
|
|
20
|
+
/** Linear-interpolated quantile of an unsorted list; undefined when empty. */
|
|
21
|
+
export declare function quantile(values: number[], q: number): number | undefined;
|
|
22
|
+
export declare function TokenUsageTrend({ series }: {
|
|
23
|
+
series: TrendSeries[];
|
|
24
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
/** Per-model output-speed spread: every sample as a dot on a shared scale. */
|
|
26
|
+
export declare function SpeedSpread({ samples, scaleMax, }: {
|
|
27
|
+
samples: TimingSample[];
|
|
28
|
+
scaleMax: number;
|
|
29
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Qwen Team
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { DaemonCapabilities, DaemonClient } from '@qwen-code/sdk/daemon';
|
|
7
|
+
export interface ContextInstructionFileContent {
|
|
8
|
+
content: string;
|
|
9
|
+
/** True when the served text is only the beginning of the file. */
|
|
10
|
+
truncated: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Read a context instruction file for the read-only preview.
|
|
14
|
+
*
|
|
15
|
+
* The read goes through the session's owning workspace, never the primary:
|
|
16
|
+
* a secondary workspace's file is outside the primary sandbox and the
|
|
17
|
+
* primary file route rejects it. The backend only exposes an `absolutePath`
|
|
18
|
+
* for files this preview can open, so a path inside the workspace is read
|
|
19
|
+
* through that workspace's file route, and a path outside it must be a
|
|
20
|
+
* global memory file, served by the (workspace-independent) memory route.
|
|
21
|
+
*/
|
|
22
|
+
export declare function readContextInstructionFile(client: DaemonClient, capabilities: DaemonCapabilities | undefined, workspaceCwd: string, absolutePath: string): Promise<ContextInstructionFileContent>;
|
|
@@ -20,12 +20,15 @@ export interface ChannelEditorDraft {
|
|
|
20
20
|
groupSenders: ChannelGroupSenders;
|
|
21
21
|
groupAllowedUsers: string;
|
|
22
22
|
}
|
|
23
|
-
export type ChannelEditorValidationCode = 'required' | 'credential' | 'duplicate' | 'invalid' | 'invalidGroupId' | 'invalidOption' | 'number' | 'outOfRange' | 'policy';
|
|
23
|
+
export type ChannelEditorValidationCode = 'required' | 'credential' | 'duplicate' | 'invalid' | 'invalidGroupId' | 'invalidOption' | 'invalidRepoId' | 'conflictingRepoAliases' | 'number' | 'outOfRange' | 'policy';
|
|
24
24
|
export type ChannelEditorValidationErrors = Record<string, ChannelEditorValidationCode>;
|
|
25
|
+
/** Access fields that only gate direct messages, which repository-only channels never receive. */
|
|
26
|
+
export declare const PRIVATE_ONLY_FIELD_KEYS: Set<string>;
|
|
27
|
+
export declare function toList(value: string): string[];
|
|
25
28
|
export declare function hasDescriptorPrivatePolicy(descriptor: DaemonChannelTypeDescriptor): boolean;
|
|
26
29
|
export declare function hasDescriptorGroupPolicy(descriptor: DaemonChannelTypeDescriptor): boolean;
|
|
27
30
|
export declare function defaultGroupSenders(): Exclude<ChannelGroupSenders, ''>;
|
|
28
31
|
export declare function configuredPrivatePolicy(instance?: DaemonChannelInstanceSnapshot): string;
|
|
29
32
|
export declare function createChannelEditorDraft(descriptor: DaemonChannelTypeDescriptor, instance?: DaemonChannelInstanceSnapshot): ChannelEditorDraft;
|
|
30
|
-
export declare function validateChannelEditorDraft(descriptor: DaemonChannelTypeDescriptor, draft: ChannelEditorDraft, existingNames: readonly string[]): ChannelEditorValidationErrors;
|
|
33
|
+
export declare function validateChannelEditorDraft(descriptor: DaemonChannelTypeDescriptor, draft: ChannelEditorDraft, existingNames: readonly string[], instance?: DaemonChannelInstanceSnapshot): ChannelEditorValidationErrors;
|
|
31
34
|
export declare function buildChannelUpsertRequest(descriptor: DaemonChannelTypeDescriptor, draft: ChannelEditorDraft, expectedRevision: string, instance?: DaemonChannelInstanceSnapshot): DaemonChannelUpsertRequest;
|
|
@@ -7,3 +7,4 @@ import type { DaemonChannelTypeDescriptor } from '@qwen-code/sdk/daemon';
|
|
|
7
7
|
export declare const PLATFORM_MARKS: Record<string, string>;
|
|
8
8
|
export declare function isSupportedChannelType(type: unknown): type is 'dingtalk' | 'dws' | 'wecom' | 'wecom-callback' | 'feishu' | 'github' | 'gitlab';
|
|
9
9
|
export declare function isChannelPlatformAvailable(descriptor: DaemonChannelTypeDescriptor): boolean;
|
|
10
|
+
export declare function isRepositoryOnlyChannelType(type: unknown): boolean;
|
|
@@ -3,6 +3,7 @@ import { type SkillInfo } from '../../completions/slashCompletion';
|
|
|
3
3
|
import type { CommandDisplayCategoryOrder } from '../../utils/commandDisplay';
|
|
4
4
|
import type { WebShellComposerTag } from '../../customization';
|
|
5
5
|
import type { AtMentionWorkspaceActions } from '../../hooks/useAtMentionSources';
|
|
6
|
+
import { type WorkflowModeControlOptions } from '../workflow-mode-control-state';
|
|
6
7
|
export interface AddMenuProps {
|
|
7
8
|
disabled?: boolean;
|
|
8
9
|
availabilityKey: string;
|
|
@@ -23,6 +24,7 @@ export interface AddMenuProps {
|
|
|
23
24
|
* Omitted when the host has not enabled Plan.
|
|
24
25
|
*/
|
|
25
26
|
plan?: AddMenuPlanControl;
|
|
27
|
+
workflow?: WorkflowModeControlOptions;
|
|
26
28
|
btw?: {
|
|
27
29
|
onSelect: () => void;
|
|
28
30
|
disabledReason?: string;
|
|
@@ -44,4 +46,4 @@ export interface AddMenuPlanControl {
|
|
|
44
46
|
disabled?: boolean;
|
|
45
47
|
onToggle: () => void;
|
|
46
48
|
}
|
|
47
|
-
export declare function AddMenu({ disabled, availabilityKey, addFileAvailable, uploadAvailable, onAddFiles, onFilePickerCancel, onInsertReference, onPrependSkill, getWorkspaceActions, skills, onSkillsOpenChange, skillsLoading, skillsLoadError, skillsLoaded, plan, btw, mobileActions, commandsOnly, simpleMode, }: AddMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
49
|
+
export declare function AddMenu({ disabled, availabilityKey, addFileAvailable, uploadAvailable, onAddFiles, onFilePickerCancel, onInsertReference, onPrependSkill, getWorkspaceActions, skills, onSkillsOpenChange, skillsLoading, skillsLoadError, skillsLoaded, plan, workflow, btw, mobileActions, commandsOnly, simpleMode, }: AddMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -57,7 +57,7 @@ export interface paths {
|
|
|
57
57
|
};
|
|
58
58
|
get?: never;
|
|
59
59
|
put?: never;
|
|
60
|
-
/** @description
|
|
60
|
+
/** @description Requires current Session read authorization. Read the most recent limit current message Items and selected bounded Turn control events; olderCursor pages toward older Items. Bodies and statuses remain live. The response coveredSequence and lastSequence both identify actual message projection coverage for SSE continuation, never an unmaterialized event tail. No persisted conversation snapshot or whole-history replay is read. Projection rebuild invalidates cursors. If projection coverage is below the replay floor, return retryable message_projection_pending. */
|
|
61
61
|
post: operations["webShellTranscript"];
|
|
62
62
|
delete?: never;
|
|
63
63
|
options?: never;
|
|
@@ -74,7 +74,7 @@ export interface paths {
|
|
|
74
74
|
};
|
|
75
75
|
get?: never;
|
|
76
76
|
put?: never;
|
|
77
|
-
/** @description POST SSE consumed through fetch response.body. An afterSequence strictly below the durable replay floor ends the stream with one agent.session.resync_required frame. Projection rebuilds preserve that floor and
|
|
77
|
+
/** @description POST SSE consumed through fetch response.body. An afterSequence strictly below the durable replay floor ends the stream with one agent.session.resync_required frame. Projection rebuilds preserve that floor and invalidate message-page cursors. On the resync frame, reload the transcript and resume after its lastSequence. */
|
|
78
78
|
post: operations["webShellStreamEvents"];
|
|
79
79
|
delete?: never;
|
|
80
80
|
options?: never;
|
|
@@ -803,8 +803,8 @@ export interface paths {
|
|
|
803
803
|
get?: never;
|
|
804
804
|
put?: never;
|
|
805
805
|
/**
|
|
806
|
-
* Read one
|
|
807
|
-
* @description Requires current Session read authorization on every page.
|
|
806
|
+
* Read one current Session message page for exports
|
|
807
|
+
* @description Requires current Session read authorization on every page. Read current message bodies forward within the first request sequence membership bound. snapshotThroughSequence retains its wire name for that fixed bound and does not change between pages. Content and status may change; no frozen snapshot version or cursor retention is provided. An initial projection behind committed events returns retryable message_projection_pending instead of silently exporting incomplete history. No private journal, Runtime or storage credentials are returned. A projection-generation change returns 409 message_projection_changed; discard the cursor and restart this read.
|
|
808
808
|
*/
|
|
809
809
|
post: operations["webShellExportSession"];
|
|
810
810
|
delete?: never;
|
|
@@ -1125,6 +1125,26 @@ export interface paths {
|
|
|
1125
1125
|
patch?: never;
|
|
1126
1126
|
trace?: never;
|
|
1127
1127
|
};
|
|
1128
|
+
"/api/agent/web-shell/v1/transcript/items/query": {
|
|
1129
|
+
parameters: {
|
|
1130
|
+
query?: never;
|
|
1131
|
+
header?: never;
|
|
1132
|
+
path?: never;
|
|
1133
|
+
cookie?: never;
|
|
1134
|
+
};
|
|
1135
|
+
get?: never;
|
|
1136
|
+
put?: never;
|
|
1137
|
+
/**
|
|
1138
|
+
* Read recent current Session Items and page toward older Items
|
|
1139
|
+
* @description Requires current Session read authorization on every page. Read at most limit recent current message Items in chronological order; nextCursor continues toward older Items in the initial sequence membership range. snapshotThroughSequence names that fixed membership upper bound, while bodies and statuses remain live. Cursors bind scope, backward direction and projection generation. Rebuild invalidates the cursor. No snapshot copies are generated and no live tail is scanned; transcript reads provide actual projection coverage for SSE handoff. Projection coverage below the replay floor returns retryable message_projection_pending.
|
|
1140
|
+
*/
|
|
1141
|
+
post: operations["webShellRecentTranscriptItems"];
|
|
1142
|
+
delete?: never;
|
|
1143
|
+
options?: never;
|
|
1144
|
+
head?: never;
|
|
1145
|
+
patch?: never;
|
|
1146
|
+
trace?: never;
|
|
1147
|
+
};
|
|
1128
1148
|
}
|
|
1129
1149
|
export type webhooks = Record<string, never>;
|
|
1130
1150
|
export interface components {
|
|
@@ -1432,11 +1452,17 @@ export interface components {
|
|
|
1432
1452
|
WebShellTranscript: {
|
|
1433
1453
|
items: components["schemas"]["WebShellItem"][];
|
|
1434
1454
|
events: components["schemas"]["WebShellEvent"][];
|
|
1435
|
-
/**
|
|
1455
|
+
/**
|
|
1456
|
+
* Format: int64
|
|
1457
|
+
* @description Actual message projection coverage of this read; resume SSE after this sequence.
|
|
1458
|
+
*/
|
|
1436
1459
|
coveredSequence: number;
|
|
1437
1460
|
olderCursor?: string | null;
|
|
1438
1461
|
hasMore: boolean;
|
|
1439
|
-
/**
|
|
1462
|
+
/**
|
|
1463
|
+
* Format: int64
|
|
1464
|
+
* @description Actual message projection coverage for SSE handoff, equal to coveredSequence; unmaterialized tail events are delivered by SSE.
|
|
1465
|
+
*/
|
|
1440
1466
|
lastSequence: number;
|
|
1441
1467
|
};
|
|
1442
1468
|
WebShellContentPart: {
|
|
@@ -1499,7 +1525,10 @@ export interface components {
|
|
|
1499
1525
|
sessionId: string;
|
|
1500
1526
|
/** Format: int64 */
|
|
1501
1527
|
replayFloorSequence: number;
|
|
1502
|
-
/**
|
|
1528
|
+
/**
|
|
1529
|
+
* Format: int64
|
|
1530
|
+
* @description Retained wire name for current message projection coverage; no persisted conversation snapshot is implied.
|
|
1531
|
+
*/
|
|
1503
1532
|
snapshotThroughSequence: number;
|
|
1504
1533
|
/** @constant */
|
|
1505
1534
|
action: "reload_snapshot";
|
|
@@ -2385,7 +2414,10 @@ export interface components {
|
|
|
2385
2414
|
items: components["schemas"]["WebShellItem"][];
|
|
2386
2415
|
nextCursor?: string | null;
|
|
2387
2416
|
hasMore: boolean;
|
|
2388
|
-
/**
|
|
2417
|
+
/**
|
|
2418
|
+
* Format: int64
|
|
2419
|
+
* @description Fixed first-request sequence membership upper bound. Bodies and statuses are read live on every page; this does not identify a retained content version.
|
|
2420
|
+
*/
|
|
2389
2421
|
snapshotThroughSequence: number;
|
|
2390
2422
|
};
|
|
2391
2423
|
WebShellExportRequest: {
|
|
@@ -2701,8 +2733,8 @@ export interface components {
|
|
|
2701
2733
|
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
2702
2734
|
};
|
|
2703
2735
|
};
|
|
2704
|
-
/** @description
|
|
2705
|
-
|
|
2736
|
+
/** @description Task event cursor is strictly below the task's durable retention floor, which survives an empty retained set; equality is valid. The envelope's replay_floor_sequence and snapshot_through_sequence stay absent because task cursors are opaque. */
|
|
2737
|
+
TaskCursorExpired: {
|
|
2706
2738
|
headers: {
|
|
2707
2739
|
[name: string]: unknown;
|
|
2708
2740
|
};
|
|
@@ -2710,8 +2742,8 @@ export interface components {
|
|
|
2710
2742
|
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
2711
2743
|
};
|
|
2712
2744
|
};
|
|
2713
|
-
/** @description
|
|
2714
|
-
|
|
2745
|
+
/** @description A dependency such as the Hosted Harness is unavailable; retry later. */
|
|
2746
|
+
Unavailable: {
|
|
2715
2747
|
headers: {
|
|
2716
2748
|
[name: string]: unknown;
|
|
2717
2749
|
};
|
|
@@ -2719,8 +2751,35 @@ export interface components {
|
|
|
2719
2751
|
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
2720
2752
|
};
|
|
2721
2753
|
};
|
|
2722
|
-
/** @description
|
|
2723
|
-
|
|
2754
|
+
/** @description 409 message_projection_changed: the message projection generation changed. Discard the message cursor and restart this read; this is not replay-floor cursor expiration. */
|
|
2755
|
+
MessageProjectionChanged: {
|
|
2756
|
+
headers: {
|
|
2757
|
+
[name: string]: unknown;
|
|
2758
|
+
};
|
|
2759
|
+
content: {
|
|
2760
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
2761
|
+
};
|
|
2762
|
+
};
|
|
2763
|
+
/** @description 413 message_page_too_large: selected message bodies or Turn control events exceed the response byte budget. Reducing limit can help a multi-Item page, but a single oversized Item cannot be returned even with limit=1. Signed POST requests may also return payload_too_large when their request body exceeds the configured signed-body limit. */
|
|
2764
|
+
MessagePageTooLarge: {
|
|
2765
|
+
headers: {
|
|
2766
|
+
[name: string]: unknown;
|
|
2767
|
+
};
|
|
2768
|
+
content: {
|
|
2769
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
2770
|
+
};
|
|
2771
|
+
};
|
|
2772
|
+
/** @description 400 invalid_message_cursor for malformed, wrong-scope, wrong-direction or out-of-range message cursors; invalid_limit outside 1..100; invalid_event_cursor for a negative numeric after. */
|
|
2773
|
+
InvalidMessagePage: {
|
|
2774
|
+
headers: {
|
|
2775
|
+
[name: string]: unknown;
|
|
2776
|
+
};
|
|
2777
|
+
content: {
|
|
2778
|
+
"application/json": components["schemas"]["ErrorEnvelope"];
|
|
2779
|
+
};
|
|
2780
|
+
};
|
|
2781
|
+
/** @description 503 message_projection_pending: projection coverage is below the replay floor, or the initial forward read is behind committed events. Retry after message projection catches up. */
|
|
2782
|
+
MessageProjectionPending: {
|
|
2724
2783
|
headers: {
|
|
2725
2784
|
[name: string]: unknown;
|
|
2726
2785
|
};
|
|
@@ -2855,11 +2914,13 @@ export interface operations {
|
|
|
2855
2914
|
"application/json": components["schemas"]["WebShellTranscript"];
|
|
2856
2915
|
};
|
|
2857
2916
|
};
|
|
2858
|
-
400: components["responses"]["
|
|
2917
|
+
400: components["responses"]["InvalidMessagePage"];
|
|
2859
2918
|
401: components["responses"]["Unauthorized"];
|
|
2860
2919
|
403: components["responses"]["Forbidden"];
|
|
2861
2920
|
404: components["responses"]["NotFound"];
|
|
2862
|
-
|
|
2921
|
+
409: components["responses"]["MessageProjectionChanged"];
|
|
2922
|
+
413: components["responses"]["MessagePageTooLarge"];
|
|
2923
|
+
503: components["responses"]["MessageProjectionPending"];
|
|
2863
2924
|
};
|
|
2864
2925
|
};
|
|
2865
2926
|
webShellStreamEvents: {
|
|
@@ -4341,7 +4402,7 @@ export interface operations {
|
|
|
4341
4402
|
};
|
|
4342
4403
|
};
|
|
4343
4404
|
responses: {
|
|
4344
|
-
/** @description
|
|
4405
|
+
/** @description Chronological page of current message Items within the initial sequence membership range; content remains live. */
|
|
4345
4406
|
200: {
|
|
4346
4407
|
headers: {
|
|
4347
4408
|
[name: string]: unknown;
|
|
@@ -4350,12 +4411,13 @@ export interface operations {
|
|
|
4350
4411
|
"application/json": components["schemas"]["WebShellExportPage"];
|
|
4351
4412
|
};
|
|
4352
4413
|
};
|
|
4353
|
-
400: components["responses"]["
|
|
4414
|
+
400: components["responses"]["InvalidMessagePage"];
|
|
4354
4415
|
401: components["responses"]["Unauthorized"];
|
|
4355
4416
|
403: components["responses"]["Forbidden"];
|
|
4356
4417
|
404: components["responses"]["NotFound"];
|
|
4357
|
-
409: components["responses"]["
|
|
4358
|
-
413: components["responses"]["
|
|
4418
|
+
409: components["responses"]["MessageProjectionChanged"];
|
|
4419
|
+
413: components["responses"]["MessagePageTooLarge"];
|
|
4420
|
+
503: components["responses"]["MessageProjectionPending"];
|
|
4359
4421
|
};
|
|
4360
4422
|
};
|
|
4361
4423
|
webShellQueryUserMessages: {
|
|
@@ -4965,4 +5027,35 @@ export interface operations {
|
|
|
4965
5027
|
409: components["responses"]["Conflict"];
|
|
4966
5028
|
};
|
|
4967
5029
|
};
|
|
5030
|
+
webShellRecentTranscriptItems: {
|
|
5031
|
+
parameters: {
|
|
5032
|
+
query?: never;
|
|
5033
|
+
header?: never;
|
|
5034
|
+
path?: never;
|
|
5035
|
+
cookie?: never;
|
|
5036
|
+
};
|
|
5037
|
+
requestBody: {
|
|
5038
|
+
content: {
|
|
5039
|
+
"application/json": components["schemas"]["WebShellExportRequest"];
|
|
5040
|
+
};
|
|
5041
|
+
};
|
|
5042
|
+
responses: {
|
|
5043
|
+
/** @description Bounded recent current message Item page. Items are chronological within each page. */
|
|
5044
|
+
200: {
|
|
5045
|
+
headers: {
|
|
5046
|
+
[name: string]: unknown;
|
|
5047
|
+
};
|
|
5048
|
+
content: {
|
|
5049
|
+
"application/json": components["schemas"]["WebShellExportPage"];
|
|
5050
|
+
};
|
|
5051
|
+
};
|
|
5052
|
+
400: components["responses"]["InvalidMessagePage"];
|
|
5053
|
+
401: components["responses"]["Unauthorized"];
|
|
5054
|
+
403: components["responses"]["Forbidden"];
|
|
5055
|
+
404: components["responses"]["NotFound"];
|
|
5056
|
+
409: components["responses"]["MessageProjectionChanged"];
|
|
5057
|
+
413: components["responses"]["MessagePageTooLarge"];
|
|
5058
|
+
503: components["responses"]["MessageProjectionPending"];
|
|
5059
|
+
};
|
|
5060
|
+
};
|
|
4968
5061
|
}
|
|
@@ -37,7 +37,8 @@ export interface JavaManagedAgentClientOptions {
|
|
|
37
37
|
export declare class JavaManagedAgentHttpError extends Error {
|
|
38
38
|
readonly status: number;
|
|
39
39
|
readonly code: string;
|
|
40
|
-
|
|
40
|
+
readonly requestId?: string | undefined;
|
|
41
|
+
constructor(status: number, code: string, message: string, requestId?: string | undefined);
|
|
41
42
|
}
|
|
42
43
|
export declare class JavaManagedAgentClient {
|
|
43
44
|
private readonly options;
|
|
@@ -128,6 +129,7 @@ export declare class JavaManagedAgentClient {
|
|
|
128
129
|
snapshotThroughSequence: number;
|
|
129
130
|
}>;
|
|
130
131
|
getTranscript(request: Schemas['WebShellTranscriptRequest'], signal?: AbortSignal): Promise<JavaAgentTranscript>;
|
|
132
|
+
getRecentTranscriptItems(request: Schemas['WebShellExportRequest'], signal?: AbortSignal): Promise<Schemas['WebShellExportPage']>;
|
|
131
133
|
createSession(request: Schemas['WebShellCreateRequest'], signal?: AbortSignal): Promise<JavaAgentCommandAdmission>;
|
|
132
134
|
worktreeOptions(request: Schemas['WebShellSessionWorktreeOptionsRequest'], signal?: AbortSignal): Promise<Schemas['WebShellSessionWorktreeOptions']>;
|
|
133
135
|
listSessionWorktrees(workspaceId: string, signal?: AbortSignal): Promise<Schemas['WebShellSessionWorktreePage']>;
|
|
@@ -159,7 +159,7 @@ export interface ManagedAgentSessionEvent {
|
|
|
159
159
|
turnId: string;
|
|
160
160
|
data?: unknown;
|
|
161
161
|
/**
|
|
162
|
-
* Projected from a
|
|
162
|
+
* Projected from a materialized Item rather than a raw event. The
|
|
163
163
|
* server can retract its items (reconciliation), after which these
|
|
164
164
|
* projections must not survive a resync.
|
|
165
165
|
*/
|
|
@@ -169,6 +169,7 @@ export interface ManagedAgentSessionTranscript {
|
|
|
169
169
|
events: ManagedAgentSessionEvent[];
|
|
170
170
|
olderCursor?: string;
|
|
171
171
|
lastEventId: number;
|
|
172
|
+
history?: 'items';
|
|
172
173
|
}
|
|
173
174
|
export interface ManagedAgentTurnAdmission {
|
|
174
175
|
sessionId: string;
|
|
@@ -231,6 +232,7 @@ export interface ManagedAgentProvider {
|
|
|
231
232
|
exportSnapshot?(sessionId: string, options: ManagedAgentRequestOptions & {
|
|
232
233
|
cursor?: string;
|
|
233
234
|
}): Promise<ManagedExportPage>;
|
|
235
|
+
readonly exportConsistency?: 'live';
|
|
234
236
|
readonly storageKey: string;
|
|
235
237
|
readonly canCancel: boolean;
|
|
236
238
|
/** Present when the provider can filter the complete Session history by title. */
|
|
@@ -13,6 +13,7 @@ export interface ManagedReadingExport {
|
|
|
13
13
|
session: ManagedAgentSessionSummary;
|
|
14
14
|
exportedAt: string;
|
|
15
15
|
snapshotThroughSequence: number;
|
|
16
|
+
consistency?: 'live';
|
|
16
17
|
blocks: ExportBlock[];
|
|
17
18
|
}
|
|
18
19
|
export declare function collectManagedReadingExport(provider: ManagedAgentProvider, clientId: string, sessionId: string, signal: AbortSignal): Promise<ManagedReadingExport>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Message } from '../../adapters/types';
|
|
2
2
|
import type { ManagedAgentSessionEvent } from './managed-agent-provider';
|
|
3
|
-
export declare function mergeManagedEvents(current: readonly ManagedAgentSessionEvent[], incoming: readonly ManagedAgentSessionEvent[]): ManagedAgentSessionEvent[];
|
|
3
|
+
export declare function mergeManagedEvents(current: readonly ManagedAgentSessionEvent[], incoming: readonly ManagedAgentSessionEvent[], itemPages?: boolean): ManagedAgentSessionEvent[];
|
|
4
4
|
export declare function managedEventsToMessages(events: readonly ManagedAgentSessionEvent[], truncatedLabel: string): Message[];
|
|
5
5
|
export declare function createManagedMessageProjector(): (events: readonly ManagedAgentSessionEvent[], truncatedLabel: string) => Message[];
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import type { DaemonSessionContextUsageStatus } from '@qwen-code/web-shell/daemon-react-sdk';
|
|
1
|
+
import type { DaemonContextMemoryDetail, DaemonSessionContextUsageStatus } from '@qwen-code/web-shell/daemon-react-sdk';
|
|
2
2
|
export declare function createContextUsageMessageData(status: DaemonSessionContextUsageStatus): {
|
|
3
3
|
type: string;
|
|
4
4
|
status: DaemonSessionContextUsageStatus;
|
|
5
5
|
};
|
|
6
6
|
export declare function serializeContextUsageMessage(status: DaemonSessionContextUsageStatus): string;
|
|
7
7
|
export declare function parseContextUsageMessage(content: string, data?: unknown): DaemonSessionContextUsageStatus | null;
|
|
8
|
-
export declare function ContextUsageMessage({ status, onShowDetail, compact, }: {
|
|
8
|
+
export declare function ContextUsageMessage({ status, onShowDetail, compact, onOpenMemoryFile, }: {
|
|
9
9
|
status: DaemonSessionContextUsageStatus;
|
|
10
10
|
/** Run /context detail, exactly like typing it. */
|
|
11
11
|
onShowDetail?: () => void;
|
|
12
12
|
compact?: boolean;
|
|
13
|
+
/** Open a memory file row in a read-only preview. */
|
|
14
|
+
onOpenMemoryFile?: (file: DaemonContextMemoryDetail) => void;
|
|
13
15
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { DaemonContextMemoryDetail } from '@qwen-code/web-shell/daemon-react-sdk';
|
|
1
2
|
interface SystemMessageProps {
|
|
2
3
|
content: string;
|
|
3
4
|
variant: 'info' | 'error' | 'warning';
|
|
@@ -14,6 +15,8 @@ interface SystemMessageProps {
|
|
|
14
15
|
}>;
|
|
15
16
|
/** Run /context detail, exactly like typing it (context-usage panels). */
|
|
16
17
|
onShowContextDetail?: () => void;
|
|
18
|
+
/** Open a context instruction file in a read-only preview. */
|
|
19
|
+
onOpenMemoryFile?: (file: DaemonContextMemoryDetail, workspaceCwd: string) => void;
|
|
17
20
|
onLocateBackgroundSource?: (messageId: string, callId?: string) => boolean;
|
|
18
21
|
/** Click an image to preview it in the right panel. */
|
|
19
22
|
onImagePreview?: (src: string, alt?: string) => void;
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
interface DiffViewProps {
|
|
2
2
|
diff: string;
|
|
3
|
+
/**
|
|
4
|
+
* The surrounding region scrolls instead of the line list (floating
|
|
5
|
+
* approval card): the list fills that region with its full height instead
|
|
6
|
+
* of capping itself at 400px with a nested scrollbar.
|
|
7
|
+
*/
|
|
8
|
+
fillScrollRegion?: boolean;
|
|
3
9
|
}
|
|
4
10
|
export declare const DiffView: import("react").NamedExoticComponent<DiffViewProps>;
|
|
5
11
|
export {};
|
|
@@ -5,6 +5,7 @@ type PluginTab = 'extensions' | 'mcp' | 'skills' | 'agents';
|
|
|
5
5
|
interface PluginManagerPageProps {
|
|
6
6
|
onClose: () => void;
|
|
7
7
|
onUseSkill: (name: string) => void;
|
|
8
|
+
showBackButton?: boolean;
|
|
8
9
|
initialFocusRef?: Ref<HTMLButtonElement>;
|
|
9
10
|
initialTab?: PluginTab;
|
|
10
11
|
skillsWorkspaceCwd?: string;
|
|
@@ -13,5 +14,5 @@ interface PluginManagerPageProps {
|
|
|
13
14
|
managedExtensions?: Omit<ManagedExtensionsManagerPageProps, 'onClose'>;
|
|
14
15
|
managedMcp?: ManagedMcpManagerPageProps;
|
|
15
16
|
}
|
|
16
|
-
export declare function PluginManagerPage({ onClose, onUseSkill, initialFocusRef, initialTab, skillsWorkspaceCwd, onSkillsWorkspaceChange, managedSkills, managedExtensions, managedMcp, }: PluginManagerPageProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export declare function PluginManagerPage({ onClose, onUseSkill, showBackButton, initialFocusRef, initialTab, skillsWorkspaceCwd, onSkillsWorkspaceChange, managedSkills, managedExtensions, managedMcp, }: PluginManagerPageProps): import("react/jsx-runtime").JSX.Element;
|
|
17
18
|
export {};
|