@promptbook/cli 0.113.0-8 → 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 (575) 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/chat/createAttachmentAwareCitationLabelResolver.ts +147 -0
  51. package/apps/agents-server/src/utils/chatTasksAdmin.ts +1 -1
  52. package/apps/agents-server/src/utils/externalChatRunner/processExternalUserChatJob.ts +11 -5
  53. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/GetAdminChatTasksData.ts +12 -0
  54. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/adminChatTaskSqlQuery.ts +264 -0
  55. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/adminChatTaskSqlValues.ts +35 -0
  56. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/adminChatTaskTimeUtilities.ts +30 -0
  57. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/compareAdminChatTasks.ts +135 -0
  58. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/createAdminChatTaskCounters.ts +29 -0
  59. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/filterAdminChatTasks.ts +78 -0
  60. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/getAdminChatTasksViaClientSql.ts +62 -0
  61. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/getAdminChatTasksViaSupabaseQuery.ts +29 -0
  62. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/loadAdminChatTaskFallbackData.ts +193 -0
  63. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/mapAdminChatTaskFallbackRows.ts +99 -0
  64. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/mapAdminChatTaskSqlRows.ts +94 -0
  65. package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks.ts +4 -947
  66. package/apps/agents-server/src/utils/getAdminChatTasksResponse/mapVpsSelfUpdateJobToAdminChatTask.ts +18 -5
  67. package/apps/agents-server/src/utils/getAdminChatTasksResponse.ts +57 -21
  68. package/apps/agents-server/src/utils/localChatRunner/processLocalUserChatJob.ts +20 -5
  69. package/apps/agents-server/src/utils/pagePreviewBrowserSessions.ts +13 -1
  70. package/apps/agents-server/src/utils/resourceMonitor/formatResourceMonitorValue.ts +50 -0
  71. package/apps/agents-server/src/utils/resourceMonitor/readCpuResourceUsage.ts +75 -0
  72. package/apps/agents-server/src/utils/resourceMonitor/readDiskResourceUsage.ts +42 -0
  73. package/apps/agents-server/src/utils/resourceMonitor/readMemoryResourceUsage.ts +28 -0
  74. package/apps/agents-server/src/utils/resourceMonitor/readNetworkResourceUsage.ts +271 -0
  75. package/apps/agents-server/src/utils/resourceMonitor/readServerResourceMonitorSnapshot.ts +47 -0
  76. package/apps/agents-server/src/utils/resourceMonitor/resolveServerResourceWarningStatus.ts +72 -0
  77. package/apps/agents-server/src/utils/resourceMonitor/resourceMonitorConstants.ts +29 -0
  78. package/apps/agents-server/src/utils/resourceMonitor/resourceMonitorTypes.ts +155 -0
  79. package/apps/agents-server/src/utils/resourceMonitor/waitForResourceMonitorSample.ts +11 -0
  80. package/apps/agents-server/src/utils/shibbolethAuthentication/createShibbolethSamlClient.ts +35 -0
  81. package/apps/agents-server/src/utils/shibbolethAuthentication/createShibbolethServiceProviderMetadataXml.ts +25 -0
  82. package/apps/agents-server/src/utils/shibbolethAuthentication/extractShibbolethProfileAttributes.ts +173 -0
  83. package/apps/agents-server/src/utils/shibbolethAuthentication/fetchIdentityProviderMetadataXml.ts +21 -0
  84. package/apps/agents-server/src/utils/shibbolethAuthentication/findOrCreateShibbolethUser.ts +323 -0
  85. package/apps/agents-server/src/utils/shibbolethAuthentication/getShibbolethAuthenticationAttemptTableName.ts +13 -0
  86. package/apps/agents-server/src/utils/shibbolethAuthentication/getShibbolethRequestDetails.ts +19 -0
  87. package/apps/agents-server/src/utils/shibbolethAuthentication/getShibbolethUserIdentityTableName.ts +13 -0
  88. package/apps/agents-server/src/utils/shibbolethAuthentication/parseIdentityProviderMetadataXml.ts +110 -0
  89. package/apps/agents-server/src/utils/shibbolethAuthentication/recordShibbolethAuthenticationAttempt.ts +57 -0
  90. package/apps/agents-server/src/utils/shibbolethAuthentication/resolveShibbolethAuthenticationConfiguration.ts +78 -0
  91. package/apps/agents-server/src/utils/shibbolethAuthentication/resolveShibbolethPublicRequestUrl.ts +101 -0
  92. package/apps/agents-server/src/utils/shibbolethAuthentication/resolveShibbolethServiceProviderUrls.ts +63 -0
  93. package/apps/agents-server/src/utils/shibbolethAuthentication/sanitizeShibbolethRelayState.ts +17 -0
  94. package/apps/agents-server/src/utils/shibbolethAuthentication/shibbolethAuthenticationConstants.ts +62 -0
  95. package/apps/agents-server/src/utils/shibbolethAuthentication/shibbolethAuthenticationTypes.ts +105 -0
  96. package/apps/agents-server/src/utils/shibbolethAuthentication.ts +25 -957
  97. package/apps/agents-server/src/utils/taskTerminal/resolveAdminTaskTerminalSession.ts +322 -0
  98. package/apps/agents-server/src/utils/taskTerminal/runWithTaskTerminalCapture.ts +134 -0
  99. package/apps/agents-server/src/utils/taskTerminal/taskTerminalLog.ts +360 -0
  100. package/apps/agents-server/src/utils/userChat/finalizeUserChatJob.ts +16 -0
  101. package/apps/agents-server/src/utils/userChatTimeout/userChatTimeoutStore/updateUserChatTimeoutTerminalState.ts +3 -0
  102. package/apps/agents-server/src/utils/userChatTimeout/userChatTimeoutWorker.ts +4 -1
  103. package/apps/agents-server/src/utils/vpsConfiguration.ts +4 -0
  104. package/apps/agents-server/src/utils/vpsSelfUpdate/deleteVpsSelfUpdateInstalledVersion.ts +81 -0
  105. package/apps/agents-server/src/utils/vpsSelfUpdate/listVpsSelfUpdateCandidateCommits.ts +217 -0
  106. package/apps/agents-server/src/utils/vpsSelfUpdate/readPersistedVpsSelfUpdateJob.ts +310 -0
  107. package/apps/agents-server/src/utils/vpsSelfUpdate/readVpsSelfUpdateOverview.ts +178 -0
  108. package/apps/agents-server/src/utils/vpsSelfUpdate/resolveVpsSelfUpdateJobForOverview.ts +42 -0
  109. package/apps/agents-server/src/utils/vpsSelfUpdate/startVpsSelfUpdate.ts +201 -0
  110. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateAutomaticConfiguration.ts +152 -0
  111. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateConfiguration.ts +81 -0
  112. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateCron.ts +357 -0
  113. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateEnvironment.ts +120 -0
  114. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateInstalledVersions.ts +162 -0
  115. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateJobConstants.ts +15 -0
  116. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateJobHistory.ts +387 -0
  117. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateJobIdentity.ts +26 -0
  118. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateOriginRepository.ts +90 -0
  119. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateRepository.ts +286 -0
  120. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateScheduler.ts +191 -0
  121. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateStateFiles.ts +197 -0
  122. package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateTypes.ts +452 -0
  123. package/apps/agents-server/src/utils/vpsSelfUpdate.ts +66 -1547
  124. package/esm/apps/agents-server/src/database/migratePrefix.d.ts +19 -0
  125. package/esm/apps/agents-server/src/database/runDatabaseMigrations.d.ts +4 -0
  126. package/esm/book/scripts/import-markdown/increaseHeadings.d.ts +8 -0
  127. package/esm/index.es.js +28566 -27913
  128. package/esm/index.es.js.map +1 -1
  129. package/esm/scripts/run-agent-messages/main/runMultipleAgentMessages/MultipleAgentAutoPuller.d.ts +27 -0
  130. package/esm/scripts/run-agent-messages/main/runMultipleAgentMessages/MultipleAgentGithubSynchronizer.d.ts +26 -0
  131. package/esm/scripts/run-agent-messages/main/runMultipleAgentMessages/MultipleAgentRunUiPresenter.d.ts +66 -0
  132. package/esm/scripts/run-agent-messages/main/runMultipleAgentMessages/RunMultipleAgentMessageTaskScheduler.d.ts +67 -0
  133. package/esm/scripts/run-agent-messages/main/runMultipleAgentMessages/formatProjectPath.d.ts +6 -0
  134. package/esm/scripts/run-agent-messages/main/runMultipleAgentMessages/loadLocalAgentRunnerProjectSummaries.d.ts +11 -0
  135. package/esm/scripts/run-agent-messages/main/runMultipleAgentMessages/wait.d.ts +6 -0
  136. package/esm/scripts/run-agent-messages/main/runMultipleAgentMessages.d.ts +1 -1
  137. package/esm/scripts/run-codex-prompts/runners/claude-code/ClaudeCodeRunner.d.ts +4 -0
  138. package/esm/scripts/run-codex-prompts/runners/claude-code/ClaudeCodeSessionResurrection.d.ts +37 -0
  139. package/esm/scripts/run-codex-prompts/runners/claude-code/parseClaudeCodeOutputEvents.d.ts +47 -0
  140. package/esm/scripts/run-codex-prompts/ui/CoderRunUiState.d.ts +6 -4
  141. package/esm/scripts/run-codex-prompts/ui/buildCoderRunAgentVisual.d.ts +30 -5
  142. package/esm/scripts/run-codex-prompts/ui/buildCoderRunUiFrame.d.ts +7 -1
  143. package/esm/scripts/run-codex-prompts/ui/coderRunUiRefresh.d.ts +2 -2
  144. package/esm/src/_packages/types.index.d.ts +2 -2
  145. package/esm/src/avatars/renderAvatarVisualAsciiArt.d.ts +24 -1
  146. package/esm/src/avatars/visuals/octopus3dAvatarVisualShared.d.ts +1 -1
  147. package/esm/src/book-components/BookEditor/BookEditorMonacoUploadPanel.d.ts +1 -1
  148. package/esm/src/book-components/BookEditor/useBookEditorMonacoUploads/bookEditorMonacoUploadTypes.d.ts +120 -0
  149. package/esm/src/book-components/BookEditor/useBookEditorMonacoUploads/clearScheduledTimer.d.ts +6 -0
  150. package/esm/src/book-components/BookEditor/useBookEditorMonacoUploads/enqueueFilesForUpload.d.ts +26 -0
  151. package/esm/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadEditorSync.d.ts +23 -0
  152. package/esm/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadItemsState.d.ts +21 -0
  153. package/esm/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadProgressQueue.d.ts +12 -0
  154. package/esm/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadQueue.d.ts +27 -0
  155. package/esm/src/book-components/BookEditor/useBookEditorMonacoUploads/useCompletedUploadsAutoClear.d.ts +12 -0
  156. package/esm/src/book-components/BookEditor/useBookEditorMonacoUploads.d.ts +5 -58
  157. package/esm/src/book-components/Chat/Chat/ChatImageAttachmentModal.d.ts +25 -0
  158. package/esm/src/book-components/Chat/Chat/ChatInputArea.d.ts +3 -0
  159. package/esm/src/book-components/Chat/Chat/ChatMessageAttachments.d.ts +27 -0
  160. package/esm/src/book-components/Chat/Chat/ChatMessageItem.d.ts +1 -1
  161. package/esm/src/book-components/Chat/Chat/ChatMessageList.d.ts +1 -0
  162. package/esm/src/book-components/Chat/Chat/ChatProps.d.ts +8 -0
  163. package/esm/src/book-components/Chat/Chat/useChatInputAreaComposer.d.ts +12 -0
  164. package/esm/src/book-components/Chat/Chat/useChatInputAreaComposer.draftMessage.test.d.ts +2 -0
  165. package/esm/src/book-components/Chat/utils/isVisibleChatToolCall.d.ts +1 -1
  166. package/esm/src/book-components/Chat/utils/parseMessageButtons.d.ts +16 -2
  167. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/AGENTS_SERVER_BUILD_CACHE_FILENAME.d.ts +6 -0
  168. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/AGENTS_SERVER_BUILD_CACHE_VERSION.d.ts +6 -0
  169. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/AGENTS_SERVER_NEXT_BUILD_ID_FILENAME.d.ts +6 -0
  170. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/AgentsServerBuildCache.d.ts +10 -0
  171. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/AgentsServerBuildCacheOptions.d.ts +10 -0
  172. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/NODE_MODULES_DIRECTORY_NAME.d.ts +6 -0
  173. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/PreparedAgentsServerRuntime.d.ts +18 -0
  174. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/createAgentsServerBuildSourceFingerprint.d.ts +6 -0
  175. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/createAgentsServerRuntimeEnvironment.d.ts +28 -0
  176. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/ensureAgentsServerBuild.d.ts +19 -0
  177. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/getAgentsServerBuildInputRelativePaths.d.ts +11 -0
  178. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerAppPath.d.ts +6 -0
  179. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerAppPathMaterialized.d.ts +6 -0
  180. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerBuildCacheCurrent.d.ts +7 -0
  181. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerBuildInputTestFile.d.ts +6 -0
  182. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/isExcludedAgentsServerBuildInputDirectoryName.d.ts +6 -0
  183. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/isExcludedAgentsServerBuildInputPath.d.ts +6 -0
  184. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/isExcludedAgentsServerRuntimeSourcePath.d.ts +6 -0
  185. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/isFile.d.ts +6 -0
  186. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/isPathInsideNodeModules.d.ts +6 -0
  187. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/normalizeAgentsServerBuildInputPath.d.ts +6 -0
  188. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/prepareAgentsServerRuntime.d.ts +9 -0
  189. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/readAgentsServerBuildCache.d.ts +8 -0
  190. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/resolveAgentsServerAppPath.d.ts +6 -0
  191. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/resolveAgentsServerBuildAppPath.d.ts +9 -0
  192. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/resolveAgentsServerBuildOutputPath.d.ts +7 -0
  193. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/resolveNextCliPath.d.ts +6 -0
  194. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/resolveNodeModulesPath.d.ts +6 -0
  195. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/runNextBuild.d.ts +12 -0
  196. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/shouldCopyAgentsServerRuntimePath.d.ts +6 -0
  197. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/synchronizeMaterializedAgentsServerRuntime.d.ts +11 -0
  198. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer/writeAgentsServerBuildCache.d.ts +7 -0
  199. package/esm/src/cli/cli-commands/agents-server/buildAgentsServer.d.ts +8 -109
  200. package/esm/src/cli/cli-commands/agents-server/ensureAgentsServerEnvFile.d.ts +1 -1
  201. package/esm/src/cli/cli-commands/agents-server/ensureAgentsServerGitignoreFile.d.ts +1 -1
  202. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerChildEnvironment.d.ts +16 -0
  203. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerLogStreams.d.ts +30 -0
  204. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerRuntimePaths.d.ts +19 -0
  205. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerSupervisorState.d.ts +37 -0
  206. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/LocalAgentRunnerLimits.d.ts +9 -0
  207. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/PreparedAgentsServerLaunch.d.ts +13 -0
  208. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/StartAgentsServerOptions.d.ts +24 -0
  209. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/createInternalRouteErrorMessage.d.ts +6 -0
  210. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/createLocalAgentRunOptions.d.ts +9 -0
  211. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/forwardChildOutput.d.ts +13 -0
  212. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/loadAgentsServerProjectEnvironment.d.ts +6 -0
  213. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/prepareAgentsServerLaunch.d.ts +18 -0
  214. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/readInternalRouteErrorDetails.d.ts +6 -0
  215. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/resolveAgentsServerChildHostname.d.ts +7 -0
  216. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/startNextServer.d.ts +20 -0
  217. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/startUserChatJobWorkerPump.d.ts +15 -0
  218. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/stopChildProcess.d.ts +8 -0
  219. package/esm/src/cli/cli-commands/agents-server/startAgentsServer/waitForLocalAgentRunnerLimits.d.ts +16 -0
  220. package/esm/src/cli/cli-commands/agents-server/startAgentsServer.d.ts +3 -30
  221. package/esm/src/cli/cli-commands/common/promptRunnerCliOptions.d.ts +1 -1
  222. package/esm/src/collection/agent-collection/CreateAgentInput.d.ts +1 -1
  223. package/esm/src/collection/agent-collection/constructors/agent-collection-in-supabase/prepareAgentSourceForPersistence.d.ts +1 -1
  224. package/esm/src/commitments/META/META.d.ts +2 -2
  225. package/esm/src/commitments/META_AVATAR/META_AVATAR.d.ts +9 -4
  226. package/esm/src/commitments/index.d.ts +1 -1
  227. package/esm/src/conversion/validation/validatePipeline/createPipelineValidationContext.d.ts +16 -0
  228. package/esm/src/conversion/validation/validatePipeline/validatePipelineCollectionsStructure.d.ts +7 -0
  229. package/esm/src/conversion/validation/validatePipeline/validatePipelineDependencyResolution.d.ts +7 -0
  230. package/esm/src/conversion/validation/validatePipeline/validatePipelineMetadata.d.ts +7 -0
  231. package/esm/src/conversion/validation/validatePipeline/validatePipelineParameters.d.ts +7 -0
  232. package/esm/src/conversion/validation/validatePipeline/validatePipelineTasks.d.ts +7 -0
  233. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/RegisteredLlmToolsMessageContext.d.ts +46 -0
  234. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/USED_ENV_FILENAME.d.ts +11 -0
  235. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolConfigurationStatusMessage.d.ts +7 -0
  236. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolEntryKey.d.ts +7 -0
  237. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolInstallationStatusMessage.d.ts +7 -0
  238. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolStatus.d.ts +14 -0
  239. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolsMessageContext.d.ts +7 -0
  240. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/getAvailableRegisteredLlmToolsEnvironmentVariables.d.ts +7 -0
  241. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/getRegisteredLlmToolRegisters.d.ts +7 -0
  242. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/hasRegisteredLlmToolEntry.d.ts +7 -0
  243. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/listRegisteredLlmToolEntries.d.ts +9 -0
  244. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/listRegisteredLlmToolStatuses.d.ts +7 -0
  245. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderAvailableRegisteredLlmTools.d.ts +7 -0
  246. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderNoRegisteredLlmToolsMessage.d.ts +7 -0
  247. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderRegisteredLlmToolsMessage.d.ts +8 -0
  248. package/esm/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderRelevantRegisteredLlmToolsEnvironmentVariables.d.ts +7 -0
  249. package/esm/src/utils/agents/resolveAgentAvatarImageUrl.d.ts +2 -2
  250. package/esm/src/utils/color/Color.d.ts +1 -1
  251. package/esm/src/version.d.ts +1 -1
  252. package/package.json +1 -1
  253. package/src/_packages/types.index.ts +2 -2
  254. package/src/avatars/Avatar.tsx +2 -13
  255. package/src/avatars/renderAvatarVisual.ts +2 -13
  256. package/src/avatars/renderAvatarVisualAsciiArt.ts +137 -18
  257. package/src/avatars/visuals/asciiOctopusAvatarVisual.ts +1 -6
  258. package/src/avatars/visuals/avatarVisualRegistry.ts +1 -1
  259. package/src/avatars/visuals/minecraft2AvatarVisual.ts +1 -2
  260. package/src/avatars/visuals/octopus2AvatarVisual.ts +1 -5
  261. package/src/avatars/visuals/octopus3AvatarVisual.ts +1 -8
  262. package/src/avatars/visuals/octopus3d2AvatarVisual.ts +4 -13
  263. package/src/avatars/visuals/octopus3d3AvatarVisual.ts +4 -13
  264. package/src/avatars/visuals/octopus3d4AvatarVisual.ts +4 -13
  265. package/src/avatars/visuals/octopus3dAvatarVisual.ts +3 -3
  266. package/src/avatars/visuals/octopus3dAvatarVisualShared.ts +2 -7
  267. package/src/book-2.0/agent-source/parseAgentSource/applyMetaCommitment.ts +2 -1
  268. package/src/book-2.0/book-language-documentation/createStandaloneBookLanguageMarkdown.ts +3 -5
  269. package/src/book-3.0/CliAgent.ts +1 -7
  270. package/src/book-3.0/LiteAgent.ts +5 -5
  271. package/src/book-components/AvatarProfile/AvatarProfile/AvatarProfile.tsx +1 -4
  272. package/src/book-components/BookEditor/BookEditor.tsx +2 -2
  273. package/src/book-components/BookEditor/BookEditorAboutPromptbookInformation.tsx +3 -2
  274. package/src/book-components/BookEditor/BookEditorActionbar.tsx +1 -1
  275. package/src/book-components/BookEditor/BookEditorMonaco.tsx +2 -2
  276. package/src/book-components/BookEditor/BookEditorMonacoUploadPanel.tsx +1 -1
  277. package/src/book-components/BookEditor/useBookEditorMonacoLanguage.ts +1 -1
  278. package/src/book-components/BookEditor/useBookEditorMonacoStyles.ts +1 -1
  279. package/src/book-components/BookEditor/useBookEditorMonacoUploads/bookEditorMonacoUploadTypes.ts +147 -0
  280. package/src/book-components/BookEditor/useBookEditorMonacoUploads/clearScheduledTimer.ts +10 -0
  281. package/src/book-components/BookEditor/useBookEditorMonacoUploads/enqueueFilesForUpload.ts +209 -0
  282. package/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadEditorSync.ts +164 -0
  283. package/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadItemsState.ts +121 -0
  284. package/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadProgressQueue.ts +81 -0
  285. package/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadQueue.ts +360 -0
  286. package/src/book-components/BookEditor/useBookEditorMonacoUploads/useCompletedUploadsAutoClear.ts +47 -0
  287. package/src/book-components/BookEditor/useBookEditorMonacoUploads.ts +10 -1067
  288. package/src/book-components/Chat/Chat/Chat.module.css +159 -0
  289. package/src/book-components/Chat/Chat/Chat.tsx +16 -1
  290. package/src/book-components/Chat/Chat/ChatCitationModal.tsx +2 -2
  291. package/src/book-components/Chat/Chat/ChatImageAttachmentModal.tsx +108 -0
  292. package/src/book-components/Chat/Chat/ChatInputArea.tsx +43 -27
  293. package/src/book-components/Chat/Chat/ChatMessageAttachments.tsx +212 -0
  294. package/src/book-components/Chat/Chat/ChatMessageItem.tsx +32 -18
  295. package/src/book-components/Chat/Chat/ChatMessageList.tsx +3 -0
  296. package/src/book-components/Chat/Chat/ChatProps.tsx +9 -0
  297. package/src/book-components/Chat/Chat/renderTimeoutToolCallDetails.tsx +1 -5
  298. package/src/book-components/Chat/Chat/useChatInputAreaComposer.ts +59 -7
  299. package/src/book-components/Chat/Chat/useChatInputAreaDictation.ts +7 -7
  300. package/src/book-components/Chat/Chat/useChatToolCallModalState.ts +1 -4
  301. package/src/book-components/Chat/hooks/useChatRatings.ts +1 -1
  302. package/src/book-components/Chat/save/html/htmlSaveFormatDefinition.ts +2 -3
  303. package/src/book-components/Chat/save/markdown/mdSaveFormatDefinition.ts +2 -2
  304. package/src/book-components/Chat/save/pdf/buildChatPdf.ts +1 -1
  305. package/src/book-components/Chat/utils/getToolCallChipletInfo.ts +1 -5
  306. package/src/book-components/Chat/utils/isVisibleChatToolCall.ts +2 -1
  307. package/src/book-components/Chat/utils/parseMessageButtons.ts +27 -2
  308. package/src/cli/cli-commands/about.ts +1 -1
  309. package/src/cli/cli-commands/agent/agentCliOptions.ts +2 -5
  310. package/src/cli/cli-commands/agent-folder/agentProjectPaths.ts +6 -12
  311. package/src/cli/cli-commands/agent-folder/init.ts +3 -8
  312. package/src/cli/cli-commands/agent-folder/initializeAgentProjectConfiguration.ts +2 -11
  313. package/src/cli/cli-commands/agent-folder/printAgentInitializationSummary.ts +2 -9
  314. package/src/cli/cli-commands/agents-server/buildAgentsServer/AGENTS_SERVER_BUILD_CACHE_FILENAME.ts +6 -0
  315. package/src/cli/cli-commands/agents-server/buildAgentsServer/AGENTS_SERVER_BUILD_CACHE_VERSION.ts +6 -0
  316. package/src/cli/cli-commands/agents-server/buildAgentsServer/AGENTS_SERVER_NEXT_BUILD_ID_FILENAME.ts +6 -0
  317. package/src/cli/cli-commands/agents-server/buildAgentsServer/AgentsServerBuildCache.ts +11 -0
  318. package/src/cli/cli-commands/agents-server/buildAgentsServer/AgentsServerBuildCacheOptions.ts +9 -0
  319. package/src/cli/cli-commands/agents-server/buildAgentsServer/NODE_MODULES_DIRECTORY_NAME.ts +6 -0
  320. package/src/cli/cli-commands/agents-server/buildAgentsServer/PreparedAgentsServerRuntime.ts +19 -0
  321. package/src/cli/cli-commands/agents-server/buildAgentsServer/createAgentsServerBuildSourceFingerprint.ts +71 -0
  322. package/src/cli/cli-commands/agents-server/buildAgentsServer/createAgentsServerRuntimeEnvironment.ts +69 -0
  323. package/src/cli/cli-commands/agents-server/buildAgentsServer/ensureAgentsServerBuild.ts +59 -0
  324. package/src/cli/cli-commands/agents-server/buildAgentsServer/getAgentsServerBuildInputRelativePaths.ts +23 -0
  325. package/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerAppPath.ts +20 -0
  326. package/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerAppPathMaterialized.ts +17 -0
  327. package/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerBuildCacheCurrent.ts +27 -0
  328. package/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerBuildInputTestFile.ts +21 -0
  329. package/src/cli/cli-commands/agents-server/buildAgentsServer/isExcludedAgentsServerBuildInputDirectoryName.ts +22 -0
  330. package/src/cli/cli-commands/agents-server/buildAgentsServer/isExcludedAgentsServerBuildInputPath.ts +30 -0
  331. package/src/cli/cli-commands/agents-server/buildAgentsServer/isExcludedAgentsServerRuntimeSourcePath.ts +41 -0
  332. package/src/cli/cli-commands/agents-server/buildAgentsServer/isFile.ts +14 -0
  333. package/src/cli/cli-commands/agents-server/buildAgentsServer/isPathInsideNodeModules.ts +10 -0
  334. package/src/cli/cli-commands/agents-server/buildAgentsServer/normalizeAgentsServerBuildInputPath.ts +10 -0
  335. package/src/cli/cli-commands/agents-server/buildAgentsServer/prepareAgentsServerRuntime.ts +31 -0
  336. package/src/cli/cli-commands/agents-server/buildAgentsServer/readAgentsServerBuildCache.ts +35 -0
  337. package/src/cli/cli-commands/agents-server/buildAgentsServer/resolveAgentsServerAppPath.ts +33 -0
  338. package/src/cli/cli-commands/agents-server/buildAgentsServer/resolveAgentsServerBuildAppPath.ts +30 -0
  339. package/src/cli/cli-commands/agents-server/buildAgentsServer/resolveAgentsServerBuildOutputPath.ts +19 -0
  340. package/src/cli/cli-commands/agents-server/buildAgentsServer/resolveNextCliPath.ts +21 -0
  341. package/src/cli/cli-commands/agents-server/buildAgentsServer/resolveNodeModulesPath.ts +19 -0
  342. package/src/cli/cli-commands/agents-server/buildAgentsServer/runNextBuild.ts +184 -0
  343. package/src/cli/cli-commands/agents-server/buildAgentsServer/shouldCopyAgentsServerRuntimePath.ts +48 -0
  344. package/src/cli/cli-commands/agents-server/buildAgentsServer/synchronizeMaterializedAgentsServerRuntime.ts +179 -0
  345. package/src/cli/cli-commands/agents-server/buildAgentsServer/writeAgentsServerBuildCache.ts +28 -0
  346. package/src/cli/cli-commands/agents-server/buildAgentsServer.ts +22 -1045
  347. package/src/cli/cli-commands/agents-server/ensureAgentsServerEnvFile.ts +2 -1
  348. package/src/cli/cli-commands/agents-server/ensureAgentsServerGitignoreFile.ts +2 -1
  349. package/src/cli/cli-commands/agents-server/run.ts +2 -5
  350. package/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerChildEnvironment.ts +67 -0
  351. package/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerLogStreams.ts +43 -0
  352. package/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerRuntimePaths.ts +44 -0
  353. package/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerSupervisorState.ts +59 -0
  354. package/src/cli/cli-commands/agents-server/startAgentsServer/LocalAgentRunnerLimits.ts +9 -0
  355. package/src/cli/cli-commands/agents-server/startAgentsServer/PreparedAgentsServerLaunch.ts +14 -0
  356. package/src/cli/cli-commands/agents-server/startAgentsServer/StartAgentsServerOptions.ts +26 -0
  357. package/src/cli/cli-commands/agents-server/startAgentsServer/createInternalRouteErrorMessage.ts +15 -0
  358. package/src/cli/cli-commands/agents-server/startAgentsServer/createLocalAgentRunOptions.ts +29 -0
  359. package/src/cli/cli-commands/agents-server/startAgentsServer/forwardChildOutput.ts +32 -0
  360. package/src/cli/cli-commands/agents-server/startAgentsServer/loadAgentsServerProjectEnvironment.ts +18 -0
  361. package/src/cli/cli-commands/agents-server/startAgentsServer/prepareAgentsServerLaunch.ts +81 -0
  362. package/src/cli/cli-commands/agents-server/startAgentsServer/readInternalRouteErrorDetails.ts +52 -0
  363. package/src/cli/cli-commands/agents-server/startAgentsServer/resolveAgentsServerChildHostname.ts +17 -0
  364. package/src/cli/cli-commands/agents-server/startAgentsServer/startNextServer.ts +97 -0
  365. package/src/cli/cli-commands/agents-server/startAgentsServer/startUserChatJobWorkerPump.ts +132 -0
  366. package/src/cli/cli-commands/agents-server/startAgentsServer/stopChildProcess.ts +14 -0
  367. package/src/cli/cli-commands/agents-server/startAgentsServer/waitForLocalAgentRunnerLimits.ts +132 -0
  368. package/src/cli/cli-commands/agents-server/startAgentsServer.ts +24 -797
  369. package/src/cli/cli-commands/agents-server.ts +2 -6
  370. package/src/cli/cli-commands/coder/agentCodingFile.ts +1 -7
  371. package/src/cli/cli-commands/coder/generate-boilerplates.ts +2 -6
  372. package/src/cli/cli-commands/coder/initializeCoderProjectConfiguration.ts +2 -7
  373. package/src/cli/cli-commands/coder/server.ts +4 -2
  374. package/src/cli/cli-commands/common/promptRunnerCliOptions.ts +3 -8
  375. package/src/cli/cli-commands/make.ts +1 -1
  376. package/src/cli/cli-commands/run/runCommandAction.ts +1 -1
  377. package/src/collection/agent-collection/CreateAgentInput.ts +2 -5
  378. package/src/collection/agent-collection/constructors/agent-collection-in-supabase/prepareAgentSourceForPersistence.ts +1 -1
  379. package/src/commitments/MEMORY/createMemoryToolFunctions.ts +1 -10
  380. package/src/commitments/MEMORY/getMemoryToolRuntimeAdapterOrDisabledResult.ts +1 -10
  381. package/src/commitments/MEMORY/parseMemoryToolArgs.ts +1 -6
  382. package/src/commitments/META/META.ts +4 -4
  383. package/src/commitments/META_AVATAR/META_AVATAR.ts +16 -10
  384. package/src/commitments/USE_CALENDAR/createUseCalendarToolFunctions.ts +1 -4
  385. package/src/commitments/USE_PROJECT/createUseProjectToolFunctions.ts +2 -10
  386. package/src/commitments/USE_TIMEOUT/createTimeoutToolFunctions.ts +1 -11
  387. package/src/commitments/USE_TIMEOUT/getTimeoutToolRuntimeAdapterOrDisabledResult.ts +1 -6
  388. package/src/commitments/USE_TIMEOUT/parseTimeoutToolArgs.ts +1 -6
  389. package/src/commitments/WALLET/createWalletToolFunctions.ts +2 -11
  390. package/src/commitments/WALLET/getWalletToolRuntimeAdapterOrDisabledResult.ts +1 -6
  391. package/src/commitments/WALLET/parseWalletToolArgs.ts +1 -10
  392. package/src/commitments/index.ts +1 -0
  393. package/src/conversion/parsePipeline/applyPipelineHead.ts +1 -1
  394. package/src/conversion/parsePipeline/createUniqueSectionNameResolver.ts +1 -1
  395. package/src/conversion/parsePipeline/processPipelineSection.ts +1 -1
  396. package/src/conversion/validation/validatePipeline/createPipelineValidationContext.ts +43 -0
  397. package/src/conversion/validation/validatePipeline/validatePipelineCollectionsStructure.ts +72 -0
  398. package/src/conversion/validation/validatePipeline/validatePipelineDependencyResolution.ts +220 -0
  399. package/src/conversion/validation/validatePipeline/validatePipelineMetadata.ts +66 -0
  400. package/src/conversion/validation/validatePipeline/validatePipelineParameters.ts +136 -0
  401. package/src/conversion/validation/validatePipeline/validatePipelineTasks.ts +243 -0
  402. package/src/conversion/validation/validatePipeline.ts +7 -750
  403. package/src/execution/LlmExecutionTools.ts +1 -6
  404. package/src/execution/createPipelineExecutor/getReservedParametersForTask.ts +1 -5
  405. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/RegisteredLlmToolsMessageContext.ts +51 -0
  406. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/USED_ENV_FILENAME.ts +30 -0
  407. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolConfigurationStatusMessage.ts +62 -0
  408. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolEntryKey.ts +10 -0
  409. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolInstallationStatusMessage.ts +75 -0
  410. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolStatus.ts +101 -0
  411. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolsMessageContext.ts +24 -0
  412. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/getAvailableRegisteredLlmToolsEnvironmentVariables.ts +17 -0
  413. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/getRegisteredLlmToolRegisters.ts +15 -0
  414. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/hasRegisteredLlmToolEntry.ts +19 -0
  415. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/listRegisteredLlmToolEntries.ts +44 -0
  416. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/listRegisteredLlmToolStatuses.ts +21 -0
  417. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderAvailableRegisteredLlmTools.ts +97 -0
  418. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderNoRegisteredLlmToolsMessage.ts +17 -0
  419. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderRegisteredLlmToolsMessage.ts +30 -0
  420. package/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderRelevantRegisteredLlmToolsEnvironmentVariables.ts +32 -0
  421. package/src/llm-providers/_common/register/$registeredLlmToolsMessage.ts +5 -568
  422. package/src/llm-providers/_common/utils/count-total-usage/limitTotalUsage.ts +1 -6
  423. package/src/llm-providers/openai/OpenAiAgentKitExecutionTools.ts +2 -2
  424. package/src/llm-providers/openai/OpenAiAssistantExecutionTools.ts +1 -1
  425. package/src/llm-providers/openai/OpenAiAssistantExecutionToolsStreamRunner.ts +2 -2
  426. package/src/llm-providers/openai/OpenAiAssistantExecutionToolsToolRunner.ts +1 -1
  427. package/src/llm-providers/openai/OpenAiCompatibleExecutionTools.ts +2 -7
  428. package/src/llm-providers/openai/utils/OpenAiCompatibleChatPromptBuilder.ts +1 -1
  429. package/src/llm-providers/openai/utils/OpenAiCompatibleChatToolCaller.ts +2 -2
  430. package/src/llm-providers/openai/utils/OpenAiCompatibleUnsupportedParameterRetrier.ts +1 -5
  431. package/src/llm-providers/openai/utils/buildToolInvocationScript.ts +1 -6
  432. package/src/other/templates/getTemplatesPipelineCollection.ts +692 -774
  433. package/src/remote-server/startRemoteServer/registerExecutionRoutes.ts +1 -1
  434. package/src/remote-server/startRemoteServer/registerServerIndexRoute.ts +1 -1
  435. package/src/scrapers/_common/utils/makeKnowledgeSourceHandler.ts +1 -6
  436. package/src/speech-recognition/OpenAiSpeechRecognition.ts +1 -6
  437. package/src/transpilers/_common/prepareSdkTranspilerContext.ts +1 -4
  438. package/src/types/Prompt.ts +1 -7
  439. package/src/types/string_host.ts +1 -9
  440. package/src/types/string_pipeline_url.ts +1 -4
  441. package/src/utils/agents/resolveAgentAvatarImageUrl.ts +2 -2
  442. package/src/utils/color/Color.ts +2 -2
  443. package/src/utils/markdown/parseMarkdownSection.ts +1 -5
  444. package/src/utils/random/$randomFullnameWithColor.ts +1 -6
  445. package/src/version.ts +2 -2
  446. package/src/versions.txt +1 -0
  447. package/umd/apps/agents-server/src/database/migratePrefix.d.ts +19 -0
  448. package/umd/apps/agents-server/src/database/runDatabaseMigrations.d.ts +4 -0
  449. package/umd/book/scripts/import-markdown/increaseHeadings.d.ts +8 -0
  450. package/umd/index.umd.js +28568 -27915
  451. package/umd/index.umd.js.map +1 -1
  452. package/umd/scripts/run-agent-messages/main/runMultipleAgentMessages/MultipleAgentAutoPuller.d.ts +27 -0
  453. package/umd/scripts/run-agent-messages/main/runMultipleAgentMessages/MultipleAgentGithubSynchronizer.d.ts +26 -0
  454. package/umd/scripts/run-agent-messages/main/runMultipleAgentMessages/MultipleAgentRunUiPresenter.d.ts +66 -0
  455. package/umd/scripts/run-agent-messages/main/runMultipleAgentMessages/RunMultipleAgentMessageTaskScheduler.d.ts +67 -0
  456. package/umd/scripts/run-agent-messages/main/runMultipleAgentMessages/formatProjectPath.d.ts +6 -0
  457. package/umd/scripts/run-agent-messages/main/runMultipleAgentMessages/loadLocalAgentRunnerProjectSummaries.d.ts +11 -0
  458. package/umd/scripts/run-agent-messages/main/runMultipleAgentMessages/wait.d.ts +6 -0
  459. package/umd/scripts/run-agent-messages/main/runMultipleAgentMessages.d.ts +1 -1
  460. package/umd/scripts/run-codex-prompts/runners/claude-code/ClaudeCodeRunner.d.ts +4 -0
  461. package/umd/scripts/run-codex-prompts/runners/claude-code/ClaudeCodeSessionResurrection.d.ts +37 -0
  462. package/umd/scripts/run-codex-prompts/runners/claude-code/parseClaudeCodeOutputEvents.d.ts +47 -0
  463. package/umd/scripts/run-codex-prompts/ui/CoderRunUiState.d.ts +6 -4
  464. package/umd/scripts/run-codex-prompts/ui/buildCoderRunAgentVisual.d.ts +30 -5
  465. package/umd/scripts/run-codex-prompts/ui/buildCoderRunUiFrame.d.ts +7 -1
  466. package/umd/scripts/run-codex-prompts/ui/coderRunUiRefresh.d.ts +2 -2
  467. package/umd/src/_packages/types.index.d.ts +2 -2
  468. package/umd/src/avatars/renderAvatarVisualAsciiArt.d.ts +24 -1
  469. package/umd/src/avatars/visuals/octopus3dAvatarVisualShared.d.ts +1 -1
  470. package/umd/src/book-components/BookEditor/BookEditorMonacoUploadPanel.d.ts +1 -1
  471. package/umd/src/book-components/BookEditor/useBookEditorMonacoUploads/bookEditorMonacoUploadTypes.d.ts +120 -0
  472. package/umd/src/book-components/BookEditor/useBookEditorMonacoUploads/clearScheduledTimer.d.ts +6 -0
  473. package/umd/src/book-components/BookEditor/useBookEditorMonacoUploads/enqueueFilesForUpload.d.ts +26 -0
  474. package/umd/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadEditorSync.d.ts +23 -0
  475. package/umd/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadItemsState.d.ts +21 -0
  476. package/umd/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadProgressQueue.d.ts +12 -0
  477. package/umd/src/book-components/BookEditor/useBookEditorMonacoUploads/useBookEditorMonacoUploadQueue.d.ts +27 -0
  478. package/umd/src/book-components/BookEditor/useBookEditorMonacoUploads/useCompletedUploadsAutoClear.d.ts +12 -0
  479. package/umd/src/book-components/BookEditor/useBookEditorMonacoUploads.d.ts +5 -58
  480. package/umd/src/book-components/Chat/Chat/ChatImageAttachmentModal.d.ts +25 -0
  481. package/umd/src/book-components/Chat/Chat/ChatInputArea.d.ts +3 -0
  482. package/umd/src/book-components/Chat/Chat/ChatMessageAttachments.d.ts +27 -0
  483. package/umd/src/book-components/Chat/Chat/ChatMessageItem.d.ts +1 -1
  484. package/umd/src/book-components/Chat/Chat/ChatMessageList.d.ts +1 -0
  485. package/umd/src/book-components/Chat/Chat/ChatProps.d.ts +8 -0
  486. package/umd/src/book-components/Chat/Chat/useChatInputAreaComposer.d.ts +12 -0
  487. package/umd/src/book-components/Chat/Chat/useChatInputAreaComposer.draftMessage.test.d.ts +2 -0
  488. package/umd/src/book-components/Chat/utils/isVisibleChatToolCall.d.ts +1 -1
  489. package/umd/src/book-components/Chat/utils/parseMessageButtons.d.ts +16 -2
  490. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/AGENTS_SERVER_BUILD_CACHE_FILENAME.d.ts +6 -0
  491. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/AGENTS_SERVER_BUILD_CACHE_VERSION.d.ts +6 -0
  492. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/AGENTS_SERVER_NEXT_BUILD_ID_FILENAME.d.ts +6 -0
  493. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/AgentsServerBuildCache.d.ts +10 -0
  494. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/AgentsServerBuildCacheOptions.d.ts +10 -0
  495. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/NODE_MODULES_DIRECTORY_NAME.d.ts +6 -0
  496. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/PreparedAgentsServerRuntime.d.ts +18 -0
  497. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/createAgentsServerBuildSourceFingerprint.d.ts +6 -0
  498. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/createAgentsServerRuntimeEnvironment.d.ts +28 -0
  499. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/ensureAgentsServerBuild.d.ts +19 -0
  500. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/getAgentsServerBuildInputRelativePaths.d.ts +11 -0
  501. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerAppPath.d.ts +6 -0
  502. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerAppPathMaterialized.d.ts +6 -0
  503. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerBuildCacheCurrent.d.ts +7 -0
  504. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/isAgentsServerBuildInputTestFile.d.ts +6 -0
  505. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/isExcludedAgentsServerBuildInputDirectoryName.d.ts +6 -0
  506. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/isExcludedAgentsServerBuildInputPath.d.ts +6 -0
  507. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/isExcludedAgentsServerRuntimeSourcePath.d.ts +6 -0
  508. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/isFile.d.ts +6 -0
  509. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/isPathInsideNodeModules.d.ts +6 -0
  510. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/normalizeAgentsServerBuildInputPath.d.ts +6 -0
  511. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/prepareAgentsServerRuntime.d.ts +9 -0
  512. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/readAgentsServerBuildCache.d.ts +8 -0
  513. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/resolveAgentsServerAppPath.d.ts +6 -0
  514. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/resolveAgentsServerBuildAppPath.d.ts +9 -0
  515. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/resolveAgentsServerBuildOutputPath.d.ts +7 -0
  516. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/resolveNextCliPath.d.ts +6 -0
  517. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/resolveNodeModulesPath.d.ts +6 -0
  518. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/runNextBuild.d.ts +12 -0
  519. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/shouldCopyAgentsServerRuntimePath.d.ts +6 -0
  520. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/synchronizeMaterializedAgentsServerRuntime.d.ts +11 -0
  521. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer/writeAgentsServerBuildCache.d.ts +7 -0
  522. package/umd/src/cli/cli-commands/agents-server/buildAgentsServer.d.ts +8 -109
  523. package/umd/src/cli/cli-commands/agents-server/ensureAgentsServerEnvFile.d.ts +1 -1
  524. package/umd/src/cli/cli-commands/agents-server/ensureAgentsServerGitignoreFile.d.ts +1 -1
  525. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerChildEnvironment.d.ts +16 -0
  526. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerLogStreams.d.ts +30 -0
  527. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerRuntimePaths.d.ts +19 -0
  528. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/AgentsServerSupervisorState.d.ts +37 -0
  529. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/LocalAgentRunnerLimits.d.ts +9 -0
  530. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/PreparedAgentsServerLaunch.d.ts +13 -0
  531. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/StartAgentsServerOptions.d.ts +24 -0
  532. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/createInternalRouteErrorMessage.d.ts +6 -0
  533. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/createLocalAgentRunOptions.d.ts +9 -0
  534. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/forwardChildOutput.d.ts +13 -0
  535. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/loadAgentsServerProjectEnvironment.d.ts +6 -0
  536. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/prepareAgentsServerLaunch.d.ts +18 -0
  537. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/readInternalRouteErrorDetails.d.ts +6 -0
  538. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/resolveAgentsServerChildHostname.d.ts +7 -0
  539. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/startNextServer.d.ts +20 -0
  540. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/startUserChatJobWorkerPump.d.ts +15 -0
  541. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/stopChildProcess.d.ts +8 -0
  542. package/umd/src/cli/cli-commands/agents-server/startAgentsServer/waitForLocalAgentRunnerLimits.d.ts +16 -0
  543. package/umd/src/cli/cli-commands/agents-server/startAgentsServer.d.ts +3 -30
  544. package/umd/src/cli/cli-commands/common/promptRunnerCliOptions.d.ts +1 -1
  545. package/umd/src/collection/agent-collection/CreateAgentInput.d.ts +1 -1
  546. package/umd/src/collection/agent-collection/constructors/agent-collection-in-supabase/prepareAgentSourceForPersistence.d.ts +1 -1
  547. package/umd/src/commitments/META/META.d.ts +2 -2
  548. package/umd/src/commitments/META_AVATAR/META_AVATAR.d.ts +9 -4
  549. package/umd/src/commitments/index.d.ts +1 -1
  550. package/umd/src/conversion/validation/validatePipeline/createPipelineValidationContext.d.ts +16 -0
  551. package/umd/src/conversion/validation/validatePipeline/validatePipelineCollectionsStructure.d.ts +7 -0
  552. package/umd/src/conversion/validation/validatePipeline/validatePipelineDependencyResolution.d.ts +7 -0
  553. package/umd/src/conversion/validation/validatePipeline/validatePipelineMetadata.d.ts +7 -0
  554. package/umd/src/conversion/validation/validatePipeline/validatePipelineParameters.d.ts +7 -0
  555. package/umd/src/conversion/validation/validatePipeline/validatePipelineTasks.d.ts +7 -0
  556. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/RegisteredLlmToolsMessageContext.d.ts +46 -0
  557. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/USED_ENV_FILENAME.d.ts +11 -0
  558. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolConfigurationStatusMessage.d.ts +7 -0
  559. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolEntryKey.d.ts +7 -0
  560. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolInstallationStatusMessage.d.ts +7 -0
  561. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolStatus.d.ts +14 -0
  562. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/createRegisteredLlmToolsMessageContext.d.ts +7 -0
  563. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/getAvailableRegisteredLlmToolsEnvironmentVariables.d.ts +7 -0
  564. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/getRegisteredLlmToolRegisters.d.ts +7 -0
  565. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/hasRegisteredLlmToolEntry.d.ts +7 -0
  566. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/listRegisteredLlmToolEntries.d.ts +9 -0
  567. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/listRegisteredLlmToolStatuses.d.ts +7 -0
  568. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderAvailableRegisteredLlmTools.d.ts +7 -0
  569. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderNoRegisteredLlmToolsMessage.d.ts +7 -0
  570. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderRegisteredLlmToolsMessage.d.ts +8 -0
  571. package/umd/src/llm-providers/_common/register/$registeredLlmToolsMessage/renderRelevantRegisteredLlmToolsEnvironmentVariables.d.ts +7 -0
  572. package/umd/src/utils/agents/resolveAgentAvatarImageUrl.d.ts +2 -2
  573. package/umd/src/utils/color/Color.d.ts +1 -1
  574. package/umd/src/version.d.ts +1 -1
  575. package/apps/agents-server/src/utils/userChat/createUserChatRunnerProgressCard.ts +0 -57
