@promptbook/node 0.86.22 → 0.86.30

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.
@@ -2,7 +2,6 @@ import { BOOK_LANGUAGE_VERSION, PROMPTBOOK_ENGINE_VERSION } from '../version';
2
2
  import { VALUE_STRINGS } from '../config';
3
3
  import { SMALL_NUMBER } from '../config';
4
4
  import { renderPromptbookMermaid } from '../conversion/prettify/renderPipelineMermaidOptions';
5
- import { extractVariablesFromScript } from '../conversion/utils/extractVariablesFromScript';
6
5
  import { deserializeError } from '../errors/utils/deserializeError';
7
6
  import { serializeError } from '../errors/utils/serializeError';
8
7
  import { forEachAsync } from '../execution/utils/forEachAsync';
@@ -84,7 +83,6 @@ export { BOOK_LANGUAGE_VERSION, PROMPTBOOK_ENGINE_VERSION };
84
83
  export { VALUE_STRINGS };
85
84
  export { SMALL_NUMBER };
86
85
  export { renderPromptbookMermaid };
87
- export { extractVariablesFromScript };
88
86
  export { deserializeError };
89
87
  export { serializeError };
90
88
  export { forEachAsync };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/node",
3
- "version": "0.86.22",
3
+ "version": "0.86.30",
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,
@@ -47,7 +47,7 @@
47
47
  "module": "./esm/index.es.js",
48
48
  "typings": "./esm/typings/src/_packages/node.index.d.ts",
49
49
  "peerDependencies": {
50
- "@promptbook/core": "0.86.22"
50
+ "@promptbook/core": "0.86.30"
51
51
  },
