@promptbook/markdown-utils 0.84.0-16 → 0.84.0-17
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 +7 -1
- package/esm/index.es.js +22 -15
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/_packages/core.index.d.ts +2 -0
- package/esm/typings/src/config.d.ts +6 -0
- package/esm/typings/src/conversion/compilePipelineOnRemoteServer.d.ts +1 -1
- package/esm/typings/src/prepare/preparePipelineOnRemoteServer.d.ts +1 -1
- package/esm/typings/src/remote-server/socket-types/_subtypes/PromptbookServer_Identification.d.ts +5 -2
- package/package.json +4 -2
- package/umd/index.umd.js +22 -15
- package/umd/index.umd.js.map +1 -1
- package/LICENSE.md +0 -1
|
@@ -14,6 +14,7 @@ import { DEFAULT_BOOK_TITLE } from '../config';
|
|
|
14
14
|
import { DEFAULT_TASK_TITLE } from '../config';
|
|
15
15
|
import { DEFAULT_PROMPT_TASK_TITLE } from '../config';
|
|
16
16
|
import { DEFAULT_BOOK_OUTPUT_PARAMETER_NAME } from '../config';
|
|
17
|
+
import { DEFAULT_MAX_FILE_SIZE } from '../config';
|
|
17
18
|
import { MAX_FILENAME_LENGTH } from '../config';
|
|
18
19
|
import { DEFAULT_INTERMEDIATE_FILES_STRATEGY } from '../config';
|
|
19
20
|
import { DEFAULT_MAX_PARALLEL_COUNT } from '../config';
|
|
@@ -144,6 +145,7 @@ export { DEFAULT_BOOK_TITLE };
|
|
|
144
145
|
export { DEFAULT_TASK_TITLE };
|
|
145
146
|
export { DEFAULT_PROMPT_TASK_TITLE };
|
|
146
147
|
export { DEFAULT_BOOK_OUTPUT_PARAMETER_NAME };
|
|
148
|
+
export { DEFAULT_MAX_FILE_SIZE };
|
|
147
149
|
export { MAX_FILENAME_LENGTH };
|
|
148
150
|
export { DEFAULT_INTERMEDIATE_FILES_STRATEGY };
|
|
149
151
|
export { DEFAULT_MAX_PARALLEL_COUNT };
|
|
@@ -77,6 +77,12 @@ export declare const DEFAULT_PROMPT_TASK_TITLE = "Prompt";
|
|
|
77
77
|
* @public exported from `@promptbook/core`
|
|
78
78
|
*/
|
|
79
79
|
export declare const DEFAULT_BOOK_OUTPUT_PARAMETER_NAME = "result";
|
|
80
|
+
/**
|
|
81
|
+
* Maximum file size limit
|
|
82
|
+
*
|
|
83
|
+
* @public exported from `@promptbook/core`
|
|
84
|
+
*/
|
|
85
|
+
export declare const DEFAULT_MAX_FILE_SIZE: number;
|
|
80
86
|
/**
|
|
81
87
|
* Warning message for the generated sections and files files
|
|
82
88
|
*
|
|
@@ -17,5 +17,5 @@ import type { RemoteClientOptions } from '../remote-server/types/RemoteClientOpt
|
|
|
17
17
|
*/
|
|
18
18
|
export declare function compilePipelineOnRemoteServer<TCustomOptions = undefined>(pipelineString: PipelineString, options: RemoteClientOptions<TCustomOptions>): Promise<PipelineJson>;
|
|
19
19
|
/**
|
|
20
|
-
* TODO:
|
|
20
|
+
* TODO: [🐚] Do not return Promise<PipelineJson> But PreparePipelineTask
|
|
21
21
|
*/
|
|
@@ -13,5 +13,5 @@ import type { RemoteClientOptions } from '../remote-server/types/RemoteClientOpt
|
|
|
13
13
|
*/
|
|
14
14
|
export declare function preparePipelineOnRemoteServer<TCustomOptions = undefined>(pipeline: PipelineJson, options: RemoteClientOptions<TCustomOptions>): Promise<PipelineJson>;
|
|
15
15
|
/**
|
|
16
|
-
* TODO:
|
|
16
|
+
* TODO: [🐚] Do not return Promise<PipelineJson> But PreparePipelineTask
|
|
17
17
|
*/
|
package/esm/typings/src/remote-server/socket-types/_subtypes/PromptbookServer_Identification.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import type { ApplicationRemoteServerClientOptions } from '../../types/RemoteSer
|
|
|
9
9
|
*/
|
|
10
10
|
export type PromptbookServer_Identification<TCustomOptions> = PromptbookServer_ApplicationIdentification<TCustomOptions> | PromptbookServer_AnonymousIdentification;
|
|
11
11
|
/**
|
|
12
|
-
* Application mode is
|
|
12
|
+
* Application mode is situation when you run known and well-defined books with your own api keys
|
|
13
13
|
*
|
|
14
14
|
* @public exported from `@promptbook/remote-server`
|
|
15
15
|
* @public exported from `@promptbook/remote-client`
|
|
@@ -21,7 +21,10 @@ export type PromptbookServer_ApplicationIdentification<TCustomOptions> = Applica
|
|
|
21
21
|
readonly isAnonymous: false;
|
|
22
22
|
};
|
|
23
23
|
/**
|
|
24
|
-
* Anonymous mode is
|
|
24
|
+
* Anonymous mode is when you run arbitrary user books without api keys from user
|
|
25
|
+
*
|
|
26
|
+
* Note: This is useful in situations when the LLM provider does not allow to call the API requests from the client side
|
|
27
|
+
* It is kind of a proxy mode
|
|
25
28
|
*
|
|
26
29
|
* @public exported from `@promptbook/remote-server`
|
|
27
30
|
* @public exported from `@promptbook/remote-client`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promptbook/markdown-utils",
|
|
3
|
-
"version": "0.84.0-
|
|
3
|
+
"version": "0.84.0-17",
|
|
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,
|
|
@@ -8,8 +8,10 @@
|
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "https://github.com/webgptorg/promptbook"
|
|
10
10
|
},
|
|
11
|
+
"author": "Pavol Hejný <pavol@ptbk.io> (https://www.pavolhejny.com/)",
|
|
11
12
|
"contributors": [
|
|
12
|
-
"Pavol Hejný <pavol@ptbk.io> (https://www.pavolhejny.com/)"
|
|
13
|
+
"Pavol Hejný <pavol@ptbk.io> (https://www.pavolhejny.com/)",
|
|
14
|
+
"Jiří Jahn <jiri@ptbk.io> (https://www.ptbk.io/)"
|
|
13
15
|
],
|
|
14
16
|
"keywords": [
|
|
15
17
|
"ai",
|
package/umd/index.umd.js
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* @generated
|
|
26
26
|
* @see https://github.com/webgptorg/promptbook
|
|
27
27
|
*/
|
|
28
|
-
var PROMPTBOOK_ENGINE_VERSION = '0.84.0-
|
|
28
|
+
var PROMPTBOOK_ENGINE_VERSION = '0.84.0-16';
|
|
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
|
|
@@ -778,6 +778,12 @@
|
|
|
778
778
|
* @public exported from `@promptbook/core`
|
|
779
779
|
*/
|
|
780
780
|
var DEFAULT_BOOK_TITLE = "\u2728 Untitled Book";
|
|
781
|
+
/**
|
|
782
|
+
* Maximum file size limit
|
|
783
|
+
*
|
|
784
|
+
* @public exported from `@promptbook/core`
|
|
785
|
+
*/
|
|
786
|
+
var DEFAULT_MAX_FILE_SIZE = 100 * 1024 * 1024; // 100MB
|
|
781
787
|
// <- TODO: [🧠] Better system for generator warnings - not always "code" and "by `@promptbook/cli`"
|
|
782
788
|
/**
|
|
783
789
|
* The maximum number of iterations for a loops
|
|
@@ -3702,11 +3708,10 @@
|
|
|
3702
3708
|
function makeKnowledgeSourceHandler(knowledgeSource, tools, options) {
|
|
3703
3709
|
var _a;
|
|
3704
3710
|
return __awaiter(this, void 0, void 0, function () {
|
|
3705
|
-
var _b, fetch, knowledgeSourceContent, name, _c, _d, rootDirname, url, response_1, mimeType, basename, hash, rootDirname_1, filepath, _f, _g,
|
|
3706
|
-
return __generator(this, function (
|
|
3707
|
-
switch (
|
|
3711
|
+
var _b, fetch, knowledgeSourceContent, name, _c, _d, rootDirname, url, response_1, mimeType, basename, hash, rootDirname_1, filepath, fileContent, _f, _g, filename_1, fileExtension, mimeType;
|
|
3712
|
+
return __generator(this, function (_h) {
|
|
3713
|
+
switch (_h.label) {
|
|
3708
3714
|
case 0:
|
|
3709
|
-
console.log('!!! makeKnowledgeSourceHandler', knowledgeSource);
|
|
3710
3715
|
_b = tools.fetch, fetch = _b === void 0 ? scraperFetch : _b;
|
|
3711
3716
|
knowledgeSourceContent = knowledgeSource.knowledgeSourceContent;
|
|
3712
3717
|
name = knowledgeSource.name;
|
|
@@ -3718,7 +3723,7 @@
|
|
|
3718
3723
|
url = knowledgeSourceContent;
|
|
3719
3724
|
return [4 /*yield*/, fetch(url)];
|
|
3720
3725
|
case 1:
|
|
3721
|
-
response_1 =
|
|
3726
|
+
response_1 = _h.sent();
|
|
3722
3727
|
mimeType = ((_a = response_1.headers.get('content-type')) === null || _a === void 0 ? void 0 : _a.split(';')[0]) || 'text/html';
|
|
3723
3728
|
if (tools.fs === undefined || !url.endsWith('.pdf' /* <- TODO: [💵] */)) {
|
|
3724
3729
|
return [2 /*return*/, {
|
|
@@ -3768,17 +3773,19 @@
|
|
|
3768
3773
|
filepath = path.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));
|
|
3769
3774
|
return [4 /*yield*/, tools.fs.mkdir(path.dirname(path.join(rootDirname_1, filepath)), { recursive: true })];
|
|
3770
3775
|
case 2:
|
|
3771
|
-
|
|
3772
|
-
_g = (_f =
|
|
3773
|
-
_h = [path.join(rootDirname_1, filepath)];
|
|
3774
|
-
_k = (_j = Buffer).from;
|
|
3776
|
+
_h.sent();
|
|
3777
|
+
_g = (_f = Buffer).from;
|
|
3775
3778
|
return [4 /*yield*/, response_1.arrayBuffer()];
|
|
3776
|
-
case 3:
|
|
3779
|
+
case 3:
|
|
3780
|
+
fileContent = _g.apply(_f, [_h.sent()]);
|
|
3781
|
+
if (fileContent.length > DEFAULT_MAX_FILE_SIZE /* <- TODO: Allow to pass different value to remote server */) {
|
|
3782
|
+
throw new LimitReachedError("File is too large (".concat(Math.round(fileContent.length / 1024 / 1024), "MB). Maximum allowed size is ").concat(Math.round(DEFAULT_MAX_FILE_SIZE / 1024 / 1024), "MB."));
|
|
3783
|
+
}
|
|
3784
|
+
return [4 /*yield*/, tools.fs.writeFile(path.join(rootDirname_1, filepath), fileContent)];
|
|
3777
3785
|
case 4:
|
|
3778
|
-
|
|
3786
|
+
_h.sent();
|
|
3779
3787
|
// TODO: [💵] Check the file security
|
|
3780
|
-
// TODO:
|
|
3781
|
-
// TODO: !!!!!!!! Delete the file after the scraping is done
|
|
3788
|
+
// TODO: [🧹][🧠] Delete the file after the scraping is done
|
|
3782
3789
|
return [2 /*return*/, makeKnowledgeSourceHandler({ name: name, knowledgeSourceContent: filepath }, tools, __assign(__assign({}, options), { rootDirname: rootDirname_1 }))];
|
|
3783
3790
|
case 5:
|
|
3784
3791
|
if (!isValidFilePath(knowledgeSourceContent)) return [3 /*break*/, 7];
|
|
@@ -3795,7 +3802,7 @@
|
|
|
3795
3802
|
mimeType = extensionToMimeType(fileExtension || '');
|
|
3796
3803
|
return [4 /*yield*/, isFileExisting(filename_1, tools.fs)];
|
|
3797
3804
|
case 6:
|
|
3798
|
-
if (!(
|
|
3805
|
+
if (!(_h.sent())) {
|
|
3799
3806
|
throw new NotFoundError(spaceTrim__default["default"](function (block) { return "\n Can not make source handler for file which does not exist:\n\n File:\n ".concat(block(knowledgeSourceContent), "\n\n Full file path:\n ").concat(block(filename_1), "\n "); }));
|
|
3800
3807
|
}
|
|
3801
3808
|
// TODO: [🧠][😿] Test security file - file is scoped to the project (BUT maybe do this in `filesystemTools`)
|