@promptbook/utils 0.73.0 → 0.74.0-11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +176 -3
  2. package/esm/index.es.js +22 -10
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/typings/src/_packages/anthropic-claude.index.d.ts +2 -2
  5. package/esm/typings/src/_packages/azure-openai.index.d.ts +2 -2
  6. package/esm/typings/src/_packages/browser.index.d.ts +2 -2
  7. package/esm/typings/src/_packages/cli.index.d.ts +2 -2
  8. package/esm/typings/src/_packages/core.index.d.ts +7 -3
  9. package/esm/typings/src/_packages/documents.index.d.ts +2 -2
  10. package/esm/typings/src/_packages/execute-javascript.index.d.ts +2 -2
  11. package/esm/typings/src/_packages/fake-llm.index.d.ts +2 -2
  12. package/esm/typings/src/_packages/langtail.index.d.ts +2 -2
  13. package/esm/typings/src/_packages/legacy-documents.index.d.ts +2 -2
  14. package/esm/typings/src/_packages/markdown-utils.index.d.ts +2 -2
  15. package/esm/typings/src/_packages/node.index.d.ts +2 -2
  16. package/esm/typings/src/_packages/openai.index.d.ts +2 -2
  17. package/esm/typings/src/_packages/pdf.index.d.ts +2 -2
  18. package/esm/typings/src/_packages/remote-client.index.d.ts +2 -2
  19. package/esm/typings/src/_packages/remote-server.index.d.ts +2 -2
  20. package/esm/typings/src/_packages/utils.index.d.ts +2 -2
  21. package/esm/typings/src/_packages/website-crawler.index.d.ts +2 -2
  22. package/esm/typings/src/cli/cli-commands/make.d.ts +0 -1
  23. package/esm/typings/src/cli/cli-commands/run.d.ts +14 -0
  24. package/esm/typings/src/cli/promptbookCli.d.ts +1 -0
  25. package/esm/typings/src/cli/test/ptbk.d.ts +5 -2
  26. package/esm/typings/src/commands/{PROMPTBOOK_VERSION/PromptbookVersionCommand.d.ts → BOOK_VERSION/BookVersionCommand.d.ts} +4 -4
  27. package/esm/typings/src/commands/BOOK_VERSION/bookVersionCommandParser.d.ts +9 -0
  28. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +1 -1
  29. package/esm/typings/src/commands/index.d.ts +1 -1
  30. package/esm/typings/src/config.d.ts +6 -0
  31. package/esm/typings/src/storage/blackhole/BlackholeStorage.d.ts +33 -0
  32. package/esm/typings/src/storage/memory/MemoryStorage.d.ts +1 -1
  33. package/esm/typings/src/storage/{memory/utils → utils}/PrefixStorage.d.ts +1 -1
  34. package/esm/typings/src/version.d.ts +13 -2
  35. package/package.json +1 -1
  36. package/umd/index.umd.js +23 -10
  37. package/umd/index.umd.js.map +1 -1
  38. package/esm/typings/src/commands/PROMPTBOOK_VERSION/promptbookVersionCommandParser.d.ts +0 -9
  39. /package/esm/typings/src/commands/{PROMPTBOOK_VERSION/promptbookVersionCommand.test.d.ts → BOOK_VERSION/bookVersionCommand.test.d.ts} +0 -0
  40. /package/esm/typings/src/storage/{memory → local-storage}/utils/makePromptbookStorageFromWebStorage.d.ts +0 -0
@@ -1,4 +1,4 @@
1
- import { PROMPTBOOK_VERSION } from '../version';
1
+ import { BOOK_LANGUAGE_VERSION, PROMPTBOOK_ENGINE_VERSION } from '../version';
2
2
  import { renderPromptbookMermaid } from '../conversion/prettify/renderPipelineMermaidOptions';
3
3
  import { extractParameterNamesFromTemplate } from '../conversion/utils/extractParameterNamesFromTemplate';
4
4
  import { extractVariables } from '../conversion/utils/extractVariables';
@@ -69,7 +69,7 @@ import { isUrlOnPrivateNetwork } from '../utils/validators/url/isUrlOnPrivateNet
69
69
  import { isValidPipelineUrl } from '../utils/validators/url/isValidPipelineUrl';
70
70
  import { isValidUrl } from '../utils/validators/url/isValidUrl';
