@promptbook/core 0.71.0-20 → 0.71.0-23

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.
@@ -1,9 +1,9 @@
1
1
  import { PROMPTBOOK_VERSION } from '../version';
2
2
  import { createCollectionFromDirectory } from '../collection/constructors/createCollectionFromDirectory';
3
+ import { $provideExecutablesForNode } from '../executables/$provideExecutablesForNode';
3
4
  import { $provideExecutionToolsForNode } from '../execution/utils/$provideExecutionToolsForNode';
4
5
  import { $provideLlmToolsConfigurationFromEnv } from '../llm-providers/_common/register/$provideLlmToolsConfigurationFromEnv';
5
6
  import { $provideLlmToolsFromEnv } from '../llm-providers/_common/register/$provideLlmToolsFromEnv';
6
- import { $provideExecutablesForNode } from '../scrapers/_common/register/$provideExecutablesForNode';
7
7
  import { $provideFilesystemForNode } from '../scrapers/_common/register/$provideFilesystemForNode';
8
8
  import { $provideScrapersForNode } from '../scrapers/_common/register/$provideScrapersForNode';
9
9
  import { FileCacheStorage } from '../storage/file-cache-storage/FileCacheStorage';
@@ -11,10 +11,10 @@ import { $execCommand } from '../utils/execCommand/$execCommand';
11
11
  import { $execCommands } from '../utils/execCommand/$execCommands';
12
12
  export { PROMPTBOOK_VERSION };
13
13
  export { createCollectionFromDirectory };
14
+ export { $provideExecutablesForNode };
14
15
  export { $provideExecutionToolsForNode };
15
16
  export { $provideLlmToolsConfigurationFromEnv };
16
17
  export { $provideLlmToolsFromEnv };
17
- export { $provideExecutablesForNode };
18
18
  export { $provideFilesystemForNode };
19
19
  export { $provideScrapersForNode };
20
20
  export { FileCacheStorage };
@@ -14,6 +14,7 @@ import type { PrettifyOptions } from '../conversion/prettify/PrettifyOptions';
14
14
  import type { renderPipelineMermaidOptions } from '../conversion/prettify/renderPipelineMermaidOptions';
15
15
  import type { CallbackInterfaceToolsOptions } from '../dialogs/callback/CallbackInterfaceToolsOptions';
16
16
  import type { ErrorJson } from '../errors/utils/ErrorJson';
17
+ import type { LocateAppOptions } from '../executables/locateApp';
17
18
  import type { AvailableModel } from '../execution/AvailableModel';
18
19
  import type { CommonToolsOptions } from '../execution/CommonToolsOptions';
19
20
  import type { CreatePipelineExecutorOptions } from '../execution/createPipelineExecutor/00-CreatePipelineExecutorOptions';
@@ -254,6 +255,7 @@ export type { PrettifyOptions };
254
255
  export type { renderPipelineMermaidOptions };
255
256
  export type { CallbackInterfaceToolsOptions };
256
257
  export type { ErrorJson };
258
+ export type { LocateAppOptions };
257
259
  export type { AvailableModel };
258
260
  export type { CommonToolsOptions };
259
261
  export type { CreatePipelineExecutorOptions };
@@ -1,5 +1,5 @@
1
- import type { Executables } from '../../../execution/Executables';
2
- import type { PrepareAndScrapeOptions } from '../../../prepare/PrepareAndScrapeOptions';
1
+ import type { Executables } from '../execution/Executables';
2
+ import type { PrepareAndScrapeOptions } from '../prepare/PrepareAndScrapeOptions';
3
3
  /**
4
4
  * @@@
5
5
  *
@@ -7,6 +7,6 @@ import type { PrepareAndScrapeOptions } from '../../../prepare/PrepareAndScrapeO
7
7
  */
8
8
  export declare function $provideExecutablesForNode(options?: PrepareAndScrapeOptions): Promise<Executables>;
9
9
  /**
10
- * TODO: [🧠] THis should be maybe in different folder
10
+ * TODO: [🧠] Allow to override the executables without need to call `locatePandoc` / `locateLibreoffice` in case of provided
11
11
  * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
12
12
  */
