@promptbook/types 0.103.0-46 → 0.103.0-48

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 (65) hide show
  1. package/esm/typings/src/_packages/components.index.d.ts +4 -0
  2. package/esm/typings/src/_packages/core.index.d.ts +22 -14
  3. package/esm/typings/src/_packages/types.index.d.ts +14 -6
  4. package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +7 -3
  5. package/esm/typings/src/book-2.0/agent-source/AgentModelRequirements.d.ts +6 -1
  6. package/esm/typings/src/book-2.0/agent-source/AgentSourceParseResult.d.ts +3 -2
  7. package/esm/typings/src/book-2.0/agent-source/computeAgentHash.d.ts +8 -0
  8. package/esm/typings/src/book-2.0/agent-source/computeAgentHash.test.d.ts +1 -0
  9. package/esm/typings/src/book-2.0/agent-source/createCommitmentRegex.d.ts +1 -1
  10. package/esm/typings/src/book-2.0/agent-source/createDefaultAgentName.d.ts +8 -0
  11. package/esm/typings/src/book-2.0/agent-source/normalizeAgentName.d.ts +9 -0
  12. package/esm/typings/src/book-2.0/agent-source/normalizeAgentName.test.d.ts +1 -0
  13. package/esm/typings/src/book-2.0/agent-source/parseAgentSourceWithCommitments.d.ts +1 -1
  14. package/esm/typings/src/book-components/Chat/AgentChat/AgentChat.d.ts +14 -0
  15. package/esm/typings/src/book-components/Chat/AgentChat/AgentChat.test.d.ts +1 -0
  16. package/esm/typings/src/book-components/Chat/AgentChat/AgentChatProps.d.ts +13 -0
  17. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +1 -60
  18. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentsDatabaseSchema.d.ts +57 -32
  19. package/esm/typings/src/{book-2.0/commitments → commitments}/ACTION/ACTION.d.ts +1 -1
  20. package/esm/typings/src/{book-2.0/commitments → commitments}/DELETE/DELETE.d.ts +1 -1
  21. package/esm/typings/src/{book-2.0/commitments → commitments}/FORMAT/FORMAT.d.ts +1 -1
  22. package/esm/typings/src/{book-2.0/commitments → commitments}/GOAL/GOAL.d.ts +1 -1
  23. package/esm/typings/src/{book-2.0/commitments → commitments}/KNOWLEDGE/KNOWLEDGE.d.ts +1 -5
  24. package/esm/typings/src/{book-2.0/commitments → commitments}/MEMORY/MEMORY.d.ts +1 -1
  25. package/esm/typings/src/{book-2.0/commitments → commitments}/MESSAGE/MESSAGE.d.ts +1 -1
  26. package/esm/typings/src/{book-2.0/commitments → commitments}/META/META.d.ts +1 -1
  27. package/esm/typings/src/{book-2.0/commitments → commitments}/META_IMAGE/META_IMAGE.d.ts +1 -1
  28. package/esm/typings/src/{book-2.0/commitments → commitments}/META_LINK/META_LINK.d.ts +1 -1
  29. package/esm/typings/src/{book-2.0/commitments → commitments}/MODEL/MODEL.d.ts +1 -1
  30. package/esm/typings/src/{book-2.0/commitments → commitments}/NOTE/NOTE.d.ts +1 -1
  31. package/esm/typings/src/{book-2.0/commitments → commitments}/PERSONA/PERSONA.d.ts +1 -1
  32. package/esm/typings/src/{book-2.0/commitments → commitments}/RULE/RULE.d.ts +1 -1
  33. package/esm/typings/src/{book-2.0/commitments → commitments}/SAMPLE/SAMPLE.d.ts +1 -1
  34. package/esm/typings/src/{book-2.0/commitments → commitments}/SCENARIO/SCENARIO.d.ts +1 -1
  35. package/esm/typings/src/{book-2.0/commitments → commitments}/STYLE/STYLE.d.ts +1 -1
  36. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/BaseCommitmentDefinition.d.ts +1 -1
  37. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/CommitmentDefinition.d.ts +1 -1
  38. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/NotYetImplementedCommitmentDefinition.d.ts +1 -1
  39. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/createEmptyAgentModelRequirements.d.ts +1 -1
  40. package/esm/typings/src/execution/LlmExecutionTools.d.ts +1 -1
  41. package/esm/typings/src/llm-providers/_common/utils/assertUniqueModels.d.ts +12 -0
  42. package/esm/typings/src/llm-providers/agent/Agent.d.ts +10 -9
  43. package/esm/typings/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +5 -1
  44. package/esm/typings/src/llm-providers/agent/CreateAgentLlmExecutionToolsOptions.d.ts +1 -1
  45. package/esm/typings/src/llm-providers/agent/RemoteAgent.d.ts +32 -0
  46. package/esm/typings/src/llm-providers/agent/RemoteAgentOptions.d.ts +11 -0
  47. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +29 -4
  48. package/esm/typings/src/llm-providers/openai/openai-models.test.d.ts +4 -0
  49. package/esm/typings/src/remote-server/startAgentServer.d.ts +1 -1
  50. package/esm/typings/src/remote-server/startRemoteServer.d.ts +1 -2
  51. package/esm/typings/src/storage/_common/PromptbookStorage.d.ts +1 -0
  52. package/esm/typings/src/transpilers/openai-sdk/register.d.ts +1 -1
  53. package/esm/typings/src/types/typeAliases.d.ts +12 -0
  54. package/esm/typings/src/utils/color/internal-utils/checkChannelValue.d.ts +0 -3
  55. package/esm/typings/src/utils/normalization/normalize-to-kebab-case.d.ts +2 -0
  56. package/esm/typings/src/utils/normalization/normalizeTo_PascalCase.d.ts +3 -0
  57. package/esm/typings/src/utils/normalization/normalizeTo_camelCase.d.ts +2 -0
  58. package/esm/typings/src/utils/normalization/titleToName.d.ts +2 -0
  59. package/esm/typings/src/utils/random/$generateBookBoilerplate.d.ts +2 -2
  60. package/esm/typings/src/utils/random/$randomFullnameWithColor.d.ts +1 -1
  61. package/esm/typings/src/version.d.ts +1 -1
  62. package/package.json +2 -2
  63. /package/esm/typings/src/{book-2.0/commitments → commitments}/_base/BookCommitment.d.ts +0 -0
  64. /package/esm/typings/src/{book-2.0/commitments → commitments}/_base/ParsedCommitment.d.ts +0 -0
  65. /package/esm/typings/src/{book-2.0/commitments → commitments}/index.d.ts +0 -0
@@ -10,6 +10,8 @@ import { AvatarProfileFromSource } from '../book-components/AvatarProfile/Avatar
10
10
  import { DEFAULT_BOOK_EDITOR_HEIGHT } from '../book-components/BookEditor/BookEditor';
11
11
  import type { BookEditorProps } from '../book-components/BookEditor/BookEditor';
12
12
  import { BookEditor } from '../book-components/BookEditor/BookEditor';
13
+ import { AgentChat } from '../book-components/Chat/AgentChat/AgentChat';
14
+ import type { AgentChatProps } from '../book-components/Chat/AgentChat/AgentChatProps';
13
15
  import { Chat } from '../book-components/Chat/Chat/Chat';
14
16
  import type { ChatProps } from '../book-components/Chat/Chat/ChatProps';
15
17
  import { useChatAutoScroll } from '../book-components/Chat/hooks/useChatAutoScroll';
