@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.
- package/package.json +36 -36
- package/vscode/src/vs/base/common/decorators/cancelPreviousCalls.d.ts +73 -0
- package/vscode/src/vs/base/common/policy.d.ts +27 -0
- package/vscode/src/vs/editor/common/diff/documentDiffProvider.d.ts +41 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatClearActions.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatToolPicker.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/actions/codeBlockOperations.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedFileEntry.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingModifiedNotebookEntry.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSession.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingSessionStorage.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTextModelChangeService.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingTimeline.d.ts +44 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNewNotebookContentEdits.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/chatEditingNotebookCellEntry.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/helpers.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/notebook/notebookCellChanges.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/editorHoverWrapper.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/contrib/media/editorHoverWrapper.css +5 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/languageModelToolsService.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditingEditorOverlay.css +22 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatEditorController.css +10 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSessions.css +14 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatSetup.css +19 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/media/chatStatus.css +45 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/media/simpleBrowserOverlay.css +13 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/attachInstructionsAction.d.ts +22 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/chatModeActions.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptName.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/askForPromptSourceFolder.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/pickers/promptFilePickers.d.ts +23 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/promptFileActions.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/runPromptAction.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/browser/promptSyntax/saveToPromptAction.d.ts +9 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatServiceImpl.d.ts +9 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatSessionStore.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptFileReferenceErrors.d.ts +54 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/asyncDecoder.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/baseDecoder.d.ts +102 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/baseToken.d.ts +42 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/compositeToken.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/constants.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/frontMatterDecoder.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/parsers/frontMatterArray.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/parsers/frontMatterRecord/frontMatterRecord.d.ts +30 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/parsers/frontMatterRecord/frontMatterRecordName.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/parsers/frontMatterRecord/frontMatterRecordNameWithDelimiter.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/parsers/frontMatterSequence.d.ts +32 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/parsers/frontMatterString.d.ts +9 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/parsers/frontMatterValue.d.ts +41 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/frontMatterArray.d.ts +9 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/frontMatterBoolean.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/frontMatterRecord.d.ts +61 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/frontMatterSequence.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/frontMatterString.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/frontMatterToken.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/linesCodec/linesDecoder.d.ts +44 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/linesCodec/tokens/carriageReturn.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/linesCodec/tokens/line.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/linesCodec/tokens/newLine.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownCodec/markdownDecoder.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownCodec/parsers/markdownComment.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownCodec/parsers/markdownImage.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownCodec/parsers/markdownLink.d.ts +54 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownCodec/tokens/markdownComment.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownCodec/tokens/markdownImage.d.ts +39 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownCodec/tokens/markdownLink.d.ts +39 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownCodec/tokens/markdownToken.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownExtensionsCodec/markdownExtensionsDecoder.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownExtensionsCodec/parsers/frontMatterHeader.d.ts +29 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownExtensionsCodec/tokens/frontMatterHeader.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownExtensionsCodec/tokens/frontMatterMarker.d.ts +16 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/markdownExtensionsCodec/tokens/markdownExtensionsToken.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/parserBase.d.ts +64 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/simpleDecoder.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/angleBrackets.d.ts +29 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/at.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/brackets.d.ts +29 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/colon.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/comma.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/curlyBraces.d.ts +29 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/dash.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/dollarSign.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/doubleQuote.d.ts +17 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/exclamationMark.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/formFeed.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/hash.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/parentheses.d.ts +29 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/quote.d.ts +17 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/simpleToken.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/slash.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/space.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/tab.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/verticalTab.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/simpleCodec/tokens/word.d.ts +24 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/textToken.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/utils/objectStream.d.ts +37 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/utils/objectStreamFromTextModel.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/chatPromptCodec.d.ts +30 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/chatPromptDecoder.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/parsers/promptAtMentionParser.d.ts +16 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/parsers/promptSlashCommandParser.d.ts +16 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/parsers/promptTemplateVariableParser.d.ts +21 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/parsers/promptVariableParser.d.ts +26 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/tokens/fileReference.d.ts +11 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/tokens/promptAtMention.d.ts +17 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/tokens/promptSlashCommand.d.ts +17 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/tokens/promptTemplateVariable.d.ts +19 -1
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/tokens/promptToken.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/codecs/tokens/promptVariable.d.ts +39 -2
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/config/configMigration.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contentProviders/filePromptContentsProvider.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contentProviders/promptContentsProviderBase.d.ts +70 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/contentProviders/textModelContentsProvider.d.ts +20 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderAutocompletion.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderDiagnosticsProvider.d.ts +14 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptHeaderHovers.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkDiagnosticsProvider.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptLinkProvider.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/promptPathAutocompletion.d.ts +45 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/providerInstanceBase.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/languageProviders/providerInstanceManagerBase.d.ts +19 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/basePromptParser.d.ts +144 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/diagnostics.d.ts +18 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/headerBase.d.ts +71 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/instructionsHeader.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/applyTo.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/enum.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/record.d.ts +42 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/base/string.d.ts +12 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/description.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/mode.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/model.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/metadata/tools.d.ts +26 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/modeHeader.d.ts +15 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptHeader/promptHeader.d.ts +26 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/promptParser.d.ts +10 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/textModelPromptParser.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/topError.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts +24 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/objectCache.d.ts +83 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/observableDisposable.d.ts +31 -0
- package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/promptFilesLocator.d.ts +39 -0
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsContribution.d.ts +3 -0
- package/vscode/src/vs/workbench/contrib/chat/common/tools/languageModelToolsParametersSchema.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.d.ts +5 -0
- package/vscode/src/vs/workbench/contrib/chat/common/voiceChatService.service.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/media/terminalChatWidget.css +17 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatController.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatControllerHolder.d.ts +4 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/bufferOutputPolling.d.ts +7 -3
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/basicExecuteStrategy.d.ts +22 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/executeStrategy.d.ts +8 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/noneExecuteStrategy.d.ts +6 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/executeStrategy/richExecuteStrategy.d.ts +7 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/task/taskHelpers.d.ts +13 -0
- package/vscode/src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/toolTerminalCreator.d.ts +4 -0
|
@@ -8,29 +8,100 @@ import { type TDiagnostic } from "./diagnostics.js";
|
|
|
8
8
|
import { FrontMatterRecord } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/index";
|
|
9
9
|
import { FrontMatterHeader } from "../../codecs/base/markdownExtensionsCodec/tokens/frontMatterHeader.js";
|
|
10
10
|
import { PromptDescriptionMetadata } from "./metadata/description.js";
|
|
11
|
+
/**
|
|
12
|
+
* A metadata utility class "dehydrated" into a plain data object with
|
|
13
|
+
* semi-primitive record values (string, boolean, string[], boolean[], etc.).
|
|
14
|
+
*/
|
|
11
15
|
export type TDehydrated<T extends IHeaderMetadata> = {
|
|
12
16
|
[K in keyof T]: T[K] extends IMetadataRecord<infer U> ? (U extends undefined ? undefined : NonNullable<U>) : undefined;
|
|
13
17
|
};
|
|
18
|
+
/**
|
|
19
|
+
* Metadata defined in the prompt header.
|
|
20
|
+
*/
|
|
14
21
|
export interface IHeaderMetadata {
|
|
22
|
+
/**
|
|
23
|
+
* Description metadata in the prompt header.
|
|
24
|
+
*/
|
|
15
25
|
description: PromptDescriptionMetadata;
|
|
16
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Metadata for prompt/instruction/mode files.
|
|
29
|
+
*/
|
|
17
30
|
export type THeaderMetadata = Partial<TDehydrated<IHeaderMetadata>>;
|
|
31
|
+
/**
|
|
32
|
+
* Metadata defined in the header of prompt/instruction/mode files.
|
|
33
|
+
*/
|
|
18
34
|
export type TMetadata = TPromptMetadata | TModeMetadata | TInstructionsMetadata;
|
|
35
|
+
/**
|
|
36
|
+
* Base class for prompt/instruction/mode headers.
|
|
37
|
+
*/
|
|
19
38
|
export declare abstract class HeaderBase<TMetadata extends IHeaderMetadata> extends Disposable {
|
|
20
39
|
readonly token: FrontMatterHeader;
|
|
21
40
|
readonly languageId: string;
|
|
41
|
+
/**
|
|
42
|
+
* Underlying decoder for a Front Matter header.
|
|
43
|
+
*/
|
|
22
44
|
private readonly stream;
|
|
45
|
+
/**
|
|
46
|
+
* Metadata records.
|
|
47
|
+
*/
|
|
23
48
|
protected readonly meta: Partial<TMetadata>;
|
|
49
|
+
/**
|
|
50
|
+
* Data object with all header's metadata records.
|
|
51
|
+
*/
|
|
24
52
|
get metadata(): Partial<TDehydrated<TMetadata>>;
|
|
53
|
+
/**
|
|
54
|
+
* A copy of metadata object with utility classes as values
|
|
55
|
+
* for each of prompt header's record.
|
|
56
|
+
*
|
|
57
|
+
* Please use {@link metadata} instead if all you need to read is
|
|
58
|
+
* the plain "data" object representation of valid metadata records.
|
|
59
|
+
*/
|
|
25
60
|
get metadataUtility(): Partial<TMetadata>;
|
|
61
|
+
/**
|
|
62
|
+
* List of all unique metadata record names.
|
|
63
|
+
*/
|
|
26
64
|
private readonly recordNames;
|
|
65
|
+
/**
|
|
66
|
+
* List of all issues found while parsing the prompt header.
|
|
67
|
+
*/
|
|
27
68
|
protected readonly issues: TDiagnostic[];
|
|
69
|
+
/**
|
|
70
|
+
* List of all diagnostic issues found while parsing
|
|
71
|
+
* the prompt header.
|
|
72
|
+
*/
|
|
28
73
|
get diagnostics(): readonly TDiagnostic[];
|
|
74
|
+
/**
|
|
75
|
+
* Full range of the header in the original document.
|
|
76
|
+
*/
|
|
29
77
|
get range(): Range;
|
|
30
78
|
constructor(token: FrontMatterHeader, languageId: string);
|
|
79
|
+
/**
|
|
80
|
+
* Process a front matter record token, which includes:
|
|
81
|
+
* - validation of the record and whether it is compatible with other header records
|
|
82
|
+
* - adding validation-related diagnostic messages to the {@link issues} list
|
|
83
|
+
* - setting associated utility class for the record on the {@link meta} object
|
|
84
|
+
*
|
|
85
|
+
* @returns a boolean flag that indicates whether the token was handled and therefore
|
|
86
|
+
* should not be processed any further.
|
|
87
|
+
*/
|
|
31
88
|
protected abstract handleToken(token: FrontMatterRecord): boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Process front matter tokens, converting them into
|
|
91
|
+
* well-known prompt metadata records.
|
|
92
|
+
*/
|
|
32
93
|
private onData;
|
|
94
|
+
/**
|
|
95
|
+
* Process errors from the underlying front matter decoder.
|
|
96
|
+
*/
|
|
33
97
|
private onError;
|
|
98
|
+
/**
|
|
99
|
+
* Promise that resolves when parsing process of
|
|
100
|
+
* the prompt header completes.
|
|
101
|
+
*/
|
|
34
102
|
get settled(): Promise<boolean>;
|
|
103
|
+
/**
|
|
104
|
+
* Starts the parsing process of the prompt header.
|
|
105
|
+
*/
|
|
35
106
|
start(): this;
|
|
36
107
|
}
|
|
@@ -2,12 +2,24 @@ import { PromptApplyToMetadata } from "./metadata/applyTo.js";
|
|
|
2
2
|
import { HeaderBase, IHeaderMetadata, type TDehydrated } from "./headerBase.js";
|
|
3
3
|
import { PromptsType } from "@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02df70296354-common/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes";
|
|
4
4
|
import { FrontMatterRecord } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/index";
|
|
5
|
+
/**
|
|
6
|
+
* Metadata utility object for instruction files.
|
|
7
|
+
*/
|
|
5
8
|
interface IInstructionsMetadata extends IHeaderMetadata {
|
|
9
|
+
/**
|
|
10
|
+
* Chat 'applyTo' metadata in the prompt header.
|
|
11
|
+
*/
|
|
6
12
|
applyTo: PromptApplyToMetadata;
|
|
7
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Metadata for instruction files.
|
|
16
|
+
*/
|
|
8
17
|
export type TInstructionsMetadata = Partial<TDehydrated<IInstructionsMetadata>> & {
|
|
9
18
|
promptType: PromptsType.instructions;
|
|
10
19
|
};
|
|
20
|
+
/**
|
|
21
|
+
* Header object for instruction files.
|
|
22
|
+
*/
|
|
11
23
|
export declare class InstructionsHeader extends HeaderBase<IInstructionsMetadata> {
|
|
12
24
|
protected handleToken(token: FrontMatterRecord): boolean;
|
|
13
25
|
}
|
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
import { PromptStringMetadata } from "./base/string.js";
|
|
2
2
|
import { PromptMetadataDiagnostic } from "../diagnostics.js";
|
|
3
3
|
import { FrontMatterRecord, FrontMatterToken } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/index";
|
|
4
|
+
/**
|
|
5
|
+
* Prompt `applyTo` metadata record inside the prompt header.
|
|
6
|
+
*/
|
|
4
7
|
export declare class PromptApplyToMetadata extends PromptStringMetadata {
|
|
5
8
|
constructor(recordToken: FrontMatterRecord, languageId: string);
|
|
6
9
|
get recordName(): string;
|
|
7
10
|
validate(): readonly PromptMetadataDiagnostic[];
|
|
11
|
+
/**
|
|
12
|
+
* Check if a provided string contains a valid glob pattern.
|
|
13
|
+
*/
|
|
8
14
|
private isValidGlob;
|
|
15
|
+
/**
|
|
16
|
+
* Check if a provided front matter token is a metadata record
|
|
17
|
+
* with name equal to `applyTo`.
|
|
18
|
+
*/
|
|
9
19
|
static isApplyToRecord(token: FrontMatterToken): boolean;
|
|
10
20
|
}
|
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
import { PromptStringMetadata } from "./string.js";
|
|
2
2
|
import { PromptMetadataDiagnostic } from "../../diagnostics.js";
|
|
3
3
|
import { FrontMatterRecord } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/index";
|
|
4
|
+
/**
|
|
5
|
+
* Enum type is the special case of the {@link PromptStringMetadata string}
|
|
6
|
+
* type that can take only a well-defined set of {@link validValues}.
|
|
7
|
+
*/
|
|
4
8
|
export declare abstract class PromptEnumMetadata<TValidValues extends string = string> extends PromptStringMetadata {
|
|
5
9
|
private readonly validValues;
|
|
6
10
|
constructor(validValues: readonly TValidValues[], expectedRecordName: string, recordToken: FrontMatterRecord, languageId: string);
|
|
11
|
+
/**
|
|
12
|
+
* Valid enum value or 'undefined'.
|
|
13
|
+
*/
|
|
7
14
|
private enumValue;
|
|
15
|
+
/**
|
|
16
|
+
* Valid enum value or 'undefined'.
|
|
17
|
+
*/
|
|
8
18
|
get value(): TValidValues | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Validate the metadata record has an allowed value.
|
|
21
|
+
*/
|
|
9
22
|
validate(): readonly PromptMetadataDiagnostic[];
|
|
10
23
|
}
|
|
@@ -1,23 +1,65 @@
|
|
|
1
1
|
import { Range } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range";
|
|
2
2
|
import { PromptMetadataDiagnostic, PromptMetadataError, PromptMetadataWarning } from "../../diagnostics.js";
|
|
3
3
|
import { FrontMatterRecord } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/index";
|
|
4
|
+
/**
|
|
5
|
+
* Supported primitive types for metadata values in a prompt header.
|
|
6
|
+
*/
|
|
4
7
|
type TMetadataPrimitive = string | boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Supported metadata values in a prompt header.
|
|
10
|
+
*/
|
|
5
11
|
type TMetadataValue = TMetadataPrimitive | TMetadataPrimitive[];
|
|
12
|
+
/**
|
|
13
|
+
* Interface for a generic metadata record in the prompt header.
|
|
14
|
+
*/
|
|
6
15
|
export interface IMetadataRecord<T extends TMetadataValue> {
|
|
16
|
+
/**
|
|
17
|
+
* Value of a metadata record. If the value is not defined, it usually
|
|
18
|
+
* means that a record is present but its value is not set or valid.
|
|
19
|
+
*/
|
|
7
20
|
readonly value: T | undefined;
|
|
8
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Abstract class for all metadata records in the prompt header.
|
|
24
|
+
*/
|
|
9
25
|
export declare abstract class PromptMetadataRecord<TValue extends TMetadataValue> implements IMetadataRecord<TValue> {
|
|
10
26
|
protected readonly expectedRecordName: string;
|
|
11
27
|
protected readonly recordToken: FrontMatterRecord;
|
|
12
28
|
protected readonly languageId: string;
|
|
29
|
+
/**
|
|
30
|
+
* Private field for tracking all diagnostic issues
|
|
31
|
+
* related to this metadata record.
|
|
32
|
+
*/
|
|
13
33
|
protected readonly issues: PromptMetadataDiagnostic[];
|
|
34
|
+
/**
|
|
35
|
+
* Full range of the metadata's record text in the prompt header.
|
|
36
|
+
*/
|
|
14
37
|
get range(): Range;
|
|
15
38
|
constructor(expectedRecordName: string, recordToken: FrontMatterRecord, languageId: string);
|
|
39
|
+
/**
|
|
40
|
+
* Name of the metadata record.
|
|
41
|
+
*/
|
|
16
42
|
get recordName(): string;
|
|
43
|
+
/**
|
|
44
|
+
* Validate the metadata record and collect all issues
|
|
45
|
+
* related to its content.
|
|
46
|
+
*/
|
|
17
47
|
abstract validate(): readonly PromptMetadataDiagnostic[];
|
|
48
|
+
/**
|
|
49
|
+
* List of all diagnostic issues related to this metadata record.
|
|
50
|
+
*/
|
|
18
51
|
get diagnostics(): readonly PromptMetadataDiagnostic[];
|
|
52
|
+
/**
|
|
53
|
+
* Get the value of the metadata record.
|
|
54
|
+
*/
|
|
19
55
|
abstract get value(): TValue | undefined;
|
|
56
|
+
/**
|
|
57
|
+
* List of all `error` issue diagnostics.
|
|
58
|
+
*/
|
|
20
59
|
get errorDiagnostics(): readonly PromptMetadataError[];
|
|
60
|
+
/**
|
|
61
|
+
* List of all `warning` issue diagnostics.
|
|
62
|
+
*/
|
|
21
63
|
get warningDiagnostics(): readonly PromptMetadataWarning[];
|
|
22
64
|
}
|
|
23
65
|
export {};
|
|
@@ -2,9 +2,21 @@ import { PromptMetadataRecord } from "./record.js";
|
|
|
2
2
|
import { PromptMetadataDiagnostic } from "../../diagnostics.js";
|
|
3
3
|
import { FrontMatterSequence } from "../../../../codecs/base/frontMatterCodec/tokens/frontMatterSequence.js";
|
|
4
4
|
import { FrontMatterRecord, FrontMatterString } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/index";
|
|
5
|
+
/**
|
|
6
|
+
* Base class for all metadata records with a `string` value.
|
|
7
|
+
*/
|
|
5
8
|
export declare abstract class PromptStringMetadata extends PromptMetadataRecord<string> {
|
|
9
|
+
/**
|
|
10
|
+
* Value token reference of the record.
|
|
11
|
+
*/
|
|
6
12
|
protected valueToken: FrontMatterString | FrontMatterSequence | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* String value of a metadata record.
|
|
15
|
+
*/
|
|
7
16
|
get value(): string | undefined;
|
|
8
17
|
constructor(expectedRecordName: string, recordToken: FrontMatterRecord, languageId: string);
|
|
18
|
+
/**
|
|
19
|
+
* Validate the metadata record has a 'string' value.
|
|
20
|
+
*/
|
|
9
21
|
validate(): readonly PromptMetadataDiagnostic[];
|
|
10
22
|
}
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import { PromptStringMetadata } from "./base/string.js";
|
|
2
2
|
import { FrontMatterRecord, FrontMatterToken } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/index";
|
|
3
|
+
/**
|
|
4
|
+
* Prompt `description` metadata record inside the prompt header.
|
|
5
|
+
*/
|
|
3
6
|
export declare class PromptDescriptionMetadata extends PromptStringMetadata {
|
|
4
7
|
get recordName(): string;
|
|
5
8
|
constructor(recordToken: FrontMatterRecord, languageId: string);
|
|
9
|
+
/**
|
|
10
|
+
* Check if a provided front matter token is a metadata record
|
|
11
|
+
* with name equal to `description`.
|
|
12
|
+
*/
|
|
6
13
|
static isDescriptionRecord(token: FrontMatterToken): boolean;
|
|
7
14
|
}
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import { ChatModeKind } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/constants";
|
|
2
2
|
import { PromptEnumMetadata } from "./base/enum.js";
|
|
3
3
|
import { FrontMatterRecord, FrontMatterToken } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/index";
|
|
4
|
+
/**
|
|
5
|
+
* Prompt `mode` metadata record inside the prompt header.
|
|
6
|
+
*/
|
|
4
7
|
export declare class PromptModeMetadata extends PromptEnumMetadata<ChatModeKind> {
|
|
5
8
|
constructor(recordToken: FrontMatterRecord, languageId: string);
|
|
9
|
+
/**
|
|
10
|
+
* Check if a provided front matter token is a metadata record
|
|
11
|
+
* with name equal to `mode`.
|
|
12
|
+
*/
|
|
6
13
|
static isModeRecord(token: FrontMatterToken): boolean;
|
|
7
14
|
}
|
|
@@ -3,5 +3,9 @@ import { PromptStringMetadata } from "./base/string.js";
|
|
|
3
3
|
export declare class PromptModelMetadata extends PromptStringMetadata {
|
|
4
4
|
get recordName(): string;
|
|
5
5
|
constructor(recordToken: FrontMatterRecord, languageId: string);
|
|
6
|
+
/**
|
|
7
|
+
* Check if a provided front matter token is a metadata record
|
|
8
|
+
* with name equal to `description`.
|
|
9
|
+
*/
|
|
6
10
|
static isModelRecord(token: FrontMatterToken): boolean;
|
|
7
11
|
}
|
|
@@ -2,14 +2,40 @@ import { PromptMetadataRecord } from "./base/record.js";
|
|
|
2
2
|
import { PromptMetadataDiagnostic } from "../diagnostics.js";
|
|
3
3
|
import { FrontMatterArray, FrontMatterRecord, FrontMatterToken } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/index";
|
|
4
4
|
import { Range } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/core/range";
|
|
5
|
+
/**
|
|
6
|
+
* Prompt `tools` metadata record inside the prompt header.
|
|
7
|
+
*/
|
|
5
8
|
export declare class PromptToolsMetadata extends PromptMetadataRecord<string[]> {
|
|
9
|
+
/**
|
|
10
|
+
* List of all valid tool names that were found in
|
|
11
|
+
* this metadata record.
|
|
12
|
+
*/
|
|
6
13
|
get value(): string[] | undefined;
|
|
7
14
|
get recordName(): string;
|
|
15
|
+
/**
|
|
16
|
+
* Value token reference of the record.
|
|
17
|
+
*/
|
|
8
18
|
protected valueToken: FrontMatterArray | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* List of all valid tool names that were found in
|
|
21
|
+
* this metadata record.
|
|
22
|
+
*/
|
|
9
23
|
private validToolNames;
|
|
10
24
|
constructor(recordToken: FrontMatterRecord, languageId: string);
|
|
25
|
+
/**
|
|
26
|
+
* Validate the metadata record and collect all issues
|
|
27
|
+
* related to its content.
|
|
28
|
+
*/
|
|
11
29
|
validate(): readonly PromptMetadataDiagnostic[];
|
|
12
30
|
getToolRange(toolName: string): Range | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* Validate an individual provided value token that is used
|
|
33
|
+
* for a tool name.
|
|
34
|
+
*/
|
|
13
35
|
private validateToolName;
|
|
36
|
+
/**
|
|
37
|
+
* Check if a provided front matter token is a metadata record
|
|
38
|
+
* with name equal to `tools`.
|
|
39
|
+
*/
|
|
14
40
|
static isToolsRecord(token: FrontMatterToken): boolean;
|
|
15
41
|
}
|
|
@@ -3,13 +3,28 @@ import { PromptsType } from "@codingame/monaco-vscode-e28ac690-06d5-5ee9-92d1-02
|
|
|
3
3
|
import { FrontMatterRecord } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/codecs/base/frontMatterCodec/tokens/index";
|
|
4
4
|
import { PromptModelMetadata } from "./metadata/model.js";
|
|
5
5
|
import { PromptToolsMetadata } from "./metadata/tools.js";
|
|
6
|
+
/**
|
|
7
|
+
* Metadata utility object for mode files.
|
|
8
|
+
*/
|
|
6
9
|
interface IModeMetadata extends IHeaderMetadata {
|
|
10
|
+
/**
|
|
11
|
+
* Tools metadata in the mode header.
|
|
12
|
+
*/
|
|
7
13
|
tools: PromptToolsMetadata;
|
|
14
|
+
/**
|
|
15
|
+
* Chat model metadata in the mode header.
|
|
16
|
+
*/
|
|
8
17
|
model: PromptModelMetadata;
|
|
9
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Metadata for mode files.
|
|
21
|
+
*/
|
|
10
22
|
export type TModeMetadata = Partial<TDehydrated<IModeMetadata>> & {
|
|
11
23
|
promptType: PromptsType.mode;
|
|
12
24
|
};
|
|
25
|
+
/**
|
|
26
|
+
* Header object for mode files.
|
|
27
|
+
*/
|
|
13
28
|
export declare class ModeHeader extends HeaderBase<IModeMetadata> {
|
|
14
29
|
protected handleToken(token: FrontMatterRecord): boolean;
|
|
15
30
|
}
|
|
@@ -4,16 +4,42 @@ import { FrontMatterRecord } from "@codingame/monaco-vscode-api/vscode/vs/workbe
|
|
|
4
4
|
import { PromptModelMetadata } from "./metadata/model.js";
|
|
5
5
|
import { PromptToolsMetadata } from "./metadata/tools.js";
|
|
6
6
|
import { PromptModeMetadata } from "./metadata/mode.js";
|
|
7
|
+
/**
|
|
8
|
+
* Metadata utility object for prompt files.
|
|
9
|
+
*/
|
|
7
10
|
export interface IPromptMetadata extends IHeaderMetadata {
|
|
11
|
+
/**
|
|
12
|
+
* Tools metadata in the prompt header.
|
|
13
|
+
*/
|
|
8
14
|
tools: PromptToolsMetadata;
|
|
15
|
+
/**
|
|
16
|
+
* Chat mode metadata in the prompt header.
|
|
17
|
+
*/
|
|
9
18
|
mode: PromptModeMetadata;
|
|
19
|
+
/**
|
|
20
|
+
* Chat model metadata in the prompt header.
|
|
21
|
+
*/
|
|
10
22
|
model: PromptModelMetadata;
|
|
11
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Metadata for prompt files.
|
|
26
|
+
*/
|
|
12
27
|
export type TPromptMetadata = Partial<TDehydrated<IPromptMetadata>> & {
|
|
13
28
|
promptType: PromptsType.prompt;
|
|
14
29
|
};
|
|
30
|
+
/**
|
|
31
|
+
* Header object for prompt files.
|
|
32
|
+
*/
|
|
15
33
|
export declare class PromptHeader extends HeaderBase<IPromptMetadata> {
|
|
16
34
|
protected handleToken(token: FrontMatterRecord): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Check if value of `tools` and `mode` metadata
|
|
37
|
+
* are compatible with each other.
|
|
38
|
+
*/
|
|
17
39
|
private get toolsAndModeCompatible();
|
|
40
|
+
/**
|
|
41
|
+
* Validate that the `tools` and `mode` metadata are compatible
|
|
42
|
+
* with each other. If not, add a warning diagnostic.
|
|
43
|
+
*/
|
|
18
44
|
private validateToolsAndModeCompatibility;
|
|
19
45
|
}
|
|
@@ -5,8 +5,18 @@ import { BasePromptParser, IPromptParserOptions } from "./basePromptParser.js";
|
|
|
5
5
|
import { IModelService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/model.service";
|
|
6
6
|
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
7
7
|
import { IWorkbenchEnvironmentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/environment/common/environmentService.service";
|
|
8
|
+
/**
|
|
9
|
+
* General prompt parser class that automatically infers a prompt
|
|
10
|
+
* contents provider type by the type of provided prompt URI.
|
|
11
|
+
*/
|
|
8
12
|
export declare class PromptParser extends BasePromptParser<IPromptContentsProvider> {
|
|
13
|
+
/**
|
|
14
|
+
* Underlying prompt contents provider instance.
|
|
15
|
+
*/
|
|
9
16
|
private readonly contentsProvider;
|
|
10
17
|
constructor(uri: URI, options: IPromptParserOptions, logService: ILogService, modelService: IModelService, instaService: IInstantiationService, envService: IWorkbenchEnvironmentService);
|
|
18
|
+
/**
|
|
19
|
+
* Returns a string representation of this object.
|
|
20
|
+
*/
|
|
11
21
|
toString(): string;
|
|
12
22
|
}
|
package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/parsers/textModelPromptParser.d.ts
CHANGED
|
@@ -4,7 +4,14 @@ import { BasePromptParser, IPromptParserOptions } from "./basePromptParser.js";
|
|
|
4
4
|
import { TextModelContentsProvider } from "../contentProviders/textModelContentsProvider.js";
|
|
5
5
|
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
|
|
6
6
|
import { IWorkbenchEnvironmentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/environment/common/environmentService.service";
|
|
7
|
+
/**
|
|
8
|
+
* Class capable of parsing prompt syntax out of a provided text model,
|
|
9
|
+
* including all the nested child file references it may have.
|
|
10
|
+
*/
|
|
7
11
|
export declare class TextModelPromptParser extends BasePromptParser<TextModelContentsProvider> {
|
|
8
12
|
constructor(model: ITextModel, options: IPromptParserOptions, instantiationService: IInstantiationService, envService: IWorkbenchEnvironmentService, logService: ILogService);
|
|
13
|
+
/**
|
|
14
|
+
* Returns a string representation of this object.
|
|
15
|
+
*/
|
|
9
16
|
toString(): string;
|
|
10
17
|
}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { ITopError } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/parsers/types";
|
|
2
|
+
/**
|
|
3
|
+
* The top-most error of the reference tree.
|
|
4
|
+
*/
|
|
2
5
|
export declare class TopError implements ITopError {
|
|
3
6
|
readonly originalError: ITopError["originalError"];
|
|
4
7
|
readonly errorSubject: ITopError["errorSubject"];
|
package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/promptFileContributions.d.ts
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
1
|
import { IWorkbenchContribution } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/contributions";
|
|
2
|
+
/**
|
|
3
|
+
* Function that registers all prompt-file related contributions.
|
|
4
|
+
*/
|
|
2
5
|
export declare function registerPromptFileContributions(): void;
|
|
6
|
+
/**
|
|
7
|
+
* Type for a generic workbench contribution.
|
|
8
|
+
*/
|
|
3
9
|
export type TContribution = new (...args: any[]) => IWorkbenchContribution;
|
package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/service/promptsServiceImpl.d.ts
CHANGED
|
@@ -14,6 +14,9 @@ import type { IChatPromptSlashCommand, ICustomChatMode, IPromptParserResult, IPr
|
|
|
14
14
|
import { IPromptsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service";
|
|
15
15
|
import { ILanguageService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/language.service";
|
|
16
16
|
import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
|
|
17
|
+
/**
|
|
18
|
+
* Provides prompt services.
|
|
19
|
+
*/
|
|
17
20
|
export declare class PromptsService extends Disposable implements IPromptsService {
|
|
18
21
|
readonly logger: ILogService;
|
|
19
22
|
private readonly labelService;
|
|
@@ -23,13 +26,34 @@ export declare class PromptsService extends Disposable implements IPromptsServic
|
|
|
23
26
|
private readonly languageService;
|
|
24
27
|
private readonly configurationService;
|
|
25
28
|
readonly _serviceBrand: undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Cache of text model content prompt parsers.
|
|
31
|
+
*/
|
|
26
32
|
private readonly cache;
|
|
33
|
+
/**
|
|
34
|
+
* Prompt files locator utility.
|
|
35
|
+
*/
|
|
27
36
|
private readonly fileLocator;
|
|
37
|
+
/**
|
|
38
|
+
* Cached custom modes. Caching only happens if the `onDidChangeCustomChatModes` event is used.
|
|
39
|
+
*/
|
|
28
40
|
private cachedCustomChatModes;
|
|
41
|
+
/**
|
|
42
|
+
* Lazily created event that is fired when the custom chat modes change.
|
|
43
|
+
*/
|
|
29
44
|
private onDidChangeCustomChatModesEvent;
|
|
30
45
|
constructor(logger: ILogService, labelService: ILabelService, modelService: IModelService, instantiationService: IInstantiationService, userDataService: IUserDataProfileService, languageService: ILanguageService, configurationService: IConfigurationService);
|
|
46
|
+
/**
|
|
47
|
+
* Emitter for the custom chat modes change event.
|
|
48
|
+
*/
|
|
31
49
|
get onDidChangeCustomChatModes(): Event<void>;
|
|
32
50
|
getPromptFileType(uri: URI): PromptsType | undefined;
|
|
51
|
+
/**
|
|
52
|
+
* @throws {Error} if:
|
|
53
|
+
* - the provided model is disposed
|
|
54
|
+
* - newly created parser is disposed immediately on initialization.
|
|
55
|
+
* See factory function in the {@link constructor} for more info.
|
|
56
|
+
*/
|
|
33
57
|
getSyntaxParserFor(model: ITextModel): TextModelPromptParser & {
|
|
34
58
|
isDisposed: false;
|
|
35
59
|
};
|
|
@@ -1,13 +1,96 @@
|
|
|
1
1
|
import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
2
2
|
import { ObservableDisposable } from "./observableDisposable.js";
|
|
3
|
+
/**
|
|
4
|
+
* Generic cache for object instances. Guarantees to return only non-disposed
|
|
5
|
+
* objects from the {@linkcode get} method. If a requested object is not yet
|
|
6
|
+
* in the cache or is disposed already, the {@linkcode factory} callback is
|
|
7
|
+
* called to create a new object.
|
|
8
|
+
*
|
|
9
|
+
* @throws if {@linkcode factory} callback returns a disposed object.
|
|
10
|
+
*
|
|
11
|
+
* ## Examples
|
|
12
|
+
*
|
|
13
|
+
* ```typescript
|
|
14
|
+
* // a class that will be used as a cache key; the key can be of any
|
|
15
|
+
* // non-nullable type, including primitives like `string` or `number`,
|
|
16
|
+
* // but in this case we use an object pointer as a key
|
|
17
|
+
* class KeyObject {}
|
|
18
|
+
*
|
|
19
|
+
* // a class for testing purposes
|
|
20
|
+
* class TestObject extends ObservableDisposable {
|
|
21
|
+
* constructor(
|
|
22
|
+
* public readonly id: KeyObject,
|
|
23
|
+
* ) {}
|
|
24
|
+
* };
|
|
25
|
+
*
|
|
26
|
+
* // create an object cache instance providing it a factory function that
|
|
27
|
+
* // is responsible for creating new objects based on the provided key if
|
|
28
|
+
* // the cache does not contain the requested object yet or an existing
|
|
29
|
+
* // object is already disposed
|
|
30
|
+
* const cache = new ObjectCache<TestObject, KeyObject>((key) => {
|
|
31
|
+
* // create a new test object based on the provided key
|
|
32
|
+
* return new TestObject(key);
|
|
33
|
+
* });
|
|
34
|
+
*
|
|
35
|
+
* // create two keys
|
|
36
|
+
* const key1 = new KeyObject();
|
|
37
|
+
* const key2 = new KeyObject();
|
|
38
|
+
*
|
|
39
|
+
* // get an object from the cache by its key
|
|
40
|
+
* const object1 = cache.get(key1); // returns a new test object
|
|
41
|
+
*
|
|
42
|
+
* // validate that the new object has the correct key
|
|
43
|
+
* assert(
|
|
44
|
+
* object1.id === key1,
|
|
45
|
+
* 'Object 1 must have correct ID.',
|
|
46
|
+
* );
|
|
47
|
+
*
|
|
48
|
+
* // returns the same cached test object
|
|
49
|
+
* const object2 = cache.get(key1);
|
|
50
|
+
*
|
|
51
|
+
* // validate that the same exact object is returned from the cache
|
|
52
|
+
* assert(
|
|
53
|
+
* object1 === object2,
|
|
54
|
+
* 'Object 2 the same cached object as object 1.',
|
|
55
|
+
* );
|
|
56
|
+
*
|
|
57
|
+
* // returns a new test object
|
|
58
|
+
* const object3 = cache.get(key2);
|
|
59
|
+
*
|
|
60
|
+
* // validate that the new object has the correct key
|
|
61
|
+
* assert(
|
|
62
|
+
* object3.id === key2,
|
|
63
|
+
* 'Object 3 must have correct ID.',
|
|
64
|
+
* );
|
|
65
|
+
*
|
|
66
|
+
* assert(
|
|
67
|
+
* object3 !== object1,
|
|
68
|
+
* 'Object 3 must be a new object.',
|
|
69
|
+
* );
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
3
72
|
export declare class ObjectCache<TValue extends ObservableDisposable, TKey extends NonNullable<unknown> = string> extends Disposable {
|
|
4
73
|
private readonly factory;
|
|
5
74
|
private readonly cache;
|
|
6
75
|
constructor(factory: (key: TKey) => TValue & {
|
|
7
76
|
isDisposed: false;
|
|
8
77
|
});
|
|
78
|
+
/**
|
|
79
|
+
* Get an existing object from the cache. If a requested object is not yet
|
|
80
|
+
* in the cache or is disposed already, the {@linkcode factory} callback is
|
|
81
|
+
* called to create a new object.
|
|
82
|
+
*
|
|
83
|
+
* @throws if {@linkcode factory} callback returns a disposed object.
|
|
84
|
+
* @param key - ID of the object in the cache
|
|
85
|
+
*/
|
|
9
86
|
get(key: TKey): TValue & {
|
|
10
87
|
isDisposed: false;
|
|
11
88
|
};
|
|
89
|
+
/**
|
|
90
|
+
* Remove an object from the cache by its key.
|
|
91
|
+
*
|
|
92
|
+
* @param key ID of the object to remove.
|
|
93
|
+
* @param dispose Whether the removed object must be disposed.
|
|
94
|
+
*/
|
|
12
95
|
remove(key: TKey, dispose: boolean): this;
|
|
13
96
|
}
|
package/vscode/src/vs/workbench/contrib/chat/common/promptSyntax/utils/observableDisposable.d.ts
CHANGED
|
@@ -1,16 +1,47 @@
|
|
|
1
1
|
import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated do not use this, https://github.com/microsoft/vscode/issues/248366
|
|
4
|
+
*/
|
|
2
5
|
export declare abstract class ObservableDisposable extends Disposable {
|
|
6
|
+
/**
|
|
7
|
+
* Underlying disposables store this object relies on.
|
|
8
|
+
*/
|
|
3
9
|
private readonly store;
|
|
10
|
+
/**
|
|
11
|
+
* Check if the current object is already has been disposed.
|
|
12
|
+
*/
|
|
4
13
|
get isDisposed(): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* The event is fired when this object is disposed.
|
|
16
|
+
* Note! Executes the callback immediately if already disposed.
|
|
17
|
+
*
|
|
18
|
+
* @param callback The callback function to be called on updates.
|
|
19
|
+
*/
|
|
5
20
|
onDispose(callback: () => void): IDisposable;
|
|
21
|
+
/**
|
|
22
|
+
* Adds disposable object(s) to the list of disposables
|
|
23
|
+
* that will be disposed with this object.
|
|
24
|
+
*/
|
|
6
25
|
addDisposables(...disposables: IDisposable[]): this;
|
|
26
|
+
/**
|
|
27
|
+
* Assert that the current object was not yet disposed.
|
|
28
|
+
*
|
|
29
|
+
* @throws If the current object was already disposed.
|
|
30
|
+
* @param error Error message or error object to throw if assertion fails.
|
|
31
|
+
*/
|
|
7
32
|
assertNotDisposed(error: string | Error): asserts this is TNotDisposed<this>;
|
|
8
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* @deprecated do not use this, https://github.com/microsoft/vscode/issues/248366
|
|
36
|
+
*/
|
|
9
37
|
type TNotDisposed<TObject extends {
|
|
10
38
|
isDisposed: boolean;
|
|
11
39
|
}> = TObject & {
|
|
12
40
|
isDisposed: false;
|
|
13
41
|
};
|
|
42
|
+
/**
|
|
43
|
+
* @deprecated do not use this, https://github.com/microsoft/vscode/issues/248366
|
|
44
|
+
*/
|
|
14
45
|
export declare function assertNotDisposed<TObject extends {
|
|
15
46
|
isDisposed: boolean;
|
|
16
47
|
}>(object: TObject, error: string | Error): asserts object is TNotDisposed<TObject>;
|