@promptbook/types 0.89.0-9 → 0.89.0

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 (35) hide show
  1. package/README.md +9 -11
  2. package/esm/typings/src/_packages/core.index.d.ts +8 -4
  3. package/esm/typings/src/_packages/types.index.d.ts +18 -0
  4. package/esm/typings/src/_packages/utils.index.d.ts +4 -0
  5. package/esm/typings/src/cli/cli-commands/login.d.ts +0 -1
  6. package/esm/typings/src/cli/common/$provideLlmToolsForCli.d.ts +16 -3
  7. package/esm/typings/src/cli/test/ptbk.d.ts +1 -1
  8. package/esm/typings/src/commands/EXPECT/expectCommandParser.d.ts +2 -0
  9. package/esm/typings/src/config.d.ts +10 -19
  10. package/esm/typings/src/errors/0-index.d.ts +7 -4
  11. package/esm/typings/src/errors/PipelineExecutionError.d.ts +1 -1
  12. package/esm/typings/src/errors/WrappedError.d.ts +10 -0
  13. package/esm/typings/src/errors/assertsError.d.ts +11 -0
  14. package/esm/typings/src/execution/PromptbookFetch.d.ts +1 -1
  15. package/esm/typings/src/formats/csv/utils/isValidCsvString.d.ts +9 -0
  16. package/esm/typings/src/formats/csv/utils/isValidCsvString.test.d.ts +1 -0
  17. package/esm/typings/src/formats/json/utils/isValidJsonString.d.ts +3 -0
  18. package/esm/typings/src/formats/xml/utils/isValidXmlString.d.ts +9 -0
  19. package/esm/typings/src/formats/xml/utils/isValidXmlString.test.d.ts +1 -0
  20. package/esm/typings/src/llm-providers/_common/register/{$provideEnvFilepath.d.ts → $provideEnvFilename.d.ts} +2 -2
  21. package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsConfigurationFromEnv.d.ts +1 -1
  22. package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsForTestingAndScriptsAndPlayground.d.ts +1 -1
  23. package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsForWizzardOrCli.d.ts +11 -2
  24. package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsFromEnv.d.ts +1 -1
  25. package/esm/typings/src/remote-server/openapi-types.d.ts +284 -0
  26. package/esm/typings/src/remote-server/openapi.d.ts +187 -0
  27. package/esm/typings/src/remote-server/socket-types/_subtypes/Identification.d.ts +7 -1
  28. package/esm/typings/src/remote-server/socket-types/_subtypes/identificationToPromptbookToken.d.ts +11 -0
  29. package/esm/typings/src/remote-server/socket-types/_subtypes/promptbookTokenToIdentification.d.ts +10 -0
  30. package/esm/typings/src/remote-server/startRemoteServer.d.ts +1 -2
  31. package/esm/typings/src/remote-server/types/RemoteServerOptions.d.ts +15 -9
  32. package/esm/typings/src/storage/env-storage/$EnvStorage.d.ts +40 -0
  33. package/esm/typings/src/types/typeAliases.d.ts +26 -0
  34. package/package.json +6 -2
  35. package/esm/typings/src/cli/test/ptbk2.d.ts +0 -5
package/README.md CHANGED
@@ -23,10 +23,6 @@
23
23
 
24
24
 
25
25
 
26
- <blockquote style="color: #ff8811">
27
- <b>⚠ Warning:</b> This is a pre-release version of the library. It is not yet ready for production use. Please look at <a href="https://www.npmjs.com/package/@promptbook/core?activeTab=versions">latest stable release</a>.
28
- </blockquote>
29
-
30
26
  ## 📦 Package `@promptbook/types`
31
27
 
