@qwen-code/web-shell 0.24.7 → 0.25.0
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 +65 -2
- package/dist/ThreadsRoute-CtecWS_K.js +2358 -0
- package/dist/daemon-react-sdk.js +1 -1
- package/dist/index-tVJkU24-.js +123317 -0
- package/dist/index.js +69 -120254
- package/dist/sw.js +1 -1
- package/dist/{toolNames-B0O1UjKB.js → toolNames-CAeFJ9L9.js} +5385 -4626
- package/dist/transcript.js +8972 -8737
- package/dist/types/App.d.ts +2 -2
- package/dist/types/ManagedAgentWebShell.d.ts +1 -0
- package/dist/types/adapters/messageTypes.d.ts +15 -0
- package/dist/types/components/ChatEditor.d.ts +1 -0
- package/dist/types/components/DesktopRelayControl.d.ts +2 -1
- package/dist/types/components/LocalFilesControl.d.ts +3 -1
- package/dist/types/components/MessageItem.d.ts +1 -0
- package/dist/types/components/MessageList.d.ts +1 -0
- package/dist/types/components/agents/AgentCreatePage.d.ts +29 -1
- package/dist/types/components/agents/AgentsManagerPage.d.ts +6 -1
- package/dist/types/components/artifacts/ArtifactPanel.d.ts +8 -1
- package/dist/types/components/artifacts/TrajectoryInspector.d.ts +3 -1
- package/dist/types/components/artifacts/TrajectoryOverview.d.ts +3 -1
- package/dist/types/components/artifacts/TrajectoryWaterfallCell.d.ts +15 -0
- package/dist/types/components/channels/ChannelsManagerPage.d.ts +1 -1
- package/dist/types/components/extensions/extensions-manager-logic.d.ts +3 -3
- package/dist/types/components/managed/ManagedToolResultPanel.d.ts +9 -0
- package/dist/types/components/managed/ManagedToolResultSummary.d.ts +5 -0
- package/dist/types/components/managed/generated/managed-agent-api.d.ts +724 -9
- package/dist/types/components/managed/java-managed-agent-client.d.ts +26 -0
- package/dist/types/components/managed/java-managed-agent-provider.d.ts +4 -0
- package/dist/types/components/managed/managed-agent-provider.d.ts +34 -1
- package/dist/types/components/managed/managed-agent-sse.test-fixtures.d.ts +8 -0
- package/dist/types/components/managed/managed-approval.d.ts +10 -0
- package/dist/types/components/managed/managed-artifact-download.d.ts +2 -0
- package/dist/types/components/managed/managed-request-error.d.ts +14 -0
- package/dist/types/components/managed/managed-tool-result-types.d.ts +24 -0
- package/dist/types/components/managed/managed-tool-result.test-fixtures.d.ts +6 -0
- package/dist/types/components/managed/use-managed-actions.d.ts +33 -0
- package/dist/types/components/messages/AssistantMessage.d.ts +3 -0
- package/dist/types/components/messages/AuthorAvatar.d.ts +16 -0
- package/dist/types/components/messages/ContextUsageMessage.d.ts +5 -1
- package/dist/types/components/messages/StatsMessage.d.ts +6 -1
- package/dist/types/components/messages/ToolApproval.d.ts +9 -1
- package/dist/types/components/messages/ToolGroup.d.ts +2 -0
- package/dist/types/components/sidebar/UpdateControl.d.ts +3 -1
- package/dist/types/components/sidebar/WebShellSidebar.d.ts +18 -5
- package/dist/types/components/sidebar/WorkspaceSection.d.ts +3 -1
- package/dist/types/components/sidebar/sessionSearch.d.ts +2 -1
- package/dist/types/components/workspace-agents/LazyThreadsRoute.d.ts +7 -0
- package/dist/types/components/workspace-agents/ThreadChat.d.ts +35 -0
- package/dist/types/components/workspace-agents/ThreadView.d.ts +72 -0
- package/dist/types/components/workspace-agents/ThreadsPage.d.ts +146 -0
- package/dist/types/components/workspace-agents/ThreadsRoute.d.ts +23 -0
- package/dist/types/components/workspace-agents/add-runtime-dialog.d.ts +47 -0
- package/dist/types/components/workspace-agents/agent-events.d.ts +50 -0
- package/dist/types/components/workspace-agents/agents-view-logic.d.ts +180 -0
- package/dist/types/components/workspace-agents/messages.d.ts +16 -0
- package/dist/types/components/workspace-agents/messages.transcript-stub.d.ts +12 -0
- package/dist/types/components/workspace-agents/share-agent-dialog.d.ts +33 -0
- package/dist/types/components/workspace-agents/threads-api.d.ts +63 -0
- package/dist/types/components/workspace-agents/useAgentChatEntry.d.ts +36 -0
- package/dist/types/components/workspace-agents/useProjectConversations.d.ts +10 -0
- package/dist/types/customization.d.ts +10 -0
- package/dist/types/daemon/workspace/hooks/useDaemonMemory.d.ts +4 -0
- package/dist/types/daemon/workspace/types.d.ts +6 -2
- package/dist/types/index.d.ts +2 -1
- package/dist/types/live/LiveVoiceButton.d.ts +2 -1
- package/dist/types/navigation.d.ts +1 -0
- package/dist/types/settings.d.ts +1 -0
- package/dist/types/trajectory/buildTrajectoryLayout.d.ts +27 -0
- package/dist/types/trajectory/types.d.ts +2 -1
- package/dist/types/trajectory/useTimelineViewport.d.ts +19 -0
- package/dist/types/utils/composerTag.d.ts +6 -1
- package/dist/types/utils/modelEncoding.d.ts +6 -0
- package/dist/types/utils/navigationUrl.d.ts +1 -1
- package/dist/types/utils/workspace.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { components } from './generated/managed-agent-api';
|
|
2
|
+
import type { ManagedArtifact } from './managed-tool-result-types';
|
|
2
3
|
type Schemas = components['schemas'];
|
|
3
4
|
export type JavaAgentDate = number | string;
|
|
4
5
|
export type JavaAgentTurn = Schemas['WebShellTurn'];
|
|
@@ -17,11 +18,14 @@ export type JavaAgentSessionPage = Omit<Schemas['WebShellSessionPage'], 'data'>
|
|
|
17
18
|
};
|
|
18
19
|
export type JavaAgentEvent = Schemas['WebShellEvent'];
|
|
19
20
|
export type JavaAgentResyncRequired = Schemas['WebShellResyncRequired'];
|
|
21
|
+
export declare const SKIP_ON_CORRUPT: ReadonlySet<string>;
|
|
20
22
|
export declare function isJavaAgentResyncRequired(frame: JavaAgentEvent | JavaAgentResyncRequired): frame is JavaAgentResyncRequired;
|
|
21
23
|
export type JavaAgentContentPart = Schemas['WebShellContentPart'];
|
|
22
24
|
export type JavaAgentItem = Schemas['WebShellItem'];
|
|
23
25
|
export type JavaAgentCommandAdmission = Schemas['WebShellAdmission'];
|
|
24
26
|
export type JavaAgentTranscript = Schemas['WebShellTranscript'];
|
|
27
|
+
export type JavaAgentAction = Schemas['WebShellAction'];
|
|
28
|
+
export type JavaAgentActionPage = Schemas['WebShellActionPage'];
|
|
25
29
|
export interface JavaManagedAgentClientOptions {
|
|
26
30
|
baseUrl: string;
|
|
27
31
|
getHeaders?: () => HeadersInit | Promise<HeadersInit>;
|
|
@@ -52,6 +56,28 @@ export declare class JavaManagedAgentClient {
|
|
|
52
56
|
createSession(request: Schemas['WebShellCreateRequest'], signal?: AbortSignal): Promise<JavaAgentCommandAdmission>;
|
|
53
57
|
submitTurn(request: Schemas['WebShellSubmitRequest'], signal?: AbortSignal): Promise<JavaAgentCommandAdmission>;
|
|
54
58
|
cancelTurn(request: Schemas['WebShellCancelRequest'], signal?: AbortSignal): Promise<JavaAgentCommandAdmission>;
|
|
59
|
+
queryActions(request: Schemas['WebShellActionQueryRequest'], signal?: AbortSignal): Promise<JavaAgentActionPage>;
|
|
60
|
+
respondAction(request: Schemas['WebShellActionRespondRequest'], signal?: AbortSignal): Promise<Schemas['WebShellCommandOperation']>;
|
|
61
|
+
getToolResult(sessionId: string, itemId: string, signal?: AbortSignal): Promise<{
|
|
62
|
+
result: components["schemas"]["PublicToolResult"];
|
|
63
|
+
access: components["schemas"]["ArtifactAccess"];
|
|
64
|
+
}>;
|
|
65
|
+
listArtifacts(request: {
|
|
66
|
+
sessionId: string;
|
|
67
|
+
cursor?: string;
|
|
68
|
+
limit?: number;
|
|
69
|
+
}, signal?: AbortSignal): Promise<{
|
|
70
|
+
data: components["schemas"]["ArtifactResponse"][];
|
|
71
|
+
nextCursor: string | null;
|
|
72
|
+
hasMore: boolean;
|
|
73
|
+
}>;
|
|
74
|
+
getArtifact(sessionId: string, artifactId: string, signal?: AbortSignal): Promise<{
|
|
75
|
+
artifact: components["schemas"]["PublicArtifact"];
|
|
76
|
+
access: components["schemas"]["ArtifactAccess"];
|
|
77
|
+
}>;
|
|
78
|
+
readArtifactRange(artifact: ManagedArtifact, offset: number, length: number, signal?: AbortSignal): Promise<Uint8Array>;
|
|
79
|
+
openArtifactStream(artifact: ManagedArtifact, signal?: AbortSignal): Promise<ReadableStream<Uint8Array>>;
|
|
80
|
+
private artifactContent;
|
|
55
81
|
streamEvents(request: Schemas['WebShellStreamRequest'], signal?: AbortSignal): AsyncGenerator<JavaAgentEvent | JavaAgentResyncRequired>;
|
|
56
82
|
private post;
|
|
57
83
|
private request;
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { type JavaManagedAgentClientOptions } from './java-managed-agent-client';
|
|
2
|
+
import type { ManagedArtifactSave } from './managed-tool-result-types';
|
|
2
3
|
import type { ManagedAgentProvider } from './managed-agent-provider';
|
|
3
4
|
export interface JavaManagedAgentProviderOptions extends JavaManagedAgentClientOptions {
|
|
4
5
|
agentId?: string;
|
|
5
6
|
environmentId?: string;
|
|
7
|
+
/** Include tenant and actor identity; replace this scope/provider when either changes. Token refresh alone can use getHeaders. */
|
|
6
8
|
productScope?: string;
|
|
7
9
|
enableWorkspaceBinding?: boolean;
|
|
10
|
+
/** Acquire a streaming save target during the user gesture, then call openStream. */
|
|
11
|
+
saveArtifact?: ManagedArtifactSave;
|
|
8
12
|
}
|
|
9
13
|
export declare function createJavaManagedAgentProvider(options: JavaManagedAgentProviderOptions): ManagedAgentProvider;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ManagedToolResultReader } from './managed-tool-result-types';
|
|
1
2
|
export type ManagedAgentSessionPhase = 'created' | 'admitted' | 'runtime_starting' | 'agent_running' | 'waiting_runtime' | 'tool_running' | 'cancelling' | 'completed' | 'failed' | 'cancelled';
|
|
2
3
|
export type ManagedAgentRuntimeState = 'unknown' | 'starting' | 'ready' | 'failed';
|
|
3
4
|
export interface ManagedAgentSessionSummary {
|
|
@@ -18,13 +19,17 @@ export interface ManagedAgentSessionSummary {
|
|
|
18
19
|
capabilities: {
|
|
19
20
|
canSend: boolean;
|
|
20
21
|
canCancel: boolean;
|
|
22
|
+
actions?: boolean;
|
|
23
|
+
artifacts?: boolean;
|
|
24
|
+
/** The caller may submit later Turns to this Workspace-bound Session. */
|
|
25
|
+
workspaceTurns?: boolean;
|
|
21
26
|
};
|
|
22
27
|
failure?: {
|
|
23
28
|
code: string;
|
|
24
29
|
message: string;
|
|
25
30
|
};
|
|
26
31
|
}
|
|
27
|
-
export type ManagedAgentSessionEventType = 'accepted' | 'runtime_starting' | 'runtime_ready' | 'runtime_failed' | 'runtime_released' | 'agent_started' | 'assistant_thought' | 'assistant_delta' | 'tool_requested' | 'tool_started' | 'tool_completed' | 'completed' | 'failed' | 'cancelling' | 'cancelled' | 'stream_gap';
|
|
32
|
+
export type ManagedAgentSessionEventType = 'accepted' | 'runtime_starting' | 'runtime_ready' | 'runtime_failed' | 'runtime_released' | 'agent_started' | 'assistant_thought' | 'assistant_delta' | 'tool_requested' | 'tool_started' | 'tool_completed' | 'tool_result_updated' | 'completed' | 'failed' | 'cancelling' | 'cancelled' | 'action_updated' | 'stream_gap';
|
|
28
33
|
export interface ManagedAgentSessionEvent {
|
|
29
34
|
id: number;
|
|
30
35
|
at: number;
|
|
@@ -32,6 +37,12 @@ export interface ManagedAgentSessionEvent {
|
|
|
32
37
|
sessionId: string;
|
|
33
38
|
turnId: string;
|
|
34
39
|
data?: unknown;
|
|
40
|
+
/**
|
|
41
|
+
* Projected from a durable snapshot item rather than a raw event. The
|
|
42
|
+
* server can retract its items (reconciliation), after which these
|
|
43
|
+
* projections must not survive a resync.
|
|
44
|
+
*/
|
|
45
|
+
assembledFromItem?: boolean;
|
|
35
46
|
}
|
|
36
47
|
export interface ManagedAgentSessionTranscript {
|
|
37
48
|
events: ManagedAgentSessionEvent[];
|
|
@@ -49,11 +60,33 @@ export interface ManagedAgentRequestOptions {
|
|
|
49
60
|
export interface ManagedAgentCommandOptions extends ManagedAgentRequestOptions {
|
|
50
61
|
idempotencyKey: string;
|
|
51
62
|
}
|
|
63
|
+
/** A Hosted tool approval waiting for the Session owner's answer. */
|
|
64
|
+
export interface ManagedAgentPendingAction {
|
|
65
|
+
actionId: string;
|
|
66
|
+
sessionId: string;
|
|
67
|
+
/** Public Turn ID; absent when the Turn could not be resolved. */
|
|
68
|
+
turnId?: string;
|
|
69
|
+
functionCallId: string;
|
|
70
|
+
toolName: string;
|
|
71
|
+
inputRevision: number;
|
|
72
|
+
policyRevision: string;
|
|
73
|
+
expiresAt: number;
|
|
74
|
+
options: Array<{
|
|
75
|
+
id: string;
|
|
76
|
+
label: string;
|
|
77
|
+
}>;
|
|
78
|
+
}
|
|
52
79
|
export interface ManagedAgentProvider {
|
|
53
80
|
readonly kind: 'daemon' | 'java';
|
|
54
81
|
readonly storageKey: string;
|
|
55
82
|
readonly canCancel: boolean;
|
|
56
83
|
readonly acceptsWorkspaceCwd: boolean;
|
|
84
|
+
/** Present when the provider can serve Hosted permission Actions. */
|
|
85
|
+
readonly actions?: {
|
|
86
|
+
listPending(sessionId: string, options: ManagedAgentRequestOptions): Promise<ManagedAgentPendingAction[]>;
|
|
87
|
+
respond(action: ManagedAgentPendingAction, optionId: string, options: ManagedAgentCommandOptions): Promise<void>;
|
|
88
|
+
};
|
|
89
|
+
readonly toolResults?: ManagedToolResultReader;
|
|
57
90
|
readonly workspaceBinding?: {
|
|
58
91
|
readonly agentId: string;
|
|
59
92
|
list(options: ManagedAgentRequestOptions & {
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function javaDeltaEvent(sequence: number, text: string): string;
|
|
2
|
+
/** A complete item.output_text.delta SSE frame. */
|
|
3
|
+
export declare function sseFrame(sequence: number, text: string): string;
|
|
4
|
+
/** A complete item.output_text.delta SSE frame with an empty data object. */
|
|
5
|
+
export declare function validEventFrame(sequence: number): string;
|
|
6
|
+
/** A well-formed SSE frame whose data payload is truncated JSON. */
|
|
7
|
+
export declare function corruptFrame(sequence: number, name?: string): string;
|
|
8
|
+
export declare function javaSessionPayload(lastSequence: number): string;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ACPToolCall, Message, PermissionRequest } from '../../adapters/types';
|
|
2
|
+
import type { ManagedAgentPendingAction } from './managed-agent-provider';
|
|
3
|
+
/**
|
|
4
|
+
* Finds the transcript tool that a pending Action asks about. Managed tool
|
|
5
|
+
* rows are keyed `${turnId}:${toolCallId}`, and the Action's functionCallId is
|
|
6
|
+
* that tool call ID; without a resolved Turn only the call ID can match.
|
|
7
|
+
*/
|
|
8
|
+
export declare function findManagedApprovalTool(messages: readonly Message[], action: ManagedAgentPendingAction): ACPToolCall | undefined;
|
|
9
|
+
/** Presents a pending Hosted approval through the shared approval card. */
|
|
10
|
+
export declare function toManagedPermissionRequest(action: ManagedAgentPendingAction, messages: readonly Message[]): PermissionRequest;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Qwen Team
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Whether the service answered a request in a way a retry cannot change.
|
|
8
|
+
*
|
|
9
|
+
* A 4xx other than a timeout (408) or a rate limit (429) is an answer, not a
|
|
10
|
+
* hiccup: a deleted Session or an unknown Action replies the same way however
|
|
11
|
+
* often it is asked, so retrying only burns requests. Timeouts and rate limits
|
|
12
|
+
* are worth another attempt.
|
|
13
|
+
*/
|
|
14
|
+
export declare function isNonRetryableClientError(error: unknown): boolean;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { components } from './generated/managed-agent-api';
|
|
2
|
+
import type { ManagedAgentRequestOptions } from './managed-agent-provider';
|
|
3
|
+
type Schemas = components['schemas'];
|
|
4
|
+
export type ManagedToolResult = Schemas['PublicToolResult'];
|
|
5
|
+
export type ManagedArtifact = Schemas['PublicArtifact'];
|
|
6
|
+
export type ManagedToolResultResponse = Schemas['ToolResultResponse'];
|
|
7
|
+
export type ManagedArtifactResponse = Schemas['ArtifactResponse'];
|
|
8
|
+
export type ManagedArtifactPage = Schemas['WebShellArtifactPage'];
|
|
9
|
+
export type ManagedArtifactSave = (artifact: ManagedArtifact, options: {
|
|
10
|
+
signal?: AbortSignal;
|
|
11
|
+
openStream: () => Promise<ReadableStream<Uint8Array>>;
|
|
12
|
+
}) => Promise<void>;
|
|
13
|
+
export interface ManagedToolResultReader {
|
|
14
|
+
readonly canDownload: boolean;
|
|
15
|
+
getResult(sessionId: string, itemId: string, options: ManagedAgentRequestOptions): Promise<ManagedToolResultResponse>;
|
|
16
|
+
listArtifacts(sessionId: string, options: ManagedAgentRequestOptions & {
|
|
17
|
+
cursor?: string;
|
|
18
|
+
limit?: number;
|
|
19
|
+
}): Promise<ManagedArtifactPage>;
|
|
20
|
+
getArtifact(sessionId: string, artifactId: string, options: ManagedAgentRequestOptions): Promise<ManagedArtifactResponse>;
|
|
21
|
+
readRange(artifact: ManagedArtifact, offset: number, length: number, options: ManagedAgentRequestOptions): Promise<Uint8Array>;
|
|
22
|
+
downloadArtifact(artifact: ManagedArtifact, options: ManagedAgentRequestOptions): Promise<void>;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ManagedArtifact, ManagedToolResult } from './managed-tool-result-types';
|
|
2
|
+
export declare const artifact: ManagedArtifact;
|
|
3
|
+
export declare const result: ManagedToolResult;
|
|
4
|
+
export declare const notStartedResult: ManagedToolResult;
|
|
5
|
+
export declare const blockedResult: ManagedToolResult;
|
|
6
|
+
export declare const previewOnlyResult: ManagedToolResult;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ManagedAgentPendingAction, ManagedAgentProvider, ManagedAgentSessionEvent } from './managed-agent-provider';
|
|
2
|
+
export interface ManagedActionsState {
|
|
3
|
+
/** The approval to show; answered ones stay hidden while they settle. */
|
|
4
|
+
action?: ManagedAgentPendingAction;
|
|
5
|
+
/** Reading the pending approvals failed; retries run in the background. */
|
|
6
|
+
loadError?: unknown;
|
|
7
|
+
/**
|
|
8
|
+
* The pending approvals have been read for this Session, so a failed read is
|
|
9
|
+
* a failed refresh of what the page already shows rather than an empty list.
|
|
10
|
+
*/
|
|
11
|
+
loaded: boolean;
|
|
12
|
+
/** Sending an answer failed; the approval is shown again. */
|
|
13
|
+
answerError?: unknown;
|
|
14
|
+
/**
|
|
15
|
+
* The service refused an answer as creator-only. That is a fact about the
|
|
16
|
+
* viewer and the Session, not about one Action, so it outlives the refused
|
|
17
|
+
* Action, covers every later approval the same Session raises, and survives
|
|
18
|
+
* leaving that Session and coming back. It is remembered per mount: a reload
|
|
19
|
+
* or reopening the panel starts clean.
|
|
20
|
+
*/
|
|
21
|
+
respondForbidden: boolean;
|
|
22
|
+
respond(actionId: string, optionId: string): Promise<void>;
|
|
23
|
+
/** Reads the pending approvals again now. */
|
|
24
|
+
retry(): void;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Loads a Session's pending Hosted approvals and answers them. It re-reads
|
|
28
|
+
* when the transcript reports an approval change or a reconciled gap, when an
|
|
29
|
+
* approval expires, and after an answer. `enabled` is undefined while the
|
|
30
|
+
* Session summary is unknown, for example during a reload: the shown approval
|
|
31
|
+
* stays and can be answered, and reads resume once the capability is known.
|
|
32
|
+
*/
|
|
33
|
+
export declare function useManagedActions(provider: ManagedAgentProvider, sessionId: string | undefined, clientId: string, enabled: boolean | undefined, events: readonly ManagedAgentSessionEvent[]): ManagedActionsState;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { type WebShellAssistantFeedbackRating, type WebShellAssistantTurnFooterRenderInfo, type WebShellSource } from '../../customization';
|
|
2
2
|
import type { DaemonSessionGenerationEvent } from '@qwen-code/sdk/daemon';
|
|
3
|
+
import type { DaemonMessageAuthor } from '../../adapters/messageTypes';
|
|
3
4
|
interface AssistantMessageProps {
|
|
4
5
|
content: string;
|
|
6
|
+
author?: DaemonMessageAuthor;
|
|
5
7
|
isStreaming?: boolean;
|
|
6
8
|
timestamp?: number;
|
|
7
9
|
onBranchSession?: () => void | Promise<void>;
|
|
@@ -19,6 +21,7 @@ interface AssistantMessageProps {
|
|
|
19
21
|
export declare const AssistantMessage: import("react").NamedExoticComponent<AssistantMessageProps>;
|
|
20
22
|
interface ThinkingMessageProps {
|
|
21
23
|
content: string;
|
|
24
|
+
author?: DaemonMessageAuthor;
|
|
22
25
|
isStreaming?: boolean;
|
|
23
26
|
timestamp?: number;
|
|
24
27
|
isLocateFlashing?: boolean;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Qwen Team
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* The initial of a named assistant voice, tinted with its color when it has
|
|
8
|
+
* one. The same mark stands for an agent in its replies, the Team panel and
|
|
9
|
+
* the Agents page, so a reader learns it once.
|
|
10
|
+
*/
|
|
11
|
+
export declare function AuthorAvatar({ name, color, size, className, }: {
|
|
12
|
+
name: string;
|
|
13
|
+
color?: string;
|
|
14
|
+
size?: 'sm' | 'md';
|
|
15
|
+
className?: string;
|
|
16
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import type { DaemonSessionContextUsageStatus } from '@qwen-code/web-shell/daemon-react-sdk';
|
|
2
|
+
export declare function createContextUsageMessageData(status: DaemonSessionContextUsageStatus): {
|
|
3
|
+
type: string;
|
|
4
|
+
status: DaemonSessionContextUsageStatus;
|
|
5
|
+
};
|
|
2
6
|
export declare function serializeContextUsageMessage(status: DaemonSessionContextUsageStatus): string;
|
|
3
|
-
export declare function parseContextUsageMessage(content: string): DaemonSessionContextUsageStatus | null;
|
|
7
|
+
export declare function parseContextUsageMessage(content: string, data?: unknown): DaemonSessionContextUsageStatus | null;
|
|
4
8
|
export declare function ContextUsageMessage({ status, onShowDetail, compact, }: {
|
|
5
9
|
status: DaemonSessionContextUsageStatus;
|
|
6
10
|
/** Run /context detail, exactly like typing it. */
|
|
@@ -4,8 +4,13 @@ interface ParsedStats {
|
|
|
4
4
|
view: StatsView;
|
|
5
5
|
status: DaemonSessionStatsStatus;
|
|
6
6
|
}
|
|
7
|
+
export declare function createStatsMessageData(status: DaemonSessionStatsStatus, view?: StatsView): {
|
|
8
|
+
type: string;
|
|
9
|
+
view: StatsView;
|
|
10
|
+
status: DaemonSessionStatsStatus;
|
|
11
|
+
};
|
|
7
12
|
export declare function serializeStatsMessage(status: DaemonSessionStatsStatus, view?: StatsView): string;
|
|
8
|
-
export declare function parseStatsMessage(content: string): ParsedStats | null;
|
|
13
|
+
export declare function parseStatsMessage(content: string, data?: unknown): ParsedStats | null;
|
|
9
14
|
export declare function formatDuration(ms: number): string;
|
|
10
15
|
export declare function StatsMessage({ view, status, }: {
|
|
11
16
|
view: StatsView;
|
|
@@ -16,6 +16,14 @@ interface ToolApprovalProps {
|
|
|
16
16
|
* it — it just never grabs focus on its own.
|
|
17
17
|
*/
|
|
18
18
|
keyboardActive?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Id of an extra description the caller renders beside this panel, added to
|
|
21
|
+
* `aria-describedby`. The Managed approvals card states there that the tool
|
|
22
|
+
* arguments are unavailable, which is exactly the case where the panel's own
|
|
23
|
+
* description (tool name only) would let a screen-reader user confirm blind.
|
|
24
|
+
* Pass it only while that element is mounted, so no IDREF dangles.
|
|
25
|
+
*/
|
|
26
|
+
extraDescriptionId?: string;
|
|
19
27
|
planTodos?: readonly TodoItem[];
|
|
20
28
|
planExecutionMode?: string;
|
|
21
29
|
generateContent?: SessionContentGenerator;
|
|
@@ -24,5 +32,5 @@ export declare function parseTitle(title?: string): {
|
|
|
24
32
|
toolName: string;
|
|
25
33
|
description: string;
|
|
26
34
|
};
|
|
27
|
-
export declare function ToolApproval({ request, onConfirm, variant, disabled, keyboardActive, planTodos, planExecutionMode, generateContent, }: ToolApprovalProps): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
export declare function ToolApproval({ request, onConfirm, variant, disabled, keyboardActive, extraDescriptionId, planTodos, planExecutionMode, generateContent, }: ToolApprovalProps): import("react/jsx-runtime").JSX.Element;
|
|
28
36
|
export {};
|
|
@@ -19,6 +19,7 @@ interface ToolGroupProps {
|
|
|
19
19
|
pendingApproval?: PermissionRequest | null;
|
|
20
20
|
workspaceCwd?: string;
|
|
21
21
|
onTurnOutputOpen?: (request: TurnOutputOpenRequest) => void;
|
|
22
|
+
onToolResultOpen?: (itemId: string) => void;
|
|
22
23
|
isLocateFlashing?: boolean;
|
|
23
24
|
/** Powers the translate action on completed thinking rows (zh-CN). */
|
|
24
25
|
generateContent?: SessionContentGenerator;
|
|
@@ -32,6 +33,7 @@ interface ToolLineProps {
|
|
|
32
33
|
approval?: PermissionRequest | null;
|
|
33
34
|
workspaceCwd?: string;
|
|
34
35
|
onTurnOutputOpen?: (request: TurnOutputOpenRequest) => void;
|
|
36
|
+
onToolResultOpen?: (itemId: string) => void;
|
|
35
37
|
summaryOnly?: boolean;
|
|
36
38
|
forceExpanded?: boolean;
|
|
37
39
|
detailsVisible?: boolean;
|
|
@@ -5,6 +5,8 @@ interface UpdateControlProps {
|
|
|
5
5
|
currentVersion: string;
|
|
6
6
|
onError: (error: unknown, fallback: string) => void;
|
|
7
7
|
onRestarted?: (url: string) => void;
|
|
8
|
+
/** Keep background update/restart polling alive when the menu closes. */
|
|
9
|
+
portalContainer?: HTMLElement | null;
|
|
8
10
|
}
|
|
9
|
-
export declare function UpdateControl({ client, collapsed, currentVersion, onError, onRestarted, }: UpdateControlProps): import("react/jsx-runtime").JSX.Element | null;
|
|
11
|
+
export declare function UpdateControl({ client, collapsed, currentVersion, onError, onRestarted, portalContainer, }: UpdateControlProps): import("react/jsx-runtime").JSX.Element | null;
|
|
10
12
|
export {};
|
|
@@ -2,11 +2,12 @@ import { type ReactNode } from 'react';
|
|
|
2
2
|
import { type DaemonWorkspaceCapability } from '@qwen-code/sdk/daemon';
|
|
3
3
|
import { type WebShellTheme } from '../../themeContext';
|
|
4
4
|
import { type WorkspaceManagementTarget, type WorkspaceOverviewItem } from './workspaceOverviewModel';
|
|
5
|
+
export declare const SIDEBAR_RAIL_WIDTH = 56;
|
|
5
6
|
export type WebShellSidebarFooterItem = 'settings' | 'update' | 'version' | 'theme' | 'sessionsOverview' | 'workspacesOverview' | 'splitView' | 'daemonStatus' | 'localFiles' | 'desktopRelay' | 'collapse';
|
|
6
7
|
export interface WebShellSidebarBranding {
|
|
7
8
|
/** Replace the complete top branding row. */
|
|
8
9
|
render?: () => ReactNode;
|
|
9
|
-
/** Hide the branding row in the compact drawer. Defaults to
|
|
10
|
+
/** Hide the branding row in the compact drawer. Defaults to false. */
|
|
10
11
|
hideWhenCompact?: boolean;
|
|
11
12
|
}
|
|
12
13
|
export interface WebShellSidebarLockedWorkspace {
|
|
@@ -15,9 +16,9 @@ export interface WebShellSidebarLockedWorkspace {
|
|
|
15
16
|
expanded: boolean;
|
|
16
17
|
}) => ReactNode;
|
|
17
18
|
}
|
|
18
|
-
export type WebShellSidebarPrimaryNavItem = 'newTask' | 'plugins' | 'channels' | 'scheduledTasks' | 'workflows' | 'goals' | 'managed';
|
|
19
|
+
export type WebShellSidebarPrimaryNavItem = 'newTask' | 'agents' | 'plugins' | 'channels' | 'live' | 'scheduledTasks' | 'workflows' | 'goals' | 'managed';
|
|
19
20
|
export interface WebShellSidebarPrimaryNavOptions {
|
|
20
|
-
/** Built-in primary nav entries to show.
|
|
21
|
+
/** Built-in primary nav entries to show. Embedded hosts default to New task only. */
|
|
21
22
|
items?: readonly WebShellSidebarPrimaryNavItem[];
|
|
22
23
|
/** Additional custom content rendered after the built-in nav buttons. */
|
|
23
24
|
render?: () => ReactNode;
|
|
@@ -28,6 +29,9 @@ export interface WebShellSidebarFooterOptions {
|
|
|
28
29
|
/** Additional custom content rendered before the built-in footer items (left side). */
|
|
29
30
|
render?: () => ReactNode;
|
|
30
31
|
}
|
|
32
|
+
export declare const DEFAULT_FOOTER_ITEMS: readonly WebShellSidebarFooterItem[];
|
|
33
|
+
export declare const DESKTOP_DEFAULT_FOOTER_ITEMS: readonly WebShellSidebarFooterItem[];
|
|
34
|
+
export declare const DEFAULT_PRIMARY_NAV_ITEMS: readonly WebShellSidebarPrimaryNavItem[];
|
|
31
35
|
export type WebShellSidebarSessionActionItem = 'details' | 'rename' | 'group' | 'export' | 'delete' | 'pin' | 'archive';
|
|
32
36
|
/** Subset of action items that have working inline (hover-button) handlers. */
|
|
33
37
|
export type WebShellSidebarSessionInlineActionItem = 'pin' | 'rename' | 'export' | 'delete';
|
|
@@ -54,11 +58,20 @@ export interface WebShellSidebarWorkspaceOverviewOptions {
|
|
|
54
58
|
}
|
|
55
59
|
export type { WorkspaceManagementTarget, WorkspaceOverviewItem };
|
|
56
60
|
interface WebShellSidebarProps {
|
|
61
|
+
selectedCollaborationId?: string;
|
|
62
|
+
onOpenCollaboration?: (id: string, cwd: string) => void;
|
|
57
63
|
collapsed: boolean;
|
|
64
|
+
layout?: 'single' | 'rail';
|
|
65
|
+
activePage?: string;
|
|
66
|
+
containerWidth?: number;
|
|
67
|
+
onOpenHome?: () => void;
|
|
58
68
|
onCollapsedChange: (collapsed: boolean) => void;
|
|
59
69
|
onOpenSettings: () => void;
|
|
70
|
+
onOpenAgents?: (view?: 'agents' | 'tasks' | 'runtime') => void;
|
|
60
71
|
onOpenPlugins: () => void;
|
|
61
72
|
onOpenChannels: () => void;
|
|
73
|
+
onOpenLive?: () => void;
|
|
74
|
+
onLiveVoiceSlotChange?: (element: HTMLDivElement | null) => void;
|
|
62
75
|
onOpenManagedSessions?: () => void;
|
|
63
76
|
onOpenDaemonStatus: () => void;
|
|
64
77
|
onOpenScheduledTasks: () => void;
|
|
@@ -120,7 +133,7 @@ interface WebShellSidebarProps {
|
|
|
120
133
|
primaryNav?: WebShellSidebarPrimaryNavOptions;
|
|
121
134
|
/** Whether to show the Tasks/Channels session-source switch. Defaults to true. */
|
|
122
135
|
showSessionSourceSwitch?: boolean;
|
|
123
|
-
/**
|
|
136
|
+
/** Show Live conversations and, in rail layout, the Live entry. Defaults to false. */
|
|
124
137
|
showLive?: boolean;
|
|
125
138
|
/** Whether to hide the "Projects" header row (with search and add workspace). Defaults to false (shown). */
|
|
126
139
|
hideProjectHeader?: boolean;
|
|
@@ -145,4 +158,4 @@ interface WebShellSidebarProps {
|
|
|
145
158
|
onLoadStandaloneSession?: (sessionId: string) => Promise<void> | void;
|
|
146
159
|
onStandaloneNotice?: (message: string) => void;
|
|
147
160
|
}
|
|
148
|
-
export declare function WebShellSidebar({ collapsed, onCollapsedChange, onOpenSettings, onOpenPlugins, onOpenChannels, onOpenManagedSessions, onOpenDaemonStatus, onOpenScheduledTasks, onOpenWorkflows, onOpenGoals, onOpenSessions, canOpenSessionsOverview, onOpenWorkspacesOverview, onOpenSplitView, canOpenSplitView, onNewSession, onNewStandaloneSession, onLoadSession, onSelectCurrentSession, onSessionRenameConfirmed, onSessionsDeleted, onError, theme, onThemeChange, mobileOpen, onMobileClose, selectedWorkspaceCwd, onSelectWorkspace, onOpenGitDiff, onOpenCommit, onOpenAddWorkspace, workspaces: providedWorkspaces, lockedWorkspaceCwd, lockedWorkspace: lockedWorkspaceOptions, branding, primaryNav: primaryNavOptions, showSessionSourceSwitch, showLive, hideProjectHeader, sessionActions: sessionActionsOptions, footer, workspaceOverview, onOpenWorkspaceManagement, onNewWorktreeSession, projectFeaturesEnabled, onLoadStandaloneSession, onStandaloneNotice, }: WebShellSidebarProps): import("react/jsx-runtime").JSX.Element;
|
|
161
|
+
export declare function WebShellSidebar({ selectedCollaborationId, onOpenCollaboration, 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, onSelectCurrentSession, onSessionRenameConfirmed, onSessionsDeleted, onError, theme, onThemeChange, mobileOpen, onMobileClose, selectedWorkspaceCwd, onSelectWorkspace, onOpenGitDiff, onOpenCommit, onOpenAddWorkspace, workspaces: providedWorkspaces, lockedWorkspaceCwd, lockedWorkspace: lockedWorkspaceOptions, branding, primaryNav: primaryNavOptions, showSessionSourceSwitch, showLive, hideProjectHeader, sessionActions: sessionActionsOptions, footer, workspaceOverview, onOpenWorkspaceManagement, onNewWorktreeSession, projectFeaturesEnabled, onLoadStandaloneSession, onStandaloneNotice, }: WebShellSidebarProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -9,9 +9,11 @@ export interface WorkspaceHeaderActionsContext {
|
|
|
9
9
|
gitBranch: string | null | undefined;
|
|
10
10
|
}
|
|
11
11
|
interface WorkspaceSectionProps {
|
|
12
|
+
additionalSessions?: readonly DaemonSessionSummary[];
|
|
12
13
|
workspace: DaemonWorkspaceCapability;
|
|
13
14
|
remote?: boolean;
|
|
14
15
|
renderHeader?: (expanded: boolean) => ReactNode;
|
|
16
|
+
hideHeader?: boolean;
|
|
15
17
|
client: DaemonClient;
|
|
16
18
|
reloadToken: number;
|
|
17
19
|
untrustedLabel: string;
|
|
@@ -116,5 +118,5 @@ interface WorkspaceSectionProps {
|
|
|
116
118
|
/** Commit entry for the same picker; the row still opens without it. */
|
|
117
119
|
onOpenCommit?: (workspaceCwd: string) => void;
|
|
118
120
|
}
|
|
119
|
-
export declare function WorkspaceSection({ workspace, remote, renderHeader, 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;
|
|
121
|
+
export declare function WorkspaceSection({ additionalSessions, workspace, 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;
|
|
120
122
|
export {};
|
|
@@ -8,7 +8,8 @@ export declare function sessionMatchesGitQuery(session: DaemonSessionSummary, qu
|
|
|
8
8
|
/**
|
|
9
9
|
* The sidebar's session-source scope: the "channel" tab lists only
|
|
10
10
|
* channel-source sessions, the "default" tab lists unattributed (legacy)
|
|
11
|
-
* and default/Qwen Live tasks,
|
|
11
|
+
* and default/Qwen Live tasks, every other source lists exact matches, and
|
|
12
|
+
* no filter lists everything.
|
|
12
13
|
*/
|
|
13
14
|
export declare function sessionMatchesSource(session: DaemonSessionSummary, source: string | undefined): boolean;
|
|
14
15
|
/**
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type ThreadDetailView } from './ThreadView';
|
|
2
|
+
import { type RoutingPreviewTarget } from './agents-view-logic';
|
|
3
|
+
interface AgentEntry {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
color?: string;
|
|
7
|
+
enabled: boolean;
|
|
8
|
+
retiredAt?: number;
|
|
9
|
+
status?: string;
|
|
10
|
+
runtime?: {
|
|
11
|
+
label: string;
|
|
12
|
+
status: string;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export declare function ThreadChat({ thread, agents, preview, pending, onSend, onDraftChange, onOpenAgentSession, onCancelRun, onMarkDone, onOpenThread, onRespondPermission, onAssign, onBack, activityOnly, onOpenActivity, headerActionsContainer, }: {
|
|
16
|
+
headerActionsContainer?: HTMLElement | null;
|
|
17
|
+
activityOnly?: boolean;
|
|
18
|
+
onOpenActivity?: () => void;
|
|
19
|
+
preview?: readonly RoutingPreviewTarget[];
|
|
20
|
+
agents: readonly AgentEntry[];
|
|
21
|
+
thread: ThreadDetailView;
|
|
22
|
+
pending: boolean;
|
|
23
|
+
onSend: (text: string) => Promise<boolean>;
|
|
24
|
+
onDraftChange: (text: string) => void;
|
|
25
|
+
onOpenAgentSession?: (sessionId: string) => void;
|
|
26
|
+
onCancelRun: (runId: string) => void;
|
|
27
|
+
onMarkDone: () => void;
|
|
28
|
+
onOpenThread: (threadId: string) => void;
|
|
29
|
+
onRespondPermission?: (sessionId: string, requestId: string, optionId: string) => Promise<unknown>;
|
|
30
|
+
/** Hands the conversation to another agent. */
|
|
31
|
+
onAssign?: (assignee?: string) => void;
|
|
32
|
+
/** Shown when the conversation is not in the shell's own chat column. */
|
|
33
|
+
onBack?: () => void;
|
|
34
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Qwen Team
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { type RunRow, type RunView } from './agents-view-logic';
|
|
7
|
+
export interface ThreadPostView {
|
|
8
|
+
sourceRunId?: string;
|
|
9
|
+
id: string;
|
|
10
|
+
sequence: number;
|
|
11
|
+
authorKind: 'human' | 'agent' | 'system';
|
|
12
|
+
authorName: string;
|
|
13
|
+
authorDeleted?: boolean;
|
|
14
|
+
text: string;
|
|
15
|
+
at: number;
|
|
16
|
+
outcomes?: readonly {
|
|
17
|
+
agentName?: string;
|
|
18
|
+
kind: 'dispatch' | 'coalesce' | 'skip';
|
|
19
|
+
reason?: string;
|
|
20
|
+
into?: 'queued' | 'running';
|
|
21
|
+
}[];
|
|
22
|
+
}
|
|
23
|
+
export interface ThreadDetailView {
|
|
24
|
+
id: string;
|
|
25
|
+
title: string;
|
|
26
|
+
body: string;
|
|
27
|
+
/** What "done" means here, in the author's words. */
|
|
28
|
+
acceptanceCriteria?: string;
|
|
29
|
+
priority?: 'urgent' | 'high' | 'normal' | 'low';
|
|
30
|
+
parent?: {
|
|
31
|
+
id: string;
|
|
32
|
+
title: string;
|
|
33
|
+
};
|
|
34
|
+
assigneeName?: string;
|
|
35
|
+
status: 'open' | 'in_progress' | 'blocked' | 'in_review' | 'done' | 'cancelled';
|
|
36
|
+
/** The resolver's sentence. Rendered verbatim. */
|
|
37
|
+
reason: string;
|
|
38
|
+
posts: readonly ThreadPostView[];
|
|
39
|
+
runs: readonly RunView[];
|
|
40
|
+
children?: readonly ThreadChildView[];
|
|
41
|
+
budget: {
|
|
42
|
+
turnsUsed: number;
|
|
43
|
+
turnLimit: number;
|
|
44
|
+
tokensUsed: number;
|
|
45
|
+
tokenLimit: number;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export interface ThreadChildView {
|
|
49
|
+
id: string;
|
|
50
|
+
title: string;
|
|
51
|
+
status: ThreadDetailView['status'];
|
|
52
|
+
reason: string;
|
|
53
|
+
assigneeName?: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* One run: its state, how long it has gone, and what it is doing, with the
|
|
57
|
+
* thinking and output so far folded under it. Under a member in the Team
|
|
58
|
+
* panel the member row already names the agent, so `hideAgent` drops it.
|
|
59
|
+
*/
|
|
60
|
+
export declare function RunRowView({ row, agent, hideAgent, onOpenAgentSession, onCancelRun, }: {
|
|
61
|
+
row: RunRow;
|
|
62
|
+
agent?: {
|
|
63
|
+
status?: string;
|
|
64
|
+
runtime?: {
|
|
65
|
+
label: string;
|
|
66
|
+
status: string;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
hideAgent?: boolean;
|
|
70
|
+
onOpenAgentSession?: (sessionId: string) => void;
|
|
71
|
+
onCancelRun?: (runId: string) => void;
|
|
72
|
+
}): import("react/jsx-runtime").JSX.Element;
|