@promptbook/remote-server 0.114.0-2 → 0.114.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 (45) hide show
  1. package/esm/index.es.js +75 -13
  2. package/esm/index.es.js.map +1 -1
  3. package/esm/src/book-components/Chat/utils/$provideServerDomWindow.d.ts +11 -0
  4. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/createAgentsServerRuntimeEnvironment.d.ts +7 -0
  5. package/esm/src/cli/cli-commands/coder/ping.d.ts +2 -5
  6. package/esm/src/cli/cli-commands/coder.d.ts +1 -1
  7. package/esm/src/cli/cli-commands/common/coderGitSyncCliOptions.d.ts +34 -0
  8. package/esm/src/cli/cli-commands/common/coderGitSyncCliOptions.test.d.ts +1 -0
  9. package/esm/src/cli/common/loadPromptsModule.d.ts +16 -0
  10. package/esm/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionTools.d.ts +1 -1
  11. package/esm/src/llm-providers/azure-openai/AzureOpenAiExecutionTools.d.ts +1 -1
  12. package/esm/src/llm-providers/openai/OpenAiAgentKitExecutionTools.d.ts +1 -1
  13. package/esm/src/llm-providers/openai/OpenAiAgentKitExecutionToolsToolBuilder.d.ts +1 -1
  14. package/esm/src/llm-providers/openai/OpenAiAssistantExecutionToolsStreamRunner.d.ts +1 -1
  15. package/esm/src/llm-providers/openai/OpenAiAssistantExecutionToolsToolRunner.d.ts +1 -1
  16. package/esm/src/llm-providers/openai/OpenAiCompatibleNonChatPromptCaller.d.ts +1 -1
  17. package/esm/src/llm-providers/openai/OpenAiCompatibleRequestManager.d.ts +1 -1
  18. package/esm/src/llm-providers/openai/utils/callOpenAiCompatibleChatModel.d.ts +1 -1
  19. package/esm/src/llm-providers/openai/utils/loadOpenAiAgentsModule.d.ts +203 -0
  20. package/esm/src/llm-providers/openai/utils/uploadFilesToOpenAi.d.ts +1 -1
  21. package/esm/src/utils/misc/createLazyModuleLoader.d.ts +14 -0
  22. package/esm/src/version.d.ts +1 -1
  23. package/package.json +2 -2
  24. package/umd/index.umd.js +89 -24
  25. package/umd/index.umd.js.map +1 -1
  26. package/umd/src/book-components/Chat/utils/$provideServerDomWindow.d.ts +11 -0
  27. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/createAgentsServerRuntimeEnvironment.d.ts +7 -0
  28. package/umd/src/cli/cli-commands/coder/ping.d.ts +2 -5
  29. package/umd/src/cli/cli-commands/coder.d.ts +1 -1
  30. package/umd/src/cli/cli-commands/common/coderGitSyncCliOptions.d.ts +34 -0
  31. package/umd/src/cli/cli-commands/common/coderGitSyncCliOptions.test.d.ts +1 -0
  32. package/umd/src/cli/common/loadPromptsModule.d.ts +16 -0
  33. package/umd/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionTools.d.ts +1 -1
  34. package/umd/src/llm-providers/azure-openai/AzureOpenAiExecutionTools.d.ts +1 -1
  35. package/umd/src/llm-providers/openai/OpenAiAgentKitExecutionTools.d.ts +1 -1
  36. package/umd/src/llm-providers/openai/OpenAiAgentKitExecutionToolsToolBuilder.d.ts +1 -1
  37. package/umd/src/llm-providers/openai/OpenAiAssistantExecutionToolsStreamRunner.d.ts +1 -1
  38. package/umd/src/llm-providers/openai/OpenAiAssistantExecutionToolsToolRunner.d.ts +1 -1
  39. package/umd/src/llm-providers/openai/OpenAiCompatibleNonChatPromptCaller.d.ts +1 -1
  40. package/umd/src/llm-providers/openai/OpenAiCompatibleRequestManager.d.ts +1 -1
  41. package/umd/src/llm-providers/openai/utils/callOpenAiCompatibleChatModel.d.ts +1 -1
  42. package/umd/src/llm-providers/openai/utils/loadOpenAiAgentsModule.d.ts +203 -0
  43. package/umd/src/llm-providers/openai/utils/uploadFilesToOpenAi.d.ts +1 -1
  44. package/umd/src/utils/misc/createLazyModuleLoader.d.ts +14 -0
  45. package/umd/src/version.d.ts +1 -1