@@ -9,8 +9,10 @@ import { downloadBlob, parseFilenameFromContentDisposition } from '../../../util
9
9
  import { formatHumanReadableTimestamp } from './formatHumanReadableTimestamp';
10
10
  import { getUpdateJobFailureMessage } from './getUpdateJobFailureMessage';
11
11
  import { getUpdateJobSuccessMessage } from './getUpdateJobSuccessMessage';
12
+ import { UpdateDatabaseMigrationsPanel } from './UpdateDatabaseMigrationsPanel';
12
13
  import type { UpdateJobSnapshot } from './UpdateOverview';
13
14
  import type { UpdateClientState } from './useUpdateClientState';
15
+ import { UPDATE_PAGE_CARD_CLASS_NAME } from './updatePageCardClassName';
14
16
 
15
17
  /**
16
18
  * Duration (ms) of the transient "Copied!" / "Saved!" feedback shown next to log action buttons.
@@ -59,10 +61,10 @@ export function UpdateJobCard({ state, language }: UpdateJobCardProps) {
59
61
  const jobStatus = job?.status ?? 'idle';
60
62
 
61
63
  return (
62
- <Card className="hover:border-gray-200 hover:shadow-md">
63
- <div className="space-y-4">
64
+ <Card className={UPDATE_PAGE_CARD_CLASS_NAME}>
65
+ <div className="min-w-0 space-y-4">
64
66
  <div className="flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between">
65
- <div>
67
+ <div className="min-w-0">
66
68
  <h2 className="text-lg font-semibold text-slate-900">Update job</h2>
67
69
  <p className="mt-1 text-sm text-slate-500">
68
70
  The update runs in the background so the browser request can finish cleanly before pm2
@@ -74,11 +76,15 @@ export function UpdateJobCard({ state, language }: UpdateJobCardProps) {
74
76
 
75
77
  <UpdateJobSummaryGrid job={job} language={language} />
76
78
  <UpdateJobStatusMessage job={job} />
79
+ <UpdateDatabaseMigrationsPanel
80
+ databaseMigrations={job?.databaseMigrations ?? null}
81
+ isJobIdle={jobStatus === 'idle'}
82
+ />
77
83
 
78
84
  {job?.logFilePath && (
79
85
  <div className="text-xs text-slate-500">
80
86
  Installer log:
81
- <span className="ml-2 font-mono text-slate-700">{job.logFilePath}</span>
87
+ <span className="ml-2 break-all font-mono text-slate-700">{job.logFilePath}</span>
82
88
  </div>
83
89
  )}
84
90
  {job?.status === 'failed' && <UpdateJobLogActions />}
@@ -103,7 +109,7 @@ export function UpdateJobCard({ state, language }: UpdateJobCardProps) {
103
109
  function UpdateJobStatusBadge({ status }: { readonly status: UpdateJobStatus }) {
104
110
  return (
105
111
  <span
106
- className={`inline-flex items-center gap-2 rounded-full border px-3 py-1 text-xs font-semibold uppercase tracking-wide ${getUpdateJobStatusClassName(
112
+ className={`inline-flex shrink-0 items-center gap-2 rounded-full border px-3 py-1 text-xs font-semibold uppercase tracking-wide ${getUpdateJobStatusClassName(
107
113
  status,
108
114
  )}`}
109
115
  >
@@ -125,8 +131,9 @@ function UpdateJobSummaryGrid({
125
131
  readonly language: ServerLanguageCode;
126
132
  }) {
127
133
  return (
128
- <dl className="grid gap-4 text-sm text-slate-600 md:grid-cols-2 xl:grid-cols-4">
134
+ <dl className="grid min-w-0 gap-4 text-sm text-slate-600 md:grid-cols-2 xl:grid-cols-5">
129
135
  <UpdateJobMetric label="Target" value={job?.targetEnvironment.label || 'Production'} />
136
+ <UpdateJobMetric label="Trigger" value={formatUpdateJobTrigger(job)} />
130
137
  <UpdateJobMetric label="Step" value={job?.currentStep || 'Idle'} />
131
138
  <UpdateJobMetric label="Started" value={formatHumanReadableTimestamp(job?.startedAt, language)} />
132
139
  <UpdateJobMetric label="Finished" value={formatHumanReadableTimestamp(job?.finishedAt, language)} />
@@ -134,6 +141,20 @@ function UpdateJobSummaryGrid({
134
141
  );
135
142
  }
136
143
 
144
+ /**
145
+ * Formats the update job trigger for the summary grid.
146
+ *
147
+ * @param job - Latest job snapshot.
148
+ * @returns Human-readable trigger label.
149
+ */
150
+ function formatUpdateJobTrigger(job: UpdateJobSnapshot | null): string {
151
+ if (!job || job.status === 'idle') {
152
+ return 'Manual';
153
+ }
154
+
155
+ return job.trigger === 'automatic' ? 'Automatic' : 'Manual';
156
+ }
157
+
137
158
  /**
138
159
  * Renders one update job metric.
139
160
  *
@@ -141,9 +162,9 @@ function UpdateJobSummaryGrid({
141
162
  */
