@promptbook/openai 0.74.0-8 → 0.74.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/README.md +6 -18
- package/esm/index.es.js +23 -11
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/_packages/core.index.d.ts +5 -1
- package/esm/typings/src/_packages/utils.index.d.ts +4 -0
- package/esm/typings/src/cli/cli-commands/run.d.ts +1 -1
- package/esm/typings/src/cli/main.d.ts +4 -1
- package/esm/typings/src/cli/promptbookCli.d.ts +1 -1
- package/esm/typings/src/cli/test/ptbk.d.ts +1 -1
- package/esm/typings/src/collection/collectionToJson.test.d.ts +1 -1
- package/esm/typings/src/collection/constructors/createCollectionFromDirectory.d.ts +1 -1
- package/esm/typings/src/commands/BOOK_VERSION/BookVersionCommand.d.ts +1 -1
- package/esm/typings/src/commands/FOREACH/foreachCommandParser.d.ts +2 -2
- package/esm/typings/src/commands/_BOILERPLATE/boilerplateCommandParser.d.ts +1 -1
- package/esm/typings/src/config.d.ts +6 -0
- package/esm/typings/src/conversion/pipelineJsonToString.d.ts +3 -3
- package/esm/typings/src/conversion/pipelineStringToJson.d.ts +2 -2
- package/esm/typings/src/conversion/pipelineStringToJsonSync.d.ts +2 -2
- package/esm/typings/src/conversion/utils/stringifyPipelineJson.d.ts +1 -1
- package/esm/typings/src/conversion/validation/_importPipeline.d.ts +7 -7
- package/esm/typings/src/formats/_common/FormatDefinition.d.ts +1 -1
- package/esm/typings/src/formats/_common/FormatSubvalueDefinition.d.ts +1 -1
- package/esm/typings/src/storage/blackhole/BlackholeStorage.d.ts +33 -0
- package/esm/typings/src/storage/memory/MemoryStorage.d.ts +1 -1
- package/esm/typings/src/storage/{memory/utils → utils}/PrefixStorage.d.ts +1 -1
- package/esm/typings/src/types/PipelineJson/PipelineJson.d.ts +6 -4
- package/esm/typings/src/types/PipelineJson/PreparationJson.d.ts +1 -1
- package/esm/typings/src/types/Prompt.d.ts +1 -1
- package/esm/typings/src/types/typeAliases.d.ts +2 -2
- package/esm/typings/src/utils/expectation-counters/config.d.ts +12 -0
- package/esm/typings/src/utils/expectation-counters/countLines.d.ts +2 -0
- package/esm/typings/src/utils/expectation-counters/countPages.d.ts +2 -0
- package/package.json +2 -2
- package/umd/index.umd.js +23 -11
- package/umd/index.umd.js.map +1 -1
- /package/esm/typings/src/storage/{memory → local-storage}/utils/makePromptbookStorageFromWebStorage.d.ts +0 -0
|
@@ -3,7 +3,7 @@ import type { BoilerplateCommand } from './BoilerplateCommand';
|
|
|
3
3
|
/**
|
|
4
4
|
* Parses the boilerplate command
|
|
5
5
|
*
|
|
6
|
-
* Note: @@@ This command is used as boilerplate for new commands - it should NOT be used in any `.
|
|
6
|
+
* Note: @@@ This command is used as boilerplate for new commands - it should NOT be used in any `.book.md` file
|
|
7
7
|
*
|
|
8
8
|
* @see `documentationUrl` for more details
|
|
9
9
|
* @private within the commands folder
|
|
@@ -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
|
*
|
|
@@ -3,8 +3,8 @@ import type { PipelineString } from '../types/PipelineString';
|
|
|
3
3
|
/**
|
|
4
4
|
* Converts promptbook in JSON format to string format
|
|
5
5
|
*
|
|
6
|
-
* @param pipelineJson Promptbook in JSON format (.
|
|
7
|
-
* @returns Promptbook in string format (.
|
|
6
|
+
* @param pipelineJson Promptbook in JSON format (.book.json)
|
|
7
|
+
* @returns Promptbook in string format (.book.md)
|
|
8
8
|
* @public exported from `@promptbook/core`
|
|
9
9
|
*/
|
|
10
10
|
export declare function pipelineJsonToString(pipelineJson: PipelineJson): PipelineString;
|
|
@@ -13,5 +13,5 @@ export declare function pipelineJsonToString(pipelineJson: PipelineJson): Pipeli
|
|
|
13
13
|
* TODO: [🧠] Is there a way to auto-detect missing features in pipelineJsonToString
|
|
14
14
|
* TODO: [🏛] Maybe make some markdown builder
|
|
15
15
|
* TODO: [🏛] Escape all
|
|
16
|
-
* TODO: [🧠] Should be in generated .
|
|
16
|
+
* TODO: [🧠] Should be in generated .book.md file GENERATOR_WARNING
|
|
17
17
|
*/
|
|
@@ -13,10 +13,10 @@ import type { PipelineString } from '../types/PipelineString';
|
|
|
13
13
|
* Note: This function does not validate logic of the pipeline only the parsing
|
|
14
14
|
* Note: This function acts as compilation process
|
|
15
15
|
*
|
|
16
|
-
* @param pipelineString {Promptbook} in string markdown format (.
|
|
16
|
+
* @param pipelineString {Promptbook} in string markdown format (.book.md)
|
|
17
17
|
* @param tools - Tools for the preparation and scraping - if not provided together with `llm`, the preparation will be skipped
|
|
18
18
|
* @param options - Options and tools for the compilation
|
|
19
|
-
* @returns {Promptbook} compiled in JSON format (.
|
|
19
|
+
* @returns {Promptbook} compiled in JSON format (.book.json)
|
|
20
20
|
* @throws {ParseError} if the promptbook string is not valid
|
|
21
21
|
* @public exported from `@promptbook/core`
|
|
22
22
|
*/
|
|
@@ -11,8 +11,8 @@ import type { PipelineString } from '../types/PipelineString';
|
|
|
11
11
|
* Note: This function does not validate logic of the pipeline only the parsing
|
|
12
12
|
* Note: This function acts as compilation process
|
|
13
13
|
*
|
|
14
|
-
* @param pipelineString {Promptbook} in string markdown format (.
|
|
15
|
-
* @returns {Promptbook} compiled in JSON format (.
|
|
14
|
+
* @param pipelineString {Promptbook} in string markdown format (.book.md)
|
|
15
|
+
* @returns {Promptbook} compiled in JSON format (.book.json)
|
|
16
16
|
* @throws {ParseError} if the promptbook string is not valid
|
|
17
17
|
* @public exported from `@promptbook/core`
|
|
18
18
|
*/
|
|
@@ -9,7 +9,7 @@ import type { string_json } from '../../types/typeAliases';
|
|
|
9
9
|
*/
|
|
10
10
|
export declare function stringifyPipelineJson<TType>(pipeline: TType): string_json<TType>;
|
|
11
11
|
/**
|
|
12
|
-
* TODO: [🐝] Not Working propperly @see https://promptbook.studio/examples/mixed-knowledge.
|
|
12
|
+
* TODO: [🐝] Not Working propperly @see https://promptbook.studio/examples/mixed-knowledge.book.md
|
|
13
13
|
* TODO: [🧠][0] Maybe rename to `stringifyPipelineJson`, `stringifyIndexedJson`,...
|
|
14
14
|
* TODO: [🧠] Maybe more elegant solution than replacing via regex
|
|
15
15
|
* TODO: [🍙] Make some standard order of json properties
|
|
@@ -2,7 +2,7 @@ import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
|
|
|
2
2
|
import type { PipelineString } from '../../types/PipelineString';
|
|
3
3
|
import type { string_json } from '../../types/typeAliases';
|
|
4
4
|
/**
|
|
5
|
-
* Import the pipeline.
|
|
5
|
+
* Import the pipeline.book.md or pipeline.book.json file
|
|
6
6
|
*
|
|
7
7
|
* Note: Using here custom import to work in jest tests
|
|
8
8
|
* Note: Using sync version is 💩 in the production code, but it's ok here in tests
|
|
@@ -10,20 +10,20 @@ import type { string_json } from '../../types/typeAliases';
|
|
|
10
10
|
* @param path - The path to the file relative to examples/pipelines directory
|
|
11
11
|
* @private internal function of tests
|
|
12
12
|
*/
|
|
13
|
-
export declare function importPipelineWithoutPreparation(path: `${string}.
|
|
14
|
-
export declare function importPipelineWithoutPreparation(path: `${string}.
|
|
13
|
+
export declare function importPipelineWithoutPreparation(path: `${string}.book.md`): PipelineString;
|
|
14
|
+
export declare function importPipelineWithoutPreparation(path: `${string}.book.json`): PipelineJson;
|
|
15
15
|
/**
|
|
16
|
-
* Import the pipeline.
|
|
16
|
+
* Import the pipeline.book.json file as parsed JSON
|
|
17
17
|
*
|
|
18
18
|
* @private internal function of tests
|
|
19
19
|
*/
|
|
20
|
-
export declare function importPipelineJson(path: `${string}.
|
|
20
|
+
export declare function importPipelineJson(path: `${string}.book.json`): PipelineJson;
|
|
21
21
|
/**
|
|
22
|
-
* Import the pipeline.
|
|
22
|
+
* Import the pipeline.book.json file as string
|
|
23
23
|
*
|
|
24
24
|
* @private internal function of tests
|
|
25
25
|
*/
|
|
26
|
-
export declare function importPipelineJsonAsString(path: `${string}.
|
|
26
|
+
export declare function importPipelineJsonAsString(path: `${string}.book.json`): string_json<PipelineJson>;
|
|
27
27
|
/**
|
|
28
28
|
* Note: [⚫] Code in this file should never be published in any package
|
|
29
29
|
*/
|
|
@@ -13,7 +13,7 @@ import type { FormatSubvalueDefinition } from './FormatSubvalueDefinition';
|
|
|
13
13
|
*/
|
|
14
14
|
export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends string, TSettings extends empty_object, TSchema extends empty_object> = {
|
|
15
15
|
/**
|
|
16
|
-
* The name of the format used in .
|
|
16
|
+
* The name of the format used in .book.md files
|
|
17
17
|
*
|
|
18
18
|
* @example "JSON"
|
|
19
19
|
*/
|
|
@@ -9,7 +9,7 @@ import type { empty_object } from '../../utils/organization/empty_object';
|
|
|
9
9
|
*/
|
|
10
10
|
export type FormatSubvalueDefinition<TValue extends string, TSettings extends empty_object> = {
|
|
11
11
|
/**
|
|
12
|
-
* The name of the format used in .
|
|
12
|
+
* The name of the format used in .book.md files
|
|
13
13
|
*
|
|
14
14
|
* @example "CELL"
|
|
15
15
|
*/
|
|
@@ -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,5 +1,5 @@
|
|
|
1
1
|
import type { Promisable } from 'type-fest';
|
|
2
|
-
import type { PromptbookStorage } from '
|
|
2
|
+
import type { PromptbookStorage } from '../_common/PromptbookStorage';
|
|
3
3
|
/**
|
|
4
4
|
* This class behaves like LocalStorage but separates keys by prefix
|
|
5
5
|
*
|
|
@@ -26,12 +26,12 @@ export type PipelineJson = {
|
|
|
26
26
|
* Note: It must be unique across all pipeline collections
|
|
27
27
|
* Note: It must use HTTPs URL
|
|
28
28
|
* Tip: You can do versioning in the URL
|
|
29
|
-
* For example: https://promptbook.studio/webgpt/write-website-content-cs.
|
|
29
|
+
* For example: https://promptbook.studio/webgpt/write-website-content-cs.book.md@1.0.0
|
|
30
30
|
* Warning: Do not hash part of the URL, hash part is used for identification of the template in the pipeline
|
|
31
31
|
*/
|
|
32
32
|
readonly pipelineUrl?: string_pipeline_url;
|
|
33
33
|
/**
|
|
34
|
-
* Internal helper for tracking the source `.
|
|
34
|
+
* Internal helper for tracking the source `.book.md` file of the pipeline
|
|
35
35
|
*/
|
|
36
36
|
readonly sourceFile?: string_filename;
|
|
37
37
|
/**
|
|
@@ -40,9 +40,11 @@ export type PipelineJson = {
|
|
|
40
40
|
*/
|
|
41
41
|
readonly title: string_markdown_text;
|
|
42
42
|
/**
|
|
43
|
-
* Version of the
|
|
43
|
+
* Version of the Book language
|
|
44
|
+
*
|
|
45
|
+
* @see https://github.com/webgptorg/book
|
|
44
46
|
*/
|
|
45
|
-
readonly
|
|
47
|
+
readonly bookVersion?: string_semantic_version;
|
|
46
48
|
/**
|
|
47
49
|
* Description of the promptbook
|
|
48
50
|
* It can use multiple paragraphs of simple markdown formatting like **bold**, *italic*, [link](https://example.com), ... BUT not code blocks and structure
|
|
@@ -18,5 +18,5 @@ export type PreparationJson = {
|
|
|
18
18
|
/**
|
|
19
19
|
* TODO: [🍙] Make some standard order of json properties
|
|
20
20
|
* TODO: Maybe put here used `modelName`
|
|
21
|
-
* TODO: [🍥] When using `date` it changes all examples .
|
|
21
|
+
* TODO: [🍥] When using `date` it changes all examples .book.json files each time so until some more elegant solution omit the time from prepared pipeline
|
|
22
22
|
*/
|
|
@@ -95,7 +95,7 @@ export type CommonPrompt = {
|
|
|
95
95
|
/**
|
|
96
96
|
* Unique identifier of the pipeline with specific template name as hash
|
|
97
97
|
*
|
|
98
|
-
* @example https://promptbook.studio/webgpt/write-website-content-cs.
|
|
98
|
+
* @example https://promptbook.studio/webgpt/write-website-content-cs.book.md#keywords
|
|
99
99
|
*/
|
|
100
100
|
readonly pipelineUrl?: string_pipeline_url_with_hashtemplate;
|
|
101
101
|
/**
|
|
@@ -298,13 +298,13 @@ export type string_base_url = string;
|
|
|
298
298
|
/**
|
|
299
299
|
* Semantic helper
|
|
300
300
|
*
|
|
301
|
-
* For example `"https://promptbook.studio/webgpt/write-website-content-cs.
|
|
301
|
+
* For example `"https://promptbook.studio/webgpt/write-website-content-cs.book.md"`
|
|
302
302
|
*/
|
|
303
303
|
export type string_pipeline_url = string;
|
|
304
304
|
/**
|
|
305
305
|
* Semantic helper
|
|
306
306
|
*
|
|
307
|
-
* For example `"https://promptbook.studio/webgpt/write-website-content-cs.
|
|
307
|
+
* For example `"https://promptbook.studio/webgpt/write-website-content-cs.book.md#keywords"`
|
|
308
308
|
*/
|
|
309
309
|
export type string_pipeline_url_with_hashtemplate = string;
|
|
310
310
|
/**
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Number of characters per standard line with 11pt Arial font size.
|
|
3
|
+
*
|
|
4
|
+
* @public exported from `@promptbook/utils`
|
|
5
|
+
*/
|
|
6
|
+
export declare const CHARACTERS_PER_STANDARD_LINE = 63;
|
|
7
|
+
/**
|
|
8
|
+
* Number of lines per standard A4 page with 11pt Arial font size and standard margins and spacing.
|
|
9
|
+
*
|
|
10
|
+
* @public exported from `@promptbook/utils`
|
|
11
|
+
*/
|
|
12
|
+
export declare const LINES_PER_STANDARD_PAGE = 44;
|
|
@@ -2,6 +2,8 @@ import type { ExpectationAmount } from '../../types/PipelineJson/Expectations';
|
|
|
2
2
|
/**
|
|
3
3
|
* Counts number of lines in the text
|
|
4
4
|
*
|
|
5
|
+
* Note: This does not check only for the presence of newlines, but also for the length of the standard line.
|
|
6
|
+
*
|
|
5
7
|
* @public exported from `@promptbook/utils`
|
|
6
8
|
*/
|
|
7
9
|
export declare function countLines(text: string): ExpectationAmount;
|
|
@@ -2,6 +2,8 @@ import type { ExpectationAmount } from '../../types/PipelineJson/Expectations';
|
|
|
2
2
|
/**
|
|
3
3
|
* Counts number of pages in the text
|
|
4
4
|
*
|
|
5
|
+
* Note: This does not check only for the count of newlines, but also for the length of the standard line and length of the standard page.
|
|
6
|
+
*
|
|
5
7
|
* @public exported from `@promptbook/utils`
|
|
6
8
|
*/
|
|
7
9
|
export declare function countPages(text: string): ExpectationAmount;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promptbook/openai",
|
|
3
|
-
"version": "0.74.0
|
|
3
|
+
"version": "0.74.0",
|
|
4
4
|
"description": "Supercharge your use of large language models",
|
|
5
5
|
"private": false,
|
|
6
6
|
"sideEffects": false,
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"module": "./esm/index.es.js",
|
|
54
54
|
"typings": "./esm/typings/src/_packages/openai.index.d.ts",
|
|
55
55
|
"peerDependencies": {
|
|
56
|
-
"@promptbook/core": "0.74.0
|
|
56
|
+
"@promptbook/core": "0.74.0"
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
59
|
"colors": "1.4.0",
|
package/umd/index.umd.js
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
*
|
|
23
23
|
* @see https://github.com/webgptorg/promptbook
|
|
24
24
|
*/
|
|
25
|
-
var PROMPTBOOK_ENGINE_VERSION = '0.74.0-
|
|
25
|
+
var PROMPTBOOK_ENGINE_VERSION = '0.74.0-13';
|
|
26
26
|
/**
|
|
27
27
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
28
28
|
*/
|
|
@@ -618,30 +618,42 @@
|
|
|
618
618
|
return text.length;
|
|
619
619
|
}
|
|
620
620
|
|
|
621
|
+
/**
|
|
622
|
+
* Number of characters per standard line with 11pt Arial font size.
|
|
623
|
+
*
|
|
624
|
+
* @public exported from `@promptbook/utils`
|
|
625
|
+
*/
|
|
626
|
+
var CHARACTERS_PER_STANDARD_LINE = 63;
|
|
627
|
+
/**
|
|
628
|
+
* Number of lines per standard A4 page with 11pt Arial font size and standard margins and spacing.
|
|
629
|
+
*
|
|
630
|
+
* @public exported from `@promptbook/utils`
|
|
631
|
+
*/
|
|
632
|
+
var LINES_PER_STANDARD_PAGE = 44;
|
|
633
|
+
|
|
621
634
|
/**
|
|
622
635
|
* Counts number of lines in the text
|
|
623
636
|
*
|
|
637
|
+
* Note: This does not check only for the presence of newlines, but also for the length of the standard line.
|
|
638
|
+
*
|
|
624
639
|
* @public exported from `@promptbook/utils`
|
|
625
640
|
*/
|
|
626
641
|
function countLines(text) {
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
return
|
|
642
|
+
text = text.replace('\r\n', '\n');
|
|
643
|
+
text = text.replace('\r', '\n');
|
|
644
|
+
var lines = text.split('\n');
|
|
645
|
+
return lines.reduce(function (count, line) { return count + Math.ceil(line.length / CHARACTERS_PER_STANDARD_LINE); }, 0);
|
|
631
646
|
}
|
|
632
647
|
|
|
633
648
|
/**
|
|
634
649
|
* Counts number of pages in the text
|
|
635
650
|
*
|
|
651
|
+
* Note: This does not check only for the count of newlines, but also for the length of the standard line and length of the standard page.
|
|
652
|
+
*
|
|
636
653
|
* @public exported from `@promptbook/utils`
|
|
637
654
|
*/
|
|
638
655
|
function countPages(text) {
|
|
639
|
-
|
|
640
|
-
return 0;
|
|
641
|
-
}
|
|
642
|
-
var pagesByLinesCount = Math.ceil(countLines(text) / 44);
|
|
643
|
-
var pagesByCharactersCount = Math.ceil(countCharacters(text) / 2772);
|
|
644
|
-
return Math.max(pagesByLinesCount, pagesByCharactersCount);
|
|
656
|
+
return Math.ceil(countLines(text) / LINES_PER_STANDARD_PAGE);
|
|
645
657
|
}
|
|
646
658
|
|
|
647
659
|
/**
|