@promptbook/markdown-utils 0.76.0 → 0.77.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 (32) hide show
  1. package/README.md +5 -1
  2. package/esm/index.es.js +2 -2
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/typings/src/_packages/cli.index.d.ts +4 -0
  5. package/esm/typings/src/_packages/core.index.d.ts +2 -0
  6. package/esm/typings/src/_packages/google.index.d.ts +10 -0
  7. package/esm/typings/src/_packages/types.index.d.ts +6 -0
  8. package/esm/typings/src/_packages/utils.index.d.ts +2 -2
  9. package/esm/typings/src/_packages/vercel.index.d.ts +4 -0
  10. package/esm/typings/src/execution/AvailableModel.d.ts +5 -1
  11. package/esm/typings/src/execution/CommonToolsOptions.d.ts +9 -0
  12. package/esm/typings/src/llm-providers/_common/register/createLlmToolsFromConfiguration.d.ts +1 -1
  13. package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionToolsOptions.d.ts +1 -1
  14. package/esm/typings/src/llm-providers/google/GoogleExecutionToolsOptions.d.ts +12 -0
  15. package/esm/typings/src/llm-providers/google/createGoogleExecutionTools.d.ts +18 -0
  16. package/esm/typings/src/llm-providers/google/register-configuration.d.ts +13 -0
  17. package/esm/typings/src/llm-providers/google/register-constructor.d.ts +14 -0
  18. package/esm/typings/src/llm-providers/openai/OpenAiExecutionToolsOptions.d.ts +1 -10
  19. package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_ListModels_Request.d.ts +1 -1
  20. package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_Prompt_Request.d.ts +1 -1
  21. package/esm/typings/src/llm-providers/remote/interfaces/RemoteLlmExecutionToolsOptions.d.ts +1 -1
  22. package/esm/typings/src/llm-providers/remote/interfaces/RemoteServerOptions.d.ts +1 -1
  23. package/esm/typings/src/llm-providers/vercel/VercelExecutionToolsOptions.d.ts +22 -0
  24. package/esm/typings/src/llm-providers/vercel/VercelProvider.d.ts +13 -0
  25. package/esm/typings/src/llm-providers/vercel/createExecutionToolsFromVercelProvider.d.ts +8 -0
  26. package/esm/typings/src/llm-providers/vercel/playground/playground.d.ts +6 -0
  27. package/esm/typings/src/utils/{$currentDate.d.ts → $getCurrentDate.d.ts} +1 -1
  28. package/package.json +1 -1
  29. package/umd/index.umd.js +2 -2
  30. package/umd/index.umd.js.map +1 -1
  31. package/esm/typings/src/_packages/gemini.index.d.ts +0 -2
  32. package/esm/typings/src/utils/getCurrentIsoDate.d.ts +0 -7
@@ -4,6 +4,8 @@ import { _AnthropicClaudeMetadataRegistration } from '../llm-providers/anthropic
4
4
  import { _AnthropicClaudeRegistration } from '../llm-providers/anthropic-claude/register-constructor';
5
5
  import { _AzureOpenAiMetadataRegistration } from '../llm-providers/azure-openai/register-configuration';
6
6
  import { _AzureOpenAiRegistration } from '../llm-providers/azure-openai/register-constructor';
7
+ import { _GoogleMetadataRegistration } from '../llm-providers/google/register-configuration';
8
+ import { _GoogleRegistration } from '../llm-providers/google/register-constructor';
7
9
  import { _OpenAiMetadataRegistration } from '../llm-providers/openai/register-configuration';
8
10
  import { _OpenAiAssistantMetadataRegistration } from '../llm-providers/openai/register-configuration';
9
11
  import { _OpenAiRegistration } from '../llm-providers/openai/register-constructor';
@@ -24,6 +26,8 @@ export { _AnthropicClaudeMetadataRegistration };
24
26
  export { _AnthropicClaudeRegistration };
25
27
  export { _AzureOpenAiMetadataRegistration };
