@promptbook/fake-llm 0.89.0-9 → 0.92.0-10

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.
Files changed (56) hide show
  1. package/README.md +9 -7
  2. package/esm/index.es.js +67 -40
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/typings/servers.d.ts +40 -0
  5. package/esm/typings/src/_packages/core.index.d.ts +14 -4
  6. package/esm/typings/src/_packages/deepseek.index.d.ts +2 -0
  7. package/esm/typings/src/_packages/google.index.d.ts +2 -0
  8. package/esm/typings/src/_packages/types.index.d.ts +18 -0
  9. package/esm/typings/src/_packages/utils.index.d.ts +6 -0
  10. package/esm/typings/src/cli/cli-commands/login.d.ts +0 -1
  11. package/esm/typings/src/cli/common/$provideLlmToolsForCli.d.ts +16 -3
  12. package/esm/typings/src/cli/test/ptbk.d.ts +1 -1
  13. package/esm/typings/src/commands/EXPECT/expectCommandParser.d.ts +2 -0
  14. package/esm/typings/src/config.d.ts +10 -19
  15. package/esm/typings/src/conversion/archive/loadArchive.d.ts +2 -2
  16. package/esm/typings/src/errors/0-index.d.ts +7 -4
  17. package/esm/typings/src/errors/PipelineExecutionError.d.ts +1 -1
  18. package/esm/typings/src/errors/WrappedError.d.ts +10 -0
  19. package/esm/typings/src/errors/assertsError.d.ts +11 -0
  20. package/esm/typings/src/execution/CommonToolsOptions.d.ts +4 -0
  21. package/esm/typings/src/execution/PromptbookFetch.d.ts +1 -1
  22. package/esm/typings/src/execution/createPipelineExecutor/getKnowledgeForTask.d.ts +12 -0
  23. package/esm/typings/src/execution/createPipelineExecutor/getReservedParametersForTask.d.ts +5 -0
  24. package/esm/typings/src/formats/csv/utils/csvParse.d.ts +12 -0
  25. package/esm/typings/src/formats/csv/utils/isValidCsvString.d.ts +9 -0
  26. package/esm/typings/src/formats/csv/utils/isValidCsvString.test.d.ts +1 -0
  27. package/esm/typings/src/formats/json/utils/isValidJsonString.d.ts +3 -0
  28. package/esm/typings/src/formats/json/utils/jsonParse.d.ts +11 -0
  29. package/esm/typings/src/formats/xml/utils/isValidXmlString.d.ts +9 -0
  30. package/esm/typings/src/formats/xml/utils/isValidXmlString.test.d.ts +1 -0
  31. package/esm/typings/src/llm-providers/_common/filterModels.d.ts +15 -0
  32. package/esm/typings/src/llm-providers/_common/register/{$provideEnvFilepath.d.ts → $provideEnvFilename.d.ts} +2 -2
  33. package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsConfigurationFromEnv.d.ts +1 -1
  34. package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsForTestingAndScriptsAndPlayground.d.ts +1 -1
  35. package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsForWizzardOrCli.d.ts +11 -2
  36. package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsFromEnv.d.ts +1 -1
  37. package/esm/typings/src/llm-providers/_common/register/LlmToolsMetadata.d.ts +43 -0
  38. package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionTools.d.ts +4 -0
  39. package/esm/typings/src/llm-providers/deepseek/deepseek-models.d.ts +23 -0
  40. package/esm/typings/src/llm-providers/google/google-models.d.ts +23 -0
  41. package/esm/typings/src/llm-providers/openai/OpenAiExecutionTools.d.ts +4 -0
  42. package/esm/typings/src/personas/preparePersona.d.ts +1 -1
  43. package/esm/typings/src/pipeline/PipelineJson/PersonaJson.d.ts +4 -2
  44. package/esm/typings/src/remote-server/openapi-types.d.ts +626 -0
  45. package/esm/typings/src/remote-server/openapi.d.ts +581 -0
  46. package/esm/typings/src/remote-server/socket-types/_subtypes/Identification.d.ts +7 -1
  47. package/esm/typings/src/remote-server/socket-types/_subtypes/identificationToPromptbookToken.d.ts +11 -0
  48. package/esm/typings/src/remote-server/socket-types/_subtypes/promptbookTokenToIdentification.d.ts +10 -0
  49. package/esm/typings/src/remote-server/startRemoteServer.d.ts +1 -2
  50. package/esm/typings/src/remote-server/types/RemoteServerOptions.d.ts +15 -9
  51. package/esm/typings/src/storage/env-storage/$EnvStorage.d.ts +40 -0
  52. package/esm/typings/src/types/typeAliases.d.ts +26 -0
  53. package/package.json +7 -3
  54. package/umd/index.umd.js +67 -40
  55. package/umd/index.umd.js.map +1 -1
  56. package/esm/typings/src/cli/test/ptbk2.d.ts +0 -5
