@promptbook/cli 0.114.0-3 → 0.114.0-5
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 +4 -12
- package/apps/agents-server/{USE_TIMEOUT_CHIP_QA.md → TIMEOUT_CHIP_QA.md} +1 -1
- package/apps/agents-server/src/app/agents/[agentName]/api/chat/resolveAgentChatRouteContext.ts +5 -12
- package/apps/agents-server/src/app/agents/[agentName]/api/voice/route.ts +4 -9
- package/apps/agents-server/src/app/api/scrape/route.ts +1 -1
- package/apps/agents-server/src/app/layout.tsx +25 -0
- package/apps/agents-server/src/app/system/user-wallet/UserWalletDraft.ts +2 -2
- package/apps/agents-server/src/components/AgentProfile/AgentCapabilityChips.tsx +1 -24
- package/apps/agents-server/src/components/Header/Header.tsx +8 -0
- package/apps/agents-server/src/components/Header/HeaderTypes.ts +5 -0
- package/apps/agents-server/src/components/Header/buildHeaderSystemMenuItems.ts +118 -30
- package/apps/agents-server/src/components/Header/resolveHeaderSystemActivities.ts +86 -0
- package/apps/agents-server/src/components/Homepage/AgentCard.tsx +0 -3
- package/apps/agents-server/src/components/LayoutWrapper/LayoutWrapper.tsx +8 -0
- package/apps/agents-server/src/components/NewAgentDialog/NewAgentWizardState.ts +0 -12
- package/apps/agents-server/src/components/NewAgentDialog/NewAgentWizardUseSetupStep.tsx +0 -58
- package/apps/agents-server/src/components/NewAgentDialog/newAgentWizardPresets.ts +0 -56
- package/apps/agents-server/src/components/WalletRecordDialog/useWalletRecordDialogState.ts +1 -1
- package/apps/agents-server/src/languages/ServerTranslationKeys.ts +0 -10
- package/apps/agents-server/src/languages/translations/czech.yaml +0 -10
- package/apps/agents-server/src/languages/translations/english.yaml +0 -10
- package/apps/agents-server/src/message-providers/email/smtp/SmtpMessageProvider.ts +1 -1
- package/apps/agents-server/src/tools/$provideOpenAiAgentKitExecutionToolsForServer.ts +0 -191
- package/apps/agents-server/src/tools/$provideOpenAiAssistantExecutionToolsForServer.ts +0 -3
- package/apps/agents-server/src/tools/run_browser.ts +1 -1
- package/apps/agents-server/src/tools/send_email.ts +3 -3
- package/apps/agents-server/src/utils/handleChatCompletion/createHandleChatCompletionPromptContext.ts +0 -1
- package/apps/agents-server/src/utils/handleChatCompletion/resolveHandleChatCompletionRuntime.ts +4 -12
- package/apps/agents-server/src/utils/manGoOnboarding/manGoOnboardingAgentBooks.ts +0 -1
- package/apps/agents-server/src/utils/messages/parseUseEmailSmtpCredential.ts +1 -1
- package/apps/agents-server/src/utils/resolveUseEmailSmtpCredential.ts +1 -1
- package/apps/agents-server/src/utils/useEmailSmtpWalletConstants.ts +5 -5
- package/apps/agents-server/src/utils/userChat/createRunUserChatJobExecutionContext.ts +5 -12
- package/apps/agents-server/src/utils/userWallet/UserWalletRecord.ts +1 -1
- package/apps/agents-server/src/utils/userWallet/resolveUseEmailSmtpCredentialFromWallet.ts +1 -1
- package/apps/agents-server/src/utils/vpsSelfUpdate/deleteVpsSelfUpdateInstalledVersion.ts +2 -1
- package/apps/agents-server/src/utils/vpsSelfUpdate/isVpsSelfUpdateJobRunning.ts +16 -0
- package/apps/agents-server/src/utils/vpsSelfUpdate/startVpsSelfUpdate.ts +2 -1
- package/apps/agents-server/src/utils/vpsSelfUpdate.ts +1 -0
- package/esm/index.es.js +2885 -6344
- package/esm/index.es.js.map +1 -1
- package/esm/scripts/run-codex-prompts/common/createCoderRunStepTracker.d.ts +48 -0
- package/esm/scripts/run-codex-prompts/prompts/buildPromptStatusDetails.d.ts +43 -0
- package/esm/scripts/run-codex-prompts/prompts/formatCoderRunSteps.d.ts +6 -3
- package/esm/scripts/run-codex-prompts/prompts/isPromptSectionUnfinished.d.ts +8 -0
- package/esm/scripts/run-codex-prompts/prompts/markPromptDone.d.ts +1 -1
- package/esm/scripts/run-codex-prompts/prompts/markPromptInProgress.d.ts +27 -0
- package/esm/scripts/run-codex-prompts/prompts/resolvePromptStatusLine.d.ts +19 -0
- package/esm/scripts/run-codex-prompts/prompts/writePromptStatusLine.d.ts +9 -0
- package/esm/scripts/run-codex-prompts/server/buildCoderServerPromptResponse.d.ts +1 -1
- package/esm/scripts/run-codex-prompts/server/coderServerHtml.d.ts +1 -1
- package/esm/scripts/run-codex-prompts/server/updatePromptSection.d.ts +1 -1
- package/esm/scripts/run-codex-prompts/testing/runPromptWithTestFeedback.d.ts +6 -0
- package/esm/scripts/verify-prompts/$orderPromptFiles.d.ts +9 -0
- package/esm/scripts/verify-prompts/VerifyPromptsOrder.d.ts +26 -0
- package/esm/scripts/verify-prompts/verify-prompts.d.ts +3 -2
- package/esm/src/book-2.0/agent-source/AgentBasicInformation.d.ts +3 -3
- package/esm/src/cli/cli-commands/coder/boilerplateCount.d.ts +52 -0
- package/esm/src/cli/cli-commands/coder/generate-boilerplates.d.ts +3 -2
- package/esm/src/cli/cli-commands/coder/verify.d.ts +1 -1
- package/esm/src/commitments/{COMPONENT/COMPONENT.d.ts → META_FULLNAME/META_FULLNAME.d.ts} +8 -5
- package/esm/src/commitments/META_ID/META_ID.d.ts +32 -0
- package/esm/src/commitments/index.d.ts +4 -12
- package/esm/src/llm-providers/agent/Agent.d.ts +1 -1
- package/esm/src/llm-providers/openai/OpenAiAgentKitExecutionToolsToolBuilder.d.ts +1 -1
- package/esm/src/{commitments/USE_BROWSER → scrapers/_common/utils}/fetchUrlContent.d.ts +2 -3
- package/esm/src/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/_packages/components.readme.md +1 -1
- package/src/book-2.0/agent-source/AgentBasicInformation.ts +3 -9
- package/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments/filterCommitmentsForAgentModelRequirements.ts +0 -23
- package/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.ts +0 -2
- package/src/book-2.0/agent-source/parseAgentSource/applyMetaCommitment.ts +16 -31
- package/src/book-2.0/agent-source/parseAgentSource/createCapabilitiesFromCommitment.ts +0 -35
- package/src/book-2.0/book-language-documentation/bookLanguageDocumentationExamples.ts +0 -25
- package/src/book-2.0/book-language-documentation/createStandaloneBookLanguageMarkdown.ts +2 -10
- package/src/book-2.0/book-language-documentation/czechBookLanguageManualDictionary.ts +7 -32
- package/src/book-2.0/book-language-documentation/englishBookLanguageManualDictionary.ts +6 -31
- package/src/book-components/BookEditor/useBookEditorMonacoLanguage.ts +1 -1
- package/src/cli/cli-commands/coder/boilerplateCount.ts +139 -0
- package/src/cli/cli-commands/coder/generate-boilerplates.ts +52 -44
- package/src/cli/cli-commands/coder/getDefaultCoderPackageJsonScripts.ts +3 -1
- package/src/cli/cli-commands/coder/init.ts +2 -1
- package/src/cli/cli-commands/coder/verify.ts +29 -5
- package/src/commitments/ACTION/ACTION.ts +3 -3
- package/src/commitments/{META → META_DESCRIPTION}/META_DESCRIPTION.ts +1 -1
- package/src/commitments/META_FULLNAME/META_FULLNAME.ts +70 -0
- package/src/commitments/META_ID/META_ID.ts +78 -0
- package/src/commitments/_common/getAllCommitmentsToolFunctionsForNode.ts +1 -49
- package/src/commitments/index.ts +6 -24
- package/src/llm-providers/agent/Agent.ts +1 -1
- package/src/llm-providers/openai/OpenAiAgentKitExecutionToolsToolBuilder.ts +2 -2
- package/src/other/templates/getTemplatesPipelineCollection.ts +735 -693
- package/src/{commitments/USE_BROWSER → scrapers/_common/utils}/fetchUrlContent.ts +8 -9
- package/src/version.ts +2 -2
- package/src/versions.txt +2 -0
- package/umd/index.umd.js +2888 -6347
- package/umd/index.umd.js.map +1 -1
- package/umd/scripts/run-codex-prompts/common/createCoderRunStepTracker.d.ts +48 -0
- package/umd/scripts/run-codex-prompts/prompts/buildPromptStatusDetails.d.ts +43 -0
- package/umd/scripts/run-codex-prompts/prompts/formatCoderRunSteps.d.ts +6 -3
- package/umd/scripts/run-codex-prompts/prompts/isPromptSectionUnfinished.d.ts +8 -0
- package/umd/scripts/run-codex-prompts/prompts/markPromptDone.d.ts +1 -1
- package/umd/scripts/run-codex-prompts/prompts/markPromptInProgress.d.ts +27 -0
- package/umd/scripts/run-codex-prompts/prompts/resolvePromptStatusLine.d.ts +19 -0
- package/umd/scripts/run-codex-prompts/prompts/writePromptStatusLine.d.ts +9 -0
- package/umd/scripts/run-codex-prompts/server/buildCoderServerPromptResponse.d.ts +1 -1
- package/umd/scripts/run-codex-prompts/server/coderServerHtml.d.ts +1 -1
- package/umd/scripts/run-codex-prompts/server/updatePromptSection.d.ts +1 -1
- package/umd/scripts/run-codex-prompts/testing/runPromptWithTestFeedback.d.ts +6 -0
- package/umd/scripts/verify-prompts/$orderPromptFiles.d.ts +9 -0
- package/umd/scripts/verify-prompts/VerifyPromptsOrder.d.ts +26 -0
- package/umd/scripts/verify-prompts/verify-prompts.d.ts +3 -2
- package/umd/src/book-2.0/agent-source/AgentBasicInformation.d.ts +3 -3
- package/umd/src/cli/cli-commands/coder/boilerplateCount.d.ts +52 -0
- package/umd/src/cli/cli-commands/coder/generate-boilerplates.d.ts +3 -2
- package/umd/src/cli/cli-commands/coder/verify.d.ts +1 -1
- package/umd/src/commitments/{COMPONENT/COMPONENT.d.ts → META_FULLNAME/META_FULLNAME.d.ts} +8 -5
- package/umd/src/commitments/META_ID/META_ID.d.ts +32 -0
- package/umd/src/commitments/index.d.ts +4 -12
- package/umd/src/llm-providers/agent/Agent.d.ts +1 -1
- package/umd/src/llm-providers/openai/OpenAiAgentKitExecutionToolsToolBuilder.d.ts +1 -1
- package/umd/src/{commitments/USE_BROWSER → scrapers/_common/utils}/fetchUrlContent.d.ts +2 -3
- package/umd/src/version.d.ts +1 -1
- package/apps/agents-server/src/tools/configureTimeoutToolRuntimeAdapterForServer.ts +0 -381
- package/apps/agents-server/src/utils/emails/extractUseEmailConfigurationFromAgentSource.ts +0 -42
- package/esm/scripts/run-codex-prompts/prompts/replacePromptTodoStatusLine.d.ts +0 -7
- package/esm/src/commitments/MEMORY/MEMORY.d.ts +0 -48
- package/esm/src/commitments/MEMORY/MemoryToolNames.d.ts +0 -11
- package/esm/src/commitments/MEMORY/MemoryToolRuntimeAdapter.d.ts +0 -149
- package/esm/src/commitments/MEMORY/createMemorySystemMessage.d.ts +0 -6
- package/esm/src/commitments/MEMORY/createMemoryToolFunctions.d.ts +0 -8
- package/esm/src/commitments/MEMORY/createMemoryTools.d.ts +0 -14
- package/esm/src/commitments/MEMORY/getMemoryCommitmentDocumentation.d.ts +0 -6
- package/esm/src/commitments/MEMORY/getMemoryToolRuntimeAdapterOrDisabledResult.d.ts +0 -17
- package/esm/src/commitments/MEMORY/getMemoryToolTitles.d.ts +0 -7
- package/esm/src/commitments/MEMORY/parseMemoryToolArgs.d.ts +0 -61
- package/esm/src/commitments/MEMORY/resolveMemoryRuntimeContext.d.ts +0 -8
- package/esm/src/commitments/MEMORY/setMemoryToolRuntimeAdapter.d.ts +0 -13
- package/esm/src/commitments/META/META.d.ts +0 -65
- package/esm/src/commitments/USE/aggregateUseCommitmentSystemMessages.d.ts +0 -32
- package/esm/src/commitments/USE_BROWSER/USE_BROWSER.d.ts +0 -58
- package/esm/src/commitments/USE_BROWSER/fetchUrlContentViaBrowser.d.ts +0 -13
- package/esm/src/commitments/USE_BROWSER/resolveRunBrowserToolForNode.d.ts +0 -10
- package/esm/src/commitments/USE_DEEPSEARCH/USE_DEEPSEARCH.d.ts +0 -47
- package/esm/src/commitments/USE_EMAIL/USE_EMAIL.d.ts +0 -38
- package/esm/src/commitments/USE_EMAIL/parseUseEmailCommitmentContent.d.ts +0 -21
- package/esm/src/commitments/USE_EMAIL/parseUseEmailCommitmentContent.test.d.ts +0 -1
- package/esm/src/commitments/USE_EMAIL/resolveSendEmailToolForNode.d.ts +0 -11
- package/esm/src/commitments/USE_EMAIL/sendEmailViaBrowser.d.ts +0 -13
- package/esm/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.d.ts +0 -46
- package/esm/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.test.d.ts +0 -1
- package/esm/src/commitments/USE_SPAWN/USE_SPAWN.d.ts +0 -38
- package/esm/src/commitments/USE_SPAWN/USE_SPAWN.test.d.ts +0 -1
- package/esm/src/commitments/USE_SPAWN/resolveSpawnAgentToolForNode.d.ts +0 -9
- package/esm/src/commitments/USE_SPAWN/spawnAgentViaBrowser.d.ts +0 -12
- package/esm/src/commitments/USE_TIME/USE_TIME.d.ts +0 -43
- package/esm/src/commitments/USE_TIME/USE_TIME.test.d.ts +0 -1
- package/esm/src/commitments/USE_TIMEOUT/TimeoutToolNames.d.ts +0 -11
- package/esm/src/commitments/USE_TIMEOUT/TimeoutToolRuntimeAdapter.d.ts +0 -212
- package/esm/src/commitments/USE_TIMEOUT/USE_TIMEOUT.d.ts +0 -38
- package/esm/src/commitments/USE_TIMEOUT/USE_TIMEOUT.test.d.ts +0 -1
- package/esm/src/commitments/USE_TIMEOUT/createTimeoutSystemMessage.d.ts +0 -6
- package/esm/src/commitments/USE_TIMEOUT/createTimeoutToolFunctions.d.ts +0 -8
- package/esm/src/commitments/USE_TIMEOUT/createTimeoutTools.d.ts +0 -7
- package/esm/src/commitments/USE_TIMEOUT/getTimeoutToolRuntimeAdapterOrDisabledResult.d.ts +0 -17
- package/esm/src/commitments/USE_TIMEOUT/parseTimeoutToolArgs.d.ts +0 -78
- package/esm/src/commitments/USE_TIMEOUT/resolveTimeoutRuntimeContext.d.ts +0 -8
- package/esm/src/commitments/USE_TIMEOUT/setTimeoutToolRuntimeAdapter.d.ts +0 -13
- package/esm/src/commitments/WALLET/WALLET.d.ts +0 -21
- package/esm/src/commitments/WALLET/WALLET.test.d.ts +0 -1
- package/esm/src/commitments/WALLET/WalletToolNames.d.ts +0 -12
- package/esm/src/commitments/WALLET/WalletToolRuntimeAdapter.d.ts +0 -163
- package/esm/src/commitments/WALLET/createWalletSystemMessage.d.ts +0 -6
- package/esm/src/commitments/WALLET/createWalletToolFunctions.d.ts +0 -8
- package/esm/src/commitments/WALLET/createWalletTools.d.ts +0 -7
- package/esm/src/commitments/WALLET/getWalletCommitmentDocumentation.d.ts +0 -6
- package/esm/src/commitments/WALLET/getWalletToolRuntimeAdapterOrDisabledResult.d.ts +0 -16
- package/esm/src/commitments/WALLET/getWalletToolTitles.d.ts +0 -7
- package/esm/src/commitments/WALLET/parseWalletToolArgs.d.ts +0 -51
- package/esm/src/commitments/WALLET/resolveWalletRuntimeContext.d.ts +0 -8
- package/esm/src/commitments/WALLET/setWalletToolRuntimeAdapter.d.ts +0 -13
- package/esm/src/commitments/_common/createSerpSearchToolFunction.d.ts +0 -12
- package/src/commitments/COMPONENT/COMPONENT.ts +0 -70
- package/src/commitments/MEMORY/MEMORY.ts +0 -94
- package/src/commitments/MEMORY/MemoryToolNames.ts +0 -13
- package/src/commitments/MEMORY/MemoryToolRuntimeAdapter.ts +0 -180
- package/src/commitments/MEMORY/createMemorySystemMessage.ts +0 -27
- package/src/commitments/MEMORY/createMemoryToolFunctions.ts +0 -134
- package/src/commitments/MEMORY/createMemoryTools.ts +0 -115
- package/src/commitments/MEMORY/getMemoryCommitmentDocumentation.ts +0 -47
- package/src/commitments/MEMORY/getMemoryToolRuntimeAdapterOrDisabledResult.ts +0 -104
- package/src/commitments/MEMORY/getMemoryToolTitles.ts +0 -16
- package/src/commitments/MEMORY/parseMemoryToolArgs.ts +0 -126
- package/src/commitments/MEMORY/resolveMemoryRuntimeContext.ts +0 -23
- package/src/commitments/MEMORY/setMemoryToolRuntimeAdapter.ts +0 -26
- package/src/commitments/META/META.ts +0 -168
- package/src/commitments/USE/TODO.txt +0 -1
- package/src/commitments/USE/aggregateUseCommitmentSystemMessages.ts +0 -219
- package/src/commitments/USE_BROWSER/TODO.txt +0 -1
- package/src/commitments/USE_BROWSER/USE_BROWSER.ts +0 -257
- package/src/commitments/USE_BROWSER/fetchUrlContentViaBrowser.ts +0 -45
- package/src/commitments/USE_BROWSER/resolveRunBrowserToolForNode.ts +0 -83
- package/src/commitments/USE_DEEPSEARCH/USE_DEEPSEARCH.ts +0 -146
- package/src/commitments/USE_EMAIL/USE_EMAIL.ts +0 -201
- package/src/commitments/USE_EMAIL/parseUseEmailCommitmentContent.ts +0 -75
- package/src/commitments/USE_EMAIL/resolveSendEmailToolForNode.ts +0 -44
- package/src/commitments/USE_EMAIL/sendEmailViaBrowser.ts +0 -47
- package/src/commitments/USE_SEARCH_ENGINE/TODO.txt +0 -1
- package/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.ts +0 -171
- package/src/commitments/USE_SPAWN/USE_SPAWN.ts +0 -150
- package/src/commitments/USE_SPAWN/resolveSpawnAgentToolForNode.ts +0 -42
- package/src/commitments/USE_SPAWN/spawnAgentViaBrowser.ts +0 -50
- package/src/commitments/USE_TIME/USE_TIME.ts +0 -177
- package/src/commitments/USE_TIMEOUT/TimeoutToolNames.ts +0 -13
- package/src/commitments/USE_TIMEOUT/TimeoutToolRuntimeAdapter.ts +0 -255
- package/src/commitments/USE_TIMEOUT/USE_TIMEOUT.ts +0 -117
- package/src/commitments/USE_TIMEOUT/createTimeoutSystemMessage.ts +0 -22
- package/src/commitments/USE_TIMEOUT/createTimeoutToolFunctions.ts +0 -361
- package/src/commitments/USE_TIMEOUT/createTimeoutTools.ts +0 -127
- package/src/commitments/USE_TIMEOUT/getTimeoutToolRuntimeAdapterOrDisabledResult.ts +0 -67
- package/src/commitments/USE_TIMEOUT/parseTimeoutToolArgs.ts +0 -460
- package/src/commitments/USE_TIMEOUT/resolveTimeoutRuntimeContext.ts +0 -36
- package/src/commitments/USE_TIMEOUT/setTimeoutToolRuntimeAdapter.ts +0 -26
- package/src/commitments/WALLET/WALLET.ts +0 -71
- package/src/commitments/WALLET/WalletToolNames.ts +0 -14
- package/src/commitments/WALLET/WalletToolRuntimeAdapter.ts +0 -180
- package/src/commitments/WALLET/createWalletSystemMessage.ts +0 -22
- package/src/commitments/WALLET/createWalletToolFunctions.ts +0 -145
- package/src/commitments/WALLET/createWalletTools.ts +0 -129
- package/src/commitments/WALLET/getWalletCommitmentDocumentation.ts +0 -14
- package/src/commitments/WALLET/getWalletToolRuntimeAdapterOrDisabledResult.ts +0 -64
- package/src/commitments/WALLET/getWalletToolTitles.ts +0 -17
- package/src/commitments/WALLET/parseWalletToolArgs.ts +0 -231
- package/src/commitments/WALLET/resolveWalletRuntimeContext.ts +0 -23
- package/src/commitments/WALLET/setWalletToolRuntimeAdapter.ts +0 -26
- package/src/commitments/_common/createSerpSearchToolFunction.ts +0 -46
- package/umd/scripts/run-codex-prompts/prompts/replacePromptTodoStatusLine.d.ts +0 -7
- package/umd/src/book-2.0/agent-source/createAgentModelRequirements.useCommitmentAggregation.test.d.ts +0 -1
- package/umd/src/commitments/MEMORY/MEMORY.d.ts +0 -48
- package/umd/src/commitments/MEMORY/MEMORY.test.d.ts +0 -1
- package/umd/src/commitments/MEMORY/MemoryToolNames.d.ts +0 -11
- package/umd/src/commitments/MEMORY/MemoryToolRuntimeAdapter.d.ts +0 -149
- package/umd/src/commitments/MEMORY/createMemorySystemMessage.d.ts +0 -6
- package/umd/src/commitments/MEMORY/createMemoryToolFunctions.d.ts +0 -8
- package/umd/src/commitments/MEMORY/createMemoryTools.d.ts +0 -14
- package/umd/src/commitments/MEMORY/getMemoryCommitmentDocumentation.d.ts +0 -6
- package/umd/src/commitments/MEMORY/getMemoryToolRuntimeAdapterOrDisabledResult.d.ts +0 -17
- package/umd/src/commitments/MEMORY/getMemoryToolTitles.d.ts +0 -7
- package/umd/src/commitments/MEMORY/parseMemoryToolArgs.d.ts +0 -61
- package/umd/src/commitments/MEMORY/resolveMemoryRuntimeContext.d.ts +0 -8
- package/umd/src/commitments/MEMORY/setMemoryToolRuntimeAdapter.d.ts +0 -13
- package/umd/src/commitments/META/META.d.ts +0 -65
- package/umd/src/commitments/USE/aggregateUseCommitmentSystemMessages.d.ts +0 -32
- package/umd/src/commitments/USE_BROWSER/USE_BROWSER.d.ts +0 -58
- package/umd/src/commitments/USE_BROWSER/USE_BROWSER.test.d.ts +0 -1
- package/umd/src/commitments/USE_BROWSER/fetchUrlContentViaBrowser.d.ts +0 -13
- package/umd/src/commitments/USE_BROWSER/resolveRunBrowserToolForNode.d.ts +0 -10
- package/umd/src/commitments/USE_BROWSER/resolveRunBrowserToolForNode.test.d.ts +0 -1
- package/umd/src/commitments/USE_DEEPSEARCH/USE_DEEPSEARCH.d.ts +0 -47
- package/umd/src/commitments/USE_DEEPSEARCH/USE_DEEPSEARCH.test.d.ts +0 -1
- package/umd/src/commitments/USE_EMAIL/USE_EMAIL.d.ts +0 -38
- package/umd/src/commitments/USE_EMAIL/USE_EMAIL.test.d.ts +0 -1
- package/umd/src/commitments/USE_EMAIL/parseUseEmailCommitmentContent.d.ts +0 -21
- package/umd/src/commitments/USE_EMAIL/parseUseEmailCommitmentContent.test.d.ts +0 -1
- package/umd/src/commitments/USE_EMAIL/resolveSendEmailToolForNode.d.ts +0 -11
- package/umd/src/commitments/USE_EMAIL/sendEmailViaBrowser.d.ts +0 -13
- package/umd/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.d.ts +0 -46
- package/umd/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.test.d.ts +0 -1
- package/umd/src/commitments/USE_SPAWN/USE_SPAWN.d.ts +0 -38
- package/umd/src/commitments/USE_SPAWN/USE_SPAWN.test.d.ts +0 -1
- package/umd/src/commitments/USE_SPAWN/resolveSpawnAgentToolForNode.d.ts +0 -9
- package/umd/src/commitments/USE_SPAWN/spawnAgentViaBrowser.d.ts +0 -12
- package/umd/src/commitments/USE_TIME/USE_TIME.d.ts +0 -43
- package/umd/src/commitments/USE_TIME/USE_TIME.test.d.ts +0 -1
- package/umd/src/commitments/USE_TIMEOUT/TimeoutToolNames.d.ts +0 -11
- package/umd/src/commitments/USE_TIMEOUT/TimeoutToolRuntimeAdapter.d.ts +0 -212
- package/umd/src/commitments/USE_TIMEOUT/USE_TIMEOUT.d.ts +0 -38
- package/umd/src/commitments/USE_TIMEOUT/USE_TIMEOUT.test.d.ts +0 -1
- package/umd/src/commitments/USE_TIMEOUT/createTimeoutSystemMessage.d.ts +0 -6
- package/umd/src/commitments/USE_TIMEOUT/createTimeoutToolFunctions.d.ts +0 -8
- package/umd/src/commitments/USE_TIMEOUT/createTimeoutTools.d.ts +0 -7
- package/umd/src/commitments/USE_TIMEOUT/getTimeoutToolRuntimeAdapterOrDisabledResult.d.ts +0 -17
- package/umd/src/commitments/USE_TIMEOUT/parseTimeoutToolArgs.d.ts +0 -78
- package/umd/src/commitments/USE_TIMEOUT/resolveTimeoutRuntimeContext.d.ts +0 -8
- package/umd/src/commitments/USE_TIMEOUT/setTimeoutToolRuntimeAdapter.d.ts +0 -13
- package/umd/src/commitments/WALLET/WALLET.d.ts +0 -21
- package/umd/src/commitments/WALLET/WALLET.test.d.ts +0 -1
- package/umd/src/commitments/WALLET/WalletToolNames.d.ts +0 -12
- package/umd/src/commitments/WALLET/WalletToolRuntimeAdapter.d.ts +0 -163
- package/umd/src/commitments/WALLET/createWalletSystemMessage.d.ts +0 -6
- package/umd/src/commitments/WALLET/createWalletToolFunctions.d.ts +0 -8
- package/umd/src/commitments/WALLET/createWalletTools.d.ts +0 -7
- package/umd/src/commitments/WALLET/getWalletCommitmentDocumentation.d.ts +0 -6
- package/umd/src/commitments/WALLET/getWalletToolRuntimeAdapterOrDisabledResult.d.ts +0 -16
- package/umd/src/commitments/WALLET/getWalletToolTitles.d.ts +0 -7
- package/umd/src/commitments/WALLET/parseWalletToolArgs.d.ts +0 -51
- package/umd/src/commitments/WALLET/resolveWalletRuntimeContext.d.ts +0 -8
- package/umd/src/commitments/WALLET/setWalletToolRuntimeAdapter.d.ts +0 -13
- package/umd/src/commitments/_common/createSerpSearchToolFunction.d.ts +0 -12
- /package/esm/src/book-2.0/agent-source/{createAgentModelRequirements.useCommitmentAggregation.test.d.ts → createAgentModelRequirements.commitmentAggregation.test.d.ts} +0 -0
- /package/esm/src/{commitments/MEMORY/MEMORY.test.d.ts → cli/cli-commands/coder/boilerplateCount.test.d.ts} +0 -0
- /package/esm/src/{commitments/USE_BROWSER/USE_BROWSER.test.d.ts → cli/cli-commands/coder/generate-boilerplates.test.d.ts} +0 -0
- /package/esm/src/commitments/{META → META_DESCRIPTION}/META_DESCRIPTION.d.ts +0 -0
- /package/{esm/src/commitments/USE_BROWSER/resolveRunBrowserToolForNode.test.d.ts → umd/src/book-2.0/agent-source/createAgentModelRequirements.commitmentAggregation.test.d.ts} +0 -0
- /package/{esm/src/commitments/USE_DEEPSEARCH/USE_DEEPSEARCH.test.d.ts → umd/src/cli/cli-commands/coder/boilerplateCount.test.d.ts} +0 -0
- /package/{esm/src/commitments/USE_EMAIL/USE_EMAIL.test.d.ts → umd/src/cli/cli-commands/coder/generate-boilerplates.test.d.ts} +0 -0
- /package/umd/src/commitments/{META → META_DESCRIPTION}/META_DESCRIPTION.d.ts +0 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { spaceTrim } from 'spacetrim';
|
|
2
|
+
import { NotAllowed } from '../../../errors/NotAllowed';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Separator between the number of generated files and the number of prompts in each of them,
|
|
6
|
+
* for example `10*7`.
|
|
7
|
+
*
|
|
8
|
+
* @private internal utility of `ptbk coder`
|
|
9
|
+
*/
|
|
10
|
+
const BOILERPLATE_COUNT_SEPARATOR = '*';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Pattern of the `--count` option value, either `N` or `N*M`.
|
|
14
|
+
*/
|
|
15
|
+
const BOILERPLATE_COUNT_PATTERN = /^(?<filesCount>\d+)(?:\s*\*\s*(?<promptsPerFileCount>\d+))?$/u;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* How many prompt boilerplate files are generated and how many prompts each of them contains.
|
|
19
|
+
*
|
|
20
|
+
* @private internal utility of `ptbk coder`
|
|
21
|
+
*/
|
|
22
|
+
export type BoilerplateCount = {
|
|
23
|
+
/**
|
|
24
|
+
* Number of generated prompt boilerplate files.
|
|
25
|
+
*/
|
|
26
|
+
readonly filesCount: number;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Number of prompts written into each generated file.
|
|
30
|
+
*
|
|
31
|
+
* Note: More than one prompt per file is an advanced option - each prompt is one separate
|
|
32
|
+
* coding task separated by `---` and tagged with its own fresh emoji tag.
|
|
33
|
+
*/
|
|
34
|
+
readonly promptsPerFileCount: number;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Number of prompt boilerplate files and prompts per file used when `--count` is not provided.
|
|
39
|
+
*
|
|
40
|
+
* @private internal utility of `ptbk coder`
|
|
41
|
+
*/
|
|
42
|
+
export const DEFAULT_BOILERPLATE_COUNT: BoilerplateCount = {
|
|
43
|
+
filesCount: 5,
|
|
44
|
+
promptsPerFileCount: 1,
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Formats one boilerplate count back into the `N*M` notation of the `--count` option.
|
|
49
|
+
*
|
|
50
|
+
* @private internal utility of `ptbk coder`
|
|
51
|
+
*/
|
|
52
|
+
export function formatBoilerplateCount({ filesCount, promptsPerFileCount }: BoilerplateCount): string {
|
|
53
|
+
return `${filesCount}${BOILERPLATE_COUNT_SEPARATOR}${promptsPerFileCount}`;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Default value of the `--count` option rendered in the `N*M` notation, for example `5*1`.
|
|
58
|
+
*
|
|
59
|
+
* @private internal utility of `ptbk coder`
|
|
60
|
+
*/
|
|
61
|
+
export const DEFAULT_BOILERPLATE_COUNT_OPTION_VALUE = formatBoilerplateCount(DEFAULT_BOILERPLATE_COUNT);
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Description of the `--count` option shared by all commands which generate prompt boilerplates.
|
|
65
|
+
*
|
|
66
|
+
* @private internal utility of `ptbk coder`
|
|
67
|
+
*/
|
|
68
|
+
export const BOILERPLATE_COUNT_OPTION_DESCRIPTION = spaceTrim(`
|
|
69
|
+
Number of generated prompt boilerplate files, optionally with the number of prompts in each of them.
|
|
70
|
+
|
|
71
|
+
Use \`N\` (or \`N*1\`) for N files with one prompt each,
|
|
72
|
+
or the advanced \`N*M\` notation for N files with M prompts each, for example \`10*7\`.
|
|
73
|
+
`);
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Parses the `--count` option value into the number of files and the number of prompts in each of them.
|
|
77
|
+
*
|
|
78
|
+
* Both notations are supported:
|
|
79
|
+
* - `N` and `N*1` => N files with one prompt each
|
|
80
|
+
* - `N*M` => N files with M prompts each
|
|
81
|
+
*
|
|
82
|
+
* @private internal utility of `ptbk coder`
|
|
83
|
+
*/
|
|
84
|
+
export function parseBoilerplateCount(countOption: string): BoilerplateCount {
|
|
85
|
+
const normalizedCountOption = countOption.trim();
|
|
86
|
+
const match = BOILERPLATE_COUNT_PATTERN.exec(normalizedCountOption);
|
|
87
|
+
|
|
88
|
+
if (match === null) {
|
|
89
|
+
throw new NotAllowed(
|
|
90
|
+
spaceTrim(`
|
|
91
|
+
Invalid value for \`--count\`: \`${countOption}\`.
|
|
92
|
+
|
|
93
|
+
Use either \`N\` for N files with one prompt each,
|
|
94
|
+
or the advanced \`N*M\` notation for N files with M prompts each:
|
|
95
|
+
|
|
96
|
+
- \`--count 5\`
|
|
97
|
+
- \`--count 5*1\`
|
|
98
|
+
- \`--count 10*7\`
|
|
99
|
+
`),
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
const filesCount = Number(match.groups?.filesCount);
|
|
104
|
+
const promptsPerFileCount =
|
|
105
|
+
match.groups?.promptsPerFileCount === undefined
|
|
106
|
+
? DEFAULT_BOILERPLATE_COUNT.promptsPerFileCount
|
|
107
|
+
: Number(match.groups.promptsPerFileCount);
|
|
108
|
+
|
|
109
|
+
assertsPositiveBoilerplateCountPart(filesCount, countOption, 'number of generated files');
|
|
110
|
+
assertsPositiveBoilerplateCountPart(promptsPerFileCount, countOption, 'number of prompts in each file');
|
|
111
|
+
|
|
112
|
+
return { filesCount, promptsPerFileCount };
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Asserts that one part of the `--count` option value is a positive integer.
|
|
117
|
+
*
|
|
118
|
+
* @private internal utility of `parseBoilerplateCount`
|
|
119
|
+
*/
|
|
120
|
+
function assertsPositiveBoilerplateCountPart(
|
|
121
|
+
countPart: number,
|
|
122
|
+
countOption: string,
|
|
123
|
+
countPartDescription: string,
|
|
124
|
+
): void {
|
|
125
|
+
if (Number.isInteger(countPart) && countPart > 0) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
throw new NotAllowed(
|
|
130
|
+
spaceTrim(`
|
|
131
|
+
Invalid value for \`--count\`: \`${countOption}\`.
|
|
132
|
+
|
|
133
|
+
The ${countPartDescription} must be **a positive integer**, for example \`--count 10*7\`.
|
|
134
|
+
`),
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// Note: [🟡] Code for coder boilerplate count [boilerplateCount](src/cli/cli-commands/coder/boilerplateCount.ts) should never be published outside of `@promptbook/cli`
|
|
139
|
+
// Note: [💞] Ignore a discrepancy between file name and exported helper names
|
|
@@ -13,6 +13,13 @@ import {
|
|
|
13
13
|
normalizeCoderGitSyncCliOptions,
|
|
14
14
|
} from '../common/coderGitSyncCliOptions';
|
|
15
15
|
import { handleActionErrors } from '../common/handleActionErrors';
|
|
16
|
+
import type { BoilerplateCount } from './boilerplateCount';
|
|
17
|
+
import {
|
|
18
|
+
BOILERPLATE_COUNT_OPTION_DESCRIPTION,
|
|
19
|
+
DEFAULT_BOILERPLATE_COUNT_OPTION_VALUE,
|
|
20
|
+
formatBoilerplateCount,
|
|
21
|
+
parseBoilerplateCount,
|
|
22
|
+
} from './boilerplateCount';
|
|
16
23
|
import {
|
|
17
24
|
buildCoderPromptSection,
|
|
18
25
|
getDefaultCoderPromptTemplateDefinitions,
|
|
@@ -39,7 +46,7 @@ export function $initializeCoderGenerateBoilerplatesCommand(program: Program): $
|
|
|
39
46
|
),
|
|
40
47
|
);
|
|
41
48
|
|
|
42
|
-
command.option('--count <count>',
|
|
49
|
+
command.option('--count <count>', BOILERPLATE_COUNT_OPTION_DESCRIPTION, DEFAULT_BOILERPLATE_COUNT_OPTION_VALUE);
|
|
43
50
|
command.option(
|
|
44
51
|
'--template <template>',
|
|
45
52
|
spaceTrim(`
|
|
@@ -59,7 +66,7 @@ export function $initializeCoderGenerateBoilerplatesCommand(program: Program): $
|
|
|
59
66
|
readonly template?: string;
|
|
60
67
|
} & CoderGitSyncCliOptions;
|
|
61
68
|
|
|
62
|
-
const
|
|
69
|
+
const boilerplateCount = parseBoilerplateCount(countOption);
|
|
63
70
|
const gitSync = normalizeCoderGitSyncCliOptions(cliOptions as CoderGitSyncCliOptions);
|
|
64
71
|
const projectPath = process.cwd();
|
|
65
72
|
|
|
@@ -72,14 +79,14 @@ export function $initializeCoderGenerateBoilerplatesCommand(program: Program): $
|
|
|
72
79
|
|
|
73
80
|
await generatePromptBoilerplate({
|
|
74
81
|
projectPath,
|
|
75
|
-
|
|
82
|
+
boilerplateCount,
|
|
76
83
|
templateOption,
|
|
77
84
|
});
|
|
78
85
|
|
|
79
86
|
await $commitCoderChanges({
|
|
80
87
|
gitSync,
|
|
81
88
|
projectPath,
|
|
82
|
-
commitMessage: `Prompts ${
|
|
89
|
+
commitMessage: `Prompts ${formatBoilerplateCount(boilerplateCount)}`,
|
|
83
90
|
});
|
|
84
91
|
|
|
85
92
|
return process.exit(0);
|
|
@@ -94,13 +101,15 @@ export function $initializeCoderGenerateBoilerplatesCommand(program: Program): $
|
|
|
94
101
|
*/
|
|
95
102
|
export async function generatePromptBoilerplate({
|
|
96
103
|
projectPath,
|
|
97
|
-
|
|
104
|
+
boilerplateCount,
|
|
98
105
|
templateOption,
|
|
99
106
|
}: {
|
|
100
107
|
readonly projectPath: string;
|
|
101
|
-
readonly
|
|
108
|
+
readonly boilerplateCount: BoilerplateCount;
|
|
102
109
|
readonly templateOption?: string;
|
|
103
110
|
}): Promise<void> {
|
|
111
|
+
const { filesCount, promptsPerFileCount } = boilerplateCount;
|
|
112
|
+
|
|
104
113
|
// Note: Import these dynamically to avoid circular dependencies and keep CLI fast
|
|
105
114
|
const { buildPromptFilename, getPromptNumbering } = await import(
|
|
106
115
|
'../../../../scripts/utils/prompts/getPromptNumbering'
|
|
@@ -125,8 +134,10 @@ export async function generatePromptBoilerplate({
|
|
|
125
134
|
colors.blue(`Highest existing number for ${promptNumbering.datePrefix} found: ${highestNumberFormatted}`),
|
|
126
135
|
);
|
|
127
136
|
|
|
137
|
+
// Note: Every single generated prompt is one separate coding task, so each of them reserves its own fresh emoji tag
|
|
138
|
+
const promptsCount = filesCount * promptsPerFileCount;
|
|
128
139
|
const { availableCount, selectedEmojis } = await getFreshPromptEmojiTags({
|
|
129
|
-
count:
|
|
140
|
+
count: promptsCount,
|
|
130
141
|
rootDir: projectPath,
|
|
131
142
|
});
|
|
132
143
|
|
|
@@ -143,7 +154,9 @@ export async function generatePromptBoilerplate({
|
|
|
143
154
|
for (let i = 0; i < filesCount; i++) {
|
|
144
155
|
const number = promptNumbering.startNumber + i * promptNumbering.step;
|
|
145
156
|
const title = titles[i % titles.length]!;
|
|
146
|
-
const
|
|
157
|
+
const emojiTags = selectedEmojis
|
|
158
|
+
.slice(i * promptsPerFileCount, (i + 1) * promptsPerFileCount)
|
|
159
|
+
.map((emoji) => formatPromptEmojiTag(emoji));
|
|
147
160
|
const filename = buildPromptFilename(
|
|
148
161
|
promptNumbering.datePrefix,
|
|
149
162
|
number,
|
|
@@ -151,39 +164,18 @@ export async function generatePromptBoilerplate({
|
|
|
151
164
|
);
|
|
152
165
|
const filepath = join(PROMPTS_DIRECTORY_PATH, filename);
|
|
153
166
|
const absoluteFilepath = join(projectPath, filepath);
|
|
154
|
-
const
|
|
155
|
-
|
|
156
|
-
statusLine: '[-]',
|
|
157
|
-
emojiTag,
|
|
167
|
+
const content = buildBoilerplatePromptFileContent({
|
|
168
|
+
emojiTags,
|
|
158
169
|
title,
|
|
159
170
|
body: promptTemplate.content,
|
|
160
171
|
});
|
|
161
|
-
const content = spaceTrim(
|
|
162
|
-
(block) => `
|
|
163
|
-
|
|
164
|
-
${block(one)}
|
|
165
|
-
|
|
166
|
-
---
|
|
167
|
-
|
|
168
|
-
${block(one)}
|
|
169
|
-
|
|
170
|
-
---
|
|
171
|
-
|
|
172
|
-
${block(one)}
|
|
173
|
-
|
|
174
|
-
---
|
|
175
|
-
|
|
176
|
-
${block(one)}
|
|
177
|
-
|
|
178
|
-
`,
|
|
179
|
-
);
|
|
180
172
|
|
|
181
173
|
filesToCreate.push({
|
|
182
174
|
filepath,
|
|
183
175
|
absoluteFilepath,
|
|
184
176
|
filename,
|
|
185
177
|
content,
|
|
186
|
-
|
|
178
|
+
emojiTags,
|
|
187
179
|
number,
|
|
188
180
|
});
|
|
189
181
|
}
|
|
@@ -193,26 +185,42 @@ export async function generatePromptBoilerplate({
|
|
|
193
185
|
|
|
194
186
|
for (const file of filesToCreate) {
|
|
195
187
|
writeFileSync(file.absoluteFilepath, file.content, 'utf-8');
|
|
196
|
-
console.info(colors.green(`✓ Created: ${file.filename} with ${
|
|
188
|
+
console.info(colors.green(`✓ Created: ${file.filename} with ${file.emojiTags.join(' ')}`));
|
|
197
189
|
}
|
|
198
190
|
|
|
199
|
-
console.info(
|
|
191
|
+
console.info(
|
|
192
|
+
colors.bgGreen(
|
|
193
|
+
` Successfully created ${promptsCount} prompts in ${filesToCreate.length} prompt boilerplate files! `,
|
|
194
|
+
),
|
|
195
|
+
);
|
|
200
196
|
}
|
|
201
197
|
|
|
202
198
|
/**
|
|
203
|
-
*
|
|
199
|
+
* Builds the markdown content of one generated prompt file with one prompt section per emoji tag.
|
|
200
|
+
*
|
|
201
|
+
* Multiple prompts in one file are separated by the `---` separator, exactly like the prompt runner expects them.
|
|
204
202
|
*
|
|
205
203
|
* @private internal utility of `generatePromptBoilerplate` command
|
|
206
204
|
*/
|
|
207
|
-
function
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
205
|
+
function buildBoilerplatePromptFileContent({
|
|
206
|
+
emojiTags,
|
|
207
|
+
title,
|
|
208
|
+
body,
|
|
209
|
+
}: {
|
|
210
|
+
readonly emojiTags: ReadonlyArray<string>;
|
|
211
|
+
readonly title: string;
|
|
212
|
+
readonly body: string;
|
|
213
|
+
}): string {
|
|
214
|
+
return emojiTags
|
|
215
|
+
.map((emojiTag) =>
|
|
216
|
+
buildCoderPromptSection({
|
|
217
|
+
statusLine: '[-]',
|
|
218
|
+
emojiTag,
|
|
219
|
+
title,
|
|
220
|
+
body,
|
|
221
|
+
}),
|
|
222
|
+
)
|
|
223
|
+
.join('\n\n---\n\n');
|
|
216
224
|
}
|
|
217
225
|
|
|
218
226
|
/**
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { DEFAULT_BOILERPLATE_COUNT_OPTION_VALUE } from './boilerplateCount';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Default npm scripts initialized by `ptbk coder init`.
|
|
3
5
|
*/
|
|
4
6
|
const DEFAULT_CODER_PACKAGE_JSON_SCRIPTS = {
|
|
5
|
-
'coder:generate-boilerplates':
|
|
7
|
+
'coder:generate-boilerplates': `ptbk coder generate-boilerplates --count ${DEFAULT_BOILERPLATE_COUNT_OPTION_VALUE} --template ./prompts/templates/common.md`,
|
|
6
8
|
'coder:add': 'ptbk coder add --template ./prompts/templates/common.md',
|
|
7
9
|
'coder:run':
|
|
8
10
|
'ptbk coder run --harness openai-codex --model gpt-5.6-terra --thinking-level max --agent agents/developer.book --context AGENTS.md --test-before yes-and-fix',
|
|
@@ -15,6 +15,7 @@ import { getHarnessDefinition } from '../common/harness/HarnessDefinition';
|
|
|
15
15
|
import type { PromptRunnerHarnessName } from '../common/promptRunnerCliOptions';
|
|
16
16
|
import { AGENT_CODING_FILE_PATH } from './agentCodingFile';
|
|
17
17
|
import { AGENTS_FILE_PATH } from './agentsFile';
|
|
18
|
+
import { DEFAULT_BOILERPLATE_COUNT } from './boilerplateCount';
|
|
18
19
|
import { getDefaultCoderProjectPromptTemplateDefinitions } from './boilerplateTemplates';
|
|
19
20
|
import { CODER_DEVELOPER_AGENT_FILE_PATH } from './ensureCoderDeveloperAgentFile';
|
|
20
21
|
import { formatDisplayPath } from './formatDisplayPath';
|
|
@@ -89,7 +90,7 @@ export function $initializeCoderInitCommand(program: Program): $side_effect {
|
|
|
89
90
|
|
|
90
91
|
const summary = await initializeCoderProjectConfiguration(projectPath);
|
|
91
92
|
printInitializationSummary(summary);
|
|
92
|
-
await generatePromptBoilerplate({ projectPath,
|
|
93
|
+
await generatePromptBoilerplate({ projectPath, boilerplateCount: DEFAULT_BOILERPLATE_COUNT });
|
|
93
94
|
|
|
94
95
|
await $commitCoderChanges({
|
|
95
96
|
gitSync,
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import colors from 'colors';
|
|
2
|
-
import
|
|
2
|
+
import {
|
|
3
3
|
Command as Program /* <- Note: [🔸] Using Program because Command is misleading name */,
|
|
4
|
+
Option,
|
|
4
5
|
} from 'commander';
|
|
5
6
|
import { spaceTrim } from 'spacetrim';
|
|
7
|
+
import type { VerifyPromptsOrder } from '../../../../scripts/verify-prompts/VerifyPromptsOrder';
|
|
8
|
+
import {
|
|
9
|
+
DEFAULT_VERIFY_PROMPTS_ORDER,
|
|
10
|
+
VERIFY_PROMPTS_ORDER_DESCRIPTIONS,
|
|
11
|
+
VERIFY_PROMPTS_ORDER_VALUES,
|
|
12
|
+
} from '../../../../scripts/verify-prompts/VerifyPromptsOrder';
|
|
6
13
|
import type { $side_effect } from '../../../utils/organization/$side_effect';
|
|
7
14
|
import type { CoderGitSyncCliOptions } from '../common/coderGitSyncCliOptions';
|
|
8
15
|
import {
|
|
@@ -33,6 +40,7 @@ export function $initializeCoderVerifyCommand(program: Program): $side_effect {
|
|
|
33
40
|
- Auto-appends repair prompts for incomplete work
|
|
34
41
|
- Processes files with all-done prompts first
|
|
35
42
|
- Supports ignoring matching prompt candidates for one verification run
|
|
43
|
+
- Supports processing the prompt files from the earliest, from the latest or in random order
|
|
36
44
|
|
|
37
45
|
${block(CODER_GIT_SYNC_DESCRIPTION)}
|
|
38
46
|
|
|
@@ -41,7 +49,23 @@ export function $initializeCoderVerifyCommand(program: Program): $side_effect {
|
|
|
41
49
|
),
|
|
42
50
|
);
|
|
43
51
|
|
|
44
|
-
command.
|
|
52
|
+
command.addOption(
|
|
53
|
+
new Option(
|
|
54
|
+
'--order <order>',
|
|
55
|
+
spaceTrim(
|
|
56
|
+
(block) => `
|
|
57
|
+
Order in which the prompt files are processed:
|
|
58
|
+
${block(
|
|
59
|
+
VERIFY_PROMPTS_ORDER_VALUES.map(
|
|
60
|
+
(order) => `- ${order}: ${VERIFY_PROMPTS_ORDER_DESCRIPTIONS[order]}`,
|
|
61
|
+
).join('\n'),
|
|
62
|
+
)}
|
|
63
|
+
`,
|
|
64
|
+
),
|
|
65
|
+
)
|
|
66
|
+
.choices([...VERIFY_PROMPTS_ORDER_VALUES])
|
|
67
|
+
.default(DEFAULT_VERIFY_PROMPTS_ORDER),
|
|
68
|
+
);
|
|
45
69
|
command.option(
|
|
46
70
|
'--ignore <candidate-text>',
|
|
47
71
|
'Ignore prompt files whose filename or first prompt line contains the given text (repeatable)',
|
|
@@ -52,8 +76,8 @@ export function $initializeCoderVerifyCommand(program: Program): $side_effect {
|
|
|
52
76
|
|
|
53
77
|
command.action(
|
|
54
78
|
handleActionErrors(async (cliOptions) => {
|
|
55
|
-
const {
|
|
56
|
-
readonly
|
|
79
|
+
const { order, ignore } = cliOptions as {
|
|
80
|
+
readonly order: VerifyPromptsOrder;
|
|
57
81
|
readonly ignore: ReadonlyArray<string>;
|
|
58
82
|
} & CoderGitSyncCliOptions;
|
|
59
83
|
|
|
@@ -63,7 +87,7 @@ export function $initializeCoderVerifyCommand(program: Program): $side_effect {
|
|
|
63
87
|
const { verifyPrompts } = await import('../../../../scripts/verify-prompts/verify-prompts');
|
|
64
88
|
|
|
65
89
|
try {
|
|
66
|
-
await verifyPrompts({
|
|
90
|
+
await verifyPrompts({ order, ignore, gitSync });
|
|
67
91
|
} catch (error) {
|
|
68
92
|
console.error(colors.bgRed('Prompt verification failed:'), error);
|
|
69
93
|
return process.exit(1);
|
|
@@ -66,7 +66,7 @@ export class ActionCommitmentDefinition extends BaseCommitmentDefinition<'ACTION
|
|
|
66
66
|
Research Assistant
|
|
67
67
|
|
|
68
68
|
PERSONA You are a helpful research assistant
|
|
69
|
-
USE
|
|
69
|
+
USE MCP https://mcp.example.com/server
|
|
70
70
|
RULE Always cite your sources when providing information from the web
|
|
71
71
|
\`\`\`
|
|
72
72
|
|
|
@@ -86,8 +86,8 @@ export class ActionCommitmentDefinition extends BaseCommitmentDefinition<'ACTION
|
|
|
86
86
|
Code Assistant
|
|
87
87
|
|
|
88
88
|
PERSONA You are a programming assistant
|
|
89
|
-
USE
|
|
90
|
-
USE
|
|
89
|
+
USE PROJECT https://github.com/example/project
|
|
90
|
+
USE MCP https://mcp.example.com/server
|
|
91
91
|
RULE Prefer the narrowest useful capability for the task.
|
|
92
92
|
\`\`\`
|
|
93
93
|
`);
|
|
@@ -20,7 +20,7 @@ import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
|
|
|
20
20
|
*/
|
|
21
21
|
export class MetaDescriptionCommitmentDefinition extends BaseCommitmentDefinition<'META DESCRIPTION'> {
|
|
22
22
|
public constructor() {
|
|
23
|
-
super('META DESCRIPTION'
|
|
23
|
+
super('META DESCRIPTION');
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
/**
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { spaceTrim } from 'spacetrim';
|
|
2
|
+
import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
|
|
3
|
+
import { TODO_USE } from '../../utils/organization/TODO_USE';
|
|
4
|
+
import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* META FULLNAME commitment definition
|
|
8
|
+
*
|
|
9
|
+
* The `META FULLNAME` commitment sets the full display name of the agent, which can differ
|
|
10
|
+
* from the agent name on the first line of the agent source, for example when the agent
|
|
11
|
+
* should be presented with academic titles.
|
|
12
|
+
* This commitment is metadata-only and does not modify model requirements.
|
|
13
|
+
*
|
|
14
|
+
* @private [🪔] Maybe export the commitments through some package
|
|
15
|
+
*/
|
|
16
|
+
export class MetaFullnameCommitmentDefinition extends BaseCommitmentDefinition<'META FULLNAME'> {
|
|
17
|
+
public constructor() {
|
|
18
|
+
super('META FULLNAME');
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Short one-line description of META FULLNAME.
|
|
23
|
+
*/
|
|
24
|
+
get description(): string {
|
|
25
|
+
return "Set the agent's full display name.";
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Icon for this commitment.
|
|
30
|
+
*/
|
|
31
|
+
get icon(): string {
|
|
32
|
+
return '🪪';
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Markdown documentation for META FULLNAME commitment.
|
|
37
|
+
*/
|
|
38
|
+
get documentation(): string {
|
|
39
|
+
return spaceTrim(`
|
|
40
|
+
# META FULLNAME
|
|
41
|
+
|
|
42
|
+
Sets the full display name of the agent shown in profiles, chats, and exports.
|
|
43
|
+
|
|
44
|
+
## Key aspects
|
|
45
|
+
|
|
46
|
+
- Does not modify the agent's behavior or responses.
|
|
47
|
+
- If not present, the agent name from the first line of the agent source is used.
|
|
48
|
+
- If multiple \`META FULLNAME\` commitments are specified, the last one takes precedence.
|
|
49
|
+
|
|
50
|
+
## Examples
|
|
51
|
+
|
|
52
|
+
\`\`\`book
|
|
53
|
+
Pavol Hejný
|
|
54
|
+
|
|
55
|
+
META FULLNAME Dr. Ing. Pavol Hejný, PhD.
|
|
56
|
+
PERSONA Developer with 10 years of experience in building AI applications.
|
|
57
|
+
\`\`\`
|
|
58
|
+
`);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
applyToAgentModelRequirements(requirements: AgentModelRequirements, content: string): AgentModelRequirements {
|
|
62
|
+
TODO_USE(content);
|
|
63
|
+
|
|
64
|
+
// META FULLNAME does not modify the model requirements.
|
|
65
|
+
// It is consumed by profile parsing.
|
|
66
|
+
return requirements;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { spaceTrim } from 'spacetrim';
|
|
2
|
+
import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
|
|
3
|
+
import { TODO_USE } from '../../utils/organization/TODO_USE';
|
|
4
|
+
import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* META ID commitment definition
|
|
8
|
+
*
|
|
9
|
+
* The `META ID` commitment carries the permanent id of the agent when an agent source is moved
|
|
10
|
+
* between systems. It is a low-level commitment which is normally written and stripped by the
|
|
11
|
+
* persistence layer instead of being written by hand.
|
|
12
|
+
* This commitment is metadata-only and does not modify model requirements.
|
|
13
|
+
*
|
|
14
|
+
* @private [🪔] Maybe export the commitments through some package
|
|
15
|
+
*/
|
|
16
|
+
export class MetaIdCommitmentDefinition extends BaseCommitmentDefinition<'META ID'> {
|
|
17
|
+
public constructor() {
|
|
18
|
+
super('META ID');
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Short one-line description of META ID.
|
|
23
|
+
*/
|
|
24
|
+
get description(): string {
|
|
25
|
+
return "Set the agent's permanent id.";
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Icon for this commitment.
|
|
30
|
+
*/
|
|
31
|
+
get icon(): string {
|
|
32
|
+
return '🔖';
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* `META ID` is written by the persistence layer, not by agent authors.
|
|
37
|
+
*/
|
|
38
|
+
override get isLowLevel(): boolean {
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Markdown documentation for META ID commitment.
|
|
44
|
+
*/
|
|
45
|
+
get documentation(): string {
|
|
46
|
+
return spaceTrim(`
|
|
47
|
+
# META ID
|
|
48
|
+
|
|
49
|
+
Carries the permanent id of the agent inside the agent source.
|
|
50
|
+
|
|
51
|
+
## Key aspects
|
|
52
|
+
|
|
53
|
+
- Does not modify the agent's behavior or responses.
|
|
54
|
+
- Written and stripped by the persistence layer, it should not be written by hand.
|
|
55
|
+
- When an agent source without \`META ID\` is stored, a fresh permanent id is assigned.
|
|
56
|
+
- If multiple \`META ID\` commitments are specified, the last one takes precedence.
|
|
57
|
+
|
|
58
|
+
## Examples
|
|
59
|
+
|
|
60
|
+
\`\`\`book
|
|
61
|
+
My agent
|
|
62
|
+
|
|
63
|
+
META ID doQMRg82izNfJa
|
|
64
|
+
PERSONA My agent is an expert in something.
|
|
65
|
+
\`\`\`
|
|
66
|
+
`);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
applyToAgentModelRequirements(requirements: AgentModelRequirements, content: string): AgentModelRequirements {
|
|
70
|
+
TODO_USE(content);
|
|
71
|
+
|
|
72
|
+
// META ID does not modify the model requirements.
|
|
73
|
+
// It is consumed by profile parsing and agent persistence.
|
|
74
|
+
return requirements;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -1,61 +1,13 @@
|
|
|
1
1
|
import { EnvironmentMismatchError } from '../../errors/EnvironmentMismatchError';
|
|
2
2
|
import { $isRunningInNode } from '../../utils/environment/$isRunningInNode';
|
|
3
3
|
import { spaceTrim } from '../../utils/organization/spaceTrim';
|
|
4
|
-
import { fetchUrlContent } from '../USE_BROWSER/fetchUrlContent';
|
|
5
|
-
import { resolveRunBrowserToolForNode } from '../USE_BROWSER/resolveRunBrowserToolForNode';
|
|
6
|
-
import { resolveSendEmailToolForNode } from '../USE_EMAIL/resolveSendEmailToolForNode';
|
|
7
|
-
import { resolveSpawnAgentToolForNode } from '../USE_SPAWN/resolveSpawnAgentToolForNode';
|
|
8
4
|
import type { CommitmentToolFunctions } from './commitmentToolFunctions';
|
|
9
5
|
import { collectCommitmentToolFunctions, createToolFunctionsProxy } from './commitmentToolFunctions';
|
|
10
6
|
|
|
11
|
-
/**
|
|
12
|
-
* Map of node tool functions.
|
|
13
|
-
*/
|
|
14
|
-
const nodeToolFunctions: CommitmentToolFunctions = {
|
|
15
|
-
/**
|
|
16
|
-
* @@@
|
|
17
|
-
*
|
|
18
|
-
* Note: [??] This function has implementation both for browser and node, this is the full one for node
|
|
19
|
-
*/
|
|
20
|
-
async fetch_url_content(args: { url: string }): Promise<string> {
|
|
21
|
-
console.log('!!!! [Tool] fetch_url_content called', { args });
|
|
22
|
-
|
|
23
|
-
const { url } = args;
|
|
24
|
-
|
|
25
|
-
return await fetchUrlContent(url);
|
|
26
|
-
},
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* @@@
|
|
30
|
-
*
|
|
31
|
-
* Note: [??] This function has implementation both for browser and node, this is the server one for node
|
|
32
|
-
*/
|
|
33
|
-
run_browser: resolveRunBrowserToolForNode(),
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* @@@
|
|
37
|
-
*
|
|
38
|
-
* Note: [??] This function has implementation both for browser and node, this is the server one for node
|
|
39
|
-
*/
|
|
40
|
-
send_email: resolveSendEmailToolForNode(),
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* @@@
|
|
44
|
-
*
|
|
45
|
-
* Note: [??] This function has implementation both for browser and node, this is the server one for node
|
|
46
|
-
*/
|
|
47
|
-
spawn_agent: resolveSpawnAgentToolForNode(),
|
|
48
|
-
|
|
49
|
-
// TODO: !!!! Unhardcode, make proper server function register from definitions
|
|
50
|
-
};
|
|
51
|
-
|
|
52
7
|
/**
|
|
53
8
|
* Constant for node tool functions proxy.
|
|
54
9
|
*/
|
|
55
|
-
const nodeToolFunctionsProxy = createToolFunctionsProxy(
|
|
56
|
-
...collectCommitmentToolFunctions(),
|
|
57
|
-
...nodeToolFunctions,
|
|
58
|
-
}));
|
|
10
|
+
const nodeToolFunctionsProxy = createToolFunctionsProxy(collectCommitmentToolFunctions);
|
|
59
11
|
|
|
60
12
|
/**
|
|
61
13
|
* Gets all function implementations provided by all commitments
|