@promptbook/markdown-utils 0.105.0-1 → 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 (38) hide show
  1. package/esm/index.es.js +80 -63
  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/version.d.ts +1 -1
  36. package/package.json +1 -1
  37. package/umd/index.umd.js +80 -63
  38. package/umd/index.umd.js.map +1 -1
package/esm/index.es.js CHANGED
@@ -23,7 +23,7 @@ const BOOK_LANGUAGE_VERSION = '2.0.0';
23
23
  * @generated
24
24
  * @see https://github.com/webgptorg/promptbook
25
25
  */
26
- const PROMPTBOOK_ENGINE_VERSION = '0.105.0-1';
26
+ const PROMPTBOOK_ENGINE_VERSION = '0.105.0-3';
27
27
  /**
28
28
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
29
29
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -1117,6 +1117,7 @@ const PROMPTBOOK_COLOR = Color.fromString('promptbook');
1117
1117
  SEPARATOR: Color.fromHex('#cccccc'),
1118
1118
  COMMITMENT: Color.fromHex('#DA0F78'),
1119
1119
  PARAMETER: Color.fromHex('#8e44ad'),
1120
+ CODE_BLOCK: Color.fromHex('#7700ffff'),
1120
1121
  });
1121
1122
  // <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
1122
1123
  /**
@@ -3493,74 +3494,90 @@ function addUsage(...usageItems) {
3493
3494
  * in real-time through an observable.
3494
3495
  *
3495
3496
  * @param llmTools - The LLM tools to be intercepted and tracked
3496
- * @returns An augmented version of the tools that includes usage tracking capabilities
3497
+ * @returns Full proxy of the tools with added usage tracking capabilities
3497
3498
  * @public exported from `@promptbook/core`
3498
3499
  */
