@promptbook/cli 0.114.0-3 → 0.114.0-4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/README.md +1 -9
  2. package/apps/agents-server/{USE_TIMEOUT_CHIP_QA.md → TIMEOUT_CHIP_QA.md} +1 -1
  3. package/apps/agents-server/src/app/agents/[agentName]/api/chat/resolveAgentChatRouteContext.ts +5 -12
  4. package/apps/agents-server/src/app/agents/[agentName]/api/voice/route.ts +4 -9
  5. package/apps/agents-server/src/app/api/scrape/route.ts +1 -1
  6. package/apps/agents-server/src/app/layout.tsx +25 -0
  7. package/apps/agents-server/src/app/system/user-wallet/UserWalletDraft.ts +2 -2
  8. package/apps/agents-server/src/components/AgentProfile/AgentCapabilityChips.tsx +1 -24
  9. package/apps/agents-server/src/components/Header/Header.tsx +8 -0
  10. package/apps/agents-server/src/components/Header/HeaderTypes.ts +5 -0
  11. package/apps/agents-server/src/components/Header/buildHeaderSystemMenuItems.ts +118 -30
  12. package/apps/agents-server/src/components/Header/resolveHeaderSystemActivities.ts +86 -0
  13. package/apps/agents-server/src/components/Homepage/AgentCard.tsx +0 -3
  14. package/apps/agents-server/src/components/LayoutWrapper/LayoutWrapper.tsx +8 -0
  15. package/apps/agents-server/src/components/NewAgentDialog/NewAgentWizardState.ts +0 -12
  16. package/apps/agents-server/src/components/NewAgentDialog/NewAgentWizardUseSetupStep.tsx +0 -58
  17. package/apps/agents-server/src/components/NewAgentDialog/newAgentWizardPresets.ts +0 -56
  18. package/apps/agents-server/src/components/WalletRecordDialog/useWalletRecordDialogState.ts +1 -1
  19. package/apps/agents-server/src/languages/ServerTranslationKeys.ts +0 -10
  20. package/apps/agents-server/src/languages/translations/czech.yaml +0 -10
  21. package/apps/agents-server/src/languages/translations/english.yaml +0 -10
  22. package/apps/agents-server/src/message-providers/email/smtp/SmtpMessageProvider.ts +1 -1
  23. package/apps/agents-server/src/tools/$provideOpenAiAgentKitExecutionToolsForServer.ts +0 -191
  24. package/apps/agents-server/src/tools/$provideOpenAiAssistantExecutionToolsForServer.ts +0 -3
  25. package/apps/agents-server/src/tools/run_browser.ts +1 -1
  26. package/apps/agents-server/src/tools/send_email.ts +3 -3
  27. package/apps/agents-server/src/utils/handleChatCompletion/createHandleChatCompletionPromptContext.ts +0 -1
  28. package/apps/agents-server/src/utils/handleChatCompletion/resolveHandleChatCompletionRuntime.ts +4 -12
  29. package/apps/agents-server/src/utils/manGoOnboarding/manGoOnboardingAgentBooks.ts +0 -1
  30. package/apps/agents-server/src/utils/messages/parseUseEmailSmtpCredential.ts +1 -1
  31. package/apps/agents-server/src/utils/resolveUseEmailSmtpCredential.ts +1 -1
  32. package/apps/agents-server/src/utils/useEmailSmtpWalletConstants.ts +5 -5
  33. package/apps/agents-server/src/utils/userChat/createRunUserChatJobExecutionContext.ts +5 -12
  34. package/apps/agents-server/src/utils/userWallet/UserWalletRecord.ts +1 -1
  35. package/apps/agents-server/src/utils/userWallet/resolveUseEmailSmtpCredentialFromWallet.ts +1 -1
  36. package/apps/agents-server/src/utils/vpsSelfUpdate/deleteVpsSelfUpdateInstalledVersion.ts +2 -1
  37. package/apps/agents-server/src/utils/vpsSelfUpdate/isVpsSelfUpdateJobRunning.ts +16 -0
  38. package/apps/agents-server/src/utils/vpsSelfUpdate/startVpsSelfUpdate.ts +2 -1
  39. package/apps/agents-server/src/utils/vpsSelfUpdate.ts +1 -0
  40. package/esm/index.es.js +1317 -4970
  41. package/esm/index.es.js.map +1 -1
  42. package/esm/src/book-2.0/agent-source/AgentBasicInformation.d.ts +3 -3
  43. package/esm/src/cli/cli-commands/coder/boilerplateCount.d.ts +52 -0
  44. package/esm/src/cli/cli-commands/coder/generate-boilerplates.d.ts +3 -2
  45. package/esm/src/commitments/{COMPONENT/COMPONENT.d.ts → META_FULLNAME/META_FULLNAME.d.ts} +8 -5
  46. package/esm/src/commitments/META_ID/META_ID.d.ts +32 -0
  47. package/esm/src/commitments/index.d.ts +4 -12
  48. package/esm/src/llm-providers/agent/Agent.d.ts +1 -1
  49. package/esm/src/llm-providers/openai/OpenAiAgentKitExecutionToolsToolBuilder.d.ts +1 -1
  50. package/esm/src/{commitments/USE_BROWSER → scrapers/_common/utils}/fetchUrlContent.d.ts +2 -3
  51. package/esm/src/version.d.ts +1 -1
  52. package/package.json +1 -1
  53. package/src/_packages/components.readme.md +1 -1
  54. package/src/book-2.0/agent-source/AgentBasicInformation.ts +3 -9
  55. package/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments/filterCommitmentsForAgentModelRequirements.ts +0 -23
  56. package/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments.ts +0 -2
  57. package/src/book-2.0/agent-source/parseAgentSource/applyMetaCommitment.ts +16 -31
  58. package/src/book-2.0/agent-source/parseAgentSource/createCapabilitiesFromCommitment.ts +0 -35
  59. package/src/book-2.0/book-language-documentation/bookLanguageDocumentationExamples.ts +0 -25
  60. package/src/book-2.0/book-language-documentation/createStandaloneBookLanguageMarkdown.ts +2 -10
  61. package/src/book-2.0/book-language-documentation/czechBookLanguageManualDictionary.ts +7 -32
  62. package/src/book-2.0/book-language-documentation/englishBookLanguageManualDictionary.ts +6 -31
  63. package/src/book-components/BookEditor/useBookEditorMonacoLanguage.ts +1 -1
  64. package/src/cli/cli-commands/coder/boilerplateCount.ts +139 -0
  65. package/src/cli/cli-commands/coder/generate-boilerplates.ts +52 -44
  66. package/src/cli/cli-commands/coder/getDefaultCoderPackageJsonScripts.ts +3 -1
  67. package/src/cli/cli-commands/coder/init.ts +2 -1
  68. package/src/commitments/ACTION/ACTION.ts +3 -3
  69. package/src/commitments/{META → META_DESCRIPTION}/META_DESCRIPTION.ts +1 -1
  70. package/src/commitments/META_FULLNAME/META_FULLNAME.ts +70 -0
  71. package/src/commitments/META_ID/META_ID.ts +78 -0
  72. package/src/commitments/_common/getAllCommitmentsToolFunctionsForNode.ts +1 -49
  73. package/src/commitments/index.ts +6 -24
  74. package/src/llm-providers/agent/Agent.ts +1 -1
  75. package/src/llm-providers/openai/OpenAiAgentKitExecutionToolsToolBuilder.ts +2 -2
  76. package/src/other/templates/getTemplatesPipelineCollection.ts +830 -649
  77. package/src/{commitments/USE_BROWSER → scrapers/_common/utils}/fetchUrlContent.ts +8 -9
  78. package/src/version.ts +2 -2
  79. package/src/versions.txt +1 -0
  80. package/umd/index.umd.js +1321 -4974
  81. package/umd/index.umd.js.map +1 -1
  82. package/umd/src/book-2.0/agent-source/AgentBasicInformation.d.ts +3 -3
  83. package/umd/src/cli/cli-commands/coder/boilerplateCount.d.ts +52 -0
  84. package/umd/src/cli/cli-commands/coder/generate-boilerplates.d.ts +3 -2
  85. package/umd/src/commitments/{COMPONENT/COMPONENT.d.ts → META_FULLNAME/META_FULLNAME.d.ts} +8 -5
  86. package/umd/src/commitments/META_ID/META_ID.d.ts +32 -0
  87. package/umd/src/commitments/index.d.ts +4 -12
  88. package/umd/src/llm-providers/agent/Agent.d.ts +1 -1
  89. package/umd/src/llm-providers/openai/OpenAiAgentKitExecutionToolsToolBuilder.d.ts +1 -1
  90. package/umd/src/{commitments/USE_BROWSER → scrapers/_common/utils}/fetchUrlContent.d.ts +2 -3
  91. package/umd/src/version.d.ts +1 -1
  92. package/apps/agents-server/src/tools/configureTimeoutToolRuntimeAdapterForServer.ts +0 -381
  93. package/apps/agents-server/src/utils/emails/extractUseEmailConfigurationFromAgentSource.ts +0 -42
  94. package/esm/src/commitments/MEMORY/MEMORY.d.ts +0 -48
  95. package/esm/src/commitments/MEMORY/MemoryToolNames.d.ts +0 -11
  96. package/esm/src/commitments/MEMORY/MemoryToolRuntimeAdapter.d.ts +0 -149
  97. package/esm/src/commitments/MEMORY/createMemorySystemMessage.d.ts +0 -6
  98. package/esm/src/commitments/MEMORY/createMemoryToolFunctions.d.ts +0 -8
  99. package/esm/src/commitments/MEMORY/createMemoryTools.d.ts +0 -14
  100. package/esm/src/commitments/MEMORY/getMemoryCommitmentDocumentation.d.ts +0 -6
  101. package/esm/src/commitments/MEMORY/getMemoryToolRuntimeAdapterOrDisabledResult.d.ts +0 -17
  102. package/esm/src/commitments/MEMORY/getMemoryToolTitles.d.ts +0 -7
  103. package/esm/src/commitments/MEMORY/parseMemoryToolArgs.d.ts +0 -61
  104. package/esm/src/commitments/MEMORY/resolveMemoryRuntimeContext.d.ts +0 -8
  105. package/esm/src/commitments/MEMORY/setMemoryToolRuntimeAdapter.d.ts +0 -13
  106. package/esm/src/commitments/META/META.d.ts +0 -65
  107. package/esm/src/commitments/USE/aggregateUseCommitmentSystemMessages.d.ts +0 -32
  108. package/esm/src/commitments/USE_BROWSER/USE_BROWSER.d.ts +0 -58
  109. package/esm/src/commitments/USE_BROWSER/fetchUrlContentViaBrowser.d.ts +0 -13
  110. package/esm/src/commitments/USE_BROWSER/resolveRunBrowserToolForNode.d.ts +0 -10
  111. package/esm/src/commitments/USE_DEEPSEARCH/USE_DEEPSEARCH.d.ts +0 -47
  112. package/esm/src/commitments/USE_EMAIL/USE_EMAIL.d.ts +0 -38
  113. package/esm/src/commitments/USE_EMAIL/parseUseEmailCommitmentContent.d.ts +0 -21
  114. package/esm/src/commitments/USE_EMAIL/parseUseEmailCommitmentContent.test.d.ts +0 -1
  115. package/esm/src/commitments/USE_EMAIL/resolveSendEmailToolForNode.d.ts +0 -11
  116. package/esm/src/commitments/USE_EMAIL/sendEmailViaBrowser.d.ts +0 -13
  117. package/esm/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.d.ts +0 -46
  118. package/esm/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.test.d.ts +0 -1
  119. package/esm/src/commitments/USE_SPAWN/USE_SPAWN.d.ts +0 -38
  120. package/esm/src/commitments/USE_SPAWN/USE_SPAWN.test.d.ts +0 -1
  121. package/esm/src/commitments/USE_SPAWN/resolveSpawnAgentToolForNode.d.ts +0 -9
  122. package/esm/src/commitments/USE_SPAWN/spawnAgentViaBrowser.d.ts +0 -12
  123. package/esm/src/commitments/USE_TIME/USE_TIME.d.ts +0 -43
  124. package/esm/src/commitments/USE_TIME/USE_TIME.test.d.ts +0 -1
  125. package/esm/src/commitments/USE_TIMEOUT/TimeoutToolNames.d.ts +0 -11
  126. package/esm/src/commitments/USE_TIMEOUT/TimeoutToolRuntimeAdapter.d.ts +0 -212
  127. package/esm/src/commitments/USE_TIMEOUT/USE_TIMEOUT.d.ts +0 -38
  128. package/esm/src/commitments/USE_TIMEOUT/USE_TIMEOUT.test.d.ts +0 -1
  129. package/esm/src/commitments/USE_TIMEOUT/createTimeoutSystemMessage.d.ts +0 -6
  130. package/esm/src/commitments/USE_TIMEOUT/createTimeoutToolFunctions.d.ts +0 -8
  131. package/esm/src/commitments/USE_TIMEOUT/createTimeoutTools.d.ts +0 -7
  132. package/esm/src/commitments/USE_TIMEOUT/getTimeoutToolRuntimeAdapterOrDisabledResult.d.ts +0 -17
  133. package/esm/src/commitments/USE_TIMEOUT/parseTimeoutToolArgs.d.ts +0 -78
  134. package/esm/src/commitments/USE_TIMEOUT/resolveTimeoutRuntimeContext.d.ts +0 -8
  135. package/esm/src/commitments/USE_TIMEOUT/setTimeoutToolRuntimeAdapter.d.ts +0 -13
  136. package/esm/src/commitments/WALLET/WALLET.d.ts +0 -21
  137. package/esm/src/commitments/WALLET/WALLET.test.d.ts +0 -1
  138. package/esm/src/commitments/WALLET/WalletToolNames.d.ts +0 -12
  139. package/esm/src/commitments/WALLET/WalletToolRuntimeAdapter.d.ts +0 -163
  140. package/esm/src/commitments/WALLET/createWalletSystemMessage.d.ts +0 -6
  141. package/esm/src/commitments/WALLET/createWalletToolFunctions.d.ts +0 -8
  142. package/esm/src/commitments/WALLET/createWalletTools.d.ts +0 -7
  143. package/esm/src/commitments/WALLET/getWalletCommitmentDocumentation.d.ts +0 -6
  144. package/esm/src/commitments/WALLET/getWalletToolRuntimeAdapterOrDisabledResult.d.ts +0 -16
  145. package/esm/src/commitments/WALLET/getWalletToolTitles.d.ts +0 -7
  146. package/esm/src/commitments/WALLET/parseWalletToolArgs.d.ts +0 -51
  147. package/esm/src/commitments/WALLET/resolveWalletRuntimeContext.d.ts +0 -8
  148. package/esm/src/commitments/WALLET/setWalletToolRuntimeAdapter.d.ts +0 -13
  149. package/esm/src/commitments/_common/createSerpSearchToolFunction.d.ts +0 -12
  150. package/src/commitments/COMPONENT/COMPONENT.ts +0 -70
  151. package/src/commitments/MEMORY/MEMORY.ts +0 -94
  152. package/src/commitments/MEMORY/MemoryToolNames.ts +0 -13
  153. package/src/commitments/MEMORY/MemoryToolRuntimeAdapter.ts +0 -180
  154. package/src/commitments/MEMORY/createMemorySystemMessage.ts +0 -27
  155. package/src/commitments/MEMORY/createMemoryToolFunctions.ts +0 -134
  156. package/src/commitments/MEMORY/createMemoryTools.ts +0 -115
  157. package/src/commitments/MEMORY/getMemoryCommitmentDocumentation.ts +0 -47
  158. package/src/commitments/MEMORY/getMemoryToolRuntimeAdapterOrDisabledResult.ts +0 -104
  159. package/src/commitments/MEMORY/getMemoryToolTitles.ts +0 -16
  160. package/src/commitments/MEMORY/parseMemoryToolArgs.ts +0 -126
  161. package/src/commitments/MEMORY/resolveMemoryRuntimeContext.ts +0 -23
  162. package/src/commitments/MEMORY/setMemoryToolRuntimeAdapter.ts +0 -26
  163. package/src/commitments/META/META.ts +0 -168
  164. package/src/commitments/USE/TODO.txt +0 -1
  165. package/src/commitments/USE/aggregateUseCommitmentSystemMessages.ts +0 -219
  166. package/src/commitments/USE_BROWSER/TODO.txt +0 -1
  167. package/src/commitments/USE_BROWSER/USE_BROWSER.ts +0 -257
  168. package/src/commitments/USE_BROWSER/fetchUrlContentViaBrowser.ts +0 -45
  169. package/src/commitments/USE_BROWSER/resolveRunBrowserToolForNode.ts +0 -83
  170. package/src/commitments/USE_DEEPSEARCH/USE_DEEPSEARCH.ts +0 -146
  171. package/src/commitments/USE_EMAIL/USE_EMAIL.ts +0 -201
  172. package/src/commitments/USE_EMAIL/parseUseEmailCommitmentContent.ts +0 -75
  173. package/src/commitments/USE_EMAIL/resolveSendEmailToolForNode.ts +0 -44
  174. package/src/commitments/USE_EMAIL/sendEmailViaBrowser.ts +0 -47
  175. package/src/commitments/USE_SEARCH_ENGINE/TODO.txt +0 -1
  176. package/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.ts +0 -171
  177. package/src/commitments/USE_SPAWN/USE_SPAWN.ts +0 -150
  178. package/src/commitments/USE_SPAWN/resolveSpawnAgentToolForNode.ts +0 -42
  179. package/src/commitments/USE_SPAWN/spawnAgentViaBrowser.ts +0 -50
  180. package/src/commitments/USE_TIME/USE_TIME.ts +0 -177
  181. package/src/commitments/USE_TIMEOUT/TimeoutToolNames.ts +0 -13
  182. package/src/commitments/USE_TIMEOUT/TimeoutToolRuntimeAdapter.ts +0 -255
  183. package/src/commitments/USE_TIMEOUT/USE_TIMEOUT.ts +0 -117
  184. package/src/commitments/USE_TIMEOUT/createTimeoutSystemMessage.ts +0 -22
  185. package/src/commitments/USE_TIMEOUT/createTimeoutToolFunctions.ts +0 -361
  186. package/src/commitments/USE_TIMEOUT/createTimeoutTools.ts +0 -127
  187. package/src/commitments/USE_TIMEOUT/getTimeoutToolRuntimeAdapterOrDisabledResult.ts +0 -67
  188. package/src/commitments/USE_TIMEOUT/parseTimeoutToolArgs.ts +0 -460
  189. package/src/commitments/USE_TIMEOUT/resolveTimeoutRuntimeContext.ts +0 -36
  190. package/src/commitments/USE_TIMEOUT/setTimeoutToolRuntimeAdapter.ts +0 -26
  191. package/src/commitments/WALLET/WALLET.ts +0 -71
  192. package/src/commitments/WALLET/WalletToolNames.ts +0 -14
  193. package/src/commitments/WALLET/WalletToolRuntimeAdapter.ts +0 -180
  194. package/src/commitments/WALLET/createWalletSystemMessage.ts +0 -22
  195. package/src/commitments/WALLET/createWalletToolFunctions.ts +0 -145
  196. package/src/commitments/WALLET/createWalletTools.ts +0 -129
  197. package/src/commitments/WALLET/getWalletCommitmentDocumentation.ts +0 -14
  198. package/src/commitments/WALLET/getWalletToolRuntimeAdapterOrDisabledResult.ts +0 -64
  199. package/src/commitments/WALLET/getWalletToolTitles.ts +0 -17
  200. package/src/commitments/WALLET/parseWalletToolArgs.ts +0 -231
  201. package/src/commitments/WALLET/resolveWalletRuntimeContext.ts +0 -23
  202. package/src/commitments/WALLET/setWalletToolRuntimeAdapter.ts +0 -26
  203. package/src/commitments/_common/createSerpSearchToolFunction.ts +0 -46
  204. package/umd/src/book-2.0/agent-source/createAgentModelRequirements.useCommitmentAggregation.test.d.ts +0 -1
  205. package/umd/src/commitments/MEMORY/MEMORY.d.ts +0 -48
  206. package/umd/src/commitments/MEMORY/MEMORY.test.d.ts +0 -1
  207. package/umd/src/commitments/MEMORY/MemoryToolNames.d.ts +0 -11
  208. package/umd/src/commitments/MEMORY/MemoryToolRuntimeAdapter.d.ts +0 -149
  209. package/umd/src/commitments/MEMORY/createMemorySystemMessage.d.ts +0 -6
  210. package/umd/src/commitments/MEMORY/createMemoryToolFunctions.d.ts +0 -8
  211. package/umd/src/commitments/MEMORY/createMemoryTools.d.ts +0 -14
  212. package/umd/src/commitments/MEMORY/getMemoryCommitmentDocumentation.d.ts +0 -6
  213. package/umd/src/commitments/MEMORY/getMemoryToolRuntimeAdapterOrDisabledResult.d.ts +0 -17
  214. package/umd/src/commitments/MEMORY/getMemoryToolTitles.d.ts +0 -7
  215. package/umd/src/commitments/MEMORY/parseMemoryToolArgs.d.ts +0 -61
  216. package/umd/src/commitments/MEMORY/resolveMemoryRuntimeContext.d.ts +0 -8
  217. package/umd/src/commitments/MEMORY/setMemoryToolRuntimeAdapter.d.ts +0 -13
  218. package/umd/src/commitments/META/META.d.ts +0 -65
  219. package/umd/src/commitments/USE/aggregateUseCommitmentSystemMessages.d.ts +0 -32
  220. package/umd/src/commitments/USE_BROWSER/USE_BROWSER.d.ts +0 -58
  221. package/umd/src/commitments/USE_BROWSER/USE_BROWSER.test.d.ts +0 -1
  222. package/umd/src/commitments/USE_BROWSER/fetchUrlContentViaBrowser.d.ts +0 -13
  223. package/umd/src/commitments/USE_BROWSER/resolveRunBrowserToolForNode.d.ts +0 -10
  224. package/umd/src/commitments/USE_BROWSER/resolveRunBrowserToolForNode.test.d.ts +0 -1
  225. package/umd/src/commitments/USE_DEEPSEARCH/USE_DEEPSEARCH.d.ts +0 -47
  226. package/umd/src/commitments/USE_DEEPSEARCH/USE_DEEPSEARCH.test.d.ts +0 -1
  227. package/umd/src/commitments/USE_EMAIL/USE_EMAIL.d.ts +0 -38
  228. package/umd/src/commitments/USE_EMAIL/USE_EMAIL.test.d.ts +0 -1
  229. package/umd/src/commitments/USE_EMAIL/parseUseEmailCommitmentContent.d.ts +0 -21
  230. package/umd/src/commitments/USE_EMAIL/parseUseEmailCommitmentContent.test.d.ts +0 -1
  231. package/umd/src/commitments/USE_EMAIL/resolveSendEmailToolForNode.d.ts +0 -11
  232. package/umd/src/commitments/USE_EMAIL/sendEmailViaBrowser.d.ts +0 -13
  233. package/umd/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.d.ts +0 -46
  234. package/umd/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.test.d.ts +0 -1
  235. package/umd/src/commitments/USE_SPAWN/USE_SPAWN.d.ts +0 -38
  236. package/umd/src/commitments/USE_SPAWN/USE_SPAWN.test.d.ts +0 -1
  237. package/umd/src/commitments/USE_SPAWN/resolveSpawnAgentToolForNode.d.ts +0 -9
  238. package/umd/src/commitments/USE_SPAWN/spawnAgentViaBrowser.d.ts +0 -12
  239. package/umd/src/commitments/USE_TIME/USE_TIME.d.ts +0 -43
  240. package/umd/src/commitments/USE_TIME/USE_TIME.test.d.ts +0 -1
  241. package/umd/src/commitments/USE_TIMEOUT/TimeoutToolNames.d.ts +0 -11
  242. package/umd/src/commitments/USE_TIMEOUT/TimeoutToolRuntimeAdapter.d.ts +0 -212
  243. package/umd/src/commitments/USE_TIMEOUT/USE_TIMEOUT.d.ts +0 -38
  244. package/umd/src/commitments/USE_TIMEOUT/USE_TIMEOUT.test.d.ts +0 -1
  245. package/umd/src/commitments/USE_TIMEOUT/createTimeoutSystemMessage.d.ts +0 -6
  246. package/umd/src/commitments/USE_TIMEOUT/createTimeoutToolFunctions.d.ts +0 -8
  247. package/umd/src/commitments/USE_TIMEOUT/createTimeoutTools.d.ts +0 -7
  248. package/umd/src/commitments/USE_TIMEOUT/getTimeoutToolRuntimeAdapterOrDisabledResult.d.ts +0 -17
  249. package/umd/src/commitments/USE_TIMEOUT/parseTimeoutToolArgs.d.ts +0 -78
  250. package/umd/src/commitments/USE_TIMEOUT/resolveTimeoutRuntimeContext.d.ts +0 -8
  251. package/umd/src/commitments/USE_TIMEOUT/setTimeoutToolRuntimeAdapter.d.ts +0 -13
  252. package/umd/src/commitments/WALLET/WALLET.d.ts +0 -21
  253. package/umd/src/commitments/WALLET/WALLET.test.d.ts +0 -1
  254. package/umd/src/commitments/WALLET/WalletToolNames.d.ts +0 -12
  255. package/umd/src/commitments/WALLET/WalletToolRuntimeAdapter.d.ts +0 -163
  256. package/umd/src/commitments/WALLET/createWalletSystemMessage.d.ts +0 -6
  257. package/umd/src/commitments/WALLET/createWalletToolFunctions.d.ts +0 -8
  258. package/umd/src/commitments/WALLET/createWalletTools.d.ts +0 -7
  259. package/umd/src/commitments/WALLET/getWalletCommitmentDocumentation.d.ts +0 -6
  260. package/umd/src/commitments/WALLET/getWalletToolRuntimeAdapterOrDisabledResult.d.ts +0 -16
  261. package/umd/src/commitments/WALLET/getWalletToolTitles.d.ts +0 -7
  262. package/umd/src/commitments/WALLET/parseWalletToolArgs.d.ts +0 -51
  263. package/umd/src/commitments/WALLET/resolveWalletRuntimeContext.d.ts +0 -8
  264. package/umd/src/commitments/WALLET/setWalletToolRuntimeAdapter.d.ts +0 -13
  265. package/umd/src/commitments/_common/createSerpSearchToolFunction.d.ts +0 -12
  266. /package/esm/src/book-2.0/agent-source/{createAgentModelRequirements.useCommitmentAggregation.test.d.ts → createAgentModelRequirements.commitmentAggregation.test.d.ts} +0 -0
  267. /package/esm/src/{commitments/MEMORY/MEMORY.test.d.ts → cli/cli-commands/coder/boilerplateCount.test.d.ts} +0 -0
  268. /package/esm/src/{commitments/USE_BROWSER/USE_BROWSER.test.d.ts → cli/cli-commands/coder/generate-boilerplates.test.d.ts} +0 -0
  269. /package/esm/src/commitments/{META → META_DESCRIPTION}/META_DESCRIPTION.d.ts +0 -0
  270. /package/{esm/src/commitments/USE_BROWSER/resolveRunBrowserToolForNode.test.d.ts → umd/src/book-2.0/agent-source/createAgentModelRequirements.commitmentAggregation.test.d.ts} +0 -0
  271. /package/{esm/src/commitments/USE_DEEPSEARCH/USE_DEEPSEARCH.test.d.ts → umd/src/cli/cli-commands/coder/boilerplateCount.test.d.ts} +0 -0
  272. /package/{esm/src/commitments/USE_EMAIL/USE_EMAIL.test.d.ts → umd/src/cli/cli-commands/coder/generate-boilerplates.test.d.ts} +0 -0
  273. /package/umd/src/commitments/{META → META_DESCRIPTION}/META_DESCRIPTION.d.ts +0 -0
