@promptbook/remote-server 0.98.0-3 โ†’ 0.98.0-4

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.
@@ -15,6 +15,7 @@ import { _OpenAiAssistantMetadataRegistration } from '../llm-providers/openai/re
15
15
  import { _OpenAiCompatibleMetadataRegistration } from '../llm-providers/openai/register-configuration';
16
16
  import { _OpenAiRegistration } from '../llm-providers/openai/register-constructor';
17
17
  import { _OpenAiAssistantRegistration } from '../llm-providers/openai/register-constructor';
18
+ import { _OpenAiCompatibleRegistration } from '../llm-providers/openai/register-constructor';
18
19
  import { _BoilerplateScraperRegistration } from '../scrapers/_boilerplate/register-constructor';
19
20
  import { _BoilerplateScraperMetadataRegistration } from '../scrapers/_boilerplate/register-metadata';
20
21
  import { _LegacyDocumentScraperRegistration } from '../scrapers/document-legacy/register-constructor';
@@ -46,6 +47,7 @@ export { _OpenAiAssistantMetadataRegistration };
46
47
  export { _OpenAiCompatibleMetadataRegistration };
47
48
  export { _OpenAiRegistration };
48
49
  export { _OpenAiAssistantRegistration };
50
+ export { _OpenAiCompatibleRegistration };
49
51
  export { _BoilerplateScraperRegistration };
50
52
  export { _BoilerplateScraperMetadataRegistration };
51
53
  export { _LegacyDocumentScraperRegistration };
@@ -11,6 +11,7 @@ import { OpenAiExecutionTools } from '../llm-providers/openai/OpenAiExecutionToo
11
11
  import type { OpenAiExecutionToolsOptions } from '../llm-providers/openai/OpenAiExecutionToolsOptions';
12
12
  import { _OpenAiRegistration } from '../llm-providers/openai/register-constructor';
13
13
  import { _OpenAiAssistantRegistration } from '../llm-providers/openai/register-constructor';
14
+ import { _OpenAiCompatibleRegistration } from '../llm-providers/openai/register-constructor';
14
15
  export { BOOK_LANGUAGE_VERSION, PROMPTBOOK_ENGINE_VERSION };
15
16
  export { createOpenAiAssistantExecutionTools };
16
17
  export { createOpenAiCompatibleExecutionTools };
@@ -24,3 +25,4 @@ export { OpenAiExecutionTools };
24
25
  export type { OpenAiExecutionToolsOptions };
25
26
  export { _OpenAiRegistration };
26
27
  export { _OpenAiAssistantRegistration };
28
+ export { _OpenAiCompatibleRegistration };
@@ -14,6 +14,7 @@ import { _OpenAiAssistantMetadataRegistration } from '../llm-providers/openai/re
14
14
  import { _OpenAiCompatibleMetadataRegistration } from '../llm-providers/openai/register-configuration';
15
15
  import { _OpenAiRegistration } from '../llm-providers/openai/register-constructor';
16
16
  import { _OpenAiAssistantRegistration } from '../llm-providers/openai/register-constructor';
17
+ import { _OpenAiCompatibleRegistration } from '../llm-providers/openai/register-constructor';
17
18
  import { _BoilerplateScraperRegistration } from '../scrapers/_boilerplate/register-constructor';
18
19
  import { _BoilerplateScraperMetadataRegistration } from '../scrapers/_boilerplate/register-metadata';
19
20
  import { _LegacyDocumentScraperRegistration } from '../scrapers/document-legacy/register-constructor';
@@ -45,6 +46,7 @@ export { _OpenAiAssistantMetadataRegistration };
45
46
  export { _OpenAiCompatibleMetadataRegistration };
46
47
  export { _OpenAiRegistration };
47
48
  export { _OpenAiAssistantRegistration };
49
+ export { _OpenAiCompatibleRegistration };
48
50
  export { _BoilerplateScraperRegistration };
49
51
  export { _BoilerplateScraperMetadataRegistration };
50
52
  export { _LegacyDocumentScraperRegistration };
