@sentry/junior 0.251.0 → 0.252.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/{admin-Dth5-1lw.js → admin-C_-XEdym.js} +1 -1
  2. package/dist/{agent-hooks-Ctw_jKaS.js → agent-hooks-DcoKnnxn.js} +8 -8
  3. package/dist/{agent-runner-dgQdPoGH.js → agent-runner-B-7S_DCS.js} +19 -19
  4. package/dist/api/schema.d.ts +32 -32
  5. package/dist/api.js +22 -22
  6. package/dist/app.js +38 -29
  7. package/dist/{assistant-reply-DBFRnZRx.js → assistant-reply-DbPLvsnL.js} +1 -1
  8. package/dist/{briefs-SDwPKduW.js → briefs-D4SMqc-r.js} +2 -2
  9. package/dist/{catalog-runtime-ulFceOA-.js → catalog-runtime-BQQiwwA7.js} +1 -1
  10. package/dist/cli/chat.js +15 -15
  11. package/dist/cli/check.js +3 -3
  12. package/dist/cli/main.js +2 -2
  13. package/dist/cli/plugins.js +4 -4
  14. package/dist/cli/snapshot-create.js +3 -3
  15. package/dist/cli/upgrade.js +3 -3
  16. package/dist/{client-DMt9kArs.js → client-ROZeVjq0.js} +2 -2
  17. package/dist/{config-iEOq080E.js → config-DNNkxfGS.js} +2 -2
  18. package/dist/{connections-BFU6GarA.js → connections-DJV6mLrH.js} +9 -9
  19. package/dist/{conversation-privacy-yZhQHnBe.js → conversation-privacy-B19umzIL.js} +1 -1
  20. package/dist/{credential-sync-GW0Rj57H.js → credential-sync-CEd2F5PS.js} +14 -14
  21. package/dist/{executor-BeH9LDKI.js → executor-_4bdoCxe.js} +59 -19
  22. package/dist/{images-hIXWwpRg.js → images-BAN7DHuO.js} +2 -2
  23. package/dist/instrumentation.js +2 -2
  24. package/dist/{job-queue-Bxlao6zL.js → job-queue-DSQx1qFY.js} +1 -1
  25. package/dist/{logging-BkI10z0D.js → logging-COUsTFIL.js} +1 -1
  26. package/dist/{message-BUcVfXmK.js → message-CtDDEwwV.js} +3 -3
  27. package/dist/nitro.js +3 -3
  28. package/dist/{oauth-callback-server-CYSEV35l.js → oauth-callback-server-CCiKrS0s.js} +2 -2
  29. package/dist/{pending-auth-h0B3FQEo.js → pending-auth-DDx3EU4M.js} +2 -2
  30. package/dist/{profile-AsD2uz0m.js → profile-DP4LKL6V.js} +4 -4
  31. package/dist/{registry-CN2Nie72.js → registry-CeEpPna6.js} +1 -1
  32. package/dist/{resolve-CrgwPWTS.js → resolve-B5ma3igH.js} +2 -2
  33. package/dist/{result-Cokw_MYC.js → result-Da0RVuWG.js} +6 -6
  34. package/dist/{runner-D-VZlBb_.js → runner-se1W_jGZ.js} +9 -9
  35. package/dist/{sandbox-egress-signals-Sie51RW0.js → sandbox-egress-signals-CS959-wm.js} +1 -1
  36. package/dist/{session-stop-DD0k0BXI.js → session-stop-DlRDisF5.js} +10 -10
  37. package/dist/{skills-CpyJJyqH.js → skills-CSzgs0EC.js} +2 -2
  38. package/dist/{spawn-DX3YjDtm.js → spawn-DT9fMjtd.js} +2 -2
  39. package/dist/{store-D-n2b2cI.js → store-Dx1U69mm.js} +6 -6
  40. package/dist/{task-queue-Bj2hFpjr.js → task-queue-BX9YrIsw.js} +3 -3
  41. package/dist/{task-runner-B3g16wjr.js → task-runner-CO55Olal.js} +14 -16
  42. package/dist/{tasks-DDzBxMio.js → tasks-DwGlFX9i.js} +129 -200
  43. package/dist/{thread-state-BlD6loX7.js → thread-state-Ces6tXmB.js} +6 -6
  44. package/dist/{turn-failure-response-BRlfATgu.js → turn-failure-response-B4VCvEQf.js} +7 -7
  45. package/dist/{turn-lifecycle-hMCbr_Ah.js → turn-lifecycle-B1VV58Yo.js} +1 -1
  46. package/dist/{turn-session-routing-DLb6eQMT.js → turn-session-routing-Dw2Kamg9.js} +1 -1
  47. package/dist/{validation-C2lG6yVH.js → validation-yJF9LKOv.js} +1 -1
  48. package/dist/{version-CyJ_kMe8.js → version-CZYqvIFh.js} +1 -1
  49. package/dist/version.js +1 -1
  50. package/dist/{viewer-C8u1HAdN.js → viewer-D96vo_42.js} +3 -3
  51. package/dist/{web-input-DHgIfSwj.js → web-input-5mls-41-.js} +65 -98
  52. package/dist/{work-hoPN8qjl.js → work-D2M2-zCO.js} +9 -9
  53. package/dist/{worker-CavJZxi8.js → worker-BwCpf8tB.js} +5 -5
  54. package/migrations/0055_automations.sql +125 -0
  55. package/migrations/meta/0055_snapshot.json +3948 -0
  56. package/migrations/meta/_journal.json +8 -1
  57. package/package.json +4 -4
@@ -1,4 +1,4 @@
1
- import { a as setUserAdminFromSql, d as getDb, n as listAdminUsersFromSql } from "./viewer-C8u1HAdN.js";
1
+ import { a as setUserAdminFromSql, d as getDb, n as listAdminUsersFromSql } from "./viewer-D96vo_42.js";
2
2
  import { CLI_USAGE } from "./cli/run.js";
3
3
  //#region src/cli/admin.ts