@@ -47,7 +47,7 @@ export const czechBookLanguageManualDictionary: BookLanguageManualDictionary = {
47
47
  2. **Vrstva chování**:
48
48
  \`RULE\`, \`KNOWLEDGE\`, \`WRITING SAMPLE\`, \`WRITING RULES\`, \`LANGUAGE\`, \`GOAL\` a příbuzné commitmenty.
49
49
  3. **Vrstva schopností**:
50
- \`USE*\`, \`MEMORY\` a další nástrojové commitmenty, které agentovi otevírají běhové schopnosti.
50
+ \`USE*\` a další nástrojové commitmenty, které agentovi otevírají běhové schopnosti.
51
51
  4. **Vrstva skládání**:
52
52
  Dědičnost přes \`FROM\`, znovupoužití přes \`IMPORT\` a delegování přes \`TEAM\`.
53
53
  `),
@@ -69,9 +69,9 @@ export const czechBookLanguageManualDictionary: BookLanguageManualDictionary = {
69
69
  4. **Skládání místo jednoho velkého agenta**:
70
70
  Na specializované odpovědnosti použijte \`TEAM\` nebo \`IMPORT\`.
71
71
  Kompromis: režie s koordinací, výrazně lepší modularita a znovupoužitelnost.
72
- 5. **Řízená paměť**:
73
- Pokud používáte \`MEMORY\`, popište, co se pamatovat má a co v žádném případě ne.
74
- Kompromis: přísnější návrh pravidel, lepší soukromí i kvalita zapamatovaného.
72
+ 5. **Řízená práce s daty**:
73
+ Pokud používáte \`USE PRIVACY\`, popište, co smí a co v žádném případě nesmí opustit konverzaci.
74
+ Kompromis: přísnější návrh pravidel, lepší soukromí i kvalita odpovědí.
75
75
  `),
