@promptbook/remote-client 0.85.0-9 → 0.86.0-10

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.
@@ -5,7 +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.book.md` -> `ptbk ./foo.book.md`
8
+ * TODO: [🧠] Maybe `run` command the default, instead of `ptbk run ./foo.book` -> `ptbk ./foo.book`
9
9
  * TODO: [🥠] Do not export, its just for CLI script
10
10
  * TODO: [🕌] When more functionalities, rename
11
11
  * Note: 11:11
@@ -1,6 +1,6 @@
1
1
  export {};
2
2
  /**
3
- * Note: [🐠] For example here URL https://example.com/pipeline.book.md is not valid
3
+ * Note: [🐠] For example here URL https://example.com/pipeline.book is not valid
4
4
  * because it is on private network BUT its very hard to debug because
5
5
  * there is no error message and false return (the error) happen deep in:
6
6
  * `isValidPipelineUrl` -> `isValidPipelineUrl` -> `isUrlOnPrivateNetwork`
@@ -6,7 +6,7 @@ import type { PipelineCollection } from '../PipelineCollection';
6
6
  /**
7
7
  * Options for `createCollectionFromDirectory` function
8
8
  *
9
- * Note: `rootDirname` is not needed because it is the folder in which `.book.md` file is located
9
+ * Note: `rootDirname` is not needed because it is the folder in which `.book` or `.book` file is located
10
10
  * This is not same as `path` which is the first argument of `createCollectionFromDirectory` - it can be a subfolder
11
11
  */
12
12
  type CreatePipelineCollectionFromDirectoryOptions = Omit<PrepareAndScrapeOptions, 'rootDirname'> & {
@@ -51,13 +51,13 @@ type CreatePipelineCollectionFromDirectoryOptions = Omit<PrepareAndScrapeOptions
51
51
  *
52
52
  * Note: Works only in Node.js environment because it reads the file system
53
53
  *
54
- * @param path - path to the directory with pipelines
54
+ * @param rootPath - path to the directory with pipelines
55
55
  * @param tools - Execution tools to be used for pipeline preparation if needed - If not provided, `$provideExecutionToolsForNode` will be used
56
56
  * @param options - Options for the collection creation
57
57
  * @returns PipelineCollection
58
58
  * @public exported from `@promptbook/node`
59
59
  */
60
- export declare function createCollectionFromDirectory(path: string_dirname, tools?: Pick<ExecutionTools, 'llm' | 'fs' | 'scrapers'>, options?: CreatePipelineCollectionFromDirectoryOptions): Promise<PipelineCollection>;
60
+ export declare function createCollectionFromDirectory(rootPath: string_dirname, tools?: Pick<ExecutionTools, 'llm' | 'fs' | 'scrapers'>, options?: CreatePipelineCollectionFromDirectoryOptions): Promise<PipelineCollection>;
61
61
  export {};
62
62
  /**
63
63
  * TODO: [🖇] What about symlinks? Maybe option isSymlinksFollowed
@@ -3,7 +3,7 @@ import type { ForeachCommand } from './ForeachCommand';
3
3
  /**
4
4
  * Parses the foreach command
5
5
  *
6
- * Note: @@@ This command is used as foreach for new commands - it should NOT be used in any `.book.md` file
6
+ * Note: @@@ This command is used as foreach for new commands - it should NOT be used in any `.book` file
7
7
  *
8
8
  * @see `documentationUrl` for more details
9
9
  * @public exported from `@promptbook/editable`
@@ -3,7 +3,7 @@ import type { FormfactorCommand } from './FormfactorCommand';
3
3
  /**
4
4
  * Parses the formfactor command
5
5
  *
6
- * Note: @@@ This command is used as formfactor for new commands - it should NOT be used in any `.book.md` file
6
+ * Note: @@@ This command is used as formfactor for new commands - it should NOT be used in any `.book` file
7
7
  *
8
8
  * @see `documentationUrl` for more details
9
9
  * @public exported from `@promptbook/editable`
@@ -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 `.book.md` file
6
+ * Note: @@@ This command is used as boilerplate for new commands - it should NOT be used in any `.book` file
7
7
  *
8
8
  * @see `documentationUrl` for more details
9
9
  * @private within the commands folder
@@ -2,7 +2,7 @@ import type { PipelineJson } from '../../pipeline/PipelineJson/PipelineJson';
2
2
  import type { PipelineString } from '../../pipeline/PipelineString';
3
3
  import type { string_json } from '../../types/typeAliases';
4
4
  /**
5
- * Import the pipeline.book.md or pipeline.book.json file
5
+ * Import the pipeline.book 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,7 +10,7 @@ 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}.book.md`): PipelineString;
13
+ export declare function importPipelineWithoutPreparation(path: `${string}.book`): PipelineString;
14
14
  export declare function importPipelineWithoutPreparation(path: `${string}.book.json`): PipelineJson;
