@promptbook/cli 0.112.0-99 → 0.113.0-0

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 (850) hide show
  1. package/README.md +76 -44
  2. package/agents/default/developer.book +24 -0
  3. package/apps/agents-server/README.md +19 -2
  4. package/apps/agents-server/env-manual/GITHUB_APP.md +1 -1
  5. package/apps/agents-server/next.config.ts +41 -1
  6. package/apps/agents-server/package.json +1 -1
  7. package/apps/agents-server/playwright.config.ts +3 -0
  8. package/apps/agents-server/public/promptbook-logo-blue.png +0 -0
  9. package/apps/agents-server/public/promptbook-logo-white.png +0 -0
  10. package/apps/agents-server/scripts/prerender-homepage.js +76 -1
  11. package/apps/agents-server/src/app/AddAgentButton.tsx +0 -5
  12. package/apps/agents-server/src/app/[agentName]/layout.tsx +1 -0
  13. package/apps/agents-server/src/app/actions.ts +70 -9
  14. package/apps/agents-server/src/app/admin/about/page.tsx +1 -1
  15. package/apps/agents-server/src/app/admin/api-tokens/ApiTokensClient.tsx +4 -1
  16. package/apps/agents-server/src/app/admin/chat-feedback/ChatFeedbackClient.tsx +3 -0
  17. package/apps/agents-server/src/app/admin/chat-feedback/ChatFeedbackTable.tsx +13 -8
  18. package/apps/agents-server/src/app/admin/chat-feedback/page.tsx +2 -4
  19. package/apps/agents-server/src/app/admin/chat-history/ChatHistoryClient.tsx +3 -0
  20. package/apps/agents-server/src/app/admin/chat-history/ChatHistoryTable.tsx +13 -8
  21. package/apps/agents-server/src/app/admin/chat-history/page.tsx +2 -4
  22. package/apps/agents-server/src/app/admin/cli-access/CliAccessClient.tsx +1 -3
  23. package/apps/agents-server/src/app/admin/code-runners/CodeRunnersClient.tsx +19 -11
  24. package/apps/agents-server/src/app/admin/custom-css/CustomCssClient.tsx +4 -0
  25. package/apps/agents-server/src/app/admin/custom-css/CustomCssEditorPanel.tsx +7 -1
  26. package/apps/agents-server/src/app/admin/custom-css/CustomCssFilesPanel.tsx +7 -1
  27. package/apps/agents-server/src/app/admin/custom-js/CustomJsClient.tsx +11 -0
  28. package/apps/agents-server/src/app/admin/custom-js/CustomJsEditorPanel.tsx +7 -1
  29. package/apps/agents-server/src/app/admin/custom-js/CustomJsFilesPanel.tsx +7 -1
  30. package/apps/agents-server/src/app/admin/files/FilesGalleryClient.tsx +4 -0
  31. package/apps/agents-server/src/app/admin/files/FilesGalleryGrid.tsx +9 -11
  32. package/apps/agents-server/src/app/admin/files/FilesGalleryTable.tsx +9 -8
  33. package/apps/agents-server/src/app/admin/image-generator-test/ImageAttachmentsEditor.tsx +30 -9
  34. package/apps/agents-server/src/app/admin/images/ImagesGalleryClient.tsx +4 -0
  35. package/apps/agents-server/src/app/admin/images/ImagesGalleryGrid.tsx +16 -11
  36. package/apps/agents-server/src/app/admin/images/ImagesGalleryTable.tsx +18 -9
  37. package/apps/agents-server/src/app/admin/limits/LimitsClient.tsx +11 -12
  38. package/apps/agents-server/src/app/admin/login-methods/shibboleth/page.tsx +355 -0
  39. package/apps/agents-server/src/app/admin/logs/LogsClient.tsx +9 -3
  40. package/apps/agents-server/src/app/admin/messages/MessagesClient.tsx +7 -6
  41. package/apps/agents-server/src/app/admin/metadata/MetadataClient.tsx +671 -45
  42. package/apps/agents-server/src/app/admin/servers/CreateServerDialog.tsx +22 -1
  43. package/apps/agents-server/src/app/admin/servers/ServersRegistryTable.tsx +14 -13
  44. package/apps/agents-server/src/app/admin/servers/useCreateServerWizard.ts +57 -20
  45. package/apps/agents-server/src/app/admin/task-manager/TaskManagerClient.tsx +4 -2
  46. package/apps/agents-server/src/app/admin/task-manager/TaskManagerTaskRow.tsx +14 -15
  47. package/apps/agents-server/src/app/admin/task-manager/TaskManagerTasksCard.tsx +4 -1
  48. package/apps/agents-server/src/app/admin/task-manager/useTaskManagerState.ts +6 -9
  49. package/apps/agents-server/src/app/admin/update/CustomCommitPicker.tsx +258 -0
  50. package/apps/agents-server/src/app/admin/update/UpdateClient.tsx +627 -137
  51. package/apps/agents-server/src/app/admin/usage/UsageClient.tsx +4 -2
  52. package/apps/agents-server/src/app/admin/usage/UsageClientAnalyticsPanels.tsx +6 -4
  53. package/apps/agents-server/src/app/admin/usage/UsageClientFormatting.ts +6 -12
  54. package/apps/agents-server/src/app/admin/usage/UsageClientTimelineChart.tsx +7 -4
  55. package/apps/agents-server/src/app/admin/usage/useUsageClientState.ts +12 -4
  56. package/apps/agents-server/src/app/admin/users/[userId]/UserDetailClient.tsx +27 -15
  57. package/apps/agents-server/src/app/agents/[agentName]/ActiveAgentBreadcrumbBinder.tsx +30 -0
  58. package/apps/agents-server/src/app/agents/[agentName]/AgentChatWrapper.tsx +13 -2
  59. package/apps/agents-server/src/app/agents/[agentName]/AgentProfileChat.tsx +20 -25
  60. package/apps/agents-server/src/app/agents/[agentName]/_utils.ts +7 -5
  61. package/apps/agents-server/src/app/agents/[agentName]/api/book/route.ts +2 -0
  62. package/apps/agents-server/src/app/agents/[agentName]/api/user-chats/[chatId]/messages/route.ts +4 -11
  63. package/apps/agents-server/src/app/agents/[agentName]/api/user-chats/[chatId]/stream/route.ts +85 -56
  64. package/apps/agents-server/src/app/agents/[agentName]/book/BookEditorWrapper.tsx +7 -1
  65. package/apps/agents-server/src/app/agents/[agentName]/book/useBookEditorHistory.ts +9 -2
  66. package/apps/agents-server/src/app/agents/[agentName]/chat/AgentChatHistoryPayloadState.ts +38 -4
  67. package/apps/agents-server/src/app/agents/[agentName]/chat/AgentChatHistorySyncOperations.ts +4 -1
  68. package/apps/agents-server/src/app/agents/[agentName]/chat/AgentChatPageLayout.tsx +2 -2
  69. package/apps/agents-server/src/app/agents/[agentName]/chat/AgentChatSidebarDefault.tsx +19 -13
  70. package/apps/agents-server/src/app/agents/[agentName]/chat/CanonicalAgentChatSurface.tsx +30 -16
  71. package/apps/agents-server/src/app/agents/[agentName]/chat/useAgentChatHistoryClientState.ts +2 -15
  72. package/apps/agents-server/src/app/agents/[agentName]/chat/useAgentChatHistorySyncEffects.ts +7 -13
  73. package/apps/agents-server/src/app/agents/[agentName]/chat/useCanonicalAgentChatPanelState.ts +58 -7
  74. package/apps/agents-server/src/app/agents/[agentName]/history/page.tsx +6 -1
  75. package/apps/agents-server/src/app/agents/[agentName]/images/default-avatar.png/route.ts +6 -2
  76. package/apps/agents-server/src/app/agents/[agentName]/integration/CalendarIntegrationSection.tsx +23 -5
  77. package/apps/agents-server/src/app/agents/[agentName]/layout.tsx +47 -1
  78. package/apps/agents-server/src/app/agents/[agentName]/timeouts/AgentTimeoutsClient.tsx +4 -2
  79. package/apps/agents-server/src/app/agents/[agentName]/timeouts/AgentTimeoutsFiltersCard.tsx +9 -4
  80. package/apps/agents-server/src/app/agents/[agentName]/timeouts/AgentTimeoutsTableCard.tsx +4 -1
  81. package/apps/agents-server/src/app/agents/[agentName]/timeouts/AgentTimeoutsTableRow.tsx +10 -3
  82. package/apps/agents-server/src/app/api/admin/cli-access/route.ts +27 -123
  83. package/apps/agents-server/src/app/api/admin/code-runners/authentication/route.ts +33 -125
  84. package/apps/agents-server/src/app/api/admin/code-runners/route.ts +1 -1
  85. package/apps/agents-server/src/app/api/admin/servers/route.ts +5 -0
  86. package/apps/agents-server/src/app/api/admin/update/commits/route.ts +35 -0
  87. package/apps/agents-server/src/app/api/admin/update/log/route.ts +42 -0
  88. package/apps/agents-server/src/app/api/admin/update/route.ts +10 -2
  89. package/apps/agents-server/src/app/api/agent-folders/[folderId]/visibility/route.ts +19 -7
  90. package/apps/agents-server/src/app/api/agents/[agentName]/route.ts +39 -25
  91. package/apps/agents-server/src/app/api/agents/export/route.ts +67 -0
  92. package/apps/agents-server/src/app/api/agents/import/route.ts +168 -0
  93. package/apps/agents-server/src/app/api/auth/change-password/route.ts +53 -6
  94. package/apps/agents-server/src/app/api/auth/login/route.ts +17 -16
  95. package/apps/agents-server/src/app/api/auth/logout/route.ts +2 -10
  96. package/apps/agents-server/src/app/api/auth/shibboleth/acs/route.ts +112 -0
  97. package/apps/agents-server/src/app/api/auth/shibboleth/login/route.ts +70 -0
  98. package/apps/agents-server/src/app/api/auth/shibboleth/metadata/route.ts +15 -0
  99. package/apps/agents-server/src/app/api/auth/shibboleth/status/route.ts +17 -0
  100. package/apps/agents-server/src/app/api/chat/citation-label/route.ts +133 -0
  101. package/apps/agents-server/src/app/api/chat/export/pdf/route.ts +167 -2
  102. package/apps/agents-server/src/app/api/chat/route.ts +29 -7
  103. package/apps/agents-server/src/app/api/chat-feedback/export/route.ts +2 -2
  104. package/apps/agents-server/src/app/api/chat-feedback/route.ts +3 -3
  105. package/apps/agents-server/src/app/api/chat-history/[id]/route.ts +2 -2
  106. package/apps/agents-server/src/app/api/chat-history/export/route.ts +2 -2
  107. package/apps/agents-server/src/app/api/chat-history/route.ts +3 -3
  108. package/apps/agents-server/src/app/api/chat-streaming/route.ts +29 -0
  109. package/apps/agents-server/src/app/api/elevenlabs/tts/route.ts +60 -2
  110. package/apps/agents-server/src/app/api/emails/incoming/sendgrid/route.ts +24 -2
  111. package/apps/agents-server/src/app/api/federated-agents/route.ts +1 -1
  112. package/apps/agents-server/src/app/api/health/route.ts +18 -0
  113. package/apps/agents-server/src/app/api/images/[filename]/route.ts +108 -2
  114. package/apps/agents-server/src/app/api/internal/agent-runner-limits/route.ts +52 -0
  115. package/apps/agents-server/src/app/api/internal/user-chat-jobs/run/route.ts +17 -4
  116. package/apps/agents-server/src/app/api/metadata/export/route.ts +34 -0
  117. package/apps/agents-server/src/app/api/metadata/import/route.ts +47 -0
  118. package/apps/agents-server/src/app/api/metadata/route.ts +4 -0
  119. package/apps/agents-server/src/app/api/openai/v1/audio/transcriptions/route.ts +111 -2
  120. package/apps/agents-server/src/app/api/page-preview/check/route.ts +49 -0
  121. package/apps/agents-server/src/app/api/page-preview/screenshot/route.ts +64 -0
  122. package/apps/agents-server/src/app/api/scrape/route.ts +18 -0
  123. package/apps/agents-server/src/app/api/team-agent-profile/route.ts +20 -0
  124. package/apps/agents-server/src/app/api/upload/route.ts +204 -220
  125. package/apps/agents-server/src/app/api/users/[username]/route.ts +3 -2
  126. package/apps/agents-server/src/app/api/users/route.ts +8 -7
  127. package/apps/agents-server/src/app/api/v1/agents/[agentId]/route.ts +17 -8
  128. package/apps/agents-server/src/app/api/v1/agents/route.ts +2 -0
  129. package/apps/agents-server/src/app/dashboard/page.tsx +12 -17
  130. package/apps/agents-server/src/app/docs/[docId]/page.tsx +1 -1
  131. package/apps/agents-server/src/app/docs/page.tsx +1 -1
  132. package/apps/agents-server/src/app/globals.css +179 -0
  133. package/apps/agents-server/src/app/layout.tsx +33 -4
  134. package/apps/agents-server/src/app/recycle-bin/actions.ts +3 -0
  135. package/apps/agents-server/src/app/recycle-bin/page.tsx +1 -1
  136. package/apps/agents-server/src/app/s3/[first]/[second]/[hash]/[filename]/route.ts +52 -0
  137. package/apps/agents-server/src/app/swagger/SwaggerApiKeysPanel.tsx +4 -1
  138. package/apps/agents-server/src/app/system/settings/KeybindingsSettingsClient.tsx +13 -7
  139. package/apps/agents-server/src/app/system/user-memory/UserMemoryClient.tsx +4 -2
  140. package/apps/agents-server/src/app/system/user-wallet/UserWalletClient.tsx +3 -0
  141. package/apps/agents-server/src/app/system/user-wallet/UserWalletRecordsTable.tsx +5 -1
  142. package/apps/agents-server/src/app/system/utilities/mocked-chats/MockedChatsEditorClient.tsx +3 -0
  143. package/apps/agents-server/src/app/system/utilities/mocked-chats/MockedChatsEditorSidebar.tsx +7 -8
  144. package/apps/agents-server/src/components/AdminTerminal/AdminTerminalCard.tsx +13 -70
  145. package/apps/agents-server/src/components/AdminTerminal/AdminXtermTerminal.tsx +330 -0
  146. package/apps/agents-server/src/components/AdminTerminal/useAdminTerminalSession.ts +45 -5
  147. package/apps/agents-server/src/components/AgentContextMenu/useAgentContextMenuItems.ts +27 -19
  148. package/apps/agents-server/src/components/AgentProfile/AgentCapabilityChips.tsx +39 -5
  149. package/apps/agents-server/src/components/AgentProfile/AgentProfile.tsx +4 -7
  150. package/apps/agents-server/src/components/AgentProfile/AgentProfileImage.tsx +8 -2
  151. package/apps/agents-server/src/components/ApplicationErrorPage/ApplicationErrorPage.tsx +118 -12
  152. package/apps/agents-server/src/components/DocsToolbar/DocsToolbar.tsx +4 -4
  153. package/apps/agents-server/src/components/DocumentationContent/DocumentationContent.tsx +9 -9
  154. package/apps/agents-server/src/components/FileUploadAvailability/FileUploadAvailabilityContext.tsx +50 -0
  155. package/apps/agents-server/src/components/FileUploadAvailability/FileUploadUnavailableNotice.tsx +45 -0
  156. package/apps/agents-server/src/components/Footer/Footer.tsx +10 -9
  157. package/apps/agents-server/src/components/Footer/getCommitFooterEmoji.ts +112 -0
  158. package/apps/agents-server/src/components/Header/ActiveAgentBreadcrumbContext.tsx +82 -0
  159. package/apps/agents-server/src/components/Header/Header.tsx +24 -15
  160. package/apps/agents-server/src/components/Header/HeaderTypes.ts +6 -0
  161. package/apps/agents-server/src/components/Header/buildHeaderSystemMenuItems.ts +51 -1
  162. package/apps/agents-server/src/components/Header/useHeaderActiveAgent.ts +26 -7
  163. package/apps/agents-server/src/components/Header/useHeaderAgentMenus.tsx +0 -5
  164. package/apps/agents-server/src/components/Homepage/AgentCard.tsx +7 -1
  165. package/apps/agents-server/src/components/Homepage/AgentsList.tsx +22 -1
  166. package/apps/agents-server/src/components/Homepage/AgentsListHeader.tsx +85 -1
  167. package/apps/agents-server/src/components/Homepage/AgentsListListView.tsx +6 -0
  168. package/apps/agents-server/src/components/Homepage/AgentsListViewContent.tsx +6 -0
  169. package/apps/agents-server/src/components/Homepage/Card.tsx +1 -1
  170. package/apps/agents-server/src/components/Homepage/Section.tsx +3 -1
  171. package/apps/agents-server/src/components/Homepage/SortableFolderCard.tsx +7 -1
  172. package/apps/agents-server/src/components/Homepage/hiddenFolders.ts +104 -0
  173. package/apps/agents-server/src/components/Homepage/useAgentsListImportExportState.ts +525 -0
  174. package/apps/agents-server/src/components/Homepage/useAgentsListQueryState.ts +35 -0
  175. package/apps/agents-server/src/components/Homepage/useAgentsListState.ts +38 -4
  176. package/apps/agents-server/src/components/LayoutWrapper/LayoutWrapper.tsx +93 -70
  177. package/apps/agents-server/src/components/LoginForm/LoginForm.tsx +52 -12
  178. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/ManGoNewAgentWizard.tsx +151 -0
  179. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/ManGoOnboardingNavigation.tsx +50 -0
  180. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/BookLanguagePanel.tsx +125 -0
  181. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/DropZone.tsx +83 -0
  182. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/EmailTestRun.tsx +216 -0
  183. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/KnowledgeList.tsx +79 -0
  184. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/Logo.tsx +20 -0
  185. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/MarkdownBookEditor.tsx +154 -0
  186. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/MarkdownPreview.tsx +188 -0
  187. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/RailStepper.tsx +115 -0
  188. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/StepFrame.tsx +47 -0
  189. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/TestChat.tsx +159 -0
  190. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/WizardShell.tsx +114 -0
  191. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/brand/RailArtwork.tsx +60 -0
  192. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/steps/BookStep.tsx +135 -0
  193. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/steps/DoneStep.tsx +215 -0
  194. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/steps/KnowledgeStep.tsx +152 -0
  195. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/steps/TestStep.tsx +262 -0
  196. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/steps/ZadaniStep.tsx +64 -0
  197. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/ui/Badge.tsx +41 -0
  198. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/ui/Banner.tsx +69 -0
  199. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/ui/Button.tsx +77 -0
  200. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/ui/Card.tsx +33 -0
  201. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/ui/Field.tsx +103 -0
  202. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/ui/IconButton.tsx +40 -0
  203. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/ui/Spinner.tsx +14 -0
  204. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/components/ui/tokens.ts +37 -0
  205. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/config/bookSections.ts +62 -0
  206. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/config/emailScenarios.ts +22 -0
  207. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/config/steps.ts +46 -0
  208. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/index.ts +11 -0
  209. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/lib/cn.ts +4 -0
  210. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/lib/format.ts +9 -0
  211. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/lib/id.ts +11 -0
  212. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/services/agentEvalService.ts +30 -0
  213. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/services/agentTestService.ts +69 -0
  214. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/services/bookService.ts +21 -0
  215. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/services/createManGoAgentSource.ts +107 -0
  216. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/services/draftService.ts +45 -0
  217. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/services/uploadService.ts +27 -0
  218. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/state/OnboardingProvider.tsx +121 -0
  219. package/apps/agents-server/src/components/NewAgentDialog/ManGoNewAgentWizard/types.ts +52 -0
  220. package/apps/agents-server/src/components/NewAgentDialog/NewAgentDialog.tsx +7 -3
  221. package/apps/agents-server/src/components/NewAgentDialog/NewAgentWizardKnowledgeStep.tsx +6 -0
  222. package/apps/agents-server/src/components/NewAgentDialog/createNewAgentWizardSource.ts +1 -1
  223. package/apps/agents-server/src/components/NewAgentDialog/trackNewAgentCreationEvent.ts +1 -1
  224. package/apps/agents-server/src/components/NewAgentDialog/useNewAgentDialog.tsx +113 -14
  225. package/apps/agents-server/src/components/NewAgentDialog/useNewAgentWizardKnowledgeState.ts +8 -1
  226. package/apps/agents-server/src/components/PrintHeader/PrintHeader.tsx +4 -2
  227. package/apps/agents-server/src/components/Skeleton/ConsolePageLoadingSkeleton.tsx +1 -1
  228. package/apps/agents-server/src/components/Skeleton/DocumentationRouteLoadingSkeleton.tsx +1 -1
  229. package/apps/agents-server/src/components/Skeleton/HomepageLoadingSkeleton.tsx +1 -1
  230. package/apps/agents-server/src/components/UsersList/UsersList.tsx +24 -6
  231. package/apps/agents-server/src/components/UsersList/useUsersAdmin.ts +2 -7
  232. package/apps/agents-server/src/constants/defaultAgentAvatarVisual.ts +1 -1
  233. package/apps/agents-server/src/constants/newAgentWizard.ts +17 -8
  234. package/apps/agents-server/src/constants/serverLimits.ts +41 -2
  235. package/apps/agents-server/src/constants/shibbolethAuth.ts +139 -0
  236. package/apps/agents-server/src/database/$provideClientSql.ts +37 -0
  237. package/apps/agents-server/src/database/$provideSupabaseForServer.ts +41 -0
  238. package/apps/agents-server/src/database/customJavascript.ts +62 -1
  239. package/apps/agents-server/src/database/customStylesheet.ts +60 -1
  240. package/apps/agents-server/src/database/getMetadata.ts +121 -4
  241. package/apps/agents-server/src/database/loadAgentsServerEnvFile.ts +29 -0
  242. package/apps/agents-server/src/database/metadataDefaults.ts +85 -31
  243. package/apps/agents-server/src/database/migrate.ts +8 -2
  244. package/apps/agents-server/src/database/migrations/2026-06-0100-shibboleth-auth.sql +136 -0
  245. package/apps/agents-server/src/database/migrations/2026-06-0200-default-agent-avatar-visual-octopus3d3.sql +16 -0
  246. package/apps/agents-server/src/database/migrations/2026-06-1300-user-chat-active-read-indexes.sql +7 -0
  247. package/apps/agents-server/src/database/migrations/2026-06-2200-new-agent-wizard-metadata-key.sql +27 -0
  248. package/apps/agents-server/src/database/migrations/2026-06-2201-new-agent-wizard-mango-default.sql +11 -0
  249. package/apps/agents-server/src/database/migrations/2026-06-2600-agent-directory-performance-indexes.sql +14 -0
  250. package/apps/agents-server/src/database/migrations/2026-06-2700-default-agent-avatar-visual-octopus3d4.sql +16 -0
  251. package/apps/agents-server/src/database/seedCoreAgents.ts +234 -0
  252. package/apps/agents-server/src/database/seedDefaultAgents.ts +223 -0
  253. package/apps/agents-server/src/database/sqlite/$provideLocalSqliteSupabase.ts +234 -41
  254. package/apps/agents-server/src/generated/reservedPaths.ts +3 -0
  255. package/apps/agents-server/src/instrumentation-client.ts +28 -0
  256. package/apps/agents-server/src/instrumentation.ts +19 -0
  257. package/apps/agents-server/src/languages/ServerTranslationKeys.ts +4 -0
  258. package/apps/agents-server/src/languages/translations/czech.yaml +5 -1
  259. package/apps/agents-server/src/languages/translations/english.yaml +5 -1
  260. package/apps/agents-server/src/message-providers/email/sendgrid/verifySendgridInboundParseWebhook.ts +345 -0
  261. package/apps/agents-server/src/middleware/applyEmbeddingHeader.ts +4 -2
  262. package/apps/agents-server/src/middleware/contentSecurityPolicy.ts +97 -0
  263. package/apps/agents-server/src/middleware/resolveAccessControlResponse.ts +3 -2
  264. package/apps/agents-server/src/middleware/resolveMiddlewareResponse.ts +8 -3
  265. package/apps/agents-server/src/middleware.ts +15 -32
  266. package/apps/agents-server/src/search/createDefaultServerSearchProviders/createFederatedAgentsSearchProvider.ts +1 -1
  267. package/apps/agents-server/src/sentry.edge.config.ts +18 -0
  268. package/apps/agents-server/src/sentry.server.config.ts +19 -0
  269. package/apps/agents-server/src/tools/$provideAgentCollectionForServer.ts +2 -9
  270. package/apps/agents-server/src/tools/$provideCdnForServer.ts +187 -15
  271. package/apps/agents-server/src/tools/BrowserConnectionProvider.ts +2 -19
  272. package/apps/agents-server/src/tools/agent_progress.ts +4 -10
  273. package/apps/agents-server/src/tools/createAgentProgressTools.ts +8 -4
  274. package/apps/agents-server/src/tools/createChatAttachmentToolFunctions.ts +8 -4
  275. package/apps/agents-server/src/tools/createServerChromiumLaunchOptions.ts +44 -0
  276. package/apps/agents-server/src/utils/agentOwnership.ts +54 -5
  277. package/apps/agents-server/src/utils/agentRouting/resolveAgentRouteTarget.ts +101 -19
  278. package/apps/agents-server/src/utils/agentVisibility.ts +25 -62
  279. package/apps/agents-server/src/utils/agentsTransfer/createAgentsExportZipStream.ts +81 -0
  280. package/apps/agents-server/src/utils/agentsTransfer/importAgentsFromFiles.ts +852 -0
  281. package/apps/agents-server/src/utils/assertSafeUrl.ts +136 -0
  282. package/apps/agents-server/src/utils/authenticateUser.ts +112 -4
  283. package/apps/agents-server/src/utils/authenticationAttemptRateLimit.ts +504 -0
  284. package/apps/agents-server/src/utils/backup/createBooksBackupZipStream.ts +91 -7
  285. package/apps/agents-server/src/utils/cdn/classes/DigitalOceanSpaces.ts +48 -4
  286. package/apps/agents-server/src/utils/cdn/classes/TrackedFilesStorage.ts +6 -5
  287. package/apps/agents-server/src/utils/cdn/interfaces/IFilesStorage.ts +5 -0
  288. package/apps/agents-server/src/utils/cdn/utils/getUserFileCdnKey.ts +10 -3
  289. package/apps/agents-server/src/utils/chat/resolveAgentsServerCitationLabel.ts +130 -0
  290. package/apps/agents-server/src/utils/chat/resolveCitationSourceLabel.ts +436 -0
  291. package/apps/agents-server/src/utils/chatExport/renderHtmlToPdfOnServer.ts +66 -17
  292. package/apps/agents-server/src/utils/chatExport/sanitizeChatPdfExportHtml.ts +193 -0
  293. package/apps/agents-server/src/utils/codeRunnerConfiguration.ts +1 -1
  294. package/apps/agents-server/src/utils/createAdminTerminalRouteHandlers.ts +264 -0
  295. package/apps/agents-server/src/utils/createAgentWithDefaultVisibility.ts +3 -1
  296. package/apps/agents-server/src/utils/currentUserIdentity.ts +22 -9
  297. package/apps/agents-server/src/utils/defaultAgents/loadDefaultAgentBooks.ts +145 -0
  298. package/apps/agents-server/src/utils/errorReporting/agentsServerSentryContext.ts +203 -0
  299. package/apps/agents-server/src/utils/errorReporting/applicationErrorHandling.ts +45 -0
  300. package/apps/agents-server/src/utils/errorReporting/refreshApplicationDocument.ts +10 -0
  301. package/apps/agents-server/src/utils/errorReporting/registerServerErrorSentryLogging.ts +381 -0
  302. package/apps/agents-server/src/utils/errorReporting/sendApplicationErrorReportToSentry.ts +43 -152
  303. package/apps/agents-server/src/utils/errorReporting/sentrySdkConfig.ts +237 -0
  304. package/apps/agents-server/src/utils/errorReporting/sentryStore.ts +187 -0
  305. package/apps/agents-server/src/utils/externalChatRunner/createExternalAgentRepositoryFiles.ts +2 -2
  306. package/apps/agents-server/src/utils/externalChatRunner/processExternalUserChatJob.ts +15 -8
  307. package/apps/agents-server/src/utils/findAgentForCallerWriteAccess.ts +36 -0
  308. package/apps/agents-server/src/utils/getCurrentUser.ts +2 -1
  309. package/apps/agents-server/src/utils/getFederatedServers.ts +3 -74
  310. package/apps/agents-server/src/utils/getUserById.ts +19 -5
  311. package/apps/agents-server/src/utils/getWellKnownAgentUrl.ts +10 -4
  312. package/apps/agents-server/src/utils/iframe/checkIfUrlCanBeEmbedded.ts +68 -0
  313. package/apps/agents-server/src/utils/interactiveTerminalSession.ts +9 -4
  314. package/apps/agents-server/src/utils/isAdminPasswordEqual.ts +28 -0
  315. package/apps/agents-server/src/utils/isUserGlobalAdmin.ts +3 -1
  316. package/apps/agents-server/src/utils/knowledge/createInlineKnowledgeSourceUploader.ts +24 -5
  317. package/apps/agents-server/src/utils/knowledge/resolveWebsiteKnowledgeSourcesForServer.ts +10 -1
  318. package/apps/agents-server/src/utils/localChatRunner/LocalUserChatJobMetadata.ts +15 -5
  319. package/apps/agents-server/src/utils/localChatRunner/processLocalUserChatJob.ts +24 -18
  320. package/apps/agents-server/src/utils/localization/formatServerLanguageHumanReadableDate.ts +70 -0
  321. package/apps/agents-server/src/utils/localization/getRequestServerLanguage.ts +32 -0
  322. package/apps/agents-server/src/utils/metadataConfigurationTransfer.ts +442 -0
  323. package/apps/agents-server/src/utils/paidApiRequestGuard.ts +241 -0
  324. package/apps/agents-server/src/utils/publicUser.ts +59 -0
  325. package/apps/agents-server/src/utils/serverLimits.ts +28 -1
  326. package/apps/agents-server/src/utils/serverManagement/createManagedServer/bootstrapManagedServer.ts +5 -6
  327. package/apps/agents-server/src/utils/serverManagement/createManagedServer/normalizeCreateServerInput.ts +6 -0
  328. package/apps/agents-server/src/utils/serverManagement/createManagedServer/seedServerCoreAgents.ts +162 -0
  329. package/apps/agents-server/src/utils/serverManagement/createManagedServer/seedServerDefaultAgents.ts +7 -87
  330. package/apps/agents-server/src/utils/serverManagement/createManagedServer.ts +5 -0
  331. package/apps/agents-server/src/utils/session.ts +72 -30
  332. package/apps/agents-server/src/utils/shareTargetPayloads.ts +37 -66
  333. package/apps/agents-server/src/utils/shibbolethAuthentication.ts +957 -0
  334. package/apps/agents-server/src/utils/transpilers/resolveTranspiledTeamExport.ts +10 -10
  335. package/apps/agents-server/src/utils/upload/createBookEditorUploadHandler.ts +19 -28
  336. package/apps/agents-server/src/utils/upload/fileUploadAvailability.ts +91 -0
  337. package/apps/agents-server/src/utils/upload/uploadFileToServer.ts +157 -0
  338. package/apps/agents-server/src/utils/userChat/createImmediateUserChatAnswerModelRequirements.ts +26 -12
  339. package/apps/agents-server/src/utils/userChat/createRunUserChatJobExecutionContext.ts +45 -0
  340. package/apps/agents-server/src/utils/userChat/createRunUserChatJobPersistenceController.ts +17 -11
  341. package/apps/agents-server/src/utils/userChat/createUserChatDetailPayload.ts +33 -18
  342. package/apps/agents-server/src/utils/userChat/createUserChatHarnessProgressCard.ts +93 -0
  343. package/apps/agents-server/src/utils/userChat/createUserChatRunnerProgressCard.ts +57 -0
  344. package/apps/agents-server/src/utils/userChat/hasPotentiallyPendingAssistantMessages.ts +26 -0
  345. package/apps/agents-server/src/utils/userChat/listUserChats.ts +117 -6
  346. package/apps/agents-server/src/utils/userChat/persistUserChatJobProgressCard.ts +40 -0
  347. package/apps/agents-server/src/utils/userChat/resolveUserChatProgressToolHighlights.ts +100 -0
  348. package/apps/agents-server/src/utils/userChat/resolveUserChatWorkerInternalToken.ts +63 -9
  349. package/apps/agents-server/src/utils/userChat/runImmediateUserChatAnswer.ts +1 -1
  350. package/apps/agents-server/src/utils/userChat/runUserChatJob.ts +30 -0
  351. package/apps/agents-server/src/utils/userChat/triggerUserChatJobWorker.ts +54 -19
  352. package/apps/agents-server/src/utils/userChat/userChatMessageLifecycle.ts +69 -1
  353. package/apps/agents-server/src/utils/userChat/userChatProgressCard.ts +360 -0
  354. package/apps/agents-server/src/utils/validateApiKey.ts +7 -3
  355. package/apps/agents-server/src/utils/vpsConfiguration.ts +8 -1
  356. package/apps/agents-server/src/utils/vpsSelfUpdate.ts +935 -64
  357. package/esm/apps/agents-server/src/constants/federatedAgentImport.d.ts +42 -0
  358. package/esm/apps/agents-server/src/constants/serverLimits.d.ts +224 -0
  359. package/esm/apps/agents-server/src/constants/toolUsageLimits.d.ts +55 -0
  360. package/esm/index.es.js +24308 -18655
  361. package/esm/index.es.js.map +1 -1
  362. package/esm/scripts/run-agent-chat/executeAgentChatTurn.d.ts +28 -0
  363. package/esm/scripts/run-agent-chat/runAgentChat.d.ts +5 -0
  364. package/esm/scripts/run-agent-chat/runAgentExec.d.ts +11 -0
  365. package/esm/scripts/run-agent-messages/main/AgentMessageFailureTracker.d.ts +27 -0
  366. package/esm/scripts/run-agent-messages/main/handleAgentWatchError.d.ts +4 -0
  367. package/esm/scripts/run-agent-messages/main/runAgentMessages.d.ts +1 -0
  368. package/esm/scripts/run-agent-messages/main/runMultipleAgentMessages.d.ts +1 -0
  369. package/esm/scripts/run-agent-messages/main/tickAgentMessages.d.ts +1 -0
  370. package/esm/scripts/run-agent-messages/messages/createAgentRunnerSystemMessage.d.ts +10 -0
  371. package/esm/scripts/run-agent-messages/messages/moveAgentMessageToFailed.d.ts +17 -0
  372. package/esm/scripts/run-codex-prompts/common/buildCoderRunProgressSnapshot.d.ts +5 -1
  373. package/esm/scripts/run-codex-prompts/common/cliProgressDisplay.d.ts +7 -0
  374. package/esm/scripts/run-codex-prompts/common/coderRunEstimateCache.d.ts +31 -0
  375. package/esm/scripts/run-codex-prompts/common/parseDuration.d.ts +19 -0
  376. package/esm/scripts/run-codex-prompts/common/progressFormatting.d.ts +2 -0
  377. package/esm/scripts/run-codex-prompts/common/resolveAgentSystemMessage.d.ts +6 -0
  378. package/esm/scripts/run-codex-prompts/common/resolveInlineOrFileText.d.ts +14 -0
  379. package/esm/scripts/run-codex-prompts/common/runGoScript/printLiveScriptChunk.d.ts +4 -0
  380. package/esm/scripts/run-codex-prompts/common/sleepWithCountdown.d.ts +27 -0
  381. package/esm/scripts/run-codex-prompts/common/waitForPause.d.ts +12 -0
  382. package/esm/scripts/run-codex-prompts/git/commitChanges.d.ts +3 -1
  383. package/esm/scripts/run-codex-prompts/main/findUnwrittenPrompts.d.ts +19 -0
  384. package/esm/scripts/run-codex-prompts/main/runCodexPromptsServer.d.ts +27 -0
  385. package/esm/scripts/run-codex-prompts/main/runPromptRound.d.ts +5 -3
  386. package/esm/scripts/run-codex-prompts/runners/claude-code/ClaudeCodeRunner.d.ts +3 -1
  387. package/esm/scripts/run-codex-prompts/server/buildCoderServerPromptResponse.d.ts +50 -0
  388. package/esm/scripts/run-codex-prompts/server/buildCoderServerRunState.d.ts +23 -0
  389. package/esm/scripts/run-codex-prompts/server/coderServerHtml.d.ts +9 -0
  390. package/esm/scripts/run-codex-prompts/server/runCoderHttpServer.d.ts +35 -0
  391. package/esm/scripts/run-codex-prompts/server/updatePromptSection.d.ts +9 -0
  392. package/esm/scripts/run-codex-prompts/ui/CoderRunUiState.d.ts +8 -0
  393. package/esm/scripts/run-codex-prompts/ui/buildCoderRunUiFrame.d.ts +1 -0
  394. package/esm/scripts/run-codex-prompts/ui/buildRunUiFrameShared.d.ts +5 -1
  395. package/esm/scripts/run-codex-prompts/ui/renderCoderRunUi.d.ts +1 -0
  396. package/esm/src/_packages/components.index.d.ts +4 -0
  397. package/esm/src/_packages/core.index.d.ts +22 -2
  398. package/esm/src/_packages/node.index.d.ts +40 -0
  399. package/esm/src/_packages/types.index.d.ts +20 -0
  400. package/esm/src/avatars/avatarAnimationScheduler.d.ts +4 -0
  401. package/esm/src/avatars/types/AvatarVisualDefinition.d.ts +1 -1
  402. package/esm/src/avatars/visuals/octopus3d3AvatarVisual.d.ts +7 -0
  403. package/esm/src/avatars/visuals/octopus3d4AvatarVisual.d.ts +7 -0
  404. package/esm/src/book-2.0/agent-source/AgentBasicInformation.d.ts +2 -0
  405. package/esm/src/book-2.0/agent-source/agentSourceVisibility.d.ts +97 -0
  406. package/esm/src/book-2.0/agent-source/agentSourceVisibility.test.d.ts +1 -0
  407. package/esm/src/book-3.0/BookNodeAgentSource.d.ts +38 -0
  408. package/esm/src/book-3.0/CliAgent.d.ts +66 -0
  409. package/esm/src/book-3.0/CliAgent.test.d.ts +1 -0
  410. package/esm/src/book-3.0/LiteAgent.d.ts +68 -0
  411. package/esm/src/book-3.0/LiteAgent.test.d.ts +1 -0
  412. package/esm/src/book-3.0/agentFolderPaths.d.ts +30 -0
  413. package/esm/src/book-3.0/cliAgentEnv.d.ts +33 -0
  414. package/esm/src/book-components/BookEditor/BookEditor.d.ts +6 -5
  415. package/esm/src/book-components/BookEditor/BookEditorAboutPromptbookInformation.d.ts +12 -0
  416. package/esm/src/book-components/BookEditor/BookEditorBrowserConfig.d.ts +2 -0
  417. package/esm/src/book-components/BookEditor/BookEditorForClient.d.ts +7 -0
  418. package/esm/src/book-components/BookEditor/BookEditorMonacoTokenization.d.ts +2 -0
  419. package/esm/src/book-components/BookEditor/BookEditorTheme.d.ts +24 -0
  420. package/esm/src/book-components/BookEditor/createDeprecatedCommitmentDiagnostics.browser.d.ts +9 -0
  421. package/esm/src/book-components/BookEditor/useBookEditorMonacoLanguage.d.ts +1 -6
  422. package/esm/src/book-components/BookEditor/useBookEditorMonacoLifecycle.d.ts +1 -4
  423. package/esm/src/book-components/BookEditor/useBookEditorMonacoStyles.d.ts +2 -1
  424. package/esm/src/book-components/Chat/Chat/ChatCitationModal.d.ts +2 -0
  425. package/esm/src/book-components/Chat/Chat/ChatMessageItem.d.ts +4 -0
  426. package/esm/src/book-components/Chat/Chat/ChatMessageList.d.ts +4 -0
  427. package/esm/src/book-components/Chat/Chat/ChatProps.d.ts +5 -0
  428. package/esm/src/book-components/Chat/Chat/ChatToolCallModal.d.ts +2 -0
  429. package/esm/src/book-components/Chat/Chat/ChatToolCallModalContent.d.ts +3 -1
  430. package/esm/src/book-components/Chat/Chat/CitationIframePreview.d.ts +20 -0
  431. package/esm/src/book-components/Chat/Chat/TeamToolCallModalContent.d.ts +2 -0
  432. package/esm/src/book-components/Chat/MarkdownContent/MarkdownContent.d.ts +1 -0
  433. package/esm/src/book-components/Chat/SourceChip/SourceChip.d.ts +6 -1
  434. package/esm/src/book-components/Chat/hooks/useResolvedCitationLabel.d.ts +12 -0
  435. package/esm/src/book-components/Chat/types/ChatMessage.d.ts +4 -0
  436. package/esm/src/book-components/Chat/types/ChatParticipant.d.ts +1 -1
  437. package/esm/src/book-components/Chat/types/CitationLabelResolver.d.ts +8 -0
  438. package/esm/src/book-components/Chat/utils/citationHelpers.d.ts +9 -0
  439. package/esm/src/book-components/Chat/utils/decodeJsonUnicodeEscapesInMarkdownText.d.ts +14 -0
  440. package/esm/src/book-components/Chat/utils/decodeJsonUnicodeEscapesInMarkdownText.test.d.ts +1 -0
  441. package/esm/src/book-components/Chat/utils/isVisibleChatToolCall.d.ts +10 -0
  442. package/esm/src/book-components/Chat/utils/parseCitationsFromContent.d.ts +4 -0
  443. package/esm/src/book-components/_common/Dropdown/Dropdown.d.ts +1 -1
  444. package/esm/src/book-components/_common/MenuHoisting/MenuHoistingContext.d.ts +1 -1
  445. package/esm/src/book-components/_common/Modal/Modal.d.ts +1 -1
  446. package/esm/src/book-components/icons/AboutIcon.d.ts +1 -1
  447. package/esm/src/book-components/icons/DownloadIcon.d.ts +1 -1
  448. package/esm/src/book-components/icons/ExitFullscreenIcon.d.ts +1 -1
  449. package/esm/src/book-components/icons/FullscreenIcon.d.ts +1 -1
  450. package/esm/src/cli/cli-commands/agent/agentCliOptions.d.ts +38 -0
  451. package/esm/src/cli/cli-commands/agent/chat.d.ts +10 -0
  452. package/esm/src/cli/cli-commands/agent/exec.d.ts +10 -0
  453. package/esm/src/cli/cli-commands/agent/run.test.d.ts +1 -0
  454. package/esm/src/cli/cli-commands/agent-folder/agentProjectPaths.d.ts +2 -24
  455. package/esm/src/cli/cli-commands/agent.d.ts +14 -0
  456. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer.d.ts +23 -1
  457. package/esm/src/cli/cli-commands/agents-server/run.d.ts +6 -0
  458. package/esm/src/cli/cli-commands/agents-server/startAgentsServer.d.ts +9 -2
  459. package/esm/src/cli/cli-commands/coder/ThinkingLevel.d.ts +1 -1
  460. package/esm/src/cli/cli-commands/coder/ensureCoderDeveloperAgentFile.d.ts +25 -0
  461. package/esm/src/cli/cli-commands/coder/find-unwritten.d.ts +10 -0
  462. package/esm/src/cli/cli-commands/coder/initializeCoderProjectConfiguration.d.ts +2 -0
  463. package/esm/src/cli/cli-commands/coder/server.d.ts +13 -0
  464. package/esm/src/cli/cli-commands/coder/waitOptions.d.ts +14 -0
  465. package/esm/src/cli/cli-commands/common/promptRunnerCliOptions.d.ts +9 -25
  466. package/esm/src/collection/agent-collection/CreateAgentInput.d.ts +2 -1
  467. package/esm/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +22 -0
  468. package/esm/src/collection/agent-collection/constructors/agent-collection-in-supabase/prepareAgentSourceForPersistence.d.ts +21 -1
  469. package/esm/src/commitments/META_VISIBILITY/META_VISIBILITY.d.ts +27 -0
  470. package/esm/src/commitments/_common/teamInternalAgentAccess.d.ts +9 -1
  471. package/esm/src/commitments/index.d.ts +2 -1
  472. package/esm/src/llm-providers/_common/register/$provideLlmToolsConfigurationFromEnv.d.ts +1 -1
  473. package/esm/src/llm-providers/_common/register/$provideLlmToolsFromEnv.d.ts +1 -1
  474. package/esm/src/scrapers/website/utils/createShowdownConverter.d.ts +2 -2
  475. package/esm/src/utils/isTimingSafeEqualString.d.ts +25 -0
  476. package/esm/src/utils/validators/url/isValidAgentUrl.d.ts +5 -0
  477. package/esm/src/version.d.ts +1 -1
  478. package/package.json +6 -1
  479. package/servers.ts +1 -16
  480. package/src/_packages/components.index.ts +4 -0
  481. package/src/_packages/core.index.ts +22 -2
  482. package/src/_packages/node.index.ts +40 -0
  483. package/src/_packages/types.index.ts +20 -0
  484. package/src/avatars/avatarAnimationScheduler.ts +76 -4
  485. package/src/avatars/types/AvatarVisualDefinition.ts +2 -0
  486. package/src/avatars/visuals/avatarVisualRegistry.ts +4 -0
  487. package/src/avatars/visuals/fractalAvatarVisual.ts +5 -4
  488. package/src/avatars/visuals/minecraft2AvatarVisual.ts +16 -11
  489. package/src/avatars/visuals/minecraftAvatarVisual.ts +21 -7
  490. package/src/avatars/visuals/octopus3d2AvatarVisual.ts +175 -38
  491. package/src/avatars/visuals/octopus3d3AvatarVisual.ts +1068 -0
  492. package/src/avatars/visuals/octopus3d4AvatarVisual.ts +1295 -0
  493. package/src/avatars/visuals/octopus3dAvatarVisual.ts +69 -17
  494. package/src/book-2.0/agent-source/AgentBasicInformation.ts +2 -0
  495. package/src/book-2.0/agent-source/agentSourceVisibility.ts +214 -0
  496. package/src/book-2.0/agent-source/createAgentModelRequirementsWithCommitments/augmentAgentModelRequirementsFromSource.ts +18 -2
  497. package/src/book-2.0/agent-source/parseAgentSource/applyMetaCommitment.ts +17 -0
  498. package/src/book-2.0/book-language-documentation/createStandaloneBookLanguageMarkdown.ts +1 -0
  499. package/src/book-2.0/book-language-documentation/renderGroupedCommitmentDocumentationMarkdown.ts +7 -1
  500. package/src/book-3.0/Book.ts +3 -1
  501. package/src/book-3.0/BookNodeAgentSource.ts +135 -0
  502. package/src/book-3.0/CliAgent.ts +252 -0
  503. package/src/book-3.0/LiteAgent.ts +468 -0
  504. package/src/book-3.0/agentFolderPaths.ts +38 -0
  505. package/src/book-3.0/cliAgentEnv.ts +46 -0
  506. package/src/book-components/BookEditor/BookEditor.module.css +61 -0
  507. package/src/book-components/BookEditor/BookEditor.tsx +16 -13
  508. package/src/book-components/BookEditor/BookEditorAboutPromptbookInformation.tsx +72 -0
  509. package/src/book-components/BookEditor/BookEditorActionbar.tsx +35 -5
  510. package/src/book-components/BookEditor/BookEditorBrowserConfig.ts +11 -0
  511. package/src/book-components/BookEditor/BookEditorForClient.tsx +33 -0
  512. package/src/book-components/BookEditor/BookEditorMonaco.tsx +4 -2
  513. package/src/book-components/BookEditor/BookEditorMonacoTokenization.ts +89 -27
  514. package/src/book-components/BookEditor/BookEditorTheme.ts +32 -0
  515. package/src/book-components/BookEditor/createDeprecatedCommitmentDiagnostics.browser.ts +11 -0
  516. package/src/book-components/BookEditor/useBookEditorMonacoLanguage.ts +62 -92
  517. package/src/book-components/BookEditor/useBookEditorMonacoLifecycle.ts +1 -5
  518. package/src/book-components/BookEditor/useBookEditorMonacoStyles.ts +3 -2
  519. package/src/book-components/BookEditor/useBookEditorMonacoUploads.ts +1 -1
  520. package/src/book-components/Chat/Chat/Chat.module.css +50 -0
  521. package/src/book-components/Chat/Chat/Chat.tsx +4 -0
  522. package/src/book-components/Chat/Chat/ChatCitationModal.tsx +19 -5
  523. package/src/book-components/Chat/Chat/ChatMessageItem.tsx +22 -2
  524. package/src/book-components/Chat/Chat/ChatMessageList.tsx +6 -0
  525. package/src/book-components/Chat/Chat/ChatProps.tsx +6 -0
  526. package/src/book-components/Chat/Chat/ChatToolCallModal.tsx +4 -0
  527. package/src/book-components/Chat/Chat/ChatToolCallModalContent.tsx +4 -0
  528. package/src/book-components/Chat/Chat/CitationIframePreview.tsx +78 -0
  529. package/src/book-components/Chat/Chat/TeamToolCallModalContent.tsx +16 -3
  530. package/src/book-components/Chat/Chat/createChatMessageToolCallRenderModel.ts +2 -9
  531. package/src/book-components/Chat/Chat/useChatPostprocessedMessages.ts +13 -2
  532. package/src/book-components/Chat/MarkdownContent/MarkdownContent.tsx +63 -4
  533. package/src/book-components/Chat/SourceChip/SourceChip.module.css +8 -0
  534. package/src/book-components/Chat/SourceChip/SourceChip.tsx +19 -5
  535. package/src/book-components/Chat/hooks/useResolvedCitationLabel.ts +65 -0
  536. package/src/book-components/Chat/save/html/htmlSaveFormatDefinition.ts +315 -88
  537. package/src/book-components/Chat/save/react/reactSaveFormatDefinition.ts +7 -1
  538. package/src/book-components/Chat/types/ChatMessage.ts +5 -0
  539. package/src/book-components/Chat/types/ChatParticipant.ts +1 -1
  540. package/src/book-components/Chat/types/CitationLabelResolver.ts +9 -0
  541. package/src/book-components/Chat/utils/citationHelpers.ts +90 -2
  542. package/src/book-components/Chat/utils/createCitationFootnoteRenderModel.ts +3 -0
  543. package/src/book-components/Chat/utils/decodeJsonUnicodeEscapesInMarkdownText.ts +178 -0
  544. package/src/book-components/Chat/utils/isVisibleChatToolCall.ts +23 -0
  545. package/src/book-components/Chat/utils/parseCitationsFromContent.ts +6 -0
  546. package/src/book-components/Chat/utils/renderMarkdown.ts +3 -2
  547. package/src/book-components/_common/Dropdown/Dropdown.tsx +1 -1
  548. package/src/book-components/_common/MenuHoisting/MenuHoistingContext.tsx +1 -1
  549. package/src/book-components/_common/Modal/Modal.tsx +1 -1
  550. package/src/book-components/icons/AboutIcon.tsx +1 -1
  551. package/src/book-components/icons/DownloadIcon.tsx +1 -1
  552. package/src/book-components/icons/ExitFullscreenIcon.tsx +1 -1
  553. package/src/book-components/icons/FullscreenIcon.tsx +1 -1
  554. package/src/cli/cli-commands/agent/agentCliOptions.ts +92 -0
  555. package/src/cli/cli-commands/agent/chat.ts +54 -0
  556. package/src/cli/cli-commands/agent/exec.ts +60 -0
  557. package/src/cli/cli-commands/agent-folder/agentProjectPaths.ts +15 -28
  558. package/src/cli/cli-commands/agent.ts +44 -0
  559. package/src/cli/cli-commands/agents-server/buildAgentsServer.ts +325 -33
  560. package/src/cli/cli-commands/agents-server/ensureAgentsServerEnvFile.ts +15 -2
  561. package/src/cli/cli-commands/agents-server/run.ts +103 -31
  562. package/src/cli/cli-commands/agents-server/startAgentsServer.ts +270 -41
  563. package/src/cli/cli-commands/agents-server.ts +7 -1
  564. package/src/cli/cli-commands/coder/ThinkingLevel.ts +3 -1
  565. package/src/cli/cli-commands/coder/agentCodingFile.ts +1 -1
  566. package/src/cli/cli-commands/coder/ensureCoderDeveloperAgentFile.ts +79 -0
  567. package/src/cli/cli-commands/coder/find-unwritten.ts +58 -0
  568. package/src/cli/cli-commands/coder/getDefaultCoderPackageJsonScripts.ts +2 -2
  569. package/src/cli/cli-commands/coder/init.ts +6 -1
  570. package/src/cli/cli-commands/coder/initializeCoderProjectConfiguration.ts +10 -0
  571. package/src/cli/cli-commands/coder/printInitializationSummary.ts +3 -0
  572. package/src/cli/cli-commands/coder/run.ts +108 -13
  573. package/src/cli/cli-commands/coder/server.ts +259 -0
  574. package/src/cli/cli-commands/coder/waitOptions.ts +24 -0
  575. package/src/cli/cli-commands/coder.ts +6 -0
  576. package/src/cli/cli-commands/common/promptRunnerCliOptions.ts +33 -49
  577. package/src/cli/common/$deprecateCliCommand.ts +10 -1
  578. package/src/cli/promptbookCli.ts +2 -0
  579. package/src/collection/agent-collection/CreateAgentInput.ts +10 -5
  580. package/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.ts +98 -17
  581. package/src/collection/agent-collection/constructors/agent-collection-in-supabase/createAgentPersistenceRecords.ts +7 -4
  582. package/src/collection/agent-collection/constructors/agent-collection-in-supabase/prepareAgentSourceForPersistence.ts +44 -8
  583. package/src/commands/KNOWLEDGE/utils/knowledgeSourceContentToName.ts +2 -2
  584. package/src/commitments/GOAL/GOAL.ts +7 -2
  585. package/src/commitments/LANGUAGE/LANGUAGE.ts +7 -2
  586. package/src/commitments/META_VISIBILITY/META_VISIBILITY.ts +78 -0
  587. package/src/commitments/TEAM/TEAM.ts +12 -1
  588. package/src/commitments/USE_PROJECT/createUseProjectToolFunctions.ts +8 -1
  589. package/src/commitments/_common/teamInternalAgentAccess.ts +14 -8
  590. package/src/commitments/index.ts +2 -0
  591. package/src/execution/createPipelineExecutor/getKnowledgeForTask.ts +1 -1
  592. package/src/formats/csv/CsvFormatParser.ts +4 -4
  593. package/src/formats/csv/utils/csvParse.ts +2 -2
  594. package/src/import-plugins/JsonFileImportPlugin.ts +15 -2
  595. package/src/import-plugins/TextFileImportPlugin.ts +8 -1
  596. package/src/llm-providers/_common/register/$provideLlmToolsConfigurationFromEnv.ts +1 -1
  597. package/src/llm-providers/_common/register/$provideLlmToolsFromEnv.ts +1 -1
  598. package/src/llm-providers/_common/register/$registeredLlmToolsMessage.ts +6 -1
  599. package/src/llm-providers/agent/AgentLlmExecutionTools.ts +2 -2
  600. package/src/llm-providers/agent/AgentLlmExecutionToolsAgentKitRunner.ts +2 -2
  601. package/src/llm-providers/agent/AgentLlmExecutionToolsOpenAiAssistantRunner.ts +2 -2
  602. package/src/llm-providers/anthropic-claude/register-configuration.ts +6 -3
  603. package/src/llm-providers/openai/OpenAiAgentKitExecutionToolsToolBuilder.ts +3 -1
  604. package/src/llm-providers/openai/OpenAiAssistantExecutionToolsToolRunner.ts +1 -1
  605. package/src/llm-providers/openai/OpenAiVectorStoreKnowledgeSourcePreparer.ts +1 -1
  606. package/src/other/templates/getTemplatesPipelineCollection.ts +817 -702
  607. package/src/scrapers/_common/utils/getScraperIntermediateSource.ts +2 -2
  608. package/src/scrapers/website/WebsiteScraper.ts +1 -1
  609. package/src/scrapers/website/utils/createShowdownConverter.ts +2 -2
  610. package/src/scripting/javascript/JavascriptEvalExecutionTools.ts +1 -1
  611. package/src/utils/agents/resolveAgentAvatarImageUrl.ts +1 -1
  612. package/src/utils/chat/chatAttachments/resolveChatAttachmentContent.ts +8 -1
  613. package/src/utils/isTimingSafeEqualString.ts +43 -0
  614. package/src/utils/misc/computeHash.ts +2 -2
  615. package/src/utils/random/$randomToken.ts +2 -2
  616. package/src/utils/validators/url/isValidAgentUrl.ts +5 -7
  617. package/src/version.ts +2 -2
  618. package/src/versions.txt +33 -0
  619. package/umd/apps/agents-server/src/constants/federatedAgentImport.d.ts +42 -0
  620. package/umd/apps/agents-server/src/constants/serverLimits.d.ts +224 -0
  621. package/umd/apps/agents-server/src/constants/toolUsageLimits.d.ts +55 -0
  622. package/umd/index.umd.js +24336 -18681
  623. package/umd/index.umd.js.map +1 -1
  624. package/umd/scripts/run-agent-chat/executeAgentChatTurn.d.ts +28 -0
  625. package/umd/scripts/run-agent-chat/runAgentChat.d.ts +5 -0
  626. package/umd/scripts/run-agent-chat/runAgentExec.d.ts +11 -0
  627. package/umd/scripts/run-agent-messages/main/AgentMessageFailureTracker.d.ts +27 -0
  628. package/umd/scripts/run-agent-messages/main/handleAgentWatchError.d.ts +4 -0
  629. package/umd/scripts/run-agent-messages/main/runAgentMessages.d.ts +1 -0
  630. package/umd/scripts/run-agent-messages/main/runMultipleAgentMessages.d.ts +1 -0
  631. package/umd/scripts/run-agent-messages/main/tickAgentMessages.d.ts +1 -0
  632. package/umd/scripts/run-agent-messages/messages/createAgentRunnerSystemMessage.d.ts +10 -0
  633. package/umd/scripts/run-agent-messages/messages/moveAgentMessageToFailed.d.ts +17 -0
  634. package/umd/scripts/run-codex-prompts/common/buildCoderRunProgressSnapshot.d.ts +5 -1
  635. package/umd/scripts/run-codex-prompts/common/cliProgressDisplay.d.ts +7 -0
  636. package/umd/scripts/run-codex-prompts/common/coderRunEstimateCache.d.ts +31 -0
  637. package/umd/scripts/run-codex-prompts/common/parseDuration.d.ts +19 -0
  638. package/umd/scripts/run-codex-prompts/common/progressFormatting.d.ts +2 -0
  639. package/umd/scripts/run-codex-prompts/common/resolveAgentSystemMessage.d.ts +6 -0
  640. package/umd/scripts/run-codex-prompts/common/resolveInlineOrFileText.d.ts +14 -0
  641. package/umd/scripts/run-codex-prompts/common/runGoScript/printLiveScriptChunk.d.ts +4 -0
  642. package/umd/scripts/run-codex-prompts/common/sleepWithCountdown.d.ts +27 -0
  643. package/umd/scripts/run-codex-prompts/common/waitForPause.d.ts +12 -0
  644. package/umd/scripts/run-codex-prompts/git/commitChanges.d.ts +3 -1
  645. package/umd/scripts/run-codex-prompts/main/findUnwrittenPrompts.d.ts +19 -0
  646. package/umd/scripts/run-codex-prompts/main/runCodexPromptsServer.d.ts +27 -0
  647. package/umd/scripts/run-codex-prompts/main/runPromptRound.d.ts +5 -3
  648. package/umd/scripts/run-codex-prompts/runners/claude-code/ClaudeCodeRunner.d.ts +3 -1
  649. package/umd/scripts/run-codex-prompts/server/buildCoderServerPromptResponse.d.ts +50 -0
  650. package/umd/scripts/run-codex-prompts/server/buildCoderServerRunState.d.ts +23 -0
  651. package/umd/scripts/run-codex-prompts/server/coderServerHtml.d.ts +9 -0
  652. package/umd/scripts/run-codex-prompts/server/runCoderHttpServer.d.ts +35 -0
  653. package/umd/scripts/run-codex-prompts/server/updatePromptSection.d.ts +9 -0
  654. package/umd/scripts/run-codex-prompts/ui/CoderRunUiState.d.ts +8 -0
  655. package/umd/scripts/run-codex-prompts/ui/buildCoderRunUiFrame.d.ts +1 -0
  656. package/umd/scripts/run-codex-prompts/ui/buildRunUiFrameShared.d.ts +5 -1
  657. package/umd/scripts/run-codex-prompts/ui/renderCoderRunUi.d.ts +1 -0
  658. package/umd/src/_packages/components.index.d.ts +4 -0
  659. package/umd/src/_packages/core.index.d.ts +22 -2
  660. package/umd/src/_packages/node.index.d.ts +40 -0
  661. package/umd/src/_packages/types.index.d.ts +20 -0
  662. package/umd/src/avatars/avatarAnimationScheduler.d.ts +4 -0
  663. package/umd/src/avatars/types/AvatarVisualDefinition.d.ts +1 -1
  664. package/umd/src/avatars/visuals/octopus3d3AvatarVisual.d.ts +7 -0
  665. package/umd/src/avatars/visuals/octopus3d4AvatarVisual.d.ts +7 -0
  666. package/umd/src/book-2.0/agent-source/AgentBasicInformation.d.ts +2 -0
  667. package/umd/src/book-2.0/agent-source/agentSourceVisibility.d.ts +97 -0
  668. package/umd/src/book-2.0/agent-source/agentSourceVisibility.test.d.ts +1 -0
  669. package/umd/src/book-3.0/BookNodeAgentSource.d.ts +38 -0
  670. package/umd/src/book-3.0/CliAgent.d.ts +66 -0
  671. package/umd/src/book-3.0/CliAgent.test.d.ts +1 -0
  672. package/umd/src/book-3.0/LiteAgent.d.ts +68 -0
  673. package/umd/src/book-3.0/LiteAgent.test.d.ts +1 -0
  674. package/umd/src/book-3.0/agentFolderPaths.d.ts +30 -0
  675. package/umd/src/book-3.0/cliAgentEnv.d.ts +33 -0
  676. package/umd/src/book-components/BookEditor/BookEditor.d.ts +6 -5
  677. package/umd/src/book-components/BookEditor/BookEditorAboutPromptbookInformation.d.ts +12 -0
  678. package/umd/src/book-components/BookEditor/BookEditorBrowserConfig.d.ts +2 -0
  679. package/umd/src/book-components/BookEditor/BookEditorForClient.d.ts +7 -0
  680. package/umd/src/book-components/BookEditor/BookEditorMonacoTokenization.d.ts +2 -0
  681. package/umd/src/book-components/BookEditor/BookEditorTheme.d.ts +24 -0
  682. package/umd/src/book-components/BookEditor/createDeprecatedCommitmentDiagnostics.browser.d.ts +9 -0
  683. package/umd/src/book-components/BookEditor/useBookEditorMonacoLanguage.d.ts +1 -6
  684. package/umd/src/book-components/BookEditor/useBookEditorMonacoLifecycle.d.ts +1 -4
  685. package/umd/src/book-components/BookEditor/useBookEditorMonacoStyles.d.ts +2 -1
  686. package/umd/src/book-components/Chat/Chat/ChatCitationModal.d.ts +2 -0
  687. package/umd/src/book-components/Chat/Chat/ChatMessageItem.d.ts +4 -0
  688. package/umd/src/book-components/Chat/Chat/ChatMessageList.d.ts +4 -0
  689. package/umd/src/book-components/Chat/Chat/ChatProps.d.ts +5 -0
  690. package/umd/src/book-components/Chat/Chat/ChatToolCallModal.d.ts +2 -0
  691. package/umd/src/book-components/Chat/Chat/ChatToolCallModalContent.d.ts +3 -1
  692. package/umd/src/book-components/Chat/Chat/CitationIframePreview.d.ts +20 -0
  693. package/umd/src/book-components/Chat/Chat/TeamToolCallModalContent.d.ts +2 -0
  694. package/umd/src/book-components/Chat/MarkdownContent/MarkdownContent.d.ts +1 -0
  695. package/umd/src/book-components/Chat/SourceChip/SourceChip.d.ts +6 -1
  696. package/umd/src/book-components/Chat/hooks/useResolvedCitationLabel.d.ts +12 -0
  697. package/umd/src/book-components/Chat/types/ChatMessage.d.ts +4 -0
  698. package/umd/src/book-components/Chat/types/ChatParticipant.d.ts +1 -1
  699. package/umd/src/book-components/Chat/types/CitationLabelResolver.d.ts +8 -0
  700. package/umd/src/book-components/Chat/utils/citationHelpers.d.ts +9 -0
  701. package/umd/src/book-components/Chat/utils/decodeJsonUnicodeEscapesInMarkdownText.d.ts +14 -0
  702. package/umd/src/book-components/Chat/utils/decodeJsonUnicodeEscapesInMarkdownText.test.d.ts +1 -0
  703. package/umd/src/book-components/Chat/utils/isVisibleChatToolCall.d.ts +10 -0
  704. package/umd/src/book-components/Chat/utils/parseCitationsFromContent.d.ts +4 -0
  705. package/umd/src/book-components/_common/Dropdown/Dropdown.d.ts +1 -1
  706. package/umd/src/book-components/_common/MenuHoisting/MenuHoistingContext.d.ts +1 -1
  707. package/umd/src/book-components/_common/Modal/Modal.d.ts +1 -1
  708. package/umd/src/book-components/icons/AboutIcon.d.ts +1 -1
  709. package/umd/src/book-components/icons/DownloadIcon.d.ts +1 -1
  710. package/umd/src/book-components/icons/ExitFullscreenIcon.d.ts +1 -1
  711. package/umd/src/book-components/icons/FullscreenIcon.d.ts +1 -1
  712. package/umd/src/cli/cli-commands/agent/agentCliOptions.d.ts +38 -0
  713. package/umd/src/cli/cli-commands/agent/chat.d.ts +10 -0
  714. package/umd/src/cli/cli-commands/agent/exec.d.ts +10 -0
  715. package/umd/src/cli/cli-commands/agent/run.test.d.ts +1 -0
  716. package/umd/src/cli/cli-commands/agent-folder/agentProjectPaths.d.ts +2 -24
  717. package/umd/src/cli/cli-commands/agent.d.ts +14 -0
  718. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer.d.ts +23 -1
  719. package/umd/src/cli/cli-commands/agents-server/run.d.ts +6 -0
  720. package/umd/src/cli/cli-commands/agents-server/startAgentsServer.d.ts +9 -2
  721. package/umd/src/cli/cli-commands/coder/ThinkingLevel.d.ts +1 -1
  722. package/umd/src/cli/cli-commands/coder/ensureCoderDeveloperAgentFile.d.ts +25 -0
  723. package/umd/src/cli/cli-commands/coder/find-unwritten.d.ts +10 -0
  724. package/umd/src/cli/cli-commands/coder/initializeCoderProjectConfiguration.d.ts +2 -0
  725. package/umd/src/cli/cli-commands/coder/server.d.ts +13 -0
  726. package/umd/src/cli/cli-commands/coder/waitOptions.d.ts +14 -0
  727. package/umd/src/cli/cli-commands/common/promptRunnerCliOptions.d.ts +9 -25
  728. package/umd/src/collection/agent-collection/CreateAgentInput.d.ts +2 -1
  729. package/umd/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +22 -0
  730. package/umd/src/collection/agent-collection/constructors/agent-collection-in-supabase/prepareAgentSourceForPersistence.d.ts +21 -1
  731. package/umd/src/commitments/META_VISIBILITY/META_VISIBILITY.d.ts +27 -0
  732. package/umd/src/commitments/_common/teamInternalAgentAccess.d.ts +9 -1
  733. package/umd/src/commitments/index.d.ts +2 -1
  734. package/umd/src/llm-providers/_common/register/$provideLlmToolsConfigurationFromEnv.d.ts +1 -1
  735. package/umd/src/llm-providers/_common/register/$provideLlmToolsFromEnv.d.ts +1 -1
  736. package/umd/src/scrapers/website/utils/createShowdownConverter.d.ts +2 -2
  737. package/umd/src/utils/isTimingSafeEqualString.d.ts +25 -0
  738. package/umd/src/utils/validators/url/isValidAgentUrl.d.ts +5 -0
  739. package/umd/src/version.d.ts +1 -1
  740. package/apps/agents-server/src/app/api/long-streaming/route.ts +0 -23
  741. package/apps/agents-server/src/message-providers/email/_common/utils/parseEmailAddress.test.ts.todo +0 -108
  742. package/apps/agents-server/src/message-providers/email/_common/utils/parseEmailAddresses.test.ts.todo +0 -117
  743. package/apps/agents-server/src/message-providers/email/_common/utils/stringifyEmailAddress.test.ts.todo +0 -119
  744. package/apps/agents-server/src/message-providers/email/_common/utils/stringifyEmailAddresses.test.ts.todo +0 -74
  745. package/apps/agents-server/src/utils/defaultFederatedAgents/DefaultFederatedAgentsSyncOptions.ts +0 -9
  746. package/apps/agents-server/src/utils/defaultFederatedAgents/ensureDefaultFederatedAgentExists.ts +0 -277
  747. package/apps/agents-server/src/utils/defaultFederatedAgents/fetchCoreOrganizationPayload.ts +0 -39
  748. package/apps/agents-server/src/utils/defaultFederatedAgents/fetchFederatedAgentBook.ts +0 -43
  749. package/apps/agents-server/src/utils/defaultFederatedAgents/fetchWithDefaultFederatedAgentTimeout.ts +0 -28
  750. package/apps/agents-server/src/utils/defaultFederatedAgents/getDefaultFederatedAgentSyncPool.ts +0 -38
  751. package/apps/agents-server/src/utils/defaultFederatedAgents/loadActiveLocalAgentIdsByNormalizedName.ts +0 -41
  752. package/apps/agents-server/src/utils/defaultFederatedAgents/loadDefaultFederatedAgentSyncMetadata.ts +0 -76
  753. package/apps/agents-server/src/utils/defaultFederatedAgents/quoteIdentifier.ts +0 -11
  754. package/apps/agents-server/src/utils/defaultFederatedAgents/scheduleDefaultFederatedAgentsSync.ts +0 -88
  755. package/apps/agents-server/src/utils/defaultFederatedAgents/selectDefaultFederatedAgentsFromOrganizationPayload.ts +0 -181
  756. package/apps/agents-server/src/utils/defaultFederatedAgents/synchronizeDefaultFederatedAgents.ts +0 -77
  757. package/apps/agents-server/src/utils/shibboleth/createShibbolethAuthenticationLogPayload.ts +0 -173
  758. package/apps/agents-server/src/utils/shibboleth/writeShibbolethAuthenticationLog.ts +0 -27
  759. package/apps/agents-server/tests/e2e/authentication-and-navigation.spec.ts.todo +0 -178
  760. package/src/_packages/browser.index.ts +0 -31
  761. package/src/_packages/browser.readme.md +0 -43
  762. package/src/book-2.0/agent-source/parseAgentSourceWithCommitments.test.ts.todo +0 -265
  763. package/src/book-components/BookEditor/BookEditorMonaco.test.tsx.todo +0 -115
  764. package/src/book-components/Chat/utils/renderMarkdown.test.ts.tmp +0 -199
  765. package/src/collection/agent-collection/constructors/agent-collection-in-directory/AgentCollectionInDirectory.test.ts.todo +0 -131
  766. package/src/commands/_common/parseCommand.test.ts.todo +0 -48
  767. package/src/commitments/META_LINK/META_LINK.test.ts.todo +0 -75
  768. package/src/conversion/validation/pipelineStringToJson-errors.test.ts.todo +0 -33
  769. package/src/dialogs/simple-prompt/SimplePromptInterfaceTools.ts +0 -51
  770. package/src/executables/browsers/locateSafari.test.ts.tmp +0 -15
  771. package/src/execution/PromptbookFetch.test-type.ts +0 -14
  772. package/src/execution/createPipelineExecutor/00-createPipelineExecutor.test.ts.todo +0 -0
  773. package/src/execution/execution-report/executionReportJsonToString.test.ts.todo +0 -83
  774. package/src/execution/utils/usageToHuman.test.ts.todo +0 -80
  775. package/src/llm-providers/_common/register/$provideLlmToolsForTestingAndScriptsAndPlayground.ts +0 -76
  776. package/src/llm-providers/_common/utils/assertUniqueModels.ts +0 -27
  777. package/src/llm-providers/_multiple/playground/playground.ts +0 -141
  778. package/src/llm-providers/_multiple/playground/tsconfig.json +0 -19
  779. package/src/llm-providers/agent/playground/playground.ts +0 -190
  780. package/src/llm-providers/agent/playground/tsconfig.json +0 -19
  781. package/src/llm-providers/anthropic-claude/playground/playground.ts +0 -99
  782. package/src/llm-providers/anthropic-claude/playground/tsconfig.json +0 -19
  783. package/src/llm-providers/azure-openai/playground/playground.ts +0 -101
  784. package/src/llm-providers/azure-openai/playground/tsconfig.json +0 -19
  785. package/src/llm-providers/ollama/playground/playground.ts +0 -120
  786. package/src/llm-providers/ollama/playground/tsconfig.json +0 -19
  787. package/src/llm-providers/openai/playground/playground.ts +0 -406
  788. package/src/llm-providers/openai/playground/tsconfig.json +0 -19
  789. package/src/llm-providers/remote/playground/playground.ts +0 -144
  790. package/src/llm-providers/remote/playground/tsconfig.json +0 -19
  791. package/src/llm-providers/vercel/playground/playground.ts +0 -133
  792. package/src/llm-providers/vercel/playground/tsconfig.json +0 -19
  793. package/src/personas/preparePersona.test.ts.todo +0 -126
  794. package/src/playground/backup/_playground-boilerplate.ts.txt +0 -37
  795. package/src/playground/backup/playground-agent-os.txt +0 -62
  796. package/src/playground/backup/playground-brj-app.ts.txt +0 -302
  797. package/src/playground/backup/playground-browser-playwright.txt +0 -110
  798. package/src/playground/backup/playground-claude-mcp.txt +0 -43
  799. package/src/playground/backup/playground-document-conversion.txt +0 -84
  800. package/src/playground/backup/playground-glob.ts.txt +0 -42
  801. package/src/playground/backup/playground-mcp-server.txt +0 -1
  802. package/src/playground/backup/playground-openai-agent-kit.txt +0 -73
  803. package/src/playground/backup/playground-openai-function-calling.txt +0 -131
  804. package/src/playground/backup/playground-openai-streaming.ts.txt +0 -68
  805. package/src/playground/backup/playground-scrape-knowledge.txt +0 -65
  806. package/src/playground/backup/playground-scraperFetch.ts.txt +0 -44
  807. package/src/playground/backup/playground-using-openai-compatible-route-on-agents-server.ts.txt +0 -49
  808. package/src/playground/backup/playground-write-pavolhejny-bio.txt +0 -120
  809. package/src/playground/permanent/_boilerplate.ts +0 -54
  810. package/src/playground/permanent/agent-with-browser-playground.ts +0 -92
  811. package/src/playground/permanent/error-handling-playground.ts +0 -103
  812. package/src/playground/playground.ts +0 -36
  813. package/src/playground/tsconfig.json +0 -19
  814. package/src/scrapers/_boilerplate/BoilerplateScraper.test.ts.todo +0 -73
  815. package/src/scrapers/_boilerplate/playground/boilerplate-scraper-playground.ts +0 -79
  816. package/src/scrapers/_boilerplate/playground/tsconfig.json +0 -19
  817. package/src/scrapers/_common/utils/files/blobToDataurl.test.ts.todo +0 -17
  818. package/src/scrapers/_common/utils/files/dataurlToBlob.test.ts.todo +0 -52
  819. package/src/scrapers/_common/utils/files/isValidDataurl.test.ts.todo +0 -42
  820. package/src/scrapers/_common/utils/files/shorten.test.ts.todo +0 -13
  821. package/src/scrapers/document/playground/document-scraper-playground.ts +0 -80
  822. package/src/scrapers/document/playground/tsconfig.json +0 -19
  823. package/src/scrapers/document-legacy/playground/legacy-document-scraper-playground.ts +0 -80
  824. package/src/scrapers/document-legacy/playground/tsconfig.json +0 -19
  825. package/src/scrapers/markdown/playground/markdown-scraper-playground.ts +0 -74
  826. package/src/scrapers/markdown/playground/tsconfig.json +0 -19
  827. package/src/scrapers/markitdown/MarkitdownScraper.test.ts.todo +0 -132
  828. package/src/scrapers/markitdown/playground/markitdown-scraper-playground.ts +0 -91
  829. package/src/scrapers/markitdown/playground/tsconfig.json +0 -19
  830. package/src/scrapers/pdf/PdfScraper.test.ts.todo +0 -52
  831. package/src/scrapers/pdf/playground/pdf-scraper-playground.ts +0 -75
  832. package/src/scrapers/pdf/playground/tsconfig.json +0 -19
  833. package/src/scrapers/website/playground/tsconfig.json +0 -19
  834. package/src/scrapers/website/playground/website-scraper-playground.ts +0 -82
  835. package/src/storage/_common/PromptbookStorage.test-type.ts +0 -14
  836. package/src/storage/local-storage/getIndexedDbStorage.ts +0 -36
  837. package/src/storage/local-storage/getLocalStorage.ts +0 -33
  838. package/src/storage/local-storage/getSessionStorage.ts +0 -33
  839. package/src/storage/local-storage/utils/IndexedDbStorageOptions.ts +0 -16
  840. package/src/storage/local-storage/utils/makePromptbookStorageFromIndexedDb.ts +0 -58
  841. package/src/storage/local-storage/utils/makePromptbookStorageFromWebStorage.ts +0 -45
  842. package/src/transpilers/formatted-book-in-markdown/FormattedBookInMarkdownTranspiler.test.ts.todo +0 -35
  843. package/src/transpilers/openai-sdk/playground/playground.ts +0 -85
  844. package/src/transpilers/openai-sdk/playground/tmp/chatbot-openaisdk-1.js +0 -194
  845. package/src/transpilers/openai-sdk/playground/tmp/package.json +0 -3
  846. package/src/transpilers/openai-sdk/playground/tsconfig.json +0 -18
  847. package/src/utils/editable/utils/findUsableParameters.test.ts.todo +0 -43
  848. package/src/utils/editable/utils/stringifyPipelineJson.test.ts.todo +0 -38
  849. package/src/utils/markdown/prettifyMarkdown.test.ts.tmp +0 -42
  850. package/src/utils/serialization/serializeToPromptbookJavascript.test.ts.todo +0 -116
