@promptbook/browser 0.114.0-5 → 0.114.0-8

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 (75) hide show
  1. package/esm/index.es.js +127 -37
  2. package/esm/index.es.js.map +1 -1
  3. package/esm/src/avatars/renderAvatarVisualTerminalText.d.ts +80 -0
  4. package/esm/src/avatars/types/AvatarVisualDefinition.d.ts +54 -0
  5. package/esm/src/book-3.0/AgentTeamConversationWorkspace.d.ts +85 -0
  6. package/esm/src/book-components/Chat/Chat/ChatProps.d.ts +3 -2
  7. package/esm/src/book-components/Chat/utils/renderMarkdown.d.ts +12 -3
  8. package/esm/src/cli/cli-commands/coder/boilerplateCount.d.ts +1 -1
  9. package/esm/src/cli/cli-commands/coder/generate-boilerplates.d.ts +1 -1
  10. package/esm/src/cli/cli-commands/common/{harness/$askForHarnessInstallationApproval.d.ts → npm/$askForNpmPackageInstallationApproval.d.ts} +2 -2
  11. package/esm/src/cli/cli-commands/common/{harness/$resolveLatestHarnessVersion.d.ts → npm/$resolveLatestNpmPackageVersion.d.ts} +2 -3
  12. package/esm/src/cli/cli-commands/common/npm/extractNpmPackageVersionFromOutput.d.ts +12 -0
  13. package/esm/src/cli/cli-commands/common/npm/isNpmPackageVersionOutdated.d.ts +9 -0
  14. package/esm/src/cli/cli-commands/common/promptbook-cli/$checkPromptbookCliInstallations.d.ts +9 -0
  15. package/esm/src/cli/cli-commands/common/promptbook-cli/$ensurePromptbookCliInstallations.d.ts +14 -0
  16. package/esm/src/cli/cli-commands/common/promptbook-cli/$ensurePromptbookCliInstallations.test.d.ts +1 -0
  17. package/esm/src/cli/cli-commands/common/promptbook-cli/$resolvePromptbookCliInstallations.d.ts +12 -0
  18. package/esm/src/cli/cli-commands/common/promptbook-cli/$resolvePromptbookCliInstallations.test.d.ts +1 -0
  19. package/esm/src/cli/cli-commands/common/promptbook-cli/$updatePromptbookCliInstallation.d.ts +10 -0
  20. package/esm/src/cli/cli-commands/common/promptbook-cli/PromptbookCliInstallation.d.ts +39 -0
  21. package/esm/src/cli/cli-commands/common/promptbook-cli/PromptbookCliInstallationStatus.d.ts +26 -0
  22. package/esm/src/cli/cli-commands/common/promptbook-cli/buildPromptbookCliInstallCommand.d.ts +7 -0
  23. package/esm/src/cli/cli-commands/common/promptbook-cli/buildPromptbookCliInstallCommand.test.d.ts +1 -0
  24. package/esm/src/cli/cli-commands/common/promptbook-cli/formatPromptbookCliInstallationWarning.d.ts +7 -0
  25. package/esm/src/utils/agent-message-runtime/resolveAgentMessageRuntimeActivity.d.ts +3 -3
  26. package/esm/src/utils/agents/terminalAgentAvatarVisual.d.ts +5 -2
  27. package/esm/src/utils/ascii-art/convertImageDataToAsciiArt.d.ts +6 -0
  28. package/esm/src/utils/ascii-art/createAnsiColorCode.d.ts +46 -0
  29. package/esm/src/utils/misc/debounce.d.ts +4 -2
  30. package/esm/src/utils/misc/debounce.test.d.ts +1 -0
  31. package/esm/src/version.d.ts +1 -1
  32. package/package.json +2 -2
  33. package/umd/index.umd.js +126 -36
  34. package/umd/index.umd.js.map +1 -1
  35. package/umd/src/avatars/renderAvatarVisualTerminalText.d.ts +80 -0
  36. package/umd/src/avatars/renderAvatarVisualTerminalText.test.d.ts +1 -0
  37. package/umd/src/avatars/types/AvatarVisualDefinition.d.ts +54 -0
  38. package/umd/src/book-3.0/AgentTeamConversationWorkspace.d.ts +85 -0
  39. package/umd/src/book-components/Chat/Chat/ChatProps.d.ts +3 -2
  40. package/umd/src/book-components/Chat/utils/renderMarkdown.d.ts +12 -3
  41. package/umd/src/cli/cli-commands/coder/boilerplateCount.d.ts +1 -1
  42. package/umd/src/cli/cli-commands/coder/generate-boilerplates.d.ts +1 -1
  43. package/umd/src/cli/cli-commands/common/{harness/$askForHarnessInstallationApproval.d.ts → npm/$askForNpmPackageInstallationApproval.d.ts} +2 -2
  44. package/umd/src/cli/cli-commands/common/{harness/$resolveLatestHarnessVersion.d.ts → npm/$resolveLatestNpmPackageVersion.d.ts} +2 -3
  45. package/umd/src/cli/cli-commands/common/npm/$resolveLatestNpmPackageVersion.test.d.ts +1 -0
  46. package/umd/src/cli/cli-commands/common/npm/extractNpmPackageVersionFromOutput.d.ts +12 -0
  47. package/umd/src/cli/cli-commands/common/npm/extractNpmPackageVersionFromOutput.test.d.ts +1 -0
  48. package/umd/src/cli/cli-commands/common/npm/isNpmPackageVersionOutdated.d.ts +9 -0
  49. package/umd/src/cli/cli-commands/common/npm/isNpmPackageVersionOutdated.test.d.ts +1 -0
  50. package/umd/src/cli/cli-commands/common/promptbook-cli/$checkPromptbookCliInstallations.d.ts +9 -0
  51. package/umd/src/cli/cli-commands/common/promptbook-cli/$ensurePromptbookCliInstallations.d.ts +14 -0
  52. package/umd/src/cli/cli-commands/common/promptbook-cli/$ensurePromptbookCliInstallations.test.d.ts +1 -0
  53. package/umd/src/cli/cli-commands/common/promptbook-cli/$resolvePromptbookCliInstallations.d.ts +12 -0
  54. package/umd/src/cli/cli-commands/common/promptbook-cli/$resolvePromptbookCliInstallations.test.d.ts +1 -0
  55. package/umd/src/cli/cli-commands/common/promptbook-cli/$updatePromptbookCliInstallation.d.ts +10 -0
  56. package/umd/src/cli/cli-commands/common/promptbook-cli/PromptbookCliInstallation.d.ts +39 -0
  57. package/umd/src/cli/cli-commands/common/promptbook-cli/PromptbookCliInstallationStatus.d.ts +26 -0
  58. package/umd/src/cli/cli-commands/common/promptbook-cli/buildPromptbookCliInstallCommand.d.ts +7 -0
  59. package/umd/src/cli/cli-commands/common/promptbook-cli/buildPromptbookCliInstallCommand.test.d.ts +1 -0
  60. package/umd/src/cli/cli-commands/common/promptbook-cli/formatPromptbookCliInstallationWarning.d.ts +7 -0
  61. package/umd/src/utils/agent-message-runtime/resolveAgentMessageRuntimeActivity.d.ts +3 -3
  62. package/umd/src/utils/agents/terminalAgentAvatarVisual.d.ts +5 -2
  63. package/umd/src/utils/ascii-art/convertImageDataToAsciiArt.d.ts +6 -0
  64. package/umd/src/utils/ascii-art/createAnsiColorCode.d.ts +46 -0
  65. package/umd/src/utils/misc/debounce.d.ts +4 -2
  66. package/umd/src/utils/misc/debounce.test.d.ts +1 -0
  67. package/umd/src/version.d.ts +1 -1
  68. package/esm/src/cli/cli-commands/common/harness/extractHarnessVersionFromOutput.d.ts +0 -11
  69. package/esm/src/cli/cli-commands/common/harness/isHarnessVersionOutdated.d.ts +0 -9
  70. package/umd/src/cli/cli-commands/common/harness/extractHarnessVersionFromOutput.d.ts +0 -11
  71. package/umd/src/cli/cli-commands/common/harness/isHarnessVersionOutdated.d.ts +0 -9
  72. /package/esm/src/{cli/cli-commands/common/harness/extractHarnessVersionFromOutput.test.d.ts → avatars/renderAvatarVisualTerminalText.test.d.ts} +0 -0
  73. /package/esm/src/cli/cli-commands/common/{harness/isHarnessVersionOutdated.test.d.ts → npm/$resolveLatestNpmPackageVersion.test.d.ts} +0 -0
  74. /package/{umd/src/cli/cli-commands/common/harness/extractHarnessVersionFromOutput.test.d.ts → esm/src/cli/cli-commands/common/npm/extractNpmPackageVersionFromOutput.test.d.ts} +0 -0
  75. /package/{umd/src/cli/cli-commands/common/harness/isHarnessVersionOutdated.test.d.ts → esm/src/cli/cli-commands/common/npm/isNpmPackageVersionOutdated.test.d.ts} +0 -0
