@promptbook/ollama 0.105.0-0 → 0.105.0-3

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 (41) hide show
  1. package/esm/index.es.js +2 -1
  2. package/esm/index.es.js.map +1 -1
  3. package/esm/typings/src/_packages/core.index.d.ts +2 -0
  4. package/esm/typings/src/_packages/types.index.d.ts +4 -0
  5. package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +10 -3
  6. package/esm/typings/src/book-2.0/agent-source/AgentModelRequirements.d.ts +11 -1
  7. package/esm/typings/src/book-2.0/agent-source/communication-samples.test.d.ts +1 -0
  8. package/esm/typings/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.blocks.test.d.ts +1 -0
  9. package/esm/typings/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.import.test.d.ts +1 -0
  10. package/esm/typings/src/book-2.0/agent-source/parseAgentSource.import.test.d.ts +1 -0
  11. package/esm/typings/src/book-2.0/agent-source/parseAgentSourceWithCommitments.blocks.test.d.ts +1 -0
  12. package/esm/typings/src/commitments/USE_TIME/USE_TIME.d.ts +40 -0
  13. package/esm/typings/src/commitments/USE_TIME/USE_TIME.test.d.ts +1 -0
  14. package/esm/typings/src/commitments/_base/BaseCommitmentDefinition.d.ts +8 -0
  15. package/esm/typings/src/commitments/_base/CommitmentDefinition.d.ts +8 -0
  16. package/esm/typings/src/commitments/index.d.ts +11 -2
  17. package/esm/typings/src/config.d.ts +1 -0
  18. package/esm/typings/src/import-plugins/$fileImportPlugins.d.ts +7 -0
  19. package/esm/typings/src/import-plugins/AgentFileImportPlugin.d.ts +7 -0
  20. package/esm/typings/src/import-plugins/FileImportPlugin.d.ts +24 -0
  21. package/esm/typings/src/import-plugins/JsonFileImportPlugin.d.ts +7 -0
  22. package/esm/typings/src/import-plugins/TextFileImportPlugin.d.ts +7 -0
  23. package/esm/typings/src/llm-providers/_common/utils/cache/cacheLlmTools.d.ts +2 -1
  24. package/esm/typings/src/llm-providers/_common/utils/count-total-usage/countUsage.d.ts +2 -2
  25. package/esm/typings/src/llm-providers/agent/Agent.d.ts +9 -2
  26. package/esm/typings/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +3 -1
  27. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +10 -0
  28. package/esm/typings/src/llm-providers/remote/RemoteLlmExecutionTools.d.ts +1 -1
  29. package/esm/typings/src/scripting/javascript/JavascriptExecutionToolsOptions.d.ts +6 -1
  30. package/esm/typings/src/types/ModelRequirements.d.ts +6 -12
  31. package/esm/typings/src/utils/execCommand/$execCommandNormalizeOptions.d.ts +2 -3
  32. package/esm/typings/src/utils/execCommand/ExecCommandOptions.d.ts +7 -1
  33. package/esm/typings/src/utils/organization/keepImported.d.ts +9 -0
  34. package/esm/typings/src/utils/organization/keepTypeImported.d.ts +0 -1
  35. package/esm/typings/src/utils/random/$generateBookBoilerplate.d.ts +4 -0
  36. package/esm/typings/src/utils/random/$randomAgentPersona.d.ts +2 -1
  37. package/esm/typings/src/utils/random/$randomAgentRule.d.ts +14 -0
  38. package/esm/typings/src/version.d.ts +1 -1
  39. package/package.json +2 -2
  40. package/umd/index.umd.js +2 -1
  41. package/umd/index.umd.js.map +1 -1
