@promptbook/components 0.104.0-1 → 0.104.0-11

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 (57) hide show
  1. package/esm/index.es.js +689 -247
  2. package/esm/index.es.js.map +1 -1
  3. package/esm/typings/servers.d.ts +8 -0
  4. package/esm/typings/src/_packages/core.index.d.ts +2 -0
  5. package/esm/typings/src/_packages/types.index.d.ts +16 -2
  6. package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +29 -1
  7. package/esm/typings/src/book-2.0/agent-source/createAgentModelRequirements.d.ts +6 -6
  8. package/esm/typings/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.closed.test.d.ts +1 -0
  9. package/esm/typings/src/book-2.0/utils/generatePlaceholderAgentProfileImageUrl.d.ts +3 -3
  10. package/esm/typings/src/book-components/Chat/Chat/ChatMessageItem.d.ts +5 -1
  11. package/esm/typings/src/book-components/Chat/Chat/ChatProps.d.ts +5 -0
  12. package/esm/typings/src/book-components/Chat/CodeBlock/CodeBlock.d.ts +13 -0
  13. package/esm/typings/src/book-components/Chat/MarkdownContent/MarkdownContent.d.ts +1 -0
  14. package/esm/typings/src/book-components/Chat/types/ChatMessage.d.ts +9 -13
  15. package/esm/typings/src/book-components/_common/Dropdown/Dropdown.d.ts +3 -3
  16. package/esm/typings/src/book-components/_common/HamburgerMenu/HamburgerMenu.d.ts +1 -1
  17. package/esm/typings/src/book-components/_common/MenuHoisting/MenuHoistingContext.d.ts +56 -0
  18. package/esm/typings/src/book-components/icons/AboutIcon.d.ts +1 -1
  19. package/esm/typings/src/book-components/icons/AttachmentIcon.d.ts +1 -1
  20. package/esm/typings/src/book-components/icons/CameraIcon.d.ts +1 -1
  21. package/esm/typings/src/book-components/icons/DownloadIcon.d.ts +1 -1
  22. package/esm/typings/src/book-components/icons/MenuIcon.d.ts +1 -1
  23. package/esm/typings/src/book-components/icons/SaveIcon.d.ts +1 -1
  24. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +22 -12
  25. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentsDatabaseSchema.d.ts +27 -15
  26. package/esm/typings/src/commitments/DICTIONARY/DICTIONARY.d.ts +46 -0
  27. package/esm/typings/src/commitments/index.d.ts +2 -1
  28. package/esm/typings/src/llm-providers/_common/utils/count-total-usage/countUsage.d.ts +1 -1
  29. package/esm/typings/src/llm-providers/_multiple/MultipleLlmExecutionTools.d.ts +6 -2
  30. package/esm/typings/src/llm-providers/agent/Agent.d.ts +6 -1
  31. package/esm/typings/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +1 -1
  32. package/esm/typings/src/llm-providers/ollama/OllamaExecutionTools.d.ts +1 -1
  33. package/esm/typings/src/llm-providers/openai/createOpenAiCompatibleExecutionTools.d.ts +1 -1
  34. package/esm/typings/src/llm-providers/remote/RemoteLlmExecutionTools.d.ts +1 -0
  35. package/esm/typings/src/remote-server/ui/ServerApp.d.ts +1 -1
  36. package/esm/typings/src/search-engines/SearchEngine.d.ts +9 -0
  37. package/esm/typings/src/search-engines/SearchResult.d.ts +18 -0
  38. package/esm/typings/src/search-engines/bing/BingSearchEngine.d.ts +15 -0
  39. package/esm/typings/src/search-engines/dummy/DummySearchEngine.d.ts +15 -0
  40. package/esm/typings/src/types/Message.d.ts +49 -0
  41. package/esm/typings/src/types/ModelRequirements.d.ts +38 -14
  42. package/esm/typings/src/types/typeAliases.d.ts +23 -1
  43. package/esm/typings/src/utils/color/utils/colorToDataUrl.d.ts +2 -1
  44. package/esm/typings/src/utils/environment/$detectRuntimeEnvironment.d.ts +4 -4
  45. package/esm/typings/src/utils/environment/$isRunningInBrowser.d.ts +1 -1
  46. package/esm/typings/src/utils/environment/$isRunningInJest.d.ts +1 -1
  47. package/esm/typings/src/utils/environment/$isRunningInNode.d.ts +1 -1
  48. package/esm/typings/src/utils/environment/$isRunningInWebWorker.d.ts +1 -1
  49. package/esm/typings/src/utils/markdown/extractAllBlocksFromMarkdown.d.ts +2 -2
  50. package/esm/typings/src/utils/markdown/extractOneBlockFromMarkdown.d.ts +2 -2
  51. package/esm/typings/src/utils/random/$randomAgentPersona.d.ts +3 -2
  52. package/esm/typings/src/utils/random/$randomBase58.d.ts +12 -0
  53. package/esm/typings/src/version.d.ts +1 -1
  54. package/package.json +1 -2
  55. package/umd/index.umd.js +697 -256
  56. package/umd/index.umd.js.map +1 -1
  57. package/esm/typings/src/book-2.0/utils/generateGravatarUrl.d.ts +0 -10
