@tutti-os/agent-gui 0.0.47 → 0.0.48

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 (52) 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 +62 -12
  9. package/dist/{chunk-XJXSR5XI.js → chunk-6YN7HQL5.js} +125 -34
  10. package/dist/chunk-6YN7HQL5.js.map +1 -0
  11. package/dist/{chunk-MCH35MAX.js → chunk-7W3VWU5R.js} +10 -6
  12. package/dist/chunk-7W3VWU5R.js.map +1 -0
  13. package/dist/{chunk-Q4X6Q4E6.js → chunk-EUOGIKT7.js} +2 -2
  14. package/dist/{chunk-ZAF4IVUT.js → chunk-LWMC2YA3.js} +431 -359
  15. package/dist/chunk-LWMC2YA3.js.map +1 -0
  16. package/dist/{chunk-5QTC2L52.js → chunk-N6HRVMIS.js} +2 -2
  17. package/dist/{chunk-KACBTC7Y.js → chunk-NETHPCSA.js} +11 -3
  18. package/dist/chunk-NETHPCSA.js.map +1 -0
  19. package/dist/{chunk-J3SJZMI5.js → chunk-OB43QOMC.js} +2 -2
  20. package/dist/{chunk-2FOBSURO.js → chunk-OYQZRLJQ.js} +2 -2
  21. package/dist/{chunk-7NCWSH7U.js → chunk-RNIY43TA.js} +5 -5
  22. package/dist/{chunk-VE6JY2TH.js → chunk-U6JWW45G.js} +1 -1
  23. package/dist/chunk-U6JWW45G.js.map +1 -0
  24. package/dist/{chunk-HCS3HUUX.js → chunk-VGDPBC6W.js} +37 -7
  25. package/dist/chunk-VGDPBC6W.js.map +1 -0
  26. package/dist/{chunk-KUCWRSXU.js → chunk-ZVKRNEOF.js} +2 -2
  27. package/dist/context-mention-palette/index.js +7 -7
  28. package/dist/i18n/index.d.ts +10 -2
  29. package/dist/i18n/index.js +2 -2
  30. package/dist/index.d.ts +290 -8
  31. package/dist/index.js +189 -44
  32. package/dist/index.js.map +1 -1
  33. package/dist/plan-decision-ops.d.ts +2 -2
  34. package/dist/queued-prompt-runtime.d.ts +3 -3
  35. package/dist/workbench/index.js +3 -3
  36. package/dist/workbench/sessionTitle.js +3 -3
  37. package/dist/workspace-agent-generated-files.d.ts +1 -1
  38. package/dist/workspace-agent-generated-files.js +3 -3
  39. package/dist/{workspaceAgentActivityListViewModel-DLnMBMoh.d.ts → workspaceAgentActivityListViewModel-B5viw5Da.d.ts} +1 -1
  40. package/package.json +12 -12
  41. package/dist/chunk-HCS3HUUX.js.map +0 -1
  42. package/dist/chunk-KACBTC7Y.js.map +0 -1
  43. package/dist/chunk-MCH35MAX.js.map +0 -1
  44. package/dist/chunk-VE6JY2TH.js.map +0 -1
  45. package/dist/chunk-XJXSR5XI.js.map +0 -1
  46. package/dist/chunk-ZAF4IVUT.js.map +0 -1
  47. /package/dist/{chunk-Q4X6Q4E6.js.map → chunk-EUOGIKT7.js.map} +0 -0
  48. /package/dist/{chunk-5QTC2L52.js.map → chunk-N6HRVMIS.js.map} +0 -0
  49. /package/dist/{chunk-J3SJZMI5.js.map → chunk-OB43QOMC.js.map} +0 -0
  50. /package/dist/{chunk-2FOBSURO.js.map → chunk-OYQZRLJQ.js.map} +0 -0
  51. /package/dist/{chunk-7NCWSH7U.js.map → chunk-RNIY43TA.js.map} +0 -0
  52. /package/dist/{chunk-KUCWRSXU.js.map → chunk-ZVKRNEOF.js.map} +0 -0
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">;