@@ -66,6 +68,8 @@ export { AvatarProfileFromSource };
66
68
  export { DEFAULT_BOOK_EDITOR_HEIGHT };
67
69
  export type { BookEditorProps };
68
70
  export { BookEditor };
71
+ export { AgentChat };
72
+ export type { AgentChatProps };
69
73
  export { Chat };
70
74
  export type { ChatProps };
71
75
  export { useChatAutoScroll };
@@ -1,6 +1,9 @@
1
1
  import { BOOK_LANGUAGE_VERSION, PROMPTBOOK_ENGINE_VERSION } from '../version';
2
+ import { computeAgentHash } from '../book-2.0/agent-source/computeAgentHash';
2
3
  import { createAgentModelRequirements } from '../book-2.0/agent-source/createAgentModelRequirements';
3
4
  import { createAgentModelRequirementsWithCommitments } from '../book-2.0/agent-source/createAgentModelRequirementsWithCommitments';
5
+ import { createDefaultAgentName } from '../book-2.0/agent-source/createDefaultAgentName';
6
+ import { normalizeAgentName } from '../book-2.0/agent-source/normalizeAgentName';
4
7
  import { PADDING_LINES } from '../book-2.0/agent-source/padBook';
5
8
  import { padBook } from '../book-2.0/agent-source/padBook';
6
9
  import { parseAgentSource } from '../book-2.0/agent-source/parseAgentSource';
@@ -8,13 +11,6 @@ import { parseParameters } from '../book-2.0/agent-source/parseParameters';
8
11
  import { isValidBook } from '../book-2.0/agent-source/string_book';
9
12
  import { validateBook } from '../book-2.0/agent-source/string_book';
10
13
  import { DEFAULT_BOOK } from '../book-2.0/agent-source/string_book';
11
- import { createEmptyAgentModelRequirements } from '../book-2.0/commitments/_base/createEmptyAgentModelRequirements';
12
- import { createBasicAgentModelRequirements } from '../book-2.0/commitments/_base/createEmptyAgentModelRequirements';
13
- import { NotYetImplementedCommitmentDefinition } from '../book-2.0/commitments/_base/NotYetImplementedCommitmentDefinition';
14
- import { getCommitmentDefinition } from '../book-2.0/commitments/index';
15
- import { getAllCommitmentDefinitions } from '../book-2.0/commitments/index';
16
- import { getAllCommitmentTypes } from '../book-2.0/commitments/index';
17
- import { isCommitmentSupported } from '../book-2.0/commitments/index';
18
14
  import { generatePlaceholderAgentProfileImageUrl } from '../book-2.0/utils/generatePlaceholderAgentProfileImageUrl';
19
15
  import { AgentCollectionInSupabase } from '../collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase';
20
16
  import { createPipelineCollectionFromJson } from '../collection/pipeline-collection/constructors/createPipelineCollectionFromJson';
@@ -22,6 +18,13 @@ import { createPipelineCollectionFromPromise } from '../collection/pipeline-coll
22
18
  import { createPipelineCollectionFromUrl } from '../collection/pipeline-collection/constructors/createPipelineCollectionFromUrl';
23
19
  import { createPipelineSubcollection } from '../collection/pipeline-collection/constructors/createPipelineSubcollection';
24
20
  import { pipelineCollectionToJson } from '../collection/pipeline-collection/pipelineCollectionToJson';
21
+ import { createEmptyAgentModelRequirements } from '../commitments/_base/createEmptyAgentModelRequirements';
22
+ import { createBasicAgentModelRequirements } from '../commitments/_base/createEmptyAgentModelRequirements';
23
+ import { NotYetImplementedCommitmentDefinition } from '../commitments/_base/NotYetImplementedCommitmentDefinition';
24
+ import { getCommitmentDefinition } from '../commitments/index';
25
+ import { getAllCommitmentDefinitions } from '../commitments/index';
26
+ import { getAllCommitmentTypes } from '../commitments/index';
27
+ import { isCommitmentSupported } from '../commitments/index';
25
28
  import { NAME } from '../config';
26
29
  import { ADMIN_EMAIL } from '../config';
27
30
  import { ADMIN_GITHUB_NAME } from '../config';
@@ -138,6 +141,7 @@ import { AgentLlmExecutionTools } from '../llm-providers/agent/AgentLlmExecution
138
141
  import { createAgentLlmExecutionTools } from '../llm-providers/agent/createAgentLlmExecutionTools';
139
142
  import { _AgentMetadata } from '../llm-providers/agent/register-configuration';
140
143
  import { _AgentRegistration } from '../llm-providers/agent/register-constructor';
144
+ import { RemoteAgent } from '../llm-providers/agent/RemoteAgent';
141
145
  import { _AnthropicClaudeMetadataRegistration } from '../llm-providers/anthropic-claude/register-configuration';
142
146
  import { _AzureOpenAiMetadataRegistration } from '../llm-providers/azure-openai/register-configuration';
143
147
  import { _DeepseekMetadataRegistration } from '../llm-providers/deepseek/register-configuration';
@@ -187,8 +191,11 @@ import { aboutPromptbookInformation } from '../utils/misc/aboutPromptbookInforma
187
191
  import { $generateBookBoilerplate } from '../utils/random/$generateBookBoilerplate';
188
192
  import { REMOTE_SERVER_URLS } from '../../servers';
189
193
  export { BOOK_LANGUAGE_VERSION, PROMPTBOOK_ENGINE_VERSION };
194
+ export { computeAgentHash };
190
195
  export { createAgentModelRequirements };
191
196
  export { createAgentModelRequirementsWithCommitments };
197
+ export { createDefaultAgentName };
198
+ export { normalizeAgentName };
192
199
  export { PADDING_LINES };
193
200
  export { padBook };
194
201
  export { parseAgentSource };
@@ -196,13 +203,6 @@ export { parseParameters };
196
203
  export { isValidBook };
197
204
  export { validateBook };
198
205
  export { DEFAULT_BOOK };
199
- export { createEmptyAgentModelRequirements };
200
- export { createBasicAgentModelRequirements };
201
- export { NotYetImplementedCommitmentDefinition };
202
- export { getCommitmentDefinition };
203
- export { getAllCommitmentDefinitions };
204
- export { getAllCommitmentTypes };
205
- export { isCommitmentSupported };
206
206
  export { generatePlaceholderAgentProfileImageUrl };
207
207
  export { AgentCollectionInSupabase };
208
208
  export { createPipelineCollectionFromJson };
@@ -210,6 +210,13 @@ export { createPipelineCollectionFromPromise };
210
210
  export { createPipelineCollectionFromUrl };
211
211
  export { createPipelineSubcollection };
212
212
  export { pipelineCollectionToJson };
213
+ export { createEmptyAgentModelRequirements };
214
+ export { createBasicAgentModelRequirements };
215
+ export { NotYetImplementedCommitmentDefinition };
216
+ export { getCommitmentDefinition };
217
+ export { getAllCommitmentDefinitions };
218
+ export { getAllCommitmentTypes };
219
+ export { isCommitmentSupported };
213
220
  export { NAME };
214
221
  export { ADMIN_EMAIL };
215
222
  export { ADMIN_GITHUB_NAME };
@@ -326,6 +333,7 @@ export { AgentLlmExecutionTools };
326
333
  export { createAgentLlmExecutionTools };
327
334
  export { _AgentMetadata };
328
335
  export { _AgentRegistration };
336
+ export { RemoteAgent };
329
337
  export { _AnthropicClaudeMetadataRegistration };