15
15
  /**
16
16
  * Import the pipeline.book.json file as parsed JSON
@@ -29,12 +29,12 @@ export type PipelineJson = {
29
29
  * Note: It must be unique across all pipeline collections
30
30
  * Note: It must use HTTPs URL
31
31
  * Tip: You can do versioning in the URL
32
- * For example: https://promptbook.studio/webgpt/write-website-content-cs.book.md@1.0.0
32
+ * For example: https://promptbook.studio/webgpt/write-website-content-cs.book@1.0.0
33
33
  * Warning: Do not hash part of the URL, hash part is used for identification of the task in the pipeline
34
34
  */
35
35
  readonly pipelineUrl?: string_pipeline_url;
36
36
  /**
37
- * Internal helper for tracking the source `.book.md` file of the pipeline
37
+ * Internal helper for tracking the source `.book` file of the pipeline
38
38
  */
39
39
  readonly sourceFile?: string_filename;
40
40
  /**
@@ -95,7 +95,7 @@ export type CommonPrompt = {
95
95
  /**
96
96
  * Unique identifier of the pipeline with specific task name as hash
97
97
  *
98
- * @example https://promptbook.studio/webgpt/write-website-content-cs.book.md#keywords
98
+ * @example https://promptbook.studio/webgpt/write-website-content-cs.book#keywords
99
99
  */
100
100
  readonly pipelineUrl?: string_pipeline_url_with_task_hash;
101
101
  /**
@@ -328,13 +328,13 @@ export type string_pipeline_root_url = string;
328
328
  /**
329
329
  * Semantic helper
330
330
  *
331
- * For example `"https://promptbook.studio/webgpt/write-website-content-cs.book.md"`
331
+ * For example `"https://promptbook.studio/webgpt/write-website-content-cs.book"`
332
332
  */
333
333
  export type string_pipeline_url = string;
334
334
  /**
335
335
  * Semantic helper
336
336
  *
337
- * For example `"https://promptbook.studio/webgpt/write-website-content-cs.book.md#keywords"`
337
+ * For example `"https://promptbook.studio/webgpt/write-website-content-cs.book#keywords"`
338
338
  */
339
339
  export type string_pipeline_url_with_task_hash = string;
