@promptbook/core 0.92.0-5 → 0.92.0-7

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/esm/index.es.js CHANGED
@@ -27,7 +27,7 @@ const BOOK_LANGUAGE_VERSION = '1.0.0';
27
27
  * @generated
28
28
  * @see https://github.com/webgptorg/promptbook
29
29
  */
30
- const PROMPTBOOK_ENGINE_VERSION = '0.92.0-5';
30
+ const PROMPTBOOK_ENGINE_VERSION = '0.92.0-7';
31
31
  /**
32
32
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
33
33
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -1893,6 +1893,45 @@ function $randomToken(randomness) {
1893
1893
  * TODO: Maybe use nanoid instead https://github.com/ai/nanoid
1894
1894
  */
1895
1895
 
1896
+ /**
1897
+ * Converts a JavaScript Object Notation (JSON) string into an object.
1898
+ *
1899
+ * Note: This is wrapper around `JSON.parse()` with better error and type handling
1900
+ *
1901
+ * @public exported from `@promptbook/utils`
1902
+ */
1903
+ function jsonParse(value) {
1904
+ if (value === undefined) {
1905
+ throw new Error(`Can not parse JSON from undefined value.`);
1906
+ }
1907
+ else if (typeof value !== 'string') {
1908
+ console.error('Can not parse JSON from non-string value.', { text: value });
1909
+ throw new Error(spaceTrim(`
1910
+ Can not parse JSON from non-string value.
1911
+
1912
+ The value type: ${typeof value}
1913
+ See more in console.
1914
+ `));
1915
+ }
1916
+ try {
1917
+ return JSON.parse(value);
1918
+ }
1919
+ catch (error) {
1920
+ if (!(error instanceof Error)) {
1921
+ throw error;
1922
+ }
1923
+ throw new Error(spaceTrim((block) => `
1924
+ ${block(error.message)}
1925
+
1926
+ The JSON text:
1927
+ ${block(value)}
1928
+ `));
1929
+ }
1930
+ }
1931
+ /**
1932
+ * TODO: !!!! Use in Promptbook.studio
1933
+ */
1934
+
1896
1935
  /**
1897
1936
  * Recursively converts JSON strings to JSON objects
1898
1937
 
@@ -1911,7 +1950,7 @@ function jsonStringsToJsons(object) {
1911
1950
  const newObject = { ...object };
1912
1951
  for (const [key, value] of Object.entries(object)) {
1913
1952
  if (typeof value === 'string' && isValidJsonString(value)) {
1914
- newObject[key] = JSON.parse(value);
1953
+ newObject[key] = jsonParse(value);
1915
1954
  }
1916
1955
  else {
1917
1956
  newObject[key] = jsonStringsToJsons(value);
@@ -4327,13 +4366,79 @@ async function getExamplesForTask(task) {
4327
4366
  /**
4328
4367
  * @@@
4329
4368
  *
4369
+ * Here is the place where RAG (retrieval-augmented generation) happens
4370
+ *
4330
4371
  * @private internal utility of `createPipelineExecutor`
4331
4372
  */
