@promptbook/cli 0.59.0-20 → 0.59.0-23

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 (50) hide show
  1. package/bin/promptbook-cli.js +1 -1
  2. package/esm/index.es.js +194 -216
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/typings/src/_packages/cli.index.d.ts +2 -2
  5. package/esm/typings/src/_packages/core.index.d.ts +6 -6
  6. package/esm/typings/src/_packages/node.index.d.ts +2 -2
  7. package/esm/typings/src/_packages/types.index.d.ts +2 -1
  8. package/esm/typings/src/cli/actions/hello.d.ts +7 -0
  9. package/esm/typings/src/cli/actions/make.d.ts +7 -0
  10. package/esm/typings/src/cli/actions/prettify.d.ts +7 -0
  11. package/esm/typings/src/{conversion/prettify/prettifyPromptbookStringCli.d.ts → cli/promptbookCli.d.ts} +2 -2
  12. package/esm/typings/src/knowledge/prepare-knowledge/markdown/prepareKnowledgeFromMarkdown.d.ts +16 -2
  13. package/esm/typings/src/library/SimplePromptbookLibrary.d.ts +3 -1
  14. package/{umd/typings/src/library/constructors/createPromptbookLibraryFromDirectory.d.ts → esm/typings/src/library/constructors/createLibraryFromDirectory.d.ts} +2 -2
  15. package/esm/typings/src/library/constructors/createLibraryFromJson.d.ts +12 -0
  16. package/{umd/typings/src/library/constructors/createPromptbookLibraryFromPromise.d.ts → esm/typings/src/library/constructors/createLibraryFromPromise.d.ts} +3 -7
  17. package/{umd/typings/src/library/constructors/createPromptbookLibraryFromUrl.d.ts → esm/typings/src/library/constructors/createLibraryFromUrl.d.ts} +2 -2
  18. package/esm/typings/src/library/constructors/{createPromptbookSublibrary.d.ts → createSublibrary.d.ts} +1 -1
  19. package/esm/typings/src/library/libraryToJson.d.ts +8 -0
  20. package/esm/typings/src/llm-providers/remote/startRemoteServer.d.ts +1 -1
  21. package/package.json +2 -2
  22. package/umd/index.umd.js +150 -172
  23. package/umd/index.umd.js.map +1 -1
  24. package/umd/typings/src/_packages/cli.index.d.ts +2 -2
  25. package/umd/typings/src/_packages/core.index.d.ts +6 -6
  26. package/umd/typings/src/_packages/node.index.d.ts +2 -2
  27. package/umd/typings/src/_packages/types.index.d.ts +2 -1
  28. package/umd/typings/src/cli/actions/hello.d.ts +7 -0
  29. package/umd/typings/src/cli/actions/make.d.ts +7 -0
  30. package/umd/typings/src/cli/actions/prettify.d.ts +7 -0
  31. package/umd/typings/src/{conversion/prettify/prettifyPromptbookStringCli.d.ts → cli/promptbookCli.d.ts} +2 -2
  32. package/umd/typings/src/knowledge/prepare-knowledge/markdown/prepareKnowledgeFromMarkdown.d.ts +16 -2
  33. package/umd/typings/src/library/SimplePromptbookLibrary.d.ts +3 -1
  34. package/{esm/typings/src/library/constructors/createPromptbookLibraryFromDirectory.d.ts → umd/typings/src/library/constructors/createLibraryFromDirectory.d.ts} +2 -2
  35. package/umd/typings/src/library/constructors/createLibraryFromJson.d.ts +12 -0
  36. package/{esm/typings/src/library/constructors/createPromptbookLibraryFromPromise.d.ts → umd/typings/src/library/constructors/createLibraryFromPromise.d.ts} +3 -7
  37. package/umd/typings/src/library/constructors/createLibraryFromPromise.test.d.ts +1 -0
  38. package/{esm/typings/src/library/constructors/createPromptbookLibraryFromUrl.d.ts → umd/typings/src/library/constructors/createLibraryFromUrl.d.ts} +2 -2
  39. package/umd/typings/src/library/constructors/{createPromptbookSublibrary.d.ts → createSublibrary.d.ts} +1 -1
  40. package/umd/typings/src/library/libraryToJson.d.ts +8 -0
  41. package/umd/typings/src/library/libraryToJson.test.d.ts +1 -0
  42. package/umd/typings/src/llm-providers/remote/startRemoteServer.d.ts +1 -1
  43. package/esm/typings/src/library/constructors/createPromptbookLibraryFromSources.d.ts +0 -16
  44. package/umd/typings/src/library/constructors/createPromptbookLibraryFromSources.d.ts +0 -16
  45. /package/esm/typings/src/library/constructors/{createPromptbookLibraryFromDirectory.test.d.ts → createLibraryFromDirectory.test.d.ts} +0 -0
  46. /package/esm/typings/src/library/constructors/{createPromptbookLibraryFromPromise.test.d.ts → createLibraryFromJson.test.d.ts} +0 -0
  47. /package/esm/typings/src/library/constructors/{createPromptbookLibraryFromSources.test.d.ts → createLibraryFromPromise.test.d.ts} +0 -0
  48. /package/{umd/typings/src/library/constructors/createPromptbookLibraryFromDirectory.test.d.ts → esm/typings/src/library/libraryToJson.test.d.ts} +0 -0
  49. /package/umd/typings/src/library/constructors/{createPromptbookLibraryFromPromise.test.d.ts → createLibraryFromDirectory.test.d.ts} +0 -0
  50. /package/umd/typings/src/library/constructors/{createPromptbookLibraryFromSources.test.d.ts → createLibraryFromJson.test.d.ts} +0 -0