3499
3500
  function countUsage(llmTools) {
3500
3501
  let totalUsage = ZERO_USAGE;
3501
3502
  const spending = new Subject();
3502
- const proxyTools = {
3503
- get title() {
3504
- return `${llmTools.title} (+usage)`;
3505
- // <- TODO: [🧈] Maybe standartize the suffix when wrapping `LlmExecutionTools` up
3506
- // <- TODO: [🧈][🧠] Does it make sense to suffix "(+usage)"?
3507
- },
3508
- get description() {
3509
- return `${llmTools.description} (+usage)`;
3510
- // <- TODO: [🧈] Maybe standartize the suffix when wrapping `LlmExecutionTools` up
3511
- // <- TODO: [🧈][🧠] Does it make sense to suffix "(+usage)"?
3512
- },
3513
- checkConfiguration() {
3514
- return /* not await */ llmTools.checkConfiguration();
3515
- },
3516
- listModels() {
3517
- return /* not await */ llmTools.listModels();
3518
- },
3519
- spending() {
3520
- return spending.asObservable();
3521
- },
3522
- getTotalUsage() {
3523
- // <- Note: [🥫] Not using getter `get totalUsage` but `getTotalUsage` to allow this object to be proxied
3524
- return totalUsage;
3503
+ // Create a Proxy to intercept all property access and ensure full proxying of all properties
3504
+ const proxyTools = new Proxy(llmTools, {
3505
+ get(target, prop, receiver) {
3506
+ // Handle title property
3507
+ if (prop === 'title') {
3508
+ return `${target.title} (+usage)`;
3509
+ // <- TODO: [🧈] Maybe standartize the suffix when wrapping `LlmExecutionTools` up
3510
+ // <- TODO: [🧈][🧠] Does it make sense to suffix "(+usage)"?
3511
+ }
3512
+ // Handle description property
3513
+ if (prop === 'description') {
3514
+ return `${target.description} (+usage)`;
3515
+ // <- TODO: [🧈] Maybe standartize the suffix when wrapping `LlmExecutionTools` up
3516
+ // <- TODO: [🧈][🧠] Does it make sense to suffix "(+usage)"?
3517
+ }
3518
+ // Handle spending method (new method added by this wrapper)
3519
+ if (prop === 'spending') {
3520
+ return () => {
3521
+ return spending.asObservable();
3522
+ };
3523
+ }
3524
+ // Handle getTotalUsage method (new method added by this wrapper)
3525
+ if (prop === 'getTotalUsage') {
3526
+ // <- Note: [🥫] Not using getter `get totalUsage` but `getTotalUsage` to allow this object to be proxied
3527
+ return () => {
3528
+ return totalUsage;
3529
+ };
3530
+ }
3531
+ // Handle callChatModel method with usage counting
3532
+ if (prop === 'callChatModel' && target.callChatModel !== undefined) {
3533
+ return async (prompt) => {
3534
+ // console.info('[🚕] callChatModel through countTotalUsage');
3535
+ const promptResult = await target.callChatModel(prompt);
3536
+ totalUsage = addUsage(totalUsage, promptResult.usage);
3537
+ spending.next(promptResult.usage);
3538
+ return promptResult;
3539
+ };
3540
+ }
3541
+ // Handle callCompletionModel method with usage counting
3542
+ if (prop === 'callCompletionModel' && target.callCompletionModel !== undefined) {
3543
+ return async (prompt) => {
3544
+ // console.info('[🚕] callCompletionModel through countTotalUsage');
3545
+ const promptResult = await target.callCompletionModel(prompt);
3546
+ totalUsage = addUsage(totalUsage, promptResult.usage);
3547
+ spending.next(promptResult.usage);
3548
+ return promptResult;
3549
+ };
3550
+ }
3551
+ // Handle callEmbeddingModel method with usage counting
3552
+ if (prop === 'callEmbeddingModel' && target.callEmbeddingModel !== undefined) {
3553
+ return async (prompt) => {
3554
+ // console.info('[🚕] callEmbeddingModel through countTotalUsage');
3555
+ const promptResult = await target.callEmbeddingModel(prompt);
3556
+ totalUsage = addUsage(totalUsage, promptResult.usage);
3557
+ spending.next(promptResult.usage);
3558
+ return promptResult;
3559
+ };
3560
+ }
3561
+ // Handle callImageGenerationModel method with usage counting
3562
+ if (prop === 'callImageGenerationModel' && target.callImageGenerationModel !== undefined) {
3563
+ return async (prompt) => {
3564
+ // console.info('[🚕] callImageGenerationModel through countTotalUsage');
3565
+ const promptResult = await target.callImageGenerationModel(prompt);
3566
+ totalUsage = addUsage(totalUsage, promptResult.usage);
3567
+ spending.next(promptResult.usage);
3568
+ return promptResult;
3569
+ };
3570
+ }
3571
+ // <- Note: [🤖]
3572
+ // For all other properties and methods, delegate to the original target
3573
+ const value = Reflect.get(target, prop, receiver);
3574
+ // If it's a function, bind it to the target to preserve context
3575
+ if (typeof value === 'function') {
3576
+ return value.bind(target);
3577
+ }
3578
+ return value;
3525
3579
  },
3526
- };
3527
- if (llmTools.callChatModel !== undefined) {
3528
- proxyTools.callChatModel = async (prompt) => {
3529
- // console.info('[🚕] callChatModel through countTotalUsage');
3530
- const promptResult = await llmTools.callChatModel(prompt);
3531
- totalUsage = addUsage(totalUsage, promptResult.usage);
3532
- spending.next(promptResult.usage);
3533
- return promptResult;
3534
- };
3535
- }
3536
- if (llmTools.callCompletionModel !== undefined) {
3537
- proxyTools.callCompletionModel = async (prompt) => {
3538
- // console.info('[🚕] callCompletionModel through countTotalUsage');
3539
- const promptResult = await llmTools.callCompletionModel(prompt);
3540
- totalUsage = addUsage(totalUsage, promptResult.usage);
3541
- spending.next(promptResult.usage);
3542
- return promptResult;
3543
- };
3544
- }
3545
- if (llmTools.callEmbeddingModel !== undefined) {
3546
- proxyTools.callEmbeddingModel = async (prompt) => {
3547
- // console.info('[🚕] callEmbeddingModel through countTotalUsage');
3548
- const promptResult = await llmTools.callEmbeddingModel(prompt);
3549
- totalUsage = addUsage(totalUsage, promptResult.usage);
3550
- spending.next(promptResult.usage);
3551
- return promptResult;
3552
- };
3553
- }
3554
- if (llmTools.callImageGenerationModel !== undefined) {
3555
- proxyTools.callImageGenerationModel = async (prompt) => {
3556
- // console.info('[🚕] callImageGenerationModel through countTotalUsage');
3557
- const promptResult = await llmTools.callImageGenerationModel(prompt);
3558
- totalUsage = addUsage(totalUsage, promptResult.usage);
3559
- spending.next(promptResult.usage);
3560
- return promptResult;
3561
- };
3562
- }
3563
- // <- Note: [🤖]
3580
+ });
3564
3581
  return proxyTools;
3565
3582
  }
3566
3583
  /**