@@ -22,6 +22,14 @@ type ServerConfiguration = {
22
22
  */
23
23
  urls: Array<string_promptbook_server_url>;
24
24
  };
25
+ /**
26
+ * Core Promptbook server configuration.
27
+ *
28
+ * This server is also used for auto-federation in the Agents Server.
29
+ *
30
+ * @public exported from `@promptbook/core`
31
+ */
32
+ export declare const CORE_SERVER: ServerConfiguration;
25
33
  /**
26
34
  * Available remote servers for the Promptbook
27
35
  *
@@ -191,6 +191,7 @@ import { SectionTypes } from '../types/SectionType';
191
191
  import { TaskTypes } from '../types/TaskType';
192
192
  import { aboutPromptbookInformation } from '../utils/misc/aboutPromptbookInformation';
193
193
  import { $generateBookBoilerplate } from '../utils/random/$generateBookBoilerplate';
194
+ import { CORE_SERVER } from '../../servers';
194
195
  import { REMOTE_SERVER_URLS } from '../../servers';
195
196
  import { AUTO_FEDERATED_AGENT_SERVER_URLS } from '../../servers';
196
197
  export { BOOK_LANGUAGE_VERSION, PROMPTBOOK_ENGINE_VERSION };
@@ -386,5 +387,6 @@ export { SectionTypes };
386
387
  export { TaskTypes };
387
388
  export { aboutPromptbookInformation };
388
389
  export { $generateBookBoilerplate };
390
+ export { CORE_SERVER };
389
391
  export { REMOTE_SERVER_URLS };
390
392
  export { AUTO_FEDERATED_AGENT_SERVER_URLS };
@@ -1,4 +1,5 @@
1
1
  import type { BookParameter } from '../book-2.0/agent-source/AgentBasicInformation';
2
+ import type { AgentCapability } from '../book-2.0/agent-source/AgentBasicInformation';
2
3
  import type { AgentBasicInformation } from '../book-2.0/agent-source/AgentBasicInformation';
3
4
  import type { AgentModelRequirements } from '../book-2.0/agent-source/AgentModelRequirements';
4
5
  import type { string_book } from '../book-2.0/agent-source/string_book';
@@ -178,6 +179,8 @@ import type { ScraperSourceHandler } from '../scrapers/_common/Scraper';
178
179
  import type { ScraperIntermediateSource } from '../scrapers/_common/ScraperIntermediateSource';
179
180
  import type { JavascriptExecutionToolsOptions } from '../scripting/javascript/JavascriptExecutionToolsOptions';
180
181
  import type { PostprocessingFunction } from '../scripting/javascript/JavascriptExecutionToolsOptions';
182
+ import type { SearchEngine } from '../search-engines/SearchEngine';
183
+ import type { SearchResult } from '../search-engines/SearchResult';
181
184
  import type { PromptbookStorage } from '../storage/_common/PromptbookStorage';
182
185
  import type { FileCacheStorageOptions } from '../storage/file-cache-storage/FileCacheStorageOptions';
183
186
  import type { IndexedDbStorageOptions } from '../storage/local-storage/utils/IndexedDbStorageOptions';
@@ -185,6 +188,7 @@ import type { BookTranspiler } from '../transpilers/_common/BookTranspiler';
185
188
  import type { BookTranspilerOptions } from '../transpilers/_common/BookTranspilerOptions';
186
189
  import type { IntermediateFilesStrategy } from '../types/IntermediateFilesStrategy';
187
190
  import type { LlmCall } from '../types/LlmCall';
191
+ import type { Message } from '../types/Message';
188
192
  import type { ModelRequirements } from '../types/ModelRequirements';
189
193
  import type { CompletionModelRequirements } from '../types/ModelRequirements';
190
194
  import type { ChatModelRequirements } from '../types/ModelRequirements';
@@ -205,6 +209,7 @@ import type { string_char_emoji } from '../types/typeAliasEmoji';
205
209
  import type { string_business_category_name } from '../types/typeAliases';
206
210
  import type { string_model_name } from '../types/typeAliases';
207
211
  import type { string_prompt } from '../types/typeAliases';
212
+ import type { string_prompt_image } from '../types/typeAliases';
208
213
  import type { string_template } from '../types/typeAliases';
209
214
  import type { string_text_prompt } from '../types/typeAliases';
210
215
  import type { string_chat_prompt } from '../types/typeAliases';
@@ -225,6 +230,7 @@ import type { string_title } from '../types/typeAliases';
225
230
  import type { string_agent_name } from '../types/typeAliases';
226
231
  import type { string_agent_name_in_book } from '../types/typeAliases';
227
232
  import type { string_agent_hash } from '../types/typeAliases';
233
+ import type { string_agent_permanent_id } from '../types/typeAliases';
228
234
  import type { string_persona_description } from '../types/typeAliases';
229
235
  import type { string_model_description } from '../types/typeAliases';
230
236
  import type { string_knowledge_source_content } from '../types/typeAliases';
@@ -275,6 +281,7 @@ import type { string_uuid } from '../types/typeAliases';
275
281
  import type { string_app_id } from '../types/typeAliases';
276
282
  import type { string_user_id } from '../types/typeAliases';
277
283
  import type { string_sha256 } from '../types/typeAliases';
284
+ import type { string_base_58 } from '../types/typeAliases';
278
285
  import type { string_semantic_version } from '../types/typeAliases';
279
286
  import type { string_version_dependency } from '../types/typeAliases';
280
287
  import type { string_file_extension } from '../types/typeAliases';
@@ -337,7 +344,7 @@ import type { ColorTransformer } from '../utils/color/operators/ColorTransformer
337
344
  import type { PipelineEditableSerialized } from '../utils/editable/types/PipelineEditableSerialized';
338
345
  import type { ExecCommandOptions } from '../utils/execCommand/ExecCommandOptions';
339
346
  import type { ExecCommandOptionsAdvanced } from '../utils/execCommand/ExecCommandOptions';
340
- import type { CodeBlock } from '../utils/markdown/extractAllBlocksFromMarkdown';
347
+ import type { MarkdownCodeBlock } from '../utils/markdown/extractAllBlocksFromMarkdown';
341
348
  import type { MarkdownSection } from '../utils/markdown/parseMarkdownSection';
342
349
  import type { Registered } from '../utils/misc/$Register';
343
350
  import type { Registration } from '../utils/misc/$Register';
@@ -363,6 +370,7 @@ import type { ExportJsonOptions } from '../utils/serialization/exportJson';
363
370
  import type { ITakeChain } from '../utils/take/interfaces/ITakeChain';
364
371
  import type { string_promptbook_version } from '../version';
365
372
  export type { BookParameter };
373
+ export type { AgentCapability };
366
374
  export type { AgentBasicInformation };
367
375
  export type { AgentModelRequirements };
368
376
  export type { string_book };
@@ -542,6 +550,8 @@ export type { ScraperSourceHandler };
542
550
  export type { ScraperIntermediateSource };
543
551
  export type { JavascriptExecutionToolsOptions };
544
552
  export type { PostprocessingFunction };
553
+ export type { SearchEngine };
554
+ export type { SearchResult };
545
555
  export type { PromptbookStorage };
546
556
  export type { FileCacheStorageOptions };
547
557
  export type { IndexedDbStorageOptions };
@@ -549,6 +559,7 @@ export type { BookTranspiler };
549
559
  export type { BookTranspilerOptions };
550
560
  export type { IntermediateFilesStrategy };
551
561
  export type { LlmCall };
562
+ export type { Message };
552
563
  export type { ModelRequirements };
553
564
  export type { CompletionModelRequirements };
554
565
  export type { ChatModelRequirements };
@@ -569,6 +580,7 @@ export type { string_char_emoji };
569
580
  export type { string_business_category_name };
570
581
  export type { string_model_name };
571
582
  export type { string_prompt };
583
+ export type { string_prompt_image };
572
584
  export type { string_template };
573
585
  export type { string_text_prompt };
574
586
  export type { string_chat_prompt };
@@ -589,6 +601,7 @@ export type { string_title };
589
601
  export type { string_agent_name };
590
602
  export type { string_agent_name_in_book };
591
603
  export type { string_agent_hash };
604
+ export type { string_agent_permanent_id };
592
605
  export type { string_persona_description };
593
606
  export type { string_model_description };
594
607
  export type { string_knowledge_source_content };
@@ -639,6 +652,7 @@ export type { string_uuid };
639
652
  export type { string_app_id };
640
653
  export type { string_user_id };
641
654
  export type { string_sha256 };
655
+ export type { string_base_58 };
642
656
  export type { string_semantic_version };
643
657
  export type { string_version_dependency };
644
658
  export type { string_file_extension };
@@ -701,7 +715,7 @@ export type { ColorTransformer };
701
715
  export type { PipelineEditableSerialized };
702
716
  export type { ExecCommandOptions };
703
717
  export type { ExecCommandOptionsAdvanced };
704
- export type { CodeBlock };
718
+ export type { MarkdownCodeBlock };
705
719
  export type { MarkdownSection };
706
720
  export type { Registered };
707
721
  export type { Registration };
@@ -1,4 +1,4 @@
1
- import type { string_agent_hash, string_agent_name, string_agent_url, string_color, string_fonts, string_url_image } from '../../types/typeAliases';
1
+ import type { string_agent_hash, string_agent_name, string_agent_permanent_id, string_agent_url, string_color, string_fonts, string_url_image } from '../../types/typeAliases';
2
2
  /**
3
3
  * Unified parameter representation that supports two different notations:
4
4
  * 1. @Parameter - single word parameter starting with @
@@ -23,6 +23,24 @@ export type BookParameter = {
23
23
  */
