@tutti-os/agent-gui 0.0.47 → 0.0.49

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.
Files changed (64) hide show
  1. package/dist/agent-conversation/index.d.ts +4 -4
  2. package/dist/agent-conversation/index.js +6 -6
  3. package/dist/agent-message-center/index.d.ts +2 -2
  4. package/dist/agent-message-center/index.js +35 -13
  5. package/dist/agent-message-center/index.js.map +1 -1
  6. package/dist/{agentConversationVM-BTMtRteS.d.ts → agentConversationVM-DSXrFL9v.d.ts} +5 -1
  7. package/dist/{agentGuiNodeTypes-B5Y6yDKy.d.ts → agentGuiNodeTypes-Bp1G8pOj.d.ts} +4 -4
  8. package/dist/app/renderer/agentactivity.css +102 -93
  9. package/dist/{chunk-7NCWSH7U.js → chunk-5HJWT6YN.js} +5 -5
  10. package/dist/{chunk-2FOBSURO.js → chunk-6KQHNUR5.js} +2 -2
  11. package/dist/{chunk-5QTC2L52.js → chunk-77UR4G7P.js} +2 -2
  12. package/dist/{chunk-HCS3HUUX.js → chunk-A2EN24OI.js} +37 -7
  13. package/dist/chunk-A2EN24OI.js.map +1 -0
  14. package/dist/{chunk-2RYZ4EBF.js → chunk-AKK7UOAS.js} +2 -2
  15. package/dist/{chunk-Q4X6Q4E6.js → chunk-AYEYXKLF.js} +2 -2
  16. package/dist/{chunk-J3SJZMI5.js → chunk-FSRS2JFR.js} +2 -2
  17. package/dist/{chunk-KACBTC7Y.js → chunk-K6SRLYC3.js} +17 -3
  18. package/dist/chunk-K6SRLYC3.js.map +1 -0
  19. package/dist/{chunk-MCH35MAX.js → chunk-Q3MOU4CD.js} +10 -6
  20. package/dist/chunk-Q3MOU4CD.js.map +1 -0
  21. package/dist/{chunk-R6GOICRO.js → chunk-QGBIGRZA.js} +56 -9
  22. package/dist/chunk-QGBIGRZA.js.map +1 -0
  23. package/dist/{chunk-XJXSR5XI.js → chunk-RJR2OZ6T.js} +125 -34
  24. package/dist/chunk-RJR2OZ6T.js.map +1 -0
  25. package/dist/{chunk-SD56WDSC.js → chunk-TG3ZXLPM.js} +42 -1
  26. package/dist/chunk-TG3ZXLPM.js.map +1 -0
  27. package/dist/{chunk-KUCWRSXU.js → chunk-TTDBLIQ3.js} +2 -2
  28. package/dist/{chunk-VE6JY2TH.js → chunk-U6JWW45G.js} +1 -1
  29. package/dist/chunk-U6JWW45G.js.map +1 -0
  30. package/dist/{chunk-ZAF4IVUT.js → chunk-XRJZCEOX.js} +462 -366
  31. package/dist/chunk-XRJZCEOX.js.map +1 -0
  32. package/dist/context-mention-palette/index.js +7 -7
  33. package/dist/i18n/index.d.ts +16 -2
  34. package/dist/i18n/index.js +2 -2
  35. package/dist/index.d.ts +290 -8
  36. package/dist/index.js +578 -830
  37. package/dist/index.js.map +1 -1
  38. package/dist/plan-decision-ops.d.ts +2 -2
  39. package/dist/queued-prompt-runtime.d.ts +4 -3
  40. package/dist/queued-prompt-runtime.js +1 -1
  41. package/dist/workbench/contribution.js +2 -2
  42. package/dist/workbench/index.js +5 -5
  43. package/dist/workbench/launch.d.ts +22 -1
  44. package/dist/workbench/launch.js +13 -3
  45. package/dist/workbench/sessionTitle.js +3 -3
  46. package/dist/workspace-agent-generated-files.d.ts +1 -1
  47. package/dist/workspace-agent-generated-files.js +3 -3
  48. package/dist/{workspaceAgentActivityListViewModel-DLnMBMoh.d.ts → workspaceAgentActivityListViewModel-B5viw5Da.d.ts} +1 -1
  49. package/package.json +12 -12
  50. package/dist/chunk-HCS3HUUX.js.map +0 -1
  51. package/dist/chunk-KACBTC7Y.js.map +0 -1
  52. package/dist/chunk-MCH35MAX.js.map +0 -1
  53. package/dist/chunk-R6GOICRO.js.map +0 -1
  54. package/dist/chunk-SD56WDSC.js.map +0 -1
  55. package/dist/chunk-VE6JY2TH.js.map +0 -1
  56. package/dist/chunk-XJXSR5XI.js.map +0 -1
  57. package/dist/chunk-ZAF4IVUT.js.map +0 -1
  58. /package/dist/{chunk-7NCWSH7U.js.map → chunk-5HJWT6YN.js.map} +0 -0
  59. /package/dist/{chunk-2FOBSURO.js.map → chunk-6KQHNUR5.js.map} +0 -0
  60. /package/dist/{chunk-5QTC2L52.js.map → chunk-77UR4G7P.js.map} +0 -0
  61. /package/dist/{chunk-2RYZ4EBF.js.map → chunk-AKK7UOAS.js.map} +0 -0
  62. /package/dist/{chunk-Q4X6Q4E6.js.map → chunk-AYEYXKLF.js.map} +0 -0
  63. /package/dist/{chunk-J3SJZMI5.js.map → chunk-FSRS2JFR.js.map} +0 -0
  64. /package/dist/{chunk-KUCWRSXU.js.map → chunk-TTDBLIQ3.js.map} +0 -0
