@promptbook/pdf 0.100.0-43 → 0.100.0-45

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 (28) hide show
  1. package/esm/index.es.js +59 -71
  2. package/esm/index.es.js.map +1 -1
  3. package/esm/typings/src/_packages/components.index.d.ts +10 -0
  4. package/esm/typings/src/_packages/core.index.d.ts +2 -0
  5. package/esm/typings/src/_packages/types.index.d.ts +12 -0
  6. package/esm/typings/src/book-components/AvatarProfile/AvatarProfile/AvatarProfile.d.ts +26 -0
  7. package/esm/typings/src/book-components/AvatarProfile/AvatarProfile/AvatarProfileFromSource.d.ts +19 -0
  8. package/esm/typings/src/book-components/BookEditor/BookEditorInner.d.ts +15 -0
  9. package/esm/typings/src/book-components/Chat/Chat/Chat.d.ts +134 -0
  10. package/esm/typings/src/book-components/Chat/interfaces/ChatMessage.d.ts +30 -0
  11. package/esm/typings/src/book-components/Chat/utils/ExportFormat.d.ts +4 -0
  12. package/esm/typings/src/book-components/Chat/utils/addUtmParamsToUrl.d.ts +7 -0
  13. package/esm/typings/src/book-components/Chat/utils/createShortLinkForChat.d.ts +7 -0
  14. package/esm/typings/src/book-components/Chat/utils/downloadFile.d.ts +6 -0
  15. package/esm/typings/src/book-components/Chat/utils/exportChatHistory.d.ts +11 -0
  16. package/esm/typings/src/book-components/Chat/utils/generatePdfContent.d.ts +10 -0
  17. package/esm/typings/src/book-components/Chat/utils/generateQrDataUrl.d.ts +7 -0
  18. package/esm/typings/src/book-components/Chat/utils/getPromptbookBranding.d.ts +6 -0
  19. package/esm/typings/src/book-components/Chat/utils/messagesToHtml.d.ts +10 -0
  20. package/esm/typings/src/book-components/Chat/utils/messagesToJson.d.ts +7 -0
  21. package/esm/typings/src/book-components/Chat/utils/messagesToMarkdown.d.ts +10 -0
  22. package/esm/typings/src/book-components/Chat/utils/messagesToText.d.ts +10 -0
  23. package/esm/typings/src/config.d.ts +6 -0
  24. package/esm/typings/src/execution/ExecutionTask.d.ts +4 -13
  25. package/esm/typings/src/version.d.ts +1 -1
  26. package/package.json +2 -2
  27. package/umd/index.umd.js +59 -71
  28. package/umd/index.umd.js.map +1 -1
package/umd/index.umd.js CHANGED
@@ -25,7 +25,7 @@
25
25
  * @generated
26
26
  * @see https://github.com/webgptorg/promptbook
27
27
  */
28
- const PROMPTBOOK_ENGINE_VERSION = '0.100.0-43';
28
+ const PROMPTBOOK_ENGINE_VERSION = '0.100.0-45';
29
29
  /**
30
30
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
31
31
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -2531,7 +2531,7 @@
2531
2531
  * @private internal helper function
2532
2532
  */