24
24
  description?: string;
25
25
  };
26
+ /**
27
+ * Capability of the agent
28
+ * This is parsed from commitments like USE BROWSER, USE SEARCH ENGINE, KNOWLEDGE, etc.
29
+ */
30
+ export type AgentCapability = {
31
+ /**
32
+ * The type of the capability
33
+ */
34
+ type: 'browser' | 'search-engine' | 'knowledge';
35
+ /**
36
+ * The label to display for this capability
37
+ */
38
+ label: string;
39
+ /**
40
+ * The name of the icon to display for this capability
41
+ */
42
+ iconName: string;
43
+ };
26
44
  export type AgentBasicInformation = {
27
45
  /**
28
46
  * Name of the agent
@@ -33,6 +51,11 @@ export type AgentBasicInformation = {
33
51
  * Hash of the agent source for integrity verification
34
52
  */
35
53
  agentHash: string_agent_hash;
54
+ /**
55
+ * Unique identifier of the agent
56
+ * This is a random base58 string assigned by the server
57
+ */
58
+ permanentId?: string_agent_permanent_id;
36
59
  /**
37
60
  * Optional description of the agent
38
61
  * This is the line starting with "PERSONA"
@@ -67,6 +90,11 @@ export type AgentBasicInformation = {
67
90
  * - {parameterName} or {parameter with multiple words} or {parameterName: description text}
68
91
  */
69
92
  parameters: BookParameter[];
93
+ /**
94
+ * Capabilities of the agent
95
+ * This is parsed from commitments like USE BROWSER, USE SEARCH ENGINE, KNOWLEDGE, etc.
96
+ */
97
+ capabilities: AgentCapability[];
70
98
  };