@@ -0,0 +1,11 @@
1
+ import type { string_executable_path } from '../../types/typeAliases';
2
+ /**
3
+ * @@@
4
+ *
5
+ * @private within the repository
6
+ */
7
+ export declare function locateLibreoffice(): Promise<string_executable_path>;
8
+ /**
9
+ * TODO: [🧠][♿] Maybe export through `@promptbook/node` OR `@promptbook/legacy-documents`
10
+ * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
11
+ */
@@ -0,0 +1,11 @@
1
+ import type { string_executable_path } from '../../types/typeAliases';
2
+ /**
3
+ * @@@
4
+ *
5
+ * @private within the repository
6
+ */
7
+ export declare function locatePandoc(): Promise<string_executable_path>;
8
+ /**
9
+ * TODO: [🧠][♿] Maybe export through `@promptbook/node` OR `@promptbook/documents`
10
+ * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
11
+ */
@@ -0,0 +1,33 @@
1
+ import type { RequireAtLeastOne } from 'type-fest';
2
+ import type { string_executable_path } from '../types/typeAliases';
3
+ /**
4
+ * Options for locating any application
5
+ */
6
+ export interface LocateAppOptions {
7
+ /**
8
+ * Name of the application
9
+ */
10
+ appName: string;
11
+ /**
12
+ * Name of the executable on Linux
13
+ */
14
+ linuxWhich?: string;
15
+ /**
16
+ * Path suffix on Windows
17
+ */
18
+ windowsSuffix?: string;
19
+ /**
20
+ * Name of the application on macOS
21
+ */
22
+ macOsName?: string;
23
+ }
24
+ /**
25
+ * Locates an application on the system
26
+ *
27
+ * @private within the repository
28
+ */
29
+ export declare function locateApp(options: RequireAtLeastOne<LocateAppOptions, 'linuxWhich' | 'windowsSuffix' | 'macOsName'>): Promise<string_executable_path>;
30
+ /**
31
+ * TODO: [🧠][♿] Maybe export through `@promptbook/node`
32
+ * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
33
+ */
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { LocateAppOptions } from '../locateApp';
2
+ import type { string_executable_path } from '../../types/typeAliases';
3
+ /**
4
+ * @@@
5
+ *
6
+ * @private within the repository
7
+ */
8
+ export declare function locateAppOnLinux({ appName, linuxWhich, }: Pick<Required<LocateAppOptions>, 'appName' | 'linuxWhich'>): Promise<string_executable_path>;
9
+ /**
10
+ * TODO: [🧠][♿] Maybe export through `@promptbook/node`
11
+ * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
12
+ */
@@ -0,0 +1,12 @@
1
+ import type { string_executable_path } from '../../types/typeAliases';
2
+ import type { LocateAppOptions } from '../locateApp';
3
+ /**
4
+ * @@@
5
+ *
6
+ * @private within the repository
7
+ */
8
+ export declare function locateAppOnMacOs({ appName, macOsName, }: Pick<Required<LocateAppOptions>, 'appName' | 'macOsName'>): Promise<string_executable_path>;
9
+ /**
10
+ * TODO: [🧠][♿] Maybe export through `@promptbook/node`
11
+ * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
12
+ */
@@ -0,0 +1,12 @@
1
+ import type { string_executable_path } from '../../types/typeAliases';
2
+ import type { LocateAppOptions } from '../locateApp';
3
+ /**
4
+ * @@@
5
+ *
6
+ * @private within the repository
7
+ */
8
+ export declare function locateAppOnWindows({ appName, windowsSuffix, }: Pick<Required<LocateAppOptions>, 'appName' | 'windowsSuffix'>): Promise<string_executable_path>;
9
+ /**
10
+ * TODO: [🧠][♿] Maybe export through `@promptbook/node`
11
+ * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
12
+ */
@@ -51,12 +51,9 @@ export type ScraperSourceHandler = {
51
51
  * Get the content as a utf-8 string
52
52
  */
53
53
  asText(): Promisable<string>;
54
- /**
55
- * Get the content as a blob
56
- */
57
- asBlob(): Promisable<Blob>;
58
54
  };
59
55
  /**
56
+ * TODO: [🥽] Add ` asBlob(): Promisable<Blob>;` or asFile
60
57
  * TODO: [🐝] @@@ Annotate all
61
58
  * TODO: [🔼] Export via types
62
59
  */
@@ -0,0 +1,11 @@
1
+ import type { FilesystemTools } from '../../execution/FilesystemTools';
2
+ /**
3
+ * Checks if the file is executable
4
+ *
5
+ * @private within the repository
6
+ */
7
+ export declare function isExecutable(path: string, fs: FilesystemTools): Promise<boolean>;
8
+ /**
9
+ * Note: Not [~🟢~] because it is not directly dependent on `fs
10
+ * TODO: [🖇] What about symlinks?
11
+ */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/core",
3
- "version": "0.71.0-20",
3
+ "version": "0.71.0-23",
4
4
  "description": "Supercharge your use of large language models",
5
5
  "private": false,
6
6
  "sideEffects": false,
package/umd/index.umd.js CHANGED
@@ -16,7 +16,7 @@
16
16
  /**
17
17
  * The version of the Promptbook library
18
18
  */
19
- var PROMPTBOOK_VERSION = '0.71.0-19';
19
+ var PROMPTBOOK_VERSION = '0.71.0-22';
20
20
  // TODO: [main] !!!! List here all the versions and annotate + put into script
21
21
 
22
22
  /*! *****************************************************************************
@@ -5068,7 +5068,6 @@
5068
5068
  * TODO: [®] DRY Register logic
5069
5069
  */
5070
5070
 