package/esm/index.es.js CHANGED
@@ -26,7 +26,7 @@ const BOOK_LANGUAGE_VERSION = '2.0.0';
26
26
  * @generated
27
27
  * @see https://github.com/webgptorg/promptbook
28
28
  */
29
- const PROMPTBOOK_ENGINE_VERSION = '0.114.0-5';
29
+ const PROMPTBOOK_ENGINE_VERSION = '0.114.0-8';
30
30
  /**
31
31
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
32
32
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -4115,6 +4115,13 @@ function darken(amount) {
4115
4115
  }
4116
4116
 
4117
4117
  /* eslint-disable no-magic-numbers */
4118
+ // Note: [💞] Ignore a discrepancy between file name and entity name
4119
+ /**
4120
+ * Default square size used by avatar renderers.
4121
+ *
4122
+ * @private utility of the avatar rendering system
4123
+ */
4124
+ const DEFAULT_AVATAR_SIZE = 192;
4118
4125
  /**
4119
4126
  * Corner radius ratio used for the common rounded card frame.
4120
4127
  *
@@ -4485,6 +4492,15 @@ const OUTLINE_GLYPHS = ['#', '%', '@'];
4485
4492
  * @private helper of `asciiOctopusAvatarVisual`
4486
4493
  */
4487
4494
  const ATMOSPHERE_GLYPHS = ['.', ':', "'", '`'];