71
99
  /**
72
100
  * TODO: [🐱‍🚀] Make all properties of `AgentBasicInformation` readonly
@@ -1,6 +1,6 @@
1
1
  import type { AvailableModel } from '../../execution/AvailableModel';
2
2
  import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
3
- import type { string_model_name } from '../../types/typeAliases';
3
+ import type { string_agent_name, string_model_name, string_system_message, string_url_image } from '../../types/typeAliases';
4
4
  import type { AgentModelRequirements } from './AgentModelRequirements';
5
5
  import type { string_book } from './string_book';
6
6
  /**
@@ -27,18 +27,18 @@ export declare function extractMcpServers(agentSource: string_book): string[];
27
27
  * @deprecated Use createAgentModelRequirements instead
28
28
  * @private
29
29
  */
30
- export declare function createAgentSystemMessage(agentSource: string_book): Promise<string>;
30
+ export declare function createAgentSystemMessage(agentSource: string_book): Promise<string_system_message>;
31
31
  /**
32
32
  * Extracts the agent name from the first line of the agent source
33
33
  * @deprecated Use parseAgentSource instead
34
34
  * @private
35
35
  */
36
- export declare function extractAgentName(agentSource: string_book): string;
36
+ export declare function extractAgentName(agentSource: string_book): string_agent_name;
37
37
  /**
38
- * Extracts the profile image URL from agent source or returns gravatar fallback
38
+ * Extracts the profile image URL from agent source or returns default avatar fallback
39
39
  * @param agentSource The agent source string that may contain META IMAGE line
40
- * @returns Profile image URL (from source or gravatar fallback)
40
+ * @returns Profile image URL (from source or default avatar fallback)
41
41
  * @deprecated Use parseAgentSource instead
42
42
  * @private
43
43
  */
