@codingame/monaco-vscode-chat-service-override 26.2.2 → 27.0.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.
Files changed (316) hide show
  1. package/index.js +31 -1
  2. package/package.json +5 -5
  3. package/vscode/src/vs/platform/browserElements/common/browserElements.d.ts +15 -0
  4. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.d.ts +53 -0
  5. package/vscode/src/vs/sessions/contrib/agentFeedback/browser/agentFeedbackService.js +219 -0
  6. package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.d.ts +39 -0
  7. package/vscode/src/vs/sessions/contrib/chat/browser/aiCustomizationWorkspaceService.js +83 -0
  8. package/vscode/src/vs/sessions/contrib/chat/browser/newSession.d.ts +123 -0
  9. package/vscode/src/vs/sessions/contrib/chat/browser/newSession.js +274 -0
  10. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.d.ts +71 -0
  11. package/vscode/src/vs/sessions/contrib/chat/browser/sessionsConfigurationService.js +284 -0
  12. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.d.ts +79 -0
  13. package/vscode/src/vs/sessions/contrib/sessions/browser/sessionsManagementService.js +378 -0
  14. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.d.ts +1 -2
  15. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatAccessibilityService.js +27 -40
  16. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.d.ts +9 -3
  17. package/vscode/src/vs/workbench/contrib/chat/browser/accessibility/chatResponseAccessibleView.js +74 -18
  18. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.d.ts +1 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityActions.js +54 -8
  20. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +87 -53
  21. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAgentRecommendationActions.js +1 -1
  22. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCodeblockActions.js +71 -15
  23. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatContextActions.js +43 -21
  24. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCopyActions.js +3 -3
  25. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatDeveloperActions.js +22 -3
  26. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatFileTreeActions.js +2 -2
  27. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.d.ts +1 -0
  28. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatForkActions.js +154 -0
  29. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatImportExport.js +6 -8
  30. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatLanguageModelActions.js +13 -13
  31. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatMoveActions.js +6 -6
  32. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatNewActions.js +53 -43
  33. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.d.ts +4 -0
  34. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatOpenAgentDebugPanelAction.js +84 -0
  35. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.d.ts +1 -0
  36. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPluginActions.js +33 -0
  37. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatPromptNavigationActions.js +2 -2
  38. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQueueActions.js +15 -29
  39. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +8 -8
  40. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.d.ts +13 -0
  41. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolActions.js +16 -16
  42. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.js +12 -12
  43. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.js +18 -18
  44. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.d.ts +33 -0
  45. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginRepositoryService.js +204 -0
  46. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.d.ts +77 -0
  47. package/vscode/src/vs/workbench/contrib/chat/browser/agentPluginsView.js +541 -0
  48. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessions.contribution.js +10 -11
  49. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsActions.js +70 -65
  50. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.d.ts +7 -1
  51. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsPicker.js +27 -18
  52. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.d.ts +1 -0
  53. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/agentSessionsQuickAccess.js +4 -2
  54. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjection.js +1 -1
  55. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionActions.js +5 -5
  56. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.d.ts +2 -0
  57. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionProjectionService.js +90 -51
  58. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentSessionsExperiments.contribution.js +20 -5
  59. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.d.ts +3 -1
  60. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.js +43 -27
  61. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/media/agenttitlebarstatuswidget.css +7 -2
  62. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.d.ts +3 -1
  63. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccess.js +84 -22
  64. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/unifiedQuickAccessActions.js +4 -4
  65. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/{localAgentSessionsProvider.d.ts → localAgentSessionsController.d.ts} +7 -4
  66. package/vscode/src/vs/workbench/contrib/chat/browser/agentSessions/{localAgentSessionsProvider.js → localAgentSessionsController.js} +24 -17
  67. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.d.ts +23 -0
  68. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationDebugPanel.js +171 -0
  69. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.d.ts +48 -0
  70. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationIcons.js +19 -0
  71. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.d.ts +181 -0
  72. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationListWidget.js +943 -0
  73. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.d.ts +1 -0
  74. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.contribution.js +248 -0
  75. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.d.ts +57 -0
  76. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagement.js +27 -0
  77. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.d.ts +118 -0
  78. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditor.js +727 -0
  79. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.d.ts +22 -0
  80. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationManagementEditorInput.js +38 -0
  81. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.d.ts +1 -0
  82. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/aiCustomizationWorkspaceService.js +72 -0
  83. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.d.ts +45 -0
  84. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/customizationCreatorService.js +165 -0
  85. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.d.ts +75 -0
  86. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/mcpListWidget.js +623 -0
  87. package/vscode/src/vs/workbench/contrib/chat/browser/aiCustomization/media/aiCustomizationManagement.css +858 -0
  88. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.d.ts +2 -0
  89. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentResolveService.js +30 -1
  90. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgetRegistry.d.ts +32 -0
  91. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatAttachmentWidgetRegistry.js +26 -0
  92. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/chatVariables.js +19 -3
  93. package/vscode/src/vs/workbench/contrib/chat/browser/attachments/simpleBrowserEditorOverlay.js +36 -26
  94. package/vscode/src/vs/workbench/contrib/chat/browser/chat.contribution.js +529 -363
  95. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.d.ts +18 -0
  96. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatCustomizationDiscoveryRenderer.js +419 -0
  97. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.d.ts +12 -0
  98. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugCollapsible.js +46 -0
  99. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.d.ts +34 -0
  100. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugDetailPanel.js +198 -0
  101. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.d.ts +55 -0
  102. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditor.js +305 -0
  103. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.d.ts +23 -0
  104. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEditorInput.js +64 -0
  105. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.d.ts +5 -0
  106. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventDetailRenderer.js +84 -0
  107. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.d.ts +27 -0
  108. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugEventList.js +110 -0
  109. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.d.ts +34 -0
  110. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFilters.js +111 -0
  111. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.d.ts +71 -0
  112. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowChartView.js +611 -0
  113. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.d.ts +125 -0
  114. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowGraph.js +504 -0
  115. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowLayout.d.ts +10 -0
  116. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugFlowLayout.js +914 -0
  117. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.d.ts +19 -0
  118. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugHomeView.js +128 -0
  119. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.d.ts +58 -0
  120. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugLogsView.js +429 -0
  121. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.d.ts +31 -0
  122. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugMessageContentRenderer.js +113 -0
  123. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.d.ts +14 -0
  124. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugModelTurnContentRenderer.js +126 -0
  125. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.d.ts +38 -0
  126. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugOverviewView.js +279 -0
  127. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.d.ts +18 -0
  128. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugToolCallContentRenderer.js +122 -0
  129. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.d.ts +45 -0
  130. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/chatDebugTypes.js +85 -0
  131. package/vscode/src/vs/workbench/contrib/chat/browser/chatDebug/media/chatDebug.css +781 -0
  132. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingCodeEditorIntegration.js +1 -1
  133. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingExplanationModelManager.js +5 -22
  134. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedDocumentEntry.js +2 -2
  135. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.js +1 -1
  136. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.js +1 -1
  137. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingServiceImpl.js +3 -3
  138. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.js +3 -3
  139. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.js +2 -1
  140. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookEditorIntegration.js +1 -1
  141. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagement.contribution.js +12 -12
  142. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.d.ts +1 -0
  143. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditor.js +16 -15
  144. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatManagementEditorInput.js +4 -4
  145. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsViewModel.js +2 -2
  146. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatModelsWidget.js +63 -76
  147. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/chatUsageWidget.js +26 -15
  148. package/vscode/src/vs/workbench/contrib/chat/browser/chatManagement/media/chatManagementEditor.css +2 -2
  149. package/vscode/src/vs/workbench/contrib/chat/browser/chatOutputItemRenderer.js +3 -3
  150. package/vscode/src/vs/workbench/contrib/chat/browser/chatParticipant.contribution.js +30 -30
  151. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.d.ts +15 -7
  152. package/vscode/src/vs/workbench/contrib/chat/browser/chatRepoInfo.js +40 -413
  153. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.d.ts +10 -0
  154. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetup.js +38 -6
  155. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.d.ts +5 -1
  156. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupContributions.js +56 -46
  157. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.js +15 -11
  158. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.d.ts +52 -0
  159. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupGrowthSession.js +138 -0
  160. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.d.ts +11 -1
  161. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupProviders.js +166 -41
  162. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.d.ts +6 -0
  163. package/vscode/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupRunner.js +37 -23
  164. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.d.ts +15 -0
  165. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommands.js +351 -0
  166. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.d.ts +1 -0
  167. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusDashboard.js +118 -63
  168. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/chatStatusEntry.js +12 -12
  169. package/vscode/src/vs/workbench/contrib/chat/browser/chatStatus/media/chatStatus.css +28 -0
  170. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.d.ts +182 -13
  171. package/vscode/src/vs/workbench/contrib/chat/browser/chatTipService.js +892 -41
  172. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.d.ts +5 -1
  173. package/vscode/src/vs/workbench/contrib/chat/browser/chatWindowNotifier.js +55 -25
  174. package/vscode/src/vs/workbench/contrib/chat/browser/contextContrib/chatContextService.js +28 -19
  175. package/vscode/src/vs/workbench/contrib/chat/browser/createSlashCommandsUsageTracker.d.ts +14 -0
  176. package/vscode/src/vs/workbench/contrib/chat/browser/createSlashCommandsUsageTracker.js +62 -0
  177. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.d.ts +36 -0
  178. package/vscode/src/vs/workbench/contrib/chat/browser/defaultModelContribution.js +110 -0
  179. package/vscode/src/vs/workbench/contrib/chat/browser/exploreAgentDefaultModel.d.ts +10 -0
  180. package/vscode/src/vs/workbench/contrib/chat/browser/exploreAgentDefaultModel.js +39 -0
  181. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.d.ts +3 -3
  182. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelsConfigurationService.js +6 -6
  183. package/vscode/src/vs/workbench/contrib/chat/browser/planAgentDefaultModel.d.ts +10 -0
  184. package/vscode/src/vs/workbench/contrib/chat/browser/planAgentDefaultModel.js +39 -0
  185. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.d.ts +27 -0
  186. package/vscode/src/vs/workbench/contrib/chat/browser/pluginInstallService.js +102 -0
  187. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.js +6 -6
  188. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.d.ts +16 -1
  189. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookActions.js +69 -47
  190. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/hookUtils.js +2 -41
  191. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptCodingAgentActionOverlay.js +2 -2
  192. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptToolsCodeLensProvider.js +7 -7
  193. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptUrlHandler.js +8 -8
  194. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.d.ts +4 -0
  195. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.js +8 -8
  196. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveAsPromptFileActions.js +3 -3
  197. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.d.ts +4 -0
  198. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/skillActions.js +4 -4
  199. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.d.ts +22 -0
  200. package/vscode/src/vs/workbench/contrib/chat/browser/promptsDebugContribution.js +76 -0
  201. package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.d.ts +5 -0
  202. package/vscode/src/vs/workbench/contrib/chat/browser/sessionResourceMatching.js +30 -0
  203. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsConfirmationService.js +43 -31
  204. package/vscode/src/vs/workbench/contrib/chat/browser/tools/languageModelToolsService.js +67 -42
  205. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.d.ts +31 -0
  206. package/vscode/src/vs/workbench/contrib/chat/browser/tools/renameTool.js +242 -0
  207. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.d.ts +34 -0
  208. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolHelpers.js +45 -0
  209. package/vscode/src/vs/workbench/contrib/chat/browser/tools/toolSetsContribution.js +13 -13
  210. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.d.ts +33 -0
  211. package/vscode/src/vs/workbench/contrib/chat/browser/tools/usagesTool.js +311 -0
  212. package/vscode/src/vs/workbench/contrib/chat/browser/viewsWelcome/chatViewsWelcomeHandler.js +5 -5
  213. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.d.ts +4 -0
  214. package/vscode/src/vs/workbench/contrib/chat/browser/widget/chatWidgetService.js +10 -1
  215. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatQueuePickerActionItem.js +10 -10
  216. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/chatStatusWidget.js +8 -9
  217. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputCompletions.js +64 -26
  218. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorContrib.js +4 -2
  219. package/vscode/src/vs/workbench/contrib/chat/browser/widget/input/editor/chatInputEditorHover.js +1 -1
  220. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/chatQuick.js +2 -2
  221. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.d.ts +15 -4
  222. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/editor/chatEditor.js +42 -8
  223. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.d.ts +8 -1
  224. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewPane.js +58 -31
  225. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/chatViewTitleControl.js +6 -5
  226. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewPane.css +8 -20
  227. package/vscode/src/vs/workbench/contrib/chat/browser/widgetHosts/viewPane/media/chatViewTitleControl.css +15 -6
  228. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.d.ts +39 -0
  229. package/vscode/src/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.js +27 -0
  230. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.d.ts +190 -0
  231. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugService.js +11 -0
  232. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.d.ts +36 -0
  233. package/vscode/src/vs/workbench/contrib/chat/common/chatDebugServiceImpl.js +188 -0
  234. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.d.ts +18 -8
  235. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceImpl.js +192 -85
  236. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.d.ts +2 -1
  237. package/vscode/src/vs/workbench/contrib/chat/common/chatService/chatServiceTelemetry.js +2 -1
  238. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.d.ts +5 -6
  239. package/vscode/src/vs/workbench/contrib/chat/common/model/chatModelStore.js +16 -8
  240. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.d.ts +8 -4
  241. package/vscode/src/vs/workbench/contrib/chat/common/model/chatSessionStore.js +111 -7
  242. package/vscode/src/vs/workbench/contrib/chat/common/participants/chatSlashCommands.d.ts +2 -0
  243. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.d.ts +52 -0
  244. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginService.js +29 -0
  245. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.d.ts +73 -0
  246. package/vscode/src/vs/workbench/contrib/chat/common/plugins/agentPluginServiceImpl.js +622 -0
  247. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.d.ts +64 -0
  248. package/vscode/src/vs/workbench/contrib/chat/common/plugins/pluginMarketplaceService.js +478 -0
  249. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/chatPromptFilesContribution.js +35 -16
  250. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCompatibility.js +1 -30
  251. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.d.ts +0 -5
  252. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/hookCopilotCliCompat.js +2 -8
  253. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/PromptHeaderDefinitionProvider.js +1 -1
  254. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptCodeActions.js +8 -8
  255. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.js +9 -9
  256. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHovers.js +23 -22
  257. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +44 -14
  258. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.js +345 -113
  259. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +14 -1
  260. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.js +34 -24
  261. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.d.ts +3 -0
  262. package/vscode/src/vs/workbench/contrib/chat/common/tools/chatTodoListService.js +13 -0
  263. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.js +1 -1
  264. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.js +11 -5
  265. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.d.ts +23 -0
  266. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.js +248 -24
  267. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.d.ts +6 -11
  268. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatDefaultModel.js +18 -81
  269. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionService.js +2 -3
  270. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSessionServiceImpl.js +10 -10
  271. package/vscode/src/vs/workbench/contrib/mcp/browser/mcpPromptArgumentPick.js +14 -14
  272. package/vscode/src/vs/workbench/contrib/notebook/browser/contrib/chat/notebookChatUtils.js +1 -1
  273. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/cellChatActions.js +10 -10
  274. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebook.chat.contribution.js +6 -6
  275. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/chat/notebookChatContext.js +1 -1
  276. package/vscode/src/vs/workbench/contrib/remoteCodingAgents/browser/remoteCodingAgents.contribution.js +7 -7
  277. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/media/terminalChatWidget.css +6 -2
  278. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatAccessibilityHelp.js +16 -16
  279. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatActions.js +35 -26
  280. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.d.ts +0 -1
  281. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.js +1 -5
  282. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatWidget.js +3 -3
  283. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/runInTerminalHelpers.js +6 -6
  284. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.d.ts +4 -1
  285. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/taskHelpers.js +13 -11
  286. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/terminal.chatAgentTools.contribution.js +3 -3
  287. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.js +3 -1
  288. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/awaitTerminalTool.js +3 -3
  289. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/autoApprove/npmScriptAutoApprover.js +1 -1
  290. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineAutoApproveAnalyzer.js +12 -12
  291. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/commandLineAnalyzer/commandLineFileWriteAnalyzer.js +2 -2
  292. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalLastCommandTool.js +3 -3
  293. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalOutputTool.js +3 -3
  294. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/getTerminalSelectionTool.js +3 -3
  295. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/killTerminalTool.js +3 -3
  296. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.d.ts +9 -0
  297. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/outputMonitor.js +280 -65
  298. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/types.d.ts +3 -1
  299. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/outputAnalyzer.d.ts +8 -0
  300. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalConfirmationTool.js +2 -10
  301. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.d.ts +1 -0
  302. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.js +47 -19
  303. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.d.ts +8 -0
  304. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/sandboxOutputAnalyzer.js +31 -0
  305. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/createAndRunTaskTool.js +14 -14
  306. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/getTaskOutputTool.js +7 -7
  307. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/runTaskTool.js +14 -14
  308. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/task/taskHelpers.js +1 -1
  309. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.d.ts +6 -1
  310. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/common/terminalSandboxService.js +38 -16
  311. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.d.ts +0 -72
  312. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatCustomizationDiagnosticsAction.js +0 -587
  313. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.d.ts +0 -71
  314. package/vscode/src/vs/workbench/contrib/chat/common/model/chatProgressTypes/chatToolInvocation.js +0 -293
  315. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.d.ts +0 -2
  316. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/monitoring/utils.js +0 -31
