@promptbook/vercel 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 (70) hide show
  1. package/esm/index.es.js +1 -4
  2. package/esm/index.es.js.map +1 -1
  3. package/esm/typings/servers.d.ts +1 -7
  4. package/esm/typings/src/_packages/components.index.d.ts +4 -0
  5. package/esm/typings/src/_packages/core.index.d.ts +22 -14
  6. package/esm/typings/src/_packages/types.index.d.ts +14 -6
  7. package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +7 -3
  8. package/esm/typings/src/book-2.0/agent-source/AgentModelRequirements.d.ts +6 -1
  9. package/esm/typings/src/book-2.0/agent-source/AgentSourceParseResult.d.ts +3 -2
  10. package/esm/typings/src/book-2.0/agent-source/computeAgentHash.d.ts +8 -0
  11. package/esm/typings/src/book-2.0/agent-source/computeAgentHash.test.d.ts +1 -0
  12. package/esm/typings/src/book-2.0/agent-source/createCommitmentRegex.d.ts +1 -1
  13. package/esm/typings/src/book-2.0/agent-source/createDefaultAgentName.d.ts +8 -0
  14. package/esm/typings/src/book-2.0/agent-source/normalizeAgentName.d.ts +9 -0
  15. package/esm/typings/src/book-2.0/agent-source/normalizeAgentName.test.d.ts +1 -0
  16. package/esm/typings/src/book-2.0/agent-source/parseAgentSourceWithCommitments.d.ts +1 -1
  17. package/esm/typings/src/book-components/Chat/AgentChat/AgentChat.d.ts +14 -0
  18. package/esm/typings/src/book-components/Chat/AgentChat/AgentChat.test.d.ts +1 -0
  19. package/esm/typings/src/book-components/Chat/AgentChat/AgentChatProps.d.ts +13 -0
  20. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +1 -60
  21. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentsDatabaseSchema.d.ts +57 -32
  22. package/esm/typings/src/{book-2.0/commitments → commitments}/ACTION/ACTION.d.ts +1 -1
  23. package/esm/typings/src/{book-2.0/commitments → commitments}/DELETE/DELETE.d.ts +1 -1
  24. package/esm/typings/src/{book-2.0/commitments → commitments}/FORMAT/FORMAT.d.ts +1 -1
  25. package/esm/typings/src/{book-2.0/commitments → commitments}/GOAL/GOAL.d.ts +1 -1
  26. package/esm/typings/src/{book-2.0/commitments → commitments}/KNOWLEDGE/KNOWLEDGE.d.ts +1 -5
  27. package/esm/typings/src/{book-2.0/commitments → commitments}/MEMORY/MEMORY.d.ts +1 -1
  28. package/esm/typings/src/{book-2.0/commitments → commitments}/MESSAGE/MESSAGE.d.ts +1 -1
  29. package/esm/typings/src/{book-2.0/commitments → commitments}/META/META.d.ts +1 -1
  30. package/esm/typings/src/{book-2.0/commitments → commitments}/META_IMAGE/META_IMAGE.d.ts +1 -1
  31. package/esm/typings/src/{book-2.0/commitments → commitments}/META_LINK/META_LINK.d.ts +1 -1
  32. package/esm/typings/src/{book-2.0/commitments → commitments}/MODEL/MODEL.d.ts +1 -1
  33. package/esm/typings/src/{book-2.0/commitments → commitments}/NOTE/NOTE.d.ts +1 -1
  34. package/esm/typings/src/{book-2.0/commitments → commitments}/PERSONA/PERSONA.d.ts +1 -1
  35. package/esm/typings/src/{book-2.0/commitments → commitments}/RULE/RULE.d.ts +1 -1
  36. package/esm/typings/src/{book-2.0/commitments → commitments}/SAMPLE/SAMPLE.d.ts +1 -1
  37. package/esm/typings/src/{book-2.0/commitments → commitments}/SCENARIO/SCENARIO.d.ts +1 -1
  38. package/esm/typings/src/{book-2.0/commitments → commitments}/STYLE/STYLE.d.ts +1 -1
  39. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/BaseCommitmentDefinition.d.ts +1 -1
  40. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/CommitmentDefinition.d.ts +1 -1
  41. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/NotYetImplementedCommitmentDefinition.d.ts +1 -1
  42. package/esm/typings/src/{book-2.0/commitments → commitments}/_base/createEmptyAgentModelRequirements.d.ts +1 -1
  43. package/esm/typings/src/execution/LlmExecutionTools.d.ts +1 -1
  44. package/esm/typings/src/llm-providers/_common/utils/assertUniqueModels.d.ts +12 -0
  45. package/esm/typings/src/llm-providers/agent/Agent.d.ts +10 -9
  46. package/esm/typings/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +5 -1
  47. package/esm/typings/src/llm-providers/agent/CreateAgentLlmExecutionToolsOptions.d.ts +1 -1
  48. package/esm/typings/src/llm-providers/agent/RemoteAgent.d.ts +32 -0
  49. package/esm/typings/src/llm-providers/agent/RemoteAgentOptions.d.ts +11 -0
  50. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +29 -4
  51. package/esm/typings/src/llm-providers/openai/openai-models.test.d.ts +4 -0
  52. package/esm/typings/src/remote-server/startAgentServer.d.ts +1 -1
  53. package/esm/typings/src/remote-server/startRemoteServer.d.ts +1 -2
  54. package/esm/typings/src/storage/_common/PromptbookStorage.d.ts +1 -0
  55. package/esm/typings/src/transpilers/openai-sdk/register.d.ts +1 -1
  56. package/esm/typings/src/types/typeAliases.d.ts +12 -0
  57. package/esm/typings/src/utils/color/internal-utils/checkChannelValue.d.ts +0 -3
  58. package/esm/typings/src/utils/normalization/normalize-to-kebab-case.d.ts +2 -0
  59. package/esm/typings/src/utils/normalization/normalizeTo_PascalCase.d.ts +3 -0
  60. package/esm/typings/src/utils/normalization/normalizeTo_camelCase.d.ts +2 -0
  61. package/esm/typings/src/utils/normalization/titleToName.d.ts +2 -0
  62. package/esm/typings/src/utils/random/$generateBookBoilerplate.d.ts +2 -2
  63. package/esm/typings/src/utils/random/$randomFullnameWithColor.d.ts +1 -1
  64. package/esm/typings/src/version.d.ts +1 -1
  65. package/package.json +2 -2
  66. package/umd/index.umd.js +1 -4
  67. package/umd/index.umd.js.map +1 -1
  68. /package/esm/typings/src/{book-2.0/commitments → commitments}/_base/BookCommitment.d.ts +0 -0
  69. /package/esm/typings/src/{book-2.0/commitments → commitments}/_base/ParsedCommitment.d.ts +0 -0
  70. /package/esm/typings/src/{book-2.0/commitments → commitments}/index.d.ts +0 -0
@@ -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 {};