2533
2533
  function createTask(options) {
2534
- const { taskType, taskProcessCallback, tldrProvider } = options;
2534
+ const { taskType, taskProcessCallback } = options;
2535
2535
  let { title } = options;
2536
2536
  // TODO: [🐙] DRY
2537
2537
  const taskId = `${taskType.toLowerCase().substring(0, 4)}-${$randomToken(8 /* <- TODO: To global config + Use Base58 to avoid similar char conflicts */)}`;
@@ -2541,6 +2541,7 @@
2541
2541
  const errors = [];
2542
2542
  const warnings = [];
2543
2543
  let currentValue = {};
2544
+ let customTldr = null;
2544
2545
  const partialResultSubject = new rxjs.Subject();
2545
2546
  // <- Note: Not using `BehaviorSubject` because on error we can't access the last value
2546
2547
  const finalResultPromise = /* not await */ taskProcessCallback((newOngoingResult) => {
@@ -2551,6 +2552,9 @@
2551
2552
  Object.assign(currentValue, newOngoingResult);
2552
2553
  // <- TODO: assign deep
2553
2554
  partialResultSubject.next(newOngoingResult);
2555
+ }, (tldrInfo) => {
2556
+ customTldr = tldrInfo;
2557
+ updatedAt = new Date();
2554
2558
  });
2555
2559
  finalResultPromise
2556
2560
  .catch((error) => {
@@ -2606,9 +2610,9 @@
2606
2610
  },
2607
2611
  get tldr() {
2608
2612
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
2609
- // Use custom tldr provider if available
2610
- if (tldrProvider) {
2611
- return tldrProvider(createdAt, status, currentValue, errors, warnings);
2613
+ // Use custom tldr if available
2614
+ if (customTldr) {
2615
+ return customTldr;
2612
2616
  }
2613
2617
  // Fallback to default implementation
2614
2618
  const cv = currentValue;
@@ -6157,75 +6161,59 @@
6157
6161
  const pipelineExecutor = (inputParameters) => createTask({
6158
6162
  taskType: 'EXECUTION',
6159
6163
  title: pipeline.title,
6160
- taskProcessCallback(updateOngoingResult) {
6164
+ taskProcessCallback(updateOngoingResult, updateTldr) {
6161
6165
  return pipelineExecutorWithCallback(inputParameters, async (newOngoingResult) => {
6166
+ var _a;
6162
6167
  updateOngoingResult(newOngoingResult);
6163
- });
6164
- },
6165
- tldrProvider(createdAt, status, currentValue, errors) {
6166
- var _a;
6167
- // Better progress estimation based on pipeline structure
6168
- const cv = currentValue;
6169
- // Handle finished/error states
6170
- if (status === 'FINISHED') {
6171
- return {
6172
- percent: 1,
6173
- message: 'Finished',
6174
- };
6175
- }
6176
- if (status === 'ERROR') {
6177
- const errorMessage = errors.length > 0 ? errors[errors.length - 1].message : 'Error';
6178
- return {
6179
- percent: 0,
6180
- message: errorMessage,
6181
- };
6182
- }
6183
- // Calculate progress based on pipeline tasks
6184
- const totalTasks = pipeline.tasks.length;
6185
- let completedTasks = 0;
6186
- let currentTaskName = '';
6187
- // Check execution report for completed tasks
6188
- if ((_a = cv === null || cv === void 0 ? void 0 : cv.executionReport) === null || _a === void 0 ? void 0 : _a.promptExecutions) {
6189
- const executedTaskTitles = new Set(cv.executionReport.promptExecutions.map((execution) => execution.prompt.title));
6190
- // Count completed tasks by matching titles
6191
- const completedTasksByTitle = pipeline.tasks.filter(task => executedTaskTitles.has(task.title));
6192
- completedTasks = completedTasksByTitle.length;
6193
- // Find current task being executed (first task not yet completed)
6194
- const remainingTasks = pipeline.tasks.filter(task => !executedTaskTitles.has(task.title));
6195
- if (remainingTasks.length > 0) {
6196
- currentTaskName = remainingTasks[0].name;
6168
+ // Calculate and update tldr based on pipeline progress
6169
+ const cv = newOngoingResult;
6170
+ // Calculate progress based on pipeline tasks
6171
+ const totalTasks = pipeline.tasks.length;
6172
+ let completedTasks = 0;
6173
+ let currentTaskName = '';
6174
+ // Check execution report for completed tasks
6175
+ if ((_a = cv === null || cv === void 0 ? void 0 : cv.executionReport) === null || _a === void 0 ? void 0 : _a.promptExecutions) {
6176
+ const executedTaskTitles = new Set(cv.executionReport.promptExecutions.map((execution) => execution.prompt.title));
6177
+ // Count completed tasks by matching titles
6178
+ const completedTasksByTitle = pipeline.tasks.filter((task) => executedTaskTitles.has(task.title));
6179
+ completedTasks = completedTasksByTitle.length;
6180
+ // Find current task being executed (first task not yet completed)
6181
+ const remainingTasks = pipeline.tasks.filter((task) => !executedTaskTitles.has(task.title));
6182
+ if (remainingTasks.length > 0) {
6183
+ currentTaskName = remainingTasks[0].name;
6184
+ }
6197
6185
  }
6198
- }
6199
- // Calculate progress percentage
6200
- let percent = totalTasks > 0 ? completedTasks / totalTasks : 0;
6201
- // Add time-based progress for current task (assuming 5 minutes total)
6202
- if (completedTasks < totalTasks) {
6203
- const elapsedMs = new Date().getTime() - createdAt.getTime();
6204
- const totalMs = 5 * 60 * 1000; // 5 minutes
6205
- const timeProgress = Math.min(elapsedMs / totalMs, 1);
6206
- // Add partial progress for current task
6207
- percent += (1 / totalTasks) * timeProgress;
6208
- }
6209
- // Clamp to [0,1]
6210
- percent = Math.min(Math.max(percent, 0), 1);
6211
- // Generate message
6212
- let message = '';
6213
- if (currentTaskName) {
6214
- // Find the task to get its title
6215
- const currentTask = pipeline.tasks.find(task => task.name === currentTaskName);
6216
- const taskTitle = (currentTask === null || currentTask === void 0 ? void 0 : currentTask.title) || currentTaskName;
6217
- message = `Working on task ${taskTitle}`;
6218
- }
6219
- else if (completedTasks === 0) {
6220
- message = 'Starting pipeline execution';
6221
- }
6222
- else {
6223
- message = `Processing pipeline (${completedTasks}/${totalTasks} tasks completed)`;
6224
- }
6225
- return {
6226
- percent,
6227
- message,
6228
- };
6186
+ // Calculate progress percentage
6187
+ let percent = totalTasks > 0 ? completedTasks / totalTasks : 0;
6188
+ // Add time-based progress for current task (assuming 5 minutes total)
6189
+ if (completedTasks < totalTasks) {
6190
+ const elapsedMs = new Date().getTime() - new Date().getTime(); // Will be overridden by actual elapsed time in task
6191
+ const totalMs = 5 * 60 * 1000; // 5 minutes
6192
+ const timeProgress = Math.min(elapsedMs / totalMs, 1);
6193
+ // Add partial progress for current task
6194
+ percent += (1 / totalTasks) * timeProgress;
6195
+ }
6196
+ // Clamp to [0,1]
6197
+ percent = Math.min(Math.max(percent, 0), 1);
6198
+ // Generate message
6199
+ let message = '';
6200
+ if (currentTaskName) {
6201
+ // Find the task to get its title
6202
+ const currentTask = pipeline.tasks.find((task) => task.name === currentTaskName);
6203
+ const taskTitle = (currentTask === null || currentTask === void 0 ? void 0 : currentTask.title) || currentTaskName;
6204
+ message = `Working on task ${taskTitle}`;
6205
+ }
6206
+ else if (completedTasks === 0) {
6207
+ message = 'Starting pipeline execution';
6208
+ }
6209
+ else {
6210
+ message = `Processing pipeline (${completedTasks}/${totalTasks} tasks completed)`;
6211
+ }
6212
+ updateTldr({
6213
+ percent: percent,
6214
+ message,
6215
+ });
6216
+ });
6229
6217
  },
6230
6218
  });
6231
6219
  // <- TODO: Make types such as there is no need to do `as` for `createTask`