@promptbook/cli 0.114.0-1 → 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/README.md +16 -15
- package/apps/agents-server/next.config.ts +11 -0
- package/apps/agents-server/package.json +6 -4
- package/apps/agents-server/playwright.config.ts +28 -38
- package/apps/agents-server/scripts/build-agents-server.js +62 -0
- package/apps/agents-server/scripts/build-e2e.js +38 -0
- package/apps/agents-server/scripts/ensure-root-dependencies.js +86 -0
- package/apps/agents-server/scripts/prerender-homepage.js +1 -1
- package/apps/agents-server/scripts/run-e2e-tests.js +34 -0
- package/apps/agents-server/scripts/run-npm.js +42 -0
- package/apps/agents-server/src/app/admin/email-server/page.tsx +14 -6
- package/apps/agents-server/src/app/api/elevenlabs/tts/route.ts +3 -3
- package/apps/agents-server/src/app/api/onboarding/book/route.ts +7 -6
- package/apps/agents-server/src/app/layout.tsx +6 -0
- package/apps/agents-server/src/app/superadmin/servers/ServersRegistryTable.tsx +105 -102
- package/apps/agents-server/src/app/superadmin/servers/useServersRegistryState.ts +15 -7
- package/apps/agents-server/src/components/AgentProjectDnsInstructions/AgentProjectDnsInstructions.tsx +11 -11
- package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/ManGoBookEditor.tsx +82 -0
- package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/WizardShell.tsx +2 -2
- package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/steps/BookStep.tsx +13 -16
- package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/steps/ZadaniStep.tsx +4 -4
- package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/config/bookSections.ts +23 -16
- package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/lib/bookSource.ts +54 -0
- package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/services/bookService.ts +15 -8
- package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/services/createManGoAgentSource.ts +3 -37
- package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/services/createManGoOpenEditorRequest.ts +1 -1
- package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/state/OnboardingProvider.tsx +2 -2
- package/apps/agents-server/src/components/UsersList/CreateUserDialog.tsx +13 -22
- package/apps/agents-server/src/components/UsersList/PasswordGeneratorDialog.tsx +216 -0
- package/apps/agents-server/src/components/UsersList/UsersList.tsx +16 -11
- package/apps/agents-server/src/components/UsersList/generateSecurePassword.ts +112 -24
- package/apps/agents-server/src/components/UsersList/userDialogClassNames.ts +11 -0
- package/apps/agents-server/src/languages/ServerTranslationKeys.ts +11 -0
- package/apps/agents-server/src/languages/translations/czech.yaml +11 -0
- package/apps/agents-server/src/languages/translations/english.yaml +11 -0
- package/apps/agents-server/src/utils/agentProjects/agentProjectHrefs.ts +11 -0
- package/apps/agents-server/src/utils/agentProjects/createAgentProjectDnsRecords.ts +53 -7
- package/apps/agents-server/src/utils/agentProjects/createAgentProjectMarkdownReferences.ts +37 -27
- package/apps/agents-server/src/utils/manGoOnboarding/manGoOnboardingAgentBooks.ts +2 -13
- package/apps/agents-server/src/utils/manGoOnboarding/manGoOnboardingAgentRuntime.ts +21 -73
- package/apps/agents-server/src/utils/stalwart/createEmailDnsInstructions.ts +9 -5
- package/apps/agents-server/src/utils/stalwart/readStalwartEmailSnapshot.ts +23 -5
- package/apps/agents-server/src/utils/stalwart/stalwartBootstrap.ts +2 -1
- package/apps/agents-server/src/utils/stalwart/stalwartMailBridge.ts +7 -0
- package/apps/agents-server/tests/e2e/e2eEnvironment.cjs +49 -0
- package/esm/index.es.js +1105 -273
- package/esm/index.es.js.map +1 -1
- package/esm/scripts/run-codex-prompts/common/runGoScript/scriptExecutionLog.d.ts +7 -0
- package/esm/scripts/run-codex-prompts/git/coderGitSync.d.ts +43 -0
- package/esm/scripts/run-codex-prompts/git/commitChanges.d.ts +3 -0
- package/esm/scripts/run-codex-prompts/main/resolvePromptRunner.d.ts +8 -1
- package/esm/scripts/run-codex-prompts/ping/buildCoderPingPrompt.d.ts +20 -0
- package/esm/scripts/run-codex-prompts/ping/extractCoderPingAnswer.d.ts +9 -0
- package/esm/scripts/run-codex-prompts/ping/pingCoderHarness.d.ts +23 -0
- package/esm/scripts/run-codex-prompts/ping/printCoderPingResult.d.ts +5 -0
- package/esm/scripts/run-codex-prompts/prompts/findNextTodoPrompt.d.ts +2 -1
- package/esm/scripts/run-codex-prompts/prompts/isPromptCompatibleWithRunner.d.ts +27 -0
- package/esm/scripts/run-codex-prompts/prompts/listRunnablePrompts.d.ts +2 -1
- package/esm/scripts/run-codex-prompts/prompts/listUpcomingTasks.d.ts +2 -1
- package/esm/scripts/run-codex-prompts/prompts/replacePromptTodoStatusLine.d.ts +7 -0
- package/esm/scripts/run-codex-prompts/testing/TestBeforeMode.d.ts +16 -0
- package/esm/scripts/run-codex-prompts/testing/createTestBeforeRepairPrompt.d.ts +9 -0
- package/esm/scripts/run-codex-prompts/testing/limitTestOutput.d.ts +4 -0
- package/esm/scripts/run-codex-prompts/testing/runPromptTestCommand.d.ts +1 -2
- package/esm/scripts/run-codex-prompts/testing/runTestBefore.d.ts +24 -0
- package/esm/scripts/run-codex-prompts/ui/buildRunUiFrameShared.d.ts +1 -0
- package/esm/scripts/verify-prompts/verify-prompts.d.ts +5 -0
- package/esm/src/book-2.0/book-language-documentation/BookLanguageManualDictionary.d.ts +1 -15
- package/esm/src/book-2.0/book-language-documentation/getBookLanguageManualCommitmentGroups.d.ts +1 -1
- package/esm/src/book-2.0/book-language-documentation/renderCommitmentCatalogSection.d.ts +0 -4
- package/esm/src/book-components/Chat/utils/$provideServerDomWindow.d.ts +11 -0
- package/esm/src/book-components/Chat/utils/renderMarkdown.d.ts +7 -0
- package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/createAgentsServerRuntimeEnvironment.d.ts +7 -0
- package/esm/src/cli/cli-commands/coder/agentCodingFile.d.ts +2 -3
- package/esm/src/cli/cli-commands/coder/ping.d.ts +10 -0
- package/esm/src/cli/cli-commands/coder/ping.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/coder.d.ts +1 -0
- 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 +1 -1
- package/src/book-2.0/book-language-documentation/BookLanguageManualDictionary.ts +1 -15
- package/src/book-2.0/book-language-documentation/bookLanguageDocumentationExamples.ts +1 -2
- package/src/book-2.0/book-language-documentation/createStandaloneBookLanguageMarkdown.ts +92 -32
- package/src/book-2.0/book-language-documentation/czechBookLanguageManualDictionary.ts +16 -39
- package/src/book-2.0/book-language-documentation/englishBookLanguageManualDictionary.ts +16 -36
- package/src/book-2.0/book-language-documentation/getBookLanguageManualCommitmentGroups.ts +9 -1
- package/src/book-2.0/book-language-documentation/renderCommitmentCatalogSection.ts +4 -51
- package/src/book-2.0/book-language-documentation/renderGroupedCommitmentDocumentationMarkdown.ts +291 -4
- package/src/book-3.0/LiteAgent.ts +11 -9
- package/src/book-components/Chat/utils/$provideServerDomWindow.ts +77 -0
- package/src/book-components/Chat/utils/renderMarkdown.ts +135 -32
- package/src/cli/cli-commands/agents-server/buildAgentsServer/createAgentsServerRuntimeEnvironment.ts +14 -0
- package/src/cli/cli-commands/agents-server/buildAgentsServer/ensureAgentsServerBuild.ts +1 -0
- package/src/cli/cli-commands/agents-server/startAgentsServer/createLocalAgentRunOptions.ts +1 -0
- package/src/cli/cli-commands/coder/add.ts +40 -12
- package/src/cli/cli-commands/coder/agentCodingFile.ts +6 -129
- package/src/cli/cli-commands/coder/generate-boilerplates.ts +31 -5
- package/src/cli/cli-commands/coder/getDefaultCoderPackageJsonScripts.ts +1 -1
- package/src/cli/cli-commands/coder/init.ts +27 -1
- package/src/cli/cli-commands/coder/initializeCoderProjectConfiguration.ts +1 -4
- package/src/cli/cli-commands/coder/ping.ts +72 -0
- package/src/cli/cli-commands/coder/run.ts +25 -2
- package/src/cli/cli-commands/coder/verify.ts +27 -12
- package/src/cli/cli-commands/coder.ts +4 -0
- package/src/cli/cli-commands/common/coderGitSyncCliOptions.ts +78 -0
- package/src/cli/cli-commands/run/prepareRunCommandResources.ts +2 -1
- package/src/cli/cli-commands/run/resolveRunInputParameters.ts +2 -1
- package/src/cli/cli-commands/runInteractiveChatbot.ts +2 -1
- package/src/cli/common/$provideLlmToolsForCli.ts +2 -1
- package/src/cli/common/loadPromptsModule.ts +13 -0
- package/src/conversion/archive/loadArchive.ts +2 -1
- package/src/conversion/archive/loadJsZipModule.ts +10 -0
- package/src/conversion/archive/saveArchive.ts +2 -1
- package/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionTools.ts +13 -1
- package/src/llm-providers/azure-openai/AzureOpenAiExecutionTools.ts +13 -1
- package/src/llm-providers/openai/OpenAiAgentKitExecutionTools.ts +6 -2
- package/src/llm-providers/openai/OpenAiAgentKitExecutionToolsToolBuilder.ts +7 -5
- package/src/llm-providers/openai/OpenAiAssistantExecutionTools.ts +1 -1
- package/src/llm-providers/openai/OpenAiAssistantExecutionToolsStreamRunner.ts +1 -1
- package/src/llm-providers/openai/OpenAiAssistantExecutionToolsToolRunner.ts +1 -1
- package/src/llm-providers/openai/OpenAiCompatibleNonChatPromptCaller.ts +1 -1
- package/src/llm-providers/openai/OpenAiCompatibleRequestManager.ts +12 -1
- package/src/llm-providers/openai/utils/callOpenAiCompatibleChatModel.ts +1 -1
- package/src/llm-providers/openai/utils/loadOpenAiAgentsModule.ts +11 -0
- package/src/llm-providers/openai/utils/uploadFilesToOpenAi.ts +1 -1
- package/src/other/templates/getTemplatesPipelineCollection.ts +731 -923
- package/src/remote-server/createRemoteClient.ts +12 -1
- package/src/scrapers/website/WebsiteScraper.ts +22 -2
- package/src/utils/agent-message-runtime/resolveAgentMessageRuntimeActivity.ts +101 -0
- package/src/utils/misc/createLazyModuleLoader.ts +27 -0
- package/src/version.ts +2 -2
- package/src/versions.txt +2 -1
- package/umd/index.umd.js +1180 -342
- package/umd/index.umd.js.map +1 -1
- package/umd/scripts/run-codex-prompts/common/runGoScript/scriptExecutionLog.d.ts +7 -0
- package/umd/scripts/run-codex-prompts/git/coderGitSync.d.ts +43 -0
- package/umd/scripts/run-codex-prompts/git/commitChanges.d.ts +3 -0
- package/umd/scripts/run-codex-prompts/main/resolvePromptRunner.d.ts +8 -1
- package/umd/scripts/run-codex-prompts/ping/buildCoderPingPrompt.d.ts +20 -0
- package/umd/scripts/run-codex-prompts/ping/extractCoderPingAnswer.d.ts +9 -0
- package/umd/scripts/run-codex-prompts/ping/pingCoderHarness.d.ts +23 -0
- package/umd/scripts/run-codex-prompts/ping/printCoderPingResult.d.ts +5 -0
- package/umd/scripts/run-codex-prompts/prompts/findNextTodoPrompt.d.ts +2 -1
- package/umd/scripts/run-codex-prompts/prompts/isPromptCompatibleWithRunner.d.ts +27 -0
- package/umd/scripts/run-codex-prompts/prompts/listRunnablePrompts.d.ts +2 -1
- package/umd/scripts/run-codex-prompts/prompts/listUpcomingTasks.d.ts +2 -1
- package/umd/scripts/run-codex-prompts/prompts/replacePromptTodoStatusLine.d.ts +7 -0
- package/umd/scripts/run-codex-prompts/testing/TestBeforeMode.d.ts +16 -0
- package/umd/scripts/run-codex-prompts/testing/createTestBeforeRepairPrompt.d.ts +9 -0
- package/umd/scripts/run-codex-prompts/testing/limitTestOutput.d.ts +4 -0
- package/umd/scripts/run-codex-prompts/testing/runPromptTestCommand.d.ts +1 -2
- package/umd/scripts/run-codex-prompts/testing/runTestBefore.d.ts +24 -0
- package/umd/scripts/run-codex-prompts/ui/buildRunUiFrameShared.d.ts +1 -0
- package/umd/scripts/verify-prompts/verify-prompts.d.ts +5 -0
- package/umd/src/book-2.0/book-language-documentation/BookLanguageManualDictionary.d.ts +1 -15
- package/umd/src/book-2.0/book-language-documentation/getBookLanguageManualCommitmentGroups.d.ts +1 -1
- package/umd/src/book-2.0/book-language-documentation/renderCommitmentCatalogSection.d.ts +0 -4
- package/umd/src/book-components/Chat/utils/$provideServerDomWindow.d.ts +11 -0
- package/umd/src/book-components/Chat/utils/renderMarkdown.d.ts +7 -0
- package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/createAgentsServerRuntimeEnvironment.d.ts +7 -0
- package/umd/src/cli/cli-commands/coder/agentCodingFile.d.ts +2 -3
- package/umd/src/cli/cli-commands/coder/ping.d.ts +10 -0
- package/umd/src/cli/cli-commands/coder/ping.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/coder.d.ts +1 -0
- 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/apps/agents-server/src/app/api/onboarding/draft/route.ts +0 -23
- package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/BookLanguagePanel.tsx +0 -125
- package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/MarkdownBookEditor.tsx +0 -154
- package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/MarkdownPreview.tsx +0 -188
- package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/services/draftService.ts +0 -32
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
import type { Socket } from 'socket.io-client';
|
|
2
|
-
import { io } from 'socket.io-client';
|
|
3
2
|
import { spaceTrim } from 'spacetrim';
|
|
4
3
|
import { CONNECTION_RETRIES_LIMIT, CONNECTION_TIMEOUT_MS } from '../config';
|
|
4
|
+
import { createLazyModuleLoader } from '../utils/misc/createLazyModuleLoader';
|
|
5
5
|
import { isValidUrl } from '../utils/validators/url/isValidUrl';
|
|
6
6
|
import type { RemoteClientOptions } from './types/RemoteClientOptions';
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* Loads the Socket.io client (`socket.io-client`) on demand
|
|
10
|
+
*
|
|
11
|
+
* Note: [🐌] Loaded lazily to keep the startup of the `ptbk` CLI utility fast
|
|
12
|
+
*
|
|
13
|
+
* @private internal utility of `createRemoteClient`
|
|
14
|
+
*/
|
|
15
|
+
const loadSocketIoClientModule = createLazyModuleLoader(() => import('socket.io-client'));
|
|
16
|
+
|
|
8
17
|
/**
|
|
9
18
|
* Creates a connection to the remote proxy server.
|
|
10
19
|
*
|
|
@@ -44,6 +53,8 @@ export async function createRemoteClient<TCustomOptions = undefined>(
|
|
|
44
53
|
);
|
|
45
54
|
}
|
|
46
55
|
|
|
56
|
+
const { io } = await loadSocketIoClientModule();
|
|
57
|
+
|
|
47
58
|
return new Promise((resolve, reject) => {
|
|
48
59
|
const socket = io(remoteServerUrl, {
|
|
49
60
|
retries: CONNECTION_RETRIES_LIMIT,
|
|
@@ -4,8 +4,6 @@ import type { Converter } from '../_common/Converter';
|
|
|
4
4
|
import type { Scraper, ScraperSourceHandler } from '../_common/Scraper';
|
|
5
5
|
// TODO: [🏳🌈] Finally take pick of .json vs .ts
|
|
6
6
|
// import PipelineCollection from '../../../books/books';
|
|
7
|
-
import { Readability } from '@mozilla/readability';
|
|
8
|
-
import { JSDOM } from 'jsdom';
|
|
9
7
|
import type { Converter as ShowdownConverter } from 'showdown';
|
|
10
8
|
import { DEFAULT_INTERMEDIATE_FILES_STRATEGY, DEFAULT_IS_VERBOSE, DEFAULT_SCRAPE_CACHE_DIRNAME } from '../../config';
|
|
11
9
|
import { EnvironmentMismatchError } from '../../errors/EnvironmentMismatchError';
|
|
@@ -13,6 +11,7 @@ import { KnowledgeScrapeError } from '../../errors/KnowledgeScrapeError';
|
|
|
13
11
|
import { UnexpectedError } from '../../errors/UnexpectedError';
|
|
14
12
|
import type { ExecutionTools } from '../../execution/ExecutionTools';
|
|
15
13
|
import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
|
|
14
|
+
import { createLazyModuleLoader } from '../../utils/misc/createLazyModuleLoader';
|
|
16
15
|
import { MarkdownScraper } from '../markdown/MarkdownScraper';
|
|
17
16
|
import type { ScraperAndConverterMetadata } from '../_common/register/ScraperAndConverterMetadata';
|
|
18
17
|
import type { ScraperIntermediateSource } from '../_common/ScraperIntermediateSource';
|
|
@@ -20,6 +19,25 @@ import { getScraperIntermediateSource } from '../_common/utils/getScraperInterme
|
|
|
20
19
|
import { websiteScraperMetadata } from './register-metadata';
|
|
21
20
|
import { createShowdownConverter } from './utils/createShowdownConverter';
|
|
22
21
|
|
|
22
|
+
/**
|
|
23
|
+
* Loads `jsdom` on demand
|
|
24
|
+
*
|
|
25
|
+
* Note: [🐌] `jsdom` is by far the heaviest dependency of Promptbook, loading it eagerly would slow down every single
|
|
26
|
+
* run of the `ptbk` CLI utility even when no website is scraped
|
|
27
|
+
*
|
|
28
|
+
* @private internal utility of `WebsiteScraper`
|
|
29
|
+
*/
|
|
30
|
+
const loadJsdomModule = createLazyModuleLoader(() => import('jsdom'));
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Loads `@mozilla/readability` on demand
|
|
34
|
+
*
|
|
35
|
+
* Note: [🐌] Loaded lazily to keep the startup of the `ptbk` CLI utility fast
|
|
36
|
+
*
|
|
37
|
+
* @private internal utility of `WebsiteScraper`
|
|
38
|
+
*/
|
|
39
|
+
const loadReadabilityModule = createLazyModuleLoader(() => import('@mozilla/readability'));
|
|
40
|
+
|
|
23
41
|
/**
|
|
24
42
|
* Scraper for websites
|
|
25
43
|
*
|
|
@@ -77,6 +95,8 @@ export class WebsiteScraper implements Converter, Scraper {
|
|
|
77
95
|
throw new EnvironmentMismatchError('Can not scrape websites without filesystem tools');
|
|
78
96
|
}
|
|
79
97
|
|
|
98
|
+
const [{ JSDOM }, { Readability }] = await Promise.all([loadJsdomModule(), loadReadabilityModule()]);
|
|
99
|
+
|
|
80
100
|
const jsdom = new JSDOM(await source.asText(), {
|
|
81
101
|
url: source.url,
|
|
82
102
|
});
|
|
@@ -21,6 +21,11 @@ type RuntimeLogEvent = {
|
|
|
21
21
|
readonly text?: string;
|
|
22
22
|
}>;
|
|
23
23
|
};
|
|
24
|
+
readonly item?: {
|
|
25
|
+
readonly type?: string;
|
|
26
|
+
readonly command?: string;
|
|
27
|
+
readonly exit_code?: number | null;
|
|
28
|
+
};
|
|
24
29
|
};
|
|
25
30
|
|
|
26
31
|
/**
|
|
@@ -89,6 +94,11 @@ function parseRuntimeLogEvent(line: string): RuntimeLogEvent | null {
|
|
|
89
94
|
* @private internal helper of `resolveAgentMessageRuntimeActivity`
|
|
90
95
|
*/
|
|
91
96
|
function resolveRuntimeLogEventActivity(event: RuntimeLogEvent): string | null {
|
|
97
|
+
const codexActivity = resolveCodexRuntimeLogEventActivity(event);
|
|
98
|
+
if (codexActivity) {
|
|
99
|
+
return codexActivity;
|
|
100
|
+
}
|
|
101
|
+
|
|
92
102
|
if (event.type !== 'assistant' || !Array.isArray(event.message?.content)) {
|
|
93
103
|
return null;
|
|
94
104
|
}
|
|
@@ -103,6 +113,97 @@ function resolveRuntimeLogEventActivity(event: RuntimeLogEvent): string | null {
|
|
|
103
113
|
return assistantText.length > 0 ? assistantText : null;
|
|
104
114
|
}
|
|
105
115
|
|
|
116
|
+
/**
|
|
117
|
+
* Resolves one short user-facing status from a structured Codex JSONL event.
|
|
118
|
+
*
|
|
119
|
+
* Codex reasoning and raw command text deliberately remain private. The event type tells us
|
|
120
|
+
* enough to report a useful action without exposing the internal trace or a command payload.
|
|
121
|
+
*
|
|
122
|
+
* @private internal helper of `resolveAgentMessageRuntimeActivity`
|
|
123
|
+
*/
|
|
124
|
+
function resolveCodexRuntimeLogEventActivity(event: RuntimeLogEvent): string | null {
|
|
125
|
+
if (!event.item || !isCodexItemEvent(event.type)) {
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
const isCompleted = event.type === 'item.completed';
|
|
130
|
+
|
|
131
|
+
switch (event.item.type) {
|
|
132
|
+
case 'reasoning':
|
|
133
|
+
return isCompleted ? 'Considered the request.' : 'Considering the request.';
|
|
134
|
+
case 'command_execution':
|
|
135
|
+
return resolveCodexCommandActivity(event.item.command, isCompleted, event.item.exit_code);
|
|
136
|
+
case 'file_change':
|
|
137
|
+
return isCompleted ? 'Updated relevant files.' : 'Updating relevant files.';
|
|
138
|
+
case 'web_search':
|
|
139
|
+
return isCompleted ? 'Finished searching the web.' : 'Searching the web.';
|
|
140
|
+
case 'mcp_tool_call':
|
|
141
|
+
return isCompleted ? 'Finished using an integration.' : 'Using an integration.';
|
|
142
|
+
case 'plan_update':
|
|
143
|
+
return isCompleted ? 'Updated the plan.' : 'Planning the work.';
|
|
144
|
+
default:
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Returns whether one runtime event is a Codex item lifecycle event.
|
|
151
|
+
*
|
|
152
|
+
* @private internal helper of `resolveAgentMessageRuntimeActivity`
|
|
153
|
+
*/
|
|
154
|
+
function isCodexItemEvent(eventType: string | undefined): boolean {
|
|
155
|
+
return eventType === 'item.started' || eventType === 'item.updated' || eventType === 'item.completed';
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Maps one Codex command event to a concise action without revealing the command itself.
|
|
160
|
+
*
|
|
161
|
+
* @private internal helper of `resolveAgentMessageRuntimeActivity`
|
|
162
|
+
*/
|
|
163
|
+
function resolveCodexCommandActivity(
|
|
164
|
+
command: string | undefined,
|
|
165
|
+
isCompleted: boolean,
|
|
166
|
+
exitCode: number | null | undefined,
|
|
167
|
+
): string {
|
|
168
|
+
if (isCompleted && exitCode !== undefined && exitCode !== null && exitCode !== 0) {
|
|
169
|
+
return 'A command needs attention.';
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
const activity = resolveCodexCommandActivityLabel(command);
|
|
173
|
+
return isCompleted ? activity.completed : activity.running;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Resolves the short running/completed labels for one safe command category.
|
|
178
|
+
*
|
|
179
|
+
* @private internal helper of `resolveAgentMessageRuntimeActivity`
|
|
180
|
+
*/
|
|
181
|
+
function resolveCodexCommandActivityLabel(command: string | undefined): { running: string; completed: string } {
|
|
182
|
+
const normalizedCommand = command?.toLowerCase() || '';
|
|
183
|
+
|
|
184
|
+
if (/(^|\s)(npm\s+(?:run\s+)?test|pnpm\s+(?:run\s+)?test|yarn\s+test|jest|vitest|pytest)\b/u.test(normalizedCommand)) {
|
|
185
|
+
return { running: 'Running tests.', completed: 'Finished running tests.' };
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
if (/(^|\s)(npm\s+run\s+build|pnpm\s+(?:run\s+)?build|yarn\s+build|next\s+build)\b/u.test(normalizedCommand)) {
|
|
189
|
+
return { running: 'Building the project.', completed: 'Finished building the project.' };
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
if (/(^|\s)(npm|pnpm|yarn)\s+(?:install|add)\b/u.test(normalizedCommand)) {
|
|
193
|
+
return { running: 'Installing dependencies.', completed: 'Finished installing dependencies.' };
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
if (/(^|\s)git\s+(?:status|diff|log|show)\b/u.test(normalizedCommand)) {
|
|
197
|
+
return { running: 'Reviewing changes.', completed: 'Finished reviewing changes.' };
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
if (/(^|\s)(ls|find|rg|grep|sed|cat|head|tail)\b/u.test(normalizedCommand)) {
|
|
201
|
+
return { running: 'Inspecting relevant files.', completed: 'Finished inspecting relevant files.' };
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
return { running: 'Running a task.', completed: 'Finished a task.' };
|
|
205
|
+
}
|
|
206
|
+
|
|
106
207
|
/**
|
|
107
208
|
* Collapses one activity string to a single trimmed line, truncated for the progress card.
|
|
108
209
|
*
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates a loader which imports one module on the first call and reuses the very same module afterwards
|
|
3
|
+
*
|
|
4
|
+
* Note: [🐌] Heavy third-party dependencies are imported lazily to keep the startup of the Promptbook CLI fast.
|
|
5
|
+
* A statically imported dependency is loaded every single time the bundle is loaded, even when the running
|
|
6
|
+
* command never touches it. A lazily imported dependency is loaded only when the feature is really used.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* const loadJsdomModule = createLazyModuleLoader(() => import('jsdom'));
|
|
10
|
+
* const { JSDOM } = await loadJsdomModule();
|
|
11
|
+
*
|
|
12
|
+
* @private internal utility of Promptbook
|
|
13
|
+
*/
|
|
14
|
+
export function createLazyModuleLoader<TModule>(importModule: () => Promise<TModule>): () => Promise<TModule> {
|
|
15
|
+
let importedModulePromise: Promise<TModule> | null = null;
|
|
16
|
+
|
|
17
|
+
return function loadModule(): Promise<TModule> {
|
|
18
|
+
if (importedModulePromise === null) {
|
|
19
|
+
importedModulePromise = importModule();
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return importedModulePromise;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// Note: [🐌] Do not convert the lazy `import(...)` calls back to static `import` statements, it would bring back the
|
|
27
|
+
// slow startup of the `ptbk` CLI utility
|
package/src/version.ts
CHANGED
|
@@ -16,11 +16,11 @@ export const BOOK_LANGUAGE_VERSION: string_semantic_version = '2.0.0';
|
|
|
16
16
|
* @generated
|
|
17
17
|
* @see https://github.com/webgptorg/promptbook
|
|
18
18
|
*/
|
|
19
|
-
export const PROMPTBOOK_ENGINE_VERSION: string_promptbook_version = '0.114.0-
|
|
19
|
+
export const PROMPTBOOK_ENGINE_VERSION: string_promptbook_version = '0.114.0-3';
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
* Represents the version string of the Promptbook engine.
|
|
23
|
-
* It follows semantic versioning (e.g., `0.
|
|
23
|
+
* It follows semantic versioning (e.g., `0.114.0-2`).
|
|
24
24
|
*
|
|
25
25
|
* @generated
|
|
26
26
|
*/
|
package/src/versions.txt
CHANGED