4
4
  /**
@@ -1,18 +1,18 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.js";
2
- import { a as embedTexts, r as completeObject } from "./client-DMt9kArs.js";
3
- import { I as isRecord$1, a as extractGenAiUsageSummary, d as logException, f as logInfo, p as logWarn, v as setSpanAttributes, w as withSpan, y as setSpanStatus } from "./logging-BkI10z0D.js";
2
+ import { a as embedTexts, r as completeObject } from "./client-ROZeVjq0.js";
3
+ import { I as isRecord$1, a as extractGenAiUsageSummary, d as logException, f as logInfo, p as logWarn, v as setSpanAttributes, w as withSpan, y as setSpanStatus } from "./logging-COUsTFIL.js";
4
4
  import { a as getClient$1 } from "./sentry-CgWZM_kV.js";
5
- import { t as canExposeConversationPayload } from "./conversation-privacy-yZhQHnBe.js";
6
- import { i as getChatConfig, n as botConfig, o as getSlackBotToken } from "./config-iEOq080E.js";
5
+ import { t as canExposeConversationPayload } from "./conversation-privacy-B19umzIL.js";
6
+ import { i as getChatConfig, n as botConfig, o as getSlackBotToken } from "./config-DNNkxfGS.js";
7
7
  import { r as defaultModelId } from "./model-profile-BwU8mqwD.js";
8
8
  import { d as parseSlackTeamId, g as parseSlackMessageTs, i as isActorUserId, o as parseActorUserId, u as parseSlackChannelReferenceId } from "./actor-BTtLaeWy.js";
9
- import { O as readUserTimezone, T as hasAgentTurnUsage, c as getConversationEventStore, d as getDb, f as getSqlExecutor, h as createSqlStore, i as resolveViewerUser, k as saveUserTimezone, r as readActorIdentity } from "./viewer-C8u1HAdN.js";
9
+ import { O as readUserTimezone, T as hasAgentTurnUsage, c as getConversationEventStore, d as getDb, f as getSqlExecutor, h as createSqlStore, i as resolveViewerUser, k as saveUserTimezone, r as readActorIdentity } from "./viewer-D96vo_42.js";
10
10
  import { c as juniorIdentities, d as juniorDestinations, l as juniorUsers, s as juniorConversations } from "./agent-invocations-D_YoNnAn.js";
11
- import { S as juniorAttachments, _ as juniorConversationEvents, b as juniorCodeChanges, f as juniorConversationParticipants, i as juniorWorkspaces, m as juniorConversationBriefs, n as juniorSnapshots, r as juniorWorkspaceRepos, x as juniorCodeRepositories, y as juniorConversationAnnotations } from "./executor-BeH9LDKI.js";
11
+ import { b as juniorCodeRepositories, d as juniorConversationParticipants, g as juniorConversationEvents, i as juniorWorkspaces, n as juniorSnapshots, p as juniorConversationBriefs, r as juniorWorkspaceRepos, v as juniorConversationAnnotations, x as juniorAttachments, y as juniorCodeChanges } from "./executor-_4bdoCxe.js";
12
12
  import { o as decodeStoredConversationEvent } from "./history-9pO1Zd4Y.js";
13
- import { p as credentialSubjectSchema } from "./registry-CN2Nie72.js";
13
+ import { p as credentialSubjectSchema } from "./registry-CeEpPna6.js";
14
14
  import { C as conversationReportEventSchema, F as readMessageAttachments, H as conversationBriefSchema, U as parseBriefInput, q as readMessageCardRefs } from "./conversation-T18Xlkx9.js";
15
- import { C as getDefaultRedisStateAdapterFor, N as SANDBOX_WORKSPACE_ROOT, k as sleep$1, l as isSandboxMissingError, n as hash, v as getVercelSandboxCredentials, w as getStateAdapter, x as runNonInteractiveCommand } from "./profile-AsD2uz0m.js";
15
+ import { C as getDefaultRedisStateAdapterFor, N as SANDBOX_WORKSPACE_ROOT, k as sleep$1, l as isSandboxMissingError, n as hash, v as getVercelSandboxCredentials, w as getStateAdapter, x as runNonInteractiveCommand } from "./profile-DP4LKL6V.js";
16
16
  import { i as isValidTimeZone } from "./cadence-D00SCzT1.js";
17
17
  import { n as briefEntriesFromReportEvents, s as generateBrief, t as BRIEF_PROMPT } from "./prompt-C04mP1hu.js";
18
18
  import { AsyncLocalStorage } from "node:async_hooks";
@@ -1,30 +1,30 @@
1
- import { b as getGatewayApiKey, c as hasCompactedConversationContext, d as unwrapCurrentInstruction, f as escapeXml, g as getProviderErrorAttributes, h as findProviderError, i as completeText, l as isCompactionSummaryText, m as createProviderError, n as GEN_AI_SERVER_ADDRESS, o as resolveGatewayModel, p as ProviderError, r as completeObject, s as COMPACTION_SUMMARY_PREFIX, t as GEN_AI_PROVIDER_NAME, u as renderCurrentInstruction, v as isProviderRetryError, x as resolveGatewayCredential, y as MISSING_GATEWAY_CREDENTIALS_ERROR } from "./client-DMt9kArs.js";
2
- import { C as withLogContext, F as normalizeIdentityEmail, I as isRecord$4, R as toOptionalString, a as extractGenAiUsageSummary, b as setTags, c as getLogContextAttributesForSpan, d as logException, f as logInfo, g as serializeGenAiAttribute, i as extractGenAiUsageAttributes, l as getTracePropagationHeaders, m as normalizeGenAiFinishReason, p as logWarn, u as logError, v as setSpanAttributes, w as withSpan, x as summarizeMessageText, y as setSpanStatus } from "./logging-BkI10z0D.js";
1
+ import { b as getGatewayApiKey, c as hasCompactedConversationContext, d as unwrapCurrentInstruction, f as escapeXml, g as getProviderErrorAttributes, h as findProviderError, i as completeText, l as isCompactionSummaryText, m as createProviderError, n as GEN_AI_SERVER_ADDRESS, o as resolveGatewayModel, p as ProviderError, r as completeObject, s as COMPACTION_SUMMARY_PREFIX, t as GEN_AI_PROVIDER_NAME, u as renderCurrentInstruction, v as isProviderRetryError, x as resolveGatewayCredential, y as MISSING_GATEWAY_CREDENTIALS_ERROR } from "./client-ROZeVjq0.js";
2
+ import { C as withLogContext, F as normalizeIdentityEmail, I as isRecord$4, R as toOptionalString, a as extractGenAiUsageSummary, b as setTags, c as getLogContextAttributesForSpan, d as logException, f as logInfo, g as serializeGenAiAttribute, i as extractGenAiUsageAttributes, l as getTracePropagationHeaders, m as normalizeGenAiFinishReason, p as logWarn, u as logError, v as setSpanAttributes, w as withSpan, x as summarizeMessageText, y as setSpanStatus } from "./logging-COUsTFIL.js";
3
3
  import { m as startInactiveSpan, v as withActiveSpan } from "./sentry-CgWZM_kV.js";
4
- import { a as toCanonicalInputMessage, c as toGenAiPayloadMetadata, i as runWithConversationPrivacy, l as toGenAiPayloadTraceAttributes, o as toCanonicalOutputMessage, r as resolveConversationPrivacy, s as toGenAiMessagesTraceAttributes, t as canExposeConversationPayload } from "./conversation-privacy-yZhQHnBe.js";
5
- import { n as botConfig, v as normalizeSlackEmojiName } from "./config-iEOq080E.js";
4
+ import { a as toCanonicalInputMessage, c as toGenAiPayloadMetadata, i as runWithConversationPrivacy, l as toGenAiPayloadTraceAttributes, o as toCanonicalOutputMessage, r as resolveConversationPrivacy, s as toGenAiMessagesTraceAttributes, t as canExposeConversationPayload } from "./conversation-privacy-B19umzIL.js";
5
+ import { n as botConfig, v as normalizeSlackEmojiName } from "./config-DNNkxfGS.js";
6
6
  import { a as formatModelProfiles, c as profileConfig, i as formatModelProfile, l as TURN_REASONING_LEVELS, n as ModelProfileNotConfiguredError, o as modelIdForProfile, s as modelProfileSchema } from "./model-profile-BwU8mqwD.js";
7
7
  import { a as isUserActor, d as parseSlackTeamId, f as parseSlackUserId, g as parseSlackMessageTs, l as parseSlackChannelId, u as parseSlackChannelReferenceId } from "./actor-BTtLaeWy.js";
8
- import { N as parseDestination, S as agentTurnCostUsd, T as hasAgentTurnUsage, c as getConversationEventStore, d as getDb, f as getSqlExecutor, l as getConversationMessageSearchStore, r as readActorIdentity, u as getConversationStore, x as addAgentTurnUsage } from "./viewer-C8u1HAdN.js";
8
+ import { N as parseDestination, S as agentTurnCostUsd, T as hasAgentTurnUsage, c as getConversationEventStore, d as getDb, f as getSqlExecutor, l as getConversationMessageSearchStore, r as readActorIdentity, u as getConversationStore, x as addAgentTurnUsage } from "./viewer-D96vo_42.js";
9
9
  import { a as juniorAgentInvocations, c as juniorIdentities, d as juniorDestinations, i as juniorAgentBindings, n as AGENT_INVOCATION_PARENT_MAILBOX_STATUSES, s as juniorConversations, t as AGENT_INVOCATION_MAILBOX_STATUSES } from "./agent-invocations-D_YoNnAn.js";
10
- import { C as juniorArtifacts, S as juniorAttachments, a as juniorSchedulerRuns, l as juniorStats, m as juniorConversationBriefs, y as juniorConversationAnnotations } from "./executor-BeH9LDKI.js";
10
+ import { S as juniorArtifacts, a as juniorSchedulerRuns, l as juniorStats, p as juniorConversationBriefs, v as juniorConversationAnnotations, x as juniorAttachments } from "./executor-_4bdoCxe.js";
11
11
  import { d as contextProvenance, f as instructionActors, m as sameActorIdentity, p as instructionProvenanceFor, t as KNOWN_CONVERSATION_EVENT_TYPES, u as agentInstructionProvenance } from "./history-9pO1Zd4Y.js";
12
12
  import { a as listReferenceFiles, c as soulPathCandidates, l as worldPathCandidates } from "./package-discovery-BVvSnQBB.js";
13
- import { a as resolveAuthTokenPlaceholder, c as fetchWithBoundedOAuthErrorBodies, d as credentialContextForActor, f as credentialContextSchema, h as CredentialUnavailableError, i as resolvePluginHeaderEnvRefs, l as getOAuthProviderErrorAttributes, m as credentialUserSubjectId, o as resolvePluginCommandEnv, s as OAuthProviderError } from "./registry-CN2Nie72.js";
14
- import { n as pluginCatalogRuntime } from "./catalog-runtime-ulFceOA-.js";
15
- import { a as parseSkillInvocation, i as parseSkillFile, n as findSkillByName, r as loadSkillsByName, t as discoverSkills } from "./skills-CpyJJyqH.js";
16
- import { B as postSlackEphemeralMessage, Bt as recordMcpProviderConnected, Ct as TURN_CONTEXT_TAG, Dt as loadConnectedMcpProviders, F as slackMention, Ft as recordAttachmentsDelivered, Ht as recordToolExecutionStarted, J as saveTurnCheckpoint, K as continuableMessages, L as addReactionToMessage, M as formatSlackLink, Mt as loadTurnRoute, Nt as openConversationProjection, Ot as loadConversationProjection, Pt as recordAgentsInstructionsUpdated, Qt as resolveTaskTitle, R as getSlackMessagePermalink, Rt as recordAuthorizationRequested, St as trimTrailingAssistantMessages, U as uploadFilesToConversation, Ut as recordTurnRoute, V as postSlackMessage, Zt as fallbackShortTitle, _t as isToolResultError, a as readScheduledAutomation, at as TurnToolCallLimitExceededError, b as saveEventAutomation, bt as retainRuntimeTurnContext, ct as isTurnExecutionLimitExceededError, dn as getAgentContextCompactionTriggerTokens, dt as getTerminalAssistantMessages, f as createEventAutomation, fn as getAgentContextInputLimitTokens, ft as getUserMessageInstructionText, g as getEventAutomation, gt as isContinuablePiBoundary, ht as isAssistantMessage, it as TurnSliceLimitExceededError, j as escapeSlackMrkdwnText, k as automationRevision, kt as loadLastModelProfile, lt as extractAssistantText, mn as piMessageFromHistoryItem, nt as TURN_LIMIT_DISABLED_REASON, o as saveScheduledAutomation, p as deleteEventAutomation, pn as historyItemFromPiMessage, pt as hasRuntimeTurnContext, q as loadTurnCheckpoint, r as listScheduledAutomationsForTeam, rt as TurnBudgetExceededError, st as createTurnLimitGate, t as createScheduledAutomation, un as estimateTextTokens, ut as getPiMessageRole, v as listEventAutomationsForTeam, vt as isToolResultMessage, wt as ToolInputError, x as setEventAutomationStatus, xt as stripRuntimeTurnContext, yt as normalizeToolNameFromResult, z as openSlackDirectMessage, zt as recordGuardianActionReviewed } from "./tasks-DDzBxMio.js";
17
- import { A as getWorkspaceSnapshotBuilder, B as STOP_WATCHING_TOOL_NAME, Bt as getFilePermalink, C as WorkspaceValidationError, D as setWorkspaceSnapshotBuild, Dt as matchSlackAttachments, E as setWorkspaceSnapshot, F as isSlackMessageTurn, Ft as defaultTimezone, G as createWatch, Gt as normalizeSlackConversationId, H as cancelWatch, Ht as getSlackClient, I as slackMessageTurnDisabledReason, It as resolveUserTimezone, J as getWatch, K as deliverWatch, L as RESOURCE_SUBSCRIPTION_DEFAULT_TTL_MS, M as workspaceRepoCheckoutPath, Mt as createPluginAnnotations, N as resolveChannelCapabilities, O as SANDBOX_RUNTIME, P as getSlackToolContext, R as RESOURCE_SUBSCRIPTION_MAX_TTL_MS, Rt as SlackActionError, S as updateWorkspace, T as loadSnapshotsForProfile, Ut as isConversationScopedChannel, V as cancelSubscriptions, W as createTimerWatch, Wt as isDmChannel$1, Xt as JUNIOR_NATIVE_EVENT_NAMESPACE, Y as listWatches, _ as deleteWorkspace, at as getDashboardConversationLink, b as listWorkspaces, c as getPluginTools, en as conversationNoteEvent, ft as createPluginLogger, g as createWorkspace, j as tryWorkspaceRepoCheckoutPath, jt as saveObjectAnnotations, k as deleteWorkspaceSnapshotBuilders, l as getPluginUserPromptContributions, q as findMatchingWatches, qt as withSlackRetries, r as createPluginHookRunner, s as getPluginSystemPromptContributions, st as getDashboardTaskLink, u as getPlugins, v as getWorkspace, w as invalidateReadySnapshot, y as getWorkspaceByName, z as RESOURCE_WATCH_TOOL_SOURCE, zt as downloadPrivateSlackFile } from "./agent-hooks-Ctw_jKaS.js";
13
+ import { a as resolveAuthTokenPlaceholder, c as fetchWithBoundedOAuthErrorBodies, d as credentialContextForActor, f as credentialContextSchema, h as CredentialUnavailableError, i as resolvePluginHeaderEnvRefs, l as getOAuthProviderErrorAttributes, m as credentialUserSubjectId, o as resolvePluginCommandEnv, s as OAuthProviderError } from "./registry-CeEpPna6.js";
14
+ import { n as pluginCatalogRuntime } from "./catalog-runtime-BQQiwwA7.js";
15
+ import { a as parseSkillInvocation, i as parseSkillFile, n as findSkillByName, r as loadSkillsByName, t as discoverSkills } from "./skills-CSzgs0EC.js";
16
+ import { B as postSlackEphemeralMessage, Bt as recordMcpProviderConnected, Ct as TURN_CONTEXT_TAG, Dt as loadConnectedMcpProviders, F as slackMention, Ft as recordAttachmentsDelivered, Ht as recordToolExecutionStarted, J as saveTurnCheckpoint, K as continuableMessages, L as addReactionToMessage, M as formatSlackLink, Mt as loadTurnRoute, Nt as openConversationProjection, Ot as loadConversationProjection, Pt as recordAgentsInstructionsUpdated, Qt as resolveTaskTitle, R as getSlackMessagePermalink, Rt as recordAuthorizationRequested, St as trimTrailingAssistantMessages, U as uploadFilesToConversation, Ut as recordTurnRoute, V as postSlackMessage, Zt as fallbackShortTitle, _t as isToolResultError, a as readScheduledAutomation, at as TurnToolCallLimitExceededError, b as saveEventAutomation, bt as retainRuntimeTurnContext, ct as isTurnExecutionLimitExceededError, dn as getAgentContextCompactionTriggerTokens, dt as getTerminalAssistantMessages, f as createEventAutomation, fn as getAgentContextInputLimitTokens, ft as getUserMessageInstructionText, g as getEventAutomation, gt as isContinuablePiBoundary, ht as isAssistantMessage, it as TurnSliceLimitExceededError, j as escapeSlackMrkdwnText, k as automationRevision, kt as loadLastModelProfile, lt as extractAssistantText, mn as piMessageFromHistoryItem, nt as TURN_LIMIT_DISABLED_REASON, o as saveScheduledAutomation, p as deleteEventAutomation, pn as historyItemFromPiMessage, pt as hasRuntimeTurnContext, q as loadTurnCheckpoint, r as listScheduledAutomationsForTeam, rt as TurnBudgetExceededError, st as createTurnLimitGate, t as createScheduledAutomation, un as estimateTextTokens, ut as getPiMessageRole, v as listEventAutomationsForTeam, vt as isToolResultMessage, wt as ToolInputError, x as setEventAutomationStatus, xt as stripRuntimeTurnContext, yt as normalizeToolNameFromResult, z as openSlackDirectMessage, zt as recordGuardianActionReviewed } from "./tasks-DwGlFX9i.js";
17
+ import { A as getWorkspaceSnapshotBuilder, B as STOP_WATCHING_TOOL_NAME, Bt as getFilePermalink, C as WorkspaceValidationError, D as setWorkspaceSnapshotBuild, Dt as matchSlackAttachments, E as setWorkspaceSnapshot, F as isSlackMessageTurn, Ft as defaultTimezone, G as createWatch, Gt as normalizeSlackConversationId, H as cancelWatch, Ht as getSlackClient, I as slackMessageTurnDisabledReason, It as resolveUserTimezone, J as getWatch, K as deliverWatch, L as RESOURCE_SUBSCRIPTION_DEFAULT_TTL_MS, M as workspaceRepoCheckoutPath, Mt as createPluginAnnotations, N as resolveChannelCapabilities, O as SANDBOX_RUNTIME, P as getSlackToolContext, R as RESOURCE_SUBSCRIPTION_MAX_TTL_MS, Rt as SlackActionError, S as updateWorkspace, T as loadSnapshotsForProfile, Ut as isConversationScopedChannel, V as cancelSubscriptions, W as createTimerWatch, Wt as isDmChannel$1, Xt as JUNIOR_NATIVE_EVENT_NAMESPACE, Y as listWatches, _ as deleteWorkspace, at as getDashboardConversationLink, b as listWorkspaces, c as getPluginTools, en as conversationNoteEvent, ft as createPluginLogger, g as createWorkspace, j as tryWorkspaceRepoCheckoutPath, jt as saveObjectAnnotations, k as deleteWorkspaceSnapshotBuilders, l as getPluginUserPromptContributions, q as findMatchingWatches, qt as withSlackRetries, r as createPluginHookRunner, s as getPluginSystemPromptContributions, st as getDashboardTaskLink, u as getPlugins, v as getWorkspace, w as invalidateReadySnapshot, y as getWorkspaceByName, z as RESOURCE_WATCH_TOOL_SOURCE, zt as downloadPrivateSlackFile } from "./agent-hooks-DcoKnnxn.js";
18
18
  import { B as briefLinkSchema, H as conversationBriefSchema, J as removedCardSchema, L as detectImageMediaType, R as isVisionImageMediaType, V as briefOutcomeStatusSchema } from "./conversation-T18Xlkx9.js";
19
- import { A as SANDBOX_DATA_ROOT, D as fenceLock, E as acquireActiveLock, F as sandboxSkillFile, I as sandboxSkillPathResolution, M as SANDBOX_SKILLS_ROOT, N as SANDBOX_WORKSPACE_ROOT, O as withLock, P as sandboxSkillDir, _ as workspaceSnapshotNotReadyUserMessage, a as isAbortError, b as buildNonInteractiveShellScript, c as isSandboxCommandStreamInterruptedError, d as isSnapshottingError, f as throwSandboxOperationError, g as isWorkspaceSnapshotNotReadyError, h as getWorkspaceSnapshotNotReadyError, i as ensureDockerDaemon, j as SANDBOX_REPOS_ROOT, k as sleep, l as isSandboxMissingError, m as WorkspaceSnapshotNotReadyError, n as hash, o as isAlreadyExistsError, p as wrapSandboxSetupError, r as isStale, s as isSandboxApiTransientError, t as create, u as isSandboxUnavailableError, v as getVercelSandboxCredentials, w as getStateAdapter, x as runNonInteractiveCommand, y as buildCommandScript } from "./profile-AsD2uz0m.js";
20
- import { n as canReusePendingAuthLink, t as abandonReplacedPendingAuth } from "./pending-auth-h0B3FQEo.js";
19
+ import { A as SANDBOX_DATA_ROOT, D as fenceLock, E as acquireActiveLock, F as sandboxSkillFile, I as sandboxSkillPathResolution, M as SANDBOX_SKILLS_ROOT, N as SANDBOX_WORKSPACE_ROOT, O as withLock, P as sandboxSkillDir, _ as workspaceSnapshotNotReadyUserMessage, a as isAbortError, b as buildNonInteractiveShellScript, c as isSandboxCommandStreamInterruptedError, d as isSnapshottingError, f as throwSandboxOperationError, g as isWorkspaceSnapshotNotReadyError, h as getWorkspaceSnapshotNotReadyError, i as ensureDockerDaemon, j as SANDBOX_REPOS_ROOT, k as sleep, l as isSandboxMissingError, m as WorkspaceSnapshotNotReadyError, n as hash, o as isAlreadyExistsError, p as wrapSandboxSetupError, r as isStale, s as isSandboxApiTransientError, t as create, u as isSandboxUnavailableError, v as getVercelSandboxCredentials, w as getStateAdapter, x as runNonInteractiveCommand, y as buildCommandScript } from "./profile-DP4LKL6V.js";
20
+ import { n as canReusePendingAuthLink, t as abandonReplacedPendingAuth } from "./pending-auth-DDx3EU4M.js";
21
21
  import { c as isTurnInputCommitLostError, i as TurnInputCommitLostError, r as CooperativeTurnYieldError, t as authorizationId } from "./oauth-authorization-BA4Dt6a7.js";
22
- import { a as isNoReplyMarker, i as NO_REPLY_MARKER, n as getAssistantReplyText, r as sanitizeAssistantText, t as decideReply } from "./assistant-reply-DBFRnZRx.js";
23
- import { C as registeredEventMatchSchema, D as requireSupportedEventMatch, E as requireEventIdentifier, I as readAutomationResult, L as remindMissingAutomationResult, M as FINISH_AUTOMATION_RUN_TOOL_NAME, N as automationResultSchema, S as pluginSupportsEvent, T as registeredResourceTypeSchema, _ as workspaceSnapshotWatch, b as eventNamespaceSchema, d as requireSlackChannelMessageScope, g as workspaceSnapshotFinishedEvent, h as WORKSPACE_SNAPSHOT_READY_EVENT, l as getEventCatalog, m as WORKSPACE_SNAPSHOT_FAILED_EVENT, n as markConversationsStopped, o as enqueueEventNotification, t as getConversationStoppedAtMs, v as automationEventCatalog, w as registeredEventTypeSchema, x as hasEventCatalogEntries } from "./session-stop-DD0k0BXI.js";
22
+ import { a as isNoReplyMarker, i as NO_REPLY_MARKER, n as getAssistantReplyText, r as sanitizeAssistantText, t as decideReply } from "./assistant-reply-DbPLvsnL.js";
23
+ import { C as registeredEventMatchSchema, D as requireSupportedEventMatch, E as requireEventIdentifier, I as readAutomationResult, L as remindMissingAutomationResult, M as FINISH_AUTOMATION_RUN_TOOL_NAME, N as automationResultSchema, S as pluginSupportsEvent, T as registeredResourceTypeSchema, _ as workspaceSnapshotWatch, b as eventNamespaceSchema, d as requireSlackChannelMessageScope, g as workspaceSnapshotFinishedEvent, h as WORKSPACE_SNAPSHOT_READY_EVENT, l as getEventCatalog, m as WORKSPACE_SNAPSHOT_FAILED_EVENT, n as markConversationsStopped, o as enqueueEventNotification, t as getConversationStoppedAtMs, v as automationEventCatalog, w as registeredEventTypeSchema, x as hasEventCatalogEntries } from "./session-stop-DlRDisF5.js";
24
24
  import { i as isValidTimeZone, r as getZonedDateTimeParts } from "./cadence-D00SCzT1.js";
25
- import { a as createSandboxSession, c as postinstall, d as getSandboxResources, i as bindSandboxFileSystem, l as setSnapshotSpanAttributes, n as isMissingError, o as stopSession, r as resolve$1, s as dependencies } from "./resolve-CrgwPWTS.js";
26
- import { a as getVercelConversationWorkQueue, f as getTurnRequestDeadline, n as sendNextWorkspaceSnapshotJob, r as sendWorkspaceSnapshotJob } from "./job-queue-Bxlao6zL.js";
27
- import { E as stopConversationWork } from "./store-D-n2b2cI.js";
25
+ import { a as createSandboxSession, c as postinstall, d as getSandboxResources, i as bindSandboxFileSystem, l as setSnapshotSpanAttributes, n as isMissingError, o as stopSession, r as resolve$1, s as dependencies } from "./resolve-B5ma3igH.js";
26
+ import { a as getVercelConversationWorkQueue, f as getTurnRequestDeadline, n as sendNextWorkspaceSnapshotJob, r as sendWorkspaceSnapshotJob } from "./job-queue-DSQx1qFY.js";
27
+ import { E as stopConversationWork } from "./store-Dx1U69mm.js";
28
28
  import { F as taskOutcomeInputSchema, M as compileScheduleIntent, N as scheduleIntentSchema, O as automationInstructionToolSchema, T as SCHEDULED_AUTOMATION_SYSTEM_ACTOR, j as ScheduleIntentError, k as automationTitleSchema } from "./automation-gznOMaQ2.js";
29
29
  import { r as isExperimentalFeatureEnabled } from "./experimental-Qn9rKLgx.js";
30
30
  import { n as privateTraceResultAttributes } from "./private-trace-result-BLvBjy_e.js";
@@ -20736,7 +20736,7 @@ function createAgentRunner(execute, options) {
20736
20736
  } } : void 0
20737
20737
  };
20738
20738
  if (run.instruction.storedAttachments?.length) {
20739
- const { loadInputImages } = await import("./images-hIXWwpRg.js").then((n) => n.n);
20739
+ const { loadInputImages } = await import("./images-BAN7DHuO.js").then((n) => n.n);
20740
20740
  const storage = nextRun.environment?.attachmentStorage;
20741
20741
  if (!storage) throw new Error("Attachment storage is unavailable.");
20742
20742
  nextRun.instruction = {
@@ -4329,14 +4329,6 @@ export declare const automationVersionSchema: z.ZodDiscriminatedUnion<[z.ZodObje
4329
4329
  system: "system";
4330
4330
  creator: "creator";
4331
4331
  }>;
4332
- outcomes: z.ZodArray<z.ZodObject<{
4333
- action: z.ZodLiteral<"send_message">;
4334
- destination: z.ZodObject<{
4335
- teamId: z.ZodString;
4336
- channelId: z.ZodString;
4337
- platform: z.ZodLiteral<"slack">;
4338
- }, z.core.$strict>;
4339
- }, z.core.$strict>>;
4340
4332
  schedule: z.ZodObject<{
4341
4333
  description: z.ZodString;
4342
4334
  kind: z.ZodEnum<{
@@ -4362,6 +4354,14 @@ export declare const automationVersionSchema: z.ZodDiscriminatedUnion<[z.ZodObje
4362
4354
  }, z.core.$strict>>;
4363
4355
  timezone: z.ZodString;
4364
4356
  }, z.core.$strict>;
4357
+ outcomes: z.ZodArray<z.ZodObject<{
4358
+ action: z.ZodLiteral<"send_message">;
4359
+ destination: z.ZodObject<{
4360
+ teamId: z.ZodString;
4361
+ channelId: z.ZodString;
4362
+ platform: z.ZodLiteral<"slack">;
4363
+ }, z.core.$strict>;
4364
+ }, z.core.$strict>>;
4365
4365
  title: z.ZodNullable<z.ZodString>;
4366
4366
  instruction: z.ZodString;
4367
4367
  }, z.core.$strict>;
@@ -4425,14 +4425,6 @@ export declare const automationVersionListSchema: z.ZodObject<{
4425
4425
  system: "system";
4426
4426
  creator: "creator";
4427
4427
  }>;
4428
- outcomes: z.ZodArray<z.ZodObject<{
4429
- action: z.ZodLiteral<"send_message">;
4430
- destination: z.ZodObject<{
4431
- teamId: z.ZodString;
4432
- channelId: z.ZodString;
4433
- platform: z.ZodLiteral<"slack">;
4434
- }, z.core.$strict>;
4435
- }, z.core.$strict>>;
4436
4428
  schedule: z.ZodObject<{
4437
4429
  description: z.ZodString;
4438
4430
  kind: z.ZodEnum<{
@@ -4458,6 +4450,14 @@ export declare const automationVersionListSchema: z.ZodObject<{
4458
4450
  }, z.core.$strict>>;
4459
4451
  timezone: z.ZodString;
4460
4452
  }, z.core.$strict>;
4453
+ outcomes: z.ZodArray<z.ZodObject<{
4454
+ action: z.ZodLiteral<"send_message">;
4455
+ destination: z.ZodObject<{
4456
+ teamId: z.ZodString;
4457
+ channelId: z.ZodString;
4458
+ platform: z.ZodLiteral<"slack">;
4459
+ }, z.core.$strict>;
4460
+ }, z.core.$strict>>;
4461
4461
  title: z.ZodNullable<z.ZodString>;
4462
4462
  instruction: z.ZodString;
4463
4463
  }, z.core.$strict>;
@@ -4645,25 +4645,11 @@ export declare const automationEditSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
4645
4645
  /** Partial edits require the revision returned by the edit read. */