76
76
  },
77
77
  primitives: {
@@ -102,7 +102,7 @@ export const czechBookLanguageManualDictionary: BookLanguageManualDictionary = {
102
102
  3. **Přidejte oporu ve znalostech**
103
103
  Přidejte commitmenty \`KNOWLEDGE\` (přímý text, nebo lokální či importovatelné zdroje).
104
104
  4. **Přidejte schopnosti**
105
- Přidejte jen ty commitmenty \`USE*\` a \`MEMORY\`, které agent opravdu potřebuje.
105
+ Přidejte jen ty commitmenty \`USE*\`, které agent opravdu potřebuje.
106
106
  5. **Doplňte profilová metadata**
107
107
  Přidejte \`META DESCRIPTION\`, \`META AVATAR\` / \`META VISUAL\` nebo \`META IMAGE\`, \`META INPUT PLACEHOLDER\`, \`META THINKING MESSAGE\` a případná upozornění.
108
108
  6. **Připravte první interakci**
@@ -155,7 +155,7 @@ export const czechBookLanguageManualDictionary: BookLanguageManualDictionary = {
155
155
  capabilities: {
156
156
  title: 'Commitmenty USE',
157
157
  body: spaceTrim(`
158
- Commitmenty \`USE*\` zapínají schopnosti (vyhledávání, prohlížeč, napojení na projekt, e-mail, generování obrázků a další).
158
+ Commitmenty \`USE*\` zapínají schopnosti (napojení na projekt, kalendář, generování obrázků a další).
159
159
  Zpřístupňují běhové nástroje a doplňují pokyny do systémové zprávy.
160
160
  `),
161
161
  },
