@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.
- package/esm/index.es.js +75 -13
- package/esm/index.es.js.map +1 -1
- package/esm/src/book-components/Chat/utils/$provideServerDomWindow.d.ts +11 -0
- package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/createAgentsServerRuntimeEnvironment.d.ts +7 -0
- package/esm/src/cli/cli-commands/coder/ping.d.ts +2 -5
- package/esm/src/cli/cli-commands/coder.d.ts +1 -1
- package/esm/src/cli/cli-commands/common/coderGitSyncCliOptions.d.ts +34 -0
- package/esm/src/cli/cli-commands/common/coderGitSyncCliOptions.test.d.ts +1 -0
- package/esm/src/cli/common/loadPromptsModule.d.ts +16 -0
- package/esm/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionTools.d.ts +1 -1
- package/esm/src/llm-providers/azure-openai/AzureOpenAiExecutionTools.d.ts +1 -1
- package/esm/src/llm-providers/openai/OpenAiAgentKitExecutionTools.d.ts +1 -1
- package/esm/src/llm-providers/openai/OpenAiAgentKitExecutionToolsToolBuilder.d.ts +1 -1
- package/esm/src/llm-providers/openai/OpenAiAssistantExecutionToolsStreamRunner.d.ts +1 -1
- package/esm/src/llm-providers/openai/OpenAiAssistantExecutionToolsToolRunner.d.ts +1 -1
- package/esm/src/llm-providers/openai/OpenAiCompatibleNonChatPromptCaller.d.ts +1 -1
- package/esm/src/llm-providers/openai/OpenAiCompatibleRequestManager.d.ts +1 -1
- package/esm/src/llm-providers/openai/utils/callOpenAiCompatibleChatModel.d.ts +1 -1
- package/esm/src/llm-providers/openai/utils/loadOpenAiAgentsModule.d.ts +203 -0
- package/esm/src/llm-providers/openai/utils/uploadFilesToOpenAi.d.ts +1 -1
- package/esm/src/utils/misc/createLazyModuleLoader.d.ts +14 -0
- package/esm/src/version.d.ts +1 -1
- package/package.json +2 -2
- package/umd/index.umd.js +89 -24
- package/umd/index.umd.js.map +1 -1
- package/umd/src/book-components/Chat/utils/$provideServerDomWindow.d.ts +11 -0
- package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/createAgentsServerRuntimeEnvironment.d.ts +7 -0
- package/umd/src/cli/cli-commands/coder/ping.d.ts +2 -5
- package/umd/src/cli/cli-commands/coder.d.ts +1 -1
- package/umd/src/cli/cli-commands/common/coderGitSyncCliOptions.d.ts +34 -0
- package/umd/src/cli/cli-commands/common/coderGitSyncCliOptions.test.d.ts +1 -0
- package/umd/src/cli/common/loadPromptsModule.d.ts +16 -0
- package/umd/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionTools.d.ts +1 -1
- package/umd/src/llm-providers/azure-openai/AzureOpenAiExecutionTools.d.ts +1 -1
- package/umd/src/llm-providers/openai/OpenAiAgentKitExecutionTools.d.ts +1 -1
- package/umd/src/llm-providers/openai/OpenAiAgentKitExecutionToolsToolBuilder.d.ts +1 -1
- package/umd/src/llm-providers/openai/OpenAiAssistantExecutionToolsStreamRunner.d.ts +1 -1
- package/umd/src/llm-providers/openai/OpenAiAssistantExecutionToolsToolRunner.d.ts +1 -1
- package/umd/src/llm-providers/openai/OpenAiCompatibleNonChatPromptCaller.d.ts +1 -1
- package/umd/src/llm-providers/openai/OpenAiCompatibleRequestManager.d.ts +1 -1
- package/umd/src/llm-providers/openai/utils/callOpenAiCompatibleChatModel.d.ts +1 -1
- package/umd/src/llm-providers/openai/utils/loadOpenAiAgentsModule.d.ts +203 -0
- package/umd/src/llm-providers/openai/utils/uploadFilesToOpenAi.d.ts +1 -1
- package/umd/src/utils/misc/createLazyModuleLoader.d.ts +14 -0
- 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-
|
|
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
|
-
|
|
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(
|
|
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
|
|
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
|
|
39614
|
-
const
|
|
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;
|