4646
4646
  export declare const automationUpdateSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
4647
4647
  title: z.ZodOptional<z.ZodString>;
4648
+ instruction: z.ZodOptional<z.ZodString>;
4648
4649
  credentialMode: z.ZodOptional<z.ZodEnum<{
4649
4650
  system: "system";
4650
4651
  creator: "creator";
4651
4652
  }>>;
4652
- outcomes: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
4653
- action: z.ZodLiteral<"send_message">;
4654
- destination: z.ZodEnum<{
4655
- current_conversation: "current_conversation";
4656
- task_creator: "task_creator";
4657
- }>;
4658
- }, z.core.$strict>, z.ZodObject<{
4659
- action: z.ZodLiteral<"send_message">;
4660
- destination: z.ZodObject<{
4661
- platform: z.ZodLiteral<"slack">;
4662
- teamId: z.ZodString;
4663
- channelId: z.ZodString;
4664
- threadTs: z.ZodOptional<z.ZodString>;
4665
- }, z.core.$strict>;
4666
- }, z.core.$strict>]>>>;
4667
4653
  schedule: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
4668
4654
  kind: z.ZodLiteral<"one_off">;
4669
4655
  timezone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -4706,7 +4692,21 @@ export declare const automationUpdateSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
4706
4692
  startDate: z.ZodOptional<z.ZodNullable<z.ZodString>>;