@@ -1,10 +1,12 @@
1
1
  import { BOOK_LANGUAGE_VERSION, PROMPTBOOK_ENGINE_VERSION } from '../version';
2
2
  import { createGoogleExecutionTools } from '../llm-providers/google/createGoogleExecutionTools';
3
+ import { GOOGLE_MODELS } from '../llm-providers/google/google-models';
3
4
  import type { GoogleExecutionToolsOptions } from '../llm-providers/google/GoogleExecutionToolsOptions';
4
5
  import { _GoogleRegistration } from '../llm-providers/google/register-constructor';
5
6
  import type { VercelExecutionToolsOptions } from '../llm-providers/vercel/VercelExecutionToolsOptions';
6
7
  export { BOOK_LANGUAGE_VERSION, PROMPTBOOK_ENGINE_VERSION };
7
8
  export { createGoogleExecutionTools };
9
+ export { GOOGLE_MODELS };
8
10
  export type { GoogleExecutionToolsOptions };
9
11
  export { _GoogleRegistration };
10
12
  export type { VercelExecutionToolsOptions };
@@ -107,6 +107,11 @@ import type { SimpleTaskJson } from '../pipeline/PipelineJson/SimpleTaskJson';
107
107
  import type { TaskJson } from '../pipeline/PipelineJson/TaskJson';
108
108
  import type { PipelineString } from '../pipeline/PipelineString';
109
109
  import type { PrepareAndScrapeOptions } from '../prepare/PrepareAndScrapeOptions';
110
+ import type { paths } from '../remote-server/openapi-types';
111
+ import type { webhooks } from '../remote-server/openapi-types';
112
+ import type { components } from '../remote-server/openapi-types';
113
+ import type { $defs } from '../remote-server/openapi-types';
114
+ import type { operations } from '../remote-server/openapi-types';
110
115
  import type { RemoteServer } from '../remote-server/RemoteServer';
111
116
  import type { Identification } from '../remote-server/socket-types/_subtypes/Identification';
112
117
  import type { ApplicationModeIdentification } from '../remote-server/socket-types/_subtypes/Identification';
@@ -190,6 +195,7 @@ import type { string_css_property } from '../types/typeAliases';
190
195
  import type { string_css_value } from '../types/typeAliases';
191
196
  import type { string_css_selector } from '../types/typeAliases';
192
197
  import type { string_url } from '../types/typeAliases';
198
+ import type { string_promptbook_server_url } from '../types/typeAliases';
193
199
  import type { string_base_url } from '../types/typeAliases';
194
200
  import type { string_pipeline_root_url } from '../types/typeAliases';
195
201
  import type { string_pipeline_url } from '../types/typeAliases';
@@ -204,6 +210,7 @@ import type { string_uri_part } from '../types/typeAliases';
204
210
  import type { string_hostname } from '../types/typeAliases';
205
211
  import type { string_host } from '../types/typeAliases';
206
212
  import type { string_protocol } from '../types/typeAliases';
213
+ import type { string_ip_address } from '../types/typeAliases';
207
214
  import type { string_email } from '../types/typeAliases';
208
215
  import type { string_emails } from '../types/typeAliases';
209
216
  import type { string_uuid } from '../types/typeAliases';
@@ -222,6 +229,7 @@ import type { string_dirname } from '../types/typeAliases';
222
229
  import type { string_person_fullname } from '../types/typeAliases';
223
230
  import type { string_person_profile } from '../types/typeAliases';
224
231
  import type { string_license } from '../types/typeAliases';
232
+ import type { string_legal_entity } from '../types/typeAliases';
225
233
  import type { string_attribute } from '../types/typeAliases';
226
234
  import type { string_attribute_value_scope } from '../types/typeAliases';
227
235
  import type { string_color } from '../types/typeAliases';
@@ -233,6 +241,7 @@ import type { string_postprocessing_function_name } from '../types/typeAliases';
233
241
  import type { id } from '../types/typeAliases';
234
242
  import type { task_id } from '../types/typeAliases';
235
243
  import type { string_token } from '../types/typeAliases';
244
+ import type { string_promptbook_token } from '../types/typeAliases';
236
245
  import type { string_license_token } from '../types/typeAliases';
237
246
  import type { string_password } from '../types/typeAliases';
238
247
  import type { string_ssh_key } from '../types/typeAliases';
@@ -394,6 +403,11 @@ export type { SimpleTaskJson };
394
403
  export type { TaskJson };
395
404
  export type { PipelineString };
