@promptbook/cli 0.75.2 → 0.75.4
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/esm/index.es.js +108 -68
- 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 +9 -1
- package/esm/typings/src/scrapers/_common/register/$registeredScrapersMessage.d.ts +2 -1
- package/package.json +1 -1
- package/umd/index.umd.js +108 -68
- package/umd/index.umd.js.map +1 -1
|
@@ -24,6 +24,7 @@ import { DEFAULT_REMOTE_URL } from '../config';
|
|
|
24
24
|
import { DEFAULT_REMOTE_URL_PATH } from '../config';
|
|
25
25
|
import { DEFAULT_CSV_SETTINGS } from '../config';
|
|
26
26
|
import { DEFAULT_IS_VERBOSE } from '../config';
|
|
27
|
+
import { SET_IS_VERBOSE } from '../config';
|
|
27
28
|
import { DEFAULT_IS_AUTO_INSTALLED } from '../config';
|
|
28
29
|
import { pipelineJsonToString } from '../conversion/pipelineJsonToString';
|
|
29
30
|
import { pipelineStringToJson } from '../conversion/pipelineStringToJson';
|
|
@@ -136,6 +137,7 @@ export { DEFAULT_REMOTE_URL };
|
|
|
136
137
|
export { DEFAULT_REMOTE_URL_PATH };
|
|
137
138
|
export { DEFAULT_CSV_SETTINGS };
|
|
138
139
|
export { DEFAULT_IS_VERBOSE };
|
|
140
|
+
export { SET_IS_VERBOSE };
|
|
139
141
|
export { DEFAULT_IS_AUTO_INSTALLED };
|
|
140
142
|
export { pipelineJsonToString };
|
|
141
143
|
export { pipelineStringToJson };
|
|
@@ -204,7 +204,15 @@ export declare const DEFAULT_CSV_SETTINGS: CsvSettings;
|
|
|
204
204
|
*
|
|
205
205
|
* @public exported from `@promptbook/core`
|
|
206
206
|
*/
|
|
207
|
-
export declare
|
|
207
|
+
export declare let DEFAULT_IS_VERBOSE: boolean;
|
|
208
|
+
/**
|
|
209
|
+
* @@@
|
|
210
|
+
*
|
|
211
|
+
* Note: This is experimental feature
|
|
212
|
+
*
|
|
213
|
+
* @public exported from `@promptbook/core`
|
|
214
|
+
*/
|
|
215
|
+
export declare function SET_IS_VERBOSE(isVerbose: boolean): void;
|
|
208
216
|
/**
|
|
209
217
|
* @@@
|
|
210
218
|
*
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { string_markdown } from '../../../types/typeAliases';
|
|
2
|
+
import type { Scraper } from '../Scraper';
|
|
2
3
|
/**
|
|
3
4
|
* Creates a message with all registered scrapers
|
|
4
5
|
*
|
|
@@ -6,7 +7,7 @@ import type { string_markdown } from '../../../types/typeAliases';
|
|
|
6
7
|
*
|
|
7
8
|
* @private internal function of `createScrapersFromConfiguration` and `createScrapersFromEnv`
|
|
8
9
|
*/
|
|
9
|
-
export declare function $registeredScrapersMessage(): string_markdown;
|
|
10
|
+
export declare function $registeredScrapersMessage(availableScrapers: ReadonlyArray<Scraper>): string_markdown;
|
|
10
11
|
/**
|
|
11
12
|
* TODO: [®] DRY Register logic
|
|
12
13
|
*/
|
package/package.json
CHANGED
package/umd/index.umd.js
CHANGED
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
*
|
|
50
50
|
* @see https://github.com/webgptorg/promptbook
|
|
51
51
|
*/
|
|
52
|
-
var PROMPTBOOK_ENGINE_VERSION = '0.75.
|
|
52
|
+
var PROMPTBOOK_ENGINE_VERSION = '0.75.3';
|
|
53
53
|
/**
|
|
54
54
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
55
55
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -4967,50 +4967,63 @@
|
|
|
4967
4967
|
*
|
|
4968
4968
|
* @private internal function of `createScrapersFromConfiguration` and `createScrapersFromEnv`
|
|
4969
4969
|
*/
|
|
4970
|
-
function $registeredScrapersMessage() {
|
|
4971
|
-
var e_1, _a, e_2, _b;
|
|
4970
|
+
function $registeredScrapersMessage(availableScrapers) {
|
|
4971
|
+
var e_1, _a, e_2, _b, e_3, _c;
|
|
4972
4972
|
/**
|
|
4973
4973
|
* Mixes registered scrapers from $scrapersMetadataRegister and $scrapersRegister
|
|
4974
4974
|
*/
|
|
4975
4975
|
var all = [];
|
|
4976
|
-
var _loop_1 = function (packageName, className) {
|
|
4976
|
+
var _loop_1 = function (packageName, className, mimeTypes, documentationUrl, isAvilableInBrowser) {
|
|
4977
4977
|
if (all.some(function (item) { return item.packageName === packageName && item.className === className; })) {
|
|
4978
4978
|
return "continue";
|
|
4979
4979
|
}
|
|
4980
|
-
all.push({ packageName: packageName, className: className });
|
|
4980
|
+
all.push({ packageName: packageName, className: className, mimeTypes: mimeTypes, documentationUrl: documentationUrl, isAvilableInBrowser: isAvilableInBrowser });
|
|
4981
4981
|
};
|
|
4982
4982
|
try {
|
|
4983
|
-
for (var
|
|
4984
|
-
var
|
|
4985
|
-
_loop_1(packageName, className);
|
|
4983
|
+
for (var _d = __values($scrapersMetadataRegister.list()), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
4984
|
+
var _f = _e.value, packageName = _f.packageName, className = _f.className, mimeTypes = _f.mimeTypes, documentationUrl = _f.documentationUrl, isAvilableInBrowser = _f.isAvilableInBrowser;
|
|
4985
|
+
_loop_1(packageName, className, mimeTypes, documentationUrl, isAvilableInBrowser);
|
|
4986
4986
|
}
|
|
4987
4987
|
}
|
|
4988
4988
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
4989
4989
|
finally {
|
|
4990
4990
|
try {
|
|
4991
|
-
if (
|
|
4991
|
+
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
|
|
4992
4992
|
}
|
|
4993
4993
|
finally { if (e_1) throw e_1.error; }
|
|
4994
4994
|
}
|
|
4995
|
-
var _loop_2 = function (packageName, className) {
|
|
4995
|
+
var _loop_2 = function (packageName, className, mimeTypes, documentationUrl, isAvilableInBrowser) {
|
|
4996
4996
|
if (all.some(function (item) { return item.packageName === packageName && item.className === className; })) {
|
|
4997
4997
|
return "continue";
|
|
4998
4998
|
}
|
|
4999
|
-
all.push({ packageName: packageName, className: className });
|
|
4999
|
+
all.push({ packageName: packageName, className: className, mimeTypes: mimeTypes, documentationUrl: documentationUrl, isAvilableInBrowser: isAvilableInBrowser });
|
|
5000
5000
|
};
|
|
5001
5001
|
try {
|
|
5002
|
-
for (var
|
|
5003
|
-
var
|
|
5004
|
-
_loop_2(packageName, className);
|
|
5002
|
+
for (var _g = __values($scrapersRegister.list()), _h = _g.next(); !_h.done; _h = _g.next()) {
|
|
5003
|
+
var _j = _h.value, packageName = _j.packageName, className = _j.className, mimeTypes = _j.mimeTypes, documentationUrl = _j.documentationUrl, isAvilableInBrowser = _j.isAvilableInBrowser;
|
|
5004
|
+
_loop_2(packageName, className, mimeTypes, documentationUrl, isAvilableInBrowser);
|
|
5005
5005
|
}
|
|
5006
5006
|
}
|
|
5007
5007
|
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
5008
5008
|
finally {
|
|
5009
5009
|
try {
|
|
5010
|
-
if (
|
|
5010
|
+
if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
|
|
5011
5011
|
}
|
|
5012
5012
|
finally { if (e_2) throw e_2.error; }
|
|
5013
5013
|
}
|
|
5014
|
+
try {
|
|
5015
|
+
for (var availableScrapers_1 = __values(availableScrapers), availableScrapers_1_1 = availableScrapers_1.next(); !availableScrapers_1_1.done; availableScrapers_1_1 = availableScrapers_1.next()) {
|
|
5016
|
+
var metadata_1 = availableScrapers_1_1.value.metadata;
|
|
5017
|
+
all.push(metadata_1);
|
|
5018
|
+
}
|
|
5019
|
+
}
|
|
5020
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
5021
|
+
finally {
|
|
5022
|
+
try {
|
|
5023
|
+
if (availableScrapers_1_1 && !availableScrapers_1_1.done && (_c = availableScrapers_1.return)) _c.call(availableScrapers_1);
|
|
5024
|
+
}
|
|
5025
|
+
finally { if (e_3) throw e_3.error; }
|
|
5026
|
+
}
|
|
5014
5027
|
var metadata = all.map(function (metadata) {
|
|
5015
5028
|
var isMetadataAviailable = $scrapersMetadataRegister
|
|
5016
5029
|
.list()
|
|
@@ -5024,38 +5037,44 @@
|
|
|
5024
5037
|
var packageName = _a.packageName, className = _a.className;
|
|
5025
5038
|
return metadata.packageName === packageName && metadata.className === className;
|
|
5026
5039
|
});
|
|
5027
|
-
|
|
5040
|
+
var isAvilableInTools = availableScrapers.some(function (_a) {
|
|
5041
|
+
var _b = _a.metadata, packageName = _b.packageName, className = _b.className;
|
|
5042
|
+
return metadata.packageName === packageName && metadata.className === className;
|
|
5043
|
+
});
|
|
5044
|
+
return __assign(__assign({}, metadata), { isMetadataAviailable: isMetadataAviailable, isInstalled: isInstalled, isAvilableInTools: isAvilableInTools });
|
|
5028
5045
|
});
|
|
5029
5046
|
if (metadata.length === 0) {
|
|
5030
|
-
return "No scrapers are available";
|
|
5047
|
+
return spaceTrim__default["default"]("\n **No scrapers are available**\n\n This is a unexpected behavior, you are probably using some broken version of Promptbook\n At least there should be available the metadata of the scrapers\n ");
|
|
5031
5048
|
}
|
|
5032
5049
|
return spaceTrim__default["default"](function (block) { return "\n Available scrapers are:\n ".concat(block(metadata
|
|
5033
5050
|
.map(function (_a, i) {
|
|
5034
|
-
var packageName = _a.packageName, className = _a.className, isMetadataAviailable = _a.isMetadataAviailable, isInstalled = _a.isInstalled;
|
|
5035
|
-
var more;
|
|
5036
|
-
|
|
5037
|
-
|
|
5038
|
-
|
|
5039
|
-
|
|
5040
|
-
|
|
5041
|
-
more
|
|
5042
|
-
}
|
|
5043
|
-
|
|
5044
|
-
|
|
5045
|
-
|
|
5046
|
-
|
|
5047
|
-
|
|
5048
|
-
|
|
5049
|
-
|
|
5050
|
-
|
|
5051
|
-
|
|
5052
|
-
|
|
5053
|
-
|
|
5054
|
-
|
|
5055
|
-
|
|
5056
|
-
return "".concat(i + 1, ") `").concat(className, "` from `").concat(packageName, "` ").concat(
|
|
5051
|
+
var packageName = _a.packageName, className = _a.className, isMetadataAviailable = _a.isMetadataAviailable, isInstalled = _a.isInstalled, mimeTypes = _a.mimeTypes, isAvilableInBrowser = _a.isAvilableInBrowser, isAvilableInTools = _a.isAvilableInTools;
|
|
5052
|
+
var more = [];
|
|
5053
|
+
// TODO: [🧠] Maybe use `documentationUrl`
|
|
5054
|
+
if (isMetadataAviailable) {
|
|
5055
|
+
more.push("\u2B1C Metadata registered");
|
|
5056
|
+
} // not else
|
|
5057
|
+
if (isInstalled) {
|
|
5058
|
+
more.push("\uD83D\uDFE9 Installed");
|
|
5059
|
+
} // not else
|
|
5060
|
+
if (isAvilableInTools) {
|
|
5061
|
+
more.push("\uD83D\uDFE6 Available in tools");
|
|
5062
|
+
} // not else
|
|
5063
|
+
if (!isMetadataAviailable && isInstalled) {
|
|
5064
|
+
more.push("When no metadata registered but scraper is installed, it is an unexpected behavior");
|
|
5065
|
+
} // not else
|
|
5066
|
+
if (!isInstalled && isAvilableInTools) {
|
|
5067
|
+
more.push("When the scraper is not installed but available in tools, it is an unexpected compatibility behavior");
|
|
5068
|
+
} // not else
|
|
5069
|
+
if (!isAvilableInBrowser) {
|
|
5070
|
+
more.push("Not usable in browser");
|
|
5071
|
+
}
|
|
5072
|
+
var moreText = more.length === 0 ? '' : " *(".concat(more.join('; '), ")*");
|
|
5073
|
+
return "".concat(i + 1, ") `").concat(className, "` from `").concat(packageName, "` compatible to scrape ").concat(mimeTypes
|
|
5074
|
+
.map(function (mimeType) { return "\"".concat(mimeType, "\""); })
|
|
5075
|
+
.join(', ')).concat(moreText);
|
|
5057
5076
|
})
|
|
5058
|
-
.join('\n')), "\n "); });
|
|
5077
|
+
.join('\n')), "\n\n Legend:\n - \u2B1C **Metadata registered** means that Promptbook knows about the scraper, it is similar to registration in some registry\n - \uD83D\uDFE9 **Installed** means that you have imported package with particular scraper\n - \uD83D\uDFE6 **Available in tools** means that you have passed scraper as dependency into prepare or execution process\n\n "); });
|
|
5059
5078
|
}
|
|
5060
5079
|
/**
|
|
5061
5080
|
* TODO: [®] DRY Register logic
|
|
@@ -5391,54 +5410,75 @@
|
|
|
5391
5410
|
_a = options.maxParallelCount, maxParallelCount = _a === void 0 ? DEFAULT_MAX_PARALLEL_COUNT : _a, rootDirname = options.rootDirname, _b = options.isVerbose, isVerbose = _b === void 0 ? DEFAULT_IS_VERBOSE : _b;
|
|
5392
5411
|
knowledgePreparedUnflatten = new Array(knowledgeSources.length);
|
|
5393
5412
|
return [4 /*yield*/, forEachAsync(knowledgeSources, { maxParallelCount: maxParallelCount }, function (knowledgeSource, index) { return __awaiter(_this, void 0, void 0, function () {
|
|
5394
|
-
var partialPieces, sourceHandler,
|
|
5395
|
-
var e_1,
|
|
5396
|
-
return __generator(this, function (
|
|
5397
|
-
switch (
|
|
5413
|
+
var partialPieces, sourceHandler, scrapers, _loop_1, scrapers_1, scrapers_1_1, scraper, state_1, e_1_1, pieces;
|
|
5414
|
+
var e_1, _a;
|
|
5415
|
+
return __generator(this, function (_b) {
|
|
5416
|
+
switch (_b.label) {
|
|
5398
5417
|
case 0:
|
|
5399
5418
|
partialPieces = null;
|
|
5400
5419
|
return [4 /*yield*/, makeKnowledgeSourceHandler(knowledgeSource, tools, { rootDirname: rootDirname, isVerbose: isVerbose })];
|
|
5401
5420
|
case 1:
|
|
5402
|
-
sourceHandler =
|
|
5403
|
-
|
|
5421
|
+
sourceHandler = _b.sent();
|
|
5422
|
+
scrapers = arrayableToArray(tools.scrapers);
|
|
5423
|
+
_loop_1 = function (scraper) {
|
|
5424
|
+
var partialPiecesUnchecked;
|
|
5425
|
+
return __generator(this, function (_c) {
|
|
5426
|
+
switch (_c.label) {
|
|
5427
|
+
case 0:
|
|
5428
|
+
if (!scraper.metadata.mimeTypes.includes(sourceHandler.mimeType)
|
|
5429
|
+
// <- TODO: [🦔] Implement mime-type wildcards
|
|
5430
|
+
) {
|
|
5431
|
+
return [2 /*return*/, "continue"];
|
|
5432
|
+
}
|
|
5433
|
+
return [4 /*yield*/, scraper.scrape(sourceHandler)];
|
|
5434
|
+
case 1:
|
|
5435
|
+
partialPiecesUnchecked = _c.sent();
|
|
5436
|
+
if (partialPiecesUnchecked !== null) {
|
|
5437
|
+
partialPieces = __spreadArray([], __read(partialPiecesUnchecked), false);
|
|
5438
|
+
return [2 /*return*/, "break"];
|
|
5439
|
+
}
|
|
5440
|
+
console.warn(spaceTrim__default["default"](function (block) { return "\n Cannot scrape knowledge from source despite the scraper `".concat(scraper.metadata.className, "` supports the mime type \"").concat(sourceHandler.mimeType, "\".\n \n The source:\n > ").concat(block(knowledgeSource.sourceContent
|
|
5441
|
+
.split('\n')
|
|
5442
|
+
.map(function (line) { return "> ".concat(line); })
|
|
5443
|
+
.join('\n')), "\n\n ").concat(block($registeredScrapersMessage(scrapers)), "\n\n\n "); }));
|
|
5444
|
+
return [2 /*return*/];
|
|
5445
|
+
}
|
|
5446
|
+
});
|
|
5447
|
+
};
|
|
5448
|
+
_b.label = 2;
|
|
5404
5449
|
case 2:
|
|
5405
|
-
|
|
5406
|
-
|
|
5407
|
-
|
|
5450
|
+
_b.trys.push([2, 7, 8, 9]);
|
|
5451
|
+
scrapers_1 = __values(scrapers), scrapers_1_1 = scrapers_1.next();
|
|
5452
|
+
_b.label = 3;
|
|
5408
5453
|
case 3:
|
|
5409
|
-
if (!!
|
|
5410
|
-
scraper =
|
|
5411
|
-
|
|
5412
|
-
// <- TODO: [🦔] Implement mime-type wildcards
|
|
5413
|
-
) {
|
|
5414
|
-
return [3 /*break*/, 5];
|
|
5415
|
-
}
|
|
5416
|
-
return [4 /*yield*/, scraper.scrape(sourceHandler)];
|
|
5454
|
+
if (!!scrapers_1_1.done) return [3 /*break*/, 6];
|
|
5455
|
+
scraper = scrapers_1_1.value;
|
|
5456
|
+
return [5 /*yield**/, _loop_1(scraper)];
|
|
5417
5457
|
case 4:
|
|
5418
|
-
|
|
5419
|
-
if (
|
|
5420
|
-
partialPieces = __spreadArray([], __read(partialPiecesUnchecked), false);
|
|
5421
|
-
// <- TODO: [🪓] Here should be no need for spreading new array, just `partialPieces = partialPiecesUnchecked`
|
|
5458
|
+
state_1 = _b.sent();
|
|
5459
|
+
if (state_1 === "break")
|
|
5422
5460
|
return [3 /*break*/, 6];
|
|
5423
|
-
|
|
5424
|
-
_d.label = 5;
|
|
5461
|
+
_b.label = 5;
|
|
5425
5462
|
case 5:
|
|
5426
|
-
|
|
5463
|
+
scrapers_1_1 = scrapers_1.next();
|
|
5427
5464
|
return [3 /*break*/, 3];
|
|
5428
5465
|
case 6: return [3 /*break*/, 9];
|
|
5429
5466
|
case 7:
|
|
5430
|
-
e_1_1 =
|
|
5467
|
+
e_1_1 = _b.sent();
|
|
5431
5468
|
e_1 = { error: e_1_1 };
|
|
5432
5469
|
return [3 /*break*/, 9];
|
|
5433
5470
|
case 8:
|
|
5434
5471
|
try {
|
|
5435
|
-
if (
|
|
5472
|
+
if (scrapers_1_1 && !scrapers_1_1.done && (_a = scrapers_1.return)) _a.call(scrapers_1);
|
|
5436
5473
|
}
|
|
5437
5474
|
finally { if (e_1) throw e_1.error; }
|
|
5438
5475
|
return [7 /*endfinally*/];
|
|
5439
5476
|
case 9:
|
|
5440
5477
|
if (partialPieces === null) {
|
|
5441
|
-
throw new KnowledgeScrapeError(spaceTrim__default["default"](function (block) { return "\n Cannot scrape knowledge
|
|
5478
|
+
throw new KnowledgeScrapeError(spaceTrim__default["default"](function (block) { return "\n Cannot scrape knowledge\n \n The source:\n > ".concat(block(knowledgeSource.sourceContent
|
|
5479
|
+
.split('\n')
|
|
5480
|
+
.map(function (line) { return "> ".concat(line); })
|
|
5481
|
+
.join('\n')), "\n\n No scraper found for the mime type \"").concat(sourceHandler.mimeType, "\"\n\n ").concat(block($registeredScrapersMessage(scrapers)), "\n\n\n "); }));
|
|
5442
5482
|
}
|
|
5443
5483
|
pieces = partialPieces.map(function (partialPiece) { return (__assign(__assign({}, partialPiece), { sources: [
|
|
5444
5484
|
{
|