4707
4693
  timezone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
4708
4694
  }, z.core.$strict>]>>;
4709
- instruction: z.ZodOptional<z.ZodString>;
4695
+ outcomes: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
4696
+ action: z.ZodLiteral<"send_message">;
4697
+ destination: z.ZodEnum<{
4698
+ current_conversation: "current_conversation";
4699
+ task_creator: "task_creator";
4700
+ }>;
4701
+ }, z.core.$strict>, z.ZodObject<{
4702
+ action: z.ZodLiteral<"send_message">;
4703
+ destination: z.ZodObject<{
4704
+ platform: z.ZodLiteral<"slack">;
4705
+ teamId: z.ZodString;
4706
+ channelId: z.ZodString;
4707
+ threadTs: z.ZodOptional<z.ZodString>;
4708
+ }, z.core.$strict>;
4709
+ }, z.core.$strict>]>>>;
4710
4710
  kind: z.ZodLiteral<"scheduled">;
4711
4711
  revision: z.ZodString;
4712
4712
  }, z.core.$strict>, z.ZodObject<{
package/dist/api.js CHANGED
@@ -1,26 +1,26 @@
1
- import { K as listChildAgents, L as editEventAutomation, Lt as createUserTokenStore, O as parseSlackThreadId, P as editScheduledAutomation, R as AutomationEditError, T as readLiveAttachment, V as resolveTaskOutcomes, bt as conversationSubtreeColumns, g as readStats, ot as getChildAgentLabel, yt as conversationSubtree, z as eventAutomationTriggerAvailable } from "./agent-runner-dgQdPoGH.js";
2
- import { d as logException, f as logInfo, p as logWarn } from "./logging-BkI10z0D.js";
1
+ import { K as listChildAgents, L as editEventAutomation, Lt as createUserTokenStore, O as parseSlackThreadId, P as editScheduledAutomation, R as AutomationEditError, T as readLiveAttachment, V as resolveTaskOutcomes, bt as conversationSubtreeColumns, g as readStats, ot as getChildAgentLabel, yt as conversationSubtree, z as eventAutomationTriggerAvailable } from "./agent-runner-B-7S_DCS.js";
2
+ import { d as logException, f as logInfo, p as logWarn } from "./logging-COUsTFIL.js";
3
3
  import { d as parseSlackTeamId, g as parseSlackMessageTs, l as parseSlackChannelId } from "./actor-BTtLaeWy.js";
4
- import { E as resolveRootConversationId, T as hasAgentTurnUsage, _ as locationFromRow, b as parseSessionSource, c as getConversationEventStore, d as getDb, f as getSqlExecutor, i as resolveViewerUser, m as withConversationEventLock, o as updateViewerDisplayName, t as findUserByEmail, u as getConversationStore, w as agentTurnUsageSchema, x as addAgentTurnUsage } from "./viewer-C8u1HAdN.js";
4
+ import { E as resolveRootConversationId, T as hasAgentTurnUsage, _ as locationFromRow, b as parseSessionSource, c as getConversationEventStore, d as getDb, f as getSqlExecutor, i as resolveViewerUser, m as withConversationEventLock, o as updateViewerDisplayName, t as findUserByEmail, u as getConversationStore, w as agentTurnUsageSchema, x as addAgentTurnUsage } from "./viewer-D96vo_42.js";
5
5
  import { c as juniorIdentities, d as juniorDestinations, l as juniorUsers, o as conversationReadColumns, s as juniorConversations } from "./agent-invocations-D_YoNnAn.js";
6
- import { _ as juniorConversationEvents, b as juniorCodeChanges, f as juniorConversationParticipants, g as juniorConversationMetrics, m as juniorConversationBriefs, v as juniorApiTokens, x as juniorCodeRepositories } from "./executor-BeH9LDKI.js";
6
+ import { _ as juniorApiTokens, b as juniorCodeRepositories, d as juniorConversationParticipants, g as juniorConversationEvents, h as juniorConversationMetrics, p as juniorConversationBriefs, y as juniorCodeChanges } from "./executor-_4bdoCxe.js";
7
7
  import { d as contextProvenance } from "./history-9pO1Zd4Y.js";
8
- import { A as requireAutomationRevision, D as sameDefinitionValue, E as readAutomationVersion, O as AutomationConflictError, a as readScheduledAutomation, b as saveEventAutomation, g as getEventAutomation, jt as loadTurnProjection, k as automationRevision, m as eventAutomationBelongsToUser, mn as piMessageFromHistoryItem, o as saveScheduledAutomation, w as automationDefinition, x as setEventAutomationStatus } from "./tasks-DDzBxMio.js";
9
- import { C as WorkspaceValidationError, Ct as readLatestConversationBrief, Ht as getSlackClient, Lt as lookupSlackUser, M as workspaceRepoCheckoutPath, Nt as listConversationAnnotations, O as SANDBOX_RUNTIME, Pt as listConversationAnnotationsById, S as updateWorkspace, Tt as buildSentryConversationUrl, _ as deleteWorkspace, _t as conversationHasParticipantEmail, b as listWorkspaces, bt as conversationNotArchivedForUser, ft as createPluginLogger, g as createWorkspace, gt as conversationArchivedForUser, ht as conversationArchivedForEmail, mt as conversationArchiveTimes, pt as readConversationAccessFromSql, qt as withSlackRetries, u as getPlugins, v as getWorkspace, vt as conversationHasParticipantUser, wt as readConversationEventPage, x as listWorkspacesByRepository, xt as viewerConversationMembership, yt as conversationNotArchivedForEmail } from "./agent-hooks-Ctw_jKaS.js";
8
+ import { A as requireAutomationRevision, D as sameDefinitionValue, E as readAutomationVersion, O as AutomationConflictError, a as readScheduledAutomation, b as saveEventAutomation, g as getEventAutomation, jt as loadTurnProjection, k as automationRevision, m as eventAutomationBelongsToUser, mn as piMessageFromHistoryItem, o as saveScheduledAutomation, w as automationDefinition, x as setEventAutomationStatus } from "./tasks-DwGlFX9i.js";
9
+ import { C as WorkspaceValidationError, Ct as readLatestConversationBrief, Ht as getSlackClient, Lt as lookupSlackUser, M as workspaceRepoCheckoutPath, Nt as listConversationAnnotations, O as SANDBOX_RUNTIME, Pt as listConversationAnnotationsById, S as updateWorkspace, Tt as buildSentryConversationUrl, _ as deleteWorkspace, _t as conversationHasParticipantEmail, b as listWorkspaces, bt as conversationNotArchivedForUser, ft as createPluginLogger, g as createWorkspace, gt as conversationArchivedForUser, ht as conversationArchivedForEmail, mt as conversationArchiveTimes, pt as readConversationAccessFromSql, qt as withSlackRetries, u as getPlugins, v as getWorkspace, vt as conversationHasParticipantUser, wt as readConversationEventPage, x as listWorkspacesByRepository, xt as viewerConversationMembership, yt as conversationNotArchivedForEmail } from "./agent-hooks-DcoKnnxn.js";
10
10
  import { A as forkConversationBodySchema, F as readMessageAttachments, I as INPUT_IMAGE_TYPES, O as createConversationBodySchema, T as conversationStatsReportSchema, _ as conversationParamsSchema, a as cancelConversationPendingMessagesBodySchema, c as conversationAttachmentParamsSchema, d as conversationDetailReportSchema, g as conversationFeedSchema, h as conversationFeedQuerySchema, i as archiveConversationResponseSchema, j as forkConversationResponseSchema, k as createConversationMessageBodySchema, m as conversationEventsQuerySchema, o as cancelConversationPendingMessagesResponseSchema, p as conversationEventPageSchema, r as archiveConversationBodySchema, t as acceptedConversationMessageSchema, u as conversationDetailQuerySchema, x as conversationPendingMessagesReportSchema } from "./conversation-T18Xlkx9.js";
11
- import { n as hash, t as create } from "./profile-AsD2uz0m.js";
12
- import { l as getEventCatalog, v as automationEventCatalog } from "./session-stop-DD0k0BXI.js";
11
+ import { n as hash, t as create } from "./profile-DP4LKL6V.js";
12
+ import { l as getEventCatalog, v as automationEventCatalog } from "./session-stop-DlRDisF5.js";
13
13
  import { t as getFirstRunAtMs } from "./cadence-D00SCzT1.js";
14
- import { t as getCachedSnapshot } from "./resolve-CrgwPWTS.js";
15
- import { a as getVercelConversationWorkQueue } from "./job-queue-Bxlao6zL.js";
16
- import { a as cancelHumanFacingPendingMessages, h as getConversation } from "./store-D-n2b2cI.js";
14
+ import { t as getCachedSnapshot } from "./resolve-B5ma3igH.js";
15
+ import { a as getVercelConversationWorkQueue } from "./job-queue-DSQx1qFY.js";
16
+ import { a as cancelHumanFacingPendingMessages, h as getConversation } from "./store-Dx1U69mm.js";
17
17
  import { M as compileScheduleIntent, P as weekdaySchema, _ as automationSummarySchema, b as automationVersionListSchema, c as automationLifecycleSchema, d as automationParamsSchema, f as automationRunListSchema, g as automationSchedulePreviewSchema, h as automationScheduleIntentSchema, i as automationExecutionListSchema, j as ScheduleIntentError, l as automationListQuerySchema, n as automationEditSchema, r as automationEventCatalogSchema, t as automationEditErrorSchema, u as automationListSchema, v as automationUpdateSchema, x as automationVersionParamsSchema, y as automationVersionActivateSchema } from "./automation-gznOMaQ2.js";
18
18
  import { C as skillReportsSchema, a as fillUtcHours, b as pluginsSchema, c as sumUtcHoursIntoSixHours, d as trailingUtcSixHourWindow, f as utcDayKey, h as pluginOperationalReportFeedSchema, i as fillUtcDays, l as trailingUtcDayWindow, m as healthReportSchema, n as DAY_MS$1, o as fillUtcSixHours, p as utcHourKey, r as HOUR_MS$1, s as startOfUtcHour, u as trailingUtcHourWindow, x as runtimeInfoReportSchema } from "./web-message-id-xPI_EFSC.js";
19
- import { B as readHealthReport, I as createVercelAttachmentStorage, _ as readViewerAutomationRuns, a as recordWebConversationActivity, b as readViewerAutomations, d as resolveSlackConversationContextFromThreadId, g as readViewerAutomationExecutions, h as readConversationSourceTask, i as createConversationId, j as stopConversationTurn, l as getProductionSlackAdapter, m as deleteViewerTask, o as webActorFromEmail, p as ViewerTaskNotFoundError, r as createAndEnqueueConversation, t as appendAndEnqueueWebMessage, u as formatSlackConversationRedactedLabel, v as readViewerAutomationSummary, w as clearSlackPendingReactions, x as resolveViewerTaskCandidate, y as readViewerAutomationVersions } from "./web-input-DHgIfSwj.js";
20
- import { A as readAutomationTitlesByConversationId, M as conversationActiveDaysColumn, N as conversationAggregateColumns, P as conversationRangeColumns } from "./task-runner-B3g16wjr.js";
21
- import { d as legacyWebMailboxMetadataSchema } from "./result-Cokw_MYC.js";
22
- import { a as startConnection, l as getWebAuthorization, n as isConnectableProvider, r as listConnections, t as disconnectConnection } from "./connections-BFU6GarA.js";
23
- import { t as decodeInputImages } from "./images-hIXWwpRg.js";
19
+ import { B as readHealthReport, I as createVercelAttachmentStorage, _ as readViewerAutomationRuns, a as recordWebConversationActivity, b as readViewerAutomations, d as resolveSlackConversationContextFromThreadId, g as readViewerAutomationExecutions, h as readConversationSourceTask, i as createConversationId, j as stopConversationTurn, l as getProductionSlackAdapter, m as deleteViewerTask, o as webActorFromEmail, p as ViewerTaskNotFoundError, r as createAndEnqueueConversation, t as appendAndEnqueueWebMessage, u as formatSlackConversationRedactedLabel, v as readViewerAutomationSummary, w as clearSlackPendingReactions, x as resolveViewerTaskCandidate, y as readViewerAutomationVersions } from "./web-input-5mls-41-.js";
20
+ import { A as readAutomationTitlesByConversationId, M as conversationActiveDaysColumn, N as conversationAggregateColumns, P as conversationRangeColumns } from "./task-runner-CO55Olal.js";
21
+ import { d as legacyWebMailboxMetadataSchema } from "./result-Da0RVuWG.js";
22
+ import { a as startConnection, l as getWebAuthorization, n as isConnectableProvider, r as listConnections, t as disconnectConnection } from "./connections-DJV6mLrH.js";
23
+ import { t as decodeInputImages } from "./images-BAN7DHuO.js";
24
24
  import { C as locationParamsSchema, E as activitySixHours$1, H as conversationChildAgentsReportSchema, I as codeOverviewReportSchema, L as codePersonReportSchema, M as startConnectionResponseSchema, O as connectionListSchema, R as codeRepositoryParamsSchema, S as locationDirectoryReportSchema, T as activityHours$1, U as stopConversationTurnResponseSchema, W as apiErrorSchema, _ as actorProfileReportSchema, a as workspaceBodySchema, d as createdPersonalTokenSchema, f as personalTokenListSchema, g as actorDirectoryReportSchema, h as revokePersonalTokenResponseSchema, i as deleteWorkspaceResponseSchema, j as disconnectConnectionResponseSchema, k as connectionParamsSchema, l as workspaceSchema, m as personalTokenParamsSchema, n as statsReportSchema, o as workspaceListSchema, s as workspaceParamsSchema, u as createPersonalTokenBodySchema, v as personParamsSchema, w as activityDays$1, x as locationDetailReportSchema, y as personalSpendReportSchema, z as codeRepositoryReportSchema } from "./schema-C9Vnyb_f.js";
25
25
  import { Hono } from "hono";
26
26
  import path from "node:path";
@@ -3592,7 +3592,7 @@ async function readPeoplePluginReports(args) {
3592
3592
  reports: [],
3593
3593
  source: "plugins"
3594
3594
  });