@@ -32,6 +32,10 @@ export type AgentModelRequirements = {
32
32
  * List of imported agent URLs
33
33
  */
34
34
  readonly importedAgentUrls?: ReadonlyArray<string_agent_url>;
35
+ /**
36
+ * List of imported file URLs or paths
37
+ */
38
+ readonly importedFileUrls?: ReadonlyArray<string>;
35
39
  /**
36
40
  * Optional list of knowledge source links that the agent can use
37
41
  */
@@ -40,7 +44,7 @@ export type AgentModelRequirements = {
40
44
  * List of sample conversations (question/answer pairs)
41
45
  */
42
46
  readonly samples?: ReadonlyArray<{
43
- question: string;
47
+ question: string | null;
44
48
  answer: string;
45
49
  }>;
46
50
  /**
@@ -64,6 +68,12 @@ export type AgentModelRequirements = {
64
68
  * Each commitment can store its own data here
65
69
  */
66
70
  readonly metadata?: Record<string, TODO_any>;
71
+ /**
72
+ * Notes associated with the agent
73
+ *
74
+ * Note: This does not affect agent behavior in any way
75
+ */
76
+ readonly notes?: ReadonlyArray<string>;
67
77
  };
68
78
  /**
69
79
  * TODO: [🐤] DRY `AgentModelRequirements` and `ModelRequirements`
@@ -0,0 +1,40 @@
1
+ import { string_javascript_name } from '../../_packages/types.index';
2
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
3
+ import { ToolFunction } from '../../scripting/javascript/JavascriptExecutionToolsOptions';
4
+ import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
5
+ /**
6
+ * USE TIME commitment definition
7
+ *
8
+ * The `USE TIME` commitment indicates that the agent should be able to determine the current date and time.
9
+ *
10
+ * Example usage in agent source:
11
+ *
12
+ * ```book
13
+ * USE TIME
14
+ * ```
15
+ *
16
+ * @private [🪔] Maybe export the commitments through some package
17
+ */
18
+ export declare class UseTimeCommitmentDefinition extends BaseCommitmentDefinition<'USE TIME'> {
19
+ constructor();
20
+ /**
21
+ * Short one-line description of USE TIME.
22
+ */
23
+ get description(): string;
24
+ /**
25
+ * Icon for this commitment.
26
+ */
27
+ get icon(): string;
28
+ /**
29
+ * Markdown documentation for USE TIME commitment.
30
+ */
31
+ get documentation(): string;
32
+ applyToAgentModelRequirements(requirements: AgentModelRequirements, content: string): AgentModelRequirements;
33
+ /**
34
+ * Gets the `get_current_time` tool function implementation.
35
+ */
36
+ getToolFunctions(): Record<string_javascript_name, ToolFunction>;
37
+ }
38
+ /**
39
+ * Note: [💞] Ignore a discrepancy between file name and entity name
40
+ */
@@ -1,4 +1,6 @@
1
1
  import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
+ import { ToolFunction } from '../../scripting/javascript/JavascriptExecutionToolsOptions';
3
+ import { string_javascript_name } from '../../types/typeAliases';
2
4
  import type { CommitmentDefinition } from './CommitmentDefinition';
3
5
  /**
4
6
  * Base implementation of CommitmentDefinition that provides common functionality
@@ -61,4 +63,10 @@ export declare abstract class BaseCommitmentDefinition<TBookCommitment extends s
61
63
  * but can be useful for organizing and structuring the message during processing
62
64
  */
63
65
  protected addCommentSection(requirements: AgentModelRequirements, commentTitle: string, content: string, position?: 'beginning' | 'end'): AgentModelRequirements;
66
+ /**
67
+ * Gets tool function implementations provided by this commitment
68
+ *
69
+ * When the `applyToAgentModelRequirements` adds tools to the requirements, this method should return the corresponding function definitions.
70
+ */
71
+ getToolFunctions(): Record<string_javascript_name, ToolFunction>;
64
72
  }
@@ -1,4 +1,6 @@
1
+ import { string_javascript_name } from '../../_packages/types.index';
1
2
  import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
3
+ import { ToolFunction } from '../../scripting/javascript/JavascriptExecutionToolsOptions';
2
4
  /**
3
5
  * Definition of a commitment that can be applied to agent model requirements
4
6
  *
@@ -50,4 +52,10 @@ export type CommitmentDefinition = {
50
52
  * @returns Updated agent model requirements
51
53
  */
52
54
  applyToAgentModelRequirements(requirements: AgentModelRequirements, content: string): AgentModelRequirements;
55
+ /**
56
+ * Gets tool function implementations provided by this commitment
57
+ *
58
+ * When the `applyToAgentModelRequirements` adds tools to the requirements, this method should return the corresponding function definitions.
59
+ */
60
+ getToolFunctions(): Record<string_javascript_name, ToolFunction>;
53
61
  };
@@ -1,5 +1,7 @@
1
1
  import type { BookCommitment } from './_base/BookCommitment';
2
2
  import type { CommitmentDefinition } from './_base/CommitmentDefinition';
3
+ import { ToolFunction } from '../scripting/javascript/JavascriptExecutionToolsOptions';
4
+ import { string_javascript_name } from '../types/typeAliases';
3
5
  import { ActionCommitmentDefinition } from './ACTION/ACTION';
