@promptbook/cli 0.113.0-7 → 0.113.0-9

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 (593) hide show
  1. package/apps/agents-server/next.config.ts +6 -3
  2. package/apps/agents-server/src/app/admin/resource-monitor/page.tsx +456 -0
  3. package/apps/agents-server/src/app/admin/task-manager/TaskManagerClient.tsx +14 -2
  4. package/apps/agents-server/src/app/admin/task-manager/TaskManagerTaskLogActions.tsx +150 -0
  5. package/apps/agents-server/src/app/admin/task-manager/TaskManagerTaskRow.tsx +58 -18
  6. package/apps/agents-server/src/app/admin/task-manager/TaskManagerTaskTerminalDialog.tsx +125 -0
  7. package/apps/agents-server/src/app/admin/task-manager/TaskManagerTasksCard.tsx +3 -1
  8. package/apps/agents-server/src/app/admin/task-manager/page.tsx +3 -2
  9. package/apps/agents-server/src/app/admin/update/AdvancedOriginRepositoryPanel.tsx +14 -9
  10. package/apps/agents-server/src/app/admin/update/AutomaticSelfUpdateConfigurationCard.tsx +93 -0
  11. package/apps/agents-server/src/app/admin/update/CurrentDeploymentCard.tsx +15 -13
  12. package/apps/agents-server/src/app/admin/update/CustomCommitPicker.tsx +10 -10
  13. package/apps/agents-server/src/app/admin/update/InstalledVersionsCard.tsx +112 -0
  14. package/apps/agents-server/src/app/admin/update/PendingCommitsCard.tsx +9 -8
  15. package/apps/agents-server/src/app/admin/update/TargetEnvironmentCard.tsx +14 -14
  16. package/apps/agents-server/src/app/admin/update/UpdateClient.tsx +18 -8
  17. package/apps/agents-server/src/app/admin/update/UpdateDatabaseMigrationsPanel.tsx +305 -0
  18. package/apps/agents-server/src/app/admin/update/UpdateJobCard.tsx +29 -8
  19. package/apps/agents-server/src/app/admin/update/UpdateOverview.ts +68 -0
  20. package/apps/agents-server/src/app/admin/update/updatePageCardClassName.ts +6 -0
  21. package/apps/agents-server/src/app/admin/update/useUpdateClientState.ts +241 -7
  22. package/apps/agents-server/src/app/agents/[agentName]/AgentChatWrapper.tsx +17 -3
  23. package/apps/agents-server/src/app/agents/[agentName]/chat/CanonicalAgentChatSurface.tsx +6 -2
  24. package/apps/agents-server/src/app/api/admin/chat-tasks/[taskId]/terminal/route.ts +52 -0
  25. package/apps/agents-server/src/app/api/admin/update/route.ts +55 -8
  26. package/apps/agents-server/src/app/api/admin/update/versions/route.ts +34 -0
  27. package/apps/agents-server/src/app/api/auth/shibboleth/acs/route.ts +4 -2
  28. package/apps/agents-server/src/app/api/auth/shibboleth/login/route.ts +3 -1
  29. package/apps/agents-server/src/app/api/auth/shibboleth/metadata/route.ts +5 -2
  30. package/apps/agents-server/src/app/api/auth/shibboleth/status/route.ts +5 -2
  31. package/apps/agents-server/src/app/layout.tsx +39 -25
  32. package/apps/agents-server/src/components/AgentAvatar/AgentAvatar.tsx +1 -1
  33. package/apps/agents-server/src/components/AgentAvatar/DefaultAgentAvatarVisualProvider.tsx +1 -1
  34. package/apps/agents-server/src/components/Header/Header.tsx +16 -3
  35. package/apps/agents-server/src/components/Header/HeaderTypes.ts +6 -0
  36. package/apps/agents-server/src/components/Header/buildAgentMenuStructure.tsx +6 -4
  37. package/apps/agents-server/src/components/Header/buildHeaderSystemMenuItems.ts +13 -1
  38. package/apps/agents-server/src/components/Homepage/useAgentsListState.ts +1 -1
  39. package/apps/agents-server/src/components/LayoutWrapper/LayoutWrapper.tsx +21 -5
  40. package/apps/agents-server/src/constants/defaultAgentAvatarVisual.ts +4 -3
  41. package/apps/agents-server/src/database/metadataDefaults.ts +1 -1
  42. package/apps/agents-server/src/database/migrate.ts +25 -1
  43. package/apps/agents-server/src/database/migratePrefix.ts +24 -0
  44. package/apps/agents-server/src/database/runDatabaseMigrations.ts +9 -1
  45. package/apps/agents-server/src/instrumentation-node.ts +15 -0
  46. package/apps/agents-server/src/languages/ServerTranslationKeys.ts +1 -0
  47. package/apps/agents-server/src/languages/translations/czech.yaml +1 -0
  48. package/apps/agents-server/src/languages/translations/english.yaml +1 -0
  49. package/apps/agents-server/src/{components/Homepage → utils/agentOrganization}/hiddenFolders.ts +49 -29
  50. package/apps/agents-server/src/utils/backup/createServerBackupZipStream.ts +7 -1382
  51. package/apps/agents-server/src/utils/backup/serverBackup/appendAgentBackupEntriesToZip.ts +27 -0
  52. package/apps/agents-server/src/utils/backup/serverBackup/appendConversationBackupEntriesToZip.ts +140 -0
  53. package/apps/agents-server/src/utils/backup/serverBackup/appendFileBackupEntriesToZip.ts +147 -0
  54. package/apps/agents-server/src/utils/backup/serverBackup/appendMessageBackupEntriesToZip.ts +65 -0
  55. package/apps/agents-server/src/utils/backup/serverBackup/appendMetadataBackupEntriesToZip.ts +39 -0
  56. package/apps/agents-server/src/utils/backup/serverBackup/appendSectionEntriesToZip.ts +92 -0
  57. package/apps/agents-server/src/utils/backup/serverBackup/appendUserBackupEntriesToZip.ts +80 -0
  58. package/apps/agents-server/src/utils/backup/serverBackup/createRedactedWalletBackupRecord.ts +34 -0
  59. package/apps/agents-server/src/utils/backup/serverBackup/createServerBackupManifest.ts +82 -0
  60. package/apps/agents-server/src/utils/backup/serverBackup/downloadBackupBinaryContent.ts +39 -0
  61. package/apps/agents-server/src/utils/backup/serverBackup/resolveFeedbackThreadMessages.ts +53 -0
  62. package/apps/agents-server/src/utils/backup/serverBackup/serverBackupAttachments.ts +151 -0
  63. package/apps/agents-server/src/utils/backup/serverBackup/serverBackupContext.ts +167 -0
  64. package/apps/agents-server/src/utils/backup/serverBackup/serverBackupFilenames.ts +161 -0
  65. package/apps/agents-server/src/utils/backup/serverBackup/serverBackupPreviews.ts +97 -0
  66. package/apps/agents-server/src/utils/backup/serverBackup/serverBackupRowUtilities.ts +158 -0
  67. package/apps/agents-server/src/utils/backup/serverBackup/serverBackupTypes.ts +59 -0
  68. package/apps/agents-server/src/utils/chat/createAttachmentAwareCitationLabelResolver.ts +147 -0
  69. package/apps/agents-server/src/utils/chatTasksAdmin.ts +1 -1
  70. package/apps/agents-server/src/utils/externalChatRunner/processExternalUserChatJob.ts +11 -5
  71. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/GetAdminChatTasksData.ts +12 -0
  72. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/adminChatTaskSqlQuery.ts +264 -0
  73. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/adminChatTaskSqlValues.ts +35 -0
  74. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/adminChatTaskTimeUtilities.ts +30 -0
  75. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/compareAdminChatTasks.ts +135 -0
  76. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/createAdminChatTaskCounters.ts +29 -0
  77. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/filterAdminChatTasks.ts +78 -0
  78. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/getAdminChatTasksViaClientSql.ts +62 -0
  79. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/getAdminChatTasksViaSupabaseQuery.ts +29 -0
  80. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/loadAdminChatTaskFallbackData.ts +193 -0
  81. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/mapAdminChatTaskFallbackRows.ts +99 -0
  82. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/mapAdminChatTaskSqlRows.ts +94 -0
  83. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks.ts +4 -947
  84. package/apps/agents-server/src/utils/getAdminChatTasksResponse/mapVpsSelfUpdateJobToAdminChatTask.ts +18 -5
  85. package/apps/agents-server/src/utils/getAdminChatTasksResponse.ts +57 -21
  86. package/apps/agents-server/src/utils/localChatRunner/processLocalUserChatJob.ts +20 -5
  87. package/apps/agents-server/src/utils/pagePreviewBrowserSessions.ts +13 -1
  88. package/apps/agents-server/src/utils/resourceMonitor/formatResourceMonitorValue.ts +50 -0
  89. package/apps/agents-server/src/utils/resourceMonitor/readCpuResourceUsage.ts +75 -0
  90. package/apps/agents-server/src/utils/resourceMonitor/readDiskResourceUsage.ts +42 -0
  91. package/apps/agents-server/src/utils/resourceMonitor/readMemoryResourceUsage.ts +28 -0
  92. package/apps/agents-server/src/utils/resourceMonitor/readNetworkResourceUsage.ts +271 -0
  93. package/apps/agents-server/src/utils/resourceMonitor/readServerResourceMonitorSnapshot.ts +47 -0
  94. package/apps/agents-server/src/utils/resourceMonitor/resolveServerResourceWarningStatus.ts +72 -0
  95. package/apps/agents-server/src/utils/resourceMonitor/resourceMonitorConstants.ts +29 -0
  96. package/apps/agents-server/src/utils/resourceMonitor/resourceMonitorTypes.ts +155 -0
  97. package/apps/agents-server/src/utils/resourceMonitor/waitForResourceMonitorSample.ts +11 -0
  98. package/apps/agents-server/src/utils/shibbolethAuthentication/createShibbolethSamlClient.ts +35 -0
  99. package/apps/agents-server/src/utils/shibbolethAuthentication/createShibbolethServiceProviderMetadataXml.ts +25 -0
  100. package/apps/agents-server/src/utils/shibbolethAuthentication/extractShibbolethProfileAttributes.ts +173 -0
  101. package/apps/agents-server/src/utils/shibbolethAuthentication/fetchIdentityProviderMetadataXml.ts +21 -0
  102. package/apps/agents-server/src/utils/shibbolethAuthentication/findOrCreateShibbolethUser.ts +323 -0
  103. package/apps/agents-server/src/utils/shibbolethAuthentication/getShibbolethAuthenticationAttemptTableName.ts +13 -0
  104. package/apps/agents-server/src/utils/shibbolethAuthentication/getShibbolethRequestDetails.ts +19 -0
  105. package/apps/agents-server/src/utils/shibbolethAuthentication/getShibbolethUserIdentityTableName.ts +13 -0
  106. package/apps/agents-server/src/utils/shibbolethAuthentication/parseIdentityProviderMetadataXml.ts +110 -0
  107. package/apps/agents-server/src/utils/shibbolethAuthentication/recordShibbolethAuthenticationAttempt.ts +57 -0
  108. package/apps/agents-server/src/utils/shibbolethAuthentication/resolveShibbolethAuthenticationConfiguration.ts +78 -0
  109. package/apps/agents-server/src/utils/shibbolethAuthentication/resolveShibbolethPublicRequestUrl.ts +101 -0
  110. package/apps/agents-server/src/utils/shibbolethAuthentication/resolveShibbolethServiceProviderUrls.ts +63 -0
  111. package/apps/agents-server/src/utils/shibbolethAuthentication/sanitizeShibbolethRelayState.ts +17 -0
  112. package/apps/agents-server/src/utils/shibbolethAuthentication/shibbolethAuthenticationConstants.ts +62 -0
  113. package/apps/agents-server/src/utils/shibbolethAuthentication/shibbolethAuthenticationTypes.ts +105 -0
  114. package/apps/agents-server/src/utils/shibbolethAuthentication.ts +25 -957
  115. package/apps/agents-server/src/utils/taskTerminal/resolveAdminTaskTerminalSession.ts +322 -0
  116. package/apps/agents-server/src/utils/taskTerminal/runWithTaskTerminalCapture.ts +134 -0
  117. package/apps/agents-server/src/utils/taskTerminal/taskTerminalLog.ts +360 -0
  118. package/apps/agents-server/src/utils/userChat/finalizeUserChatJob.ts +16 -0
  119. package/apps/agents-server/src/utils/userChatTimeout/userChatTimeoutStore/updateUserChatTimeoutTerminalState.ts +3 -0
  120. package/apps/agents-server/src/utils/userChatTimeout/userChatTimeoutWorker.ts +4 -1
  121. package/apps/agents-server/src/utils/vpsConfiguration.ts +4 -0
  122. package/apps/agents-server/src/utils/vpsSelfUpdate/deleteVpsSelfUpdateInstalledVersion.ts +81 -0
  123. package/apps/agents-server/src/utils/vpsSelfUpdate/listVpsSelfUpdateCandidateCommits.ts +217 -0
  124. package/apps/agents-server/src/utils/vpsSelfUpdate/readPersistedVpsSelfUpdateJob.ts +310 -0
  125. package/apps/agents-server/src/utils/vpsSelfUpdate/readVpsSelfUpdateOverview.ts +178 -0
  126. package/apps/agents-server/src/utils/vpsSelfUpdate/resolveVpsSelfUpdateJobForOverview.ts +42 -0
  127. package/apps/agents-server/src/utils/vpsSelfUpdate/startVpsSelfUpdate.ts +201 -0
  128. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateAutomaticConfiguration.ts +152 -0
  129. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateConfiguration.ts +81 -0
  130. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateCron.ts +357 -0
  131. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateEnvironment.ts +120 -0
  132. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateInstalledVersions.ts +162 -0
  133. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateJobConstants.ts +15 -0
  134. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateJobHistory.ts +387 -0
  135. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateJobIdentity.ts +26 -0
  136. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateOriginRepository.ts +90 -0
  137. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateRepository.ts +286 -0
  138. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateScheduler.ts +191 -0
  139. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateStateFiles.ts +197 -0
  140. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateTypes.ts +452 -0
  141. package/apps/agents-server/src/utils/vpsSelfUpdate.ts +66 -1547
  142. package/esm/apps/agents-server/src/database/migratePrefix.d.ts +19 -0
  143. package/esm/apps/agents-server/src/database/runDatabaseMigrations.d.ts +4 -0
  144. package/esm/book/scripts/import-markdown/increaseHeadings.d.ts +8 -0
  145. package/esm/index.es.js +28566 -27913
  146. package/esm/index.es.js.map +1 -1
  147. package/esm/scripts/run-agent-messages/main/runMultipleAgentMessages/MultipleAgentAutoPuller.d.ts +27 -0
  148. package/esm/scripts/run-agent-messages/main/runMultipleAgentMessages/MultipleAgentGithubSynchronizer.d.ts +26 -0
  149. package/esm/scripts/run-agent-messages/main/runMultipleAgentMessages/MultipleAgentRunUiPresenter.d.ts +66 -0
  150. package/esm/scripts/run-agent-messages/main/runMultipleAgentMessages/RunMultipleAgentMessageTaskScheduler.d.ts +67 -0
  151. package/esm/scripts/run-agent-messages/main/runMultipleAgentMessages/formatProjectPath.d.ts +6 -0
  152. package/esm/scripts/run-agent-messages/main/runMultipleAgentMessages/loadLocalAgentRunnerProjectSummaries.d.ts +11 -0
  153. package/esm/scripts/run-agent-messages/main/runMultipleAgentMessages/wait.d.ts +6 -0
  154. package/esm/scripts/run-agent-messages/main/runMultipleAgentMessages.d.ts +1 -1
  155. package/esm/scripts/run-codex-prompts/runners/claude-code/ClaudeCodeRunner.d.ts +4 -0
  156. package/esm/scripts/run-codex-prompts/runners/claude-code/ClaudeCodeSessionResurrection.d.ts +37 -0
  157. package/esm/scripts/run-codex-prompts/runners/claude-code/parseClaudeCodeOutputEvents.d.ts +47 -0
  158. package/esm/scripts/run-codex-prompts/ui/CoderRunUiState.d.ts +6 -4
  159. package/esm/scripts/run-codex-prompts/ui/buildCoderRunAgentVisual.d.ts +30 -5
  160. package/esm/scripts/run-codex-prompts/ui/buildCoderRunUiFrame.d.ts +7 -1
  161. package/esm/scripts/run-codex-prompts/ui/coderRunUiRefresh.d.ts +2 -2
  162. package/esm/src/_packages/types.index.d.ts +2 -2
  163. package/esm/src/avatars/renderAvatarVisualAsciiArt.d.ts +24 -1
  164. package/esm/src/avatars/visuals/octopus3dAvatarVisualShared.d.ts +1 -1
  165. package/esm/src/book-components/BookEditor/BookEditorMonacoUploadPanel.d.ts +1 -1
  166. package/esm/src/book-components/BookEditor/useBookEditorMonacoUploads/bookEditorMonacoUploadTypes.d.ts +120 -0
  167. package/esm/src/book-components/BookEditor/useBookEditorMonacoUploads/clearScheduledTimer.d.ts +6 -0
  168. package/esm/src/book-components/BookEditor/useBookEditorMonacoUploads/enqueueFilesForUpload.d.ts +26 -0
  169. package/esm/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadEditorSync.d.ts +23 -0
  170. package/esm/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadItemsState.d.ts +21 -0
  171. package/esm/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadProgressQueue.d.ts +12 -0
  172. package/esm/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadQueue.d.ts +27 -0
  173. package/esm/src/book-components/BookEditor/useBookEditorMonacoUploads/useCompletedUploadsAutoClear.d.ts +12 -0
  174. package/esm/src/book-components/BookEditor/useBookEditorMonacoUploads.d.ts +5 -58
  175. package/esm/src/book-components/Chat/Chat/ChatImageAttachmentModal.d.ts +25 -0
  176. package/esm/src/book-components/Chat/Chat/ChatInputArea.d.ts +3 -0
  177. package/esm/src/book-components/Chat/Chat/ChatMessageAttachments.d.ts +27 -0
  178. package/esm/src/book-components/Chat/Chat/ChatMessageItem.d.ts +1 -1
  179. package/esm/src/book-components/Chat/Chat/ChatMessageList.d.ts +1 -0
  180. package/esm/src/book-components/Chat/Chat/ChatProps.d.ts +8 -0
  181. package/esm/src/book-components/Chat/Chat/useChatInputAreaComposer.d.ts +12 -0
  182. package/esm/src/book-components/Chat/Chat/useChatInputAreaComposer.draftMessage.test.d.ts +2 -0
  183. package/esm/src/book-components/Chat/utils/isVisibleChatToolCall.d.ts +1 -1
  184. package/esm/src/book-components/Chat/utils/parseMessageButtons.d.ts +16 -2
  185. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/AGENTS_SERVER_BUILD_CACHE_FILENAME.d.ts +6 -0
  186. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/AGENTS_SERVER_BUILD_CACHE_VERSION.d.ts +6 -0
  187. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/AGENTS_SERVER_NEXT_BUILD_ID_FILENAME.d.ts +6 -0
  188. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/AgentsServerBuildCache.d.ts +10 -0
  189. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/AgentsServerBuildCacheOptions.d.ts +10 -0
  190. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/NODE_MODULES_DIRECTORY_NAME.d.ts +6 -0
  191. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/PreparedAgentsServerRuntime.d.ts +18 -0
  192. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/createAgentsServerBuildSourceFingerprint.d.ts +6 -0
  193. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/createAgentsServerRuntimeEnvironment.d.ts +28 -0
  194. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/ensureAgentsServerBuild.d.ts +19 -0
  195. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/getAgentsServerBuildInputRelativePaths.d.ts +11 -0
  196. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerAppPath.d.ts +6 -0
  197. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerAppPathMaterialized.d.ts +6 -0
  198. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerBuildCacheCurrent.d.ts +7 -0
  199. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerBuildInputTestFile.d.ts +6 -0
  200. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/isExcludedAgentsServerBuildInputDirectoryName.d.ts +6 -0
  201. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/isExcludedAgentsServerBuildInputPath.d.ts +6 -0
  202. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/isExcludedAgentsServerRuntimeSourcePath.d.ts +6 -0
  203. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/isFile.d.ts +6 -0
  204. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/isPathInsideNodeModules.d.ts +6 -0
  205. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/normalizeAgentsServerBuildInputPath.d.ts +6 -0
  206. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/prepareAgentsServerRuntime.d.ts +9 -0
  207. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/readAgentsServerBuildCache.d.ts +8 -0
  208. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/resolveAgentsServerAppPath.d.ts +6 -0
  209. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/resolveAgentsServerBuildAppPath.d.ts +9 -0
  210. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/resolveAgentsServerBuildOutputPath.d.ts +7 -0
  211. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/resolveNextCliPath.d.ts +6 -0
  212. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/resolveNodeModulesPath.d.ts +6 -0
  213. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/runNextBuild.d.ts +12 -0
  214. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/shouldCopyAgentsServerRuntimePath.d.ts +6 -0
  215. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/synchronizeMaterializedAgentsServerRuntime.d.ts +11 -0
  216. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/writeAgentsServerBuildCache.d.ts +7 -0
  217. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer.d.ts +8 -109
  218. package/esm/src/cli/cli-commands/agents-server/ensureAgentsServerEnvFile.d.ts +1 -1
  219. package/esm/src/cli/cli-commands/agents-server/ensureAgentsServerGitignoreFile.d.ts +1 -1
  220. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerChildEnvironment.d.ts +16 -0
  221. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerLogStreams.d.ts +30 -0
  222. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerRuntimePaths.d.ts +19 -0
  223. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerSupervisorState.d.ts +37 -0
  224. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/LocalAgentRunnerLimits.d.ts +9 -0
  225. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/PreparedAgentsServerLaunch.d.ts +13 -0
  226. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/StartAgentsServerOptions.d.ts +24 -0
  227. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/createInternalRouteErrorMessage.d.ts +6 -0
  228. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/createLocalAgentRunOptions.d.ts +9 -0
  229. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/forwardChildOutput.d.ts +13 -0
  230. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/loadAgentsServerProjectEnvironment.d.ts +6 -0
  231. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/prepareAgentsServerLaunch.d.ts +18 -0
  232. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/readInternalRouteErrorDetails.d.ts +6 -0
  233. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/resolveAgentsServerChildHostname.d.ts +7 -0
  234. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/startNextServer.d.ts +20 -0
  235. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/startUserChatJobWorkerPump.d.ts +15 -0
  236. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/stopChildProcess.d.ts +8 -0
  237. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/waitForLocalAgentRunnerLimits.d.ts +16 -0
  238. package/esm/src/cli/cli-commands/agents-server/startAgentsServer.d.ts +3 -30
  239. package/esm/src/cli/cli-commands/common/promptRunnerCliOptions.d.ts +1 -1
  240. package/esm/src/collection/agent-collection/CreateAgentInput.d.ts +1 -1
  241. package/esm/src/collection/agent-collection/constructors/agent-collection-in-supabase/prepareAgentSourceForPersistence.d.ts +1 -1
  242. package/esm/src/commitments/META/META.d.ts +2 -2
  243. package/esm/src/commitments/META_AVATAR/META_AVATAR.d.ts +9 -4
  244. package/esm/src/commitments/index.d.ts +1 -1
  245. package/esm/src/conversion/validation/validatePipeline/createPipelineValidationContext.d.ts +16 -0
  246. package/esm/src/conversion/validation/validatePipeline/validatePipelineCollectionsStructure.d.ts +7 -0
  247. package/esm/src/conversion/validation/validatePipeline/validatePipelineDependencyResolution.d.ts +7 -0
  248. package/esm/src/conversion/validation/validatePipeline/validatePipelineMetadata.d.ts +7 -0
  249. package/esm/src/conversion/validation/validatePipeline/validatePipelineParameters.d.ts +7 -0
  250. package/esm/src/conversion/validation/validatePipeline/validatePipelineTasks.d.ts +7 -0
  251. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/RegisteredLlmToolsMessageContext.d.ts +46 -0
  252. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/USED_ENV_FILENAME.d.ts +11 -0
  253. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolConfigurationStatusMessage.d.ts +7 -0
  254. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolEntryKey.d.ts +7 -0
  255. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolInstallationStatusMessage.d.ts +7 -0
  256. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolStatus.d.ts +14 -0
  257. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolsMessageContext.d.ts +7 -0
  258. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/getAvailableRegisteredLlmToolsEnvironmentVariables.d.ts +7 -0
  259. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/getRegisteredLlmToolRegisters.d.ts +7 -0
  260. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/hasRegisteredLlmToolEntry.d.ts +7 -0
  261. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/listRegisteredLlmToolEntries.d.ts +9 -0
  262. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/listRegisteredLlmToolStatuses.d.ts +7 -0
  263. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderAvailableRegisteredLlmTools.d.ts +7 -0
  264. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderNoRegisteredLlmToolsMessage.d.ts +7 -0
  265. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderRegisteredLlmToolsMessage.d.ts +8 -0
  266. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderRelevantRegisteredLlmToolsEnvironmentVariables.d.ts +7 -0
  267. package/esm/src/utils/agents/resolveAgentAvatarImageUrl.d.ts +2 -2
  268. package/esm/src/utils/color/Color.d.ts +1 -1
  269. package/esm/src/version.d.ts +1 -1
  270. package/package.json +1 -1
  271. package/src/_packages/types.index.ts +2 -2
  272. package/src/avatars/Avatar.tsx +2 -13
  273. package/src/avatars/renderAvatarVisual.ts +2 -13
  274. package/src/avatars/renderAvatarVisualAsciiArt.ts +137 -18
  275. package/src/avatars/visuals/asciiOctopusAvatarVisual.ts +1 -6
  276. package/src/avatars/visuals/avatarVisualRegistry.ts +1 -1
  277. package/src/avatars/visuals/minecraft2AvatarVisual.ts +1 -2
  278. package/src/avatars/visuals/octopus2AvatarVisual.ts +1 -5
  279. package/src/avatars/visuals/octopus3AvatarVisual.ts +1 -8
  280. package/src/avatars/visuals/octopus3d2AvatarVisual.ts +4 -13
  281. package/src/avatars/visuals/octopus3d3AvatarVisual.ts +4 -13
  282. package/src/avatars/visuals/octopus3d4AvatarVisual.ts +4 -13
  283. package/src/avatars/visuals/octopus3dAvatarVisual.ts +3 -3
  284. package/src/avatars/visuals/octopus3dAvatarVisualShared.ts +2 -7
  285. package/src/book-2.0/agent-source/parseAgentSource/applyMetaCommitment.ts +2 -1
  286. package/src/book-2.0/book-language-documentation/createStandaloneBookLanguageMarkdown.ts +3 -5
  287. package/src/book-3.0/CliAgent.ts +1 -7
  288. package/src/book-3.0/LiteAgent.ts +5 -5
  289. package/src/book-components/AvatarProfile/AvatarProfile/AvatarProfile.tsx +1 -4
  290. package/src/book-components/BookEditor/BookEditor.tsx +2 -2
  291. package/src/book-components/BookEditor/BookEditorAboutPromptbookInformation.tsx +3 -2
  292. package/src/book-components/BookEditor/BookEditorActionbar.tsx +1 -1
  293. package/src/book-components/BookEditor/BookEditorMonaco.tsx +2 -2
  294. package/src/book-components/BookEditor/BookEditorMonacoUploadPanel.tsx +1 -1
  295. package/src/book-components/BookEditor/useBookEditorMonacoLanguage.ts +1 -1
  296. package/src/book-components/BookEditor/useBookEditorMonacoStyles.ts +1 -1
  297. package/src/book-components/BookEditor/useBookEditorMonacoUploads/bookEditorMonacoUploadTypes.ts +147 -0
  298. package/src/book-components/BookEditor/useBookEditorMonacoUploads/clearScheduledTimer.ts +10 -0
  299. package/src/book-components/BookEditor/useBookEditorMonacoUploads/enqueueFilesForUpload.ts +209 -0
  300. package/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadEditorSync.ts +164 -0
  301. package/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadItemsState.ts +121 -0
  302. package/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadProgressQueue.ts +81 -0
  303. package/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadQueue.ts +360 -0
  304. package/src/book-components/BookEditor/useBookEditorMonacoUploads/useCompletedUploadsAutoClear.ts +47 -0
  305. package/src/book-components/BookEditor/useBookEditorMonacoUploads.ts +10 -1067
  306. package/src/book-components/Chat/Chat/Chat.module.css +159 -0
  307. package/src/book-components/Chat/Chat/Chat.tsx +16 -1
  308. package/src/book-components/Chat/Chat/ChatCitationModal.tsx +2 -2
  309. package/src/book-components/Chat/Chat/ChatImageAttachmentModal.tsx +108 -0
  310. package/src/book-components/Chat/Chat/ChatInputArea.tsx +43 -27
  311. package/src/book-components/Chat/Chat/ChatMessageAttachments.tsx +212 -0
  312. package/src/book-components/Chat/Chat/ChatMessageItem.tsx +32 -18
  313. package/src/book-components/Chat/Chat/ChatMessageList.tsx +3 -0
  314. package/src/book-components/Chat/Chat/ChatProps.tsx +9 -0
  315. package/src/book-components/Chat/Chat/renderTimeoutToolCallDetails.tsx +1 -5
  316. package/src/book-components/Chat/Chat/useChatInputAreaComposer.ts +59 -7
  317. package/src/book-components/Chat/Chat/useChatInputAreaDictation.ts +7 -7
  318. package/src/book-components/Chat/Chat/useChatToolCallModalState.ts +1 -4
  319. package/src/book-components/Chat/hooks/useChatRatings.ts +1 -1
  320. package/src/book-components/Chat/save/html/htmlSaveFormatDefinition.ts +2 -3
  321. package/src/book-components/Chat/save/markdown/mdSaveFormatDefinition.ts +2 -2
  322. package/src/book-components/Chat/save/pdf/buildChatPdf.ts +1 -1
  323. package/src/book-components/Chat/utils/getToolCallChipletInfo.ts +1 -5
  324. package/src/book-components/Chat/utils/isVisibleChatToolCall.ts +2 -1
  325. package/src/book-components/Chat/utils/parseMessageButtons.ts +27 -2
  326. package/src/cli/cli-commands/about.ts +1 -1
  327. package/src/cli/cli-commands/agent/agentCliOptions.ts +2 -5
  328. package/src/cli/cli-commands/agent-folder/agentProjectPaths.ts +6 -12
  329. package/src/cli/cli-commands/agent-folder/init.ts +3 -8
  330. package/src/cli/cli-commands/agent-folder/initializeAgentProjectConfiguration.ts +2 -11
  331. package/src/cli/cli-commands/agent-folder/printAgentInitializationSummary.ts +2 -9
  332. package/src/cli/cli-commands/agents-server/buildAgentsServer/AGENTS_SERVER_BUILD_CACHE_FILENAME.ts +6 -0
  333. package/src/cli/cli-commands/agents-server/buildAgentsServer/AGENTS_SERVER_BUILD_CACHE_VERSION.ts +6 -0
  334. package/src/cli/cli-commands/agents-server/buildAgentsServer/AGENTS_SERVER_NEXT_BUILD_ID_FILENAME.ts +6 -0
  335. package/src/cli/cli-commands/agents-server/buildAgentsServer/AgentsServerBuildCache.ts +11 -0
  336. package/src/cli/cli-commands/agents-server/buildAgentsServer/AgentsServerBuildCacheOptions.ts +9 -0
  337. package/src/cli/cli-commands/agents-server/buildAgentsServer/NODE_MODULES_DIRECTORY_NAME.ts +6 -0
  338. package/src/cli/cli-commands/agents-server/buildAgentsServer/PreparedAgentsServerRuntime.ts +19 -0
  339. package/src/cli/cli-commands/agents-server/buildAgentsServer/createAgentsServerBuildSourceFingerprint.ts +71 -0
  340. package/src/cli/cli-commands/agents-server/buildAgentsServer/createAgentsServerRuntimeEnvironment.ts +69 -0
  341. package/src/cli/cli-commands/agents-server/buildAgentsServer/ensureAgentsServerBuild.ts +59 -0
  342. package/src/cli/cli-commands/agents-server/buildAgentsServer/getAgentsServerBuildInputRelativePaths.ts +23 -0
  343. package/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerAppPath.ts +20 -0
  344. package/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerAppPathMaterialized.ts +17 -0
  345. package/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerBuildCacheCurrent.ts +27 -0
  346. package/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerBuildInputTestFile.ts +21 -0
  347. package/src/cli/cli-commands/agents-server/buildAgentsServer/isExcludedAgentsServerBuildInputDirectoryName.ts +22 -0
  348. package/src/cli/cli-commands/agents-server/buildAgentsServer/isExcludedAgentsServerBuildInputPath.ts +30 -0
  349. package/src/cli/cli-commands/agents-server/buildAgentsServer/isExcludedAgentsServerRuntimeSourcePath.ts +41 -0
  350. package/src/cli/cli-commands/agents-server/buildAgentsServer/isFile.ts +14 -0
  351. package/src/cli/cli-commands/agents-server/buildAgentsServer/isPathInsideNodeModules.ts +10 -0
  352. package/src/cli/cli-commands/agents-server/buildAgentsServer/normalizeAgentsServerBuildInputPath.ts +10 -0
  353. package/src/cli/cli-commands/agents-server/buildAgentsServer/prepareAgentsServerRuntime.ts +31 -0
  354. package/src/cli/cli-commands/agents-server/buildAgentsServer/readAgentsServerBuildCache.ts +35 -0
  355. package/src/cli/cli-commands/agents-server/buildAgentsServer/resolveAgentsServerAppPath.ts +33 -0
  356. package/src/cli/cli-commands/agents-server/buildAgentsServer/resolveAgentsServerBuildAppPath.ts +30 -0
  357. package/src/cli/cli-commands/agents-server/buildAgentsServer/resolveAgentsServerBuildOutputPath.ts +19 -0
  358. package/src/cli/cli-commands/agents-server/buildAgentsServer/resolveNextCliPath.ts +21 -0
  359. package/src/cli/cli-commands/agents-server/buildAgentsServer/resolveNodeModulesPath.ts +19 -0
  360. package/src/cli/cli-commands/agents-server/buildAgentsServer/runNextBuild.ts +184 -0
  361. package/src/cli/cli-commands/agents-server/buildAgentsServer/shouldCopyAgentsServerRuntimePath.ts +48 -0
  362. package/src/cli/cli-commands/agents-server/buildAgentsServer/synchronizeMaterializedAgentsServerRuntime.ts +179 -0
  363. package/src/cli/cli-commands/agents-server/buildAgentsServer/writeAgentsServerBuildCache.ts +28 -0
  364. package/src/cli/cli-commands/agents-server/buildAgentsServer.ts +22 -1045
  365. package/src/cli/cli-commands/agents-server/ensureAgentsServerEnvFile.ts +2 -1
  366. package/src/cli/cli-commands/agents-server/ensureAgentsServerGitignoreFile.ts +2 -1
  367. package/src/cli/cli-commands/agents-server/run.ts +2 -5
  368. package/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerChildEnvironment.ts +67 -0
  369. package/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerLogStreams.ts +43 -0
  370. package/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerRuntimePaths.ts +44 -0
  371. package/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerSupervisorState.ts +59 -0
  372. package/src/cli/cli-commands/agents-server/startAgentsServer/LocalAgentRunnerLimits.ts +9 -0
  373. package/src/cli/cli-commands/agents-server/startAgentsServer/PreparedAgentsServerLaunch.ts +14 -0
  374. package/src/cli/cli-commands/agents-server/startAgentsServer/StartAgentsServerOptions.ts +26 -0
  375. package/src/cli/cli-commands/agents-server/startAgentsServer/createInternalRouteErrorMessage.ts +15 -0
  376. package/src/cli/cli-commands/agents-server/startAgentsServer/createLocalAgentRunOptions.ts +29 -0
  377. package/src/cli/cli-commands/agents-server/startAgentsServer/forwardChildOutput.ts +32 -0
  378. package/src/cli/cli-commands/agents-server/startAgentsServer/loadAgentsServerProjectEnvironment.ts +18 -0
  379. package/src/cli/cli-commands/agents-server/startAgentsServer/prepareAgentsServerLaunch.ts +81 -0
  380. package/src/cli/cli-commands/agents-server/startAgentsServer/readInternalRouteErrorDetails.ts +52 -0
  381. package/src/cli/cli-commands/agents-server/startAgentsServer/resolveAgentsServerChildHostname.ts +17 -0
  382. package/src/cli/cli-commands/agents-server/startAgentsServer/startNextServer.ts +97 -0
  383. package/src/cli/cli-commands/agents-server/startAgentsServer/startUserChatJobWorkerPump.ts +132 -0
  384. package/src/cli/cli-commands/agents-server/startAgentsServer/stopChildProcess.ts +14 -0
  385. package/src/cli/cli-commands/agents-server/startAgentsServer/waitForLocalAgentRunnerLimits.ts +132 -0
  386. package/src/cli/cli-commands/agents-server/startAgentsServer.ts +24 -797
  387. package/src/cli/cli-commands/agents-server.ts +2 -6
  388. package/src/cli/cli-commands/coder/agentCodingFile.ts +1 -7
  389. package/src/cli/cli-commands/coder/generate-boilerplates.ts +2 -6
  390. package/src/cli/cli-commands/coder/initializeCoderProjectConfiguration.ts +2 -7
  391. package/src/cli/cli-commands/coder/server.ts +4 -2
  392. package/src/cli/cli-commands/common/promptRunnerCliOptions.ts +3 -8
  393. package/src/cli/cli-commands/make.ts +1 -1
  394. package/src/cli/cli-commands/run/runCommandAction.ts +1 -1
  395. package/src/collection/agent-collection/CreateAgentInput.ts +2 -5
  396. package/src/collection/agent-collection/constructors/agent-collection-in-supabase/prepareAgentSourceForPersistence.ts +1 -1
  397. package/src/commitments/MEMORY/createMemoryToolFunctions.ts +1 -10
  398. package/src/commitments/MEMORY/getMemoryToolRuntimeAdapterOrDisabledResult.ts +1 -10
  399. package/src/commitments/MEMORY/parseMemoryToolArgs.ts +1 -6
  400. package/src/commitments/META/META.ts +4 -4
  401. package/src/commitments/META_AVATAR/META_AVATAR.ts +16 -10
  402. package/src/commitments/USE_CALENDAR/createUseCalendarToolFunctions.ts +1 -4
  403. package/src/commitments/USE_PROJECT/createUseProjectToolFunctions.ts +2 -10
  404. package/src/commitments/USE_TIMEOUT/createTimeoutToolFunctions.ts +1 -11
  405. package/src/commitments/USE_TIMEOUT/getTimeoutToolRuntimeAdapterOrDisabledResult.ts +1 -6
  406. package/src/commitments/USE_TIMEOUT/parseTimeoutToolArgs.ts +1 -6
  407. package/src/commitments/WALLET/createWalletToolFunctions.ts +2 -11
  408. package/src/commitments/WALLET/getWalletToolRuntimeAdapterOrDisabledResult.ts +1 -6
  409. package/src/commitments/WALLET/parseWalletToolArgs.ts +1 -10
  410. package/src/commitments/index.ts +1 -0
  411. package/src/conversion/parsePipeline/applyPipelineHead.ts +1 -1
  412. package/src/conversion/parsePipeline/createUniqueSectionNameResolver.ts +1 -1
  413. package/src/conversion/parsePipeline/processPipelineSection.ts +1 -1
  414. package/src/conversion/validation/validatePipeline/createPipelineValidationContext.ts +43 -0
  415. package/src/conversion/validation/validatePipeline/validatePipelineCollectionsStructure.ts +72 -0
  416. package/src/conversion/validation/validatePipeline/validatePipelineDependencyResolution.ts +220 -0
  417. package/src/conversion/validation/validatePipeline/validatePipelineMetadata.ts +66 -0
  418. package/src/conversion/validation/validatePipeline/validatePipelineParameters.ts +136 -0
  419. package/src/conversion/validation/validatePipeline/validatePipelineTasks.ts +243 -0
  420. package/src/conversion/validation/validatePipeline.ts +7 -750
  421. package/src/execution/LlmExecutionTools.ts +1 -6
  422. package/src/execution/createPipelineExecutor/getReservedParametersForTask.ts +1 -5
  423. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/RegisteredLlmToolsMessageContext.ts +51 -0
  424. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/USED_ENV_FILENAME.ts +30 -0
  425. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolConfigurationStatusMessage.ts +62 -0
  426. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolEntryKey.ts +10 -0
  427. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolInstallationStatusMessage.ts +75 -0
  428. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolStatus.ts +101 -0
  429. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolsMessageContext.ts +24 -0
  430. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/getAvailableRegisteredLlmToolsEnvironmentVariables.ts +17 -0
  431. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/getRegisteredLlmToolRegisters.ts +15 -0
  432. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/hasRegisteredLlmToolEntry.ts +19 -0
  433. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/listRegisteredLlmToolEntries.ts +44 -0
  434. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/listRegisteredLlmToolStatuses.ts +21 -0
  435. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderAvailableRegisteredLlmTools.ts +97 -0
  436. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderNoRegisteredLlmToolsMessage.ts +17 -0
  437. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderRegisteredLlmToolsMessage.ts +30 -0
  438. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderRelevantRegisteredLlmToolsEnvironmentVariables.ts +32 -0
  439. package/src/llm-providers/_common/register/$registeredLlmToolsMessage.ts +5 -568
  440. package/src/llm-providers/_common/utils/count-total-usage/limitTotalUsage.ts +1 -6
  441. package/src/llm-providers/openai/OpenAiAgentKitExecutionTools.ts +2 -2
  442. package/src/llm-providers/openai/OpenAiAssistantExecutionTools.ts +1 -1
  443. package/src/llm-providers/openai/OpenAiAssistantExecutionToolsStreamRunner.ts +2 -2
  444. package/src/llm-providers/openai/OpenAiAssistantExecutionToolsToolRunner.ts +1 -1
  445. package/src/llm-providers/openai/OpenAiCompatibleExecutionTools.ts +2 -7
  446. package/src/llm-providers/openai/utils/OpenAiCompatibleChatPromptBuilder.ts +1 -1
  447. package/src/llm-providers/openai/utils/OpenAiCompatibleChatToolCaller.ts +2 -2
  448. package/src/llm-providers/openai/utils/OpenAiCompatibleUnsupportedParameterRetrier.ts +1 -5
  449. package/src/llm-providers/openai/utils/buildToolInvocationScript.ts +1 -6
  450. package/src/other/templates/getTemplatesPipelineCollection.ts +705 -791
  451. package/src/remote-server/startRemoteServer/registerExecutionRoutes.ts +1 -1
  452. package/src/remote-server/startRemoteServer/registerServerIndexRoute.ts +1 -1
  453. package/src/scrapers/_common/utils/makeKnowledgeSourceHandler.ts +1 -6
  454. package/src/speech-recognition/OpenAiSpeechRecognition.ts +1 -6
  455. package/src/transpilers/_common/prepareSdkTranspilerContext.ts +1 -4
  456. package/src/types/Prompt.ts +1 -7
  457. package/src/types/string_host.ts +1 -9
  458. package/src/types/string_pipeline_url.ts +1 -4
  459. package/src/utils/agents/resolveAgentAvatarImageUrl.ts +2 -2
  460. package/src/utils/color/Color.ts +2 -2
  461. package/src/utils/markdown/parseMarkdownSection.ts +1 -5
  462. package/src/utils/random/$randomFullnameWithColor.ts +1 -6
  463. package/src/version.ts +2 -2
  464. package/src/versions.txt +2 -1
  465. package/umd/apps/agents-server/src/database/migratePrefix.d.ts +19 -0
  466. package/umd/apps/agents-server/src/database/runDatabaseMigrations.d.ts +4 -0
  467. package/umd/book/scripts/import-markdown/increaseHeadings.d.ts +8 -0
  468. package/umd/index.umd.js +28568 -27915
  469. package/umd/index.umd.js.map +1 -1
  470. package/umd/scripts/run-agent-messages/main/runMultipleAgentMessages/MultipleAgentAutoPuller.d.ts +27 -0
  471. package/umd/scripts/run-agent-messages/main/runMultipleAgentMessages/MultipleAgentGithubSynchronizer.d.ts +26 -0
  472. package/umd/scripts/run-agent-messages/main/runMultipleAgentMessages/MultipleAgentRunUiPresenter.d.ts +66 -0
  473. package/umd/scripts/run-agent-messages/main/runMultipleAgentMessages/RunMultipleAgentMessageTaskScheduler.d.ts +67 -0
  474. package/umd/scripts/run-agent-messages/main/runMultipleAgentMessages/formatProjectPath.d.ts +6 -0
  475. package/umd/scripts/run-agent-messages/main/runMultipleAgentMessages/loadLocalAgentRunnerProjectSummaries.d.ts +11 -0
  476. package/umd/scripts/run-agent-messages/main/runMultipleAgentMessages/wait.d.ts +6 -0
  477. package/umd/scripts/run-agent-messages/main/runMultipleAgentMessages.d.ts +1 -1
  478. package/umd/scripts/run-codex-prompts/runners/claude-code/ClaudeCodeRunner.d.ts +4 -0
  479. package/umd/scripts/run-codex-prompts/runners/claude-code/ClaudeCodeSessionResurrection.d.ts +37 -0
  480. package/umd/scripts/run-codex-prompts/runners/claude-code/parseClaudeCodeOutputEvents.d.ts +47 -0
  481. package/umd/scripts/run-codex-prompts/ui/CoderRunUiState.d.ts +6 -4
  482. package/umd/scripts/run-codex-prompts/ui/buildCoderRunAgentVisual.d.ts +30 -5
  483. package/umd/scripts/run-codex-prompts/ui/buildCoderRunUiFrame.d.ts +7 -1
  484. package/umd/scripts/run-codex-prompts/ui/coderRunUiRefresh.d.ts +2 -2
  485. package/umd/src/_packages/types.index.d.ts +2 -2
  486. package/umd/src/avatars/renderAvatarVisualAsciiArt.d.ts +24 -1
  487. package/umd/src/avatars/visuals/octopus3dAvatarVisualShared.d.ts +1 -1
  488. package/umd/src/book-components/BookEditor/BookEditorMonacoUploadPanel.d.ts +1 -1
  489. package/umd/src/book-components/BookEditor/useBookEditorMonacoUploads/bookEditorMonacoUploadTypes.d.ts +120 -0
  490. package/umd/src/book-components/BookEditor/useBookEditorMonacoUploads/clearScheduledTimer.d.ts +6 -0
  491. package/umd/src/book-components/BookEditor/useBookEditorMonacoUploads/enqueueFilesForUpload.d.ts +26 -0
  492. package/umd/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadEditorSync.d.ts +23 -0
  493. package/umd/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadItemsState.d.ts +21 -0
  494. package/umd/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadProgressQueue.d.ts +12 -0
  495. package/umd/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadQueue.d.ts +27 -0
  496. package/umd/src/book-components/BookEditor/useBookEditorMonacoUploads/useCompletedUploadsAutoClear.d.ts +12 -0
  497. package/umd/src/book-components/BookEditor/useBookEditorMonacoUploads.d.ts +5 -58
  498. package/umd/src/book-components/Chat/Chat/ChatImageAttachmentModal.d.ts +25 -0
  499. package/umd/src/book-components/Chat/Chat/ChatInputArea.d.ts +3 -0
  500. package/umd/src/book-components/Chat/Chat/ChatMessageAttachments.d.ts +27 -0
  501. package/umd/src/book-components/Chat/Chat/ChatMessageItem.d.ts +1 -1
  502. package/umd/src/book-components/Chat/Chat/ChatMessageList.d.ts +1 -0
  503. package/umd/src/book-components/Chat/Chat/ChatProps.d.ts +8 -0
  504. package/umd/src/book-components/Chat/Chat/useChatInputAreaComposer.d.ts +12 -0
  505. package/umd/src/book-components/Chat/Chat/useChatInputAreaComposer.draftMessage.test.d.ts +2 -0
  506. package/umd/src/book-components/Chat/utils/isVisibleChatToolCall.d.ts +1 -1
  507. package/umd/src/book-components/Chat/utils/parseMessageButtons.d.ts +16 -2
  508. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/AGENTS_SERVER_BUILD_CACHE_FILENAME.d.ts +6 -0
  509. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/AGENTS_SERVER_BUILD_CACHE_VERSION.d.ts +6 -0
  510. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/AGENTS_SERVER_NEXT_BUILD_ID_FILENAME.d.ts +6 -0
  511. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/AgentsServerBuildCache.d.ts +10 -0
  512. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/AgentsServerBuildCacheOptions.d.ts +10 -0
  513. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/NODE_MODULES_DIRECTORY_NAME.d.ts +6 -0
  514. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/PreparedAgentsServerRuntime.d.ts +18 -0
  515. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/createAgentsServerBuildSourceFingerprint.d.ts +6 -0
  516. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/createAgentsServerRuntimeEnvironment.d.ts +28 -0
  517. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/ensureAgentsServerBuild.d.ts +19 -0
  518. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/getAgentsServerBuildInputRelativePaths.d.ts +11 -0
  519. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerAppPath.d.ts +6 -0
  520. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerAppPathMaterialized.d.ts +6 -0
  521. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerBuildCacheCurrent.d.ts +7 -0
  522. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerBuildInputTestFile.d.ts +6 -0
  523. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/isExcludedAgentsServerBuildInputDirectoryName.d.ts +6 -0
  524. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/isExcludedAgentsServerBuildInputPath.d.ts +6 -0
  525. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/isExcludedAgentsServerRuntimeSourcePath.d.ts +6 -0
  526. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/isFile.d.ts +6 -0
  527. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/isPathInsideNodeModules.d.ts +6 -0
  528. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/normalizeAgentsServerBuildInputPath.d.ts +6 -0
  529. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/prepareAgentsServerRuntime.d.ts +9 -0
  530. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/readAgentsServerBuildCache.d.ts +8 -0
  531. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/resolveAgentsServerAppPath.d.ts +6 -0
  532. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/resolveAgentsServerBuildAppPath.d.ts +9 -0
  533. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/resolveAgentsServerBuildOutputPath.d.ts +7 -0
  534. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/resolveNextCliPath.d.ts +6 -0
  535. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/resolveNodeModulesPath.d.ts +6 -0
  536. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/runNextBuild.d.ts +12 -0
  537. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/shouldCopyAgentsServerRuntimePath.d.ts +6 -0
  538. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/synchronizeMaterializedAgentsServerRuntime.d.ts +11 -0
  539. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/writeAgentsServerBuildCache.d.ts +7 -0
  540. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer.d.ts +8 -109
  541. package/umd/src/cli/cli-commands/agents-server/ensureAgentsServerEnvFile.d.ts +1 -1
  542. package/umd/src/cli/cli-commands/agents-server/ensureAgentsServerGitignoreFile.d.ts +1 -1
  543. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerChildEnvironment.d.ts +16 -0
  544. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerLogStreams.d.ts +30 -0
  545. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerRuntimePaths.d.ts +19 -0
  546. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerSupervisorState.d.ts +37 -0
  547. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/LocalAgentRunnerLimits.d.ts +9 -0
  548. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/PreparedAgentsServerLaunch.d.ts +13 -0
  549. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/StartAgentsServerOptions.d.ts +24 -0
  550. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/createInternalRouteErrorMessage.d.ts +6 -0
  551. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/createLocalAgentRunOptions.d.ts +9 -0
  552. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/forwardChildOutput.d.ts +13 -0
  553. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/loadAgentsServerProjectEnvironment.d.ts +6 -0
  554. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/prepareAgentsServerLaunch.d.ts +18 -0
  555. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/readInternalRouteErrorDetails.d.ts +6 -0
  556. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/resolveAgentsServerChildHostname.d.ts +7 -0
  557. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/startNextServer.d.ts +20 -0
  558. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/startUserChatJobWorkerPump.d.ts +15 -0
  559. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/stopChildProcess.d.ts +8 -0
  560. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/waitForLocalAgentRunnerLimits.d.ts +16 -0
  561. package/umd/src/cli/cli-commands/agents-server/startAgentsServer.d.ts +3 -30
  562. package/umd/src/cli/cli-commands/common/promptRunnerCliOptions.d.ts +1 -1
  563. package/umd/src/collection/agent-collection/CreateAgentInput.d.ts +1 -1
  564. package/umd/src/collection/agent-collection/constructors/agent-collection-in-supabase/prepareAgentSourceForPersistence.d.ts +1 -1
  565. package/umd/src/commitments/META/META.d.ts +2 -2
  566. package/umd/src/commitments/META_AVATAR/META_AVATAR.d.ts +9 -4
  567. package/umd/src/commitments/index.d.ts +1 -1
  568. package/umd/src/conversion/validation/validatePipeline/createPipelineValidationContext.d.ts +16 -0
  569. package/umd/src/conversion/validation/validatePipeline/validatePipelineCollectionsStructure.d.ts +7 -0
  570. package/umd/src/conversion/validation/validatePipeline/validatePipelineDependencyResolution.d.ts +7 -0
  571. package/umd/src/conversion/validation/validatePipeline/validatePipelineMetadata.d.ts +7 -0
  572. package/umd/src/conversion/validation/validatePipeline/validatePipelineParameters.d.ts +7 -0
  573. package/umd/src/conversion/validation/validatePipeline/validatePipelineTasks.d.ts +7 -0
  574. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/RegisteredLlmToolsMessageContext.d.ts +46 -0
  575. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/USED_ENV_FILENAME.d.ts +11 -0
  576. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolConfigurationStatusMessage.d.ts +7 -0
  577. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolEntryKey.d.ts +7 -0
  578. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolInstallationStatusMessage.d.ts +7 -0
  579. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolStatus.d.ts +14 -0
  580. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolsMessageContext.d.ts +7 -0
  581. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/getAvailableRegisteredLlmToolsEnvironmentVariables.d.ts +7 -0
  582. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/getRegisteredLlmToolRegisters.d.ts +7 -0
  583. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/hasRegisteredLlmToolEntry.d.ts +7 -0
  584. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/listRegisteredLlmToolEntries.d.ts +9 -0
  585. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/listRegisteredLlmToolStatuses.d.ts +7 -0
  586. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderAvailableRegisteredLlmTools.d.ts +7 -0
  587. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderNoRegisteredLlmToolsMessage.d.ts +7 -0
  588. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderRegisteredLlmToolsMessage.d.ts +8 -0
  589. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderRelevantRegisteredLlmToolsEnvironmentVariables.d.ts +7 -0
  590. package/umd/src/utils/agents/resolveAgentAvatarImageUrl.d.ts +2 -2
  591. package/umd/src/utils/color/Color.d.ts +1 -1
  592. package/umd/src/version.d.ts +1 -1
  593. package/apps/agents-server/src/utils/userChat/createUserChatRunnerProgressCard.ts +0 -57
