@qwen-code/web-shell 0.25.2-preview.0 → 0.25.2
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 +18 -5
- package/dist/{PierreFilePreview-NBjy3yqe.js → PierreFilePreview-Dk1ZVwYX.js} +1 -1
- package/dist/{SpreadsheetPreview-BlorwcU1.js → SpreadsheetPreview-Cfub7Cau.js} +2 -2
- package/dist/{WorkspaceFileBrowser-B5lzmIet.js → WorkspaceFileBrowser-BF1_WOlE.js} +3521 -3402
- package/dist/{agents-route-DG5XKI_W.js → agents-route-By3UwziU.js} +2 -2
- package/dist/daemon-react-sdk.js +1 -1
- package/dist/{index-TQMx4ZTn.js → index-1CTTJPhC.js} +40722 -40392
- package/dist/index.js +7 -7
- package/dist/sw.js +1 -1
- package/dist/transcript.js +6658 -6622
- package/dist/types/App.d.ts +6 -4
- package/dist/types/components/ChatContextHeader.d.ts +8 -3
- package/dist/types/components/artifacts/files-messages.d.ts +2 -0
- package/dist/types/components/artifacts/useArtifactWorkspaceTarget.d.ts +2 -1
- package/dist/types/components/managed/generated/managed-agent-api.d.ts +5 -4
- package/dist/types/components/messages/TasksStatusMessage.d.ts +2 -1
- package/dist/types/components/messages/WorkflowExecutionView.d.ts +3 -1
- package/dist/types/components/messages/workflow-agent-details.d.ts +3 -0
- package/dist/types/components/messages/workflow-agent-details.transcript-stub.d.ts +1 -0
- package/dist/types/components/workflows/WorkflowRunsPage.d.ts +3 -1
- package/dist/types/customization.d.ts +6 -4
- package/dist/types/daemon/session/types.d.ts +4 -1
- package/dist/types/hooks/useMcpAppMessages.d.ts +22 -0
- package/dist/types/mcp-app/messages.d.ts +7 -0
- package/dist/types/mcp-app/messages.transcript-stub.d.ts +7 -0
- package/dist/types/mcpAppHostContext.d.ts +13 -0
- package/dist/types/subagentDetailsContext.d.ts +1 -1
- package/dist/types/utils/promptAdmission.d.ts +4 -0
- package/dist/{useDaemonMidTurnInjected-DP58ZvKF.js → useDaemonMidTurnInjected-ClQx7vwI.js} +2461 -2404
- package/package.json +1 -1
package/dist/types/App.d.ts
CHANGED
|
@@ -287,8 +287,8 @@ export interface WebShellProps {
|
|
|
287
287
|
/** Built-in @ mention providers to enable. Defaults to all built-ins. */
|
|
288
288
|
builtinAtProviders?: WebShellBuiltinAtProvidersConfig;
|
|
289
289
|
/**
|
|
290
|
-
* Controls
|
|
291
|
-
* and
|
|
290
|
+
* Controls composer uploads (drag-and-drop and the @ panel upload item)
|
|
291
|
+
* and Files tree drag-and-drop uploads. Does not disable attachments.
|
|
292
292
|
* Works alongside the daemon's
|
|
293
293
|
* `workspace_file_upload` capability, not instead of it: `false` force-
|
|
294
294
|
* disables upload even when the daemon advertises the capability, while
|
|
@@ -300,13 +300,14 @@ export interface WebShellProps {
|
|
|
300
300
|
*/
|
|
301
301
|
fileDropAction?: 'upload' | 'attach';
|
|
302
302
|
/**
|
|
303
|
-
* Directory that
|
|
303
|
+
* Directory that composer-dropped files upload into, **relative to the
|
|
304
304
|
* workspace root**. Use a relative path WITHOUT a leading `/` — e.g.
|
|
305
305
|
* `'uploads'`, `'uploads/images'`, or omit it to upload into the
|
|
306
306
|
* workspace root (the default). A leading-slash path like `'/uploads'`
|
|
307
307
|
* is rejected by the daemon as outside the workspace. The directory
|
|
308
308
|
* (including intermediate components) is created automatically on upload
|
|
309
|
-
* when it does not exist.
|
|
309
|
+
* when it does not exist. Files tree drops use the explicit tree destination
|
|
310
|
+
* instead of this setting.
|
|
310
311
|
*/
|
|
311
312
|
fileUploadDirectory?: string;
|
|
312
313
|
/** Additional @ mention categories shown alongside built-in files/extensions. */
|
|
@@ -423,6 +424,7 @@ export interface WebShellProps {
|
|
|
423
424
|
onSubmitBefore?: (params: {
|
|
424
425
|
sessionId: string | undefined;
|
|
425
426
|
prompt: string;
|
|
427
|
+
source?: 'mcp-app';
|
|
426
428
|
}) => Promise<void>;
|
|
427
429
|
}
|
|
428
430
|
interface AppProps extends WebShellProps {
|
|
@@ -6,12 +6,17 @@ interface ChatContextHeaderProps {
|
|
|
6
6
|
/**
|
|
7
7
|
* Workspace shown as the header's leading icon. Omitting it means the shell
|
|
8
8
|
* has no workspace: the icon stays the same folder and only its tooltip says
|
|
9
|
-
* so
|
|
10
|
-
*
|
|
9
|
+
* so. In a session this icon always reports the workspace; the empty-state
|
|
10
|
+
* header can defer to a visible composer workspace selector.
|
|
11
11
|
*/
|
|
12
12
|
workspaceName?: string;
|
|
13
13
|
/** Full workspace path, shown as the leading icon's hover tooltip. */
|
|
14
14
|
workspacePath?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Hides the leading workspace icon when the new-task composer's workspace
|
|
17
|
+
* selector is visible and already names the workspace.
|
|
18
|
+
*/
|
|
19
|
+
hideWorkspaceIcon?: boolean;
|
|
15
20
|
environmentOpen: boolean;
|
|
16
21
|
environmentAvailable: boolean;
|
|
17
22
|
/** Whether the panel holds an in-progress subagent or background task. */
|
|
@@ -27,5 +32,5 @@ interface ChatContextHeaderProps {
|
|
|
27
32
|
/** Shows the Local Control QR entry; hidden when omitted. */
|
|
28
33
|
onOpenLocalControlSettings?: () => void;
|
|
29
34
|
}
|
|
30
|
-
export declare function ChatContextHeader({ content, location, workspaceName, workspacePath, environmentOpen, environmentAvailable, environmentRunning, rightPanelOpen, rightPanelAvailable, onToggleEnvironment, onToggleRightPanel, onOpenTokenUsage, onOpenContextUsage, onOpenLocalControlSettings, }: ChatContextHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
export declare function ChatContextHeader({ content, location, workspaceName, workspacePath, hideWorkspaceIcon, environmentOpen, environmentAvailable, environmentRunning, rightPanelOpen, rightPanelAvailable, onToggleEnvironment, onToggleRightPanel, onOpenTokenUsage, onOpenContextUsage, onOpenLocalControlSettings, }: ChatContextHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
31
36
|
export {};
|
|
@@ -3,6 +3,7 @@ export declare const FILES_MESSAGES_EN: {
|
|
|
3
3
|
'files.copyAbsolutePath': string;
|
|
4
4
|
'files.reference': string;
|
|
5
5
|
'files.title': string;
|
|
6
|
+
'files.uploadTo': string;
|
|
6
7
|
'files.description': string;
|
|
7
8
|
'files.filter': string;
|
|
8
9
|
'files.noMatches': string;
|
|
@@ -20,6 +21,7 @@ export declare const FILES_MESSAGES_ZH: {
|
|
|
20
21
|
'files.copyAbsolutePath': string;
|
|
21
22
|
'files.reference': string;
|
|
22
23
|
'files.title': string;
|
|
24
|
+
'files.uploadTo': string;
|
|
23
25
|
'files.description': string;
|
|
24
26
|
'files.filter': string;
|
|
25
27
|
'files.noMatches': string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { DaemonCapabilities } from '@qwen-code/sdk/daemon';
|
|
2
2
|
import { type DaemonWorkspaceActions } from '@qwen-code/web-shell/daemon-react-sdk';
|
|
3
|
-
|
|
3
|
+
import type { FileUploadClient } from '../../hooks/useFileUpload';
|
|
4
|
+
export type ArtifactWorkspaceActions = Pick<DaemonWorkspaceActions, 'readWorkspaceFile' | 'readFileBytes' | 'stat' | 'listDirectory' | 'listScheduledTasks' | 'updateScheduledTask' | 'deleteScheduledTask'> & Partial<FileUploadClient>;
|
|
4
5
|
interface ArtifactWorkspaceOwner {
|
|
5
6
|
cwd: string;
|
|
6
7
|
id?: string;
|
|
@@ -57,7 +57,7 @@ export interface paths {
|
|
|
57
57
|
};
|
|
58
58
|
get?: never;
|
|
59
59
|
put?: never;
|
|
60
|
-
/** @description POST SSE consumed through fetch response.body. An afterSequence below the replay floor ends the stream with one agent.session.resync_required frame
|
|
60
|
+
/** @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 the current immutable Snapshot. On the resync frame, reload the transcript and resume after its lastSequence. */
|
|
61
61
|
post: operations["webShellStreamEvents"];
|
|
62
62
|
delete?: never;
|
|
63
63
|
options?: never;
|
|
@@ -404,7 +404,7 @@ export interface paths {
|
|
|
404
404
|
};
|
|
405
405
|
get?: never;
|
|
406
406
|
put?: never;
|
|
407
|
-
/** @description Synchronously restores an archived Session to closed. Workspace-bound Sessions require completed reliable-close evidence and the Session's recorded owner with current read access (404 unreadable, 403 readable non-owner). Bound keys are tenant/Session/actor scoped. Replay returns the
|
|
407
|
+
/** @description Synchronously restores an archived Session to closed. Workspace-bound Sessions require completed reliable-close evidence and the Session's recorded owner with current read access (404 unreadable, 403 readable non-owner). Bound keys are tenant/Session/actor scoped. Replay returns the recorded outcome without repeating the mutation; a replay after delete answers with the Session as last visible — its pre-delete status — rather than 404. The permanent close fence is preserved and no Harness or Runtime call is made. */
|
|
408
408
|
post: operations["unarchiveWebShellSession"];
|
|
409
409
|
delete?: never;
|
|
410
410
|
options?: never;
|
|
@@ -474,6 +474,7 @@ export interface components {
|
|
|
474
474
|
agentId: string;
|
|
475
475
|
/** @description Planned; phase one rejects non-blank values. */
|
|
476
476
|
environmentId?: string | null;
|
|
477
|
+
/** @description The server enforces the bound in UTF-16 code units (Java String.length()), so an astral character counts as two: a title this schema's code-point maxLength accepts can still exceed the server's 256-unit bound and answer 400 invalid_title. */
|
|
477
478
|
title?: string | null;
|
|
478
479
|
/** @description Each block adds to a 4,000,000-character aggregate admission budget per command (per-block 1,000,000-character cap applies). Admission ceiling only: a command whose serialized prompt or durable Session-store record exceeds the Hosted Harness's 64 KiB durable-record limit is accepted and then fails the Turn with hosted_harness_rejected. */
|
|
479
480
|
input?: components["schemas"]["InputBlock"][];
|
|
@@ -921,7 +922,7 @@ export interface components {
|
|
|
921
922
|
*/
|
|
922
923
|
TaskRuntimeState: "unbound" | "provisioning" | "ready" | "draining" | "lost";
|
|
923
924
|
/**
|
|
924
|
-
* @description Actions the task supports now, the same for every caller. cancel: the cancel route accepts a new command for this task (since 1.40
|
|
925
|
+
* @description Actions the task supports now, the same for every caller. cancel: the cancel route accepts a new command for this task (since 1.40 for child_agent and 1.46 for workflow, tasks of those kinds in pending, running, waiting or degraded, in an active Session); whether a caller may use it is an authorization check (403 on the cancel route). send_input: reserved for a later capability route. read_output: the task events route returns output events for this task to any caller that can read it. read_output does not change during the task's life, and a task without it produces no output events: its output goes only to Artifacts, so the events route never filters out events that exist.
|
|
925
926
|
* @enum {string}
|
|
926
927
|
*/
|
|
927
928
|
TaskActionCapability: "cancel" | "send_input" | "read_output";
|
|
@@ -1174,7 +1175,7 @@ export interface components {
|
|
|
1174
1175
|
parameters: never;
|
|
1175
1176
|
requestBodies: never;
|
|
1176
1177
|
headers: {
|
|
1177
|
-
/** @description True when an accepted command or operation was replayed for the same idempotency key and digest without repeating its mutation. Session mutation responses represent the
|
|
1178
|
+
/** @description True when an accepted command or operation was replayed for the same idempotency key and digest without repeating its mutation. Session mutation responses represent the recorded outcome on the Session as last visible — a rename or unarchive replay after delete answers with the Session's pre-delete status rather than 404, while a create replay after delete answers 404 on the public create route, which re-reads the Session before responding, and answers the recorded 202 admission carrying the tombstoned sessionId on the WebShell create route, which does not re-read it; operation responses represent the original operation at its current state. */
|
|
1178
1179
|
IdempotentReplay: boolean;
|
|
1179
1180
|
/** @description Trace-only correlation identifier; never an idempotency key. */
|
|
1180
1181
|
RequestId: string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { DaemonSessionMonitorTaskStatus, DaemonSessionShellTaskStatus, DaemonSessionWorkflowTasksStatus } from '@qwen-code/sdk/daemon';
|
|
2
2
|
import { type DaemonSessionActions } from '@qwen-code/web-shell/daemon-react-sdk';
|
|
3
3
|
import type { ACPToolCall, TodoItem } from '../../adapters/types';
|
|
4
|
+
import type { OpenSubagentDetails } from '../../subagentDetailsContext';
|
|
4
5
|
declare const ACTIVE_EVENT = "web-shell:tasks-panel-active";
|
|
5
6
|
type DaemonSessionTasksStatus = DaemonSessionWorkflowTasksStatus;
|
|
6
7
|
export interface SerializedTasksMessage {
|
|
@@ -24,7 +25,7 @@ export declare function TasksStatusMessage({ message, embedded, manageActiveEven
|
|
|
24
25
|
onClose?: () => void;
|
|
25
26
|
planTodos?: readonly TodoItem[];
|
|
26
27
|
agentTools?: readonly ACPToolCall[];
|
|
27
|
-
onOpenSubagent?:
|
|
28
|
+
onOpenSubagent?: OpenSubagentDetails;
|
|
28
29
|
onOpenMonitor?: (task: DaemonSessionMonitorTaskStatus) => void;
|
|
29
30
|
}): import("react/jsx-runtime").JSX.Element | null;
|
|
30
31
|
export declare function MonitorTaskDetail({ task, actions: providedActions, }: {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
2
|
import type { DaemonSessionWorkflowTaskStatus, DaemonWorkflowDispatchStatus, DaemonWorkflowDispatchStatusEntry } from '@qwen-code/sdk/daemon';
|
|
3
|
+
import type { OpenSubagentDetails } from '../../subagentDetailsContext';
|
|
3
4
|
export declare const WORKFLOW_GRAPH_RENDER_LIMITS: {
|
|
4
5
|
readonly lanes: 64;
|
|
5
6
|
readonly nodes: 240;
|
|
@@ -36,7 +37,7 @@ export interface WorkflowGraphLayout {
|
|
|
36
37
|
export declare function buildWorkflowGraphLayout(task: DaemonSessionWorkflowTaskStatus, options?: {
|
|
37
38
|
laneWidth?: number;
|
|
38
39
|
}): WorkflowGraphLayout;
|
|
39
|
-
export declare function WorkflowExecutionView({ task, sourceTask, historyTasks, historyActionBusy, onDeleteHistory, actions, }: {
|
|
40
|
+
export declare function WorkflowExecutionView({ task, sourceTask, historyTasks, historyActionBusy, onDeleteHistory, actions, onOpenSubagent, }: {
|
|
40
41
|
task: DaemonSessionWorkflowTaskStatus;
|
|
41
42
|
sourceTask?: DaemonSessionWorkflowTaskStatus;
|
|
42
43
|
historyTasks?: readonly DaemonSessionWorkflowTaskStatus[];
|
|
@@ -44,5 +45,6 @@ export declare function WorkflowExecutionView({ task, sourceTask, historyTasks,
|
|
|
44
45
|
onDeleteHistory?: (runId: string) => void;
|
|
45
46
|
/** Run controls (pause / stop / rerun …) shown at the end of the metrics strip. */
|
|
46
47
|
actions?: ReactNode;
|
|
48
|
+
onOpenSubagent?: OpenSubagentDetails;
|
|
47
49
|
}): import("react/jsx-runtime").JSX.Element;
|
|
48
50
|
export {};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { DaemonSessionWorkflowTaskStatus, DaemonWorkflowDispatchStatusEntry } from '@qwen-code/sdk/daemon';
|
|
2
|
+
import { type OpenSubagentDetails } from '../../subagentDetailsContext';
|
|
3
|
+
export declare function useWorkflowAgentDetails(task: DaemonSessionWorkflowTaskStatus, onOpenSubagent?: OpenSubagentDetails): (dispatch: DaemonWorkflowDispatchStatusEntry) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function useWorkflowAgentDetails(): () => void;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import type { OpenSubagentDetails } from '../../subagentDetailsContext';
|
|
1
2
|
interface WorkflowRunsPageProps {
|
|
2
3
|
onCreateViaChat: () => void;
|
|
3
4
|
onWorkflowRunStarted?: () => void;
|
|
5
|
+
onOpenSubagent?: OpenSubagentDetails;
|
|
4
6
|
}
|
|
5
|
-
export declare function WorkflowRunsPage({ onCreateViaChat, onWorkflowRunStarted, }: WorkflowRunsPageProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare function WorkflowRunsPage({ onCreateViaChat, onWorkflowRunStarted, onOpenSubagent, }: WorkflowRunsPageProps): import("react/jsx-runtime").JSX.Element;
|
|
6
8
|
export {};
|
|
@@ -205,6 +205,7 @@ export interface WebShellSubmitSnapshot {
|
|
|
205
205
|
sessionId?: string;
|
|
206
206
|
prompt: string;
|
|
207
207
|
inputAnnotations: readonly DaemonInputAnnotation[];
|
|
208
|
+
source?: 'mcp-app';
|
|
208
209
|
}
|
|
209
210
|
export type UserMessageContentRenderer = (info: UserMessageContentRenderInfo) => ReactNode;
|
|
210
211
|
export interface WebShellBottomStatusItem {
|
|
@@ -557,8 +558,8 @@ export interface WebShellCustomization {
|
|
|
557
558
|
markdown?: WebShellMarkdownCustomization;
|
|
558
559
|
loadingPhrases?: LoadingPhrasesResolver;
|
|
559
560
|
/**
|
|
560
|
-
* Controls
|
|
561
|
-
* and
|
|
561
|
+
* Controls composer uploads (drag-and-drop and the @ panel upload item)
|
|
562
|
+
* and Files tree drag-and-drop uploads. Does not disable attachments.
|
|
562
563
|
* Works alongside the daemon's
|
|
563
564
|
* `workspace_file_upload` capability, not instead of it: setting `false`
|
|
564
565
|
* force-disables upload even when the daemon advertises the capability,
|
|
@@ -571,13 +572,14 @@ export interface WebShellCustomization {
|
|
|
571
572
|
*/
|
|
572
573
|
fileDropAction?: 'upload' | 'attach';
|
|
573
574
|
/**
|
|
574
|
-
* Directory that
|
|
575
|
+
* Directory that composer-dropped files upload into, **relative to the
|
|
575
576
|
* workspace root**. Use a relative path WITHOUT a leading `/` — e.g.
|
|
576
577
|
* `'uploads'`, `'uploads/images'`, or omit it to upload into the
|
|
577
578
|
* workspace root (the default). A leading-slash path like `'/uploads'`
|
|
578
579
|
* is rejected by the daemon as outside the workspace. The directory
|
|
579
580
|
* (including intermediate components) is created automatically on upload
|
|
580
|
-
* when it does not exist.
|
|
581
|
+
* when it does not exist. Files tree drops use the explicit tree destination
|
|
582
|
+
* instead of this setting.
|
|
581
583
|
*/
|
|
582
584
|
fileUploadDirectory?: string;
|
|
583
585
|
}
|
|
@@ -266,6 +266,7 @@ export interface DaemonCommandInfo {
|
|
|
266
266
|
export interface SendPromptOptions {
|
|
267
267
|
/** Original text declared at the user submission boundary, before host preparation. */
|
|
268
268
|
submittedPrompt?: string;
|
|
269
|
+
source?: 'mcp-app';
|
|
269
270
|
optimisticUserMessage?: boolean;
|
|
270
271
|
images?: DaemonPromptImage[];
|
|
271
272
|
files?: DaemonPromptFile[];
|
|
@@ -278,6 +279,8 @@ export interface SendPromptOptions {
|
|
|
278
279
|
retry?: boolean;
|
|
279
280
|
/** Fired after local validation, immediately before dispatch to the daemon. */
|
|
280
281
|
onAdmissionStarted?: () => void;
|
|
282
|
+
/** Revalidates the caller before every HTTP attempt, including client recovery. */
|
|
283
|
+
beforeDispatch?: (clientId: string | undefined) => void;
|
|
281
284
|
/**
|
|
282
285
|
* Fired once the daemon has ACCEPTED the prompt (admission), before the turn
|
|
283
286
|
* runs to completion. Lets a caller act on "the prompt reached the session"
|
|
@@ -290,7 +293,7 @@ export interface SendPromptOptions {
|
|
|
290
293
|
promptId: string;
|
|
291
294
|
}) => void;
|
|
292
295
|
}
|
|
293
|
-
export interface SubmitPromptOptions extends SendPromptOptions {
|
|
296
|
+
export interface SubmitPromptOptions extends Omit<SendPromptOptions, 'beforeDispatch' | 'source'> {
|
|
294
297
|
sessionId?: string;
|
|
295
298
|
signal?: AbortSignal;
|
|
296
299
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { McpAppMessages } from '../mcpAppHostContext';
|
|
2
|
+
import type { DaemonSessionOwnerSnapshot } from '../daemon/session/types';
|
|
3
|
+
export interface McpAppPromptSubmission {
|
|
4
|
+
signal: AbortSignal;
|
|
5
|
+
isCurrent(): boolean;
|
|
6
|
+
onDispatched(): void;
|
|
7
|
+
onAdmitted(admission: {
|
|
8
|
+
promptId: string;
|
|
9
|
+
}): void;
|
|
10
|
+
}
|
|
11
|
+
interface MessageHost {
|
|
12
|
+
enabled: boolean;
|
|
13
|
+
sessionId?: string;
|
|
14
|
+
clientId?: string;
|
|
15
|
+
captureOwner(): DaemonSessionOwnerSnapshot;
|
|
16
|
+
submit(text: string, options: McpAppPromptSubmission): Promise<unknown>;
|
|
17
|
+
}
|
|
18
|
+
export declare function useMcpAppMessages(host: MessageHost): {
|
|
19
|
+
context: McpAppMessages | undefined;
|
|
20
|
+
review: import("react/jsx-runtime").JSX.Element | null;
|
|
21
|
+
};
|
|
22
|
+
export {};
|
|
@@ -2,6 +2,19 @@ import type { DaemonMcpAppToolCall, DaemonMcpAppToolResult } from '@qwen-code/sd
|
|
|
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>;
|
|
5
|
+
export interface McpAppMessageRequest {
|
|
6
|
+
serverName: string;
|
|
7
|
+
resourceUri: string;
|
|
8
|
+
text: string;
|
|
9
|
+
signal: AbortSignal;
|
|
10
|
+
}
|
|
11
|
+
export interface McpAppMessages {
|
|
12
|
+
sessionId: string;
|
|
13
|
+
requestMessage(request: McpAppMessageRequest): Promise<{
|
|
14
|
+
isError?: boolean;
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
17
|
+
export declare const McpAppMessagesContext: import("react").Context<McpAppMessages | undefined>;
|
|
5
18
|
export declare const McpAppToolsContext: import("react").Context<{
|
|
6
19
|
sessionId: string;
|
|
7
20
|
callTool: (request: McpAppToolCallRequest, signal: AbortSignal) => Promise<DaemonMcpAppToolResult>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { DaemonBackgroundTurn } from '@qwen-code/sdk/daemon';
|
|
2
2
|
import { type ReactNode } from 'react';
|
|
3
3
|
import type { ACPToolCall } from './adapters/types';
|
|
4
|
-
export type OpenSubagentDetails = (tool: ACPToolCall) => void;
|
|
4
|
+
export type OpenSubagentDetails = (tool: ACPToolCall, parentSessionId?: string) => void;
|
|
5
5
|
interface SubagentDetailsContextValue {
|
|
6
6
|
onOpen: OpenSubagentDetails;
|
|
7
7
|
onOpenBackground?: (turn: DaemonBackgroundTurn) => void;
|