@promptbook/core 0.84.0-16 → 0.84.0-18
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 -1
- package/esm/index.es.js +23 -16
- 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 +8 -3
- package/umd/index.umd.js +23 -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/core",
|
|
3
|
-
"version": "0.84.0-
|
|
3
|
+
"version": "0.84.0-18",
|
|
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",
|
|
@@ -23,6 +25,9 @@
|
|
|
23
25
|
"natural-language-processing",
|
|
24
26
|
"nlp",
|
|
25
27
|
"openai",
|
|
28
|
+
"o3",
|
|
29
|
+
"o3-mini",
|
|
30
|
+
"deepseek",
|
|
26
31
|
"gpt-3",
|
|
27
32
|
"gpt-4",
|
|
28
33
|
"gpt-4o",
|
|
@@ -33,7 +38,7 @@
|
|
|
33
38
|
"anthropic",
|
|
34
39
|
"LLMOps"
|
|
35
40
|
],
|
|
36
|
-
"license": "
|
|
41
|
+
"license": "UNLICENSED",
|
|
37
42
|
"bugs": {
|
|
38
43
|
"url": "https://github.com/webgptorg/promptbook/issues"
|
|
39
44
|
},
|
package/umd/index.umd.js
CHANGED
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
* @generated
|
|
28
28
|
* @see https://github.com/webgptorg/promptbook
|
|
29
29
|
*/
|
|
30
|
-
var PROMPTBOOK_ENGINE_VERSION = '0.84.0-
|
|
30
|
+
var PROMPTBOOK_ENGINE_VERSION = '0.84.0-17';
|
|
31
31
|
/**
|
|
32
32
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
33
33
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -686,6 +686,12 @@
|
|
|
686
686
|
* @public exported from `@promptbook/core`
|
|
687
687
|
*/
|
|
688
688
|
var DEFAULT_BOOK_OUTPUT_PARAMETER_NAME = 'result';
|
|
689
|
+
/**
|
|
690
|
+
* Maximum file size limit
|
|
691
|
+
*
|
|
692
|
+
* @public exported from `@promptbook/core`
|
|
693
|
+
*/
|
|
694
|
+
var DEFAULT_MAX_FILE_SIZE = 100 * 1024 * 1024; // 100MB
|
|
689
695
|
// <- TODO: [🧠] Better system for generator warnings - not always "code" and "by `@promptbook/cli`"
|
|
690
696
|
/**
|
|
691
697
|
* The maximum number of iterations for a loops
|
|
@@ -5921,11 +5927,10 @@
|
|
|
5921
5927
|
function makeKnowledgeSourceHandler(knowledgeSource, tools, options) {
|
|
5922
5928
|
var _a;
|
|
5923
5929
|
return __awaiter(this, void 0, void 0, function () {
|
|
5924
|
-
var _b, fetch, knowledgeSourceContent, name, _c, _d, rootDirname, url, response_1, mimeType, basename, hash, rootDirname_1, filepath, _f, _g,
|
|
5925
|
-
return __generator(this, function (
|
|
5926
|
-
switch (
|
|
5930
|
+
var _b, fetch, knowledgeSourceContent, name, _c, _d, rootDirname, url, response_1, mimeType, basename, hash, rootDirname_1, filepath, fileContent, _f, _g, filename_1, fileExtension, mimeType;
|
|
5931
|
+
return __generator(this, function (_h) {
|
|
5932
|
+
switch (_h.label) {
|
|
5927
5933
|
case 0:
|
|
5928
|
-
console.log('!!! makeKnowledgeSourceHandler', knowledgeSource);
|
|
5929
5934
|
_b = tools.fetch, fetch = _b === void 0 ? scraperFetch : _b;
|
|
5930
5935
|
knowledgeSourceContent = knowledgeSource.knowledgeSourceContent;
|
|
5931
5936
|
name = knowledgeSource.name;
|
|
@@ -5937,7 +5942,7 @@
|
|
|
5937
5942
|
url = knowledgeSourceContent;
|
|
5938
5943
|
return [4 /*yield*/, fetch(url)];
|
|
5939
5944
|
case 1:
|
|
5940
|
-
response_1 =
|
|
5945
|
+
response_1 = _h.sent();
|
|
5941
5946
|
mimeType = ((_a = response_1.headers.get('content-type')) === null || _a === void 0 ? void 0 : _a.split(';')[0]) || 'text/html';
|
|
5942
5947
|
if (tools.fs === undefined || !url.endsWith('.pdf' /* <- TODO: [💵] */)) {
|
|
5943
5948
|
return [2 /*return*/, {
|
|
@@ -5987,17 +5992,19 @@
|
|
|
5987
5992
|
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));
|
|
5988
5993
|
return [4 /*yield*/, tools.fs.mkdir(path.dirname(path.join(rootDirname_1, filepath)), { recursive: true })];
|
|
5989
5994
|
case 2:
|
|
5990
|
-
|
|
5991
|
-
_g = (_f =
|
|
5992
|
-
_h = [path.join(rootDirname_1, filepath)];
|
|
5993
|
-
_k = (_j = Buffer).from;
|
|
5995
|
+
_h.sent();
|
|
5996
|
+
_g = (_f = Buffer).from;
|
|
5994
5997
|
return [4 /*yield*/, response_1.arrayBuffer()];
|
|
5995
|
-
case 3:
|
|
5998
|
+
case 3:
|
|
5999
|
+
fileContent = _g.apply(_f, [_h.sent()]);
|
|
6000
|
+
if (fileContent.length > DEFAULT_MAX_FILE_SIZE /* <- TODO: Allow to pass different value to remote server */) {
|
|
6001
|
+
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."));
|
|
6002
|
+
}
|
|
6003
|
+
return [4 /*yield*/, tools.fs.writeFile(path.join(rootDirname_1, filepath), fileContent)];
|
|
5996
6004
|
case 4:
|
|
5997
|
-
|
|
6005
|
+
_h.sent();
|
|
5998
6006
|
// TODO: [💵] Check the file security
|
|
5999
|
-
// TODO:
|
|
6000
|
-
// TODO: !!!!!!!! Delete the file after the scraping is done
|
|
6007
|
+
// TODO: [🧹][🧠] Delete the file after the scraping is done
|
|
6001
6008
|
return [2 /*return*/, makeKnowledgeSourceHandler({ name: name, knowledgeSourceContent: filepath }, tools, __assign(__assign({}, options), { rootDirname: rootDirname_1 }))];
|
|
6002
6009
|
case 5:
|
|
6003
6010
|
if (!isValidFilePath(knowledgeSourceContent)) return [3 /*break*/, 7];
|
|
@@ -6014,7 +6021,7 @@
|
|
|
6014
6021
|
mimeType = extensionToMimeType(fileExtension || '');
|
|
6015
6022
|
return [4 /*yield*/, isFileExisting(filename_1, tools.fs)];
|
|
6016
6023
|
case 6:
|
|
6017
|
-
if (!(
|
|
6024
|
+
if (!(_h.sent())) {
|
|
6018
6025
|
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 "); }));
|
|
6019
6026
|
}
|
|
6020
6027
|
// TODO: [🧠][😿] Test security file - file is scoped to the project (BUT maybe do this in `filesystemTools`)
|
|
@@ -11656,6 +11663,7 @@
|
|
|
11656
11663
|
exports.DEFAULT_INTERMEDIATE_FILES_STRATEGY = DEFAULT_INTERMEDIATE_FILES_STRATEGY;
|
|
11657
11664
|
exports.DEFAULT_IS_AUTO_INSTALLED = DEFAULT_IS_AUTO_INSTALLED;
|
|
11658
11665
|
exports.DEFAULT_MAX_EXECUTION_ATTEMPTS = DEFAULT_MAX_EXECUTION_ATTEMPTS;
|
|
11666
|
+
exports.DEFAULT_MAX_FILE_SIZE = DEFAULT_MAX_FILE_SIZE;
|
|
11659
11667
|
exports.DEFAULT_MAX_KNOWLEDGE_SOURCES_SCRAPING_DEPTH = DEFAULT_MAX_KNOWLEDGE_SOURCES_SCRAPING_DEPTH;
|
|
11660
11668
|
exports.DEFAULT_MAX_KNOWLEDGE_SOURCES_SCRAPING_TOTAL = DEFAULT_MAX_KNOWLEDGE_SOURCES_SCRAPING_TOTAL;
|
|
11661
11669
|
exports.DEFAULT_MAX_PARALLEL_COUNT = DEFAULT_MAX_PARALLEL_COUNT;
|