@@ -1,6 +1,12 @@
1
+ 'use client';
2
+
3
+ import { useState } from 'react';
4
+ import { SquareTerminal } from 'lucide-react';
1
5
  import type { AdminChatTaskRecord } from '@/src/utils/chatTasksAdmin';
2
6
  import type { ServerLanguageCode } from '@/src/languages/ServerLanguageRegistry';
3
7
  import { formatServerLanguageHumanReadableDate } from '@/src/utils/localization/formatServerLanguageHumanReadableDate';
8
+ import { TaskManagerTaskLogActions } from './TaskManagerTaskLogActions';
9
+ import { TaskManagerTaskTerminalDialog } from './TaskManagerTaskTerminalDialog';
4
10
  import type { useTaskManagerState } from './useTaskManagerState';
5
11
 
6
12
  /**
@@ -11,6 +17,7 @@ import type { useTaskManagerState } from './useTaskManagerState';
11
17
  type TaskManagerTaskRowProps = {
12
18
  busyAction: ReturnType<typeof useTaskManagerState>['busyAction'];
13
19
  busyTaskId: ReturnType<typeof useTaskManagerState>['busyTaskId'];
20
+ isSuperAdmin: boolean;
14
21
  language: ServerLanguageCode;
15
22
  onRunTaskAction: ReturnType<typeof useTaskManagerState>['runTaskAction'];
16
23
  stuckThresholdMinutes: ReturnType<typeof useTaskManagerState>['stuckThresholdMinutes'];
@@ -54,6 +61,8 @@ type TaskInfoBlockProps = {
54
61
  */