396
405
  export type { PrepareAndScrapeOptions };
406
+ export type { paths };
407
+ export type { webhooks };
408
+ export type { components };
409
+ export type { $defs };
410
+ export type { operations };
397
411
  export type { RemoteServer };
398
412
  export type { Identification };
399
413
  export type { ApplicationModeIdentification };
@@ -477,6 +491,7 @@ export type { string_css_property };
477
491
  export type { string_css_value };
478
492
  export type { string_css_selector };
479
493
  export type { string_url };
494
+ export type { string_promptbook_server_url };
480
495
  export type { string_base_url };
481
496
  export type { string_pipeline_root_url };
482
497
  export type { string_pipeline_url };
@@ -491,6 +506,7 @@ export type { string_uri_part };
491
506
  export type { string_hostname };
492
507
  export type { string_host };
493
508
  export type { string_protocol };
509
+ export type { string_ip_address };
494
510
  export type { string_email };
495
511
  export type { string_emails };
496
512
  export type { string_uuid };
@@ -509,6 +525,7 @@ export type { string_dirname };
509
525
  export type { string_person_fullname };
510
526
  export type { string_person_profile };
511
527
  export type { string_license };
528
+ export type { string_legal_entity };
512
529
  export type { string_attribute };
513
530
  export type { string_attribute_value_scope };
514
531
  export type { string_color };
@@ -520,6 +537,7 @@ export type { string_postprocessing_function_name };
520
537
  export type { id };
521
538
  export type { task_id };
522
539
  export type { string_token };
540
+ export type { string_promptbook_token };
523
541
  export type { string_license_token };
524
542
  export type { string_password };
525
543
  export type { string_ssh_key };
@@ -5,7 +5,10 @@ import { renderPromptbookMermaid } from '../conversion/prettify/renderPipelineMe
5
5
  import { deserializeError } from '../errors/utils/deserializeError';
6
6
  import { serializeError } from '../errors/utils/serializeError';
7
7
  import { forEachAsync } from '../execution/utils/forEachAsync';
8
+ import { isValidCsvString } from '../formats/csv/utils/isValidCsvString';
8
9
  import { isValidJsonString } from '../formats/json/utils/isValidJsonString';
10
+ import { jsonParse } from '../formats/json/utils/jsonParse';
11
+ import { isValidXmlString } from '../formats/xml/utils/isValidXmlString';
9
12
  import { prompt } from '../pipeline/prompt-notation';
10
13
  import { promptTemplate } from '../pipeline/prompt-notation';
11
14
  import { $getCurrentDate } from '../utils/$getCurrentDate';
@@ -87,7 +90,10 @@ export { renderPromptbookMermaid };
87
90
  export { deserializeError };
88
91
  export { serializeError };
89
92
  export { forEachAsync };
93
+ export { isValidCsvString };
90
94
  export { isValidJsonString };
95
+ export { jsonParse };
96
+ export { isValidXmlString };
91
97
  export { prompt };
92
98
  export { promptTemplate };
93
99
  export { $getCurrentDate };
@@ -8,7 +8,6 @@ import type { Command as Program } from 'commander';
8
8
  */
9
9
  export declare function $initializeLoginCommand(program: Program): void;
10
10
  /**
11
- * TODO: Pass remote server URL (and path)
12
11
  * TODO: Implement non-interactive login
13
12
  * Note: [💞] Ignore a discrepancy between file name and entity name
14
13
  * Note: [🟡] Code in this file should never be published outside of `@promptbook/cli`
@@ -1,15 +1,28 @@
1
1
  import type { CacheLlmToolsOptions } from '../../llm-providers/_common/utils/cache/CacheLlmToolsOptions';
2
- import type { string_url } from '../../types/typeAliases';
2
+ import type { LlmExecutionToolsWithTotalUsage } from '../../llm-providers/_common/utils/count-total-usage/LlmExecutionToolsWithTotalUsage';
3
+ import type { string_promptbook_server_url } from '../../types/typeAliases';
3
4
  type ProvideLlmToolsForCliOptions = Pick<CacheLlmToolsOptions, 'isCacheReloaded'> & {
5
+ /**
6
+ * If true, user will be always prompted for login
7
+ *
8
+ * Note: This is used in `ptbk login` command
9
+ */
10
+ isLoginloaded?: true;
11
+ /**
12
+ * CLI options
13
+ */
4
14
  cliOptions: {
5
15
  verbose: boolean;
6
16
  interactive: boolean;
7
17
  provider: 'BYOK' | 'BRING_YOUR_OWN_KEYS' | 'REMOTE_SERVER' | 'RS' | string;
8
- remoteServerUrl: string_url;
18
+ remoteServerUrl: string_promptbook_server_url;
9
19
  };