@@ -209,16 +209,6 @@ export const czechBookLanguageManualDictionary: BookLanguageManualDictionary = {
209
209
  '`CLOSED` brání tomu, aby se agent upravoval během konverzace.',
210
210
  ],
211
211
  },
212
- 'tool-using-browser-search-agent': {
213
- title: 'Agent s nástroji (prohlížeč a vyhledávač)',
214
- goal: 'Umožnit rešerši na internetu s jasnou prací se zdroji.',
215
- walkthrough: [
216
- '`USE SEARCH ENGINE` zpřístupní vyhledávání na webu a volitelné pokyny k němu.',
217
- '`USE BROWSER` zapne stahování adres a interaktivní procházení webu.',
218
- 'Commitmenty `RULE` dělají požadavky na spolehlivost výslovnými a opakovatelnými.',
219
- 'Tento vzor se hodí pro agenty na aktuální dění a ověřování faktů.',
220
- ],
221
- },
222
212
  'rule-and-knowledge-agent': {
223
213
  title: 'Agent s RULE a KNOWLEDGE',
224
214
  goal: 'Opřít odpovědi o výslovná omezení a připravené zdroje.',
@@ -229,16 +219,6 @@ export const czechBookLanguageManualDictionary: BookLanguageManualDictionary = {
229
219
  'Tento vzor použijte pro compliance, podporu a interní postupy.',
230
220
  ],
231
221
  },