71
71
  import { isValidUuid } from '../utils/validators/uuid/isValidUuid';
72
- export { PROMPTBOOK_VERSION };
72
+ export { BOOK_LANGUAGE_VERSION, PROMPTBOOK_ENGINE_VERSION };
73
73
  export { renderPromptbookMermaid };
74
74
  export { extractParameterNamesFromTemplate };
75
75
  export { extractVariables };
@@ -1,8 +1,8 @@
1
- import { PROMPTBOOK_VERSION } from '../version';
1
+ import { BOOK_LANGUAGE_VERSION, PROMPTBOOK_ENGINE_VERSION } from '../version';
2
2
  import { createWebsiteScraper } from '../scrapers/website/createWebsiteScraper';
3
3
  import { _WebsiteScraperRegistration } from '../scrapers/website/register-constructor';
4
4
  import { WebsiteScraper } from '../scrapers/website/WebsiteScraper';
5
- export { PROMPTBOOK_VERSION };
5
+ export { BOOK_LANGUAGE_VERSION, PROMPTBOOK_ENGINE_VERSION };
6
6
  export { createWebsiteScraper };
7
7
  export { _WebsiteScraperRegistration };
8
8
  export { WebsiteScraper };
@@ -7,7 +7,6 @@ import type { Command as Program } from 'commander';
7
7
  export declare function initializeMakeCommand(program: Program): void;
8
8
  /**
9
9
  * TODO: [🥃][main] !!! Allow `ptbk make` without configuring any llm tools
10
- * TODO: Maybe remove this command - "about" command should be enough?
11
10
  * TODO: [0] DRY Javascript and typescript - Maybe make ONLY typescript and for javascript just remove types
12
11
  * Note: [🟡] Code in this file should never be published outside of `@promptbook/cli`
13
12
  * TODO: [🖇] What about symlinks? Maybe flag --follow-symlinks
@@ -0,0 +1,14 @@
1
+ import type { Command as Program } from 'commander';
2
+ /**
3
+ * Initializes `run` command for Promptbook CLI utilities
4
+ *
5
+ * @private internal function of `promptbookCli`
6
+ */
7
+ export declare function initializeRunCommand(program: Program): void;
8
+ /**
9
+ * TODO: !!!!!! Catch and wrap all errors from CLI
10
+ * TODO: [🧠] Pass `maxExecutionAttempts`, `csvSettings`
11
+ * TODO: [🥃][main] !!! Allow `ptbk run` without configuring any llm tools
12
+ * Note: [🟡] Code in this file should never be published outside of `@promptbook/cli`
13
+ * TODO: [🖇] What about symlinks? Maybe flag --follow-symlinks
14
+ */
@@ -5,6 +5,7 @@
5
5
  */
6
6
  export declare function promptbookCli(): Promise<void>;
7
7
  /**
8
+ * TODO: [🧠] Maybe `run` command the default, instead of `ptbk run ./foo.ptbk.md` -> `ptbk ./foo.ptbk.md`
8
9
  * TODO: [🥠] Do not export, its just for CLI script
9
10
  * TODO: [🕌] When more functionalities, rename
10
11
  * Note: 11:11
@@ -1,2 +1,5 @@
1
- #!/usr/bin/env node
2
- export {};
1
+ #!/usr/bin/env ts-node
2
+ /**
3
+ * Note: Purpose of this file !!!!!!! vs other place
4
+ */
5
+ import '../../_packages/cli.index.ts';
@@ -1,11 +1,11 @@
1
1
  import type { string_semantic_version } from '../../types/typeAliases';
2
2
  /**
3
- * Parsed PROMPTBOOK_VERSION command
3
+ * Parsed BOOK_VERSION command
4
4
  *
5
- * @see ./promptbookVersionCommandParser.ts for more details
5
+ * @see ./bookVersionCommandParser.ts for more details
6
6
  * @private within the commands folder
7
7
  */