10
20
  };
11
21
  /**
12
22
  * @private utility of CLI
13
23
  */
14
- export declare function $provideLlmToolsForCli(options: ProvideLlmToolsForCliOptions): Promise<import("../../_packages/types.index").LlmExecutionToolsWithTotalUsage>;
24
+ export declare function $provideLlmToolsForCli(options: ProvideLlmToolsForCliOptions): Promise<{
25
+ strategy: 'BRING_YOUR_OWN_KEYS' | 'REMOTE_SERVER';
26
+ llm: LlmExecutionToolsWithTotalUsage;
27
+ }>;
15
28
  export {};
@@ -2,4 +2,4 @@
2
2
  /**
3
3
  * Note: [🔺] Purpose of this file is to test and use the current CLI in development environment
4
4
  */
5
- import '../../_packages/cli.index.ts';
5
+ import '../../_packages/cli.index';
@@ -1,6 +1,8 @@
1
1
  import type { PipelineTaskCommandParser } from '../_common/types/CommandParser';
2
2
  import type { ExpectCommand } from './ExpectCommand';
3
3
  /**
4
+ import { WrappedError } from '../../errors/WrappedError';
5
+ import { assertsError } from '../../errors/assertsError';
4
6
  * Parses the expect command
5
7
  *
6
8
  * @see `documentationUrl` for more details
@@ -3,7 +3,7 @@ import type { IntermediateFilesStrategy } from './types/IntermediateFilesStrateg
3
3
  import type { string_app_id } from './types/typeAliases';
4
4
  import type { string_email } from './types/typeAliases';
5
5
  import type { string_name } from './types/typeAliases';
6
- import type { string_url_image } from './types/typeAliases';
6
+ import type { string_promptbook_server_url } from './types/typeAliases';
7
7
  /**
8
8
  * Warning message for the generated sections and files files
9
9
  *
@@ -38,22 +38,6 @@ export declare const ADMIN_GITHUB_NAME: string_name;
38
38
  * @public exported from `@promptbook/core`
39
39
  */
40
40
  export declare const CLAIM = "It's time for a paradigm shift. The future of software in plain English, French or Latin";
41
- /**
42
- * Logo for the light theme
43
- *
44
- * TODO: [🗽] Unite branding and make single place for it
45
- *
46
- * @public exported from `@promptbook/core`
47
- */
48
- export declare const LOGO_LIGHT_SRC: string_url_image;
49
- /**
50
- * Logo for the dark theme
51
- *
52
- * TODO: [🗽] Unite branding and make single place for it
53
- *
54
- * @public exported from `@promptbook/core`
55
- */
56
- export declare const LOGO_DARK_SRC: string_url_image;
57
41
  /**
58
42
  * When the title is not provided, the default title is used
59
43
  *
@@ -90,6 +74,12 @@ export declare const DEFAULT_MAX_FILE_SIZE: number;
90
74
  * @private within the repository
91
75
  */
92
76
  export declare const GENERATOR_WARNING_BY_PROMPTBOOK_CLI = "\u26A0\uFE0F WARNING: This code has been generated by `@promptbook/cli` so that any manual changes will be overwritten";
77
+ /**
78
+ * Warning message for the automatically generated sections of `.env` files
79
+ *
80
+ * @private within the repository
81
+ */
82
+ export declare const GENERATOR_WARNING_IN_ENV = "Note: Added by Promptbook";
93
83
  /**
94
84
  * The maximum number of iterations for a loops
95
85
  *
@@ -115,6 +105,7 @@ export declare const VALUE_STRINGS: {
115
105
  readonly infinity: "(infinity; ∞)";
116
106
  readonly negativeInfinity: "(negative infinity; -∞)";
117
107
  readonly unserializable: "(unserializable value)";
108
+ readonly circular: "(circular JSON)";
118
109
  };
119
110
  /**
120
111
  * Small number limit
@@ -237,11 +228,11 @@ export declare const MOMENT_ARG_THRESHOLDS: {
237
228
  readonly ss: 3;
238
229
  };
239
230
  /**
240
- * @@@
231
+ * Default remote server URL for the Promptbook
241
232
  *
242
233
  * @public exported from `@promptbook/core`
243
234
  */