232
- 'memory-agent-with-long-term-memory': {
233
- title: 'Agent s dlouhodobou pamětí (MEMORY)',
234
- goal: 'Uchovat preference uživatele napříč konverzacemi.',
235
- walkthrough: [
236
- '`MEMORY` přidá běhové nástroje paměti a příslušné pokyny do systémové zprávy.',
237
- 'Commitmenty `RULE` zúží, co se smí pamatovat, a snižují tak rizika pro soukromí.',
238
- 'V Agents Serveru je paměť vedená za běhu a je vázaná na konkrétního uživatele.',
239
- 'Hodí se pro asistenty, kteří si musí držet kontext v čase.',
240
- ],
241
- },
242
222
  'use-project-integration-agent': {
243
223
  title: 'Napojení na projekt (USE PROJECT)',
244
224
  goal: 'Pracovat s repozitářem na GitHubu přes připojení projektu.',
@@ -283,7 +263,7 @@ export const czechBookLanguageManualDictionary: BookLanguageManualDictionary = {
283
263
  {
284
264
  title: 'Neověřitelná tvrzení',
285
265
  dont: 'Agent odpovídá na otázky závislé na internetu bez nástrojů nebo bez uvedení zdrojů.',
286
- doInstead: 'Přidejte `USE SEARCH ENGINE` / `USE BROWSER` a `RULE` zaměřené na citování.',
266
+ doInstead: 'Přidejte zdroje `KNOWLEDGE` a `RULE` zaměřené na citování.',
287
267
  },
288
268
  {
289
269
  title: 'Chybějící mantinely',
@@ -295,11 +275,6 @@ export const czechBookLanguageManualDictionary: BookLanguageManualDictionary = {
295
275
  dont: 'Dlouhé řetězce `FROM` bez vysvětlení, proč je každý rodič potřeba.',
296
276
  doInstead: 'Držte dědičnost mělkou a pro znovupoužití sáhněte po cíleném IMPORT nebo TEAM.',
297
277
  },
298
- {
299
- title: 'Nebezpečné zacházení s pamětí',
300
- dont: 'Ukládání každého detailu do paměti bez jakýchkoli hranic.',
301
- doInstead: 'Doplňte `MEMORY` výslovnými pravidly, co se smí uchovávat.',
302
- },
303
278
  ],
304
279
  tutorialSections: {
305
280
  serverAgentsHint:
@@ -47,7 +47,7 @@ export const englishBookLanguageManualDictionary: BookLanguageManualDictionary =
47
47
  2. **Behavior layer**:
48
48
  \`RULE\`, \`KNOWLEDGE\`, \`WRITING SAMPLE\`, \`WRITING RULES\`, \`LANGUAGE\`, \`GOAL\`, and related commitments.
49
49
  3. **Capability layer**:
50
- \`USE*\`, \`MEMORY\`, and other tooling commitments exposing runtime abilities.
50
+ \`USE*\` and other tooling commitments exposing runtime abilities.
51
51
  4. **Composition layer**:
52
52
  \`FROM\` inheritance, \`IMPORT\` reuse, and \`TEAM\` delegation.
53
53
  `),
@@ -69,8 +69,8 @@ export const englishBookLanguageManualDictionary: BookLanguageManualDictionary =
69
69
  4. **Composition over monoliths**:
70
70
  Use \`TEAM\`/\`IMPORT\` for specialized responsibilities.
71
71
  Tradeoff: orchestration overhead, stronger modularity and reuse.
72
- 5. **Controlled memory**:
73
- If using \`MEMORY\`, define what must and must not be remembered.
72
+ 5. **Controlled data access**:
73
+ If using \`USE PRIVACY\`, define what must and must not leave the conversation.
74
74
  Tradeoff: stricter policy design, better privacy and signal quality.
75
75
  `),
76
76
  },