4
6
  import { ClosedCommitmentDefinition } from './CLOSED/CLOSED';
5
7
  import { ComponentCommitmentDefinition } from './COMPONENT/COMPONENT';
@@ -7,8 +9,8 @@ import { DeleteCommitmentDefinition } from './DELETE/DELETE';
7
9
  import { DictionaryCommitmentDefinition } from './DICTIONARY/DICTIONARY';
8
10
  import { FormatCommitmentDefinition } from './FORMAT/FORMAT';
9
11
  import { FromCommitmentDefinition } from './FROM/FROM';
10
- import { ImportCommitmentDefinition } from './IMPORT/IMPORT';
11
12
  import { GoalCommitmentDefinition } from './GOAL/GOAL';
13
+ import { ImportCommitmentDefinition } from './IMPORT/IMPORT';
12
14
  import { KnowledgeCommitmentDefinition } from './KNOWLEDGE/KNOWLEDGE';
13
15
  import { LanguageCommitmentDefinition } from './LANGUAGE/LANGUAGE';
14
16
  import { MemoryCommitmentDefinition } from './MEMORY/MEMORY';
@@ -33,6 +35,7 @@ import { UseCommitmentDefinition } from './USE/USE';
33
35
  import { UseBrowserCommitmentDefinition } from './USE_BROWSER/USE_BROWSER';
34
36
  import { UseMcpCommitmentDefinition } from './USE_MCP/USE_MCP';
35
37
  import { UseSearchEngineCommitmentDefinition } from './USE_SEARCH_ENGINE/USE_SEARCH_ENGINE';
38
+ import { UseTimeCommitmentDefinition } from './USE_TIME/USE_TIME';
36
39
  import { NotYetImplementedCommitmentDefinition } from './_base/NotYetImplementedCommitmentDefinition';
37
40
  /**
38
41
  * Registry of all available commitment definitions
@@ -41,7 +44,7 @@ import { NotYetImplementedCommitmentDefinition } from './_base/NotYetImplemented
41
44
  *
42
45
  * @private Use functions to access commitments instead of this array directly
43
46
  */