26
28
  export { _AzureOpenAiRegistration };
29
+ export { _GoogleMetadataRegistration };
30
+ export { _GoogleRegistration };
27
31
  export { _OpenAiMetadataRegistration };
28
32
  export { _OpenAiAssistantMetadataRegistration };
29
33
  export { _OpenAiRegistration };
@@ -82,6 +82,7 @@ import { countTotalUsage } from '../llm-providers/_common/utils/count-total-usag
82
82
  import { limitTotalUsage } from '../llm-providers/_common/utils/count-total-usage/limitTotalUsage';
83
83
  import { _AnthropicClaudeMetadataRegistration } from '../llm-providers/anthropic-claude/register-configuration';
84
84
  import { _AzureOpenAiMetadataRegistration } from '../llm-providers/azure-openai/register-configuration';
85
+ import { _GoogleMetadataRegistration } from '../llm-providers/google/register-configuration';
85
86
  import { joinLlmExecutionTools } from '../llm-providers/multiple/joinLlmExecutionTools';
86
87
  import { MultipleLlmExecutionTools } from '../llm-providers/multiple/MultipleLlmExecutionTools';
87
88
  import { _OpenAiMetadataRegistration } from '../llm-providers/openai/register-configuration';
@@ -196,6 +197,7 @@ export { countTotalUsage };
196
197
  export { limitTotalUsage };
197
198
  export { _AnthropicClaudeMetadataRegistration };
198
199
  export { _AzureOpenAiMetadataRegistration };
200
+ export { _GoogleMetadataRegistration };
199
201
  export { joinLlmExecutionTools };
200
202
  export { MultipleLlmExecutionTools };
201
203
  export { _OpenAiMetadataRegistration };
@@ -0,0 +1,10 @@
1
+ import { BOOK_LANGUAGE_VERSION, PROMPTBOOK_ENGINE_VERSION } from '../version';
2
+ import { createGoogleExecutionTools } from '../llm-providers/google/createGoogleExecutionTools';
3
+ import type { GoogleExecutionToolsOptions } from '../llm-providers/google/GoogleExecutionToolsOptions';
4
+ import { _GoogleRegistration } from '../llm-providers/google/register-constructor';
5
+ import type { VercelExecutionToolsOptions } from '../llm-providers/vercel/VercelExecutionToolsOptions';
6
+ export { BOOK_LANGUAGE_VERSION, PROMPTBOOK_ENGINE_VERSION };
7
+ export { createGoogleExecutionTools };
8
+ export type { GoogleExecutionToolsOptions };
9
+ export { _GoogleRegistration };
10
+ export type { VercelExecutionToolsOptions };
@@ -55,6 +55,7 @@ import type { AnthropicClaudeExecutionToolsOptions } from '../llm-providers/anth
55
55
  import type { AnthropicClaudeExecutionToolsDirectOptions } from '../llm-providers/anthropic-claude/AnthropicClaudeExecutionToolsOptions';
56
56
  import type { AnthropicClaudeExecutionToolsProxiedOptions } from '../llm-providers/anthropic-claude/AnthropicClaudeExecutionToolsOptions';
57
57
  import type { AzureOpenAiExecutionToolsOptions } from '../llm-providers/azure-openai/AzureOpenAiExecutionToolsOptions';
58
+ import type { GoogleExecutionToolsOptions } from '../llm-providers/google/GoogleExecutionToolsOptions';
58
59
  import type { OpenAiAssistantExecutionToolsOptions } from '../llm-providers/openai/OpenAiAssistantExecutionToolsOptions';
59
60
  import type { OpenAiExecutionToolsOptions } from '../llm-providers/openai/OpenAiExecutionToolsOptions';
60
61
  import type { PromptbookServer_Error } from '../llm-providers/remote/interfaces/PromptbookServer_Error';
@@ -72,6 +73,8 @@ import type { RemoteServerOptions } from '../llm-providers/remote/interfaces/Rem
72
73
  import type { AnonymousRemoteServerOptions } from '../llm-providers/remote/interfaces/RemoteServerOptions';