@@ -102,7 +102,7 @@ export const englishBookLanguageManualDictionary: BookLanguageManualDictionary =
102
102
  3. **Add grounding**
103
103
  Add \`KNOWLEDGE\` commitments (inline text or local/importable sources).
104
104
  4. **Add capabilities**
105
- Add only necessary \`USE*\` and/or \`MEMORY\` commitments.
105
+ Add only necessary \`USE*\` commitments.
106
106
  5. **Set profile metadata**
107
107
  Add \`META DESCRIPTION\`, \`META AVATAR\` / \`META VISUAL\` or \`META IMAGE\`, \`META INPUT PLACEHOLDER\`, \`META THINKING MESSAGE\`, and disclaimers if needed.
108
108
  6. **Add first interaction**
@@ -155,7 +155,7 @@ export const englishBookLanguageManualDictionary: BookLanguageManualDictionary =
155
155
  capabilities: {
156
156
  title: 'USE commitments',
157
157
  body: spaceTrim(`
158
- \`USE*\` commitments enable capabilities (search, browser, project integration, email, image generation, etc.).
158
+ \`USE*\` commitments enable capabilities (project integration, calendar, image generation, etc.).
159
159
  They expose runtime tools and system-message guidance used during execution.
160
160
  `),
161
161
  },
