@sentry/junior 0.254.0 → 0.255.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 (60) hide show
  1. package/dist/{admin-D7kYbu5l.js → admin-CeJh4SuR.js} +1 -1
  2. package/dist/{agent-hooks-DfPubHYm.js → agent-hooks-CDVx26Uu.js} +8 -8
  3. package/dist/{agent-runner-BWmnJ0dD.js → agent-runner-Caiof09f.js} +24 -21
  4. package/dist/api/schema.d.ts +0 -8
  5. package/dist/api/schema.js +2 -2
  6. package/dist/api.js +60 -70
  7. package/dist/app.js +36 -36
  8. package/dist/{assistant-reply-B3J6ogAM.js → assistant-reply-BddmM66R.js} +1 -1
  9. package/dist/{automation-gznOMaQ2.js → automation-CHdlHVZP.js} +3 -4
  10. package/dist/{briefs-B_fgUFD2.js → briefs-iVq_8-ft.js} +2 -2
  11. package/dist/{catalog-runtime-TG5WF66H.js → catalog-runtime-hKmI-iZa.js} +1 -1
  12. package/dist/cli/chat.js +15 -15
  13. package/dist/cli/check.js +3 -3
  14. package/dist/cli/main.js +2 -2
  15. package/dist/cli/plugins.js +4 -4
  16. package/dist/cli/snapshot-create.js +3 -3
  17. package/dist/cli/upgrade.js +3 -3
  18. package/dist/{client-oBgOmQV6.js → client-Clj7onnT.js} +2 -2
  19. package/dist/{config-CRlLncIj.js → config-BDAfLTI9.js} +2 -2
  20. package/dist/{connections-BZAuDnYm.js → connections-BC0RTejT.js} +9 -9
  21. package/dist/{conversation-privacy-Dui3hTO-.js → conversation-privacy-1ERtieuM.js} +1 -1
  22. package/dist/{credential-sync-9HiSpphh.js → credential-sync-BZuqqIHk.js} +14 -14
  23. package/dist/{executor-B88oEqok.js → executor-Dh4Ofsnx.js} +5 -6
  24. package/dist/{images-k8HewSp_.js → images-C-WOnTc_.js} +2 -2
  25. package/dist/instrumentation.js +2 -2
  26. package/dist/{job-queue-B6KaQXY6.js → job-queue-BaCL36FY.js} +1 -1
  27. package/dist/{logging-B3nJLXT7.js → logging-D3aYP0aG.js} +1 -1
  28. package/dist/{message-C9Wx3Rxx.js → message-B9xqD2BP.js} +3 -3
  29. package/dist/nitro.js +3 -3
  30. package/dist/{oauth-callback-server-CetsCZng.js → oauth-callback-server-i5qdAou6.js} +2 -2
  31. package/dist/{pending-auth-m8aJlwP_.js → pending-auth-D2t1Moxf.js} +2 -2
  32. package/dist/{profile-Dh73O6lZ.js → profile-DnkX3e2S.js} +4 -4
  33. package/dist/{registry-C-jns0Be.js → registry-CmKmKHpp.js} +1 -1
  34. package/dist/{resolve-CDYCpS_U.js → resolve-jfNHtEBx.js} +2 -2
  35. package/dist/{result-sih-x_yN.js → result-Df5nEDX2.js} +6 -6
  36. package/dist/{runner-CA43p74t.js → runner-CmzoXEI4.js} +9 -9
  37. package/dist/{sandbox-egress-signals-CxHHTu8e.js → sandbox-egress-signals-DjMNKLZz.js} +1 -1
  38. package/dist/{schema-C-a9U34c.js → schema-BBgv0MNf.js} +1 -1
  39. package/dist/{session-stop-DenN1GuJ.js → session-stop-BEBfE97J.js} +10 -10
  40. package/dist/{skills-D_XDFkSx.js → skills-Dc-AMYi4.js} +2 -2
  41. package/dist/{spawn-CcWYt3Tl.js → spawn-OgTwBUj0.js} +2 -2
  42. package/dist/{store-CIs0Tr31.js → store-BashBewg.js} +6 -6
  43. package/dist/{task-queue-DAY-aQLX.js → task-queue-VvIKqlQ4.js} +3 -3
  44. package/dist/{task-runner-BE6Jgt2u.js → task-runner-D2CpD6GN.js} +10 -10
  45. package/dist/{tasks-DO9VM9cu.js → tasks-dJooqiip.js} +16 -26
  46. package/dist/{thread-state-FreaCOZD.js → thread-state-CsMC-ob0.js} +6 -6
  47. package/dist/{turn-failure-response-CJSt2ZSf.js → turn-failure-response-zB364t7_.js} +7 -7
  48. package/dist/{turn-lifecycle-BXclEcfZ.js → turn-lifecycle-BfodfmiY.js} +1 -1
  49. package/dist/{turn-session-routing-CItfUsjQ.js → turn-session-routing-BAh_qsBJ.js} +1 -1
  50. package/dist/{validation-MW8dmhF9.js → validation-LzIilOb6.js} +1 -1
  51. package/dist/{version-DcWD8xpq.js → version-CDM8Rq6E.js} +1 -1
  52. package/dist/version.js +1 -1
  53. package/dist/{viewer-CGZiUVMU.js → viewer-Rnim7alE.js} +3 -3
  54. package/dist/{web-input-Dpqh0oBt.js → web-input-Dc1VwcT4.js} +74 -75
  55. package/dist/{work-DbA9xNO1.js → work-BAn43SsN.js} +9 -9
  56. package/dist/{worker-DuCs9-3G.js → worker-mBXq4_zg.js} +5 -5
  57. package/migrations/0058_automation_creator_identity.sql +45 -0
  58. package/migrations/meta/0058_snapshot.json +3598 -0
  59. package/migrations/meta/_journal.json +7 -0
  60. package/package.json +5 -5