73
74
  import type { CollectionRemoteServerOptions } from '../llm-providers/remote/interfaces/RemoteServerOptions';
74
75
  import type { CollectionRemoteServerClientOptions } from '../llm-providers/remote/interfaces/RemoteServerOptions';
76
+ import type { VercelExecutionToolsOptions } from '../llm-providers/vercel/VercelExecutionToolsOptions';
77
+ import type { VercelProvider } from '../llm-providers/vercel/VercelProvider';
75
78
  import type { IsPipelineImplementingInterfaceOptions } from '../pipeline/PipelineInterface/isPipelineImplementingInterface';
76
79
  import type { PipelineInterface } from '../pipeline/PipelineInterface/PipelineInterface';
77
80
  import type { CommonTaskJson } from '../pipeline/PipelineJson/CommonTaskJson';
@@ -309,6 +312,7 @@ export type { AnthropicClaudeExecutionToolsOptions };
309
312
  export type { AnthropicClaudeExecutionToolsDirectOptions };
310
313
  export type { AnthropicClaudeExecutionToolsProxiedOptions };
311
314
  export type { AzureOpenAiExecutionToolsOptions };
315
+ export type { GoogleExecutionToolsOptions };
312
316
  export type { OpenAiAssistantExecutionToolsOptions };
313
317
  export type { OpenAiExecutionToolsOptions };
314
318
  export type { PromptbookServer_Error };
@@ -326,6 +330,8 @@ export type { RemoteServerOptions };
326
330
  export type { AnonymousRemoteServerOptions };
327
331
  export type { CollectionRemoteServerOptions };
328
332
  export type { CollectionRemoteServerClientOptions };
333
+ export type { VercelExecutionToolsOptions };
334
+ export type { VercelProvider };
329
335
  export type { IsPipelineImplementingInterfaceOptions };
330
336
  export type { PipelineInterface };
331
337
  export type { CommonTaskJson };
@@ -8,7 +8,7 @@ import { deserializeError } from '../errors/utils/deserializeError';
8
8
  import { serializeError } from '../errors/utils/serializeError';
9
9
  import { forEachAsync } from '../execution/utils/forEachAsync';
10
10
  import { isValidJsonString } from '../formats/json/utils/isValidJsonString';
11
- import { $currentDate } from '../utils/$currentDate';
11
+ import { $getCurrentDate } from '../utils/$getCurrentDate';
12
12
  import { $isRunningInBrowser } from '../utils/environment/$isRunningInBrowser';
13
13
  import { $isRunningInNode } from '../utils/environment/$isRunningInNode';
14
14
  import { $isRunningInWebWorker } from '../utils/environment/$isRunningInWebWorker';
@@ -82,7 +82,7 @@ export { deserializeError };
82
82
  export { serializeError };
83
83
  export { forEachAsync };
84
84
  export { isValidJsonString };
85
- export { $currentDate };
85
+ export { $getCurrentDate };
86
86
  export { $isRunningInBrowser };
87
87
  export { $isRunningInNode };
88
88
  export { $isRunningInWebWorker };
@@ -1,2 +1,6 @@
1
1
  import { BOOK_LANGUAGE_VERSION, PROMPTBOOK_ENGINE_VERSION } from '../version';
2
+ import { createExecutionToolsFromVercelProvider } from '../llm-providers/vercel/createExecutionToolsFromVercelProvider';
3
+ import type { VercelProvider } from '../llm-providers/vercel/VercelProvider';
2
4
  export { BOOK_LANGUAGE_VERSION, PROMPTBOOK_ENGINE_VERSION };