44
- export declare function extractAgentProfileImage(agentSource: string_book): string;
44
+ export declare function extractAgentProfileImage(agentSource: string_book): string_url_image | null;
@@ -1,13 +1,13 @@
1
- import type { string_agent_name, string_url_image } from '../../types/typeAliases';
1
+ import type { string_agent_name, string_agent_permanent_id, string_url, string_url_image } from '../../types/typeAliases';
2
2
  /**
3
3
  * Generates an image for the agent to use as profile image
4
4
  *
5
- * @param agentName The agent name to generate avatar for
5
+ * @param agentId - The permanent ID of the agent
6
6
  * @returns The placeholder profile image URL for the agent
7
7
  *
8
8
  * @public exported from `@promptbook/core`
9
9
  */
10
- export declare function generatePlaceholderAgentProfileImageUrl(agentName?: string_agent_name): string_url_image;
10
+ export declare function generatePlaceholderAgentProfileImageUrl(agentIdOrName: string_agent_permanent_id | string_agent_name, agentsServerUrl?: URL | string_url): string_url_image;
11
11
  /**
12
12
  * TODO: [🤹] Figure out best placeholder image generator https://i.pravatar.cc/1000?u=568
13
13
  */
@@ -29,11 +29,15 @@ type ChatMessageItemProps = Pick<ChatProps, 'onMessage' | 'participants'> & {
29
29
  * Called when the copy button is pressed.
30
30
  */
31
31
  onCopy?: () => void;
32
+ /**
33
+ * Called when the create agent button is pressed for book code blocks.
34
+ */
35
+ onCreateAgent?: (bookContent: string) => void;
32
36
  };