@@ -1,4 +1,4 @@
1
- import { a as setUserAdminFromSql, d as getDb, n as listAdminUsersFromSql } from "./viewer-CGZiUVMU.js";
1
+ import { a as setUserAdminFromSql, d as getDb, n as listAdminUsersFromSql } from "./viewer-Rnim7alE.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-oBgOmQV6.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-B3nJLXT7.js";
2
+ import { a as embedTexts, r as completeObject } from "./client-Clj7onnT.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-D3aYP0aG.js";
4
4
  import { a as getClient$1 } from "./sentry-CgWZM_kV.js";
5
- import { t as canExposeConversationPayload } from "./conversation-privacy-Dui3hTO-.js";
6
- import { i as getChatConfig, n as botConfig, o as getSlackBotToken } from "./config-CRlLncIj.js";
5
+ import { t as canExposeConversationPayload } from "./conversation-privacy-1ERtieuM.js";
6
+ import { i as getChatConfig, n as botConfig, o as getSlackBotToken } from "./config-BDAfLTI9.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-CGZiUVMU.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-Rnim7alE.js";
10
10
  import { c as juniorIdentities, d as juniorDestinations, l as juniorUsers, s as juniorConversations } from "./agent-invocations-BY60iNw-.js";
11
- import { _ as juniorConversationAnnotations, b as juniorAttachments, f as juniorConversationBriefs, h as juniorConversationEvents, i as juniorWorkspaces, n as juniorSnapshots, r as juniorWorkspaceRepos, u as juniorConversationParticipants, v as juniorCodeChanges, y as juniorCodeRepositories } from "./executor-B88oEqok.js";
11
+ import { _ as juniorConversationAnnotations, b as juniorAttachments, f as juniorConversationBriefs, h as juniorConversationEvents, i as juniorWorkspaces, n as juniorSnapshots, r as juniorWorkspaceRepos, u as juniorConversationParticipants, v as juniorCodeChanges, y as juniorCodeRepositories } from "./executor-Dh4Ofsnx.js";
12
12
  import { o as decodeStoredConversationEvent } from "./history-9pO1Zd4Y.js";
13
- import { p as credentialSubjectSchema } from "./registry-C-jns0Be.js";
13
+ import { p as credentialSubjectSchema } from "./registry-CmKmKHpp.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-Dh73O6lZ.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-DnkX3e2S.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,31 +1,31 @@
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-oBgOmQV6.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-B3nJLXT7.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-Clj7onnT.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-D3aYP0aG.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-Dui3hTO-.js";
5
- import { n as botConfig, v as normalizeSlackEmojiName } from "./config-CRlLncIj.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-1ERtieuM.js";
5
+ import { n as botConfig, v as normalizeSlackEmojiName } from "./config-BDAfLTI9.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-CGZiUVMU.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-Rnim7alE.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-BY60iNw-.js";
10
- import { _ as juniorConversationAnnotations, b as juniorAttachments, c as juniorStats, f as juniorConversationBriefs, o as juniorAutomationRuns, x as juniorArtifacts } from "./executor-B88oEqok.js";
10
+ import { _ as juniorConversationAnnotations, b as juniorAttachments, c as juniorStats, f as juniorConversationBriefs, o as juniorAutomationRuns, x as juniorArtifacts } from "./executor-Dh4Ofsnx.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-C-jns0Be.js";
14
- import { n as pluginCatalogRuntime } from "./catalog-runtime-TG5WF66H.js";
15
- import { a as parseSkillInvocation, i as parseSkillFile, n as findSkillByName, r as loadSkillsByName, t as discoverSkills } from "./skills-D_XDFkSx.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-DO9VM9cu.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-DfPubHYm.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-CmKmKHpp.js";
14
+ import { n as pluginCatalogRuntime } from "./catalog-runtime-hKmI-iZa.js";
15
+ import { a as parseSkillInvocation, i as parseSkillFile, n as findSkillByName, r as loadSkillsByName, t as discoverSkills } from "./skills-Dc-AMYi4.js";
16
+ import { A as formatSlackLink, At as loadTurnRoute, Bt as recordToolExecutionStarted, D as automationRevision, Dt as loadLastModelProfile, Et as loadConversationProjection, F as addReactionToMessage, G as loadTurnCheckpoint, I as getSlackMessagePermalink, It as recordAuthorizationRequested, K as saveTurnCheckpoint, L as openSlackDirectMessage, Lt as recordGuardianActionReviewed, Mt as recordAgentsInstructionsUpdated, N as slackMention, Nt as recordAttachmentsDelivered, R as postSlackEphemeralMessage, Rt as recordMcpProviderConnected, St as ToolInputError, Tt as loadConnectedMcpProviders, V as uploadFilesToConversation, Vt as recordTurnRoute, W as continuableMessages, Xt as resolveTaskTitle, Yt as fallbackShortTitle, _t as normalizeToolNameFromResult, a as saveScheduledAutomation, at as createTurnLimitGate, bt as trimTrailingAssistantMessages, cn as estimateTextTokens, ct as getPiMessageRole, d as createEventAutomation, dn as historyItemFromPiMessage, dt as hasRuntimeTurnContext, et as TURN_LIMIT_DISABLED_REASON, f as deleteEventAutomation, fn as piMessageFromHistoryItem, g as listEventAutomationsForTeam, gt as isToolResultMessage, ht as isToolResultError, i as readScheduledAutomation, jt as openConversationProjection, k as escapeSlackMrkdwnText, ln as getAgentContextCompactionTriggerTokens, lt as getTerminalAssistantMessages, m as getEventAutomation, mt as isContinuablePiBoundary, n as listScheduledAutomationsForTeam, nt as TurnSliceLimitExceededError, ot as isTurnExecutionLimitExceededError, pt as isAssistantMessage, rt as TurnToolCallLimitExceededError, st as extractAssistantText, t as createScheduledAutomation, tt as TurnBudgetExceededError, un as getAgentContextInputLimitTokens, ut as getUserMessageInstructionText, v as saveEventAutomation, vt as retainRuntimeTurnContext, xt as TURN_CONTEXT_TAG, y as setEventAutomationStatus, yt as stripRuntimeTurnContext, z as postSlackMessage } from "./tasks-dJooqiip.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-CDVx26Uu.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-Dh73O6lZ.js";
20
- import { n as canReusePendingAuthLink, t as abandonReplacedPendingAuth } from "./pending-auth-m8aJlwP_.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-DnkX3e2S.js";
20
+ import { n as canReusePendingAuthLink, t as abandonReplacedPendingAuth } from "./pending-auth-D2t1Moxf.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-B3J6ogAM.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-DenN1GuJ.js";
22
+ import { a as isNoReplyMarker, i as NO_REPLY_MARKER, n as getAssistantReplyText, r as sanitizeAssistantText, t as decideReply } from "./assistant-reply-BddmM66R.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-BEBfE97J.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-CDYCpS_U.js";
26
- import { a as getVercelConversationWorkQueue, f as getTurnRequestDeadline, n as sendNextWorkspaceSnapshotJob, r as sendWorkspaceSnapshotJob } from "./job-queue-B6KaQXY6.js";
27
- import { E as stopConversationWork } from "./store-CIs0Tr31.js";
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";
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-jfNHtEBx.js";
26
+ import { a as getVercelConversationWorkQueue, f as getTurnRequestDeadline, n as sendNextWorkspaceSnapshotJob, r as sendWorkspaceSnapshotJob } from "./job-queue-BaCL36FY.js";
27
+ import { E as stopConversationWork } from "./store-BashBewg.js";
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-CHdlHVZP.js";
29
29
  import { r as isExperimentalFeatureEnabled } from "./experimental-Qn9rKLgx.js";