4495
+ /**
4496
+ * Coordinate space the octopus layout is generated in when it is painted into a terminal.
4497
+ *
4498
+ * The terminal renderer has its own character grid, so the geometry only needs one stable
4499
+ * square coordinate space which the grid is then sampled from.
4500
+ *
4501
+ * @private helper of `asciiOctopusAvatarVisual`
4502
+ */
4503
+ const TERMINAL_ASCII_OCTOPUS_LAYOUT_SIZE = DEFAULT_AVATAR_SIZE;
4488
4504
  /**
4489
4505
  * AsciiOctopus avatar visual.
4490
4506
  *
@@ -4501,41 +4517,115 @@ const asciiOctopusAvatarVisual = {
4501
4517
  const staticRandom = createRandom('ascii-octopus-static');
4502
4518
  const gridMetrics = createAsciiGridMetrics(size, gridRandom);
4503
4519
  const layout = createAsciiOctopusLayout(size, timeMs, createRandom, staticRandom, interaction);
4520
+ const glyphGrid = createAsciiOctopusGlyphGrid({
4521
+ sampleGrid: gridMetrics,
4522
+ layout,
4523
+ palette,
4524
+ cellRandom: createRandom('ascii-octopus-cells'),
4525
+ timeMs,
4526
+ });
4504
4527
  drawAvatarFrame(context, size, palette);
4505
4528
  drawAsciiBackdrop(context, size, palette, layout, timeMs);
4506
4529
  context.save();
4507
4530
  context.font = `600 ${gridMetrics.fontSize}px monospace`;
4508
4531
  context.textAlign = 'center';
4509
4532
  context.textBaseline = 'middle';
4510
- // The ASCII renderer samples the morphing octopus field on a low-resolution grid so the shape stays organic
4511
- // while the glyph layout remains deterministic for the same avatar input.
4512
- const cellRandom = createRandom('ascii-octopus-cells');
4513
4533
  for (let rowIndex = 0; rowIndex < gridMetrics.rowCount; rowIndex++) {
4514
4534
  for (let columnIndex = 0; columnIndex < gridMetrics.columnCount; columnIndex++) {
4515
- const point = {
4516
- x: gridMetrics.offsetX + columnIndex * gridMetrics.cellWidth,
4517
- y: gridMetrics.offsetY + rowIndex * gridMetrics.cellHeight,
4518
- };
4519
- const noise = cellRandom();
4520
- const glyphDescriptor = resolveAsciiGlyph({
4521
- point,
4522
- layout,
4523
- palette,
4524
- cellWidth: gridMetrics.cellWidth,
4525
- cellHeight: gridMetrics.cellHeight,
4526
- noise,
4527
- timeMs,
4528
- });
4535
+ const glyphDescriptor = glyphGrid[rowIndex][columnIndex];
4529
4536
  if (!glyphDescriptor) {
4530
4537
  continue;
4531
4538
  }
4539
+ const point = resolveAsciiSampleGridPoint(gridMetrics, columnIndex, rowIndex);
4532
4540
  context.fillStyle = glyphDescriptor.color;
4533
4541
  context.fillText(glyphDescriptor.character, point.x, point.y);
4534
4542
  }
4535
4543
  }
4536
4544
  context.restore();
4537
4545
  },
4546
+ renderTerminalText({ columns, rows, palette, createRandom, timeMs, interaction }) {
4547
+ const staticRandom = createRandom('ascii-octopus-static');
4548
+ const layout = createAsciiOctopusLayout(TERMINAL_ASCII_OCTOPUS_LAYOUT_SIZE, timeMs, createRandom, staticRandom, interaction);
4549
+ return createAsciiOctopusGlyphGrid({
4550
+ sampleGrid: createAsciiTerminalSampleGrid(columns, rows),
4551
+ layout,
4552
+ palette,
4553
+ cellRandom: createRandom('ascii-octopus-cells'),
4554
+ timeMs,
4555
+ });
4556
+ },
4538
4557
  };
4558
+ /**
4559
+ * Resolves the geometry point sampled for one cell of the grid.
4560
+ *
4561
+ * @param sampleGrid Character-cell sampling grid.
4562
+ * @param columnIndex Zero-based cell column.
4563
+ * @param rowIndex Zero-based cell row.
4564
+ * @returns Sampled point in the octopus coordinate space.
4565
+ *
4566
+ * @private helper of `asciiOctopusAvatarVisual`
4567
+ */
4568
+ function resolveAsciiSampleGridPoint(sampleGrid, columnIndex, rowIndex) {
4569
+ return {
4570
+ x: sampleGrid.offsetX + columnIndex * sampleGrid.cellWidth,
4571
+ y: sampleGrid.offsetY + rowIndex * sampleGrid.cellHeight,
4572
+ };
4573
+ }
4574
+ /**
4575
+ * Builds the sampling grid used when the octopus is painted straight into terminal character cells.
4576
+ *
4577
+ * @param columns Available terminal columns.
4578
+ * @param rows Available terminal rows.
4579
+ * @returns Character-cell sampling grid covering the whole octopus coordinate space.
4580
+ *
4581
+ * @private helper of `asciiOctopusAvatarVisual`
4582
+ */
4583
+ function createAsciiTerminalSampleGrid(columns, rows) {
4584
+ const cellWidth = TERMINAL_ASCII_OCTOPUS_LAYOUT_SIZE / columns;
4585
+ const cellHeight = TERMINAL_ASCII_OCTOPUS_LAYOUT_SIZE / rows;
4586
+ return {
4587
+ cellWidth,
4588
+ cellHeight,
4589
+ columnCount: columns,
4590
+ rowCount: rows,
4591
+ offsetX: cellWidth / 2,
4592
+ offsetY: cellHeight / 2,
4593
+ };
4594
+ }
4595
+ /**
4596
+ * Samples the morphing octopus field into one deterministic grid of ASCII glyphs.
4597
+ *
4598
+ * The field is sampled on a low-resolution grid so the shape stays organic while the glyph
4599
+ * layout remains deterministic for the same avatar input. Both the canvas visual and the
4600
+ * terminal visual share this single sampling pass so they always describe the same octopus.
4601
+ *
4602
+ * @param options Sampling grid, prepared octopus layout, palette, per-cell noise, and animation time.
4603
+ * @returns Resolved glyph of every sampled cell, where `null` means an empty cell.
4604
+ *
4605
+ * @private helper of `asciiOctopusAvatarVisual`
4606
+ */
4607
+ function createAsciiOctopusGlyphGrid(options) {
4608
+ const { sampleGrid, layout, palette, cellRandom, timeMs } = options;
4609
+ const glyphGrid = [];
4610
+ for (let rowIndex = 0; rowIndex < sampleGrid.rowCount; rowIndex++) {
4611
+ const glyphRow = [];
4612
+ for (let columnIndex = 0; columnIndex < sampleGrid.columnCount; columnIndex++) {
4613
+ const point = resolveAsciiSampleGridPoint(sampleGrid, columnIndex, rowIndex);
4614
+ const noise = cellRandom();
4615
+ glyphRow.push(resolveAsciiGlyph({
4616
+ point,
4617
+ layout,
4618
+ palette,
4619
+ cellWidth: sampleGrid.cellWidth,
4620
+ cellHeight: sampleGrid.cellHeight,
4621
+ noise,
4622
+ timeMs,
4623
+ }));
4624
+ }
4625
+ glyphGrid.push(glyphRow);
4626
+ }
4627
+ return glyphGrid;
4628
+ }
4539
4629
  /**
4540
4630
  * Draws the dark terminal-like glow behind the ASCII octopus.
4541
4631
  *
@@ -27632,28 +27722,28 @@ function parseToolExecutionEnvelope(rawValue) {
27632
27722
  */