33
37
  /**
34
38
  * Renders a single chat message item with avatar, content, buttons, and rating.
35
39
  *
36
40
  * @private internal subcomponent of `<Chat>` component
37
41
  */
38
- export declare const ChatMessageItem: import("react").MemoExoticComponent<({ message, participant, participants, isLastMessage, onMessage, setExpandedMessageId, isExpanded, currentRating, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, onCopy, }: ChatMessageItemProps) => import("react/jsx-runtime").JSX.Element>;
42
+ export declare const ChatMessageItem: import("react").MemoExoticComponent<({ message, participant, participants, isLastMessage, onMessage, setExpandedMessageId, isExpanded, currentRating, handleRating, mode, isCopyButtonEnabled, isFeedbackEnabled, onCopy, onCreateAgent, }: ChatMessageItemProps) => import("react/jsx-runtime").JSX.Element>;
39
43
  export {};
@@ -187,6 +187,11 @@ export type ChatProps = {
187
187
  * @default true
188
188
  */
189
189
  isCopyButtonEnabled?: boolean;
190
+ /**
191
+ * Optional callback for creating an agent from a book code block.
192
+ * When provided, "Create Agent" buttons will be shown for book code blocks.
193
+ */
194
+ onCreateAgent?: (bookContent: string) => void;
190
195
  };
191
196
  /**
192
197
  * TODO: [☁️] Export component prop types only to `@promptbook/components` (not `@promptbook/types`)
@@ -0,0 +1,13 @@
1
+ type CodeBlockProps = {
2
+ code: string;
3
+ language?: string;
4
+ className?: string;
5
+ onCreateAgent?: (bookContent: string) => void;
6
+ };
7
+ /**
8
+ * Component to render a code block with syntax highlighting, copy, download, and create agent options.
9
+ *
10
+ * @private Internal utility of `<ChatMessage />` component
11
+ */
12
+ export declare function CodeBlock({ code, language, className, onCreateAgent }: CodeBlockProps): import("react/jsx-runtime").JSX.Element;
13
+ export {};
@@ -2,6 +2,7 @@ import type { string_markdown } from '../../../types/typeAliases';
2
2
  type MarkdownContentProps = {
3
3
  content: string_markdown;
4
4
  className?: string;
5
+ onCreateAgent?: (bookContent: string) => void;
5
6
  };
6
7
  /**
7
8
  * Renders markdown content with support for code highlighting, math, and tables.
@@ -1,22 +1,17 @@
1
+ import { Message } from '../../../types/Message';
1
2
  import type { id, string_markdown } from '../../../types/typeAliases';
2
3
  /**
3
4
  * A message in the chat
4
5
  *
5
6
  * @public exported from `@promptbook/components`
6
7
  */
