node-llama-cpp 3.9.0 → 3.11.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/dist/bindings/AddonTypes.d.ts +4 -2
- package/dist/bindings/Llama.d.ts +2 -2
- package/dist/bindings/Llama.js +12 -3
- package/dist/bindings/Llama.js.map +1 -1
- package/dist/bindings/getLlama.d.ts +40 -2
- package/dist/bindings/getLlama.js +16 -7
- package/dist/bindings/getLlama.js.map +1 -1
- package/dist/bindings/types.d.ts +1 -0
- package/dist/bindings/types.js.map +1 -1
- package/dist/bindings/utils/getBestComputeLayersAvailable.d.ts +1 -1
- package/dist/bindings/utils/getGpuTypesToUseForOption.d.ts +1 -1
- package/dist/bindings/utils/getLlamaWithoutBackend.js +1 -1
- package/dist/bindings/utils/getLlamaWithoutBackend.js.map +1 -1
- package/dist/chatWrappers/QwenChatWrapper.js +5 -3
- package/dist/chatWrappers/QwenChatWrapper.js.map +1 -1
- package/dist/chatWrappers/generic/JinjaTemplateChatWrapper.js.map +1 -1
- package/dist/chatWrappers/generic/utils/extractFunctionCallSettingsFromJinjaTemplate.js +80 -5
- package/dist/chatWrappers/generic/utils/extractFunctionCallSettingsFromJinjaTemplate.js.map +1 -1
- package/dist/chatWrappers/generic/utils/extractSegmentSettingsFromTokenizerAndChatTemplate.js +25 -0
- package/dist/chatWrappers/generic/utils/extractSegmentSettingsFromTokenizerAndChatTemplate.js.map +1 -1
- package/dist/cli/commands/ChatCommand.js +1 -2
- package/dist/cli/commands/ChatCommand.js.map +1 -1
- package/dist/cli/commands/inspect/commands/InspectGgufCommand.js +23 -3
- package/dist/cli/commands/inspect/commands/InspectGgufCommand.js.map +1 -1
- package/dist/cli/commands/inspect/commands/InspectGpuCommand.js +23 -2
- package/dist/cli/commands/inspect/commands/InspectGpuCommand.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/evaluator/LlamaChat/LlamaChat.js +28 -15
- package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -1
- package/dist/evaluator/LlamaChat/utils/FunctionCallParamsGrammar.js +1 -1
- package/dist/evaluator/LlamaChat/utils/FunctionCallParamsGrammar.js.map +1 -1
- package/dist/evaluator/LlamaChatSession/LlamaChatSession.js +2 -2
- package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -1
- package/dist/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.d.ts +2 -0
- package/dist/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.js +7 -2
- package/dist/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.js.map +1 -1
- package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.d.ts +5 -5
- package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.js.map +1 -1
- package/dist/evaluator/LlamaCompletion.js +2 -2
- package/dist/evaluator/LlamaCompletion.js.map +1 -1
- package/dist/evaluator/LlamaContext/LlamaContext.js +17 -17
- package/dist/evaluator/LlamaContext/LlamaContext.js.map +1 -1
- package/dist/evaluator/LlamaContext/tokenPredictors/DraftSequenceTokenPredictor.js +5 -5
- package/dist/evaluator/LlamaContext/tokenPredictors/DraftSequenceTokenPredictor.js.map +1 -1
- package/dist/evaluator/LlamaEmbeddingContext.js +1 -1
- package/dist/evaluator/LlamaEmbeddingContext.js.map +1 -1
- package/dist/evaluator/LlamaJsonSchemaGrammar.d.ts +3 -3
- package/dist/evaluator/LlamaJsonSchemaGrammar.js.map +1 -1
- package/dist/evaluator/LlamaModel/LlamaModel.js +3 -3
- package/dist/evaluator/LlamaModel/LlamaModel.js.map +1 -1
- package/dist/evaluator/LlamaRankingContext.js +1 -1
- package/dist/evaluator/LlamaRankingContext.js.map +1 -1
- package/dist/gguf/fileReaders/GgufFsFileReader.js +1 -1
- package/dist/gguf/fileReaders/GgufFsFileReader.js.map +1 -1
- package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.js +1 -1
- package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.js.map +1 -1
- package/dist/gguf/types/GgufMetadataTypes.d.ts +7 -1
- package/dist/gguf/types/GgufMetadataTypes.js +6 -0
- package/dist/gguf/types/GgufMetadataTypes.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/utils/LruCache.d.ts +1 -1
- package/dist/utils/ReplHistory.js +1 -1
- package/dist/utils/ReplHistory.js.map +1 -1
- package/dist/utils/gbnfJson/GbnfGrammarGenerator.d.ts +9 -1
- package/dist/utils/gbnfJson/GbnfGrammarGenerator.js +18 -0
- package/dist/utils/gbnfJson/GbnfGrammarGenerator.js.map +1 -1
- package/dist/utils/gbnfJson/GbnfTerminal.d.ts +2 -1
- package/dist/utils/gbnfJson/GbnfTerminal.js +17 -2
- package/dist/utils/gbnfJson/GbnfTerminal.js.map +1 -1
- package/dist/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.js +1 -1
- package/dist/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfGrammar.d.ts +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfGrammar.js +2 -2
- package/dist/utils/gbnfJson/terminals/GbnfGrammar.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfNumberValue.d.ts +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfNumberValue.js +2 -2
- package/dist/utils/gbnfJson/terminals/GbnfNumberValue.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfOr.d.ts +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfOr.js +2 -2
- package/dist/utils/gbnfJson/terminals/GbnfOr.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfRef.d.ts +15 -0
- package/dist/utils/gbnfJson/terminals/GbnfRef.js +34 -0
- package/dist/utils/gbnfJson/terminals/GbnfRef.js.map +1 -0
- package/dist/utils/gbnfJson/types.d.ts +51 -29
- package/dist/utils/gbnfJson/types.js +3 -0
- package/dist/utils/gbnfJson/types.js.map +1 -1
- package/dist/utils/gbnfJson/utils/defsScope.d.ts +7 -0
- package/dist/utils/gbnfJson/utils/defsScope.js +17 -0
- package/dist/utils/gbnfJson/utils/defsScope.js.map +1 -0
- package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.d.ts +1 -1
- package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.js +50 -8
- package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.js.map +1 -1
- package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js +43 -14
- package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js.map +1 -1
- package/dist/utils/getBuildDefaults.d.ts +1 -1
- package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js +51 -8
- package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js.map +1 -1
- package/dist/utils/isLockfileActive.js +2 -2
- package/dist/utils/isLockfileActive.js.map +1 -1
- package/dist/utils/utilTypes.d.ts +10 -0
- package/dist/utils/waitForLockfileRelease.js +3 -3
- package/dist/utils/waitForLockfileRelease.js.map +1 -1
- package/dist/utils/withLockfile.js +1 -1
- package/dist/utils/withLockfile.js.map +1 -1
- package/llama/addon/AddonContext.cpp +5 -5
- package/llama/addon/addon.cpp +31 -0
- package/llama/binariesGithubRelease.json +1 -1
- package/llama/gitRelease.bundle +0 -0
- package/llama/llama.cpp.info.json +1 -1
- package/package.json +16 -16
- package/templates/packed/electron-typescript-react.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/index.ts","../src/ChatWrapper.ts","../src/apiDocsIndex.ts","../src/commands.ts","../src/config.ts","../src/consts.ts","../src/state.ts","../src/types.ts","../src/bindings/AddonTypes.ts","../src/bindings/Llama.ts","../src/bindings/consts.ts","../src/bindings/getLlama.ts","../src/bindings/types.ts","../src/bindings/utils/MemoryOrchestrator.ts","../src/bindings/utils/NoBinaryFoundError.ts","../src/bindings/utils/asyncEvery.ts","../src/bindings/utils/asyncSome.ts","../src/bindings/utils/binariesGithubRelease.ts","../src/bindings/utils/clearAllLocalBuilds.ts","../src/bindings/utils/cloneLlamaCppRepo.ts","../src/bindings/utils/compileLLamaCpp.ts","../src/bindings/utils/detectAvailableComputeLayers.ts","../src/bindings/utils/detectBuildTools.ts","../src/bindings/utils/detectGlibc.ts","../src/bindings/utils/getBestComputeLayersAvailable.ts","../src/bindings/utils/getBuildFolderNameForBuildOptions.ts","../src/bindings/utils/getCanUsePrebuiltBinaries.ts","../src/bindings/utils/getExampleUsageCodeOfGetLlama.ts","../src/bindings/utils/getGpuTypesToUseForOption.ts","../src/bindings/utils/getLinuxDistroInfo.ts","../src/bindings/utils/getLlamaGpuTypes.ts","../src/bindings/utils/getLlamaWithoutBackend.ts","../src/bindings/utils/getPlatform.ts","../src/bindings/utils/getPlatformInfo.ts","../src/bindings/utils/hasBuildingFromSourceDependenciesInstalled.ts","../src/bindings/utils/hasFileInPath.ts","../src/bindings/utils/lastBuildInfo.ts","../src/bindings/utils/logBinaryUsageExampleToConsole.ts","../src/bindings/utils/logDistroInstallInstruction.ts","../src/bindings/utils/resolveActualBindingBinaryPath.ts","../src/bindings/utils/resolveCustomCmakeOptions.ts","../src/bindings/utils/testBindingBinary.ts","../src/bindings/utils/testCmakeBinary.ts","../src/chatWrappers/AlpacaChatWrapper.ts","../src/chatWrappers/ChatMLChatWrapper.ts","../src/chatWrappers/DeepSeekChatWrapper.ts","../src/chatWrappers/EmptyChatWrapper.ts","../src/chatWrappers/FalconChatWrapper.ts","../src/chatWrappers/FunctionaryChatWrapper.ts","../src/chatWrappers/GemmaChatWrapper.ts","../src/chatWrappers/GeneralChatWrapper.ts","../src/chatWrappers/Llama2ChatWrapper.ts","../src/chatWrappers/Llama3ChatWrapper.ts","../src/chatWrappers/Llama3_1ChatWrapper.ts","../src/chatWrappers/Llama3_2LightweightChatWrapper.ts","../src/chatWrappers/MistralChatWrapper.ts","../src/chatWrappers/QwenChatWrapper.ts","../src/chatWrappers/generic/JinjaTemplateChatWrapper.ts","../src/chatWrappers/generic/TemplateChatWrapper.ts","../src/chatWrappers/generic/utils/UniqueIdGenerator.ts","../src/chatWrappers/generic/utils/chatHistoryFunctionCallMessageTemplate.ts","../src/chatWrappers/generic/utils/extractFunctionCallSettingsFromJinjaTemplate.ts","../src/chatWrappers/generic/utils/extractSegmentSettingsFromTokenizerAndChatTemplate.ts","../src/chatWrappers/generic/utils/getFirstValidResult.ts","../src/chatWrappers/generic/utils/squashChatHistoryItems.ts","../src/chatWrappers/generic/utils/templateSegmentOptionsToChatWrapperSettings.ts","../src/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.ts","../src/chatWrappers/utils/chunkChatItems.ts","../src/chatWrappers/utils/getModelLinageNames.ts","../src/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.ts","../src/chatWrappers/utils/isLlama3_2LightweightModel.ts","../src/chatWrappers/utils/jsonDumps.ts","../src/chatWrappers/utils/resolveChatWrapper.ts","../src/cli/cli.ts","../src/cli/projectTemplates.ts","../src/cli/recommendedModels.ts","../src/cli/startCreateCli.ts","../src/cli/commands/ChatCommand.ts","../src/cli/commands/CompleteCommand.ts","../src/cli/commands/DebugCommand.ts","../src/cli/commands/InfillCommand.ts","../src/cli/commands/InitCommand.ts","../src/cli/commands/OnPostInstallCommand.ts","../src/cli/commands/PullCommand.ts","../src/cli/commands/inspect/InspectCommand.ts","../src/cli/commands/inspect/commands/InspectEstimateCommand.ts","../src/cli/commands/inspect/commands/InspectGgufCommand.ts","../src/cli/commands/inspect/commands/InspectGpuCommand.ts","../src/cli/commands/inspect/commands/InspectMeasureCommand.ts","../src/cli/commands/source/SourceCommand.ts","../src/cli/commands/source/commands/BuildCommand.ts","../src/cli/commands/source/commands/ClearCommand.ts","../src/cli/commands/source/commands/DownloadCommand.ts","../src/cli/utils/ConsoleInteraction.ts","../src/cli/utils/ConsoleTable.ts","../src/cli/utils/basicChooseFromListConsoleInteraction.ts","../src/cli/utils/consolePromptQuestion.ts","../src/cli/utils/getReadablePath.ts","../src/cli/utils/interactivelyAskForModel.ts","../src/cli/utils/isRunningUnderRosetta.ts","../src/cli/utils/logUsedGpuTypeOption.ts","../src/cli/utils/printCommonInfoLines.ts","../src/cli/utils/printInfoLine.ts","../src/cli/utils/printModelDestination.ts","../src/cli/utils/projectTemplates.ts","../src/cli/utils/renderModelCompatibilityPercentageWithColors.ts","../src/cli/utils/resolveCommandGgufPath.ts","../src/cli/utils/resolveHeaderFlag.ts","../src/cli/utils/resolveModelRecommendationFileOptions.ts","../src/cli/utils/splitAnsiToLines.ts","../src/cli/utils/toBytes.ts","../src/cli/utils/withCliCommandDescriptionDocsUrl.ts","../src/evaluator/LlamaCompletion.ts","../src/evaluator/LlamaEmbedding.ts","../src/evaluator/LlamaEmbeddingContext.ts","../src/evaluator/LlamaGrammar.ts","../src/evaluator/LlamaGrammarEvaluationState.ts","../src/evaluator/LlamaJsonSchemaGrammar.ts","../src/evaluator/LlamaRankingContext.ts","../src/evaluator/TokenBias.ts","../src/evaluator/TokenMeter.ts","../src/evaluator/LlamaChat/LlamaChat.ts","../src/evaluator/LlamaChat/utils/FunctionCallNameGrammar.ts","../src/evaluator/LlamaChat/utils/FunctionCallParamsGrammar.ts","../src/evaluator/LlamaChat/utils/LlamaFunctionCallValidationError.ts","../src/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.ts","../src/evaluator/LlamaChatSession/LlamaChatSession.ts","../src/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.ts","../src/evaluator/LlamaChatSession/utils/defineChatSessionFunction.ts","../src/evaluator/LlamaContext/LlamaContext.ts","../src/evaluator/LlamaContext/LlamaSampler.ts","../src/evaluator/LlamaContext/TokenPredictor.ts","../src/evaluator/LlamaContext/types.ts","../src/evaluator/LlamaContext/tokenPredictors/DraftSequenceTokenPredictor.ts","../src/evaluator/LlamaContext/tokenPredictors/InputLookupTokenPredictor.ts","../src/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizationStrategy.ts","../src/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/firstInFirstOutStrategy.ts","../src/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/maximumParallelismStrategy.ts","../src/evaluator/LlamaModel/LlamaModel.ts","../src/evaluator/LlamaModel/utils/TokenAttributes.ts","../src/evaluator/utils/chunkDocument.ts","../src/gguf/consts.ts","../src/gguf/readGgufFileInfo.ts","../src/gguf/errors/InvalidGgufMagicError.ts","../src/gguf/errors/UnsupportedGgufValueTypeError.ts","../src/gguf/fileReaders/GgufFileReader.ts","../src/gguf/fileReaders/GgufFsFileReader.ts","../src/gguf/fileReaders/GgufNetworkFetchFileReader.ts","../src/gguf/insights/GgufInsights.ts","../src/gguf/insights/GgufInsightsConfigurationResolver.ts","../src/gguf/insights/utils/getRamUsageFromUnifiedVram.ts","../src/gguf/insights/utils/resolveContextContextSizeOption.ts","../src/gguf/insights/utils/resolveModelGpuLayersOption.ts","../src/gguf/insights/utils/scoreLevels.ts","../src/gguf/parser/GgufV2Parser.ts","../src/gguf/parser/GgufV3Parser.ts","../src/gguf/parser/parseGguf.ts","../src/gguf/types/GgufFileInfoTypes.ts","../src/gguf/types/GgufMetadataTypes.ts","../src/gguf/types/GgufTensorInfoTypes.ts","../src/gguf/utils/GgufReadOffset.ts","../src/gguf/utils/convertMetadataKeyValueRecordToNestedObject.ts","../src/gguf/utils/getGgufFileTypeName.ts","../src/gguf/utils/getGgufMetadataArchitectureData.ts","../src/gguf/utils/getGgufMetadataKeyValue.ts","../src/gguf/utils/ggufQuantNames.ts","../src/gguf/utils/normalizeGgufDownloadUrl.ts","../src/gguf/utils/resolveBinarySplitGgufPartUrls.ts","../src/gguf/utils/resolveSplitGgufParts.ts","../src/utils/DisposeGuard.ts","../src/utils/InsufficientMemoryError.ts","../src/utils/LlamaText.ts","../src/utils/LruCache.ts","../src/utils/OpenAIFormat.ts","../src/utils/OverridesObject.ts","../src/utils/ReplHistory.ts","../src/utils/StopGenerationDetector.ts","../src/utils/ThreadsSplitter.ts","../src/utils/TokenStreamRegulator.ts","../src/utils/UnsupportedError.ts","../src/utils/appendUserMessageToChatHistory.ts","../src/utils/clearTempFolder.ts","../src/utils/cmake.ts","../src/utils/compareTokens.ts","../src/utils/createModelDownloader.ts","../src/utils/findBestOption.ts","../src/utils/findCharacterRemovalCountToFitChatHistoryInContext.ts","../src/utils/getBuildDefaults.ts","../src/utils/getChatWrapperSegmentDefinition.ts","../src/utils/getConsoleLogPrefix.ts","../src/utils/getGrammarsFolder.ts","../src/utils/getLlamaClasses.ts","../src/utils/getModuleVersion.ts","../src/utils/getQueuedTokensBeforeStopTrigger.ts","../src/utils/getReadableContextSize.ts","../src/utils/getTypeScriptTypeStringForGbnfJsonSchema.ts","../src/utils/gitReleaseBundles.ts","../src/utils/hashString.ts","../src/utils/includesText.ts","../src/utils/isLockfileActive.ts","../src/utils/isToken.ts","../src/utils/isUrl.ts","../src/utils/mergeUnionTypes.ts","../src/utils/modelDownloadEndpoints.ts","../src/utils/modelFileAccessTokens.ts","../src/utils/optionsMatrix.ts","../src/utils/parseModelFileName.ts","../src/utils/parseModelUri.ts","../src/utils/parseTextTemplate.ts","../src/utils/prettyPrintObject.ts","../src/utils/pushAll.ts","../src/utils/removeNullFields.ts","../src/utils/resolveGithubRelease.ts","../src/utils/resolveLastTokens.ts","../src/utils/resolveModelDestination.ts","../src/utils/resolveModelFile.ts","../src/utils/runtime.ts","../src/utils/safeEventCallback.ts","../src/utils/spawnCommand.ts","../src/utils/tokenizeInput.ts","../src/utils/tokenizerUtils.ts","../src/utils/transformPromisable.ts","../src/utils/truncateTextAndRoundToWords.ts","../src/utils/utilTypes.ts","../src/utils/waitForLockfileRelease.ts","../src/utils/withLockfile.ts","../src/utils/withOra.ts","../src/utils/withProgressLog.ts","../src/utils/withStatusLogs.ts","../src/utils/wrapAbortSignal.ts","../src/utils/gbnfJson/GbnfGrammarGenerator.ts","../src/utils/gbnfJson/GbnfTerminal.ts","../src/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.ts","../src/utils/gbnfJson/types.ts","../src/utils/gbnfJson/terminals/GbnfAnyJson.ts","../src/utils/gbnfJson/terminals/GbnfArray.ts","../src/utils/gbnfJson/terminals/GbnfBoolean.ts","../src/utils/gbnfJson/terminals/GbnfBooleanValue.ts","../src/utils/gbnfJson/terminals/GbnfCommaWhitespace.ts","../src/utils/gbnfJson/terminals/GbnfFormatString.ts","../src/utils/gbnfJson/terminals/GbnfGrammar.ts","../src/utils/gbnfJson/terminals/GbnfInsideStringChar.ts","../src/utils/gbnfJson/terminals/GbnfNull.ts","../src/utils/gbnfJson/terminals/GbnfNumber.ts","../src/utils/gbnfJson/terminals/GbnfNumberValue.ts","../src/utils/gbnfJson/terminals/GbnfObjectMap.ts","../src/utils/gbnfJson/terminals/GbnfOr.ts","../src/utils/gbnfJson/terminals/GbnfRepetition.ts","../src/utils/gbnfJson/terminals/GbnfString.ts","../src/utils/gbnfJson/terminals/GbnfStringValue.ts","../src/utils/gbnfJson/terminals/GbnfVerbatimText.ts","../src/utils/gbnfJson/terminals/GbnfWhitespace.ts","../src/utils/gbnfJson/terminals/gbnfConsts.ts","../src/utils/gbnfJson/utils/GbnfJsonScopeState.ts","../src/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.ts","../src/utils/gbnfJson/utils/getGbnfJsonTerminalForLiteral.ts","../src/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.ts"],"version":"5.8.3"}
|
|
1
|
+
{"root":["../src/index.ts","../src/ChatWrapper.ts","../src/apiDocsIndex.ts","../src/commands.ts","../src/config.ts","../src/consts.ts","../src/state.ts","../src/types.ts","../src/bindings/AddonTypes.ts","../src/bindings/Llama.ts","../src/bindings/consts.ts","../src/bindings/getLlama.ts","../src/bindings/types.ts","../src/bindings/utils/MemoryOrchestrator.ts","../src/bindings/utils/NoBinaryFoundError.ts","../src/bindings/utils/asyncEvery.ts","../src/bindings/utils/asyncSome.ts","../src/bindings/utils/binariesGithubRelease.ts","../src/bindings/utils/clearAllLocalBuilds.ts","../src/bindings/utils/cloneLlamaCppRepo.ts","../src/bindings/utils/compileLLamaCpp.ts","../src/bindings/utils/detectAvailableComputeLayers.ts","../src/bindings/utils/detectBuildTools.ts","../src/bindings/utils/detectGlibc.ts","../src/bindings/utils/getBestComputeLayersAvailable.ts","../src/bindings/utils/getBuildFolderNameForBuildOptions.ts","../src/bindings/utils/getCanUsePrebuiltBinaries.ts","../src/bindings/utils/getExampleUsageCodeOfGetLlama.ts","../src/bindings/utils/getGpuTypesToUseForOption.ts","../src/bindings/utils/getLinuxDistroInfo.ts","../src/bindings/utils/getLlamaGpuTypes.ts","../src/bindings/utils/getLlamaWithoutBackend.ts","../src/bindings/utils/getPlatform.ts","../src/bindings/utils/getPlatformInfo.ts","../src/bindings/utils/hasBuildingFromSourceDependenciesInstalled.ts","../src/bindings/utils/hasFileInPath.ts","../src/bindings/utils/lastBuildInfo.ts","../src/bindings/utils/logBinaryUsageExampleToConsole.ts","../src/bindings/utils/logDistroInstallInstruction.ts","../src/bindings/utils/resolveActualBindingBinaryPath.ts","../src/bindings/utils/resolveCustomCmakeOptions.ts","../src/bindings/utils/testBindingBinary.ts","../src/bindings/utils/testCmakeBinary.ts","../src/chatWrappers/AlpacaChatWrapper.ts","../src/chatWrappers/ChatMLChatWrapper.ts","../src/chatWrappers/DeepSeekChatWrapper.ts","../src/chatWrappers/EmptyChatWrapper.ts","../src/chatWrappers/FalconChatWrapper.ts","../src/chatWrappers/FunctionaryChatWrapper.ts","../src/chatWrappers/GemmaChatWrapper.ts","../src/chatWrappers/GeneralChatWrapper.ts","../src/chatWrappers/Llama2ChatWrapper.ts","../src/chatWrappers/Llama3ChatWrapper.ts","../src/chatWrappers/Llama3_1ChatWrapper.ts","../src/chatWrappers/Llama3_2LightweightChatWrapper.ts","../src/chatWrappers/MistralChatWrapper.ts","../src/chatWrappers/QwenChatWrapper.ts","../src/chatWrappers/generic/JinjaTemplateChatWrapper.ts","../src/chatWrappers/generic/TemplateChatWrapper.ts","../src/chatWrappers/generic/utils/UniqueIdGenerator.ts","../src/chatWrappers/generic/utils/chatHistoryFunctionCallMessageTemplate.ts","../src/chatWrappers/generic/utils/extractFunctionCallSettingsFromJinjaTemplate.ts","../src/chatWrappers/generic/utils/extractSegmentSettingsFromTokenizerAndChatTemplate.ts","../src/chatWrappers/generic/utils/getFirstValidResult.ts","../src/chatWrappers/generic/utils/squashChatHistoryItems.ts","../src/chatWrappers/generic/utils/templateSegmentOptionsToChatWrapperSettings.ts","../src/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.ts","../src/chatWrappers/utils/chunkChatItems.ts","../src/chatWrappers/utils/getModelLinageNames.ts","../src/chatWrappers/utils/isJinjaTemplateEquivalentToSpecializedChatWrapper.ts","../src/chatWrappers/utils/isLlama3_2LightweightModel.ts","../src/chatWrappers/utils/jsonDumps.ts","../src/chatWrappers/utils/resolveChatWrapper.ts","../src/cli/cli.ts","../src/cli/projectTemplates.ts","../src/cli/recommendedModels.ts","../src/cli/startCreateCli.ts","../src/cli/commands/ChatCommand.ts","../src/cli/commands/CompleteCommand.ts","../src/cli/commands/DebugCommand.ts","../src/cli/commands/InfillCommand.ts","../src/cli/commands/InitCommand.ts","../src/cli/commands/OnPostInstallCommand.ts","../src/cli/commands/PullCommand.ts","../src/cli/commands/inspect/InspectCommand.ts","../src/cli/commands/inspect/commands/InspectEstimateCommand.ts","../src/cli/commands/inspect/commands/InspectGgufCommand.ts","../src/cli/commands/inspect/commands/InspectGpuCommand.ts","../src/cli/commands/inspect/commands/InspectMeasureCommand.ts","../src/cli/commands/source/SourceCommand.ts","../src/cli/commands/source/commands/BuildCommand.ts","../src/cli/commands/source/commands/ClearCommand.ts","../src/cli/commands/source/commands/DownloadCommand.ts","../src/cli/utils/ConsoleInteraction.ts","../src/cli/utils/ConsoleTable.ts","../src/cli/utils/basicChooseFromListConsoleInteraction.ts","../src/cli/utils/consolePromptQuestion.ts","../src/cli/utils/getReadablePath.ts","../src/cli/utils/interactivelyAskForModel.ts","../src/cli/utils/isRunningUnderRosetta.ts","../src/cli/utils/logUsedGpuTypeOption.ts","../src/cli/utils/printCommonInfoLines.ts","../src/cli/utils/printInfoLine.ts","../src/cli/utils/printModelDestination.ts","../src/cli/utils/projectTemplates.ts","../src/cli/utils/renderModelCompatibilityPercentageWithColors.ts","../src/cli/utils/resolveCommandGgufPath.ts","../src/cli/utils/resolveHeaderFlag.ts","../src/cli/utils/resolveModelRecommendationFileOptions.ts","../src/cli/utils/splitAnsiToLines.ts","../src/cli/utils/toBytes.ts","../src/cli/utils/withCliCommandDescriptionDocsUrl.ts","../src/evaluator/LlamaCompletion.ts","../src/evaluator/LlamaEmbedding.ts","../src/evaluator/LlamaEmbeddingContext.ts","../src/evaluator/LlamaGrammar.ts","../src/evaluator/LlamaGrammarEvaluationState.ts","../src/evaluator/LlamaJsonSchemaGrammar.ts","../src/evaluator/LlamaRankingContext.ts","../src/evaluator/TokenBias.ts","../src/evaluator/TokenMeter.ts","../src/evaluator/LlamaChat/LlamaChat.ts","../src/evaluator/LlamaChat/utils/FunctionCallNameGrammar.ts","../src/evaluator/LlamaChat/utils/FunctionCallParamsGrammar.ts","../src/evaluator/LlamaChat/utils/LlamaFunctionCallValidationError.ts","../src/evaluator/LlamaChat/utils/contextShiftStrategies/eraseFirstResponseAndKeepFirstSystemChatContextShiftStrategy.ts","../src/evaluator/LlamaChatSession/LlamaChatSession.ts","../src/evaluator/LlamaChatSession/utils/LlamaChatSessionPromptCompletionEngine.ts","../src/evaluator/LlamaChatSession/utils/defineChatSessionFunction.ts","../src/evaluator/LlamaContext/LlamaContext.ts","../src/evaluator/LlamaContext/LlamaSampler.ts","../src/evaluator/LlamaContext/TokenPredictor.ts","../src/evaluator/LlamaContext/types.ts","../src/evaluator/LlamaContext/tokenPredictors/DraftSequenceTokenPredictor.ts","../src/evaluator/LlamaContext/tokenPredictors/InputLookupTokenPredictor.ts","../src/evaluator/LlamaContext/utils/resolveBatchItemsPrioritizationStrategy.ts","../src/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/firstInFirstOutStrategy.ts","../src/evaluator/LlamaContext/utils/batchItemsPrioritizationStrategies/maximumParallelismStrategy.ts","../src/evaluator/LlamaModel/LlamaModel.ts","../src/evaluator/LlamaModel/utils/TokenAttributes.ts","../src/evaluator/utils/chunkDocument.ts","../src/gguf/consts.ts","../src/gguf/readGgufFileInfo.ts","../src/gguf/errors/InvalidGgufMagicError.ts","../src/gguf/errors/UnsupportedGgufValueTypeError.ts","../src/gguf/fileReaders/GgufFileReader.ts","../src/gguf/fileReaders/GgufFsFileReader.ts","../src/gguf/fileReaders/GgufNetworkFetchFileReader.ts","../src/gguf/insights/GgufInsights.ts","../src/gguf/insights/GgufInsightsConfigurationResolver.ts","../src/gguf/insights/utils/getRamUsageFromUnifiedVram.ts","../src/gguf/insights/utils/resolveContextContextSizeOption.ts","../src/gguf/insights/utils/resolveModelGpuLayersOption.ts","../src/gguf/insights/utils/scoreLevels.ts","../src/gguf/parser/GgufV2Parser.ts","../src/gguf/parser/GgufV3Parser.ts","../src/gguf/parser/parseGguf.ts","../src/gguf/types/GgufFileInfoTypes.ts","../src/gguf/types/GgufMetadataTypes.ts","../src/gguf/types/GgufTensorInfoTypes.ts","../src/gguf/utils/GgufReadOffset.ts","../src/gguf/utils/convertMetadataKeyValueRecordToNestedObject.ts","../src/gguf/utils/getGgufFileTypeName.ts","../src/gguf/utils/getGgufMetadataArchitectureData.ts","../src/gguf/utils/getGgufMetadataKeyValue.ts","../src/gguf/utils/ggufQuantNames.ts","../src/gguf/utils/normalizeGgufDownloadUrl.ts","../src/gguf/utils/resolveBinarySplitGgufPartUrls.ts","../src/gguf/utils/resolveSplitGgufParts.ts","../src/utils/DisposeGuard.ts","../src/utils/InsufficientMemoryError.ts","../src/utils/LlamaText.ts","../src/utils/LruCache.ts","../src/utils/OpenAIFormat.ts","../src/utils/OverridesObject.ts","../src/utils/ReplHistory.ts","../src/utils/StopGenerationDetector.ts","../src/utils/ThreadsSplitter.ts","../src/utils/TokenStreamRegulator.ts","../src/utils/UnsupportedError.ts","../src/utils/appendUserMessageToChatHistory.ts","../src/utils/clearTempFolder.ts","../src/utils/cmake.ts","../src/utils/compareTokens.ts","../src/utils/createModelDownloader.ts","../src/utils/findBestOption.ts","../src/utils/findCharacterRemovalCountToFitChatHistoryInContext.ts","../src/utils/getBuildDefaults.ts","../src/utils/getChatWrapperSegmentDefinition.ts","../src/utils/getConsoleLogPrefix.ts","../src/utils/getGrammarsFolder.ts","../src/utils/getLlamaClasses.ts","../src/utils/getModuleVersion.ts","../src/utils/getQueuedTokensBeforeStopTrigger.ts","../src/utils/getReadableContextSize.ts","../src/utils/getTypeScriptTypeStringForGbnfJsonSchema.ts","../src/utils/gitReleaseBundles.ts","../src/utils/hashString.ts","../src/utils/includesText.ts","../src/utils/isLockfileActive.ts","../src/utils/isToken.ts","../src/utils/isUrl.ts","../src/utils/mergeUnionTypes.ts","../src/utils/modelDownloadEndpoints.ts","../src/utils/modelFileAccessTokens.ts","../src/utils/optionsMatrix.ts","../src/utils/parseModelFileName.ts","../src/utils/parseModelUri.ts","../src/utils/parseTextTemplate.ts","../src/utils/prettyPrintObject.ts","../src/utils/pushAll.ts","../src/utils/removeNullFields.ts","../src/utils/resolveGithubRelease.ts","../src/utils/resolveLastTokens.ts","../src/utils/resolveModelDestination.ts","../src/utils/resolveModelFile.ts","../src/utils/runtime.ts","../src/utils/safeEventCallback.ts","../src/utils/spawnCommand.ts","../src/utils/tokenizeInput.ts","../src/utils/tokenizerUtils.ts","../src/utils/transformPromisable.ts","../src/utils/truncateTextAndRoundToWords.ts","../src/utils/utilTypes.ts","../src/utils/waitForLockfileRelease.ts","../src/utils/withLockfile.ts","../src/utils/withOra.ts","../src/utils/withProgressLog.ts","../src/utils/withStatusLogs.ts","../src/utils/wrapAbortSignal.ts","../src/utils/gbnfJson/GbnfGrammarGenerator.ts","../src/utils/gbnfJson/GbnfTerminal.ts","../src/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.ts","../src/utils/gbnfJson/types.ts","../src/utils/gbnfJson/terminals/GbnfAnyJson.ts","../src/utils/gbnfJson/terminals/GbnfArray.ts","../src/utils/gbnfJson/terminals/GbnfBoolean.ts","../src/utils/gbnfJson/terminals/GbnfBooleanValue.ts","../src/utils/gbnfJson/terminals/GbnfCommaWhitespace.ts","../src/utils/gbnfJson/terminals/GbnfFormatString.ts","../src/utils/gbnfJson/terminals/GbnfGrammar.ts","../src/utils/gbnfJson/terminals/GbnfInsideStringChar.ts","../src/utils/gbnfJson/terminals/GbnfNull.ts","../src/utils/gbnfJson/terminals/GbnfNumber.ts","../src/utils/gbnfJson/terminals/GbnfNumberValue.ts","../src/utils/gbnfJson/terminals/GbnfObjectMap.ts","../src/utils/gbnfJson/terminals/GbnfOr.ts","../src/utils/gbnfJson/terminals/GbnfRef.ts","../src/utils/gbnfJson/terminals/GbnfRepetition.ts","../src/utils/gbnfJson/terminals/GbnfString.ts","../src/utils/gbnfJson/terminals/GbnfStringValue.ts","../src/utils/gbnfJson/terminals/GbnfVerbatimText.ts","../src/utils/gbnfJson/terminals/GbnfWhitespace.ts","../src/utils/gbnfJson/terminals/gbnfConsts.ts","../src/utils/gbnfJson/utils/GbnfJsonScopeState.ts","../src/utils/gbnfJson/utils/defsScope.ts","../src/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.ts","../src/utils/gbnfJson/utils/getGbnfJsonTerminalForLiteral.ts","../src/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.ts"],"version":"5.8.3"}
|
package/dist/types.d.ts
CHANGED
|
@@ -171,8 +171,8 @@ export type ChatSessionModelFunctions = {
|
|
|
171
171
|
};
|
|
172
172
|
export type ChatSessionModelFunction<Params extends GbnfJsonSchema | undefined = GbnfJsonSchema | undefined> = {
|
|
173
173
|
readonly description?: string;
|
|
174
|
-
readonly params?:
|
|
175
|
-
readonly handler: (params: GbnfJsonSchemaToType<Params
|
|
174
|
+
readonly params?: Params;
|
|
175
|
+
readonly handler: (params: GbnfJsonSchemaToType<NoInfer<Params>>) => any;
|
|
176
176
|
};
|
|
177
177
|
export declare function isChatModelResponseFunctionCall(item: ChatModelResponse["response"][number] | undefined): item is ChatModelFunctionCall;
|
|
178
178
|
export declare function isChatModelResponseSegment(item: ChatModelResponse["response"][number] | undefined): item is ChatModelSegment;
|
package/dist/utils/LruCache.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export declare class LruCache<Key, Value> {
|
|
|
3
3
|
constructor(maxSize: number, { onDelete }?: {
|
|
4
4
|
onDelete?(key: Key, value: Value): void;
|
|
5
5
|
});
|
|
6
|
-
get(key: Key):
|
|
6
|
+
get(key: Key): Value | undefined;
|
|
7
7
|
set(key: Key, value: Value): this;
|
|
8
8
|
get firstKey(): Key | undefined;
|
|
9
9
|
clear(): void;
|
|
@@ -16,7 +16,7 @@ export class ReplHistory {
|
|
|
16
16
|
this._fileContent = this._addItemToHistory(line, this._fileContent);
|
|
17
17
|
return;
|
|
18
18
|
}
|
|
19
|
-
await withLock(this, "file", async () => {
|
|
19
|
+
await withLock([this, "file"], async () => {
|
|
20
20
|
try {
|
|
21
21
|
const json = parseReplJsonfile(await fs.readJSON(this._filePath));
|
|
22
22
|
this._fileContent = this._addItemToHistory(line, json);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReplHistory.js","sourceRoot":"","sources":["../../src/utils/ReplHistory.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAMzC,MAAM,YAAY,GAAqB;IACnC,OAAO,EAAE,EAAE;CACd,CAAC;AAEF,MAAM,OAAO,WAAW;IACH,SAAS,CAAgB;IAClC,YAAY,CAAmB;IAEvC,YAAoB,QAAuB,EAAE,WAA6B;QACtE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IACpC,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,IAAY;QACzB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,OAAO;QACX,CAAC;QAED,MAAM,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"ReplHistory.js","sourceRoot":"","sources":["../../src/utils/ReplHistory.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAMzC,MAAM,YAAY,GAAqB;IACnC,OAAO,EAAE,EAAE;CACd,CAAC;AAEF,MAAM,OAAO,WAAW;IACH,SAAS,CAAgB;IAClC,YAAY,CAAmB;IAEvC,YAAoB,QAAuB,EAAE,WAA6B;QACtE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IACpC,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,IAAY;QACzB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,OAAO;QACX,CAAC;QAED,MAAM,QAAQ,CAAC,CAAC,IAAmB,EAAE,MAAM,CAAC,EAAE,KAAK,IAAI,EAAE;YACrD,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAU,CAAC,CAAC,CAAC;gBACnE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAEvD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAU,CAAC,CAAC,CAAC;gBAClD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAU,EAAE,IAAI,CAAC,YAAY,EAAE;oBACnD,MAAM,EAAE,CAAC;iBACZ,CAAC,CAAC;YACP,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC,CAAA,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;IACrC,CAAC;IAEO,iBAAiB,CAAC,IAAY,EAAE,WAA6B;QACjE,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/C,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,gBAAgB,KAAK,CAAC,CAAC;YACvB,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QAE3C,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEzB,OAAO;YACH,GAAG,WAAW;YACd,OAAO,EAAE,UAAU;SACtB,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,qBAA8B,IAAI;QACzE,IAAI,CAAC,kBAAkB;YACnB,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE;gBACzB,OAAO,EAAE,EAAE;aACd,CAAC,CAAC;QAEP,IAAI,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBACnC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC3C,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE;oBACvC,MAAM,EAAE,CAAC;iBACZ,CAAC,CAAC;YACP,CAAC;YAED,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5D,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE;gBACzB,OAAO,EAAE,EAAE;aACd,CAAC,CAAC;QACP,CAAC;IACL,CAAC;CACJ;AAED,SAAS,iBAAiB,CAAC,IAAa;IACpC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,YAAY,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;QAC7J,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAEjD,OAAO,IAAwB,CAAC;AACpC,CAAC"}
|
|
@@ -1,11 +1,19 @@
|
|
|
1
|
+
import { MultiKeyMap } from "lifecycle-utils";
|
|
2
|
+
import { GbnfJsonSchema } from "./types.js";
|
|
1
3
|
export declare class GbnfGrammarGenerator {
|
|
2
|
-
rules: Map<string, string
|
|
4
|
+
rules: Map<string, string>;
|
|
3
5
|
ruleContentToRuleName: Map<string, string>;
|
|
4
6
|
literalValueRuleNames: Map<string | number, string>;
|
|
7
|
+
defRuleNames: MultiKeyMap<[string, GbnfJsonSchema], string | null>;
|
|
8
|
+
defScopeDefs: MultiKeyMap<[string, GbnfJsonSchema], Record<string, GbnfJsonSchema>>;
|
|
9
|
+
usedRootRuleName: boolean;
|
|
5
10
|
private ruleId;
|
|
6
11
|
private valueRuleId;
|
|
12
|
+
private defRuleId;
|
|
7
13
|
generateRuleName(): string;
|
|
8
14
|
generateRuleNameForLiteralValue(value: string | number): string;
|
|
15
|
+
generateRuleNameForDef(defName: string, def: GbnfJsonSchema): string;
|
|
16
|
+
registerDefs(scopeDefs: Record<string, GbnfJsonSchema>): void;
|
|
9
17
|
generateGbnfFile(rootGrammar: string): string;
|
|
10
18
|
getProposedLiteralValueRuleNameLength(): number;
|
|
11
19
|
}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
import { MultiKeyMap } from "lifecycle-utils";
|
|
1
2
|
export class GbnfGrammarGenerator {
|
|
2
3
|
rules = new Map();
|
|
3
4
|
ruleContentToRuleName = new Map();
|
|
4
5
|
literalValueRuleNames = new Map();
|
|
6
|
+
defRuleNames = new MultiKeyMap();
|
|
7
|
+
defScopeDefs = new MultiKeyMap();
|
|
8
|
+
usedRootRuleName = false;
|
|
5
9
|
ruleId = 0;
|
|
6
10
|
valueRuleId = 0;
|
|
11
|
+
defRuleId = 0;
|
|
7
12
|
generateRuleName() {
|
|
8
13
|
const ruleId = this.ruleId;
|
|
9
14
|
this.ruleId++;
|
|
@@ -18,6 +23,19 @@ export class GbnfGrammarGenerator {
|
|
|
18
23
|
this.literalValueRuleNames.set(value, ruleName);
|
|
19
24
|
return ruleName;
|
|
20
25
|
}
|
|
26
|
+
generateRuleNameForDef(defName, def) {
|
|
27
|
+
const existingRuleName = this.defRuleNames.get([defName, def]);
|
|
28
|
+
if (existingRuleName != null)
|
|
29
|
+
return existingRuleName;
|
|
30
|
+
const ruleName = `def${this.defRuleId}`;
|
|
31
|
+
this.defRuleId++;
|
|
32
|
+
this.defRuleNames.set([defName, def], ruleName);
|
|
33
|
+
return ruleName;
|
|
34
|
+
}
|
|
35
|
+
registerDefs(scopeDefs) {
|
|
36
|
+
for (const [defName, def] of Object.entries(scopeDefs))
|
|
37
|
+
this.defScopeDefs.set([defName, def], scopeDefs);
|
|
38
|
+
}
|
|
21
39
|
generateGbnfFile(rootGrammar) {
|
|
22
40
|
const rules = [{
|
|
23
41
|
name: "root",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GbnfGrammarGenerator.js","sourceRoot":"","sources":["../../../src/utils/gbnfJson/GbnfGrammarGenerator.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,oBAAoB;IACtB,KAAK,GAAG,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"GbnfGrammarGenerator.js","sourceRoot":"","sources":["../../../src/utils/gbnfJson/GbnfGrammarGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAG5C,MAAM,OAAO,oBAAoB;IACtB,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClC,qBAAqB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClD,qBAAqB,GAAG,IAAI,GAAG,EAA2B,CAAC;IAC3D,YAAY,GAAG,IAAI,WAAW,EAA2C,CAAC;IAC1E,YAAY,GAAG,IAAI,WAAW,EAA4D,CAAC;IAC3F,gBAAgB,GAAY,KAAK,CAAC;IACjC,MAAM,GAAW,CAAC,CAAC;IACnB,WAAW,GAAW,CAAC,CAAC;IACxB,SAAS,GAAW,CAAC,CAAC;IAEvB,gBAAgB;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;QAEd,OAAO,OAAO,MAAM,EAAE,CAAC;IAC3B,CAAC;IAEM,+BAA+B,CAAC,KAAsB;QACzD,MAAM,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/D,IAAI,gBAAgB,IAAI,IAAI;YACxB,OAAO,gBAAgB,CAAC;QAE5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEhD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEM,sBAAsB,CAAC,OAAe,EAAE,GAAmB;QAC9D,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/D,IAAI,gBAAgB,IAAI,IAAI;YACxB,OAAO,gBAAgB,CAAC;QAE5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACxC,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;QAEhD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEM,YAAY,CAAC,SAAyC;QACzD,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;YAClD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;IACzD,CAAC;IAEM,gBAAgB,CAAC,WAAmB;QACvC,MAAM,KAAK,GAAsC,CAAC;gBAC9C,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,WAAW;aACvB,CAAC,CAAC;QAEH,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YACrD,IAAI,OAAO,IAAI,IAAI;gBACf,SAAS;YAEb,KAAK,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,QAAQ;gBACd,OAAO;aACV,CAAC,CAAC;QACP,CAAC;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5E,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpC,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,qCAAqC;QACxC,OAAO,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;IAC3C,CAAC;CACJ"}
|
|
@@ -6,5 +6,6 @@ export declare abstract class GbnfTerminal {
|
|
|
6
6
|
protected getRuleName(grammarGenerator: GbnfGrammarGenerator): string;
|
|
7
7
|
abstract getGrammar(grammarGenerator: GbnfGrammarGenerator): string;
|
|
8
8
|
protected getGrammarFromResolve(grammarGenerator: GbnfGrammarGenerator): string;
|
|
9
|
-
|
|
9
|
+
private _getRootRuleName;
|
|
10
|
+
resolve(grammarGenerator: GbnfGrammarGenerator, resolveAsRootGrammar?: boolean): string;
|
|
10
11
|
}
|
|
@@ -14,7 +14,18 @@ export class GbnfTerminal {
|
|
|
14
14
|
getGrammarFromResolve(grammarGenerator) {
|
|
15
15
|
return this.getGrammar(grammarGenerator);
|
|
16
16
|
}
|
|
17
|
-
|
|
17
|
+
_getRootRuleName(grammarGenerator) {
|
|
18
|
+
if (this._ruleName != null)
|
|
19
|
+
return this._ruleName;
|
|
20
|
+
const ruleName = grammarGenerator.usedRootRuleName
|
|
21
|
+
? this.getRuleName(grammarGenerator)
|
|
22
|
+
: "root";
|
|
23
|
+
this._ruleName = ruleName;
|
|
24
|
+
if (ruleName === "root")
|
|
25
|
+
grammarGenerator.usedRootRuleName = true;
|
|
26
|
+
return ruleName;
|
|
27
|
+
}
|
|
28
|
+
resolve(grammarGenerator, resolveAsRootGrammar = false) {
|
|
18
29
|
if (this._ruleName != null)
|
|
19
30
|
return this._ruleName;
|
|
20
31
|
const grammar = this.getGrammarFromResolve(grammarGenerator);
|
|
@@ -23,7 +34,11 @@ export class GbnfTerminal {
|
|
|
23
34
|
this._ruleName = existingRuleName;
|
|
24
35
|
return existingRuleName;
|
|
25
36
|
}
|
|
26
|
-
const ruleName =
|
|
37
|
+
const ruleName = resolveAsRootGrammar
|
|
38
|
+
? this._getRootRuleName(grammarGenerator)
|
|
39
|
+
: this.getRuleName(grammarGenerator);
|
|
40
|
+
if (resolveAsRootGrammar)
|
|
41
|
+
return grammar;
|
|
27
42
|
if (grammar === ruleName) {
|
|
28
43
|
this._ruleName = ruleName;
|
|
29
44
|
return ruleName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GbnfTerminal.js","sourceRoot":"","sources":["../../../src/utils/gbnfJson/GbnfTerminal.ts"],"names":[],"mappings":"AAGA,MAAM,OAAgB,YAAY;IACtB,SAAS,GAAkB,IAAI,CAAC;IAExC,uCAAuC;IAC7B,gBAAgB,CAAC,gBAAsC;QAC7D,OAAO,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;IAC/C,CAAC;IAES,WAAW,CAAC,gBAAsC;QACxD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI;YACtB,OAAO,IAAI,CAAC,SAAS,CAAC;QAE1B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAE1B,OAAO,QAAQ,CAAC;IACpB,CAAC;IAIS,qBAAqB,CAAC,gBAAsC;QAClE,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC7C,CAAC;IAEM,OAAO,CAAC,gBAAsC;
|
|
1
|
+
{"version":3,"file":"GbnfTerminal.js","sourceRoot":"","sources":["../../../src/utils/gbnfJson/GbnfTerminal.ts"],"names":[],"mappings":"AAGA,MAAM,OAAgB,YAAY;IACtB,SAAS,GAAkB,IAAI,CAAC;IAExC,uCAAuC;IAC7B,gBAAgB,CAAC,gBAAsC;QAC7D,OAAO,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;IAC/C,CAAC;IAES,WAAW,CAAC,gBAAsC;QACxD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI;YACtB,OAAO,IAAI,CAAC,SAAS,CAAC;QAE1B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAE1B,OAAO,QAAQ,CAAC;IACpB,CAAC;IAIS,qBAAqB,CAAC,gBAAsC;QAClE,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC7C,CAAC;IAEO,gBAAgB,CAAC,gBAAsC;QAC3D,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI;YACtB,OAAO,IAAI,CAAC,SAAS,CAAC;QAE1B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,gBAAgB;YAC9C,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC;YACpC,CAAC,CAAC,MAAM,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAE1B,IAAI,QAAQ,KAAK,MAAM;YACnB,gBAAgB,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAE7C,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEM,OAAO,CAAC,gBAAsC,EAAE,uBAAgC,KAAK;QACxF,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI;YACtB,OAAO,IAAI,CAAC,SAAS,CAAC;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;QAE7D,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7E,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC;YAClC,OAAO,gBAAgB,CAAC;QAC5B,CAAC;QAED,MAAM,QAAQ,GAAG,oBAAoB;YACjC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;YACzC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAEzC,IAAI,oBAAoB;YACpB,OAAO,OAAO,CAAC;QAEnB,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC9C,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ"}
|
|
@@ -5,7 +5,7 @@ export function getGbnfGrammarForGbnfJsonSchema(schema, { allowNewLines = true,
|
|
|
5
5
|
const grammarGenerator = new GbnfGrammarGenerator();
|
|
6
6
|
const scopeState = new GbnfJsonScopeState({ allowNewLines, scopePadSpaces });
|
|
7
7
|
const rootTerminal = getGbnfJsonTerminalForGbnfJsonSchema(schema, grammarGenerator, scopeState);
|
|
8
|
-
const rootGrammar = rootTerminal.
|
|
8
|
+
const rootGrammar = rootTerminal.resolve(grammarGenerator, true);
|
|
9
9
|
return grammarGenerator.generateGbnfFile(rootGrammar + ` "${"\\n".repeat(4)}"` + " [\\n]*");
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=getGbnfGrammarForGbnfJsonSchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getGbnfGrammarForGbnfJsonSchema.js","sourceRoot":"","sources":["../../../src/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,oCAAoC,EAAC,MAAM,iDAAiD,CAAC;AACrG,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAC,kBAAkB,EAAC,MAAM,+BAA+B,CAAC;AAGjE,MAAM,UAAU,+BAA+B,CAAC,MAAgC,EAAE,EAC9E,aAAa,GAAG,IAAI,EACpB,cAAc,GAAG,CAAC,KAIlB,EAAE;IACF,MAAM,gBAAgB,GAAG,IAAI,oBAAoB,EAAE,CAAC;IACpD,MAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,EAAC,aAAa,EAAE,cAAc,EAAC,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,oCAAoC,CAAC,MAAM,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAChG,MAAM,WAAW,GAAG,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"getGbnfGrammarForGbnfJsonSchema.js","sourceRoot":"","sources":["../../../src/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,oCAAoC,EAAC,MAAM,iDAAiD,CAAC;AACrG,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAC,kBAAkB,EAAC,MAAM,+BAA+B,CAAC;AAGjE,MAAM,UAAU,+BAA+B,CAAC,MAAgC,EAAE,EAC9E,aAAa,GAAG,IAAI,EACpB,cAAc,GAAG,CAAC,KAIlB,EAAE;IACF,MAAM,gBAAgB,GAAG,IAAI,oBAAoB,EAAE,CAAC;IACpD,MAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,EAAC,aAAa,EAAE,cAAc,EAAC,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,oCAAoC,CAAC,MAAM,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAChG,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAEjE,OAAO,gBAAgB,CAAC,gBAAgB,CAAC,WAAW,GAAG,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;AAChG,CAAC"}
|
|
@@ -5,5 +5,5 @@ export declare class GbnfGrammar extends GbnfTerminal {
|
|
|
5
5
|
readonly resolveToRawGrammar: boolean;
|
|
6
6
|
constructor(grammar: string | string[], resolveToRawGrammar?: boolean);
|
|
7
7
|
getGrammar(): string;
|
|
8
|
-
resolve(grammarGenerator: GbnfGrammarGenerator): string;
|
|
8
|
+
resolve(grammarGenerator: GbnfGrammarGenerator, resolveAsRootGrammar?: boolean): string;
|
|
9
9
|
}
|
|
@@ -14,10 +14,10 @@ export class GbnfGrammar extends GbnfTerminal {
|
|
|
14
14
|
.join(" ");
|
|
15
15
|
return this.grammar;
|
|
16
16
|
}
|
|
17
|
-
resolve(grammarGenerator) {
|
|
17
|
+
resolve(grammarGenerator, resolveAsRootGrammar = false) {
|
|
18
18
|
if (this.resolveToRawGrammar)
|
|
19
19
|
return this.getGrammar();
|
|
20
|
-
return super.resolve(grammarGenerator);
|
|
20
|
+
return super.resolve(grammarGenerator, resolveAsRootGrammar);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
//# sourceMappingURL=GbnfGrammar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GbnfGrammar.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAIhD,MAAM,OAAO,WAAY,SAAQ,YAAY;IACzB,OAAO,CAAoB;IAC3B,mBAAmB,CAAU;IAE7C,YAAmB,OAA0B,EAAE,sBAA+B,KAAK;QAC/E,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IACnD,CAAC;IAEM,UAAU;QACb,IAAI,IAAI,CAAC,OAAO,YAAY,KAAK;YAC7B,OAAO,IAAI,CAAC,OAAO;iBACd,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;iBAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;QAEnB,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEe,OAAO,CAAC,gBAAsC;
|
|
1
|
+
{"version":3,"file":"GbnfGrammar.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAIhD,MAAM,OAAO,WAAY,SAAQ,YAAY;IACzB,OAAO,CAAoB;IAC3B,mBAAmB,CAAU;IAE7C,YAAmB,OAA0B,EAAE,sBAA+B,KAAK;QAC/E,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IACnD,CAAC;IAEM,UAAU;QACb,IAAI,IAAI,CAAC,OAAO,YAAY,KAAK;YAC7B,OAAO,IAAI,CAAC,OAAO;iBACd,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;iBAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;QAEnB,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEe,OAAO,CAAC,gBAAsC,EAAE,uBAAgC,KAAK;QACjG,IAAI,IAAI,CAAC,mBAAmB;YACxB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;QAE7B,OAAO,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;IACjE,CAAC;CACJ"}
|
|
@@ -4,6 +4,6 @@ export declare class GbnfNumberValue extends GbnfTerminal {
|
|
|
4
4
|
readonly value: number;
|
|
5
5
|
constructor(value: number);
|
|
6
6
|
getGrammar(): string;
|
|
7
|
-
resolve(grammarGenerator: GbnfGrammarGenerator): string;
|
|
7
|
+
resolve(grammarGenerator: GbnfGrammarGenerator, resolveAsRootGrammar?: boolean): string;
|
|
8
8
|
protected generateRuleName(grammarGenerator: GbnfGrammarGenerator): string;
|
|
9
9
|
}
|
|
@@ -8,11 +8,11 @@ export class GbnfNumberValue extends GbnfTerminal {
|
|
|
8
8
|
getGrammar() {
|
|
9
9
|
return '"' + JSON.stringify(this.value) + '"';
|
|
10
10
|
}
|
|
11
|
-
resolve(grammarGenerator) {
|
|
11
|
+
resolve(grammarGenerator, resolveAsRootGrammar = false) {
|
|
12
12
|
const grammar = this.getGrammar();
|
|
13
13
|
if (grammar.length <= grammarGenerator.getProposedLiteralValueRuleNameLength())
|
|
14
14
|
return grammar;
|
|
15
|
-
return super.resolve(grammarGenerator);
|
|
15
|
+
return super.resolve(grammarGenerator, resolveAsRootGrammar);
|
|
16
16
|
}
|
|
17
17
|
generateRuleName(grammarGenerator) {
|
|
18
18
|
return grammarGenerator.generateRuleNameForLiteralValue(this.value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GbnfNumberValue.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfNumberValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAIhD,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAC7B,KAAK,CAAS;IAE9B,YAAmB,KAAa;QAC5B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEe,UAAU;QACtB,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;IAClD,CAAC;IAEe,OAAO,CAAC,gBAAsC;
|
|
1
|
+
{"version":3,"file":"GbnfNumberValue.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfNumberValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAIhD,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAC7B,KAAK,CAAS;IAE9B,YAAmB,KAAa;QAC5B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEe,UAAU;QACtB,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;IAClD,CAAC;IAEe,OAAO,CAAC,gBAAsC,EAAE,uBAAgC,KAAK;QACjG,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,OAAO,CAAC,MAAM,IAAI,gBAAgB,CAAC,qCAAqC,EAAE;YAC1E,OAAO,OAAO,CAAC;QAEnB,OAAO,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;IACjE,CAAC;IAEkB,gBAAgB,CAAC,gBAAsC;QACtE,OAAO,gBAAgB,CAAC,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxE,CAAC;CACJ"}
|
|
@@ -5,5 +5,5 @@ export declare class GbnfOr extends GbnfTerminal {
|
|
|
5
5
|
readonly useRawGrammar: boolean;
|
|
6
6
|
constructor(values: readonly GbnfTerminal[], useRawGrammar?: boolean);
|
|
7
7
|
getGrammar(grammarGenerator: GbnfGrammarGenerator): string;
|
|
8
|
-
resolve(grammarGenerator: GbnfGrammarGenerator): string;
|
|
8
|
+
resolve(grammarGenerator: GbnfGrammarGenerator, resolveAsRootGrammar?: boolean): string;
|
|
9
9
|
}
|
|
@@ -20,7 +20,7 @@ export class GbnfOr extends GbnfTerminal {
|
|
|
20
20
|
return mappedValues[0];
|
|
21
21
|
return "( " + mappedValues.join(" | ") + " )";
|
|
22
22
|
}
|
|
23
|
-
resolve(grammarGenerator) {
|
|
23
|
+
resolve(grammarGenerator, resolveAsRootGrammar = false) {
|
|
24
24
|
const mappedValues = this.values
|
|
25
25
|
.map((v) => v.resolve(grammarGenerator))
|
|
26
26
|
.filter((value) => value !== "" && value !== grammarNoValue);
|
|
@@ -28,7 +28,7 @@ export class GbnfOr extends GbnfTerminal {
|
|
|
28
28
|
return grammarNoValue;
|
|
29
29
|
else if (mappedValues.length === 1)
|
|
30
30
|
return mappedValues[0];
|
|
31
|
-
return super.resolve(grammarGenerator);
|
|
31
|
+
return super.resolve(grammarGenerator, resolveAsRootGrammar);
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
//# sourceMappingURL=GbnfOr.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GbnfOr.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfOr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAG/C,MAAM,OAAO,MAAO,SAAQ,YAAY;IACpB,MAAM,CAA0B;IAChC,aAAa,CAAU;IAEvC,YAAmB,MAA+B,EAAE,gBAAyB,KAAK;QAC9E,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;IAEM,UAAU,CAAC,gBAAsC;QACpD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM;aAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACR,IAAI,CAAC,aAAa;YACd,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC;YAChC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CACpC,CAAC;aACD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,cAAc,CAAC,CAAC;QAEjE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YACzB,OAAO,cAAc,CAAC;aACrB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAC9B,OAAO,YAAY,CAAC,CAAC,CAAE,CAAC;QAE5B,OAAO,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAClD,CAAC;IAEe,OAAO,CAAC,gBAAsC;
|
|
1
|
+
{"version":3,"file":"GbnfOr.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfOr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAG/C,MAAM,OAAO,MAAO,SAAQ,YAAY;IACpB,MAAM,CAA0B;IAChC,aAAa,CAAU;IAEvC,YAAmB,MAA+B,EAAE,gBAAyB,KAAK;QAC9E,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;IAEM,UAAU,CAAC,gBAAsC;QACpD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM;aAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACR,IAAI,CAAC,aAAa;YACd,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC;YAChC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CACpC,CAAC;aACD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,cAAc,CAAC,CAAC;QAEjE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YACzB,OAAO,cAAc,CAAC;aACrB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAC9B,OAAO,YAAY,CAAC,CAAC,CAAE,CAAC;QAE5B,OAAO,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAClD,CAAC;IAEe,OAAO,CAAC,gBAAsC,EAAE,uBAAgC,KAAK;QACjG,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM;aAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;aACvC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,cAAc,CAAC,CAAC;QAEjE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YACzB,OAAO,cAAc,CAAC;aACrB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAC9B,OAAO,YAAY,CAAC,CAAC,CAAE,CAAC;QAE5B,OAAO,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;IACjE,CAAC;CACJ"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
import { GbnfGrammarGenerator } from "../GbnfGrammarGenerator.js";
|
|
3
|
+
import { GbnfJsonSchema } from "../types.js";
|
|
4
|
+
export declare class GbnfRef extends GbnfTerminal {
|
|
5
|
+
readonly getValueTerminal: () => GbnfTerminal;
|
|
6
|
+
readonly defName: string;
|
|
7
|
+
readonly def: GbnfJsonSchema;
|
|
8
|
+
constructor({ getValueTerminal, defName, def }: {
|
|
9
|
+
getValueTerminal: () => GbnfTerminal;
|
|
10
|
+
defName: string;
|
|
11
|
+
def: GbnfJsonSchema;
|
|
12
|
+
});
|
|
13
|
+
getGrammar(grammarGenerator: GbnfGrammarGenerator): string;
|
|
14
|
+
protected generateRuleName(grammarGenerator: GbnfGrammarGenerator): string;
|
|
15
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
export class GbnfRef extends GbnfTerminal {
|
|
3
|
+
getValueTerminal;
|
|
4
|
+
defName;
|
|
5
|
+
def;
|
|
6
|
+
constructor({ getValueTerminal, defName, def }) {
|
|
7
|
+
super();
|
|
8
|
+
this.getValueTerminal = getValueTerminal;
|
|
9
|
+
this.defName = defName;
|
|
10
|
+
this.def = def;
|
|
11
|
+
}
|
|
12
|
+
getGrammar(grammarGenerator) {
|
|
13
|
+
return this.generateRuleName(grammarGenerator);
|
|
14
|
+
}
|
|
15
|
+
generateRuleName(grammarGenerator) {
|
|
16
|
+
if (!grammarGenerator.defRuleNames.has([this.defName, this.def])) {
|
|
17
|
+
const alreadyGeneratingGrammarForThisRef = grammarGenerator.defRuleNames.get([this.defName, this.def]) === null;
|
|
18
|
+
if (alreadyGeneratingGrammarForThisRef)
|
|
19
|
+
return grammarGenerator.generateRuleNameForDef(this.defName, this.def);
|
|
20
|
+
grammarGenerator.defRuleNames.set([this.defName, this.def], null);
|
|
21
|
+
const grammar = this.getValueTerminal().resolve(grammarGenerator);
|
|
22
|
+
if (grammarGenerator.rules.has(grammar) && grammarGenerator.defRuleNames.get([this.defName, this.def]) === null) {
|
|
23
|
+
grammarGenerator.defRuleNames.set([this.defName, this.def], grammar);
|
|
24
|
+
return grammar;
|
|
25
|
+
}
|
|
26
|
+
const ruleName = grammarGenerator.generateRuleNameForDef(this.defName, this.def);
|
|
27
|
+
grammarGenerator.rules.set(ruleName, grammar);
|
|
28
|
+
grammarGenerator.ruleContentToRuleName.set(grammar, ruleName);
|
|
29
|
+
return ruleName;
|
|
30
|
+
}
|
|
31
|
+
return grammarGenerator.generateRuleNameForDef(this.defName, this.def);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=GbnfRef.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GbnfRef.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfRef.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAKhD,MAAM,OAAO,OAAQ,SAAQ,YAAY;IACrB,gBAAgB,CAAqB;IACrC,OAAO,CAAS;IAChB,GAAG,CAAiB;IAEpC,YAAmB,EACf,gBAAgB,EAChB,OAAO,EACP,GAAG,EAKN;QACG,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IAEe,UAAU,CAAC,gBAAsC;QAC7D,OAAO,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACnD,CAAC;IAEkB,gBAAgB,CAAC,gBAAsC;QACtE,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC/D,MAAM,kCAAkC,GAAG,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC;YAChH,IAAI,kCAAkC;gBAClC,OAAO,gBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAE3E,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;YAClE,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAElE,IAAI,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC9G,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;gBACrE,OAAO,OAAO,CAAC;YACnB,CAAC;YAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACjF,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC9C,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAE9D,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,OAAO,gBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3E,CAAC;CACJ"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
export type GbnfJsonSchemaImmutableType = "string" | "number" | "integer" | "boolean" | "null";
|
|
2
|
-
export type GbnfJsonSchema = GbnfJsonBasicSchema | GbnfJsonConstSchema | GbnfJsonEnumSchema | GbnfJsonOneOfSchema | GbnfJsonStringSchema | GbnfJsonObjectSchema | GbnfJsonArraySchema;
|
|
2
|
+
export type GbnfJsonSchema<Defs extends GbnfJsonDefList<Defs> = Record<any, any>> = GbnfJsonBasicSchema | GbnfJsonConstSchema | GbnfJsonEnumSchema | GbnfJsonOneOfSchema<Defs> | GbnfJsonStringSchema | GbnfJsonObjectSchema<string, Defs> | GbnfJsonArraySchema<Defs> | (keyof Defs extends string ? keyof NoInfer<Defs> extends never ? never : GbnfJsonRefSchema<Defs> : never);
|
|
3
|
+
export type GbnfJsonDefList<Defs extends GbnfJsonDefList<NoInfer<Defs>> = {}> = {
|
|
4
|
+
readonly [key: string]: GbnfJsonSchema<NoInfer<Defs>>;
|
|
5
|
+
};
|
|
3
6
|
export type GbnfJsonBasicSchema = {
|
|
4
7
|
readonly type: GbnfJsonSchemaImmutableType | readonly GbnfJsonSchemaImmutableType[];
|
|
5
8
|
/**
|
|
@@ -27,14 +30,15 @@ export type GbnfJsonEnumSchema = {
|
|
|
27
30
|
*/
|
|
28
31
|
readonly description?: string;
|
|
29
32
|
};
|
|
30
|
-
export type GbnfJsonOneOfSchema = {
|
|
31
|
-
readonly oneOf: readonly GbnfJsonSchema[];
|
|
33
|
+
export type GbnfJsonOneOfSchema<Defs extends GbnfJsonDefList<NoInfer<Defs>> = {}> = {
|
|
34
|
+
readonly oneOf: readonly GbnfJsonSchema<NoInfer<Defs>>[];
|
|
32
35
|
/**
|
|
33
36
|
* A description of what you expect the model to set this value to.
|
|
34
37
|
*
|
|
35
38
|
* Only passed to the model when using function calling, and has no effect when using JSON Schema grammar directly.
|
|
36
39
|
*/
|
|
37
40
|
readonly description?: string;
|
|
41
|
+
readonly $defs?: Defs;
|
|
38
42
|
};
|
|
39
43
|
export type GbnfJsonStringSchema = GbnfJsonBasicStringSchema | GbnfJsonFormatStringSchema;
|
|
40
44
|
export type GbnfJsonBasicStringSchema = {
|
|
@@ -68,15 +72,15 @@ export type GbnfJsonFormatStringSchema = {
|
|
|
68
72
|
*/
|
|
69
73
|
readonly description?: string;
|
|
70
74
|
};
|
|
71
|
-
export type GbnfJsonObjectSchema<Keys extends string = string> = {
|
|
75
|
+
export type GbnfJsonObjectSchema<Keys extends string = string, Defs extends GbnfJsonDefList<NoInfer<Defs>> = {}> = {
|
|
72
76
|
readonly type: "object";
|
|
73
77
|
readonly properties?: {
|
|
74
|
-
readonly [key in Keys]: GbnfJsonSchema
|
|
78
|
+
readonly [key in Keys]: GbnfJsonSchema<NoInfer<Defs>>;
|
|
75
79
|
};
|
|
76
80
|
/**
|
|
77
81
|
* Unlike the JSON Schema spec, `additionalProperties` defaults to `false` to avoid breaking existing code.
|
|
78
82
|
*/
|
|
79
|
-
readonly additionalProperties?: boolean | GbnfJsonSchema
|
|
83
|
+
readonly additionalProperties?: boolean | GbnfJsonSchema<NoInfer<Defs>>;
|
|
80
84
|
/**
|
|
81
85
|
* Make sure you define `additionalProperties` for this to have any effect.
|
|
82
86
|
*
|
|
@@ -109,11 +113,12 @@ export type GbnfJsonObjectSchema<Keys extends string = string> = {
|
|
|
109
113
|
* Only passed to the model when using function calling, and has no effect when using JSON Schema grammar directly.
|
|
110
114
|
*/
|
|
111
115
|
readonly description?: string;
|
|
116
|
+
readonly $defs?: Defs;
|
|
112
117
|
};
|
|
113
|
-
export type GbnfJsonArraySchema = {
|
|
118
|
+
export type GbnfJsonArraySchema<Defs extends GbnfJsonDefList<NoInfer<Defs>> = {}> = {
|
|
114
119
|
readonly type: "array";
|
|
115
|
-
readonly items?: GbnfJsonSchema
|
|
116
|
-
readonly prefixItems?: readonly GbnfJsonSchema[];
|
|
120
|
+
readonly items?: GbnfJsonSchema<NoInfer<Defs>>;
|
|
121
|
+
readonly prefixItems?: readonly GbnfJsonSchema<NoInfer<Defs>>[];
|
|
117
122
|
/**
|
|
118
123
|
* When using `minItems` and/or `maxItems`,
|
|
119
124
|
* ensure to inform the model as part of the prompt what your expectations are regarding the length of the array.
|
|
@@ -132,42 +137,54 @@ export type GbnfJsonArraySchema = {
|
|
|
132
137
|
* Only passed to the model when using function calling, and has no effect when using JSON Schema grammar directly.
|
|
133
138
|
*/
|
|
134
139
|
readonly description?: string;
|
|
140
|
+
readonly $defs?: Defs;
|
|
141
|
+
};
|
|
142
|
+
export type GbnfJsonRefSchema<Defs extends GbnfJsonDefList<NoInfer<Defs>> = {}> = {
|
|
143
|
+
readonly $ref: keyof NoInfer<Defs> extends never ? never : `#/$defs/${OnlyStringKeys<NoInfer<Defs>>}`;
|
|
144
|
+
/**
|
|
145
|
+
* A description of what you expect the model to set this value to.
|
|
146
|
+
*
|
|
147
|
+
* Only passed to the model when using function calling, and has no effect when using JSON Schema grammar directly.
|
|
148
|
+
*/
|
|
149
|
+
readonly description?: string;
|
|
150
|
+
readonly $defs?: Defs;
|
|
135
151
|
};
|
|
136
152
|
/**
|
|
137
153
|
* Converts a GBNF JSON schema to a TypeScript type
|
|
138
154
|
*/
|
|
139
155
|
export type GbnfJsonSchemaToType<T> = GbnfJsonSchemaToTSType<T>;
|
|
140
|
-
export type GbnfJsonSchemaToTSType<T> = Readonly<GbnfJsonBasicSchema> extends T ? undefined : undefined extends T ? undefined : T extends GbnfJsonBasicStringSchema ? GbnfJsonBasicStringSchemaToType<T> : T extends GbnfJsonFormatStringSchema ? string : T extends GbnfJsonBasicSchema ? GbnfJsonBasicSchemaToType<T["type"]> : T extends GbnfJsonConstSchema ? T["const"] : T extends GbnfJsonEnumSchema ? T["enum"][number] : T extends GbnfJsonOneOfSchema ?
|
|
156
|
+
export type GbnfJsonSchemaToTSType<T, Defs extends GbnfJsonDefList<NoInfer<Defs>> = {}> = Readonly<GbnfJsonBasicSchema> extends T ? undefined : undefined extends T ? undefined : T extends GbnfJsonBasicStringSchema ? GbnfJsonBasicStringSchemaToType<T> : T extends GbnfJsonFormatStringSchema ? string : T extends GbnfJsonBasicSchema ? GbnfJsonBasicSchemaToType<T["type"]> : T extends GbnfJsonConstSchema ? T["const"] : T extends GbnfJsonEnumSchema ? T["enum"][number] : T extends GbnfJsonOneOfSchema<Record<any, any>> ? GbnfJsonSchemaToTSType<T["oneOf"][number], CombineDefs<NoInfer<Defs>, T["$defs"]>> : T extends GbnfJsonObjectSchema<string, Record<any, any>> ? GbnfJsonObjectSchemaToType<T, NoInfer<Defs>> : T extends GbnfJsonArraySchema<Record<any, any>> ? ArrayTypeToType<T, CombineDefs<NoInfer<Defs>, T["$defs"]>> : T extends GbnfJsonRefSchema<any> ? GbnfJsonRefSchemaToType<T, CombineDefs<NoInfer<Defs>, T["$defs"]>> : undefined;
|
|
141
157
|
type GbnfJsonBasicStringSchemaToType<T extends GbnfJsonBasicStringSchema> = T["maxLength"] extends 0 ? "" : string;
|
|
142
|
-
type GbnfJsonBasicSchemaToType<T extends GbnfJsonBasicSchema["type"]> = T extends GbnfJsonSchemaImmutableType ? ImmutableTypeToType<T> : T extends GbnfJsonSchemaImmutableType
|
|
158
|
+
type GbnfJsonBasicSchemaToType<T extends GbnfJsonBasicSchema["type"]> = T extends GbnfJsonSchemaImmutableType ? ImmutableTypeToType<T> : T[number] extends GbnfJsonSchemaImmutableType ? ImmutableTypeToType<T[number]> : never;
|
|
143
159
|
type ImmutableTypeToType<T extends GbnfJsonSchemaImmutableType> = T extends "string" ? string : T extends "number" ? number : T extends "integer" ? number : T extends "boolean" ? boolean : T extends "null" ? null : never;
|
|
144
|
-
type ArrayTypeToType<T extends GbnfJsonArraySchema, MinItems extends number = T["minItems"] extends number ? T["prefixItems"] extends readonly GbnfJsonSchema[] ? keyof T["prefixItems"] extends T["minItems"] ? T["prefixItems"]["length"] : T["minItems"] : T["minItems"] : T["prefixItems"] extends readonly GbnfJsonSchema[] ? T["prefixItems"]["length"] : 0> = T["prefixItems"] extends readonly GbnfJsonSchema[] ? (MinItems extends T["prefixItems"]["length"] ? (T["maxItems"] extends MinItems ? [
|
|
145
|
-
...GbnfJsonOrderedArrayTypes<T["prefixItems"]
|
|
146
|
-
...IndexRangeWithSkip<MinItems, T["prefixItems"]["length"], T["items"] extends GbnfJsonSchema ?
|
|
160
|
+
type ArrayTypeToType<T extends GbnfJsonArraySchema<Record<any, any>>, Defs extends GbnfJsonDefList<Defs> = {}, MinItems extends number = T["minItems"] extends number ? T["prefixItems"] extends readonly GbnfJsonSchema[] ? keyof T["prefixItems"] extends T["minItems"] ? T["prefixItems"]["length"] : T["minItems"] : T["minItems"] : T["prefixItems"] extends readonly GbnfJsonSchema[] ? T["prefixItems"]["length"] : 0> = T["prefixItems"] extends readonly GbnfJsonSchema[] ? (MinItems extends T["prefixItems"]["length"] ? (T["maxItems"] extends MinItems ? [
|
|
161
|
+
...GbnfJsonOrderedArrayTypes<T["prefixItems"], CombineDefs<Defs, T["$defs"]>>,
|
|
162
|
+
...IndexRangeWithSkip<MinItems, T["prefixItems"]["length"], T["items"] extends GbnfJsonSchema ? GbnfJsonSchemaToTSType<T["items"], CombineDefs<Defs, T["$defs"]>> : GbnfJsonAnyValue>
|
|
147
163
|
] : [
|
|
148
|
-
...GbnfJsonOrderedArrayTypes<T["prefixItems"]
|
|
149
|
-
...(T["items"] extends GbnfJsonSchema ?
|
|
164
|
+
...GbnfJsonOrderedArrayTypes<T["prefixItems"], CombineDefs<Defs, T["$defs"]>>,
|
|
165
|
+
...(T["items"] extends GbnfJsonSchema ? GbnfJsonSchemaToTSType<T["items"], CombineDefs<Defs, T["$defs"]>> : GbnfJsonAnyValue)[]
|
|
150
166
|
]) : T["maxItems"] extends MinItems ? [
|
|
151
|
-
...GbnfJsonOrderedArrayTypes<T["prefixItems"]
|
|
152
|
-
...(T["items"] extends GbnfJsonSchema ? IndexRangeWithSkip<T["maxItems"], T["prefixItems"]["length"],
|
|
167
|
+
...GbnfJsonOrderedArrayTypes<T["prefixItems"], CombineDefs<Defs, T["$defs"]>>,
|
|
168
|
+
...(T["items"] extends GbnfJsonSchema ? IndexRangeWithSkip<T["maxItems"], T["prefixItems"]["length"], GbnfJsonSchemaToTSType<T["items"], CombineDefs<Defs, T["$defs"]>>> : IndexRangeWithSkip<T["maxItems"], T["prefixItems"]["length"], GbnfJsonAnyValue>)
|
|
153
169
|
] : [
|
|
154
|
-
...GbnfJsonOrderedArrayTypes<T["prefixItems"]
|
|
155
|
-
...IndexRangeWithSkip<MinItems, T["prefixItems"]["length"], T["items"] extends GbnfJsonSchema ?
|
|
156
|
-
...(T["items"] extends GbnfJsonSchema ?
|
|
157
|
-
]) : T["items"] extends GbnfJsonSchema ? (MinItems extends 0 ?
|
|
158
|
-
...IndexRange<MinItems,
|
|
159
|
-
...
|
|
170
|
+
...GbnfJsonOrderedArrayTypes<T["prefixItems"], CombineDefs<Defs, T["$defs"]>>,
|
|
171
|
+
...IndexRangeWithSkip<MinItems, T["prefixItems"]["length"], T["items"] extends GbnfJsonSchema ? GbnfJsonSchemaToTSType<T["items"], CombineDefs<Defs, T["$defs"]>> : GbnfJsonAnyValue>,
|
|
172
|
+
...(T["items"] extends GbnfJsonSchema ? GbnfJsonSchemaToTSType<T["items"], CombineDefs<Defs, T["$defs"]>> : GbnfJsonAnyValue)[]
|
|
173
|
+
]) : T["items"] extends GbnfJsonSchema ? (MinItems extends 0 ? GbnfJsonSchemaToTSType<T["items"], CombineDefs<Defs, T["$defs"]>>[] : T["maxItems"] extends MinItems ? IndexRange<T["maxItems"], GbnfJsonSchemaToTSType<T["items"], CombineDefs<Defs, T["$defs"]>>> : [
|
|
174
|
+
...IndexRange<MinItems, GbnfJsonSchemaToTSType<T["items"], CombineDefs<Defs, T["$defs"]>>>,
|
|
175
|
+
...GbnfJsonSchemaToTSType<T["items"], CombineDefs<Defs, T["$defs"]>>[]
|
|
160
176
|
]) : (MinItems extends 0 ? GbnfJsonAnyValue[] : T["maxItems"] extends MinItems ? IndexRange<T["maxItems"], GbnfJsonAnyValue> : [
|
|
161
177
|
...IndexRange<MinItems, GbnfJsonAnyValue>,
|
|
162
178
|
...GbnfJsonAnyValue[]
|
|
163
179
|
]);
|
|
164
|
-
type GbnfJsonObjectSchemaToType<T extends GbnfJsonObjectSchema, Props extends Readonly<Record<string, GbnfJsonSchema>> | undefined = T["properties"], AdditionalProps extends true | false | GbnfJsonSchema | undefined = T["additionalProperties"], PropsMap = Props extends undefined ? {} : {
|
|
165
|
-
-readonly [P in keyof Props]:
|
|
180
|
+
type GbnfJsonObjectSchemaToType<T extends GbnfJsonObjectSchema<string, Record<any, any>>, Defs extends GbnfJsonDefList<Defs> = {}, Props extends Readonly<Record<string, GbnfJsonSchema>> | undefined = T["properties"], AdditionalProps extends true | false | GbnfJsonSchema | undefined = T["additionalProperties"], PropsMap = Props extends undefined ? {} : {
|
|
181
|
+
-readonly [P in keyof Props]: GbnfJsonSchemaToTSType<Props[P], CombineDefs<Defs, T["$defs"]>>;
|
|
166
182
|
}, Res = AdditionalProps extends undefined | false ? PropsMap : AdditionalProps extends true ? PropsMap & {
|
|
167
183
|
[key: string]: GbnfJsonAnyValue;
|
|
168
184
|
} : AdditionalProps extends GbnfJsonSchema ? PropsMap & {
|
|
169
|
-
[key: string]:
|
|
185
|
+
[key: string]: GbnfJsonSchemaToTSType<AdditionalProps, CombineDefs<Defs, T["$defs"]>>;
|
|
170
186
|
} : PropsMap> = Res;
|
|
187
|
+
type GbnfJsonRefSchemaToType<T extends GbnfJsonRefSchema<Defs>, Defs extends GbnfJsonDefList<Defs> = {}> = T["$ref"] extends `#/$defs/${infer Key}` ? Key extends keyof Defs ? GbnfJsonSchemaToTSType<Defs[Key], Defs> : never : never;
|
|
171
188
|
type GbnfJsonAnyValue = string | number | boolean | null | GbnfJsonAnyValue[] | {
|
|
172
189
|
[key: string]: GbnfJsonAnyValue;
|
|
173
190
|
};
|
|
@@ -178,14 +195,19 @@ export declare function isGbnfJsonBasicStringSchema(schema: GbnfJsonSchema): sch
|
|
|
178
195
|
export declare function isGbnfJsonFormatStringSchema(schema: GbnfJsonSchema): schema is GbnfJsonFormatStringSchema;
|
|
179
196
|
export declare function isGbnfJsonObjectSchema(schema: GbnfJsonSchema): schema is GbnfJsonObjectSchema;
|
|
180
197
|
export declare function isGbnfJsonArraySchema(schema: GbnfJsonSchema): schema is GbnfJsonArraySchema;
|
|
198
|
+
export declare function isGbnfJsonRefSchema(schema: GbnfJsonSchema): schema is GbnfJsonRefSchema<Record<any, any>>;
|
|
181
199
|
export declare function isGbnfJsonBasicSchemaIncludesType<T extends GbnfJsonSchemaImmutableType>(schema: GbnfJsonBasicSchema, type: T): schema is GbnfJsonBasicSchema & {
|
|
182
200
|
type: T | (T | GbnfJsonSchemaImmutableType)[];
|
|
183
201
|
};
|
|
202
|
+
type OnlyStringKeys<T extends object> = {
|
|
203
|
+
[K in keyof T]: K extends string ? K : never;
|
|
204
|
+
}[keyof T];
|
|
205
|
+
type CombineDefs<Defs1 extends GbnfJsonDefList<Defs1>, Param2 extends Defs1 | Defs2 | undefined, Defs2 extends GbnfJsonDefList<Defs2> = {}> = undefined extends NoInfer<Param2> ? Defs1 : Defs1 & Param2;
|
|
184
206
|
type IndexRange<Length extends number, FillType = number, Res = _IndexRange<[], Length, FillType>> = Res;
|
|
185
207
|
type _IndexRange<Value extends FillType[], MaxLength extends number, FillType = number> = Value["length"] extends MaxLength ? Value : _IndexRange<[...Value, FillType], MaxLength, FillType>;
|
|
186
208
|
type IndexRangeWithSkip<Length extends number, SkipFirst extends number, FillType, Res = _IndexRangeWithSkip<[], IndexRange<SkipFirst>, Length, FillType>> = Res;
|
|
187
209
|
type _IndexRangeWithSkip<Value extends FillType[], ConditionValue extends number[], MaxLength extends number, FillType> = ConditionValue["length"] extends MaxLength ? Value : _IndexRangeWithSkip<[...Value, FillType], [...ConditionValue, ConditionValue["length"]], MaxLength, FillType>;
|
|
188
|
-
type GbnfJsonOrderedArrayTypes<T extends readonly GbnfJsonSchema[]> = {
|
|
189
|
-
-readonly [P in keyof T]:
|
|
210
|
+
type GbnfJsonOrderedArrayTypes<T extends readonly GbnfJsonSchema[], Defs extends GbnfJsonDefList<Defs> = {}> = {
|
|
211
|
+
-readonly [P in keyof T]: GbnfJsonSchemaToTSType<T[P], Defs>;
|
|
190
212
|
};
|
|
191
213
|
export {};
|