@promptbook/website-crawler 0.105.0-1 → 0.105.0-4

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 (39) hide show
  1. package/README.md +36 -77
  2. package/esm/index.es.js +80 -63
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/typings/src/_packages/core.index.d.ts +2 -0
  5. package/esm/typings/src/_packages/types.index.d.ts +4 -0
  6. package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +10 -3
  7. package/esm/typings/src/book-2.0/agent-source/AgentModelRequirements.d.ts +11 -1
  8. package/esm/typings/src/book-2.0/agent-source/communication-samples.test.d.ts +1 -0
  9. package/esm/typings/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.blocks.test.d.ts +1 -0
  10. package/esm/typings/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.import.test.d.ts +1 -0
  11. package/esm/typings/src/book-2.0/agent-source/parseAgentSource.import.test.d.ts +1 -0
  12. package/esm/typings/src/book-2.0/agent-source/parseAgentSourceWithCommitments.blocks.test.d.ts +1 -0
  13. package/esm/typings/src/commitments/USE_TIME/USE_TIME.d.ts +40 -0
  14. package/esm/typings/src/commitments/USE_TIME/USE_TIME.test.d.ts +1 -0
  15. package/esm/typings/src/commitments/_base/BaseCommitmentDefinition.d.ts +8 -0
  16. package/esm/typings/src/commitments/_base/CommitmentDefinition.d.ts +8 -0
  17. package/esm/typings/src/commitments/index.d.ts +11 -2
  18. package/esm/typings/src/config.d.ts +1 -0
  19. package/esm/typings/src/import-plugins/$fileImportPlugins.d.ts +7 -0
  20. package/esm/typings/src/import-plugins/AgentFileImportPlugin.d.ts +7 -0
  21. package/esm/typings/src/import-plugins/FileImportPlugin.d.ts +24 -0
  22. package/esm/typings/src/import-plugins/JsonFileImportPlugin.d.ts +7 -0
  23. package/esm/typings/src/import-plugins/TextFileImportPlugin.d.ts +7 -0
  24. package/esm/typings/src/llm-providers/_common/utils/cache/cacheLlmTools.d.ts +2 -1
  25. package/esm/typings/src/llm-providers/_common/utils/count-total-usage/countUsage.d.ts +2 -2
  26. package/esm/typings/src/llm-providers/agent/Agent.d.ts +9 -2
  27. package/esm/typings/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +3 -1
  28. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +10 -0
  29. package/esm/typings/src/llm-providers/remote/RemoteLlmExecutionTools.d.ts +1 -1
  30. package/esm/typings/src/scripting/javascript/JavascriptExecutionToolsOptions.d.ts +6 -1
  31. package/esm/typings/src/types/ModelRequirements.d.ts +6 -12
  32. package/esm/typings/src/utils/execCommand/$execCommandNormalizeOptions.d.ts +2 -3
  33. package/esm/typings/src/utils/execCommand/ExecCommandOptions.d.ts +7 -1
  34. package/esm/typings/src/utils/organization/keepImported.d.ts +9 -0
  35. package/esm/typings/src/utils/organization/keepTypeImported.d.ts +0 -1
  36. package/esm/typings/src/version.d.ts +1 -1
  37. package/package.json +2 -2
  38. package/umd/index.umd.js +80 -63
  39. package/umd/index.umd.js.map +1 -1
package/umd/index.umd.js CHANGED
@@ -24,7 +24,7 @@
24
24
  * @generated
25
25
  * @see https://github.com/webgptorg/promptbook
26
26
  */