244
- export declare const DEFAULT_REMOTE_SERVER_URL = "https://api.pavolhejny.com/promptbook";
235
+ export declare const DEFAULT_REMOTE_SERVER_URL: string_promptbook_server_url;
245
236
  /**
246
237
  * @@@
247
238
  *
@@ -1,6 +1,6 @@
1
+ import type { FilesystemTools } from '../../execution/FilesystemTools';
1
2
  import type { PipelineJson } from '../../pipeline/PipelineJson/PipelineJson';
2
3
  import type { string_filename } from '../../types/typeAliases';
3
- import type { FilesystemTools } from '../../execution/FilesystemTools';
4
4
  /**
5
5
  * Loads the books from the archive file with `.bookc` extension
6
6
  *
@@ -10,7 +10,7 @@ import type { FilesystemTools } from '../../execution/FilesystemTools';
10
10
  *
11
11
  * @private utility of Prompbook
12
12
  */
13
- export declare function loadArchive(filePath: string_filename, fs: FilesystemTools): Promise<Array<PipelineJson>>;
13
+ export declare function loadArchive(filePath: string_filename, fs: FilesystemTools): Promise<ReadonlyArray<PipelineJson>>;
14
14
  /**
15
15
  * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
16
16
  */
@@ -15,6 +15,7 @@ import { PipelineLogicError } from './PipelineLogicError';
15
15
  import { PipelineUrlError } from './PipelineUrlError';
16
16
  import { PromptbookFetchError } from './PromptbookFetchError';
17
17
  import { UnexpectedError } from './UnexpectedError';
18
+ import { WrappedError } from './WrappedError';
18
19
  /**
19
20
  * Index of all custom errors
20
21
  *
@@ -35,7 +36,10 @@ export declare const PROMPTBOOK_ERRORS: {
35
36
  readonly PipelineExecutionError: typeof PipelineExecutionError;
36
37
  readonly PipelineLogicError: typeof PipelineLogicError;
37
38
  readonly PipelineUrlError: typeof PipelineUrlError;
39
+ readonly AuthenticationError: typeof AuthenticationError;
40
+ readonly PromptbookFetchError: typeof PromptbookFetchError;
38
41
  readonly UnexpectedError: typeof UnexpectedError;
42
+ readonly WrappedError: typeof WrappedError;
39
43
  };
40
44
  /**
41
45
  * Index of all javascript errors
@@ -51,8 +55,6 @@ export declare const COMMON_JAVASCRIPT_ERRORS: {
51
55
  readonly TypeError: TypeErrorConstructor;
52
56
  readonly URIError: URIErrorConstructor;
53
57
  readonly AggregateError: AggregateErrorConstructor;
54
- readonly AuthenticationError: typeof AuthenticationError;
55
- readonly PromptbookFetchError: typeof PromptbookFetchError;
56
58
  };
57
59
  /**
58
60
  * Index of all errors
@@ -68,8 +70,6 @@ export declare const ALL_ERRORS: {
68
70
  readonly TypeError: TypeErrorConstructor;
69
71
  readonly URIError: URIErrorConstructor;
70
72
  readonly AggregateError: AggregateErrorConstructor;
71
- readonly AuthenticationError: typeof AuthenticationError;
72
- readonly PromptbookFetchError: typeof PromptbookFetchError;
73
73
  readonly AbstractFormatError: typeof AbstractFormatError;
74
74
  readonly CsvFormatError: typeof CsvFormatError;
75
75
  readonly CollectionError: typeof CollectionError;
@@ -84,7 +84,10 @@ export declare const ALL_ERRORS: {
84
84
  readonly PipelineExecutionError: typeof PipelineExecutionError;
85
85
  readonly PipelineLogicError: typeof PipelineLogicError;
86
86
  readonly PipelineUrlError: typeof PipelineUrlError;
87
+ readonly AuthenticationError: typeof AuthenticationError;
88
+ readonly PromptbookFetchError: typeof PromptbookFetchError;
87
89
  readonly UnexpectedError: typeof UnexpectedError;
90
+ readonly WrappedError: typeof WrappedError;
88
91
  };
89
92
  /**
90
93
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -10,5 +10,5 @@ export declare class PipelineExecutionError extends Error {
10
10
  constructor(message: string);
11
11
  }
12
12
  /**
13
- * TODO: !!!!!! Add id to all errors
13
+ * TODO: [🧠][🌂] Add id to all errors
14
14
  */