3595
- const { getPluginProfileReports } = await import("./agent-hooks-Ctw_jKaS.js").then((n) => n.t);
3595
+ const { getPluginProfileReports } = await import("./agent-hooks-DcoKnnxn.js").then((n) => n.t);
3596
3596
  return pluginOperationalReportFeedSchema.parse({
3597
3597
  generatedAt: new Date(nowMs).toISOString(),
3598
3598
  reports: await getPluginProfileReports({
@@ -4214,7 +4214,7 @@ async function restorableOutcomes(current, outcomes) {
4214
4214
  async function activateViewerAutomationVersion(user, kind, id, input) {
4215
4215
  const current = await requireEditableAutomation(user, kind, id);
4216
4216
  requireAutomationRevision(current.task, input.revision);
4217
- const saved = await readAutomationVersion(getDb(), kind, id, input.version);
4217
+ const saved = await readAutomationVersion(getDb(), id, input.version);
4218
4218
  if (!saved) throw new AutomationEditError("This version does not exist.", "version");
4219
4219
  const { definition } = saved;
4220
4220
  if (sameDefinitionValue(definition, automationDefinition(current.task))) return editView(current, current.ownedByViewer);
@@ -4565,7 +4565,7 @@ function readDescriptionText(home) {
4565
4565
  }
4566
4566
  /** Read discovered skill names for authenticated runtime diagnostics. */
4567
4567
  async function readSkillReports() {
4568
- const { discoverSkills } = await import("./skills-CpyJJyqH.js").then((n) => n.o);
4568
+ const { discoverSkills } = await import("./skills-CSzgs0EC.js").then((n) => n.o);
4569
4569
  const skills = await discoverSkills();
4570
4570
  return skillReportsSchema.parse(skills.map((skill) => ({
4571
4571
  name: skill.name,
@@ -4574,7 +4574,7 @@ async function readSkillReports() {
4574
4574
  }
4575
4575
  /** Read safe configured plugin metadata for authenticated runtime diagnostics. */
4576
4576
  async function readPlugins() {
4577
- const { pluginCatalogRuntime } = await import("./catalog-runtime-ulFceOA-.js").then((n) => n.t);
4577
+ const { pluginCatalogRuntime } = await import("./catalog-runtime-BQQiwwA7.js").then((n) => n.t);
4578
4578
  return pluginsSchema.parse(pluginCatalogRuntime.getProviders().map((plugin) => ({
4579
4579
  configKeys: plugin.manifest.configKeys ?? [],
4580
4580
  description: plugin.manifest.description,
@@ -4586,7 +4586,7 @@ async function readPlugins() {
4586
4586
  async function readRuntimeInfoReport() {
4587
4587
  const [{ homeDir }, { pluginCatalogRuntime }, plugins, skills] = await Promise.all([
4588
4588
  import("./package-discovery-BVvSnQBB.js").then((n) => n.r),
4589
- import("./catalog-runtime-ulFceOA-.js").then((n) => n.t),
4589
+ import("./catalog-runtime-BQQiwwA7.js").then((n) => n.t),
4590
4590
  readPlugins(),
4591
4591
  readSkillReports()
4592
4592
  ]);
@@ -4603,7 +4603,7 @@ async function readRuntimeInfoReport() {
4603
4603
  /** Read sanitized operational summaries contributed by plugins. */
4604
4604
  async function readPluginOperationalReportFeed() {
4605
4605
  const nowMs = Date.now();
4606
- const { getPluginOperationalReports } = await import("./agent-hooks-Ctw_jKaS.js").then((n) => n.t);
4606
+ const { getPluginOperationalReports } = await import("./agent-hooks-DcoKnnxn.js").then((n) => n.t);
4607
4607
  return pluginOperationalReportFeedSchema.parse({
4608
4608
  source: "plugins",
4609
4609
  generatedAt: new Date(nowMs).toISOString(),
package/dist/app.js CHANGED
@@ -1,38 +1,38 @@
1
- import { At as consumeSandboxEgressPermissionDeniedSignal, B as effectiveTaskOutcomes, Ct as ingestEvent, Dt as SANDBOX_EGRESS_PROXY_PATH, E as requestAttachmentDeletion, Et as shouldPropagateSandboxEgressTrace, F as logScheduledAutomationRunSkipped, I as scheduledAutomationRunAttributes, It as startOAuthFlow, Kt as getConfigDefaults, Lt as createUserTokenStore, Nt as formatProviderLabel, O as parseSlackThreadId, Ot as clearSandboxEgressSignals, St as processWorkspaceSnapshotJob, Tt as normalizeSandboxEgressTracePropagationDomains, U as stopConversationSession, W as recordSubagentEnded, b as unpublishedArtifactHeaders, i as executeCredentialedEgressRequest, jt as parseSandboxEgressCredentialToken, kt as consumeSandboxEgressAuthRequiredSignal, lt as listPendingAgentInvocationMailboxAppends, n as executeAgentRun, qt as setConfigDefaults, t as createAgentRunner, ut as listPendingAgentInvocationResults, v as publicArtifactHeaders, w as collectAttachmentGarbage, wt as resolveSandboxEgressProviderForHost, x as lookupSlackUserProfile, y as readPublicArtifact } from "./agent-runner-dgQdPoGH.js";
2
- import { C as withLogContext, O as JUNIOR_PLUGIN_TASK_CALLBACK_ROUTE, S as withContext, d as logException, f as logInfo, j as JUNIOR_WORKSPACE_SNAPSHOT_JOB_CALLBACK_ROUTE, p as logWarn, r as createRequestContext, v as setSpanAttributes, w as withSpan, y as setSpanStatus } from "./logging-BkI10z0D.js";
1
+ import { At as consumeSandboxEgressPermissionDeniedSignal, B as effectiveTaskOutcomes, Ct as ingestEvent, Dt as SANDBOX_EGRESS_PROXY_PATH, E as requestAttachmentDeletion, Et as shouldPropagateSandboxEgressTrace, F as logScheduledAutomationRunSkipped, I as scheduledAutomationRunAttributes, It as startOAuthFlow, Kt as getConfigDefaults, Lt as createUserTokenStore, Nt as formatProviderLabel, O as parseSlackThreadId, Ot as clearSandboxEgressSignals, St as processWorkspaceSnapshotJob, Tt as normalizeSandboxEgressTracePropagationDomains, U as stopConversationSession, W as recordSubagentEnded, b as unpublishedArtifactHeaders, i as executeCredentialedEgressRequest, jt as parseSandboxEgressCredentialToken, kt as consumeSandboxEgressAuthRequiredSignal, lt as listPendingAgentInvocationMailboxAppends, n as executeAgentRun, qt as setConfigDefaults, t as createAgentRunner, ut as listPendingAgentInvocationResults, v as publicArtifactHeaders, w as collectAttachmentGarbage, wt as resolveSandboxEgressProviderForHost, x as lookupSlackUserProfile, y as readPublicArtifact } from "./agent-runner-B-7S_DCS.js";
2
+ import { C as withLogContext, O as JUNIOR_PLUGIN_TASK_CALLBACK_ROUTE, S as withContext, d as logException, f as logInfo, j as JUNIOR_WORKSPACE_SNAPSHOT_JOB_CALLBACK_ROUTE, p as logWarn, r as createRequestContext, v as setSpanAttributes, w as withSpan, y as setSpanStatus } from "./logging-COUsTFIL.js";
3
3
  import { n as captureMessage, r as continueTrace } from "./sentry-CgWZM_kV.js";
4
- import { t as JUNIOR_VERSION } from "./version-CyJ_kMe8.js";
5
- import { _ as snapshotRuntimeConfig, d as restoreRuntimeConfig, f as setBotModelConfig, g as setSlackReactionConfig, h as setRuntimeLimits, i as getChatConfig, m as setProfiles, n as botConfig, o as getSlackBotToken, p as setCrossActorMidRunMode, u as resetRuntimeConfig } from "./config-iEOq080E.js";
4
+ import { t as JUNIOR_VERSION } from "./version-CZYqvIFh.js";
5
+ import { _ as snapshotRuntimeConfig, d as restoreRuntimeConfig, f as setBotModelConfig, g as setSlackReactionConfig, h as setRuntimeLimits, i as getChatConfig, m as setProfiles, n as botConfig, o as getSlackBotToken, p as setCrossActorMidRunMode, u as resetRuntimeConfig } from "./config-DNNkxfGS.js";
6
6
  import { _ as slackMessageTsSchema, d as parseSlackTeamId, f as parseSlackUserId, h as slackUserIdSchema, m as slackTeamIdSchema, o as parseActorUserId, p as slackChannelIdSchema } from "./actor-BTtLaeWy.js";
7
- import { c as getConversationEventStore, d as getDb, f as getSqlExecutor, g as withConversationMutationLock, m as withConversationEventLock, r as readActorIdentity, u as getConversationStore } from "./viewer-C8u1HAdN.js";
7
+ import { c as getConversationEventStore, d as getDb, f as getSqlExecutor, g as withConversationMutationLock, m as withConversationEventLock, r as readActorIdentity, u as getConversationStore } from "./viewer-D96vo_42.js";
8
8
  import { a as juniorAgentInvocations, d as juniorDestinations, i as juniorAgentBindings, s as juniorConversations } from "./agent-invocations-D_YoNnAn.js";
9
- import { _ as juniorConversationEvents, a as juniorSchedulerRuns, m as juniorConversationBriefs, o as juniorSchedulerTasks } from "./executor-BeH9LDKI.js";
10
- import { n as pluginCatalogRuntime } from "./catalog-runtime-ulFceOA-.js";
11
- import { C as eventAutomationRunLimitReason, F as slackMention, G as slackExternalRefIdSchema, S as admitEventAutomationRun, W as slackEntitySchema, Wt as appendConversationMessages, Xt as settleConversationTitleWork, a as readScheduledAutomation, c as scheduledRunId, d as collectEventAutomationMatchKeys, h as findMatchingEventAutomations, l as withScheduledAutomationLock, n as listScheduledAutomations, qt as projectConversationMessages, r as listScheduledAutomationsForTeam, s as saveScheduledAutomationInLock, u as blockEventAutomation } from "./tasks-DDzBxMio.js";
12
- import { $ as bindSlackDirectCredentialSubject, At as resolveRootVisibility, Ht as getSlackClient, Jt as getWorkspaceTeamId, Nt as listConversationAnnotations, Q as bindScheduledAutomationCredentialSubject, U as collectEventMatchKeys, Wt as isDmChannel, X as takeDueTimerWatches, Yt as runWithWorkspaceTeamId, Z as bindEventAutomationCredentialSubject, a as getPluginRoutes, at as getDashboardConversationLink, ct as setDashboardConversationLinkOptions, d as setPlugins, et as verifyEventAutomationCredentialSubject, f as validatePlugins, ft as createPluginLogger, h as setBriefsConfig, i as getPluginApiRoutes, lt as createPluginState, nt as verifySlackDirectCredentialSubject, pt as readConversationAccessFromSql, q as findMatchingWatches, st as getDashboardTaskLink, tt as verifyScheduledAutomationCredentialSubject, u as getPlugins } from "./agent-hooks-Ctw_jKaS.js";
9
+ import { a as juniorSchedulerRuns, g as juniorConversationEvents, p as juniorConversationBriefs, s as juniorAutomations } from "./executor-_4bdoCxe.js";
10
+ import { n as pluginCatalogRuntime } from "./catalog-runtime-BQQiwwA7.js";
11
+ import { C as eventAutomationRunLimitReason, F as slackMention, G as slackExternalRefIdSchema, S as admitEventAutomationRun, W as slackEntitySchema, Wt as appendConversationMessages, Xt as settleConversationTitleWork, a as readScheduledAutomation, c as scheduledRunId, d as collectEventAutomationMatchKeys, h as findMatchingEventAutomations, l as withScheduledAutomationLock, n as listScheduledAutomations, qt as projectConversationMessages, r as listScheduledAutomationsForTeam, s as saveScheduledAutomationInLock, u as blockEventAutomation } from "./tasks-DwGlFX9i.js";
12
+ import { $ as bindSlackDirectCredentialSubject, At as resolveRootVisibility, Ht as getSlackClient, Jt as getWorkspaceTeamId, Nt as listConversationAnnotations, Q as bindScheduledAutomationCredentialSubject, U as collectEventMatchKeys, Wt as isDmChannel, X as takeDueTimerWatches, Yt as runWithWorkspaceTeamId, Z as bindEventAutomationCredentialSubject, a as getPluginRoutes, at as getDashboardConversationLink, ct as setDashboardConversationLinkOptions, d as setPlugins, et as verifyEventAutomationCredentialSubject, f as validatePlugins, ft as createPluginLogger, h as setBriefsConfig, i as getPluginApiRoutes, lt as createPluginState, nt as verifySlackDirectCredentialSubject, pt as readConversationAccessFromSql, q as findMatchingWatches, st as getDashboardTaskLink, tt as verifyScheduledAutomationCredentialSubject, u as getPlugins } from "./agent-hooks-DcoKnnxn.js";
13
13
  import { W as annotationCard } from "./conversation-T18Xlkx9.js";
14
- import { O as withLock$1, w as getStateAdapter } from "./profile-AsD2uz0m.js";
15
- import { c as getThreadStopDecision } from "./pending-auth-h0B3FQEo.js";
16
- import { O as renderTaskInput, f as slackChannelMessageEvent, l as getEventCatalog, p as slackChannelMessageReplyThreadTs, u as SLACK_EVENT_NAMESPACE, y as eventGuidance } from "./session-stop-DD0k0BXI.js";
14
+ import { O as withLock$1, w as getStateAdapter } from "./profile-DP4LKL6V.js";
15
+ import { c as getThreadStopDecision } from "./pending-auth-DDx3EU4M.js";
16
+ import { O as renderTaskInput, f as slackChannelMessageEvent, l as getEventCatalog, p as slackChannelMessageReplyThreadTs, u as SLACK_EVENT_NAMESPACE, y as eventGuidance } from "./session-stop-DlRDisF5.js";
17
17
  import { n as getNextRunAtMs } from "./cadence-D00SCzT1.js";
18
- import { f as setSandboxResourceConfig, u as getSandboxResourceConfig } from "./resolve-CrgwPWTS.js";
19
- import { a as getVercelConversationWorkQueue, g as isConversationQueueMessageRejectedError, h as conversationQueueMessageSchema, i as verifyWorkspaceSnapshotJobMessage, o as resolveConversationWorkQueueTopic, s as verifyConversationQueueMessage, t as WORKSPACE_SNAPSHOT_JOB_QUEUE_TOPIC } from "./job-queue-Bxlao6zL.js";
20
- import { A as hasRunnableConversationWork$1, M as isInvalidConversationRecordError, O as CONVERSATION_WORK_STALE_ENQUEUE_MS, S as removeActiveConversation, _ as hasRunnableConversationWork, c as clearExpiredConversationLease, g as getConversationWorkState, h as getConversation, m as ensureConversationWake, r as appendAndEnqueueInboundMessage, v as listActiveConversationIds } from "./store-D-n2b2cI.js";
18
+ import { f as setSandboxResourceConfig, u as getSandboxResourceConfig } from "./resolve-B5ma3igH.js";
19
+ import { a as getVercelConversationWorkQueue, g as isConversationQueueMessageRejectedError, h as conversationQueueMessageSchema, i as verifyWorkspaceSnapshotJobMessage, o as resolveConversationWorkQueueTopic, s as verifyConversationQueueMessage, t as WORKSPACE_SNAPSHOT_JOB_QUEUE_TOPIC } from "./job-queue-DSQx1qFY.js";
20
+ import { A as hasRunnableConversationWork$1, M as isInvalidConversationRecordError, O as CONVERSATION_WORK_STALE_ENQUEUE_MS, S as removeActiveConversation, _ as hasRunnableConversationWork, c as clearExpiredConversationLease, g as getConversationWorkState, h as getConversation, m as ensureConversationWake, r as appendAndEnqueueInboundMessage, v as listActiveConversationIds } from "./store-Dx1U69mm.js";
21
21
  import { D as scheduledRunSchema } from "./automation-gznOMaQ2.js";
22
22
  import { i as setExperimentalFeatures, n as getExperimentalFeatures, r as isExperimentalFeatureEnabled } from "./experimental-Qn9rKLgx.js";
23
- import { n as validatePluginRegistrations, t as validatePluginEgressCredentialHooks } from "./validation-C2lG6yVH.js";
23
+ import { n as validatePluginRegistrations, t as validatePluginEgressCredentialHooks } from "./validation-yJF9LKOv.js";
24
24
  import { a as pluginRuntimeRegistrationsFromPluginSet, n as pluginCatalogConfigFromEnv, r as pluginCatalogConfigFromPluginSet, t as defineJuniorPlugins } from "./plugins-egKWjgue.js";
25
- import { A as withNormalizedThreadId, C as buildSlackInboundMessage, D as isSlackMessageStopped, E as verifySlackSignature, F as renderSlackObjectCard, I as createVercelAttachmentStorage, M as THREAD_OPTOUT_ACK, N as startProcessingReaction, O as stopSlackThread, P as parseContent, R as enqueueAgentDispatch, S as recordSkippedConversationMessage, T as runWithSlackInstallation, a as recordWebConversationActivity, c as createProductionSlackWebhookServices, f as createSlackWebApiStatusSender, j as stopConversationTurn, k as normalizeIncomingSlackThreadId, l as getProductionSlackAdapter, n as conversationTurnIdForMessage, o as webActorFromEmail, s as createProductionConversationWorkOptions, t as appendAndEnqueueWebMessage, v as readViewerAutomationSummary, w as clearSlackPendingReactions, z as GET$3 } from "./web-input-DHgIfSwj.js";
26
- import { a as confirmDispatchMailboxAppend, b as notifyAutomationBlocked, f as getPluginDispatchProjection, j as recordAutomationExecution, m as listPendingDispatchMailboxAppends, o as createOrGetDispatch, p as isTerminalDispatchStatus, s as getDispatchConversationId, t as processPluginTask, u as getDispatchRecord, v as markDispatchFailed } from "./task-runner-B3g16wjr.js";
27
- import { o as getAuthPausedConversationTurnId, t as enqueueAgentInvocationResult } from "./result-Cokw_MYC.js";
28
- import { r as enqueueAgentInvocation } from "./work-hoPN8qjl.js";
29
- import { s as coerceThreadConversationState } from "./thread-state-BlD6loX7.js";
30
- import { o as unlinkProvider } from "./connections-BFU6GarA.js";
31
- import { a as GET$4, i as publishAppHomeView, r as GET$5, t as receiveLocalOAuthCredential } from "./credential-sync-GW0Rj57H.js";
32
- import { a as registerVercelPluginTaskDevConsumer, n as createVercelPluginTaskCallback, s as queueCallback } from "./task-queue-Bj2hFpjr.js";
33
- import { t as processConversationWork } from "./worker-CavJZxi8.js";
34
- import { t as bindMessageAgent } from "./message-BUcVfXmK.js";
35
- import { t as bindSpawnAgent } from "./spawn-DX3YjDtm.js";
25
+ import { A as withNormalizedThreadId, C as buildSlackInboundMessage, D as isSlackMessageStopped, E as verifySlackSignature, F as renderSlackObjectCard, I as createVercelAttachmentStorage, M as THREAD_OPTOUT_ACK, N as startProcessingReaction, O as stopSlackThread, P as parseContent, R as enqueueAgentDispatch, S as recordSkippedConversationMessage, T as runWithSlackInstallation, a as recordWebConversationActivity, c as createProductionSlackWebhookServices, f as createSlackWebApiStatusSender, j as stopConversationTurn, k as normalizeIncomingSlackThreadId, l as getProductionSlackAdapter, n as conversationTurnIdForMessage, o as webActorFromEmail, s as createProductionConversationWorkOptions, t as appendAndEnqueueWebMessage, v as readViewerAutomationSummary, w as clearSlackPendingReactions, z as GET$3 } from "./web-input-5mls-41-.js";
26
+ import { a as confirmDispatchMailboxAppend, b as notifyAutomationBlocked, f as getPluginDispatchProjection, j as recordAutomationExecution, m as listPendingDispatchMailboxAppends, o as createOrGetDispatch, p as isTerminalDispatchStatus, s as getDispatchConversationId, t as processPluginTask, u as getDispatchRecord, v as markDispatchFailed } from "./task-runner-CO55Olal.js";
27
+ import { o as getAuthPausedConversationTurnId, t as enqueueAgentInvocationResult } from "./result-Da0RVuWG.js";
28
+ import { r as enqueueAgentInvocation } from "./work-D2M2-zCO.js";
29
+ import { s as coerceThreadConversationState } from "./thread-state-Ces6tXmB.js";
30
+ import { o as unlinkProvider } from "./connections-DJV6mLrH.js";
31
+ import { a as GET$4, i as publishAppHomeView, r as GET$5, t as receiveLocalOAuthCredential } from "./credential-sync-CEd2F5PS.js";
32
+ import { a as registerVercelPluginTaskDevConsumer, n as createVercelPluginTaskCallback, s as queueCallback } from "./task-queue-BX9YrIsw.js";
33
+ import { t as processConversationWork } from "./worker-BwCpf8tB.js";
34
+ import { t as bindMessageAgent } from "./message-CtDDEwwV.js";
35
+ import { t as bindSpawnAgent } from "./spawn-DT9fMjtd.js";
36
36
  import { createRequire } from "node:module";
37
37
  import { Hono } from "hono";
38
38
  import { z } from "zod";
@@ -482,7 +482,7 @@ async function claimDueScheduledRun(db, args) {
482
482
  const skippedRuns = [];
483
483
  const claimed = await db.transaction(async (tx) => {
484
484
  await tx.execute(sql`SELECT pg_advisory_xact_lock(hashtext('junior:scheduler:claim'))`);
485
- const rows = await tx.select({ id: juniorSchedulerTasks.id }).from(juniorSchedulerTasks).where(and(eq(juniorSchedulerTasks.status, "active"), or(and(isNotNull(juniorSchedulerTasks.runNowAtMs), lte(juniorSchedulerTasks.runNowAtMs, args.nowMs)), and(isNotNull(juniorSchedulerTasks.nextRunAtMs), lte(juniorSchedulerTasks.nextRunAtMs, args.nowMs))))).orderBy(asc(juniorSchedulerTasks.createdAtMs), asc(juniorSchedulerTasks.id));
485
+ const rows = await tx.select({ id: juniorAutomations.id }).from(juniorAutomations).where(and(eq(juniorAutomations.kind, "scheduled"), eq(juniorAutomations.status, "active"), or(and(isNotNull(juniorAutomations.runNowAtMs), lte(juniorAutomations.runNowAtMs, args.nowMs)), and(isNotNull(juniorAutomations.nextRunAtMs), lte(juniorAutomations.nextRunAtMs, args.nowMs))))).orderBy(asc(juniorAutomations.createdAtMs), asc(juniorAutomations.id));
486
486
  for (const row of rows) {
487
487
  const run = await withScheduledAutomationLock(tx, row.id, async (taskTx) => {
488
488
  const task = await readScheduledAutomation(taskTx, row.id);
@@ -503,7 +503,16 @@ async function claimDueScheduledRun(db, args) {
503
503
  await writeRun(taskTx, reclaimed);
504
504
  return reclaimed;
505
505
  }
506
- if (await readRun(taskTx, runId)) return void 0;
506
+ const finishedRun = await readRun(taskTx, runId);
507
+ if (finishedRun) {
508
+ if (finishedRun.status === "blocked" || finishedRun.status === "completed" || finishedRun.status === "failed") await advanceScheduledAutomationAfterRun(taskTx, {
509
+ errorMessage: finishedRun.errorMessage,
510
+ nowMs: args.nowMs,
511
+ run: finishedRun,
512
+ status: finishedRun.status
513
+ });
514
+ return;
515
+ }
507
516
  if (scheduledForMs + MISSED_RUN_MAX_AGE_MS < args.nowMs) {
508
517
  const skipped = await skipMissedRun(taskTx, {
509
518
  nowMs: args.nowMs,
@@ -1,4 +1,4 @@
1
- import { lt as extractAssistantText } from "./tasks-DDzBxMio.js";
1
+ import { lt as extractAssistantText } from "./tasks-DwGlFX9i.js";
2
2
  //#region src/chat/no-reply.ts
3
3
  const NO_REPLY_MARKER = "[[NO_REPLY]]";
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { r as completeObject } from "./client-DMt9kArs.js";
1
+ import { r as completeObject } from "./client-ROZeVjq0.js";
2
2
  import { r as defaultModelId } from "./model-profile-BwU8mqwD.js";
3
3
  import { U as parseBriefInput, d as conversationDetailReportSchema, p as conversationEventPageSchema, z as briefCodeChangeSchema } from "./conversation-T18Xlkx9.js";
4
4
  import { n as briefEntriesFromReportEvents, s as generateBrief, t as BRIEF_PROMPT } from "./prompt-C04mP1hu.js";
@@ -269,7 +269,7 @@ async function parseRunOptions(argv) {
269
269
  * `DATABASE_URL` at import, and `briefs pull` must work with only a token.
270
270
  */
271
271
  async function configuredDefaultModelId() {
272
- const { botConfig } = await import("./config-iEOq080E.js").then((n) => n.r);
272
+ const { botConfig } = await import("./config-DNNkxfGS.js").then((n) => n.r);
273
273
  return defaultModelId(botConfig);
274
274
  }
275
275
  function apiUrl(baseUrl, pathname) {
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.js";
2
- import { t as createPluginCatalogRuntime } from "./registry-CN2Nie72.js";
2
+ import { t as createPluginCatalogRuntime } from "./registry-CeEpPna6.js";
3
3
  //#region src/chat/plugins/catalog-runtime.ts
4
4
  var catalog_runtime_exports = /* @__PURE__ */ __exportAll({ pluginCatalogRuntime: () => pluginCatalogRuntime });
5
5
  const pluginCatalogRuntime = createPluginCatalogRuntime();
package/dist/cli/chat.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n as executeAgentRun, t as createAgentRunner } from "../agent-runner-dgQdPoGH.js";
1
+ import { n as executeAgentRun, t as createAgentRunner } from "../agent-runner-B-7S_DCS.js";
2
2
  import { t as loadAppPluginSet } from "../plugin-module-CVvEUSMH.js";
3
3
  import path from "node:path";
4
4
  import { createHash, randomUUID } from "node:crypto";
@@ -100,10 +100,10 @@ async function loadLocalPluginSet() {
100
100
  async function configureLocalChatPlugins(pluginSet) {
101
101
  const [pluginsModule, agentHooksModule, catalogRuntimeModule, validationModule, databaseModule] = await Promise.all([
102
102
  import("../plugins-egKWjgue.js").then((n) => n.o),
103
- import("../agent-hooks-Ctw_jKaS.js").then((n) => n.t),
104
- import("../catalog-runtime-ulFceOA-.js").then((n) => n.t),
105
- import("../validation-C2lG6yVH.js").then((n) => n.r),
106
- import("../viewer-C8u1HAdN.js").then((n) => n.s)
103
+ import("../agent-hooks-DcoKnnxn.js").then((n) => n.t),
104
+ import("../catalog-runtime-BQQiwwA7.js").then((n) => n.t),
105
+ import("../validation-yJF9LKOv.js").then((n) => n.r),
106
+ import("../viewer-D96vo_42.js").then((n) => n.s)
107
107
  ]);
108
108
  const resolvedPluginSet = pluginSet === void 0 ? await loadLocalPluginSet() : pluginSet ?? void 0;
109
109
  const plugins = pluginsModule.pluginRuntimeRegistrationsFromPluginSet(resolvedPluginSet);
@@ -155,19 +155,19 @@ async function prepareLocalChatRun(io, pluginSet) {
155
155
  await configureLocalChatPlugins(pluginSet);
156
156
  const { setExperimentalFeatures } = await import("../experimental-Qn9rKLgx.js").then((n) => n.t);
157
157
  setExperimentalFeatures({ subagents: true });
158
- const { setBriefsConfig } = await import("../agent-hooks-Ctw_jKaS.js").then((n) => n.m);
158
+ const { setBriefsConfig } = await import("../agent-hooks-DcoKnnxn.js").then((n) => n.m);
159
159
  setBriefsConfig({ enabled: true });
160
- const { runLocalAgentTurn } = await import("../runner-D-VZlBb_.js");
161
- const { startLocalOAuthCallbackServer } = await import("../oauth-callback-server-CYSEV35l.js");
160
+ const { runLocalAgentTurn } = await import("../runner-se1W_jGZ.js");
161
+ const { startLocalOAuthCallbackServer } = await import("../oauth-callback-server-CCiKrS0s.js");
162
162
  const { createLocalOAuthState } = await import("../oauth-relay-CdCnu80W.js").then((n) => n.t);
163
- const { createLocalSandboxEgressSignalTransport } = await import("../sandbox-egress-signals-Sie51RW0.js");
164
- const { bindSpawnAgent } = await import("../spawn-DX3YjDtm.js").then((n) => n.n);
165
- const { bindMessageAgent } = await import("../message-BUcVfXmK.js").then((n) => n.n);
166
- const { createAgentInvocationWorker, routeAgentInvocationWork } = await import("../work-hoPN8qjl.js").then((n) => n.a);
167
- const { startAgentInvocationsForChildInput } = await import("../result-Cokw_MYC.js").then((n) => n.r);
168
- const { skipInputBeforeConversationStop } = await import("../session-stop-DD0k0BXI.js").then((n) => n.r);
163
+ const { createLocalSandboxEgressSignalTransport } = await import("../sandbox-egress-signals-CS959-wm.js");
164
+ const { bindSpawnAgent } = await import("../spawn-DT9fMjtd.js").then((n) => n.n);
165
+ const { bindMessageAgent } = await import("../message-CtDDEwwV.js").then((n) => n.n);
166
+ const { createAgentInvocationWorker, routeAgentInvocationWork } = await import("../work-D2M2-zCO.js").then((n) => n.a);
167
+ const { startAgentInvocationsForChildInput } = await import("../result-Da0RVuWG.js").then((n) => n.r);
168
+ const { skipInputBeforeConversationStop } = await import("../session-stop-DlRDisF5.js").then((n) => n.r);
169
169
  const { createLocalConversationWork } = await import("../conversation-work-C6y3T5Hx.js");
170
- const { processConversationWork } = await import("../worker-CavJZxi8.js").then((n) => n.n);
170
+ const { processConversationWork } = await import("../worker-BwCpf8tB.js").then((n) => n.n);
171
171
  let agentRunner;
172
172
  const localConversationWork = createLocalConversationWork(async (message) => {
173
173
  if (!agentRunner) throw new Error("Local agent runner is not ready");
package/dist/cli/check.js CHANGED
@@ -1,6 +1,6 @@
1
- import { D as JUNIOR_HEARTBEAT_ROUTE, M as LEGACY_JUNIOR_CONVERSATION_WORK_FUNCTION, T as JUNIOR_CONVERSATION_WORK_CALLBACK_ROUTE } from "../logging-BkI10z0D.js";
2
- import { _ as parsePluginManifest, g as parseInlinePluginManifest } from "../registry-CN2Nie72.js";
3
- import { i as parseSkillFile } from "../skills-CpyJJyqH.js";
1
+ import { D as JUNIOR_HEARTBEAT_ROUTE, M as LEGACY_JUNIOR_CONVERSATION_WORK_FUNCTION, T as JUNIOR_CONVERSATION_WORK_CALLBACK_ROUTE } from "../logging-COUsTFIL.js";
2
+ import { _ as parsePluginManifest, g as parseInlinePluginManifest } from "../registry-CeEpPna6.js";
3
+ import { i as parseSkillFile } from "../skills-CSzgs0EC.js";
4
4
  import path from "node:path";
5
5
  import fs from "node:fs/promises";
6
6
  import { pathToFileURL } from "node:url";
package/dist/cli/main.js CHANGED
@@ -25,10 +25,10 @@ async function runChat(argv, pluginSet) {
25
25
  return await (await import("./chat.js")).runChat(argv, void 0, { pluginSet });
26
26
  }
27
27
  async function runAdmin(argv) {
28
- return await (await import("../admin-Dth5-1lw.js")).runAdmin(argv);
28
+ return await (await import("../admin-C_-XEdym.js")).runAdmin(argv);
29
29
  }
30
30
  async function runBriefs(argv) {
31
- return await (await import("../briefs-SDwPKduW.js")).runBriefs(argv);
31
+ return await (await import("../briefs-D4SMqc-r.js")).runBriefs(argv);
32
32
  }
33
33
  function topLevelCommand(argv) {
34
34
  return (argv[0] === "--" ? argv.slice(1) : argv)[0];
@@ -1,7 +1,7 @@
1
- import { d as getDb } from "../viewer-C8u1HAdN.js";
2
- import { n as pluginCatalogRuntime } from "../catalog-runtime-ulFceOA-.js";
3
- import { d as setPlugins, f as validatePlugins, ft as createPluginLogger } from "../agent-hooks-Ctw_jKaS.js";
4
- import { n as validatePluginRegistrations, t as validatePluginEgressCredentialHooks } from "../validation-C2lG6yVH.js";
1
+ import { d as getDb } from "../viewer-D96vo_42.js";
2
+ import { n as pluginCatalogRuntime } from "../catalog-runtime-BQQiwwA7.js";
3
+ import { d as setPlugins, f as validatePlugins, ft as createPluginLogger } from "../agent-hooks-DcoKnnxn.js";
4
+ import { n as validatePluginRegistrations, t as validatePluginEgressCredentialHooks } from "../validation-yJF9LKOv.js";
5
5
  import { a as pluginRuntimeRegistrationsFromPluginSet, i as pluginCliRegistrationsFromPluginSet, r as pluginCatalogConfigFromPluginSet } from "../plugins-egKWjgue.js";
6
6
  import { t as loadAppPluginSet } from "../plugin-module-CVvEUSMH.js";
7
7
  import { stderr, stdout } from "node:process";
@@ -1,6 +1,6 @@
1
- import { n as pluginCatalogRuntime } from "../catalog-runtime-ulFceOA-.js";
2
- import { S as disconnectStateAdapter, t as create } from "../profile-AsD2uz0m.js";
3
- import { r as resolve } from "../resolve-CrgwPWTS.js";
1
+ import { n as pluginCatalogRuntime } from "../catalog-runtime-BQQiwwA7.js";
2
+ import { S as disconnectStateAdapter, t as create } from "../profile-DP4LKL6V.js";
3
+ import { r as resolve } from "../resolve-B5ma3igH.js";
4
4
  //#region src/cli/snapshot-create.ts
5
5
  const DEFAULT_RUNTIME = "node22";
6
6
  const DEFAULT_TIMEOUT_MS = 6e5;