package/esm/index.es.js CHANGED
@@ -7,8 +7,6 @@ import http from 'http';
7
7
  import express from 'express';
8
8
  import { Server } from 'socket.io';
9
9
  import { stat, access, constants, readFile, writeFile, readdir, mkdir, watch, rm } from 'fs/promises';
10
- import { Readability } from '@mozilla/readability';
11
- import { JSDOM } from 'jsdom';
12
10
  import CryptoJS from 'crypto-js';
13
11
  import hexEncoder from 'crypto-js/enc-hex';
14
12
  import showdown from 'showdown';
@@ -22,9 +20,7 @@ import moment from 'moment';
22
20
  import { lookup, extension } from 'mime-types';
23
21
  import sha256 from 'crypto-js/sha256';
24
22
  import papaparse from 'papaparse';
25
- import { fileSearchTool, tool, Agent as Agent$1, webSearchTool, run, setDefaultOpenAIClient, setDefaultOpenAIKey } from '@openai/agents';
26
23
  import Bottleneck from 'bottleneck';
27
- import OpenAI from 'openai';
28
24
 
29
25
  // ⚠️ WARNING: This code has been generated so that any manual changes will be overwritten
30
26
  /**
@@ -40,7 +36,7 @@ const BOOK_LANGUAGE_VERSION = '2.0.0';
40
36
  * @generated
41
37
  * @see https://github.com/webgptorg/promptbook
42
38
  */