5
+ export { createExecutionToolsFromVercelProvider };
6
+ export type { VercelProvider };
@@ -8,7 +8,7 @@ export type AvailableModel = {
8
8
  /**
9
9
  * The model title
10
10
  */
11
- readonly modelTitle: string_title;
11
+ readonly modelTitle?: string_title;
12
12
  /**
13
13
  * The model name aviailable
14
14
  */
@@ -18,3 +18,7 @@ export type AvailableModel = {
18
18
  */
19
19
  readonly modelVariant: ModelVariant;
20
20
  };
21
+ /**
22
+ * TODO: !!!!!! Maybe remove `modelTitle`
23
+ * TODO: !!!!!! Put pricing information here
24
+ */
@@ -1,15 +1,24 @@
1
+ import type { string_user_id } from '../types/typeAliases';
1
2
  /**
2
3
  * @@@
3
4
  *
4
5
  * Note: Keep it public to allow people to make their own execution tools
5
6
  */
6
7
  export type CommonToolsOptions = {
8
+ /**
9
+ * A unique identifier representing your end-user
10
+ *
11
+ * Note: For example it can help to detect abuse
12
+ * For example for OpenAi @see https://platform.openai.com/docs/guides/safety-best-practices/end-user-ids
13
+ */
14
+ readonly userId?: string_user_id;
7
15
  /**
8
16
  * If true, the internal executions will be logged
9
17
  */
10
18
  readonly isVerbose?: boolean;
11
19
  };
12
20
  /**
21
+ * TODO: [🧠][🤺] Maybe allow overriding of `userId` for each prompt
13
22
  * TODO: [🈁] Maybe add here `isDeterministic`
14
23
  * TODO: [🧠][💙] Distinct between options passed into ExecutionTools and to ExecutionTools.execute
15
24
  */
@@ -18,7 +18,7 @@ export type CreateLlmToolsFromConfigurationOptions = {
18
18
  *
19
19
  * Note: This is passed to the LLM tools providers to identify misuse
20
20
  */
21
- readonly userId?: string_user_id | null;
21
+ readonly userId?: string_user_id;
22
22
  };
23
23
  /**
24
24
  * @@@
@@ -33,5 +33,5 @@ export type AzureOpenAiExecutionToolsOptions = CommonToolsOptions & {
33
33
  *
34
34
  * @see https://platform.openai.com/docs/guides/safety-best-practices/end-user-ids (document from OpenAI not Azure, but same concept)
35
35
  */
36
- readonly userId: string_user_id | null;
36
+ readonly userId?: string_user_id;
37
37
  };
@@ -0,0 +1,12 @@
1
+ import type { createGoogleGenerativeAI } from '@ai-sdk/google';
2
+ import type { CommonToolsOptions } from '../../execution/CommonToolsOptions';
3
+ /**
4
+ * Options for `GoogleExecutionTools`
5
+ *
6
+ * !!!!!! This extends Google's `ClientOptions` with are directly passed to the Google generative AI client.
7
+ * @public exported from `@promptbook/google`
8
+ */
9
+ export type GoogleExecutionToolsOptions = CommonToolsOptions & Parameters<typeof createGoogleGenerativeAI>[0];
10
+ /**
11
+ * TODO: [🧠][🤺] Pass `userId`
12
+ */
@@ -0,0 +1,18 @@
1
+ import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
2
+ import type { GoogleExecutionToolsOptions } from './GoogleExecutionToolsOptions';
3
+ /**
4
+ * Execution Tools for calling Google Gemini API.
5
+ *
6
+ * @public exported from `@promptbook/google`
7
+ */
8
+ export declare const createGoogleExecutionTools: ((options: GoogleExecutionToolsOptions) => LlmExecutionTools) & {
9
+ packageName: string;
10
+ className: string;
11
+ };
12
+ /**
13
+ * TODO: [🧠][main] !!!! Make anonymous this with all LLM providers
14
+ * TODO: [🧠][🧱][main] !!!! Maybe change all `new GoogleExecutionTools` -> `createGoogleExecutionTools` in manual
15
+ * TODO: [🧠] Maybe auto-detect usage in browser and determine default value of `isProxied`
16
+ * TODO: [🦺] Is there some way how to put `packageName` and `className` on top and function definition on bottom?
17
+ * TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
18
+ */
@@ -0,0 +1,13 @@
1
+ import type { Registration } from '../../utils/$Register';
2
+ /**
3
+ * Registration of LLM provider metadata
4
+ *
5
+ * Warning: This is not useful for the end user, it is just a side effect of the mechanism that handles all available LLM tools
6
+ *
7
+ * @public exported from `@promptbook/core`
8
+ * @public exported from `@promptbook/cli`
9
+ */
10
+ export declare const _GoogleMetadataRegistration: Registration;
11
+ /**
12
+ * Note: [💞] Ignore a discrepancy between file name and entity name
13
+ */
@@ -0,0 +1,14 @@
1
+ import type { Registration } from '../../utils/$Register';
2
+ /**
3
+ * Registration of LLM provider
4
+ *
5
+ * Warning: This is not useful for the end user, it is just a side effect of the mechanism that handles all available LLM tools
6
+ *
7
+ * @public exported from `@promptbook/google`
8
+ * @public exported from `@promptbook/cli`
9
+ */
10
+ export declare const _GoogleRegistration: Registration;
11
+ /**
12
+ * TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
13
+ * Note: [💞] Ignore a discrepancy between file name and entity name
14
+ */
@@ -1,6 +1,5 @@
1
1
  import type { ClientOptions } from 'openai';
