@promptbook/cli 0.114.0-5 → 0.114.0-8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agents/default/developer.book +1 -0
- package/apps/agents-server/next.config.ts +22 -0
- package/apps/agents-server/package.json +6 -6
- package/apps/agents-server/scripts/build-agents-server.js +43 -7
- package/apps/agents-server/scripts/build-e2e.js +12 -2
- package/apps/agents-server/scripts/generate-reserved-paths/generate-reserved-paths.ts +30 -16
- package/apps/agents-server/scripts/kill-port.js +163 -0
- package/apps/agents-server/scripts/run-e2e-tests.js +21 -8
- package/apps/agents-server/scripts/run-npm.js +81 -5
- package/apps/agents-server/src/app/actions.ts +3 -0
- package/apps/agents-server/src/app/admin/email-server/page.tsx +17 -18
- package/apps/agents-server/src/app/admin/task-manager/TaskManagerTaskRow.tsx +2 -0
- package/apps/agents-server/src/app/admin/task-manager/[taskId]/TaskManagerTaskDetailClient.tsx +2 -0
- package/apps/agents-server/src/app/admin/task-manager/taskManagerTaskPresentation.tsx +23 -0
- package/apps/agents-server/src/app/agents/[agentName]/api/book/route.ts +7 -0
- package/apps/agents-server/src/app/agents/[agentName]/api/timeouts/[timeoutId]/route.ts +10 -153
- package/apps/agents-server/src/app/agents/[agentName]/api/timeouts/route.ts +9 -4
- package/apps/agents-server/src/app/agents/[agentName]/api/user-chats/[chatId]/route.ts +3 -0
- package/apps/agents-server/src/app/agents/[agentName]/api/user-chats/[chatId]/stream/route.ts +2 -0
- package/apps/agents-server/src/app/agents/[agentName]/api/user-chats/resolveUserChatScope.ts +8 -1
- package/apps/agents-server/src/app/agents/[agentName]/api/user-chats/route.ts +15 -7
- package/apps/agents-server/src/app/agents/[agentName]/book/useBookEditorSaving.ts +18 -28
- package/apps/agents-server/src/app/agents/[agentName]/chat/AgentChatHistoryClient.tsx +19 -1
- package/apps/agents-server/src/app/agents/[agentName]/chat/AgentChatSidebarDefault.tsx +17 -5
- package/apps/agents-server/src/app/agents/[agentName]/chat/AgentGoalChatNotice.tsx +23 -0
- package/apps/agents-server/src/app/agents/[agentName]/chat/AgentGoalChatPlannedMessages.tsx +153 -0
- package/apps/agents-server/src/app/agents/[agentName]/chat/CanonicalAgentChatPanel.tsx +6 -0
- package/apps/agents-server/src/app/agents/[agentName]/chat/CanonicalAgentChatSurface.tsx +13 -0
- package/apps/agents-server/src/app/agents/[agentName]/chat/ExternalUserChatAdminActions.tsx +51 -3
- package/apps/agents-server/src/app/agents/[agentName]/chat/TeamMemberFrozenChatPrimaryAgentLink.tsx +31 -0
- package/apps/agents-server/src/app/agents/[agentName]/chat/useAgentChatSidebarState.ts +26 -2
- package/apps/agents-server/src/app/agents/[agentName]/goal/page.tsx +35 -0
- package/apps/agents-server/src/app/agents/[agentName]/projects/[projectName]/page.tsx +2 -2
- package/apps/agents-server/src/app/api/admin/dns-records/cloudflare/route.ts +26 -16
- package/apps/agents-server/src/app/api/emails/incoming/stalwart/route.ts +9 -2
- package/apps/agents-server/src/app/superadmin/servers/ServersRegistryTable.tsx +31 -39
- package/apps/agents-server/src/components/AgentProfile/AgentProfile.tsx +10 -3
- package/apps/agents-server/src/components/AgentProjects/AgentProjectIcon.tsx +137 -0
- package/apps/agents-server/src/components/AgentProjects/AgentProjectItem.tsx +26 -10
- package/apps/agents-server/src/components/CloudflareDnsWizard/CloudflareDnsApiTokenImportStep.tsx +5 -6
- package/apps/agents-server/src/components/CloudflareDnsWizard/CloudflareDnsCheckStep.tsx +6 -5
- package/apps/agents-server/src/components/CloudflareDnsWizard/CloudflareDnsManualStep.tsx +10 -14
- package/apps/agents-server/src/components/CloudflareDnsWizard/CloudflareDnsWizard.tsx +11 -20
- package/apps/agents-server/src/components/CloudflareDnsWizard/useCloudflareDnsRecordImport.ts +5 -6
- package/apps/agents-server/src/components/DnsRecordsInstructions/DnsRecordsInstructions.tsx +91 -57
- package/apps/agents-server/src/components/DnsRecordsInstructions/DnsRecordsSectionPanel.tsx +63 -0
- package/apps/agents-server/src/components/DnsRecordsInstructions/DnsRecordsSectionVariantTabs.tsx +67 -0
- package/apps/agents-server/src/components/DnsRecordsInstructions/DnsRecordsTable.tsx +40 -0
- package/apps/agents-server/src/components/Header/buildActiveAgentViewItems.ts +5 -4
- package/apps/agents-server/src/components/Header/createAgentViewLabel.tsx +4 -4
- package/apps/agents-server/src/components/Header/resolveActiveAgentNavigation.ts +2 -2
- package/apps/agents-server/src/components/Homepage/useAgentsListImportExportState.ts +22 -10
- package/apps/agents-server/src/components/_utils/generateMetaTxt.ts +1 -1
- package/apps/agents-server/src/database/migratePrefix.ts +13 -12
- package/apps/agents-server/src/database/migrations/2026-08-0100-agent-goal-chat-source.sql +10 -0
- package/apps/agents-server/src/generated/reservedPaths.ts +42 -42
- package/apps/agents-server/src/languages/ServerTranslationKeys.ts +9 -1
- package/apps/agents-server/src/languages/translations/czech.yaml +9 -1
- package/apps/agents-server/src/languages/translations/english.yaml +9 -1
- package/apps/agents-server/src/message-providers/email/stalwart/parseInboundStalwartEmail.ts +17 -2
- package/apps/agents-server/src/utils/agentGoalChat/agentGoalChatConstants.ts +9 -0
- package/apps/agents-server/src/utils/agentGoalChat/agentGoalChatIdentity.ts +28 -0
- package/apps/agents-server/src/utils/agentGoalChat/appendAgentGoalChatNote.ts +43 -0
- package/apps/agents-server/src/utils/agentGoalChat/canAccessAgentGoalChat.ts +14 -0
- package/apps/agents-server/src/utils/agentGoalChat/createAgentGoalChatNoteContent.ts +69 -0
- package/apps/agents-server/src/utils/agentGoalChat/ensureAgentGoalChat.ts +66 -0
- package/apps/agents-server/src/utils/agentGoalChat/prependAgentGoalChatSummarySeed.ts +40 -0
- package/apps/agents-server/src/utils/agentGoalChat/recordAgentGoalChatLifecycleNote.ts +36 -0
- package/apps/agents-server/src/utils/agentGoalChat/resolveAgentGoalChatOwnerUserId.ts +104 -0
- package/apps/agents-server/src/utils/agentGoalChat/scheduleAgentGoalChatModifiedNote.ts +82 -0
- package/apps/agents-server/src/utils/agentGoalChat.ts +19 -0
- package/apps/agents-server/src/utils/agentProjects/AgentProjectInfo.ts +10 -1
- package/apps/agents-server/src/utils/agentProjects/AgentProjectReferenceInfo.ts +5 -2
- package/apps/agents-server/src/utils/agentProjects/agentProjectFileNames.ts +21 -0
- package/apps/agents-server/src/utils/agentProjects/agentProjectHrefs.ts +20 -11
- package/apps/agents-server/src/utils/agentProjects/agentProjectsPaths.ts +15 -5
- package/apps/agents-server/src/utils/agentProjects/createAgentProjectInitials.ts +36 -0
- package/apps/agents-server/src/utils/agentProjects/createAgentProjectMarkdownReferences.ts +11 -9
- package/apps/agents-server/src/utils/agentProjects/createAgentProjectsDnsRecordsSection.ts +113 -0
- package/apps/agents-server/src/utils/agentProjects/createStaticAgentProjectServer.ts +2 -6
- package/apps/agents-server/src/utils/agentProjects/humanizeAgentProjectName.ts +25 -0
- package/apps/agents-server/src/utils/agentProjects/listAgentProjectChatReferences.ts +10 -3
- package/apps/agents-server/src/utils/agentProjects/parseAgentProjectIndexHtml.ts +167 -0
- package/apps/agents-server/src/utils/agentProjects/readAgentProjectIndexHtmlProfile.ts +24 -0
- package/apps/agents-server/src/utils/agentProjects/readAgentProjectReadme.ts +3 -53
- package/apps/agents-server/src/utils/agentProjects/readAgentProjectRootTextFile.ts +73 -0
- package/apps/agents-server/src/utils/agentProjects/resolveAgentProjectFaviconRelativePath.ts +108 -0
- package/apps/agents-server/src/utils/agentProjects/resolveAgentProjectInfo.ts +12 -3
- package/apps/agents-server/src/utils/agentProjects/{resolveAgentProjectReadmeProfile.ts → resolveAgentProjectProfile.ts} +33 -33
- package/apps/agents-server/src/utils/agentProjects/resolveAgentProjectPublicUrls.ts +34 -0
- package/apps/agents-server/src/utils/bookLanguageDocumentation/createBookLanguageDocumentationPdfResponse.ts +19 -17
- package/apps/agents-server/src/utils/chatTasksAdmin.ts +9 -0
- package/apps/agents-server/src/utils/dnsRecords/DnsRecordInstruction.ts +20 -0
- package/apps/agents-server/src/utils/dnsRecords/DnsRecordsSection.ts +77 -0
- package/apps/agents-server/src/utils/dnsRecords/createServerDnsRecordsSections.ts +58 -0
- package/apps/agents-server/src/utils/dnsRecords/createServerDomainDnsRecordsSection.ts +48 -0
- package/apps/agents-server/src/utils/dnsRecords/dnsRecordGroups.ts +52 -0
- package/apps/agents-server/src/utils/dnsRecords/resolveDnsRecordBatchPlan.ts +47 -1
- package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/adminChatTaskSqlQuery.ts +41 -36
- package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/mapAdminChatTaskFallbackRows.ts +3 -0
- package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/mapAdminChatTaskSqlRows.ts +2 -0
- package/apps/agents-server/src/utils/localChatRunner/parseLocalTeamConversations.ts +281 -0
- package/apps/agents-server/src/utils/localChatRunner/persistLocalTeamConversations.ts +71 -0
- package/apps/agents-server/src/utils/localChatRunner/prepareLocalTeamConversationWorkspace.ts +233 -0
- package/apps/agents-server/src/utils/localChatRunner/processLocalUserChatJob.ts +37 -6
- package/apps/agents-server/src/utils/serverManagement/createManagedServer/insertManagedServerRegistryRow.ts +2 -2
- package/apps/agents-server/src/utils/serverManagement/createManagedServer/seedServerCoreAgents.ts +7 -6
- package/apps/agents-server/src/utils/serverManagement/createManagedServer/seedServerDefaultAgents.ts +5 -4
- package/apps/agents-server/src/utils/serverManagement/createManagedServer/seedServerMetadata.ts +3 -2
- package/apps/agents-server/src/utils/serverManagement/createManagedServer/seedServerUsers.ts +3 -2
- package/apps/agents-server/src/utils/serverManagement/deleteManagedServer.ts +2 -2
- package/apps/agents-server/src/utils/stalwart/createEmailDnsRecordsSection.ts +53 -0
- package/apps/agents-server/src/utils/userChat/UserChatRecord.ts +13 -0
- package/apps/agents-server/src/utils/userChat/UserChatSource.ts +14 -0
- package/apps/agents-server/src/utils/userChat/createUserChatSummary.ts +10 -2
- package/apps/agents-server/src/utils/userChat/finalizeUserChatJob.ts +3 -2
- package/apps/agents-server/src/utils/userChat/getUserChat.ts +16 -1
- package/apps/agents-server/src/utils/userChat/getUserChatForJobRunner.ts +31 -0
- package/apps/agents-server/src/utils/userChat/listUserChats.ts +113 -110
- package/apps/agents-server/src/utils/userChat/persistFrozenUserChat.ts +21 -6
- package/apps/agents-server/src/utils/userChat/runImmediateUserChatAnswer.ts +2 -6
- package/apps/agents-server/src/utils/userChat/runUserChatJob.ts +2 -6
- package/apps/agents-server/src/utils/userChat/teamMemberUserChatContext.ts +63 -0
- package/apps/agents-server/src/utils/userChat.ts +5 -1
- package/apps/agents-server/src/utils/userChatClient/cancelAgentUserTimeout.ts +2 -2
- package/apps/agents-server/src/utils/userChatClient/fetchAgentUserTimeouts.ts +2 -2
- package/apps/agents-server/src/utils/userChatClient.ts +9 -31
- package/apps/agents-server/src/utils/userChatTimeout/UserChatTimeoutRecord.ts +10 -2
- package/apps/agents-server/src/utils/userChatTimeout/userChatTimeoutStore/claimNextDueUserChatTimeout.ts +28 -25
- package/apps/agents-server/src/utils/userChatTimeout/userChatTimeoutStore/getAgentScopedUserChatTimeout.ts +8 -4
- package/apps/agents-server/src/utils/userChatTimeout/userChatTimeoutStore/listAgentUserChatTimeouts.ts +4 -1
- package/apps/agents-server/src/utils/userChatTimeout/userChatTimeoutStore/recoverExpiredRunningUserChatTimeouts.ts +3 -2
- package/apps/agents-server/src/utils/userChatTimeout/userChatTimeoutWorker.ts +53 -0
- package/esm/index.es.js +1534 -401
- package/esm/index.es.js.map +1 -1
- package/esm/scripts/run-agent-messages/messages/buildAgentMessagePrompt.d.ts +7 -1
- package/esm/scripts/run-agent-messages/messages/buildAgentTeamPromptSection.d.ts +12 -0
- package/esm/scripts/run-agent-messages/messages/finalizeAgentTeamConversationWorkspace.d.ts +16 -0
- package/esm/scripts/run-agent-messages/messages/loadAgentTeamConversationWorkspace.d.ts +6 -0
- package/esm/scripts/run-codex-prompts/common/normalizeLineEndingsInChangedFiles.d.ts +2 -3
- package/esm/scripts/run-codex-prompts/git/coderCommitScope.d.ts +31 -0
- package/esm/scripts/run-codex-prompts/git/coderGitSync.d.ts +15 -2
- package/esm/scripts/run-codex-prompts/git/commitChanges.d.ts +9 -3
- package/esm/scripts/run-codex-prompts/git/workingTreeChanges.d.ts +40 -0
- package/esm/scripts/run-codex-prompts/server/coderServerHtml.d.ts +1 -1
- package/esm/scripts/run-codex-prompts/ui/buildCoderRunAgentVisual.d.ts +5 -5
- package/esm/scripts/run-codex-prompts/ui/buildCoderRunUiTerminalFrameUpdate.d.ts +27 -0
- package/esm/src/avatars/renderAvatarVisualTerminalText.d.ts +80 -0
- package/esm/src/avatars/types/AvatarVisualDefinition.d.ts +54 -0
- package/esm/src/book-3.0/AgentTeamConversationWorkspace.d.ts +85 -0
- package/esm/src/book-components/Chat/Chat/ChatProps.d.ts +3 -2
- package/esm/src/book-components/Chat/utils/renderMarkdown.d.ts +12 -3
- package/esm/src/cli/cli-commands/coder/boilerplateCount.d.ts +1 -1
- package/esm/src/cli/cli-commands/coder/generate-boilerplates.d.ts +1 -1
- package/esm/src/cli/cli-commands/common/{harness/$askForHarnessInstallationApproval.d.ts → npm/$askForNpmPackageInstallationApproval.d.ts} +2 -2
- package/{umd/src/cli/cli-commands/common/harness/$resolveLatestHarnessVersion.d.ts → esm/src/cli/cli-commands/common/npm/$resolveLatestNpmPackageVersion.d.ts} +2 -3
- package/esm/src/cli/cli-commands/common/npm/extractNpmPackageVersionFromOutput.d.ts +12 -0
- package/esm/src/cli/cli-commands/common/npm/isNpmPackageVersionOutdated.d.ts +9 -0
- package/esm/src/cli/cli-commands/common/promptbook-cli/$checkPromptbookCliInstallations.d.ts +9 -0
- package/esm/src/cli/cli-commands/common/promptbook-cli/$ensurePromptbookCliInstallations.d.ts +14 -0
- package/esm/src/cli/cli-commands/common/promptbook-cli/$ensurePromptbookCliInstallations.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/common/promptbook-cli/$resolvePromptbookCliInstallations.d.ts +12 -0
- package/esm/src/cli/cli-commands/common/promptbook-cli/$resolvePromptbookCliInstallations.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/common/promptbook-cli/$updatePromptbookCliInstallation.d.ts +10 -0
- package/esm/src/cli/cli-commands/common/promptbook-cli/PromptbookCliInstallation.d.ts +39 -0
- package/esm/src/cli/cli-commands/common/promptbook-cli/PromptbookCliInstallationStatus.d.ts +26 -0
- package/esm/src/cli/cli-commands/common/promptbook-cli/buildPromptbookCliInstallCommand.d.ts +7 -0
- package/esm/src/cli/cli-commands/common/promptbook-cli/buildPromptbookCliInstallCommand.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/common/promptbook-cli/formatPromptbookCliInstallationWarning.d.ts +7 -0
- package/esm/src/utils/agent-message-runtime/resolveAgentMessageRuntimeActivity.d.ts +3 -3
- package/esm/src/utils/agents/terminalAgentAvatarVisual.d.ts +5 -2
- package/esm/src/utils/ascii-art/convertImageDataToAsciiArt.d.ts +6 -0
- package/esm/src/utils/ascii-art/createAnsiColorCode.d.ts +46 -0
- package/esm/src/utils/misc/debounce.d.ts +4 -2
- package/esm/src/utils/misc/debounce.test.d.ts +1 -0
- package/esm/src/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/avatars/renderAvatarVisualTerminalText.ts +249 -0
- package/src/avatars/types/AvatarVisualDefinition.ts +60 -0
- package/src/avatars/visuals/asciiOctopusAvatarVisual.ts +144 -22
- package/src/book-2.0/book-language-documentation/createStandaloneBookLanguageMarkdown.ts +4 -4
- package/src/book-2.0/book-language-documentation/renderCommitmentCatalogSection.ts +1 -4
- package/src/book-2.0/book-language-documentation/renderGroupedCommitmentDocumentationMarkdown.ts +4 -17
- package/src/book-3.0/AgentTeamConversationWorkspace.ts +172 -0
- package/src/book-components/BookEditor/useBookEditorMonacoStyles.ts +56 -55
- package/src/book-components/Chat/Chat/Chat.module.css +1 -8
- package/src/book-components/Chat/Chat/ChatMessageMap.tsx +8 -4
- package/src/book-components/Chat/Chat/ChatProps.tsx +3 -2
- package/src/book-components/Chat/MarkdownContent/MarkdownContent.module.css +14 -14
- package/src/book-components/Chat/save/react/exports/chat-preview-2025-10-13 (1).jsx +95 -5
- package/src/book-components/Chat/utils/renderMarkdown.ts +535 -89
- package/src/cli/cli-commands/coder/add.ts +3 -3
- package/src/cli/cli-commands/coder/boilerplateCount.ts +1 -1
- package/src/cli/cli-commands/coder/generate-boilerplates.ts +27 -27
- package/src/cli/cli-commands/coder/getDefaultCoderPackageJsonScripts.ts +5 -4
- package/src/cli/cli-commands/coder/init.ts +3 -3
- package/src/cli/cli-commands/coder/run.ts +10 -2
- package/src/cli/cli-commands/common/coderGitSyncCliOptions.ts +6 -2
- package/src/cli/cli-commands/common/harness/$applyHarnessInstallationStatus.ts +2 -2
- package/src/cli/cli-commands/common/harness/$checkHarnessInstallation.ts +4 -4
- package/src/cli/cli-commands/common/harness/$resolveInstalledHarnessVersion.ts +2 -2
- package/src/cli/cli-commands/common/{harness/$askForHarnessInstallationApproval.ts → npm/$askForNpmPackageInstallationApproval.ts} +3 -3
- package/src/cli/cli-commands/common/npm/$resolveLatestNpmPackageVersion.ts +49 -0
- package/src/cli/cli-commands/common/npm/extractNpmPackageVersionFromOutput.ts +25 -0
- package/src/cli/cli-commands/common/{harness/isHarnessVersionOutdated.ts → npm/isNpmPackageVersionOutdated.ts} +6 -4
- package/src/cli/cli-commands/common/projectInitialization.ts +10 -1
- package/src/cli/cli-commands/common/promptbook-cli/$checkPromptbookCliInstallations.ts +73 -0
- package/src/cli/cli-commands/common/promptbook-cli/$ensurePromptbookCliInstallations.ts +94 -0
- package/src/cli/cli-commands/common/promptbook-cli/$resolvePromptbookCliInstallations.ts +223 -0
- package/src/cli/cli-commands/common/promptbook-cli/$updatePromptbookCliInstallation.ts +53 -0
- package/src/cli/cli-commands/common/promptbook-cli/PromptbookCliInstallation.ts +46 -0
- package/src/cli/cli-commands/common/promptbook-cli/PromptbookCliInstallationStatus.ts +32 -0
- package/src/cli/cli-commands/common/promptbook-cli/buildPromptbookCliInstallCommand.ts +22 -0
- package/src/cli/cli-commands/common/promptbook-cli/formatPromptbookCliInstallationWarning.ts +47 -0
- package/src/commands/FORMAT/formatCommandParser.ts +2 -2
- package/src/llm-providers/openai/utils/buildToolInvocationScript.ts +21 -18
- package/src/other/templates/getTemplatesPipelineCollection.ts +866 -686
- package/src/utils/agent-message-runtime/resolveAgentMessageRuntimeActivity.ts +80 -27
- package/src/utils/agents/terminalAgentAvatarVisual.ts +31 -3
- package/src/utils/ascii-art/convertImageDataToAsciiArt.ts +9 -109
- package/src/utils/ascii-art/createAnsiColorCode.ts +132 -0
- package/src/utils/misc/debounce.ts +26 -5
- package/src/version.ts +2 -2
- package/src/versions.txt +2 -0
- package/umd/index.umd.js +1533 -400
- package/umd/index.umd.js.map +1 -1
- package/umd/scripts/run-agent-messages/messages/buildAgentMessagePrompt.d.ts +7 -1
- package/umd/scripts/run-agent-messages/messages/buildAgentTeamPromptSection.d.ts +12 -0
- package/umd/scripts/run-agent-messages/messages/finalizeAgentTeamConversationWorkspace.d.ts +16 -0
- package/umd/scripts/run-agent-messages/messages/loadAgentTeamConversationWorkspace.d.ts +6 -0
- package/umd/scripts/run-codex-prompts/common/normalizeLineEndingsInChangedFiles.d.ts +2 -3
- package/umd/scripts/run-codex-prompts/git/coderCommitScope.d.ts +31 -0
- package/umd/scripts/run-codex-prompts/git/coderGitSync.d.ts +15 -2
- package/umd/scripts/run-codex-prompts/git/commitChanges.d.ts +9 -3
- package/umd/scripts/run-codex-prompts/git/workingTreeChanges.d.ts +40 -0
- package/umd/scripts/run-codex-prompts/server/coderServerHtml.d.ts +1 -1
- package/umd/scripts/run-codex-prompts/ui/buildCoderRunAgentVisual.d.ts +5 -5
- package/umd/scripts/run-codex-prompts/ui/buildCoderRunUiTerminalFrameUpdate.d.ts +27 -0
- package/umd/src/avatars/renderAvatarVisualTerminalText.d.ts +80 -0
- package/umd/src/avatars/renderAvatarVisualTerminalText.test.d.ts +1 -0
- package/umd/src/avatars/types/AvatarVisualDefinition.d.ts +54 -0
- package/umd/src/book-3.0/AgentTeamConversationWorkspace.d.ts +85 -0
- package/umd/src/book-components/Chat/Chat/ChatProps.d.ts +3 -2
- package/umd/src/book-components/Chat/utils/renderMarkdown.d.ts +12 -3
- package/umd/src/cli/cli-commands/coder/boilerplateCount.d.ts +1 -1
- package/umd/src/cli/cli-commands/coder/generate-boilerplates.d.ts +1 -1
- package/umd/src/cli/cli-commands/common/{harness/$askForHarnessInstallationApproval.d.ts → npm/$askForNpmPackageInstallationApproval.d.ts} +2 -2
- package/{esm/src/cli/cli-commands/common/harness/$resolveLatestHarnessVersion.d.ts → umd/src/cli/cli-commands/common/npm/$resolveLatestNpmPackageVersion.d.ts} +2 -3
- package/umd/src/cli/cli-commands/common/npm/$resolveLatestNpmPackageVersion.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/npm/extractNpmPackageVersionFromOutput.d.ts +12 -0
- package/umd/src/cli/cli-commands/common/npm/extractNpmPackageVersionFromOutput.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/npm/isNpmPackageVersionOutdated.d.ts +9 -0
- package/umd/src/cli/cli-commands/common/npm/isNpmPackageVersionOutdated.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/promptbook-cli/$checkPromptbookCliInstallations.d.ts +9 -0
- package/umd/src/cli/cli-commands/common/promptbook-cli/$ensurePromptbookCliInstallations.d.ts +14 -0
- package/umd/src/cli/cli-commands/common/promptbook-cli/$ensurePromptbookCliInstallations.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/promptbook-cli/$resolvePromptbookCliInstallations.d.ts +12 -0
- package/umd/src/cli/cli-commands/common/promptbook-cli/$resolvePromptbookCliInstallations.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/promptbook-cli/$updatePromptbookCliInstallation.d.ts +10 -0
- package/umd/src/cli/cli-commands/common/promptbook-cli/PromptbookCliInstallation.d.ts +39 -0
- package/umd/src/cli/cli-commands/common/promptbook-cli/PromptbookCliInstallationStatus.d.ts +26 -0
- package/umd/src/cli/cli-commands/common/promptbook-cli/buildPromptbookCliInstallCommand.d.ts +7 -0
- package/umd/src/cli/cli-commands/common/promptbook-cli/buildPromptbookCliInstallCommand.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/common/promptbook-cli/formatPromptbookCliInstallationWarning.d.ts +7 -0
- package/umd/src/utils/agent-message-runtime/resolveAgentMessageRuntimeActivity.d.ts +3 -3
- package/umd/src/utils/agents/terminalAgentAvatarVisual.d.ts +5 -2
- package/umd/src/utils/ascii-art/convertImageDataToAsciiArt.d.ts +6 -0
- package/umd/src/utils/ascii-art/createAnsiColorCode.d.ts +46 -0
- package/umd/src/utils/misc/debounce.d.ts +4 -2
- package/umd/src/utils/misc/debounce.test.d.ts +1 -0
- package/umd/src/version.d.ts +1 -1
- package/apps/agents-server/scripts/ignore-kill-eperm.js +0 -31
- package/apps/agents-server/src/app/agents/[agentName]/api/timeouts/actions/route.ts +0 -103
- package/apps/agents-server/src/app/agents/[agentName]/timeouts/AgentTimeoutsClient.tsx +0 -43
- package/apps/agents-server/src/app/agents/[agentName]/timeouts/AgentTimeoutsEditDialog.tsx +0 -98
- package/apps/agents-server/src/app/agents/[agentName]/timeouts/AgentTimeoutsFiltersCard.tsx +0 -75
- package/apps/agents-server/src/app/agents/[agentName]/timeouts/AgentTimeoutsHeader.tsx +0 -53
- package/apps/agents-server/src/app/agents/[agentName]/timeouts/AgentTimeoutsSummaryMetrics.tsx +0 -70
- package/apps/agents-server/src/app/agents/[agentName]/timeouts/AgentTimeoutsTableCard.tsx +0 -58
- package/apps/agents-server/src/app/agents/[agentName]/timeouts/AgentTimeoutsTableRow.tsx +0 -242
- package/apps/agents-server/src/app/agents/[agentName]/timeouts/loading.tsx +0 -15
- package/apps/agents-server/src/app/agents/[agentName]/timeouts/page.tsx +0 -28
- package/apps/agents-server/src/app/agents/[agentName]/timeouts/useAgentTimeoutsClientState.ts +0 -769
- package/apps/agents-server/src/components/AgentProjectDnsInstructions/AgentProjectDnsInstructions.tsx +0 -182
- package/apps/agents-server/src/utils/userChatClient/runAgentUserTimeoutBulkAction.ts +0 -24
- package/apps/agents-server/src/utils/userChatClient/updateAgentUserTimeout.ts +0 -25
- package/esm/src/cli/cli-commands/common/harness/extractHarnessVersionFromOutput.d.ts +0 -11
- package/esm/src/cli/cli-commands/common/harness/isHarnessVersionOutdated.d.ts +0 -9
- package/src/cli/cli-commands/common/harness/$resolveLatestHarnessVersion.ts +0 -34
- package/src/cli/cli-commands/common/harness/extractHarnessVersionFromOutput.ts +0 -28
- package/umd/src/cli/cli-commands/common/harness/extractHarnessVersionFromOutput.d.ts +0 -11
- package/umd/src/cli/cli-commands/common/harness/isHarnessVersionOutdated.d.ts +0 -9
- /package/esm/src/{cli/cli-commands/common/harness/extractHarnessVersionFromOutput.test.d.ts → avatars/renderAvatarVisualTerminalText.test.d.ts} +0 -0
- /package/esm/src/cli/cli-commands/common/{harness/isHarnessVersionOutdated.test.d.ts → npm/$resolveLatestNpmPackageVersion.test.d.ts} +0 -0
- /package/{umd/src/cli/cli-commands/common/harness/extractHarnessVersionFromOutput.test.d.ts → esm/src/cli/cli-commands/common/npm/extractNpmPackageVersionFromOutput.test.d.ts} +0 -0
- /package/{umd/src/cli/cli-commands/common/harness/isHarnessVersionOutdated.test.d.ts → esm/src/cli/cli-commands/common/npm/isNpmPackageVersionOutdated.test.d.ts} +0 -0
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import type { useAgentTimeoutsClientState } from './useAgentTimeoutsClientState';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Props for the timeout-manager page header.
|
|
5
|
-
*
|
|
6
|
-
* @private function of AgentTimeoutsClient
|
|
7
|
-
*/
|
|
8
|
-
type AgentTimeoutsHeaderProps = {
|
|
9
|
-
state: ReturnType<typeof useAgentTimeoutsClientState>;
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Renders the timeout-manager heading and top-level actions.
|
|
14
|
-
*
|
|
15
|
-
* @private function of AgentTimeoutsClient
|
|
16
|
-
*/
|
|
17
|
-
export function AgentTimeoutsHeader({ state }: AgentTimeoutsHeaderProps) {
|
|
18
|
-
return (
|
|
19
|
-
<div className="flex flex-col gap-3 md:flex-row md:items-end md:justify-between">
|
|
20
|
-
<div>
|
|
21
|
-
<h1 className="text-3xl font-light text-gray-900">My timeouts</h1>
|
|
22
|
-
<p className="mt-1 max-w-3xl text-sm text-gray-500">
|
|
23
|
-
Agent-scoped timeout manager across all your chats.
|
|
24
|
-
</p>
|
|
25
|
-
</div>
|
|
26
|
-
<div className="flex flex-wrap items-center gap-2">
|
|
27
|
-
{state.bulkActions.map((bulkAction) => (
|
|
28
|
-
<button
|
|
29
|
-
key={bulkAction.action}
|
|
30
|
-
type="button"
|
|
31
|
-
onClick={() => {
|
|
32
|
-
void state.runBulkAction(bulkAction.action);
|
|
33
|
-
}}
|
|
34
|
-
disabled={state.busyBulkAction !== null}
|
|
35
|
-
className={bulkAction.buttonClassName}
|
|
36
|
-
>
|
|
37
|
-
{state.busyBulkAction === bulkAction.action ? bulkAction.busyLabel : bulkAction.idleLabel}
|
|
38
|
-
</button>
|
|
39
|
-
))}
|
|
40
|
-
<button
|
|
41
|
-
type="button"
|
|
42
|
-
onClick={() => {
|
|
43
|
-
void state.refreshNow();
|
|
44
|
-
}}
|
|
45
|
-
disabled={state.isRefreshing || state.busyBulkAction !== null}
|
|
46
|
-
className="rounded-full border border-blue-200 bg-blue-50 px-3 py-1.5 text-xs font-semibold text-blue-700 disabled:cursor-not-allowed disabled:opacity-60"
|
|
47
|
-
>
|
|
48
|
-
{state.isRefreshing ? 'Refreshing...' : 'Refresh'}
|
|
49
|
-
</button>
|
|
50
|
-
</div>
|
|
51
|
-
</div>
|
|
52
|
-
);
|
|
53
|
-
}
|
package/apps/agents-server/src/app/agents/[agentName]/timeouts/AgentTimeoutsSummaryMetrics.tsx
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import type { useAgentTimeoutsClientState } from './useAgentTimeoutsClientState';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Props for the timeout summary metric grid.
|
|
5
|
-
*
|
|
6
|
-
* @private function of AgentTimeoutsClient
|
|
7
|
-
*/
|
|
8
|
-
type AgentTimeoutsSummaryMetricsProps = {
|
|
9
|
-
state: ReturnType<typeof useAgentTimeoutsClientState>;
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* One metric shown in the timeout-manager summary grid.
|
|
14
|
-
*
|
|
15
|
-
* @private function of AgentTimeoutsSummaryMetrics
|
|
16
|
-
*/
|
|
17
|
-
type TimeoutSummaryMetric = {
|
|
18
|
-
label: string;
|
|
19
|
-
value: string;
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Builds the summary metrics shown above the timeout table.
|
|
24
|
-
*
|
|
25
|
-
* @private function of AgentTimeoutsSummaryMetrics
|
|
26
|
-
*/
|
|
27
|
-
function createTimeoutSummaryMetrics(
|
|
28
|
-
counters: ReturnType<typeof useAgentTimeoutsClientState>['counters'],
|
|
29
|
-
): Array<TimeoutSummaryMetric> {
|
|
30
|
-
return [
|
|
31
|
-
{ label: 'All', value: String(counters?.allCount ?? 0) },
|
|
32
|
-
{
|
|
33
|
-
label: 'Active',
|
|
34
|
-
value: String((counters?.queuedCount ?? 0) + (counters?.runningCount ?? 0) - (counters?.pausedCount ?? 0)),
|
|
35
|
-
},
|
|
36
|
-
{ label: 'Paused', value: String(counters?.pausedCount ?? 0) },
|
|
37
|
-
{ label: 'Failed', value: String(counters?.failedCount ?? 0) },
|
|
38
|
-
];
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Renders the timeout summary metrics.
|
|
43
|
-
*
|
|
44
|
-
* @private function of AgentTimeoutsClient
|
|
45
|
-
*/
|
|
46
|
-
export function AgentTimeoutsSummaryMetrics({ state }: AgentTimeoutsSummaryMetricsProps) {
|
|
47
|
-
const metrics = createTimeoutSummaryMetrics(state.counters);
|
|
48
|
-
|
|
49
|
-
return (
|
|
50
|
-
<div className="grid gap-3 md:grid-cols-4">
|
|
51
|
-
{metrics.map((metric) => (
|
|
52
|
-
<TimeoutMetricCard key={metric.label} label={metric.label} value={metric.value} />
|
|
53
|
-
))}
|
|
54
|
-
</div>
|
|
55
|
-
);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Compact metric card used by the timeout manager header.
|
|
60
|
-
*
|
|
61
|
-
* @private function of AgentTimeoutsSummaryMetrics
|
|
62
|
-
*/
|
|
63
|
-
function TimeoutMetricCard({ label, value }: TimeoutSummaryMetric) {
|
|
64
|
-
return (
|
|
65
|
-
<div className="rounded-2xl border border-gray-200 bg-white p-4 shadow-sm">
|
|
66
|
-
<div className="text-xs font-semibold uppercase tracking-wide text-gray-400">{label}</div>
|
|
67
|
-
<div className="mt-1 text-2xl font-light text-gray-900">{value}</div>
|
|
68
|
-
</div>
|
|
69
|
-
);
|
|
70
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import type { ServerLanguageCode } from '@/src/languages/ServerLanguageRegistry';
|
|
2
|
-
import type { useAgentTimeoutsClientState } from './useAgentTimeoutsClientState';
|
|
3
|
-
import { AgentTimeoutsTableRow } from './AgentTimeoutsTableRow';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Props for the timeout table card.
|
|
7
|
-
*
|
|
8
|
-
* @private function of AgentTimeoutsClient
|
|
9
|
-
*/
|
|
10
|
-
type AgentTimeoutsTableCardProps = {
|
|
11
|
-
agentName: string;
|
|
12
|
-
language: ServerLanguageCode;
|
|
13
|
-
state: ReturnType<typeof useAgentTimeoutsClientState>;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Renders the timeout table along with loading and empty states.
|
|
18
|
-
*
|
|
19
|
-
* @private function of AgentTimeoutsClient
|
|
20
|
-
*/
|
|
21
|
-
export function AgentTimeoutsTableCard({ agentName, language, state }: AgentTimeoutsTableCardProps) {
|
|
22
|
-
return (
|
|
23
|
-
<div className="rounded-2xl border border-gray-200 bg-white shadow-sm">
|
|
24
|
-
{state.isLoading ? (
|
|
25
|
-
<div className="p-8 text-center text-sm text-gray-500">Loading timeouts...</div>
|
|
26
|
-
) : state.filteredTimeouts.length === 0 ? (
|
|
27
|
-
<div className="p-8 text-center text-sm text-gray-500">No timeouts in this view.</div>
|
|
28
|
-
) : (
|
|
29
|
-
<div className="overflow-x-auto">
|
|
30
|
-
<table className="min-w-full divide-y divide-gray-200 text-xs">
|
|
31
|
-
<thead className="bg-gray-50 text-gray-500">
|
|
32
|
-
<tr>
|
|
33
|
-
<th className="px-4 py-3 text-left font-semibold">Timeout</th>
|
|
34
|
-
<th className="px-4 py-3 text-left font-semibold">Chat</th>
|
|
35
|
-
<th className="px-4 py-3 text-left font-semibold">Status</th>
|
|
36
|
-
<th className="px-4 py-3 text-left font-semibold">Next run</th>
|
|
37
|
-
<th className="px-4 py-3 text-left font-semibold">Recurrence</th>
|
|
38
|
-
<th className="px-4 py-3 text-left font-semibold">Payload</th>
|
|
39
|
-
<th className="px-4 py-3 text-right font-semibold">Actions</th>
|
|
40
|
-
</tr>
|
|
41
|
-
</thead>
|
|
42
|
-
<tbody className="divide-y divide-gray-200 bg-white">
|
|
43
|
-
{state.filteredTimeouts.map((timeout) => (
|
|
44
|
-
<AgentTimeoutsTableRow
|
|
45
|
-
key={timeout.timeoutId}
|
|
46
|
-
agentName={agentName}
|
|
47
|
-
language={language}
|
|
48
|
-
state={state}
|
|
49
|
-
timeout={timeout}
|
|
50
|
-
/>
|
|
51
|
-
))}
|
|
52
|
-
</tbody>
|
|
53
|
-
</table>
|
|
54
|
-
</div>
|
|
55
|
-
)}
|
|
56
|
-
</div>
|
|
57
|
-
);
|
|
58
|
-
}
|
|
@@ -1,242 +0,0 @@
|
|
|
1
|
-
import type { UserChatTimeout } from '@/src/utils/userChatClient';
|
|
2
|
-
import type { ServerLanguageCode } from '@/src/languages/ServerLanguageRegistry';
|
|
3
|
-
import { formatServerLanguageHumanReadableDate } from '@/src/utils/localization/formatServerLanguageHumanReadableDate';
|
|
4
|
-
import Link from 'next/link';
|
|
5
|
-
import type { useAgentTimeoutsClientState } from './useAgentTimeoutsClientState';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Props for one timeout-manager table row.
|
|
9
|
-
*
|
|
10
|
-
* @private function of AgentTimeoutsClient
|
|
11
|
-
*/
|
|
12
|
-
type AgentTimeoutsTableRowProps = {
|
|
13
|
-
agentName: string;
|
|
14
|
-
language: ServerLanguageCode;
|
|
15
|
-
state: ReturnType<typeof useAgentTimeoutsClientState>;
|
|
16
|
-
timeout: UserChatTimeout;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Resolved badge presentation for one timeout status.
|
|
21
|
-
*
|
|
22
|
-
* @private function of AgentTimeoutsTableRow
|
|
23
|
-
*/
|
|
24
|
-
type TimeoutStatusPresentation = {
|
|
25
|
-
className: string;
|
|
26
|
-
label: string;
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Determines whether a queued timeout is currently paused.
|
|
31
|
-
*
|
|
32
|
-
* @private function of AgentTimeoutsTableRow
|
|
33
|
-
*/
|
|
34
|
-
function isTimeoutPaused(timeout: UserChatTimeout): boolean {
|
|
35
|
-
return timeout.status === 'QUEUED' && Boolean(timeout.pausedAt);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Determines whether a timeout still supports direct edits.
|
|
40
|
-
*
|
|
41
|
-
* @private function of AgentTimeoutsTableRow
|
|
42
|
-
*/
|
|
43
|
-
function isTimeoutEditable(timeout: UserChatTimeout): boolean {
|
|
44
|
-
return timeout.status === 'QUEUED';
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Determines whether a timeout can still be cancelled.
|
|
49
|
-
*
|
|
50
|
-
* @private function of AgentTimeoutsTableRow
|
|
51
|
-
*/
|
|
52
|
-
function isTimeoutCancelable(timeout: UserChatTimeout): boolean {
|
|
53
|
-
return timeout.status === 'QUEUED' || timeout.status === 'RUNNING';
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Resolves the badge label and colors for one timeout status.
|
|
58
|
-
*
|
|
59
|
-
* @private function of AgentTimeoutsTableRow
|
|
60
|
-
*/
|
|
61
|
-
function resolveTimeoutStatusPresentation(timeout: UserChatTimeout): TimeoutStatusPresentation {
|
|
62
|
-
if (timeout.status === 'RUNNING') {
|
|
63
|
-
return { label: timeout.status, className: 'border-blue-200 bg-blue-50 text-blue-700' };
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
if (timeout.status === 'FAILED') {
|
|
67
|
-
return { label: timeout.status, className: 'border-rose-200 bg-rose-50 text-rose-700' };
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
if (timeout.status === 'COMPLETED') {
|
|
71
|
-
return { label: timeout.status, className: 'border-emerald-200 bg-emerald-50 text-emerald-700' };
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
if (timeout.status === 'CANCELLED') {
|
|
75
|
-
return { label: timeout.status, className: 'border-gray-200 bg-gray-100 text-gray-700' };
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
if (isTimeoutPaused(timeout)) {
|
|
79
|
-
return { label: 'PAUSED', className: 'border-orange-200 bg-orange-50 text-orange-700' };
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
return { label: timeout.status, className: 'border-slate-200 bg-slate-50 text-slate-700' };
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* Formats the pause or resume button label for the current busy state.
|
|
87
|
-
*
|
|
88
|
-
* @private function of AgentTimeoutsTableRow
|
|
89
|
-
*/
|
|
90
|
-
function resolvePauseButtonLabel(
|
|
91
|
-
isBusy: boolean,
|
|
92
|
-
busyAction: ReturnType<typeof useAgentTimeoutsClientState>['busyAction'],
|
|
93
|
-
isPaused: boolean,
|
|
94
|
-
): string {
|
|
95
|
-
const pauseAction = isPaused ? 'resume' : 'pause';
|
|
96
|
-
|
|
97
|
-
if (isBusy && busyAction === pauseAction) {
|
|
98
|
-
return isPaused ? 'Resuming...' : 'Pausing...';
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
return isPaused ? 'Resume' : 'Pause';
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Formats milliseconds into compact human-friendly duration text.
|
|
106
|
-
*
|
|
107
|
-
* @private function of AgentTimeoutsTableRow
|
|
108
|
-
*/
|
|
109
|
-
function formatDuration(milliseconds: number): string {
|
|
110
|
-
const totalSeconds = Math.max(0, Math.floor(milliseconds / 1000));
|
|
111
|
-
const days = Math.floor(totalSeconds / 86_400);
|
|
112
|
-
const hours = Math.floor((totalSeconds % 86_400) / 3_600);
|
|
113
|
-
const minutes = Math.floor((totalSeconds % 3_600) / 60);
|
|
114
|
-
const seconds = totalSeconds % 60;
|
|
115
|
-
const parts: Array<string> = [];
|
|
116
|
-
|
|
117
|
-
if (days > 0) {
|
|
118
|
-
parts.push(`${days}d`);
|
|
119
|
-
}
|
|
120
|
-
if (hours > 0) {
|
|
121
|
-
parts.push(`${hours}h`);
|
|
122
|
-
}
|
|
123
|
-
if (minutes > 0) {
|
|
124
|
-
parts.push(`${minutes}m`);
|
|
125
|
-
}
|
|
126
|
-
if (parts.length === 0) {
|
|
127
|
-
parts.push(`${seconds}s`);
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
return parts.slice(0, 2).join(' ');
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* Truncates long text to keep table rows compact.
|
|
135
|
-
*
|
|
136
|
-
* @private function of AgentTimeoutsTableRow
|
|
137
|
-
*/
|
|
138
|
-
function truncateText(value: string, maxLength: number): string {
|
|
139
|
-
return value.length > maxLength ? `${value.slice(0, maxLength - 1)}...` : value;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* Renders one timeout row with its derived actions and status badge.
|
|
144
|
-
*
|
|
145
|
-
* @private function of AgentTimeoutsClient
|
|
146
|
-
*/
|
|
147
|
-
export function AgentTimeoutsTableRow({ agentName, language, state, timeout }: AgentTimeoutsTableRowProps) {
|
|
148
|
-
const isBusy = state.busyTimeoutId === timeout.timeoutId;
|
|
149
|
-
const isPaused = isTimeoutPaused(timeout);
|
|
150
|
-
const isEditable = isTimeoutEditable(timeout);
|
|
151
|
-
const isCancelable = isTimeoutCancelable(timeout);
|
|
152
|
-
const statusPresentation = resolveTimeoutStatusPresentation(timeout);
|
|
153
|
-
|
|
154
|
-
return (
|
|
155
|
-
<tr>
|
|
156
|
-
<td className="px-4 py-3 align-top">
|
|
157
|
-
<div className="font-mono text-[11px] font-semibold text-gray-900">{timeout.timeoutId}</div>
|
|
158
|
-
<div className="mt-1 text-[11px] text-gray-500">
|
|
159
|
-
Updated {formatServerLanguageHumanReadableDate(timeout.updatedAt, language)}
|
|
160
|
-
</div>
|
|
161
|
-
</td>
|
|
162
|
-
<td className="px-4 py-3 align-top">
|
|
163
|
-
<Link
|
|
164
|
-
href={`/agents/${encodeURIComponent(agentName)}/chat?chat=${encodeURIComponent(timeout.chatId)}`}
|
|
165
|
-
className="break-all text-blue-700 hover:underline"
|
|
166
|
-
>
|
|
167
|
-
{timeout.chatId}
|
|
168
|
-
</Link>
|
|
169
|
-
</td>
|
|
170
|
-
<td className="px-4 py-3 align-top">
|
|
171
|
-
<span className={`rounded-full border px-2 py-0.5 font-semibold ${statusPresentation.className}`}>
|
|
172
|
-
{statusPresentation.label}
|
|
173
|
-
</span>
|
|
174
|
-
</td>
|
|
175
|
-
<td className="px-4 py-3 align-top">
|
|
176
|
-
{formatServerLanguageHumanReadableDate(timeout.dueAt, language, { isExactDateIncluded: true })}
|
|
177
|
-
</td>
|
|
178
|
-
<td className="px-4 py-3 align-top">
|
|
179
|
-
{timeout.recurrenceIntervalMs ? `Every ${formatDuration(timeout.recurrenceIntervalMs)}` : 'One-shot'}
|
|
180
|
-
</td>
|
|
181
|
-
<td className="max-w-xs px-4 py-3 align-top">
|
|
182
|
-
<div className="truncate text-[11px] text-gray-700">{timeout.message || 'No message'}</div>
|
|
183
|
-
<div className="mt-1 font-mono text-[10px] text-gray-500">
|
|
184
|
-
{truncateText(JSON.stringify(timeout.parameters || {}), 120)}
|
|
185
|
-
</div>
|
|
186
|
-
</td>
|
|
187
|
-
<td className="px-4 py-3 align-top">
|
|
188
|
-
<div className="flex justify-end gap-2">
|
|
189
|
-
{isEditable ? (
|
|
190
|
-
<>
|
|
191
|
-
<button
|
|
192
|
-
type="button"
|
|
193
|
-
onClick={() => {
|
|
194
|
-
void state.toggleTimeoutPause(timeout);
|
|
195
|
-
}}
|
|
196
|
-
disabled={isBusy}
|
|
197
|
-
className="rounded-md border border-gray-300 px-2 py-1 font-semibold text-gray-700 disabled:opacity-60"
|
|
198
|
-
>
|
|
199
|
-
{resolvePauseButtonLabel(isBusy, state.busyAction, isPaused)}
|
|
200
|
-
</button>
|
|
201
|
-
<button
|
|
202
|
-
type="button"
|
|
203
|
-
onClick={() => {
|
|
204
|
-
void state.extendTimeout(timeout);
|
|
205
|
-
}}
|
|
206
|
-
disabled={isBusy}
|
|
207
|
-
className="rounded-md border border-gray-300 px-2 py-1 font-semibold text-gray-700 disabled:opacity-60"
|
|
208
|
-
>
|
|
209
|
-
{isBusy && state.busyAction === 'extend' ? 'Extending...' : 'Extend'}
|
|
210
|
-
</button>
|
|
211
|
-
<button
|
|
212
|
-
type="button"
|
|
213
|
-
onClick={() => state.openEditDialog(timeout)}
|
|
214
|
-
disabled={isBusy}
|
|
215
|
-
className="rounded-md border border-blue-200 bg-blue-50 px-2 py-1 font-semibold text-blue-700 disabled:opacity-60"
|
|
216
|
-
>
|
|
217
|
-
Edit
|
|
218
|
-
</button>
|
|
219
|
-
</>
|
|
220
|
-
) : null}
|
|
221
|
-
{isCancelable ? (
|
|
222
|
-
<button
|
|
223
|
-
type="button"
|
|
224
|
-
onClick={() => {
|
|
225
|
-
void state.cancelTimeout(timeout);
|
|
226
|
-
}}
|
|
227
|
-
disabled={isBusy}
|
|
228
|
-
className="rounded-md border border-red-200 bg-red-50 px-2 py-1 font-semibold text-red-700 disabled:opacity-60"
|
|
229
|
-
>
|
|
230
|
-
{isBusy && state.busyAction === 'cancel' ? 'Cancelling...' : 'Cancel'}
|
|
231
|
-
</button>
|
|
232
|
-
) : null}
|
|
233
|
-
{!isEditable && !isCancelable ? (
|
|
234
|
-
<span className="rounded-md border border-gray-200 bg-gray-50 px-2 py-1 font-medium text-gray-500">
|
|
235
|
-
-
|
|
236
|
-
</span>
|
|
237
|
-
) : null}
|
|
238
|
-
</div>
|
|
239
|
-
</td>
|
|
240
|
-
</tr>
|
|
241
|
-
);
|
|
242
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { ConsolePageLoadingSkeleton } from '../../../../components/Skeleton/ConsolePageLoadingSkeleton';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Renders the timeout-manager skeleton while timeout route data streams.
|
|
5
|
-
*/
|
|
6
|
-
export default function Loading() {
|
|
7
|
-
return (
|
|
8
|
-
<ConsolePageLoadingSkeleton
|
|
9
|
-
ariaLabel="Loading agent timeouts"
|
|
10
|
-
showSummaryCards={true}
|
|
11
|
-
showFiltersCard={true}
|
|
12
|
-
panelHeights={[360]}
|
|
13
|
-
/>
|
|
14
|
-
);
|
|
15
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
'use server';
|
|
2
|
-
|
|
3
|
-
import { ForbiddenPage } from '@/src/components/ForbiddenPage/ForbiddenPage';
|
|
4
|
-
import { resolveAgentAccess } from '@/src/utils/agentAccess';
|
|
5
|
-
import { enforceCanonicalLocalAgentId, getAgentName } from '../_utils';
|
|
6
|
-
import { AgentTimeoutsClient } from './AgentTimeoutsClient';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Builds canonical timeout-manager path for one local agent id.
|
|
10
|
-
*/
|
|
11
|
-
function buildCanonicalAgentTimeoutsPath(canonicalAgentId: string): string {
|
|
12
|
-
return `/agents/${encodeURIComponent(canonicalAgentId)}/timeouts`;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Renders agent-scoped timeout manager across all chats.
|
|
17
|
-
*/
|
|
18
|
-
export default async function AgentTimeoutsPage({ params }: { params: Promise<{ agentName: string }> }) {
|
|
19
|
-
const agentName = await getAgentName(params);
|
|
20
|
-
const canonicalAgentId = await enforceCanonicalLocalAgentId(agentName, buildCanonicalAgentTimeoutsPath);
|
|
21
|
-
|
|
22
|
-
const access = await resolveAgentAccess(canonicalAgentId);
|
|
23
|
-
if (!access.isAllowed) {
|
|
24
|
-
return <ForbiddenPage />;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return <AgentTimeoutsClient agentName={canonicalAgentId} />;
|
|
28
|
-
}
|