43
- const PROMPTBOOK_ENGINE_VERSION = '0.114.0-2';
39
+ const PROMPTBOOK_ENGINE_VERSION = '0.114.0-3';
44
40
  /**
45
41
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
46
42
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -9392,6 +9388,31 @@ async function $provideScrapersForNode(tools, options) {
9392
9388
  // Note: [🟢] Code for Node scraper registration helper [$provideScrapersForNode](src/scrapers/_common/register/$provideScrapersForNode.ts) should never be published into packages that could be imported into browser environment
9393
9389
  // TODO: [🏓] Unite `xxxForServer` and `xxxForNode` naming
9394
9390
 
9391
+ /**
9392
+ * Creates a loader which imports one module on the first call and reuses the very same module afterwards
9393
+ *
9394
+ * Note: [🐌] Heavy third-party dependencies are imported lazily to keep the startup of the Promptbook CLI fast.
9395
+ * A statically imported dependency is loaded every single time the bundle is loaded, even when the running
9396
+ * command never touches it. A lazily imported dependency is loaded only when the feature is really used.
9397
+ *
9398
+ * @example
9399
+ * const loadJsdomModule = createLazyModuleLoader(() => import('jsdom'));
9400
+ * const { JSDOM } = await loadJsdomModule();
9401
+ *
9402
+ * @private internal utility of Promptbook
9403
+ */
9404
+ function createLazyModuleLoader(importModule) {
9405
+ let importedModulePromise = null;
9406
+ return function loadModule() {
9407
+ if (importedModulePromise === null) {
9408
+ importedModulePromise = importModule();
9409
+ }
9410
+ return importedModulePromise;
9411
+ };
9412
+ }
9413
+ // Note: [🐌] Do not convert the lazy `import(...)` calls back to static `import` statements, it would bring back the
9414
+ // slow startup of the `ptbk` CLI utility
9415
+
9395
9416
  /**
9396
9417
  * Metadata of the scraper
9397
9418
  *
@@ -9676,7 +9697,23 @@ function createShowdownConverter() {
9676
9697
  });
9677
9698
  }
9678
9699
 
9679
- // TODO: [🏳‍🌈] Finally take pick of .json vs .ts
9700
+ /**
9701
+ * Loads `jsdom` on demand
9702
+ *
9703
+ * Note: [🐌] `jsdom` is by far the heaviest dependency of Promptbook, loading it eagerly would slow down every single
9704
+ * run of the `ptbk` CLI utility even when no website is scraped
9705
+ *
9706
+ * @private internal utility of `WebsiteScraper`
9707
+ */
9708
+ const loadJsdomModule = createLazyModuleLoader(() => import('jsdom'));
9709
+ /**
9710
+ * Loads `@mozilla/readability` on demand
9711
+ *
9712
+ * Note: [🐌] Loaded lazily to keep the startup of the `ptbk` CLI utility fast
9713
+ *
9714
+ * @private internal utility of `WebsiteScraper`
9715
+ */
9716
+ const loadReadabilityModule = createLazyModuleLoader(() => import('@mozilla/readability'));
9680
9717
  /**
9681
9718
  * Scraper for websites
9682
9719
  *
@@ -9712,6 +9749,7 @@ class WebsiteScraper {
9712
9749
  if (this.tools.fs === undefined) {
9713
9750
  throw new EnvironmentMismatchError('Can not scrape websites without filesystem tools');
9714
9751
  }
9752
+ const [{ JSDOM }, { Readability }] = await Promise.all([loadJsdomModule(), loadReadabilityModule()]);
9715
9753
  const jsdom = new JSDOM(await source.asText(), {
9716
9754
  url: source.url,
9717
9755
  });
@@ -35834,6 +35872,16 @@ function buildToolInvocationScript(options) {
35834
35872
  `;
35835
35873
  }
35836
35874
 
35875
+ /**
35876
+ * Loads the OpenAI AgentKit SDK (`@openai/agents`) on demand
35877
+ *
35878
+ * Note: [🐌] The AgentKit SDK is one of the heaviest dependencies of Promptbook, loading it eagerly would slow down
35879
+ * every single run of the `ptbk` CLI utility even when no AgentKit agent is used
35880
+ *
35881
+ * @private internal utility of `@promptbook/openai`
35882
+ */
35883
+ const loadOpenAiAgentsModule = createLazyModuleLoader(() => import('@openai/agents'));
35884
+
35837
35885
  /**
35838
35886
  * Constant for default model used for nested DeepSearch tool invocations.
35839
35887
  */