55
62
  type TaskManagerTaskActionsProps = Pick<TaskManagerTaskRowProps, 'busyAction' | 'onRunTaskAction' | 'task'> & {
56
63
  isBusy: boolean;
64
+ isSuperAdmin: boolean;
65
+ onOpenTerminal: () => void;
57
66
  };
58
67
 
59
68
  /**
@@ -267,13 +276,32 @@ function resolveTaskRowClassName(task: AdminChatTaskRecord, isStuck: boolean): s
267
276
  *
268
277
  * @private function of TaskManagerTaskRow
269
278
  */
270
- function TaskManagerTaskActions({ busyAction, isBusy, onRunTaskAction, task }: TaskManagerTaskActionsProps) {
279
+ function TaskManagerTaskActions({
280
+ busyAction,
281
+ isBusy,
282
+ isSuperAdmin,
283
+ onOpenTerminal,
284
+ onRunTaskAction,
285
+ task,
286
+ }: TaskManagerTaskActionsProps) {
271
287
  const isDurableChatTask = task.kind === 'CHAT_COMPLETION' || task.kind === 'CHAT_TIMEOUT';
272
288
  const isCancelable = isDurableChatTask && (task.status === 'QUEUED' || task.status === 'RUNNING');
273
289
  const isRetryable = isDurableChatTask && task.status === 'FAILED';
274
290
 
275
291
  return (
276
- <div className="flex justify-end gap-2">
292
+ <div className="flex flex-wrap justify-end gap-2">
293
+ {isSuperAdmin ? (
294
+ <button
295
+ type="button"
296
+ onClick={onOpenTerminal}
297
+ className="inline-flex items-center gap-1 rounded-md border border-slate-300 bg-slate-900 px-3 py-1.5 font-semibold text-white hover:bg-slate-800"
298
+ title="Open the read-only live CLI terminal of this task"
299
+ >
300
+ <SquareTerminal className="h-3.5 w-3.5" />
301
+ Terminal
302
+ </button>
303
+ ) : null}
304
+
277
305
  {isCancelable ? (
278
306
  <button
279
307
  type="button"
@@ -296,7 +324,7 @@ function TaskManagerTaskActions({ busyAction, isBusy, onRunTaskAction, task }: T
296
324
  </button>
297
325
  ) : null}
298
326
 
299
- {!isCancelable && !isRetryable ? (
327
+ {!isCancelable && !isRetryable && !isSuperAdmin ? (
300
328
  <span className="rounded-md border border-gray-200 bg-gray-50 px-3 py-1.5 font-medium text-gray-500">
301
329
  -
302
330
  </span>
@@ -313,11 +341,13 @@ function TaskManagerTaskActions({ busyAction, isBusy, onRunTaskAction, task }: T
313
341
  export function TaskManagerTaskRow({
314
342
  busyAction,
315
343
  busyTaskId,
344
+ isSuperAdmin,
316
345
  language,
317
346
  onRunTaskAction,
318
347
  stuckThresholdMinutes,
319
348
  task,
320
349
  }: TaskManagerTaskRowProps) {
350
+ const [isTerminalDialogOpen, setIsTerminalDialogOpen] = useState(false);
321
351
  const isStuck = isTaskStuck(task, stuckThresholdMinutes);
322
352
  const isBusy = busyTaskId === task.id;
323
353
 
@@ -406,21 +436,26 @@ export function TaskManagerTaskRow({
406
436
  </td>
407
437
 
408
438
  <td className="max-w-xs px-4 py-3 align-top text-[11px] leading-relaxed text-gray-600">
409
- {task.lastErrorSummary || task.lastErrorDetails ? (
410
- <div className="space-y-2">
411
- {task.lastErrorSummary ? <div>{truncateText(task.lastErrorSummary, 220)}</div> : null}
412
- {task.lastErrorDetails ? (
413
- <details className="rounded-md border border-gray-200 bg-gray-50 p-2">
414
- <summary className="cursor-pointer font-medium text-gray-700">Show details</summary>
415
- <pre className="mt-2 overflow-x-auto whitespace-pre-wrap break-words text-[10px] leading-relaxed text-gray-600">
416
- {task.lastErrorDetails}
417
- </pre>
418
- </details>
419
- ) : null}
420
- </div>
421
- ) : (
422
- '-'
423
- )}
439
+ <div className="space-y-2">
440
+ {task.lastErrorSummary || task.lastErrorDetails ? (
441
+ <>
442
+ {task.lastErrorSummary ? <div>{truncateText(task.lastErrorSummary, 220)}</div> : null}
443
+ {task.lastErrorDetails ? (
444
+ <details className="rounded-md border border-gray-200 bg-gray-50 p-2">
445
+ <summary className="cursor-pointer font-medium text-gray-700">
446
+ Show details
447
+ </summary>
448
+ <pre className="mt-2 overflow-x-auto whitespace-pre-wrap break-words text-[10px] leading-relaxed text-gray-600">
449
+ {task.lastErrorDetails}
450
+ </pre>
451
+ </details>
452
+ ) : null}
453
+ </>
454
+ ) : (
455
+ '-'
456
+ )}
457
+ <TaskManagerTaskLogActions task={task} />
458
+ </div>
424
459
  </td>
425
460
 
426
461
  <td className="px-4 py-3 align-top">
@@ -428,8 +463,13 @@ export function TaskManagerTaskRow({
428
463
  task={task}
429
464
  busyAction={busyAction}
430
465
  isBusy={isBusy}
466
+ isSuperAdmin={isSuperAdmin}
467
+ onOpenTerminal={() => setIsTerminalDialogOpen(true)}
431
468
  onRunTaskAction={onRunTaskAction}
432
469
  />
470
+ {isTerminalDialogOpen ? (
471
+ <TaskManagerTaskTerminalDialog task={task} onClose={() => setIsTerminalDialogOpen(false)} />
472
+ ) : null}
433
473
  </td>
434
474
  </tr>
435
475
  );
@@ -0,0 +1,125 @@
1
+ 'use client';
2
+
3
+ import { Loader2, X } from 'lucide-react';
4
+ import { AdminXtermTerminal } from '@/src/components/AdminTerminal/AdminXtermTerminal';
5
+ import {
6
+ useAdminTerminalSession,
7
+ type AdminTerminalSession,
8
+ } from '@/src/components/AdminTerminal/useAdminTerminalSession';
9
+ import { Dialog } from '@/src/components/Portal/Dialog';
10
+ import type { AdminChatTaskRecord } from '@/src/utils/chatTasksAdmin';
11
+
12
+ /**
13
+ * Props for the read-only live terminal dialog of one background task.
14
+ *
15
+ * @private function of TaskManagerTaskRow
16
+ */
17
+ type TaskManagerTaskTerminalDialogProps = {
18
+ task: AdminChatTaskRecord;
19
+ onClose: () => void;
20
+ };
21
+
22
+ /**
23
+ * Resolves the compact status label shown next to the terminal.
24
+ *
25
+ * @private function of TaskManagerTaskTerminalDialog
26
+ */
27
+ function resolveTerminalStatusLabel(session: AdminTerminalSession | null, isLoading: boolean): string {
28
+ if (isLoading && !session) {
29
+ return 'Connecting…';
30
+ }
31
+
32
+ if (!session) {
33
+ return 'Terminal unavailable';
34
+ }
35
+
36
+ if (session.isRunning) {
37
+ return 'Live';
38
+ }
39
+
40
+ if (session.exitCode === 0) {
41
+ return 'Finished successfully';
42
+ }
43
+
44
+ if (session.exitCode !== null) {
45
+ return 'Finished with an error or cancelled';
46
+ }
47
+
48
+ return 'Not running';
49
+ }
50
+
51
+ /**
52
+ * Super-admin dialog streaming the read-only CLI terminal of one background task in real time.
53
+ *
54
+ * @private function of TaskManagerTaskRow
55
+ */
56
+ export function TaskManagerTaskTerminalDialog({ task, onClose }: TaskManagerTaskTerminalDialogProps) {
57
+ const terminal = useAdminTerminalSession({
58
+ basePath: `/api/admin/chat-tasks/${encodeURIComponent(task.id)}/terminal`,
59
+ loadErrorMessage: 'Failed to load the task terminal.',
60
+ startErrorMessage: 'Failed to open the task terminal.',
61
+ sendErrorMessage: 'The task terminal is read-only.',
62
+ stopErrorMessage: 'The task terminal cannot be stopped from here.',
63
+ startSuccessMessage: 'Task terminal opened.',
64
+ finishSuccessMessage: 'The task finished successfully.',
65
+ finishErrorMessage: 'The task finished with an error or was cancelled.',
66
+ });
67
+
68
+ return (
69
+ <Dialog onClose={onClose} className="w-[min(70rem,95vw)] p-6" ariaLabel={`Task terminal ${task.id}`}>
70
+ <div className="space-y-4">
71
+ <div className="flex items-start justify-between gap-4">
72
+ <div className="min-w-0">
73
+ <h2 className="text-lg font-semibold text-slate-900">Task terminal</h2>
74
+ <p className="mt-1 break-all font-mono text-xs text-slate-500">{task.id}</p>
75
+ <p className="mt-1 text-sm text-slate-600">
76
+ Read-only live view of everything this task prints while it runs — the output of the
77
+ whole Agents Server is not shown here, only this task&apos;s own terminal.
78
+ </p>
79
+ </div>
80
+ <button
81
+ type="button"
82
+ onClick={onClose}
83
+ className="shrink-0 rounded-md border border-slate-200 bg-white p-2 text-slate-500 hover:bg-slate-50"
84
+ aria-label="Close task terminal"
85
+ >
86
+ <X className="h-4 w-4" />
87
+ </button>
88
+ </div>
89
+
90
+ {terminal.errorMessage ? (
91
+ <div className="rounded-xl border border-rose-200 bg-rose-50 px-4 py-3 text-sm text-rose-700">
92
+ {terminal.errorMessage}
93
+ </div>
94
+ ) : null}
95
+
96
+ <div className="flex flex-wrap items-center justify-between gap-3">
97
+ <h3 className="text-sm font-semibold text-slate-700">Terminal output</h3>
98
+ <span className="inline-flex items-center gap-2 text-xs text-slate-500">
99
+ {terminal.isLoadingSession ? <Loader2 className="h-3.5 w-3.5 animate-spin" /> : null}
100
+ {resolveTerminalStatusLabel(terminal.session, terminal.isLoadingSession)}
101
+ </span>
102
+ </div>
103
+
104
+ <AdminXtermTerminal
105
+ terminalId={terminal.session?.id || task.id}
106
+ output={terminal.session?.output || ''}
107
+ emptyState={
108
+ terminal.isLoadingSession
109
+ ? 'Connecting to the task terminal…'
110
+ : 'No terminal output has been captured for this task on this server instance yet.'
111
+ }
112
+ isRunning={Boolean(terminal.session?.isRunning)}
113
+ isReadOnly
114
+ isPlainTextOutput
115
+ ariaLabel={`Read-only terminal of task ${task.id}`}
116
+ />
117
+
118
+ <p className="text-xs text-slate-500">
119
+ The terminal shows output captured while the task is processed by this server instance; output
120
+ produced before the last server restart is not available.
121
+ </p>
122
+ </div>
123
+ </Dialog>
124
+ );
125
+ }
@@ -9,6 +9,7 @@ import { TaskManagerTaskRow } from './TaskManagerTaskRow';
9
9
  * @private function of TaskManagerClient
10
10
  */
11
11
  type TaskManagerTasksCardProps = {
12
+ isSuperAdmin: boolean;
12
13
  language: ServerLanguageCode;
13
14
  state: ReturnType<typeof useTaskManagerState>;
14
15
  };
@@ -43,7 +44,7 @@ function resolveEmptyStateMessage(view: ReturnType<typeof useTaskManagerState>['
43
44
  *
44
45
  * @private function of TaskManagerClient
45
46
  */
46
- export function TaskManagerTasksCard({ language, state }: TaskManagerTasksCardProps) {
47
+ export function TaskManagerTasksCard({ isSuperAdmin, language, state }: TaskManagerTasksCardProps) {
47
48
  const firstVisibleTaskIndex = Math.min((state.page - 1) * state.pageSize + 1, state.total);
48
49
  const lastVisibleTaskIndex = Math.min(state.page * state.pageSize, state.total);
49
50
 
@@ -87,6 +88,7 @@ export function TaskManagerTasksCard({ language, state }: TaskManagerTasksCardPr
87
88
  language={language}
88
89
  busyAction={state.busyAction}
89
90
  busyTaskId={state.busyTaskId}
91
+ isSuperAdmin={isSuperAdmin}
90
92
  onRunTaskAction={state.runTaskAction}
91
93
  stuckThresholdMinutes={state.stuckThresholdMinutes}
92
94
  />
@@ -1,16 +1,17 @@
1
1
  import { ForbiddenPage } from '../../../components/ForbiddenPage/ForbiddenPage';
2
2
  import { isUserAdmin } from '../../../utils/isUserAdmin';
3
+ import { isUserGlobalAdmin } from '../../../utils/isUserGlobalAdmin';
3
4
  import { TaskManagerClient } from './TaskManagerClient';
4
5
 
5
6
  /**
6
7
  * Admin task-manager page showing durable background chat work across the server.
7
8
  */
8
9
  export default async function AdminTaskManagerPage() {
9
- const isAdmin = await isUserAdmin();
10
+ const [isAdmin, isSuperAdmin] = await Promise.all([isUserAdmin(), isUserGlobalAdmin()]);
10
11
 
11
12
  if (!isAdmin) {
12
13
  return <ForbiddenPage />;
13
14
  }
14
15
 
15
- return <TaskManagerClient />;
16
+ return <TaskManagerClient isSuperAdmin={isSuperAdmin} />;
16
17
  }
@@ -31,20 +31,24 @@ export function AdvancedOriginRepositoryPanel({
31
31
  isDisabled,
32
32
  }: AdvancedOriginRepositoryPanelProps) {
33
33
  return (
34
- <div className="rounded-xl border border-slate-200 bg-white">
34
+ <div className="min-w-0 rounded-xl border border-slate-200 bg-white">
35
35
  <button
36
36
  type="button"
37
37
  onClick={onToggleExpanded}
38
38
  className="flex w-full items-center justify-between gap-3 px-4 py-3 text-sm font-semibold text-slate-700"
39
39
  >
40
- <span className="inline-flex items-center gap-2">
41
- <Settings2 className="h-4 w-4" />
40
+ <span className="inline-flex min-w-0 items-center gap-2">
41
+ <Settings2 className="h-4 w-4 shrink-0" />
42
42
  Advanced
43
43
  </span>
44
- {isExpanded ? <ChevronUp className="h-4 w-4" /> : <ChevronDown className="h-4 w-4" />}
44
+ {isExpanded ? (
45
+ <ChevronUp className="h-4 w-4 shrink-0" />
46
+ ) : (
47
+ <ChevronDown className="h-4 w-4 shrink-0" />
48
+ )}
45
49
  </button>
46
50
  {isExpanded && (
47
- <div className="space-y-3 border-t border-slate-100 px-4 py-3 text-sm text-slate-600">
51
+ <div className="min-w-0 space-y-3 border-t border-slate-100 px-4 py-3 text-sm text-slate-600">
48
52
  <label className="block">
49
53
  <span className="text-xs font-semibold uppercase tracking-wide text-slate-500">
50
54
  Upstream repository URL
@@ -58,15 +62,16 @@ export function AdvancedOriginRepositoryPanel({
58
62
  className="mt-1 w-full rounded-md border border-slate-300 bg-white px-3 py-2 font-mono text-sm focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500 disabled:cursor-not-allowed disabled:opacity-60"
59
63
  />
60
64
  </label>
61
- <p className="text-xs text-slate-500">
62
- Defaults to <span className="font-mono">{overview?.defaultOriginRepositoryUrl}</span>. Only
65
+ <p className="break-words text-xs text-slate-500">
66
+ Defaults to{' '}
67
+ <span className="break-all font-mono">{overview?.defaultOriginRepositoryUrl}</span>. Only
63
68
  change this if you self-host a fork of the original Promptbook repository — the new value is
64
69
  persisted in the standalone VPS <code>.env</code>.
65
70
  </p>
66
71
  {overview && !overview.isOriginRepositoryDefault && (
67
- <div className="rounded-md border border-amber-200 bg-amber-50 px-3 py-2 text-xs text-amber-800">
72
+ <div className="break-words rounded-md border border-amber-200 bg-amber-50 px-3 py-2 text-xs text-amber-800">
68
73
  <strong>Custom origin active:</strong> updates currently pull from{' '}
69
- <span className="font-mono">{overview.originRepositoryUrl}</span>.
74
+ <span className="break-all font-mono">{overview.originRepositoryUrl}</span>.
70
75
  </div>
71
76
  )}
72
77
  </div>
@@ -0,0 +1,93 @@
1
+ 'use client';
2
+
3
+ import { CalendarClock, Loader2, Save } from 'lucide-react';
4
+ import type { UpdateClientState } from './useUpdateClientState';
5
+
6
+ /**
7
+ * Props for the automatic self-update configuration card.
8
+ *
9
+ * @private type of `<AutomaticSelfUpdateConfigurationCard/>`
10
+ */
11
+ type AutomaticSelfUpdateConfigurationCardProps = {
12
+ readonly state: UpdateClientState;
13
+ };
14
+
15
+ /**
16
+ * Branch-aware automatic self-update configuration persisted into the VPS `.env` file.
17
+ *
18
+ * @private internal component of `<UpdateClient/>`
19
+ */
20
+ export function AutomaticSelfUpdateConfigurationCard({ state }: AutomaticSelfUpdateConfigurationCardProps) {
21
+ const isDisabled = state.isLoading || state.isSavingAutomaticConfiguration || state.isUpdateRunning;
22
+ const environments = (state.overview?.environments ?? []).filter((environment) => !environment.isCustom);
23
+
24
+ return (
25
+ <div className="min-w-0 space-y-4">
26
+ <div className="flex min-w-0 items-start justify-between gap-3">
27
+ <div className="min-w-0">
28
+ <h2 className="text-lg font-semibold text-slate-900">Automatic self-update</h2>
29
+ <p className="mt-1 text-sm text-slate-500">
30
+ Scheduled checks use the selected branch and the cron interval stored in the VPS{' '}
31
+ <code>.env</code>.
32
+ </p>
33
+ </div>
34
+ <CalendarClock className="mt-1 h-5 w-5 shrink-0 text-slate-400" />
35
+ </div>
36
+
37
+ <label className="flex items-center gap-3 rounded-xl border border-slate-200 bg-slate-50 px-4 py-3 text-sm font-medium text-slate-800">
38
+ <input
39
+ type="checkbox"
40
+ checked={state.automaticConfigurationDraft.isEnabled}
41
+ onChange={(event) => state.changeAutomaticUpdateEnabled(event.target.checked)}
42
+ disabled={isDisabled}
43
+ className="h-4 w-4 rounded border-slate-300 text-blue-600 focus:ring-blue-500 disabled:cursor-not-allowed disabled:opacity-60"
44
+ />
45
+ Enable automatic updates
46
+ </label>
47
+
48
+ <div className="grid min-w-0 gap-3 sm:grid-cols-[minmax(0,1fr)_minmax(0,1.2fr)]">
49
+ <label className="block min-w-0 text-sm font-medium text-slate-700">
50
+ Branch
51
+ <select
52
+ value={state.automaticConfigurationDraft.environmentId}
53
+ onChange={(event) => state.selectAutomaticUpdateEnvironment(event.target.value)}
54
+ disabled={isDisabled}
55
+ className="mt-1 w-full rounded-md border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 shadow-sm focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-200 disabled:cursor-not-allowed disabled:bg-slate-50 disabled:text-slate-500"
56
+ >
57
+ {environments.map((environment) => (
58
+ <option key={environment.id} value={environment.id}>
59
+ {environment.label} ({environment.branch})
60
+ </option>
61
+ ))}
62
+ </select>
63
+ </label>
64
+
65
+ <label className="block min-w-0 text-sm font-medium text-slate-700">
66
+ Cron interval
67
+ <input
68
+ type="text"
69
+ value={state.automaticConfigurationDraft.cronExpression}
70
+ onChange={(event) => state.changeAutomaticUpdateCronExpression(event.target.value)}
71
+ disabled={isDisabled}
72
+ placeholder="0 0 * * *"
73
+ className="mt-1 w-full rounded-md border border-slate-300 px-3 py-2 font-mono text-sm text-slate-900 shadow-sm focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-200 disabled:cursor-not-allowed disabled:bg-slate-50 disabled:text-slate-500"
74
+ />
75
+ </label>
76
+ </div>
77
+
78
+ <button
79
+ type="button"
80
+ onClick={() => void state.saveAutomaticConfiguration()}
81
+ disabled={isDisabled || !state.isAutomaticConfigurationChanged}
82
+ className="inline-flex w-full items-center justify-center gap-2 rounded-md border border-slate-300 bg-white px-4 py-2 text-sm font-semibold text-slate-700 hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-60"
83
+ >
84
+ {state.isSavingAutomaticConfiguration ? (
85
+ <Loader2 className="h-4 w-4 animate-spin" />
86
+ ) : (
87
+ <Save className="h-4 w-4" />
88
+ )}
89
+ Save automatic configuration
90
+ </button>
91
+ </div>
92
+ );
93
+ }
@@ -42,22 +42,24 @@ export function CurrentDeploymentCard({ overview, language }: CurrentDeploymentC
42
42
  return (
43
43
  <div className="space-y-4">
44
44
  <div className="flex items-start gap-3">
45
- <Server className="mt-0.5 h-5 w-5 text-blue-600" />
46
- <div>
45
+ <Server className="mt-0.5 h-5 w-5 shrink-0 text-blue-600" />
46
+ <div className="min-w-0">
47
47
  <h2 className="text-lg font-semibold text-slate-900">Current deployment</h2>
48
48
  <p className="mt-1 text-sm text-slate-500">
49
49
  The server currently tracks the{' '}
50
50
  <span className="font-medium">{overview?.currentEnvironment.label || 'Production'}</span>{' '}
51
51
  environment on branch{' '}
52
- <span className="font-mono">{overview?.currentEnvironment.branch || 'production'}</span>.
52
+ <span className="break-all font-mono">
53
+ {overview?.currentEnvironment.branch || 'production'}.
54
+ </span>
53
55
  </p>
54
56
  </div>
55
57
  </div>
56
58
 
57
- <dl className="grid gap-4 text-sm text-slate-600 sm:grid-cols-2">
58
- <div className="rounded-xl border border-slate-200 bg-slate-50 px-4 py-3">
59
+ <dl className="grid min-w-0 gap-4 text-sm text-slate-600 sm:grid-cols-2">
60
+ <div className="min-w-0 rounded-xl border border-slate-200 bg-slate-50 px-4 py-3">
59
61
  <dt className="text-xs font-semibold uppercase tracking-wide text-slate-500">Branch</dt>
60
- <dd className="mt-1 font-mono text-slate-900">
62
+ <dd className="mt-1 break-all font-mono text-slate-900">
61
63
  {overview?.currentEnvironment.branch || 'production'}
62
64
  </dd>
63
65
  </div>
@@ -77,19 +79,19 @@ export function CurrentDeploymentCard({ overview, language }: CurrentDeploymentC
77
79
  authoredAt={overview?.latestRemoteCommitDate ?? null}
78
80
  language={language}
79
81
  />
80
- <div className="rounded-xl border border-slate-200 bg-slate-50 px-4 py-3">
82
+ <div className="min-w-0 rounded-xl border border-slate-200 bg-slate-50 px-4 py-3">
81
83
  <dt className="text-xs font-semibold uppercase tracking-wide text-slate-500">
82
84
  Update availability
83
85
  </dt>
84
- <dd className="mt-1 flex items-center gap-2 text-slate-900">
86
+ <dd className="mt-1 flex min-w-0 items-center gap-2 break-words text-slate-900">
85
87
  {overview?.isUpdateAvailable ? (
86
88
  <>
87
- <TriangleAlert className="h-4 w-4 text-amber-500" />
89
+ <TriangleAlert className="h-4 w-4 shrink-0 text-amber-500" />
88
90
  {driftLabel}
89
91
  </>
90
92
  ) : (
91
93
  <>
92
- <CheckCircle2 className="h-4 w-4 text-emerald-600" />
94
+ <CheckCircle2 className="h-4 w-4 shrink-0 text-emerald-600" />
93
95
  Up to date
94
96
  </>
95
97
  )}
@@ -100,7 +102,7 @@ export function CurrentDeploymentCard({ overview, language }: CurrentDeploymentC
100
102
  {overview?.repositoryDirectory && (
101
103
  <div className="text-xs text-slate-500">
102
104
  Managed repository:
103
- <span className="ml-2 font-mono text-slate-700">{overview.repositoryDirectory}</span>
105
+ <span className="ml-2 break-all font-mono text-slate-700">{overview.repositoryDirectory}</span>
104
106
  </div>
105
107
  )}
106
108
  </div>
@@ -123,9 +125,9 @@ function CommitSummaryCard({
123
125
  const commitHashLabel = commitSha || shortCommitSha || 'Unknown hash';
124
126
 
125
127
  return (
126
- <div className="rounded-xl border border-slate-200 bg-slate-50 px-4 py-3">
128
+ <div className="min-w-0 rounded-xl border border-slate-200 bg-slate-50 px-4 py-3">
127
129
  <dt className="text-xs font-semibold uppercase tracking-wide text-slate-500">{label}</dt>
128
- <dd className="mt-1 text-slate-900">{subject || 'Unknown commit subject'}</dd>
130
+ <dd className="mt-1 break-words text-slate-900">{subject || 'Unknown commit subject'}</dd>
129
131
  <div className="mt-2 break-all font-mono text-xs text-slate-600">{commitHashLabel}</div>
130
132
  <div className="mt-1 text-xs text-slate-500">{formatHumanReadableTimestamp(authoredAt, language)}</div>
131
133
  </div>
@@ -121,9 +121,9 @@ export function CustomCommitPicker({ language, selectedRef, onSelectRef, isDisab
121
121
  );
122
122
 
123
123
  return (
124
- <div className="space-y-3">
125
- <div className="grid gap-3 sm:grid-cols-[1fr_auto_auto]">
126
- <label className="relative block">
124
+ <div className="min-w-0 space-y-3">
125
+ <div className="grid min-w-0 gap-3 sm:grid-cols-[minmax(0,1fr)_auto_auto]">
126
+ <label className="relative block min-w-0">
127
127
  <Search className="pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-400" />
128
128
  <input
129
129
  type="search"
@@ -152,8 +152,8 @@ export function CustomCommitPicker({ language, selectedRef, onSelectRef, isDisab
152
152
  />
153
153
  </div>
154
154
 
155
- <div className="flex items-center justify-between gap-3">
156
- <label className="flex-1 text-xs text-slate-500">
155
+ <div className="flex min-w-0 items-center justify-between gap-3">
156
+ <label className="min-w-0 flex-1 text-xs text-slate-500">
157
157
  <span className="block font-semibold uppercase tracking-wide">Or paste a ref directly</span>
158
158
  <input
159
159
  type="text"
@@ -168,7 +168,7 @@ export function CustomCommitPicker({ language, selectedRef, onSelectRef, isDisab
168
168
  type="button"
169
169
  onClick={() => void loadCandidates()}
170
170
  disabled={isDisabled || isLoading}
171
- className="self-end inline-flex items-center gap-2 rounded-md border border-slate-300 bg-white px-3 py-2 text-xs font-semibold text-slate-700 hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-60"
171
+ className="inline-flex shrink-0 items-center gap-2 self-end rounded-md border border-slate-300 bg-white px-3 py-2 text-xs font-semibold text-slate-700 hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-60"
172
172
  >
173
173
  <RefreshCcw className={`h-3.5 w-3.5 ${isLoading ? 'animate-spin' : ''}`} />
174
174
  Refresh
@@ -181,7 +181,7 @@ export function CustomCommitPicker({ language, selectedRef, onSelectRef, isDisab
181
181
  </div>
182
182
  )}
183
183
 
184
- <div className="max-h-96 overflow-y-auto rounded-xl border border-slate-200 bg-white">
184
+ <div className="max-h-96 min-w-0 overflow-y-auto rounded-xl border border-slate-200 bg-white">
185
185
  {isLoading && candidates.length === 0 ? (
186
186
  <div className="flex items-center justify-center gap-2 px-4 py-6 text-sm text-slate-500">
187
187
  <Loader2 className="h-4 w-4 animate-spin" />
@@ -215,7 +215,7 @@ export function CustomCommitPicker({ language, selectedRef, onSelectRef, isDisab
215
215
  : 'hover:bg-slate-50'
216
216
  } disabled:cursor-not-allowed disabled:opacity-60`}
217
217
  >
218
- <div className="flex items-center gap-2">
218
+ <div className="flex min-w-0 flex-wrap items-center gap-2">
219
219
  <span className="font-mono text-xs text-slate-500">
220
220
  {candidate.shortCommitSha}
221
221
  </span>
@@ -228,7 +228,7 @@ export function CustomCommitPicker({ language, selectedRef, onSelectRef, isDisab
228
228
  {candidate.tags.map((tag) => (
229
229
  <span
230
230
  key={`tag-${tag}`}
231
- className="inline-flex rounded-full border border-amber-200 bg-amber-50 px-2 py-0.5 text-[10px] font-mono text-amber-800"
231
+ className="inline-flex min-w-0 break-all rounded-full border border-amber-200 bg-amber-50 px-2 py-0.5 text-[10px] font-mono text-amber-800"
232
232
  >
233
233
  {tag}
234
234
  </span>
@@ -236,7 +236,7 @@ export function CustomCommitPicker({ language, selectedRef, onSelectRef, isDisab
236
236
  {candidate.branches.map((branch) => (
237
237
  <span
238
238
  key={`branch-${branch}`}
239
- className="inline-flex rounded-full border border-sky-200 bg-sky-50 px-2 py-0.5 text-[10px] font-mono text-sky-800"
239
+ className="inline-flex min-w-0 break-all rounded-full border border-sky-200 bg-sky-50 px-2 py-0.5 text-[10px] font-mono text-sky-800"
240
240
  >
241
241
  {branch}
242
242
  </span>