@@ -0,0 +1,10 @@
1
+ import type { really_any } from '../utils/organization/really_any';
2
+ /**
3
+ * This error type indicates that somewhere in the code non-Error object was thrown and it was wrapped into the `WrappedError`
4
+ *
5
+ * @public exported from `@promptbook/core`
6
+ */
7
+ export declare class WrappedError extends Error {
8
+ readonly name = "WrappedError";
9
+ constructor(whatWasThrown: really_any);
10
+ }
@@ -0,0 +1,11 @@
1
+ import type { really_unknown } from '../utils/organization/really_unknown';
2
+ /**
3
+ * Helper used in catch blocks to assert that the error is an instance of `Error`
4
+ *
5
+ * @param whatWasThrown Any object that was thrown
6
+ * @returns Nothing if the error is an instance of `Error`
7
+ * @throws `WrappedError` or `UnexpectedError` if the error is not standard
8
+ *
9
+ * @private within the repository
10
+ */
11
+ export declare function assertsError(whatWasThrown: really_unknown): asserts whatWasThrown is Error;
@@ -16,6 +16,10 @@ export type CommonToolsOptions = {
16
16
  * If true, the internal executions will be logged
17
17
  */
18
18
  readonly isVerbose?: boolean;
19
+ /**
20
+ * Maximum number of requests per minute
21
+ */
22
+ readonly maxRequestsPerMinute?: number;
19
23
  };
20
24
  /**
21
25
  * TODO: [🧠][🤺] Maybe allow overriding of `userId` for each prompt
@@ -7,6 +7,6 @@ import type { string_url } from '../types/typeAliases';
7
7
  *
8
8
  * It is used in theese places:
9
9
  * - Fetching knowledge sources
10
- * - Callbacks from remote server ([👩🏾‍🤝‍🧑🏾] Not yet implemented)
10
+ * - Callbacks from remote server
11
11
  */
12
12
  export type PromptbookFetch = (url: string_url, init?: RequestInit) => Promise<Response>;
@@ -3,12 +3,17 @@ import type { PipelineJson } from '../../pipeline/PipelineJson/PipelineJson';
3
3
  import type { TaskJson } from '../../pipeline/PipelineJson/TaskJson';
4
4
  import type { string_markdown } from '../../types/typeAliases';
5
5
  import type { string_parameter_value } from '../../types/typeAliases';
6
+ import type { ExecutionTools } from '../ExecutionTools';
6
7
  /**
7
8
  * @@@
8
9
  *
9
10
  * @private internal type of `getKnowledgeFoTask`
10
11
  */