27
- const PROMPTBOOK_ENGINE_VERSION = '0.105.0-1';
27
+ const PROMPTBOOK_ENGINE_VERSION = '0.105.0-4';
28
28
  /**
29
29
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
30
30
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -1013,6 +1013,7 @@
1013
1013
  SEPARATOR: Color.fromHex('#cccccc'),
1014
1014
  COMMITMENT: Color.fromHex('#DA0F78'),
1015
1015
  PARAMETER: Color.fromHex('#8e44ad'),
1016
+ CODE_BLOCK: Color.fromHex('#7700ffff'),
1016
1017
  });
1017
1018
  // <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
1018
1019
  /**
@@ -3949,74 +3950,90 @@
3949
3950
  * in real-time through an observable.
3950
3951
  *
3951
3952
  * @param llmTools - The LLM tools to be intercepted and tracked
3952
- * @returns An augmented version of the tools that includes usage tracking capabilities
3953
+ * @returns Full proxy of the tools with added usage tracking capabilities
3953
3954
  * @public exported from `@promptbook/core`
3954
3955
  */
3955
3956
  function countUsage(llmTools) {
3956
3957
  let totalUsage = ZERO_USAGE;
3957
3958
  const spending = new rxjs.Subject();
3958
- const proxyTools = {
3959
- get title() {
3960
- return `${llmTools.title} (+usage)`;
3961
- // <- TODO: [🧈] Maybe standartize the suffix when wrapping `LlmExecutionTools` up
3962
- // <- TODO: [🧈][🧠] Does it make sense to suffix "(+usage)"?
3963
- },
3964
- get description() {
3965
- return `${llmTools.description} (+usage)`;
3966
- // <- TODO: [🧈] Maybe standartize the suffix when wrapping `LlmExecutionTools` up
3967
- // <- TODO: [🧈][🧠] Does it make sense to suffix "(+usage)"?
3968
- },
3969
- checkConfiguration() {
3970
- return /* not await */ llmTools.checkConfiguration();
3971
- },
3972
- listModels() {
3973
- return /* not await */ llmTools.listModels();
3974
- },
3975
- spending() {
3976
- return spending.asObservable();
3977
- },
3978
- getTotalUsage() {
3979
- // <- Note: [🥫] Not using getter `get totalUsage` but `getTotalUsage` to allow this object to be proxied
3980
- return totalUsage;
3959
+ // Create a Proxy to intercept all property access and ensure full proxying of all properties
3960
+ const proxyTools = new Proxy(llmTools, {
3961
+ get(target, prop, receiver) {
3962
+ // Handle title property
3963
+ if (prop === 'title') {
3964
+ return `${target.title} (+usage)`;
3965
+ // <- TODO: [🧈] Maybe standartize the suffix when wrapping `LlmExecutionTools` up
3966
+ // <- TODO: [🧈][🧠] Does it make sense to suffix "(+usage)"?
3967
+ }
3968
+ // Handle description property
3969
+ if (prop === 'description') {
3970
+ return `${target.description} (+usage)`;
3971
+ // <- TODO: [🧈] Maybe standartize the suffix when wrapping `LlmExecutionTools` up
3972
+ // <- TODO: [🧈][🧠] Does it make sense to suffix "(+usage)"?
3973
+ }
3974
+ // Handle spending method (new method added by this wrapper)
3975
+ if (prop === 'spending') {
3976
+ return () => {
3977
+ return spending.asObservable();
3978
+ };
3979
+ }
3980
+ // Handle getTotalUsage method (new method added by this wrapper)
3981
+ if (prop === 'getTotalUsage') {
3982
+ // <- Note: [🥫] Not using getter `get totalUsage` but `getTotalUsage` to allow this object to be proxied
3983
+ return () => {
3984
+ return totalUsage;
3985
+ };
3986
+ }
3987
+ // Handle callChatModel method with usage counting
3988
+ if (prop === 'callChatModel' && target.callChatModel !== undefined) {
3989
+ return async (prompt) => {
3990
+ // console.info('[🚕] callChatModel through countTotalUsage');
3991
+ const promptResult = await target.callChatModel(prompt);
3992
+ totalUsage = addUsage(totalUsage, promptResult.usage);
3993
+ spending.next(promptResult.usage);
3994
+ return promptResult;
3995
+ };
3996
+ }
3997
+ // Handle callCompletionModel method with usage counting
3998
+ if (prop === 'callCompletionModel' && target.callCompletionModel !== undefined) {
3999
+ return async (prompt) => {
4000
+ // console.info('[🚕] callCompletionModel through countTotalUsage');
4001
+ const promptResult = await target.callCompletionModel(prompt);
4002
+ totalUsage = addUsage(totalUsage, promptResult.usage);
4003
+ spending.next(promptResult.usage);
4004
+ return promptResult;
4005
+ };
4006
+ }
4007
+ // Handle callEmbeddingModel method with usage counting
4008
+ if (prop === 'callEmbeddingModel' && target.callEmbeddingModel !== undefined) {
4009
+ return async (prompt) => {
4010
+ // console.info('[🚕] callEmbeddingModel through countTotalUsage');
4011
+ const promptResult = await target.callEmbeddingModel(prompt);
4012
+ totalUsage = addUsage(totalUsage, promptResult.usage);
4013
+ spending.next(promptResult.usage);
4014
+ return promptResult;
4015
+ };
4016
+ }
4017
+ // Handle callImageGenerationModel method with usage counting
4018
+ if (prop === 'callImageGenerationModel' && target.callImageGenerationModel !== undefined) {
4019
+ return async (prompt) => {
4020
+ // console.info('[🚕] callImageGenerationModel through countTotalUsage');
4021
+ const promptResult = await target.callImageGenerationModel(prompt);
4022
+ totalUsage = addUsage(totalUsage, promptResult.usage);
4023
+ spending.next(promptResult.usage);
4024
+ return promptResult;
4025
+ };
4026
+ }
4027
+ // <- Note: [🤖]
4028
+ // For all other properties and methods, delegate to the original target
4029
+ const value = Reflect.get(target, prop, receiver);
4030
+ // If it's a function, bind it to the target to preserve context
4031
+ if (typeof value === 'function') {
4032
+ return value.bind(target);
4033
+ }
4034
+ return value;
3981
4035
  },
3982
- };
3983
- if (llmTools.callChatModel !== undefined) {
3984
- proxyTools.callChatModel = async (prompt) => {
3985
- // console.info('[🚕] callChatModel through countTotalUsage');
3986
- const promptResult = await llmTools.callChatModel(prompt);
3987
- totalUsage = addUsage(totalUsage, promptResult.usage);
3988
- spending.next(promptResult.usage);
3989
- return promptResult;
3990
- };
3991
- }
3992
- if (llmTools.callCompletionModel !== undefined) {
3993
- proxyTools.callCompletionModel = async (prompt) => {
3994
- // console.info('[🚕] callCompletionModel through countTotalUsage');
3995
- const promptResult = await llmTools.callCompletionModel(prompt);
3996
- totalUsage = addUsage(totalUsage, promptResult.usage);
3997
- spending.next(promptResult.usage);
3998
- return promptResult;
3999
- };
4000
- }
4001
- if (llmTools.callEmbeddingModel !== undefined) {
4002
- proxyTools.callEmbeddingModel = async (prompt) => {
4003
- // console.info('[🚕] callEmbeddingModel through countTotalUsage');
4004
- const promptResult = await llmTools.callEmbeddingModel(prompt);
4005
- totalUsage = addUsage(totalUsage, promptResult.usage);
4006
- spending.next(promptResult.usage);
4007
- return promptResult;
4008
- };
4009
- }
4010
- if (llmTools.callImageGenerationModel !== undefined) {
4011
- proxyTools.callImageGenerationModel = async (prompt) => {
4012
- // console.info('[🚕] callImageGenerationModel through countTotalUsage');
4013
- const promptResult = await llmTools.callImageGenerationModel(prompt);
4014
- totalUsage = addUsage(totalUsage, promptResult.usage);
4015
- spending.next(promptResult.usage);
4016
- return promptResult;
4017
- };
4018
- }
4019
- // <- Note: [🤖]
4036
+ });
4020
4037
  return proxyTools;
4021
4038
  }
4022
4039
  /**