44
- export declare const COMMITMENT_REGISTRY: readonly [PersonaCommitmentDefinition, PersonaCommitmentDefinition, KnowledgeCommitmentDefinition, MemoryCommitmentDefinition, MemoryCommitmentDefinition, StyleCommitmentDefinition, StyleCommitmentDefinition, RuleCommitmentDefinition, RuleCommitmentDefinition, LanguageCommitmentDefinition, LanguageCommitmentDefinition, SampleCommitmentDefinition, SampleCommitmentDefinition, FormatCommitmentDefinition, FormatCommitmentDefinition, FromCommitmentDefinition, ImportCommitmentDefinition, ImportCommitmentDefinition, ModelCommitmentDefinition, ModelCommitmentDefinition, ActionCommitmentDefinition, ActionCommitmentDefinition, ComponentCommitmentDefinition, MetaImageCommitmentDefinition, MetaColorCommitmentDefinition, MetaFontCommitmentDefinition, MetaLinkCommitmentDefinition, MetaCommitmentDefinition, NoteCommitmentDefinition, NoteCommitmentDefinition, NoteCommitmentDefinition, NoteCommitmentDefinition, GoalCommitmentDefinition, GoalCommitmentDefinition, InitialMessageCommitmentDefinition, UserMessageCommitmentDefinition, AgentMessageCommitmentDefinition, MessageCommitmentDefinition, MessageCommitmentDefinition, ScenarioCommitmentDefinition, ScenarioCommitmentDefinition, DeleteCommitmentDefinition, DeleteCommitmentDefinition, DeleteCommitmentDefinition, DeleteCommitmentDefinition, DictionaryCommitmentDefinition, OpenCommitmentDefinition, ClosedCommitmentDefinition, UseBrowserCommitmentDefinition, UseSearchEngineCommitmentDefinition, UseMcpCommitmentDefinition, UseCommitmentDefinition, NotYetImplementedCommitmentDefinition<"EXPECT">, NotYetImplementedCommitmentDefinition<"BEHAVIOUR">, NotYetImplementedCommitmentDefinition<"BEHAVIOURS">, NotYetImplementedCommitmentDefinition<"AVOID">, NotYetImplementedCommitmentDefinition<"AVOIDANCE">, NotYetImplementedCommitmentDefinition<"CONTEXT">];
47
+ export declare const COMMITMENT_REGISTRY: readonly [PersonaCommitmentDefinition, PersonaCommitmentDefinition, KnowledgeCommitmentDefinition, MemoryCommitmentDefinition, MemoryCommitmentDefinition, StyleCommitmentDefinition, StyleCommitmentDefinition, RuleCommitmentDefinition, RuleCommitmentDefinition, LanguageCommitmentDefinition, LanguageCommitmentDefinition, SampleCommitmentDefinition, SampleCommitmentDefinition, FormatCommitmentDefinition, FormatCommitmentDefinition, FromCommitmentDefinition, ImportCommitmentDefinition, ImportCommitmentDefinition, ModelCommitmentDefinition, ModelCommitmentDefinition, ActionCommitmentDefinition, ActionCommitmentDefinition, ComponentCommitmentDefinition, MetaImageCommitmentDefinition, MetaColorCommitmentDefinition, MetaFontCommitmentDefinition, MetaLinkCommitmentDefinition, MetaCommitmentDefinition, NoteCommitmentDefinition, NoteCommitmentDefinition, NoteCommitmentDefinition, NoteCommitmentDefinition, GoalCommitmentDefinition, GoalCommitmentDefinition, InitialMessageCommitmentDefinition, UserMessageCommitmentDefinition, AgentMessageCommitmentDefinition, MessageCommitmentDefinition, MessageCommitmentDefinition, ScenarioCommitmentDefinition, ScenarioCommitmentDefinition, DeleteCommitmentDefinition, DeleteCommitmentDefinition, DeleteCommitmentDefinition, DeleteCommitmentDefinition, DictionaryCommitmentDefinition, OpenCommitmentDefinition, ClosedCommitmentDefinition, UseBrowserCommitmentDefinition, UseSearchEngineCommitmentDefinition, UseTimeCommitmentDefinition, UseMcpCommitmentDefinition, UseCommitmentDefinition, NotYetImplementedCommitmentDefinition<"EXPECT">, NotYetImplementedCommitmentDefinition<"BEHAVIOUR">, NotYetImplementedCommitmentDefinition<"BEHAVIOURS">, NotYetImplementedCommitmentDefinition<"AVOID">, NotYetImplementedCommitmentDefinition<"AVOIDANCE">, NotYetImplementedCommitmentDefinition<"CONTEXT">];
45
48
  /**
46
49
  * Gets a commitment definition by its type
47
50
  * @param type The commitment type to look up
@@ -89,6 +92,12 @@ export type GroupedCommitmentDefinition = {
89
92
  * @public exported from `@promptbook/core`
90
93
  */
91
94
  export declare function getGroupedCommitmentDefinitions(): ReadonlyArray<GroupedCommitmentDefinition>;
95
+ /**
96
+ * Gets all function implementations provided by all commitments
97
+ *
98
+ * @public exported from `@promptbook/core`
99
+ */
100
+ export declare function getAllCommitmentsToolFunctions(): Record<string_javascript_name, ToolFunction>;
92
101
  /**
93
102
  * TODO: [🧠] Maybe create through standardized $register
94
103
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -63,6 +63,7 @@ export declare const PROMPTBOOK_SYNTAX_COLORS: {
63
63
  readonly SEPARATOR: import("./utils/take/interfaces/ITakeChain").WithTake<Color>;
64
64
  readonly COMMITMENT: import("./utils/take/interfaces/ITakeChain").WithTake<Color>;
65
65
  readonly PARAMETER: import("./utils/take/interfaces/ITakeChain").WithTake<Color>;
66
+ readonly CODE_BLOCK: import("./utils/take/interfaces/ITakeChain").WithTake<Color>;
66
67
  };
67
68
  /**
68
69
  * Chat color of the Promptbook (in chat)
@@ -0,0 +1,7 @@
1
+ import type { FileImportPlugin } from './FileImportPlugin';
2
+ /**
3
+ * All available file import plugins
4
+ *
5
+ * @private [🥝] Maybe export the import plugins through some package
6
+ */
7
+ export declare const $fileImportPlugins: ReadonlyArray<FileImportPlugin>;
@@ -0,0 +1,7 @@
1
+ import type { FileImportPlugin } from './FileImportPlugin';
2
+ /**
3
+ * Plugin for importing agent books *(`.book` files)*
4
+ *
5
+ * @private [🥝] Maybe export the import plugins through some package
6
+ */
7
+ export declare const AgentFileImportPlugin: FileImportPlugin;
@@ -0,0 +1,24 @@
1
+ import type { string_mime_type } from '../types/typeAliases';
2
+ /**
3
+ * Type for file import plugins
4
+ *
5
+ * Each plugin handles a specific set of MIME types or file extensions.
6
+ */
7
+ export type FileImportPlugin = {
8
+ /**
9
+ * Unique name of the plugin
10
+ */
11
+ readonly name: string;
12
+ /**
13
+ * Checks if the plugin can handle the given MIME type or file extension
14
+ */
15
+ canImport(mimeType: string_mime_type): boolean;
16
+ /**
17
+ * Processes the file content and returns the string to be placed in the agent book
18
+ *
19
+ * @param content - The raw content of the file
20
+ * @param mimeType - The MIME type of the file
21
+ * @returns The processed content (e.g. wrapped in code block)
22
+ */
23
+ import(content: string, mimeType: string_mime_type): string | Promise<string>;
24
+ };
@@ -0,0 +1,7 @@
1
+ import type { FileImportPlugin } from './FileImportPlugin';
2
+ /**
3
+ * Plugin for importing JSON files
4
+ *
5
+ * @private [🥝] Maybe export the import plugins through some package
6
+ */
7
+ export declare const JsonFileImportPlugin: FileImportPlugin;
@@ -0,0 +1,7 @@
1
+ import type { FileImportPlugin } from './FileImportPlugin';
2
+ /**
3
+ * Plugin for importing generic text files
4
+ *
5
+ * @private [🥝] Maybe export the import plugins through some package
6
+ */
7
+ export declare const TextFileImportPlugin: FileImportPlugin;
@@ -4,9 +4,10 @@ import type { CacheLlmToolsOptions } from './CacheLlmToolsOptions';
4
4
  * Intercepts LLM tools and counts total usage of the tools