8
- export type PromptbookVersionCommand = {
9
- readonly type: 'PROMPTBOOK_VERSION';
8
+ export type BookVersionCommand = {
9
+ readonly type: 'BOOK_VERSION';
10
10
  readonly promptbookVersion: string_semantic_version;
11
11
  };
@@ -0,0 +1,9 @@
1
+ import type { PipelineHeadCommandParser } from '../_common/types/CommandParser';
2
+ import type { BookVersionCommand } from './BookVersionCommand';
3
+ /**
4
+ * Parses the BOOK_VERSION command
5
+ *
6
+ * @see `documentationUrl` for more details
7
+ * @private within the commands folder
8
+ */
9
+ export declare const bookVersionCommandParser: PipelineHeadCommandParser<BookVersionCommand>;
@@ -169,7 +169,7 @@ export type CommandParserInput = {
169
169
  /**
170
170
  * @@@
171
171
  *
172
- * @example 'PROMPTBOOK_VERSION_0_62_0'
172
+ * @example 'PROMPTBOOK_ENGINE_VERSION_0_62_0'
173
173
  * @example 'FOREACH_LIST_LINE_CUSTOMERS_CUSTOMER'
174
174
  */
175
175
  readonly normalized: string_name & string_SCREAMING_CASE;
@@ -3,4 +3,4 @@
3
3
  *
4
4
  * @private internal index of `parseCommand`
5
5
  */
6
- export declare const COMMANDS: readonly [import("./_common/types/CommandParser").PipelineTemplateCommandParser<import("./TEMPLATE/TemplateCommand").TemplateCommand>, import("./_common/types/CommandParser").PipelineTemplateCommandParser<import("./EXPECT/ExpectCommand").ExpectCommand>, import("./_common/types/CommandParser").PipelineTemplateCommandParser<import("./FORMAT/FormatCommand").FormatCommand>, import("./_common/types/CommandParser").PipelineTemplateCommandParser<import("./JOKER/JokerCommand").JokerCommand>, import("./_common/types/CommandParser").PipelineBothCommandParser<import("./MODEL/ModelCommand").ModelCommand>, import("./_common/types/CommandParser").PipelineBothCommandParser<import("./PARAMETER/ParameterCommand").ParameterCommand>, import("./_common/types/CommandParser").PipelineTemplateCommandParser<import("./POSTPROCESS/PostprocessCommand").PostprocessCommand>, import("./_common/types/CommandParser").PipelineHeadCommandParser<import("./PROMPTBOOK_VERSION/PromptbookVersionCommand").PromptbookVersionCommand>, import("./_common/types/CommandParser").PipelineHeadCommandParser<import("./URL/UrlCommand").UrlCommand>, import("./_common/types/CommandParser").PipelineHeadCommandParser<import("./KNOWLEDGE/KnowledgeCommand").KnowledgeCommand>, import("./_common/types/CommandParser").PipelineHeadCommandParser<import("./X_ACTION/ActionCommand").ActionCommand>, import("./_common/types/CommandParser").PipelineHeadCommandParser<import("./X_INSTRUMENT/InstrumentCommand").InstrumentCommand>, import("./_common/types/CommandParser").PipelineBothCommandParser<import("./PERSONA/PersonaCommand").PersonaCommand>, import("./_common/types/CommandParser").PipelineTemplateCommandParser<import("./FOREACH/ForeachCommand").ForeachCommand>, import("./_common/types/CommandParser").PipelineBothCommandParser<import("./_BOILERPLATE/BoilerplateCommand").BoilerplateCommand>];
6
+ export declare const COMMANDS: readonly [import("./_common/types/CommandParser").PipelineTemplateCommandParser<import("./TEMPLATE/TemplateCommand").TemplateCommand>, import("./_common/types/CommandParser").PipelineTemplateCommandParser<import("./EXPECT/ExpectCommand").ExpectCommand>, import("./_common/types/CommandParser").PipelineTemplateCommandParser<import("./FORMAT/FormatCommand").FormatCommand>, import("./_common/types/CommandParser").PipelineTemplateCommandParser<import("./JOKER/JokerCommand").JokerCommand>, import("./_common/types/CommandParser").PipelineBothCommandParser<import("./MODEL/ModelCommand").ModelCommand>, import("./_common/types/CommandParser").PipelineBothCommandParser<import("./PARAMETER/ParameterCommand").ParameterCommand>, import("./_common/types/CommandParser").PipelineTemplateCommandParser<import("./POSTPROCESS/PostprocessCommand").PostprocessCommand>, import("./_common/types/CommandParser").PipelineHeadCommandParser<import("./BOOK_VERSION/BookVersionCommand").BookVersionCommand>, import("./_common/types/CommandParser").PipelineHeadCommandParser<import("./URL/UrlCommand").UrlCommand>, import("./_common/types/CommandParser").PipelineHeadCommandParser<import("./KNOWLEDGE/KnowledgeCommand").KnowledgeCommand>, import("./_common/types/CommandParser").PipelineHeadCommandParser<import("./X_ACTION/ActionCommand").ActionCommand>, import("./_common/types/CommandParser").PipelineHeadCommandParser<import("./X_INSTRUMENT/InstrumentCommand").InstrumentCommand>, import("./_common/types/CommandParser").PipelineBothCommandParser<import("./PERSONA/PersonaCommand").PersonaCommand>, import("./_common/types/CommandParser").PipelineTemplateCommandParser<import("./FOREACH/ForeachCommand").ForeachCommand>, import("./_common/types/CommandParser").PipelineBothCommandParser<import("./_BOILERPLATE/BoilerplateCommand").BoilerplateCommand>];
@@ -14,6 +14,12 @@ export declare const GENERATOR_WARNING = "\u26A0\uFE0F WARNING: This code has be
14
14
  * @public exported from `@promptbook/core`
15
15
  */
16
16
  export declare const CLAIM = "Build responsible, controlled and transparent applications on top of LLM models!";
17
+ /**
18
+ * When the title is not provided, the default title is used
19
+ *
20
+ * @public exported from `@promptbook/core`
21
+ */
22
+ export declare const DEFAULT_TITLE = "Untitled";
17
23
  /**
18
24
  * Warning message for the generated sections and files files
19
25
  *
@@ -0,0 +1,33 @@
1
+ import type { PromptbookStorage } from '../_common/PromptbookStorage';
2
+ /**
3
+ * Behaves like a storage but forgets everything you put in it
4
+ *
5
+ * @public exported from `@promptbook/core`
6
+ */
7
+ export declare class BlackholeStorage<TItem> implements PromptbookStorage<TItem> {
8
+ /**
9
+ * Returns the number of key/value pairs currently present in the list associated with the object.
10
+ */
11
+ get length(): number;
12
+ /**
13
+ * Empties the list associated with the object of all key/value pairs, if there are any.
14
+ */
15
+ clear(): void;
16
+ /**
17
+ * Returns the current value associated with the given key, or null if the given key does not exist in the list associated with the object.
18
+ * @param key
19
+ */
20
+ getItem(key: string): null;
21
+ /**
22
+ * Returns the name of the nth key in the list, or null if n is greater than or equal to the number of key/value pairs in the object.
23
+ */
24
+ key(index: number): null;
25
+ /**
26
+ * Sets the value of the pair identified by key to value, creating a new key/value pair if none existed for key previously.
27
+ */
28
+ setItem(key: string, value: TItem): void;
29
+ /**
30
+ * Removes the key/value pair with the given key from the list associated with the object, if a key/value pair with the given key exists.
31
+ */
32
+ removeItem(key: string): void;
33
+ }
@@ -1,6 +1,6 @@
1
1
  import type { PromptbookStorage } from '../_common/PromptbookStorage';
2
2
  /**
3
- * Stores
3
+ * Stores data in memory (HEAP)
4
4
  *
5
5
  * @public exported from `@promptbook/core`
6
6
  */
@@ -1,5 +1,5 @@
1
1
  import type { Promisable } from 'type-fest';
2
- import type { PromptbookStorage } from '../../_common/PromptbookStorage';
2
+ import type { PromptbookStorage } from '../_common/PromptbookStorage';
3
3
  /**
4
4
  * This class behaves like LocalStorage but separates keys by prefix
5
5
  *
@@ -1,6 +1,17 @@
1
1
  import type { string_semantic_version } from './types/typeAliases';
2
2
  /**
3
- * The version of the Promptbook library
3
+ * The version of the Book language
4
+ *
5
+ * @see https://github.com/webgptorg/book
4
6
  */
5
- export declare const PROMPTBOOK_VERSION: string_promptbook_version;
7
+ export declare const BOOK_LANGUAGE_VERSION: string_semantic_version;
8
+ /**
9
+ * The version of the Promptbook engine
10
+ *
11
+ * @see https://github.com/webgptorg/promptbook
12
+ */
13
+ export declare const PROMPTBOOK_ENGINE_VERSION: string_promptbook_version;
6
14
  export type string_promptbook_version = string_semantic_version;
15
+ /**
16
+ * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
17
+ */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/utils",
3
- "version": "0.73.0",
3
+ "version": "0.74.0-11",
4
4
  "description": "Supercharge your use of large language models",
5
5
  "private": false,
6
6
  "sideEffects": false,
package/umd/index.umd.js CHANGED
@@ -10,10 +10,20 @@
10
10
 
11
11
  // ⚠️ WARNING: This code has been generated so that any manual changes will be overwritten
12
12
  /**
13
- * The version of the Promptbook library
13
+ * The version of the Book language
14
+ *
15
+ * @see https://github.com/webgptorg/book
16
+ */
17
+ var BOOK_LANGUAGE_VERSION = '1.0.0';
18
+ /**
19
+ * The version of the Promptbook engine
20
+ *
21
+ * @see https://github.com/webgptorg/promptbook
22
+ */
23
+ var PROMPTBOOK_ENGINE_VERSION = '0.74.0-10';
24
+ /**
25
+ * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
14
26
  */
15
- var PROMPTBOOK_VERSION = '0.72.0';
16
- // TODO: [main] !!!! List here all the versions and annotate + put into script
17
27
 
18
28
  /*! *****************************************************************************
19
29
  Copyright (c) Microsoft Corporation.
@@ -1294,10 +1304,12 @@
1294
1304
  * @public exported from `@promptbook/utils`
1295
1305
  */
1296
1306
  function countPages(text) {
1297
- var sentencesPerPage = 5; // Assuming each page has 5 sentences
1298
- var sentences = text.split(/[.!?]+/).filter(function (sentence) { return sentence.trim() !== ''; });
1299
- var pageCount = Math.ceil(sentences.length / sentencesPerPage);
1300
- return pageCount;
1307
+ if (text === '') {
1308
+ return 0;
1309
+ }
1310
+ var pagesByLinesCount = Math.ceil(countLines(text) / 44);
1311
+ var pagesByCharactersCount = Math.ceil(countCharacters(text) / 2772);
1312
+ return Math.max(pagesByLinesCount, pagesByCharactersCount);
1301
1313
  }
1302
1314
 
1303
1315
  /**
@@ -2388,7 +2400,7 @@
2388
2400
  if ( /* version === '1.0.0' || */version === '2.0.0' || version === '3.0.0') {
2389
2401
  return false;
2390
2402
  }
2391
- // <- TODO: [main] !!! Check isValidPromptbookVersion against PROMPTBOOK_VERSIONS
2403
+ // <- TODO: [main] !!! Check isValidPromptbookVersion against PROMPTBOOK_ENGINE_VERSIONS
2392
2404
  return true;
2393
2405
  }