340
340
  /**
@@ -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.book.md
12
+ * TODO: [🐝] Not Working propperly @see https://promptbook.studio/examples/mixed-knowledge.book
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
@@ -19,9 +19,9 @@ declare class Wizzard {
19
19
  * Run the book
20
20
  *
21
21
  * It can be loaded from:
22
- * 1) As a file ./books/write-cv.book.md
23
- * 2) As a URL https://promptbook.studio/hejny/write-cv.book.md found in ./books folder recursively
24
- * 2) As a URL https://promptbook.studio/hejny/write-cv.book.md fetched from the internet
22
+ * 1) As a file ./books/write-cv.book
23
+ * 2) As a URL https://promptbook.studio/hejny/write-cv.book found in ./books folder recursively
24
+ * 2) As a URL https://promptbook.studio/hejny/write-cv.book fetched from the internet
25
25
  * 3) As a string
26
26
  *
27
27
  * Note: This works simmilar to the `ptbk run` command
@@ -43,9 +43,9 @@ declare class Wizzard {
43
43
  * Load book from the source
44
44
  *
45
45
  * Pipelines can be loaded from:
46
- * 1) As a file ./books/write-cv.book.md
47
- * 2) As a URL https://promptbook.studio/hejny/write-cv.book.md found in ./books folder recursively
48
- * 2) As a URL https://promptbook.studio/hejny/write-cv.book.md fetched from the internet
46
+ * 1) As a file ./books/write-cv.book
47
+ * 2) As a URL https://promptbook.studio/hejny/write-cv.book found in ./books folder recursively
48
+ * 2) As a URL https://promptbook.studio/hejny/write-cv.book fetched from the internet
49
49
  * 3) As a string
50
50
  *
51
51
  * @param pipelineSource
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/remote-client",
3
- "version": "0.85.0-9",
3
+ "version": "0.86.0-10",
4
4
  "description": "It's time for a paradigm shift. The future of software in plain English, French or Latin",
5
5
  "private": false,
6
6
  "sideEffects": false,
@@ -42,12 +42,12 @@
42
42
  "bugs": {
43
43
  "url": "https://github.com/webgptorg/promptbook/issues"
44
44
  },
45
- "homepage": "https://www.npmjs.com/package/@promptbook/core",
45
+ "homepage": "https://ptbk.io/",
46
46
  "main": "./umd/index.umd.js",
47
47
  "module": "./esm/index.es.js",
48
48
  "typings": "./esm/typings/src/_packages/remote-client.index.d.ts",
49
49
  "peerDependencies": {
50
- "@promptbook/core": "0.85.0-9"
50
+ "@promptbook/core": "0.86.0-10"
51
51
  },
52
52
  "dependencies": {
53
53
  "crypto-js": "4.2.0",
package/umd/index.umd.js CHANGED
@@ -23,7 +23,7 @@
23
23
  * @generated
24
24
  * @see https://github.com/webgptorg/promptbook
25
25
  */