@@ -6,6 +6,7 @@ import type { PromptbookLibrary } from './PromptbookLibrary';
6
6
  * Library of promptbooks that groups together promptbooks for an application.
7
7
  * This implementation is a very thin wrapper around the Array / Map of promptbooks.
8
8
  *
9
+ * @private use `createLibraryFromJson` instead
9
10
  * @see https://github.com/webgptorg/promptbook#promptbook-library
10
11
  */
11
12
  export declare class SimplePromptbookLibrary implements PromptbookLibrary {
@@ -15,8 +16,9 @@ export declare class SimplePromptbookLibrary implements PromptbookLibrary {
15
16
  *
16
17
  * @param promptbooks !!!
17
18
  *
19
+ * @private Use instead `createLibraryFromJson`
18
20
  * Note: During the construction logic of all promptbooks are validated
19
- * Note: It is not recommended to use this constructor directly, use `createPromptbookLibraryFromSources` *(or other variant)* instead
21
+ * Note: It is not recommended to use this constructor directly, use `createLibraryFromJson` *(or other variant)* instead
20
22
  */
21
23
  constructor(...promptbooks: Array<PromptbookJson>);
22
24
  /**
@@ -1,7 +1,7 @@
1
1
  import type { string_folder_path } from '../../types/typeAliases';
2
2
  import type { PromptbookLibrary } from '../PromptbookLibrary';
3
3
  /**
4
- * Options for `createPromptbookLibraryFromDirectory` function
4
+ * Options for `createLibraryFromDirectory` function
5
5
  */
6
6
  type CreatePromptbookLibraryFromDirectoryOptions = {
7
7
  /**
@@ -39,7 +39,7 @@ type CreatePromptbookLibraryFromDirectoryOptions = {
39
39
  * @param options - Misc options for the library
40
40
  * @returns PromptbookLibrary
41
41
  */
42
- export declare function createPromptbookLibraryFromDirectory(path: string_folder_path, options?: CreatePromptbookLibraryFromDirectoryOptions): Promise<PromptbookLibrary>;
42
+ export declare function createLibraryFromDirectory(path: string_folder_path, options?: CreatePromptbookLibraryFromDirectoryOptions): Promise<PromptbookLibrary>;
43
43
  export {};
44
44
  /**
45
45
  * TODO: !!!! [🧠] Library precompilation and do not mix markdown and json promptbooks
@@ -0,0 +1,12 @@
1
+ import type { PromptbookJson } from '../../types/PromptbookJson/PromptbookJson';
2
+ import { SimplePromptbookLibrary } from '../SimplePromptbookLibrary';
3
+ /**
4
+ * Creates PromptbookLibrary from array of PromptbookJson or PromptbookString
5
+ *
6
+ * Note: Functions `libraryToJson` and `createLibraryFromJson` are complementary
7
+ * Note: During the construction syntax and logic of all sources are validated
8
+ *
9
+ * @param promptbookSources
10
+ * @returns PromptbookLibrary
11
+ */
12
+ export declare function createLibraryFromJson(...promptbooks: Array<PromptbookJson>): Promise<SimplePromptbookLibrary>;
@@ -1,5 +1,4 @@
1
1
  import type { PromptbookJson } from '../../types/PromptbookJson/PromptbookJson';
2
- import type { PromptbookString } from '../../types/PromptbookString';
3
2
  import type { PromptbookLibrary } from '../PromptbookLibrary';
4
3
  /**
5
4
  * Constructs Promptbook from async sources
@@ -8,19 +7,16 @@ import type { PromptbookLibrary } from '../PromptbookLibrary';
8
7
  * - Factory function that returns Promise of array of PromptbookJson or PromptbookString
9
8
  *
10
9
  * Note: This is useful as internal tool for other constructor functions like
11
- * `createPromptbookLibraryFromUrl` or `createPromptbookLibraryFromDirectory`
10
+ * `createLibraryFromUrl` or `createLibraryFromDirectory`
12
11
  * Consider using those functions instead of this one
13
12
  *
14
13
  * Note: The function does NOT return promise it returns the library directly which waits for the sources to be resolved
15
14
  * when error occurs in given promise or factory function, it is thrown during `listPromptbooks` or `getPromptbookByUrl` call
16
15
  *
17
- * Note: Consider using `createPromptbookLibraryFromDirectory` or `createPromptbookLibraryFromUrl`
16
+ * Note: Consider using `createLibraryFromDirectory` or `createLibraryFromUrl`
18
17
  *
19
18
  * @param promptbookSourcesPromiseOrFactory
20
19
  * @returns PromptbookLibrary
21
20
  * @deprecated Do not use, it will became internal tool for other constructor functions
22
21
  */
23
- export declare function createPromptbookLibraryFromPromise(promptbookSourcesPromiseOrFactory: Promise<Array<PromptbookJson | PromptbookString>> | (() => Promise<Array<PromptbookJson | PromptbookString>>)): PromptbookLibrary;
24
- /**
25
- * TODO: !!!! [🧠] Library precompilation and do not mix markdown and json promptbooks
26
- */
22
+ export declare function createLibraryFromPromise(promptbookSourcesPromiseOrFactory: Promise<Array<PromptbookJson>> | (() => Promise<Array<PromptbookJson>>)): PromptbookLibrary;
@@ -1,7 +1,7 @@
1
1
  import type { string_url } from '../../types/typeAliases';
2
2
  import type { PromptbookLibrary } from '../PromptbookLibrary';
3
3
  /**
4
- * Options for `createPromptbookLibraryFromDirectory` function
4
+ * Options for `createLibraryFromDirectory` function
5
5
  */
6
6
  type CreatePromptbookLibraryFromUrlyOptions = {
7
7
  /**
@@ -22,7 +22,7 @@ type CreatePromptbookLibraryFromUrlyOptions = {
22
22
 
23
23
  * @returns PromptbookLibrary
24
24
  */
25
- export declare function createPromptbookLibraryFromUrl(url: string_url | URL, options: CreatePromptbookLibraryFromUrlyOptions): Promise<PromptbookLibrary>;
25
+ export declare function createLibraryFromUrl(url: string_url | URL, options: CreatePromptbookLibraryFromUrlyOptions): Promise<PromptbookLibrary>;
26
26
  export {};
27
27
  /**
28
28
  * TODO: !!!! [🧠] Library precompilation and do not mix markdown and json promptbooks
@@ -9,4 +9,4 @@ import type { PromptbookLibrary } from '../PromptbookLibrary';
9
9
  * @param promptbookSources
10
10
  * @returns PromptbookLibrary
11
11
  */
12
- export declare function createPromptbookSublibrary(library: PromptbookLibrary, predicate: (url: string_promptbook_url) => boolean): PromptbookLibrary;
12
+ export declare function createSublibrary(library: PromptbookLibrary, predicate: (url: string_promptbook_url) => boolean): PromptbookLibrary;
@@ -0,0 +1,8 @@
1
+ import type { PromptbookJson } from '../types/PromptbookJson/PromptbookJson';
2
+ import type { PromptbookLibrary } from './PromptbookLibrary';
3
+ /**
4
+ * Converts PromptbookLibrary to serialized JSON
5
+ *
6
+ * Note: Functions `libraryToJson` and `createLibraryFromJson` are complementary
7
+ */
8
+ export declare function libraryToJson(library: PromptbookLibrary): Promise<Array<PromptbookJson>>;
@@ -10,7 +10,7 @@ import type { RemoteServerOptions } from './interfaces/RemoteServerOptions';
10
10
  */
11
11
  export declare function startRemoteServer(options: RemoteServerOptions): IDestroyable;
12
12
  /**
13
- * TODO: [⚖] Expose the library to be able to connect to same library via createPromptbookLibraryFromUrl
13
+ * TODO: [⚖] Expose the library to be able to connect to same library via createLibraryFromUrl
14
14
  * TODO: Handle progress - support streaming
15
15
  * TODO: [🤹‍♂️] Do not hang up immediately but wait until client closes OR timeout
16
16
  * TODO: [🤹‍♂️] Timeout on chat to free up resources
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/cli",
3
- "version": "0.59.0-20",
3
+ "version": "0.59.0-23",
4
4
  "description": "Library to supercharge your use of large language models",
5
5
  "private": false,
6
6
  "sideEffects": false,
@@ -52,7 +52,7 @@
52
52
  }
53
53
  ],
54
54
  "peerDependencies": {
55
- "@promptbook/core": "0.59.0-20"
55
+ "@promptbook/core": "0.59.0-23"
56
56
  },
57
57
  "main": "./umd/index.umd.js",
58
58
  "module": "./esm/index.es.js",
package/umd/index.umd.js CHANGED
@@ -1,15 +1,15 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('colors'), require('commander'), require('fs/promises'), require('glob-promise'), require('spacetrim'), require('waitasecond'), require('prettier'), require('prettier/parser-html')) :
3
- typeof define === 'function' && define.amd ? define(['exports', 'colors', 'commander', 'fs/promises', 'glob-promise', 'spacetrim', 'waitasecond', 'prettier', 'prettier/parser-html'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-cli"] = {}, global.colors, global.commander, global.promises, global.glob, global.spaceTrim, global.waitasecond, global.prettier, global.parserHtml));
5
- })(this, (function (exports, colors, commander, promises, glob, spaceTrim, waitasecond, prettier, parserHtml) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('commander'), require('spacetrim'), require('colors'), require('waitasecond'), require('fs/promises'), require('glob-promise'), require('prettier'), require('prettier/parser-html')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', 'commander', 'spacetrim', 'colors', 'waitasecond', 'fs/promises', 'glob-promise', 'prettier', 'prettier/parser-html'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-cli"] = {}, global.commander, global.spaceTrim, global.colors, global.waitasecond, global.promises, global.glob, global.prettier, global.parserHtml));
5
+ })(this, (function (exports, commander, spaceTrim, colors, waitasecond, promises, glob, prettier, parserHtml) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
9
- var colors__default = /*#__PURE__*/_interopDefaultLegacy(colors);
10
9
  var commander__default = /*#__PURE__*/_interopDefaultLegacy(commander);
11
- var glob__default = /*#__PURE__*/_interopDefaultLegacy(glob);
12
10
  var spaceTrim__default = /*#__PURE__*/_interopDefaultLegacy(spaceTrim);
11
+ var colors__default = /*#__PURE__*/_interopDefaultLegacy(colors);
12
+ var glob__default = /*#__PURE__*/_interopDefaultLegacy(glob);
13
13
  var parserHtml__default = /*#__PURE__*/_interopDefaultLegacy(parserHtml);
14
14
 
15
15
  /*! *****************************************************************************
@@ -147,7 +147,37 @@
147
147
  /**
148
148
  * The version of the Promptbook library
149
149
  */
150
- var PROMPTBOOK_VERSION = '0.59.0-22';
150
+ var PROMPTBOOK_VERSION = '0.59.0-21';
151
+
152
+ /**
153
+ * Initializes testing `hello` command for Promptbook CLI utilities
154
+ *
155
+ * @private part of `promptbookCli`
156
+ */
157
+ function initializeHello(program) {
158
+ var _this = this;
159
+ var helloCommand = program.command('hello');
160
+ helloCommand.description(spaceTrim__default["default"]("\n Just command for testing\n "));
161
+ helloCommand.argument('<name>', 'Your name');
162
+ helloCommand.option('-g, --greeting <greeting>', "Greeting", 'Hello');
163
+ helloCommand.action(function (name, _a) {
164
+ var greeting = _a.greeting;
165
+ return __awaiter(_this, void 0, void 0, function () {
166
+ return __generator(this, function (_b) {
167
+ switch (_b.label) {
168
+ case 0:
169
+ console.info(colors__default["default"].cyan("".concat(greeting, " ").concat(name)));
170
+ return [4 /*yield*/, waitasecond.forTime(1000)];
171
+ case 1:
172
+ _b.sent();
173
+ console.info(colors__default["default"].rainbow("Nice to meet you!"));
174
+ process.exit(0);
175
+ return [2 /*return*/];
176
+ }
177
+ });
178
+ });
179
+ });
180
+ }
151
181
 
152
182
  /**
153
183
  * Removes HTML or Markdown comments from a string.
@@ -226,7 +256,7 @@
226
256
  return PromptbookSyntaxError;
227
257
  }(Error));
228
258
 
229
- var promptbookLibrary = [{title:"Prepare Knowledge from Markdown",promptbookUrl:"https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.ptbk.md",promptbookVersion:"0.59.0-22",parameters:[{name:"content",description:"Markdown document content",isInput:true,isOutput:false},{name:"knowledge",description:"The knowledge JSON object",isInput:false,isOutput:true}],promptTemplates:[{name:"knowledge",title:"Knowledge",dependentParameterNames:["content"],executionType:"PROMPT_TEMPLATE",modelRequirements:{modelVariant:"CHAT",modelName:"claude-3-opus-20240229"},content:"You are experienced data researcher, extract the important knowledge from the document.\n\n# Rules\n\n- Make pieces of information concise, clear, and easy to understand\n- One piece of information should be approximately 1 paragraph\n- Divide the paragraphs by markdown horizontal lines ---\n- Omit irrelevant information\n- Group redundant information\n- Write just extracted information, nothing else\n\n# The document\n\nTake information from this document:\n\n> {content}",resultingParameterName:"knowledge"}],knowledge:[]}];
259
+ var promptbookLibrary = [{title:"Prepare Knowledge from Markdown",promptbookUrl:"https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.ptbk.md",promptbookVersion:"0.59.0-21",parameters:[{name:"content",description:"Markdown document content",isInput:true,isOutput:false},{name:"knowledge",description:"The knowledge JSON object",isInput:false,isOutput:true}],promptTemplates:[{name:"knowledge",title:"Knowledge",dependentParameterNames:["content"],executionType:"PROMPT_TEMPLATE",modelRequirements:{modelVariant:"CHAT",modelName:"claude-3-opus-20240229"},content:"You are experienced data researcher, extract the important knowledge from the document.\n\n# Rules\n\n- Make pieces of information concise, clear, and easy to understand\n- One piece of information should be approximately 1 paragraph\n- Divide the paragraphs by markdown horizontal lines ---\n- Omit irrelevant information\n- Group redundant information\n- Write just extracted information, nothing else\n\n# The document\n\nTake information from this document:\n\n> {content}",resultingParameterName:"knowledge"}],knowledge:[]}];
230
260
 
231
261
  /**
232
262
  * This error indicates errors during the execution of the promptbook
@@ -1847,6 +1877,7 @@
1847
1877
  * Library of promptbooks that groups together promptbooks for an application.
1848
1878
  * This implementation is a very thin wrapper around the Array / Map of promptbooks.
1849
1879
  *
1880
+ * @private use `createLibraryFromJson` instead
1850
1881
  * @see https://github.com/webgptorg/promptbook#promptbook-library
1851
1882
  */
1852
1883
  var SimplePromptbookLibrary = /** @class */ (function () {
@@ -1855,8 +1886,9 @@
1855
1886
  *
1856
1887
  * @param promptbooks !!!
1857
1888
  *
1889
+ * @private Use instead `createLibraryFromJson`
1858
1890
  * Note: During the construction logic of all promptbooks are validated
1859
- * Note: It is not recommended to use this constructor directly, use `createPromptbookLibraryFromSources` *(or other variant)* instead
1891
+ * Note: It is not recommended to use this constructor directly, use `createLibraryFromJson` *(or other variant)* instead
1860
1892
  */
1861
1893
  function SimplePromptbookLibrary() {
1862
1894
  var e_1, _a;
@@ -1925,68 +1957,23 @@
1925
1957
  /**
1926
1958
  * Creates PromptbookLibrary from array of PromptbookJson or PromptbookString
1927
1959
  *
1928
- * Note: You can combine `PromptbookString` (`.ptbk.md`) with `PromptbookJson` BUT it is not recommended
1960
+ * Note: Functions `libraryToJson` and `createLibraryFromJson` are complementary
1929
1961
  * Note: During the construction syntax and logic of all sources are validated
1930
1962
  *
1931
1963
  * @param promptbookSources
1932
1964
  * @returns PromptbookLibrary
1933
1965
  */
1934
- function createPromptbookLibraryFromSources() {
1935
- var promptbookSources = [];
1966
+ function createLibraryFromJson() {
1967
+ var promptbooks = [];
1936
1968
  for (var _i = 0; _i < arguments.length; _i++) {
1937
- promptbookSources[_i] = arguments[_i];
1969
+ promptbooks[_i] = arguments[_i];
1938
1970
  }
1939
1971
  return __awaiter(this, void 0, void 0, function () {
1940
- var promptbooks, promptbookSources_1, promptbookSources_1_1, source, promptbook, e_1_1;
1941
- var e_1, _a;
1942
- return __generator(this, function (_b) {
1943
- switch (_b.label) {
1944
- case 0:
1945
- promptbooks = new Array();
1946
- _b.label = 1;
1947
- case 1:
1948
- _b.trys.push([1, 8, 9, 10]);
1949
- promptbookSources_1 = __values(promptbookSources), promptbookSources_1_1 = promptbookSources_1.next();
1950
- _b.label = 2;
1951
- case 2:
1952
- if (!!promptbookSources_1_1.done) return [3 /*break*/, 7];
1953
- source = promptbookSources_1_1.value;
1954
- promptbook = void 0;
1955
- if (!(typeof source === 'string')) return [3 /*break*/, 4];
1956
- return [4 /*yield*/, promptbookStringToJson(source)];
1957
- case 3:
1958
- // Note: When directly creating from string, no need to validate the source
1959
- // The validation is performed always before execution
1960
- promptbook = _b.sent();
1961
- return [3 /*break*/, 5];
1962
- case 4:
1963
- promptbook = source;
1964
- _b.label = 5;
1965
- case 5:
1966
- promptbooks.push(promptbook);
1967
- _b.label = 6;
1968
- case 6:
1969
- promptbookSources_1_1 = promptbookSources_1.next();
1970
- return [3 /*break*/, 2];
1971
- case 7: return [3 /*break*/, 10];
1972
- case 8:
1973
- e_1_1 = _b.sent();
1974
- e_1 = { error: e_1_1 };
1975
- return [3 /*break*/, 10];
1976
- case 9:
1977
- try {
1978
- if (promptbookSources_1_1 && !promptbookSources_1_1.done && (_a = promptbookSources_1.return)) _a.call(promptbookSources_1);
1979
- }
1980
- finally { if (e_1) throw e_1.error; }
1981
- return [7 /*endfinally*/];
1982
- case 10: return [2 /*return*/, new (SimplePromptbookLibrary.bind.apply(SimplePromptbookLibrary, __spreadArray([void 0], __read(promptbooks), false)))()];
1983
- }
1972
+ return __generator(this, function (_a) {
1973
+ return [2 /*return*/, new (SimplePromptbookLibrary.bind.apply(SimplePromptbookLibrary, __spreadArray([void 0], __read(promptbooks), false)))()];
1984
1974
  });
1985
1975
  });
1986
1976
  }
1987
- /**
1988
- * TODO: !!!! [🧠] Library precompilation and do not mix markdown and json promptbooks
1989
- */
1990
1977
 
1991
1978
  /* tslint:disable */
1992
1979
  function normalizeToKebabCase(sentence) {
@@ -2045,15 +2032,15 @@
2045
2032
 
2046
2033
  function prepareKnowledgeFromMarkdown(options) {
2047
2034
  return __awaiter(this, void 0, void 0, function () {
2048
- var content, llmTools, library, promptbook, executor, result, outputParameters, knowledgeRaw, knowledgeTextPieces, knowledge;
2035
+ var content, llmTools, _a, isVerbose, library, promptbook, executor, result, outputParameters, knowledgeRaw, knowledgeTextPieces, knowledge;
2049
2036
  var _this = this;
2050
- return __generator(this, function (_a) {
2051
- switch (_a.label) {
2037
+ return __generator(this, function (_b) {
2038
+ switch (_b.label) {
2052
2039
  case 0:
2053
- content = options.content, llmTools = options.llmTools;
2054
- return [4 /*yield*/, createPromptbookLibraryFromSources.apply(void 0, __spreadArray([], __read(promptbookLibrary), false))];
2040
+ content = options.content, llmTools = options.llmTools, _a = options.isVerbose, isVerbose = _a === void 0 ? false : _a;
2041
+ return [4 /*yield*/, createLibraryFromJson.apply(void 0, __spreadArray([], __read(promptbookLibrary), false))];
2055
2042
  case 1:
2056
- library = _a.sent();
2043
+ library = _b.sent();
2057
2044
  promptbook = library.getPromptbookByUrl('https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.ptbk.md');
2058
2045
  executor = createPromptbookExecutor({
2059
2046
  promptbook: promptbook,
@@ -2066,11 +2053,14 @@
2066
2053
  });
2067
2054
  return [4 /*yield*/, executor({ content: content })];
2068
2055
  case 2:
2069
- result = _a.sent();
2056
+ result = _b.sent();
2070
2057
  assertsExecutionSuccessful(result);
2071
2058
  outputParameters = result.outputParameters;
2072
2059
  knowledgeRaw = outputParameters.knowledge;
2073
2060
  knowledgeTextPieces = (knowledgeRaw || '').split('\n---\n');
2061
+ if (isVerbose) {
2062
+ console.info('knowledgeTextPieces:', knowledgeTextPieces);
2063
+ }
2074
2064
  return [4 /*yield*/, Promise.all(knowledgeTextPieces.map(function (knowledgeTextPiece, i) { return __awaiter(_this, void 0, void 0, function () {
2075
2065
  var name, title, content, keywords, index, sources;
2076
2066
  return __generator(this, function (_a) {
@@ -2102,7 +2092,7 @@
2102
2092
  });
2103
2093
  }); }))];
2104
2094
  case 3:
2105
- knowledge = _a.sent();
2095
+ knowledge = _b.sent();
2106
2096
  return [2 /*return*/, knowledge];
2107
2097
  }
2108
2098
  });
@@ -3366,117 +3356,105 @@
3366
3356
  */
3367
3357
 
3368
3358
  /**
3369
- * Runs CLI script for prettifying promptbooks
3359
+ * Initializes `prettify` command for Promptbook CLI utilities
3360
+ *
3361
+ * @private part of `promptbookCli`
3370
3362
  */
3371
- function prettifyPromptbookStringCli() {
3363
+ function initializePrettify(program) {
3364
+ var _this = this;
3365
+ var prettifyCommand = program.command('prettify');
3366
+ prettifyCommand.description(spaceTrim__default["default"]("\n Iterates over promptbooks and does multiple enhancing operations on them:\n\n 1) Adds Mermaid graph\n 2) Prettifies the markdown\n "));
3367
+ prettifyCommand.argument('<filesGlob>', 'Promptbooks to prettify as glob pattern');
3368
+ prettifyCommand.option('-i, --ignore <glob>', "Ignore as glob pattern");
3369
+ prettifyCommand.action(function (filesGlob, _a) {
3370
+ var ignore = _a.ignore;
3371
+ return __awaiter(_this, void 0, void 0, function () {
3372
+ var filePaths, filePaths_1, filePaths_1_1, filePath, promptbookMarkdown, error_1, e_1_1;
3373
+ var e_1, _b;
3374
+ return __generator(this, function (_c) {
3375
+ switch (_c.label) {
3376
+ case 0: return [4 /*yield*/, glob__default["default"](filesGlob, { ignore: ignore })];
3377
+ case 1:
3378
+ filePaths = _c.sent();
3379
+ _c.label = 2;
3380
+ case 2:
3381
+ _c.trys.push([2, 11, 12, 13]);
3382
+ filePaths_1 = __values(filePaths), filePaths_1_1 = filePaths_1.next();
3383
+ _c.label = 3;
3384
+ case 3:
3385
+ if (!!filePaths_1_1.done) return [3 /*break*/, 10];
3386
+ filePath = filePaths_1_1.value;
3387
+ if (!filePath.endsWith('.ptbk.md')) {
3388
+ console.warn(colors__default["default"].yellow("Skipping prettify of non-promptbook ".concat(filePath)));
3389
+ return [3 /*break*/, 9];
3390
+ }
3391
+ return [4 /*yield*/, promises.readFile(filePath, 'utf-8')];
3392
+ case 4:
3393
+ promptbookMarkdown = (_c.sent());
3394
+ _c.label = 5;
3395
+ case 5:
3396
+ _c.trys.push([5, 8, , 9]);
3397
+ return [4 /*yield*/, prettifyPromptbookString(promptbookMarkdown, {
3398
+ isGraphAdded: true,
3399
+ isPrettifyed: true,
3400
+ // <- [🕌]
3401
+ })];
3402
+ case 6:
3403
+ promptbookMarkdown = _c.sent();
3404
+ return [4 /*yield*/, promises.writeFile(filePath, promptbookMarkdown)];
3405
+ case 7:
3406
+ _c.sent();
3407
+ console.info(colors__default["default"].green("Prettify ".concat(filePath)));
3408
+ return [3 /*break*/, 9];
3409
+ case 8:
3410
+ error_1 = _c.sent();
3411
+ if (!(error_1 instanceof Error)) {
3412
+ throw error_1;
3413
+ }
3414
+ console.info(colors__default["default"].red("Prettify ".concat(error_1.name, " ").concat(filePath)));
3415
+ console.error(colors__default["default"].bgRed(error_1.name));
3416
+ console.error(error_1);
3417
+ process.exit(1);
3418
+ return [3 /*break*/, 9];
3419
+ case 9:
3420
+ filePaths_1_1 = filePaths_1.next();
3421
+ return [3 /*break*/, 3];
3422
+ case 10: return [3 /*break*/, 13];
3423
+ case 11:
3424
+ e_1_1 = _c.sent();
3425
+ e_1 = { error: e_1_1 };
3426
+ return [3 /*break*/, 13];
3427
+ case 12:
3428
+ try {
3429
+ if (filePaths_1_1 && !filePaths_1_1.done && (_b = filePaths_1.return)) _b.call(filePaths_1);
3430
+ }
3431
+ finally { if (e_1) throw e_1.error; }
3432
+ return [7 /*endfinally*/];
3433
+ case 13:
3434
+ process.exit(0);
3435
+ return [2 /*return*/];
3436
+ }
3437
+ });
3438
+ });
3439
+ });
3440
+ }
3441
+
3442
+ /**
3443
+ * Runs CLI utilities of Promptbook package
3444
+ */
3445
+ function promptbookCli() {
3372
3446
  return __awaiter(this, void 0, void 0, function () {
3373
- var program, prettifyCommand, helloCommand;
3374
- var _this = this;
3447
+ var program;
3375
3448
  return __generator(this, function (_a) {
3376
3449
  if (!isRunningInNode()) {
3377
- throw new Error(spaceTrim.spaceTrim("\n Function prettifyPromptbookStringCli is initiator of CLI script and should be run in Node.js environment.\n\n - In browser use prettifyPromptbookString.\n\n "));
3450
+ throw new Error(spaceTrim.spaceTrim("\n Function promptbookCli is initiator of CLI script and should be run in Node.js environment.\n\n - In browser use function exported from `@promptbook/utils` or `@promptbook/core` directly, for example `prettifyPromptbookString`.\n\n "));
3378
3451
  }
3379
3452
  program = new commander__default["default"].Command();
3380
3453
  program.name('promptbook');
3381
3454
  program.version(PROMPTBOOK_VERSION);
3382
- program.description(spaceTrim.spaceTrim("\n Promptbook utilities\n "));
3383
- prettifyCommand = program.command('prettify');
3384
- prettifyCommand.description(spaceTrim.spaceTrim("\n Iterates over promptbooks and does multiple enhancing operations on them:\n 1) Adds Mermaid graph\n 2) Prettifies the markdown\n "));
3385
- prettifyCommand.argument('<filesGlob>', 'Promptbooks to prettify as glob pattern');
3386
- prettifyCommand.option('-i, --ignore <glob>', "Ignore as glob pattern");
3387
- prettifyCommand.action(function (filesGlob, _a) {
3388
- var ignore = _a.ignore;
3389
- return __awaiter(_this, void 0, void 0, function () {
3390
- var filePaths, filePaths_1, filePaths_1_1, filePath, promptbookMarkdown, error_1, e_1_1;
3391
- var e_1, _b;
3392
- return __generator(this, function (_c) {
3393
- switch (_c.label) {
3394
- case 0: return [4 /*yield*/, glob__default["default"](filesGlob, { ignore: ignore })];
3395
- case 1:
3396
- filePaths = _c.sent();
3397
- _c.label = 2;
3398
- case 2:
3399
- _c.trys.push([2, 11, 12, 13]);
3400
- filePaths_1 = __values(filePaths), filePaths_1_1 = filePaths_1.next();
3401
- _c.label = 3;
3402
- case 3:
3403
- if (!!filePaths_1_1.done) return [3 /*break*/, 10];
3404
- filePath = filePaths_1_1.value;
3405
- if (!filePath.endsWith('.ptbk.md')) {
3406
- console.warn(colors__default["default"].yellow("Skipping prettify of non-promptbook ".concat(filePath)));
3407
- return [3 /*break*/, 9];
3408
- }
3409
- return [4 /*yield*/, promises.readFile(filePath, 'utf-8')];
3410
- case 4:
3411
- promptbookMarkdown = (_c.sent());
3412
- _c.label = 5;
3413
- case 5:
3414
- _c.trys.push([5, 8, , 9]);
3415
- return [4 /*yield*/, prettifyPromptbookString(promptbookMarkdown, {
3416
- isGraphAdded: true,
3417
- isPrettifyed: true,
3418
- // <- [🕌]
3419
- })];
3420
- case 6:
3421
- promptbookMarkdown = _c.sent();
3422
- return [4 /*yield*/, promises.writeFile(filePath, promptbookMarkdown)];
3423
- case 7:
3424
- _c.sent();
3425
- console.info(colors__default["default"].green("Prettify ".concat(filePath)));
3426
- return [3 /*break*/, 9];
3427
- case 8:
3428
- error_1 = _c.sent();
3429
- if (!(error_1 instanceof Error)) {
3430
- throw error_1;
3431
- }
3432
- console.info(colors__default["default"].red("Prettify ".concat(error_1.name, " ").concat(filePath)));
3433
- console.error(colors__default["default"].bgRed(error_1.name));
3434
- console.error(error_1);
3435
- process.exit(1);
3436
- return [3 /*break*/, 9];
3437
- case 9:
3438
- filePaths_1_1 = filePaths_1.next();
3439
- return [3 /*break*/, 3];
3440
- case 10: return [3 /*break*/, 13];
3441
- case 11:
3442
- e_1_1 = _c.sent();
3443
- e_1 = { error: e_1_1 };
3444
- return [3 /*break*/, 13];
3445
- case 12:
3446
- try {
3447
- if (filePaths_1_1 && !filePaths_1_1.done && (_b = filePaths_1.return)) _b.call(filePaths_1);
3448
- }
3449
- finally { if (e_1) throw e_1.error; }
3450
- return [7 /*endfinally*/];
3451
- case 13:
3452
- process.exit(0);
3453
- return [2 /*return*/];
3454
- }
3455
- });
3456
- });
3457
- });
3458
- helloCommand = program.command('hello');
3459
- helloCommand.description(spaceTrim.spaceTrim("\n Just command for testing\n "));
3460
- helloCommand.argument('<name>', 'Your name');
3461
- helloCommand.option('-g, --greeting <greeting>', "Greeting", 'Hello');
3462
- helloCommand.action(function (name, _a) {
3463
- var greeting = _a.greeting;
3464
- return __awaiter(_this, void 0, void 0, function () {
3465
- return __generator(this, function (_b) {
3466
- switch (_b.label) {
3467
- case 0:
3468
- console.info(colors__default["default"].cyan("".concat(greeting, " ").concat(name)));
3469
- return [4 /*yield*/, waitasecond.forTime(1000)];
3470
- case 1:
3471
- _b.sent();
3472
- console.info(colors__default["default"].rainbow("Nice to meet you!"));
3473
- process.exit(0);
3474
- return [2 /*return*/];
3475
- }
3476
- });
3477
- });
3478
- });
3479
- //------
3455
+ program.description(spaceTrim.spaceTrim("\n Promptbook utilities for enhancing workflow with promptbooks\n "));
3456
+ initializeHello(program);
3457
+ initializePrettify(program);
3480
3458
  program.parse(process.argv);
3481
3459
  return [2 /*return*/];
3482
3460
  });
@@ -3494,7 +3472,7 @@
3494
3472
  */
3495
3473
  var __ = {
3496
3474
  // Note: [🥠]
3497
- prettifyPromptbookStringCli: prettifyPromptbookStringCli,
3475
+ promptbookCli: promptbookCli,
3498
3476
  };
3499
3477
 
3500
3478
  exports.PROMPTBOOK_VERSION = PROMPTBOOK_VERSION;