@@ -176,7 +176,7 @@ export declare const DEFAULT_MAX_PARALLEL_COUNT = 5;
176
176
  *
177
177
  * @public exported from `@promptbook/core`
178
178
  */
179
- export declare const DEFAULT_MAX_EXECUTION_ATTEMPTS = 10;
179
+ export declare const DEFAULT_MAX_EXECUTION_ATTEMPTS = 3;
180
180
  /**
181
181
  * The maximum depth to which knowledge sources will be scraped when building a knowledge base.
182
182
  * This prevents infinite recursion and limits resource usage.
@@ -45,4 +45,11 @@ export type $OngoingTaskResult = {
45
45
  * List of errors encountered during script postprocessing or execution.
46
46
  */
47
47
  $scriptPipelineExecutionErrors: Array<Error>;
48
+ /**
49
+ * Array of all failed attempts, storing both the result string and the error for each failure
50
+ */
51
+ $failedResults: Array<{
52
+ result: string | null;
53
+ error: ExpectError;
54
+ }>;
48
55
  };
@@ -19,6 +19,16 @@ export declare const _OpenAiRegistration: Registration;
19
19
  * @public exported from `@promptbook/cli`
20
20
  */
21
21
  export declare const _OpenAiAssistantRegistration: Registration;
22
+ /**
23
+ * Registration of the OpenAI Compatible provider
24
+ *
25
+ * Note: [๐Ÿ] Configurations registrations are done in register-constructor.ts BUT constructor register-constructor.ts
26
+ *
27
+ * @public exported from `@promptbook/openai`
28
+ * @public exported from `@promptbook/wizard`
29
+ * @public exported from `@promptbook/cli`
30
+ */
31
+ export declare const _OpenAiCompatibleRegistration: Registration;
22
32
  /**
23
33
  * Note: OpenAiCompatibleExecutionTools is an abstract class and cannot be registered directly.
24
34
  * It serves as a base class for OpenAiExecutionTools and other compatible implementations.
@@ -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.98.0-2`).
18
+ * It follows semantic versioning (e.g., `0.98.0-3`).
19
19
  *
20
20
  * @generated
21
21
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/remote-server",
3
- "version": "0.98.0-3",
3
+ "version": "0.98.0-4",
4
4
  "description": "Promptbook: Run AI apps in plain human language across multiple models and platforms",
5
5
  "private": false,
6
6
  "sideEffects": false,
@@ -74,7 +74,7 @@
74
74
  "module": "./esm/index.es.js",
75
75
  "typings": "./esm/typings/src/_packages/remote-server.index.d.ts",
76
76
  "peerDependencies": {
77
- "@promptbook/core": "0.98.0-3"
77
+ "@promptbook/core": "0.98.0-4"
78
78
  },
79
79
  "dependencies": {
80
80
  "colors": "1.4.0",
package/umd/index.umd.js CHANGED
@@ -48,7 +48,7 @@
48
48
  * @generated
49
49
  * @see https://github.com/webgptorg/promptbook
50
50
  */
51
- const PROMPTBOOK_ENGINE_VERSION = '0.98.0-3';
51
+ const PROMPTBOOK_ENGINE_VERSION = '0.98.0-4';
52
52
  /**
53
53
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
54
54
  * Note: [๐Ÿ’ž] Ignore a discrepancy between file name and entity name
@@ -188,7 +188,7 @@
188
188
  *
189
189
  * @public exported from `@promptbook/core`
190
190
  */
191
- const DEFAULT_MAX_EXECUTION_ATTEMPTS = 10; // <- TODO: [๐Ÿคนโ€โ™‚๏ธ]
191
+ const DEFAULT_MAX_EXECUTION_ATTEMPTS = 3; // <- TODO: [๐Ÿคนโ€โ™‚๏ธ]
192
192
  // <- TODO: [๐Ÿ•] Make also `BOOKS_DIRNAME_ALTERNATIVES`
193
193
  // TODO: Just `.promptbook` in config, hardcode subfolders like `download-cache` or `execution-cache`