30
30
  import { n as privateTraceResultAttributes } from "./private-trace-result-BLvBjy_e.js";
31
31
  import { streamSimple } from "@earendil-works/pi-ai/compat";
@@ -2098,7 +2098,7 @@ const CONVERSATION_RULES = [
2098
2098
  "- Runtime owns continuation and authorization notices; on resumed turns, answer with the final requested content only."
2099
2099
  ];
2100
2100
  const SLACK_ACTION_RULES = [
2101
- "- Slack tools target the current runtime context; if the requested Slack target differs, explain the limitation instead of calling the tool.",
2101
+ "- Slack posts, reactions, new canvases, new lists, and file sends go only to the current conversation; if asked to send one somewhere else, explain the limitation instead of calling the tool. Slack read tools can target other public channels with `channel_id`.",
2102
2102
  "- Assistant text is delivered only into the active conversation or thread. You cannot create a new top-level channel post; if asked to do so, explain that limitation and do not present the requested text as delivered.",
2103
2103
  "- Ambient reaction requests target the current inbound message; do not ask for a message reference.",
2104
2104
  `- When no visible thread reply is requested or useful, keep tool-calling messages text-free and make the final message exactly ${NO_REPLY_MARKER}.`
@@ -9967,6 +9967,8 @@ function createEventAutomationTool(context, catalog) {
9967
9967
  if (!eventAutomationMatchesDestination(existing, destination) || existing.createdBy.slackUserId !== actor.userId) throw new ToolInputError("Event automation operation identity is invalid.");
9968
9968
  if (existing.status !== "deleted") return eventAutomationToolResult(context.conversationId, existing, catalog, actor.userId);
9969
9969
  }
9970
+ const identity = (await context.resolveActorIdentity?.())?.identity;
9971
+ if (!identity || identity.provider !== "slack" || identity.providerTenantId !== destination.teamId || identity.providerSubjectId !== actor.userId) throw new ToolInputError("Event automation creator identity is unavailable.");
9970
9972
  const title = await resolveTaskTitle({
9971
9973
  signal: options.signal,
9972
9974
  completeText,
@@ -9982,6 +9984,7 @@ function createEventAutomationTool(context, catalog) {
9982
9984
  ...actor.fullName ? { fullName: actor.fullName } : void 0,
9983
9985
  ...actor.userName ? { userName: actor.userName } : void 0
9984
9986
  },
9987
+ creatorIdentityId: identity.id,
9985
9988
  credentialMode: input.credentialMode ?? "creator",
9986
9989
  destination,
9987
9990
  outcomes: await resolveTaskOutcomes(input.outcomes, destination, actor.userId),
@@ -20736,7 +20739,7 @@ function createAgentRunner(execute, options) {
20736
20739
  } } : void 0
20737
20740
  };
20738
20741
  if (run.instruction.storedAttachments?.length) {
20739
- const { loadInputImages } = await import("./images-k8HewSp_.js").then((n) => n.n);
20742
+ const { loadInputImages } = await import("./images-C-WOnTc_.js").then((n) => n.n);
20740
20743
  const storage = nextRun.environment?.attachmentStorage;
20741
20744
  if (!storage) throw new Error("Attachment storage is unavailable.");
20742
20745
  nextRun.instruction = {
@@ -4093,10 +4093,6 @@ export declare const automationListSchema: z.ZodObject<{
4093
4093
  }, z.core.$strict>;
4094
4094
  export declare const automationParamsSchema: z.ZodObject<{
4095
4095
  id: z.ZodString;
4096
- kind: z.ZodEnum<{
4097
- event: "event";
4098
- scheduled: "scheduled";
4099
- }>;
4100
4096
  }, z.core.$strict>;
4101
4097
  export declare const automationExecutionStatusSchema: z.ZodEnum<{
4102
4098
  failed: "failed";
@@ -4512,10 +4508,6 @@ export declare const automationVersionListSchema: z.ZodObject<{
4512
4508
  }, z.core.$strict>;
4513
4509
  export declare const automationVersionParamsSchema: z.ZodObject<{
4514
4510
  id: z.ZodString;
4515
- kind: z.ZodEnum<{
4516
- event: "event";
4517
- scheduled: "scheduled";
4518
- }>;
4519
4511
  version: z.ZodCoercedNumber<unknown>;
4520
4512
  }, z.core.$strict>;
4521
4513
  type AutomationVersion = z.output<typeof automationVersionSchema>;
@@ -1,6 +1,6 @@
1
1
  import { a as conversationTurnFailureReasonSchema, i as conversationTurnFailureCodeSchema } from "../history-9pO1Zd4Y.js";
2
2
  import { A as forkConversationBodySchema, C as conversationReportEventSchema, E as conversationSummaryReportSchema, I as INPUT_IMAGE_TYPES, K as messageCardText, M as conversationChildAgentTotalsSchema, N as MAX_INPUT_IMAGES, O as createConversationBodySchema, P as MAX_INPUT_IMAGE_BYTES, S as conversationReportEventDataSchema, T as conversationStatsReportSchema, Y as resolveMessageCards, _ as conversationParamsSchema, a as cancelConversationPendingMessagesBodySchema, b as conversationPendingMessageSchema, d as conversationDetailReportSchema, f as conversationEventHistorySchema, g as conversationFeedSchema, h as conversationFeedQuerySchema, i as archiveConversationResponseSchema, j as forkConversationResponseSchema, k as createConversationMessageBodySchema, l as conversationAuxiliaryCostsSchema, m as conversationEventsQuerySchema, o as cancelConversationPendingMessagesResponseSchema, p as conversationEventPageSchema, r as archiveConversationBodySchema, s as conversationActivityPreviewSchema, t as acceptedConversationMessageSchema, u as conversationDetailQuerySchema, v as conversationPendingAuthorizationSchema, x as conversationPendingMessagesReportSchema, y as conversationPendingMessageDeliverySchema } from "../conversation-T18Xlkx9.js";
3
- import { C as eventAutomationSummarySchema, S as automationVersionSchema, _ as automationSummarySchema, a as automationExecutionSchema, b as automationVersionListSchema, d as automationParamsSchema, f as automationRunListSchema, g as automationSchedulePreviewSchema, h as automationScheduleIntentSchema, i as automationExecutionListSchema, l as automationListQuerySchema, m as automationRunWindowsSchema, n as automationEditSchema, o as automationExecutionStatusDaySchema, p as automationRunSchema, r as automationEventCatalogSchema, s as automationExecutionStatusSchema, t as automationEditErrorSchema, u as automationListSchema, v as automationUpdateSchema, w as scheduledAutomationSummarySchema, x as automationVersionParamsSchema, y as automationVersionActivateSchema } from "../automation-gznOMaQ2.js";
3
+ import { C as eventAutomationSummarySchema, S as automationVersionSchema, _ as automationSummarySchema, a as automationExecutionSchema, b as automationVersionListSchema, d as automationParamsSchema, f as automationRunListSchema, g as automationSchedulePreviewSchema, h as automationScheduleIntentSchema, i as automationExecutionListSchema, l as automationListQuerySchema, m as automationRunWindowsSchema, n as automationEditSchema, o as automationExecutionStatusDaySchema, p as automationRunSchema, r as automationEventCatalogSchema, s as automationExecutionStatusSchema, t as automationEditErrorSchema, u as automationListSchema, v as automationUpdateSchema, w as scheduledAutomationSummarySchema, x as automationVersionParamsSchema, y as automationVersionActivateSchema } from "../automation-CHdlHVZP.js";
4
4
  import { C as skillReportsSchema, S as skillReportSchema, _ as pluginPackageContentItemReportSchema, b as pluginsSchema, g as pluginOperationalReportSchema, h as pluginOperationalReportFeedSchema, m as healthReportSchema, t as webMessageId, v as pluginPackageContentReportSchema, x as runtimeInfoReportSchema, y as pluginSchema } from "../web-message-id-xPI_EFSC.js";
5
- import { A as connectionSchema, B as codeRepositorySummarySchema, C as locationParamsSchema, D as dailyConversationActivitySchema, F as codeChangeSummarySchema, H as conversationChildAgentsReportSchema, I as codeOverviewReportSchema, L as codePersonReportSchema, M as startConnectionResponseSchema, N as codeActivityDaySchema, O as connectionListSchema, P as codeChangeSummaryReportSchema, R as codeRepositoryParamsSchema, S as locationDirectoryReportSchema, U as stopConversationTurnResponseSchema, V as conversationChildAgentSchema, W as apiErrorSchema, _ as actorProfileReportSchema, a as workspaceBodySchema, b as locationActivityDayReportSchema, c as workspaceRepoSchema, 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, p as personalTokenMetadataSchema, r as baselineSnapshotSchema, s as workspaceParamsSchema, t as statSchema, u as createPersonalTokenBodySchema, v as personParamsSchema, x as locationDetailReportSchema, y as personalSpendReportSchema, z as codeRepositoryReportSchema } from "../schema-C-a9U34c.js";
5
+ import { A as connectionSchema, B as codeRepositorySummarySchema, C as locationParamsSchema, D as dailyConversationActivitySchema, F as codeChangeSummarySchema, H as conversationChildAgentsReportSchema, I as codeOverviewReportSchema, L as codePersonReportSchema, M as startConnectionResponseSchema, N as codeActivityDaySchema, O as connectionListSchema, P as codeChangeSummaryReportSchema, R as codeRepositoryParamsSchema, S as locationDirectoryReportSchema, U as stopConversationTurnResponseSchema, V as conversationChildAgentSchema, W as apiErrorSchema, _ as actorProfileReportSchema, a as workspaceBodySchema, b as locationActivityDayReportSchema, c as workspaceRepoSchema, 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, p as personalTokenMetadataSchema, r as baselineSnapshotSchema, s as workspaceParamsSchema, t as statSchema, u as createPersonalTokenBodySchema, v as personParamsSchema, x as locationDetailReportSchema, y as personalSpendReportSchema, z as codeRepositoryReportSchema } from "../schema-BBgv0MNf.js";
6
6
  export { INPUT_IMAGE_TYPES, MAX_INPUT_IMAGES, MAX_INPUT_IMAGE_BYTES, acceptedConversationMessageSchema, actorDirectoryReportSchema, actorProfileReportSchema, apiErrorSchema, archiveConversationBodySchema, archiveConversationResponseSchema, automationEditErrorSchema, automationEditSchema, automationEventCatalogSchema, automationExecutionListSchema, automationExecutionSchema, automationExecutionStatusDaySchema, automationExecutionStatusSchema, automationListQuerySchema, automationListSchema, automationParamsSchema, automationRunListSchema, automationRunSchema, automationRunWindowsSchema, automationScheduleIntentSchema, automationSchedulePreviewSchema, automationSummarySchema, automationUpdateSchema, automationVersionActivateSchema, automationVersionListSchema, automationVersionParamsSchema, automationVersionSchema, baselineSnapshotSchema, cancelConversationPendingMessagesBodySchema, cancelConversationPendingMessagesResponseSchema, codeActivityDaySchema, codeChangeSummaryReportSchema, codeChangeSummarySchema, codeOverviewReportSchema, codePersonReportSchema, codeRepositoryParamsSchema, codeRepositoryReportSchema, codeRepositorySummarySchema, connectionListSchema, connectionParamsSchema, connectionSchema, conversationActivityPreviewSchema, conversationAuxiliaryCostsSchema, conversationChildAgentSchema, conversationChildAgentTotalsSchema, conversationChildAgentsReportSchema, conversationDetailQuerySchema, conversationDetailReportSchema, conversationEventHistorySchema, conversationEventPageSchema, conversationEventsQuerySchema, conversationFeedQuerySchema, conversationFeedSchema, conversationParamsSchema, conversationPendingAuthorizationSchema, conversationPendingMessageDeliverySchema, conversationPendingMessageSchema, conversationPendingMessagesReportSchema, conversationReportEventDataSchema, conversationReportEventSchema, conversationStatsReportSchema, conversationSummaryReportSchema, conversationTurnFailureCodeSchema, conversationTurnFailureReasonSchema, createConversationBodySchema, createConversationMessageBodySchema, createPersonalTokenBodySchema, createdPersonalTokenSchema, dailyConversationActivitySchema, deleteWorkspaceResponseSchema, disconnectConnectionResponseSchema, eventAutomationSummarySchema, forkConversationBodySchema, forkConversationResponseSchema, healthReportSchema, locationActivityDayReportSchema, locationDetailReportSchema, locationDirectoryReportSchema, locationParamsSchema, messageCardText, personParamsSchema, personalSpendReportSchema, personalTokenListSchema, personalTokenMetadataSchema, personalTokenParamsSchema, pluginOperationalReportFeedSchema, pluginOperationalReportSchema, pluginPackageContentItemReportSchema, pluginPackageContentReportSchema, pluginSchema, pluginsSchema, resolveMessageCards, revokePersonalTokenResponseSchema, runtimeInfoReportSchema, scheduledAutomationSummarySchema, skillReportSchema, skillReportsSchema, startConnectionResponseSchema, statSchema, statsReportSchema, stopConversationTurnResponseSchema, webMessageId, workspaceBodySchema, workspaceListSchema, workspaceParamsSchema, workspaceRepoSchema, workspaceSchema };
package/dist/api.js CHANGED
@@ -1,27 +1,27 @@
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-BWmnJ0dD.js";
2
- import { d as logException, f as logInfo, p as logWarn } from "./logging-B3nJLXT7.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-Caiof09f.js";
2
+ import { d as logException, f as logInfo, p as logWarn } from "./logging-D3aYP0aG.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-CGZiUVMU.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-Rnim7alE.js";
5
5
  import { c as juniorIdentities, d as juniorDestinations, l as juniorUsers, o as conversationReadColumns, s as juniorConversations } from "./agent-invocations-BY60iNw-.js";
6
- import { f as juniorConversationBriefs, g as juniorApiTokens, h as juniorConversationEvents, m as juniorConversationMetrics, u as juniorConversationParticipants, v as juniorCodeChanges, y as juniorCodeRepositories } from "./executor-B88oEqok.js";
6
+ import { f as juniorConversationBriefs, g as juniorApiTokens, h as juniorConversationEvents, m as juniorConversationMetrics, u as juniorConversationParticipants, v as juniorCodeChanges, y as juniorCodeRepositories } from "./executor-Dh4Ofsnx.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-DO9VM9cu.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-DfPubHYm.js";
8
+ import { D as automationRevision, E as AutomationConflictError, O as requireAutomationRevision, S as automationDefinition, T as sameDefinitionValue, a as saveScheduledAutomation, fn as piMessageFromHistoryItem, kt as loadTurnProjection, v as saveEventAutomation, w as readAutomationVersion, y as setEventAutomationStatus } from "./tasks-dJooqiip.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-CDVx26Uu.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-Dh73O6lZ.js";
12
- import { l as getEventCatalog, v as automationEventCatalog } from "./session-stop-DenN1GuJ.js";
11
+ import { n as hash, t as create } from "./profile-DnkX3e2S.js";
12
+ import { l as getEventCatalog, v as automationEventCatalog } from "./session-stop-BEBfE97J.js";
13
13
  import { t as getFirstRunAtMs } from "./cadence-D00SCzT1.js";
14
- import { t as getCachedSnapshot } from "./resolve-CDYCpS_U.js";
15
- import { a as getVercelConversationWorkQueue } from "./job-queue-B6KaQXY6.js";
16
- import { a as cancelHumanFacingPendingMessages, h as getConversation } from "./store-CIs0Tr31.js";
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";
14
+ import { t as getCachedSnapshot } from "./resolve-jfNHtEBx.js";
15
+ import { a as getVercelConversationWorkQueue } from "./job-queue-BaCL36FY.js";
16
+ import { a as cancelHumanFacingPendingMessages, h as getConversation } from "./store-BashBewg.js";
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-CHdlHVZP.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-Dpqh0oBt.js";
20
- import { F as conversationRangeColumns, N as conversationActiveDaysColumn, P as conversationAggregateColumns, j as readAutomationTitlesByConversationId } from "./task-runner-BE6Jgt2u.js";
21
- import { d as legacyWebMailboxMetadataSchema } from "./result-sih-x_yN.js";
22
- import { a as startConnection, l as getWebAuthorization, n as isConnectableProvider, r as listConnections, t as disconnectConnection } from "./connections-BZAuDnYm.js";
23
- import { t as decodeInputImages } from "./images-k8HewSp_.js";
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-C-a9U34c.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-Dc1VwcT4.js";
20
+ import { F as conversationRangeColumns, N as conversationActiveDaysColumn, P as conversationAggregateColumns, j as readAutomationTitlesByConversationId } from "./task-runner-D2CpD6GN.js";
21
+ import { d as legacyWebMailboxMetadataSchema } from "./result-Df5nEDX2.js";
22
+ import { a as startConnection, l as getWebAuthorization, n as isConnectableProvider, r as listConnections, t as disconnectConnection } from "./connections-BC0RTejT.js";
23
+ import { t as decodeInputImages } from "./images-C-WOnTc_.js";
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-BBgv0MNf.js";
25
25
  import { Hono } from "hono";
26
26
  import path from "node:path";
27
27
  import { z } from "zod";
@@ -3592,7 +3592,7 @@ async function readPeoplePluginReports(args) {
3592
3592
  reports: [],
3593
3593
  source: "plugins"
3594
3594
  });
3595
- const { getPluginProfileReports } = await import("./agent-hooks-DfPubHYm.js").then((n) => n.t);
3595
+ const { getPluginProfileReports } = await import("./agent-hooks-CDVx26Uu.js").then((n) => n.t);
3596
3596
  return pluginOperationalReportFeedSchema.parse({
3597
3597
  generatedAt: new Date(nowMs).toISOString(),
3598
3598
  reports: await getPluginProfileReports({
@@ -4055,28 +4055,18 @@ function createUserPageRoutes() {
4055
4055
  * Web edits. Owners and public Destination readers can edit. Creator-only
4056
4056
  * rules still apply, and lifecycle actions stay creator-only.
4057
4057
  */
4058
- async function requireOwnedAutomation(user, kind, id) {
4059
- if (kind === "scheduled") {
4060
- const task = await readScheduledAutomation(getDb(), id);
4061
- if (!task || task.status === "deleted" || !user.identities.some((identity) => identity.id === task.creatorIdentityId)) throw new ViewerTaskNotFoundError();
4062
- return {
4063
- kind,
4064
- task
4065
- };
4066
- }
4067
- const task = await getEventAutomation(getDb(), id);
4068
- if (!task || task.status === "deleted" || !eventAutomationBelongsToUser(task, user)) throw new ViewerTaskNotFoundError();
4069
- return {
4070
- kind,
4071
- task
4072
- };
4073
- }
4074
4058
  /** Owners and public Destination readers can edit. Others get not found. */
4075
- async function requireEditableAutomation(user, kind, id) {
4076
- const candidate = await resolveViewerTaskCandidate(user, kind, id);
4059
+ async function requireEditableAutomation(user, id) {
4060
+ const candidate = await resolveViewerTaskCandidate(user, id);
4077
4061
  if (!candidate) throw new ViewerTaskNotFoundError();
4078
4062
  return candidate;
4079
4063
  }
4064
+ /** Lifecycle actions are creator-only. Others get not found. */
4065
+ async function requireOwnedAutomation(user, id) {
4066
+ const candidate = await requireEditableAutomation(user, id);
4067
+ if (!candidate.ownedByViewer) throw new ViewerTaskNotFoundError();
4068
+ return candidate;
4069
+ }
4080
4070
  /** Record the viewer's Slack identity in the Automation workspace as the editor. */
4081
4071
  function viewerEditor(user, automation) {
4082
4072
  if (automation.ownedByViewer) return automation.task.createdBy;
@@ -4120,13 +4110,14 @@ function editView(automation, ownedByViewer) {
4120
4110
  };
4121
4111
  }
4122
4112
  /** Load exact editable values by ID, independent of list filters. */
4123
- async function readViewerAutomationEdit(user, kind, id) {
4124
- const automation = await requireEditableAutomation(user, kind, id);
4113
+ async function readViewerAutomationEdit(user, id) {
4114
+ const automation = await requireEditableAutomation(user, id);
4125
4115
  return editView(automation, automation.ownedByViewer);
4126
4116
  }
4127
4117
  /** Save a partial edit against the read revision, without dispatching work. */
4128
4118
  async function updateViewerAutomation(user, id, input) {
4129
- const current = await requireEditableAutomation(user, input.kind, id);
4119
+ const current = await requireEditableAutomation(user, id);
4120
+ if (input.kind !== current.kind) throw new AutomationEditError("The trigger type cannot change.", "kind");
4130
4121
  requireAutomationRevision(current.task, input.revision);
4131
4122
  return saveViewerEdit(user, current, input);
4132
4123
  }
@@ -4211,8 +4202,8 @@ async function restorableOutcomes(current, outcomes) {
4211
4202
  * Make a saved version active. This saves its definition as a new version
4212
4203
  * through the same edit rules, so history is never rewritten.
4213
4204
  */
4214
- async function activateViewerAutomationVersion(user, kind, id, input) {
4215
- const current = await requireEditableAutomation(user, kind, id);
4205
+ async function activateViewerAutomationVersion(user, id, input) {
4206
+ const current = await requireEditableAutomation(user, id);
4216
4207
  requireAutomationRevision(current.task, input.revision);
4217
4208
  const saved = await readAutomationVersion(getDb(), id, input.version);
4218
4209
  if (!saved) throw new AutomationEditError("This version does not exist.", "version");
@@ -4250,8 +4241,8 @@ async function activateViewerAutomationVersion(user, kind, id, input) {
4250
4241
  throw new ViewerTaskNotFoundError();
4251
4242
  }
4252
4243
  /** Pause or resume future triggers. Already-claimed work can finish. */
4253
- async function changeViewerAutomationLifecycle(user, kind, id, input) {
4254
- const current = await requireOwnedAutomation(user, kind, id);
4244
+ async function changeViewerAutomationLifecycle(user, id, input) {
4245
+ const current = await requireOwnedAutomation(user, id);
4255
4246
  requireAutomationRevision(current.task, input.revision);
4256
4247
  const status = current.task.status;
4257
4248
  if (status === "completed") throw new AutomationEditError("Completed Automations cannot be restarted.");
@@ -4299,8 +4290,8 @@ function readAutomationEventCatalog() {
4299
4290
  }
4300
4291
  /** Preview a creator's draft with the same clock and compiler used by saving. */
4301
4292
  async function previewAutomationSchedule(user, id, intent) {
4302
- const automation = await readViewerAutomationEdit(user, "scheduled", id);
4303
- if (automation.kind !== "scheduled") throw new Error("Expected scheduled Automation");
4293
+ const automation = await readViewerAutomationEdit(user, id);
4294
+ if (automation.kind !== "scheduled") throw new AutomationEditError("Only Scheduled automations have a Schedule.", "schedule");
4304
4295
  if (automation.status === "completed") throw new AutomationEditError("Completed automations cannot be edited.", "schedule");
4305
4296
  try {
4306
4297
  return compileScheduleIntent({
@@ -4343,7 +4334,7 @@ function createAutomationRoutes() {
4343
4334
  app.get("/event-catalog", requireViewer, () => {
4344
4335
  return jsonResponse(automationEventCatalogSchema, readAutomationEventCatalog());
4345
4336
  });
4346
- app.post("/scheduled/:id/preview", requireViewer, validateRequest("json", automationScheduleIntentSchema, "Invalid schedule."), async (context) => {
4337
+ app.post("/:id/preview", requireViewer, validateRequest("json", automationScheduleIntentSchema, "Invalid schedule."), async (context) => {
4347
4338
  try {
4348
4339
  return jsonResponse(automationSchedulePreviewSchema, await previewAutomationSchedule(context.get("viewer"), context.req.param("id"), context.req.valid("json")));
4349
4340
  } catch (error) {
@@ -4354,29 +4345,29 @@ function createAutomationRoutes() {
4354
4345
  const user = context.get("viewer");
4355
4346
  return jsonResponse(automationRunListSchema, await readViewerAutomationRuns(user));
4356
4347
  });
4357
- app.get("/:kind/:id/executions", requireViewer, validateRequest("param", automationParamsSchema, "Invalid task."), async (context) => {
4348
+ app.get("/:id/executions", requireViewer, validateRequest("param", automationParamsSchema, "Invalid task."), async (context) => {
4358
4349
  const user = context.get("viewer");
4359
4350
  const params = context.req.valid("param");
4360
4351
  try {
4361
- return jsonResponse(automationExecutionListSchema, await readViewerAutomationExecutions(user, params.kind, params.id));
4352
+ return jsonResponse(automationExecutionListSchema, await readViewerAutomationExecutions(user, params.id));
4362
4353
  } catch (error) {
4363
4354
  if (error instanceof ViewerTaskNotFoundError) return jsonResponse(apiErrorSchema, { error: error.message }, { status: 404 });
4364
4355
  throw error;
4365
4356
  }
4366
4357
  });
4367
- app.get("/:kind/:id/versions", requireViewer, validateRequest("param", automationParamsSchema, "Invalid Automation."), async (context) => {
4368
- const { kind, id } = context.req.valid("param");
4358
+ app.get("/:id/versions", requireViewer, validateRequest("param", automationParamsSchema, "Invalid Automation."), async (context) => {
4359
+ const { id } = context.req.valid("param");
4369
4360
  try {
4370
- return jsonResponse(automationVersionListSchema, await readViewerAutomationVersions(context.get("viewer"), kind, id));
4361
+ return jsonResponse(automationVersionListSchema, await readViewerAutomationVersions(context.get("viewer"), id));
4371
4362
  } catch (error) {
4372
4363
  if (error instanceof ViewerTaskNotFoundError) return jsonResponse(apiErrorSchema, { error: error.message }, { status: 404 });
4373
4364
  throw error;
4374
4365
  }
4375
4366
  });
4376
- app.post("/:kind/:id/versions/:version/activate", requireViewer, validateRequest("param", automationVersionParamsSchema, "Invalid Automation version."), validateRequest("json", automationVersionActivateSchema, "Invalid version activation."), async (context) => {
4377
- const { kind, id, version } = context.req.valid("param");
4367
+ app.post("/:id/versions/:version/activate", requireViewer, validateRequest("param", automationVersionParamsSchema, "Invalid Automation version."), validateRequest("json", automationVersionActivateSchema, "Invalid version activation."), async (context) => {
4368
+ const { id, version } = context.req.valid("param");
4378
4369
  try {
4379
- return jsonResponse(automationEditSchema, await activateViewerAutomationVersion(context.get("viewer"), kind, id, {
4370
+ return jsonResponse(automationEditSchema, await activateViewerAutomationVersion(context.get("viewer"), id, {
4380
4371
  version,
4381
4372
  revision: context.req.valid("json").revision
4382
4373
  }));
@@ -4384,23 +4375,23 @@ function createAutomationRoutes() {
4384
4375
  return editErrorResponse(error);
4385
4376
  }
4386
4377
  });
4387
- app.get("/:kind/:id/edit", requireViewer, validateRequest("param", automationParamsSchema, "Invalid Automation."), async (context) => {
4388
- const { kind, id } = context.req.valid("param");
4378
+ app.get("/:id/edit", requireViewer, validateRequest("param", automationParamsSchema, "Invalid Automation."), async (context) => {
4379
+ const { id } = context.req.valid("param");
4389
4380
  try {
4390
- return jsonResponse(automationEditSchema, await readViewerAutomationEdit(context.get("viewer"), kind, id));
4381
+ return jsonResponse(automationEditSchema, await readViewerAutomationEdit(context.get("viewer"), id));
4391
4382
  } catch (error) {
4392
4383
  return editErrorResponse(error);
4393
4384
  }
4394
4385
  });
4395
- app.post("/:kind/:id/lifecycle", requireViewer, validateRequest("param", automationParamsSchema, "Invalid Automation."), validateRequest("json", automationLifecycleSchema, "Invalid lifecycle action."), async (context) => {
4396
- const { kind, id } = context.req.valid("param");
4386
+ app.post("/:id/lifecycle", requireViewer, validateRequest("param", automationParamsSchema, "Invalid Automation."), validateRequest("json", automationLifecycleSchema, "Invalid lifecycle action."), async (context) => {
4387
+ const { id } = context.req.valid("param");
4397
4388
  try {
4398
- return jsonResponse(automationEditSchema, await changeViewerAutomationLifecycle(context.get("viewer"), kind, id, context.req.valid("json")));
4389
+ return jsonResponse(automationEditSchema, await changeViewerAutomationLifecycle(context.get("viewer"), id, context.req.valid("json")));
4399
4390
  } catch (error) {
4400
4391
  return editErrorResponse(error);
4401
4392
  }
4402
4393
  });
4403
- app.patch("/:kind/:id", requireViewer, validateRequest("param", automationParamsSchema, "Invalid Automation."), zValidator("json", automationUpdateSchema, (result) => {
4394
+ app.patch("/:id", requireViewer, validateRequest("param", automationParamsSchema, "Invalid Automation."), zValidator("json", automationUpdateSchema, (result) => {
4404
4395
  if (!result.success) {
4405
4396
  const fields = {};
4406
4397
  for (const issue of result.error.issues) {
@@ -4414,10 +4405,9 @@ function createAutomationRoutes() {
4414
4405
  }, { status: 400 });
4415
4406
  }
4416
4407
  }), async (context) => {
4417
- const { kind, id } = context.req.valid("param");
4408
+ const { id } = context.req.valid("param");
4418
4409
  const input = context.req.valid("json");
4419
4410
  try {
4420
- if (input.kind !== kind) throw new AutomationEditError("The trigger type cannot change.", "kind");
4421
4411
  return jsonResponse(automationEditSchema, await updateViewerAutomation(context.get("viewer"), id, input));
4422
4412
  } catch (error) {
4423
4413
  return editErrorResponse(error);
@@ -4427,11 +4417,11 @@ function createAutomationRoutes() {
4427
4417
  const automation = await readViewerAutomationSummary(context.get("viewer"), context.req.param("id"));
4428
4418
  return automation ? jsonResponse(automationSummarySchema, automation) : jsonResponse(apiErrorSchema, { error: "Automation was not found." }, { status: 404 });
4429
4419
  });
4430
- app.delete("/:kind/:id", requireViewer, validateRequest("param", automationParamsSchema, "Invalid task."), async (context) => {
4420
+ app.delete("/:id", requireViewer, validateRequest("param", automationParamsSchema, "Invalid task."), async (context) => {
4431
4421
  const user = context.get("viewer");
4432
4422
  const params = context.req.valid("param");
4433
4423
  try {
4434
- await deleteViewerTask(user, params.kind, params.id);
4424
+ await deleteViewerTask(user, params.id);
4435
4425
  return emptyResponse();
4436
4426
  } catch (error) {
4437
4427
  if (error instanceof ViewerTaskNotFoundError) return jsonResponse(apiErrorSchema, { error: error.message }, { status: 404 });
@@ -4565,7 +4555,7 @@ function readDescriptionText(home) {
4565
4555
  }
4566
4556
  /** Read discovered skill names for authenticated runtime diagnostics. */
4567
4557
  async function readSkillReports() {
4568
- const { discoverSkills } = await import("./skills-D_XDFkSx.js").then((n) => n.o);
4558
+ const { discoverSkills } = await import("./skills-Dc-AMYi4.js").then((n) => n.o);
4569
4559
  const skills = await discoverSkills();
4570
4560
  return skillReportsSchema.parse(skills.map((skill) => ({
4571
4561
  name: skill.name,
@@ -4574,7 +4564,7 @@ async function readSkillReports() {
4574
4564
  }
4575
4565
  /** Read safe configured plugin metadata for authenticated runtime diagnostics. */
4576
4566
  async function readPlugins() {
4577
- const { pluginCatalogRuntime } = await import("./catalog-runtime-TG5WF66H.js").then((n) => n.t);
4567
+ const { pluginCatalogRuntime } = await import("./catalog-runtime-hKmI-iZa.js").then((n) => n.t);
4578
4568
  return pluginsSchema.parse(pluginCatalogRuntime.getProviders().map((plugin) => ({
4579
4569
  configKeys: plugin.manifest.configKeys ?? [],
4580
4570
  description: plugin.manifest.description,
@@ -4586,7 +4576,7 @@ async function readPlugins() {
4586
4576
  async function readRuntimeInfoReport() {
4587
4577
  const [{ homeDir }, { pluginCatalogRuntime }, plugins, skills] = await Promise.all([
4588
4578
  import("./package-discovery-BVvSnQBB.js").then((n) => n.r),
4589
- import("./catalog-runtime-TG5WF66H.js").then((n) => n.t),
4579
+ import("./catalog-runtime-hKmI-iZa.js").then((n) => n.t),
4590
4580
  readPlugins(),
4591
4581
  readSkillReports()
4592
4582
  ]);
@@ -4603,7 +4593,7 @@ async function readRuntimeInfoReport() {
4603
4593
  /** Read sanitized operational summaries contributed by plugins. */
4604
4594
  async function readPluginOperationalReportFeed() {
4605
4595
  const nowMs = Date.now();
4606
- const { getPluginOperationalReports } = await import("./agent-hooks-DfPubHYm.js").then((n) => n.t);
4596
+ const { getPluginOperationalReports } = await import("./agent-hooks-CDVx26Uu.js").then((n) => n.t);
4607
4597
  return pluginOperationalReportFeedSchema.parse({
4608
4598
  source: "plugins",
4609
4599
  generatedAt: new Date(nowMs).toISOString(),