@@ -0,0 +1,28 @@
1
+ import type { AgentCliHistoryMessage, AgentCliRunOptions } from './AgentCliRunOptions';
2
+ /**
3
+ * Result of one local agent CLI turn.
4
+ */
5
+ export type AgentChatTurnResult = {
6
+ readonly answer: string;
7
+ readonly workspacePath: string;
8
+ readonly messageFilePath: string;
9
+ readonly agentPath: string;
10
+ };
11
+ /**
12
+ * Options for executing one local agent CLI turn.
13
+ */
14
+ export type ExecuteAgentChatTurnOptions = AgentCliRunOptions & {
15
+ readonly messages: ReadonlyArray<AgentCliHistoryMessage>;
16
+ readonly workspacePath?: string;
17
+ };
18
+ /**
19
+ * Executes one user turn by asking the selected harness to append `MESSAGE @Agent` to a temporary thread book.
20
+ */
21
+ export declare function executeAgentChatTurn(options: ExecuteAgentChatTurnOptions): Promise<AgentChatTurnResult>;
22
+ /**
23
+ * Creates an isolated workspace path under the project-local Promptbook temporary directory.
24
+ */
25
+ export declare function createAgentChatWorkspacePath(options: {
26
+ readonly currentWorkingDirectory: string;
27
+ readonly agentPath: string;
28
+ }): string;
@@ -0,0 +1,5 @@
1
+ import type { AgentCliRunOptions } from './AgentCliRunOptions';
2
+ /**
3
+ * Runs an interactive local CLI chat with an agent book.
4
+ */
5
+ export declare function runAgentChat(options: AgentCliRunOptions): Promise<void>;
@@ -0,0 +1,11 @@
1
+ import type { AgentCliRunOptions } from './AgentCliRunOptions';
2
+ /**
3
+ * Options for `ptbk agent exec`.
4
+ */
5
+ export type RunAgentExecOptions = AgentCliRunOptions & {
6
+ readonly message: string;
7
+ };
8
+ /**
9
+ * Runs one non-interactive local agent turn and prints the final agent answer.
10
+ */
11
+ export declare function runAgentExec(options: RunAgentExecOptions): Promise<string>;
@@ -0,0 +1,27 @@
1
+ import type { AgentMessageFile } from '../messages/AgentMessageFile';
2
+ /**
3
+ * Result of recording one failed queued-message attempt.
4
+ */
5
+ export type AgentMessageFailureTrackingResult = {
6
+ readonly failureCount: number;
7
+ readonly maxMessageProcessingFailures: number;
8
+ readonly isMessageMovedToFailed: boolean;
9
+ };
10
+ /**
11
+ * Tracks repeated watch-level failures for queued message files and stops retrying them after a configured cap.
12
+ */
13
+ export declare class AgentMessageFailureTracker {
14
+ private readonly failuresByMessageKey;
15
+ private readonly maxMessageProcessingFailures;
16
+ constructor(options?: {
17
+ readonly maxMessageProcessingFailures?: number;
18
+ });
19
+ /**
20
+ * Clears the failure counter after a queued message is processed successfully.
21
+ */
22
+ clearMessageFailure(projectPath: string, messageFile: AgentMessageFile | undefined): void;
23
+ /**
24
+ * Records one queued-message failure and moves the message into `messages/failed` when the retry cap is reached.
25
+ */
26
+ recordFailure(error: unknown): Promise<AgentMessageFailureTrackingResult | null>;
27
+ }
@@ -19,3 +19,7 @@ export declare function handleAgentWatchError(options: {
19
19
  readonly logDirectoryPath: string;
20
20
  readonly error: unknown;
21
21
  }): Promise<void>;