@@ -209,16 +209,6 @@ export const englishBookLanguageManualDictionary: BookLanguageManualDictionary =
209
209
  '`CLOSED` prevents conversational self-modification.',
210
210
  ],
211
211
  },
212
- 'tool-using-browser-search-agent': {
213
- title: 'Tool-using agent (Browser + Search engine)',
214
- goal: 'Enable internet research with clear sourcing behavior.',
215
- walkthrough: [
216
- '`USE SEARCH ENGINE` provides web search tooling and optional search instructions.',
217
- '`USE BROWSER` enables URL fetching and interactive browsing tools.',
218
- '`RULE` commitments make reliability behavior explicit and repeatable.',
219
- 'This pattern is ideal for current-events and fact-checking agents.',
220
- ],
221
- },
222
212
  'rule-and-knowledge-agent': {
223
213
  title: 'Agent with RULE and KNOWLEDGE',
224
214
  goal: 'Ground responses in explicit constraints and curated sources.',
@@ -229,16 +219,6 @@ export const englishBookLanguageManualDictionary: BookLanguageManualDictionary =
229
219
  'Use this pattern for compliance, support, and internal procedures.',
230
220
  ],
231
221
  },
232
- 'memory-agent-with-long-term-memory': {
233
- title: 'MEMORY agent with long-term memory',
234
- goal: 'Persist user preferences across conversations.',
235
- walkthrough: [
236
- '`MEMORY` adds runtime memory tools and memory-specific system guidance.',
237
- '`RULE` commitments narrow what should be remembered to reduce privacy risks.',
238
- 'In Agents Server, memory is runtime-backed and user-scoped.',
239
- 'Use this for assistants that must preserve context over time.',
240
- ],
241
- },
242
222
  'use-project-integration-agent': {
243
223
  title: 'USE PROJECT external integration',
244
224
  goal: 'Work with a GitHub repository through a connected project integration.',
@@ -283,7 +263,7 @@ export const englishBookLanguageManualDictionary: BookLanguageManualDictionary =
283
263
  {
284
264
  title: 'Unverifiable claims',
285
265
  dont: 'The agent answers internet-dependent questions without tools or without citing sources.',
286
- doInstead: 'Add `USE SEARCH ENGINE` / `USE BROWSER` and a citation-oriented `RULE`.',
266
+ doInstead: 'Add `KNOWLEDGE` sources and a citation-oriented `RULE`.',
287
267
  },
288
268
  {
289
269
  title: 'Missing guardrails',
@@ -295,11 +275,6 @@ export const englishBookLanguageManualDictionary: BookLanguageManualDictionary =
295
275
  dont: 'Using deep `FROM` chains without documenting why each parent is needed.',
296
276
  doInstead: 'Keep inheritance shallow and use focused IMPORT/TEAM composition for reuse.',
297
277
  },
298
- {
299
- title: 'Unsafe memory usage',
300
- dont: 'Storing every detail in memory without boundaries.',
301
- doInstead: 'Pair `MEMORY` with explicit rules about what is allowed to persist.',
302
- },
303
278
  ],
