@promptbook/cli 0.114.0-13 → 0.114.0-18
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/apps/agents-server/next.config.ts +6 -0
- package/apps/agents-server/src/app/admin/_components/AdminFilterFields.tsx +84 -0
- package/apps/agents-server/src/app/admin/_components/AdminMetricCard.tsx +36 -0
- package/apps/agents-server/src/app/admin/_components/AdminTaskManagerTabs.tsx +97 -0
- package/apps/agents-server/src/app/admin/planned-messages/PlannedMessageManagerClient.tsx +103 -0
- package/apps/agents-server/src/app/admin/planned-messages/PlannedMessageManagerEditDialog.tsx +232 -0
- package/apps/agents-server/src/app/admin/planned-messages/PlannedMessageManagerFiltersCard.tsx +195 -0
- package/apps/agents-server/src/app/admin/planned-messages/PlannedMessageManagerRow.tsx +189 -0
- package/apps/agents-server/src/app/admin/planned-messages/PlannedMessageManagerSummaryMetrics.tsx +60 -0
- package/apps/agents-server/src/app/admin/planned-messages/PlannedMessageManagerTableCard.tsx +147 -0
- package/apps/agents-server/src/app/admin/planned-messages/page.tsx +17 -0
- package/apps/agents-server/src/app/admin/planned-messages/plannedMessageEditForm.ts +186 -0
- package/apps/agents-server/src/app/admin/planned-messages/plannedMessageManagerDialogs.ts +46 -0
- package/apps/agents-server/src/app/admin/planned-messages/plannedMessageManagerPresentation.tsx +188 -0
- package/apps/agents-server/src/app/admin/planned-messages/resolvePlannedMessageSortValue.ts +115 -0
- package/apps/agents-server/src/app/admin/planned-messages/usePlannedMessageManagerData.ts +116 -0
- package/apps/agents-server/src/app/admin/planned-messages/usePlannedMessageManagerState.ts +289 -0
- package/apps/agents-server/src/app/admin/task-manager/TaskManagerClient.tsx +7 -2
- package/apps/agents-server/src/app/admin/task-manager/TaskManagerFiltersCard.tsx +7 -73
- package/apps/agents-server/src/app/admin/task-manager/TaskManagerSummaryMetrics.tsx +5 -30
- package/apps/agents-server/src/app/admin/task-manager/[taskId]/TaskManagerTaskDetailClient.tsx +1 -1
- package/apps/agents-server/src/app/agents/[agentName]/api/book/reference-diagnostics/route.ts +30 -7
- package/apps/agents-server/src/app/agents/[agentName]/api/book/route.ts +1 -0
- package/apps/agents-server/src/app/agents/[agentName]/api/book/test.http +3 -3
- package/apps/agents-server/src/app/agents/[agentName]/book/BookEditorMissingReferences.tsx +106 -12
- package/apps/agents-server/src/app/agents/[agentName]/book/BookEditorWrapper.tsx +3 -0
- package/apps/agents-server/src/app/agents/[agentName]/book/useBookEditorDiagnostics.ts +12 -0
- package/apps/agents-server/src/app/agents/[agentName]/book/useBookEditorWrapper.tsx +2 -0
- package/apps/agents-server/src/app/agents/[agentName]/chat/AgentGoalChatPlannedMessages.tsx +46 -3
- package/apps/agents-server/src/app/api/admin/default-agents/reinstate/route.ts +5 -1
- package/apps/agents-server/src/app/api/admin/planned-messages/[timeoutId]/route.ts +80 -0
- package/apps/agents-server/src/app/api/admin/planned-messages/route.ts +19 -0
- package/apps/agents-server/src/app/api/internal/agent-goal-chat-planned-messages/route.ts +30 -2
- package/apps/agents-server/src/components/DefaultAgents/ReinstateBundledAgentsButton.tsx +7 -0
- package/apps/agents-server/src/components/DefaultAgents/coreAgentsAdminRoute.ts +6 -0
- package/apps/agents-server/src/components/Header/buildHeaderSystemMenuItems.ts +7 -0
- package/apps/agents-server/src/components/Homepage/DefaultAgentsStatusNotice.tsx +1 -7
- package/apps/agents-server/src/database/migrations/2026-08-1800-user-chat-timeout-schedule.sql +11 -0
- package/apps/agents-server/src/instrumentation-node.ts +18 -0
- package/apps/agents-server/src/languages/ServerTranslationKeys.ts +4 -0
- package/apps/agents-server/src/languages/translations/czech.yaml +4 -0
- package/apps/agents-server/src/languages/translations/english.yaml +4 -0
- package/apps/agents-server/src/tools/agentGoalChatTimeoutToolFunctions.ts +62 -15
- package/apps/agents-server/src/tools/agentGoalChatTimeoutTools.ts +63 -9
- package/apps/agents-server/src/utils/adminEntityLookups/loadAgentNamesByPermanentId.ts +45 -0
- package/apps/agents-server/src/utils/adminEntityLookups/loadUsernamesByUserId.ts +36 -0
- package/apps/agents-server/src/utils/adminEntityLookups.ts +2 -0
- package/apps/agents-server/src/utils/agentGoalChat/agentGoalChatPlannedMessageActions.ts +299 -52
- package/apps/agents-server/src/utils/agentGoalChat/createAgentGoalChatNoteContent.ts +45 -17
- package/apps/agents-server/src/utils/agentGoalChat.ts +1 -0
- package/apps/agents-server/src/utils/agentProjects/agentProjectIdentity.ts +46 -0
- package/apps/agents-server/src/utils/agentProjects/agentProjectRuntimeAutostartScheduler.ts +162 -0
- package/apps/agents-server/src/utils/agentProjects/agentProjectRuntimeDesiredState.ts +252 -0
- package/apps/agents-server/src/utils/agentProjects/agentProjectRuntimeDisplay.ts +6 -3
- package/apps/agents-server/src/utils/agentProjects/agentProjectRuntimeDomains.ts +2 -44
- package/apps/agents-server/src/utils/agentProjects/agentProjectRuntimePaths.ts +25 -0
- package/apps/agents-server/src/utils/agentProjects/agentProjectRuntimePm2.ts +4 -3
- package/apps/agents-server/src/utils/agentProjects/agentProjectRuntimeRegistry.ts +77 -24
- package/apps/agents-server/src/utils/agentProjects/agentProjectStateMutationQueue.ts +58 -0
- package/apps/agents-server/src/utils/agentProjects/listAllLocalAgentProjectIdentities.ts +48 -0
- package/apps/agents-server/src/utils/agentProjects/resolveAgentProjectRuntimeEnvironmentFlag.ts +23 -0
- package/apps/agents-server/src/utils/agentProjects/resolveAgentProjectRuntimeStatus.ts +73 -0
- package/apps/agents-server/src/utils/agentProjects/startDefaultAgentProjectRuntimes.ts +110 -0
- package/apps/agents-server/src/utils/agentReferenceResolver/MissingCoreAgentRecovery.ts +19 -0
- package/apps/agents-server/src/utils/agentReferenceResolver/bookScopedAgentReferences.ts +7 -0
- package/apps/agents-server/src/utils/agentReferenceResolver/createAgentInheritanceDiagnostics.ts +457 -0
- package/apps/agents-server/src/utils/agentReferenceResolver/createUnresolvedAgentReferenceDiagnostics.ts +27 -0
- package/apps/agents-server/src/utils/agentReferenceResolver/resolveCoreAgentAwareMissingReferences.ts +156 -0
- package/apps/agents-server/src/utils/chatMessageChips/createAnsweredMessageChipToolCalls.ts +15 -3
- package/apps/agents-server/src/utils/chatMessageChips/createPlannedMessageChipToolCalls.ts +8 -3
- package/apps/agents-server/src/utils/chatMessageChips/createTouchedExternalSourceChipToolCalls.ts +39 -0
- package/apps/agents-server/src/utils/chatMessageChips/createTouchedProjectChipResult.ts +45 -0
- package/apps/agents-server/src/utils/chatMessageChips/createTouchedProjectChipToolCalls.ts +58 -24
- package/apps/agents-server/src/utils/cronExpression/CronExpression.ts +63 -0
- package/apps/agents-server/src/utils/cronExpression/normalizeCronExpression.ts +34 -0
- package/apps/agents-server/src/utils/cronExpression/normalizeCronExpressionWhitespace.ts +11 -0
- package/apps/agents-server/src/utils/cronExpression/parseCronExpression.ts +41 -0
- package/apps/agents-server/src/utils/cronExpression/parseCronExpressionField.ts +140 -0
- package/apps/agents-server/src/utils/cronExpression/resolveNextCronRun.ts +100 -0
- package/apps/agents-server/src/utils/cronExpression/throwInvalidCronExpressionField.ts +20 -0
- package/apps/agents-server/src/utils/cronExpression.ts +10 -0
- package/apps/agents-server/src/utils/explicitFromCommitment.ts +130 -0
- package/apps/agents-server/src/utils/getAdminChatTasksResponse/getAdminChatTasks/loadAdminChatTaskFallbackData.ts +3 -77
- package/apps/agents-server/src/utils/localChatRunner/applyLocalAgentPlannedMessageCommands.ts +53 -4
- package/apps/agents-server/src/utils/localChatRunner/prepareLocalAgentPlannedMessagesSidecar.ts +15 -7
- package/apps/agents-server/src/utils/localChatRunner/processLocalUserChatJob.ts +8 -0
- package/apps/agents-server/src/utils/manGoOnboarding/manGoOnboardingAgentBooks.ts +5 -11
- package/apps/agents-server/src/utils/manGoOnboarding/manGoOnboardingAgentRuntime.ts +2 -2
- package/apps/agents-server/src/utils/managementApi/managementApiSchemas.ts +2 -2
- package/apps/agents-server/src/utils/plannedMessageManager/cancelManagedPlannedMessage.ts +35 -0
- package/apps/agents-server/src/utils/plannedMessageManager/collectPlannedMessageAgentOptions.ts +56 -0
- package/apps/agents-server/src/utils/plannedMessageManager/createPlannedMessageManagerCounters.ts +104 -0
- package/apps/agents-server/src/utils/plannedMessageManager/filterPlannedMessages.ts +191 -0
- package/apps/agents-server/src/utils/plannedMessageManager/getPlannedMessageManagerResponse.ts +55 -0
- package/apps/agents-server/src/utils/plannedMessageManager/isPlannedMessageStillPlanned.ts +18 -0
- package/apps/agents-server/src/utils/plannedMessageManager/loadPlannedMessageManagerRecord.ts +32 -0
- package/apps/agents-server/src/utils/plannedMessageManager/mapPlannedMessageManagerRecord.ts +73 -0
- package/apps/agents-server/src/utils/plannedMessageManager/parsePlannedMessageManagerUpdateRequest.ts +76 -0
- package/apps/agents-server/src/utils/plannedMessageManager/resolvePlannedMessageEndReason.ts +59 -0
- package/apps/agents-server/src/utils/plannedMessageManager/resolvePlannedMessageLifecycle.ts +99 -0
- package/apps/agents-server/src/utils/plannedMessageManager/resolvePlannedMessageRecurrenceKind.ts +40 -0
- package/apps/agents-server/src/utils/plannedMessageManager/updateManagedPlannedMessage.ts +121 -0
- package/apps/agents-server/src/utils/plannedMessagesAdmin.ts +200 -0
- package/apps/agents-server/src/utils/resolveInheritedAgentSource.ts +114 -95
- package/apps/agents-server/src/utils/userChatClient.ts +4 -0
- package/apps/agents-server/src/utils/userChatTimeout/UserChatTimeoutRecord.ts +37 -1
- package/apps/agents-server/src/utils/userChatTimeout/agentScopedTimeoutBulkActions.ts +11 -17
- package/apps/agents-server/src/utils/userChatTimeout/createTimeoutWakeUpMessage.ts +37 -13
- package/apps/agents-server/src/utils/userChatTimeout/plannedMessageSchedule/PlannedMessageSchedule.ts +52 -0
- package/apps/agents-server/src/utils/userChatTimeout/plannedMessageSchedule/hasPlannedMessageRecurrence.ts +13 -0
- package/apps/agents-server/src/utils/userChatTimeout/plannedMessageSchedule/isPlannedMessageScheduleFinished.ts +30 -0
- package/apps/agents-server/src/utils/userChatTimeout/plannedMessageSchedule/normalizePlannedMessageScheduleValues.ts +62 -0
- package/apps/agents-server/src/utils/userChatTimeout/plannedMessageSchedule/parsePlannedMessageSchedule.ts +202 -0
- package/apps/agents-server/src/utils/userChatTimeout/plannedMessageSchedule/resolvePlannedMessageDueAt.ts +121 -0
- package/apps/agents-server/src/utils/userChatTimeout/plannedMessageSchedule.ts +12 -0
- package/apps/agents-server/src/utils/userChatTimeout/setAgentScopedUserChatTimeoutPausedState.ts +66 -0
- package/apps/agents-server/src/utils/userChatTimeout/userChatTimeoutStore/createUserChatTimeout.ts +76 -5
- package/apps/agents-server/src/utils/userChatTimeout/userChatTimeoutStore/listAllUserChatTimeouts.ts +37 -0
- package/apps/agents-server/src/utils/userChatTimeout/userChatTimeoutStore/mapUserChatTimeoutRow.ts +9 -0
- package/apps/agents-server/src/utils/userChatTimeout/userChatTimeoutStore/repeatFiredUserChatTimeout.ts +19 -9
- package/apps/agents-server/src/utils/userChatTimeout/userChatTimeoutStore/updateAgentScopedUserChatTimeout.ts +39 -6
- package/apps/agents-server/src/utils/userChatTimeout/userChatTimeoutStore.ts +1 -0
- package/apps/agents-server/src/utils/userChatTimeout/userChatTimeoutWorker.ts +110 -11
- package/apps/agents-server/src/utils/userChatTimeout.ts +16 -0
- package/apps/agents-server/src/utils/vpsSelfUpdate/vpsSelfUpdateCron.ts +23 -316
- package/apps/agents-server/tests/e2e/support/AgentManagementApi.ts +3 -3
- package/esm/index.es.js +951 -102
- package/esm/index.es.js.map +1 -1
- package/esm/scripts/run-agent-messages/git/commitAgentProjectChanges.d.ts +15 -0
- package/esm/scripts/run-agent-messages/git/commitAnsweredMessageProjectChanges.d.ts +24 -0
- package/esm/scripts/run-agent-messages/git/ensureAgentProjectGitRepository.d.ts +20 -0
- package/esm/scripts/run-agent-messages/git/readAgentProjectCommitChange.d.ts +11 -0
- package/esm/scripts/run-agent-messages/git/runAgentProjectGitCommand.d.ts +29 -0
- package/esm/scripts/run-agent-messages/messages/buildAgentGoalChatPromptSection.d.ts +3 -3
- package/esm/scripts/run-agent-messages/messages/listAgentProjectDirectoryNames.d.ts +7 -0
- package/esm/scripts/run-agent-messages/messages/resolveAnsweredMessageTouches.d.ts +29 -0
- package/esm/scripts/run-codex-prompts/ping/pingCoderHarnessPeriodically.d.ts +22 -0
- package/esm/src/book-3.0/AgentMessageRunReport.d.ts +18 -0
- package/esm/src/book-3.0/AgentPlannedMessagesSidecar.d.ts +38 -5
- package/esm/src/book-3.0/describeAgentPlannedMessageSchedule.d.ts +31 -0
- package/esm/src/book-components/BookEditor/createDeprecatedCommitmentDiagnostics.browser.d.ts +1 -9
- package/esm/src/book-components/BookEditor/createDuplicateFromCommitmentDiagnostics.d.ts +28 -0
- package/esm/src/book-components/BookEditor/createDuplicateFromCommitmentDiagnostics.test.d.ts +1 -0
- package/esm/src/book-components/Chat/Chat/renderAgentProjectDiff.d.ts +13 -0
- package/esm/src/book-components/Chat/Chat/renderAgentProjectToolCallDetails.d.ts +16 -0
- package/esm/src/book-components/Chat/utils/agentProjectToolCall.d.ts +39 -0
- package/esm/src/book-components/Chat/utils/agentProjectToolCall.test.d.ts +1 -0
- package/esm/src/book-components/Chat/utils/externalSourceToolCall.d.ts +38 -0
- package/esm/src/book-components/Chat/utils/timeoutToolCallPresentation.d.ts +6 -0
- package/esm/src/cli/cli-commands/coder/waitOptions.d.ts +12 -0
- package/esm/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +15 -0
- package/esm/src/utils/agent-message-runtime/AgentMessageProjectChange.d.ts +76 -0
- package/esm/src/utils/agent-message-runtime/AgentMessageTouchedExternalSource.d.ts +45 -0
- package/esm/src/utils/agent-message-runtime/parseAgentMessageRuntimeLogEvents.d.ts +3 -0
- package/esm/src/utils/agent-message-runtime/resolveAgentMessageTouchedExternalSources.d.ts +18 -0
- package/esm/src/utils/agent-message-runtime/resolveAgentMessageTouchedExternalSources.test.d.ts +1 -0
- package/esm/src/utils/random/$generateBookBoilerplate.test.d.ts +1 -0
- package/esm/src/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/book-2.0/agent-source/string_book.ts +1 -1
- package/src/book-2.0/book-language-documentation/czechBookLanguageManualDictionary.ts +6 -1
- package/src/book-2.0/book-language-documentation/englishBookLanguageManualDictionary.ts +6 -1
- package/src/book-3.0/AgentMessageRunReport.ts +59 -0
- package/src/book-3.0/AgentPlannedMessagesSidecar.ts +64 -9
- package/src/book-3.0/describeAgentPlannedMessageSchedule.ts +94 -0
- package/src/book-components/BookEditor/BookEditorMonaco.tsx +2 -0
- package/src/book-components/BookEditor/createDeprecatedCommitmentDiagnostics.browser.ts +3 -11
- package/src/book-components/BookEditor/createDuplicateFromCommitmentDiagnostics.ts +71 -0
- package/src/book-components/Chat/Chat/Chat.module.css +165 -18
- package/src/book-components/Chat/Chat/ChatMessageMap.tsx +0 -1
- package/src/book-components/Chat/Chat/renderAgentProjectDiff.tsx +85 -0
- package/src/book-components/Chat/Chat/renderAgentProjectToolCallDetails.tsx +206 -0
- package/src/book-components/Chat/Chat/renderToolCallDetails.tsx +8 -0
- package/src/book-components/Chat/MarkdownContent/MarkdownContent.tsx +2 -3
- package/src/book-components/Chat/utils/agentProjectToolCall.ts +82 -5
- package/src/book-components/Chat/utils/externalSourceToolCall.ts +65 -0
- package/src/book-components/Chat/utils/getToolCallChipletInfo.ts +36 -0
- package/src/book-components/Chat/utils/renderMarkdown.ts +3 -10
- package/src/book-components/Chat/utils/timeoutToolCallPresentation.ts +12 -1
- package/src/cli/cli-commands/coder/ping.ts +35 -9
- package/src/cli/cli-commands/coder/waitOptions.ts +33 -0
- package/src/cli/cli-commands/common/harness/$applyHarnessInstallationStatus.ts +3 -1
- package/src/cli/cli-commands/common/harness/$checkHarnessInstallation.ts +3 -1
- package/src/cli/cli-commands/common/harnessUpdateCliOptions.ts +1 -4
- package/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.ts +47 -3
- package/src/commands/FORMAT/formatCommandParser.ts +4 -2
- package/src/commitments/FROM/FROM.ts +13 -0
- package/src/other/templates/getTemplatesPipelineCollection.ts +819 -751
- package/src/utils/agent-message-runtime/AgentMessageProjectChange.ts +183 -0
- package/src/utils/agent-message-runtime/AgentMessageTouchedExternalSource.ts +80 -0
- package/src/utils/agent-message-runtime/parseAgentMessageRuntimeLogEvents.ts +3 -0
- package/src/utils/agent-message-runtime/resolveAgentMessageRuntimeActivity.ts +2 -4
- package/src/utils/agent-message-runtime/resolveAgentMessageTouchedExternalSources.ts +341 -0
- package/src/utils/random/$generateBookBoilerplate.ts +1 -1
- package/src/version.ts +2 -2
- package/src/versions.txt +5 -0
- package/umd/index.umd.js +950 -101
- package/umd/index.umd.js.map +1 -1
- package/umd/scripts/run-agent-messages/git/commitAgentProjectChanges.d.ts +15 -0
- package/umd/scripts/run-agent-messages/git/commitAnsweredMessageProjectChanges.d.ts +24 -0
- package/umd/scripts/run-agent-messages/git/ensureAgentProjectGitRepository.d.ts +20 -0
- package/umd/scripts/run-agent-messages/git/readAgentProjectCommitChange.d.ts +11 -0
- package/umd/scripts/run-agent-messages/git/runAgentProjectGitCommand.d.ts +29 -0
- package/umd/scripts/run-agent-messages/messages/buildAgentGoalChatPromptSection.d.ts +3 -3
- package/umd/scripts/run-agent-messages/messages/listAgentProjectDirectoryNames.d.ts +7 -0
- package/umd/scripts/run-agent-messages/messages/resolveAnsweredMessageTouches.d.ts +29 -0
- package/umd/scripts/run-codex-prompts/ping/pingCoderHarnessPeriodically.d.ts +22 -0
- package/umd/src/book-3.0/AgentMessageRunReport.d.ts +18 -0
- package/umd/src/book-3.0/AgentPlannedMessagesSidecar.d.ts +38 -5
- package/umd/src/book-3.0/describeAgentPlannedMessageSchedule.d.ts +31 -0
- package/umd/src/book-components/BookEditor/createDeprecatedCommitmentDiagnostics.browser.d.ts +1 -9
- package/umd/src/book-components/BookEditor/createDuplicateFromCommitmentDiagnostics.d.ts +28 -0
- package/umd/src/book-components/BookEditor/createDuplicateFromCommitmentDiagnostics.test.d.ts +1 -0
- package/umd/src/book-components/Chat/Chat/renderAgentProjectDiff.d.ts +13 -0
- package/umd/src/book-components/Chat/Chat/renderAgentProjectToolCallDetails.d.ts +16 -0
- package/umd/src/book-components/Chat/utils/agentProjectToolCall.d.ts +39 -0
- package/umd/src/book-components/Chat/utils/agentProjectToolCall.test.d.ts +1 -0
- package/umd/src/book-components/Chat/utils/externalSourceToolCall.d.ts +38 -0
- package/umd/src/book-components/Chat/utils/timeoutToolCallPresentation.d.ts +6 -0
- package/umd/src/cli/cli-commands/coder/waitOptions.d.ts +12 -0
- package/umd/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +15 -0
- package/umd/src/utils/agent-message-runtime/AgentMessageProjectChange.d.ts +76 -0
- package/umd/src/utils/agent-message-runtime/AgentMessageTouchedExternalSource.d.ts +45 -0
- package/umd/src/utils/agent-message-runtime/parseAgentMessageRuntimeLogEvents.d.ts +3 -0
- package/umd/src/utils/agent-message-runtime/resolveAgentMessageTouchedExternalSources.d.ts +18 -0
- package/umd/src/utils/agent-message-runtime/resolveAgentMessageTouchedExternalSources.test.d.ts +1 -0
- package/umd/src/utils/random/$generateBookBoilerplate.test.d.ts +1 -0
- package/umd/src/version.d.ts +1 -1
- package/apps/agents-server/src/app/admin/task-manager/TaskManagerScopeTabs.tsx +0 -74
- package/esm/scripts/run-agent-messages/messages/resolveTouchedAgentProjects.d.ts +0 -15
- package/umd/scripts/run-agent-messages/messages/resolveTouchedAgentProjects.d.ts +0 -15
|
@@ -17,6 +17,9 @@ goalChat.plannedMessagesEmptyLabel: No planned messages. The agent will wake up
|
|
|
17
17
|
goalChat.plannedMessagesLoadErrorLabel: Failed to load planned messages.
|
|
18
18
|
goalChat.plannedMessageDefaultLabel: Planned wake-up
|
|
19
19
|
goalChat.plannedMessageIntervalLabel: Repeats every {interval}
|
|
20
|
+
goalChat.plannedMessageCronLabel: 'Repeats on cron {cron}'
|
|
21
|
+
goalChat.plannedMessageRunCountLabel: '{runCount} of {maxRunCount} runs done'
|
|
22
|
+
goalChat.plannedMessageWindowLabel: 'From {from} to {to}'
|
|
20
23
|
goalChat.plannedMessageCancelLabel: Cancel
|
|
21
24
|
goalChat.plannedMessageCancellingLabel: Cancelling
|
|
22
25
|
common.projects: Projects
|
|
@@ -170,6 +173,7 @@ header.chatHistory: Chat history
|
|
|
170
173
|
header.usageAnalytics: Usage analytics
|
|
171
174
|
header.taskManager: Task manager
|
|
172
175
|
header.vpsTaskManager: Task manager (all servers)
|
|
176
|
+
header.plannedMessageManager: Planned messages
|
|
173
177
|
header.messagesEmails: Messages & Emails
|
|
174
178
|
header.emailServer: Email server
|
|
175
179
|
header.backups: Backups
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { spaceTrim } from 'spacetrim';
|
|
2
|
-
import {
|
|
2
|
+
import { describeAgentPlannedMessageSchedule } from '../../../../src/book-3.0/describeAgentPlannedMessageSchedule';
|
|
3
3
|
import type { string_javascript_name } from '../../../../src/types/string_person_fullname';
|
|
4
4
|
import type { ToolFunction } from '../../../../src/scripting/javascript/JavascriptExecutionToolsOptions';
|
|
5
5
|
import { createToolExecutionEnvelope } from '../../../../src/commitments/_common/toolExecutionEnvelope';
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
createAgentGoalChatPlannedMessageActions,
|
|
10
10
|
type AgentGoalChatPlannedMessageDependencies,
|
|
11
11
|
type AgentGoalChatPlannedMessageItem,
|
|
12
|
+
type UpdateAgentGoalChatPlannedMessageResult,
|
|
12
13
|
} from '../utils/agentGoalChat/agentGoalChatPlannedMessageActions';
|
|
13
14
|
import { AGENT_GOAL_CHAT_TIMEOUT_TOOL_NAMES } from './agentGoalChatTimeoutTools';
|
|
14
15
|
|
|
@@ -41,14 +42,14 @@ export function createAgentGoalChatTimeoutToolFunctions(
|
|
|
41
42
|
const agentPermanentId = resolveAgentPermanentId(toolArguments);
|
|
42
43
|
const result = await actions.set({
|
|
43
44
|
agentPermanentId,
|
|
44
|
-
|
|
45
|
+
...createPlannedMessageScheduleArguments(toolArguments),
|
|
45
46
|
message: toolArguments.message,
|
|
46
47
|
});
|
|
47
48
|
|
|
48
49
|
return createToolExecutionEnvelope({
|
|
49
50
|
assistantMessage: `Planned message ${JSON.stringify(
|
|
50
51
|
result.timeoutId,
|
|
51
|
-
)} ${
|
|
52
|
+
)} ${describeAgentPlannedMessageSchedule(result)}.`,
|
|
52
53
|
toolResult: result,
|
|
53
54
|
});
|
|
54
55
|
} catch (error) {
|
|
@@ -56,6 +57,27 @@ export function createAgentGoalChatTimeoutToolFunctions(
|
|
|
56
57
|
}
|
|
57
58
|
},
|
|
58
59
|
|
|
60
|
+
async [AGENT_GOAL_CHAT_TIMEOUT_TOOL_NAMES.update](
|
|
61
|
+
toolArguments: AgentGoalChatTimeoutToolArguments,
|
|
62
|
+
): Promise<string> {
|
|
63
|
+
try {
|
|
64
|
+
const agentPermanentId = resolveAgentPermanentId(toolArguments);
|
|
65
|
+
const result = await actions.update({
|
|
66
|
+
agentPermanentId,
|
|
67
|
+
timeoutId: toolArguments.timeoutId,
|
|
68
|
+
...createPlannedMessageScheduleArguments(toolArguments),
|
|
69
|
+
...(toolArguments.message === undefined ? {} : { message: toolArguments.message }),
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
return createToolExecutionEnvelope({
|
|
73
|
+
assistantMessage: createUpdatedPlannedMessageAssistantMessage(result),
|
|
74
|
+
toolResult: result,
|
|
75
|
+
});
|
|
76
|
+
} catch (error) {
|
|
77
|
+
return serializeToolError('update', error);
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
|
|
59
81
|
async [AGENT_GOAL_CHAT_TIMEOUT_TOOL_NAMES.list](
|
|
60
82
|
toolArguments: AgentGoalChatTimeoutToolArguments,
|
|
61
83
|
): Promise<string> {
|
|
@@ -150,7 +172,7 @@ function createPlannedMessagesAssistantSummary(
|
|
|
150
172
|
const visiblePlannedMessages = plannedMessages.slice(0, MAX_ASSISTANT_VISIBLE_PLANNED_MESSAGES);
|
|
151
173
|
const summaryRows = visiblePlannedMessages.map((plannedMessage, index) => {
|
|
152
174
|
const message = plannedMessage.message?.trim() || 'Wake up and continue working towards the current goal.';
|
|
153
|
-
return `${index + 1}. ${plannedMessage.timeoutId} ${
|
|
175
|
+
return `${index + 1}. ${plannedMessage.timeoutId} ${describeAgentPlannedMessageSchedule(
|
|
154
176
|
plannedMessage,
|
|
155
177
|
)}: ${message}`;
|
|
156
178
|
});
|
|
@@ -170,20 +192,45 @@ function createPlannedMessagesAssistantSummary(
|
|
|
170
192
|
}
|
|
171
193
|
|
|
172
194
|
/**
|
|
173
|
-
*
|
|
195
|
+
* Builds the text shown to the model after one re-planning attempt.
|
|
174
196
|
*
|
|
175
|
-
* @param
|
|
176
|
-
* @returns
|
|
197
|
+
* @param result - Result of the shared re-planning action.
|
|
198
|
+
* @returns Assistant-visible sentence telling what really happened to the planned message.
|
|
177
199
|
*/
|
|
178
|
-
function
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
200
|
+
function createUpdatedPlannedMessageAssistantMessage(result: UpdateAgentGoalChatPlannedMessageResult): string {
|
|
201
|
+
if (result.status === 'updated') {
|
|
202
|
+
return `Planned message ${JSON.stringify(result.timeoutId)} now ${describeAgentPlannedMessageSchedule(
|
|
203
|
+
result,
|
|
204
|
+
)}.`;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
if (result.status === 'busy') {
|
|
208
|
+
return `Planned message ${JSON.stringify(
|
|
209
|
+
result.timeoutId,
|
|
210
|
+
)} is waking you right now and was left unchanged, so change it again afterwards.`;
|
|
184
211
|
}
|
|
185
212
|
|
|
186
|
-
return
|
|
213
|
+
return 'The planned message was already inactive or was not found.';
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* Collects the schedule arguments of one planned-message tool call.
|
|
218
|
+
*
|
|
219
|
+
* An argument the model did not pass stays absent, so an update changes only the fields it names.
|
|
220
|
+
*
|
|
221
|
+
* @param toolArguments - Raw arguments of the tool call.
|
|
222
|
+
* @returns Schedule fields passed to the shared planned-message actions.
|
|
223
|
+
*/
|
|
224
|
+
function createPlannedMessageScheduleArguments(
|
|
225
|
+
toolArguments: AgentGoalChatTimeoutToolArguments,
|
|
226
|
+
): AgentGoalChatTimeoutToolArguments {
|
|
227
|
+
return {
|
|
228
|
+
...(toolArguments.milliseconds === undefined ? {} : { milliseconds: toolArguments.milliseconds }),
|
|
229
|
+
...(toolArguments.cronExpression === undefined ? {} : { cronExpression: toolArguments.cronExpression }),
|
|
230
|
+
...(toolArguments.startsAt === undefined ? {} : { startsAt: toolArguments.startsAt }),
|
|
231
|
+
...(toolArguments.endsAt === undefined ? {} : { endsAt: toolArguments.endsAt }),
|
|
232
|
+
...(toolArguments.maxRunCount === undefined ? {} : { maxRunCount: toolArguments.maxRunCount }),
|
|
233
|
+
};
|
|
187
234
|
}
|
|
188
235
|
|
|
189
236
|
/**
|
|
@@ -193,7 +240,7 @@ function createPlannedMessageScheduleLabel(plannedMessage: {
|
|
|
193
240
|
* @param error - Caught failure.
|
|
194
241
|
* @returns JSON result readable by the model and persisted tool-call inspector.
|
|
195
242
|
*/
|
|
196
|
-
function serializeToolError(action: 'set' | 'list' | 'cancel', error: unknown): string {
|
|
243
|
+
function serializeToolError(action: 'set' | 'update' | 'list' | 'cancel', error: unknown): string {
|
|
197
244
|
return JSON.stringify({
|
|
198
245
|
action,
|
|
199
246
|
status: 'error',
|
|
@@ -5,10 +5,44 @@ import type { LlmToolDefinition } from '../../../../src/types/LlmToolDefinition'
|
|
|
5
5
|
*/
|
|
6
6
|
export const AGENT_GOAL_CHAT_TIMEOUT_TOOL_NAMES = {
|
|
7
7
|
set: 'set_timeout',
|
|
8
|
+
update: 'update_timeout',
|
|
8
9
|
list: 'list_timeouts',
|
|
9
10
|
cancel: 'cancel_timeout',
|
|
10
11
|
} as const;
|
|
11
12
|
|
|
13
|
+
/**
|
|
14
|
+
* Schedule parameters shared by the planning and re-planning tools.
|
|
15
|
+
*
|
|
16
|
+
* One planned message follows exactly one recurrence rule, bounded by an optional date window and an
|
|
17
|
+
* optional total number of runs, so both tools describe the very same fields.
|
|
18
|
+
*/
|
|
19
|
+
const AGENT_GOAL_CHAT_TIMEOUT_SCHEDULE_PARAMETERS = {
|
|
20
|
+
milliseconds: {
|
|
21
|
+
type: 'number',
|
|
22
|
+
description:
|
|
23
|
+
'Repeat interval in milliseconds between two wake-ups by this planned message (at least 60000). Use either this or `cronExpression`.',
|
|
24
|
+
},
|
|
25
|
+
cronExpression: {
|
|
26
|
+
type: 'string',
|
|
27
|
+
description:
|
|
28
|
+
'Five-field cron expression such as `0 9 * * 1-5`, evaluated in the server time zone. Use either this or `milliseconds`.',
|
|
29
|
+
},
|
|
30
|
+
maxRunCount: {
|
|
31
|
+
type: 'number',
|
|
32
|
+
description:
|
|
33
|
+
'How many times in total this planned message wakes you, for example 1 for a one-off message. Leave it out to repeat until cancelled.',
|
|
34
|
+
},
|
|
35
|
+
startsAt: {
|
|
36
|
+
type: 'string',
|
|
37
|
+
description:
|
|
38
|
+
'ISO date before which the planned message never wakes you, for example `2026-09-01T08:00:00.000Z`.',
|
|
39
|
+
},
|
|
40
|
+
endsAt: {
|
|
41
|
+
type: 'string',
|
|
42
|
+
description: 'ISO date after which the planned message stops waking you and finishes on its own.',
|
|
43
|
+
},
|
|
44
|
+
} as const;
|
|
45
|
+
|
|
12
46
|
/**
|
|
13
47
|
* Adds the Agents Server planned-message tools while preserving already registered tools.
|
|
14
48
|
*
|
|
@@ -27,22 +61,42 @@ export function createAgentGoalChatTimeoutTools(
|
|
|
27
61
|
tools.push({
|
|
28
62
|
name: AGENT_GOAL_CHAT_TIMEOUT_TOOL_NAMES.set,
|
|
29
63
|
description:
|
|
30
|
-
'Plan a message that
|
|
64
|
+
'Plan a message that wakes you in your singleton goal chat, like `setInterval`. Use this for useful autonomous follow-up towards your current goal; the wake-up is not tied to the human conversation where you schedule it, and it keeps repeating until its schedule is over or you cancel it. Do not plan a message that matches one you already planned.',
|
|
31
65
|
parameters: {
|
|
32
66
|
type: 'object',
|
|
33
67
|
properties: {
|
|
34
|
-
|
|
35
|
-
type: 'number',
|
|
36
|
-
description:
|
|
37
|
-
'Repeat interval in milliseconds between two wake-ups by this planned message (at least 60000).',
|
|
38
|
-
},
|
|
68
|
+
...AGENT_GOAL_CHAT_TIMEOUT_SCHEDULE_PARAMETERS,
|
|
39
69
|
message: {
|
|
40
70
|
type: 'string',
|
|
41
71
|
description:
|
|
42
72
|
'The concrete future instruction or reminder that will be delivered in your goal chat.',
|
|
43
73
|
},
|
|
44
74
|
},
|
|
45
|
-
required: ['
|
|
75
|
+
required: ['message'],
|
|
76
|
+
additionalProperties: false,
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (!tools.some((tool) => tool.name === AGENT_GOAL_CHAT_TIMEOUT_TOOL_NAMES.update)) {
|
|
82
|
+
tools.push({
|
|
83
|
+
name: AGENT_GOAL_CHAT_TIMEOUT_TOOL_NAMES.update,
|
|
84
|
+
description:
|
|
85
|
+
'Change the schedule or the text of one planned goal-chat message without losing its identity. Pass only the fields you want to change; every other field keeps its current value, and `null` removes a bound such as `endsAt`. Prefer this over cancelling and planning the same message again.',
|
|
86
|
+
parameters: {
|
|
87
|
+
type: 'object',
|
|
88
|
+
properties: {
|
|
89
|
+
timeoutId: {
|
|
90
|
+
type: 'string',
|
|
91
|
+
description: 'Identifier returned by `set_timeout` or `list_timeouts`.',
|
|
92
|
+
},
|
|
93
|
+
...AGENT_GOAL_CHAT_TIMEOUT_SCHEDULE_PARAMETERS,
|
|
94
|
+
message: {
|
|
95
|
+
type: 'string',
|
|
96
|
+
description: 'New instruction delivered by this planned message in your goal chat.',
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
required: ['timeoutId'],
|
|
46
100
|
additionalProperties: false,
|
|
47
101
|
},
|
|
48
102
|
});
|
|
@@ -52,7 +106,7 @@ export function createAgentGoalChatTimeoutTools(
|
|
|
52
106
|
tools.push({
|
|
53
107
|
name: AGENT_GOAL_CHAT_TIMEOUT_TOOL_NAMES.list,
|
|
54
108
|
description:
|
|
55
|
-
'List your planned goal-chat messages, including their identifiers,
|
|
109
|
+
'List your planned goal-chat messages, including their identifiers, whole schedules, and next execution times, across every conversation in which you were invoked. Messages which already finished are left out. Keep the listed messages as they are unless they no longer match your goal.',
|
|
56
110
|
parameters: {
|
|
57
111
|
type: 'object',
|
|
58
112
|
properties: {
|
|
@@ -74,7 +128,7 @@ export function createAgentGoalChatTimeoutTools(
|
|
|
74
128
|
tools.push({
|
|
75
129
|
name: AGENT_GOAL_CHAT_TIMEOUT_TOOL_NAMES.cancel,
|
|
76
130
|
description:
|
|
77
|
-
'Stop one
|
|
131
|
+
'Stop one planned goal-chat message by its timeout identifier, which also stops all of its remaining repetitions. List planned messages first when the identifier is not known.',
|
|
78
132
|
parameters: {
|
|
79
133
|
type: 'object',
|
|
80
134
|
properties: {
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { $getTableName } from '@/src/database/$getTableName';
|
|
2
|
+
import { $provideSupabaseForServer } from '@/src/database/$provideSupabaseForServer';
|
|
3
|
+
import type { AgentsServerDatabase } from '@/src/database/schema';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Minimal agent lookup row needed to name the agent behind one admin row.
|
|
7
|
+
*
|
|
8
|
+
* @private type of `loadAgentNamesByPermanentId`
|
|
9
|
+
*/
|
|
10
|
+
type AgentNameLookupRow = Pick<AgentsServerDatabase['public']['Tables']['Agent']['Row'], 'permanentId' | 'agentName'>;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Loads agent names keyed by permanent id, for admin listings that only store the permanent id.
|
|
14
|
+
*
|
|
15
|
+
* @param agentPermanentIds - Permanent ids of the agents to name, duplicates allowed.
|
|
16
|
+
* @returns Agent names keyed by permanent id, empty when nothing was asked for.
|
|
17
|
+
*
|
|
18
|
+
* @private internal admin utility of Agents Server
|
|
19
|
+
*/
|
|
20
|
+
export async function loadAgentNamesByPermanentId(
|
|
21
|
+
agentPermanentIds: ReadonlyArray<string>,
|
|
22
|
+
): Promise<Map<string, string | null>> {
|
|
23
|
+
const uniqueAgentPermanentIds = [...new Set(agentPermanentIds)].filter(Boolean);
|
|
24
|
+
|
|
25
|
+
if (uniqueAgentPermanentIds.length === 0) {
|
|
26
|
+
return new Map();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const supabase = $provideSupabaseForServer();
|
|
30
|
+
const agentTable = await $getTableName('Agent');
|
|
31
|
+
const { data, error } = await supabase
|
|
32
|
+
.from(agentTable)
|
|
33
|
+
.select('permanentId,agentName')
|
|
34
|
+
.in('permanentId', uniqueAgentPermanentIds);
|
|
35
|
+
|
|
36
|
+
if (error) {
|
|
37
|
+
throw new Error(`Failed to load admin listing agents: ${error.message}`);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return new Map(
|
|
41
|
+
((data || []) as Array<AgentNameLookupRow>)
|
|
42
|
+
.filter((agentRow): agentRow is AgentNameLookupRow & { permanentId: string } => Boolean(agentRow.permanentId))
|
|
43
|
+
.map((agentRow) => [agentRow.permanentId, agentRow.agentName] as const),
|
|
44
|
+
);
|
|
45
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { $getTableName } from '@/src/database/$getTableName';
|
|
2
|
+
import { $provideSupabaseForServer } from '@/src/database/$provideSupabaseForServer';
|
|
3
|
+
import type { AgentsServerDatabase } from '@/src/database/schema';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Minimal user lookup row needed to name the owner of one admin row.
|
|
7
|
+
*
|
|
8
|
+
* @private type of `loadUsernamesByUserId`
|
|
9
|
+
*/
|
|
10
|
+
type UsernameLookupRow = Pick<AgentsServerDatabase['public']['Tables']['User']['Row'], 'id' | 'username'>;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Loads usernames keyed by user id, for admin listings that only store the owning user id.
|
|
14
|
+
*
|
|
15
|
+
* @param userIds - Ids of the users to name, duplicates allowed.
|
|
16
|
+
* @returns Usernames keyed by user id, empty when nothing was asked for.
|
|
17
|
+
*
|
|
18
|
+
* @private internal admin utility of Agents Server
|
|
19
|
+
*/
|
|
20
|
+
export async function loadUsernamesByUserId(userIds: ReadonlyArray<number>): Promise<Map<number, string>> {
|
|
21
|
+
const uniqueUserIds = [...new Set(userIds)];
|
|
22
|
+
|
|
23
|
+
if (uniqueUserIds.length === 0) {
|
|
24
|
+
return new Map();
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const supabase = $provideSupabaseForServer();
|
|
28
|
+
const userTable = await $getTableName('User');
|
|
29
|
+
const { data, error } = await supabase.from(userTable).select('id,username').in('id', uniqueUserIds);
|
|
30
|
+
|
|
31
|
+
if (error) {
|
|
32
|
+
throw new Error(`Failed to load admin listing users: ${error.message}`);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return new Map(((data || []) as Array<UsernameLookupRow>).map((userRow) => [userRow.id, userRow.username] as const));
|
|
36
|
+
}
|