@@ -35887,8 +35935,9 @@ class OpenAiAgentKitExecutionToolsToolBuilder {
35887
35935
  /**
35888
35936
  * Builds the tool list for AgentKit, including hosted file search when applicable.
35889
35937
  */
35890
- buildAgentKitTools(options) {
35938
+ async buildAgentKitTools(options) {
35891
35939
  const { tools, vectorStoreId } = options;
35940
+ const { fileSearchTool, tool: agentKitTool } = await loadOpenAiAgentsModule();
35892
35941
  const agentKitTools = [];
35893
35942
  if (vectorStoreId) {
35894
35943
  agentKitTools.push(fileSearchTool(vectorStoreId));
@@ -35899,11 +35948,11 @@ class OpenAiAgentKitExecutionToolsToolBuilder {
35899
35948
  let scriptTools = null;
35900
35949
  for (const toolDefinition of tools) {
35901
35950
  if (this.isDeepSearchToolDefinition(toolDefinition)) {
35902
- agentKitTools.push(this.createDeepSearchAgentKitTool(toolDefinition));
35951
+ agentKitTools.push(await this.createDeepSearchAgentKitTool(toolDefinition));
35903
35952
  continue;
35904
35953
  }
35905
35954
  scriptTools !== null && scriptTools !== void 0 ? scriptTools : (scriptTools = this.resolveScriptTools());
35906
- agentKitTools.push(tool({
35955
+ agentKitTools.push(agentKitTool({
35907
35956
  name: toolDefinition.name,
35908
35957
  description: toolDefinition.description,
35909
35958
  parameters: this.normalizeAgentKitToolParameters(toolDefinition.parameters),
@@ -36110,8 +36159,9 @@ class OpenAiAgentKitExecutionToolsToolBuilder {
36110
36159
  /**
36111
36160
  * Creates the native Agent SDK tool used for `USE DEEPSEARCH`.
36112
36161
  */
36113
- createDeepSearchAgentKitTool(toolDefinition) {
36114
- const deepSearchAgent = new Agent$1({
36162
+ async createDeepSearchAgentKitTool(toolDefinition) {
36163
+ const { Agent: AgentFromKit, webSearchTool } = await loadOpenAiAgentsModule();
36164
+ const deepSearchAgent = new AgentFromKit({
36115
36165
  name: 'DeepSearch',
36116
36166
  model: DEFAULT_DEEP_SEARCH_MODEL_NAME,
36117
36167
  instructions: this.createDeepSearchAgentInstructions(toolDefinition.description),
@@ -37437,6 +37487,14 @@ class OpenAiCompatibleNonChatPromptCaller {
37437
37487
  }
37438
37488
  }
37439
37489
 
37490
+ /**
37491
+ * Loads the OpenAI SDK (`openai`) on demand
37492
+ *
37493
+ * Note: [🐌] Loaded lazily to keep the startup of the `ptbk` CLI utility fast
37494
+ *
37495
+ * @private internal utility of `OpenAiCompatibleRequestManager`
37496
+ */
37497
+ const loadOpenAiModule = createLazyModuleLoader(() => import('openai'));
37440
37498
  /**
37441
37499
  * Manages OpenAI-compatible client creation plus shared retry and rate-limit behavior.
37442
37500
  *
@@ -37463,6 +37521,7 @@ class OpenAiCompatibleRequestManager {
37463
37521
  timeout: API_REQUEST_TIMEOUT,
37464
37522
  maxRetries: CONNECTION_RETRIES_LIMIT,
37465
37523
  };
37524
+ const { default: OpenAI } = await loadOpenAiModule();
37466
37525
  this.client = new OpenAI(enhancedOptions);
37467
37526
  }
37468
37527
  return this.client;
@@ -39610,8 +39669,9 @@ class OpenAiAgentKitExecutionTools extends OpenAiVectorStoreHandler {
39610
39669
  vectorStoreId,
39611
39670
  });
39612
39671
  }
39613
- const agentKitTools = this.buildAgentKitTools({ tools, vectorStoreId });
39614
- const openAiAgentKitAgent = new Agent$1({
39672
+ const { Agent: AgentFromKit } = await loadOpenAiAgentsModule();
39673
+ const agentKitTools = await this.buildAgentKitTools({ tools, vectorStoreId });
39674
+ const openAiAgentKitAgent = new AgentFromKit({
39615
39675
  name,
39616
39676
  model: this.agentKitModelName,
39617
39677
  instructions: instructions || 'You are a helpful assistant.',
@@ -39656,6 +39716,7 @@ class OpenAiAgentKitExecutionTools extends OpenAiVectorStoreHandler {
39656
39716
  agentName: agentForRun.name,
39657
39717
  input: inputItems,
39658
39718
  };
39719
+ const { run } = await loadOpenAiAgentsModule();
39659
39720
  const streamResult = await run(agentForRun, inputItems, {
39660
39721
  stream: true,
39661
39722
  maxTurns: 200,
@@ -39798,6 +39859,7 @@ class OpenAiAgentKitExecutionTools extends OpenAiVectorStoreHandler {
39798
39859
  * Ensures the AgentKit SDK is wired to the OpenAI client and API key.
39799
39860
  */
39800
39861
  async ensureAgentKitDefaults() {
39862
+ const { setDefaultOpenAIClient, setDefaultOpenAIKey } = await loadOpenAiAgentsModule();
39801
39863
  const client = await this.getClient();
39802
39864
  setDefaultOpenAIClient(client);
39803
39865
  const apiKey = this.agentKitOptions.apiKey;