4332
4373
  async function getKnowledgeForTask(options) {
4333
- const { preparedPipeline, task } = options;
4334
- return preparedPipeline.knowledgePieces.map(({ content }) => `- ${content}`).join('\n');
4374
+ const { tools, preparedPipeline, task } = options;
4375
+ const firstKnowlegePiece = preparedPipeline.knowledgePieces[0];
4376
+ const firstKnowlegeIndex = firstKnowlegePiece === null || firstKnowlegePiece === void 0 ? void 0 : firstKnowlegePiece.index[0];
4377
+ // <- TODO: Do not use just first knowledge piece and first index to determine embedding model, use also keyword search
4378
+ if (firstKnowlegePiece === undefined || firstKnowlegeIndex === undefined) {
4379
+ return 'No knowledge pieces found';
4380
+ }
4381
+ // TODO: [🚐] Make arrayable LLMs -> single LLM DRY
4382
+ const _llms = arrayableToArray(tools.llm);
4383
+ const llmTools = _llms.length === 1 ? _llms[0] : joinLlmExecutionTools(..._llms);
4384
+ const taskEmbeddingPrompt = {
4385
+ title: 'Knowledge Search',
4386
+ modelRequirements: {
4387
+ modelVariant: 'EMBEDDING',
4388
+ modelName: firstKnowlegeIndex.modelName,
4389
+ },
4390
+ content: task.content,
4391
+ parameters: {
4392
+ /* !!!!!!!! */
4393
+ },
4394
+ };
4395
+ const taskEmbeddingResult = await llmTools.callEmbeddingModel(taskEmbeddingPrompt);
4396
+ const knowledgePiecesWithRelevance = preparedPipeline.knowledgePieces.map((knowledgePiece) => {
4397
+ const { index } = knowledgePiece;
4398
+ const knowledgePieceIndex = index.find((i) => i.modelName === firstKnowlegeIndex.modelName);
4399
+ // <- TODO: Do not use just first knowledge piece and first index to determine embedding model
4400
+ if (knowledgePieceIndex === undefined) {
4401
+ return {
4402
+ content: knowledgePiece.content,
4403
+ relevance: 0,
4404
+ };
4405
+ }
4406
+ const relevance = computeCosineSimilarity(knowledgePieceIndex.position, taskEmbeddingResult.content);
4407
+ return {
4408
+ content: knowledgePiece.content,
4409
+ relevance,
4410
+ };
4411
+ });
4412
+ const knowledgePiecesSorted = knowledgePiecesWithRelevance.sort((a, b) => a.relevance - b.relevance);
4413
+ const knowledgePiecesLimited = knowledgePiecesSorted.slice(0, 5);
4414
+ console.log('!!! Embedding', {
4415
+ task,
4416
+ taskEmbeddingPrompt,
4417
+ taskEmbeddingResult,
4418
+ firstKnowlegePiece,
4419
+ firstKnowlegeIndex,
4420
+ knowledgePiecesWithRelevance,
4421
+ knowledgePiecesSorted,
4422
+ knowledgePiecesLimited,
4423
+ });
4424
+ return knowledgePiecesLimited.map(({ content }) => `- ${content}`).join('\n');
4335
4425
  // <- TODO: [🧠] Some smart aggregation of knowledge pieces, single-line vs multi-line vs mixed
4336
4426
  }
4427
+ // TODO: !!!!!! Annotate + to new file
4428
+ function computeCosineSimilarity(embeddingVector1, embeddingVector2) {
4429
+ if (embeddingVector1.length !== embeddingVector2.length) {
4430
+ throw new TypeError('Embedding vectors must have the same length');
4431
+ }
4432
+ const dotProduct = embeddingVector1.reduce((sum, value, index) => sum + value * embeddingVector2[index], 0);
4433
+ const magnitude1 = Math.sqrt(embeddingVector1.reduce((sum, value) => sum + value * value, 0));
4434
+ const magnitude2 = Math.sqrt(embeddingVector2.reduce((sum, value) => sum + value * value, 0));
4435
+ return 1 - dotProduct / (magnitude1 * magnitude2);
4436
+ }
4437
+ /**
4438
+ * TODO: !!!! Verify if this is working
4439
+ * TODO: [♨] Implement Better - use keyword search
4440
+ * TODO: [♨] Examples of values
4441
+ */
4337
4442
 
4338
4443
  /**
4339
4444
  * @@@
@@ -4341,9 +4446,9 @@ async function getKnowledgeForTask(options) {
4341
4446
  * @private internal utility of `createPipelineExecutor`
4342
4447
  */
