@promptbook/core 0.84.0-13 → 0.84.0-15

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/LICENSE.md ADDED
@@ -0,0 +1 @@
1
+ [Functional Source License, Version 1.1, ALv2 Future License](https://github.com/getsentry/fsl.software/blob/main/FSL-1.1-ALv2.template.md)
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  <!-- ⚠️ WARNING: This code has been generated so that any manual changes will be overwritten -->
2
2
 
3
- # Promptbook
3
+ # Promptbook
4
4
 
5
5
 
6
6
 
@@ -16,10 +16,10 @@
16
16
 
17
17
  ## ❄ New Features
18
18
 
19
+ - 🐋 **Support of [DeepSeek models](https://www.deepseek.com/)**
19
20
  - 💙 Working [the **Book** language v1.0.0](https://github.com/webgptorg/book)
20
21
  - 🖤 Run books from CLI - `npx ptbk run path/to/your/book`
21
- - 📚 Support of `.docx`, `.doc` and `.pdf` documents
22
- - ✨ **Support of [OpenAI o1 model](https://openai.com/o1/)**
22
+ - 📚 Support of `.docx`, `.doc` and `.pdf` documents as knowledge
23
23
 
24
24
 
25
25
 
package/esm/index.es.js CHANGED
@@ -7,7 +7,7 @@ import hexEncoder from 'crypto-js/enc-hex';
7
7
  import sha256 from 'crypto-js/sha256';
8
8
  import { basename, join, dirname } from 'path';
9
9
  import { SHA256 } from 'crypto-js';
10
- import { lookup } from 'mime-types';
10
+ import { lookup, extension } from 'mime-types';
11
11
  import moment from 'moment';
12
12
  import colors from 'colors';
13
13
 
@@ -25,7 +25,7 @@ var BOOK_LANGUAGE_VERSION = '1.0.0';
25
25
  * @generated
26
26
  * @see https://github.com/webgptorg/promptbook
27
27
  */
28
- var PROMPTBOOK_ENGINE_VERSION = '0.84.0-12';
28
+ var PROMPTBOOK_ENGINE_VERSION = '0.84.0-14';
29
29
  /**
30
30
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
31
31
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -672,6 +672,18 @@ var DEFAULT_BOOK_TITLE = "\u2728 Untitled Book";
672
672
  * @public exported from `@promptbook/core`
673
673
  */
674
674
  var DEFAULT_TASK_TITLE = "Task";
675
+ /**
676
+ * When the title of the prompt task is not provided, the default title is used
677
+ *
678
+ * @public exported from `@promptbook/core`
679
+ */
680
+ var DEFAULT_PROMPT_TASK_TITLE = "Prompt";
681
+ /**
682
+ * When the pipeline is flat and no name of return parameter is provided, this name is used
683
+ *
684
+ * @public exported from `@promptbook/core`
685
+ */
686
+ var DEFAULT_BOOK_OUTPUT_PARAMETER_NAME = 'result';
675
687
  // <- TODO: [🧠] Better system for generator warnings - not always "code" and "by `@promptbook/cli`"
676
688
  /**
677
689
  * The maximum number of iterations for a loops
@@ -5821,6 +5833,17 @@ function isFileExisting(filename, fs) {
5821
5833
  * TODO: [🖇] What about symlinks?
5822
5834
  */
5823
5835
 
5836
+ /**
5837
+ * Convert mime type to file extension
5838
+ *
5839
+ * Note: If the mime type is invalid, `null` is returned
5840
+ *
5841
+ * @private within the repository
5842
+ */
5843
+ function mimeTypeToExtension(value) {
5844
+ return extension(value) || null;
5845
+ }
5846
+
5824
5847
  /**
5825
5848
  * Removes emojis from a string and fix whitespaces
5826
5849
  *
@@ -5914,7 +5937,7 @@ function makeKnowledgeSourceHandler(knowledgeSource, tools, options) {
5914
5937
  case 1:
5915
5938
  response_1 = _l.sent();
5916
5939
  mimeType = ((_a = response_1.headers.get('content-type')) === null || _a === void 0 ? void 0 : _a.split(';')[0]) || 'text/html';
5917
- if (tools.fs === undefined || !url.endsWith('.pdf')) {
5940
+ if (tools.fs === undefined || !url.endsWith('.pdf' /* <- TODO: [💵] */)) {
5918
5941
  return [2 /*return*/, {
5919
5942
  source: name,
5920
5943
  filename: null,
@@ -5959,7 +5982,7 @@ function makeKnowledgeSourceHandler(knowledgeSource, tools, options) {
5959
5982
  basename = url.split('/').pop() || titleToName(url);
5960
5983
  hash = sha256(hexEncoder.parse(url)).toString( /* hex */);
5961
5984
  rootDirname_1 = join(process.cwd(), DEFAULT_DOWNLOAD_CACHE_DIRNAME);
5962
- filepath = join.apply(void 0, __spreadArray(__spreadArray([], __read(nameToSubfolderPath(hash /* <- TODO: [🎎] Maybe add some SHA256 prefix */)), false), ["".concat(basename.substring(0, MAX_FILENAME_LENGTH), ".pdf")], false));
5985
+ filepath = join.apply(void 0, __spreadArray(__spreadArray([], __read(nameToSubfolderPath(hash /* <- TODO: [🎎] Maybe add some SHA256 prefix */)), false), ["".concat(basename.substring(0, MAX_FILENAME_LENGTH), ".").concat(mimeTypeToExtension(mimeType))], false));
5963
5986
  return [4 /*yield*/, tools.fs.mkdir(dirname(join(rootDirname_1, filepath)), { recursive: true })];
5964
5987
  case 2:
5965
5988
  _l.sent();
@@ -5970,9 +5993,9 @@ function makeKnowledgeSourceHandler(knowledgeSource, tools, options) {
5970
5993
  case 3: return [4 /*yield*/, _g.apply(_f, _h.concat([_k.apply(_j, [_l.sent()])]))];
5971
5994
  case 4:
5972
5995
  _l.sent();
5973
- // TODO: !!!!!!!! Check the file security
5996
+ // TODO: [💵] Check the file security
5974
5997
  // TODO: !!!!!!!! Check the file size (if it is not too big)
5975
- // TODO: !!!!!!!! Delete the file
5998
+ // TODO: !!!!!!!! Delete the file after the scraping is done
5976
5999
  return [2 /*return*/, makeKnowledgeSourceHandler({ name: name, knowledgeSourceContent: filepath }, tools, __assign(__assign({}, options), { rootDirname: rootDirname_1 }))];
5977
6000
  case 5:
5978
6001
  if (!isValidFilePath(knowledgeSourceContent)) return [3 /*break*/, 7];
@@ -9093,12 +9116,15 @@ function isFlatPipeline(pipelineString) {
9093
9116
  pipelineString = removeMarkdownComments(pipelineString);
9094
9117
  pipelineString = spaceTrim(pipelineString);
9095
9118
  var isMarkdownBeginningWithHeadline = pipelineString.startsWith('# ');
9096
- var isLastLineReturnStatement = pipelineString.split('\n').pop().split('`').join('').startsWith('->');
9097
- // TODO: Also (double)check
9119
+ //const isLastLineReturnStatement = pipelineString.split('\n').pop()!.split('`').join('').startsWith('->');
9120
+ var isBacktickBlockUsed = pipelineString.includes('```');
9121
+ var isQuoteBlocksUsed = /^>\s+/m.test(pipelineString);
9122
+ var isBlocksUsed = isBacktickBlockUsed || isQuoteBlocksUsed;
9123
+ // TODO: [🧉] Also (double)check
9098
9124
  // > const usedCommands
9099
9125
  // > const isBlocksUsed
9100
9126
  // > const returnStatementCount
9101
- var isFlat = !isMarkdownBeginningWithHeadline && isLastLineReturnStatement;
9127
+ var isFlat = !isMarkdownBeginningWithHeadline && !isBlocksUsed; /* && isLastLineReturnStatement */
9102
9128
  return isFlat;
9103
9129
  }
9104
9130
 
@@ -9112,9 +9138,26 @@ function deflatePipeline(pipelineString) {
9112
9138
  return pipelineString;
9113
9139
  }
9114
9140
  var pipelineStringLines = pipelineString.split('\n');
9115
- var returnStatement = pipelineStringLines.pop();
9141
+ var potentialReturnStatement = pipelineStringLines.pop();
9142
+ var returnStatement;
9143
+ if (/(-|=)>\s*\{.*\}/.test(potentialReturnStatement)) {
9144
+ // Note: Last line is return statement
9145
+ returnStatement = potentialReturnStatement;
9146
+ }
9147
+ else {
9148
+ // Note: Last line is not a return statement
9149
+ returnStatement = "-> {".concat(DEFAULT_BOOK_OUTPUT_PARAMETER_NAME, "}");
9150
+ pipelineStringLines.push(potentialReturnStatement);
9151
+ }
9116
9152
  var prompt = spaceTrim(pipelineStringLines.join('\n'));
9117
- pipelineString = validatePipelineString(spaceTrim(function (block) { return "\n # ".concat(DEFAULT_BOOK_TITLE, "\n\n ## Prompt\n\n ```\n ").concat(block(prompt), "\n ```\n\n ").concat(returnStatement, "\n "); }));
9153
+ var quotedPrompt;
9154
+ if (prompt.split('\n').length <= 1) {
9155
+ quotedPrompt = "> ".concat(prompt);
9156
+ }
9157
+ else {
9158
+ quotedPrompt = spaceTrim(function (block) { return "\n ```\n ".concat(block(prompt.split('`').join('\\`')), "\n ```\n "); });
9159
+ }
9160
+ pipelineString = validatePipelineString(spaceTrim(function (block) { return "\n # ".concat(DEFAULT_BOOK_TITLE, "\n\n ## Prompt\n\n ").concat(block(quotedPrompt), "\n\n ").concat(returnStatement, "\n "); }));
9118
9161
  // <- TODO: Maybe use book` notation
9119
9162
  return pipelineString;
9120
9163
  }
@@ -11373,7 +11416,7 @@ var markitdownScraperMetadata = $deepFreeze({
11373
11416
  className: 'MarkitdownScraper',
11374
11417
  mimeTypes: [
11375
11418
  'application/pdf',
11376
- // TODO: Make priority for scrapers and than allow all mime types here:
11419
+ // TODO: [💵] Make priority for scrapers and than analyze which mime-types can Markitdown scrape and allow all mime types here:
11377
11420
  // 'text/html',
11378
11421
  // 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
11379
11422
  ],
@@ -11535,5 +11578,5 @@ var PrefixStorage = /** @class */ (function () {
11535
11578
  return PrefixStorage;
11536
11579
  }());
11537
11580
 
11538
- export { $llmToolsMetadataRegister, $llmToolsRegister, $scrapersMetadataRegister, $scrapersRegister, ADMIN_EMAIL, ADMIN_GITHUB_NAME, AbstractFormatError, BOOK_LANGUAGE_VERSION, BlackholeStorage, BoilerplateError, BoilerplateFormfactorDefinition, CLAIM, CallbackInterfaceTools, ChatbotFormfactorDefinition, CollectionError, CsvFormatDefinition, CsvFormatError, DEFAULT_BOOKS_DIRNAME, 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_KNOWLEDGE_SOURCES_SCRAPING_DEPTH, DEFAULT_MAX_KNOWLEDGE_SOURCES_SCRAPING_TOTAL, DEFAULT_MAX_PARALLEL_COUNT, DEFAULT_PIPELINE_COLLECTION_BASE_FILENAME, DEFAULT_REMOTE_URL, DEFAULT_REMOTE_URL_PATH, DEFAULT_SCRAPE_CACHE_DIRNAME, DEFAULT_TASK_TITLE, EXPECTATION_UNITS, EnvironmentMismatchError, ExecutionReportStringOptionsDefaults, ExpectError, FORMFACTOR_DEFINITIONS, GENERIC_PIPELINE_INTERFACE, GeneratorFormfactorDefinition, GenericFormfactorDefinition, ImageGeneratorFormfactorDefinition, KnowledgeScrapeError, LOGO_DARK_SRC, LOGO_LIGHT_SRC, LimitReachedError, MANDATORY_CSV_SETTINGS, MAX_FILENAME_LENGTH, MODEL_VARIANTS, MatcherFormfactorDefinition, MemoryStorage, MissingToolsError, MultipleLlmExecutionTools, NAME, NonTaskSectionTypes, NotFoundError, NotYetImplementedError, ORDER_OF_PIPELINE_JSON, PROMPTBOOK_ENGINE_VERSION, PROMPTBOOK_ERRORS, ParseError, PipelineExecutionError, PipelineLogicError, PipelineUrlError, PrefixStorage, RESERVED_PARAMETER_NAMES, SET_IS_VERBOSE, SectionTypes, SheetsFormfactorDefinition, TaskTypes, TextFormatDefinition, TranslatorFormfactorDefinition, UNCERTAIN_USAGE, UnexpectedError, ZERO_USAGE, _AnthropicClaudeMetadataRegistration, _AzureOpenAiMetadataRegistration, _BoilerplateScraperMetadataRegistration, _DocumentScraperMetadataRegistration, _GoogleMetadataRegistration, _LegacyDocumentScraperMetadataRegistration, _MarkdownScraperMetadataRegistration, _MarkitdownScraperMetadataRegistration, _OpenAiAssistantMetadataRegistration, _OpenAiMetadataRegistration, _PdfScraperMetadataRegistration, _WebsiteScraperMetadataRegistration, addUsage, assertsExecutionSuccessful, book, cacheLlmTools, collectionToJson, compilePipeline, countTotalUsage, createCollectionFromJson, createCollectionFromPromise, createCollectionFromUrl, createLlmToolsFromConfiguration, createPipelineExecutor, createSubcollection, embeddingVectorToString, executionReportJsonToString, extractParameterNamesFromTask, getPipelineInterface, isPassingExpectations, isPipelineImplementingInterface, isPipelineInterfacesEqual, isPipelinePrepared, isValidPipelineString, joinLlmExecutionTools, limitTotalUsage, makeKnowledgeSourceHandler, parsePipeline, pipelineJsonToString, prepareKnowledgePieces, preparePersona, preparePipeline, prepareTasks, prettifyPipelineString, unpreparePipeline, usageToHuman, usageToWorktime, validatePipeline, validatePipelineString };
11581
+ export { $llmToolsMetadataRegister, $llmToolsRegister, $scrapersMetadataRegister, $scrapersRegister, ADMIN_EMAIL, ADMIN_GITHUB_NAME, AbstractFormatError, BOOK_LANGUAGE_VERSION, BlackholeStorage, BoilerplateError, BoilerplateFormfactorDefinition, CLAIM, 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_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_URL, DEFAULT_REMOTE_URL_PATH, DEFAULT_SCRAPE_CACHE_DIRNAME, DEFAULT_TASK_TITLE, EXPECTATION_UNITS, EnvironmentMismatchError, ExecutionReportStringOptionsDefaults, ExpectError, FORMFACTOR_DEFINITIONS, GENERIC_PIPELINE_INTERFACE, GeneratorFormfactorDefinition, GenericFormfactorDefinition, ImageGeneratorFormfactorDefinition, KnowledgeScrapeError, LOGO_DARK_SRC, LOGO_LIGHT_SRC, LimitReachedError, MANDATORY_CSV_SETTINGS, MAX_FILENAME_LENGTH, MODEL_VARIANTS, MatcherFormfactorDefinition, MemoryStorage, MissingToolsError, MultipleLlmExecutionTools, NAME, NonTaskSectionTypes, NotFoundError, NotYetImplementedError, ORDER_OF_PIPELINE_JSON, PROMPTBOOK_ENGINE_VERSION, PROMPTBOOK_ERRORS, ParseError, PipelineExecutionError, PipelineLogicError, PipelineUrlError, PrefixStorage, RESERVED_PARAMETER_NAMES, SET_IS_VERBOSE, SectionTypes, SheetsFormfactorDefinition, TaskTypes, TextFormatDefinition, TranslatorFormfactorDefinition, UNCERTAIN_USAGE, UnexpectedError, ZERO_USAGE, _AnthropicClaudeMetadataRegistration, _AzureOpenAiMetadataRegistration, _BoilerplateScraperMetadataRegistration, _DocumentScraperMetadataRegistration, _GoogleMetadataRegistration, _LegacyDocumentScraperMetadataRegistration, _MarkdownScraperMetadataRegistration, _MarkitdownScraperMetadataRegistration, _OpenAiAssistantMetadataRegistration, _OpenAiMetadataRegistration, _PdfScraperMetadataRegistration, _WebsiteScraperMetadataRegistration, addUsage, assertsExecutionSuccessful, book, cacheLlmTools, collectionToJson, compilePipeline, countTotalUsage, createCollectionFromJson, createCollectionFromPromise, createCollectionFromUrl, createLlmToolsFromConfiguration, createPipelineExecutor, createSubcollection, embeddingVectorToString, executionReportJsonToString, extractParameterNamesFromTask, getPipelineInterface, isPassingExpectations, isPipelineImplementingInterface, isPipelineInterfacesEqual, isPipelinePrepared, isValidPipelineString, joinLlmExecutionTools, limitTotalUsage, makeKnowledgeSourceHandler, parsePipeline, pipelineJsonToString, prepareKnowledgePieces, preparePersona, preparePipeline, prepareTasks, prettifyPipelineString, unpreparePipeline, usageToHuman, usageToWorktime, validatePipeline, validatePipelineString };
11539
11582
  //# sourceMappingURL=index.es.js.map