330
338
  export { _AzureOpenAiMetadataRegistration };
331
339
  export { _DeepseekMetadataRegistration };
@@ -2,14 +2,12 @@ import type { BookParameter } from '../book-2.0/agent-source/AgentBasicInformati
2
2
  import type { AgentBasicInformation } from '../book-2.0/agent-source/AgentBasicInformation';
3
3
  import type { AgentModelRequirements } from '../book-2.0/agent-source/AgentModelRequirements';
4
4
  import type { string_book } from '../book-2.0/agent-source/string_book';
5
- import type { BookCommitment } from '../book-2.0/commitments/_base/BookCommitment';
6
- import type { CommitmentDefinition } from '../book-2.0/commitments/_base/CommitmentDefinition';
7
- import type { ParsedCommitment } from '../book-2.0/commitments/_base/ParsedCommitment';
8
5
  import type { AvatarChipProps } from '../book-components/AvatarProfile/AvatarChip/AvatarChip';
9
6
  import type { AvatarChipFromSourceProps } from '../book-components/AvatarProfile/AvatarChip/AvatarChipFromSource';
10
7
  import type { AvatarProfileProps } from '../book-components/AvatarProfile/AvatarProfile/AvatarProfile';
11
8
  import type { AvatarProfileFromSourceProps } from '../book-components/AvatarProfile/AvatarProfile/AvatarProfileFromSource';
12
9
  import type { BookEditorProps } from '../book-components/BookEditor/BookEditor';
10
+ import type { AgentChatProps } from '../book-components/Chat/AgentChat/AgentChatProps';
13
11
  import type { ChatProps } from '../book-components/Chat/Chat/ChatProps';
14
12
  import type { ChatAutoScrollConfig } from '../book-components/Chat/hooks/useChatAutoScroll';
15
13
  import type { SendMessageToLlmChatFunction } from '../book-components/Chat/hooks/useSendMessageToLlmChat';
@@ -55,6 +53,9 @@ import type { SectionCommand } from '../commands/SECTION/SectionCommand';
55
53
  import type { UrlCommand } from '../commands/URL/UrlCommand';
56
54
  import type { ActionCommand } from '../commands/X_ACTION/ActionCommand';
57
55
  import type { InstrumentCommand } from '../commands/X_INSTRUMENT/InstrumentCommand';
56
+ import type { BookCommitment } from '../commitments/_base/BookCommitment';
57
+ import type { CommitmentDefinition } from '../commitments/_base/CommitmentDefinition';
58
+ import type { ParsedCommitment } from '../commitments/_base/ParsedCommitment';
58
59
  import type { PrettifyOptions } from '../conversion/prettify/PrettifyOptions';
59
60
  import type { renderPipelineMermaidOptions } from '../conversion/prettify/renderPipelineMermaidOptions';
60
61
  import type { CallbackInterfaceToolsOptions } from '../dialogs/callback/CallbackInterfaceToolsOptions';
@@ -109,6 +110,7 @@ import type { CacheLlmToolsOptions } from '../llm-providers/_common/utils/cache/
109
110
  import type { LlmExecutionToolsWithTotalUsage } from '../llm-providers/_common/utils/count-total-usage/LlmExecutionToolsWithTotalUsage';
110
111
  import type { AgentOptions } from '../llm-providers/agent/AgentOptions';
111
112
  import type { CreateAgentLlmExecutionToolsOptions } from '../llm-providers/agent/CreateAgentLlmExecutionToolsOptions';
113
+ import type { RemoteAgentOptions } from '../llm-providers/agent/RemoteAgentOptions';
112
114
  import type { AnthropicClaudeExecutionToolsOptions } from '../llm-providers/anthropic-claude/AnthropicClaudeExecutionToolsOptions';
113
115
  import type { AnthropicClaudeExecutionToolsNonProxiedOptions } from '../llm-providers/anthropic-claude/AnthropicClaudeExecutionToolsOptions';
114
116
  import type { AnthropicClaudeExecutionToolsProxiedOptions } from '../llm-providers/anthropic-claude/AnthropicClaudeExecutionToolsOptions';
@@ -217,6 +219,7 @@ import type { ReservedParameters } from '../types/typeAliases';
217
219
  import type { string_title } from '../types/typeAliases';
218
220
  import type { string_agent_name } from '../types/typeAliases';
219
221
  import type { string_agent_name_in_book } from '../types/typeAliases';
222
+ import type { string_agent_hash } from '../types/typeAliases';
220
223
  import type { string_persona_description } from '../types/typeAliases';
221
224
  import type { string_model_description } from '../types/typeAliases';
222
225
  import type { string_knowledge_source_content } from '../types/typeAliases';
@@ -246,6 +249,7 @@ import type { string_url } from '../types/typeAliases';
246
249
  import type { string_promptbook_server_url } from '../types/typeAliases';
247
250
  import type { string_base_url } from '../types/typeAliases';
248
251
  import type { string_pipeline_root_url } from '../types/typeAliases';
252
+ import type { string_agent_url } from '../types/typeAliases';
249
253
  import type { string_pipeline_url } from '../types/typeAliases';
250
254
  import type { string_pipeline_url_with_task_hash } from '../types/typeAliases';
251
255
  import type { string_data_url } from '../types/typeAliases';
@@ -354,14 +358,12 @@ export type { BookParameter };
354
358
  export type { AgentBasicInformation };
355
359
  export type { AgentModelRequirements };
356
360
  export type { string_book };
357
- export type { BookCommitment };
358
- export type { CommitmentDefinition };
359
- export type { ParsedCommitment };
360
361
  export type { AvatarChipProps };
361
362
  export type { AvatarChipFromSourceProps };
362
363
  export type { AvatarProfileProps };
363
364
  export type { AvatarProfileFromSourceProps };
364
365
  export type { BookEditorProps };
366
+ export type { AgentChatProps };
365
367
  export type { ChatProps };
366
368
  export type { ChatAutoScrollConfig };
367
369
  export type { SendMessageToLlmChatFunction };
@@ -407,6 +409,9 @@ export type { SectionCommand };
407
409
  export type { UrlCommand };
408
410
  export type { ActionCommand };
409
411
  export type { InstrumentCommand };
412
+ export type { BookCommitment };
413
+ export type { CommitmentDefinition };
414
+ export type { ParsedCommitment };
410
415
  export type { PrettifyOptions };
411
416
  export type { renderPipelineMermaidOptions };
412
417
  export type { CallbackInterfaceToolsOptions };
@@ -461,6 +466,7 @@ export type { CacheLlmToolsOptions };
461
466
  export type { LlmExecutionToolsWithTotalUsage };
462
467
  export type { AgentOptions };
463
468
  export type { CreateAgentLlmExecutionToolsOptions };
469
+ export type { RemoteAgentOptions };
464
470
  export type { AnthropicClaudeExecutionToolsOptions };
465
471
  export type { AnthropicClaudeExecutionToolsNonProxiedOptions };
466
472
  export type { AnthropicClaudeExecutionToolsProxiedOptions };
@@ -569,6 +575,7 @@ export type { ReservedParameters };
569
575
  export type { string_title };
570
576
  export type { string_agent_name };
571
577
  export type { string_agent_name_in_book };
578
+ export type { string_agent_hash };
572
579
  export type { string_persona_description };
573
580
  export type { string_model_description };
574
581
  export type { string_knowledge_source_content };
@@ -598,6 +605,7 @@ export type { string_url };
598
605
  export type { string_promptbook_server_url };
599
606
  export type { string_base_url };