2394
2406
 
@@ -2459,7 +2471,7 @@
2459
2471
  if (!url.startsWith('https://')) {
2460
2472
  return false;
2461
2473
  }
2462
- if (!url.endsWith('.ptbk.md')) {
2474
+ if (!(url.endsWith('.book.md') || url.endsWith('.book') || url.endsWith('.ptbk.md') || url.endsWith('.ptbk'))) {
2463
2475
  return false;
2464
2476
  }
2465
2477
  if (url.includes('#')) {
@@ -2493,9 +2505,10 @@
2493
2505
  exports.$isRunningInNode = $isRunningInNode;
2494
2506
  exports.$isRunningInWebWorker = $isRunningInWebWorker;
2495
2507
  exports.$randomSeed = $randomSeed;
2508
+ exports.BOOK_LANGUAGE_VERSION = BOOK_LANGUAGE_VERSION;
2496
2509
  exports.CountUtils = CountUtils;
2497
2510
  exports.DIACRITIC_VARIANTS_LETTERS = DIACRITIC_VARIANTS_LETTERS;
2498
- exports.PROMPTBOOK_VERSION = PROMPTBOOK_VERSION;
2511
+ exports.PROMPTBOOK_ENGINE_VERSION = PROMPTBOOK_ENGINE_VERSION;
2499
2512
  exports.capitalize = capitalize;
2500
2513
  exports.checkSerializableAsJson = checkSerializableAsJson;
2501
2514
  exports.clonePipeline = clonePipeline;