52
52
  "dependencies": {
53
53
  "colors": "1.4.0",
package/umd/index.umd.js CHANGED
@@ -46,7 +46,7 @@
46
46
  * @generated
47
47
  * @see https://github.com/webgptorg/promptbook
48
48
  */
49
- const PROMPTBOOK_ENGINE_VERSION = '0.86.22';
49
+ const PROMPTBOOK_ENGINE_VERSION = '0.86.30';
50
50
  /**
51
51
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
52
52
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -2132,142 +2132,6 @@
2132
2132
  }, deepClone(ZERO_USAGE));
2133
2133
  }
2134
2134
 
2135
- /**
2136
- * Extract all used variable names from ginen JavaScript/TypeScript script
2137
- *
2138
- * @param script JavaScript/TypeScript script
2139
- * @returns Set of variable names
2140
- * @throws {ParseError} if the script is invalid
2141
- * @public exported from `@promptbook/utils` <- Note: [👖] This is usable elsewhere than in Promptbook, so keeping in utils
2142
- */
2143
- function extractVariablesFromScript(script) {
2144
- if (script.trim() === '') {
2145
- return new Set();
2146
- }
2147
- const variables = new Set();
2148
- // JS keywords and builtins to exclude
2149
- const exclude = new Set([
2150
- // Keywords
2151
- 'break',
2152
- 'case',
2153
- 'catch',
2154
- 'class',
2155
- 'const',
2156
- 'continue',
2157
- 'debugger',
2158
- 'default',
2159
- 'delete',
2160
- 'do',
2161
- 'else',
2162
- 'export',
2163
- 'extends',
2164
- 'false',
2165
- 'finally',
2166
- 'for',
2167
- 'function',
2168
- 'if',
2169
- 'import',
2170
- 'in',
2171
- 'instanceof',
2172
- 'let',
2173
- 'new',
2174
- 'null',
2175
- 'return',
2176
- 'super',
2177
- 'switch',
2178
- 'this',
2179
- 'throw',
2180
- 'true',
2181
- 'try',
2182
- 'typeof',
2183
- 'var',
2184
- 'void',
2185
- 'while',
2186
- 'with',
2187
- 'yield',
2188
- // Common globals
2189
- 'console',
2190
- 'JSON',
2191
- 'Error',
2192
- // Typescript types
2193
- 'string',
2194
- 'number',
2195
- 'boolean',
2196
- 'object',
2197
- 'symbol',
2198
- // Common methods on built-in objects
2199
- 'test',
2200
- 'match',
2201
- 'exec',
2202
- 'replace',
2203
- 'search',
2204
- 'split',
2205
- ]);
2206
- try {
2207
- // Note: Extract variables from template literals like ${variable}
2208
- const templateRegex = /\$\{([a-zA-Z_$][a-zA-Z0-9_$]*)\}/g;
2209
- let match;
2210
- while ((match = templateRegex.exec(script)) !== null) {
2211
- const varName = match[1];
2212
- if (!exclude.has(varName)) {
2213
- variables.add(varName);
2214
- }
2215
- }
2216
- // Note: Process the script to handle normal variable usage
2217
- const processedScript = script
2218
- .replace(/'(?:\\.|[^'\\])*'/g, "''") // <- Note: Remove string literals
2219
- .replace(/"(?:\\.|[^"\\])*"/g, '""')
2220
- .replace(/`(?:\\.|[^`\\])*`/g, '``')
2221
- .replace(/\/(?:\\.|[^/\\])*\/[gimsuy]*/g, '{}'); // <- Note: Remove regex literals
2222
- // Note: Find identifiers in function arguments
2223
- const funcArgRegex = /\b([a-zA-Z_$][a-zA-Z0-9_$]*)\s*\(/g;
2224
- const funcNames = new Set();
2225
- while ((match = funcArgRegex.exec(processedScript)) !== null) {
2226
- funcNames.add(match[1]);
2227
- }
2228
- // Find variable declarations to exclude them
2229
- const declaredVars = new Set();
2230
- const declRegex = /\b(const|let|var)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\b/g;
2231
- while ((match = declRegex.exec(processedScript)) !== null) {
2232
- declaredVars.add(match[2]);
2233
- }
2234
- // Note: Find identifiers in the script
2235
- const identifierRegex = /\b([a-zA-Z_$][a-zA-Z0-9_$]*)\b/g;
2236
- while ((match = identifierRegex.exec(processedScript)) !== null) {
2237
- const name = match[1];
2238
- // Add if not excluded, not a function name, and not a declared variable
2239
- if (!exclude.has(name) && !funcNames.has(name) && !declaredVars.has(name)) {
2240
- variables.add(name);
2241
- }
2242
- }
2243
- }
2244
- catch (error) {
2245
- if (!(error instanceof Error)) {
2246
- throw error;
2247
- }
2248
- throw new ParseError(spaceTrim__default["default"]((block) => `
2249
- Can not extract variables from the script
2250
- ${block(error.stack || error.message)}
2251
-
2252
- Found variables:
2253
- ${Array.from(variables)
2254
- .map((variableName, i) => `${i + 1}) ${variableName}`)
2255
- .join('\n')}
2256
-
2257
-
2258
- The script:
2259
-
2260
- \`\`\`javascript
2261
- ${block(script)}
2262
- \`\`\`
2263
- `));
2264
- }
2265
- return variables;
2266
- }
2267
- /**
2268
- * TODO: [🔣] Support for multiple languages - python, java,...
2269
- */
2270
-
2271
2135
  /**
2272
2136
  * Parses the task and returns the set of all used parameters
2273
2137
  *
@@ -2277,7 +2141,7 @@
2277
2141
  * @public exported from `@promptbook/core` <- Note: [👖] This utility is so tightly interconnected with the Promptbook that it is not exported as util but in core
2278
2142
  */
2279
2143
  function extractParameterNamesFromTask(task) {
2280
- const { title, description, taskType, content, preparedContent, jokerParameterNames, foreach } = task;
2144
+ const { title, description, /* [🙊] taskType,*/ content, preparedContent, jokerParameterNames, foreach } = task;
2281
2145
  const parameterNames = new Set();
2282
2146
  for (const parameterName of [
2283
2147
  ...extractParameterNames(title),
@@ -2287,11 +2151,14 @@
2287
2151
  ]) {
2288
2152
  parameterNames.add(parameterName);
2289
2153
  }
2154
+ /*/
2155
+ // TODO: [🙊] Fix `extractVariablesFromScript` or delete
2290
2156
  if (taskType === 'SCRIPT_TASK') {
2291
2157
  for (const parameterName of extractVariablesFromScript(content)) {
2292
2158
  parameterNames.add(parameterName);
2293
2159
  }
2294
2160
  }
2161
+ /**/
2295
2162
  for (const jokerName of jokerParameterNames || []) {
2296
2163
  parameterNames.add(jokerName);
2297
2164
  }
@@ -10081,6 +9948,8 @@
10081
9948
  // Note: Custom functions are exposed to the current scope as variables
10082
9949
  `const ${functionName} = customFunctions.${functionName};`)
10083
9950
  .join('\n');
9951
+ script = templateParameters(script, parameters);
9952
+ // <- Note: [🙊]
10084
9953
  const statementToEvaluate = spaceTrim__default["default"]((block) => `
10085
9954
 
10086
9955
  // Build-in functions: