@codingame/monaco-vscode-chat-service-override 20.1.1 → 20.2.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 (159) hide show
  1. package/package.json +36 -36
  2. package/vscode/src/vs/base/common/decorators/cancelPreviousCalls.d.ts +73 -0
  3. package/vscode/src/vs/base/common/policy.d.ts +27 -0
  4. package/vscode/src/vs/editor/common/diff/documentDiffProvider.d.ts +41 -0
  5. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.d.ts +10 -0
  6. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +11 -0
  7. package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +5 -0
  8. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +6 -0
  9. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +15 -0
  10. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +11 -0
  11. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.d.ts +11 -0
  12. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.d.ts +6 -0
  13. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.d.ts +44 -0
  14. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNewNotebookContentEdits.d.ts +11 -0
  15. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +5 -0
  16. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/helpers.d.ts +13 -0
  17. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/notebookCellChanges.d.ts +19 -0
  18. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/editorHoverWrapper.d.ts +4 -0
  19. package/vscode/src/vs/workbench/contrib/chat/browser/contrib/media/editorHoverWrapper.css +5 -0
  20. package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +6 -0
  21. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditingEditorOverlay.css +22 -0
  22. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditorController.css +10 -0
  23. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSessions.css +14 -0
  24. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSetup.css +19 -0
  25. package/vscode/src/vs/workbench/contrib/chat/browser/media/chatStatus.css +45 -0
  26. package/vscode/src/vs/workbench/contrib/chat/browser/media/simpleBrowserOverlay.css +13 -0
  27. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.d.ts +22 -0
  28. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.d.ts +3 -0
  29. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.d.ts +3 -0
  30. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.d.ts +3 -0
  31. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.d.ts +23 -0
  32. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileActions.d.ts +3 -0
  33. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.d.ts +3 -0
  34. package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.d.ts +9 -0
  35. package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +9 -0
  36. package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.d.ts +8 -0
  37. package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.d.ts +11 -0
  38. package/vscode/src/vs/workbench/contrib/chat/common/promptFileReferenceErrors.d.ts +54 -0
  39. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/asyncDecoder.d.ts +18 -0
  40. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/baseDecoder.d.ts +102 -0
  41. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/baseToken.d.ts +42 -0
  42. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/compositeToken.d.ts +14 -0
  43. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/constants.d.ts +4 -0
  44. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/frontMatterDecoder.d.ts +13 -0
  45. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/parsers/frontMatterArray.d.ts +19 -0
  46. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/parsers/frontMatterRecord/frontMatterRecord.d.ts +30 -0
  47. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/parsers/frontMatterRecord/frontMatterRecordName.d.ts +12 -0
  48. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/parsers/frontMatterRecord/frontMatterRecordNameWithDelimiter.d.ts +15 -0
  49. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/parsers/frontMatterSequence.d.ts +32 -1
  50. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/parsers/frontMatterString.d.ts +9 -0
  51. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/parsers/frontMatterValue.d.ts +41 -1
  52. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/frontMatterArray.d.ts +9 -0
  53. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/frontMatterBoolean.d.ts +20 -0
  54. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/frontMatterRecord.d.ts +61 -0
  55. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/frontMatterSequence.d.ts +18 -0
  56. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/frontMatterString.d.ts +12 -0
  57. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/frontMatterToken.d.ts +12 -0
  58. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/linesCodec/linesDecoder.d.ts +44 -0
  59. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/linesCodec/tokens/carriageReturn.d.ts +19 -0
  60. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/linesCodec/tokens/line.d.ts +7 -0
  61. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/linesCodec/tokens/newLine.d.ts +19 -0
  62. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownCodec/markdownDecoder.d.ts +10 -0
  63. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownCodec/parsers/markdownComment.d.ts +20 -0
  64. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownCodec/parsers/markdownImage.d.ts +10 -0
  65. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownCodec/parsers/markdownLink.d.ts +54 -0
  66. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownCodec/tokens/markdownComment.d.ts +10 -0
  67. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownCodec/tokens/markdownImage.d.ts +39 -1
  68. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownCodec/tokens/markdownLink.d.ts +39 -1
  69. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownCodec/tokens/markdownToken.d.ts +4 -0
  70. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownExtensionsCodec/markdownExtensionsDecoder.d.ts +14 -0
  71. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownExtensionsCodec/parsers/frontMatterHeader.d.ts +29 -0
  72. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownExtensionsCodec/tokens/frontMatterHeader.d.ts +18 -0
  73. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownExtensionsCodec/tokens/frontMatterMarker.d.ts +16 -0
  74. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownExtensionsCodec/tokens/markdownExtensionsToken.d.ts +3 -0
  75. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/parserBase.d.ts +64 -1
  76. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/simpleDecoder.d.ts +15 -0
  77. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/angleBrackets.d.ts +29 -0
  78. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/at.d.ts +13 -0
  79. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/brackets.d.ts +29 -0
  80. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/colon.d.ts +13 -0
  81. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/comma.d.ts +13 -0
  82. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/curlyBraces.d.ts +29 -0
  83. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/dash.d.ts +13 -0
  84. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/dollarSign.d.ts +13 -0
  85. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/doubleQuote.d.ts +17 -0
  86. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/exclamationMark.d.ts +13 -0
  87. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/formFeed.d.ts +13 -0
  88. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/hash.d.ts +13 -0
  89. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/parentheses.d.ts +29 -0
  90. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/quote.d.ts +17 -0
  91. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/simpleToken.d.ts +24 -0
  92. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/slash.d.ts +13 -0
  93. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/space.d.ts +13 -0
  94. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/tab.d.ts +13 -0
  95. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/verticalTab.d.ts +13 -0
  96. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/word.d.ts +24 -1
  97. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/textToken.d.ts +4 -0
  98. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/utils/objectStream.d.ts +37 -0
  99. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/utils/objectStreamFromTextModel.d.ts +3 -0
  100. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/chatPromptCodec.d.ts +30 -0
  101. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/chatPromptDecoder.d.ts +15 -0
  102. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/parsers/promptAtMentionParser.d.ts +16 -0
  103. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/parsers/promptSlashCommandParser.d.ts +16 -0
  104. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/parsers/promptTemplateVariableParser.d.ts +21 -0
  105. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/parsers/promptVariableParser.d.ts +26 -0
  106. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/tokens/fileReference.d.ts +11 -0
  107. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/tokens/promptAtMention.d.ts +17 -1
  108. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/tokens/promptSlashCommand.d.ts +17 -1
  109. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/tokens/promptTemplateVariable.d.ts +19 -1
  110. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/tokens/promptToken.d.ts +3 -0
  111. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/tokens/promptVariable.d.ts +39 -2
  112. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/config/configMigration.d.ts +8 -0
  113. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contentProviders/filePromptContentsProvider.d.ts +15 -0
  114. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contentProviders/promptContentsProviderBase.d.ts +70 -0
  115. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contentProviders/textModelContentsProvider.d.ts +20 -0
  116. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +10 -0
  117. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderDiagnosticsProvider.d.ts +14 -0
  118. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderHovers.d.ts +3 -0
  119. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkDiagnosticsProvider.d.ts +13 -0
  120. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkProvider.d.ts +6 -0
  121. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptPathAutocompletion.d.ts +45 -0
  122. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/providerInstanceBase.d.ts +12 -0
  123. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/providerInstanceManagerBase.d.ts +19 -0
  124. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/basePromptParser.d.ts +144 -0
  125. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/diagnostics.d.ts +18 -0
  126. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/headerBase.d.ts +71 -0
  127. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/instructionsHeader.d.ts +12 -0
  128. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/applyTo.d.ts +10 -0
  129. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/enum.d.ts +13 -0
  130. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/record.d.ts +42 -0
  131. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/string.d.ts +12 -0
  132. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/description.d.ts +7 -0
  133. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/mode.d.ts +7 -0
  134. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/model.d.ts +4 -0
  135. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/tools.d.ts +26 -0
  136. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/modeHeader.d.ts +15 -0
  137. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/promptHeader.d.ts +26 -0
  138. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptParser.d.ts +10 -0
  139. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/textModelPromptParser.d.ts +7 -0
  140. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/topError.d.ts +3 -0
  141. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.d.ts +6 -0
  142. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +24 -0
  143. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/objectCache.d.ts +83 -0
  144. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/observableDisposable.d.ts +31 -0
  145. package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +39 -0
  146. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.d.ts +3 -0
  147. package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsParametersSchema.d.ts +5 -0
  148. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.d.ts +5 -0
  149. package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.service.d.ts +6 -0
  150. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/media/terminalChatWidget.css +17 -0
  151. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.d.ts +8 -0
  152. package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatControllerHolder.d.ts +4 -0
  153. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/bufferOutputPolling.d.ts +7 -3
  154. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +22 -0
  155. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +8 -0
  156. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +6 -0
  157. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +7 -0
  158. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/taskHelpers.d.ts +13 -0
  159. package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +4 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingame/monaco-vscode-chat-service-override",
3
- "version": "20.1.1",
3
+ "version": "20.2.0",
4
4
  "private": false,
5
5
  "description": "VSCode public API plugged on the monaco editor - chat service-override",
6
6
  "keywords": [],
@@ -15,41 +15,41 @@
15
15
  },
16
16
  "type": "module",
17
17
  "dependencies": {
18
- "@codingame/monaco-vscode-07eaa805-9dea-5ec6-a422-a4f04872424d-common": "20.1.1",
19
- "@codingame/monaco-vscode-0af61f78-dfc5-57ba-8d32-66268c8de38d-common": "20.1.1",
20
- "@codingame/monaco-vscode-1021b67c-93e5-5c78-a270-cbdb2574d980-common": "20.1.1",
21
- "@codingame/monaco-vscode-262ed59d-4f76-57cd-9e9f-1877f26ae049-common": "20.1.1",
22
- "@codingame/monaco-vscode-501b06ab-3f58-516b-8a1a-c29d375d3da4-common": "20.1.1",
23
- "@codingame/monaco-vscode-60014c9d-b815-501d-83a9-4b08725c2ec2-common": "20.1.1",
24
- "@codingame/monaco-vscode-615ce609-8555-545a-a549-47bd9f80e9f8-common": "20.1.1",
25
- "@codingame/monaco-vscode-64322fa2-7385-5f46-935b-8f243d98004b-common": "20.1.1",
26
- "@codingame/monaco-vscode-670aae94-7f88-54d7-90ea-6fcbef423557-common": "20.1.1",
27
- "@codingame/monaco-vscode-6883db80-c313-54eb-8fbc-5872c56b0326-common": "20.1.1",
28
- "@codingame/monaco-vscode-6f931a91-88ea-5232-897f-a17ec3929ba5-common": "20.1.1",
29
- "@codingame/monaco-vscode-72a1b7d3-3f58-5545-9b7e-f579bd003081-common": "20.1.1",
30
- "@codingame/monaco-vscode-85f7fb0f-70f5-5a5e-831b-15c743a8bd11-common": "20.1.1",
31
- "@codingame/monaco-vscode-88141f48-1af9-57ef-a278-f4b2ff6128fa-common": "20.1.1",
32
- "@codingame/monaco-vscode-8c844347-a703-5de1-9eeb-5e0c7f503a58-common": "20.1.1",
33
- "@codingame/monaco-vscode-9ed6fe06-a052-57c2-a234-5d9b94d2e7e0-common": "20.1.1",
34
- "@codingame/monaco-vscode-a17e9d37-b6c1-5556-8402-5db73960fae3-common": "20.1.1",
35
- "@codingame/monaco-vscode-a654b07e-8806-5425-b124-18f03ba8e11a-common": "20.1.1",
36
- "@codingame/monaco-vscode-a793b3ee-7ba9-5176-a019-30ec806fdd95-common": "20.1.1",
37
- "@codingame/monaco-vscode-a8d3bd74-e63e-5327-96e8-4f931661e329-common": "20.1.1",
38
- "@codingame/monaco-vscode-a9da9abe-278d-5ce6-9418-99c7c07c5c37-common": "20.1.1",
39
- "@codingame/monaco-vscode-ac93482b-2178-52df-a200-ba0d1a4963fb-common": "20.1.1",
40
- "@codingame/monaco-vscode-api": "20.1.1",
41
- "@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common": "20.1.1",
42
- "@codingame/monaco-vscode-bb83fe45-f4c7-5673-b9f1-5c409a63f19c-common": "20.1.1",
43
- "@codingame/monaco-vscode-bc8c28cd-7a80-54a9-af1a-e6b1e7a7f34a-common": "20.1.1",
44
- "@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common": "20.1.1",
45
- "@codingame/monaco-vscode-d0569cfb-4706-5ad6-b0b0-5115ad8685db-common": "20.1.1",
46
- "@codingame/monaco-vscode-d941ac7b-412f-57e3-b1bf-f6b0eb253b21-common": "20.1.1",
47
- "@codingame/monaco-vscode-dc3fa21d-a483-5b99-a7ab-173235644a34-common": "20.1.1",
48
- "@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common": "20.1.1",
49
- "@codingame/monaco-vscode-e4d0fd26-1b26-5583-b3f7-582e08d7b389-common": "20.1.1",
50
- "@codingame/monaco-vscode-eda30bac-0984-5b42-9362-c68996b85232-common": "20.1.1",
51
- "@codingame/monaco-vscode-f1bbc6d3-6129-583c-a2ba-c80b832993d2-common": "20.1.1",
52
- "@codingame/monaco-vscode-f24e325c-2ce0-5bba-8236-bfc4f53180ab-common": "20.1.1"
18
+ "@codingame/monaco-vscode-07eaa805-9dea-5ec6-a422-a4f04872424d-common": "20.2.0",
19
+ "@codingame/monaco-vscode-0af61f78-dfc5-57ba-8d32-66268c8de38d-common": "20.2.0",
20
+ "@codingame/monaco-vscode-1021b67c-93e5-5c78-a270-cbdb2574d980-common": "20.2.0",
21
+ "@codingame/monaco-vscode-262ed59d-4f76-57cd-9e9f-1877f26ae049-common": "20.2.0",
22
+ "@codingame/monaco-vscode-501b06ab-3f58-516b-8a1a-c29d375d3da4-common": "20.2.0",
23
+ "@codingame/monaco-vscode-60014c9d-b815-501d-83a9-4b08725c2ec2-common": "20.2.0",
24
+ "@codingame/monaco-vscode-615ce609-8555-545a-a549-47bd9f80e9f8-common": "20.2.0",
25
+ "@codingame/monaco-vscode-64322fa2-7385-5f46-935b-8f243d98004b-common": "20.2.0",
26
+ "@codingame/monaco-vscode-670aae94-7f88-54d7-90ea-6fcbef423557-common": "20.2.0",
27
+ "@codingame/monaco-vscode-6883db80-c313-54eb-8fbc-5872c56b0326-common": "20.2.0",
28
+ "@codingame/monaco-vscode-6f931a91-88ea-5232-897f-a17ec3929ba5-common": "20.2.0",
29
+ "@codingame/monaco-vscode-72a1b7d3-3f58-5545-9b7e-f579bd003081-common": "20.2.0",
30
+ "@codingame/monaco-vscode-85f7fb0f-70f5-5a5e-831b-15c743a8bd11-common": "20.2.0",
31
+ "@codingame/monaco-vscode-88141f48-1af9-57ef-a278-f4b2ff6128fa-common": "20.2.0",
32
+ "@codingame/monaco-vscode-8c844347-a703-5de1-9eeb-5e0c7f503a58-common": "20.2.0",
33
+ "@codingame/monaco-vscode-9ed6fe06-a052-57c2-a234-5d9b94d2e7e0-common": "20.2.0",
34
+ "@codingame/monaco-vscode-a17e9d37-b6c1-5556-8402-5db73960fae3-common": "20.2.0",
35
+ "@codingame/monaco-vscode-a654b07e-8806-5425-b124-18f03ba8e11a-common": "20.2.0",
36
+ "@codingame/monaco-vscode-a793b3ee-7ba9-5176-a019-30ec806fdd95-common": "20.2.0",
37
+ "@codingame/monaco-vscode-a8d3bd74-e63e-5327-96e8-4f931661e329-common": "20.2.0",
38
+ "@codingame/monaco-vscode-a9da9abe-278d-5ce6-9418-99c7c07c5c37-common": "20.2.0",
39
+ "@codingame/monaco-vscode-ac93482b-2178-52df-a200-ba0d1a4963fb-common": "20.2.0",
40
+ "@codingame/monaco-vscode-api": "20.2.0",
41
+ "@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common": "20.2.0",
42
+ "@codingame/monaco-vscode-bb83fe45-f4c7-5673-b9f1-5c409a63f19c-common": "20.2.0",
43
+ "@codingame/monaco-vscode-bc8c28cd-7a80-54a9-af1a-e6b1e7a7f34a-common": "20.2.0",
44
+ "@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common": "20.2.0",
45
+ "@codingame/monaco-vscode-d0569cfb-4706-5ad6-b0b0-5115ad8685db-common": "20.2.0",
46
+ "@codingame/monaco-vscode-d941ac7b-412f-57e3-b1bf-f6b0eb253b21-common": "20.2.0",
47
+ "@codingame/monaco-vscode-dc3fa21d-a483-5b99-a7ab-173235644a34-common": "20.2.0",
48
+ "@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common": "20.2.0",
49
+ "@codingame/monaco-vscode-e4d0fd26-1b26-5583-b3f7-582e08d7b389-common": "20.2.0",
50
+ "@codingame/monaco-vscode-eda30bac-0984-5b42-9362-c68996b85232-common": "20.2.0",
51
+ "@codingame/monaco-vscode-f1bbc6d3-6129-583c-a2ba-c80b832993d2-common": "20.2.0",
52
+ "@codingame/monaco-vscode-f24e325c-2ce0-5bba-8236-bfc4f53180ab-common": "20.2.0"
53
53
  },