600
607
  export type { string_pipeline_root_url };
608
+ export type { string_agent_url };
601
609
  export type { string_pipeline_url };
602
610
  export type { string_pipeline_url_with_task_hash };
603
611
  export type { string_data_url };
@@ -1,4 +1,4 @@
1
- import type { string_agent_name, string_color, string_url_image } from '../../types/typeAliases';
1
+ import type { string_agent_hash, string_agent_name, string_color, 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 @
@@ -28,7 +28,11 @@ export type AgentBasicInformation = {
28
28
  * Name of the agent
29
29
  * This is the first line of the agent source
30
30
  */
31
- agentName: string_agent_name | null;
31
+ agentName: string_agent_name;
32
+ /**
33
+ * Hash of the agent source for integrity verification
34
+ */
35
+ agentHash: string_agent_hash;
32
36
  /**
33
37
  * Optional description of the agent
34
38
  * This is the line starting with "PERSONA"
@@ -53,6 +57,6 @@ export type AgentBasicInformation = {
53
57
  parameters: BookParameter[];
54
58
  };
55
59
  /**
56
- * TODO: All readonly
60
+ * TODO: !!!!! Make all properties of `AgentBasicInformation` readonly
57
61
  * TODO: [🕛] Unite `AgentBasicInformation`, `ChatParticipant`, `LlmExecutionTools` + `LlmToolsMetadata`
58
62
  */
@@ -1,3 +1,4 @@
1
+ import type { string_knowledge_source_link } from '../../types/typeAliases';
1
2
  import type { TODO_any } from '../../utils/organization/TODO_any';
2
3
  /**
3
4
  * Model requirements for an agent
@@ -16,7 +17,11 @@ export type AgentModelRequirements = {
16
17
  /**
17
18
  * Optional list of MCP servers that the agent can connect to
18
19
  */
19
- readonly mcpServers?: string[];
20
+ readonly mcpServers?: ReadonlyArray<string>;
21
+ /**
22
+ * Optional list of knowledge source links that the agent can use
23
+ */
24
+ readonly knowledgeSources?: ReadonlyArray<string_knowledge_source_link>;
20
25
  /**
21
26
  * Temperature for the agent's responses, controlling randomness
22
27
  */
@@ -1,4 +1,5 @@
1
- import type { ParsedCommitment } from '../commitments/_base/ParsedCommitment';
1
+ import type { ParsedCommitment } from '../../commitments/_base/ParsedCommitment';
2
+ import { string_agent_name } from '../../types/typeAliases';
2
3
  /**
3
4
  * Result of parsing agent source for commitments
4
5
  *
@@ -8,7 +9,7 @@ export type AgentSourceParseResult = {
8
9
  /**
9
10
  * The agent name (first line)
10
11
  */
11
- agentName: string | null;
12
+ agentName: string_agent_name | null;
12
13
  /**
13
14
  * All parsed commitments
14
15
  */
@@ -0,0 +1,8 @@
1
+ import { string_agent_hash } from '../../types/typeAliases';
2
+ import { string_book } from './string_book';
3
+ /**
4
+ * Computes SHA-256 hash of the agent source
5
+ *
6
+ * @public exported from `@promptbook/core`
7
+ */
8
+ export declare function computeAgentHash(agentSource: string_book): string_agent_hash;
@@ -1,4 +1,4 @@
1
- import type { BookCommitment } from '../commitments/_base/BookCommitment';
1
+ import type { BookCommitment } from '../../commitments/_base/BookCommitment';
2
2
  /**
3
3
  * Generates a regex pattern to match a specific commitment
4
4
  *
@@ -0,0 +1,8 @@
1
+ import { string_agent_name } from '../../types/typeAliases';
2
+ import { string_book } from './string_book';
3
+ /**
4
+ * Creates temporary default agent name based on agent source hash
5
+ *
6
+ * @public exported from `@promptbook/core`
7
+ */
8
+ export declare function createDefaultAgentName(agentSource: string_book): string_agent_name;
@@ -0,0 +1,9 @@
1
+ import { string_agent_name } from '../../types/typeAliases';
2
+ /**
3
+ * Normalizes agent name from arbitrary string to valid agent name
4
+ *
5
+ * Note: [🔂] This function is idempotent.
6
+ *
7
+ * @public exported from `@promptbook/core`
8
+ */
9
+ export declare function normalizeAgentName(rawAgentName: string): string_agent_name;
@@ -6,4 +6,4 @@ import type { string_book } from './string_book';
6
6
  *
7
7
  * @private internal utility of `parseAgentSource`
8
8
  */
9
- export declare function parseAgentSourceWithCommitments(agentSource: string_book): AgentSourceParseResult;
9
+ export declare function parseAgentSourceWithCommitments(agentSource: string_book): Omit<AgentSourceParseResult, 'agentHash'>;
@@ -0,0 +1,14 @@
1
+ import type { AgentChatProps } from './AgentChatProps';
2
+ /**
3
+ * AgentChat component that provides chat functionality with LLM integration
4
+ *
5
+ * This component internally manages messages, participants, and task progress,
6
+ * and uses the provided LLM tools to generate responses via `LlmExecutionTools.callChatModel`.
7
+ *
8
+ * Note: There are multiple chat components:
9
+ * - `<Chat/>` renders chat as it is without any logic
10
+ * - `<AgentChat/>` connected to LLM Execution Tools of Promptbook
11
+ *
12
+ * @public exported from `@promptbook/components`
13
+ */
14
+ export declare function AgentChat(props: AgentChatProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { Agent } from '../../../llm-providers/agent/Agent';
2
+ import type { LlmChatProps } from '../LlmChat/LlmChatProps';
3
+ /**
4
+ * Props for AgentChat component, derived from LlmChatProps but with Agent-specific modifications
5
+ *
6
+ * @public exported from `@promptbook/components`
7
+ */
8
+ export type AgentChatProps = Omit<LlmChatProps, 'thread' | 'llmTools' | 'initialMessages' | 'userParticipantName' | 'llmParticipantName'> & {
9
+ /**
10
+ * The agent to chat with
11
+ */
12
+ readonly agent: Agent;
13
+ };
@@ -1,5 +1,4 @@
1
1
  import type { SupabaseClient } from '@supabase/supabase-js';
2
- import { BehaviorSubject } from 'rxjs';
3
2
  import type { AgentBasicInformation } from '../../../../book-2.0/agent-source/AgentBasicInformation';
4
3
  import type { string_book } from '../../../../book-2.0/agent-source/string_book';
5
4
  import type { CommonToolsOptions } from '../../../../execution/CommonToolsOptions';
@@ -23,72 +22,14 @@ export declare class AgentCollectionInSupabase {
23
22
  * @param options - Options for the collection creation
24
23
  */
25
24
  constructor(supabaseClient: SupabaseClient<AgentsDatabaseSchema>, options?: (PrepareAndScrapeOptions & CommonToolsOptions) | undefined);
26
- /**
27
- * Cached defined execution tools
28
- */
29
25
  /**
30
26
  * Gets all agents in the collection
31
27
  */
32
28
  listAgents(): Promise<ReadonlyArray<AgentBasicInformation>>;
33
- /**
34
- * !!!
35
- * /
36
- public async spawnAgent(agentName: string_agent_name): Promise<Agent> {
37
-
38
- // <- TODO: !!! ENOENT: no such file or directory, open 'C:\Users\me\work\ai\promptbook\agents\examples\Asistent pro LŠVP.book
39
- const { isVerbose = DEFAULT_IS_VERBOSE } = this.options || {};
40
- const tools = await this.getTools();
41
-
42
- const agentSourceValue = validateBook(await tools.fs!.readFile(agentSourcePath, 'utf-8'));
43
- const agentSource = new BehaviorSubject(agentSourceValue);
44
-
45
- // Note: Write file whenever agent source changes
46
- agentSource.subscribe(async (newSource) => {
47
- if (isVerbose) {
48
- console.info(colors.cyan(`Writing agent source to file ${agentSourcePath}`));
49
- }
50
- await forTime(500); // <- TODO: [🙌] !!! Remove
51
- await tools.fs!.writeFile(agentSourcePath, newSource, 'utf-8');
52
- });
53
-
54
- // Note: Watch file for external changes
55
- for await (const event of tools.fs!.watch(agentSourcePath)) {
56
- // <- TODO: !!!! Solve the memory freeing when the watching is no longer needed
57
-
58
- if (event.eventType !== 'change') {
59
- continue;
60
- }
61
-
62
- if (isVerbose) {
63
- console.info(
64
- colors.cyan(`Detected external change in agent source file ${agentSourcePath}, reloading`),
65
- );
66
- }
67
- await forTime(500); // <- TODO: [🙌] !!! Remove
68
- const newSource = validateBook(await tools.fs!.readFile(agentSourcePath, 'utf-8'));
69
- agentSource.next(newSource);
70
- }
71
-
72
- // TODO: [🙌] !!!! Debug the infinite loop when file is changed externally and agent source is updated which causes file to be written again
73
-
74
- const agent = new Agent({
75
- ...this.options,
76
- agentSource,
77
- executionTools: this.tools || {},
78
- });
79
-
80
- if (isVerbose) {
81
- console.info(colors.cyan(`Created agent "${agent.agentName}" from source file ${agentSourcePath}`));
82
- }
83
-
84
- return agent;
85
- * /
86
- }
87
- */
88
29
  /**
89
30
  * !!!@@@
90
31
  */
91
- getAgentSource(agentName: string_agent_name): Promise<BehaviorSubject<string_book>>;
32
+ getAgentSource(agentName: string_agent_name): Promise<string_book>;
92
33
  /**
93
34
  * Creates a new agent in the collection
94
35
  *
@@ -1,65 +1,90 @@
1
+ /**
2
+ * AUTO-GENERATED SUBSET TYPES FROM `/apps/agents-server/src/database/schema.ts`
3
+ * Source of truth: `/apps/agents-server/src/database/schema.sql` *(do not edit table structure here manually)*
4
+ *
5
+ * [💽] Prompt:
6
+ * Re-generate this sub-schema
7
+ * Generate Supabase TypeScript schema which is a subset of `AgentsServerDatabase`
8
+ * containing only tables `Agent` and `AgentHistory`
9
+ *
10
+ * NOTE: This file intentionally omits all other tables (EnvironmentVariable, ChatHistory, ChatFeedback)
11
+ * and any extra schemas (e.g. `graphql_public`) to remain a strict subset.
12
+ */
1
13
  export type Json = string | number | boolean | null | {
2
14
  [key: string]: Json | undefined;
3
15
  } | Json[];
4
16
  export type AgentsDatabaseSchema = {
5
- graphql_public: {
6
- Tables: {
7
- [_ in never]: never;
8
- };
9
- Views: {
10
- [_ in never]: never;
11
- };
12
- Functions: {
13
- graphql: {
14
- Args: {
15
- operationName?: string;
16
- query?: string;
17
- variables?: Json;
18
- extensions?: Json;
19
- };
20
- Returns: Json;
21
- };
22
- };
23
- Enums: {
24
- [_ in never]: never;
25
- };
26
- CompositeTypes: {
27
- [_ in never]: never;
28
- };
29
- };
30
17
  public: {
31
18
  Tables: {
32
- AgentCollection: {
19
+ Agent: {
33
20
  Row: {
34
21
  id: number;
35
22
  agentName: string;
36
- agentProfile: Json;
37
23
  createdAt: string;
38
24
  updatedAt: string | null;
39
- agentVersion: number;
25
+ agentHash: string;
26
+ agentSource: string;
27
+ agentProfile: Json;
40
28
  promptbookEngineVersion: string;
41
29
  usage: Json | null;
42
- agentSource: string;
30
+ preparedModelRequirements: Json | null;
31
+ preparedExternals: Json | null;
43
32
  };
44
33
  Insert: {
45
34
  id?: number;
46
35
  agentName: string;
47
36
  createdAt: string;
48
37
  updatedAt?: string | null;
49
- agentVersion: number;
38
+ agentHash: string;
39
+ agentSource: string;
40
+ agentProfile: Json;
50
41
  promptbookEngineVersion: string;
51
42
  usage?: Json | null;
52
- agentSource: string;
43
+ preparedModelRequirements?: Json | null;
44
+ preparedExternals?: Json | null;
53
45
  };
54
46
  Update: {
55
47
  id?: number;
56
48
  agentName?: string;
57
49
  createdAt?: string;
58
50
  updatedAt?: string | null;
59
- agentVersion?: number;
51
+ agentHash?: string;
52
+ agentSource?: string;
53
+ agentProfile?: Json;
60
54
  promptbookEngineVersion?: string;
61
55
  usage?: Json | null;
56
+ preparedModelRequirements?: Json | null;
57
+ preparedExternals?: Json | null;
58
+ };
59
+ Relationships: [];
60
+ };
61
+ AgentHistory: {
62
+ Row: {
63
+ id: number;
64
+ createdAt: string;
65
+ agentName: string;
66
+ agentHash: string;
67
+ previousAgentHash: string | null;
68
+ agentSource: string;
69
+ promptbookEngineVersion: string;
70
+ };
71
+ Insert: {
72
+ id?: number;
73
+ createdAt: string;
74
+ agentName: string;
75
+ agentHash: string;
76
+ previousAgentHash?: string | null;
77
+ agentSource: string;
78
+ promptbookEngineVersion: string;
79
+ };
80
+ Update: {
81
+ id?: number;
82
+ createdAt?: string;
83
+ agentName?: string;
84
+ agentHash?: string;
85
+ previousAgentHash?: string | null;
62
86
  agentSource?: string;
87
+ promptbookEngineVersion?: string;
63
88
  };
64
89
  Relationships: [];
65
90
  };
@@ -1,4 +1,4 @@
1
- import type { AgentModelRequirements } from '../../agent-source/AgentModelRequirements';
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
2
  import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
3
  /**
4
4
  * ACTION commitment definition
@@ -1,4 +1,4 @@
1
- import type { AgentModelRequirements } from '../../agent-source/AgentModelRequirements';
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
2
  import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
3
  /**
4
4
  * DELETE commitment definition
@@ -1,4 +1,4 @@
1
- import type { AgentModelRequirements } from '../../agent-source/AgentModelRequirements';
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
2
  import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
3
  /**
4
4
  * FORMAT commitment definition
@@ -1,4 +1,4 @@
1
- import type { AgentModelRequirements } from '../../agent-source/AgentModelRequirements';
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
2
  import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
3
  /**
4
4
  * GOAL commitment definition
@@ -1,4 +1,4 @@
1
- import type { AgentModelRequirements } from '../../agent-source/AgentModelRequirements';
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
2
  import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
3
  /**
4
4
  * KNOWLEDGE commitment definition
@@ -29,10 +29,6 @@ export declare class KnowledgeCommitmentDefinition extends BaseCommitmentDefinit
29
29
  */
30
30
  get documentation(): string;
31
31
  applyToAgentModelRequirements(requirements: AgentModelRequirements, content: string): AgentModelRequirements;
32
- /**
33
- * Check if content is a URL
34
- */
35
- private isUrl;
36
32
  }
37
33
  /**
38
34
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -1,4 +1,4 @@
1
- import type { AgentModelRequirements } from '../../agent-source/AgentModelRequirements';
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
2
  import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
3
  /**
4
4
  * MEMORY commitment definition
@@ -1,4 +1,4 @@
1
- import type { AgentModelRequirements } from '../../agent-source/AgentModelRequirements';
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
2
  import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
3
  /**
4
4
  * MESSAGE commitment definition
@@ -1,4 +1,4 @@
1
- import type { AgentModelRequirements } from '../../agent-source/AgentModelRequirements';
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
2
  import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
3
  /**
4
4
  * META commitment definition
@@ -1,4 +1,4 @@
1
- import type { AgentModelRequirements } from '../../agent-source/AgentModelRequirements';
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
2
  import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
3
  /**
4
4
  * META IMAGE commitment definition
@@ -1,4 +1,4 @@
1
- import type { AgentModelRequirements } from '../../agent-source/AgentModelRequirements';
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
2
  import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
3
  /**
4
4
  * META LINK commitment definition
@@ -1,4 +1,4 @@
1
- import type { AgentModelRequirements } from '../../agent-source/AgentModelRequirements';
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
2
  import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
3
  /**
4
4
  * MODEL commitment definition
@@ -1,4 +1,4 @@
1
- import type { AgentModelRequirements } from '../../agent-source/AgentModelRequirements';
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
2
  import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
3
  /**
4
4
  * NOTE commitment definition
@@ -1,4 +1,4 @@
1
- import type { AgentModelRequirements } from '../../agent-source/AgentModelRequirements';
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
2
  import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
3
  /**
4
4
  * PERSONA commitment definition
@@ -1,4 +1,4 @@
1
- import type { AgentModelRequirements } from '../../agent-source/AgentModelRequirements';
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
2
  import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
3
  /**
4
4
  * RULE commitment definition
@@ -1,4 +1,4 @@
1
- import type { AgentModelRequirements } from '../../agent-source/AgentModelRequirements';
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
2
  import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
3
  /**
4
4
  * SAMPLE commitment definition
@@ -1,4 +1,4 @@
1
- import type { AgentModelRequirements } from '../../agent-source/AgentModelRequirements';
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
2
  import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
3
  /**
4
4
  * SCENARIO commitment definition
@@ -1,4 +1,4 @@
1
- import type { AgentModelRequirements } from '../../agent-source/AgentModelRequirements';
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
2
  import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
3
  /**
4
4
  * STYLE commitment definition
@@ -1,4 +1,4 @@
1
- import type { AgentModelRequirements } from '../../agent-source/AgentModelRequirements';
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
2
  import type { CommitmentDefinition } from './CommitmentDefinition';
3
3
  /**
4
4
  * Base implementation of CommitmentDefinition that provides common functionality
@@ -1,4 +1,4 @@
1
- import type { AgentModelRequirements } from '../../agent-source/AgentModelRequirements';
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
2
  /**
3
3
  * Definition of a commitment that can be applied to agent model requirements
4
4
  *
@@ -1,4 +1,4 @@
1
- import type { AgentModelRequirements } from '../../agent-source/AgentModelRequirements';
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
2
  import { BaseCommitmentDefinition } from './BaseCommitmentDefinition';
3
3
  /**
4
4
  * Placeholder commitment definition for commitments that are not yet implemented
@@ -1,4 +1,4 @@
1
- import type { AgentModelRequirements } from '../../agent-source/AgentModelRequirements';
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
2
  /**
3
3
  * Creates an empty/basic agent model requirements object
4
4
  * This serves as the starting point for the reduce-like pattern
@@ -9,7 +9,7 @@ import type { ChatPromptResult, CompletionPromptResult, EmbeddingPromptResult }
9
9
  * On its interface it exposes common methods for prompt execution.
10
10
  * Inside (in constructor) it calls OpenAI, Azure, GPU, proxy, cache, logging,...
11
11
  *
12
- * Note: [🦖] There are several different things in Promptbook:
12
+ * !!! Note: [🦖] There are several different things in Promptbook:
13
13
  * - `Agent` - which represents an AI Agent with its source, memories, actions, etc. Agent is a higher-level abstraction which is internally using:
14
14
  * - `LlmExecutionTools` - which wraps one or more LLM models and provides an interface to execute them
15
15
  * - `AgentLlmExecutionTools` - which is a specific implementation of `LlmExecutionTools` that wraps another LlmExecutionTools and applies agent-specific system prompts and requirements
@@ -0,0 +1,12 @@
1
+ import { AvailableModel } from '../../../execution/AvailableModel';
2
+ /**
3
+ * Utility to assert that all models in the provided array have unique `modelName` values.
4
+ *
5
+ * This is internal utility for unit tests to ensure no duplicate model names exist.
6
+ *
7
+ * @private internal utility of unit tests
8
+ */
9
+ export declare function assertUniqueModels(models: ReadonlyArray<AvailableModel>): void;
10
+ /**
11
+ * Note: [⚪] This should never be in any released package
12
+ */
@@ -2,12 +2,13 @@ import { BehaviorSubject } from 'rxjs';
2
2
  import type { AgentBasicInformation, BookParameter } from '../../book-2.0/agent-source/AgentBasicInformation';
3
3
  import type { string_book } from '../../book-2.0/agent-source/string_book';
4
4
  import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
5
- import type { string_agent_name, string_url_image } from '../../types/typeAliases';
5
+ import type { string_agent_hash, string_agent_name, string_url_image } from '../../types/typeAliases';
6
+ import { AgentLlmExecutionTools } from './AgentLlmExecutionTools';
6
7
  import type { AgentOptions } from './AgentOptions';
7
8
  /**
8
9
  * Represents one AI Agent
9
10
  *
10
- * Note: [🦖] There are several different things in Promptbook:
11
+ * !!! Note: [🦖] There are several different things in Promptbook:
11
12
  * - `Agent` - which represents an AI Agent with its source, memories, actions, etc. Agent is a higher-level abstraction which is internally using:
12
13
  * - `LlmExecutionTools` - which wraps one or more LLM models and provides an interface to execute them
13
14
  * - `AgentLlmExecutionTools` - which is a specific implementation of `LlmExecutionTools` that wraps another LlmExecutionTools and applies agent-specific system prompts and requirements
@@ -15,16 +16,20 @@ import type { AgentOptions } from './AgentOptions';
15
16
  *
16
17
  * @public exported from `@promptbook/core`
17
18
  */
18
- export declare class Agent implements AgentBasicInformation {
19
- private readonly options;
19
+ export declare class Agent extends AgentLlmExecutionTools implements LlmExecutionTools, AgentBasicInformation {
20
+ private _agentName;
20
21
  /**
21
22
  * Name of the agent
22
23
  */
23
- agentName: string_agent_name | null;
24
+ get agentName(): string_agent_name;
24
25
  /**
25
26
  * Description of the agent
26
27
  */
27
28
  personaDescription: string | null;
29
+ /**
30
+ * Computed hash of the agent source for integrity verification
31
+ */
32
+ get agentHash(): string_agent_hash;
28
33
  /**
29
34
  * Metadata like image or color
30
35
  */
@@ -41,10 +46,6 @@ export declare class Agent implements AgentBasicInformation {
41
46
  get parameters(): BookParameter[];
42
47
  readonly agentSource: BehaviorSubject<string_book>;
43
48
  constructor(options: AgentOptions);
44
- /**
45
- * Creates LlmExecutionTools which exposes the agent as a model
46
- */
47
- getLlmExecutionTools(): LlmExecutionTools;
48
49
  }
49
50
  /**
50
51
  * TODO: [🧠][😰]Agent is not working with the parameters, should it be?
@@ -10,7 +10,7 @@ import type { CreateAgentLlmExecutionToolsOptions } from './CreateAgentLlmExecut
10
10
  * Execution Tools for calling LLM models with a predefined agent "soul"
11
11
  * This wraps underlying LLM execution tools and applies agent-specific system prompts and requirements
12
12
  *
13
- * Note: [🦖] There are several different things in Promptbook:
13
+ * !!! Note: [🦖] There are several different things in Promptbook:
14
14
  * - `Agent` - which represents an AI Agent with its source, memories, actions, etc. Agent is a higher-level abstraction which is internally using:
15
15
  * - `LlmExecutionTools` - which wraps one or more LLM models and provides an interface to execute them
16
16
  * - `AgentLlmExecutionTools` - which is a specific implementation of `LlmExecutionTools` that wraps another LlmExecutionTools and applies agent-specific system prompts and requirements
@@ -20,6 +20,10 @@ import type { CreateAgentLlmExecutionToolsOptions } from './CreateAgentLlmExecut
20
20
  */
21
21
  export declare class AgentLlmExecutionTools implements LlmExecutionTools {
22
22
  private readonly options;
23
+ /**
24
+ * Cache of OpenAI assistants to avoid creating duplicates
25
+ */
26
+ private static assistantCache;
23
27
  /**
24
28
  * Cached model requirements to avoid re-parsing the agent source
25
29
  */
@@ -1,5 +1,5 @@
1
1
  import type { string_book } from '../../book-2.0/agent-source/string_book';
2
- import { CommonToolsOptions } from '../../execution/CommonToolsOptions';
2
+ import type { CommonToolsOptions } from '../../execution/CommonToolsOptions';
3
3
  import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
4
4
  import { OpenAiAssistantExecutionTools } from '../openai/OpenAiAssistantExecutionTools';
5
5
  /**
@@ -0,0 +1,32 @@
1
+ import type { ChatPromptResult } from '../../execution/PromptResult';
2
+ import type { Prompt } from '../../types/Prompt';
3
+ import { Agent } from './Agent';
4
+ import type { RemoteAgentOptions } from './RemoteAgentOptions';
5
+ /**
6
+ * Represents one AI Agent
7
+ *
8
+ * !!!!!! Note: [🦖] There are several different things in Promptbook:
9
+ * - `Agent` - which represents an AI Agent with its source, memories, actions, etc. Agent is a higher-level abstraction which is internally using:
10
+ * !!!!!! `RemoteAgent`
11
+ * - `LlmExecutionTools` - which wraps one or more LLM models and provides an interface to execute them
12
+ * - `AgentLlmExecutionTools` - which is a specific implementation of `LlmExecutionTools` that wraps another LlmExecutionTools and applies agent-specific system prompts and requirements
13
+ * - `OpenAiAssistantExecutionTools` - which is a specific implementation of `LlmExecutionTools` for OpenAI models with assistant capabilities, recommended for usage in `Agent` or `AgentLlmExecutionTools`
14
+ *
15
+ * @public exported from `@promptbook/core`
16
+ */
17
+ export declare class RemoteAgent extends Agent {
18
+ static connect(options: RemoteAgentOptions): Promise<RemoteAgent>;
19
+ /**
20
+ * The source of the agent
21
+ */
22
+ private agentUrl;
23
+ private constructor();
24
+ /**
25
+ * Calls the agent on agents remote server
26
+ */
27
+ callChatModel(prompt: Prompt): Promise<ChatPromptResult>;
28
+ }
29
+ /**
30
+ * TODO: [🧠][😰]Agent is not working with the parameters, should it be?
31
+ * TODO: !!! Agent on remote server
32
+ */
@@ -0,0 +1,11 @@
1
+ import type { CommonToolsOptions } from '../../execution/CommonToolsOptions';
2
+ import type { string_agent_url } from '../../types/typeAliases';
3
+ /**
4
+ * Options for creating a Remote Agent
5
+ */
6
+ export type RemoteAgentOptions = CommonToolsOptions & {
7
+ /**
8
+ * Url of the remote agent
9
+ */
10
+ agentUrl: string_agent_url;
11
+ };
@@ -1,7 +1,7 @@
1
1
  import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
2
2
  import type { ChatPromptResult } from '../../execution/PromptResult';
3
3
  import type { Prompt } from '../../types/Prompt';
4
- import type { string_markdown, string_markdown_text, string_title } from '../../types/typeAliases';
4
+ import type { string_markdown, string_markdown_text, string_title, string_token } from '../../types/typeAliases';
5
5
  import type { OpenAiAssistantExecutionToolsOptions } from './OpenAiAssistantExecutionToolsOptions';
6
6
  import { OpenAiExecutionTools } from './OpenAiExecutionTools';
7
7
  /**
@@ -9,7 +9,7 @@ import { OpenAiExecutionTools } from './OpenAiExecutionTools';
9
9
  *
10
10
  * This is useful for calling OpenAI API with a single assistant, for more wide usage use `OpenAiExecutionTools`.
11
11
  *
12
- * Note: [🦖] There are several different things in Promptbook:
12
+ * !!! Note: [🦖] There are several different things in Promptbook:
13
13
  * - `Agent` - which represents an AI Agent with its source, memories, actions, etc. Agent is a higher-level abstraction which is internally using:
14
14
  * - `LlmExecutionTools` - which wraps one or more LLM models and provides an interface to execute them
15
15
  * - `AgentLlmExecutionTools` - which is a specific implementation of `LlmExecutionTools` that wraps another LlmExecutionTools and applies agent-specific system prompts and requirements
@@ -18,7 +18,7 @@ import { OpenAiExecutionTools } from './OpenAiExecutionTools';
18
18
  * @public exported from `@promptbook/openai`
19
19
  */
20
20
  export declare class OpenAiAssistantExecutionTools extends OpenAiExecutionTools implements LlmExecutionTools {
21
- private readonly assistantId;
21
+ readonly assistantId: string_token;
22
22
  private readonly isCreatingNewAssistantsAllowed;
23
23
  /**
24
24
  * Creates OpenAI Execution Tools.
@@ -32,7 +32,10 @@ export declare class OpenAiAssistantExecutionTools extends OpenAiExecutionTools
32
32
  * Calls OpenAI API to use a chat model.
33
33
  */
34
34
  callChatModel(prompt: Pick<Prompt, 'content' | 'parameters' | 'modelRequirements' | 'format'>): Promise<ChatPromptResult>;
35
- playground(): Promise<void>;
35
+ /**
36
+ * Get an existing assistant tool wrapper
37
+ */
38
+ getAssistant(assistantId: string_token): OpenAiAssistantExecutionTools;
36
39
  createNewAssistant(options: {
37
40
  /**
38
41
  * Name of the new assistant
@@ -42,6 +45,28 @@ export declare class OpenAiAssistantExecutionTools extends OpenAiExecutionTools
42
45
  * Instructions for the new assistant
43
46
  */
44
47
  readonly instructions: string_markdown;
48
+ /**
49
+ * Optional list of knowledge source links (URLs or file paths) to attach to the assistant via vector store
50
+ */
51
+ readonly knowledgeSources?: ReadonlyArray<string>;
52
+ }): Promise<OpenAiAssistantExecutionTools>;
53
+ updateAssistant(options: {
54
+ /**
55
+ * ID of the assistant to update
56
+ */
57
+ readonly assistantId: string_token;
58
+ /**
59
+ * Name of the assistant
60
+ */
61
+ readonly name?: string_title;
62
+ /**
63
+ * Instructions for the assistant
64
+ */
65
+ readonly instructions?: string_markdown;
66
+ /**
67
+ * Optional list of knowledge source links (URLs or file paths) to attach to the assistant via vector store
68
+ */
69
+ readonly knowledgeSources?: ReadonlyArray<string>;
45
70
  }): Promise<OpenAiAssistantExecutionTools>;
46
71
  /**
47
72
  * Discriminant for type guards
@@ -0,0 +1,4 @@
1
+ export {};
2
+ /**
3
+ * TODO: [🧠] Maybe do this test for all model providers + boilerplate
4
+ */
@@ -17,7 +17,7 @@ type AgentsServerOptions = {
17
17
  *
18
18
  * @see https://github.com/webgptorg/promptbook#remote-server
19
19
  * @public exported from `@promptbook/remote-server`
20
- * <- TODO: !!!! Maybe change to `@promptbook/agent-server`
20
+ * <- TODO: !!!! Change to `@promptbook/agent-server`
21
21
  */
22
22
  export declare function startAgentServer(options: AgentsServerOptions): Promise<TODO_any>;
23
23
  export {};
@@ -11,8 +11,7 @@ import type { RemoteServerOptions } from './types/RemoteServerOptions';
11
11
  */
12
12
  export declare function startRemoteServer<TCustomOptions = undefined>(options: RemoteServerOptions<TCustomOptions>): RemoteServer;
13
13
  /**
14
- * TODO !!!! Add agent
15
- * TODO: !!!! Allow to chat with agents directly via remote server
14
+
16
15
  * TODO: [🕋] Use here `aboutPromptbookInformation`
17
16
  * TODO: [🌡] Add CORS and security - probably via `helmet`
18
17
  * TODO: Split this file into multiple functions - handler for each request
@@ -21,4 +21,5 @@ export type PromptbookStorage<TItem> = {
21
21
  };
22
22
  /**
23
23
  * TODO: [💺] Constrain `TItem` to [🚉] JSON-serializable objects only in type level
24
+ * TODO: [☹️] Unite the storages
24
25
  */
@@ -7,7 +7,7 @@ import type { Registration } from '../../utils/misc/$Register';
7
7
  * @public exported from `@promptbook/wizard`
8
8
  * @public exported from `@promptbook/cli`
9
9
  *
10
- * TODO: !!!! Which package should export this?
10
+ * TODO: [🧠] Which package should export this?
11
11
  */
12
12
  export declare const _OpenAiSdkTranspilerRegistration: Registration;
13
13
  /**
@@ -148,6 +148,12 @@ export type string_agent_name = string;
148
148
  * For example `"My AI Assistant"`
149
149
  */
150
150
  export type string_agent_name_in_book = string;
151
+ /**
152
+ * Semantic helper
153
+ *
154
+ * For example `"b126926439c5fcb83609888a11283723c1ef137c0ad599a77a1be81812bd221d"`
155
+ */
156
+ export type string_agent_hash = string_sha256;
151
157
  /**
152
158
  * Unstructured description of the persona
153
159
  *
@@ -360,6 +366,12 @@ export type string_base_url = string;
360
366
  * For example `"https://promptbook.studio/webgpt/"`
361
367
  */
362
368
  export type string_pipeline_root_url = string;
369
+ /**
370
+ * Semantic helper
371
+ *
372
+ * For example `"https://s6.ptbk.io/agents/agent-007"`
373
+ */
374
+ export type string_agent_url = string;
363
375
  /**
364
376
  * Semantic helper
365
377
  *
@@ -9,6 +9,3 @@
9
9
  * @private util of `@promptbook/color`
10
10
  */
11
11
  export declare function checkChannelValue(channelName: string, value: number): asserts value is number;
12
- /**
13
- * TODO: [🧠][🚓] Is/which combination it better to use asserts/check, validate or is utility function?
14
- */
@@ -9,6 +9,8 @@ export type string_kebab_case = string;
9
9
  /**
10
10
  * Converts a given text to kebab-case format.
11
11
  *
12
+ * Note: [🔂] This function is idempotent.
13
+ *
12
14
  * @param text The text to be converted.
13
15
  * @returns The kebab-case formatted string.
14
16
  * @example 'hello-world'
@@ -7,6 +7,9 @@
7
7
  */
8
8
  export type string_PascalCase = string;
9
9
  /**
10
+ * Normalizes a given text to PascalCase format.
11
+ *
12
+ * Note: [🔂] This function is idempotent.
10
13
  *
11
14
  * @param text @public exported from `@promptbook/utils`
12
15
  * @returns
@@ -9,6 +9,8 @@ export type string_camelCase = string;
9
9
  /**
10
10
  * Normalizes a given text to camelCase format.
11
11
  *
12
+ * Note: [🔂] This function is idempotent.
13
+ *
12
14
  * @param text The text to be normalized.
13
15
  * @param _isFirstLetterCapital Whether the first letter should be capitalized.
14
16
  * @returns The camelCase formatted string.
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * Converts a title string into a normalized name.
3
3
  *
4
+ * Note: [🔂] This function is idempotent.
5
+ *
4
6
  * @param value The title string to be converted to a name.
5
7
  * @returns A normalized name derived from the input title.
6
8
  * @example 'Hello World!' -> 'hello-world'
@@ -1,7 +1,7 @@
1
1
  import type { PartialDeep } from 'type-fest';
2
2
  import type { AgentBasicInformation } from '../../book-2.0/agent-source/AgentBasicInformation';
3
- import { string_book } from '../../book-2.0/agent-source/string_book';
4
- import { string_agent_name_in_book } from '../../types/typeAliases';
3
+ import type { string_book } from '../../book-2.0/agent-source/string_book';
4
+ import type { string_agent_name_in_book } from '../../types/typeAliases';
5
5
  type GenerateBookBoilerplateOptions = PartialDeep<Omit<AgentBasicInformation, 'parameters'>> & {
6
6
  /**
7
7
  * Name of the parent agent to inherit from
@@ -1,4 +1,4 @@
1
- import { string_color, string_person_fullname } from '../../types/typeAliases';
1
+ import type { string_color, string_person_fullname } from '../../types/typeAliases';
2
2
  export type RandomFullnameWithColorResult = {
3
3
  fullname: string_person_fullname;
4
4
  color: string_color;
@@ -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.103.0-45`).
18
+ * It follows semantic versioning (e.g., `0.103.0-47`).
19
19
  *
20
20
  * @generated
21
21
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/types",
3
- "version": "0.103.0-46",
3
+ "version": "0.103.0-48",
4
4
  "description": "Promptbook: Turn your company's scattered knowledge into AI ready books",
5
5
  "private": false,
6
6
  "sideEffects": false,
@@ -92,6 +92,6 @@
92
92
  },
93
93
  "typings": "./esm/typings/src/_packages/types.index.d.ts",
94
94
  "peerDependencies": {
95
- "@promptbook/core": "0.103.0-46"
95
+ "@promptbook/core": "0.103.0-48"
96
96
  }
97
97
  }