5
5
  *
6
6
  * Note: It can take extended `LlmExecutionTools` and cache the
7
+ * Note: Returns full proxy of all LLM tool properties and methods
7
8
  *
8
9
  * @param llmTools LLM tools to be intercepted with usage counting, it can contain extra methods like `totalUsage`
9
- * @returns LLM tools with same functionality with added total cost counting
10
+ * @returns Full proxy of LLM tools with same functionality with added caching
10
11
  * @public exported from `@promptbook/core`
11
12
  */
12
13
  export declare function cacheLlmTools<TLlmTools extends LlmExecutionTools>(llmTools: TLlmTools, options?: Partial<CacheLlmToolsOptions>): TLlmTools;
@@ -8,10 +8,10 @@ import type { LlmExecutionToolsWithTotalUsage } from './LlmExecutionToolsWithTot
8
8
  * in real-time through an observable.
9
9
  *
10
10
  * @param llmTools - The LLM tools to be intercepted and tracked
11
- * @returns An augmented version of the tools that includes usage tracking capabilities
11
+ * @returns Full proxy of the tools with added usage tracking capabilities
12
12
  * @public exported from `@promptbook/core`
13
13
  */
14
- export declare function countUsage(llmTools: LlmExecutionTools): LlmExecutionToolsWithTotalUsage;
14
+ export declare function countUsage<TLlmTools extends LlmExecutionTools>(llmTools: TLlmTools): TLlmTools & LlmExecutionToolsWithTotalUsage;
15
15
  /**
16
16
  * TODO: [🧠][💸] Maybe make some common abstraction `interceptLlmTools` and use here (or use javascript Proxy?)
17
17
  * TODO: [🧠] Is there some meaningfull way how to test this util
@@ -42,7 +42,14 @@ export declare class Agent extends AgentLlmExecutionTools implements LlmExecutio
42
42
  * Capabilities of the agent
43
43
  * This is parsed from commitments like USE BROWSER, USE SEARCH ENGINE, KNOWLEDGE, etc.
44
44
  */
45
- capabilities: AgentCapability[];
45
+ capabilities: Array<AgentCapability>;
46
+ /**
47
+ * List of sample conversations (question/answer pairs)
48
+ */
49
+ samples: Array<{
50
+ question: string | null;
51
+ answer: string;
52
+ }>;
46
53
  /**
47
54
  * Computed hash of the agent source for integrity verification
48
55
  */
@@ -63,7 +70,7 @@ export declare class Agent extends AgentLlmExecutionTools implements LlmExecutio
63
70
  /**
64
71
  * Not used in Agent, always returns empty array
65
72
  */
66
- get parameters(): BookParameter[];
73
+ get parameters(): Array<BookParameter>;
67
74
  readonly agentSource: BehaviorSubject<string_book>;