11
12
  type GetKnowledgeForTaskOptions = {
13
+ /**
14
+ * The execution tools to be used during the execution of the pipeline
15
+ */
16
+ readonly tools: ExecutionTools;
12
17
  /**
13
18
  * @@@
14
19
  */
@@ -21,7 +26,14 @@ type GetKnowledgeForTaskOptions = {
21
26
  /**
22
27
  * @@@
23
28
  *
29
+ * Here is the place where RAG (retrieval-augmented generation) happens
30
+ *
24
31
  * @private internal utility of `createPipelineExecutor`
25
32
  */
26
33
  export declare function getKnowledgeForTask(options: GetKnowledgeForTaskOptions): Promise<string_parameter_value & string_markdown>;
27
34
  export {};
35
+ /**
36
+ * TODO: !!!! Verify if this is working
37
+ * TODO: [♨] Implement Better - use keyword search
38
+ * TODO: [♨] Examples of values
39
+ */
@@ -2,12 +2,17 @@ import type { ReadonlyDeep } from 'type-fest';
2
2
  import type { PipelineJson } from '../../pipeline/PipelineJson/PipelineJson';
3
3
  import type { TaskJson } from '../../pipeline/PipelineJson/TaskJson';
4
4
  import type { ReservedParameters } from '../../types/typeAliases';
5
+ import type { ExecutionTools } from '../ExecutionTools';
5
6
  /**
6
7
  * @@@
7
8
  *
8
9
  * @private internal type of `getReservedParametersForTask`
9
10
  */
10
11
  type GetReservedParametersForTaskOptions = {
12
+ /**
13
+ * The execution tools to be used during the execution of the pipeline
14
+ */
15
+ readonly tools: ExecutionTools;
11
16
  /**
12
17
  * @@@
13
18
  */
@@ -0,0 +1,12 @@
1
+ import type { ParseResult } from 'papaparse';
2
+ import type { TODO_any } from '../../../utils/organization/TODO_any';
3
+ import type { Parameters } from '../../../types/typeAliases';
4
+ import type { CsvSettings } from '../CsvSettings';
5
+ /**
6
+ * Converts a CSV string into an object
7
+ *
8
+ * Note: This is wrapper around `papaparse.parse()` with better autohealing
9
+ *
10
+ * @private - for now until `@promptbook/csv` is released
11
+ */
12
+ export declare function csvParse(value: string, settings?: CsvSettings, schema?: TODO_any): ParseResult<Parameters>;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Function to check if a string is valid CSV
3
+ *
4
+ * @param value The string to check
5
+ * @returns True if the string is a valid CSV string, false otherwise
6
+ *
7
+ * @public exported from `@promptbook/utils`
8
+ */
9
+ export declare function isValidCsvString(value: string): boolean;
@@ -1,6 +1,9 @@
1
1
  /**
2
2
  * Function isValidJsonString will tell you if the string is valid JSON or not
3
3
  *
4
+ * @param value The string to check
5
+ * @returns True if the string is a valid JSON string, false otherwise
6
+ *
4
7
  * @public exported from `@promptbook/utils`
5
8
  */
6
9
  export declare function isValidJsonString(value: string): boolean;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Converts a JavaScript Object Notation (JSON) string into an object.
3
+ *
4
+ * Note: This is wrapper around `JSON.parse()` with better error and type handling
5
+ *
6
+ * @public exported from `@promptbook/utils`
7
+ */
8
+ export declare function jsonParse<T>(value: string): T;
9
+ /**
10
+ * TODO: !!!! Use in Promptbook.studio
11
+ */
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Function to check if a string is valid XML
3
+ *
4
+ * @param value
5
+ * @returns True if the string is a valid XML string, false otherwise
6
+ *
7
+ * @public exported from `@promptbook/utils`
8
+ */
9
+ export declare function isValidXmlString(value: string): boolean;
@@ -0,0 +1,15 @@
1
+ import type { AvailableModel } from '../../execution/AvailableModel';
2
+ import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
3
+ /**
4
+ * Creates a wrapper around LlmExecutionTools that only exposes models matching the filter function
5
+ *
6
+ * @param llmTools The original LLM execution tools to wrap
7
+ * @param modelFilter Function that determines whether a model should be included
8
+ * @returns A new LlmExecutionTools instance with filtered models
9
+ *
10
+ * @public exported from `@promptbook/core`
11
+ */
12
+ export declare function filterModels<TLlmTools extends LlmExecutionTools>(llmTools: TLlmTools, modelFilter: (model: AvailableModel) => boolean): TLlmTools;
13
+ /**
14
+ * TODO: !!! [models] Test that this is working
15
+ */
@@ -2,11 +2,11 @@ import type { string_filename } from '../../../types/typeAliases';
2
2
  /**
3
3
  * Provides the path to the `.env` file
4
4
  *
5
- * Note: `$` is used to indicate that this function is not a pure function - it uses filesystem to access .env file
5
+ * Note: `$` is used to indicate that this function is not a pure function - it uses filesystem to access `.env` file
6
6
  *
7
7
  * @private within the repository - for CLI utils
8
8
  */
9
- export declare function $provideEnvFilepath(): Promise<string_filename | null>;
9
+ export declare function $provideEnvFilename(): Promise<string_filename | null>;
10
10
  /**
11
11
  * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
12
12
  */
@@ -3,7 +3,7 @@ import type { LlmToolsConfiguration } from './LlmToolsConfiguration';
3
3
  * @@@
4
4
  *
5
5
  * @@@ .env
6
- * Note: `$` is used to indicate that this function is not a pure function - it uses filesystem to access .env file
6
+ * Note: `$` is used to indicate that this function is not a pure function - it uses filesystem to access `.env` file
7
7
  *
8
8
  * It looks for environment variables:
9
9
  * - `process.env.OPENAI_API_KEY`
@@ -12,7 +12,7 @@ type GetLlmToolsForTestingAndScriptsAndPlaygroundOptions = CreateLlmToolsFromCon
12
12
  /**
13
13
  * Returns LLM tools for testing purposes
14
14
  *
15
- * Note: `$` is used to indicate that this function is not a pure function - it uses filesystem to access .env file
15
+ * Note: `$` is used to indicate that this function is not a pure function - it uses filesystem to access `.env` file
16
16
  *
17
17
  * @private within the repository - JUST FOR TESTS, SCRIPTS AND PLAYGROUND
18
18
  */
@@ -5,7 +5,14 @@ import type { string_url } from '../../../types/typeAliases';
5
5
  import type { really_any } from '../../../utils/organization/really_any';
6
6
  import type { CacheLlmToolsOptions } from '../utils/cache/CacheLlmToolsOptions';
7
7
  import type { LlmExecutionToolsWithTotalUsage } from '../utils/count-total-usage/LlmExecutionToolsWithTotalUsage';
8
- type ProvideLlmToolsForWizzardOrCliOptions = Pick<CacheLlmToolsOptions, 'isCacheReloaded'> & ({
8
+ type ProvideLlmToolsForWizzardOrCliOptions = {
9
+ /**
10
+ * If true, user will be always prompted for login
11
+ *
12
+ * Note: This is used in `ptbk login` command
13
+ */
14
+ isLoginloaded?: true;
15
+ } & Pick<CacheLlmToolsOptions, 'isCacheReloaded'> & ({
9
16
  /**
10
17
  * Use local keys and execute LLMs directly
11
18
  */
@@ -29,13 +36,15 @@ type ProvideLlmToolsForWizzardOrCliOptions = Pick<CacheLlmToolsOptions, 'isCache
29
36
  readonly appId: string_app_id;
30
37
  /**
31
38
  *
39
+ *
40
+ * Note: When login prompt fails, `process.exit(1)` is called
32
41
  */
33
42
  loginPrompt(): Promisable<Identification<really_any>>;
34
43
  });
35
44
  /**
36
45
  * Returns LLM tools for CLI
37
46
  *
38
- * Note: `$` is used to indicate that this function is not a pure function - it uses filesystem to access .env file and also writes this .env file
47
+ * Note: `$` is used to indicate that this function is not a pure function - it uses filesystem to access `.env` file and also writes this .env file
39
48
  *
40
49
  * @private within the repository - for CLI utils
41
50
  */
@@ -6,7 +6,7 @@ import type { CreateLlmToolsFromConfigurationOptions } from './createLlmToolsFro
6
6
  * Note: This function is not cached, every call creates new instance of `MultipleLlmExecutionTools`
7
7
  *
8
8
  * @@@ .env
9
- * Note: `$` is used to indicate that this function is not a pure function - it uses filesystem to access .env file
9
+ * Note: `$` is used to indicate that this function is not a pure function - it uses filesystem to access `.env` file
10
10
  *
11
11
  * It looks for environment variables:
12
12
  * - `process.env.OPENAI_API_KEY`
@@ -3,6 +3,41 @@ import type { string_title } from '../../../types/typeAliases';
3
3
  import type { Registered } from '../../../utils/$Register';
4
4
  import type { string_SCREAMING_CASE } from '../../../utils/normalization/normalizeTo_SCREAMING_CASE';
5
5
  import type { LlmToolsConfiguration } from './LlmToolsConfiguration';
6
+ /**
7
+ * How is the model provider trusted?
8
+ *
9
+ * @public exported from `@promptbook/core`
10
+ */
11
+ export declare const MODEL_TRUST_LEVEL: {
12
+ readonly FULL: "Model is running on the local machine, training data and model weights are known, data are ethically sourced";
13
+ readonly OPEN: "Model is open source, training data and model weights are known";
14
+ readonly PARTIALLY_OPEN: "Model is open source, but training data and model weights are not (fully) known";
15
+ readonly CLOSED_LOCAL: "Model can be run locally, but it is not open source";
16
+ readonly CLOSED_FREE: "Model is behind API gateway but free to use";
17
+ readonly CLOSED_BUSINESS: "Model is behind API gateway and paid but has good SLA, TOS, privacy policy and in general is a good to use in business applications";
18
+ readonly CLOSED: "Model is behind API gateway and paid";
19
+ readonly UNTRUSTED: "Model has questions about the training data and ethics, but it is not known if it is a problem or not";
20
+ readonly VURNABLE: "Model has some known serious vulnerabilities, leaks, ethical problems, etc.";
21
+ };
22
+ /**
23
+ * How is the model provider important?
24
+ *
25
+ * @public exported from `@promptbook/core`
26
+ */
27
+ export declare const MODEL_ORDER: {
28
+ /**
29
+ * Top-tier models, e.g. OpenAI, Anthropic,...
30
+ */
31
+ readonly TOP_TIER: 333;
32
+ /**
33
+ * Mid-tier models, e.g. Llama, Mistral, etc.
34
+ */
35
+ readonly NORMAL: 100;
36
+ /**
37
+ * Low-tier models, e.g. Phi, Tiny, etc.
38
+ */
39
+ readonly LOW_TIER: 0;
40
+ };
6
41
  /**
7
42
  * @@@
8
43
  *
@@ -13,6 +48,14 @@ export type LlmToolsMetadata = Registered & {
13
48
  * @@@
14
49
  */
15
50
  readonly title: string_title;
51
+ /**
52
+ * How is the model is trusted?
53
+ */
54
+ readonly trustLevel: keyof typeof MODEL_TRUST_LEVEL;
55
+ /**
56
+ * How is the model provider important and should be sorted in the list of available providers?
57
+ */
58
+ readonly order: typeof MODEL_ORDER[keyof typeof MODEL_ORDER] | number;
16
59
  /**
17
60
  * List of environment variables that can be used to configure the provider
18
61
  *
@@ -19,6 +19,10 @@ export declare class AzureOpenAiExecutionTools implements LlmExecutionTools {
19
19
  * OpenAI Azure API client.
20
20
  */
21
21
  private client;
22
+ /**
23
+ * Rate limiter instance
24
+ */
25
+ private limiter;
22
26
  /**
23
27
  * Creates OpenAI Execution Tools.
24
28
  *