4343
4448
  async function getReservedParametersForTask(options) {
4344
- const { preparedPipeline, task, pipelineIdentification } = options;
4449
+ const { tools, preparedPipeline, task, pipelineIdentification } = options;
4345
4450
  const context = await getContextForTask(); // <- [🏍]
4346
- const knowledge = await getKnowledgeForTask({ preparedPipeline, task });
4451
+ const knowledge = await getKnowledgeForTask({ tools, preparedPipeline, task });
4347
4452
  const examples = await getExamplesForTask();
4348
4453
  const currentDate = new Date().toISOString(); // <- TODO: [🧠][💩] Better
4349
4454
  const modelName = RESERVED_PARAMETER_MISSING_VALUE;
@@ -4405,6 +4510,7 @@ async function executeTask(options) {
4405
4510
  }
4406
4511
  const definedParameters = Object.freeze({
4407
4512
  ...(await getReservedParametersForTask({
4513
+ tools,
4408
4514
  preparedPipeline,
4409
4515
  task: currentTask,
4410
4516
  pipelineIdentification,
@@ -4976,18 +5082,26 @@ async function preparePersona(personaDescription, tools, options) {
4976
5082
  }).asPromise();
4977
5083
  const { outputParameters } = result;
4978
5084
  const { modelsRequirements: modelsRequirementsJson } = outputParameters;
4979
- const modelsRequirementsUnchecked = JSON.parse(modelsRequirementsJson);
5085
+ let modelsRequirementsUnchecked = jsonParse(modelsRequirementsJson);
4980
5086
  if (isVerbose) {
4981
5087
  console.info(`PERSONA ${personaDescription}`, modelsRequirementsUnchecked);
4982
5088
  }
4983
5089
  if (!Array.isArray(modelsRequirementsUnchecked)) {
4984
- throw new UnexpectedError(spaceTrim((block) => `
5090
+ // <- TODO: Book should have syntax and system to enforce shape of JSON
5091
+ modelsRequirementsUnchecked = [modelsRequirementsUnchecked];
5092
+ /*
5093
+ throw new UnexpectedError(
5094
+ spaceTrim(
5095
+ (block) => `
4985
5096
  Invalid \`modelsRequirements\`:
4986
5097
 
4987
5098
  \`\`\`json
4988
5099
  ${block(JSON.stringify(modelsRequirementsUnchecked, null, 4))}
4989
5100
  \`\`\`
4990
- `));
5101
+ `,
5102
+ ),
5103
+ );
5104
+ */
4991
5105
  }
4992
5106
  const modelsRequirements = modelsRequirementsUnchecked.map((modelRequirements) => ({
4993
5107
  modelVariant: 'CHAT',
@@ -5563,7 +5677,7 @@ async function makeKnowledgeSourceHandler(knowledgeSource, tools, options) {
5563
5677
  > },
5564
5678
  */
5565
5679
  async asJson() {
5566
- return JSON.parse(await tools.fs.readFile(filename, 'utf-8'));
5680
+ return jsonParse(await tools.fs.readFile(filename, 'utf-8'));
5567
5681
  },
5568
5682
  async asText() {
5569
5683
  return await tools.fs.readFile(filename, 'utf-8');
@@ -10209,6 +10323,48 @@ function createLlmToolsFromConfiguration(configuration, options = {}) {
10209
10323
  * TODO: [®] DRY Register logic
10210
10324
  */
10211
10325
 
10326
+ /**
10327
+ * How is the model provider trusted?
10328
+ *
10329
+ * @public exported from `@promptbook/core`
10330
+ */
10331
+ const MODEL_TRUST_LEVEL = {
10332
+ FULL: `Model is running on the local machine, training data and model weights are known, data are ethically sourced`,
10333
+ OPEN: `Model is open source, training data and model weights are known`,
10334
+ PARTIALLY_OPEN: `Model is open source, but training data and model weights are not (fully) known`,
10335
+ CLOSED_LOCAL: `Model can be run locally, but it is not open source`,
10336
+ CLOSED_FREE: `Model is behind API gateway but free to use`,
10337
+ CLOSED_BUSINESS: `Model is behind API gateway and paid but has good SLA, TOS, privacy policy and in general is a good to use in business applications`,
10338
+ CLOSED: `Model is behind API gateway and paid`,
10339
+ UNTRUSTED: `Model has questions about the training data and ethics, but it is not known if it is a problem or not`,
10340
+ VURNABLE: `Model has some known serious vulnerabilities, leaks, ethical problems, etc.`,
10341
+ };
10342
+ // <- TODO: Maybe do better levels of trust
10343
+ /**
10344
+ * How is the model provider important?
10345
+ *
10346
+ * @public exported from `@promptbook/core`
10347
+ */
10348
+ const MODEL_ORDER = {
10349
+ /**
10350
+ * Top-tier models, e.g. OpenAI, Anthropic,...
10351
+ */
10352
+ TOP_TIER: 333,
10353
+ /**
10354
+ * Mid-tier models, e.g. Llama, Mistral, etc.
10355
+ */
10356
+ NORMAL: 100,
10357
+ /**
10358
+ * Low-tier models, e.g. Phi, Tiny, etc.
10359
+ */
10360
+ LOW_TIER: 0,
10361
+ };
10362
+ /**
10363
+ * TODO: Add configuration schema and maybe some documentation link
10364
+ * TODO: Maybe constrain LlmToolsConfiguration[number] by generic to ensure that `createConfigurationFromEnv` and `getBoilerplateConfiguration` always create same `packageName` and `className`
10365
+ * TODO: [®] DRY Register logic
10366
+ */
10367
+
10212
10368
  /**
10213
10369
  * Stores data in memory (HEAP)
10214
10370
  *
@@ -10408,9 +10564,11 @@ const _AnthropicClaudeMetadataRegistration = $llmToolsMetadataRegister.register(
10408
10564
  packageName: '@promptbook/anthropic-claude',
10409
10565
  className: 'AnthropicClaudeExecutionTools',
10410
10566
  envVariables: ['ANTHROPIC_CLAUDE_API_KEY'],
10567
+ trustLevel: 'CLOSED',
10568
+ order: MODEL_ORDER.TOP_TIER,
10411
10569
  getBoilerplateConfiguration() {
10412
10570
  return {
10413
- title: 'Anthropic Claude (boilerplate)',
10571
+ title: 'Anthropic Claude',
10414
10572
  packageName: '@promptbook/anthropic-claude',
10415
10573
  className: 'AnthropicClaudeExecutionTools',
10416
10574
  options: {
@@ -10453,9 +10611,11 @@ const _AzureOpenAiMetadataRegistration = $llmToolsMetadataRegister.register({
10453
10611
  packageName: '@promptbook/azure-openai',
10454
10612
  className: 'AzureOpenAiExecutionTools',
10455
10613
  envVariables: ['AZUREOPENAI_RESOURCE_NAME', 'AZUREOPENAI_DEPLOYMENT_NAME', 'AZUREOPENAI_API_KEY'],
10614
+ trustLevel: 'CLOSED_BUSINESS',
10615
+ order: MODEL_ORDER.NORMAL,
10456
10616
  getBoilerplateConfiguration() {
10457
10617
  return {
10458
- title: 'Azure Open AI (boilerplate)',
10618
+ title: 'Azure Open AI',
10459
10619
  packageName: '@promptbook/azure-openai',
10460
10620
  className: 'AzureOpenAiExecutionTools',
10461
10621
  options: {
@@ -10539,9 +10699,11 @@ const _DeepseekMetadataRegistration = $llmToolsMetadataRegister.register({
10539
10699
  packageName: '@promptbook/deepseek',
10540
10700
  className: 'DeepseekExecutionTools',
10541
10701
  envVariables: ['DEEPSEEK_GENERATIVE_AI_API_KEY'],
10702
+ trustLevel: 'UNTRUSTED',
10703
+ order: MODEL_ORDER.NORMAL,
10542
10704
  getBoilerplateConfiguration() {
10543
10705
  return {
10544
- title: 'Deepseek (boilerplate)',
10706
+ title: 'Deepseek',
10545
10707
  packageName: '@promptbook/deepseek',
10546
10708
  className: 'DeepseekExecutionTools',
10547
10709
  options: {
@@ -10588,9 +10750,11 @@ const _GoogleMetadataRegistration = $llmToolsMetadataRegister.register({
10588
10750
  packageName: '@promptbook/google',
10589
10751
  className: 'GoogleExecutionTools',
10590
10752
  envVariables: ['GOOGLE_GENERATIVE_AI_API_KEY'],
10753
+ trustLevel: 'CLOSED',
10754
+ order: MODEL_ORDER.NORMAL,
10591
10755
  getBoilerplateConfiguration() {
10592
10756
  return {
10593
- title: 'Google Gemini (boilerplate)',
10757
+ title: 'Google Gemini',
10594
10758
  packageName: '@promptbook/google',
10595
10759
  className: 'GoogleExecutionTools',
10596
10760
  options: {
@@ -10637,9 +10801,11 @@ const _OpenAiMetadataRegistration = $llmToolsMetadataRegister.register({
10637
10801
  packageName: '@promptbook/openai',
10638
10802
  className: 'OpenAiExecutionTools',
10639
10803
  envVariables: ['OPENAI_API_KEY'],
10804
+ trustLevel: 'CLOSED',
10805
+ order: MODEL_ORDER.TOP_TIER,
10640
10806
  getBoilerplateConfiguration() {
10641
10807
  return {
10642
- title: 'Open AI (boilerplate)',
10808
+ title: 'Open AI',
10643
10809
  packageName: '@promptbook/openai',
10644
10810
  className: 'OpenAiExecutionTools',
10645
10811
  options: {
@@ -10677,9 +10843,11 @@ const _OpenAiAssistantMetadataRegistration = $llmToolsMetadataRegister.register(
10677
10843
  className: 'OpenAiAssistantExecutionTools',
10678
10844
  envVariables: null,
10679
10845
  // <- TODO: ['OPENAI_API_KEY', 'OPENAI_ASSISTANT_ID']
10846
+ trustLevel: 'CLOSED',
10847
+ order: MODEL_ORDER.NORMAL,
10680
10848
  getBoilerplateConfiguration() {
10681
10849
  return {
10682
- title: 'Open AI Assistant (boilerplate)',
10850
+ title: 'Open AI Assistant',
10683
10851
  packageName: '@promptbook/openai',
10684
10852
  className: 'OpenAiAssistantExecutionTools',
10685
10853
  options: {
@@ -11143,5 +11311,5 @@ class PrefixStorage {
11143
11311
  }
11144
11312
  }
11145
11313
 
11146
- export { $llmToolsMetadataRegister, $llmToolsRegister, $scrapersMetadataRegister, $scrapersRegister, ADMIN_EMAIL, ADMIN_GITHUB_NAME, AbstractFormatError, AuthenticationError, BOOK_LANGUAGE_VERSION, BlackholeStorage, BoilerplateError, BoilerplateFormfactorDefinition, CLAIM, CLI_APP_ID, CallbackInterfaceTools, ChatbotFormfactorDefinition, CollectionError, CsvFormatDefinition, CsvFormatError, DEFAULT_BOOKS_DIRNAME, DEFAULT_BOOK_OUTPUT_PARAMETER_NAME, DEFAULT_BOOK_TITLE, DEFAULT_CSV_SETTINGS, DEFAULT_DOWNLOAD_CACHE_DIRNAME, DEFAULT_EXECUTION_CACHE_DIRNAME, DEFAULT_GET_PIPELINE_COLLECTION_FUNCTION_NAME, DEFAULT_INTERMEDIATE_FILES_STRATEGY, DEFAULT_IS_AUTO_INSTALLED, DEFAULT_IS_VERBOSE, DEFAULT_MAX_EXECUTION_ATTEMPTS, DEFAULT_MAX_FILE_SIZE, DEFAULT_MAX_KNOWLEDGE_SOURCES_SCRAPING_DEPTH, DEFAULT_MAX_KNOWLEDGE_SOURCES_SCRAPING_TOTAL, DEFAULT_MAX_PARALLEL_COUNT, DEFAULT_PIPELINE_COLLECTION_BASE_FILENAME, DEFAULT_PROMPT_TASK_TITLE, DEFAULT_REMOTE_SERVER_URL, DEFAULT_SCRAPE_CACHE_DIRNAME, DEFAULT_TASK_TITLE, EXPECTATION_UNITS, EnvironmentMismatchError, ExecutionReportStringOptionsDefaults, ExpectError, FORMFACTOR_DEFINITIONS, GENERIC_PIPELINE_INTERFACE, GeneratorFormfactorDefinition, GenericFormfactorDefinition, ImageGeneratorFormfactorDefinition, KnowledgeScrapeError, LimitReachedError, MANDATORY_CSV_SETTINGS, MAX_FILENAME_LENGTH, MODEL_VARIANTS, MatcherFormfactorDefinition, MemoryStorage, MissingToolsError, MultipleLlmExecutionTools, NAME, NonTaskSectionTypes, NotFoundError, NotYetImplementedError, ORDER_OF_PIPELINE_JSON, PLAYGROUND_APP_ID, PROMPTBOOK_ENGINE_VERSION, PROMPTBOOK_ERRORS, ParseError, PipelineExecutionError, PipelineLogicError, PipelineUrlError, PrefixStorage, PromptbookFetchError, REMOTE_SERVER_URLS, RESERVED_PARAMETER_NAMES, SET_IS_VERBOSE, SectionTypes, SheetsFormfactorDefinition, TaskTypes, TextFormatDefinition, TranslatorFormfactorDefinition, UNCERTAIN_USAGE, UNCERTAIN_ZERO_VALUE, UnexpectedError, WrappedError, ZERO_USAGE, ZERO_VALUE, _AnthropicClaudeMetadataRegistration, _AzureOpenAiMetadataRegistration, _BoilerplateScraperMetadataRegistration, _DeepseekMetadataRegistration, _DocumentScraperMetadataRegistration, _GoogleMetadataRegistration, _LegacyDocumentScraperMetadataRegistration, _MarkdownScraperMetadataRegistration, _MarkitdownScraperMetadataRegistration, _OpenAiAssistantMetadataRegistration, _OpenAiMetadataRegistration, _PdfScraperMetadataRegistration, _WebsiteScraperMetadataRegistration, addUsage, book, cacheLlmTools, collectionToJson, compilePipeline, countUsage, createCollectionFromJson, createCollectionFromPromise, createCollectionFromUrl, createLlmToolsFromConfiguration, createPipelineExecutor, createSubcollection, embeddingVectorToString, executionReportJsonToString, extractParameterNamesFromTask, filterModels, getPipelineInterface, identificationToPromptbookToken, isPassingExpectations, isPipelineImplementingInterface, isPipelineInterfacesEqual, isPipelinePrepared, isValidPipelineString, joinLlmExecutionTools, limitTotalUsage, makeKnowledgeSourceHandler, parsePipeline, pipelineJsonToString, prepareKnowledgePieces, preparePersona, preparePipeline, prepareTasks, prettifyPipelineString, promptbookFetch, promptbookTokenToIdentification, unpreparePipeline, usageToHuman, usageToWorktime, validatePipeline, validatePipelineString };
11314
+ export { $llmToolsMetadataRegister, $llmToolsRegister, $scrapersMetadataRegister, $scrapersRegister, ADMIN_EMAIL, ADMIN_GITHUB_NAME, AbstractFormatError, AuthenticationError, BOOK_LANGUAGE_VERSION, BlackholeStorage, BoilerplateError, BoilerplateFormfactorDefinition, CLAIM, CLI_APP_ID, CallbackInterfaceTools, ChatbotFormfactorDefinition, CollectionError, CsvFormatDefinition, CsvFormatError, DEFAULT_BOOKS_DIRNAME, DEFAULT_BOOK_OUTPUT_PARAMETER_NAME, DEFAULT_BOOK_TITLE, DEFAULT_CSV_SETTINGS, DEFAULT_DOWNLOAD_CACHE_DIRNAME, DEFAULT_EXECUTION_CACHE_DIRNAME, DEFAULT_GET_PIPELINE_COLLECTION_FUNCTION_NAME, DEFAULT_INTERMEDIATE_FILES_STRATEGY, DEFAULT_IS_AUTO_INSTALLED, DEFAULT_IS_VERBOSE, DEFAULT_MAX_EXECUTION_ATTEMPTS, DEFAULT_MAX_FILE_SIZE, DEFAULT_MAX_KNOWLEDGE_SOURCES_SCRAPING_DEPTH, DEFAULT_MAX_KNOWLEDGE_SOURCES_SCRAPING_TOTAL, DEFAULT_MAX_PARALLEL_COUNT, DEFAULT_PIPELINE_COLLECTION_BASE_FILENAME, DEFAULT_PROMPT_TASK_TITLE, DEFAULT_REMOTE_SERVER_URL, DEFAULT_SCRAPE_CACHE_DIRNAME, DEFAULT_TASK_TITLE, EXPECTATION_UNITS, EnvironmentMismatchError, ExecutionReportStringOptionsDefaults, ExpectError, FORMFACTOR_DEFINITIONS, GENERIC_PIPELINE_INTERFACE, GeneratorFormfactorDefinition, GenericFormfactorDefinition, ImageGeneratorFormfactorDefinition, KnowledgeScrapeError, LimitReachedError, MANDATORY_CSV_SETTINGS, MAX_FILENAME_LENGTH, MODEL_ORDER, MODEL_TRUST_LEVEL, MODEL_VARIANTS, MatcherFormfactorDefinition, MemoryStorage, MissingToolsError, MultipleLlmExecutionTools, NAME, NonTaskSectionTypes, NotFoundError, NotYetImplementedError, ORDER_OF_PIPELINE_JSON, PLAYGROUND_APP_ID, PROMPTBOOK_ENGINE_VERSION, PROMPTBOOK_ERRORS, ParseError, PipelineExecutionError, PipelineLogicError, PipelineUrlError, PrefixStorage, PromptbookFetchError, REMOTE_SERVER_URLS, RESERVED_PARAMETER_NAMES, SET_IS_VERBOSE, SectionTypes, SheetsFormfactorDefinition, TaskTypes, TextFormatDefinition, TranslatorFormfactorDefinition, UNCERTAIN_USAGE, UNCERTAIN_ZERO_VALUE, UnexpectedError, WrappedError, ZERO_USAGE, ZERO_VALUE, _AnthropicClaudeMetadataRegistration, _AzureOpenAiMetadataRegistration, _BoilerplateScraperMetadataRegistration, _DeepseekMetadataRegistration, _DocumentScraperMetadataRegistration, _GoogleMetadataRegistration, _LegacyDocumentScraperMetadataRegistration, _MarkdownScraperMetadataRegistration, _MarkitdownScraperMetadataRegistration, _OpenAiAssistantMetadataRegistration, _OpenAiMetadataRegistration, _PdfScraperMetadataRegistration, _WebsiteScraperMetadataRegistration, addUsage, book, cacheLlmTools, collectionToJson, compilePipeline, countUsage, createCollectionFromJson, createCollectionFromPromise, createCollectionFromUrl, createLlmToolsFromConfiguration, createPipelineExecutor, createSubcollection, embeddingVectorToString, executionReportJsonToString, extractParameterNamesFromTask, filterModels, getPipelineInterface, identificationToPromptbookToken, isPassingExpectations, isPipelineImplementingInterface, isPipelineInterfacesEqual, isPipelinePrepared, isValidPipelineString, joinLlmExecutionTools, limitTotalUsage, makeKnowledgeSourceHandler, parsePipeline, pipelineJsonToString, prepareKnowledgePieces, preparePersona, preparePipeline, prepareTasks, prettifyPipelineString, promptbookFetch, promptbookTokenToIdentification, unpreparePipeline, usageToHuman, usageToWorktime, validatePipeline, validatePipelineString };
11147
11315
  //# sourceMappingURL=index.es.js.map