194
194
  /**
@@ -5195,6 +5195,7 @@
5195
5195
  $resultString: null,
5196
5196
  $expectError: null,
5197
5197
  $scriptPipelineExecutionErrors: [],
5198
+ $failedResults: [], // Track all failed attempts
5198
5199
  };
5199
5200
  // TODO: [๐Ÿš] Make arrayable LLMs -> single LLM DRY
5200
5201
  const _llms = arrayableToArray(tools.llm);
@@ -5440,6 +5441,14 @@
5440
5441
  throw error;
5441
5442
  }
5442
5443
  $ongoingTaskResult.$expectError = error;
5444
+ // Store each failed attempt
5445
+ if (!Array.isArray($ongoingTaskResult.$failedResults)) {
5446
+ $ongoingTaskResult.$failedResults = [];
5447
+ }
5448
+ $ongoingTaskResult.$failedResults.push({
5449
+ result: $ongoingTaskResult.$resultString,
5450
+ error: error,
5451
+ });
5443
5452
  }
5444
5453
  finally {
5445
5454
  if (!isJokerAttempt &&
@@ -5462,34 +5471,46 @@
5462
5471
  }
5463
5472
  }
5464
5473
  if ($ongoingTaskResult.$expectError !== null && attempt === maxAttempts - 1) {
5474
+ // Store the current failure before throwing
5475
+ $ongoingTaskResult.$failedResults = $ongoingTaskResult.$failedResults || [];
5476
+ $ongoingTaskResult.$failedResults.push({
5477
+ result: $ongoingTaskResult.$resultString,
5478
+ error: $ongoingTaskResult.$expectError,
5479
+ });
5480
+ // Create a summary of all failures
5481
+ const failuresSummary = $ongoingTaskResult.$failedResults
5482
+ .map((failure, index) => spaceTrim.spaceTrim((block) => {
5483
+ var _a, _b;
5484
+ return `
5485
+ Attempt ${index + 1}:
5486
+ Error ${((_a = failure.error) === null || _a === void 0 ? void 0 : _a.name) || ''}:
5487
+ ${block((_b = failure.error) === null || _b === void 0 ? void 0 : _b.message.split('\n').map((line) => `> ${line}`).join('\n'))}
5488
+
5489
+ Result:
5490
+ ${block(failure.result === null
5491
+ ? 'null'
5492
+ : spaceTrim.spaceTrim(failure.result)
5493
+ .split('\n')
5494
+ .map((line) => `> ${line}`)
5495
+ .join('\n'))}
5496
+ `;
5497
+ }))
5498
+ .join('\n\n---\n\n');
5465
5499
  throw new PipelineExecutionError(spaceTrim.spaceTrim((block) => {
5466
- var _a, _b, _c;
5500
+ var _a;
5467
5501
  return `
5468
5502
  LLM execution failed ${maxExecutionAttempts}x
5469
5503
 
5470
5504
  ${block(pipelineIdentification)}
5471
5505
 
5472
- ---
5473
5506
  The Prompt:
5474
5507
  ${block((((_a = $ongoingTaskResult.$prompt) === null || _a === void 0 ? void 0 : _a.content) || '')
5475
5508
  .split('\n')
5476
5509
  .map((line) => `> ${line}`)
5477
5510
  .join('\n'))}
5478
5511
 
5479
- Last error ${((_b = $ongoingTaskResult.$expectError) === null || _b === void 0 ? void 0 : _b.name) || ''}:
5480
- ${block((((_c = $ongoingTaskResult.$expectError) === null || _c === void 0 ? void 0 : _c.message) || '')
5481
- .split('\n')
5482
- .map((line) => `> ${line}`)
5483
- .join('\n'))}
5484
-
5485
- Last result:
5486
- ${block($ongoingTaskResult.$resultString === null
5487
- ? 'null'
5488
- : spaceTrim.spaceTrim($ongoingTaskResult.$resultString)
5489
- .split('\n')
5490
- .map((line) => `> ${line}`)
5491
- .join('\n'))}
5492
- ---
5512
+ All Failed Attempts:
5513
+ ${block(failuresSummary)}
5493
5514
  `;
5494
5515
  }));
5495
5516
  }