2
2
  import type { CommonToolsOptions } from '../../execution/CommonToolsOptions';
3
- import type { string_user_id } from '../../types/typeAliases';
4
3
  /**
5
4
  * Options for `OpenAiExecutionTools`
6
5
  *
@@ -9,12 +8,4 @@ import type { string_user_id } from '../../types/typeAliases';
9
8
  *
10
9
  * @public exported from `@promptbook/openai`
11
10
  */
12
- export type OpenAiExecutionToolsOptions = CommonToolsOptions & ClientOptions & {
13
- /**
14
- * A unique identifier representing your end-user, which can help OpenAI to monitor
15
- * and detect abuse.
16
- *
17
- * @see https://platform.openai.com/docs/guides/safety-best-practices/end-user-ids
18
- */
19
- userId: string_user_id | null;
20
- };
11
+ export type OpenAiExecutionToolsOptions = CommonToolsOptions & ClientOptions;
@@ -24,7 +24,7 @@ export type PromptbookServer_ListModels_AnonymousRequest = {
24
24
  * Note: this is passed to the certain model providers to identify misuse
25
25
  * Note: In anonymous mode, there is no need to identify yourself, nor does it change the actual configuration of LLM Tools (unlike in application mode)
26
26
  */
27
- readonly userId: string_user_id | null;
27
+ readonly userId?: string_user_id;
28
28
  /**
29
29
  * Configuration for the LLM tools
30
30
  */
@@ -29,7 +29,7 @@ export type PromptbookServer_Prompt_AnonymousRequest = {
29
29
  * Note: this is passed to the certain model providers to identify misuse
30
30
  * Note: In anonymous mode, there is no need to identify yourself, nor does it change the actual configuration of LLM Tools (unlike in application mode)
31
31
  */
32
- readonly userId: string_user_id | null;
32
+ readonly userId?: string_user_id;
33
33
  /**
34
34
  * Configuration for the LLM tools
35
35
  */
@@ -41,7 +41,7 @@ export type RemoteLlmExecutionToolsOptions<TCustomOptions> = CommonToolsOptions
41
41
  * Note: This is passed to the certain model providers to identify misuse
42
42
  * Note: In anonymous mode, there is no need to identify yourself, nor does it change the actual configuration of LLM Tools (unlike in application mode).
43
43
  */
44
- readonly userId: string_user_id | null;
44
+ readonly userId?: string_user_id;
45
45
  } | ({
46
46
  /**
47
47
  * Use anonymous server with client identification and fixed collection
@@ -62,7 +62,7 @@ export type CollectionRemoteServerClientOptions<TCustomOptions> = {
62
62
  /**
63
63
  * @@@
64
64
  */
65
- readonly userId: string_user_id | null;
65
+ readonly userId?: string_user_id;
66
66
  /**
67
67
  * @@@
68
68
  */
@@ -0,0 +1,22 @@
1
+ import type { AvailableModel } from '../../execution/AvailableModel';
2
+ import type { CommonToolsOptions } from '../../execution/CommonToolsOptions';
3
+ import type { VercelProvider } from './VercelProvider';
4
+ /**
5
+ * Options for `createExecutionToolsFromVercelProvider`
6
+ *
7
+ * @public exported from `@promptbook/google`
8
+ */
9
+ export type VercelExecutionToolsOptions = CommonToolsOptions & {
10
+ /**
11
+ * Vercel provider for the execution tools
12
+ */
13
+ readonly vercelProvider: VercelProvider;
14
+ /**
15
+ * List of available models for given Vercel provider
16
+ */
17
+ readonly availableModels: ReadonlyArray<AvailableModel>;
18
+ /**
19
+ * Additional settings for chat models when calling `vercelProvider.chat('model-name', settings)`
20
+ */
21
+ readonly additionalChatSettings?: Partial<Parameters<VercelProvider['chat']>[1]>;
22
+ };
@@ -0,0 +1,13 @@
1
+ import type { createGoogleGenerativeAI } from '@ai-sdk/google';
2
+ import type { createOpenAI } from '@ai-sdk/openai';
3
+ /**
4
+ * This is common interface for all v1 Vercel providers
5
+ *
6
+ * @public exported from `@promptbook/vercel`
7
+ */
8
+ export type VercelProvider = ReturnType<typeof createOpenAI> | ReturnType<typeof createGoogleGenerativeAI>;
9
+ /**
10
+ * ^^^^
11
+ * TODO: Is there some way to get the type of the provider directly,
12
+ * NOT this stupid way via inferring the return type from a specific vercel provider⁉
13
+ */
@@ -0,0 +1,8 @@
1
+ import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
2
+ import type { VercelExecutionToolsOptions } from './VercelExecutionToolsOptions';
3
+ /**
4
+ * !!!!!!
5
+ *
6
+ * @public exported from `@promptbook/vercel`
7
+ */
8
+ export declare function createExecutionToolsFromVercelProvider(options: VercelExecutionToolsOptions): LlmExecutionTools;
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ts-node
2
+ export {};
3
+ /**
4
+ * TODO: [main] !!! Test here that `systemMessage`, `temperature` and `seed` are working correctly
5
+ * Note: [⚫] Code in this file should never be published in any package
6
+ */
@@ -7,4 +7,4 @@ import type { string_date_iso8601 } from '../types/typeAliases';
7
7
  * @returns string_date branded type
8
8
  * @public exported from `@promptbook/utils`
9
9
  */
10
- export declare function $currentDate(): string_date_iso8601;
10
+ export declare function $getCurrentDate(): string_date_iso8601;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/markdown-utils",
3
- "version": "0.76.0",
3
+ "version": "0.77.0-3",
4
4
  "description": "It's time for a paradigm shift. The future of software in plain English, French or Latin",
5
5
  "--note-0": " <- [🐊]",
6
6
  "private": false,
package/umd/index.umd.js CHANGED
@@ -22,7 +22,7 @@
22
22
  *
23
23
  * @see https://github.com/webgptorg/promptbook
24
24
  */
25
- var PROMPTBOOK_ENGINE_VERSION = '0.75.10';
25
+ var PROMPTBOOK_ENGINE_VERSION = '0.77.0-2';
26
26
  /**
27
27
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
28
28
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -3684,7 +3684,7 @@
3684
3684
  llmToolsWithUsage = countTotalUsage(llmTools);
3685
3685
  currentPreparation = {
3686
3686
  id: 1,
3687
- // TODO: [🍥]> date: $currentDate(),
3687
+ // TODO: [🍥]> date: $getCurrentDate(),
3688
3688
  promptbookVersion: PROMPTBOOK_ENGINE_VERSION,
3689
3689
  usage: ZERO_USAGE,
3690
3690
  };