@promptbook/markdown-utils 0.104.0-13 → 0.104.0-14
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 +25 -17
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/_packages/components.index.d.ts +0 -6
- package/esm/typings/src/book-components/Chat/types/ChatMessage.d.ts +4 -1
- package/esm/typings/src/book-components/_common/Dropdown/Dropdown.d.ts +5 -1
- package/esm/typings/src/book-components/_common/HamburgerMenu/HamburgerMenu.d.ts +4 -0
- package/esm/typings/src/book-components/icons/AboutIcon.d.ts +5 -1
- package/esm/typings/src/book-components/icons/AttachmentIcon.d.ts +6 -2
- package/esm/typings/src/book-components/icons/CameraIcon.d.ts +6 -2
- package/esm/typings/src/book-components/icons/DownloadIcon.d.ts +5 -1
- package/esm/typings/src/book-components/icons/MenuIcon.d.ts +5 -1
- package/esm/typings/src/book-components/icons/SaveIcon.d.ts +6 -2
- package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +7 -5
- package/esm/typings/src/llm-providers/_common/utils/count-total-usage/countUsage.d.ts +7 -3
- package/esm/typings/src/llm-providers/_multiple/joinLlmExecutionTools.d.ts +11 -7
- package/esm/typings/src/remote-server/ui/ServerApp.d.ts +5 -1
- package/esm/typings/src/types/typeAliasEmoji.d.ts +2 -2
- package/esm/typings/src/utils/random/$randomAgentPersona.d.ts +4 -0
- package/esm/typings/src/version.d.ts +1 -1
- package/package.json +1 -1
- package/umd/index.umd.js +25 -17
- package/umd/index.umd.js.map +1 -1
|
@@ -44,13 +44,10 @@ import type { ChatParticipant } from '../book-components/Chat/types/ChatParticip
|
|
|
44
44
|
import type { MessageButton } from '../book-components/Chat/utils/parseMessageButtons';
|
|
45
45
|
import { parseMessageButtons } from '../book-components/Chat/utils/parseMessageButtons';
|
|
46
46
|
import { ArrowIcon } from '../book-components/icons/ArrowIcon';
|
|
47
|
-
import { AttachmentIcon } from '../book-components/icons/AttachmentIcon';
|
|
48
|
-
import { CameraIcon } from '../book-components/icons/CameraIcon';
|
|
49
47
|
import { MicIcon } from '../book-components/icons/MicIcon';
|
|
50
48
|
import { PauseIcon } from '../book-components/icons/PauseIcon';
|
|
51
49
|
import { PlayIcon } from '../book-components/icons/PlayIcon';
|
|
52
50
|
import { ResetIcon } from '../book-components/icons/ResetIcon';
|
|
53
|
-
import { SaveIcon } from '../book-components/icons/SaveIcon';
|
|
54
51
|
import { SendIcon } from '../book-components/icons/SendIcon';
|
|
55
52
|
import { TemplateIcon } from '../book-components/icons/TemplateIcon';
|
|
56
53
|
import { PromptbookAgentIntegration } from '../book-components/PromptbookAgent/PromptbookAgentIntegration';
|
|
@@ -105,13 +102,10 @@ export type { ChatParticipant };
|
|
|
105
102
|
export type { MessageButton };
|
|
106
103
|
export { parseMessageButtons };
|
|
107
104
|
export { ArrowIcon };
|
|
108
|
-
export { AttachmentIcon };
|
|
109
|
-
export { CameraIcon };
|
|
110
105
|
export { MicIcon };
|
|
111
106
|
export { PauseIcon };
|
|
112
107
|
export { PlayIcon };
|
|
113
108
|
export { ResetIcon };
|
|
114
|
-
export { SaveIcon };
|
|
115
109
|
export { SendIcon };
|
|
116
110
|
export { TemplateIcon };
|
|
117
111
|
export { PromptbookAgentIntegration };
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { Message } from '../../../types/Message';
|
|
2
2
|
import type { id, string_markdown } from '../../../types/typeAliases';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Represents a single message within a chat interface.
|
|
5
|
+
*
|
|
6
|
+
* This type extends the base `Message` type by omitting internal routing fields
|
|
7
|
+
* and adding chat-specific properties like markdown content and generation status.
|
|
5
8
|
*
|
|
6
9
|
* @public exported from `@promptbook/components`
|
|
7
10
|
*/
|
|
@@ -7,8 +7,12 @@ type DropdownProps = {
|
|
|
7
7
|
}>;
|
|
8
8
|
};
|
|
9
9
|
/**
|
|
10
|
-
* A dropdown menu component that displays a list of actions
|
|
10
|
+
* A dropdown menu component that displays a list of actions.
|
|
11
11
|
*
|
|
12
|
+
* The menu is toggled by a hamburger menu button. When an action is selected,
|
|
13
|
+
* the menu automatically closes.
|
|
14
|
+
*
|
|
15
|
+
* @param props - Contains an array of actions with icons, names, and click handlers
|
|
12
16
|
* @private internal subcomponent used by various components
|
|
13
17
|
*/
|
|
14
18
|
export declare function Dropdown({ actions }: DropdownProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -6,6 +6,10 @@ type HamburgerMenuProps = {
|
|
|
6
6
|
/**
|
|
7
7
|
* An animated hamburger menu button component.
|
|
8
8
|
*
|
|
9
|
+
* This component renders a 3-bar hamburger icon that animates into an "X" when
|
|
10
|
+
* the menu is open.
|
|
11
|
+
*
|
|
12
|
+
* @param props - Contains the open state, an optional click handler, and optional className
|
|
9
13
|
* @private Internal component
|
|
10
14
|
*/
|
|
11
15
|
export declare function HamburgerMenu({ isOpen, onClick, className }: HamburgerMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { SVGProps } from 'react';
|
|
2
2
|
/**
|
|
3
|
-
* Renders an about icon
|
|
3
|
+
* Renders an information/about icon.
|
|
4
4
|
*
|
|
5
|
+
* This icon is typically used in UI elements that provide additional information
|
|
6
|
+
* or "about" details to the user.
|
|
7
|
+
*
|
|
8
|
+
* @param props - SVG properties augmented with an optional `size`
|
|
5
9
|
* @private internal subcomponent used by various components
|
|
6
10
|
*/
|
|
7
11
|
export declare function AboutIcon(props: SVGProps<SVGSVGElement> & {
|
|
@@ -3,9 +3,13 @@ type AttachmentIconProps = {
|
|
|
3
3
|
color?: string;
|
|
4
4
|
};
|
|
5
5
|
/**
|
|
6
|
-
* Renders an attachment icon
|
|
6
|
+
* Renders an attachment icon.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
8
|
+
* This icon is typically used in chat interfaces to indicate the ability to
|
|
9
|
+
* upload or view files associated with a message.
|
|
10
|
+
*
|
|
11
|
+
* @param props - SVG properties augmented with an optional `size`
|
|
12
|
+
* @private internal subcomponent used by various components
|
|
9
13
|
*/
|
|
10
14
|
export declare function AttachmentIcon({ size, color }: AttachmentIconProps): import("react/jsx-runtime").JSX.Element;
|
|
11
15
|
export {};
|
|
@@ -3,9 +3,13 @@ type CameraIconProps = {
|
|
|
3
3
|
color?: string;
|
|
4
4
|
};
|
|
5
5
|
/**
|
|
6
|
-
* Renders a camera icon
|
|
6
|
+
* Renders a camera icon.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
8
|
+
* This icon is typically used in buttons or inputs that trigger image capture
|
|
9
|
+
* or selection.
|
|
10
|
+
*
|
|
11
|
+
* @param props - SVG properties augmented with an optional `size`
|
|
12
|
+
* @private internal subcomponent used by various components
|
|
9
13
|
*/
|
|
10
14
|
export declare function CameraIcon({ size, color }: CameraIconProps): import("react/jsx-runtime").JSX.Element;
|
|
11
15
|
export {};
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { SVGProps } from 'react';
|
|
2
2
|
/**
|
|
3
|
-
* Renders a download icon
|
|
3
|
+
* Renders a download icon.
|
|
4
4
|
*
|
|
5
|
+
* This icon is typically used in buttons or links that trigger the downloading
|
|
6
|
+
* of files or assets.
|
|
7
|
+
*
|
|
8
|
+
* @param props - SVG properties augmented with an optional `size`
|
|
5
9
|
* @private internal subcomponent used by various components
|
|
6
10
|
*/
|
|
7
11
|
export declare function DownloadIcon(props: SVGProps<SVGSVGElement> & {
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { SVGProps } from 'react';
|
|
2
2
|
/**
|
|
3
|
-
* Renders a menu icon
|
|
3
|
+
* Renders a menu icon.
|
|
4
4
|
*
|
|
5
|
+
* This icon is typically used in buttons that toggle the visibility of
|
|
6
|
+
* navigation menus or dropdowns.
|
|
7
|
+
*
|
|
8
|
+
* @param props - SVG properties augmented with an optional `size`
|
|
5
9
|
* @private internal subcomponent used by various components
|
|
6
10
|
*/
|
|
7
11
|
export declare function MenuIcon(props: SVGProps<SVGSVGElement> & {
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
/**
|
|
3
|
-
* Renders a save icon
|
|
3
|
+
* Renders a save icon.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* This icon is typically used in buttons that trigger the saving of data,
|
|
6
|
+
* configurations, or agent sources.
|
|
7
|
+
*
|
|
8
|
+
* @param props - SVG properties augmented with an optional `size`
|
|
9
|
+
* @private internal subcomponent used by various components
|
|
6
10
|
*/
|
|
7
11
|
export declare function SaveIcon({ size, color, ...props }: {
|
|
8
12
|
size?: number;
|
|
@@ -5,9 +5,12 @@ import type { string_agent_name, string_agent_permanent_id } from '../../../../t
|
|
|
5
5
|
import { AgentCollectionInSupabaseOptions } from './AgentCollectionInSupabaseOptions';
|
|
6
6
|
import type { AgentsDatabaseSchema } from './AgentsDatabaseSchema';
|
|
7
7
|
/**
|
|
8
|
-
* Agent collection stored in Supabase table
|
|
8
|
+
* Agent collection stored in a Supabase table.
|
|
9
9
|
*
|
|
10
|
-
*
|
|
10
|
+
* This class provides a way to manage a collection of agents (pipelines) using Supabase
|
|
11
|
+
* as the storage backend. It supports listing, creating, updating, and soft-deleting agents.
|
|
12
|
+
*
|
|
13
|
+
* Note: This object can work both from Node.js and browser environment depending on the Supabase client provided.
|
|
11
14
|
*
|
|
12
15
|
* @public exported from `@promptbook/core`
|
|
13
16
|
* <- TODO: [🐱🚀] Move to `@promptbook/supabase` package
|
|
@@ -16,9 +19,8 @@ export declare class AgentCollectionInSupabase {
|
|
|
16
19
|
private readonly supabaseClient;
|
|
17
20
|
readonly options?: AgentCollectionInSupabaseOptions | undefined;
|
|
18
21
|
/**
|
|
19
|
-
* @param
|
|
20
|
-
* @param
|
|
21
|
-
* @param options - Options for the collection creation
|
|
22
|
+
* @param supabaseClient - The initialized Supabase client
|
|
23
|
+
* @param options - Configuration options for the collection (e.g., table prefix, verbosity)
|
|
22
24
|
*/
|
|
23
25
|
constructor(supabaseClient: SupabaseClient<AgentsDatabaseSchema>, options?: AgentCollectionInSupabaseOptions | undefined);
|
|
24
26
|
/**
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import type { LlmExecutionTools } from '../../../../execution/LlmExecutionTools';
|
|
2
2
|
import type { LlmExecutionToolsWithTotalUsage } from './LlmExecutionToolsWithTotalUsage';
|
|
3
3
|
/**
|
|
4
|
-
* Intercepts LLM tools and counts total usage of the tools
|
|
4
|
+
* Intercepts LLM tools and counts total usage of the tools.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
6
|
+
* This function wraps the provided `LlmExecutionTools` with a proxy that tracks the cumulative
|
|
7
|
+
* usage (tokens, cost, etc.) across all model calls. It provides a way to monitor spending
|
|
8
|
+
* in real-time through an observable.
|
|
9
|
+
*
|
|
10
|
+
* @param llmTools - The LLM tools to be intercepted and tracked
|
|
11
|
+
* @returns An augmented version of the tools that includes usage tracking capabilities
|
|
8
12
|
* @public exported from `@promptbook/core`
|
|
9
13
|
*/
|
|
10
14
|
export declare function countUsage(llmTools: LlmExecutionTools): LlmExecutionToolsWithTotalUsage;
|
|
@@ -2,17 +2,21 @@ import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
|
|
|
2
2
|
import type { string_markdown_text, string_title } from '../../types/typeAliases';
|
|
3
3
|
import { MultipleLlmExecutionTools } from './MultipleLlmExecutionTools';
|
|
4
4
|
/**
|
|
5
|
-
* Joins multiple LLM Execution Tools into one
|
|
5
|
+
* Joins multiple LLM Execution Tools into one.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* This function takes a list of `LlmExecutionTools` and returns a single unified
|
|
8
|
+
* `MultipleLlmExecutionTools` object. It provides failover and aggregation logic:
|
|
8
9
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* 2
|
|
12
|
-
* 3
|
|
10
|
+
* 1. **Failover**: When a model call is made, it tries providers in the order they were provided.
|
|
11
|
+
* If the first provider doesn't support the requested model or fails, it tries the next one.
|
|
12
|
+
* 2. **Aggregation**: `listModels` returns a combined list of all models available from all providers.
|
|
13
|
+
* 3. **Empty case**: If no tools are provided, it logs a warning (as Promptbook requires LLMs to function).
|
|
13
14
|
*
|
|
15
|
+
* @param title - A descriptive title for this collection of joined tools
|
|
16
|
+
* @param llmExecutionTools - An array of execution tools to be joined
|
|
17
|
+
* @returns A single unified execution tool wrapper
|
|
14
18
|
*
|
|
15
|
-
* Tip: You don't have to use this function directly, just pass an array of LlmExecutionTools to the `ExecutionTools
|
|
19
|
+
* Tip: You don't have to use this function directly, just pass an array of LlmExecutionTools to the `ExecutionTools`.
|
|
16
20
|
*
|
|
17
21
|
* @public exported from `@promptbook/core`
|
|
18
22
|
*/
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { ServerInfo } from './types';
|
|
2
2
|
/**
|
|
3
|
-
* Renders the HTML document for the Promptbook Server UI.
|
|
3
|
+
* Renders the full HTML document for the Promptbook Server UI.
|
|
4
4
|
*
|
|
5
|
+
* This component provides the root structure of the server information page,
|
|
6
|
+
* including necessary meta tags, Tailwind CSS styling, and the server details body.
|
|
7
|
+
*
|
|
8
|
+
* @param props - Contains server information such as versions, port, and pipelines
|
|
5
9
|
* @private internal utility of Remote Server
|
|
6
10
|
*/
|
|
7
11
|
export declare function HtmlDoc({ info }: {
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* For example `"❤️"`
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* > CollboardSdk.EMOJIS.map((
|
|
6
|
+
* Generated by:
|
|
7
|
+
* > CollboardSdk.EMOJIS.map((emoji) => `"${emoji}"`).join(' | ')
|
|
8
8
|
*/
|
|
9
9
|
export type string_char_emoji = '"😀" | "😃" | "😄" | "😁" | "😆" | "😅" | "😂" | "🤣" | "🥲" | "☺️" | "😊" | "😇" | "🙂" | "🙃" | "😉" | "😌" | "😍" | "🥰" | "😘" | "😗" | "😙" | "😚" | "😋" | "😛" | "😝" | "😜" | "🤪" | "🤨" | "🧐" | "🤓" | "😎" | "🥸" | "🤩" | "🥳" | "😏" | "😒" | "😞" | "😔" | "😟" | "😕" | "🙁" | "☹️" | "😣" | "😖" | "😫" | "😩" | "🥺" | "😢" | "😭" | "😤" | "😠" | "😡" | "🤬" | "🤯" | "😳" | "🥵" | "🥶" | "😱" | "😨" | "😰" | "😥" | "😓" | "🤗" | "🤔" | "🤭" | "🤫" | "🤥" | "😶" | "😐" | "😑" | "😬" | "🙄" | "😯" | "😦" | "😧" | "😮" | "😲" | "🥱" | "😴" | "🤤" | "😪" | "😵" | "🤐" | "🥴" | "🤢" | "🤮" | "🤧" | "😷" | "🤒" | "🤕" | "🤑" | "🤠" | "😈" | "👿" | "👹" | "👺" | "🤡" | "💩" | "👻" | "💀" | "☠️" | "👽" | "👾" | "🤖" | "🎃" | "😺" | "😸" | "😹" | "😻" | "😼" | "😽" | "🙀" | "😿" | "😾" | "👋" | "🤚" | "🖐" | "✋" | "🖖" | "👌" | "🤌" | "🤏" | "✌️" | "🤞" | "🤟" | "🤘" | "🤙" | "👈" | "👉" | "👆" | "🖕" | "👇" | "☝️" | "👍" | "👎" | "✊" | "👊" | "🤛" | "🤜" | "👏" | "🙌" | "👐" | "🤲" | "🤝" | "🙏" | "✍️" | "💅" | "🤳" | "💪" | "🦾" | "🦵" | "🦿" | "🦶" | "👣" | "👂" | "🦻" | "👃" | "🫀" | "🫁" | "🧠" | "🦷" | "🦴" | "👀" | "👁" | "👅" | "👄" | "💋" | "🩸" | "👶" | "👧" | "🧒" | "👦" | "👩" | "🧑" | "👨" | "👩🦱" | "🧑🦱" | "👨🦱" | "👩🦰" | "🧑🦰" | "👨🦰" | "👱♀️" | "👱" | "👱♂️" | "👩🦳" | "🧑🦳" | "👨🦳" | "👩🦲" | "🧑🦲" | "👨🦲" | "🧔" | "👵" | "🧓" | "👴" | "👲" | "👳♀️" | "👳" | "👳♂️" | "🧕" | "👮♀️" | "👮" | "👮♂️" | "👷♀️" | "👷" | "👷♂️" | "💂♀️" | "💂" | "💂♂️" | "🕵️♀️" | "🕵️" | "🕵️♂️" | "👩⚕️" | "🧑⚕️" | "👨⚕️" | "👩🌾" | "🧑🌾" | "👨🌾" | "👩🍳" | "🧑🍳" | "👨🍳" | "👩🎓" | "🧑🎓" | "👨🎓" | "👩🎤" | "🧑🎤" | "👨🎤" | "👩🏫" | "🧑🏫" | "👨🏫" | "👩🏭" | "🧑🏭" | "👨🏭" | "👩💻" | "🧑💻" | "👨💻" | "👩💼" | "🧑💼" | "👨💼" | "👩🔧" | "🧑🔧" | "👨🔧" | "👩🔬" | "🧑🔬" | "👨🔬" | "👩🎨" | "🧑🎨" | "👨🎨" | "👩🚒" | "🧑🚒" | "👨🚒" | "👩✈️" | "🧑✈️" | "👨✈️" | "👩🚀" | "🧑🚀" | "👨🚀" | "👩⚖️" | "🧑⚖️" | "👨⚖️" | "👰♀️" | "👰" | "👰♂️" | "🤵♀️" | "🤵" | "🤵♂️" | "👸" | "🤴" | "🥷" | "🦸♀️" | "🦸" | "🦸♂️" | "🦹♀️" | "🦹" | "🦹♂️" | "🤶" | "🧑🎄" | "🎅" | "🧙♀️" | "🧙" | "🧙♂️" | "🧝♀️" | "🧝" | "🧝♂️" | "🧛♀️" | "🧛" | "🧛♂️" | "🧟♀️" | "🧟" | "🧟♂️" | "🧞♀️" | "🧞" | "🧞♂️" | "🧜♀️" | "🧜" | "🧜♂️" | "🧚♀️" | "🧚" | "🧚♂️" | "👼" | "🤰" | "🤱" | "👩🍼" | "🧑🍼" | "👨🍼" | "🙇♀️" | "🙇" | "🙇♂️" | "💁♀️" | "💁" | "💁♂️" | "🙅♀️" | "🙅" | "🙅♂️" | "🙆♀️" | "🙆" | "🙆♂️" | "🙋♀️" | "🙋" | "🙋♂️" | "🧏♀️" | "🧏" | "🧏♂️" | "🤦♀️" | "🤦" | "🤦♂️" | "🤷♀️" | "🤷" | "🤷♂️" | "🙎♀️" | "🙎" | "🙎♂️" | "🙍♀️" | "🙍" | "🙍♂️" | "💇♀️" | "💇" | "💇♂️" | "💆♀️" | "💆" | "💆♂️" | "🧖♀️" | "🧖" | "🧖♂️" | "💃" | "🕺" | "👯♀️" | "👯" | "👯♂️" | "🕴" | "👩🦽" | "🧑🦽" | "👨🦽" | "👩🦼" | "🧑🦼" | "👨🦼" | "🚶♀️" | "🚶" | "🚶♂️" | "👩🦯" | "🧑🦯" | "👨🦯" | "🧎♀️" | "🧎" | "🧎♂️" | "🏃♀️" | "🏃" | "🏃♂️" | "🧍♀️" | "🧍" | "🧍♂️" | "👭" | "🧑🤝🧑" | "👬" | "👫" | "👩❤️👩" | "💑" | "👨❤️👨" | "👩❤️👨" | "👩❤️💋👩" | "💏" | "👨❤️💋👨" | "👩❤️💋👨" | "👪" | "👨👩👦" | "👨👩👧" | "👨👩👧👦" | "👨👩👦👦" | "👨👩👧👧" | "👨👨👦" | "👨👨👧" | "👨👨👧👦" | "👨👨👦👦" | "👨👨👧👧" | "👩👩👦" | "👩👩👧" | "👩👩👧👦" | "👩👩👦👦" | "👩👩👧👧" | "👨👦" | "👨👦👦" | "👨👧" | "👨👧👦" | "👨👧👧" | "👩👦" | "👩👦👦" | "👩👧" | "👩👧👦" | "👩👧👧" | "🗣" | "👤" | "👥" | "🫂" | "🧳" | "🌂" | "☂️" | "🧵" | "🪡" | "🪢" | "🧶" | "👓" | "🕶" | "🥽" | "🥼" | "🦺" | "👔" | "👕" | "👖" | "🧣" | "🧤" | "🧥" | "🧦" | "👗" | "👘" | "🥻" | "🩴" | "🩱" | "🩲" | "🩳" | "👙" | "👚" | "👛" | "👜" | "👝" | "🎒" | "👞" | "👟" | "🥾" | "🥿" | "👠" | "👡" | "🩰" | "👢" | "👑" | "👒" | "🎩" | "🎓" | "🧢" | "⛑" | "🪖" | "💄" | "💍" | "💼" | "👋🏻" | "🤚🏻" | "🖐🏻" | "✋🏻" | "🖖🏻" | "👌🏻" | "🤌🏻" | "🤏🏻" | "✌🏻" | "🤞🏻" | "🤟🏻" | "🤘🏻" | "🤙🏻" | "👈🏻" | "👉🏻" | "👆🏻" | "🖕🏻" | "👇🏻" | "☝🏻" | "👍🏻" | "👎🏻" | "✊🏻" | "👊🏻" | "🤛🏻" | "🤜🏻" | "👏🏻" | "🙌🏻" | "👐🏻" | "🤲🏻" | "🙏🏻" | "✍🏻" | "💅🏻" | "🤳🏻" | "💪🏻" | "🦵🏻" | "🦶🏻" | "👂🏻" | "🦻🏻" | "👃🏻" | "👶🏻" | "👧🏻" | "🧒🏻" | "👦🏻" | "👩🏻" | "🧑🏻" | "👨🏻" | "👩🏻🦱" | "🧑🏻🦱" | "👨🏻🦱" | "👩🏻🦰" | "🧑🏻🦰" | "👨🏻🦰" | "👱🏻♀️" | "👱🏻" | "👱🏻♂️" | "👩🏻🦳" | "🧑🏻🦳" | "👨🏻🦳" | "👩🏻🦲" | "🧑🏻🦲" | "👨🏻🦲" | "🧔🏻" | "👵🏻" | "🧓🏻" | "👴🏻" | "👲🏻" | "👳🏻♀️" | "👳🏻" | "👳🏻♂️" | "🧕🏻" | "👮🏻♀️" | "👮🏻" | "👮🏻♂️" | "👷🏻♀️" | "👷🏻" | "👷🏻♂️" | "💂🏻♀️" | "💂🏻" | "💂🏻♂️" | "🕵🏻♀️" | "🕵🏻" | "🕵🏻♂️" | "👩🏻⚕️" | "🧑🏻⚕️" | "👨🏻⚕️" | "👩🏻🌾" | "🧑🏻🌾" | "👨🏻🌾" | "👩🏻🍳" | "🧑🏻🍳" | "👨🏻🍳" | "👩🏻🎓" | "🧑🏻🎓" | "👨🏻🎓" | "👩🏻🎤" | "🧑🏻🎤" | "👨🏻🎤" | "👩🏻🏫" | "🧑🏻🏫" | "👨🏻🏫" | "👩🏻🏭" | "🧑🏻🏭" | "👨🏻🏭" | "👩🏻💻" | "🧑🏻💻" | "👨🏻💻" | "👩🏻💼" | "🧑🏻💼" | "👨🏻💼" | "👩🏻🔧" | "🧑🏻🔧" | "👨🏻🔧" | "👩🏻🔬" | "🧑🏻🔬" | "👨🏻🔬" | "👩🏻🎨" | "🧑🏻🎨" | "👨🏻🎨" | "👩🏻🚒" | "🧑🏻🚒" | "👨🏻🚒" | "👩🏻✈️" | "🧑🏻✈️" | "👨🏻✈️" | "👩🏻🚀" | "🧑🏻🚀" | "👨🏻🚀" | "👩🏻⚖️" | "🧑🏻⚖️" | "👨🏻⚖️" | "👰🏻♀️" | "👰🏻" | "👰🏻♂️" | "🤵🏻♀️" | "🤵🏻" | "🤵🏻♂️" | "👸🏻" | "🤴🏻" | "🥷🏻" | "🦸🏻♀️" | "🦸🏻" | "🦸🏻♂️" | "🦹🏻♀️" | "🦹🏻" | "🦹🏻♂️" | "🤶🏻" | "🧑🏻🎄" | "🎅🏻" | "🧙🏻♀️" | "🧙🏻" | "🧙🏻♂️" | "🧝🏻♀️" | "🧝🏻" | "🧝🏻♂️" | "🧛🏻♀️" | "🧛🏻" | "🧛🏻♂️" | "🧜🏻♀️" | "🧜🏻" | "🧜🏻♂️" | "🧚🏻♀️" | "🧚🏻" | "🧚🏻♂️" | "👼🏻" | "🤰🏻" | "🤱🏻" | "👩🏻🍼" | "🧑🏻🍼" | "👨🏻🍼" | "🙇🏻♀️" | "🙇🏻" | "🙇🏻♂️" | "💁🏻♀️" | "💁🏻" | "💁🏻♂️" | "🙅🏻♀️" | "🙅🏻" | "🙅🏻♂️" | "🙆🏻♀️" | "🙆🏻" | "🙆🏻♂️" | "🙋🏻♀️" | "🙋🏻" | "🙋🏻♂️" | "🧏🏻♀️" | "🧏🏻" | "🧏🏻♂️" | "🤦🏻♀️" | "🤦🏻" | "🤦🏻♂️" | "🤷🏻♀️" | "🤷🏻" | "🤷🏻♂️" | "🙎🏻♀️" | "🙎🏻" | "🙎🏻♂️" | "🙍🏻♀️" | "🙍🏻" | "🙍🏻♂️" | "💇🏻♀️" | "💇🏻" | "💇🏻♂️" | "💆🏻♀️" | "💆🏻" | "💆🏻♂️" | "🧖🏻♀️" | "🧖🏻" | "🧖🏻♂️" | "💃🏻" | "🕺🏻" | "🕴🏻" | "👩🏻🦽" | "🧑🏻🦽" | "👨🏻🦽" | "👩🏻🦼" | "🧑🏻🦼" | "👨🏻🦼" | "🚶🏻♀️" | "🚶🏻" | "🚶🏻♂️" | "👩🏻🦯" | "🧑🏻🦯" | "👨🏻🦯" | "🧎🏻♀️" | "🧎🏻" | "🧎🏻♂️" | "🏃🏻♀️" | "🏃🏻" | "🏃🏻♂️" | "🧍🏻♀️" | "🧍🏻" | "🧍🏻♂️" | "👭🏻" | "🧑🏻🤝🧑🏻" | "👬🏻" | "👫🏻" | "🧗🏻♀️" | "🧗🏻" | "🧗🏻♂️" | "🏇🏻" | "🏂🏻" | "🏌🏻♀️" | "🏌🏻" | "🏌🏻♂️" | "🏄🏻♀️" | "🏄🏻" | "🏄🏻♂️" | "🚣🏻♀️" | "🚣🏻" | "🚣🏻♂️" | "🏊🏻♀️" | "🏊🏻" | "🏊🏻♂️" | "⛹🏻♀️" | "⛹🏻" | "⛹🏻♂️" | "🏋🏻♀️" | "🏋🏻" | "🏋🏻♂️" | "🚴🏻♀️" | "🚴🏻" | "🚴🏻♂️" | "🚵🏻♀️" | "🚵🏻" | "🚵🏻♂️" | "🤸🏻♀️" | "🤸🏻" | "🤸🏻♂️" | "🤽🏻♀️" | "🤽🏻" | "🤽🏻♂️" | "🤾🏻♀️" | "🤾🏻" | "🤾🏻♂️" | "🤹🏻♀️" | "🤹🏻" | "🤹🏻♂️" | "🧘🏻♀️" | "🧘🏻" | "🧘🏻♂️" | "🛀🏻" | "🛌" | "👋🏼" | "🤚🏼" | "🖐🏼" | "✋🏼" | "🖖🏼" | "👌🏼" | "🤌🏼" | "🤏🏼" | "✌🏼" | "🤞🏼" | "🤟🏼" | "🤘🏼" | "🤙🏼" | "👈🏼" | "👉🏼" | "👆🏼" | "🖕🏼" | "👇🏼" | "☝🏼" | "👍🏼" | "👎🏼" | "✊🏼" | "👊🏼" | "🤛🏼" | "🤜🏼" | "👏🏼" | "🙌🏼" | "👐🏼" | "🤲🏼" | "🙏🏼" | "✍🏼" | "💅🏼" | "🤳🏼" | "💪🏼" | "🦵🏼" | "🦶🏼" | "👂🏼" | "🦻🏼" | "👃🏼" | "👶🏼" | "👧🏼" | "🧒🏼" | "👦🏼" | "👩🏼" | "🧑🏼" | "👨🏼" | "👩🏼🦱" | "🧑🏼🦱" | "👨🏼🦱" | "👩🏼🦰" | "🧑🏼🦰" | "👨🏼🦰" | "👱🏼♀️" | "👱🏼" | "👱🏼♂️" | "👩🏼🦳" | "🧑🏼🦳" | "👨🏼🦳" | "👩🏼🦲" | "🧑🏼🦲" | "👨🏼🦲" | "🧔🏼" | "👵🏼" | "🧓🏼" | "👴🏼" | "👲🏼" | "👳🏼♀️" | "👳🏼" | "👳🏼♂️" | "🧕🏼" | "👮🏼♀️" | "👮🏼" | "👮🏼♂️" | "👷🏼♀️" | "👷🏼" | "👷🏼♂️" | "💂🏼♀️" | "💂🏼" | "💂🏼♂️" | "🕵🏼♀️" | "🕵🏼" | "🕵🏼♂️" | "👩🏼⚕️" | "🧑🏼⚕️" | "👨🏼⚕️" | "👩🏼🌾" | "🧑🏼🌾" | "👨🏼🌾" | "👩🏼🍳" | "🧑🏼🍳" | "👨🏼🍳" | "👩🏼🎓" | "🧑🏼🎓" | "👨🏼🎓" | "👩🏼🎤" | "🧑🏼🎤" | "👨🏼🎤" | "👩🏼🏫" | "🧑🏼🏫" | "👨🏼🏫" | "👩🏼🏭" | "🧑🏼🏭" | "👨🏼🏭" | "👩🏼💻" | "🧑🏼💻" | "👨🏼💻" | "👩🏼💼" | "🧑🏼💼" | "👨🏼💼" | "👩🏼🔧" | "🧑🏼🔧" | "👨🏼🔧" | "👩🏼🔬" | "🧑🏼🔬" | "👨🏼🔬" | "👩🏼🎨" | "🧑🏼🎨" | "👨🏼🎨" | "👩🏼🚒" | "🧑🏼🚒" | "👨🏼🚒" | "👩🏼✈️" | "🧑🏼✈️" | "👨🏼✈️" | "👩🏼🚀" | "🧑🏼🚀" | "👨🏼🚀" | "👩🏼⚖️" | "🧑🏼⚖️" | "👨🏼⚖️" | "👰🏼♀️" | "👰🏼" | "👰🏼♂️" | "🤵🏼♀️" | "🤵🏼" | "🤵🏼♂️" | "👸🏼" | "🤴🏼" | "🥷🏼" | "🦸🏼♀️" | "🦸🏼" | "🦸🏼♂️" | "🦹🏼♀️" | "🦹🏼" | "🦹🏼♂️" | "🤶🏼" | "🧑🏼🎄" | "🎅🏼" | "🧙🏼♀️" | "🧙🏼" | "🧙🏼♂️" | "🧝🏼♀️" | "🧝🏼" | "🧝🏼♂️" | "🧛🏼♀️" | "🧛🏼" | "🧛🏼♂️" | "🧜🏼♀️" | "🧜🏼" | "🧜🏼♂️" | "🧚🏼♀️" | "🧚🏼" | "🧚🏼♂️" | "👼🏼" | "🤰🏼" | "🤱🏼" | "👩🏼🍼" | "🧑🏼🍼" | "👨🏼🍼" | "🙇🏼♀️" | "🙇🏼" | "🙇🏼♂️" | "💁🏼♀️" | "💁🏼" | "💁🏼♂️" | "🙅🏼♀️" | "🙅🏼" | "🙅🏼♂️" | "🙆🏼♀️" | "🙆🏼" | "🙆🏼♂️" | "🙋🏼♀️" | "🙋🏼" | "🙋🏼♂️" | "🧏🏼♀️" | "🧏🏼" | "🧏🏼♂️" | "🤦🏼♀️" | "🤦🏼" | "🤦🏼♂️" | "🤷🏼♀️" | "🤷🏼" | "🤷🏼♂️" | "🙎🏼♀️" | "🙎🏼" | "🙎🏼♂️" | "🙍🏼♀️" | "🙍🏼" | "🙍🏼♂️" | "💇🏼♀️" | "💇🏼" | "💇🏼♂️" | "💆🏼♀️" | "💆🏼" | "💆🏼♂️" | "🧖🏼♀️" | "🧖🏼" | "🧖🏼♂️" | "💃🏼" | "🕺🏼" | "🕴🏼" | "👩🏼🦽" | "🧑🏼🦽" | "👨🏼🦽" | "👩🏼🦼" | "🧑🏼🦼" | "👨🏼🦼" | "🚶🏼♀️" | "🚶🏼" | "🚶🏼♂️" | "👩🏼🦯" | "🧑🏼🦯" | "👨🏼🦯" | "🧎🏼♀️" | "🧎🏼" | "🧎🏼♂️" | "🏃🏼♀️" | "🏃🏼" | "🏃🏼♂️" | "🧍🏼♀️" | "🧍🏼" | "🧍🏼♂️" | "👭🏼" | "🧑🏼🤝🧑🏼" | "👬🏼" | "👫🏼" | "🧗🏼♀️" | "🧗🏼" | "🧗🏼♂️" | "🏇🏼" | "🏂🏼" | "🏌🏼♀️" | "🏌🏼" | "🏌🏼♂️" | "🏄🏼♀️" | "🏄🏼" | "🏄🏼♂️" | "🚣🏼♀️" | "🚣🏼" | "🚣🏼♂️" | "🏊🏼♀️" | "🏊🏼" | "🏊🏼♂️" | "⛹🏼♀️" | "⛹🏼" | "⛹🏼♂️" | "🏋🏼♀️" | "🏋🏼" | "🏋🏼♂️" | "🚴🏼♀️" | "🚴🏼" | "🚴🏼♂️" | "🚵🏼♀️" | "🚵🏼" | "🚵🏼♂️" | "🤸🏼♀️" | "🤸🏼" | "🤸🏼♂️" | "🤽🏼♀️" | "🤽🏼" | "🤽🏼♂️" | "🤾🏼♀️" | "🤾🏼" | "🤾🏼♂️" | "🤹🏼♀️" | "🤹🏼" | "🤹🏼♂️" | "🧘🏼♀️" | "🧘🏼" | "🧘🏼♂️" | "🛀🏼" | "👋🏽" | "🤚🏽" | "🖐🏽" | "✋🏽" | "🖖🏽" | "👌🏽" | "🤌🏽" | "🤏🏽" | "✌🏽" | "🤞🏽" | "🤟🏽" | "🤘🏽" | "🤙🏽" | "👈🏽" | "👉🏽" | "👆🏽" | "🖕🏽" | "👇🏽" | "☝🏽" | "👍🏽" | "👎🏽" | "✊🏽" | "👊🏽" | "🤛🏽" | "🤜🏽" | "👏🏽" | "🙌🏽" | "👐🏽" | "🤲🏽" | "🙏🏽" | "✍🏽" | "💅🏽" | "🤳🏽" | "💪🏽" | "🦵🏽" | "🦶🏽" | "👂🏽" | "🦻🏽" | "👃🏽" | "👶🏽" | "👧🏽" | "🧒🏽" | "👦🏽" | "👩🏽" | "🧑🏽" | "👨🏽" | "👩🏽🦱" | "🧑🏽🦱" | "👨🏽🦱" | "👩🏽🦰" | "🧑🏽🦰" | "👨🏽🦰" | "👱🏽♀️" | "👱🏽" | "👱🏽♂️" | "👩🏽🦳" | "🧑🏽🦳" | "👨🏽🦳" | "👩🏽🦲" | "🧑🏽🦲" | "👨🏽🦲" | "🧔🏽" | "👵🏽" | "🧓🏽" | "👴🏽" | "👲🏽" | "👳🏽♀️" | "👳🏽" | "👳🏽♂️" | "🧕🏽" | "👮🏽♀️" | "👮🏽" | "👮🏽♂️" | "👷🏽♀️" | "👷🏽" | "👷🏽♂️" | "💂🏽♀️" | "💂🏽" | "💂🏽♂️" | "🕵🏽♀️" | "🕵🏽" | "🕵🏽♂️" | "👩🏽⚕️" | "🧑🏽⚕️" | "👨🏽⚕️" | "👩🏽🌾" | "🧑🏽🌾" | "👨🏽🌾" | "👩🏽🍳" | "🧑🏽🍳" | "👨🏽🍳" | "👩🏽🎓" | "🧑🏽🎓" | "👨🏽🎓" | "👩🏽🎤" | "🧑🏽🎤" | "👨🏽🎤" | "👩🏽🏫" | "🧑🏽🏫" | "👨🏽🏫" | "👩🏽🏭" | "🧑🏽🏭" | "👨🏽🏭" | "👩🏽💻" | "🧑🏽💻" | "👨🏽💻" | "👩🏽💼" | "🧑🏽💼" | "👨🏽💼" | "👩🏽🔧" | "🧑🏽🔧" | "👨🏽🔧" | "👩🏽🔬" | "🧑🏽🔬" | "👨🏽🔬" | "👩🏽🎨" | "🧑🏽🎨" | "👨🏽🎨" | "👩🏽🚒" | "🧑🏽🚒" | "👨🏽🚒" | "👩🏽✈️" | "🧑🏽✈️" | "👨🏽✈️" | "👩🏽🚀" | "🧑🏽🚀" | "👨🏽🚀" | "👩🏽⚖️" | "🧑🏽⚖️" | "👨🏽⚖️" | "👰🏽♀️" | "👰🏽" | "👰🏽♂️" | "🤵🏽♀️" | "🤵🏽" | "🤵🏽♂️" | "👸🏽" | "🤴🏽" | "🥷🏽" | "🦸🏽♀️" | "🦸🏽" | "🦸🏽♂️" | "🦹🏽♀️" | "🦹🏽" | "🦹🏽♂️" | "🤶🏽" | "🧑🏽🎄" | "🎅🏽" | "🧙🏽♀️" | "🧙🏽" | "🧙🏽♂️" | "🧝🏽♀️" | "🧝🏽" | "🧝🏽♂️" | "🧛🏽♀️" | "🧛🏽" | "🧛🏽♂️" | "🧜🏽♀️" | "🧜🏽" | "🧜🏽♂️" | "🧚🏽♀️" | "🧚🏽" | "🧚🏽♂️" | "👼🏽" | "🤰🏽" | "🤱🏽" | "👩🏽🍼" | "🧑🏽🍼" | "👨🏽🍼" | "🙇🏽♀️" | "🙇🏽" | "🙇🏽♂️" | "💁🏽♀️" | "💁🏽" | "💁🏽♂️" | "🙅🏽♀️" | "🙅🏽" | "🙅🏽♂️" | "🙆🏽♀️" | "🙆🏽" | "🙆🏽♂️" | "🙋🏽♀️" | "🙋🏽" | "🙋🏽♂️" | "🧏🏽♀️" | "🧏🏽" | "🧏🏽♂️" | "🤦🏽♀️" | "🤦🏽" | "🤦🏽♂️" | "🤷🏽♀️" | "🤷🏽" | "🤷🏽♂️" | "🙎🏽♀️" | "🙎🏽" | "🙎🏽♂️" | "🙍🏽♀️" | "🙍🏽" | "🙍🏽♂️" | "💇🏽♀️" | "💇🏽" | "💇🏽♂️" | "💆🏽♀️" | "💆🏽" | "💆🏽♂️" | "🧖🏽♀️" | "🧖🏽" | "🧖🏽♂️" | "💃🏽" | "🕺🏽" | "🕴🏽" | "👩🏽🦽" | "🧑🏽🦽" | "👨🏽🦽" | "👩🏽🦼" | "🧑🏽🦼" | "👨🏽🦼" | "🚶🏽♀️" | "🚶🏽" | "🚶🏽♂️" | "👩🏽🦯" | "🧑🏽🦯" | "👨🏽🦯" | "🧎🏽♀️" | "🧎🏽" | "🧎🏽♂️" | "🏃🏽♀️" | "🏃🏽" | "🏃🏽♂️" | "🧍🏽♀️" | "🧍🏽" | "🧍🏽♂️" | "👭🏽" | "🧑🏽🤝🧑🏽" | "👬🏽" | "👫🏽" | "🧗🏽♀️" | "🧗🏽" | "🧗🏽♂️" | "🏇🏽" | "🏂🏽" | "🏌🏽♀️" | "🏌🏽" | "🏌🏽♂️" | "🏄🏽♀️" | "🏄🏽" | "🏄🏽♂️" | "🚣🏽♀️" | "🚣🏽" | "🚣🏽♂️" | "🏊🏽♀️" | "🏊🏽" | "🏊🏽♂️" | "⛹🏽♀️" | "⛹🏽" | "⛹🏽♂️" | "🏋🏽♀️" | "🏋🏽" | "🏋🏽♂️" | "🚴🏽♀️" | "🚴🏽" | "🚴🏽♂️" | "🚵🏽♀️" | "🚵🏽" | "🚵🏽♂️" | "🤸🏽♀️" | "🤸🏽" | "🤸🏽♂️" | "🤽🏽♀️" | "🤽🏽" | "🤽🏽♂️" | "🤾🏽♀️" | "🤾🏽" | "🤾🏽♂️" | "🤹🏽♀️" | "🤹🏽" | "🤹🏽♂️" | "🧘🏽♀️" | "🧘🏽" | "🧘🏽♂️" | "🛀🏽" | "👋🏾" | "🤚🏾" | "🖐🏾" | "✋🏾" | "🖖🏾" | "👌🏾" | "🤌🏾" | "🤏🏾" | "✌🏾" | "🤞🏾" | "🤟🏾" | "🤘🏾" | "🤙🏾" | "👈🏾" | "👉🏾" | "👆🏾" | "🖕🏾" | "👇🏾" | "☝🏾" | "👍🏾" | "👎🏾" | "✊🏾" | "👊🏾" | "🤛🏾" | "🤜🏾" | "👏🏾" | "🙌🏾" | "👐🏾" | "🤲🏾" | "🙏🏾" | "✍🏾" | "💅🏾" | "🤳🏾" | "💪🏾" | "🦵🏾" | "🦶🏾" | "👂🏾" | "🦻🏾" | "👃🏾" | "👶🏾" | "👧🏾" | "🧒🏾" | "👦🏾" | "👩🏾" | "🧑🏾" | "👨🏾" | "👩🏾🦱" | "🧑🏾🦱" | "👨🏾🦱" | "👩🏾🦰" | "🧑🏾🦰" | "👨🏾🦰" | "👱🏾♀️" | "👱🏾" | "👱🏾♂️" | "👩🏾🦳" | "🧑🏾🦳" | "👨🏾🦳" | "👩🏾🦲" | "🧑🏾🦲" | "👨🏾🦲" | "🧔🏾" | "👵🏾" | "🧓🏾" | "👴🏾" | "👲🏾" | "👳🏾♀️" | "👳🏾" | "👳🏾♂️" | "🧕🏾" | "👮🏾♀️" | "👮🏾" | "👮🏾♂️" | "👷🏾♀️" | "👷🏾" | "👷🏾♂️" | "💂🏾♀️" | "💂🏾" | "💂🏾♂️" | "🕵🏾♀️" | "🕵🏾" | "🕵🏾♂️" | "👩🏾⚕️" | "🧑🏾⚕️" | "👨🏾⚕️" | "👩🏾🌾" | "🧑🏾🌾" | "👨🏾🌾" | "👩🏾🍳" | "🧑🏾🍳" | "👨🏾🍳" | "👩🏾🎓" | "🧑🏾🎓" | "👨🏾🎓" | "👩🏾🎤" | "🧑🏾🎤" | "👨🏾🎤" | "👩🏾🏫" | "🧑🏾🏫" | "👨🏾🏫" | "👩🏾🏭" | "🧑🏾🏭" | "👨🏾🏭" | "👩🏾💻" | "🧑🏾💻" | "👨🏾💻" | "👩🏾💼" | "🧑🏾💼" | "👨🏾💼" | "👩🏾🔧" | "🧑🏾🔧" | "👨🏾🔧" | "👩🏾🔬" | "🧑🏾🔬" | "👨🏾🔬" | "👩🏾🎨" | "🧑🏾🎨" | "👨🏾🎨" | "👩🏾🚒" | "🧑🏾🚒" | "👨🏾🚒" | "👩🏾✈️" | "🧑🏾✈️" | "👨🏾✈️" | "👩🏾🚀" | "🧑🏾🚀" | "👨🏾🚀" | "👩🏾⚖️" | "🧑🏾⚖️" | "👨🏾⚖️" | "👰🏾♀️" | "👰🏾" | "👰🏾♂️" | "🤵🏾♀️" | "🤵🏾" | "🤵🏾♂️" | "👸🏾" | "🤴🏾" | "🥷🏾" | "🦸🏾♀️" | "🦸🏾" | "🦸🏾♂️" | "🦹🏾♀️" | "🦹🏾" | "🦹🏾♂️" | "🤶🏾" | "🧑🏾🎄" | "🎅🏾" | "🧙🏾♀️" | "🧙🏾" | "🧙🏾♂️" | "🧝🏾♀️" | "🧝🏾" | "🧝🏾♂️" | "🧛🏾♀️" | "🧛🏾" | "🧛🏾♂️" | "🧜🏾♀️" | "🧜🏾" | "🧜🏾♂️" | "🧚🏾♀️" | "🧚🏾" | "🧚🏾♂️" | "👼🏾" | "🤰🏾" | "🤱🏾" | "👩🏾🍼" | "🧑🏾🍼" | "👨🏾🍼" | "🙇🏾♀️" | "🙇🏾" | "🙇🏾♂️" | "💁🏾♀️" | "💁🏾" | "💁🏾♂️" | "🙅🏾♀️" | "🙅🏾" | "🙅🏾♂️" | "🙆🏾♀️" | "🙆🏾" | "🙆🏾♂️" | "🙋🏾♀️" | "🙋🏾" | "🙋🏾♂️" | "🧏🏾♀️" | "🧏🏾" | "🧏🏾♂️" | "🤦🏾♀️" | "🤦🏾" | "🤦🏾♂️" | "🤷🏾♀️" | "🤷🏾" | "🤷🏾♂️" | "🙎🏾♀️" | "🙎🏾" | "🙎🏾♂️" | "🙍🏾♀️" | "🙍🏾" | "🙍🏾♂️" | "💇🏾♀️" | "💇🏾" | "💇🏾♂️" | "💆🏾♀️" | "💆🏾" | "💆🏾♂️" | "🧖🏾♀️" | "🧖🏾" | "🧖🏾♂️" | "💃🏾" | "🕺🏾" | "🕴🏿" | "👩🏾🦽" | "🧑🏾🦽" | "👨🏾🦽" | "👩🏾🦼" | "🧑🏾🦼" | "👨🏾🦼" | "🚶🏾♀️" | "🚶🏾" | "🚶🏾♂️" | "👩🏾🦯" | "🧑🏾🦯" | "👨🏾🦯" | "🧎🏾♀️" | "🧎🏾" | "🧎🏾♂️" | "🏃🏾♀️" | "🏃🏾" | "🏃🏾♂️" | "🧍🏾♀️" | "🧍🏾" | "🧍🏾♂️" | "👭🏾" | "🧑🏾🤝🧑🏾" | "👬🏾" | "👫🏾" | "🧗🏾♀️" | "🧗🏾" | "🧗🏾♂️" | "🏇🏾" | "🏂🏾" | "🏌🏾♀️" | "🏌🏾" | "🏌🏾♂️" | "🏄🏾♀️" | "🏄🏾" | "🏄🏾♂️" | "🚣🏾♀️" | "🚣🏾" | "🚣🏾♂️" | "🏊🏾♀️" | "🏊🏾" | "🏊🏾♂️" | "⛹🏾♀️" | "⛹🏾" | "⛹🏾♂️" | "🏋🏾♀️" | "🏋🏾" | "🏋🏾♂️" | "🚴🏾♀️" | "🚴🏾" | "🚴🏾♂️" | "🚵🏾♀️" | "🚵🏾" | "🚵🏾♂️" | "🤸🏾♀️" | "🤸🏾" | "🤸🏾♂️" | "🤽🏾♀️" | "🤽🏾" | "🤽🏾♂️" | "🤾🏾♀️" | "🤾🏾" | "🤾🏾♂️" | "🤹🏾♀️" | "🤹🏾" | "🤹🏾♂️" | "🧘🏾♀️" | "🧘🏾" | "🧘🏾♂️" | "🛀🏾" | "👋🏿" | "🤚🏿" | "🖐🏿" | "✋🏿" | "🖖🏿" | "👌🏿" | "🤌🏿" | "🤏🏿" | "✌🏿" | "🤞🏿" | "🤟🏿" | "🤘🏿" | "🤙🏿" | "👈🏿" | "👉🏿" | "👆🏿" | "🖕🏿" | "👇🏿" | "☝🏿" | "👍🏿" | "👎🏿" | "✊🏿" | "👊🏿" | "🤛🏿" | "🤜🏿" | "👏🏿" | "🙌🏿" | "👐🏿" | "🤲🏿" | "🙏🏿" | "✍🏿" | "💅🏿" | "🤳🏿" | "💪🏿" | "🦵🏿" | "🦶🏿" | "👂🏿" | "🦻🏿" | "👃🏿" | "👶🏿" | "👧🏿" | "🧒🏿" | "👦🏿" | "👩🏿" | "🧑🏿" | "👨🏿" | "👩🏿🦱" | "🧑🏿🦱" | "👨🏿🦱" | "👩🏿🦰" | "🧑🏿🦰" | "👨🏿🦰" | "👱🏿♀️" | "👱🏿" | "👱🏿♂️" | "👩🏿🦳" | "🧑🏿🦳" | "👨🏿🦳" | "👩🏿🦲" | "🧑🏿🦲" | "👨🏿🦲" | "🧔🏿" | "👵🏿" | "🧓🏿" | "👴🏿" | "👲🏿" | "👳🏿♀️" | "👳🏿" | "👳🏿♂️" | "🧕🏿" | "👮🏿♀️" | "👮🏿" | "👮🏿♂️" | "👷🏿♀️" | "👷🏿" | "👷🏿♂️" | "💂🏿♀️" | "💂🏿" | "💂🏿♂️" | "🕵🏿♀️" | "🕵🏿" | "🕵🏿♂️" | "👩🏿⚕️" | "🧑🏿⚕️" | "👨🏿⚕️" | "👩🏿🌾" | "🧑🏿🌾" | "👨🏿🌾" | "👩🏿🍳" | "🧑🏿🍳" | "👨🏿🍳" | "👩🏿🎓" | "🧑🏿🎓" | "👨🏿🎓" | "👩🏿🎤" | "🧑🏿🎤" | "👨🏿🎤" | "👩🏿🏫" | "🧑🏿🏫" | "👨🏿🏫" | "👩🏿🏭" | "🧑🏿🏭" | "👨🏿🏭" | "👩🏿💻" | "🧑🏿💻" | "👨🏿💻" | "👩🏿💼" | "🧑🏿💼" | "👨🏿💼" | "👩🏿🔧" | "🧑🏿🔧" | "👨🏿🔧" | "👩🏿🔬" | "🧑🏿🔬" | "👨🏿🔬" | "👩🏿🎨" | "🧑🏿🎨" | "👨🏿🎨" | "👩🏿🚒" | "🧑🏿🚒" | "👨🏿🚒" | "👩🏿✈️" | "🧑🏿✈️" | "👨🏿✈️" | "👩🏿🚀" | "🧑🏿🚀" | "👨🏿🚀" | "👩🏿⚖️" | "🧑🏿⚖️" | "👨🏿⚖️" | "👰🏿♀️" | "👰🏿" | "👰🏿♂️" | "🤵🏿♀️" | "🤵🏿" | "🤵🏿♂️" | "👸🏿" | "🤴🏿" | "🥷🏿" | "🦸🏿♀️" | "🦸🏿" | "🦸🏿♂️" | "🦹🏿♀️" | "🦹🏿" | "🦹🏿♂️" | "🤶🏿" | "🧑🏿🎄" | "🎅🏿" | "🧙🏿♀️" | "🧙🏿" | "🧙🏿♂️" | "🧝🏿♀️" | "🧝🏿" | "🧝🏿♂️" | "🧛🏿♀️" | "🧛🏿" | "🧛🏿♂️" | "🧜🏿♀️" | "🧜🏿" | "🧜🏿♂️" | "🧚🏿♀️" | "🧚🏿" | "🧚🏿♂️" | "👼🏿" | "🤰🏿" | "🤱🏿" | "👩🏿🍼" | "🧑🏿🍼" | "👨🏿🍼" | "🙇🏿♀️" | "🙇🏿" | "🙇🏿♂️" | "💁🏿♀️" | "💁🏿" | "💁🏿♂️" | "🙅🏿♀️" | "🙅🏿" | "🙅🏿♂️" | "🙆🏿♀️" | "🙆🏿" | "🙆🏿♂️" | "🙋🏿♀️" | "🙋🏿" | "🙋🏿♂️" | "🧏🏿♀️" | "🧏🏿" | "🧏🏿♂️" | "🤦🏿♀️" | "🤦🏿" | "🤦🏿♂️" | "🤷🏿♀️" | "🤷🏿" | "🤷🏿♂️" | "🙎🏿♀️" | "🙎🏿" | "🙎🏿♂️" | "🙍🏿♀️" | "🙍🏿" | "🙍🏿♂️" | "💇🏿♀️" | "💇🏿" | "💇🏿♂️" | "💆🏿♀️" | "💆🏿" | "💆🏿♂️" | "🧖🏿♀️" | "🧖🏿" | "🧖🏿♂️" | "💃🏿" | "🕺🏿" | "👩🏿🦽" | "🧑🏿🦽" | "👨🏿🦽" | "👩🏿🦼" | "🧑🏿🦼" | "👨🏿🦼" | "🚶🏿♀️" | "🚶🏿" | "🚶🏿♂️" | "👩🏿🦯" | "🧑🏿🦯" | "👨🏿🦯" | "🧎🏿♀️" | "🧎🏿" | "🧎🏿♂️" | "🏃🏿♀️" | "🏃🏿" | "🏃🏿♂️" | "🧍🏿♀️" | "🧍🏿" | "🧍🏿♂️" | "👭🏿" | "🧑🏿🤝🧑🏿" | "👬🏿" | "👫🏿" | "🧗🏿♀️" | "🧗🏿" | "🧗🏿♂️" | "🏇🏿" | "🏂🏿" | "🏌🏿♀️" | "🏌🏿" | "🏌🏿♂️" | "🏄🏿♀️" | "🏄🏿" | "🏄🏿♂️" | "🚣🏿♀️" | "🚣🏿" | "🚣🏿♂️" | "🏊🏿♀️" | "🏊🏿" | "🏊🏿♂️" | "⛹🏿♀️" | "⛹🏿" | "⛹🏿♂️" | "🏋🏿♀️" | "🏋🏿" | "🏋🏿♂️" | "🚴🏿♀️" | "🚴🏿" | "🚴🏿♂️" | "🚵🏿♀️" | "🚵🏿" | "🚵🏿♂️" | "🤸🏿♀️" | "🤸🏿" | "🤸🏿♂️" | "🤽🏿♀️" | "🤽🏿" | "🤽🏿♂️" | "🤾🏿♀️" | "🤾🏿" | "🤾🏿♂️" | "🤹🏿♀️" | "🤹🏿" | "🤹🏿♂️" | "🧘🏿♀️" | "🧘🏿" | "🧘🏿♂️" | "🛀🏿" | "🛌🏿" | "🐶" | "🐱" | "🐭" | "🐹" | "🐰" | "🦊" | "🐻" | "🐼" | "🐻❄️" | "🐨" | "🐯" | "🦁" | "🐮" | "🐷" | "🐽" | "🐸" | "🐵" | "🙈" | "🙉" | "🙊" | "🐒" | "🐔" | "🐧" | "🐦" | "🐤" | "🐣" | "🐥" | "🦆" | "🦅" | "🦉" | "🦇" | "🐺" | "🐗" | "🐴" | "🦄" | "🐝" | "🪱" | "🐛" | "🦋" | "🐌" | "🐞" | "🐜" | "🪰" | "🪲" | "🪳" | "🦟" | "🦗" | "🕷" | "🕸" | "🦂" | "🐢" | "🐍" | "🦎" | "🦖" | "🦕" | "🐙" | "🦑" | "🦐" | "🦞" | "🦀" | "🐡" | "🐠" | "🐟" | "🐬" | "🐳" | "🐋" | "🦈" | "🐊" | "🐅" | "🐆" | "🦓" | "🦍" | "🦧" | "🦣" | "🐘" | "🦛" | "🦏" | "🐪" | "🐫" | "🦒" | "🦘" | "🦬" | "🐃" | "🐂" | "🐄" | "🐎" | "🐖" | "🐏" | "🐑" | "🦙" | "🐐" | "🦌" | "🐕" | "🐩" | "🦮" | "🐕🦺" | "🐈" | "🐈⬛" | "🪶" | "🐓" | "🦃" | "🦤" | "🦚" | "🦜" | "🦢" | "🦩" | "🕊" | "🐇" | "🦝" | "🦨" | "🦡" | "🦫" | "🦦" | "🦥" | "🐁" | "🐀" | "🐿" | "🦔" | "🐾" | "🐉" | "🐲" | "🌵" | "🎄" | "🌲" | "🌳" | "🌴" | "🪵" | "🌱" | "🌿" | "☘️" | "🍀" | "🎍" | "🪴" | "🎋" | "🍃" | "🍂" | "🍁" | "🍄" | "🐚" | "🪨" | "🌾" | "💐" | "🌷" | "🌹" | "🥀" | "🌺" | "🌸" | "🌼" | "🌻" | "🌞" | "🌝" | "🌛" | "🌜" | "🌚" | "🌕" | "🌖" | "🌗" | "🌘" | "🌑" | "🌒" | "🌓" | "🌔" | "🌙" | "🌎" | "🌍" | "🌏" | "🪐" | "💫" | "⭐️" | "🌟" | "✨" | "⚡️" | "☄️" | "💥" | "🔥" | "🌪" | "🌈" | "☀️" | "🌤" | "⛅️" | "🌥" | "☁️" | "🌦" | "🌧" | "⛈" | "🌩" | "🌨" | "❄️" | "☃️" | "⛄️" | "🌬" | "💨" | "💧" | "💦" | "☔️" | "🌊" | "🌫" | "🍏" | "🍎" | "🍐" | "🍊" | "🍋" | "🍌" | "🍉" | "🍇" | "🍓" | "🫐" | "🍈" | "🍒" | "🍑" | "🥭" | "🍍" | "🥥" | "🥝" | "🍅" | "🍆" | "🥑" | "🥦" | "🥬" | "🥒" | "🌶" | "🫑" | "🌽" | "🥕" | "🫒" | "🧄" | "🧅" | "🥔" | "🍠" | "🥐" | "🥯" | "🍞" | "🥖" | "🥨" | "🧀" | "🥚" | "🍳" | "🧈" | "🥞" | "🧇" | "🥓" | "🥩" | "🍗" | "🍖" | "🌭" | "🍔" | "🍟" | "🍕" | "🫓" | "🥪" | "🥙" | "🧆" | "🌮" | "🌯" | "🫔" | "🥗" | "🥘" | "🫕" | "🥫" | "🍝" | "🍜" | "🍲" | "🍛" | "🍣" | "🍱" | "🥟" | "🦪" | "🍤" | "🍙" | "🍚" | "🍘" | "🍥" | "🥠" | "🥮" | "🍢" | "🍡" | "🍧" | "🍨" | "🍦" | "🥧" | "🧁" | "🍰" | "🎂" | "🍮" | "🍭" | "🍬" | "🍫" | "🍿" | "🍩" | "🍪" | "🌰" | "🥜" | "🍯" | "🥛" | "🍼" | "🫖" | "☕️" | "🍵" | "🧃" | "🥤" | "🧋" | "🍶" | "🍺" | "🍻" | "🥂" | "🍷" | "🥃" | "🍸" | "🍹" | "🧉" | "🍾" | "🧊" | "🥄" | "🍴" | "🍽" | "🥣" | "🥡" | "🥢" | "🧂" | "⚽️" | "🏀" | "🏈" | "⚾️" | "🥎" | "🎾" | "🏐" | "🏉" | "🥏" | "🎱" | "🪀" | "🏓" | "🏸" | "🏒" | "🏑" | "🥍" | "🏏" | "🪃" | "🥅" | "⛳️" | "🪁" | "🏹" | "🎣" | "🤿" | "🥊" | "🥋" | "🎽" | "🛹" | "🛼" | "🛷" | "⛸" | "🥌" | "🎿" | "⛷" | "🏂" | "🪂" | "🏋️♀️" | "🏋️" | "🏋️♂️" | "🤼♀️" | "🤼" | "🤼♂️" | "🤸♀️" | "🤸" | "🤸♂️" | "⛹️♀️" | "⛹️" | "⛹️♂️" | "🤺" | "🤾♀️" | "🤾" | "🤾♂️" | "🏌️♀️" | "🏌️" | "🏌️♂️" | "🏇" | "🧘♀️" | "🧘" | "🧘♂️" | "🏄♀️" | "🏄" | "🏄♂️" | "🏊♀️" | "🏊" | "🏊♂️" | "🤽♀️" | "🤽" | "🤽♂️" | "🚣♀️" | "🚣" | "🚣♂️" | "🧗♀️" | "🧗" | "🧗♂️" | "🚵♀️" | "🚵" | "🚵♂️" | "🚴♀️" | "🚴" | "🚴♂️" | "🏆" | "🥇" | "🥈" | "🥉" | "🏅" | "🎖" | "🏵" | "🎗" | "🎫" | "🎟" | "🎪" | "🤹" | "🤹♂️" | "🤹♀️" | "🎭" | "🎨" | "🎬" | "🎤" | "🎧" | "🎼" | "🎹" | "🥁" | "🪘" | "🎷" | "🎺" | "🪗" | "🎸" | "🪕" | "🎻" | "🎲" | "♟" | "🎯" | "🎳" | "🎮" | "🎰" | "🧩" | "🚗" | "🚕" | "🚙" | "🚌" | "🚎" | "🏎" | "🚓" | "🚑" | "🚒" | "🚐" | "🛻" | "🚚" | "🚛" | "🚜" | "🦯" | "🦽" | "🦼" | "🛴" | "🚲" | "🛵" | "🏍" | "🛺" | "🚨" | "🚔" | "🚍" | "🚘" | "🚖" | "🚡" | "🚠" | "🚟" | "🚃" | "🚋" | "🚞" | "🚝" | "🚄" | "🚅" | "🚈" | "🚂" | "🚆" | "🚇" | "🚊" | "🚉" | "✈️" | "🛫" | "🛬" | "🛩" | "💺" | "🛰" | "🚀" | "🛸" | "🚁" | "🛶" | "⛵️" | "🚤" | "🛥" | "🛳" | "⛴" | "🚢" | "⚓️" | "🪝" | "⛽️" | "🚧" | "🚦" | "🚥" | "🚏" | "🗺" | "🗿" | "🗽" | "🗼" | "🏰" | "🏯" | "🏟" | "🎡" | "🎢" | "🎠" | "⛲️" | "⛱" | "🏖" | "🏝" | "🏜" | "🌋" | "⛰" | "🏔" | "🗻" | "🏕" | "⛺️" | "🛖" | "🏠" | "🏡" | "🏘" | "🏚" | "🏗" | "🏭" | "🏢" | "🏬" | "🏣" | "🏤" | "🏥" | "🏦" | "🏨" | "🏪" | "🏫" | "🏩" | "💒" | "🏛" | "⛪️" | "🕌" | "🕍" | "🛕" | "🕋" | "⛩" | "🛤" | "🛣" | "🗾" | "🎑" | "🏞" | "🌅" | "🌄" | "🌠" | "🎇" | "🎆" | "🌇" | "🌆" | "🏙" | "🌃" | "🌌" | "🌉" | "🌁" | "⌚️" | "📱" | "📲" | "💻" | "⌨️" | "🖥" | "🖨" | "🖱" | "🖲" | "🕹" | "🗜" | "💽" | "💾" | "💿" | "📀" | "📼" | "📷" | "📸" | "📹" | "🎥" | "📽" | "🎞" | "📞" | "☎️" | "📟" | "📠" | "📺" | "📻" | "🎙" | "🎚" | "🎛" | "🧭" | "⏱" | "⏲" | "⏰" | "🕰" | "⌛️" | "⏳" | "📡" | "🔋" | "🔌" | "💡" | "🔦" | "🕯" | "🪔" | "🧯" | "🛢" | "💸" | "💵" | "💴" | "💶" | "💷" | "🪙" | "💰" | "💳" | "💎" | "⚖️" | "🪜" | "🧰" | "🪛" | "🔧" | "🔨" | "⚒" | "🛠" | "⛏" | "🪚" | "🔩" | "⚙️" | "🪤" | "🧱" | "⛓" | "🧲" | "🔫" | "💣" | "🧨" | "🪓" | "🔪" | "🗡" | "⚔️" | "🛡" | "🚬" | "⚰️" | "🪦" | "⚱️" | "🏺" | "🔮" | "📿" | "🧿" | "💈" | "⚗️" | "🔭" | "🔬" | "🕳" | "🩹" | "🩺" | "💊" | "💉" | "🧬" | "🦠" | "🧫" | "🧪" | "🌡" | "🧹" | "🪠" | "🧺" | "🧻" | "🚽" | "🚰" | "🚿" | "🛁" | "🛀" | "🧼" | "🪥" | "🪒" | "🧽" | "🪣" | "🧴" | "🛎" | "🔑" | "🗝" | "🚪" | "🪑" | "🛋" | "🛏" | "🧸" | "🪆" | "🖼" | "🪞" | "🪟" | "🛍" | "🛒" | "🎁" | "🎈" | "🎏" | "🎀" | "🪄" | "🪅" | "🎊" | "🎉" | "🎎" | "🏮" | "🎐" | "🧧" | "✉️" | "📩" | "📨" | "📧" | "💌" | "📥" | "📤" | "📦" | "🏷" | "🪧" | "📪" | "📫" | "📬" | "📭" | "📮" | "📯" | "📜" | "📃" | "📄" | "📑" | "🧾" | "📊" | "📈" | "📉" | "🗒" | "🗓" | "📆" | "📅" | "🗑" | "📇" | "🗃" | "🗳" | "🗄" | "📋" | "📁" | "📂" | "🗂" | "🗞" | "📰" | "📓" | "📔" | "📒" | "📕" | "📗" | "📘" | "📙" | "📚" | "📖" | "🔖" | "🧷" | "🔗" | "📎" | "🖇" | "📐" | "📏" | "🧮" | "📌" | "📍" | "✂️" | "🖊" | "🖋" | "✒️" | "🖌" | "🖍" | "📝" | "✏️" | "🔍" | "🔎" | "🔏" | "🔐" | "🔒" | "🔓" | "❤️" | "🧡" | "💛" | "💚" | "💙" | "💜" | "🖤" | "🤍" | "🤎" | "💔" | "❣️" | "💕" | "💞" | "💓" | "💗" | "💖" | "💘" | "💝" | "💟" | "☮️" | "✝️" | "☪️" | "🕉" | "☸️" | "✡️" | "🔯" | "🕎" | "☯️" | "☦️" | "🛐" | "⛎" | "♈️" | "♉️" | "♊️" | "♋️" | "♌️" | "♍️" | "♎️" | "♏️" | "♐️" | "♑️" | "♒️" | "♓️" | "🆔" | "⚛️" | "🉑" | "☢️" | "☣️" | "📴" | "📳" | "🈶" | "🈚️" | "🈸" | "🈺" | "🈷️" | "✴️" | "🆚" | "💮" | "🉐" | "㊙️" | "㊗️" | "🈴" | "🈵" | "🈹" | "🈲" | "🅰️" | "🅱️" | "🆎" | "🆑" | "🅾️" | "🆘" | "❌" | "⭕️" | "🛑" | "⛔️" | "📛" | "🚫" | "💯" | "💢" | "♨️" | "🚷" | "🚯" | "🚳" | "🚱" | "🔞" | "📵" | "🚭" | "❗️" | "❕" | "❓" | "❔" | "‼️" | "⁉️" | "🔅" | "🔆" | "〽️" | "⚠️" | "🚸" | "🔱" | "⚜️" | "🔰" | "♻️" | "✅" | "🈯️" | "💹" | "❇️" | "✳️" | "❎" | "🌐" | "💠" | "Ⓜ️" | "🌀" | "💤" | "🏧" | "🚾" | "♿️" | "🅿️" | "🛗" | "🈳" | "🈂️" | "🛂" | "🛃" | "🛄" | "🛅" | "🚹" | "🚺" | "🚼" | "⚧" | "🚻" | "🚮" | "🎦" | "📶" | "🈁" | "🔣" | "ℹ️" | "🔤" | "🔡" | "🔠" | "🆖" | "🆗" | "🆙" | "🆒" | "🆕" | "🆓" | "0️⃣" | "1️⃣" | "2️⃣" | "3️⃣" | "4️⃣" | "5️⃣" | "6️⃣" | "7️⃣" | "8️⃣" | "9️⃣" | "🔟" | "🔢" | "#️⃣" | "*️⃣" | "⏏️" | "▶️" | "⏸" | "⏯" | "⏹" | "⏺" | "⏭" | "⏮" | "⏩" | "⏪" | "⏫" | "⏬" | "◀️" | "🔼" | "🔽" | "➡️" | "⬅️" | "⬆️" | "⬇️" | "↗️" | "↘️" | "↙️" | "↖️" | "↕️" | "↔️" | "↪️" | "↩️" | "⤴️" | "⤵️" | "🔀" | "🔁" | "🔂" | "🔄" | "🔃" | "🎵" | "🎶" | "➕" | "➖" | "➗" | "✖️" | "♾" | "💲" | "💱" | "™️" | "©️" | "®️" | "〰️" | "➰" | "➿" | "🔚" | "🔙" | "🔛" | "🔝" | "🔜" | "✔️" | "☑️" | "🔘" | "🔴" | "🟠" | "🟡" | "🟢" | "🔵" | "🟣" | "⚫️" | "⚪️" | "🟤" | "🔺" | "🔻" | "🔸" | "🔹" | "🔶" | "🔷" | "🔳" | "🔲" | "▪️" | "▫️" | "◾️" | "◽️" | "◼️" | "◻️" | "🟥" | "🟧" | "🟨" | "🟩" | "🟦" | "🟪" | "⬛️" | "⬜️" | "🟫" | "🔈" | "🔇" | "🔉" | "🔊" | "🔔" | "🔕" | "📣" | "📢" | "👁🗨" | "💬" | "💭" | "🗯" | "♠️" | "♣️" | "♥️" | "♦️" | "🃏" | "🎴" | "🀄️" | "🕐" | "🕑" | "🕒" | "🕓" | "🕔" | "🕕" | "🕖" | "🕗" | "🕘" | "🕙" | "🕚" | "🕛" | "🕜" | "🕝" | "🕞" | "🕟" | "🕠" | "🕡" | "🕢" | "🕣" | "🕤" | "🕥" | "🕦" | "🕧" | "✢" | "✣" | "✤" | "✥" | "✦" | "✧" | "★" | "☆" | "✯" | "✡︎" | "✩" | "✪" | "✫" | "✬" | "✭" | "✮" | "✶" | "✷" | "✵" | "✸" | "✹" | "→" | "⇒" | "⟹" | "⇨" | "⇾" | "➾" | "⇢" | "☛" | "☞" | "➔" | "➜" | "➙" | "➛" | "➝" | "➞" | "♠︎" | "♣︎" | "♥︎" | "♦︎" | "♤" | "♧" | "♡" | "♢" | "♚" | "♛" | "♜" | "♝" | "♞" | "♔" | "♕" | "♖" | "♗" | "♘" | "♙" | "⚀" | "⚁" | "⚂" | "⚃" | "⚄" | "⚅" | "🂠" | "⚈" | "⚉" | "⚆" | "⚇" | "𓀀" | "𓀁" | "𓀂" | "𓀃" | "𓀄" | "𓀅" | "𓀆" | "𓀇" | "𓀈" | "𓀉" | "𓀊" | "𓀋" | "𓀌" | "𓀍" | "𓀎" | "𓀏" | "𓀐" | "𓀑" | "𓀒" | "𓀓" | "𓀔" | "𓀕" | "𓀖" | "𓀗" | "𓀘" | "𓀙" | "𓀚" | "𓀛" | "𓀜" | "𓀝" | "🏳️" | "🏴" | "🏁" | "🚩" | "🏳️🌈" | "🏳️⚧️" | "🏴☠️" | "🇦🇫" | "🇦🇽" | "🇦🇱" | "🇩🇿" | "🇦🇸" | "🇦🇩" | "🇦🇴" | "🇦🇮" | "🇦🇶" | "🇦🇬" | "🇦🇷" | "🇦🇲" | "🇦🇼" | "🇦🇺" | "🇦🇹" | "🇦🇿" | "🇧🇸" | "🇧🇭" | "🇧🇩" | "🇧🇧" | "🇧🇾" | "🇧🇪" | "🇧🇿" | "🇧🇯" | "🇧🇲" | "🇧🇹" | "🇧🇴" | "🇧🇦" | "🇧🇼" | "🇧🇷" | "🇮🇴" | "🇻🇬" | "🇧🇳" | "🇧🇬" | "🇧🇫" | "🇧🇮" | "🇰🇭" | "🇨🇲" | "🇨🇦" | "🇮🇨" | "🇨🇻" | "🇧🇶" | "🇰🇾" | "🇨🇫" | "🇹🇩" | "🇨🇱" | "🇨🇳" | "🇨🇽" | "🇨🇨" | "🇨🇴" | "🇰🇲" | "🇨🇬" | "🇨🇩" | "🇨🇰" | "🇨🇷" | "🇨🇮" | "🇭🇷" | "🇨🇺" | "🇨🇼" | "🇨🇾" | "🇨🇿" | "🇩🇰" | "🇩🇯" | "🇩🇲" | "🇩🇴" | "🇪🇨" | "🇪🇬" | "🇸🇻" | "🇬🇶" | "🇪🇷" | "🇪🇪" | "🇪🇹" | "🇪🇺" | "🇫🇰" | "🇫🇴" | "🇫🇯" | "🇫🇮" | "🇫🇷" | "🇬🇫" | "🇵🇫" | "🇹🇫" | "🇬🇦" | "🇬🇲" | "🇬🇪" | "🇩🇪" | "🇬🇭" | "🇬🇮" | "🇬🇷" | "🇬🇱" | "🇬🇩" | "🇬🇵" | "🇬🇺" | "🇬🇹" | "🇬🇬" | "🇬🇳" | "🇬🇼" | "🇬🇾" | "🇭🇹" | "🇭🇳" | "🇭🇰" | "🇭🇺" | "🇮🇸" | "🇮🇳" | "🇮🇩" | "🇮🇷" | "🇮🇶" | "🇮🇪" | "🇮🇲" | "🇮🇱" | "🇮🇹" | "🇯🇲" | "🇯🇵" | "🎌" | "🇯🇪" | "🇯🇴" | "🇰🇿" | "🇰🇪" | "🇰🇮" | "🇽🇰" | "🇰🇼" | "🇰🇬" | "🇱🇦" | "🇱🇻" | "🇱🇧" | "🇱🇸" | "🇱🇷" | "🇱🇾" | "🇱🇮" | "🇱🇹" | "🇱🇺" | "🇲🇴" | "🇲🇰" | "🇲🇬" | "🇲🇼" | "🇲🇾" | "🇲🇻" | "🇲🇱" | "🇲🇹" | "🇲🇭" | "🇲🇶" | "🇲🇷" | "🇲🇺" | "🇾🇹" | "🇲🇽" | "🇫🇲" | "🇲🇩" | "🇲🇨" | "🇲🇳" | "🇲🇪" | "🇲🇸" | "🇲🇦" | "🇲🇿" | "🇲🇲" | "🇳🇦" | "🇳🇷" | "🇳🇵" | "🇳🇱" | "🇳🇨" | "🇳🇿" | "🇳🇮" | "🇳🇪" | "🇳🇬" | "🇳🇺" | "🇳🇫" | "🇰🇵" | "🇲🇵" | "🇳🇴" | "🇴🇲" | "🇵🇰" | "🇵🇼" | "🇵🇸" | "🇵🇦" | "🇵🇬" | "🇵🇾" | "🇵🇪" | "🇵🇭" | "🇵🇳" | "🇵🇱" | "🇵🇹" | "🇵🇷" | "🇶🇦" | "🇷🇪" | "🇷🇴" | "🇷🇺" | "🇷🇼" | "🇼🇸" | "🇸🇲" | "🇸🇦" | "🇸🇳" | "🇷🇸" | "🇸🇨" | "🇸🇱" | "🇸🇬" | "🇸🇽" | "🇸🇰" | "🇸🇮" | "🇬🇸" | "🇸🇧" | "🇸🇴" | "🇿🇦" | "🇰🇷" | "🇸🇸" | "🇪🇸" | "🇱🇰" | "🇧🇱" | "🇸🇭" | "🇰🇳" | "🇱🇨" | "🇵🇲" | "🇻🇨" | "🇸🇩" | "🇸🇷" | "🇸🇿" | "🇸🇪" | "🇨🇭" | "🇸🇾" | "🇹🇼" | "🇹🇯" | "🇹🇿" | "🇹🇭" | "🇹🇱" | "🇹🇬" | "🇹🇰" | "🇹🇴" | "🇹🇹" | "🇹🇳" | "🇹🇷" | "🇹🇲" | "🇹🇨" | "🇹🇻" | "🇻🇮" | "🇺🇬" | "🇺🇦" | "🇦🇪" | "🇬🇧" | "🏴" | "🏴" | "🏴" | "🇺🇳" | "🇺🇸" | "🇺🇾" | "🇺🇿" | "🇻🇺" | "🇻🇦" | "🇻🇪" | "🇻🇳" | "🇼🇫" | "🇪🇭" | "🇾🇪" | "🇿🇲" | "🇿🇼" | "🦭" | "😮💨" | "😵💫" | "😶🌫️" | "❤️🔥" | "❤️🩹" | "🧔♀️" | "🧔🏻♀️" | "🧔🏼♀️" | "🧔🏽♀️" | "🧔🏾♀️" | "🧔🏿♀️" | "🧔♂️" | "🧔🏻♂️" | "🧔🏼♂️" | "🧔🏽♂️" | "🧔🏾♂️" | "🧔🏿♂️" | "💑🏻" | "💑🏼" | "💑🏽" | "💑🏾" | "💑🏿" | "💏🏻" | "💏🏼" | "💏🏽" | "💏🏾" | "💏🏿" | "👨🏻❤️👨🏻" | "👨🏻❤️👨🏼" | "👨🏻❤️👨🏽" | "👨🏻❤️👨🏾" | "👨🏻❤️👨🏿" | "👨🏼❤️👨🏻" | "👨🏼❤️👨🏼" | "👨🏼❤️👨🏽" | "👨🏼❤️👨🏾" | "👨🏼❤️👨🏿" | "👨🏽❤️👨🏻" | "👨🏽❤️👨🏼" | "👨🏽❤️👨🏽" | "👨🏽❤️👨🏾" | "👨🏽❤️👨🏿" | "👨🏾❤️👨🏻" | "👨🏾❤️👨🏼" | "👨🏾❤️👨🏽" | "👨🏾❤️👨🏾" | "👨🏾❤️👨🏿" | "👨🏿❤️👨🏻" | "👨🏿❤️👨🏼" | "👨🏿❤️👨🏽" | "👨🏿❤️👨🏾" | "👨🏿❤️👨🏿" | "👩🏻❤️👨🏻" | "👩🏻❤️👨🏼" | "👩🏻❤️👨🏽" | "👩🏻❤️👨🏾" | "👩🏻❤️👨🏿" | "👩🏻❤️👩🏻" | "👩🏻❤️👩🏼" | "👩🏻❤️👩🏽" | "👩🏻❤️👩🏾" | "👩🏻❤️👩🏿" | "👩🏼❤️👨🏻" | "👩🏼❤️👨🏼" | "👩🏼❤️👨🏽" | "👩🏼❤️👨🏾" | "👩🏼❤️👨🏿" | "👩🏼❤️👩🏻" | "👩🏼❤️👩🏼" | "👩🏼❤️👩🏽" | "👩🏼❤️👩🏾" | "👩🏼❤️👩🏿" | "👩🏽❤️👨🏻" | "👩🏽❤️👨🏼" | "👩🏽❤️👨🏽" | "👩🏽❤️👨🏾" | "👩🏽❤️👨🏿" | "👩🏽❤️👩🏻" | "👩🏽❤️👩🏼" | "👩🏽❤️👩🏽" | "👩🏽❤️👩🏾" | "👩🏽❤️👩🏿" | "👩🏾❤️👨🏻" | "👩🏾❤️👨🏼" | "👩🏾❤️👨🏽" | "👩🏾❤️👨🏾" | "👩🏾❤️👨🏿" | "👩🏾❤️👩🏻" | "👩🏾❤️👩🏼" | "👩🏾❤️👩🏽" | "👩🏾❤️👩🏾" | "👩🏾❤️👩🏿" | "👩🏿❤️👨🏻" | "👩🏿❤️👨🏼" | "👩🏿❤️👨🏽" | "👩🏿❤️👨🏾" | "👩🏿❤️👨🏿" | "👩🏿❤️👩🏻" | "👩🏿❤️👩🏼" | "👩🏿❤️👩🏽" | "👩🏿❤️👩🏾" | "👩🏿❤️👩🏿" | "🧑🏻❤️🧑🏼" | "🧑🏻❤️🧑🏽" | "🧑🏻❤️🧑🏾" | "🧑🏻❤️🧑🏿" | "🧑🏼❤️🧑🏻" | "🧑🏼❤️🧑🏽" | "🧑🏼❤️🧑🏾" | "🧑🏼❤️🧑🏿" | "🧑🏽❤️🧑🏻" | "🧑🏽❤️🧑🏼" | "🧑🏽❤️🧑🏾" | "🧑🏽❤️🧑🏿" | "🧑🏾❤️🧑🏻" | "🧑🏾❤️🧑🏼" | "🧑🏾❤️🧑🏽" | "🧑🏾❤️🧑🏿" | "🧑🏿❤️🧑🏻" | "🧑🏿❤️🧑🏼" | "🧑🏿❤️🧑🏽" | "🧑🏿❤️🧑🏾" | "👨🏻❤️💋👨🏻" | "👨🏻❤️💋👨🏼" | "👨🏻❤️💋👨🏽" | "👨🏻❤️💋👨🏾" | "👨🏻❤️💋👨🏿" | "👨🏼❤️💋👨🏻" | "👨🏼❤️💋👨🏼" | "👨🏼❤️💋👨🏽" | "👨🏼❤️💋👨🏾" | "👨🏼❤️💋👨🏿" | "👨🏽❤️💋👨🏻" | "👨🏽❤️💋👨🏼" | "👨🏽❤️💋👨🏽" | "👨🏽❤️💋👨🏾" | "👨🏽❤️💋👨🏿" | "👨🏾❤️💋👨🏻" | "👨🏾❤️💋👨🏼" | "👨🏾❤️💋👨🏽" | "👨🏾❤️💋👨🏾" | "👨🏾❤️💋👨🏿" | "👨🏿❤️💋👨🏻" | "👨🏿❤️💋👨🏼" | "👨🏿❤️💋👨🏽" | "👨🏿❤️💋👨🏾" | "👨🏿❤️💋👨🏿" | "👩🏻❤️💋👨🏻" | "👩🏻❤️💋👨🏼" | "👩🏻❤️💋👨🏽" | "👩🏻❤️💋👨🏾" | "👩🏻❤️💋👨🏿" | "👩🏻❤️💋👩🏻" | "👩🏻❤️💋👩🏼" | "👩🏻❤️💋👩🏽" | "👩🏻❤️💋👩🏾" | "👩🏻❤️💋👩🏿" | "👩🏼❤️💋👨🏻" | "👩🏼❤️💋👨🏼" | "👩🏼❤️💋👨🏽" | "👩🏼❤️💋👨🏾" | "👩🏼❤️💋👨🏿" | "👩🏼❤️💋👩🏻" | "👩🏼❤️💋👩🏼" | "👩🏼❤️💋👩🏽" | "👩🏼❤️💋👩🏾" | "👩🏼❤️💋👩🏿" | "👩🏽❤️💋👨🏻" | "👩🏽❤️💋👨🏼" | "👩🏽❤️💋👨🏽" | "👩🏽❤️💋👨🏾" | "👩🏽❤️💋👨🏿" | "👩🏽❤️💋👩🏻" | "👩🏽❤️💋👩🏼" | "👩🏽❤️💋👩🏽" | "👩🏽❤️💋👩🏾" | "👩🏽❤️💋👩🏿" | "👩🏾❤️💋👨🏻" | "👩🏾❤️💋👨🏼" | "👩🏾❤️💋👨🏽" | "👩🏾❤️💋👨🏾" | "👩🏾❤️💋👨🏿" | "👩🏾❤️💋👩🏻" | "👩🏾❤️💋👩🏼" | "👩🏾❤️💋👩🏽" | "👩🏾❤️💋👩🏾" | "👩🏾❤️💋👩🏿" | "👩🏿❤️💋👨🏻" | "👩🏿❤️💋👨🏼" | "👩🏿❤️💋👨🏽" | "👩🏿❤️💋👨🏾" | "👩🏿❤️💋👨🏿" | "👩🏿❤️💋👩🏻" | "👩🏿❤️💋👩🏼" | "👩🏿❤️💋👩🏽" | "👩🏿❤️💋👩🏾" | "👩🏿❤️💋👩🏿" | "🧑🏻❤️💋🧑🏼" | "🧑🏻❤️💋🧑🏽" | "🧑🏻❤️💋🧑🏾" | "🧑🏻❤️💋🧑🏿" | "🧑🏼❤️💋🧑🏻" | "🧑🏼❤️💋🧑🏽" | "🧑🏼❤️💋🧑🏾" | "🧑🏼❤️💋🧑🏿" | "🧑🏽❤️💋🧑🏻" | "🧑🏽❤️💋🧑🏼" | "🧑🏽❤️💋🧑🏾" | "🧑🏽❤️💋🧑🏿" | "🧑🏾❤️💋🧑🏻" | "🧑🏾❤️💋🧑🏼" | "🧑🏾❤️💋🧑🏽" | "🧑🏾❤️💋🧑🏿" | "🧑🏿❤️💋🧑🏻" | "🧑🏿❤️💋🧑🏼" | "🧑🏿❤️💋🧑🏽" | "🧑🏿❤️💋🧑🏾"';
|
|
10
10
|
/**
|
|
@@ -2,6 +2,10 @@ import type { string_persona_description } from '../../types/typeAliases';
|
|
|
2
2
|
/**
|
|
3
3
|
* Generates a random agent persona description.
|
|
4
4
|
*
|
|
5
|
+
* This function selects a random personality profile from a predefined pool
|
|
6
|
+
* of common AI agent characteristics (e.g., friendly, professional, creative).
|
|
7
|
+
*
|
|
8
|
+
* @returns A string describing the agent's persona
|
|
5
9
|
* @private internal helper function
|
|
6
10
|
*/
|
|
7
11
|
export declare function $randomAgentPersona(): string_persona_description;
|
|
@@ -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.104.0-
|
|
18
|
+
* It follows semantic versioning (e.g., `0.104.0-13`).
|
|
19
19
|
*
|
|
20
20
|
* @generated
|
|
21
21
|
*/
|
package/package.json
CHANGED
package/umd/index.umd.js
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
* @generated
|
|
25
25
|
* @see https://github.com/webgptorg/promptbook
|
|
26
26
|
*/
|
|
27
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.104.0-
|
|
27
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.104.0-14';
|
|
28
28
|
/**
|
|
29
29
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
30
30
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -3428,7 +3428,7 @@
|
|
|
3428
3428
|
tasks.push(task);
|
|
3429
3429
|
runningTasks.push(task);
|
|
3430
3430
|
/* not await */ Promise.resolve(task).then(() => {
|
|
3431
|
-
runningTasks = runningTasks.filter((
|
|
3431
|
+
runningTasks = runningTasks.filter((runningTask) => runningTask !== task);
|
|
3432
3432
|
});
|
|
3433
3433
|
if (maxParallelCount < runningTasks.length) {
|
|
3434
3434
|
await Promise.race(runningTasks);
|
|
@@ -3485,10 +3485,14 @@
|
|
|
3485
3485
|
}
|
|
3486
3486
|
|
|
3487
3487
|
/**
|
|
3488
|
-
* Intercepts LLM tools and counts total usage of the tools
|
|
3488
|
+
* Intercepts LLM tools and counts total usage of the tools.
|
|
3489
3489
|
*
|
|
3490
|
-
*
|
|
3491
|
-
*
|
|
3490
|
+
* This function wraps the provided `LlmExecutionTools` with a proxy that tracks the cumulative
|
|
3491
|
+
* usage (tokens, cost, etc.) across all model calls. It provides a way to monitor spending
|
|
3492
|
+
* in real-time through an observable.
|
|
3493
|
+
*
|
|
3494
|
+
* @param llmTools - The LLM tools to be intercepted and tracked
|
|
3495
|
+
* @returns An augmented version of the tools that includes usage tracking capabilities
|
|
3492
3496
|
* @public exported from `@promptbook/core`
|
|
3493
3497
|
*/
|
|
3494
3498
|
function countUsage(llmTools) {
|
|
@@ -3753,17 +3757,21 @@
|
|
|
3753
3757
|
*/
|
|
3754
3758
|
|
|
3755
3759
|
/**
|
|
3756
|
-
* Joins multiple LLM Execution Tools into one
|
|
3760
|
+
* Joins multiple LLM Execution Tools into one.
|
|
3757
3761
|
*
|
|
3758
|
-
*
|
|
3762
|
+
* This function takes a list of `LlmExecutionTools` and returns a single unified
|
|
3763
|
+
* `MultipleLlmExecutionTools` object. It provides failover and aggregation logic:
|
|
3759
3764
|
*
|
|
3760
|
-
*
|
|
3761
|
-
*
|
|
3762
|
-
* 2
|
|
3763
|
-
* 3
|
|
3765
|
+
* 1. **Failover**: When a model call is made, it tries providers in the order they were provided.
|
|
3766
|
+
* If the first provider doesn't support the requested model or fails, it tries the next one.
|
|
3767
|
+
* 2. **Aggregation**: `listModels` returns a combined list of all models available from all providers.
|
|
3768
|
+
* 3. **Empty case**: If no tools are provided, it logs a warning (as Promptbook requires LLMs to function).
|
|
3764
3769
|
*
|
|
3770
|
+
* @param title - A descriptive title for this collection of joined tools
|
|
3771
|
+
* @param llmExecutionTools - An array of execution tools to be joined
|
|
3772
|
+
* @returns A single unified execution tool wrapper
|
|
3765
3773
|
*
|
|
3766
|
-
* Tip: You don't have to use this function directly, just pass an array of LlmExecutionTools to the `ExecutionTools
|
|
3774
|
+
* Tip: You don't have to use this function directly, just pass an array of LlmExecutionTools to the `ExecutionTools`.
|
|
3767
3775
|
*
|
|
3768
3776
|
* @public exported from `@promptbook/core`
|
|
3769
3777
|
*/
|
|
@@ -4390,8 +4398,8 @@
|
|
|
4390
4398
|
*/
|
|
4391
4399
|
function removeDiacritics(input) {
|
|
4392
4400
|
/*eslint no-control-regex: "off"*/
|
|
4393
|
-
return input.replace(/[^\u0000-\u007E]/g, (
|
|
4394
|
-
return DIACRITIC_VARIANTS_LETTERS[
|
|
4401
|
+
return input.replace(/[^\u0000-\u007E]/g, (character) => {
|
|
4402
|
+
return DIACRITIC_VARIANTS_LETTERS[character] || character;
|
|
4395
4403
|
});
|
|
4396
4404
|
}
|
|
4397
4405
|
/**
|
|
@@ -6590,7 +6598,7 @@
|
|
|
6590
6598
|
const taskEmbeddingResult = await llmTools.callEmbeddingModel(taskEmbeddingPrompt);
|
|
6591
6599
|
const knowledgePiecesWithRelevance = preparedPipeline.knowledgePieces.map((knowledgePiece) => {
|
|
6592
6600
|
const { index } = knowledgePiece;
|
|
6593
|
-
const knowledgePieceIndex = index.find((
|
|
6601
|
+
const knowledgePieceIndex = index.find((knowledgePieceIndex) => knowledgePieceIndex.modelName === firstKnowledgeIndex.modelName);
|
|
6594
6602
|
// <- TODO: Do not use just first knowledge piece and first index to determine embedding model
|
|
6595
6603
|
if (knowledgePieceIndex === undefined) {
|
|
6596
6604
|
return {
|
|
@@ -7038,7 +7046,7 @@
|
|
|
7038
7046
|
resovedParameterNames = [...resovedParameterNames, currentTask.resultingParameterName];
|
|
7039
7047
|
})
|
|
7040
7048
|
.then(() => {
|
|
7041
|
-
resolving = resolving.filter((
|
|
7049
|
+
resolving = resolving.filter((workItem) => workItem !== work);
|
|
7042
7050
|
});
|
|
7043
7051
|
// <- Note: Errors are catched here [3]
|
|
7044
7052
|
// TODO: BUT if in multiple tasks are errors, only the first one is catched so maybe we should catch errors here and save them to errors array here
|
|
@@ -7204,7 +7212,7 @@
|
|
|
7204
7212
|
// Calculate and update tldr based on pipeline progress
|
|
7205
7213
|
const cv = newOngoingResult;
|
|
7206
7214
|
// Calculate progress based on parameters resolved vs total parameters
|
|
7207
|
-
const totalParameters = pipeline.parameters.filter((
|
|
7215
|
+
const totalParameters = pipeline.parameters.filter((parameter) => !parameter.isInput).length;
|
|
7208
7216
|
let resolvedParameters = 0;
|
|
7209
7217
|
let currentTaskTitle = '';
|
|
7210
7218
|
// Get the resolved parameters from output parameters
|