@promptbook/editable 0.92.0-26 → 0.92.0-27

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.
@@ -52,7 +52,7 @@ export declare const FORMFACTOR_DEFINITIONS: readonly [{
52
52
  };
53
53
  }, {
54
54
  readonly name: "TRANSLATOR";
55
- readonly description: "@@@";
55
+ readonly description: "A text transformation system that converts input content into different forms,\n including language translations, paraphrasing, style conversions, and tone adjustments.\n This form factor takes one input and produces one transformed output.";
56
56
  readonly documentationUrl: "https://github.com/webgptorg/promptbook/discussions/175";
57
57
  readonly pipelineInterface: {
58
58
  readonly inputParameters: readonly [{
@@ -89,7 +89,7 @@ export declare const FORMFACTOR_DEFINITIONS: readonly [{
89
89
  };
90
90
  }, {
91
91
  readonly name: "EXPERIMENTAL_MATCHER";
92
- readonly description: "@@@";
92
+ readonly description: "An evaluation system that determines whether content meets specific criteria or patterns.\n Used for content validation, quality assessment, and intelligent filtering tasks. Currently in experimental phase.";
93
93
  readonly documentationUrl: "https://github.com/webgptorg/promptbook/discussions/177";
94
94
  readonly pipelineInterface: {
95
95
  readonly inputParameters: readonly [{
@@ -1,11 +1,13 @@
1
1
  /**
2
- * Matcher is form of app that @@@
2
+ * Matcher is form of app that evaluates (spreadsheet) content against defined criteria or patterns,
3
+ * determining if it matches or meets specific requirements. Used for classification,
4
+ * validation, filtering, and quality assessment of inputs.
3
5
  *
4
6
  * @public exported from `@promptbook/core`
5
7
  */
6
8
  export declare const MatcherFormfactorDefinition: {
7
9
  readonly name: "EXPERIMENTAL_MATCHER";
8
- readonly description: "@@@";
10
+ readonly description: "An evaluation system that determines whether content meets specific criteria or patterns.\n Used for content validation, quality assessment, and intelligent filtering tasks. Currently in experimental phase.";
9
11
  readonly documentationUrl: "https://github.com/webgptorg/promptbook/discussions/177";
10
12
  readonly pipelineInterface: {
11
13
  readonly inputParameters: readonly [{
@@ -1,11 +1,12 @@
1
1
  /**
2
- * Translator is form of app that @@@
2
+ * Translator is form of app that transforms input text from one form to another,
3
+ * such as language translation, style conversion, tone modification, or other text transformations.
3
4
  *
4
5
  * @public exported from `@promptbook/core`
5
6
  */
6
7
  export declare const TranslatorFormfactorDefinition: {
7
8
  readonly name: "TRANSLATOR";
8
- readonly description: "@@@";
9
+ readonly description: "A text transformation system that converts input content into different forms,\n including language translations, paraphrasing, style conversions, and tone adjustments.\n This form factor takes one input and produces one transformed output.";
9
10
  readonly documentationUrl: "https://github.com/webgptorg/promptbook/discussions/175";
10
11
  readonly pipelineInterface: {
11
12
  readonly inputParameters: readonly [{
@@ -3,7 +3,8 @@ import type { LlmExecutionToolsWithTotalUsage } from '../utils/count-total-usage
3
3
  import type { CreateLlmToolsFromConfigurationOptions } from './createLlmToolsFromConfiguration';
4
4
  type GetLlmToolsForTestingAndScriptsAndPlaygroundOptions = CreateLlmToolsFromConfigurationOptions & {
5
5
  /**
6
- * @@@
6
+ * Flag indicating whether the cache should be reloaded or reused
7
+ * When set to true, the existing cache will not be used but thinks will be still saved to the cache
7
8
  *
8
9
  * @default false
9
10
  */
@@ -22,5 +23,5 @@ export {};
22
23
  * Note: [⚪] This should never be in any released package
23
24
  * TODO: [👷‍♂️] @@@ Manual about construction of llmTools
24
25
  * TODO: This should be maybe not under `_common` but under `utils-internal` / `utils/internal`
25
- * TODO: [®] DRY Register logic
26
- */
26
+ * TODO: [®] DRY Register logi
27
+ */
@@ -1,11 +1,14 @@
1
1
  import { MultipleLlmExecutionTools } from '../../multiple/MultipleLlmExecutionTools';
2
2
  import type { CreateLlmToolsFromConfigurationOptions } from './createLlmToolsFromConfiguration';
3
3
  /**
4
- * @@@
4
+ * Automatically configures LLM tools from environment variables in Node.js
5
+ *
6
+ * This utility function detects available LLM providers based on environment variables
7
+ * and creates properly configured LLM execution tools for each detected provider.
5
8
  *
6
9
  * Note: This function is not cached, every call creates new instance of `MultipleLlmExecutionTools`
7
10
  *
8
- * @@@ .env
11
+ * Supports environment variables from .env files when dotenv is configured
9
12
  * Note: `$` is used to indicate that this function is not a pure function - it uses filesystem to access `.env` file
10
13
  *
11
14
  * It looks for environment variables:
@@ -13,12 +16,22 @@ import type { CreateLlmToolsFromConfigurationOptions } from './createLlmToolsFro
13
16
  * - `process.env.ANTHROPIC_CLAUDE_API_KEY`
14
17
  * - ...
15
18
  *
16
- * @returns @@@
19
+ * @param options Configuration options for the LLM tools
20
+ * @returns A unified interface containing all detected and configured LLM tools
17
21
  * @public exported from `@promptbook/node`
18
22
  */
19
23
  export declare function $provideLlmToolsFromEnv(options?: CreateLlmToolsFromConfigurationOptions): Promise<MultipleLlmExecutionTools>;
20
24
  /**
21
- * TODO: @@@ write `$provideLlmToolsFromEnv` vs `$provideLlmToolsConfigurationFromEnv` vs `createLlmToolsFromConfiguration`
25
+ * TODO: The architecture for LLM tools configuration consists of three key functions:
26
+ * 1. `$provideLlmToolsFromEnv` - High-level function that detects available providers from env vars and returns ready-to-use LLM tools
27
+ * 2. `$provideLlmToolsConfigurationFromEnv` - Middle layer that extracts configuration objects from environment variables
28
+ * 3. `createLlmToolsFromConfiguration` - Low-level function that instantiates LLM tools from explicit configuration
29
+ *
30
+ * This layered approach allows flexibility in how tools are configured:
31
+ * - Use $provideLlmToolsFromEnv for automatic detection and setup in Node.js environments
32
+ * - Use $provideLlmToolsConfigurationFromEnv to extract config objects for modification before instantiation
33
+ * - Use createLlmToolsFromConfiguration for explicit control over tool configurations
34
+ *
22
35
  * TODO: [🧠][🍛] Which name is better `$provideLlmToolsFromEnv` or `$provideLlmToolsFromEnvironment`?
23
36
  * TODO: [🧠] Is there some meaningfull way how to test this util
24
37
  * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
@@ -2,17 +2,24 @@ import type { string_title } from '../../../types/typeAliases';
2
2
  import type { Registered } from '../../../utils/$Register';
3
3
  import type { LlmToolsOptions } from './LlmToolsOptions';
4
4
  /**
5
- * @@@
5
+ * Configuration definition for LLM execution tools, containing provider-specific settings
6
+ * that can be passed during runtime to instantiate and configure LLM tools properly.
6
7
  *
7
- * @@@ `LlmToolsMetadata` vs `LlmToolsConfiguration` vs `LlmToolsOptions` (vs `Registered`)
8
+ * The Promptbook LLM tools architecture involves several related types:
9
+ * - `LlmToolsMetadata`: Contains static metadata about the tool, such as name, version, and capabilities
10
+ * - `LlmToolsConfiguration`: Runtime configuration from environment variables or settings
11
+ * - `LlmToolsOptions`: Provider-specific options for instantiating tools
12
+ * - `Registered`: The record of a registered tool in the global registry
8
13
  */
9
14
  export type LlmToolsConfiguration = ReadonlyArray<Registered & {
10
15
  /**
11
- * @@@
16
+ * Human-readable name for this specific provider configuration
17
+ * Used in UI components and logs for identifying this particular configuration
12
18
  */
13
19
  readonly title: string_title;
14
20
  /**
15
- * @@@
21
+ * Provider-specific configuration options used for instantiating and configuring LLM tools
22
+ * Contains values like API keys, model preferences, endpoint URLs, and other settings
16
23
  */
17
24
  readonly options: LlmToolsOptions;
18
25
  }>;
@@ -39,13 +39,19 @@ export declare const MODEL_ORDER: {
39
39
  readonly LOW_TIER: 0;
40
40
  };
41
41
  /**
42
- * @@@
42
+ * Metadata definition for LLM execution tools that provides information about a provider's capabilities,
43
+ * configuration options, and relationships within the registry system.
43
44
  *
44
- * @@@ `LlmToolsMetadata` vs `LlmToolsConfiguration` vs `LlmToolsOptions` (vs `Registered`)
45
+ * The Promptbook LLM tools architecture involves several related types:
46
+ * - `LlmToolsMetadata`: Contains static metadata about the tool, such as name, version, and capabilities
47
+ * - `LlmToolsConfiguration`: Runtime configuration from environment variables or settings
48
+ * - `LlmToolsOptions`: Provider-specific options for instantiating tools
49
+ * - `Registered`: The record of a registered tool in the global registry
45
50
  */
46
51
  export type LlmToolsMetadata = Registered & {
47
52
  /**
48
- * @@@
53
+ * Human-readable display name for the LLM provider
54
+ * Used in UI components and documentation references
49
55
  */
50
56
  readonly title: string_title;
51
57
  /**
@@ -64,11 +70,17 @@ export type LlmToolsMetadata = Registered & {
64
70
  */
65
71
  readonly envVariables: ReadonlyArray<string_name & string_SCREAMING_CASE> | null;
66
72
  /**
67
- * @@@
73
+ * Provides a default configuration template for this LLM provider
74
+ * Used to generate example configurations or as fallback when no specific configuration is provided
75
+ * @returns A standardized configuration object for this LLM provider
68
76
  */
69
77
  getBoilerplateConfiguration(): LlmToolsConfiguration[number];
70
78
  /**
71
- * @@@
79
+ * Creates a provider-specific configuration object from environment variables
80
+ * Used to automatically configure LLM tools based on available environment settings
81
+ *
82
+ * @param env Dictionary of environment variables (key-value pairs)
83
+ * @returns Configuration object for this LLM provider if required variables are present, or null if configuration is not possible
72
84
  */
73
85
  createConfigurationFromEnv(env: Record<string_name, string>): LlmToolsConfiguration[number] | null;
74
86
  };
@@ -5,7 +5,11 @@ import type { TODO_object } from '../../../utils/organization/TODO_object';
5
5
  * This type is used to pass provider-specific options to LLM execution tools.
6
6
  *
7
7
  *
8
- * @@@ `LlmToolsMetadata` vs `LlmToolsConfiguration` vs `LlmToolsOptions` (vs `Registered`)
8
+ * The Promptbook LLM tools architecture involves several related types:
9
+ * - `LlmToolsMetadata`: Contains static metadata about the tool, such as name, version, and capabilities
10
+ * - `LlmToolsConfiguration`: Runtime configuration from environment variables or settings
11
+ * - `LlmToolsOptions`: Provider-specific options for instantiating tools
12
+ * - `Registered`: The record of a registered tool in the global registry
9
13
  */
10
14
  export type LlmToolsOptions = TODO_object;
11
15
  /**
@@ -21,18 +21,27 @@ export type CreateLlmToolsFromConfigurationOptions = {
21
21
  readonly userId?: string_user_id;
22
22
  };
23
23
  /**
24
- * @@@
24
+ * Creates LLM execution tools from provided configuration objects
25
+ *
26
+ * Instantiates and configures LLM tool instances for each configuration entry,
27
+ * combining them into a unified interface via MultipleLlmExecutionTools.
25
28
  *
26
29
  * Note: This function is not cached, every call creates new instance of `MultipleLlmExecutionTools`
27
30
  *
28
- * @returns @@@
31
+ * @param configuration Array of LLM tool configurations to instantiate
32
+ * @param options Additional options for configuring the LLM tools
33
+ * @returns A unified interface combining all successfully instantiated LLM tools
29
34
  * @public exported from `@promptbook/core`
30
35
  */
31
36
  export declare function createLlmToolsFromConfiguration(configuration: LlmToolsConfiguration, options?: CreateLlmToolsFromConfigurationOptions): MultipleLlmExecutionTools;
32
37
  /**
33
38
  * TODO: [🎌] Together with `createLlmToolsFromConfiguration` + 'EXECUTION_TOOLS_CLASSES' gets to `@promptbook/core` ALL model providers, make this more efficient
34
39
  * TODO: [🧠][🎌] Dynamically install required providers
35
- * TODO: @@@ write discussion about this - wizzard
40
+ * TODO: We should implement an interactive configuration wizard that would:
41
+ * 1. Detect which LLM providers are available in the environment
42
+ * 2. Guide users through required configuration settings for each provider
43
+ * 3. Allow testing connections before completing setup
44
+ * 4. Generate appropriate configuration code for application integration
36
45
  * TODO: [🧠][🍛] Which name is better `createLlmToolsFromConfig` or `createLlmToolsFromConfiguration`?
37
46
  * TODO: [🧠] Is there some meaningfull way how to test this util
38
47
  * TODO: This should be maybe not under `_common` but under `utils`
@@ -1,6 +1,7 @@
1
1
  import type { PromptResult } from '../../../../execution/PromptResult';
2
2
  import type { Prompt } from '../../../../types/Prompt';
3
3
  import type { string_date_iso8601 } from '../../../../types/typeAliases';
4
+ import type { string_semantic_version } from '../../../../types/typeAliases';
4
5
  import type { string_promptbook_version } from '../../../../version';
5
6
  /**
6
7
  * Represents a single item stored in the LLM cache.
@@ -14,6 +15,10 @@ export type CacheItem = {
14
15
  * The version of the Promptbook library used when this cache item was created.
15
16
  */
16
17
  promptbookVersion?: string_promptbook_version;
18
+ /**
19
+ * The version of the Book language used when this cache item was created.
20
+ */
21
+ bookVersion?: string_semantic_version;
17
22
  /**
18
23
  * The prompt that was sent to the LLM.
19
24
  */
@@ -15,7 +15,7 @@ export declare const BOOK_LANGUAGE_VERSION: string_semantic_version;
15
15
  export declare const PROMPTBOOK_ENGINE_VERSION: string_promptbook_version;
16
16
  /**
17
17
  * Represents the version string of the Promptbook engine.
18
- * It follows semantic versioning (e.g., `0.92.0-25`).
18
+ * It follows semantic versioning (e.g., `0.92.0-26`).
19
19
  *
20
20
  * @generated
21
21
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/editable",
3
- "version": "0.92.0-26",
3
+ "version": "0.92.0-27",
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,
@@ -51,7 +51,7 @@
51
51
  "module": "./esm/index.es.js",
52
52
  "typings": "./esm/typings/src/_packages/editable.index.d.ts",
53
53
  "peerDependencies": {
54
- "@promptbook/core": "0.92.0-26"
54
+ "@promptbook/core": "0.92.0-27"
55
55
  },
56
56
  "dependencies": {
57
57
  "crypto-js": "4.2.0",
package/umd/index.umd.js CHANGED
@@ -23,7 +23,7 @@
23
23
  * @generated
24
24
  * @see https://github.com/webgptorg/promptbook
25
25
  */
26
- const PROMPTBOOK_ENGINE_VERSION = '0.92.0-26';
26
+ const PROMPTBOOK_ENGINE_VERSION = '0.92.0-27';
27
27
  /**
28
28
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
29
29
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -193,7 +193,7 @@
193
193
  /**
194
194
  * Parses the boilerplate command
195
195
  *
196
- * Note: @@@ This command is used as boilerplate for new commands - it should NOT be used in any `.book` file
196
+ * Note: @@ This command is used as boilerplate for new commands - it should NOT be used in any `.book` file
197
197
  *
198
198
  * @see `documentationUrl` for more details
199
199
  * @private within the commands folder
@@ -2194,17 +2194,20 @@
2194
2194
  };
2195
2195
 
2196
2196
  /**
2197
- * Matcher is form of app that @@@
2197
+ * Matcher is form of app that evaluates (spreadsheet) content against defined criteria or patterns,
2198
+ * determining if it matches or meets specific requirements. Used for classification,
2199
+ * validation, filtering, and quality assessment of inputs.
2198
2200
  *
2199
2201
  * @public exported from `@promptbook/core`
2200
2202
  */
2201
2203
  const MatcherFormfactorDefinition = {
2202
2204
  name: 'EXPERIMENTAL_MATCHER',
2203
- description: `@@@`,
2205
+ description: `An evaluation system that determines whether content meets specific criteria or patterns.
2206
+ Used for content validation, quality assessment, and intelligent filtering tasks. Currently in experimental phase.`,
2204
2207
  documentationUrl: `https://github.com/webgptorg/promptbook/discussions/177`,
2205
2208
  pipelineInterface: {
2206
2209
  inputParameters: [
2207
- /* @@@ */
2210
+ /* Input parameters for content to be matched and criteria to match against */
2208
2211
  {
2209
2212
  name: 'nonce',
2210
2213
  description: 'Just to prevent EXPERIMENTAL_MATCHER to be set as implicit formfactor',
@@ -2213,7 +2216,7 @@
2213
2216
  },
2214
2217
  ],
2215
2218
  outputParameters: [
2216
- /* @@@ */
2219
+ /* Output parameters containing match results, confidence scores, and relevant metadata */
2217
2220
  ],
2218
2221
  },
2219
2222
  };
@@ -2250,13 +2253,16 @@
2250
2253
  };
2251
2254
 
2252
2255
  /**
2253
- * Translator is form of app that @@@
2256
+ * Translator is form of app that transforms input text from one form to another,
2257
+ * such as language translation, style conversion, tone modification, or other text transformations.
2254
2258
  *
2255
2259
  * @public exported from `@promptbook/core`
2256
2260
  */
2257
2261
  const TranslatorFormfactorDefinition = {
2258
2262
  name: 'TRANSLATOR',
2259
- description: `@@@`,
2263
+ description: `A text transformation system that converts input content into different forms,
2264
+ including language translations, paraphrasing, style conversions, and tone adjustments.
2265
+ This form factor takes one input and produces one transformed output.`,
2260
2266
  documentationUrl: `https://github.com/webgptorg/promptbook/discussions/175`,
2261
2267
  pipelineInterface: {
2262
2268
  inputParameters: [
@@ -3885,7 +3891,10 @@
3885
3891
  `));
3886
3892
  }
3887
3893
  /**
3888
- * @@@
3894
+ * Generates a markdown-formatted message listing all supported commands
3895
+ * with their descriptions and documentation links
3896
+ *
3897
+ * @returns A formatted markdown string containing all available commands and their details
3889
3898
  */
3890
3899
  function getSupportedCommandsMessage() {
3891
3900
  return COMMANDS.flatMap(({ name, aliasNames, description, documentationUrl }) =>
@@ -3896,7 +3905,10 @@
3896
3905
  ]).join('\n');
3897
3906
  }
3898
3907
  /**
3899
- * @@@
3908
+ * Attempts to parse a command variant using the provided input parameters
3909
+ *
3910
+ * @param input Object containing command parsing information including raw command text and normalized values
3911
+ * @returns A parsed Command object if successful, or null if the command cannot be parsed
3900
3912
  */
3901
3913
  function parseCommandVariant(input) {
3902
3914
  const { commandNameRaw, usagePlace, normalized, args, raw, rawArgs } = input;