22
+ /**
23
+ * Recovers previously attached watch-loop context from an error-like value.
24
+ */
25
+ export declare function getAgentWatchErrorContext(error: unknown): AgentWatchErrorContext | undefined;
@@ -4,4 +4,5 @@ import type { AgentRunOptions } from '../AgentRunOptions';
4
4
  */
5
5
  export declare function runAgentMessages(options: AgentRunOptions, controls?: {
6
6
  readonly shouldContinue?: () => boolean;
7
+ readonly queuePollIntervalMs?: number;
7
8
  }): Promise<void>;
@@ -5,6 +5,7 @@ import type { AgentRunOptions } from '../AgentRunOptions';
5
5
  */
6
6
  export type RunMultipleAgentMessagesControls = {
7
7
  readonly shouldContinue?: () => boolean;
8
+ readonly queuePollIntervalMs?: number;
8
9
  readonly watchErrorLogDirectoryPath?: string;
9
10
  readonly onUiInitialized?: (uiHandle: CoderRunUiHandle | undefined) => void;
10
11
  };
@@ -19,6 +19,7 @@ export type AgentTickResult = {
19
19
  export type TickAgentMessagesOptions = {
20
20
  readonly isQuietWhenIdle?: boolean;
21
21
  readonly projectPath?: string;
22
+ readonly queuedMessage?: AgentMessageFile;
22
23
  readonly uiHandle?: CoderRunUiHandle;
23
24
  readonly uiPresentation?: AgentTickUiPresentation;
24
25
  };
@@ -0,0 +1,10 @@
1
+ import type { AgentModelRequirements } from '../../../src/book-2.0/agent-source/AgentModelRequirements';
2
+ import type { string_book } from '../../../src/book-2.0/agent-source/string_book';
3
+ /**
4
+ * Compiles agent source into the behavior text passed to CLI harness runners.
5
+ */
6
+ export declare function createAgentRunnerSystemMessage(agentSource: string_book): Promise<string>;
7
+ /**
8
+ * Formats prepared model requirements for a text-only CLI harness prompt.
9
+ */
10
+ export declare function formatAgentModelRequirementsForRunner(modelRequirements: AgentModelRequirements): string;
@@ -0,0 +1,17 @@
1
+ import type { AgentMessageFile } from './AgentMessageFile';
2
+ /**
3
+ * Result of moving one abandoned queued message into the failed queue.
4
+ */
5
+ export type FailedAgentMessageFile = {
6
+ readonly absolutePath: string;
7
+ readonly relativePath: string;
8
+ readonly fileName: string;
9
+ };
10
+ /**
11
+ * Moves one repeatedly failing queued message to `messages/failed` with a visible agent failure reply.
12
+ */
13
+ export declare function moveAgentMessageToFailed(options: {
14
+ readonly projectPath: string;
15
+ readonly messageFile: AgentMessageFile;
16
+ readonly failureReason: string;
17
+ }): Promise<FailedAgentMessageFile>;
@@ -19,5 +19,9 @@ export type CoderRunProgressSnapshot = {
19
19
  };
20
20
  /**
21
21
  * Builds a session-scoped progress snapshot from prompt stats and elapsed active time.
22
+ *
23
+ * When the current session has not finished any prompt yet but a `cachedAveragePromptDurationMs` is
24
+ * provided (loaded from the per-config estimate cache stored in the temp folder), the snapshot uses
25
+ * that historical average to project the remaining work instead of waiting for the first completion.
22
26
  */
23
- export declare function buildCoderRunProgressSnapshot(stats: PromptStats, elapsedDuration: moment.Duration, initialDone: number): CoderRunProgressSnapshot;
27
+ export declare function buildCoderRunProgressSnapshot(stats: PromptStats, elapsedDuration: moment.Duration, initialDone: number, cachedAveragePromptDurationMs?: number): CoderRunProgressSnapshot;
@@ -15,10 +15,17 @@ export declare class CliProgressDisplay {
15
15
  private readonly timer;
16
16
  private isHeaderReserved;
17
17
  private interval;
18
+ private cachedAveragePromptDurationMs;
18
19
  /**
19
20
  * Creates a new display that uses the provided start time when computing estimates.
20
21
  */
21
22
  constructor(startTime: moment.Moment, minimumPriority: number);
23
+ /**
24
+ * Sets the cached average prompt duration (in milliseconds) loaded from the temp-folder estimate cache.
25
+ *
26
+ * Used to project completion estimates before the first prompt of the current session finishes.
27
+ */
28
+ setCachedAveragePromptDurationMs(cachedAveragePromptDurationMs: number | undefined): void;
22
29
  /**
23
30
  * Updates the progress statistics shown in the header.
24
31
  */
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Cache key used to uniquely identify the average prompt duration for a given runner configuration.
3
+ *
4
+ * @private internal type of `coderRunEstimateCache`
5
+ */
6
+ export type CoderRunEstimateCacheKey = {
7
+ readonly harness: string;
8
+ readonly model?: string;
9
+ readonly thinkingLevel?: string;
10
+ };
11
+ /**
12
+ * Loads the cached average prompt duration for the given runner configuration.
13
+ *
14
+ * Returns `undefined` when no usable cache entry exists. Cache failures must never break the run, so this
15
+ * function swallows IO and parsing errors instead of throwing.
16
+ *
17
+ * @public exported for use by the coder run progress displays
18
+ */
19
+ export declare function loadCachedAveragePromptDurationMs(key: CoderRunEstimateCacheKey): Promise<number | undefined>;
20
+ /**
21
+ * Records a new prompt-duration sample for the given runner configuration into the temp folder cache.
22
+ *
23
+ * Updates a running average so future `ptbk coder run` / `ptbk coder server` invocations can show
24
+ * meaningful estimates immediately, before the first prompt of the new session has completed.
25
+ *
26
+ * Cache failures are swallowed because the next-run estimate is best-effort and must not affect the
27
+ * current run.
28
+ *
29
+ * @public exported for use by the prompt round finalizer
30
+ */
31
+ export declare function recordPromptDurationSample(key: CoderRunEstimateCacheKey, promptDurationMs: number): Promise<void>;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Parses a human-readable duration string into milliseconds.
3
+ *
4
+ * Supported formats: `Xh`, `Xm`, `Xs`, and combinations like `1h30m`, `1h30m5s`.
5
+ *
6
+ * @returns Duration in milliseconds
7
+ * @throws When the string does not match any supported format
8
+ *
9
+ * @private internal utility of `ptbk coder run`
10
+ */
11
+ export declare function parseDuration(durationString: string): number;
12
+ /**
13
+ * Formats a duration in milliseconds into a compact human-readable string.
14
+ *
15
+ * Examples: `3600000` → `"1h"`, `90000` → `"1m 30s"`, `5000` → `"5s"`.
16
+ *
17
+ * @private internal utility of `ptbk coder run`
18
+ */
19
+ export declare function formatDurationMs(ms: number): string;
@@ -1,6 +1,8 @@
1
1
  import moment from 'moment';
2
2
  /**
3
3
  * Calendar formats used when displaying the estimated completion time.
4
+ *
5
+ * Uses 24-hour format (`HH:mm`) so estimates are unambiguous (for example `17:30` instead of `5:30`).
4
6
  */
5
7
  export declare const ESTIMATED_DONE_CALENDAR_FORMATS: {
6
8
  sameDay: string;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Reads an optional agent `.book` file and compiles its system message for injection into coder prompts.
3
+ *
4
+ * Returns `undefined` when no agent path is provided.
5
+ */
6
+ export declare function resolveAgentSystemMessage(agentPath: string | undefined, currentWorkingDirectory: string): Promise<string | undefined>;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Options for resolving a CLI value that can be either inline text or a file path.
3
+ */
4
+ type ResolveInlineOrFileTextOptions = {
5
+ readonly textReference: string | undefined;
6
+ readonly currentWorkingDirectory: string;
7
+ readonly contextLabel: string;
8
+ readonly optionName: string;
9
+ };
10
+ /**
11
+ * Resolves optional CLI text provided inline or via a file path.
12
+ */
13
+ export declare function resolveInlineOrFileText(options: ResolveInlineOrFileTextOptions): Promise<string | undefined>;
14
+ export {};
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Prints one live shell output chunk to the terminal when console mirroring is enabled.
3
+ */
4
+ export declare function printLiveScriptChunk(chunk: string, source: 'stdout' | 'stderr', shouldPrintLiveOutput: boolean): void;
@@ -0,0 +1,27 @@
1
+ import type { CoderRunUiHandle } from '../ui/renderCoderRunUi';
2
+ /**
3
+ * Distinct kinds of wait shown by the run loop so the UI can label them clearly.
4
+ *
5
+ * @public exported from `@promptbook/cli`
6
+ */
7
+ export type CoderRunWaitKind = 'after-prompt' | 'between-prompts' | 'after-error';
8
+ /**
9
+ * Returns the human-readable status message used for one wait kind.
10
+ *
11
+ * @private internal utility of `sleepWithCountdown`
12
+ */
13
+ export declare function describeCoderRunWait(waitKind: CoderRunWaitKind, remainingMs: number, totalMs?: number): string;
14
+ /**
15
+ * Sleeps the requested duration while refreshing the status message on a UI handle and the plain console.
16
+ *
17
+ * The wait kind is shown in the UI status so the user can distinguish `--wait-after-prompt`,
18
+ * `--wait-between-prompts`, and `--wait-after-error` waits at a glance.
19
+ *
20
+ * @public exported from `@promptbook/cli`
21
+ */
22
+ export declare function sleepWithCountdown(options: {
23
+ durationMs: number;
24
+ waitKind: CoderRunWaitKind;
25
+ isRichUiEnabled: boolean;
26
+ uiHandle?: CoderRunUiHandle;
27
+ }): Promise<void>;
@@ -30,6 +30,18 @@ export declare function checkPause(options?: {
30
30
  * Returns the current pause state for external consumers such as the terminal UI.
31
31
  */
32
32
  export declare function getPauseState(): CoderRunPauseState;
33
+ /**
34
+ * Returns the label of the next checkpoint where pausing will take effect.
35
+ */
36
+ export declare function getPauseTargetLabel(): string;
37
+ /**
38
+ * Updates the label of the next pause checkpoint.
39
+ */
40
+ export declare function announcePauseTargetLabel(nextPauseTargetLabel: string): void;
41
+ /**
42
+ * Restores the default generic pause target label.
43
+ */
44
+ export declare function resetPauseTargetLabel(): void;
33
45
  /**
34
46
  * Requests a pause from an external controller (e.g. the Ink UI).
35
47
  */
@@ -1,11 +1,13 @@
1
1
  /**
2
2
  * Commits staged changes with the provided message using the dedicated coding-agent identity when configured,
3
3
  * otherwise falls back to the default Git configuration. Remote pushing is opt-in via `options.autoPush`,
4
- * `options.includePaths` can restrict staging, and `options.excludePaths` can keep temporary artifacts out of the created commit.
4
+ * `options.includePaths` can restrict staging, `options.onlyPaths` can restrict the commit pathspec,
5
+ * and `options.excludePaths` can keep temporary artifacts out of the created commit.
5
6
  */
6
7
  export declare function commitChanges(message: string, options?: {
7
8
  autoPush?: boolean;
8
9
  includePaths?: ReadonlyArray<string>;
10
+ onlyPaths?: ReadonlyArray<string>;
9
11
  excludePaths?: ReadonlyArray<string>;
10
12
  projectPath?: string;
11
13
  }): Promise<void>;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Options for `findUnwrittenPrompts`.
3
+ */
4
+ export type FindUnwrittenPromptsOptions = {
5
+ /**
6
+ * Minimum priority level — sections below this threshold are excluded.
7
+ * @default 0
8
+ */
9
+ readonly priority?: number;
10
+ };
11
+ /**
12
+ * Lists and prints all prompt sections that still need to be authored (contain `@@@` placeholder).
13
+ *
14
+ * Reuses the same filtering logic as `ptbk coder run --dry-run`.
15
+ *
16
+ * @returns the number of unwritten prompts found
17
+ * @public exported from `@promptbook/cli`
18
+ */
19
+ export declare function findUnwrittenPrompts(options?: FindUnwrittenPromptsOptions): Promise<number>;
@@ -0,0 +1,27 @@
1
+ import type { number_port } from '../../../src/types/number_positive';
2
+ import type { RunOptions } from '../cli/RunOptions';
3
+ /**
4
+ * Options for `ptbk coder server` combining the standard run options with a server port.
5
+ *
6
+ * @private internal type of `ptbk coder server`
7
+ */
8
+ export type CoderServerRunOptions = RunOptions & {
9
+ /**
10
+ * TCP port on which the kanban HTTP server will listen.
11
+ */
12
+ port: number_port;
13
+ };
14
+ /**
15
+ * Starts the coder server: runs prompt processing in keepAlive mode while serving a
16
+ * kanban web UI and REST API on the given port.
17
+ *
18
+ * Differences from `runCodexPrompts`:
19
+ * - Does not exit when no runnable prompts are available; instead it polls every few seconds
20
+ * and resumes processing as soon as a new prompt becomes ready.
21
+ * - Starts a lightweight HTTP server that serves a kanban board at `http://localhost:<port>`
22
+ * and exposes REST endpoints for reading prompts, controlling pause state, and editing
23
+ * prompt files directly from the browser.
24
+ *
25
+ * @private internal function of `ptbk coder server`
26
+ */
27
+ export declare function runCodexPromptsServer(options: CoderServerRunOptions): Promise<void>;
@@ -1,5 +1,6 @@
1
- import type { CliProgressDisplay } from '../common/cliProgressDisplay';
2
1
  import type { RunOptions } from '../cli/RunOptions';
2
+ import type { CliProgressDisplay } from '../common/cliProgressDisplay';
3
+ import type { WaitForCoderRunPauseCheckpoint } from '../common/CoderRunPauseCheckpoint';
3
4
  import type { PromptSelection } from '../prompts/types/PromptSelection';
4
5
  import type { PromptRunner } from '../runners/types/PromptRunner';
5
6
  import type { CoderRunUiHandle } from '../ui/renderCoderRunUi';
@@ -16,15 +17,16 @@ type RunPromptRoundOptions = {
16
17
  nextPrompt: PromptSelection;
17
18
  promptLabel: string;
18
19
  resolvedCoderContext?: string;
20
+ resolvedAgentSystemMessage?: string;
19
21
  isRichUiEnabled: boolean;
20
22
  progressDisplay?: CliProgressDisplay;
21
23
  uiHandle?: CoderRunUiHandle;
22
- waitForRequestedPause(): Promise<void>;
24
+ waitForRequestedPause: WaitForCoderRunPauseCheckpoint;
23
25
  };
24
26
  /**
25
27
  * Runs one prompt round from prompt construction through commit or failure logging.
26
28
  *
27
29
  * @private function of runCodexPrompts
28
30
  */
29
- export declare function runPromptRound({ options, runner, runnerMetadata, nextPrompt, promptLabel, resolvedCoderContext, isRichUiEnabled, progressDisplay, uiHandle, waitForRequestedPause, }: RunPromptRoundOptions): Promise<void>;
31
+ export declare function runPromptRound({ options, runner, runnerMetadata, nextPrompt, promptLabel, resolvedCoderContext, resolvedAgentSystemMessage, isRichUiEnabled, progressDisplay, uiHandle, waitForRequestedPause, }: RunPromptRoundOptions): Promise<void>;
30
32
  export {};
@@ -1,15 +1,17 @@
1
1
  import type { PromptRunOptions } from '../types/PromptRunOptions';
2
2
  import type { PromptRunResult } from '../types/PromptRunResult';
3
3
  import type { PromptRunner } from '../types/PromptRunner';
4
+ import type { ClaudeCodeRunnerOptions } from './ClaudeCodeRunnerOptions';
4
5
  /**
5
6
  * Runs prompts via the Claude Code CLI.
6
7
  */
7
8
  export declare class ClaudeCodeRunner implements PromptRunner {
9
+ private readonly options;
8
10
  readonly name = "claude-code";
9
11
  /**
10
12
  * Creates a new Claude Code runner.
11
13
  */
12
- constructor();
14
+ constructor(options?: ClaudeCodeRunnerOptions);
13
15
  /**
14
16
  * Runs the prompt using Claude Code and parses usage output.
15
17
  */
@@ -0,0 +1,50 @@
1
+ import type { PromptFile } from '../prompts/types/PromptFile';
2
+ import type { PromptStatus } from '../prompts/types/PromptStatus';
3
+ import type { CoderRunUiState } from '../ui/CoderRunUiState';
4
+ /**
5
+ * Browser board columns used by `ptbk coder server`.
6
+ */
7
+ export type CoderServerBoardColumn = 'backlog' | 'low-priority' | 'todo' | 'in-progress' | 'done' | 'errors' | 'finished';
8
+ /**
9
+ * UI tag attached to one prompt card.
10
+ */
11
+ export type CoderServerPromptTag = {
12
+ readonly id: 'not-ready' | 'unwritten' | 'implementing' | 'verifying';
13
+ readonly label: string;
14
+ };
15
+ /**
16
+ * One prompt section as returned from `GET /api/prompts`.
17
+ */
18
+ export type CoderServerPromptSectionResponse = {
19
+ readonly index: number;
20
+ readonly status: PromptStatus;
21
+ readonly column: CoderServerBoardColumn;
22
+ readonly priority: number;
23
+ readonly summary: string;
24
+ readonly content: string;
25
+ readonly label: string;
26
+ readonly tags: readonly CoderServerPromptTag[];
27
+ };
28
+ /**
29
+ * One prompt file as returned from `GET /api/prompts`.
30
+ */
31
+ export type CoderServerPromptFileResponse = {
32
+ readonly filePath: string;
33
+ readonly fileName: string;
34
+ readonly relativeFilePath: string;
35
+ readonly isFinished: boolean;
36
+ readonly sections: readonly CoderServerPromptSectionResponse[];
37
+ };
38
+ /**
39
+ * Input for converting parsed prompt files into the browser API shape.
40
+ */
41
+ export type BuildCoderServerPromptFileResponsesOptions = {
42
+ readonly promptFiles: readonly PromptFile[];
43
+ readonly finishedPromptFiles: readonly PromptFile[];
44
+ readonly minimumPriority: number;
45
+ readonly uiState?: CoderRunUiState;
46
+ };
47
+ /**
48
+ * Converts parsed prompt files into a web-board response with derived columns and tags.
49
+ */
50
+ export declare function buildCoderServerPromptFileResponses(options: BuildCoderServerPromptFileResponsesOptions): CoderServerPromptFileResponse[];
@@ -0,0 +1,23 @@
1
+ import type { CoderRunConfig, CoderRunPhase, CoderRunProgressSnapshot, CoderRunUiState } from '../ui/CoderRunUiState';
2
+ import type { AgentRunStatusTableRow } from '../ui/buildCoderRunUiFrame';
3
+ /**
4
+ * Snapshot of the active coder runner exposed to the browser UI.
5
+ */
6
+ export type CoderServerRunState = {
7
+ readonly config: CoderRunConfig;
8
+ readonly phase: CoderRunPhase;
9
+ readonly currentPromptLabel: string;
10
+ readonly currentAttempt: number;
11
+ readonly maxAttempts: number;
12
+ readonly statusMessage: string;
13
+ readonly detailLines: readonly string[];
14
+ readonly agentStatusLines: readonly string[];
15
+ readonly agentStatusTableRows: readonly AgentRunStatusTableRow[];
16
+ readonly agentOutputLines: readonly string[];
17
+ readonly errors: readonly string[];
18
+ readonly progress: CoderRunProgressSnapshot;
19
+ };
20
+ /**
21
+ * Builds a plain JSON-safe snapshot from the shared terminal UI state.
22
+ */
23
+ export declare function buildCoderServerRunState(uiState: CoderRunUiState): CoderServerRunState;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * HTML source for the coder server kanban UI.
3
+ *
4
+ * The canonical source lives in `apps/coder-server/index.html`.
5
+ * Keep both files in sync when updating the frontend.
6
+ *
7
+ * @private internal constant of `ptbk coder server`
8
+ */
9
+ export declare const CODER_SERVER_HTML = "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>Ptbk Coder Server</title>\n <style>\n * { box-sizing: border-box; margin: 0; padding: 0; }\n body {\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n background: #f6f7f9;\n color: #1f2933;\n min-height: 100vh;\n }\n\n header {\n background: #22313f;\n color: white;\n padding: 12px 18px;\n display: flex;\n align-items: center;\n gap: 12px;\n position: sticky;\n top: 0;\n z-index: 10;\n box-shadow: 0 2px 10px rgba(15,23,42,0.22);\n }\n header h1 { font-size: 17px; font-weight: 700; flex-shrink: 0; letter-spacing: 0; }\n\n .status-badge {\n padding: 3px 10px;\n border-radius: 999px;\n font-size: 11px;\n font-weight: 700;\n text-transform: uppercase;\n flex-shrink: 0;\n }\n .status-RUNNING { background: #0b875b; color: white; }\n .status-PAUSING { background: #d97904; color: white; }\n .status-PAUSED { background: #b42318; color: white; }\n\n #pause-label {\n font-size: 12px;\n color: rgba(255,255,255,0.75);\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .btn {\n padding: 6px 12px;\n border: 0;\n border-radius: 4px;\n cursor: pointer;\n font-size: 13px;\n font-weight: 700;\n transition: background 0.15s, opacity 0.15s;\n flex-shrink: 0;\n }\n .btn:disabled { opacity: 0.55; cursor: default; }\n .btn-pause { background: #ffd166; color: #1f2933; }\n .btn-resume { background: #0b875b; color: white; }\n .btn-save { background: #2563eb; color: white; }\n .btn-cancel { background: #edf0f4; color: #1f2933; }\n\n .run-strip {\n background: white;\n border-bottom: 1px solid #d8dee8;\n padding: 12px 18px;\n display: grid;\n grid-template-columns: minmax(220px, 1.2fr) minmax(240px, 1fr) minmax(260px, 1.4fr);\n gap: 14px;\n align-items: center;\n }\n .run-title {\n font-size: 14px;\n font-weight: 700;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .run-subtitle,\n .run-current,\n .run-output {\n color: #64748b;\n font-size: 12px;\n line-height: 1.45;\n overflow: hidden;\n }\n .run-current,\n .run-output {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n }\n .progress-shell {\n display: grid;\n grid-template-columns: 1fr auto;\n gap: 8px;\n align-items: center;\n }\n .progress-track {\n height: 10px;\n background: #e4e9f0;\n border-radius: 999px;\n overflow: hidden;\n }\n .progress-fill {\n display: block;\n height: 100%;\n width: 0;\n background: linear-gradient(90deg, #0b875b, #2563eb);\n transition: width 0.2s;\n }\n .progress-label {\n color: #475569;\n font-size: 12px;\n font-weight: 700;\n min-width: 72px;\n text-align: right;\n }\n\n .board {\n display: flex;\n gap: 14px;\n padding: 16px;\n overflow-x: auto;\n min-height: calc(100vh - 119px);\n align-items: flex-start;\n }\n\n .column {\n background: #e9edf3;\n border-top: 4px solid #94a3b8;\n border-radius: 6px;\n padding: 10px;\n min-width: 250px;\n width: 270px;\n flex-shrink: 0;\n }\n .column-backlog { border-top-color: #64748b; }\n .column-low-priority { border-top-color: #d97904; }\n .column-todo { border-top-color: #2563eb; }\n .column-in-progress { border-top-color: #7c3aed; }\n .column-done { border-top-color: #0b875b; }\n .column-errors { border-top-color: #b42318; }\n .column-finished { border-top-color: #0891b2; }\n\n .column-header {\n font-size: 12px;\n font-weight: 800;\n text-transform: uppercase;\n color: #475569;\n margin-bottom: 10px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n }\n .column-count {\n background: rgba(255,255,255,0.72);\n border-radius: 999px;\n padding: 2px 8px;\n font-size: 11px;\n color: #475569;\n }\n .column-cards { min-height: 40px; }\n\n .card {\n background: white;\n border-radius: 6px;\n padding: 10px 12px;\n margin-bottom: 8px;\n box-shadow: 0 1px 3px rgba(15,23,42,0.12);\n cursor: pointer;\n border-left: 3px solid #94a3b8;\n }\n .card:hover { box-shadow: 0 4px 12px rgba(15,23,42,0.16); }\n .card-backlog { border-left-color: #64748b; }\n .card-low-priority { border-left-color: #d97904; }\n .card-todo { border-left-color: #2563eb; }\n .card-in-progress { border-left-color: #7c3aed; }\n .card-done { border-left-color: #0b875b; }\n .card-errors { border-left-color: #b42318; }\n .card-finished { border-left-color: #0891b2; }\n\n .card-file {\n font-size: 10px;\n color: #7b8794;\n margin-bottom: 6px;\n font-weight: 600;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .card-summary {\n font-size: 13px;\n line-height: 1.45;\n color: #1f2933;\n word-break: break-word;\n white-space: pre-wrap;\n max-height: 76px;\n overflow: hidden;\n display: -webkit-box;\n -webkit-line-clamp: 4;\n -webkit-box-orient: vertical;\n }\n .card-tags {\n display: flex;\n flex-wrap: wrap;\n gap: 5px;\n margin-top: 8px;\n }\n .card-tag {\n border-radius: 999px;\n padding: 2px 7px;\n font-size: 10px;\n font-weight: 800;\n line-height: 1.35;\n }\n .tag-not-ready { background: #e2e8f0; color: #475569; }\n .tag-unwritten { background: #fff4cc; color: #8a5a00; }\n .tag-implementing { background: #ede9fe; color: #5b21b6; }\n .tag-verifying { background: #fae8ff; color: #86198f; }\n .tag-priority { background: #ffedd5; color: #9a3412; }\n\n .empty-column {\n color: #94a3b8;\n font-size: 12px;\n padding: 10px 4px;\n text-align: center;\n }\n\n .modal-overlay {\n position: fixed;\n inset: 0;\n background: rgba(15,23,42,0.58);\n display: flex;\n align-items: flex-start;\n justify-content: center;\n padding: 56px 16px 16px;\n z-index: 100;\n }\n .modal-overlay.hidden { display: none; }\n\n .modal {\n background: white;\n border-radius: 8px;\n width: 100%;\n max-width: 720px;\n padding: 18px;\n box-shadow: 0 14px 40px rgba(15,23,42,0.28);\n }\n .modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n margin-bottom: 14px;\n gap: 12px;\n }\n .modal-meta { flex: 1; min-width: 0; }\n .modal-file {\n font-size: 11px;\n color: #7b8794;\n margin-bottom: 4px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .modal-section-label { font-size: 14px; font-weight: 700; color: #1f2933; }\n .modal-status {\n font-size: 11px;\n font-weight: 800;\n padding: 3px 8px;\n border-radius: 999px;\n text-transform: uppercase;\n flex-shrink: 0;\n }\n .status-backlog { background: #e2e8f0; color: #475569; }\n .status-low-priority { background: #ffedd5; color: #9a3412; }\n .status-todo { background: #dbeafe; color: #1d4ed8; }\n .status-in-progress { background: #ede9fe; color: #5b21b6; }\n .status-done { background: #dcfce7; color: #166534; }\n .status-errors { background: #fee2e2; color: #991b1b; }\n .status-finished { background: #cffafe; color: #155e75; }\n .modal-close {\n background: transparent;\n border: 0;\n color: #64748b;\n cursor: pointer;\n font-size: 20px;\n padding: 0 4px;\n line-height: 1;\n }\n .modal-close:hover { color: #1f2933; }\n\n textarea {\n width: 100%;\n min-height: 300px;\n font-family: \"SFMono-Regular\", Consolas, \"Courier New\", monospace;\n font-size: 13px;\n border: 2px solid #d8dee8;\n border-radius: 4px;\n padding: 10px 12px;\n resize: vertical;\n line-height: 1.6;\n color: #1f2933;\n }\n textarea:focus {\n outline: none;\n border-color: #2563eb;\n box-shadow: 0 0 0 3px rgba(37,99,235,0.12);\n }\n .modal-actions {\n display: flex;\n gap: 8px;\n margin-top: 14px;\n justify-content: flex-end;\n }\n\n .error-banner {\n background: #fee2e2;\n border-bottom: 2px solid #b42318;\n color: #991b1b;\n padding: 8px 18px;\n font-size: 13px;\n font-weight: 700;\n }\n .error-banner.hidden { display: none; }\n\n @media (max-width: 860px) {\n header { flex-wrap: wrap; }\n #pause-label { order: 4; flex-basis: 100%; }\n .run-strip { grid-template-columns: 1fr; }\n .board { min-height: calc(100vh - 212px); }\n }\n </style>\n</head>\n<body>\n <div id=\"error-banner\" class=\"error-banner hidden\"></div>\n\n <header>\n <h1>Ptbk Coder Server</h1>\n <span id=\"status-badge\" class=\"status-badge status-RUNNING\">RUNNING</span>\n <span id=\"pause-label\"></span>\n <button id=\"toggle-btn\" class=\"btn btn-pause\">Pause</button>\n </header>\n\n <section class=\"run-strip\">\n <div>\n <div class=\"run-title\" id=\"run-title\">Initializing...</div>\n <div class=\"run-subtitle\" id=\"run-subtitle\">Loading runner state</div>\n </div>\n <div class=\"progress-shell\">\n <div class=\"progress-track\"><span class=\"progress-fill\" id=\"progress-fill\"></span></div>\n <div class=\"progress-label\" id=\"progress-label\">0%</div>\n </div>\n <div>\n <div class=\"run-current\" id=\"run-current\">No active prompt</div>\n <div class=\"run-output\" id=\"run-output\"></div>\n </div>\n </section>\n\n <div class=\"board\" id=\"board\"></div>\n\n <div class=\"modal-overlay hidden\" id=\"modal-overlay\">\n <div class=\"modal\">\n <div class=\"modal-header\">\n <div class=\"modal-meta\">\n <div class=\"modal-file\" id=\"modal-file\"></div>\n <div class=\"modal-section-label\" id=\"modal-section-label\"></div>\n </div>\n <span class=\"modal-status\" id=\"modal-status-badge\"></span>\n <button class=\"modal-close\" id=\"modal-close\" title=\"Close\">&times;</button>\n </div>\n\n <textarea id=\"modal-content\" placeholder=\"Prompt content\"></textarea>\n\n <div class=\"modal-actions\">\n <button class=\"btn btn-cancel\" id=\"cancel-button\">Cancel</button>\n <button class=\"btn btn-save\" id=\"save-button\">Save</button>\n </div>\n </div>\n </div>\n\n <script>\n \"use strict\";\n\n const BOARD_COLUMNS = [\n { id: \"backlog\", title: \"Backlog\" },\n { id: \"low-priority\", title: \"Low priority\" },\n { id: \"todo\", title: \"To do\" },\n { id: \"in-progress\", title: \"In progress\" },\n { id: \"done\", title: \"Done\" },\n { id: \"errors\", title: \"Errors\" },\n { id: \"finished\", title: \"Finished\" },\n ];\n\n let modalState = null;\n let lastPauseState = \"RUNNING\";\n\n function getColumnTitle(columnId) {\n const column = BOARD_COLUMNS.find((columnCandidate) => columnCandidate.id === columnId);\n return column ? column.title : columnId;\n }\n\n function showError(message) {\n const banner = document.getElementById(\"error-banner\");\n banner.textContent = message;\n banner.classList.remove(\"hidden\");\n clearTimeout(banner.timer);\n banner.timer = setTimeout(() => banner.classList.add(\"hidden\"), 6000);\n }\n\n function escapeHtml(value) {\n const element = document.createElement(\"div\");\n element.textContent = String(value);\n return element.innerHTML;\n }\n\n function renderBoardSkeleton() {\n const board = document.getElementById(\"board\");\n board.innerHTML = \"\";\n\n for (const column of BOARD_COLUMNS) {\n const columnElement = document.createElement(\"section\");\n columnElement.className = \"column column-\" + column.id;\n columnElement.innerHTML =\n '<div class=\"column-header\">' +\n '<span>' + escapeHtml(column.title) + '</span>' +\n '<span class=\"column-count\" id=\"count-' + column.id + '\">0</span>' +\n '</div>' +\n '<div class=\"column-cards\" id=\"cards-' + column.id + '\">' +\n '<div class=\"empty-column\">Loading</div>' +\n '</div>';\n board.appendChild(columnElement);\n }\n }\n\n async function fetchStatus() {\n try {\n const response = await fetch(\"/api/status\");\n if (!response.ok) {\n showError(\"Status API error: \" + response.status);\n return;\n }\n\n const status = await response.json();\n renderPauseState(status);\n renderRunState(status.runState);\n } catch (error) {\n showError(\"Could not reach coder server: \" + error.message);\n }\n }\n\n function renderPauseState(status) {\n lastPauseState = status.pauseState;\n\n const badge = document.getElementById(\"status-badge\");\n badge.textContent = status.pauseState;\n badge.className = \"status-badge status-\" + status.pauseState;\n\n const toggleButton = document.getElementById(\"toggle-btn\");\n const pauseLabel = document.getElementById(\"pause-label\");\n\n if (status.pauseState === \"RUNNING\") {\n toggleButton.textContent = \"Pause\";\n toggleButton.className = \"btn btn-pause\";\n pauseLabel.textContent = \"\";\n return;\n }\n\n toggleButton.textContent = \"Resume\";\n toggleButton.className = \"btn btn-resume\";\n pauseLabel.textContent =\n (status.pauseState === \"PAUSING\" ? \"Pausing before: \" : \"Paused before: \") +\n (status.pauseTargetLabel || \"next checkpoint\");\n }\n\n function renderRunState(runState) {\n if (!runState) {\n document.getElementById(\"run-title\").textContent = \"Waiting for runner state\";\n document.getElementById(\"run-subtitle\").textContent = \"\";\n return;\n }\n\n const progress = runState.progress || {};\n const percentage = Number(progress.percentage || 0);\n const runnerParts = [runState.config.agentName, runState.config.modelName, runState.config.thinkingLevel]\n .filter(Boolean);\n\n document.getElementById(\"run-title\").textContent = runState.statusMessage || runState.phase;\n document.getElementById(\"run-subtitle\").textContent = runnerParts.join(\" / \");\n document.getElementById(\"progress-fill\").style.width = Math.max(0, Math.min(100, percentage)) + \"%\";\n document.getElementById(\"progress-label\").textContent =\n percentage + \"% \" + (progress.sessionDone || 0) + \"/\" + (progress.sessionTotal || 0);\n document.getElementById(\"run-current\").textContent = runState.currentPromptLabel\n ? runState.currentPromptLabel + \" - attempt \" + runState.currentAttempt + \"/\" + runState.maxAttempts\n : \"No active prompt\";\n\n renderRunOutput(runState);\n }\n\n function renderRunOutput(runState) {\n const statusLines = (runState.agentStatusTableRows || []).map((row) =>\n row.status + \" - \" + row.agentName + (row.url ? \" - \" + row.url : \"\")\n );\n const outputLines = [\n ...(runState.agentStatusLines || []),\n ...statusLines,\n ...(runState.agentOutputLines || []),\n ...(runState.errors || []).map((errorLine) => \"Error: \" + errorLine),\n ].slice(-3);\n\n document.getElementById(\"run-output\").textContent = outputLines.join(\"\\n\");\n }\n\n async function fetchPrompts() {\n try {\n const response = await fetch(\"/api/prompts\");\n if (!response.ok) {\n showError(\"Prompts API error: \" + response.status);\n return;\n }\n\n renderBoard(await response.json());\n } catch (error) {\n showError(\"Could not load prompts: \" + error.message);\n }\n }\n\n function renderBoard(promptFiles) {\n const columns = Object.fromEntries(BOARD_COLUMNS.map((column) => [column.id, []]));\n\n for (const file of promptFiles) {\n for (const section of file.sections) {\n if (columns[section.column]) {\n columns[section.column].push({ file, section });\n }\n }\n }\n\n for (const column of BOARD_COLUMNS) {\n renderColumn(column.id, columns[column.id]);\n }\n }\n\n function renderColumn(columnId, cards) {\n const container = document.getElementById(\"cards-\" + columnId);\n const countElement = document.getElementById(\"count-\" + columnId);\n\n countElement.textContent = cards.length;\n container.innerHTML = \"\";\n\n if (cards.length === 0) {\n container.innerHTML = '<div class=\"empty-column\">Empty</div>';\n return;\n }\n\n for (const cardData of cards) {\n container.appendChild(createPromptCard(cardData.file, cardData.section));\n }\n }\n\n function createPromptCard(file, section) {\n const card = document.createElement(\"article\");\n card.className = \"card card-\" + section.column;\n card.innerHTML =\n '<div class=\"card-file\">' + escapeHtml(file.relativeFilePath || file.fileName) + \" #\" + (section.index + 1) + '</div>' +\n '<div class=\"card-summary\">' + escapeHtml(section.summary) + '</div>' +\n renderTags(section);\n card.onclick = () => openModal(file, section);\n return card;\n }\n\n function renderTags(section) {\n const tags = [...(section.tags || [])];\n if (section.priority > 0) {\n tags.push({ id: \"priority\", label: \"P\" + section.priority });\n }\n\n if (tags.length === 0) {\n return \"\";\n }\n\n return '<div class=\"card-tags\">' + tags.map((tag) =>\n '<span class=\"card-tag tag-' + escapeHtml(tag.id) + '\">' + escapeHtml(tag.label) + '</span>'\n ).join(\"\") + '</div>';\n }\n\n function openModal(file, section) {\n modalState = { filePath: file.filePath, sectionIndex: section.index };\n\n document.getElementById(\"modal-file\").textContent = file.relativeFilePath || file.fileName;\n document.getElementById(\"modal-section-label\").textContent = \"Section \" + (section.index + 1);\n\n const statusBadge = document.getElementById(\"modal-status-badge\");\n statusBadge.textContent = getColumnTitle(section.column);\n statusBadge.className = \"modal-status status-\" + section.column;\n\n document.getElementById(\"modal-content\").value = section.content;\n document.getElementById(\"modal-overlay\").classList.remove(\"hidden\");\n setTimeout(() => document.getElementById(\"modal-content\").focus(), 50);\n }\n\n function closeModal() {\n document.getElementById(\"modal-overlay\").classList.add(\"hidden\");\n modalState = null;\n }\n\n async function saveModal() {\n if (!modalState) {\n return;\n }\n\n const content = document.getElementById(\"modal-content\").value;\n const saveButton = document.getElementById(\"save-button\");\n saveButton.disabled = true;\n saveButton.textContent = \"Saving...\";\n\n try {\n const response = await fetch(\"/api/prompts/update\", {\n method: \"PUT\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n filePath: modalState.filePath,\n sectionIndex: modalState.sectionIndex,\n content,\n }),\n });\n\n if (!response.ok) {\n throw new Error(\"HTTP \" + response.status);\n }\n\n closeModal();\n await fetchPrompts();\n } catch (error) {\n showError(\"Save failed: \" + error.message);\n } finally {\n saveButton.disabled = false;\n saveButton.textContent = \"Save\";\n }\n }\n\n document.getElementById(\"toggle-btn\").onclick = async () => {\n try {\n const endpoint = lastPauseState === \"RUNNING\" ? \"/api/pause\" : \"/api/resume\";\n await fetch(endpoint, { method: \"POST\" });\n await fetchStatus();\n } catch (error) {\n showError(\"Toggle failed: \" + error.message);\n }\n };\n\n document.getElementById(\"modal-close\").onclick = closeModal;\n document.getElementById(\"cancel-button\").onclick = closeModal;\n document.getElementById(\"save-button\").onclick = saveModal;\n\n document.addEventListener(\"keydown\", (event) => {\n if (event.key === \"Escape\") {\n closeModal();\n return;\n }\n if ((event.ctrlKey || event.metaKey) && event.key === \"Enter\") {\n saveModal();\n }\n });\n\n document.getElementById(\"modal-overlay\").addEventListener(\"click\", (event) => {\n if (event.target === document.getElementById(\"modal-overlay\")) {\n closeModal();\n }\n });\n\n renderBoardSkeleton();\n fetchStatus();\n fetchPrompts();\n setInterval(fetchStatus, 2000);\n setInterval(fetchPrompts, 5000);\n </script>\n</body>\n</html>\n";
@@ -0,0 +1,35 @@
1
+ import type { number_port } from '../../../src/types/number_positive';
2
+ import type { CoderRunUiState } from '../ui/CoderRunUiState';
3
+ /**
4
+ * Handle returned by the running coder HTTP server.
5
+ *
6
+ * @private internal type of `ptbk coder server`
7
+ */
8
+ export type CoderHttpServerHandle = {
9
+ close: () => void;
10
+ };
11
+ /**
12
+ * Options for the coder HTTP server.
13
+ *
14
+ * @private internal type of `ptbk coder server`
15
+ */
16
+ export type StartCoderHttpServerOptions = {
17
+ readonly port: number_port;
18
+ readonly minimumPriority: number;
19
+ readonly serverUrl: string;
20
+ readonly uiState?: CoderRunUiState;
21
+ };
22
+ /**
23
+ * Starts the lightweight HTTP server that serves the coder kanban UI and REST API.
24
+ *
25
+ * API endpoints:
26
+ * - `GET /` → HTML kanban page
27
+ * - `GET /api/prompts` → JSON list of all prompt files and sections
28
+ * - `GET /api/status` → JSON current pause state
29
+ * - `POST /api/pause` → request pause
30
+ * - `POST /api/resume` → request resume
31
+ * - `PUT /api/prompts/update` → update prompt section content
32
+ *
33
+ * @private internal utility of `ptbk coder server`
34
+ */
35
+ export declare function startCoderHttpServer(options: StartCoderHttpServerOptions): CoderHttpServerHandle;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Overwrites the body of one prompt section with new content, preserving the status line.
3
+ *
4
+ * The `newContent` string is the prompt text without the status marker.
5
+ * The status line (`[ ]`, `[x]`, `[!]`, `[-]`) is kept intact.
6
+ *
7
+ * @private internal utility of `ptbk coder server`
8
+ */
9
+ export declare function updatePromptSection(filePath: string, sectionIndex: number, newContent: string): Promise<boolean>;
@@ -21,6 +21,7 @@ export type CoderRunConfig = {
21
21
  readonly modelName?: string;
22
22
  readonly thinkingLevel?: string;
23
23
  readonly context?: string;
24
+ readonly serverUrl?: string;
24
25
  readonly priority: number;
25
26
  readonly testCommand?: string;
26
27
  };
@@ -57,6 +58,7 @@ export declare class CoderRunUiState extends EventEmitter {
57
58
  private stats;
58
59
  private readonly timer;
59
60
  private initialDone;
61
+ private cachedAveragePromptDurationMs;
60
62
  constructor(startTime: moment.Moment);
61
63
  /**
62
64
  * Pauses the elapsed timer (e.g. while waiting for user input or paused state).
@@ -74,6 +76,12 @@ export declare class CoderRunUiState extends EventEmitter {
74
76
  * Feeds new prompt statistics from the main loop so the progress bar updates.
75
77
  */
76
78
  updateProgress(stats: PromptStats): void;
79
+ /**
80
+ * Sets the cached average prompt duration (in milliseconds) loaded from the temp-folder estimate cache.
81
+ *
82
+ * Used to project completion estimates before the first prompt of the current session finishes.
83
+ */
84
+ setCachedAveragePromptDurationMs(cachedAveragePromptDurationMs: number | undefined): void;
77
85
  /**
78
86
  * Computes a progress snapshot on demand so elapsed time ticks with periodic re-renders.
79
87
  */