7
- export type ChatMessage = {
8
+ export type ChatMessage = Omit<Message<id>, 'direction' | 'recipients' | 'threadId' | 'metadata'> & {
8
9
  /**
9
- * Unique identifier of the message
10
- */
11
- id?: id;
12
- /**
13
- * Date when the message was created
14
- */
15
- date?: Date;
16
- /**
17
- * The name of the participant who sent the message
10
+ * Force the channel to be 'PROMPTBOOK_CHAT'
11
+ *
12
+ * @default 'PROMPTBOOK_CHAT'
18
13
  */
19
- from: id;
14
+ channel?: 'PROMPTBOOK_CHAT';
20
15
  /**
21
16
  * The content of the message with optional markdown formatting
22
17
  */
@@ -28,15 +23,16 @@ export type ChatMessage = {
28
23
  */
29
24
  isComplete?: boolean;
30
25
  /**
31
- * @@@
26
+ * The expected answer for the message (used for testing or validation)
32
27
  */
33
28
  expectedAnswer?: string;
34
29
  /**
35
- * @@@
30
+ * Indicates if the message was sent via a voice call
36
31
  */
37
32
  isVoiceCall?: boolean;
38
33
  };
39
34
  /**
35
+ * TODO: Make all fields readonly
40
36
  * TODO: Delete `expectedAnswer` from ChatMessage
41
37
  * TODO: Rename `date` into `created`+`modified`
42
38
  */
@@ -1,13 +1,13 @@
1
- import { JSX } from 'react';
1
+ import { ReactNode } from 'react';
2
2
  type DropdownProps = {
3
3
  actions: Array<{
4
- icon: JSX.Element;
4
+ icon: ReactNode;
5
5
  name: string;
6
6
  onClick: () => void;
7
7
  }>;
8
8
  };
9
9
  /**
10
- * @@@
10
+ * A dropdown menu component that displays a list of actions triggered by a hamburger menu button.
11
11
  *
12
12
  * @private internal subcomponent used by various components
13
13
  */
@@ -4,7 +4,7 @@ type HamburgerMenuProps = {
4
4
  className?: string;
5
5
  };
6
6
  /**
7
- * @@@
7
+ * An animated hamburger menu button component.
8
8
  *
9
9
  * @private Internal component
10
10
  */
@@ -0,0 +1,56 @@
1
+ import { ReactNode } from 'react';
2
+ /**
3
+ * Item that can be hoisted to the top menu
4
+ *
5
+ * @private mechanism inside Promptbook
6
+ */
7
+ export type HoistedMenuItem = {
8
+ /**
9
+ * Unique key for the menu item
10
+ */
11
+ key?: string;
12
+ /**
13
+ * Icon to display
14
+ */
15
+ icon: ReactNode;
16
+ /**
17
+ * Name/Tooltip of the item
18
+ */
19
+ name: string;
20
+ /**
21
+ * Action to perform when clicked
22
+ */
23
+ onClick: () => void;
24
+ /**
25
+ * If true, the item is active/toggled
26
+ */
27
+ isActive?: boolean;
28
+ };
29
+ type MenuHoistingContextType = {
30
+ /**
31
+ * The currently hoisted menu items
32
+ */
33
+ menu: HoistedMenuItem[];
34
+ /**
35
+ * Set the hoisted menu items
36
+ */
37
+ setMenu: (items: HoistedMenuItem[]) => void;
38
+ };
39
+ /**
40
+ * Provider for menu hoisting
41
+ *
42
+ * @private mechanism inside Promptbook
43
+ */
44
+ export declare function MenuHoistingProvider({ children }: {
45
+ children: ReactNode;
46
+ }): import("react/jsx-runtime").JSX.Element;
47
+ /**
48
+ * Hook to use the menu hoisting system
49
+ *
50
+ * @private mechanism inside Promptbook
51
+ */
52
+ export declare function useMenuHoisting(): MenuHoistingContextType | null;
53
+ export {};
54
+ /**
55
+ * Note: [💞] Ignore a discrepancy between file name and entity name
56
+ */
@@ -1,6 +1,6 @@
1
1
  import { SVGProps } from 'react';
2
2
  /**
3
- * @@@
3
+ * Renders an about icon
4
4
  *
5
5
  * @private internal subcomponent used by various components
6
6
  */
@@ -3,7 +3,7 @@ type AttachmentIconProps = {
3
3
  color?: string;
4
4
  };
5
5
  /**
6
- * @@@
6
+ * Renders an attachment icon
7
7
  *
8
8
  * @public exported from `@promptbook/components`
9
9
  */
@@ -3,7 +3,7 @@ type CameraIconProps = {
3
3
  color?: string;
4
4
  };
5
5
  /**
6
- * @@@
6
+ * Renders a camera icon
7
7
  *
8
8
  * @public exported from `@promptbook/components`
9
9
  */
@@ -1,6 +1,6 @@
1
1
  import { SVGProps } from 'react';
2
2
  /**
3
- * @@@
3
+ * Renders a download icon
4
4
  *
5
5
  * @private internal subcomponent used by various components
6
6
  */
@@ -1,6 +1,6 @@
1
1
  import { SVGProps } from 'react';
2
2
  /**
3
- * @@@
3
+ * Renders a menu icon
4
4
  *
5
5
  * @private internal subcomponent used by various components
6
6
  */
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  /**
3
- * @@@
3
+ * Renders a save icon
4
4
  *
5
5
  * @public exported from `@promptbook/components`
6
6
  */
@@ -1,7 +1,7 @@
1
1
  import type { SupabaseClient } from '@supabase/supabase-js';
2
2
  import type { AgentBasicInformation } from '../../../../book-2.0/agent-source/AgentBasicInformation';
3
3
  import type { string_book } from '../../../../book-2.0/agent-source/string_book';
4
- import type { string_agent_name } from '../../../../types/typeAliases';
4
+ import type { string_agent_name, string_agent_permanent_id } from '../../../../types/typeAliases';
5
5
  import { AgentCollectionInSupabaseOptions } from './AgentCollectionInSupabaseOptions';
6
6
  import type { AgentsDatabaseSchema } from './AgentsDatabaseSchema';
7
7
  /**
@@ -26,40 +26,50 @@ export declare class AgentCollectionInSupabase {
26
26
  */
27
27
  listAgents(): Promise<ReadonlyArray<AgentBasicInformation>>;
28
28
  /**
29
- * [🐱‍🚀]@@@
29
+ * Retrieves the permanent ID of an agent by its name or permanent ID.
30
30
  */
31
- getAgentSource(agentName: string_agent_name): Promise<string_book>;
31
+ getAgentPermanentId(agentNameOrPermanentId: string_agent_name | string_agent_permanent_id): Promise<string_agent_permanent_id>;
32
+ /**
33
+ * Retrieves the source code of an agent by its name or permanent ID.
34
+ */
35
+ getAgentSource(agentNameOrPermanentId: string_agent_name | string_agent_permanent_id): Promise<string_book>;
32
36
  /**
33
37
  * Creates a new agent in the collection
34
38
  *
35
39
  * Note: You can set 'PARENT' in the agent source to inherit from another agent in the collection.
36
40
  */
37
- createAgent(agentSource: string_book): Promise<AgentBasicInformation>;
41
+ createAgent(agentSource: string_book): Promise<AgentBasicInformation & Required<Pick<AgentBasicInformation, 'permanentId'>>>;
38
42
  /**
39
43
  * Updates an existing agent in the collection
40
44
  */
41
- updateAgentSource(agentName: string_agent_name, agentSource: string_book): Promise<void>;
45
+ updateAgentSource(permanentId: string_agent_permanent_id, agentSource: string_book): Promise<void>;
42
46
  /**
43
- * Deletes an agent from the collection
47
+ * List agents that are soft deleted (deletedAt IS NOT NULL)
44
48
  */
45
- deleteAgent(agentName: string_agent_name): Promise<void>;
49
+ listDeletedAgents(): Promise<ReadonlyArray<AgentBasicInformation>>;
46
50
  /**
47
51
  * List history of an agent
48
52
  */
49
- listAgentHistory(agentName: string_agent_name): Promise<ReadonlyArray<{
53
+ listAgentHistory(permanentId: string_agent_permanent_id): Promise<ReadonlyArray<{
50
54
  id: number;
51
55
  createdAt: string;
52
56
  agentHash: string;
53
57
  promptbookEngineVersion: string;
54
58
  }>>;
55
59
  /**
56
- * List agents that are in history but not in the active agents list
60
+ * Restore a soft-deleted agent by setting deletedAt to NULL
61
+ */
62
+ restoreAgent(permanentId: string_agent_permanent_id): Promise<void>;
63
+ /**
64
+ * Restore an agent from a specific history entry
65
+ *
66
+ * This will update the current agent with the source from the history entry
57
67
  */
58
- listDeletedAgents(): Promise<ReadonlyArray<string_agent_name>>;
68
+ restoreAgentFromHistory(historyId: number): Promise<void>;
59
69
  /**
60
- * Restore an agent from history
70
+ * Soft delete an agent by setting deletedAt to current timestamp
61
71
  */
62
- restoreAgent(historyId: number): Promise<void>;
72
+ deleteAgent(permanentId: string_agent_permanent_id): Promise<void>;
63
73
  /**
64
74
  * Get the Supabase table name with prefix
65
75
  *