142
163
  function UpdateJobMetric({ label, value }: UpdateJobMetricProps) {
143
164
  return (
144
- <div className="rounded-xl border border-slate-200 bg-slate-50 px-4 py-3">
165
+ <div className="min-w-0 rounded-xl border border-slate-200 bg-slate-50 px-4 py-3">
145
166
  <dt className="text-xs font-semibold uppercase tracking-wide text-slate-500">{label}</dt>
146
- <dd className="mt-1 text-slate-900">{value}</dd>
167
+ <dd className="mt-1 break-words text-slate-900">{value}</dd>
147
168
  </div>
148
169
  );
149
170
  }
@@ -11,13 +11,54 @@ export type UpdateEnvironmentOption = {
11
11
  readonly isCustom: boolean;
12
12
  };
13
13
 
14
+ /**
15
+ * Browser-safe database migration status recorded during one self-update job.
16
+ *
17
+ * @private type of `<UpdateClient/>`
18
+ */
19
+ export type UpdateDatabaseMigrationStatus =
20
+ | 'pending'
21
+ | 'running'
22
+ | 'succeeded'
23
+ | 'failed'
24
+ | 'skipped'
25
+ | 'unknown';
26
+
27
+ /**
28
+ * Browser-safe database migration summary for one table prefix.
29
+ *
30
+ * @private type of `<UpdateClient/>`
31
+ */
32
+ export type UpdateDatabaseMigrationPrefixSummary = {
33
+ readonly prefix: string;
34
+ readonly appliedCount: number;
35
+ readonly appliedMigrationFiles: ReadonlyArray<string>;
36
+ };
37
+
38
+ /**
39
+ * Browser-safe database migration snapshot recorded during one self-update job.
40
+ *
41
+ * @private type of `<UpdateClient/>`
42
+ */
43
+ export type UpdateDatabaseMigrationSnapshot = {
44
+ readonly status: UpdateDatabaseMigrationStatus;
45
+ readonly processedPrefixes: ReadonlyArray<string>;
46
+ readonly totalMigrationFiles: number | null;
47
+ readonly perPrefix: ReadonlyArray<UpdateDatabaseMigrationPrefixSummary>;
48
+ readonly isSkippedDueToActiveMigrationLock: boolean | null;
49
+ readonly errorMessage: string | null;
50
+ readonly summaryFilePath: string | null;
51
+ };
52
+
14
53
  /**
15
54
  * Browser-safe latest update-job snapshot.
16
55
  *
17
56
  * @private type of `<UpdateClient/>`
18
57
  */