@@ -4,23 +4,23 @@ import {
4
4
  AgentMentionSearchController,
5
5
  flattenAgentMentionPaletteEntries,
6
6
  groupStartKeys
7
- } from "../chunk-7NCWSH7U.js";
8
- import "../chunk-MCH35MAX.js";
9
- import "../chunk-Q4X6Q4E6.js";
7
+ } from "../chunk-5HJWT6YN.js";
8
+ import "../chunk-Q3MOU4CD.js";
9
+ import "../chunk-AYEYXKLF.js";
10
10
  import "../chunk-IBIMGLCD.js";
11
11
  import "../chunk-MTFSQWZ6.js";
12
- import "../chunk-2FOBSURO.js";
12
+ import "../chunk-6KQHNUR5.js";
13
13
  import "../chunk-Y35GDLP2.js";
14
14
  import "../chunk-LUGELG5V.js";
15
- import "../chunk-VE6JY2TH.js";
15
+ import "../chunk-U6JWW45G.js";
16
16
  import "../chunk-TYGL25EL.js";
17
17
  import "../chunk-PJP5BUU6.js";
18
18
  import {
19
19
  AGENT_CONTEXT_MENTION_PROVIDER_IDS
20
20
  } from "../chunk-JM24HADP.js";
21
21
  import "../chunk-GCBDIQDX.js";
