@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
package/esm/index.es.js
CHANGED
|
@@ -37,7 +37,7 @@ var BOOK_LANGUAGE_VERSION = '1.0.0';
|
|
|
37
37
|
*
|
|
38
38
|
* @see https://github.com/webgptorg/promptbook
|
|
39
39
|
*/
|
|
40
|
-
var PROMPTBOOK_ENGINE_VERSION = '0.75.
|
|
40
|
+
var PROMPTBOOK_ENGINE_VERSION = '0.75.3';
|
|
41
41
|
/**
|
|
42
42
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
43
43
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -4955,50 +4955,63 @@ var $scrapersRegister = new $Register('scraper_constructors');
|
|
|
4955
4955
|
*
|
|
4956
4956
|
* @private internal function of `createScrapersFromConfiguration` and `createScrapersFromEnv`
|
|
4957
4957
|
*/
|
|
4958
|
-
function $registeredScrapersMessage() {
|
|
4959
|
-
var e_1, _a, e_2, _b;
|
|
4958
|
+
function $registeredScrapersMessage(availableScrapers) {
|
|
4959
|
+
var e_1, _a, e_2, _b, e_3, _c;
|
|
4960
4960
|
/**
|
|
4961
4961
|
* Mixes registered scrapers from $scrapersMetadataRegister and $scrapersRegister
|
|
4962
4962
|
*/
|
|
4963
4963
|
var all = [];
|
|
4964
|
-
var _loop_1 = function (packageName, className) {
|
|
4964
|
+
var _loop_1 = function (packageName, className, mimeTypes, documentationUrl, isAvilableInBrowser) {
|
|
4965
4965
|
if (all.some(function (item) { return item.packageName === packageName && item.className === className; })) {
|
|
4966
4966
|
return "continue";
|
|
4967
4967
|
}
|
|
4968
|
-
all.push({ packageName: packageName, className: className });
|
|
4968
|
+
all.push({ packageName: packageName, className: className, mimeTypes: mimeTypes, documentationUrl: documentationUrl, isAvilableInBrowser: isAvilableInBrowser });
|
|
4969
4969
|
};
|
|
4970
4970
|
try {
|
|
4971
|
-
for (var
|
|
4972
|
-
var
|
|
4973
|
-
_loop_1(packageName, className);
|
|
4971
|
+
for (var _d = __values($scrapersMetadataRegister.list()), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
4972
|
+
var _f = _e.value, packageName = _f.packageName, className = _f.className, mimeTypes = _f.mimeTypes, documentationUrl = _f.documentationUrl, isAvilableInBrowser = _f.isAvilableInBrowser;
|
|
4973
|
+
_loop_1(packageName, className, mimeTypes, documentationUrl, isAvilableInBrowser);
|
|
4974
4974
|
}
|
|
4975
4975
|
}
|
|
4976
4976
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
4977
4977
|
finally {
|
|
4978
4978
|
try {
|
|
4979
|
-
if (
|
|
4979
|
+
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
|
|
4980
4980
|
}
|
|
4981
4981
|
finally { if (e_1) throw e_1.error; }
|
|
4982
4982
|
}
|
|
4983
|
-
var _loop_2 = function (packageName, className) {
|
|
4983
|
+
var _loop_2 = function (packageName, className, mimeTypes, documentationUrl, isAvilableInBrowser) {
|
|
4984
4984
|
if (all.some(function (item) { return item.packageName === packageName && item.className === className; })) {
|
|
4985
4985
|
return "continue";
|
|
4986
4986
|
}
|
|
4987
|
-
all.push({ packageName: packageName, className: className });
|
|
4987
|
+
all.push({ packageName: packageName, className: className, mimeTypes: mimeTypes, documentationUrl: documentationUrl, isAvilableInBrowser: isAvilableInBrowser });
|
|
4988
4988
|
};
|
|
4989
4989
|
try {
|
|
4990
|
-
for (var
|
|
4991
|
-
var
|
|
4992
|
-
_loop_2(packageName, className);
|
|
4990
|
+
for (var _g = __values($scrapersRegister.list()), _h = _g.next(); !_h.done; _h = _g.next()) {
|
|
4991
|
+
var _j = _h.value, packageName = _j.packageName, className = _j.className, mimeTypes = _j.mimeTypes, documentationUrl = _j.documentationUrl, isAvilableInBrowser = _j.isAvilableInBrowser;
|
|
4992
|
+
_loop_2(packageName, className, mimeTypes, documentationUrl, isAvilableInBrowser);
|
|
4993
4993
|
}
|
|
4994
4994
|
}
|
|
4995
4995
|
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
4996
4996
|
finally {
|
|
4997
4997
|
try {
|
|
4998
|
-
if (
|
|
4998
|
+
if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
|
|
4999
4999
|
}
|
|
5000
5000
|
finally { if (e_2) throw e_2.error; }
|
|
5001
5001
|
}
|
|
5002
|
+
try {
|
|
5003
|
+
for (var availableScrapers_1 = __values(availableScrapers), availableScrapers_1_1 = availableScrapers_1.next(); !availableScrapers_1_1.done; availableScrapers_1_1 = availableScrapers_1.next()) {
|
|
5004
|
+
var metadata_1 = availableScrapers_1_1.value.metadata;
|
|
5005
|
+
all.push(metadata_1);
|
|
5006
|
+
}
|
|
5007
|
+
}
|
|
5008
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
5009
|
+
finally {
|
|
5010
|
+
try {
|
|
5011
|
+
if (availableScrapers_1_1 && !availableScrapers_1_1.done && (_c = availableScrapers_1.return)) _c.call(availableScrapers_1);
|
|
5012
|
+
}
|
|
5013
|
+
finally { if (e_3) throw e_3.error; }
|
|
5014
|
+
}
|
|
5002
5015
|
var metadata = all.map(function (metadata) {
|
|
5003
5016
|
var isMetadataAviailable = $scrapersMetadataRegister
|
|
5004
5017
|
.list()
|
|
@@ -5012,38 +5025,44 @@ function $registeredScrapersMessage() {
|
|
|
5012
5025
|
var packageName = _a.packageName, className = _a.className;
|
|
5013
5026
|
return metadata.packageName === packageName && metadata.className === className;
|
|
5014
5027
|
});
|
|
5015
|
-
|
|
5028
|
+
var isAvilableInTools = availableScrapers.some(function (_a) {
|
|
5029
|
+
var _b = _a.metadata, packageName = _b.packageName, className = _b.className;
|
|
5030
|
+
return metadata.packageName === packageName && metadata.className === className;
|
|
5031
|
+
});
|
|
5032
|
+
return __assign(__assign({}, metadata), { isMetadataAviailable: isMetadataAviailable, isInstalled: isInstalled, isAvilableInTools: isAvilableInTools });
|
|
5016
5033
|
});
|
|
5017
5034
|
if (metadata.length === 0) {
|
|
5018
|
-
return "No scrapers are available";
|
|
5035
|
+
return spaceTrim$1("\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 ");
|
|
5019
5036
|
}
|
|
5020
5037
|
return spaceTrim$1(function (block) { return "\n Available scrapers are:\n ".concat(block(metadata
|
|
5021
5038
|
.map(function (_a, i) {
|
|
5022
|
-
var packageName = _a.packageName, className = _a.className, isMetadataAviailable = _a.isMetadataAviailable, isInstalled = _a.isInstalled;
|
|
5023
|
-
var more;
|
|
5024
|
-
|
|
5025
|
-
|
|
5026
|
-
|
|
5027
|
-
|
|
5028
|
-
|
|
5029
|
-
more
|
|
5030
|
-
}
|
|
5031
|
-
|
|
5032
|
-
|
|
5033
|
-
|
|
5034
|
-
|
|
5035
|
-
|
|
5036
|
-
|
|
5037
|
-
|
|
5038
|
-
|
|
5039
|
-
|
|
5040
|
-
|
|
5041
|
-
|
|
5042
|
-
|
|
5043
|
-
|
|
5044
|
-
return "".concat(i + 1, ") `").concat(className, "` from `").concat(packageName, "` ").concat(
|
|
5039
|
+
var packageName = _a.packageName, className = _a.className, isMetadataAviailable = _a.isMetadataAviailable, isInstalled = _a.isInstalled, mimeTypes = _a.mimeTypes, isAvilableInBrowser = _a.isAvilableInBrowser, isAvilableInTools = _a.isAvilableInTools;
|
|
5040
|
+
var more = [];
|
|
5041
|
+
// TODO: [🧠] Maybe use `documentationUrl`
|
|
5042
|
+
if (isMetadataAviailable) {
|
|
5043
|
+
more.push("\u2B1C Metadata registered");
|
|
5044
|
+
} // not else
|
|
5045
|
+
if (isInstalled) {
|
|
5046
|
+
more.push("\uD83D\uDFE9 Installed");
|
|
5047
|
+
} // not else
|
|
5048
|
+
if (isAvilableInTools) {
|
|
5049
|
+
more.push("\uD83D\uDFE6 Available in tools");
|
|
5050
|
+
} // not else
|
|
5051
|
+
if (!isMetadataAviailable && isInstalled) {
|
|
5052
|
+
more.push("When no metadata registered but scraper is installed, it is an unexpected behavior");
|
|
5053
|
+
} // not else
|
|
5054
|
+
if (!isInstalled && isAvilableInTools) {
|
|
5055
|
+
more.push("When the scraper is not installed but available in tools, it is an unexpected compatibility behavior");
|
|
5056
|
+
} // not else
|
|
5057
|
+
if (!isAvilableInBrowser) {
|
|
5058
|
+
more.push("Not usable in browser");
|
|
5059
|
+
}
|
|
5060
|
+
var moreText = more.length === 0 ? '' : " *(".concat(more.join('; '), ")*");
|
|
5061
|
+
return "".concat(i + 1, ") `").concat(className, "` from `").concat(packageName, "` compatible to scrape ").concat(mimeTypes
|
|
5062
|
+
.map(function (mimeType) { return "\"".concat(mimeType, "\""); })
|
|
5063
|
+
.join(', ')).concat(moreText);
|
|
5045
5064
|
})
|
|
5046
|
-
.join('\n')), "\n "); });
|
|
5065
|
+
.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 "); });
|
|
5047
5066
|
}
|
|
5048
5067
|
/**
|
|
5049
5068
|
* TODO: [®] DRY Register logic
|
|
@@ -5379,54 +5398,75 @@ function prepareKnowledgePieces(knowledgeSources, tools, options) {
|
|
|
5379
5398
|
_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;
|
|
5380
5399
|
knowledgePreparedUnflatten = new Array(knowledgeSources.length);
|
|
5381
5400
|
return [4 /*yield*/, forEachAsync(knowledgeSources, { maxParallelCount: maxParallelCount }, function (knowledgeSource, index) { return __awaiter(_this, void 0, void 0, function () {
|
|
5382
|
-
var partialPieces, sourceHandler,
|
|
5383
|
-
var e_1,
|
|
5384
|
-
return __generator(this, function (
|
|
5385
|
-
switch (
|
|
5401
|
+
var partialPieces, sourceHandler, scrapers, _loop_1, scrapers_1, scrapers_1_1, scraper, state_1, e_1_1, pieces;
|
|
5402
|
+
var e_1, _a;
|
|
5403
|
+
return __generator(this, function (_b) {
|
|
5404
|
+
switch (_b.label) {
|
|
5386
5405
|
case 0:
|
|
5387
5406
|
partialPieces = null;
|
|
5388
5407
|
return [4 /*yield*/, makeKnowledgeSourceHandler(knowledgeSource, tools, { rootDirname: rootDirname, isVerbose: isVerbose })];
|
|
5389
5408
|
case 1:
|
|
5390
|
-
sourceHandler =
|
|
5391
|
-
|
|
5409
|
+
sourceHandler = _b.sent();
|
|
5410
|
+
scrapers = arrayableToArray(tools.scrapers);
|
|
5411
|
+
_loop_1 = function (scraper) {
|
|
5412
|
+
var partialPiecesUnchecked;
|
|
5413
|
+
return __generator(this, function (_c) {
|
|
5414
|
+
switch (_c.label) {
|
|
5415
|
+
case 0:
|
|
5416
|
+
if (!scraper.metadata.mimeTypes.includes(sourceHandler.mimeType)
|
|
5417
|
+
// <- TODO: [🦔] Implement mime-type wildcards
|
|
5418
|
+
) {
|
|
5419
|
+
return [2 /*return*/, "continue"];
|
|
5420
|
+
}
|
|
5421
|
+
return [4 /*yield*/, scraper.scrape(sourceHandler)];
|
|
5422
|
+
case 1:
|
|
5423
|
+
partialPiecesUnchecked = _c.sent();
|
|
5424
|
+
if (partialPiecesUnchecked !== null) {
|
|
5425
|
+
partialPieces = __spreadArray([], __read(partialPiecesUnchecked), false);
|
|
5426
|
+
return [2 /*return*/, "break"];
|
|
5427
|
+
}
|
|
5428
|
+
console.warn(spaceTrim$1(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
|
|
5429
|
+
.split('\n')
|
|
5430
|
+
.map(function (line) { return "> ".concat(line); })
|
|
5431
|
+
.join('\n')), "\n\n ").concat(block($registeredScrapersMessage(scrapers)), "\n\n\n "); }));
|
|
5432
|
+
return [2 /*return*/];
|
|
5433
|
+
}
|
|
5434
|
+
});
|
|
5435
|
+
};
|
|
5436
|
+
_b.label = 2;
|
|
5392
5437
|
case 2:
|
|
5393
|
-
|
|
5394
|
-
|
|
5395
|
-
|
|
5438
|
+
_b.trys.push([2, 7, 8, 9]);
|
|
5439
|
+
scrapers_1 = __values(scrapers), scrapers_1_1 = scrapers_1.next();
|
|
5440
|
+
_b.label = 3;
|
|
5396
5441
|
case 3:
|
|
5397
|
-
if (!!
|
|
5398
|
-
scraper =
|
|
5399
|
-
|
|
5400
|
-
// <- TODO: [🦔] Implement mime-type wildcards
|
|
5401
|
-
) {
|
|
5402
|
-
return [3 /*break*/, 5];
|
|
5403
|
-
}
|
|
5404
|
-
return [4 /*yield*/, scraper.scrape(sourceHandler)];
|
|
5442
|
+
if (!!scrapers_1_1.done) return [3 /*break*/, 6];
|
|
5443
|
+
scraper = scrapers_1_1.value;
|
|
5444
|
+
return [5 /*yield**/, _loop_1(scraper)];
|
|
5405
5445
|
case 4:
|
|
5406
|
-
|
|
5407
|
-
if (
|
|
5408
|
-
partialPieces = __spreadArray([], __read(partialPiecesUnchecked), false);
|
|
5409
|
-
// <- TODO: [🪓] Here should be no need for spreading new array, just `partialPieces = partialPiecesUnchecked`
|
|
5446
|
+
state_1 = _b.sent();
|
|
5447
|
+
if (state_1 === "break")
|
|
5410
5448
|
return [3 /*break*/, 6];
|
|
5411
|
-
|
|
5412
|
-
_d.label = 5;
|
|
5449
|
+
_b.label = 5;
|
|
5413
5450
|
case 5:
|
|
5414
|
-
|
|
5451
|
+
scrapers_1_1 = scrapers_1.next();
|
|
5415
5452
|
return [3 /*break*/, 3];
|
|
5416
5453
|
case 6: return [3 /*break*/, 9];
|
|
5417
5454
|
case 7:
|
|
5418
|
-
e_1_1 =
|
|
5455
|
+
e_1_1 = _b.sent();
|
|
5419
5456
|
e_1 = { error: e_1_1 };
|
|
5420
5457
|
return [3 /*break*/, 9];
|
|
5421
5458
|
case 8:
|
|
5422
5459
|
try {
|
|
5423
|
-
if (
|
|
5460
|
+
if (scrapers_1_1 && !scrapers_1_1.done && (_a = scrapers_1.return)) _a.call(scrapers_1);
|
|
5424
5461
|
}
|
|
5425
5462
|
finally { if (e_1) throw e_1.error; }
|
|
5426
5463
|
return [7 /*endfinally*/];
|
|
5427
5464
|
case 9:
|
|
5428
5465
|
if (partialPieces === null) {
|
|
5429
|
-
throw new KnowledgeScrapeError(spaceTrim$1(function (block) { return "\n Cannot scrape knowledge
|
|
5466
|
+
throw new KnowledgeScrapeError(spaceTrim$1(function (block) { return "\n Cannot scrape knowledge\n \n The source:\n > ".concat(block(knowledgeSource.sourceContent
|
|
5467
|
+
.split('\n')
|
|
5468
|
+
.map(function (line) { return "> ".concat(line); })
|
|
5469
|
+
.join('\n')), "\n\n No scraper found for the mime type \"").concat(sourceHandler.mimeType, "\"\n\n ").concat(block($registeredScrapersMessage(scrapers)), "\n\n\n "); }));
|
|
5430
5470
|
}
|
|
5431
5471
|
pieces = partialPieces.map(function (partialPiece) { return (__assign(__assign({}, partialPiece), { sources: [
|
|
5432
5472
|
{
|