26
- var PROMPTBOOK_ENGINE_VERSION = '0.85.0-8';
26
+ var PROMPTBOOK_ENGINE_VERSION = '0.86.0-9';
27
27
  /**
28
28
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
29
29
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -1394,7 +1394,7 @@
1394
1394
  /**
1395
1395
  * Parses the boilerplate command
1396
1396
  *
1397
- * Note: @@@ This command is used as boilerplate for new commands - it should NOT be used in any `.book.md` file
1397
+ * Note: @@@ This command is used as boilerplate for new commands - it should NOT be used in any `.book` file
1398
1398
  *
1399
1399
  * @see `documentationUrl` for more details
1400
1400
  * @private within the commands folder
@@ -2623,7 +2623,7 @@
2623
2623
  /**
2624
2624
  * Parses the foreach command
2625
2625
  *
2626
- * Note: @@@ This command is used as foreach for new commands - it should NOT be used in any `.book.md` file
2626
+ * Note: @@@ This command is used as foreach for new commands - it should NOT be used in any `.book` file
2627
2627
  *
2628
2628
  * @see `documentationUrl` for more details
2629
2629
  * @public exported from `@promptbook/editable`
@@ -3074,7 +3074,7 @@
3074
3074
  /**
3075
3075
  * Parses the formfactor command
3076
3076
  *
3077
- * Note: @@@ This command is used as formfactor for new commands - it should NOT be used in any `.book.md` file
3077
+ * Note: @@@ This command is used as formfactor for new commands - it should NOT be used in any `.book` file
3078
3078
  *
3079
3079
  * @see `documentationUrl` for more details
3080
3080
  * @public exported from `@promptbook/editable`
@@ -3702,57 +3702,6 @@
3702
3702
  },
3703
3703
  };
3704
3704
 
3705
- /**
3706
- * Checks if an URL is reserved for private networks or localhost.
3707
- *
3708
- * Note: There are two simmilar functions:
3709
- * - `isUrlOnPrivateNetwork` which tests full URL
3710
- * - `isHostnameOnPrivateNetwork` *(this one)* which tests just hostname
3711
- *
3712
- * @public exported from `@promptbook/utils`
3713
- */
3714
- function isHostnameOnPrivateNetwork(hostname) {
3715
- if (hostname === 'example.com' ||
3716
- hostname === 'localhost' ||
3717
- hostname.endsWith('.localhost') ||
3718
- hostname.endsWith('.local') ||
3719
- hostname.endsWith('.test') ||
3720
- hostname === '127.0.0.1' ||
3721
- hostname === '::1') {
3722
- return true;
3723
- }
3724
- if (hostname.includes(':')) {
3725
- // IPv6
3726
- var ipParts = hostname.split(':');
3727
- return ipParts[0] === 'fc00' || ipParts[0] === 'fd00' || ipParts[0] === 'fe80';
3728
- }
3729
- else {
3730
- // IPv4
3731
- var ipParts = hostname.split('.').map(function (part) { return Number.parseInt(part, 10); });
3732
- return (ipParts[0] === 10 ||
3733
- (ipParts[0] === 172 && ipParts[1] >= 16 && ipParts[1] <= 31) ||
3734
- (ipParts[0] === 192 && ipParts[1] === 168));
3735
- }
3736
- }
3737
-
3738
- /**
3739
- * Checks if an IP address or hostname is reserved for private networks or localhost.
3740
- *
3741
- * Note: There are two simmilar functions:
3742
- * - `isUrlOnPrivateNetwork` *(this one)* which tests full URL
3743
- * - `isHostnameOnPrivateNetwork` which tests just hostname
3744
- *
3745
- * @param {string} ipAddress - The IP address to check.
3746
- * @returns {boolean} Returns true if the IP address is reserved for private networks or localhost, otherwise false.
3747
- * @public exported from `@promptbook/utils`
3748
- */
3749
- function isUrlOnPrivateNetwork(url) {
3750
- if (typeof url === 'string') {
3751
- url = new URL(url);
3752
- }
3753
- return isHostnameOnPrivateNetwork(url.hostname);
3754
- }
3755
-
3756
3705
  /**
3757
3706
  * Tests if given string is valid pipeline URL URL.
3758
3707
  *
@@ -3766,16 +3715,19 @@
3766
3715
  if (!isValidUrl(url)) {
3767
3716
  return false;
3768
3717
  }
3769
- if (!url.startsWith('https://')) {
3718
+ if (!url.startsWith('https://') && !url.startsWith('http://') /* <- Note: [👣] */) {
3770
3719
  return false;
3771
3720
  }
3772
3721
  if (url.includes('#')) {
3773
3722
  // TODO: [🐠]
3774
3723
  return false;
3775
3724
  }
3725
+ /*
3726
+ Note: [👣][🧠] Is it secure to allow pipeline URLs on private and unsecured networks?
3776
3727
  if (isUrlOnPrivateNetwork(url)) {
3777
3728
  return false;
3778
3729
  }
3730
+ */
3779
3731
  return true;
3780
3732
  }
3781
3733
  /**
@@ -3815,9 +3767,9 @@
3815
3767
  * Example usages of the URL command
3816
3768
  */
3817
3769
  examples: [
3818
- 'PIPELINE URL https://promptbook.studio/library/write-cv.book.md',
3819
- 'URL https://promptbook.studio/library/write-cv.book.md',
3820
- 'https://promptbook.studio/library/write-cv.book.md',
3770
+ 'PIPELINE URL https://promptbook.studio/library/write-cv.book',
3771
+ 'URL https://promptbook.studio/library/write-cv.book',
3772
+ 'https://promptbook.studio/library/write-cv.book',
3821
3773
  ],
3822
3774
  /**
3823
3775
  * Parses the URL command