68
75
  constructor(options: AgentOptions);
69
76
  /**
@@ -54,8 +54,10 @@ export declare class AgentLlmExecutionTools implements LlmExecutionTools {
54
54
  private getAgentInfo;
55
55
  /**
56
56
  * Get cached or create agent model requirements
57
+ *
58
+ * Note: [🐤] This is names `getModelRequirements` *(not `getAgentModelRequirements`)* because in future these two will be united
57
59
  */
58
- protected getAgentModelRequirements(): Promise<AgentModelRequirements>;
60
+ getModelRequirements(): Promise<AgentModelRequirements>;
59
61
  get title(): string_title & string_markdown_text;
60
62
  get description(): string_markdown;
61
63
  get profile(): ChatParticipant | undefined;
@@ -1,5 +1,6 @@
1
1
  import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
2
2
  import type { ChatPromptResult } from '../../execution/PromptResult';
3
+ import type { ModelRequirements } from '../../types/ModelRequirements';
3
4
  import type { Prompt } from '../../types/Prompt';
4
5
  import type { string_markdown, string_markdown_text, string_title, string_token } from '../../types/typeAliases';
5
6
  import type { OpenAiAssistantExecutionToolsOptions } from './OpenAiAssistantExecutionToolsOptions';
@@ -54,6 +55,10 @@ export declare class OpenAiAssistantExecutionTools extends OpenAiExecutionTools
54
55
  * Optional list of knowledge source links (URLs or file paths) to attach to the assistant via vector store
55
56
  */
56
57
  readonly knowledgeSources?: ReadonlyArray<string>;
58
+ /**
59
+ * Optional list of tools to attach to the assistant
60
+ */
61
+ readonly tools?: ModelRequirements['tools'];
57
62
  }): Promise<OpenAiAssistantExecutionTools>;
58
63
  updateAssistant(options: {
59
64
  /**
@@ -72,6 +77,10 @@ export declare class OpenAiAssistantExecutionTools extends OpenAiExecutionTools
72
77
  * Optional list of knowledge source links (URLs or file paths) to attach to the assistant via vector store
73
78
  */
74
79
  readonly knowledgeSources?: ReadonlyArray<string>;
80
+ /**
81
+ * Optional list of tools to attach to the assistant
82
+ */
83
+ readonly tools?: ModelRequirements['tools'];
75
84
  }): Promise<OpenAiAssistantExecutionTools>;
76
85
  /**
77
86
  * Discriminant for type guards
@@ -85,6 +94,7 @@ export declare class OpenAiAssistantExecutionTools extends OpenAiExecutionTools
85
94
  static isOpenAiAssistantExecutionTools(llmExecutionTools: LlmExecutionTools): llmExecutionTools is OpenAiAssistantExecutionTools;
86
95
  }
87
96
  /**
97
+ * TODO: [🙎] In `OpenAiAssistantExecutionTools` Allow to create abstract assistants with `isCreatingNewAssistantsAllowed`
88
98
  * TODO: [🧠][🧙‍♂️] Maybe there can be some wizard for those who want to use just OpenAI
89
99
  * TODO: Maybe make custom OpenAiError
90
100
  * TODO: [🧠][🈁] Maybe use `isDeterministic` from options
@@ -46,7 +46,7 @@ export declare class RemoteLlmExecutionTools<TCustomOptions = undefined> impleme
46
46
  private callCommonModel;
47
47
  }
48
48
  /**
49
- * TODO: !!!! Deprecate pipeline server and all of its components
49
+ * TODO: [🕴] Deprecate pipeline server and all of its components
50
50
  * TODO: Maybe use `$exportJson`
51
51
  * TODO: [🧠][🛍] Maybe not `isAnonymous: boolean` BUT `mode: 'ANONYMOUS'|'COLLECTION'`
52
52
  * TODO: [🍓] Allow to list compatible models with each variant
@@ -1,4 +1,5 @@
1
1
  import type { Promisable } from 'type-fest';
2
+ import { TODO_any } from '../../_packages/types.index';
2
3
  import type { CommonToolsOptions } from '../../execution/CommonToolsOptions';
3
4
  import type { string_postprocessing_function_name } from '../../types/typeAliases';
4
5
  /**
@@ -15,12 +16,16 @@ export type JavascriptExecutionToolsOptions = CommonToolsOptions & {
15
16
  * Note: There are also some built-in functions available:
16
17
  * @see ./JavascriptEvalExecutionTools.ts
17
18
  */