32
28
  - Promptbooks are [divided into several](#-packages) packages, all are published from [single monorepo](https://github.com/webgptorg/promptbook).
@@ -269,6 +265,10 @@ But unlike programming languages, it is designed to be understandable by non-pro
269
265
 
270
266
 
271
267
 
268
+ ## 🔒 Security
269
+
270
+ For information on reporting security vulnerabilities, see our [Security Policy](./SECURITY.md).
271
+
272
272
  ## 📦 Packages _(for developers)_
273
273
 
274
274
  This library is divided into several packages, all are published from [single monorepo](https://github.com/webgptorg/promptbook).
@@ -325,7 +325,7 @@ The following glossary is used to clarify certain concepts:
325
325
  ### General LLM / AI terms
326
326
 
327
327
  - **Prompt drift** is a phenomenon where the AI model starts to generate outputs that are not aligned with the original prompt. This can happen due to the model's training data, the prompt's wording, or the model's architecture.
328
- - **Pipeline, workflow or chain** is a sequence of tasks that are executed in a specific order. In the context of AI, a pipeline can refer to a sequence of AI models that are used to process data.
328
+ - [**Pipeline, workflow scenario or chain** is a sequence of tasks that are executed in a specific order. In the context of AI, a pipeline can refer to a sequence of AI models that are used to process data.](https://github.com/webgptorg/promptbook/discussions/88)
329
329
  - **Fine-tuning** is a process where a pre-trained AI model is further trained on a specific dataset to improve its performance on a specific task.
330
330
  - **Zero-shot learning** is a machine learning paradigm where a model is trained to perform a task without any labeled examples. Instead, the model is provided with a description of the task and is expected to generate the correct output.
331
331
  - **Few-shot learning** is a machine learning paradigm where a model is trained to perform a task with only a few labeled examples. This is in contrast to traditional machine learning, where models are trained on large datasets.
@@ -333,10 +333,6 @@ The following glossary is used to clarify certain concepts:
333
333
  - **Retrieval-augmented generation** is a machine learning paradigm where a model generates text by retrieving relevant information from a large database of text. This approach combines the benefits of generative models and retrieval models.
334
334
  - **Longtail** refers to non-common or rare events, items, or entities that are not well-represented in the training data of machine learning models. Longtail items are often challenging for models to predict accurately.
335
335
 
336
-
337
-
338
-
339
-
340
336
  _Note: This section is not complete dictionary, more list of general AI / LLM terms that has connection with Promptbook_
341
337
 
342
338
 
@@ -450,6 +446,8 @@ See [TODO.md](./TODO.md)
450
446
 
451
447
  ## 🖋️ Contributing
452
448
 
453
- We are open to pull requests, feedback, and suggestions.
449
+ You can also ⭐ star the project, [follow us on GitHub](https://github.com/hejny) or [various other social networks](https://www.pavolhejny.com/contact/).We are open to [pull requests, feedback, and suggestions](./CONTRIBUTING.md).
450
+
451
+ ## 📞 Support
454
452
 
455
- You can also star the project, [follow us on GitHub](https://github.com/hejny) or [various other social networks](https://www.pavolhejny.com/contact/).
453
+ If you need help or have questions, please check our [Support Resources](./SUPPORT.md).
@@ -8,8 +8,6 @@ import { NAME } from '../config';
8
8
  import { ADMIN_EMAIL } from '../config';
9
9
  import { ADMIN_GITHUB_NAME } from '../config';
10
10
  import { CLAIM } from '../config';
11
- import { LOGO_LIGHT_SRC } from '../config';
12
- import { LOGO_DARK_SRC } from '../config';
13
11
  import { DEFAULT_BOOK_TITLE } from '../config';
14
12
  import { DEFAULT_TASK_TITLE } from '../config';
15
13
  import { DEFAULT_PROMPT_TASK_TITLE } from '../config';
@@ -62,6 +60,7 @@ import { PipelineLogicError } from '../errors/PipelineLogicError';
62
60
  import { PipelineUrlError } from '../errors/PipelineUrlError';
63
61
  import { PromptbookFetchError } from '../errors/PromptbookFetchError';
64
62
  import { UnexpectedError } from '../errors/UnexpectedError';
63
+ import { WrappedError } from '../errors/WrappedError';
65
64
  import { createPipelineExecutor } from '../execution/createPipelineExecutor/00-createPipelineExecutor';
66
65
  import { embeddingVectorToString } from '../execution/embeddingVectorToString';
67
66
  import { executionReportJsonToString } from '../execution/execution-report/executionReportJsonToString';
@@ -115,6 +114,8 @@ import { isPipelinePrepared } from '../prepare/isPipelinePrepared';
115
114
  import { preparePipeline } from '../prepare/preparePipeline';
116
115
  import { prepareTasks } from '../prepare/prepareTasks';
117
116
  import { unpreparePipeline } from '../prepare/unpreparePipeline';
117
+ import { identificationToPromptbookToken } from '../remote-server/socket-types/_subtypes/identificationToPromptbookToken';
118
+ import { promptbookTokenToIdentification } from '../remote-server/socket-types/_subtypes/promptbookTokenToIdentification';
118
119
  import { _BoilerplateScraperMetadataRegistration } from '../scrapers/_boilerplate/register-metadata';
119
120
  import { prepareKnowledgePieces } from '../scrapers/_common/prepareKnowledgePieces';
120
121
  import { $scrapersMetadataRegister } from '../scrapers/_common/register/$scrapersMetadataRegister';
@@ -134,6 +135,7 @@ import { MODEL_VARIANTS } from '../types/ModelVariant';
134
135
  import { NonTaskSectionTypes } from '../types/SectionType';
135
136
  import { SectionTypes } from '../types/SectionType';
136
137
  import { TaskTypes } from '../types/TaskType';
138
+ import { REMOTE_SERVER_URLS } from '../../servers';
137
139
  export { BOOK_LANGUAGE_VERSION, PROMPTBOOK_ENGINE_VERSION };
138
140
  export { collectionToJson };
139
141
  export { createCollectionFromJson };
@@ -144,8 +146,6 @@ export { NAME };
144
146
  export { ADMIN_EMAIL };
145
147
  export { ADMIN_GITHUB_NAME };
146
148
  export { CLAIM };
147
- export { LOGO_LIGHT_SRC };
148
- export { LOGO_DARK_SRC };
149
149
  export { DEFAULT_BOOK_TITLE };
150
150
  export { DEFAULT_TASK_TITLE };
151
151
  export { DEFAULT_PROMPT_TASK_TITLE };
@@ -198,6 +198,7 @@ export { PipelineLogicError };
198
198
  export { PipelineUrlError };
199
199
  export { PromptbookFetchError };
200
200
  export { UnexpectedError };
201
+ export { WrappedError };
201
202
  export { createPipelineExecutor };
202
203
  export { embeddingVectorToString };
203
204
  export { executionReportJsonToString };
@@ -251,6 +252,8 @@ export { isPipelinePrepared };
251
252
  export { preparePipeline };
252
253
  export { prepareTasks };
253
254
  export { unpreparePipeline };
255
+ export { identificationToPromptbookToken };
256
+ export { promptbookTokenToIdentification };
254
257
  export { _BoilerplateScraperMetadataRegistration };
255
258
  export { prepareKnowledgePieces };
256
259
  export { $scrapersMetadataRegister };
@@ -270,3 +273,4 @@ export { MODEL_VARIANTS };
270
273
  export { NonTaskSectionTypes };
271
274
  export { SectionTypes };
272
275
  export { TaskTypes };
276
+ export { REMOTE_SERVER_URLS };
@@ -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,9 @@ 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 { isValidXmlString } from '../formats/xml/utils/isValidXmlString';
9
11
  import { prompt } from '../pipeline/prompt-notation';
10
12
  import { promptTemplate } from '../pipeline/prompt-notation';
11
13
  import { $getCurrentDate } from '../utils/$getCurrentDate';
@@ -87,7 +89,9 @@ export { renderPromptbookMermaid };
87
89
  export { deserializeError };
88
90
  export { serializeError };
89
91
  export { forEachAsync };
92
+ export { isValidCsvString };
90
93
  export { isValidJsonString };
94
+ export { isValidXmlString };
91
95
  export { prompt };
92
96
  export { promptTemplate };
93
97
  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
+ import type { LlmExecutionToolsWithTotalUsage } from '../../llm-providers/_common/utils/count-total-usage/LlmExecutionToolsWithTotalUsage';
1
2
  import type { CacheLlmToolsOptions } from '../../llm-providers/_common/utils/cache/CacheLlmToolsOptions';
2
- import type { string_url } from '../../types/typeAliases';
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
  *
@@ -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;
@@ -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>;
@@ -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,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;
@@ -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`
@@ -0,0 +1,284 @@
1
+ /**
2
+ * This file was auto-generated by openapi-typescript.
3
+ * Do not make direct changes to the file.
4
+ */
5
+ export type paths = {
6
+ readonly "/": {
7
+ readonly parameters: {
8
+ readonly query?: never;
9
+ readonly header?: never;
10
+ readonly path?: never;
11
+ readonly cookie?: never;
12
+ };
13
+ /**
14
+ * Get server details
15
+ * @description Returns details about the Promptbook server.
16
+ */
17
+ readonly get: {
18
+ readonly parameters: {
19
+ readonly query?: never;
20
+ readonly header?: never;
21
+ readonly path?: never;
22
+ readonly cookie?: never;
23
+ };
24
+ readonly requestBody?: never;
25
+ readonly responses: {
26
+ /** @description Server details in markdown format. */
27
+ readonly 200: {
28
+ headers: {
29
+ readonly [name: string]: unknown;
30
+ };
31
+ content?: never;
32
+ };
33
+ };
34
+ };
35
+ readonly put?: never;
36
+ readonly post?: never;
37
+ readonly delete?: never;
38
+ readonly options?: never;
39
+ readonly head?: never;
40
+ readonly patch?: never;
41
+ readonly trace?: never;
42
+ };
43
+ readonly "/login": {
44
+ readonly parameters: {
45
+ readonly query?: never;
46
+ readonly header?: never;
47
+ readonly path?: never;
48
+ readonly cookie?: never;
49
+ };
50
+ readonly get?: never;
51
+ readonly put?: never;
52
+ /**
53
+ * Login to the server
54
+ * @description Login to the server and get identification.
55
+ */
56
+ readonly post: {
57
+ readonly parameters: {
58
+ readonly query?: never;
59
+ readonly header?: never;
60
+ readonly path?: never;
61
+ readonly cookie?: never;
62
+ };
63
+ readonly requestBody: {
64
+ readonly content: {
65
+ readonly "application/json": {
66
+ readonly username?: string;
67
+ readonly password?: string;
68
+ readonly appId?: string;
69
+ };
70
+ };
71
+ };
72
+ readonly responses: {
73
+ /** @description Successful login */
74
+ readonly 200: {
75
+ headers: {
76
+ readonly [name: string]: unknown;
77
+ };
78
+ content: {
79
+ readonly "application/json": {
80
+ readonly identification?: Record<string, never>;
81
+ };
82
+ };
83
+ };
84
+ };
85
+ };
86
+ readonly delete?: never;
87
+ readonly options?: never;
88
+ readonly head?: never;
89
+ readonly patch?: never;
90
+ readonly trace?: never;
91
+ };
92
+ readonly "/books": {
93
+ readonly parameters: {
94
+ readonly query?: never;
95
+ readonly header?: never;
96
+ readonly path?: never;
97
+ readonly cookie?: never;
98
+ };
99
+ /**
100
+ * List all books
101
+ * @description Returns a list of all available books in the collection.
102
+ */
103
+ readonly get: {
104
+ readonly parameters: {
105
+ readonly query?: never;
106
+ readonly header?: never;
107
+ readonly path?: never;
108
+ readonly cookie?: never;
109
+ };
110
+ readonly requestBody?: never;
111
+ readonly responses: {
112
+ /** @description A list of books. */
113
+ readonly 200: {
114
+ headers: {
115
+ readonly [name: string]: unknown;
116
+ };
117
+ content: {
118
+ readonly "application/json": readonly string[];
119
+ };
120
+ };
121
+ };
122
+ };
123
+ readonly put?: never;
124
+ readonly post?: never;
125
+ readonly delete?: never;
126
+ readonly options?: never;
127
+ readonly head?: never;
128
+ readonly patch?: never;
129
+ readonly trace?: never;
130
+ };
131
+ readonly [path: `/books/${string}`]: {
132
+ readonly parameters: {
133
+ readonly query?: never;
134
+ readonly header?: never;
135
+ readonly path?: never;
136
+ readonly cookie?: never;
137
+ };
138
+ /**
139
+ * Get book content
140
+ * @description Returns the content of a specific book.
141
+ */
142
+ readonly get: {
143
+ readonly parameters: {
144
+ readonly query?: never;
145
+ readonly header?: never;
146
+ readonly path: {
147
+ /** @description The ID of the book to retrieve. */
148
+ readonly bookId: string;
149
+ };
150
+ readonly cookie?: never;
151
+ };
152
+ readonly requestBody?: never;
153
+ readonly responses: {
154
+ /** @description The content of the book. */
155
+ readonly 200: {
156
+ headers: {
157
+ readonly [name: string]: unknown;
158
+ };
159
+ content: {
160
+ readonly "text/markdown": string;
161
+ };
162
+ };
163
+ /** @description Book not found. */
164
+ readonly 404: {
165
+ headers: {
166
+ readonly [name: string]: unknown;
167
+ };
168
+ content?: never;
169
+ };
170
+ };
171
+ };
172
+ readonly put?: never;
173
+ readonly post?: never;
174
+ readonly delete?: never;
175
+ readonly options?: never;
176
+ readonly head?: never;
177
+ readonly patch?: never;
178
+ readonly trace?: never;
179
+ };
180
+ readonly "/executions": {
181
+ readonly parameters: {
182
+ readonly query?: never;
183
+ readonly header?: never;
184
+ readonly path?: never;
185
+ readonly cookie?: never;
186
+ };
187
+ /**
188
+ * List all executions
189
+ * @description Returns a list of all running execution tasks.
190
+ */
191
+ readonly get: {
192
+ readonly parameters: {
193
+ readonly query?: never;
194
+ readonly header?: never;
195
+ readonly path?: never;
196
+ readonly cookie?: never;
197
+ };
198
+ readonly requestBody?: never;
199
+ readonly responses: {
200
+ /** @description A list of execution tasks. */
201
+ readonly 200: {
202
+ headers: {
203
+ readonly [name: string]: unknown;
204
+ };
205
+ content: {
206
+ readonly "application/json": readonly Record<string, never>[];
207
+ };
208
+ };
209
+ };
210
+ };
211
+ readonly put?: never;
212
+ readonly post?: never;
213
+ readonly delete?: never;
214
+ readonly options?: never;
215
+ readonly head?: never;
216
+ readonly patch?: never;
217
+ readonly trace?: never;
218
+ };
219
+ readonly "/executions/new": {
220
+ readonly parameters: {
221
+ readonly query?: never;
222
+ readonly header?: never;
223
+ readonly path?: never;
224
+ readonly cookie?: never;
225
+ };
226
+ readonly get?: never;
227
+ readonly put?: never;
228
+ /**
229
+ * Start a new execution
230
+ * @description Starts a new execution task for a given pipeline.
231
+ */
232
+ readonly post: {
233
+ readonly parameters: {
234
+ readonly query?: never;
235
+ readonly header?: never;
236
+ readonly path?: never;
237
+ readonly cookie?: never;
238
+ };
239
+ readonly requestBody: {
240
+ readonly content: {
241
+ readonly "application/json": {
242
+ readonly pipelineUrl?: string;
243
+ readonly inputParameters?: Record<string, never>;
244
+ readonly identification?: Record<string, never>;
245
+ };
246
+ };
247
+ };
248
+ readonly responses: {
249
+ /** @description The newly created execution task. */
250
+ readonly 200: {
251
+ headers: {
252
+ readonly [name: string]: unknown;
253
+ };
254
+ content: {
255
+ readonly "application/json": Record<string, never>;
256
+ };
257
+ };
258
+ /** @description Invalid input. */
259
+ readonly 400: {
260
+ headers: {
261
+ readonly [name: string]: unknown;
262
+ };
263
+ content?: never;
264
+ };
265
+ };
266
+ };
267
+ readonly delete?: never;
268
+ readonly options?: never;
269
+ readonly head?: never;
270
+ readonly patch?: never;
271
+ readonly trace?: never;
272
+ };
273
+ };
274
+ export type webhooks = Record<string, never>;
275
+ export type components = {
276
+ schemas: never;
277
+ responses: never;
278
+ parameters: never;
279
+ requestBodies: never;
280
+ headers: never;
281
+ pathItems: never;
282
+ };
283
+ export type $defs = Record<string, never>;
284
+ export type operations = Record<string, never>;
@@ -0,0 +1,187 @@
1
+ /**
2
+ * @private !!!! Decide how to expose this
3
+ */
4
+ export declare const openapiJson: {
5
+ openapi: string;
6
+ info: {
7
+ title: string;
8
+ version: string;
9
+ description: string;
10
+ };
11
+ paths: {
12
+ '/': {
13
+ get: {
14
+ summary: string;
15
+ description: string;
16
+ responses: {
17
+ '200': {
18
+ description: string;
19
+ };
20
+ };
21
+ };
22
+ };
23
+ '/login': {
24
+ post: {
25
+ summary: string;
26
+ description: string;
27
+ requestBody: {
28
+ required: boolean;
29
+ content: {
30
+ 'application/json': {
31
+ schema: {
32
+ type: string;
33
+ properties: {
34
+ username: {
35
+ type: string;
36
+ };
37
+ password: {
38
+ type: string;
39
+ };
40
+ appId: {
41
+ type: string;
42
+ };
43
+ };
44
+ };
45
+ };
46
+ };
47
+ };
48
+ responses: {
49
+ '200': {
50
+ description: string;
51
+ content: {
52
+ 'application/json': {
53
+ schema: {
54
+ type: string;
55
+ properties: {
56
+ identification: {
57
+ type: string;
58
+ };
59
+ };
60
+ };
61
+ };
62
+ };
63
+ };
64
+ };
65
+ };
66
+ };
67
+ '/books': {
68
+ get: {
69
+ summary: string;
70
+ description: string;
71
+ responses: {
72
+ '200': {
73
+ description: string;
74
+ content: {
75
+ 'application/json': {
76
+ schema: {
77
+ type: string;
78
+ items: {
79
+ type: string;
80
+ };
81
+ };
82
+ };
83
+ };
84
+ };
85
+ };
86
+ };
87
+ };
88
+ '/books/{bookId}': {
89
+ get: {
90
+ summary: string;
91
+ description: string;
92
+ parameters: {
93
+ in: string;
94
+ name: string;
95
+ required: boolean;
96
+ schema: {
97
+ type: string;
98
+ };
99
+ description: string;
100
+ }[];
101
+ responses: {
102
+ '200': {
103
+ description: string;
104
+ content: {
105
+ 'text/markdown': {
106
+ schema: {
107
+ type: string;
108
+ };
109
+ };
110
+ };
111
+ };
112
+ '404': {
113
+ description: string;
114
+ };
115
+ };
116
+ };
117
+ };
118
+ '/executions': {
119
+ get: {
120
+ summary: string;
121
+ description: string;
122
+ responses: {
123
+ '200': {
124
+ description: string;
125
+ content: {
126
+ 'application/json': {
127
+ schema: {
128
+ type: string;
129
+ items: {
130
+ type: string;
131
+ };
132
+ };
133
+ };
134
+ };
135
+ };
136
+ };
137
+ };
138
+ };
139
+ '/executions/new': {
140
+ post: {
141
+ summary: string;
142
+ description: string;
143
+ requestBody: {
144
+ required: boolean;
145
+ content: {
146
+ 'application/json': {
147
+ schema: {
148
+ type: string;
149
+ properties: {
150
+ pipelineUrl: {
151
+ type: string;
152
+ };
153
+ inputParameters: {
154
+ type: string;
155
+ };
156
+ identification: {
157
+ type: string;
158
+ };
159
+ };
160
+ };
161
+ };
162
+ };
163
+ };
164
+ responses: {
165
+ '200': {
166
+ description: string;
167
+ content: {
168
+ 'application/json': {
169
+ schema: {
170
+ type: string;
171
+ };
172
+ };
173
+ };
174
+ };
175
+ '400': {
176
+ description: string;
177
+ };
178
+ };
179
+ };
180
+ };
181
+ };
182
+ components: {};
183
+ tags: never[];
184
+ };
185
+ /**
186
+ * Note: [💞] Ignore a discrepancy between file name and entity name
187
+ */
@@ -1,4 +1,5 @@
1
1
  import type { LlmToolsConfiguration } from '../../../llm-providers/_common/register/LlmToolsConfiguration';
2
+ import type { string_ip_address } from '../../../types/typeAliases';
2
3
  import type { string_user_id } from '../../../types/typeAliases';
3
4
  import type { ApplicationRemoteServerClientOptions } from '../../types/RemoteServerOptions';
4
5
  /**
@@ -7,7 +8,12 @@ import type { ApplicationRemoteServerClientOptions } from '../../types/RemoteSer
7
8
  * @public exported from `@promptbook/remote-server`
8
9
  * @public exported from `@promptbook/remote-client`
9
10
  */
10
- export type Identification<TCustomOptions> = ApplicationModeIdentification<TCustomOptions> | AnonymousModeIdentification;
11
+ export type Identification<TCustomOptions> = (ApplicationModeIdentification<TCustomOptions> | AnonymousModeIdentification) & {
12
+ /**
13
+ * Identifier of the IP address of the client
14
+ */
15
+ readonly ipAddress?: string_ip_address;
16
+ };
11
17
  /**
12
18
  * Application mode is situation when you run known and well-defined books with your own api keys
13
19
  *
@@ -0,0 +1,11 @@
1
+ import type { string_promptbook_token } from '../../../types/typeAliases';
2
+ import type { really_unknown } from '../../../utils/organization/really_unknown';
3
+ import type { ApplicationModeIdentification } from './Identification';
4
+ /**
5
+ * Convert identification to Promptbook token
6
+ *
7
+ * @param identification
8
+ *
9
+ * @public exported from `@promptbook/core`
10
+ */
11
+ export declare function identificationToPromptbookToken(identification: ApplicationModeIdentification<really_unknown>): string_promptbook_token;
@@ -0,0 +1,10 @@
1
+ import type { string_promptbook_token } from '../../../types/typeAliases';
2
+ import type { ApplicationModeIdentification } from './Identification';
3
+ /**
4
+ * Convert Promptbook token to identification
5
+ *
6
+ * @param promptbookToken
7
+ *
8
+ * @public exported from `@promptbook/core`
9
+ */
10
+ export declare function promptbookTokenToIdentification(promptbookToken: string_promptbook_token): ApplicationModeIdentification<undefined>;
@@ -11,8 +11,7 @@ import type { RemoteServerOptions } from './types/RemoteServerOptions';
11
11
  */
12
12
  export declare function startRemoteServer<TCustomOptions = undefined>(options: RemoteServerOptions<TCustomOptions>): RemoteServer;
13
13
  /**
14
- * TODO: !! Add CORS and security - probbably via `helmet`
15
- * TODO: [👩🏾‍🤝‍🧑🏾] Allow to pass custom fetch function here - PromptbookFetch
14
+ * TODO: [🌡] Add CORS and security - probbably via `helmet`
16
15
  * TODO: Split this file into multiple functions - handler for each request
17
16
  * TODO: Maybe use `$exportJson`
18
17
  * TODO: [🧠][🛍] Maybe not `isAnonymous: boolean` BUT `mode: 'ANONYMOUS'|'COLLECTION'`
@@ -3,12 +3,14 @@ import type { Promisable } from 'type-fest';
3
3
  import type { PipelineCollection } from '../../collection/PipelineCollection';
4
4
  import { AuthenticationError } from '../../errors/AuthenticationError';
5
5
  import type { CommonToolsOptions } from '../../execution/CommonToolsOptions';
6
+ import type { ExecutionTools } from '../../execution/ExecutionTools';
6
7
  import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
7
8
  import type { string_app_id } from '../../types/typeAliases';
8
9
  import type { string_email } from '../../types/typeAliases';
9
10
  import type { string_password } from '../../types/typeAliases';
10
- import type { string_uri } from '../../types/typeAliases';
11
+ import type { string_token } from '../../types/typeAliases';
11
12
  import type { string_user_id } from '../../types/typeAliases';
13
+ import type { ApplicationModeIdentification } from '../socket-types/_subtypes/Identification';
12
14
  import type { Identification } from '../socket-types/_subtypes/Identification';
13
15
  /**
14
16
  * @@@
@@ -29,14 +31,18 @@ export type RemoteServerOptions<TCustomOptions> = CommonToolsOptions & {
29
31
  */
30
32
  readonly port: number;
31
33
  /**
32
- * Root path of the server
34
+ * Creates execution tools the client
33
35
  *
34
- * Note: This is useful when you reverse proxy the server without changing the path
36
+ * This is relevant also in anonymous mode in oposition to `createLlmExecutionTools`
35
37
  *
36
- * @default '/'
37
- * @example '/api/promptbook/'
38
- */
39
- readonly rootPath?: string_uri;
38
+ * Note: You can provide only some tools and leave the rest to the default ones also llm tools are created by `createLlmExecutionTools`
39
+ * Note: This is useful when you want to provide some custom restrictions for example:
40
+ * - Limit access to certain websites for some users
41
+ * - Bind user-interface tools to email agent
42
+ * - Allow / block script execution
43
+ * - And many more
44
+ */
45
+ createExecutionTools?(options: Identification<TCustomOptions>): Promisable<Partial<Omit<ExecutionTools, 'llm'>>>;
40
46
  } & ((AnonymousRemoteServerOptions & {
41
47
  readonly isApplicationModeAllowed?: false;
42
48
  }) | ({
@@ -74,7 +80,7 @@ export type ApplicationRemoteServerOptions<TCustomOptions> = {
74
80
  /**
75
81
  * Creates llm execution tools for each client
76
82
  */
77
- createLlmExecutionTools(options: ApplicationRemoteServerClientOptions<TCustomOptions>): Promisable<LlmExecutionTools>;
83
+ createLlmExecutionTools(options: ApplicationModeIdentification<TCustomOptions>): Promisable<LlmExecutionTools>;
78
84
  };
79
85
  export type ApplicationRemoteServerClientOptions<TCustomOptions> = {
80
86
  /**
@@ -96,7 +102,7 @@ export type ApplicationRemoteServerClientOptions<TCustomOptions> = {
96
102
  *
97
103
  * Note: This is passed for example to `createLlmExecutionTools`
98
104
  */
99
- readonly userToken?: string_user_id;
105
+ readonly userToken?: string_token;
100
106
  /**
101
107
  * Additional arbitrary options to identify the client or to pass custom metadata
102
108
  */
@@ -0,0 +1,40 @@
1
+ import type { PromptbookStorage } from '../_common/PromptbookStorage';
2
+ /**
3
+ * Stores data in .env variables
4
+ *
5
+ * Note: `$` is used to indicate that this function is not a pure function - it uses filesystem to access `.env` file and also writes to `process.env`
6
+ *
7
+ * @private within the repository - for CLI utils
8
+ */
9
+ export declare class $EnvStorage<TItem> implements PromptbookStorage<TItem> {
10
+ private envFilename;
11
+ private $provideOrCreateEnvFile;
12
+ private transformKey;
13
+ /**
14
+ * Returns the number of key/value pairs currently present in the list associated with the object.
15
+ */
16
+ get length(): number;
17
+ /**
18
+ * Empties the list associated with the object of all key/value pairs, if there are any.
19
+ */
20
+ clear(): void;
21
+ /**
22
+ * Returns the current value associated with the given key, or null if the given key does not exist in the list associated with the object.
23
+ */
24
+ getItem(key: string): Promise<TItem | null>;
25
+ /**
26
+ * Returns the name of the nth key in the list, or null if n is greater than or equal to the number of key/value pairs in the object.
27
+ */
28
+ key(index: number): string | null;
29
+ /**
30
+ * Sets the value of the pair identified by key to value, creating a new key/value pair if none existed for key previously.
31
+ */
32
+ setItem(key: string, value: TItem): Promise<void>;
33
+ /**
34
+ * Removes the key/value pair with the given key from the list associated with the object, if a key/value pair with the given key exists.
35
+ */
36
+ removeItem(key: string): void;
37
+ }
38
+ /**
39
+ * TODO: Write file more securely - ensure that there can be no accidental overwriting of existing variables and other content
40
+ */
@@ -325,6 +325,12 @@ export type string_css_selector = string;
325
325
  * For example `"https://collboard.com/9SeSQTupmQHwuSrLi"`
326
326
  */
327
327
  export type string_url = string;
328
+ /**
329
+ * Semantic helper
330
+ *
331
+ * For example `"https://s1.ptbk.io/promptbook"`
332
+ */
333
+ export type string_promptbook_server_url = string;
328
334
  /**
329
335
  * Semantic helper
330
336
  *
@@ -408,6 +414,13 @@ export type string_host = string;
408
414
  * Semantic helper
409
415
  */
410
416
  export type string_protocol = 'http:' | 'https:';
417
+ /**
418
+ * Semantic helper
419
+ *
420
+ * For example `"192.168.1.1"` (IPv4)
421
+ * For example `"2001:0db8:85a3:0000:0000:8a2e:0370:7334"` (IPv6)
422
+ */
423
+ export type string_ip_address = string;
411
424
  /**
412
425
  * Semantic helper
413
426
  *
@@ -521,6 +534,13 @@ export type string_person_profile = string;
521
534
  * For example `"MIT"`
522
535
  */
523
536
  export type string_license = string;
537
+ /**
538
+ * Semantic helper
539
+ *
540
+ * For example `"Pavol Hejný <pavol@ptbk.io> (https://www.pavolhejny.com/)"`
541
+ * For example `"AI Web, LLC <legal@ptbk.io> (https://www.ptbk.io/)"`
542
+ */
543
+ export type string_legal_entity = string | string_person_profile | string_title;
524
544
  /**
525
545
  * Semantic helper for attributes
526
546
  *
@@ -570,6 +590,12 @@ export type string_postprocessing_function_name = string;
570
590
  export type id = string | number;
571
591
  export type task_id = string;
572
592
  export type string_token = string;
593
+ /**
594
+ * Semantic helper
595
+ *
596
+ * Made by `identificationToPromptbookToken` exported from `@promptbook/core`
597
+ */
598
+ export type string_promptbook_token = string_token;
573
599
  export type string_license_token = string_token;
574
600
  export type string_password = string;
575
601
  export type string_ssh_key = string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/types",
3
- "version": "0.89.0-9",
3
+ "version": "0.89.0",
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,
@@ -43,8 +43,12 @@
43
43
  "url": "https://github.com/webgptorg/promptbook/issues"
44
44
  },
45
45
  "homepage": "https://ptbk.io/",
46
+ "engines": {
47
+ "node": ">=16.0.0",
48
+ "npm": ">=8.0.0"
49
+ },
46
50
  "typings": "./esm/typings/src/_packages/types.index.d.ts",
47
51
  "peerDependencies": {
48
- "@promptbook/core": "0.89.0-9"
52
+ "@promptbook/core": "0.89.0"
49
53
  }
50
54
  }
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env ts-node
2
- /**
3
- * Note: [🔺] Purpose of this file is to test the CLI in development environment
4
- */
5
- export {};