19
58
  export type UpdateJobSnapshot = {
59
+ readonly jobId: string | null;
20
60
  readonly status: 'idle' | 'running' | 'succeeded' | 'failed';
61
+ readonly trigger: 'manual' | 'automatic';
21
62
  readonly pid: number | null;
22
63
  readonly targetBranch: string | null;
23
64
  readonly targetEnvironment: UpdateEnvironmentOption;
@@ -30,6 +71,30 @@ export type UpdateJobSnapshot = {
30
71
  readonly isStale: boolean;
31
72
  readonly logTail: string | null;
32
73
  readonly logFilePath: string | null;
74
+ readonly databaseMigrations: UpdateDatabaseMigrationSnapshot;
75
+ };
76
+
77
+ /**
78
+ * Browser-safe automatic self-update configuration.
79
+ *
80
+ * @private type of `<UpdateClient/>`
81
+ */
82
+ export type AutomaticUpdateConfiguration = {
83
+ readonly isEnabled: boolean;
84
+ readonly environment: UpdateEnvironmentOption;
85
+ readonly cronExpression: string;
86
+ };
87
+
88
+ /**
89
+ * Browser-safe summary of one installed Agents Server version.
90
+ *
91
+ * @private type of `<UpdateClient/>`
92
+ */
93
+ export type UpdateInstalledVersion = {
94
+ readonly name: string;
95
+ readonly directoryPath: string;
96
+ readonly modifiedAt: string | null;
97
+ readonly isCurrent: boolean;
33
98
  };
34
99
 
35
100
  /**
@@ -69,6 +134,9 @@ export type UpdateOverview = {
69
134
  readonly originRepositoryUrl: string;
70
135
  readonly isOriginRepositoryDefault: boolean;
71
136
  readonly defaultOriginRepositoryUrl: string;
137
+ readonly automaticConfiguration: AutomaticUpdateConfiguration;
138
+ readonly installedVersions: ReadonlyArray<UpdateInstalledVersion>;
139
+ readonly garbageCollectionKeepVersionsCount: number;
72
140
  readonly job: UpdateJobSnapshot;
73
141
  readonly error?: string;
74
142
  };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Shared card styling for `/admin/update` cards that should size to their content inside stacked grids.
3
+ *
4
+ * @private constant of `/admin/update`
5
+ */
6
+ export const UPDATE_PAGE_CARD_CLASS_NAME = '!h-auto min-w-0 hover:border-gray-200 hover:shadow-md';
@@ -1,15 +1,31 @@
1
1
  'use client';
2
2
 
3
- import { useCallback, useEffect, useMemo, useState } from 'react';
3
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
4
4
  import type { CustomCommitPickerCandidate } from './CustomCommitPicker';
5
5
  import { getUpdateJobSuccessMessage } from './getUpdateJobSuccessMessage';
6
- import type { UpdateEnvironmentOption, UpdateOverview } from './UpdateOverview';
6
+ import type { AutomaticUpdateConfiguration, UpdateEnvironmentOption, UpdateOverview } from './UpdateOverview';
7
7
 
8
8
  /**
9
9
  * Interval (ms) used while polling a running standalone VPS update job.
10
10
  */
11
11
  const UPDATE_OVERVIEW_REFRESH_INTERVAL_MS = 4000;
12
12
 
13
+ /**
14
+ * Default draft shown before the update overview finishes loading.
15
+ */
16
+ const DEFAULT_AUTOMATIC_UPDATE_CRON_EXPRESSION = '0 0 * * *';
17
+
18
+ /**
19
+ * Draft state used by the automatic self-update configuration form.
20
+ *
21
+ * @private type of `useUpdateClientState`
22
+ */
23
+ type AutomaticUpdateConfigurationDraft = {
24
+ readonly isEnabled: boolean;
25
+ readonly environmentId: string;
26
+ readonly cronExpression: string;
27
+ };
28
+
13
29
  /**
14
30
  * Options for loading the standalone VPS update overview.
15
31
  *
@@ -31,6 +47,19 @@ type StartUpdateRequestBody = {
31
47
  readonly originRepositoryUrl: string | null;
32
48
  };
33
49
 
50
+ /**
51
+ * Body sent when saving automatic self-update configuration.
52
+ *
53
+ * @private type of `useUpdateClientState`
54
+ */
55
+ type SaveAutomaticUpdateConfigurationRequestBody = {
56
+ readonly automaticConfiguration: {
57
+ readonly isEnabled: boolean;
58
+ readonly environment: string;
59
+ readonly cronExpression: string;
60
+ };
61
+ };
62
+
34
63
  /**
35
64
  * Options used to build the start-update request body.
36
65
  *
@@ -66,9 +95,12 @@ export type UpdateClientState = {
66
95
  readonly selectedEnvironment: UpdateEnvironmentOption | null;
67
96
  readonly customRef: string;
68
97
  readonly originRepositoryUrlOverride: string;
98
+ readonly automaticConfigurationDraft: AutomaticUpdateConfigurationDraft;
69
99
  readonly isAdvancedExpanded: boolean;
70
100
  readonly isLoading: boolean;
71
101
  readonly isStartingUpdate: boolean;
102
+ readonly isSavingAutomaticConfiguration: boolean;
103
+ readonly deletingVersionName: string | null;
72
104
  readonly errorMessage: string | null;
73
105
  readonly successMessage: string | null;
74
106
  readonly isCustomEnvironmentSelected: boolean;
@@ -77,15 +109,18 @@ export type UpdateClientState = {
77
109
  readonly isCustomRefRelease: boolean;
78
110
  readonly isCustomRefMissing: boolean;
79
111
  readonly isOriginRepositoryUrlOverrideChanged: boolean;
112
+ readonly isAutomaticConfigurationChanged: boolean;
80
113
  readonly updateTerminalId: string;
81
114
  readonly updateTerminalEmptyState: string;
82
115
  readonly loadOverview: (options?: LoadUpdateOverviewOptions) => Promise<void>;
83
116
  readonly startUpdate: () => Promise<void>;
117
+ readonly deleteInstalledVersion: (versionName: string) => Promise<void>;
118
+ readonly saveAutomaticConfiguration: () => Promise<void>;
119
+ readonly changeAutomaticUpdateEnabled: (isEnabled: boolean) => void;
120
+ readonly selectAutomaticUpdateEnvironment: (environmentId: string) => void;
121
+ readonly changeAutomaticUpdateCronExpression: (cronExpression: string) => void;
84
122
  readonly selectEnvironment: (environmentId: string) => void;
85
- readonly selectCustomRef: (
86
- nextRef: string,
87
- matchedCandidate: CustomCommitPickerCandidate | null,
88
- ) => void;
123
+ readonly selectCustomRef: (nextRef: string, matchedCandidate: CustomCommitPickerCandidate | null) => void;
89
124
  readonly changeOriginRepositoryUrlOverride: (nextValue: string) => void;
90
125
  readonly toggleAdvanced: () => void;
91
126
  };
@@ -103,11 +138,19 @@ export function useUpdateClientState(): UpdateClientState {
103
138
  const [customRef, setCustomRef] = useState<string>('');
104
139
  const [customCandidate, setCustomCandidate] = useState<CustomCommitPickerCandidate | null>(null);
105
140
  const [originRepositoryUrlOverride, setOriginRepositoryUrlOverride] = useState<string>('');
141
+ const [automaticConfigurationDraft, setAutomaticConfigurationDraft] = useState<AutomaticUpdateConfigurationDraft>({
142
+ isEnabled: false,
143
+ environmentId: 'production',
144
+ cronExpression: DEFAULT_AUTOMATIC_UPDATE_CRON_EXPRESSION,
145
+ });
106
146
  const [isAdvancedExpanded, setIsAdvancedExpanded] = useState<boolean>(false);
107
147
  const [isLoading, setIsLoading] = useState(true);
108
148
  const [isStartingUpdate, setIsStartingUpdate] = useState(false);
149
+ const [isSavingAutomaticConfiguration, setIsSavingAutomaticConfiguration] = useState(false);
150
+ const [deletingVersionName, setDeletingVersionName] = useState<string | null>(null);
109
151
  const [errorMessage, setErrorMessage] = useState<string | null>(null);
110
152
  const [successMessage, setSuccessMessage] = useState<string | null>(null);
153
+ const isAutomaticConfigurationDirtyRef = useRef(false);
111
154
 
112
155
  const loadOverview = useCallback(async (options?: LoadUpdateOverviewOptions): Promise<void> => {
113
156
  try {
@@ -123,6 +166,9 @@ export function useUpdateClientState(): UpdateClientState {
123
166
  (currentSelectedEnvironmentId) => currentSelectedEnvironmentId || payload.currentEnvironment.id,
124
167
  );
125
168
  setOriginRepositoryUrlOverride((currentValue) => currentValue || payload.originRepositoryUrl);
169
+ if (!isAutomaticConfigurationDirtyRef.current) {
170
+ setAutomaticConfigurationDraft(createAutomaticUpdateConfigurationDraft(payload.automaticConfiguration));
171
+ }
126
172
  if (payload.job.status === 'succeeded') {
127
173
  setSuccessMessage(getUpdateJobSuccessMessage(payload.job));
128
174
  } else if (payload.job.status === 'failed') {
@@ -172,6 +218,10 @@ export function useUpdateClientState(): UpdateClientState {
172
218
  overview,
173
219
  originRepositoryUrlOverride,
174
220
  );
221
+ const isAutomaticConfigurationChanged = isAutomaticUpdateConfigurationChanged(
222
+ automaticConfigurationDraft,
223
+ overview?.automaticConfiguration ?? null,
224
+ );
175
225
  const updateTerminalId = buildUpdateTerminalId(overview);
176
226
  const updateTerminalEmptyState = getUpdateTerminalEmptyState(isLoading, overview);
177
227
 
@@ -218,6 +268,67 @@ export function useUpdateClientState(): UpdateClientState {
218
268
  selectedEnvironment,
219
269
  ]);
220
270
 
271
+ const deleteInstalledVersion = useCallback(async (versionName: string): Promise<void> => {
272
+ try {
273
+ setDeletingVersionName(versionName);
274
+ setErrorMessage(null);
275
+ setSuccessMessage(null);
276
+
277
+ const payload = await deleteInstalledVersionRequest(versionName);
278
+
279
+ setOverview(payload);
280
+ setSuccessMessage(`Deleted the installed Agents Server version ${versionName}.`);
281
+ } catch (error) {
282
+ setErrorMessage(getErrorMessage(error, 'Failed to delete the installed version.'));
283
+ } finally {
284
+ setDeletingVersionName(null);
285
+ }
286
+ }, []);
287
+
288
+ const saveAutomaticConfiguration = useCallback(async (): Promise<void> => {
289
+ try {
290
+ setIsSavingAutomaticConfiguration(true);
291
+ setErrorMessage(null);
292
+ setSuccessMessage(null);
293
+
294
+ const payload = await saveAutomaticUpdateConfiguration(automaticConfigurationDraft);
295
+
296
+ setOverview(payload);
297
+ setSelectedEnvironmentId(payload.currentEnvironment.id);
298
+ setAutomaticConfigurationDraft(createAutomaticUpdateConfigurationDraft(payload.automaticConfiguration));
299
+ isAutomaticConfigurationDirtyRef.current = false;
300
+ setSuccessMessage('Automatic self-update configuration saved.');
301
+ } catch (error) {
302
+ setErrorMessage(getErrorMessage(error, 'Failed to save automatic self-update configuration.'));
303
+ } finally {
304
+ setIsSavingAutomaticConfiguration(false);
305
+ }
306
+ }, [automaticConfigurationDraft]);
307
+
308
+ const changeAutomaticUpdateEnabled = useCallback((isEnabled: boolean): void => {
309
+ isAutomaticConfigurationDirtyRef.current = true;
310
+ setAutomaticConfigurationDraft((currentDraft) => ({
311
+ ...currentDraft,
312
+ isEnabled,
313
+ }));
314
+ }, []);
315
+
316
+ const selectAutomaticUpdateEnvironment = useCallback((environmentId: string): void => {
317
+ isAutomaticConfigurationDirtyRef.current = true;
318
+ setAutomaticConfigurationDraft((currentDraft) => ({
319
+ ...currentDraft,
320
+ environmentId,
321
+ }));
322
+ }, []);
323
+
324
+ const changeAutomaticUpdateCronExpression = useCallback((cronExpression: string): void => {
325
+ isAutomaticConfigurationDirtyRef.current = true;
326
+ setAutomaticConfigurationDraft((currentDraft) => ({
327
+ ...currentDraft,
328
+ cronExpression,
329
+ }));
330
+ }, []);
331
+
221
332
  const selectEnvironment = useCallback((environmentId: string): void => {
222
333
  setSelectedEnvironmentId(environmentId);
223
334
  }, []);
@@ -239,9 +350,12 @@ export function useUpdateClientState(): UpdateClientState {
239
350
  selectedEnvironment,
240
351
  customRef,
241
352
  originRepositoryUrlOverride,
353
+ automaticConfigurationDraft,
242
354
  isAdvancedExpanded,
243
355
  isLoading,
244
356
  isStartingUpdate,
357
+ isSavingAutomaticConfiguration,
358
+ deletingVersionName,
245
359
  errorMessage,
246
360
  successMessage,
247
361
  isCustomEnvironmentSelected,
@@ -250,10 +364,16 @@ export function useUpdateClientState(): UpdateClientState {
250
364
  isCustomRefRelease,
251
365
  isCustomRefMissing,
252
366
  isOriginRepositoryUrlOverrideChanged,
367
+ isAutomaticConfigurationChanged,
253
368
  updateTerminalId,
254
369
  updateTerminalEmptyState,
255
370
  loadOverview,
256
371
  startUpdate,
372
+ deleteInstalledVersion,
373
+ saveAutomaticConfiguration,
374
+ changeAutomaticUpdateEnabled,
375
+ selectAutomaticUpdateEnvironment,
376
+ changeAutomaticUpdateCronExpression,
257
377
  selectEnvironment,
258
378
  selectCustomRef,
259
379
  changeOriginRepositoryUrlOverride: setOriginRepositoryUrlOverride,
@@ -304,6 +424,76 @@ async function startUpdateJob(requestBody: StartUpdateRequestBody): Promise<Upda
304
424
  return payload;
305
425
  }
306
426
 
427
+ /**
428
+ * Deletes one old installed Agents Server version through the admin API.
429
+ *
430
+ * @param versionName - Release directory name to delete.
431
+ * @returns Updated overview snapshot returned by the server.
432
+ *
433
+ * @private function of `useUpdateClientState`
434
+ */
435
+ async function deleteInstalledVersionRequest(versionName: string): Promise<UpdateOverview> {
436
+ const response = await fetch('/api/admin/update/versions', {
437
+ method: 'DELETE',
438
+ headers: {
439
+ 'Content-Type': 'application/json',
440
+ },
441
+ body: JSON.stringify({ versionName }),
442
+ });
443
+ const payload = (await response.json()) as UpdateOverview;
444
+
445
+ if (!response.ok) {
446
+ throw new Error(payload.error || 'Failed to delete the installed version.');
447
+ }
448
+
449
+ return payload;
450
+ }
451
+
452
+ /**
453
+ * Saves automatic self-update configuration with the prepared API request body.
454
+ *
455
+ * @param draft - Automatic self-update form draft.
456
+ * @returns Updated overview snapshot returned by the server.
457
+ *
458
+ * @private function of `useUpdateClientState`
459
+ */
460
+ async function saveAutomaticUpdateConfiguration(draft: AutomaticUpdateConfigurationDraft): Promise<UpdateOverview> {
461
+ const response = await fetch('/api/admin/update', {
462
+ method: 'PATCH',
463
+ headers: {
464
+ 'Content-Type': 'application/json',
465
+ },
466
+ body: JSON.stringify(createSaveAutomaticUpdateConfigurationRequestBody(draft)),
467
+ });
468
+ const payload = (await response.json()) as UpdateOverview;
469
+
470
+ if (!response.ok) {
471
+ throw new Error(payload.error || 'Failed to save automatic self-update configuration.');
472
+ }
473
+
474
+ return payload;
475
+ }
476
+
477
+ /**
478
+ * Builds the PATCH body for saving automatic self-update configuration.
479
+ *
480
+ * @param draft - Automatic self-update form draft.
481
+ * @returns Request body accepted by `/api/admin/update`.
482
+ *
483
+ * @private function of `useUpdateClientState`
484
+ */
485
+ function createSaveAutomaticUpdateConfigurationRequestBody(
486
+ draft: AutomaticUpdateConfigurationDraft,
487
+ ): SaveAutomaticUpdateConfigurationRequestBody {
488
+ return {
489
+ automaticConfiguration: {
490
+ isEnabled: draft.isEnabled,
491
+ environment: draft.environmentId,
492
+ cronExpression: draft.cronExpression.trim(),
493
+ },
494
+ };
495
+ }
496
+
307
497
  /**
308
498
  * Builds the POST body for starting the update without mixing UI state decisions into the network call.
309
499
  *
@@ -328,6 +518,48 @@ function createStartUpdateRequestBody(options: CreateStartUpdateRequestBodyOptio
328
518
  };
329
519
  }
330
520
 
521
+ /**
522
+ * Creates a form draft from the persisted automatic self-update configuration.
523
+ *
524
+ * @param configuration - Persisted automatic configuration.
525
+ * @returns Form draft.
526
+ *
527
+ * @private function of `useUpdateClientState`
528
+ */
529
+ function createAutomaticUpdateConfigurationDraft(
530
+ configuration: AutomaticUpdateConfiguration,
531
+ ): AutomaticUpdateConfigurationDraft {
532
+ return {
533
+ isEnabled: configuration.isEnabled,
534
+ environmentId: configuration.environment.id,
535
+ cronExpression: configuration.cronExpression,
536
+ };
537
+ }
538
+
539
+ /**
540
+ * Returns whether the automatic self-update draft differs from the persisted configuration.
541
+ *
542
+ * @param draft - Current form draft.
543
+ * @param configuration - Persisted automatic configuration from the overview.
544
+ * @returns `true` when there are unsaved automatic self-update changes.
545
+ *
546
+ * @private function of `useUpdateClientState`
547
+ */
548
+ function isAutomaticUpdateConfigurationChanged(
549
+ draft: AutomaticUpdateConfigurationDraft,
550
+ configuration: AutomaticUpdateConfiguration | null,
551
+ ): boolean {
552
+ if (!configuration) {
553
+ return false;
554
+ }
555
+
556
+ return (
557
+ draft.isEnabled !== configuration.isEnabled ||
558
+ draft.environmentId !== configuration.environment.id ||
559
+ draft.cronExpression.trim() !== configuration.cronExpression
560
+ );
561
+ }
562
+
331
563
  /**
332
564
  * Resolves the success message shown after the update job is accepted by the server.
333
565
  *
@@ -411,7 +643,9 @@ function isOriginRepositoryUrlOverrideChangedForOverview(
411
643
  * @private function of `useUpdateClientState`
412
644
  */
413
645
  function buildUpdateTerminalId(overview: UpdateOverview | null): string {
414
- return `standalone-vps-update:${overview?.job.startedAt || overview?.job.finishedAt || overview?.job.status || 'loading'}`;
646
+ return `standalone-vps-update:${
647
+ overview?.job.startedAt || overview?.job.finishedAt || overview?.job.status || 'loading'
648
+ }`;
415
649
  }
416
650
 
417
651
  /**
@@ -19,9 +19,9 @@ import { useServerLanguage } from '../../../components/ServerLanguage/ServerLang
19
19
  import { ChatThreadLoadingSkeleton } from '../../../components/Skeleton/ChatThreadLoadingSkeleton';
20
20
  import { useSoundSystem } from '../../../components/SoundSystemProvider/SoundSystemProvider';
21
21
  import { fetchCalendarOAuthStatus, type CalendarOAuthStatusResponse } from '../../../utils/calendarOAuthClient';
22
+ import { createAttachmentAwareCitationLabelResolver } from '../../../utils/chat/createAttachmentAwareCitationLabelResolver';
22
23
  import { createDefaultChatEffects } from '../../../utils/chat/createDefaultChatEffects';
23
24
  import { executeQuickActionButton } from '../../../utils/chat/executeQuickActionButton';
24
- import { resolveAgentsServerCitationLabel } from '../../../utils/chat/resolveAgentsServerCitationLabel';
25
25
  import {
26
26
  isChatFeedbackEnabled,
27
27
  toChatComponentFeedbackMode,
@@ -144,6 +144,7 @@ export function AgentChatWrapper(props: AgentChatWrapperProps) {
144
144
  const sendMessage = useSendMessageToLlmChat();
145
145
  const [githubAppStatus, setGithubAppStatus] = useState<GithubAppStatusResponse | null>(null);
146
146
  const [calendarOAuthStatus, setCalendarOAuthStatus] = useState<CalendarOAuthStatusResponse | null>(null);
147
+ const [renderedMessages, setRenderedMessages] = useState<ReadonlyArray<ChatMessage>>([]);
147
148
  const currentAgentPermanentId = useMemo(() => {
148
149
  return typeof (agent as { permanentId?: unknown } | undefined)?.permanentId === 'string'
149
150
  ? ((agent as { permanentId?: string }).permanentId as string)
@@ -283,6 +284,19 @@ export function AgentChatWrapper(props: AgentChatWrapperProps) {
283
284
  t,
284
285
  });
285
286
 
287
+ // Track rendered messages so cited chat attachments resolve to their original filenames.
288
+ const handleChatMessagesChange = useCallback(
289
+ (messages: ReadonlyArray<ChatMessage>) => {
290
+ setRenderedMessages(messages);
291
+ handleMessagesChange(messages);
292
+ },
293
+ [handleMessagesChange],
294
+ );
295
+ const resolveCitationLabel = useMemo(
296
+ () => createAttachmentAwareCitationLabelResolver(renderedMessages),
297
+ [renderedMessages],
298
+ );
299
+
286
300
  // Handle errors from chat
287
301
  const handleError = useCallback((error: unknown, retry: () => void) => {
288
302
  if (error instanceof ClientVersionMismatchError) {
@@ -439,7 +453,7 @@ export function AgentChatWrapper(props: AgentChatWrapperProps) {
439
453
  autoExecuteMessage={effectiveAutoExecuteMessage}
440
454
  autoExecuteMessageAttachments={effectiveAutoExecuteMessageAttachments}
441
455
  persistenceKey={persistenceKey}
442
- onChange={handleMessagesChange}
456
+ onChange={handleChatMessagesChange}
443
457
  onInputTextChange={onInputTextChange}
444
458
  onActionButton={executeQuickActionButton}
445
459
  sendMessage={sendMessage}
@@ -459,7 +473,7 @@ export function AgentChatWrapper(props: AgentChatWrapperProps) {
459
473
  onReset={onStartNewChat}
460
474
  resetMode={onStartNewChat ? 'delegate' : undefined}
461
475
  teamAgentProfiles={teamAgentProfiles}
462
- resolveCitationLabel={resolveAgentsServerCitationLabel}
476
+ resolveCitationLabel={resolveCitationLabel}
463
477
  >
464
478
  {allowFileAttachments && !fileUploadAvailability.isUploadAvailable && (
465
479
  <FileUploadUnavailableNotice className="mx-4 mt-4" />
@@ -14,9 +14,9 @@ import { useServerLanguage } from '../../../../components/ServerLanguage/ServerL
14
14
  import { ChatThreadLoadingSkeleton } from '../../../../components/Skeleton/ChatThreadLoadingSkeleton';
15
15
  import { useSoundSystem } from '../../../../components/SoundSystemProvider/SoundSystemProvider';
16
16
  import { usePromptbookTheme } from '../../../../components/ThemeMode/usePromptbookTheme';
17
+ import { createAttachmentAwareCitationLabelResolver } from '../../../../utils/chat/createAttachmentAwareCitationLabelResolver';
17
18
  import { createDefaultChatEffects } from '../../../../utils/chat/createDefaultChatEffects';
18
19
  import { executeQuickActionButton } from '../../../../utils/chat/executeQuickActionButton';
19
- import { resolveAgentsServerCitationLabel } from '../../../../utils/chat/resolveAgentsServerCitationLabel';
20
20
  import { downloadChatPdfFromServer } from '../../../../utils/chatExport/downloadChatPdfFromServer';
21
21
  import {
22
22
  isChatFeedbackEnabled,
@@ -217,6 +217,10 @@ export function CanonicalAgentChatSurface({
217
217
  ),
218
218
  [activeTimeouts, cancelAction, currentTimestamp, extraActions, isReadOnly, onCancelActiveTimeout],
219
219
  );
220
+ const resolveCitationLabel = useMemo(
221
+ () => createAttachmentAwareCitationLabelResolver(state.renderedMessages),
222
+ [state.renderedMessages],
223
+ );
220
224
  const shouldRenderLoadingSkeleton = state.initialMessage === undefined && state.renderedMessages.length === 0;
221
225
  const chatElement = shouldRenderLoadingSkeleton ? (
222
226
  renderCanonicalAgentChatLoadingSkeleton()
@@ -266,7 +270,7 @@ export function CanonicalAgentChatSurface({
266
270
  teamAgentProfiles={state.teamAgentProfiles}
267
271
  extraActions={extraActionNodes}
268
272
  saveFormatHandlers={saveFormatHandlers}
269
- resolveCitationLabel={resolveAgentsServerCitationLabel}
273
+ resolveCitationLabel={resolveCitationLabel}
270
274
  theme={promptbookTheme}
271
275
  >
272
276
  {!isReadOnly && areFileAttachmentsEnabled && !fileUploadAvailability.isUploadAvailable && (