@promptbook/remote-server 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 +6 -4
- 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/remote-server",
|
|
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",
|
|
@@ -33,7 +35,7 @@
|
|
|
33
35
|
"anthropic",
|
|
34
36
|
"LLMOps"
|
|
35
37
|
],
|
|
36
|
-
"license": "
|
|
38
|
+
"license": "UNLICENSED",
|
|
37
39
|
"bugs": {
|
|
38
40
|
"url": "https://github.com/webgptorg/promptbook/issues"
|
|
39
41
|
},
|
|
@@ -42,7 +44,7 @@
|
|
|
42
44
|
"module": "./esm/index.es.js",
|
|
43
45
|
"typings": "./esm/typings/src/_packages/remote-server.index.d.ts",
|
|
44
46
|
"peerDependencies": {
|
|
45
|
-
"@promptbook/core": "0.84.0-
|
|
47
|
+
"@promptbook/core": "0.84.0-17"
|
|
46
48
|
},
|
|
47
49
|
"dependencies": {
|
|
48
50
|
"colors": "1.4.0",
|
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-16';
|
|
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
|
|
@@ -198,6 +198,12 @@
|
|
|
198
198
|
* @public exported from `@promptbook/core`
|
|
199
199
|
*/
|
|
200
200
|
var DEFAULT_BOOK_TITLE = "\u2728 Untitled Book";
|
|
201
|
+
/**
|
|
202
|
+
* Maximum file size limit
|
|
203
|
+
*
|
|
204
|
+
* @public exported from `@promptbook/core`
|
|
205
|
+
*/
|
|
206
|
+
var DEFAULT_MAX_FILE_SIZE = 100 * 1024 * 1024; // 100MB
|
|
201
207
|
// <- TODO: [🧠] Better system for generator warnings - not always "code" and "by `@promptbook/cli`"
|
|
202
208
|
/**
|
|
203
209
|
* The maximum number of iterations for a loops
|
|
@@ -6231,11 +6237,10 @@
|
|
|
6231
6237
|
function makeKnowledgeSourceHandler(knowledgeSource, tools, options) {
|
|
6232
6238
|
var _a;
|
|
6233
6239
|
return __awaiter(this, void 0, void 0, function () {
|
|
6234
|
-
var _b, fetch, knowledgeSourceContent, name, _c, _d, rootDirname, url, response_1, mimeType, basename, hash, rootDirname_1, filepath, _f, _g,
|
|
6235
|
-
return __generator(this, function (
|
|
6236
|
-
switch (
|
|
6240
|
+
var _b, fetch, knowledgeSourceContent, name, _c, _d, rootDirname, url, response_1, mimeType, basename, hash, rootDirname_1, filepath, fileContent, _f, _g, filename_1, fileExtension, mimeType;
|
|
6241
|
+
return __generator(this, function (_h) {
|
|
6242
|
+
switch (_h.label) {
|
|
6237
6243
|
case 0:
|
|
6238
|
-
console.log('!!! makeKnowledgeSourceHandler', knowledgeSource);
|
|
6239
6244
|
_b = tools.fetch, fetch = _b === void 0 ? scraperFetch : _b;
|
|
6240
6245
|
knowledgeSourceContent = knowledgeSource.knowledgeSourceContent;
|
|
6241
6246
|
name = knowledgeSource.name;
|
|
@@ -6247,7 +6252,7 @@
|
|
|
6247
6252
|
url = knowledgeSourceContent;
|
|
6248
6253
|
return [4 /*yield*/, fetch(url)];
|
|
6249
6254
|
case 1:
|
|
6250
|
-
response_1 =
|
|
6255
|
+
response_1 = _h.sent();
|
|
6251
6256
|
mimeType = ((_a = response_1.headers.get('content-type')) === null || _a === void 0 ? void 0 : _a.split(';')[0]) || 'text/html';
|
|
6252
6257
|
if (tools.fs === undefined || !url.endsWith('.pdf' /* <- TODO: [💵] */)) {
|
|
6253
6258
|
return [2 /*return*/, {
|
|
@@ -6297,17 +6302,19 @@
|
|
|
6297
6302
|
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));
|
|
6298
6303
|
return [4 /*yield*/, tools.fs.mkdir(path.dirname(path.join(rootDirname_1, filepath)), { recursive: true })];
|
|
6299
6304
|
case 2:
|
|
6300
|
-
|
|
6301
|
-
_g = (_f =
|
|
6302
|
-
_h = [path.join(rootDirname_1, filepath)];
|
|
6303
|
-
_k = (_j = Buffer).from;
|
|
6305
|
+
_h.sent();
|
|
6306
|
+
_g = (_f = Buffer).from;
|
|
6304
6307
|
return [4 /*yield*/, response_1.arrayBuffer()];
|
|
6305
|
-
case 3:
|
|
6308
|
+
case 3:
|
|
6309
|
+
fileContent = _g.apply(_f, [_h.sent()]);
|
|
6310
|
+
if (fileContent.length > DEFAULT_MAX_FILE_SIZE /* <- TODO: Allow to pass different value to remote server */) {
|
|
6311
|
+
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."));
|
|
6312
|
+
}
|
|
6313
|
+
return [4 /*yield*/, tools.fs.writeFile(path.join(rootDirname_1, filepath), fileContent)];
|
|
6306
6314
|
case 4:
|
|
6307
|
-
|
|
6315
|
+
_h.sent();
|
|
6308
6316
|
// TODO: [💵] Check the file security
|
|
6309
|
-
// TODO:
|
|
6310
|
-
// TODO: !!!!!!!! Delete the file after the scraping is done
|
|
6317
|
+
// TODO: [🧹][🧠] Delete the file after the scraping is done
|
|
6311
6318
|
return [2 /*return*/, makeKnowledgeSourceHandler({ name: name, knowledgeSourceContent: filepath }, tools, __assign(__assign({}, options), { rootDirname: rootDirname_1 }))];
|
|
6312
6319
|
case 5:
|
|
6313
6320
|
if (!isValidFilePath(knowledgeSourceContent)) return [3 /*break*/, 7];
|
|
@@ -6324,7 +6331,7 @@
|
|
|
6324
6331
|
mimeType = extensionToMimeType(fileExtension || '');
|
|
6325
6332
|
return [4 /*yield*/, isFileExisting(filename_1, tools.fs)];
|
|
6326
6333
|
case 6:
|
|
6327
|
-
if (!(
|
|
6334
|
+
if (!(_h.sent())) {
|
|
6328
6335
|
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 "); }));
|
|
6329
6336
|
}
|
|
6330
6337
|
// TODO: [🧠][😿] Test security file - file is scoped to the project (BUT maybe do this in `filesystemTools`)
|