27633
27723
  function buildToolInvocationScript(options) {
27634
27724
  const { functionName, functionArgsExpression } = options;
27635
- return `
27636
- const args = ${functionArgsExpression};
27637
- const runtimeContextRaw =
27638
- typeof ${TOOL_RUNTIME_CONTEXT_PARAMETER} === 'undefined'
27639
- ? undefined
27640
- : ${TOOL_RUNTIME_CONTEXT_PARAMETER};
27641
-
27642
- if (runtimeContextRaw !== undefined && args && typeof args === 'object' && !Array.isArray(args)) {
27643
- args.${TOOL_RUNTIME_CONTEXT_ARGUMENT} = runtimeContextRaw;
27644
- }
27725
+ return spaceTrim$1((block) => `
27726
+ const args = ${block(functionArgsExpression)};
27727
+ const runtimeContextRaw =
27728
+ typeof ${TOOL_RUNTIME_CONTEXT_PARAMETER} === 'undefined'
27729
+ ? undefined
27730
+ : ${TOOL_RUNTIME_CONTEXT_PARAMETER};
27731
+
27732
+ if (runtimeContextRaw !== undefined && args && typeof args === 'object' && !Array.isArray(args)) {
27733
+ args.${TOOL_RUNTIME_CONTEXT_ARGUMENT} = runtimeContextRaw;
27734
+ }
27645
27735
 
27646
- const toolProgressTokenRaw =
27647
- typeof ${TOOL_PROGRESS_TOKEN_PARAMETER} === 'undefined'
27648
- ? undefined
27649
- : ${TOOL_PROGRESS_TOKEN_PARAMETER};
27736
+ const toolProgressTokenRaw =
27737
+ typeof ${TOOL_PROGRESS_TOKEN_PARAMETER} === 'undefined'
27738
+ ? undefined
27739
+ : ${TOOL_PROGRESS_TOKEN_PARAMETER};
27650
27740
 
27651
- if (toolProgressTokenRaw !== undefined && args && typeof args === 'object' && !Array.isArray(args)) {
27652
- args.${TOOL_PROGRESS_TOKEN_ARGUMENT} = toolProgressTokenRaw;
27653
- }
27741
+ if (toolProgressTokenRaw !== undefined && args && typeof args === 'object' && !Array.isArray(args)) {
27742
+ args.${TOOL_PROGRESS_TOKEN_ARGUMENT} = toolProgressTokenRaw;
27743
+ }
27654
27744
 
27655
- return await ${functionName}(args);
27656
- `;
27745
+ return await ${functionName}(args);
27746
+ `);
27657
27747
  }
27658
27748
 
27659
27749
  /**