@@ -0,0 +1,125 @@
1
+ import { IChatDebugEvent } from "../../common/chatDebugService.js";
2
+ export interface FlowNode {
3
+ readonly id: string;
4
+ readonly kind: IChatDebugEvent["kind"];
5
+ /** For `generic` nodes: the event category (e.g. `'discovery'`). Used to narrow filtering. */
6
+ readonly category?: string;
7
+ readonly label: string;
8
+ readonly sublabel?: string;
9
+ readonly description?: string;
10
+ readonly tooltip?: string;
11
+ readonly isError?: boolean;
12
+ readonly created: number;
13
+ readonly children: FlowNode[];
14
+ /** Present on merged discovery nodes: the individual nodes that were merged. */
15
+ readonly mergedNodes?: FlowNode[];
16
+ }
17
+ export interface FlowFilterOptions {
18
+ readonly isKindVisible: (kind: string, category?: string) => boolean;
19
+ readonly textFilter: string;
20
+ }
21
+ export interface LayoutNode {
22
+ readonly id: string;
23
+ readonly kind: IChatDebugEvent["kind"];
24
+ readonly label: string;
25
+ readonly sublabel?: string;
26
+ readonly tooltip?: string;
27
+ readonly isError?: boolean;
28
+ readonly x: number;
29
+ readonly y: number;
30
+ readonly width: number;
31
+ readonly height: number;
32
+ /** Number of individual nodes merged into this one (for discovery merging). */
33
+ readonly mergedCount?: number;
34
+ /** Whether the merged node is currently expanded (individual nodes shown to the right). */
35
+ readonly isMergedExpanded?: boolean;
36
+ }
37
+ export interface LayoutEdge {
38
+ readonly fromId?: string;
39
+ readonly toId?: string;
40
+ readonly fromX: number;
41
+ readonly fromY: number;
42
+ readonly toX: number;
43
+ readonly toY: number;
44
+ }
45
+ export interface SubgraphRect {
46
+ readonly label: string;
47
+ readonly x: number;
48
+ readonly y: number;
49
+ readonly width: number;
50
+ readonly height: number;
51
+ readonly depth: number;
52
+ readonly nodeId: string;
53
+ readonly collapsedChildCount?: number;
54
+ }
55
+ export interface FlowLayout {
56
+ readonly nodes: LayoutNode[];
57
+ readonly edges: LayoutEdge[];
58
+ readonly subgraphs: SubgraphRect[];
59
+ readonly width: number;
60
+ readonly height: number;
61
+ }
62
+ export interface FlowChartRenderResult {
63
+ readonly svg: SVGElement;
64
+ /** Map from node/subgraph ID to its focusable SVG element. */
65
+ readonly focusableElements: Map<string, SVGElement>;
66
+ /** Adjacency lists derived from graph edges: successors and predecessors per node ID. */
67
+ readonly adjacency: Map<string, {
68
+ next: string[];
69
+ prev: string[];
70
+ }>;
71
+ /** Map from node/subgraph ID to its layout position. */
72
+ readonly positions: Map<string, {
73
+ x: number;
74
+ y: number;
75
+ }>;
76
+ }
77
+ export declare function buildFlowGraph(events: readonly IChatDebugEvent[]): FlowNode[];
78
+ /**
79
+ * Filters a flow node tree by kind visibility and text search.
80
+ * Returns a new tree — the input is not mutated.
81
+ *
82
+ * Kind filtering: nodes whose kind is not visible are removed.
83
+ * For `subagentInvocation` nodes, the entire subgraph is removed.
84
+ * For other kinds, the node is removed and its children are re-parented.
85
+ *
86
+ * Text filtering: only nodes whose label, sublabel, or tooltip match the
87
+ * search term are kept, along with all their ancestors (path to root).
88
+ * If a subagent label matches, its entire subgraph is kept.
89
+ */
90
+ export declare function filterFlowNodes(nodes: FlowNode[], options: FlowFilterOptions): FlowNode[];
91
+ export interface FlowSliceResult {
92
+ readonly nodes: FlowNode[];
93
+ readonly totalCount: number;
94
+ readonly shownCount: number;
95
+ }
96
+ /**
97
+ * Slices a flow node tree to at most `maxCount` nodes (pre-order DFS).
98
+ *
99
+ * When a subagent's children would exceed the remaining budget, the
100
+ * children list is truncated. Returns the sliced tree along with total
101
+ * and shown node counts for the "Show More" UI.
102
+ */
103
+ export declare function sliceFlowNodes(nodes: readonly FlowNode[], maxCount: number): FlowSliceResult;
104
+ /**
105
+ * Merges consecutive prompt-discovery nodes (generic events with
106
+ * `category === 'discovery'`) into a single summary node.
107
+ *
108
+ * The merged node always stays in the graph and carries the individual
109
+ * nodes in `mergedNodes`. Expansion (showing the individual nodes to the
110
+ * right) is handled at the layout level.
111
+ *
112
+ * Operates recursively on children.
113
+ */
114
+ export declare function mergeDiscoveryNodes(nodes: readonly FlowNode[]): FlowNode[];
115
+ /**
116
+ * Merges consecutive tool-call nodes that invoke the same tool into a
117
+ * single summary node.
118
+ *
119
+ * This mirrors `mergeDiscoveryNodes`: the merged node carries the
120
+ * individual nodes in `mergedNodes` and expansion is handled at the
121
+ * layout level.
122
+ *
123
+ * Operates recursively on children.
124
+ */
125
+ export declare function mergeToolCallNodes(nodes: readonly FlowNode[]): FlowNode[];
@@ -0,0 +1,504 @@
1
+
2
+ import { localize } from '@codingame/monaco-vscode-api/vscode/vs/nls';
3
+
4
+ function truncateLabel(text, maxLength) {
5
+ if (text.length <= maxLength) {
6
+ return text;
7
+ }
8
+ return text.substring(0, maxLength - 1) + "…";
9
+ }
10
+ function buildFlowGraph(events) {
11
+ const subagentToolNames = ( new Set(["runSubagent", "search_subagent"]));
12
+ const completionDescsByParent = ( new Map());
13
+ const startedCountByParent = ( new Map());
14
+ for (const e of events) {
15
+ if (e.kind === "subagentInvocation" && ( subagentToolNames.has(e.agentName)) && e.description && e.parentEventId) {
16
+ let descs = completionDescsByParent.get(e.parentEventId);
17
+ if (!descs) {
18
+ descs = [];
19
+ completionDescsByParent.set(e.parentEventId, descs);
20
+ }
21
+ descs.push(e.description);
22
+ }
23
+ }
24
+ function getSubagentDescription(event) {
25
+ if (event.kind !== "subagentInvocation" || !event.parentEventId) {
26
+ return undefined;
27
+ }
28
+ const descs = completionDescsByParent.get(event.parentEventId);
29
+ if (!descs || descs.length === 0) {
30
+ return event.description && event.description !== event.agentName ? event.description : undefined;
31
+ }
32
+ const idx = startedCountByParent.get(event.parentEventId) ?? 0;
33
+ startedCountByParent.set(event.parentEventId, idx + 1);
34
+ return descs[idx] ?? descs[0];
35
+ }
36
+ const filtered = events.filter(e => {
37
+ if (e.kind === "toolCall" && ( subagentToolNames.has(e.toolName.replace(/^\u{1F6E0}\uFE0F?\s*/u, "")))) {
38
+ return false;
39
+ }
40
+ if (e.kind === "subagentInvocation" && ( subagentToolNames.has(e.agentName))) {
41
+ return false;
42
+ }
43
+ return true;
44
+ });
45
+ const idToEvent = ( new Map());
46
+ const idToChildren = ( new Map());
47
+ const roots = [];
48
+ for (const event of filtered) {
49
+ if (event.id) {
50
+ idToEvent.set(event.id, event);
51
+ }
52
+ }
53
+ for (const event of filtered) {
54
+ if (event.parentEventId && ( idToEvent.has(event.parentEventId))) {
55
+ let children = idToChildren.get(event.parentEventId);
56
+ if (!children) {
57
+ children = [];
58
+ idToChildren.set(event.parentEventId, children);
59
+ }
60
+ children.push(event);
61
+ } else {
62
+ roots.push(event);
63
+ }
64
+ }
65
+ function toFlowNode(event) {
66
+ const children = event.id ? idToChildren.get(event.id) : undefined;
67
+ const effectiveKind = getEffectiveKind(event);
68
+ let sublabel = getEventSublabel(event, effectiveKind);
69
+ let tooltip = getEventTooltip(event);
70
+ let description;
71
+ if (effectiveKind === "subagentInvocation") {
72
+ description = getSubagentDescription(event);
73
+ if (description) {
74
+ sublabel = truncateLabel(description, 30) + (sublabel ? ` \u00b7 ${sublabel}` : "");
75
+ if (tooltip && !tooltip.includes(description)) {
76
+ const lines = tooltip.split("\n");
77
+ lines.splice(1, 0, description);
78
+ tooltip = lines.join("\n");
79
+ }
80
+ }
81
+ }
82
+ return {
83
+ id: event.id ?? `event-${events.indexOf(event)}`,
84
+ kind: effectiveKind,
85
+ category: event.kind === "generic" ? event.category : undefined,
86
+ label: getEventLabel(event, effectiveKind),
87
+ sublabel,
88
+ description,
89
+ tooltip,
90
+ isError: isErrorEvent(event),
91
+ created: event.created.getTime(),
92
+ children: children?.map(toFlowNode) ?? []
93
+ };
94
+ }
95
+ return ( roots.map(toFlowNode));
96
+ }
97
+ function filterFlowNodes(nodes, options) {
98
+ let result = filterByKind(nodes, options.isKindVisible);
99
+ if (options.textFilter) {
100
+ result = filterByText(result, options.textFilter);
101
+ }
102
+ return result;
103
+ }
104
+ function filterByKind(nodes, isKindVisible) {
105
+ const result = [];
106
+ let changed = false;
107
+ for (const node of nodes) {
108
+ if (!isKindVisible(node.kind, node.category)) {
109
+ changed = true;
110
+ if (node.kind === "subagentInvocation") {
111
+ continue;
112
+ }
113
+ result.push(...filterByKind(node.children, isKindVisible));
114
+ continue;
115
+ }
116
+ const filteredChildren = filterByKind(node.children, isKindVisible);
117
+ if (filteredChildren !== node.children) {
118
+ changed = true;
119
+ result.push({
120
+ ...node,
121
+ children: filteredChildren
122
+ });
123
+ } else {
124
+ result.push(node);
125
+ }
126
+ }
127
+ return changed ? result : nodes;
128
+ }
129
+ function nodeMatchesText(node, text) {
130
+ return node.label.toLowerCase().includes(text) || (node.sublabel?.toLowerCase().includes(text) ?? false) || (node.tooltip?.toLowerCase().includes(text) ?? false);
131
+ }
132
+ function filterByText(nodes, text) {
133
+ const result = [];
134
+ for (const node of nodes) {
135
+ if (nodeMatchesText(node, text)) {
136
+ result.push(node);
137
+ continue;
138
+ }
139
+ const filteredChildren = filterByText(node.children, text);
140
+ if (filteredChildren.length > 0) {
141
+ result.push({
142
+ ...node,
143
+ children: filteredChildren
144
+ });
145
+ }
146
+ }
147
+ return result;
148
+ }
149
+ function countNodes(nodes) {
150
+ let count = 0;
151
+ for (const node of nodes) {
152
+ count += 1 + countNodes(node.children);
153
+ }
154
+ return count;
155
+ }
156
+ function sliceFlowNodes(nodes, maxCount) {
157
+ const totalCount = countNodes(nodes);
158
+ if (totalCount <= maxCount) {
159
+ return {
160
+ nodes: nodes,
161
+ totalCount,
162
+ shownCount: totalCount
163
+ };
164
+ }
165
+ let remaining = maxCount;
166
+ function sliceTree(nodeList) {
167
+ const result = [];
168
+ for (const node of nodeList) {
169
+ if (remaining <= 0) {
170
+ break;
171
+ }
172
+ remaining--;
173
+ if (node.children.length === 0 || remaining <= 0) {
174
+ result.push(node.children.length === 0 ? node : {
175
+ ...node,
176
+ children: []
177
+ });
178
+ } else {
179
+ const slicedChildren = sliceTree(node.children);
180
+ result.push(slicedChildren !== node.children ? {
181
+ ...node,
182
+ children: slicedChildren
183
+ } : node);
184
+ }
185
+ }
186
+ return result;
187
+ }
188
+ const sliced = sliceTree(nodes);
189
+ const shownCount = maxCount - remaining;
190
+ return {
191
+ nodes: sliced,
192
+ totalCount,
193
+ shownCount
194
+ };
195
+ }
196
+ function isDiscoveryNode(node) {
197
+ return node.kind === "generic" && node.category === "discovery";
198
+ }
199
+ function mergeDiscoveryNodes(nodes) {
200
+ const result = [];
201
+ let i = 0;
202
+ while (i < nodes.length) {
203
+ const node = nodes[i];
204
+ if (!isDiscoveryNode(node)) {
205
+ const mergedChildren = mergeDiscoveryNodes(node.children);
206
+ result.push(mergedChildren !== node.children ? {
207
+ ...node,
208
+ children: mergedChildren
209
+ } : node);
210
+ i++;
211
+ continue;
212
+ }
213
+ const run = [node];
214
+ let j = i + 1;
215
+ while (j < nodes.length && isDiscoveryNode(nodes[j])) {
216
+ run.push(nodes[j]);
217
+ j++;
218
+ }
219
+ if (run.length < 2) {
220
+ result.push(node);
221
+ i = j;
222
+ continue;
223
+ }
224
+ const mergedId = `merged-discovery:${run[0].id}`;
225
+ const labels = ( run.map(n => n.label));
226
+ const uniqueLabels = [...( new Set(labels))];
227
+ const summaryLabel = uniqueLabels.length <= 2 ? uniqueLabels.join(", ") : ( localize(5614, "{0} +{1} more", uniqueLabels[0], run.length - 1));
228
+ result.push({
229
+ id: mergedId,
230
+ kind: "generic",
231
+ category: "discovery",
232
+ label: summaryLabel,
233
+ sublabel: ( localize(5615, "{0} discovery steps", run.length)),
234
+ tooltip: ( run.map(n => n.label + (n.sublabel ? `: ${n.sublabel}` : ""))).join("\n"),
235
+ created: run[0].created,
236
+ children: [],
237
+ mergedNodes: run
238
+ });
239
+ i = j;
240
+ }
241
+ return result;
242
+ }
243
+ function isToolCallNode(node) {
244
+ return node.kind === "toolCall";
245
+ }
246
+ function getToolName(node) {
247
+ return node.label;
248
+ }
249
+ function mergeToolCallNodes(nodes) {
250
+ const result = [];
251
+ let i = 0;
252
+ while (i < nodes.length) {
253
+ const node = nodes[i];
254
+ if (!isToolCallNode(node)) {
255
+ const mergedChildren = mergeToolCallNodes(node.children);
256
+ result.push(mergedChildren !== node.children ? {
257
+ ...node,
258
+ children: mergedChildren
259
+ } : node);
260
+ i++;
261
+ continue;
262
+ }
263
+ const toolName = getToolName(node);
264
+ const run = [node];
265
+ let j = i + 1;
266
+ while (j < nodes.length && isToolCallNode(nodes[j]) && getToolName(nodes[j]) === toolName) {
267
+ run.push(nodes[j]);
268
+ j++;
269
+ }
270
+ if (run.length < 2) {
271
+ const mergedChildren = mergeToolCallNodes(node.children);
272
+ result.push(mergedChildren !== node.children ? {
273
+ ...node,
274
+ children: mergedChildren
275
+ } : node);
276
+ i = j;
277
+ continue;
278
+ }
279
+ const mergedId = `merged-toolCall:${run[0].id}`;
280
+ result.push({
281
+ id: mergedId,
282
+ kind: "toolCall",
283
+ label: toolName,
284
+ sublabel: ( localize(5616, "{0} calls", run.length)),
285
+ tooltip: ( run.map(n => n.label + (n.sublabel ? `: ${n.sublabel}` : ""))).join("\n"),
286
+ created: run[0].created,
287
+ children: [],
288
+ mergedNodes: run
289
+ });
290
+ i = j;
291
+ }
292
+ return result;
293
+ }
294
+ function getEffectiveKind(event) {
295
+ if (event.kind === "generic") {
296
+ const name = event.name.toLowerCase().replace(/[\s_-]+/g, "");
297
+ if (name === "usermessage" || name === "userprompt" || name === "user" || name.startsWith("usermessage")) {
298
+ return "userMessage";
299
+ }
300
+ if (name === "response" || name.startsWith("agentresponse") || name.startsWith("assistantresponse") || name.startsWith("modelresponse")) {
301
+ return "agentResponse";
302
+ }
303
+ const cat = event.category?.toLowerCase();
304
+ if (cat === "user" || cat === "usermessage") {
305
+ return "userMessage";
306
+ }
307
+ if (cat === "response" || cat === "agentresponse") {
308
+ return "agentResponse";
309
+ }
310
+ }
311
+ return event.kind;
312
+ }
313
+ function getEventLabel(event, effectiveKind) {
314
+ const kind = effectiveKind ?? event.kind;
315
+ switch (kind) {
316
+ case "userMessage":
317
+ return localize(5617, "User");
318
+ case "modelTurn":
319
+ return event.kind === "modelTurn" ? (event.model ?? ( localize(5618, "Model Turn"))) : ( localize(5618, "Model Turn"));
320
+ case "toolCall":
321
+ return event.kind === "toolCall" ? event.toolName : event.kind === "generic" ? event.name : "";
322
+ case "subagentInvocation":
323
+ return event.kind === "subagentInvocation" ? event.agentName : "";
324
+ case "agentResponse":
325
+ {
326
+ if (event.kind === "agentResponse") {
327
+ return event.message || ( localize(5619, "Response"));
328
+ }
329
+ if (event.kind === "generic") {
330
+ const match = /\(([^)]+)\)\s*$/.exec(event.name);
331
+ if (match) {
332
+ return match[1];
333
+ }
334
+ }
335
+ return localize(5619, "Response");
336
+ }
337
+ case "generic":
338
+ return event.kind === "generic" ? event.name : "";
339
+ }
340
+ }
341
+ function getEventSublabel(event, effectiveKind) {
342
+ const kind = effectiveKind ?? event.kind;
343
+ switch (kind) {
344
+ case "modelTurn":
345
+ {
346
+ const parts = [];
347
+ if (event.kind === "modelTurn" && event.requestName) {
348
+ parts.push(event.requestName);
349
+ }
350
+ if (event.kind === "modelTurn" && event.totalTokens) {
351
+ parts.push(( localize(5620, "{0} tokens", event.totalTokens)));
352
+ }
353
+ if (event.kind === "modelTurn" && event.durationInMillis) {
354
+ parts.push(formatDuration(event.durationInMillis));
355
+ }
356
+ return parts.length > 0 ? parts.join(" · ") : undefined;
357
+ }
358
+ case "toolCall":
359
+ {
360
+ const parts = [];
361
+ if (event.kind === "toolCall" && event.result) {
362
+ parts.push(event.result);
363
+ }
364
+ if (event.kind === "toolCall" && event.durationInMillis) {
365
+ parts.push(formatDuration(event.durationInMillis));
366
+ }
367
+ return parts.length > 0 ? parts.join(" · ") : undefined;
368
+ }
369
+ case "subagentInvocation":
370
+ {
371
+ const parts = [];
372
+ if (event.kind === "subagentInvocation" && event.status) {
373
+ parts.push(event.status);
374
+ }
375
+ if (event.kind === "subagentInvocation" && event.durationInMillis) {
376
+ parts.push(formatDuration(event.durationInMillis));
377
+ }
378
+ return parts.length > 0 ? parts.join(" · ") : undefined;
379
+ }
380
+ case "userMessage":
381
+ case "agentResponse":
382
+ {
383
+ let text;
384
+ if (event.kind === "userMessage" || event.kind === "agentResponse") {
385
+ text = event.sections[0]?.content || event.message;
386
+ } else if (event.kind === "generic") {
387
+ text = event.details;
388
+ }
389
+ if (!text) {
390
+ return undefined;
391
+ }
392
+ const lines = text.split("\n");
393
+ let firstLine = "";
394
+ for (const line of lines) {
395
+ const trimmed = line.trim();
396
+ if (trimmed) {
397
+ firstLine = trimmed;
398
+ break;
399
+ }
400
+ }
401
+ if (!firstLine) {
402
+ return undefined;
403
+ }
404
+ return firstLine.length > 60 ? firstLine.substring(0, 57) + "..." : firstLine;
405
+ }
406
+ default:
407
+ return undefined;
408
+ }
409
+ }
410
+ function formatDuration(ms) {
411
+ if (ms < 1000) {
412
+ return `${ms}ms`;
413
+ }
414
+ return `${(ms / 1000).toFixed(1)}s`;
415
+ }
416
+ function isErrorEvent(event) {
417
+ return (event.kind === "toolCall" && event.result === "error") || (event.kind === "generic" && event.level === 3) || (event.kind === "subagentInvocation" && event.status === "failed");
418
+ }
419
+ const TOOLTIP_MAX_LENGTH = 500;
420
+ function getEventTooltip(event) {
421
+ switch (event.kind) {
422
+ case "userMessage":
423
+ {
424
+ const msg = event.message.trim();
425
+ if (msg.length > TOOLTIP_MAX_LENGTH) {
426
+ return msg.substring(0, TOOLTIP_MAX_LENGTH) + "…";
427
+ }
428
+ return msg || undefined;
429
+ }
430
+ case "toolCall":
431
+ {
432
+ const parts = [event.toolName];
433
+ if (event.input) {
434
+ const input = event.input.trim();
435
+ parts.push(( localize(
436
+ 5621,
437
+ "Input: {0}",
438
+ input.length > TOOLTIP_MAX_LENGTH ? input.substring(0, TOOLTIP_MAX_LENGTH) + "…" : input
439
+ )));
440
+ }
441
+ if (event.output) {
442
+ const output = event.output.trim();
443
+ parts.push(( localize(
444
+ 5622,
445
+ "Output: {0}",
446
+ output.length > TOOLTIP_MAX_LENGTH ? output.substring(0, TOOLTIP_MAX_LENGTH) + "…" : output
447
+ )));
448
+ }
449
+ if (event.result) {
450
+ parts.push(( localize(5623, "Result: {0}", event.result)));
451
+ }
452
+ return parts.join("\n");
453
+ }
454
+ case "subagentInvocation":
455
+ {
456
+ const parts = [event.agentName];
457
+ if (event.description) {
458
+ parts.push(event.description);
459
+ }
460
+ if (event.status) {
461
+ parts.push(( localize(5624, "Status: {0}", event.status)));
462
+ }
463
+ if (event.toolCallCount !== undefined) {
464
+ parts.push(( localize(5625, "Tool calls: {0}", event.toolCallCount)));
465
+ }
466
+ if (event.modelTurnCount !== undefined) {
467
+ parts.push(( localize(5626, "Model turns: {0}", event.modelTurnCount)));
468
+ }
469
+ return parts.join("\n");
470
+ }
471
+ case "generic":
472
+ {
473
+ if (event.details) {
474
+ const details = event.details.trim();
475
+ return details.length > TOOLTIP_MAX_LENGTH ? details.substring(0, TOOLTIP_MAX_LENGTH) + "…" : details;
476
+ }
477
+ return undefined;
478
+ }
479
+ case "modelTurn":
480
+ {
481
+ const parts = [];
482
+ if (event.model) {
483
+ parts.push(event.model);
484
+ }
485
+ if (event.totalTokens) {
486
+ parts.push(( localize(5627, "Tokens: {0}", event.totalTokens)));
487
+ }
488
+ if (event.inputTokens) {
489
+ parts.push(( localize(5628, "Input tokens: {0}", event.inputTokens)));
490
+ }
491
+ if (event.outputTokens) {
492
+ parts.push(( localize(5629, "Output tokens: {0}", event.outputTokens)));
493
+ }
494
+ if (event.durationInMillis) {
495
+ parts.push(( localize(5630, "Duration: {0}", formatDuration(event.durationInMillis))));
496
+ }
497
+ return parts.length > 0 ? parts.join("\n") : undefined;
498
+ }
499
+ default:
500
+ return undefined;
501
+ }
502
+ }
503
+
504
+ export { buildFlowGraph, filterFlowNodes, mergeDiscoveryNodes, mergeToolCallNodes, sliceFlowNodes };
@@ -0,0 +1,10 @@
1
+ import { FlowLayout, FlowNode, FlowChartRenderResult } from "./chatDebugFlowGraph.js";
2
+ /**
3
+ * Lays out a list of flow nodes in a top-down vertical flow.
4
+ * Parallel subagent invocations are arranged side by side.
5
+ */
6
+ export declare function layoutFlowGraph(roots: FlowNode[], options?: {
7
+ collapsedIds?: ReadonlySet<string>;
8
+ expandedMergedIds?: ReadonlySet<string>;
9
+ }): FlowLayout;
10
+ export declare function renderFlowChartSVG(layout: FlowLayout): FlowChartRenderResult;