@promptbook/wizard 0.101.0-0 → 0.101.0-1
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.
- package/esm/index.es.js +32 -6
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/_packages/components.index.d.ts +4 -0
- package/esm/typings/src/book-components/Chat/examples/ChatMarkdownDemo.d.ts +16 -0
- package/esm/typings/src/book-components/Chat/utils/renderMarkdown.d.ts +21 -0
- package/esm/typings/src/book-components/Chat/utils/renderMarkdown.test.d.ts +1 -0
- package/esm/typings/src/utils/markdown/escapeMarkdownBlock.d.ts +2 -0
- package/esm/typings/src/utils/markdown/humanizeAiText.d.ts +1 -0
- package/esm/typings/src/utils/markdown/humanizeAiTextEllipsis.d.ts +1 -0
- package/esm/typings/src/utils/markdown/humanizeAiTextEmdashed.d.ts +1 -0
- package/esm/typings/src/utils/markdown/humanizeAiTextQuotes.d.ts +1 -0
- package/esm/typings/src/utils/markdown/humanizeAiTextWhitespace.d.ts +1 -0
- package/esm/typings/src/utils/markdown/prettifyMarkdown.d.ts +8 -0
- package/esm/typings/src/utils/markdown/promptbookifyAiText.d.ts +1 -0
- package/esm/typings/src/utils/normalization/capitalize.d.ts +2 -0
- package/esm/typings/src/utils/normalization/decapitalize.d.ts +3 -1
- package/esm/typings/src/utils/normalization/normalizeTo_SCREAMING_CASE.d.ts +2 -0
- package/esm/typings/src/utils/normalization/normalizeTo_snake_case.d.ts +2 -0
- package/esm/typings/src/utils/normalization/normalizeWhitespaces.d.ts +2 -0
- package/esm/typings/src/utils/normalization/removeDiacritics.d.ts +2 -0
- package/esm/typings/src/utils/parseNumber.d.ts +1 -0
- package/esm/typings/src/utils/removeEmojis.d.ts +2 -0
- package/esm/typings/src/utils/removeQuotes.d.ts +1 -0
- package/esm/typings/src/utils/serialization/deepClone.d.ts +1 -0
- package/esm/typings/src/utils/trimCodeBlock.d.ts +1 -0
- package/esm/typings/src/utils/validators/url/isValidUrl.d.ts +1 -0
- package/esm/typings/src/utils/validators/uuid/isValidUuid.d.ts +2 -0
- package/esm/typings/src/version.d.ts +1 -1
- package/package.json +2 -2
- package/umd/index.umd.js +37 -10
- package/umd/index.umd.js.map +1 -1
@@ -16,6 +16,8 @@ import { LlmChat } from '../book-components/Chat/LlmChat/LlmChat';
|
|
16
16
|
import type { LlmChatProps } from '../book-components/Chat/LlmChat/LlmChatProps';
|
17
17
|
import type { ChatMessage } from '../book-components/Chat/types/ChatMessage';
|
18
18
|
import type { ChatParticipant } from '../book-components/Chat/types/ChatParticipant';
|
19
|
+
import { renderMarkdown } from '../book-components/Chat/utils/renderMarkdown';
|
20
|
+
import { isMarkdownContent } from '../book-components/Chat/utils/renderMarkdown';
|
19
21
|
export { BOOK_LANGUAGE_VERSION, PROMPTBOOK_ENGINE_VERSION };
|
20
22
|
export type { AvatarChipProps };
|
21
23
|
export { AvatarChip };
|
@@ -34,3 +36,5 @@ export { LlmChat };
|
|
34
36
|
export type { LlmChatProps };
|
35
37
|
export type { ChatMessage };
|
36
38
|
export type { ChatParticipant };
|
39
|
+
export { renderMarkdown };
|
40
|
+
export { isMarkdownContent };
|
@@ -0,0 +1,16 @@
|
|
1
|
+
/**
|
2
|
+
* Demo component showing Chat with markdown rendering capabilities
|
3
|
+
*
|
4
|
+
* This example demonstrates various markdown features supported by the Chat component:
|
5
|
+
* - Headers
|
6
|
+
* - Bold and italic text
|
7
|
+
* - Code blocks and inline code
|
8
|
+
* - Lists (ordered and unordered)
|
9
|
+
* - Links
|
10
|
+
* - Blockquotes
|
11
|
+
* - Tables
|
12
|
+
* - Strikethrough text
|
13
|
+
*
|
14
|
+
* @private temporary for testing purposes
|
15
|
+
*/
|
16
|
+
export declare function ChatMarkdownDemo(): import("react/jsx-runtime").JSX.Element;
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import type { string_html, string_markdown } from '../../../types/typeAliases';
|
2
|
+
/**
|
3
|
+
* Convert markdown content to HTML for display in chat messages
|
4
|
+
*
|
5
|
+
* @param markdown - The markdown content to convert
|
6
|
+
* @returns HTML string ready for rendering
|
7
|
+
*
|
8
|
+
* @public exported from `@promptbook/components`
|
9
|
+
* <- TODO: [🧠] Maybe export from `@promptbook/markdown-utils`
|
10
|
+
*/
|
11
|
+
export declare function renderMarkdown(markdown: string_markdown): string_html;
|
12
|
+
/**
|
13
|
+
* Check if content appears to be markdown (contains markdown syntax)
|
14
|
+
*
|
15
|
+
* @param content - Content to check
|
16
|
+
* @returns true if content appears to contain markdown syntax
|
17
|
+
*
|
18
|
+
* @public exported from `@promptbook/components`
|
19
|
+
* <- TODO: [🧠] Maybe export from `@promptbook/markdown-utils`
|
20
|
+
*/
|
21
|
+
export declare function isMarkdownContent(content: string): boolean;
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -3,6 +3,8 @@ import type { string_markdown_text } from '../../types/typeAliases';
|
|
3
3
|
* Function escapeMarkdownBlock will escape markdown block if needed
|
4
4
|
* It is useful when you want have block in block
|
5
5
|
*
|
6
|
+
* Note: [🔂] This function is idempotent.
|
7
|
+
*
|
6
8
|
* @public exported from `@promptbook/markdown-utils`
|
7
9
|
*/
|
8
10
|
export declare function escapeMarkdownBlock(value: string_markdown_text): string_markdown_text;
|
@@ -2,6 +2,7 @@ import { string_markdown } from '../../types/typeAliases';
|
|
2
2
|
/**
|
3
3
|
* Function `humanizeAiText` will remove traces of AI text generation artifacts
|
4
4
|
*
|
5
|
+
* Note: [🔂] This function is idempotent.
|
5
6
|
* Tip: If you want more control, look for other functions for example `humanizeAiTextEmdashed` exported `@promptbook/markdown-utils`
|
6
7
|
*
|
7
8
|
* @public exported from `@promptbook/markdown-utils`
|
@@ -2,6 +2,7 @@ import { string_markdown } from '../../types/typeAliases';
|
|
2
2
|
/**
|
3
3
|
* Change ellipsis character to three dots `…` -> `...`
|
4
4
|
*
|
5
|
+
* Note: [🔂] This function is idempotent.
|
5
6
|
* Tip: If you want to do the full cleanup, look for `humanizeAiText` exported `@promptbook/markdown-utils`
|
6
7
|
*
|
7
8
|
* @public exported from `@promptbook/markdown-utils`
|
@@ -2,6 +2,7 @@ import { string_markdown } from '../../types/typeAliases';
|
|
2
2
|
/**
|
3
3
|
* Change em-dashes to regular dashes `—` -> `-`
|
4
4
|
*
|
5
|
+
* Note: [🔂] This function is idempotent.
|
5
6
|
* Tip: If you want to do the full cleanup, look for `humanizeAiText` exported `@promptbook/markdown-utils`
|
6
7
|
*
|
7
8
|
* @public exported from `@promptbook/markdown-utils`
|
@@ -2,6 +2,7 @@ import { string_markdown } from '../../types/typeAliases';
|
|
2
2
|
/**
|
3
3
|
* Change smart quotes to regular quotes
|
4
4
|
*
|
5
|
+
* Note: [🔂] This function is idempotent.
|
5
6
|
* Tip: If you want to do the full cleanup, look for `humanizeAiText` exported `@promptbook/markdown-utils`
|
6
7
|
*
|
7
8
|
* @public exported from `@promptbook/markdown-utils`
|
@@ -2,6 +2,7 @@ import { string_markdown } from '../../types/typeAliases';
|
|
2
2
|
/**
|
3
3
|
* Change unprintable hard spaces to regular spaces
|
4
4
|
*
|
5
|
+
* Note: [🔂] This function is idempotent.
|
5
6
|
* Tip: If you want to do the full cleanup, look for `humanizeAiText` exported `@promptbook/markdown-utils`
|
6
7
|
*
|
7
8
|
* @public exported from `@promptbook/markdown-utils`
|
@@ -7,3 +7,11 @@ import type { string_html } from '../../types/typeAliases';
|
|
7
7
|
* @private withing the package because of HUGE size of prettier dependency
|
8
8
|
*/
|
9
9
|
export declare function prettifyMarkdown<TContent extends string_html>(content: TContent): TContent;
|
10
|
+
/**
|
11
|
+
* Async version of prettifyMarkdown using dynamic imports
|
12
|
+
*
|
13
|
+
* @param content raw html code
|
14
|
+
* @returns formatted html code
|
15
|
+
* @private withing the package because of HUGE size of prettier dependency
|
16
|
+
*/
|
17
|
+
export declare function prettifyMarkdownAsync<TContent extends string_html>(content: TContent): Promise<TContent>;
|
@@ -6,6 +6,7 @@ import { string_markdown } from '../../types/typeAliases';
|
|
6
6
|
*/
|
7
7
|
export declare function promptbookifyAiText(text: string_markdown): string_markdown;
|
8
8
|
/**
|
9
|
+
* TODO: !!!!! Make the function idempotent and add "Note: [🔂] This function is idempotent."
|
9
10
|
* TODO: [🅾️]!!! Use this across the project where AI text is involved
|
10
11
|
* TODO: [🧠][✌️] Make some Promptbook-native token system
|
11
12
|
*/
|
@@ -9,6 +9,8 @@ export type string_SCREAMING_CASE = string;
|
|
9
9
|
/**
|
10
10
|
* Normalizes a text string to SCREAMING_CASE (all uppercase with underscores).
|
11
11
|
*
|
12
|
+
* Note: [🔂] This function is idempotent.
|
13
|
+
*
|
12
14
|
* @param text The text string to be converted to SCREAMING_CASE format.
|
13
15
|
* @returns The normalized text in SCREAMING_CASE format.
|
14
16
|
* @example 'HELLO_WORLD'
|
@@ -8,6 +8,8 @@ export type string_snake_case = string;
|
|
8
8
|
/**
|
9
9
|
* Normalizes a text string to snake_case format.
|
10
10
|
*
|
11
|
+
* Note: [🔂] This function is idempotent.
|
12
|
+
*
|
11
13
|
* @param text The text string to be converted to snake_case format.
|
12
14
|
* @returns The normalized text in snake_case format.
|
13
15
|
* @example 'hello_world'
|
@@ -1,6 +1,8 @@
|
|
1
1
|
/**
|
2
2
|
* Removes diacritic marks (accents) from characters in a string.
|
3
3
|
*
|
4
|
+
* Note: [🔂] This function is idempotent.
|
5
|
+
*
|
4
6
|
* @param input The string containing diacritics to be normalized.
|
5
7
|
* @returns The string with diacritics removed or normalized.
|
6
8
|
* @public exported from `@promptbook/utils`
|
@@ -1,6 +1,7 @@
|
|
1
1
|
/**
|
2
2
|
* Removes quotes from a string
|
3
3
|
*
|
4
|
+
* Note: [🔂] This function is idempotent.
|
4
5
|
* Tip: This is very useful for post-processing of the result of the LLM model
|
5
6
|
* Note: This function removes only the same quotes from the beginning and the end of the string
|
6
7
|
* Note: There are two similar functions:
|
@@ -2,6 +2,7 @@ import type { WritableDeep } from 'type-fest';
|
|
2
2
|
/**
|
3
3
|
* Creates a deep clone of the given object
|
4
4
|
*
|
5
|
+
* Note: [🔂] This function is idempotent.
|
5
6
|
* Note: This method only works for objects that are fully serializable to JSON and do not contain functions, Dates, or special types.
|
6
7
|
*
|
7
8
|
* @param objectValue The object to clone.
|
@@ -1,6 +1,7 @@
|
|
1
1
|
/**
|
2
2
|
* Function trimCodeBlock will trim starting and ending code block from the string if it is present.
|
3
3
|
*
|
4
|
+
* Note: [🔂] This function is idempotent.
|
4
5
|
* Note: This is useful for post-processing of the result of the chat LLM model
|
5
6
|
* when the model wraps the result in the (markdown) code block.
|
6
7
|
*
|
@@ -3,6 +3,7 @@ import type { really_unknown } from '../../organization/really_unknown';
|
|
3
3
|
/**
|
4
4
|
* Tests if given string is valid URL.
|
5
5
|
*
|
6
|
+
* Note: [🔂] This function is idempotent.
|
6
7
|
* Note: Dataurl are considered perfectly valid.
|
7
8
|
* Note: There are two similar functions:
|
8
9
|
* - `isValidUrl` which tests any URL
|
@@ -3,6 +3,8 @@ import type { really_unknown } from '../../organization/really_unknown';
|
|
3
3
|
/**
|
4
4
|
* Checks if value is valid uuid
|
5
5
|
*
|
6
|
+
* Note: [🔂] This function is idempotent.
|
7
|
+
*
|
6
8
|
* @public exported from `@promptbook/utils`
|
7
9
|
*/
|
8
10
|
export declare function isValidUuid(value: really_unknown): value is string_uuid;
|
@@ -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.
|
18
|
+
* It follows semantic versioning (e.g., `0.101.0-0`).
|
19
19
|
*
|
20
20
|
* @generated
|
21
21
|
*/
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@promptbook/wizard",
|
3
|
-
"version": "0.101.0-
|
3
|
+
"version": "0.101.0-1",
|
4
4
|
"description": "Promptbook: Run AI apps in plain human language across multiple models and platforms",
|
5
5
|
"private": false,
|
6
6
|
"sideEffects": false,
|
@@ -95,7 +95,7 @@
|
|
95
95
|
"module": "./esm/index.es.js",
|
96
96
|
"typings": "./esm/typings/src/_packages/wizard.index.d.ts",
|
97
97
|
"peerDependencies": {
|
98
|
-
"@promptbook/core": "0.101.0-
|
98
|
+
"@promptbook/core": "0.101.0-1"
|
99
99
|
},
|
100
100
|
"dependencies": {
|
101
101
|
"@ai-sdk/deepseek": "0.1.6",
|
package/umd/index.umd.js
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
(function (global, factory) {
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('spacetrim'), require('crypto'), require('socket.io-client'), require('@anthropic-ai/sdk'), require('bottleneck'), require('colors'), require('@azure/openai'), require('openai'), require('fs/promises'), require('child_process'), require('waitasecond'), require('crypto-js'), require('crypto-js/enc-hex'), require('path'), require('
|
3
|
-
typeof define === 'function' && define.amd ? define(['exports', 'spacetrim', 'crypto', 'socket.io-client', '@anthropic-ai/sdk', 'bottleneck', 'colors', '@azure/openai', 'openai', 'fs/promises', 'child_process', 'waitasecond', 'crypto-js', 'crypto-js/enc-hex', 'path', '
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-wizard"] = {}, global.spaceTrim, global.crypto, global.socket_ioClient, global.Anthropic, global.Bottleneck, global.colors, global.openai, global.OpenAI, global.promises, global.child_process, global.waitasecond, global.cryptoJs, global.hexEncoder, global.path, global.
|
5
|
-
})(this, (function (exports, spaceTrim, crypto, socket_ioClient, Anthropic, Bottleneck, colors, openai, OpenAI, promises, child_process, waitasecond, cryptoJs, hexEncoder, path,
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('spacetrim'), require('crypto'), require('socket.io-client'), require('@anthropic-ai/sdk'), require('bottleneck'), require('colors'), require('@azure/openai'), require('openai'), require('fs/promises'), require('child_process'), require('waitasecond'), require('crypto-js'), require('crypto-js/enc-hex'), require('path'), require('rxjs'), require('crypto-js/sha256'), require('mime-types'), require('papaparse'), require('@mozilla/readability'), require('jsdom'), require('showdown'), require('dotenv'), require('jszip')) :
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports', 'spacetrim', 'crypto', 'socket.io-client', '@anthropic-ai/sdk', 'bottleneck', 'colors', '@azure/openai', 'openai', 'fs/promises', 'child_process', 'waitasecond', 'crypto-js', 'crypto-js/enc-hex', 'path', 'rxjs', 'crypto-js/sha256', 'mime-types', 'papaparse', '@mozilla/readability', 'jsdom', 'showdown', 'dotenv', 'jszip'], factory) :
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-wizard"] = {}, global.spaceTrim, global.crypto, global.socket_ioClient, global.Anthropic, global.Bottleneck, global.colors, global.openai, global.OpenAI, global.promises, global.child_process, global.waitasecond, global.cryptoJs, global.hexEncoder, global.path, global.rxjs, global.sha256, global.mimeTypes, global.papaparse, global.readability, global.jsdom, global.showdown, global.dotenv, global.JSZip));
|
5
|
+
})(this, (function (exports, spaceTrim, crypto, socket_ioClient, Anthropic, Bottleneck, colors, openai, OpenAI, promises, child_process, waitasecond, cryptoJs, hexEncoder, path, rxjs, sha256, mimeTypes, papaparse, readability, jsdom, showdown, dotenv, JSZip) { 'use strict';
|
6
6
|
|
7
7
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
8
8
|
|
@@ -30,8 +30,6 @@
|
|
30
30
|
var colors__default = /*#__PURE__*/_interopDefaultLegacy(colors);
|
31
31
|
var OpenAI__default = /*#__PURE__*/_interopDefaultLegacy(OpenAI);
|
32
32
|
var hexEncoder__default = /*#__PURE__*/_interopDefaultLegacy(hexEncoder);
|
33
|
-
var parserHtml__default = /*#__PURE__*/_interopDefaultLegacy(parserHtml);
|
34
|
-
var parserMarkdown__default = /*#__PURE__*/_interopDefaultLegacy(parserMarkdown);
|
35
33
|
var sha256__default = /*#__PURE__*/_interopDefaultLegacy(sha256);
|
36
34
|
var dotenv__namespace = /*#__PURE__*/_interopNamespace(dotenv);
|
37
35
|
var JSZip__default = /*#__PURE__*/_interopDefaultLegacy(JSZip);
|
@@ -50,7 +48,7 @@
|
|
50
48
|
* @generated
|
51
49
|
* @see https://github.com/webgptorg/promptbook
|
52
50
|
*/
|
53
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.101.0-
|
51
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.101.0-1';
|
54
52
|
/**
|
55
53
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
56
54
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
@@ -658,6 +656,7 @@
|
|
658
656
|
/**
|
659
657
|
* Creates a deep clone of the given object
|
660
658
|
*
|
659
|
+
* Note: [🔂] This function is idempotent.
|
661
660
|
* Note: This method only works for objects that are fully serializable to JSON and do not contain functions, Dates, or special types.
|
662
661
|
*
|
663
662
|
* @param objectValue The object to clone.
|
@@ -842,6 +841,8 @@
|
|
842
841
|
/**
|
843
842
|
* Normalizes a text string to SCREAMING_CASE (all uppercase with underscores).
|
844
843
|
*
|
844
|
+
* Note: [🔂] This function is idempotent.
|
845
|
+
*
|
845
846
|
* @param text The text string to be converted to SCREAMING_CASE format.
|
846
847
|
* @returns The normalized text in SCREAMING_CASE format.
|
847
848
|
* @example 'HELLO_WORLD'
|
@@ -897,6 +898,8 @@
|
|
897
898
|
/**
|
898
899
|
* Normalizes a text string to snake_case format.
|
899
900
|
*
|
901
|
+
* Note: [🔂] This function is idempotent.
|
902
|
+
*
|
900
903
|
* @param text The text string to be converted to snake_case format.
|
901
904
|
* @returns The normalized text in snake_case format.
|
902
905
|
* @example 'hello_world'
|
@@ -1419,6 +1422,7 @@
|
|
1419
1422
|
/**
|
1420
1423
|
* Tests if given string is valid URL.
|
1421
1424
|
*
|
1425
|
+
* Note: [🔂] This function is idempotent.
|
1422
1426
|
* Note: Dataurl are considered perfectly valid.
|
1423
1427
|
* Note: There are two similar functions:
|
1424
1428
|
* - `isValidUrl` which tests any URL
|
@@ -2320,6 +2324,8 @@
|
|
2320
2324
|
/**
|
2321
2325
|
* Removes diacritic marks (accents) from characters in a string.
|
2322
2326
|
*
|
2327
|
+
* Note: [🔂] This function is idempotent.
|
2328
|
+
*
|
2323
2329
|
* @param input The string containing diacritics to be normalized.
|
2324
2330
|
* @returns The string with diacritics removed or normalized.
|
2325
2331
|
* @public exported from `@promptbook/utils`
|
@@ -6221,6 +6227,8 @@
|
|
6221
6227
|
/**
|
6222
6228
|
* Removes emojis from a string and fix whitespaces
|
6223
6229
|
*
|
6230
|
+
* Note: [🔂] This function is idempotent.
|
6231
|
+
*
|
6224
6232
|
* @param text with emojis
|
6225
6233
|
* @returns text without emojis
|
6226
6234
|
* @public exported from `@promptbook/utils`
|
@@ -6472,10 +6480,20 @@
|
|
6472
6480
|
* @private withing the package because of HUGE size of prettier dependency
|
6473
6481
|
*/
|
6474
6482
|
function prettifyMarkdown(content) {
|
6483
|
+
// In browser/Next.js environments, just return the original content
|
6484
|
+
// since prettier parsers are not available and would cause bundling issues
|
6485
|
+
if (typeof window !== 'undefined') {
|
6486
|
+
return content;
|
6487
|
+
}
|
6475
6488
|
try {
|
6476
|
-
|
6489
|
+
// Use dynamic require to avoid static imports that cause bundling issues
|
6490
|
+
// This will only work in Node.js environments
|
6491
|
+
const prettierStandalone = eval('require')('prettier/standalone');
|
6492
|
+
const parserMarkdown = eval('require')('prettier/parser-markdown');
|
6493
|
+
const parserHtml = eval('require')('prettier/parser-html');
|
6494
|
+
return prettierStandalone.format(content, {
|
6477
6495
|
parser: 'markdown',
|
6478
|
-
plugins: [
|
6496
|
+
plugins: [parserMarkdown, parserHtml],
|
6479
6497
|
// TODO: DRY - make some import or auto-copy of .prettierrc
|
6480
6498
|
endOfLine: 'lf',
|
6481
6499
|
tabWidth: 4,
|
@@ -6501,6 +6519,8 @@
|
|
6501
6519
|
/**
|
6502
6520
|
* Makes first letter of a string uppercase
|
6503
6521
|
*
|
6522
|
+
* Note: [🔂] This function is idempotent.
|
6523
|
+
*
|
6504
6524
|
* @public exported from `@promptbook/utils`
|
6505
6525
|
*/
|
6506
6526
|
function capitalize(word) {
|
@@ -13052,7 +13072,9 @@
|
|
13052
13072
|
*/
|
13053
13073
|
|
13054
13074
|
/**
|
13055
|
-
* Makes first letter of a string
|
13075
|
+
* Makes first letter of a string lowercase
|
13076
|
+
*
|
13077
|
+
* Note: [🔂] This function is idempotent.
|
13056
13078
|
*
|
13057
13079
|
* @public exported from `@promptbook/utils`
|
13058
13080
|
*/
|
@@ -13122,6 +13144,8 @@
|
|
13122
13144
|
/**
|
13123
13145
|
* Take every whitespace (space, new line, tab) and replace it with a single space
|
13124
13146
|
*
|
13147
|
+
* Note: [🔂] This function is idempotent.
|
13148
|
+
*
|
13125
13149
|
* @public exported from `@promptbook/utils`
|
13126
13150
|
*/
|
13127
13151
|
function normalizeWhitespaces(sentence) {
|
@@ -13131,6 +13155,7 @@
|
|
13131
13155
|
/**
|
13132
13156
|
* Function parseNumber will parse number from string
|
13133
13157
|
*
|
13158
|
+
* Note: [🔂] This function is idempotent.
|
13134
13159
|
* Unlike Number.parseInt, Number.parseFloat it will never ever result in NaN
|
13135
13160
|
* Note: it also works only with decimal numbers
|
13136
13161
|
*
|
@@ -13199,6 +13224,7 @@
|
|
13199
13224
|
/**
|
13200
13225
|
* Removes quotes from a string
|
13201
13226
|
*
|
13227
|
+
* Note: [🔂] This function is idempotent.
|
13202
13228
|
* Tip: This is very useful for post-processing of the result of the LLM model
|
13203
13229
|
* Note: This function removes only the same quotes from the beginning and the end of the string
|
13204
13230
|
* Note: There are two similar functions:
|
@@ -13222,6 +13248,7 @@
|
|
13222
13248
|
/**
|
13223
13249
|
* Function trimCodeBlock will trim starting and ending code block from the string if it is present.
|
13224
13250
|
*
|
13251
|
+
* Note: [🔂] This function is idempotent.
|
13225
13252
|
* Note: This is useful for post-processing of the result of the chat LLM model
|
13226
13253
|
* when the model wraps the result in the (markdown) code block.
|
13227
13254
|
*
|