304
279
  tutorialSections: {
305
280
  serverAgentsHint:
@@ -162,7 +162,7 @@ function createCommitmentRegex(commitmentTypes: ReadonlyArray<string>): RegExp {
162
162
 
163
163
  const commitmentPatterns = [...commitmentTypes]
164
164
  .sort((a: string, b: string) => b.length - a.length)
165
- .map((type: string) => (type === 'META' ? 'META\\s+\\w+' : type.replace(/\s+/, '\\s+')))
165
+ .map((type: string) => type.replace(/\s+/, '\\s+'))
166
166
  .join('|');
167
167
 
168
168
  return new RegExp(`^\\s*(${commitmentPatterns})(?=\\s|$)`);
@@ -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>', `Number of prompt boilerplate files to generate`, '5');
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 filesCount = parseFilesCount(countOption);
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
- filesCount,
82
+ boilerplateCount,
76
83
  templateOption,
77
84
  });
78
85
 
79
86
  await $commitCoderChanges({
80
87
  gitSync,
81
88
  projectPath,
82
- commitMessage: `Prompts ${filesCount}x`,
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
- filesCount,
104
+ boilerplateCount,
98
105
  templateOption,
99
106
  }: {
100
107
  readonly projectPath: string;
101
- readonly filesCount: number;
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: filesCount,
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 emoji = selectedEmojis[i]!;
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 emojiTag = formatPromptEmojiTag(emoji);
155
- const one = buildCoderPromptSection({
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
- emoji,
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 ${formatPromptEmojiTag(file.emoji!)}`));
188
+ console.info(colors.green(`✓ Created: ${file.filename} with ${file.emojiTags.join(' ')}`));
197
189
  }
198
190
 
199
- console.info(colors.bgGreen(` Successfully created ${filesToCreate.length} prompt boilerplate files! `));
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
- * Parses and validates the count of boilerplate files to create.
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 parseFilesCount(countOption: string): number {
208
- const filesCount = Number(countOption);
209
-
210
- if (!Number.isFinite(filesCount) || filesCount <= 0) {
211
- console.info(colors.yellow(`Invalid --count '${countOption}'. Falling back to default 5.`));
212
- return 5;
213
- }
214
-
215
- return Math.floor(filesCount);
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': 'ptbk coder generate-boilerplates --template ./prompts/templates/common.md',
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, filesCount: 5 });
93
+ await generatePromptBoilerplate({ projectPath, boilerplateCount: DEFAULT_BOILERPLATE_COUNT });
93
94
 
94
95
  await $commitCoderChanges({
95
96
  gitSync,
@@ -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 SEARCH ENGINE
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 BROWSER
90
- USE SEARCH ENGINE
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', ['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