18
- functions?: Record<string_postprocessing_function_name, PostprocessingFunction>;
19
+ functions?: Record<string_postprocessing_function_name, PostprocessingFunction | ToolFunction>;
19
20
  };
20
21
  /**
21
22
  * Function that can be used to postprocess the output of the LLM
22
23
  */
23
24
  export type PostprocessingFunction = ((value: string) => Promisable<string>) | Function;
25
+ /**
26
+ * Function that can be used as tool for AI model
27
+ */
28
+ export type ToolFunction = (args: TODO_any) => Promise<TODO_any>;
24
29
  /**
25
30
  * TODO: [🧠][💙] Distinct between options passed into ExecutionTools and to ExecutionTools.execute
26
31
  */
@@ -29,12 +29,6 @@ export type CompletionModelRequirements = CommonModelRequirements & {
29
29
  * Maximum number of tokens that can be generated by the model
30
30
  */
31
31
  readonly maxTokens?: number;
32
- /**
33
- * Tools available for the model
34
- *
35
- * Note: [🚉] This is fully serializable as JSON
36
- */
37
- readonly tools?: LlmToolDefinition[];
38
32
  };
39
33
  /**
40
34
  * Model requirements for the chat variant
@@ -60,12 +54,6 @@ export type ChatModelRequirements = CommonModelRequirements & {
60
54
  * Maximum number of tokens that can be generated by the model
61
55
  */
62
56
  readonly maxTokens?: number;
63
- /**
64
- * Tools available for the model
65
- *
66
- * Note: [🚉] This is fully serializable as JSON
67
- */
68
- readonly tools?: LlmToolDefinition[];
69
57
  };
70
58
  /**
71
59
  * Model requirements for the image generation variant
@@ -135,6 +123,12 @@ export type CommonModelRequirements = {
135
123
  * Seed for the model
136
124
  */
137
125
  readonly seed?: number_seed;
126
+ /**
127
+ * Tools available for the model
128
+ *
129
+ * Note: [🚉] This is fully serializable as JSON
130
+ */
131
+ readonly tools?: LlmToolDefinition[];
138
132
  };
139
133
  /**
140
134
  * TODO: [🧠][🈁] `seed` should maybe be somewhere else (not in `ModelRequirements`) (similar that `user` identification is not here)
@@ -1,5 +1,4 @@
1
- import type { ExecCommandOptions } from './ExecCommandOptions';
2
- import type { ExecCommandOptionsAdvanced } from './ExecCommandOptions';
1
+ import type { ExecCommandOptions, ExecCommandOptionsAdvanced } from './ExecCommandOptions';
3
2
  /**
4
3
  * Normalize options for `execCommand` and `execCommands`
5
4
  *
@@ -7,6 +6,6 @@ import type { ExecCommandOptionsAdvanced } from './ExecCommandOptions';
7
6
  *
8
7
  * @private internal utility of `execCommand` and `execCommands`
9
8
  */
10
- export declare function $execCommandNormalizeOptions(options: ExecCommandOptions): Pick<ExecCommandOptionsAdvanced, 'command' | 'args' | 'cwd' | 'crashOnError' | 'timeout' | 'isVerbose'> & {
9
+ export declare function $execCommandNormalizeOptions(options: ExecCommandOptions): Pick<ExecCommandOptionsAdvanced, 'command' | 'args' | 'cwd' | 'crashOnError' | 'timeout' | 'isVerbose' | 'env'> & {
11
10
  humanReadableCommand: string;
12
11
  };
@@ -5,7 +5,7 @@ type RequiredAndOptional<TBase, TRequired extends keyof TBase, TOptional extends
5
5
  /**
6
6
  * Simple options for `execCommand`
7
7
  */
8
- export type ExecCommandOptions = string | RequiredAndOptional<ExecCommandOptionsAdvanced, 'command', 'args' | 'cwd' | 'crashOnError' | 'timeout' | 'isVerbose'>;
8
+ export type ExecCommandOptions = string | RequiredAndOptional<ExecCommandOptionsAdvanced, 'command', 'args' | 'cwd' | 'crashOnError' | 'timeout' | 'isVerbose' | 'env'>;
9
9
  /**
10
10
  * Advanced options for `execCommand`
11
11
  */
@@ -38,6 +38,12 @@ export type ExecCommandOptionsAdvanced = {
38
38
  * @default false
39
39
  */
40
40
  readonly isVerbose?: boolean;
41
+ /**
42
+ * Environment variables to pass to the command
43
+ *
44
+ * Note: These will be merged with process.env
45
+ */
46
+ readonly env?: Record<string, string>;
41
47
  };
42
48
  export {};
43
49
  /**
@@ -0,0 +1,9 @@
1
+ import { chococake } from './really_any';
2
+ /**
3
+ * Just says that the dependency is imported, not used but should be kept
4
+ *
5
+ * @param dependenciesToKeep any values
6
+ * @returns void
7
+ * @private within the repository
8
+ */
9
+ export declare function keepImported(...dependenciesToKeep: ReadonlyArray<chococake>): void;
@@ -2,7 +2,6 @@
2
2
  * Just says that the type is used but `organize-imports-cli` does not recognize it.
3
3
  * [🤛] This is a workaround for the issue.
4
4
  *
5
- * @param value any values
6
5
  * @returns void
7
6
  * @private within the repository
8
7
  */
@@ -15,6 +15,10 @@ type GenerateBookBoilerplateOptions = PartialDeep<Omit<AgentBasicInformation, 'p
15
15
  * @default 'ENGLISH'
16
16
  */
17
17
  namePool?: string;
18
+ /**
19
+ * Initial rules for the agent
20
+ */
21
+ initialRules?: Array<string>;
18
22
  };