22
- import "../chunk-5QTC2L52.js";
23
- import "../chunk-KACBTC7Y.js";
22
+ import "../chunk-77UR4G7P.js";
23
+ import "../chunk-K6SRLYC3.js";
24
24
  export {
25
25
  AGENT_CONTEXT_MENTION_PROVIDER_IDS,
26
26
  AgentContextMentionPalette,
@@ -484,7 +484,7 @@ declare const agentGuiI18nResources: {
484
484
  readonly slashStatusLimitsUnavailable: "Rate limits unavailable from this agent";
485
485
  readonly usageChipLabel: "Context {{percent}}%";
486
486
  readonly usageTooltipLabel: "Context usage";
487
- readonly usagePopoverTitle: "Plan usage";
487
+ readonly usagePopoverTitle: "Context Usage";
488
488
  readonly usageContextWindowLabel: "Context window";
489
489
  readonly usageTokensLabel: "Tokens";
490
490
  readonly usageLimitsLabel: "Limits";
@@ -746,6 +746,10 @@ declare const agentGuiI18nResources: {
746
746
  readonly label: "Allow all";
747
747
  readonly description: "Do not prompt for tools";
748
748
  };
749
+ readonly auto: {
750
+ readonly label: "Auto";
751
+ readonly description: "Let the agent choose when to ask";
752
+ };
749
753
  };
750
754
  readonly stayInPlan: "Keep planning";
751
755
  readonly sendFeedback: "Send feedback and keep planning";
@@ -1231,6 +1235,7 @@ declare const agentGuiI18nResources: {
1231
1235
  readonly waitingForAnswer: "Waiting for answer…";
1232
1236
  readonly questionFallback: "Question";
1233
1237
  readonly delegateSession: "Delegate session";
1238
+ readonly missingFailureDetails: "The provider reported failure without details.";
1234
1239
  readonly noMatches: "No matches";
1235
1240
  readonly noMatchingTools: "No matching tools";
1236
1241
  readonly loadedAvailable: "{{loaded}} loaded · {{available}} available";
@@ -1261,6 +1266,8 @@ declare const agentGuiI18nResources: {
1261
1266
  readonly editNotebook: "Edit notebook";
1262
1267
  readonly updateTodos: "Update todos";
1263
1268
  readonly delegateAgent: "Delegate agent";
1269
+ readonly closeAgent: "End agent";
1270
+ readonly waitAgent: "Wait for agent";
1264
1271
  readonly currentIssue: "Current task";
1265
1272
  readonly thinking: "Thinking";
1266
1273
  readonly responding: "Responding";
@@ -2918,7 +2925,7 @@ declare const agentGuiI18nResources: {
2918
2925
  readonly slashStatusLimitsUnavailable: "当前 Agent 未提供额度限制";
2919
2926
  readonly usageChipLabel: "上下文 {{percent}}%";
2920
2927
  readonly usageTooltipLabel: "上下文用量";
2921
- readonly usagePopoverTitle: "计划用量";
2928
+ readonly usagePopoverTitle: "上下文用量";
2922
2929
  readonly usageContextWindowLabel: "上下文窗口";
2923
2930
  readonly usageTokensLabel: "Token 用量";
2924
2931
  readonly usageLimitsLabel: "限额";
@@ -3180,6 +3187,10 @@ declare const agentGuiI18nResources: {
3180
3187
  readonly label: "全部允许";
3181
3188
  readonly description: "不再弹出工具确认";
3182
3189
  };
3190
+ readonly auto: {
3191
+ readonly label: "自动";
3192
+ readonly description: "由智能体自行决定何时询问";
3193
+ };
3183
3194
  };
3184
3195
  readonly stayInPlan: "继续规划";
3185
3196
  readonly sendFeedback: "发送反馈并继续规划";
@@ -3666,6 +3677,7 @@ declare const agentGuiI18nResources: {
3666
3677
  readonly waitingForAnswer: "等待用户回答…";
3667
3678
  readonly questionFallback: "问题";
3668
3679
  readonly delegateSession: "委托会话";
3680
+ readonly missingFailureDetails: "Provider 报告失败,但没有返回失败详情。";
3669
3681
  readonly noMatches: "没有匹配结果";
3670
3682
  readonly noMatchingTools: "没有匹配的工具";
3671
3683
  readonly loadedAvailable: "已加载 {{loaded}} 个 · 共 {{available}} 个";
@@ -3696,6 +3708,8 @@ declare const agentGuiI18nResources: {
3696
3708
  readonly editNotebook: "编辑 Notebook";
3697
3709
  readonly updateTodos: "更新待办";
3698
3710
  readonly delegateAgent: "委托 Agent";
3711
+ readonly closeAgent: "结束 Agent";
3712
+ readonly waitAgent: "等待 Agent";
3699
3713
  readonly currentIssue: "当前任务";
3700
3714
  readonly thinking: "思考";
3701
3715
  readonly responding: "回复";
@@ -6,8 +6,8 @@ import {
6
6
  translate,
7
7
  translateInUiLanguage,
8
8
  useTranslation
9
- } from "../chunk-5QTC2L52.js";
10
- import "../chunk-KACBTC7Y.js";
9
+ } from "../chunk-77UR4G7P.js";
10
+ import "../chunk-K6SRLYC3.js";
11
11
  export {
12
12
  AgentGuiI18nProvider,
13
13
  agentGuiI18nModule,
package/dist/index.d.ts CHANGED
@@ -1,27 +1,30 @@
1
1
  import { AgentActivityNeedsAttentionItem, AgentActivitySnapshot, AgentActivityCancelSessionInput, AgentActivityCancelSessionResult, AgentActivityCreateSessionInput, AgentActivitySession, AgentActivityDeleteSessionInput, AgentActivityDeleteSessionResult, AgentActivitySendInput, AgentActivityMessageOrder, AgentActivityMessagePage, AgentActivitySendInputResult, AgentActivitySubmitInteractiveInput, AgentActivitySnapshotListener } from '@tutti-os/agent-activity-core';
2
2
  export { AgentActivityAdapter, AgentActivityController, AgentActivityMessage, AgentActivityNeedsAttentionItem, AgentActivitySnapshot, selectNeedsAttentionCount, selectNeedsAttentionItems } from '@tutti-os/agent-activity-core';
3
- import { m as WorkspaceAgentActivityListViewModel, g as AgentHostWorkspaceAgentSession, f as AgentHostWorkspaceAgentMessage, l as AgentHostWorkspaceAgentSnapshot, B as BuildWorkspaceAgentActivityListOptions, d as AgentHostRuntimeOpenclawGatewayWarmupResult, c as AgentHostManagedAgentsState } from './workspaceAgentActivityListViewModel-DLnMBMoh.js';
3
+ import { m as WorkspaceAgentActivityListViewModel, g as AgentHostWorkspaceAgentSession, f as AgentHostWorkspaceAgentMessage, l as AgentHostWorkspaceAgentSnapshot, B as BuildWorkspaceAgentActivityListOptions, d as AgentHostRuntimeOpenclawGatewayWarmupResult, c as AgentHostManagedAgentsState } from './workspaceAgentActivityListViewModel-B5viw5Da.js';
4
4
  import * as react from 'react';
5
5
  import { PropsWithChildren, JSX } from 'react';
6
6
  import { I18nRuntime } from '@tutti-os/ui-i18n-runtime';
7
- import { n as AgentProvider, c as AgentGUIProviderTargetRef, f as AgentHostAgentSessionComposerSettings, d as AgentHostActivateAgentSessionResult, l as AgentHostUpdateAgentSessionSettingsResult, j as AgentHostAgentSessionState, k as AgentHostUnactivateAgentSessionResult, A as AgentGUINodeData, P as Point, b as AgentGUIProviderTarget, N as NodeFrame, a as AgentGUIProvider } from './types-xMz0lJWt.js';
8
- import { i as AgentProbeSnapshot, A as AgentGUINodeViewModel, e as AgentHostInputApi } from './agentGuiNodeTypes-B5Y6yDKy.js';
9
- export { c as AgentHostApi, d as AgentHostApplyWorkspaceGitPatchInput, f as AgentHostRuntimeApi, g as AgentHostSelectFilesInput, h as AgentProbeProvider, j as AgentProviderProbeListInput, k as AgentProviderProbeListResult, l as AgentUsageQuota, m as AgentUsageSnapshot, P as PersistWriteResult, R as ReadWorkspaceAgentReadStateInput, W as WorkspaceAgentReadStateSnapshot, n as WriteWorkspaceAgentReadStateInput } from './agentGuiNodeTypes-B5Y6yDKy.js';
10
- import { ReferenceLocateTarget, WorkspaceFileReferenceAdapter, WorkspaceFileReference } from '@tutti-os/workspace-file-reference/contracts';
7
+ import { n as AgentProvider, c as AgentGUIProviderTargetRef, f as AgentHostAgentSessionComposerSettings, d as AgentHostActivateAgentSessionResult, l as AgentHostUpdateAgentSessionSettingsResult, j as AgentHostAgentSessionState, k as AgentHostUnactivateAgentSessionResult, A as AgentGUINodeData, m as AgentPromptContentBlock, P as Point, b as AgentGUIProviderTarget, N as NodeFrame, a as AgentGUIProvider } from './types-xMz0lJWt.js';
8
+ import { k as AgentProbeSnapshot, A as AgentComposerDraft, n as AgentSessionCommand, c as AgentGUIProviderSkillOption, a as AgentGUIComposerSettingsVM, d as AgentGUIQueuedPromptVM, b as AgentGUINodeViewModel, g as AgentHostInputApi } from './agentGuiNodeTypes-Bp1G8pOj.js';
9
+ export { e as AgentHostApi, f as AgentHostApplyWorkspaceGitPatchInput, h as AgentHostRuntimeApi, i as AgentHostSelectFilesInput, j as AgentProbeProvider, l as AgentProviderProbeListInput, m as AgentProviderProbeListResult, o as AgentUsageQuota, p as AgentUsageSnapshot, P as PersistWriteResult, R as ReadWorkspaceAgentReadStateInput, W as WorkspaceAgentReadStateSnapshot, q as WriteWorkspaceAgentReadStateInput } from './agentGuiNodeTypes-Bp1G8pOj.js';
10
+ import { WorkspaceFileEntry } from '@tutti-os/workspace-file-manager/services';
11
+ import { WorkspaceFileReference, ReferenceLocateTarget, WorkspaceFileReferenceAdapter } from '@tutti-os/workspace-file-reference/contracts';
11
12
  import { ReferenceSourceAggregator } from '@tutti-os/workspace-file-reference/core';
12
13
  import { U as UiLanguage, a as UiTheme } from './uiSettings-BQS9r2eo.js';
13
14
  import { W as WorkspaceLinkAction } from './workspaceLinkActions-C6POH38D.js';
14
15
  import { A as AgentContextMentionItem } from './AgentMentionSearchController-CExFPobz.js';
15
16
  export { p as preloadAgentMentionBrowse } from './AgentMentionSearchController-CExFPobz.js';
17
+ import { b as AgentConversationPromptVM } from './agentConversationVM-DSXrFL9v.js';
18
+ import { WorkspaceUserProjectI18nRuntime } from '@tutti-os/workspace-user-project/i18n';
19
+ import { WorkspaceUserProjectSelectChangeAction } from '@tutti-os/workspace-user-project/ui';
20
+ import { WorkspaceUserProject } from '@tutti-os/workspace-user-project/contracts';
21
+ import { A as AgentMessageMarkdownWorkspaceAppIcon } from './AgentMessageMarkdown-DeYPURtF.js';
16
22
  import { AgentContextMentionProvider } from './context-mention-provider.js';
17
23
  export { AGENT_CONTEXT_MENTION_PROVIDER_IDS, AgentContextMentionProviderId } from './context-mention-provider.js';
18
- import { A as AgentMessageMarkdownWorkspaceAppIcon } from './AgentMessageMarkdown-DeYPURtF.js';
19
24
  import { AgentQueuedPromptRuntime, AgentQueuedPromptQueueSnapshot } from './queued-prompt-runtime.js';
20
25
  export { AgentQueuedPromptClaim, AgentQueuedPromptClaimResult, AgentQueuedPromptRetryBlock, AgentQueuedPromptSnapshot, createAgentQueuedPromptRuntime } from './queued-prompt-runtime.js';
21
26
  import { AgentGuiI18nLocale } from './i18n/index.js';
22
27
  export { AgentGuiI18nProvider, agentGuiI18nModule, agentGuiI18nResources } from './i18n/index.js';
23
- import './agentConversationVM-BTMtRteS.js';
24
- import '@tutti-os/workspace-user-project/contracts';
25
28
  import '@tutti-os/workspace-issue-manager/core';
26
29
  import '@tutti-os/ui-rich-text/at-panel';
27
30
  import '@tutti-os/ui-rich-text/types';
@@ -291,6 +294,10 @@ interface AgentActivityRuntimePromptAsset {
291
294
  data: string;
292
295
  }
293
296
  interface AgentActivityRuntime {
297
+ promptContentUploadSupport?: {
298
+ file?: boolean;
299
+ image?: boolean;
300
+ };
294
301
  cancelSession(input: AgentActivityCancelSessionInput): Promise<AgentActivityCancelSessionResult>;
295
302
  createSession(input: AgentActivityCreateSessionInput): Promise<AgentActivitySession>;
296
303
  deleteSession(input: AgentActivityDeleteSessionInput): Promise<AgentActivityDeleteSessionResult>;
@@ -372,6 +379,252 @@ interface AgentSlashCommandCapability {
372
379
  name: string;
373
380
  }
374
381
 
382
+ interface AgentProjectPathChangeMetadata {
383
+ action: WorkspaceUserProjectSelectChangeAction;
384
+ project?: WorkspaceUserProject;
385
+ }
386
+
387
+ type AgentDroppedFileReferenceResolver = (files: readonly File[]) => Promise<readonly WorkspaceFileReference[]> | readonly WorkspaceFileReference[];
388
+
389
+ /**
390
+ * 引用 picker 的确认结果:松散文件按 file mention 插入;mentionItems(如文件夹 bundle)
391
+ * 作为整体节点插入。两者各走各的插入路径,composer 不需要理解 bundle 内部结构。
392
+ */
393
+ interface WorkspaceReferencePickResult {
394
+ files: readonly WorkspaceFileReference[];
395
+ mentionItems: readonly AgentContextMentionItem[];
396
+ }
397
+ interface AgentComposerProps {
398
+ workspaceId: string;
399
+ workspacePath?: string | null;
400
+ currentUserId?: string | null;
401
+ provider: string;
402
+ slashStatus?: AgentComposerSlashStatus | null;
403
+ usage?: AgentComposerUsage | null;
404
+ draftContent: AgentComposerDraft;
405
+ availableCommands: readonly AgentSessionCommand[];
406
+ hasCompactableContext?: boolean;
407
+ compactSupported?: boolean | null;
408
+ availableSkills?: readonly AgentGUIProviderSkillOption[];
409
+ disabled: boolean;
410
+ disabledReason?: string | null;
411
+ submitDisabled: boolean;
412
+ placeholder: string;
413
+ composerSettings: AgentGUIComposerSettingsVM;
414
+ queuedPrompts: readonly AgentGUIQueuedPromptVM[];
415
+ drainingQueuedPromptId: string | null;
416
+ workspaceAppIcons?: readonly AgentMessageMarkdownWorkspaceAppIcon[];
417
+ canQueueWhileBusy: boolean;
418
+ showStopButton: boolean;
419
+ activePrompt: AgentConversationPromptVM | null;
420
+ activePromptKeyboardShortcutsEnabled?: boolean;
421
+ promptTips?: readonly AgentComposerPromptTip[];
422
+ isInterrupting: boolean;
423
+ isSendingTurn: boolean;
424
+ isSubmittingPrompt: boolean;
425
+ uiLanguage?: UiLanguage;
426
+ isActive?: boolean;
427
+ previewMode?: boolean;
428
+ promptImagesSupported?: boolean;
429
+ composerFocusRequestSequence?: number | null;
430
+ layoutMode?: "dock" | "hero";
431
+ labels: {
432
+ send: string;
433
+ modelLabel: string;
434
+ modelSelectionLabel: string;
435
+ modelContextWindowSuffix: string;
436
+ modelTooltipVersionLabel: string;
437
+ defaultModel: string;
438
+ loadingOptions: string;
439
+ inheritedUnavailable: string;
440
+ loadingConversation: string;
441
+ reasoningLabel: string;
442
+ reasoningDegreeLabel: string;
443
+ reasoningOptionDefault: string;
444
+ reasoningOptionMinimal: string;
445
+ reasoningOptionLow: string;
446
+ reasoningOptionMedium: string;
447
+ reasoningOptionHigh: string;
448
+ reasoningOptionXHigh: string;
449
+ reasoningOptionMax: string;
450
+ speedLabel: string;
451
+ speedSelectionLabel: string;
452
+ speedOptionStandard: string;
453
+ speedOptionStandardDescription: string;
454
+ speedOptionFast: string;
455
+ speedOptionFastDescription: string;
456
+ permissionLabel: string;
457
+ permissionModeReadOnly: string;
458
+ permissionModeAuto: string;
459
+ permissionModeFullAccess: string;
460
+ modelDescriptions: {
461
+ frontierComplexCoding: string;
462
+ everydayCoding: string;
463
+ smallFastCostEfficient: string;
464
+ codingOptimized: string;
465
+ ultraFastCoding: string;
466
+ professionalLongRunning: string;
467
+ };
468
+ planModeLabel: string;
469
+ planModeOnLabel: string;
470
+ planModeOffLabel: string;
471
+ planUnavailable: string;
472
+ goalLabel: string;
473
+ browserUseCapabilityLabel: string;
474
+ browserUseCapabilityDescription: string;
475
+ browserUseCapabilityDescriptionAutoConnect: string;
476
+ browserUseCapabilityDescriptionIsolated: string;
477
+ browserUseCapabilitySettingsLabel: string;
478
+ browserUseCapabilitySettingsDescription: string;
479
+ capabilityInlineSettingsLabel: string;
480
+ computerUseCapabilityLabel: string;
481
+ computerUseCapabilityDescription: string;
482
+ computerUseCapabilitySetupRequiredDescription: string;
483
+ computerUseCapabilityAuthorizationRequiredDescription: string;
484
+ computerUseCapabilityAuthorizationUnknownDescription: string;
485
+ computerUseCapabilitySettingsLabel: string;
486
+ computerUseCapabilitySettingsDescription: string;
487
+ queuedLabel: string;
488
+ sendQueuedPromptNext: string;
489
+ editQueuedPrompt: string;
490
+ deleteQueuedPrompt: string;
491
+ queuedPromptMoreActions: string;
492
+ stop: string;
493
+ stopping: string;
494
+ slashCommandPalette: string;
495
+ skillPickerPalette: string;
496
+ slashPaletteCommandsGroup: string;
497
+ slashPaletteCapabilitiesGroup: string;
498
+ slashPaletteSkillsGroup: string;
499
+ slashPalettePluginsGroup: string;
500
+ slashPaletteConnectorsGroup: string;
501
+ slashPaletteMcpGroup: string;
502
+ slashCommandCompactLabel: string;
503
+ slashCommandContextLabel: string;
504
+ slashCommandFastLabel: string;
505
+ slashCommandGoalLabel: string;
506
+ slashCommandInitLabel: string;
507
+ slashCommandPlanLabel: string;
508
+ slashCommandReviewLabel: string;
509
+ slashCommandStatusLabel: string;
510
+ slashCommandUsageLabel: string;
511
+ slashCommandCompactDescription: string;
512
+ slashCommandContextDescription: string;
513
+ slashCommandFastDescription: string;
514
+ slashCommandGoalDescription: string;
515
+ slashCommandInitDescription: string;
516
+ slashCommandPlanDescription: string;
517
+ slashCommandReviewDescription: string;
518
+ slashCommandStatusDescription: string;
519
+ slashCommandUsageDescription: string;
520
+ slashStatusTitle: string;
521
+ slashStatusSession: string;
522
+ slashStatusBaseUrl: string;
523
+ slashStatusContext: string;
524
+ slashStatusLimits: string;
525
+ slashStatusClose: string;
526
+ slashStatusContextValue: (input: {
527
+ percentLeft: number;
528
+ usedTokens: string;
529
+ totalTokens: string;
530
+ }) => string;
531
+ slashStatusContextUnavailable: string;
532
+ slashStatusLimitsUnavailable: string;
533
+ usageChipLabel: (input: {
534
+ percent: number;
535
+ }) => string;
536
+ usageTooltipLabel: string;
537
+ usagePopoverTitle: string;
538
+ usageContextWindowLabel: string;
539
+ usageTokensLabel: string;
540
+ usageLimitsLabel: string;
541
+ usageCompactAction: string;
542
+ approvalLead: string;
543
+ planLead: string;
544
+ planModes: Array<{
545
+ id: string;
546
+ label: string;
547
+ description: string;
548
+ }>;
549
+ stayInPlan: string;
550
+ sendFeedback: string;
551
+ feedbackPlaceholder: string;
552
+ previousQuestion: string;
553
+ nextQuestion: string;
554
+ submitAnswers: string;
555
+ answerPlaceholder: string;
556
+ waitingForAnswer: string;
557
+ planImplementationLead: string;
558
+ planImplementationConfirm: string;
559
+ planImplementationFeedbackPlaceholder: string;
560
+ planImplementationSend: string;
561
+ planImplementationSkip: string;
562
+ fileMentionPalette: string;
563
+ fileMentionLoading: string;
564
+ fileMentionEmpty: string;
565
+ fileMentionError: string;
566
+ fileMentionTabHint: string;
567
+ removeMention: string;
568
+ addReference: string;
569
+ referenceWorkspaceFiles: string;
570
+ projectLocked: string;
571
+ projectMissingDescription: string;
572
+ promptTipsPrefix: string;
573
+ reviewPicker: {
574
+ title: string;
575
+ targetLabel: string;
576
+ searchPlaceholder: string;
577
+ noResults: string;
578
+ uncommitted: string;
579
+ baseBranch: string;
580
+ commit: string;
581
+ custom: string;
582
+ branchLabel: string;
583
+ branchPlaceholder: string;
584
+ branchLoading: string;
585
+ branchEmpty: string;
586
+ commitPlaceholder: string;
587
+ customPlaceholder: string;
588
+ submit: string;
589
+ cancel: string;
590
+ };
591
+ };
592
+ workspaceUserProjectI18n: WorkspaceUserProjectI18nRuntime;
593
+ onDraftContentChange: (draftContent: AgentComposerDraft) => void;
594
+ onProjectPathChange?: (path: string | null, metadata?: AgentProjectPathChangeMetadata) => void;
595
+ onSettingsChange: (settings: {
596
+ model?: string | null;
597
+ reasoningEffort?: string | null;
598
+ speed?: string | null;
599
+ planMode?: boolean;
600
+ browserUse?: boolean;
601
+ computerUse?: boolean;
602
+ permissionModeId?: string | null;
603
+ }) => void;
604
+ capabilityMenuState?: AgentComposerCapabilityMenuState;
605
+ onCapabilitySettingsRequest?: (capability: AgentComposerCapabilitySettingsTarget) => void;
606
+ onSubmit: (content: AgentPromptContentBlock[], displayPrompt?: string) => void;
607
+ onSubmitGuidance?: (content: AgentPromptContentBlock[], displayPrompt?: string) => void;
608
+ onSendQueuedPromptNext: (queuedPromptId: string) => void;
609
+ onRemoveQueuedPrompt: (queuedPromptId: string) => void;
610
+ onEditQueuedPrompt: (queuedPromptId: string) => void;
611
+ onInterruptCurrentTurn: () => void;
612
+ onPromptImagesUnsupported?: () => void;
613
+ onSubmitInteractivePrompt: (input: {
614
+ requestId: string;
615
+ action?: string;
616
+ optionId?: string;
617
+ payload?: Record<string, unknown>;
618
+ }) => void;
619
+ onLinkAction?: (action: WorkspaceLinkAction) => void;
620
+ onRequestWorkspaceReferences?: ((entity?: AgentContextMentionItem | null) => Promise<WorkspaceReferencePickResult>) | null;
621
+ resolveDroppedFileReferences?: AgentDroppedFileReferenceResolver | null;
622
+ selectProjectDirectory?: () => Promise<{
623
+ path: string;
624
+ } | null>;
625
+ onRequestGitBranches?: AgentComposerGitBranchLoader | null;
626
+ contextMentionProviders?: readonly AgentContextMentionProvider[];
627
+ }
375
628
  type AgentComposerCapabilitySettingsTarget = AgentSlashCommandCapability["capability"];
376
629
  interface AgentComposerCapabilityMenuState {
377
630
  browserUse?: {
@@ -391,6 +644,33 @@ type AgentComposerGitBranchLoader = (input: {
391
644
  agentSessionId?: string | null;
392
645
  workingDirectory?: string | null;
393
646
  }) => Promise<AgentComposerGitBranches>;
647
+ interface AgentComposerPromptTip {
648
+ id: string;
649
+ label: string;
650
+ prompt: string;
651
+ }
652
+ interface AgentComposerSlashStatus {
653
+ agentSessionId?: string | null;
654
+ baseUrl?: string | null;
655
+ contextWindow?: {
656
+ usedTokens?: number | null;
657
+ totalTokens?: number | null;
658
+ } | null;
659
+ limits?: readonly AgentComposerSlashStatusLimit[];
660
+ limitsLoading?: boolean;
661
+ }
662
+ interface AgentComposerSlashStatusLimit {
663
+ id: string;
664
+ label: string;
665
+ percentRemaining?: number | null;
666
+ value: string;
667
+ reset?: string | null;
668
+ }
669
+ interface AgentComposerUsage {
670
+ percentUsed: number | null;
671
+ usedTokens: number | null;
672
+ totalTokens: number | null;
673
+ }
394
674
 
395
675
  /**
396
676
  * 把 @ 面板里的任务/应用 mention 解析为引用 picker 的定位目标(sourceId + 语义 params)。
@@ -414,7 +694,9 @@ interface AgentGUINodeProps {
414
694
  selectProjectDirectory?: () => Promise<{
415
695
  path: string;
416
696
  } | null>;
697
+ resolveDroppedFileReferences?: AgentComposerProps["resolveDroppedFileReferences"];
417
698
  referenceSourceAggregator?: ReferenceSourceAggregator | null;
699
+ resolveWorkspaceReferenceEntryIconUrl?: (entry: WorkspaceFileEntry) => Promise<string | null | undefined>;
418
700
  resolveMentionReferenceTarget?: AgentMentionReferenceTargetResolver | null;
419
701
  resolveWorkspaceReferenceInitialTarget?: AgentWorkspaceReferenceInitialTargetResolver | null;
420
702
  agentSettings: Pick<AgentSettings, "avoidGroupingEdits">;