@promptbook/cli 0.68.4 → 0.68.5
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.
- package/esm/index.es.js +35 -35
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/cli/cli-commands/make.d.ts +1 -1
- package/esm/typings/src/collection/constructors/createCollectionFromUrl.d.ts +1 -1
- package/esm/typings/src/config.d.ts +2 -2
- package/esm/typings/src/conversion/pipelineStringToJsonSync.d.ts +1 -1
- package/esm/typings/src/conversion/validation/validatePipeline.d.ts +5 -5
- package/esm/typings/src/execution/createPipelineExecutor.d.ts +1 -1
- package/esm/typings/src/knowledge/prepare-knowledge/markdown/prepareKnowledgeFromMarkdown.d.ts +1 -1
- package/esm/typings/src/knowledge/prepare-knowledge/pdf/prepareKnowledgeFromPdf.d.ts +1 -1
- package/esm/typings/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionTools.d.ts +2 -1
- package/esm/typings/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +1 -1
- package/esm/typings/src/llm-providers/anthropic-claude/createAnthropicClaudeExecutionTools.d.ts +2 -2
- package/esm/typings/src/llm-providers/anthropic-claude/playground/playground.d.ts +2 -2
- package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionTools.d.ts +2 -1
- package/esm/typings/src/llm-providers/openai/OpenAiExecutionTools.d.ts +2 -1
- package/esm/typings/src/llm-providers/openai/playground/playground.d.ts +1 -1
- package/esm/typings/src/personas/preparePersona.d.ts +1 -1
- package/esm/typings/src/prepare/isPipelinePrepared.d.ts +1 -1
- package/esm/typings/src/prepare/prepareTemplates.d.ts +1 -1
- package/esm/typings/src/types/typeAliases.d.ts +1 -1
- package/esm/typings/src/utils/serialization/checkSerializableAsJson.d.ts +1 -1
- package/esm/typings/src/utils/serialization/isSerializableAsJson.d.ts +1 -1
- package/package.json +1 -1
- package/umd/index.umd.js +35 -35
- package/umd/index.umd.js.map +1 -1
|
@@ -6,7 +6,7 @@ import type { Command as Program } from 'commander';
|
|
|
6
6
|
*/
|
|
7
7
|
export declare function initializeMakeCommand(program: Program): void;
|
|
8
8
|
/**
|
|
9
|
-
* TODO: [🥃] !!! Allow `ptbk make` without configuring any llm tools
|
|
9
|
+
* TODO: [🥃][main] !!! Allow `ptbk make` without configuring any llm tools
|
|
10
10
|
* TODO: Maybe remove this command - "about" command should be enough?
|
|
11
11
|
* TODO: [0] DRY Javascript and typescript - Maybe make ONLY typescript and for javascript just remove types
|
|
12
12
|
* Note: [🟡] This code should never be published outside of `@promptbook/cli`
|
|
@@ -25,5 +25,5 @@ type CreatePipelineCollectionFromUrlyOptions = {
|
|
|
25
25
|
export declare function createCollectionFromUrl(url: string_url | URL, options: CreatePipelineCollectionFromUrlyOptions): Promise<PipelineCollection>;
|
|
26
26
|
export {};
|
|
27
27
|
/**
|
|
28
|
-
* TODO: !!!! [🧠] Library precompilation and do not mix markdown and json promptbooks
|
|
28
|
+
* TODO:[main] !!!! [🧠] Library precompilation and do not mix markdown and json promptbooks
|
|
29
29
|
*/
|
|
@@ -68,14 +68,14 @@ export declare const MAX_EXECUTION_ATTEMPTS = 3;
|
|
|
68
68
|
export declare const MAX_FILENAME_LENGTH = 30;
|
|
69
69
|
/**
|
|
70
70
|
* @@@
|
|
71
|
-
* TODO: [🐝] !!! Use
|
|
71
|
+
* TODO: [🐝][main] !!! Use
|
|
72
72
|
*
|
|
73
73
|
* @public exported from `@promptbook/core`
|
|
74
74
|
*/
|
|
75
75
|
export declare const MAX_KNOWLEDGE_SOURCES_SCRAPING_DEPTH = 3;
|
|
76
76
|
/**
|
|
77
77
|
* @@@
|
|
78
|
-
* TODO: [🐝] !!! Use
|
|
78
|
+
* TODO: [🐝][main] !!! Use
|
|
79
79
|
*
|
|
80
80
|
* @public exported from `@promptbook/core`
|
|
81
81
|
*/
|
|
@@ -18,7 +18,7 @@ import type { PipelineString } from '../types/PipelineString';
|
|
|
18
18
|
*/
|
|
19
19
|
export declare function pipelineStringToJsonSync(pipelineString: PipelineString): PipelineJson;
|
|
20
20
|
/**
|
|
21
|
-
* TODO: !!!! Warn if used only sync version
|
|
21
|
+
* TODO:[main] !!!! Warn if used only sync version
|
|
22
22
|
* TODO: [🚞] Report here line/column of error
|
|
23
23
|
* TODO: Use spaceTrim more effectively
|
|
24
24
|
* TODO: [🧠] Parameter flags - isInput, isOutput, isInternal
|
|
@@ -27,11 +27,11 @@ export declare function validatePipeline(pipeline: PipelineJson): PipelineJson;
|
|
|
27
27
|
* > ex port function validatePipeline(promptbook: really_unknown): asserts promptbook is PipelineJson {
|
|
28
28
|
*/
|
|
29
29
|
/**
|
|
30
|
-
* TODO: [🐣] !!!! Validate that all samples match expectations
|
|
31
|
-
* TODO: [🐣][🐝] !!!! Validate that knowledge is valid (non-void)
|
|
32
|
-
* TODO: [🐣] !!!! Validate that persona can be used only with CHAT variant
|
|
33
|
-
* TODO: [🐣] !!!! Validate that parameter with reserved name not used RESERVED_PARAMETER_NAMES
|
|
34
|
-
* TODO: [🐣] !!!! Validate that reserved parameter is not used as joker
|
|
30
|
+
* TODO: [🐣][main] !!!! Validate that all samples match expectations
|
|
31
|
+
* TODO: [🐣][🐝][main] !!!! Validate that knowledge is valid (non-void)
|
|
32
|
+
* TODO: [🐣][main] !!!! Validate that persona can be used only with CHAT variant
|
|
33
|
+
* TODO: [🐣][main] !!!! Validate that parameter with reserved name not used RESERVED_PARAMETER_NAMES
|
|
34
|
+
* TODO: [🐣][main] !!!! Validate that reserved parameter is not used as joker
|
|
35
35
|
* TODO: [🧠] Validation not only logic itself but imports around - files and websites and rerefenced pipelines exists
|
|
36
36
|
* TODO: [🛠] Actions, instruments (and maybe knowledge) => Functions and tools
|
|
37
37
|
*/
|
|
@@ -58,7 +58,7 @@ interface CreatePipelineExecutorOptions {
|
|
|
58
58
|
export declare function createPipelineExecutor(options: CreatePipelineExecutorOptions): PipelineExecutor;
|
|
59
59
|
export {};
|
|
60
60
|
/**
|
|
61
|
-
* TODO: !!! Identify not only pipeline BUT exact template ${block(pipelineIdentification)}
|
|
61
|
+
* TODO:[main] !!! Identify not only pipeline BUT exact template ${block(pipelineIdentification)}
|
|
62
62
|
* TODO: Use isVerbose here (not only pass to `preparePipeline`)
|
|
63
63
|
* TODO: [🧠][🌳] Use here `countTotalUsage` and put preparation and prepared pipiline to report
|
|
64
64
|
* TODO: [🪂] Use maxParallelCount here (not only pass to `preparePipeline`)
|
package/esm/typings/src/knowledge/prepare-knowledge/markdown/prepareKnowledgeFromMarkdown.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import type { string_markdown } from '../../../types/typeAliases';
|
|
|
8
8
|
*/
|
|
9
9
|
export declare function prepareKnowledgeFromMarkdown(knowledgeContent: string_markdown, options: PrepareOptions): Promise<Array<Omit<KnowledgePiecePreparedJson, 'sources' | 'preparationIds'>>>;
|
|
10
10
|
/**
|
|
11
|
-
* TODO: [🐝][🔼] !!! Export via `@promptbook/markdown`
|
|
11
|
+
* TODO: [🐝][🔼][main] !!! Export via `@promptbook/markdown`
|
|
12
12
|
* TODO: [🪂] Do it in parallel 11:11
|
|
13
13
|
* Note: No need to aggregate usage here, it is done by intercepting the llmTools
|
|
14
14
|
*/
|
|
@@ -8,7 +8,7 @@ import type { string_base64 } from '../../../types/typeAliases';
|
|
|
8
8
|
*/
|
|
9
9
|
export declare function prepareKnowledgeFromPdf(content: string_base64, options: PrepareOptions): Promise<Array<Omit<KnowledgePiecePreparedJson, 'sources' | 'preparationIds'>>>;
|
|
10
10
|
/**
|
|
11
|
-
* TODO: [🐝][🔼] !!! Export via `@promptbook/pdf`
|
|
11
|
+
* TODO: [🐝][🔼][main] !!! Export via `@promptbook/pdf`
|
|
12
12
|
* TODO: [🧺] In future, content can be alse File or Blob BUT for now for wider compatibility its only base64
|
|
13
13
|
* @see https://stackoverflow.com/questions/14653349/node-js-cant-create-blobs
|
|
14
14
|
* TODO: [🪂] Do it in parallel
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import Anthropic from '@anthropic-ai/sdk';
|
|
1
2
|
import type { AvailableModel } from '../../execution/AvailableModel';
|
|
2
3
|
import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
|
|
3
4
|
import type { ChatPromptResult } from '../../execution/PromptResult';
|
|
@@ -26,7 +27,7 @@ export declare class AnthropicClaudeExecutionTools implements LlmExecutionTools
|
|
|
26
27
|
constructor(options?: AnthropicClaudeExecutionToolsDirectOptions);
|
|
27
28
|
get title(): string_title & string_markdown_text;
|
|
28
29
|
get description(): string_markdown;
|
|
29
|
-
|
|
30
|
+
getClient(): Promise<Anthropic>;
|
|
30
31
|
/**
|
|
31
32
|
* Check the `options` passed to `constructor`
|
|
32
33
|
*/
|
|
@@ -16,7 +16,7 @@ export declare const ANTHROPIC_CLAUDE_MODELS: Array<AvailableModel & {
|
|
|
16
16
|
}>;
|
|
17
17
|
/**
|
|
18
18
|
* Note: [🤖] Add models of new variant
|
|
19
|
-
* TODO: [🧠] !!! Add embedding models OR Anthropic has only chat+completion models?
|
|
19
|
+
* TODO: [🧠][main] !!! Add embedding models OR Anthropic has only chat+completion models?
|
|
20
20
|
* TODO: [🧠] Some mechanism to propagate unsureness
|
|
21
21
|
* TODO: [🧠][👮♀️] Put here more info like description, isVision, trainingDateCutoff, languages, strengths ( Top-level performance, intelligence, fluency, and understanding), contextWindow,...
|
|
22
22
|
* TODO: [🎰] Some mechanism to auto-update available models
|
package/esm/typings/src/llm-providers/anthropic-claude/createAnthropicClaudeExecutionTools.d.ts
CHANGED
|
@@ -11,8 +11,8 @@ export declare const createAnthropicClaudeExecutionTools: ((options: AnthropicCl
|
|
|
11
11
|
className: string;
|
|
12
12
|
};
|
|
13
13
|
/**
|
|
14
|
-
* TODO: [🧠] !!!! Make anonymous this with all LLM providers
|
|
15
|
-
* TODO: [🧠][🧱] !!!! Maybe change all `new AnthropicClaudeExecutionTools` -> `createAnthropicClaudeExecutionTools` in manual
|
|
14
|
+
* TODO: [🧠][main] !!!! Make anonymous this with all LLM providers
|
|
15
|
+
* TODO: [🧠][🧱][main] !!!! Maybe change all `new AnthropicClaudeExecutionTools` -> `createAnthropicClaudeExecutionTools` in manual
|
|
16
16
|
* TODO: [🧠] Maybe auto-detect usage in browser and determine default value of `isProxied`
|
|
17
17
|
* TODO: [🦺] Is there some way how to put `packageName` and `className` on top and function definition on bottom?
|
|
18
18
|
* TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env ts-node
|
|
2
2
|
export {};
|
|
3
3
|
/**
|
|
4
|
-
* TODO: !!! Playground with WebGPT / Promptbook.studio anonymous server
|
|
5
|
-
* TODO: !!! Test here that `systemMessage`, `temperature` and `seed` are working correctly
|
|
4
|
+
* TODO:[main] !!! Playground with WebGPT / Promptbook.studio anonymous server
|
|
5
|
+
* TODO:[main] !!! Test here that `systemMessage`, `temperature` and `seed` are working correctly
|
|
6
6
|
*/
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { OpenAIClient } from '@azure/openai';
|
|
1
2
|
import type { AvailableModel } from '../../execution/AvailableModel';
|
|
2
3
|
import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
|
|
3
4
|
import type { ChatPromptResult } from '../../execution/PromptResult';
|
|
@@ -26,7 +27,7 @@ export declare class AzureOpenAiExecutionTools implements LlmExecutionTools {
|
|
|
26
27
|
constructor(options: AzureOpenAiExecutionToolsOptions);
|
|
27
28
|
get title(): string_title & string_markdown_text;
|
|
28
29
|
get description(): string_markdown;
|
|
29
|
-
|
|
30
|
+
getClient(): Promise<OpenAIClient>;
|
|
30
31
|
/**
|
|
31
32
|
* Check the `options` passed to `constructor`
|
|
32
33
|
*/
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import OpenAI from 'openai';
|
|
1
2
|
import type { AvailableModel } from '../../execution/AvailableModel';
|
|
2
3
|
import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
|
|
3
4
|
import type { ChatPromptResult } from '../../execution/PromptResult';
|
|
@@ -27,7 +28,7 @@ export declare class OpenAiExecutionTools implements LlmExecutionTools {
|
|
|
27
28
|
constructor(options?: OpenAiExecutionToolsOptions);
|
|
28
29
|
get title(): string_title & string_markdown_text;
|
|
29
30
|
get description(): string_markdown;
|
|
30
|
-
|
|
31
|
+
getClient(): Promise<OpenAI>;
|
|
31
32
|
/**
|
|
32
33
|
* Check the `options` passed to `constructor`
|
|
33
34
|
*/
|
|
@@ -9,7 +9,7 @@ import type { string_persona_description } from '../types/typeAliases';
|
|
|
9
9
|
*/
|
|
10
10
|
export declare function preparePersona(personaDescription: string_persona_description, options: PrepareOptions): Promise<PersonaPreparedJson['modelRequirements']>;
|
|
11
11
|
/**
|
|
12
|
-
* TODO: [🔃] !!!!! If the persona was prepared with different version or different set of models, prepare it once again
|
|
12
|
+
* TODO: [🔃][main] !!!!! If the persona was prepared with different version or different set of models, prepare it once again
|
|
13
13
|
* TODO: [🏢] !! Check validity of `modelName` in pipeline
|
|
14
14
|
* TODO: [🏢] !! Check validity of `systemMessage` in pipeline
|
|
15
15
|
* TODO: [🏢] !! Check validity of `temperature` in pipeline
|
|
@@ -6,7 +6,7 @@ import type { PipelineJson } from '../types/PipelineJson/PipelineJson';
|
|
|
6
6
|
*/
|
|
7
7
|
export declare function isPipelinePrepared(pipeline: PipelineJson): boolean;
|
|
8
8
|
/**
|
|
9
|
-
* TODO: [🔃] !!!!! If the pipeline was prepared with different version or different set of models, prepare it once again
|
|
9
|
+
* TODO: [🔃][main] !!!!! If the pipeline was prepared with different version or different set of models, prepare it once again
|
|
10
10
|
* TODO: [🐠] Maybe base this on `makeValidator`
|
|
11
11
|
* TODO: [🧊] Pipeline can be partially prepared, this should return true ONLY if fully prepared
|
|
12
12
|
* TODO: [🧿] Maybe do same process with same granularity and subfinctions as `preparePipeline`
|
|
@@ -23,7 +23,7 @@ export {};
|
|
|
23
23
|
/**
|
|
24
24
|
* TODO: [🧠] Add context to each template (if missing)
|
|
25
25
|
* TODO: [🧠] What is better name `prepareTemplate` or `prepareTemplateAndParameters`
|
|
26
|
-
* TODO: [♨] !!! Prepare index the samples and maybe templates
|
|
26
|
+
* TODO: [♨][main] !!! Prepare index the samples and maybe templates
|
|
27
27
|
* TODO: Write tests for `preparePipeline`
|
|
28
28
|
* TODO: [🏏] Leverage the batch API and build queues @see https://platform.openai.com/docs/guides/batch
|
|
29
29
|
* TODO: [🧊] In future one preparation can take data from previous preparation and save tokens and time
|
|
@@ -592,7 +592,7 @@ export type number_megabytes = number_positive;
|
|
|
592
592
|
export type number_gigabytes = number_positive;
|
|
593
593
|
export type number_terabytes = number_positive;
|
|
594
594
|
/**.
|
|
595
|
-
* TODO: !!! Change "For example" to @example
|
|
595
|
+
* TODO:[main] !!! Change "For example" to @example
|
|
596
596
|
* TODO: !! Change to branded types
|
|
597
597
|
* TODO: Delete type aliases that are not exported or used internally
|
|
598
598
|
*/
|
|
@@ -22,6 +22,6 @@ import type { string_name } from '../../types/typeAliases';
|
|
|
22
22
|
export declare function checkSerializableAsJson(name: string_name, value: unknown): void;
|
|
23
23
|
/**
|
|
24
24
|
* TODO: [🧠][🛣] More elegant way to tracking than passing `name`
|
|
25
|
-
* TODO: [🧠] !!! In-memory cache of same values to prevent multiple checks
|
|
25
|
+
* TODO: [🧠][main] !!! In-memory cache of same values to prevent multiple checks
|
|
26
26
|
* Note: [🐠] This is how `checkSerializableAsJson` + `isSerializableAsJson` together can just retun true/false or rich error message
|
|
27
27
|
*/
|
|
@@ -19,6 +19,6 @@
|
|
|
19
19
|
*/
|
|
20
20
|
export declare function isSerializableAsJson(value: unknown): boolean;
|
|
21
21
|
/**
|
|
22
|
-
* TODO: [🧠] !!! In-memory cache of same values to prevent multiple checks
|
|
22
|
+
* TODO: [🧠][main] !!! In-memory cache of same values to prevent multiple checks
|
|
23
23
|
* TODO: [🧠][💺] Can be done this on type-level?
|
|
24
24
|
*/
|
package/package.json
CHANGED
package/umd/index.umd.js
CHANGED
|
@@ -39,8 +39,8 @@
|
|
|
39
39
|
/**
|
|
40
40
|
* The version of the Promptbook library
|
|
41
41
|
*/
|
|
42
|
-
var PROMPTBOOK_VERSION = '0.68.
|
|
43
|
-
// TODO: !!!! List here all the versions and annotate + put into script
|
|
42
|
+
var PROMPTBOOK_VERSION = '0.68.4';
|
|
43
|
+
// TODO:[main] !!!! List here all the versions and annotate + put into script
|
|
44
44
|
|
|
45
45
|
/*! *****************************************************************************
|
|
46
46
|
Copyright (c) Microsoft Corporation.
|
|
@@ -375,7 +375,7 @@
|
|
|
375
375
|
}
|
|
376
376
|
/**
|
|
377
377
|
* TODO: [🧠][🛣] More elegant way to tracking than passing `name`
|
|
378
|
-
* TODO: [🧠] !!! In-memory cache of same values to prevent multiple checks
|
|
378
|
+
* TODO: [🧠][main] !!! In-memory cache of same values to prevent multiple checks
|
|
379
379
|
* Note: [🐠] This is how `checkSerializableAsJson` + `isSerializableAsJson` together can just retun true/false or rich error message
|
|
380
380
|
*/
|
|
381
381
|
|
|
@@ -679,7 +679,7 @@
|
|
|
679
679
|
commands.push("PIPELINE URL ".concat(pipelineUrl));
|
|
680
680
|
}
|
|
681
681
|
commands.push("PROMPTBOOK VERSION ".concat(promptbookVersion));
|
|
682
|
-
// TODO: !!! This increase size of the bundle and is probbably not necessary
|
|
682
|
+
// TODO:[main] !!! This increase size of the bundle and is probbably not necessary
|
|
683
683
|
pipelineString = prettifyMarkdown(pipelineString);
|
|
684
684
|
try {
|
|
685
685
|
for (var _g = __values(parameters.filter(function (_a) {
|
|
@@ -827,12 +827,12 @@
|
|
|
827
827
|
pipelineString += '```' + contentLanguage;
|
|
828
828
|
pipelineString += '\n';
|
|
829
829
|
pipelineString += spaceTrim__default["default"](content);
|
|
830
|
-
// <- TODO: !!! Escape
|
|
830
|
+
// <- TODO:[main] !!! Escape
|
|
831
831
|
// <- TODO: [🧠] Some clear strategy how to spaceTrim the blocks
|
|
832
832
|
pipelineString += '\n';
|
|
833
833
|
pipelineString += '```';
|
|
834
834
|
pipelineString += '\n\n';
|
|
835
|
-
pipelineString += "`-> {".concat(resultingParameterName, "}`"); // <- TODO: !!! If the parameter here has description, add it and use templateParameterJsonToString
|
|
835
|
+
pipelineString += "`-> {".concat(resultingParameterName, "}`"); // <- TODO:[main] !!! If the parameter here has description, add it and use templateParameterJsonToString
|
|
836
836
|
}
|
|
837
837
|
}
|
|
838
838
|
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
@@ -1134,7 +1134,7 @@
|
|
|
1134
1134
|
if ( /* version === '1.0.0' || */version === '2.0.0' || version === '3.0.0') {
|
|
1135
1135
|
return false;
|
|
1136
1136
|
}
|
|
1137
|
-
// <- TODO: !!! Check isValidPromptbookVersion against PROMPTBOOK_VERSIONS
|
|
1137
|
+
// <- TODO:[main] !!! Check isValidPromptbookVersion against PROMPTBOOK_VERSIONS
|
|
1138
1138
|
return true;
|
|
1139
1139
|
}
|
|
1140
1140
|
|
|
@@ -1478,11 +1478,11 @@
|
|
|
1478
1478
|
* > ex port function validatePipeline(promptbook: really_unknown): asserts promptbook is PipelineJson {
|
|
1479
1479
|
*/
|
|
1480
1480
|
/**
|
|
1481
|
-
* TODO: [🐣] !!!! Validate that all samples match expectations
|
|
1482
|
-
* TODO: [🐣][🐝] !!!! Validate that knowledge is valid (non-void)
|
|
1483
|
-
* TODO: [🐣] !!!! Validate that persona can be used only with CHAT variant
|
|
1484
|
-
* TODO: [🐣] !!!! Validate that parameter with reserved name not used RESERVED_PARAMETER_NAMES
|
|
1485
|
-
* TODO: [🐣] !!!! Validate that reserved parameter is not used as joker
|
|
1481
|
+
* TODO: [🐣][main] !!!! Validate that all samples match expectations
|
|
1482
|
+
* TODO: [🐣][🐝][main] !!!! Validate that knowledge is valid (non-void)
|
|
1483
|
+
* TODO: [🐣][main] !!!! Validate that persona can be used only with CHAT variant
|
|
1484
|
+
* TODO: [🐣][main] !!!! Validate that parameter with reserved name not used RESERVED_PARAMETER_NAMES
|
|
1485
|
+
* TODO: [🐣][main] !!!! Validate that reserved parameter is not used as joker
|
|
1486
1486
|
* TODO: [🧠] Validation not only logic itself but imports around - files and websites and rerefenced pipelines exists
|
|
1487
1487
|
* TODO: [🛠] Actions, instruments (and maybe knowledge) => Functions and tools
|
|
1488
1488
|
*/
|
|
@@ -2767,7 +2767,7 @@
|
|
|
2767
2767
|
return true;
|
|
2768
2768
|
}
|
|
2769
2769
|
/**
|
|
2770
|
-
* TODO: [🔃] !!!!! If the pipeline was prepared with different version or different set of models, prepare it once again
|
|
2770
|
+
* TODO: [🔃][main] !!!!! If the pipeline was prepared with different version or different set of models, prepare it once again
|
|
2771
2771
|
* TODO: [🐠] Maybe base this on `makeValidator`
|
|
2772
2772
|
* TODO: [🧊] Pipeline can be partially prepared, this should return true ONLY if fully prepared
|
|
2773
2773
|
* TODO: [🧿] Maybe do same process with same granularity and subfinctions as `preparePipeline`
|
|
@@ -3146,7 +3146,7 @@
|
|
|
3146
3146
|
console.warn(spaceTrim.spaceTrim(function (block) { return "\n Pipeline is not prepared\n\n ".concat(block(pipelineIdentification), "\n\n It will be prepared ad-hoc before the first execution and **returned as `preparedPipeline` in `PipelineExecutorResult`**\n But it is recommended to prepare the pipeline during collection preparation\n\n @see more at https://ptbk.io/prepare-pipeline\n "); }));
|
|
3147
3147
|
}
|
|
3148
3148
|
var pipelineExecutor = function (inputParameters, onProgress) { return __awaiter(_this, void 0, void 0, function () {
|
|
3149
|
-
// TODO: !!! Extract to separate functions and files - ALL FUNCTIONS BELOW
|
|
3149
|
+
// TODO:[main] !!! Extract to separate functions and files - ALL FUNCTIONS BELOW
|
|
3150
3150
|
function getContextForTemplate(template) {
|
|
3151
3151
|
return __awaiter(this, void 0, void 0, function () {
|
|
3152
3152
|
return __generator(this, function (_a) {
|
|
@@ -3965,7 +3965,7 @@
|
|
|
3965
3965
|
return pipelineExecutor;
|
|
3966
3966
|
}
|
|
3967
3967
|
/**
|
|
3968
|
-
* TODO: !!! Identify not only pipeline BUT exact template ${block(pipelineIdentification)}
|
|
3968
|
+
* TODO:[main] !!! Identify not only pipeline BUT exact template ${block(pipelineIdentification)}
|
|
3969
3969
|
* TODO: Use isVerbose here (not only pass to `preparePipeline`)
|
|
3970
3970
|
* TODO: [🧠][🌳] Use here `countTotalUsage` and put preparation and prepared pipiline to report
|
|
3971
3971
|
* TODO: [🪂] Use maxParallelCount here (not only pass to `preparePipeline`)
|
|
@@ -4028,7 +4028,7 @@
|
|
|
4028
4028
|
outputParameters = result.outputParameters;
|
|
4029
4029
|
knowledgePiecesRaw = outputParameters.knowledgePieces;
|
|
4030
4030
|
knowledgeTextPieces = (knowledgePiecesRaw || '').split('\n---\n');
|
|
4031
|
-
// <- TODO: !!!!! Smarter split and filter out empty pieces
|
|
4031
|
+
// <- TODO:[main] !!!!! Smarter split and filter out empty pieces
|
|
4032
4032
|
if (isVerbose) {
|
|
4033
4033
|
console.info('knowledgeTextPieces:', knowledgeTextPieces);
|
|
4034
4034
|
}
|
|
@@ -4108,7 +4108,7 @@
|
|
|
4108
4108
|
});
|
|
4109
4109
|
}
|
|
4110
4110
|
/**
|
|
4111
|
-
* TODO: [🐝][🔼] !!! Export via `@promptbook/markdown`
|
|
4111
|
+
* TODO: [🐝][🔼][main] !!! Export via `@promptbook/markdown`
|
|
4112
4112
|
* TODO: [🪂] Do it in parallel 11:11
|
|
4113
4113
|
* Note: No need to aggregate usage here, it is done by intercepting the llmTools
|
|
4114
4114
|
*/
|
|
@@ -4132,7 +4132,7 @@
|
|
|
4132
4132
|
var partialPieces, pieces;
|
|
4133
4133
|
return __generator(this, function (_a) {
|
|
4134
4134
|
switch (_a.label) {
|
|
4135
|
-
case 0: return [4 /*yield*/, prepareKnowledgeFromMarkdown(knowledgeSource.sourceContent, // <- TODO: [🐝] !!! Unhardcode markdown, detect which type it is - BE AWARE of big package size
|
|
4135
|
+
case 0: return [4 /*yield*/, prepareKnowledgeFromMarkdown(knowledgeSource.sourceContent, // <- TODO: [🐝][main] !!! Unhardcode markdown, detect which type it is - BE AWARE of big package size
|
|
4136
4136
|
options)];
|
|
4137
4137
|
case 1:
|
|
4138
4138
|
partialPieces = _a.sent();
|
|
@@ -4324,7 +4324,7 @@
|
|
|
4324
4324
|
});
|
|
4325
4325
|
}
|
|
4326
4326
|
/**
|
|
4327
|
-
* TODO: [🔃] !!!!! If the persona was prepared with different version or different set of models, prepare it once again
|
|
4327
|
+
* TODO: [🔃][main] !!!!! If the persona was prepared with different version or different set of models, prepare it once again
|
|
4328
4328
|
* TODO: [🏢] !! Check validity of `modelName` in pipeline
|
|
4329
4329
|
* TODO: [🏢] !! Check validity of `systemMessage` in pipeline
|
|
4330
4330
|
* TODO: [🏢] !! Check validity of `temperature` in pipeline
|
|
@@ -4373,7 +4373,7 @@
|
|
|
4373
4373
|
case 0:
|
|
4374
4374
|
_a = options.maxParallelCount, maxParallelCount = _a === void 0 ? MAX_PARALLEL_COUNT : _a;
|
|
4375
4375
|
templates = pipeline.templates, parameters = pipeline.parameters, knowledgePiecesCount = pipeline.knowledgePiecesCount;
|
|
4376
|
-
// TODO: !!!!! Apply samples to each template (if missing and is for the template defined)
|
|
4376
|
+
// TODO:[main] !!!!! Apply samples to each template (if missing and is for the template defined)
|
|
4377
4377
|
TODO_USE(parameters);
|
|
4378
4378
|
templatesPrepared = new Array(
|
|
4379
4379
|
// <- TODO: [🧱] Implement in a functional (not new Class) way
|
|
@@ -4405,7 +4405,7 @@
|
|
|
4405
4405
|
/**
|
|
4406
4406
|
* TODO: [🧠] Add context to each template (if missing)
|
|
4407
4407
|
* TODO: [🧠] What is better name `prepareTemplate` or `prepareTemplateAndParameters`
|
|
4408
|
-
* TODO: [♨] !!! Prepare index the samples and maybe templates
|
|
4408
|
+
* TODO: [♨][main] !!! Prepare index the samples and maybe templates
|
|
4409
4409
|
* TODO: Write tests for `preparePipeline`
|
|
4410
4410
|
* TODO: [🏏] Leverage the batch API and build queues @see https://platform.openai.com/docs/guides/batch
|
|
4411
4411
|
* TODO: [🧊] In future one preparation can take data from previous preparation and save tokens and time
|
|
@@ -4577,7 +4577,7 @@
|
|
|
4577
4577
|
if (sourceContent === '') {
|
|
4578
4578
|
throw new ParseError("Source is not defined");
|
|
4579
4579
|
}
|
|
4580
|
-
// TODO: !!!! Following checks should be applied every link in the `sourceContent`
|
|
4580
|
+
// TODO:[main] !!!! Following checks should be applied every link in the `sourceContent`
|
|
4581
4581
|
if (sourceContent.startsWith('http://')) {
|
|
4582
4582
|
throw new ParseError("Source is not secure");
|
|
4583
4583
|
}
|
|
@@ -4780,7 +4780,7 @@
|
|
|
4780
4780
|
if (command.templateType === 'KNOWLEDGE') {
|
|
4781
4781
|
knowledgeCommandParser.$applyToPipelineJson({
|
|
4782
4782
|
type: 'KNOWLEDGE',
|
|
4783
|
-
sourceContent: $templateJson.content, // <- TODO: [🐝] !!! Work with KNOWLEDGE which not referring to the source file or website, but its content itself
|
|
4783
|
+
sourceContent: $templateJson.content, // <- TODO: [🐝][main] !!! Work with KNOWLEDGE which not referring to the source file or website, but its content itself
|
|
4784
4784
|
}, $pipelineJson);
|
|
4785
4785
|
$templateJson.isTemplate = false;
|
|
4786
4786
|
return;
|
|
@@ -7003,7 +7003,7 @@
|
|
|
7003
7003
|
return $asDeeplyFrozenSerializableJson('pipelineJson', $pipelineJson);
|
|
7004
7004
|
}
|
|
7005
7005
|
/**
|
|
7006
|
-
* TODO: !!!! Warn if used only sync version
|
|
7006
|
+
* TODO:[main] !!!! Warn if used only sync version
|
|
7007
7007
|
* TODO: [🚞] Report here line/column of error
|
|
7008
7008
|
* TODO: Use spaceTrim more effectively
|
|
7009
7009
|
* TODO: [🧠] Parameter flags - isInput, isOutput, isInternal
|
|
@@ -7508,7 +7508,7 @@
|
|
|
7508
7508
|
}
|
|
7509
7509
|
}
|
|
7510
7510
|
/**
|
|
7511
|
-
* TODO: [🧠] !!! In-memory cache of same values to prevent multiple checks
|
|
7511
|
+
* TODO: [🧠][main] !!! In-memory cache of same values to prevent multiple checks
|
|
7512
7512
|
* TODO: [🧠][💺] Can be done this on type-level?
|
|
7513
7513
|
*/
|
|
7514
7514
|
|
|
@@ -8349,7 +8349,7 @@
|
|
|
8349
8349
|
});
|
|
8350
8350
|
}
|
|
8351
8351
|
/**
|
|
8352
|
-
* TODO: [🥃] !!! Allow `ptbk make` without configuring any llm tools
|
|
8352
|
+
* TODO: [🥃][main] !!! Allow `ptbk make` without configuring any llm tools
|
|
8353
8353
|
* TODO: Maybe remove this command - "about" command should be enough?
|
|
8354
8354
|
* TODO: [0] DRY Javascript and typescript - Maybe make ONLY typescript and for javascript just remove types
|
|
8355
8355
|
* Note: [🟡] This code should never be published outside of `@promptbook/cli`
|
|
@@ -8828,7 +8828,7 @@
|
|
|
8828
8828
|
socket.on('connect', function () {
|
|
8829
8829
|
resolve(socket);
|
|
8830
8830
|
});
|
|
8831
|
-
// TODO: !!!! Better timeout handling
|
|
8831
|
+
// TODO:[main] !!!! Better timeout handling
|
|
8832
8832
|
setTimeout(function () {
|
|
8833
8833
|
reject(new Error("Timeout while connecting to ".concat(_this.options.remoteUrl)));
|
|
8834
8834
|
}, CONNECTION_TIMEOUT_MS);
|
|
@@ -9008,11 +9008,11 @@
|
|
|
9008
9008
|
output: computeUsage("$2.40 / 1M tokens"),
|
|
9009
9009
|
},
|
|
9010
9010
|
},
|
|
9011
|
-
// TODO: !!! Claude 1 and 2 has also completion versions - ask Hoagy
|
|
9011
|
+
// TODO:[main] !!! Claude 1 and 2 has also completion versions - ask Hoagy
|
|
9012
9012
|
]);
|
|
9013
9013
|
/**
|
|
9014
9014
|
* Note: [🤖] Add models of new variant
|
|
9015
|
-
* TODO: [🧠] !!! Add embedding models OR Anthropic has only chat+completion models?
|
|
9015
|
+
* TODO: [🧠][main] !!! Add embedding models OR Anthropic has only chat+completion models?
|
|
9016
9016
|
* TODO: [🧠] Some mechanism to propagate unsureness
|
|
9017
9017
|
* TODO: [🧠][👮♀️] Put here more info like description, isVision, trainingDateCutoff, languages, strengths ( Top-level performance, intelligence, fluency, and understanding), contextWindow,...
|
|
9018
9018
|
* TODO: [🎰] Some mechanism to auto-update available models
|
|
@@ -9368,8 +9368,8 @@
|
|
|
9368
9368
|
className: 'AnthropicClaudeExecutionTools',
|
|
9369
9369
|
});
|
|
9370
9370
|
/**
|
|
9371
|
-
* TODO: [🧠] !!!! Make anonymous this with all LLM providers
|
|
9372
|
-
* TODO: [🧠][🧱] !!!! Maybe change all `new AnthropicClaudeExecutionTools` -> `createAnthropicClaudeExecutionTools` in manual
|
|
9371
|
+
* TODO: [🧠][main] !!!! Make anonymous this with all LLM providers
|
|
9372
|
+
* TODO: [🧠][🧱][main] !!!! Maybe change all `new AnthropicClaudeExecutionTools` -> `createAnthropicClaudeExecutionTools` in manual
|
|
9373
9373
|
* TODO: [🧠] Maybe auto-detect usage in browser and determine default value of `isProxied`
|
|
9374
9374
|
* TODO: [🦺] Is there some way how to put `packageName` and `className` on top and function definition on bottom?
|
|
9375
9375
|
* TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
|
|
@@ -9747,7 +9747,7 @@
|
|
|
9747
9747
|
prompt: computeUsage("$5.00 / 1M tokens"),
|
|
9748
9748
|
output: computeUsage("$15.00 / 1M tokens"),
|
|
9749
9749
|
},
|
|
9750
|
-
//TODO: !!!!!! Add gpt-4o-mini-2024-07-18 and all others to be up to date
|
|
9750
|
+
//TODO:[main] !!!!!! Add gpt-4o-mini-2024-07-18 and all others to be up to date
|
|
9751
9751
|
},
|
|
9752
9752
|
/**/
|
|
9753
9753
|
/**/
|
|
@@ -9777,7 +9777,7 @@
|
|
|
9777
9777
|
modelVariant: 'CHAT',
|
|
9778
9778
|
modelTitle: 'o1-preview-2024-09-12',
|
|
9779
9779
|
modelName: 'o1-preview-2024-09-12',
|
|
9780
|
-
// <- TODO: !!!!!! Some better system to organize theese date suffixes and versions
|
|
9780
|
+
// <- TODO:[main] !!!!!! Some better system to organize theese date suffixes and versions
|
|
9781
9781
|
pricing: {
|
|
9782
9782
|
prompt: computeUsage("$15.00 / 1M tokens"),
|
|
9783
9783
|
output: computeUsage("$60.00 / 1M tokens"),
|
|
@@ -9895,7 +9895,7 @@
|
|
|
9895
9895
|
AzureOpenAiExecutionTools.prototype.listModels = function () {
|
|
9896
9896
|
return __awaiter(this, void 0, void 0, function () {
|
|
9897
9897
|
return __generator(this, function (_a) {
|
|
9898
|
-
// TODO: !!! Do here some filtering which models are really available as deployment
|
|
9898
|
+
// TODO:[main] !!! Do here some filtering which models are really available as deployment
|
|
9899
9899
|
// @see https://management.azure.com/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.CognitiveServices/accounts/accountName/deployments?api-version=2023-05-01
|
|
9900
9900
|
return [2 /*return*/, OPENAI_MODELS.map(function (_a) {
|
|
9901
9901
|
var modelTitle = _a.modelTitle, modelName = _a.modelName, modelVariant = _a.modelVariant;
|
|
@@ -10584,7 +10584,7 @@
|
|
|
10584
10584
|
* @public exported from `@promptbook/openai`
|
|
10585
10585
|
*/
|
|
10586
10586
|
var createOpenAiExecutionTools = Object.assign(function (options) {
|
|
10587
|
-
// TODO: [🧠] !!!! If browser, auto add `dangerouslyAllowBrowser`
|
|
10587
|
+
// TODO: [🧠][main] !!!! If browser, auto add `dangerouslyAllowBrowser`
|
|
10588
10588
|
if (($isRunningInBrowser() || $isRunningInWebWorker()) && !options.dangerouslyAllowBrowser) {
|
|
10589
10589
|
options = __assign(__assign({}, options), { dangerouslyAllowBrowser: true });
|
|
10590
10590
|
}
|