19
23
  /**
20
24
  * Generates boilerplate for a new agent book
@@ -5,10 +5,11 @@ import type { string_persona_description } from '../../types/typeAliases';
5
5
  * This function selects a random personality profile from a predefined pool
6
6
  * of common AI agent characteristics (e.g., friendly, professional, creative).
7
7
  *
8
+ * @param language - The language code (e.g. 'ENGLISH', 'CZECH')
8
9
  * @returns A string describing the agent's persona
9
10
  * @private internal helper function
10
11
  */
11
- export declare function $randomAgentPersona(): string_persona_description;
12
+ export declare function $randomAgentPersona(language?: string): string_persona_description;
12
13
  /**
13
14
  * TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
14
15
  */
@@ -0,0 +1,14 @@
1
+ import type { string_persona_description } from '../../types/typeAliases';
2
+ /**
3
+ * Generates a random agent rule description.
4
+ *
5
+ * This function selects a random rule
6
+ *
7
+ * @param language - The language code (e.g. 'ENGLISH', 'CZECH')
8
+ * @returns A string describing the agent's rule
9
+ * @private internal helper function
10
+ */
11
+ export declare function $randomAgentRule(language?: string): string_persona_description;
12
+ /**
13
+ * TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
14
+ */
@@ -15,7 +15,7 @@ export declare const BOOK_LANGUAGE_VERSION: string_semantic_version;
15
15
  export declare const PROMPTBOOK_ENGINE_VERSION: string_promptbook_version;
16
16
  /**
17
17
  * Represents the version string of the Promptbook engine.
18
- * It follows semantic versioning (e.g., `0.104.0`).
18
+ * It follows semantic versioning (e.g., `0.105.0-2`).
19
19
  *
20
20
  * @generated
21
21
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/ollama",
3
- "version": "0.105.0-0",
3
+ "version": "0.105.0-3",
4
4
  "description": "Promptbook: Turn your company's scattered knowledge into AI ready books",
5
5
  "private": false,
6
6
  "sideEffects": false,
@@ -94,7 +94,7 @@
94
94
  "module": "./esm/index.es.js",
95
95
  "typings": "./esm/typings/src/_packages/ollama.index.d.ts",
96
96
  "peerDependencies": {
97
- "@promptbook/core": "0.105.0-0"
97
+ "@promptbook/core": "0.105.0-3"
98
98
  },
99
99
  "dependencies": {
100
100
  "bottleneck": "2.19.5",
package/umd/index.umd.js CHANGED
@@ -25,7 +25,7 @@
25
25
  * @generated
26
26
  * @see https://github.com/webgptorg/promptbook
27
27
  */
28
- const PROMPTBOOK_ENGINE_VERSION = '0.105.0-0';
28
+ const PROMPTBOOK_ENGINE_VERSION = '0.105.0-3';
29
29
  /**
30
30
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
31
31
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -1101,6 +1101,7 @@
1101
1101
  SEPARATOR: Color.fromHex('#cccccc'),
1102
1102
  COMMITMENT: Color.fromHex('#DA0F78'),
1103
1103
  PARAMETER: Color.fromHex('#8e44ad'),
1104
+ CODE_BLOCK: Color.fromHex('#7700ffff'),
1104
1105
  });
1105
1106
  // <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
1106
1107
  /**