5071
- // TODO: !!!!!!last - Maybe delete this function
5072
5071
  /**
5073
5072
  * Creates a message with all registered scrapers
5074
5073
  *
@@ -5341,7 +5340,7 @@
5341
5340
  return __awaiter(this, void 0, void 0, function () {
5342
5341
  var sourceContent, name, _b, _c, rootDirname, _d,
5343
5342
  // <- TODO: process.cwd() if running in Node.js
5344
- isVerbose, url, response_1, mimeType, filename_1, fileExtension, mimeType_1;
5343
+ isVerbose, url, response_1, mimeType, filename_1, fileExtension, mimeType;
5345
5344
  return __generator(this, function (_e) {
5346
5345
  switch (_e.label) {
5347
5346
  case 0:
@@ -5363,19 +5362,14 @@
5363
5362
  filename: null,
5364
5363
  url: url,
5365
5364
  mimeType: mimeType,
5366
- asBlob: function () {
5367
- return __awaiter(this, void 0, void 0, function () {
5368
- var content;
5369
- return __generator(this, function (_a) {
5370
- switch (_a.label) {
5371
- case 0: return [4 /*yield*/, response_1.blob()];
5372
- case 1:
5373
- content = _a.sent();
5374
- return [2 /*return*/, content];
5375
- }
5376
- });
5377
- });
5378
- },
5365
+ /*
5366
+ TODO: [🥽]
5367
+ > async asBlob() {
5368
+ > // TODO: [👨🏻‍🤝‍👨🏻] This can be called multiple times BUT when called second time, response in already consumed
5369
+ > const content = await response.blob();
5370
+ > return content;
5371
+ > },
5372
+ */
5379
5373
  asJson: function () {
5380
5374
  return __awaiter(this, void 0, void 0, function () {
5381
5375
  var content;
@@ -5415,34 +5409,31 @@
5415
5409
  }
5416
5410
  filename_1 = path.join(rootDirname, sourceContent).split('\\').join('/');
5417
5411
  fileExtension = getFileExtension(filename_1);
5418
- mimeType_1 = extensionToMimeType(fileExtension || '');
5412
+ mimeType = extensionToMimeType(fileExtension || '');
5419
5413
  return [4 /*yield*/, isFileExisting(filename_1, tools.fs)];
5420
5414
  case 3:
5421
5415
  if (!(_e.sent())) {
5422
5416
  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(filename_1), "\n "); }));
5423
5417
  }
5424
- // TODO: !!!!!! Test security file - file is scoped to the project (maybe do this in `filesystemTools`)
5418
+ // TODO: [🧠][😿] Test security file - file is scoped to the project (BUT maybe do this in `filesystemTools`)
5425
5419
  return [2 /*return*/, {
5426
5420
  source: name,
5427
5421
  filename: filename_1,
5428
5422
  url: null,
5429
- mimeType: mimeType_1,
5430
- asBlob: function () {
5431
- return __awaiter(this, void 0, void 0, function () {
5432
- var content;
5433
- return __generator(this, function (_a) {
5434
- switch (_a.label) {
5435
- case 0: return [4 /*yield*/, tools.fs.readFile(filename_1)];
5436
- case 1:
5437
- content = _a.sent();
5438
- return [2 /*return*/, new Blob([
5439
- content,
5440
- // <- TODO: !!!!!! Test that this is working
5441
- ], { type: mimeType_1 })];
5442
- }
5443
- });
5444
- });
5445
- },
5423
+ mimeType: mimeType,
5424
+ /*
5425
+ TODO: [🥽]
5426
+ > async asBlob() {
5427
+ > const content = await tools.fs!.readFile(filename);
5428
+ > return new Blob(
5429
+ > [
5430
+ > content,
5431
+ > // <- TODO: [🥽] This is NOT tested, test it
5432
+ > ],
5433
+ > { type: mimeType },
5434
+ > );
5435
+ > },
5436
+ */
5446
5437
  asJson: function () {
5447
5438
  return __awaiter(this, void 0, void 0, function () {
5448
5439
  var _a, _b;
@@ -5478,9 +5469,14 @@
5478
5469
  asJson: function () {
5479
5470
  throw new UnexpectedError('Did not expect that `markdownScraper` would need to get the content `asJson`');
5480
5471
  },
5481
- asBlob: function () {
5482
- throw new UnexpectedError('Did not expect that `markdownScraper` would need to get the content `asBlob`');
5483
- },
5472
+ /*
5473
+ TODO: [🥽]
5474
+ > asBlob() {
5475
+ > throw new UnexpectedError(
5476
+ > 'Did not expect that `markdownScraper` would need to get the content `asBlob`',
5477
+ > );
5478
+ > },
5479
+ */
5484
5480
  }];
5485
5481
  }
5486
5482
  });
@@ -5805,6 +5801,7 @@
5805
5801
  'KNOWLEDGE ./hejny-cv.md',
5806
5802
  'KNOWLEDGE ./hejny-cv.pdf',
5807
5803
  'KNOWLEDGE ./hejny-cv.docx',
5804
+ // <- TODO: [😿] Allow ONLY files scoped in the (sub)directory NOT ../ and test it
5808
5805
  ],
5809
5806
  /**
5810
5807
  * Parses the KNOWLEDGE command