54
54
  "main": "index.js",
55
55
  "module": "index.js",
@@ -1,9 +1,82 @@
1
1
  import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
2
2
  import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
3
+ /**
4
+ * Helper type that represents a function that has an optional {@linkcode CancellationToken}
5
+ * argument argument at the end of the arguments list.
6
+ *
7
+ * @typeparam `TFunction` - Type of the function arguments list of which will be extended
8
+ * with an optional {@linkcode CancellationToken} argument.
9
+ */
3
10
  type TWithOptionalCancellationToken<TFunction extends Function> = TFunction extends (...args: infer TArgs) => infer TReturn ? (...args: [
4
11
  ...TArgs,
5
12
  cancellatioNToken?: CancellationToken
6
13
  ]) => TReturn : never;
14
+ /**
15
+ * Decorator that provides a mechanism to cancel previous calls of the decorated method
16
+ * by providing a `cancellation token` as the last argument of the method, which gets
17
+ * cancelled immediately on subsequent call of the decorated method.
18
+ *
19
+ * Therefore to use this decorator, the two conditions must be met:
20
+ *
21
+ * - the decorated method must have an *optional* {@linkcode CancellationToken} argument at
22
+ * the end of the arguments list
23
+ * - the object that the decorated method belongs to must implement the {@linkcode Disposable};
24
+ * this requirement comes from the internal implementation of the decorator that
25
+ * creates new resources that need to be eventually disposed by someone
26
+ *
27
+ * @typeparam `TObject` - Object type that the decorated method belongs to.
28
+ * @typeparam `TArgs` - Argument list of the decorated method.
29
+ * @typeparam `TReturn` - Return value type of the decorated method.
30
+ *
31
+ * ### Examples
32
+ *
33
+ * ```typescript
34
+ * // let's say we have a class that implements the `Disposable` interface that we want
35
+ * // to use the decorator on
36
+ * class Example extends Disposable {
37
+ * async doSomethingAsync(arg1: number, arg2: string): Promise<void> {
38
+ * // do something async..
39
+ * await new Promise(resolve => setTimeout(resolve, 1000));
40
+ * }
41
+ * }
42
+ * ```
43
+ *
44
+ * ```typescript
45
+ * // to do that we need to add the `CancellationToken` argument to the end of args list
46
+ * class Example extends Disposable {
47
+ * @cancelPreviousCalls
48
+ * async doSomethingAsync(arg1: number, arg2: string, cancellationToken?: CancellationToken): Promise<void> {
49
+ * console.log(`call with args ${arg1} and ${arg2} initiated`);
50
+ *
51
+ * // the decorator will create the cancellation token automatically
52
+ * assertDefined(
53
+ * cancellationToken,
54
+ * `The method must now have the `CancellationToken` passed to it.`,
55
+ * );
56
+ *
57
+ * cancellationToken.onCancellationRequested(() => {
58
+ * console.log(`call with args ${arg1} and ${arg2} was cancelled`);
59
+ * });
60
+ *
61
+ * // do something async..
62
+ * await new Promise(resolve => setTimeout(resolve, 1000));
63
+ *
64
+ * // check cancellation token state after the async operations
65
+ * console.log(
66
+ * `call with args ${arg1} and ${arg2} completed, canceled?: ${cancellationToken.isCancellationRequested}`,
67
+ * );
68
+ * }
69
+ * }
70
+ *
71
+ * const example = new Example();
72
+ * // call the decorate method first time
73
+ * example.doSomethingAsync(1, 'foo');
74
+ * // wait for 500ms which is less than 1000ms of the async operation in the first call
75
+ * await new Promise(resolve => setTimeout(resolve, 500));
76
+ * // calling the decorate method second time cancels the token passed to the first call
77
+ * example.doSomethingAsync(2, 'bar');
78
+ * ```
79
+ */
7
80
  export declare function cancelPreviousCalls<TObject extends Disposable, TArgs extends unknown[], TReturn extends unknown>(_proto: TObject, methodName: string, descriptor: TypedPropertyDescriptor<TWithOptionalCancellationToken<(...args: TArgs) => TReturn>>): TypedPropertyDescriptor<(...args: [
8
81
  ...TArgs,
9
82
  cancellatioNToken?: CancellationToken | undefined
@@ -6,9 +6,36 @@ export declare enum PolicyTag {
6
6
  Agent = "AGENT"
7
7
  }
8
8
  export interface IPolicy {
9
+ /**
10
+ * The policy name.
11
+ */
9
12
  readonly name: PolicyName;
13
+ /**
14
+ * The Code version in which this policy was introduced.
15
+ */
10
16
  readonly minimumVersion: `${number}.${number}`;
17
+ /**
18
+ * The policy description (optional).
19
+ */
11
20
  readonly description?: string;
21
+ /**
22
+ * The value that an ACCOUNT-based feature will use when its corresponding policy is active.
23
+ *
24
+ * Only applicable when policy is tagged with ACCOUNT. When an account-based feature's policy is enabled,
25
+ * this value determines what value the feature receives.
26
+ *
27
+ * For example:
28
+ * - If `defaultValue: true`, the feature's setting is locked to `true` WHEN the policy is in effect.
29
+ * - If `defaultValue: 'foo'`, the feature's setting is locked to 'foo' WHEN the policy is in effect.
30
+ *
31
+ * If omitted, 'false' is the assumed value.
32
+ *
33
+ * Note: This is unrelated to the default value of the VS Code setting itself. This specifically controls
34
+ * the value of an account-based feature's setting WHEN the policy is overriding it.
35
+ */
12
36
  readonly defaultValue?: string | number | boolean;
37
+ /**
38
+ * Tags for categorizing policies
39
+ */
13
40
  readonly tags?: PolicyTag[];
14
41
  }
@@ -3,20 +3,61 @@ import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event"
3
3
  import { MovedText } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/diff/linesDiffComputer";
4
4
  import { DetailedLineRangeMapping } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/diff/rangeMapping";
5
5
  import { ITextModel } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/model";
6
+ /**
7
+ * A document diff provider computes the diff between two text models.
8
+ * @internal
9
+ */
6
10
  export interface IDocumentDiffProvider {
11
+ /**
12
+ * Computes the diff between the text models `original` and `modified`.
13
+ */
7
14
  computeDiff(original: ITextModel, modified: ITextModel, options: IDocumentDiffProviderOptions, cancellationToken: CancellationToken): Promise<IDocumentDiff>;
15
+ /**
16
+ * Is fired when settings of the diff algorithm change that could alter the result of the diffing computation.
17
+ * Any user of this provider should recompute the diff when this event is fired.
18
+ */
8
19
  onDidChange: Event<void>;
9
20
  }
21
+ /**
22
+ * Options for the diff computation.
23
+ * @internal
24
+ */
10
25
  export interface IDocumentDiffProviderOptions {
26
+ /**
27
+ * When set to true, the diff should ignore whitespace changes.
28
+ */
11
29
  ignoreTrimWhitespace: boolean;
30
+ /**
31
+ * A diff computation should throw if it takes longer than this value.
32
+ */
12
33
  maxComputationTimeMs: number;
34
+ /**
35
+ * If set, the diff computation should compute moves in addition to insertions and deletions.
36
+ */
13
37
  computeMoves: boolean;
14
38
  extendToSubwords?: boolean;
15
39
  }
40
+ /**
41
+ * Represents a diff between two text models.
42
+ * @internal
43
+ */
16
44
  export interface IDocumentDiff {
45
+ /**
46
+ * If true, both text models are identical (byte-wise).
47
+ */
17
48
  readonly identical: boolean;
49
+ /**
50
+ * If true, the diff computation timed out and the diff might not be accurate.
51
+ */
18
52
  readonly quitEarly: boolean;
53
+ /**
54
+ * Maps all modified line ranges in the original to the corresponding line ranges in the modified text model.
55
+ */
19
56
  readonly changes: readonly DetailedLineRangeMapping[];
57
+ /**
58
+ * Sorted by original line ranges.
59
+ * The original line ranges and the modified line ranges must be disjoint (but can be touching).
60
+ */
20
61
  readonly moves: readonly MovedText[];
21
62
  }
22
63
  export declare const nullDocumentDiff: IDocumentDiff;
@@ -1,6 +1,16 @@
1
1
  export interface INewEditSessionActionContext {
2
+ /**
3
+ * An initial prompt to write to the chat.
4
+ */
2
5
  inputValue?: string;
6
+ /**
7
+ * Selects opening in agent mode or not. If not set, the current mode is used.
8
+ * This is ignored when coming from a chat view title context.
9
+ */
3
10
  agentMode?: boolean;
11
+ /**
12
+ * Whether the inputValue is partial and should wait for further user input. If false or not set, the prompt is sent immediately.
13
+ */
4
14
  isPartialQuery?: boolean;
5
15
  }
6
16
  export declare function registerNewChatActions(): void;
@@ -1,3 +1,14 @@
1
1
  import { ServicesAccessor } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
2
2
  import { IToolData, ToolSet } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/languageModelToolsService";
3
+ /**
4
+ * Main entry point for the tools picker. Supports both QuickPick and QuickTree implementations
5
+ * based on the 'chat.tools.useTreePicker' workspace setting.
6
+ *
7
+ * @param accessor - Service accessor for dependency injection
8
+ * @param placeHolder - Placeholder text shown in the picker
9
+ * @param description - Optional description text shown in the picker
10
+ * @param toolsEntries - Optional initial selection state for tools and toolsets
11
+ * @param onUpdate - Optional callback fired when the selection changes
12
+ * @returns Promise resolving to the final selection map, or undefined if cancelled
13
+ */
3
14
  export declare function showToolsPicker(accessor: ServicesAccessor, placeHolder: string, description?: string, toolsEntries?: ReadonlyMap<ToolSet | IToolData, boolean>, onUpdate?: (toolsEntries: ReadonlyMap<ToolSet | IToolData, boolean>) => void): Promise<ReadonlyMap<ToolSet | IToolData, boolean> | undefined>;
@@ -54,6 +54,11 @@ export declare class ApplyCodeBlockOperation {
54
54
  private tryToRevealCodeBlock;
55
55
  private notify;
56
56
  }
57
+ /**
58
+ * Returns:
59
+ * - level: the line's the ident level in tabs
60
+ * - length: the number of characters of the leading whitespace
61
+ */
57
62
  export declare function computeIndentation(line: string, tabSize: number): {
58
63
  level: number;
59
64
  length: number;
@@ -71,6 +71,12 @@ export declare abstract class AbstractChatEditingModifiedFileEntry extends Dispo
71
71
  protected _notifyAction(action: ChatUserAction): void;
72
72
  private readonly _editorIntegrations;
73
73
  getEditorIntegration(pane: IEditorPane): IModifiedFileEntryEditorIntegration;
74
+ /**
75
+ * Create the editor integration for this entry and the given editor pane. This will only be called
76
+ * once (and cached) per pane. The integration is meant to be scoped to this entry only and when the
77
+ * passed pane/editor changes input, then the editor integration must handle that, e.g use default/null
78
+ * values
79
+ */
74
80
  protected abstract _createEditorIntegration(editor: IEditorPane): IModifiedFileEntryEditorIntegration;
75
81
  abstract readonly changesCount: IObservable<number>;
76
82
  acceptStreamingEditsStart(responseModel: IChatResponseModel, tx: ITransaction): void;
@@ -38,10 +38,19 @@ export declare class ChatEditingModifiedNotebookEntry extends AbstractChatEditin
38
38
  private readonly modifiedModel;
39
39
  private readonly originalModel;
40
40
  originalURI: URI;
41
+ /**
42
+ * JSON stringified version of the original notebook.
43
+ */
41
44
  initialContent: string;
45
+ /**
46
+ * Whether we're still generating diffs from a response.
47
+ */
42
48
  private _isProcessingResponse;
43
49
  get isProcessingResponse(): IObservable<boolean>;
44
50
  private _isEditFromUs;
51
+ /**
52
+ * Whether all edits are from us, e.g. is possible a user has made edits, then this will be false.
53
+ */
45
54
  private _allEditsAreFromUs;
46
55
  private readonly _changesCount;
47
56
  changesCount: IObservable<number>;
@@ -49,6 +58,12 @@ export declare class ChatEditingModifiedNotebookEntry extends AbstractChatEditin
49
58
  private modifiedToOriginalCell;
50
59
  private readonly _cellsDiffInfo;
51
60
  get cellsDiffInfo(): IObservable<ICellDiffInfo[]>;
61
+ /**
62
+ * List of Cell URIs that are edited,
63
+ * Will be cleared once all edits have been accepted.
64
+ * I.e. this will only contain URIS while acceptAgentEdits is being called & before `isLastEdit` is sent.
65
+ * I.e. this is populated only when edits are being streamed.
66
+ */
52
67
  private readonly editedCells;
53
68
  static create(uri: URI, _multiDiffEntryDelegate: {
54
69
  collapse: (transaction: ITransaction | undefined) => void;
@@ -31,6 +31,9 @@ export declare class ChatEditingSession extends Disposable implements IChatEditi
31
31
  private readonly _accessibilitySignalService;
32
32
  private readonly _state;
33
33
  private readonly _timeline;
34
+ /**
35
+ * Contains the contents of a file when the AI first began doing edits to it.
36
+ */
34
37
  private readonly _initialFileContents;
35
38
  private readonly _entriesObs;
36
39
  get entries(): IObservable<readonly IModifiedFileEntry[]>;
@@ -53,6 +56,9 @@ export declare class ChatEditingSession extends Disposable implements IChatEditi
53
56
  getSnapshot(requestId: string, undoStop: string | undefined, snapshotUri: URI): ISnapshotEntry | undefined;
54
57
  getSnapshotModel(requestId: string, undoStop: string | undefined, snapshotUri: URI): Promise<ITextModel | null>;
55
58
  getSnapshotUri(requestId: string, uri: URI, stopId: string | undefined): URI | undefined;
59
+ /**
60
+ * A snapshot representing the state of the working set before a new request has been sent
61
+ */
56
62
  private _pendingSnapshot;
57
63
  restoreSnapshot(requestId: string | undefined, stopId: string | undefined): Promise<void>;
58
64
  private _restoreSnapshot;
@@ -73,6 +79,11 @@ export declare class ChatEditingSession extends Disposable implements IChatEditi
73
79
  private _acceptEdits;
74
80
  private _getTelemetryInfoForModel;
75
81
  private _resolve;
82
+ /**
83
+ * Retrieves or creates a modified file entry.
84
+ *
85
+ * @returns The modified file entry.
86
+ */
76
87
  private _getOrCreateModifiedFileEntry;
77
88
  private _createModifiedFileEntry;
78
89
  private _collapse;
@@ -25,11 +25,22 @@ export declare class ChatEditingSessionStorage {
25
25
  clearState(): Promise<void>;
26
26
  }
27
27
  export interface IChatEditingSessionSnapshot {
28
+ /**
29
+ * Index of this session in the linear history. It's the sum of the lengths
30
+ * of all {@link stops} prior this one.
31
+ */
28
32
  readonly startIndex: number;
29
33
  readonly requestId: string | undefined;
34
+ /**
35
+ * Edit stops in the request. Always initially populatd with stopId: undefind
36
+ * for th request's initial state.
37
+ *
38
+ * Invariant: never empty.
39
+ */
30
40
  readonly stops: IChatEditingSessionStop[];
31
41
  }
32
42
  export interface IChatEditingSessionStop {
43
+ /** Edit stop ID, first for a request is always undefined. */
33
44
  stopId: string | undefined;
34
45
  readonly entries: ResourceMap<ISnapshotEntry>;
35
46
  }
@@ -60,7 +60,13 @@ export declare class ChatEditingTextModelChangeService extends Disposable {
60
60
  maxLineNumber: number;
61
61
  }>;
62
62
  private _applyEdits;
63
+ /**
64
+ * Keeps the current modified document as the final contents.
65
+ */
63
66
  keep(): void;
67
+ /**
68
+ * Undoes the current modified document as the final contents.
69
+ */
64
70
  undo(): void;
65
71
  resetDocumentValues(newOriginal: string | ITextSnapshot | undefined, newModified: string | undefined): Promise<void>;
66
72
  private _mirrorEdits;
@@ -8,6 +8,9 @@ import { IEditSessionEntryDiff } from "@codingame/monaco-vscode-api/vscode/vs/wo
8
8
  import { IChatRequestDisablement } from "@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModel";
9
9
  import { AbstractChatEditingModifiedFileEntry } from "./chatEditingModifiedFileEntry.js";
10
10
  import { IChatEditingSessionSnapshot, IChatEditingSessionStop } from "./chatEditingSessionStorage.js";
11
+ /**
12
+ * Timeline/undo-redo stack for ChatEditingSession.
13
+ */
11
14
  export declare class ChatEditingTimeline {
12
15
  private readonly _editorWorkerService;
13
16
  private readonly _instantiationService;
@@ -23,24 +26,60 @@ export declare class ChatEditingTimeline {
23
26
  readonly canRedo: IObservable<boolean>;
24
27
  readonly requestDisablement: IObservable<IChatRequestDisablement[]>;
25
28
  constructor(_editorWorkerService: IEditorWorkerService, _instantiationService: IInstantiationService, configurationService: IConfigurationService, _textModelService: ITextModelService);
29
+ /**
30
+ * Restore the timeline from a saved state (history array and index).
31
+ */
26
32
  restoreFromState(state: {
27
33
  history: readonly IChatEditingSessionSnapshot[];
28
34
  index: number;
29
35
  }, tx: ITransaction): void;
36
+ /**
37
+ * Get the snapshot and history index for restoring, given requestId and stopId.
38
+ * If requestId is undefined, returns undefined (pending snapshot is managed by session).
39
+ */
30
40
  getSnapshotForRestore(requestId: string | undefined, stopId: string | undefined): {
31
41
  stop: IChatEditingSessionStop;
32
42
  apply(): void;
33
43
  } | undefined;
44
+ /**
45
+ * Ensures the state of the file in the given snapshot matches the current
46
+ * state of the {@param entry}. This is used to handle concurrent file edits.
47
+ *
48
+ * Given the case of two different edits, we will place and undo stop right
49
+ * before we `textEditGroup` in the underlying markdown stream, but at the
50
+ * time those are added the edits haven't been made yet, so both files will
51
+ * simply have the unmodified state.
52
+ *
53
+ * This method is called after each edit, so after the first file finishes
54
+ * being edits, it will update its content in the second undo snapshot such
55
+ * that it can be undone successfully.
56
+ *
57
+ * We ensure that the same file is not concurrently edited via the
58
+ * {@link _streamingEditLocks}, avoiding race conditions.
59
+ *
60
+ * @param next If true, this will edit the snapshot _after_ the undo stop
61
+ */
34
62
  ensureEditInUndoStopMatches(requestId: string, undoStop: string | undefined, entry: Pick<AbstractChatEditingModifiedFileEntry, "modifiedURI" | "createSnapshot" | "equalsSnapshot">, next: boolean, tx: ITransaction | undefined): void;
63
+ /**
64
+ * Get the undo snapshot (previous in history), or undefined if at start.
65
+ * If the timeline is at the end of the history, it will return the last stop
66
+ * pushed into the history.
67
+ */
35
68
  getUndoSnapshot(): {
36
69
  stop: IChatEditingSessionStop;
37
70
  apply(): void;
38
71
  } | undefined;
72
+ /**
73
+ * Get the redo snapshot (next in history), or undefined if at end.
74
+ */
39
75
  getRedoSnapshot(): {
40
76
  stop: IChatEditingSessionStop;
41
77
  apply(): void;
42
78
  } | undefined;
43
79
  private getUndoRedoSnapshot;
80
+ /**
81
+ * Get the state for persistence (history and index).
82
+ */
44
83
  getStateForPersistence(): {
45
84
  history: readonly IChatEditingSessionSnapshot[];
46
85
  index: number;
@@ -49,6 +88,11 @@ export declare class ChatEditingTimeline {
49
88
  private findEditStop;
50
89
  private getHistoryEntryByLinearIndex;
51
90
  pushSnapshot(requestId: string, undoStop: string | undefined, snapshot: IChatEditingSessionStop): void;
91
+ /**
92
+ * Gets diff for text entries between stops.
93
+ * @param entriesContent Observable that observes either snapshot entry
94
+ * @param modelUrisObservable Observable that observes only the snapshot URIs.
95
+ */
52
96
  private _entryDiffBetweenTextStops;
53
97
  private _createDiffBetweenStopsObservable;
54
98
  getEntryDiffBetweenStops(uri: URI, requestId: string | undefined, stopId: string | undefined): IObservable<IEditSessionEntryDiff | undefined>;
@@ -2,6 +2,17 @@ import { TextEdit } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/l
2
2
  import { NotebookTextModel } from "@codingame/monaco-vscode-notebook-service-override/vscode/vs/workbench/contrib/notebook/common/model/notebookTextModel";
3
3
  import { ICellEditOperation } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookCommon";
4
4
  import { INotebookService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookService.service";
5
+ /**
6
+ * When asking LLM to generate a new notebook, LLM might end up generating the notebook
7
+ * using the raw file format.
8
+ * E.g. assume we ask LLM to generate a new Github Issues notebook, LLM might end up
9
+ * genrating the notebook using the JSON format of github issues file.
10
+ * Such a format is not known to copilot extension and those are sent over as regular
11
+ * text edits for the Notebook URI.
12
+ *
13
+ * In such cases we should accumulate all of the edits, generate the content and deserialize the content
14
+ * into a notebook, then generate notebooke edits to insert these cells.
15
+ */
5
16
  export declare class ChatEditingNewNotebookContentEdits {
6
17
  private readonly notebook;
7
18
  private readonly _notebookService;
@@ -10,6 +10,11 @@ import { INotebookEditorService } from "@codingame/monaco-vscode-api/vscode/vs/w
10
10
  import { NotebookCellTextModel } from "@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/notebook/common/model/notebookCellTextModel";
11
11
  import { ModifiedFileEntryState } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatEditingService";
12
12
  import { IChatResponseModel } from "@codingame/monaco-vscode-c2deffc4-ad68-5e63-8f95-9b89e0fc6898-common/vscode/vs/workbench/contrib/chat/common/chatModel";
13
+ /**
14
+ * This is very closely similar to the ChatEditingModifiedDocumentEntry class.
15
+ * Most of the code has been borrowed from there, as a cell is effectively a document.
16
+ * Hence most of the same functionality applies.
17
+ */
13
18
  export declare class ChatEditingNotebookCellEntry extends Disposable {
14
19
  readonly notebookUri: URI;
15
20
  readonly cell: NotebookCellTextModel;
@@ -6,10 +6,23 @@ export declare function adjustCellDiffForRevertingADeletedCell(originalCellIndex
6
6
  export declare function adjustCellDiffForRevertingAnInsertedCell(modifiedCellIndex: number, cellDiffInfo: ICellDiffInfo[], applyEdits: typeof NotebookTextModel.prototype.applyEdits): ICellDiffInfo[];
7
7
  export declare function adjustCellDiffForKeepingAnInsertedCell(modifiedCellIndex: number, cellDiffInfo: ICellDiffInfo[], cellToInsert: ICellDto2, applyEdits: typeof NotebookTextModel.prototype.applyEdits, createModifiedCellDiffInfo: (modifiedCellIndex: number, originalCellIndex: number) => ICellDiffInfo): ICellDiffInfo[];
8
8
  export declare function adjustCellDiffAndOriginalModelBasedOnCellAddDelete(change: NotebookCellTextModelSplice<ICell>, cellDiffInfo: ICellDiffInfo[], modifiedModelCellCount: number, originalModelCellCount: number, applyEdits: typeof NotebookTextModel.prototype.applyEdits, createModifiedCellDiffInfo: (modifiedCellIndex: number, originalCellIndex: number) => ICellDiffInfo): ICellDiffInfo[];
9
+ /**
10
+ * Given the movements of cells in modified notebook, adjust the ICellDiffInfo[] array
11
+ * and generate edits for the old notebook (if required).
12
+ * TODO@DonJayamanne Handle bulk moves (movements of more than 1 cell).
13
+ */
9
14
  export declare function adjustCellDiffAndOriginalModelBasedOnCellMovements(event: NotebookCellsModelMoveEvent<ICell>, cellDiffInfo: ICellDiffInfo[]): [
10
15
  ICellDiffInfo[],
11
16
  ICellEditOperation[]
12
17
  ] | undefined;
13
18
  export declare function getCorrespondingOriginalCellIndex(modifiedCellIndex: number, cellDiffInfo: ICellDiffInfo[]): number | undefined;
19
+ /**
20
+ *
21
+ * This isn't great, but necessary.
22
+ * ipynb extension updates metadata when new cells are inserted (to ensure the metadata is correct)
23
+ * Details of why thats required is in ipynb extension, but its necessary.
24
+ * However as a result of this, those edits appear here and are assumed to be user edits.
25
+ * As a result `_allEditsAreFromUs` is set to false.
26
+ */
14
27
  export declare function isTransientIPyNbExtensionEvent(notebookKind: string, e: NotebookTextModelChangedEvent): boolean;
15
28
  export declare function calculateNotebookRewriteRatio(cellsDiff: ICellDiffInfo[], originalModel: NotebookTextModel, modifiedModel: NotebookTextModel): number;
@@ -2,6 +2,14 @@ import { ISettableObservable, ObservablePromise } from "@codingame/monaco-vscode
2
2
  import { IDocumentDiff } from "../../../../../../editor/common/diff/documentDiffProvider.js";
3
3
  import { DetailedLineRangeMapping } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/diff/rangeMapping";
4
4
  import { ITextModel } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/model";
5
+ /**
6
+ * This structure is used to represent the state of a Notebook document compared to the original.
7
+ * Its similar to the IDocumentDiff object, that tells us what cells are unmodified, modified, inserted or deleted.
8
+ *
9
+ * All entries will contain a IDocumentDiff
10
+ * Even when there are no changes, diff will contain the number of lines in the document.
11
+ * This way we can always calculate the total number of lines in the document.
12
+ */
5
13
  export type ICellDiffInfo = {
6
14
  originalCellIndex: number;
7
15
  modifiedCellIndex: number;
@@ -20,8 +28,19 @@ export type ICellDiffInfo = {
20
28
  type: "insert";
21
29
  } & IDocumentDiffWithModelsAndActions;
22
30
  interface IDocumentDiffWithModelsAndActions {
31
+ /**
32
+ * The changes between the original and modified document.
33
+ */
23
34
  diff: ISettableObservable<IDocumentDiff>;
35
+ /**
36
+ * The original model.
37
+ * Cell text models load asynchronously, so this is an observable promise.
38
+ */
24
39
  originalModel: ObservablePromise<ITextModel>;
40
+ /**
41
+ * The modified model.
42
+ * Cell text models load asynchronously, so this is an observable promise.
43
+ */
25
44
  modifiedModel: ObservablePromise<ITextModel>;
26
45
  keep(changes: DetailedLineRangeMapping): Promise<boolean>;
27
46
  undo(changes: DetailedLineRangeMapping): Promise<boolean>;
@@ -1,5 +1,9 @@
1
1
  import { IHoverAction } from "@codingame/monaco-vscode-api/vscode/vs/base/browser/ui/hover/hover";
2
2
  import { IKeybindingService } from "@codingame/monaco-vscode-api/vscode/vs/platform/keybinding/common/keybinding.service";
3
+ /**
4
+ * This borrows some of HoverWidget so that a chat editor hover can be rendered in the same way as a workbench hover.
5
+ * Maybe it can be reusable in a generic way.
6
+ */
3
7
  export declare class ChatEditorHoverWrapper {
4
8
  private readonly keybindingService;
5
9
  readonly domNode: HTMLElement;
@@ -1,3 +1,8 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+
1
6
  .chat-editor-hover-wrapper-content {
2
7
  padding: 2px 8px;
3
8
  }