@sentry/junior 0.218.0 → 0.220.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 (54) hide show
  1. package/dist/{agent-C-wRol8n.js → agent-CJ_-GRPT.js} +40 -29
  2. package/dist/{agent-hooks-Au93EfEr.js → agent-hooks-DsFlR7gi.js} +8 -8
  3. package/dist/{agent-runner-skcXibgb.js → agent-runner-D82gVT0O.js} +5 -5
  4. package/dist/api/schema.d.ts +30 -0
  5. package/dist/api/schema.js +2 -2
  6. package/dist/api.js +80 -19
  7. package/dist/app.js +31 -158
  8. package/dist/{auth-pause-state-CU71X-6Z.js → auth-pause-state-DL5YJXnT.js} +6 -6
  9. package/dist/{briefs-Dcdrr46e.js → briefs-CvXfErSa.js} +4 -4
  10. package/dist/{catalog-runtime-B9yDPVCR.js → catalog-runtime-DSEzvNVT.js} +1 -1
  11. package/dist/{checkpoint-CQ6eQrJD.js → checkpoint-DfpPyo-x.js} +7 -7
  12. package/dist/cli/chat.js +13 -13
  13. package/dist/cli/check.js +3 -3
  14. package/dist/cli/main.js +1 -1
  15. package/dist/cli/plugins.js +3 -3
  16. package/dist/cli/snapshot-create.js +3 -3
  17. package/dist/cli/upgrade.js +3 -3
  18. package/dist/{client-BV3_abpr.js → client-pBijNHYx.js} +2 -2
  19. package/dist/{config-DceVK986.js → config-DYi2mx6N.js} +2 -2
  20. package/dist/{conversation-BpqLg4MM.js → conversation-BSRGzJmY.js} +1 -0
  21. package/dist/{conversation-privacy-C_w2FAlM.js → conversation-privacy-TiU3SGZh.js} +1 -1
  22. package/dist/{credential-sync-DKXGTID8.js → credential-sync-hBiu11zS.js} +20 -20
  23. package/dist/{execution-stats-BIyGof8p.js → execution-stats-DAWGg9WH.js} +3 -3
  24. package/dist/{executor-CxoH7xaY.js → executor-t2OCqFgz.js} +1 -1
  25. package/dist/instrumentation.js +2 -2
  26. package/dist/{job-queue-DwA7xmCQ.js → job-queue-Deruj7qS.js} +1 -1
  27. package/dist/{logging-CtfUmyiN.js → logging-wngKXw7u.js} +1 -1
  28. package/dist/nitro.js +3 -3
  29. package/dist/{oauth-callback-server-RefMcYAD.js → oauth-callback-server-D1jNG0lr.js} +2 -2
  30. package/dist/{pending-auth-B_nSqxpd.js → pending-auth-DJa76b68.js} +2 -2
  31. package/dist/{profile-BRupCR8f.js → profile-Mv2uNsKJ.js} +4 -4
  32. package/dist/{prompt-DAoaq0CT.js → prompt-BkaHwBW0.js} +1 -1
  33. package/dist/{registry-DiIwniX1.js → registry-6_Zog2YF.js} +1 -1
  34. package/dist/{resolve-0BvJroyG.js → resolve-BI3Dfm9p.js} +2 -2
  35. package/dist/{runner-DDHI2RaU.js → runner-CzrmejYr.js} +9 -9
  36. package/dist/{sandbox-egress-signals-CoVhGAih.js → sandbox-egress-signals-BcSCyPKx.js} +1 -1
  37. package/dist/{schema-BMG8MJPJ.js → schema-YPJXVcOW.js} +1 -1
  38. package/dist/{short-title-BdpXj7eS.js → short-title-Bs3wWE1M.js} +2 -2
  39. package/dist/{skills-MlftIiVP.js → skills-DOE_QPVJ.js} +2 -2
  40. package/dist/{spawn-DLlXPelG.js → spawn-DylJoJnT.js} +2 -2
  41. package/dist/{stats-BjipUP7p.js → stats--FeHjGJ1.js} +5 -5
  42. package/dist/{task-queue-DyfnQ7ZM.js → task-queue-CSEo5Ly9.js} +3 -3
  43. package/dist/{task-runner-BOuCBVgO.js → task-runner-BDwZj8OX.js} +8 -8
  44. package/dist/{thread-state-DrGVG1E-.js → thread-state-CpZAVpdG.js} +5 -5
  45. package/dist/{turn-execution-CZKg5Fw9.js → turn-execution-AROC0tUZ.js} +3 -3
  46. package/dist/{turn-lifecycle-BV2Wp_qF.js → turn-lifecycle-CGNjfgbT.js} +1 -1
  47. package/dist/{validation-BXDSxuOX.js → validation-QFwh6qzp.js} +1 -1
  48. package/dist/{version-DNJ6W0LC.js → version-FAS9qrpM.js} +1 -1
  49. package/dist/version.js +1 -1
  50. package/dist/{web-authorization-DhXHpeMK.js → web-authorization-ZAQcIE4e.js} +1 -1
  51. package/dist/{web-input-BqFF7CQB.js → web-input-C5nhIX0j.js} +4 -4
  52. package/dist/{work-DEMP0L3f.js → work-BNw2Vmxi.js} +9 -9
  53. package/dist/{worker-DvK47zmH.js → worker-9Us77-te.js} +5 -5
  54. package/package.json +5 -5
package/dist/app.js CHANGED
@@ -1,41 +1,41 @@
1
- import { $ as AuthorizationFlowDisabledError, B as recordFinishedTurnForAutomatedLimit, C as renderBlockText, D as getNextRunAtMs, E as scheduledAutomationRunAttributes, F as ingestEvent, G as clearSandboxEgressSignals, H as normalizeSandboxEgressTracePropagationDomains, I as EVENT_WAIT_MS, J as parseSandboxEgressCredentialToken, K as consumeSandboxEgressAuthRequiredSignal, L as isEventMailboxMetadata, P as processWorkspaceSnapshotJob, Q as isVisionImageMediaType, R as renderTaskInput, S as renderAttachmentText, T as logScheduledAutomationRunSkipped, U as shouldPropagateSandboxEgressTrace, V as resolveSandboxEgressProviderForHost, W as SANDBOX_EGRESS_PROXY_PATH, X as createUserTokenStore, Z as buildSteeringPiMessage, _ as readPublicArtifact, b as readAttachmentVisionSummary, c as deleteMcpStoredOAuthCredentials, et as shouldEmitDevAgentTrace, f as PluginCredentialFailureError, g as publicArtifactHeaders, m as latestProgressStatus, n as createContextCompactor, nt as setConfigDefaults, o as deleteMcpAuthSessionsForUserProvider, q as consumeSandboxEgressPermissionDeniedSignal, r as executeCredentialedEgressRequest, s as deleteMcpServerSessionId, t as executeAgentRun, tt as getConfigDefaults, v as unpublishedArtifactHeaders, w as listThreadReplies, x as recordSlackAttachment, z as maybePostAutomatedTurnLimitNotice } from "./agent-C-wRol8n.js";
2
- import { b as isProviderRetryError, i as completeText, m as escapeXml, r as completeObject } from "./client-BV3_abpr.js";
3
- import { A as JUNIOR_WORKSPACE_SNAPSHOT_JOB_CALLBACK_ROUTE, C as withSpan, D as JUNIOR_PLUGIN_TASK_CALLBACK_ROUTE, F as isRecord$1, I as toOptionalNumber, L as toOptionalString, S as withLogContext, _ as setSpanAttributes, d as logInfo, f as logWarn, g as setSentryUser, l as logError, n as createChatSdkLogger, o as getActiveTraceId, r as createRequestContext, t as buildTurnFailureResponse, u as logException, v as setSpanStatus, x as withContext, y as setTags } from "./logging-CtfUmyiN.js";
1
+ import { $ as AuthorizationFlowDisabledError, B as recordFinishedTurnForAutomatedLimit, C as renderBlockText, D as getNextRunAtMs, E as scheduledAutomationRunAttributes, F as ingestEvent, G as clearSandboxEgressSignals, H as normalizeSandboxEgressTracePropagationDomains, I as EVENT_WAIT_MS, J as parseSandboxEgressCredentialToken, K as consumeSandboxEgressAuthRequiredSignal, L as isEventMailboxMetadata, P as processWorkspaceSnapshotJob, Q as isVisionImageMediaType, R as renderTaskInput, S as renderAttachmentText, T as logScheduledAutomationRunSkipped, U as shouldPropagateSandboxEgressTrace, V as resolveSandboxEgressProviderForHost, W as SANDBOX_EGRESS_PROXY_PATH, X as createUserTokenStore, Z as buildSteeringPiMessage, _ as readPublicArtifact, b as readAttachmentVisionSummary, c as deleteMcpStoredOAuthCredentials, et as shouldEmitDevAgentTrace, f as PluginCredentialFailureError, g as publicArtifactHeaders, m as latestProgressStatus, n as createContextCompactor, nt as setConfigDefaults, o as deleteMcpAuthSessionsForUserProvider, q as consumeSandboxEgressPermissionDeniedSignal, r as executeCredentialedEgressRequest, s as deleteMcpServerSessionId, t as executeAgentRun, tt as getConfigDefaults, v as unpublishedArtifactHeaders, w as listThreadReplies, x as recordSlackAttachment, z as maybePostAutomatedTurnLimitNotice } from "./agent-CJ_-GRPT.js";
2
+ import { b as isProviderRetryError, i as completeText, m as escapeXml, r as completeObject } from "./client-pBijNHYx.js";
3
+ import { A as JUNIOR_WORKSPACE_SNAPSHOT_JOB_CALLBACK_ROUTE, C as withSpan, D as JUNIOR_PLUGIN_TASK_CALLBACK_ROUTE, F as isRecord$1, I as toOptionalNumber, L as toOptionalString, S as withLogContext, _ as setSpanAttributes, d as logInfo, f as logWarn, g as setSentryUser, l as logError, n as createChatSdkLogger, o as getActiveTraceId, r as createRequestContext, t as buildTurnFailureResponse, u as logException, v as setSpanStatus, x as withContext, y as setTags } from "./logging-wngKXw7u.js";
4
4
  import { r as continueTrace } from "./sentry-CgWZM_kV.js";
5
- import { t as JUNIOR_VERSION } from "./version-DNJ6W0LC.js";
6
- import { a as getChatConfig, c as getSlackClientId, d as getSlackSigningSecret, f as setBotModelConfig, i as configureFunctionMaxDurationSeconds, l as getSlackClientSecret, m as setSlackReactionConfig, n as botConfig, p as setProfiles, s as getSlackBotToken, u as getSlackReactionConfig } from "./config-DceVK986.js";
5
+ import { t as JUNIOR_VERSION } from "./version-FAS9qrpM.js";
6
+ import { a as getChatConfig, c as getSlackClientId, d as getSlackSigningSecret, f as setBotModelConfig, i as configureFunctionMaxDurationSeconds, l as getSlackClientSecret, m as setSlackReactionConfig, n as botConfig, p as setProfiles, s as getSlackBotToken, u as getSlackReactionConfig } from "./config-DYi2mx6N.js";
7
7
  import { a as modelIdForProfile, n as defaultModelId } from "./model-profile-CZmVoGdX.js";
8
8
  import { _ as parseSlackMessageTs, a as createActor, c as isActorUserId, o as createSlackActor, p as parseSlackChannelId, s as createSlackResumeActor, t as credentialContextForActor, u as parseActorUserId } from "./context-Bplcgypl.js";
9
- import { B as downloadPrivateSlackFile, F as bindSlackDirectCredentialSubject, G as isDmChannel, Gt as getDb, Ht as getConversationEventStore, I as verifyEventAutomationCredentialSubject, Jt as withConversationEventLock, K as normalizeSlackConversationId, Kt as getSqlExecutor, L as verifyScheduledAutomationCredentialSubject, N as bindEventAutomationCredentialSubject, P as bindScheduledAutomationCredentialSubject, Pt as resolveRootVisibility, R as verifySlackDirectCredentialSubject, U as getSlackClient, Wt as getConversationStore, X as runWithWorkspaceTeamId, Xt as withConversationMutationLock, Y as getWorkspaceTeamId, _t as createPluginState, a as getPluginRoutes, bt as createPluginLogger, ct as collectEventMatchKeys, d as setPlugins, dn as requireSlackDestination, dt as findMatchingWatches, f as validatePlugins, gt as setDashboardConversationLinkOptions, h as setBriefsConfig, i as getPluginApiRoutes, ln as createSlackDestination, on as deleteProviderIdentityForSlackUser, ot as cancelSubscriptions, pt as JUNIOR_THREAD_STATE_TTL_MS, q as runWithSlackInstallationToken, u as getPlugins, xt as readConversationAccessFromSql, z as SlackActionError } from "./agent-hooks-Au93EfEr.js";
9
+ import { B as downloadPrivateSlackFile, F as bindSlackDirectCredentialSubject, G as isDmChannel, Gt as getDb, Ht as getConversationEventStore, I as verifyEventAutomationCredentialSubject, Jt as withConversationEventLock, K as normalizeSlackConversationId, Kt as getSqlExecutor, L as verifyScheduledAutomationCredentialSubject, N as bindEventAutomationCredentialSubject, P as bindScheduledAutomationCredentialSubject, Pt as resolveRootVisibility, R as verifySlackDirectCredentialSubject, U as getSlackClient, Wt as getConversationStore, X as runWithWorkspaceTeamId, Xt as withConversationMutationLock, Y as getWorkspaceTeamId, _t as createPluginState, a as getPluginRoutes, bt as createPluginLogger, ct as collectEventMatchKeys, d as setPlugins, dn as requireSlackDestination, dt as findMatchingWatches, f as validatePlugins, gt as setDashboardConversationLinkOptions, h as setBriefsConfig, i as getPluginApiRoutes, ln as createSlackDestination, on as deleteProviderIdentityForSlackUser, ot as cancelSubscriptions, pt as JUNIOR_THREAD_STATE_TTL_MS, q as runWithSlackInstallationToken, u as getPlugins, xt as readConversationAccessFromSql, z as SlackActionError } from "./agent-hooks-DsFlR7gi.js";
10
10
  import { n as juniorDestinations } from "./destinations-BeBiJeEM.js";
11
- import { E as juniorConversations, a as juniorSchedulerRuns, f as juniorAgentBindings, g as juniorConversationBriefs, o as juniorSchedulerTasks, p as juniorAgentInvocations, y as juniorConversationEvents } from "./executor-CxoH7xaY.js";
12
- import { W as instructionProvenanceFor } from "./conversation-BpqLg4MM.js";
13
- import { n as pluginCatalogRuntime } from "./catalog-runtime-B9yDPVCR.js";
14
- import { $ as resolveConversationTitle, F as loadProjection, G as recordSubscribedReplyRoute, J as appendConversationMessages, M as commitMessages, P as loadConversationProjection, Q as persistConversationMessageSummaries, X as persistConversationMessages, Y as hydrateConversationMessages, Z as projectConversationMessages, a as completeTurnRecord, at as isHumanConversationMessage, c as getTurnRecordForResume, ct as recordDeliveredAssistantMessage, d as persistWithRetry, dt as estimateTextTokens, et as appendThreadContextMessages, i as abandonTurnRecord, it as getConversationMessageSlackTs, j as commitAcceptedReply, k as trimTrailingAssistantMessages, l as listTurnSummaries, lt as turnHasReply, m as buildTurnErrorResponse, n as loadTurnCheckpoint, nt as createConversationMemoryService, o as failTurnRecord, ot as markConversationMessage, r as saveTurnCheckpoint, rt as estimateConversationContextTokens, s as getTurnRecord, st as normalizeConversationText, tt as buildConversationContext, u as recordTurnSummary, ut as upsertConversationMessage } from "./checkpoint-CQ6eQrJD.js";
15
- import { E as acquireActiveLock, O as withActiveLock, T as MUTATION_LOCK_TTL_MS$1, k as withLock$1, w as getStateAdapter } from "./profile-BRupCR8f.js";
16
- import { Bt as hasRunnableConversationWork$1, Dt as hasRunnableConversationWork, Et as getConversationWorkState, F as effectiveTaskOutcomes, Ht as isInvalidConversationRecordError, It as stopConversationWork, Kt as buildDeterministicAssistantMessageId, Mt as removeActiveConversation, Ot as listActiveConversationIds, Pt as requestConversationWork, Rt as CONVERSATION_WORK_STALE_ENQUEUE_MS, S as withScheduledAutomationLock, Tt as getConversation, U as findMatchingEventAutomations, X as getEventCatalog, a as requestAttachmentDeletion, b as saveScheduledAutomationInLock, c as parseSlackThreadId, g as listScheduledAutomationsForTeam, h as listScheduledAutomations, o as storeAttachment, pt as appendAndEnqueueInboundMessage, qt as buildDeterministicTurnId, r as collectAttachmentGarbage, tt as eventGuidance, v as readScheduledAutomation, vt as clearExpiredConversationLease, w as scheduledRunSchema, wt as ensureConversationWake, x as scheduledRunId, z as collectEventAutomationMatchKeys } from "./stats-BjipUP7p.js";
17
- import { S as startActiveTurn, _ as isTurnInputCommitLostError, b as markTurnCompleted, d as ConversationTurnBoundaryError, f as CooperativeTurnYieldError, g as isCooperativeTurnYieldError, h as getConversationTurnBoundaryError, m as TurnInputDeferredError, p as TurnInputCommitLostError, r as clearPendingAuth, s as getAssistantReplyText, v as isTurnInputDeferredError, x as markTurnFailed, y as markTurnClosed } from "./pending-auth-B_nSqxpd.js";
18
- import { h as postSlackMessage, i as formatProviderLabel, s as startOAuthFlow, t as createAgentRunner, v as RetryableDeliveryError } from "./agent-runner-skcXibgb.js";
19
- import { a as EVENT_SYSTEM_ACTOR, i as EVENT_MESSAGE_AUTHOR, o as isEventConversationMessage } from "./prompt-DAoaq0CT.js";
20
- import { f as setSandboxResourceConfig, u as getSandboxResourceConfig } from "./resolve-0BvJroyG.js";
11
+ import { E as juniorConversations, a as juniorSchedulerRuns, f as juniorAgentBindings, g as juniorConversationBriefs, o as juniorSchedulerTasks, p as juniorAgentInvocations, y as juniorConversationEvents } from "./executor-t2OCqFgz.js";
12
+ import { W as instructionProvenanceFor } from "./conversation-BSRGzJmY.js";
13
+ import { n as pluginCatalogRuntime } from "./catalog-runtime-DSEzvNVT.js";
14
+ import { $ as resolveConversationTitle, F as loadProjection, G as recordSubscribedReplyRoute, J as appendConversationMessages, M as commitMessages, P as loadConversationProjection, Q as persistConversationMessageSummaries, X as persistConversationMessages, Y as hydrateConversationMessages, Z as projectConversationMessages, a as completeTurnRecord, at as isHumanConversationMessage, c as getTurnRecordForResume, ct as recordDeliveredAssistantMessage, d as persistWithRetry, dt as estimateTextTokens, et as appendThreadContextMessages, i as abandonTurnRecord, it as getConversationMessageSlackTs, j as commitAcceptedReply, k as trimTrailingAssistantMessages, l as listTurnSummaries, lt as turnHasReply, m as buildTurnErrorResponse, n as loadTurnCheckpoint, nt as createConversationMemoryService, o as failTurnRecord, ot as markConversationMessage, r as saveTurnCheckpoint, rt as estimateConversationContextTokens, s as getTurnRecord, st as normalizeConversationText, tt as buildConversationContext, u as recordTurnSummary, ut as upsertConversationMessage } from "./checkpoint-DfpPyo-x.js";
15
+ import { E as acquireActiveLock, O as withActiveLock, T as MUTATION_LOCK_TTL_MS$1, k as withLock$1, w as getStateAdapter } from "./profile-Mv2uNsKJ.js";
16
+ import { Bt as hasRunnableConversationWork$1, Dt as hasRunnableConversationWork, Et as getConversationWorkState, F as effectiveTaskOutcomes, Ht as isInvalidConversationRecordError, It as stopConversationWork, Kt as buildDeterministicAssistantMessageId, Mt as removeActiveConversation, Ot as listActiveConversationIds, Pt as requestConversationWork, Rt as CONVERSATION_WORK_STALE_ENQUEUE_MS, S as withScheduledAutomationLock, Tt as getConversation, U as findMatchingEventAutomations, X as getEventCatalog, a as requestAttachmentDeletion, b as saveScheduledAutomationInLock, c as parseSlackThreadId, g as listScheduledAutomationsForTeam, h as listScheduledAutomations, o as storeAttachment, pt as appendAndEnqueueInboundMessage, qt as buildDeterministicTurnId, r as collectAttachmentGarbage, tt as eventGuidance, v as readScheduledAutomation, vt as clearExpiredConversationLease, w as scheduledRunSchema, wt as ensureConversationWake, x as scheduledRunId, z as collectEventAutomationMatchKeys } from "./stats--FeHjGJ1.js";
17
+ import { S as startActiveTurn, _ as isTurnInputCommitLostError, b as markTurnCompleted, d as ConversationTurnBoundaryError, f as CooperativeTurnYieldError, g as isCooperativeTurnYieldError, h as getConversationTurnBoundaryError, m as TurnInputDeferredError, p as TurnInputCommitLostError, r as clearPendingAuth, s as getAssistantReplyText, v as isTurnInputDeferredError, x as markTurnFailed, y as markTurnClosed } from "./pending-auth-DJa76b68.js";
18
+ import { h as postSlackMessage, i as formatProviderLabel, s as startOAuthFlow, t as createAgentRunner, v as RetryableDeliveryError } from "./agent-runner-D82gVT0O.js";
19
+ import { a as EVENT_SYSTEM_ACTOR, i as EVENT_MESSAGE_AUTHOR, o as isEventConversationMessage } from "./prompt-BkaHwBW0.js";
20
+ import { f as setSandboxResourceConfig, u as getSandboxResourceConfig } from "./resolve-BI3Dfm9p.js";
21
21
  import { l as conversationQueueMessageSchema, n as resolveConversationWorkQueueTopic, r as verifyConversationQueueMessage, t as getVercelConversationWorkQueue, u as isConversationQueueMessageRejectedError } from "./vercel-queue-DIkVcfK4.js";
22
- import { a as getTurnRequestDeadline, i as verifyWorkspaceSnapshotJobMessage, t as WORKSPACE_SNAPSHOT_JOB_QUEUE_TOPIC } from "./job-queue-DwA7xmCQ.js";
22
+ import { a as getTurnRequestDeadline, i as verifyWorkspaceSnapshotJobMessage, t as WORKSPACE_SNAPSHOT_JOB_QUEUE_TOPIC } from "./job-queue-Deruj7qS.js";
23
23
  import { i as setExperimentalFeatures, n as getExperimentalFeatures, r as isExperimentalFeatureEnabled } from "./experimental-CIXf7Uye.js";
24
- import { n as validatePluginRegistrations, t as validatePluginEgressCredentialHooks } from "./validation-BXDSxuOX.js";
24
+ import { n as validatePluginRegistrations, t as validatePluginEgressCredentialHooks } from "./validation-QFwh6qzp.js";
25
25
  import { a as pluginRuntimeRegistrationsFromPluginSet, n as pluginCatalogConfigFromEnv, r as pluginCatalogConfigFromPluginSet, t as defineJuniorPlugins } from "./plugins-egKWjgue.js";
26
- import { a as webActorFromEmail, f as lookupSlackUser, h as GET$3, i as recordWebConversationActivity, l as resolveSlackChannelTypeFromMessage, m as createVercelAttachmentStorage, n as conversationTurnIdForMessage, o as resolveConversationDestination, p as legacyWebMailboxMetadataSchema, s as conversationVisibilityFromSlackChannelType, t as appendAndEnqueueWebMessage, u as resolveSlackConversationContext } from "./web-input-BqFF7CQB.js";
27
- import { u as recordAutomationExecution } from "./execution-stats-BIyGof8p.js";
28
- import { _ as markDispatchCompleted, a as claimDispatchMailboxAppend, c as getDispatchConversationId, d as getDispatchTurnId, f as getPluginDispatchProjection, g as markDispatchBlocked, h as markDispatchAwaitingResume, i as resolveTurnSessionRouting, l as getDispatchInputMessageId, m as listPendingDispatchMailboxAppends, n as scheduleSessionCompletedPluginTasks, o as confirmDispatchMailboxAppend, p as isTerminalDispatchStatus, s as createOrGetDispatch, t as processPluginTask, u as getDispatchRecord, v as markDispatchFailed, y as markDispatchRunning } from "./task-runner-BOuCBVgO.js";
29
- import { i as resolveAgentInvocationId, o as listPendingAgentInvocationMailboxAppends, r as enqueueAgentInvocation, t as createAgentInvocationWorker } from "./work-DEMP0L3f.js";
30
- import { n as getTurnLifecycle, t as ConversationTurnLifecycleService } from "./turn-lifecycle-BV2Wp_qF.js";
31
- import { n as executeTurn, t as AgentRunError } from "./turn-execution-CZKg5Fw9.js";
32
- import { a as persistThreadState, i as persistThreadRuntimeState, n as getPersistedSandboxState, o as persistThreadStateById, r as getPersistedThreadState, s as coerceThreadConversationState, t as getLocationConfigurationService } from "./thread-state-DrGVG1E-.js";
33
- import { a as requireTurnFailureEventId, d as buildDeliveredTurnStatePatch, i as getAgentTurnDiagnosticsAttributes, l as getTurnUserReplyAttachmentContext, n as persistAuthPauseTurnState, r as finalizeFailedTurnReplyWithEvent, s as getTurnUserMessage, t as completeAuthPauseTurn, u as getTurnUserSlackMessageTs } from "./auth-pause-state-CU71X-6Z.js";
34
- import { a as registerVercelPluginTaskDevConsumer, n as createVercelPluginTaskCallback, s as queueCallback } from "./task-queue-DyfnQ7ZM.js";
35
- import { C as isSlackTitlePermissionError, D as createSlackAdapterAssistantStatusSession, E as splitSlackReplyText, S as isRetryableSlackPostError, T as buildSlackOutputMessage, _ as getThreadId, a as GET$4, b as getSlackApiErrorCode, c as wakePausedTurn, d as shouldKeepProcessingReactionForToolInvocation, f as startProcessingReaction, g as getRunId, h as getMessageTs, i as publishAppHomeView, l as resumeSlackTurn, m as getChannelId, o as createPausedTurns, p as getAssistantThreadContext, r as GET$5, s as getPausedTurnRequest, t as receiveLocalOAuthCredential, u as buildAuthPauseResponse, v as getThreadTs, w as sendSlackReply, x as getSlackErrorObservabilityAttributes, y as stripLeadingBotMention } from "./credential-sync-DKXGTID8.js";
36
- import { n as deleteWebAuthorization, t as createWebAuthorization } from "./web-authorization-DhXHpeMK.js";
37
- import { t as processConversationWork } from "./worker-DvK47zmH.js";
38
- import { t as bindSpawnAgent } from "./spawn-DLlXPelG.js";
26
+ import { a as webActorFromEmail, f as lookupSlackUser, h as GET$3, i as recordWebConversationActivity, l as resolveSlackChannelTypeFromMessage, m as createVercelAttachmentStorage, n as conversationTurnIdForMessage, o as resolveConversationDestination, p as legacyWebMailboxMetadataSchema, s as conversationVisibilityFromSlackChannelType, t as appendAndEnqueueWebMessage, u as resolveSlackConversationContext } from "./web-input-C5nhIX0j.js";
27
+ import { u as recordAutomationExecution } from "./execution-stats-DAWGg9WH.js";
28
+ import { _ as markDispatchCompleted, a as claimDispatchMailboxAppend, c as getDispatchConversationId, d as getDispatchTurnId, f as getPluginDispatchProjection, g as markDispatchBlocked, h as markDispatchAwaitingResume, i as resolveTurnSessionRouting, l as getDispatchInputMessageId, m as listPendingDispatchMailboxAppends, n as scheduleSessionCompletedPluginTasks, o as confirmDispatchMailboxAppend, p as isTerminalDispatchStatus, s as createOrGetDispatch, t as processPluginTask, u as getDispatchRecord, v as markDispatchFailed, y as markDispatchRunning } from "./task-runner-BDwZj8OX.js";
29
+ import { i as resolveAgentInvocationId, o as listPendingAgentInvocationMailboxAppends, r as enqueueAgentInvocation, t as createAgentInvocationWorker } from "./work-BNw2Vmxi.js";
30
+ import { n as getTurnLifecycle, t as ConversationTurnLifecycleService } from "./turn-lifecycle-CGNjfgbT.js";
31
+ import { n as executeTurn, t as AgentRunError } from "./turn-execution-AROC0tUZ.js";
32
+ import { a as persistThreadState, i as persistThreadRuntimeState, n as getPersistedSandboxState, o as persistThreadStateById, r as getPersistedThreadState, s as coerceThreadConversationState, t as getLocationConfigurationService } from "./thread-state-CpZAVpdG.js";
33
+ import { a as requireTurnFailureEventId, d as buildDeliveredTurnStatePatch, i as getAgentTurnDiagnosticsAttributes, l as getTurnUserReplyAttachmentContext, n as persistAuthPauseTurnState, r as finalizeFailedTurnReplyWithEvent, s as getTurnUserMessage, t as completeAuthPauseTurn, u as getTurnUserSlackMessageTs } from "./auth-pause-state-DL5YJXnT.js";
34
+ import { a as registerVercelPluginTaskDevConsumer, n as createVercelPluginTaskCallback, s as queueCallback } from "./task-queue-CSEo5Ly9.js";
35
+ import { C as isSlackTitlePermissionError, D as createSlackAdapterAssistantStatusSession, E as splitSlackReplyText, S as isRetryableSlackPostError, T as buildSlackOutputMessage, _ as getThreadId, a as GET$4, b as getSlackApiErrorCode, c as wakePausedTurn, d as shouldKeepProcessingReactionForToolInvocation, f as startProcessingReaction, g as getRunId, h as getMessageTs, i as publishAppHomeView, l as resumeSlackTurn, m as getChannelId, o as createPausedTurns, p as getAssistantThreadContext, r as GET$5, s as getPausedTurnRequest, t as receiveLocalOAuthCredential, u as buildAuthPauseResponse, v as getThreadTs, w as sendSlackReply, x as getSlackErrorObservabilityAttributes, y as stripLeadingBotMention } from "./credential-sync-hBiu11zS.js";
36
+ import { n as deleteWebAuthorization, t as createWebAuthorization } from "./web-authorization-ZAQcIE4e.js";
37
+ import { t as processConversationWork } from "./worker-9Us77-te.js";
38
+ import { t as bindSpawnAgent } from "./spawn-DylJoJnT.js";
39
39
  import { createRequire } from "node:module";
40
40
  import { pathToFileURL } from "node:url";
41
41
  import { Hono } from "hono";
@@ -4460,106 +4460,6 @@ function recordSkippedConversationMessage(args) {
4460
4460
  });
4461
4461
  }
4462
4462
  //#endregion
4463
- //#region src/chat/ingress/message-changed.ts
4464
- function getEditedMentionMessageId(messageTs) {
4465
- return `${messageTs}:message_changed_mention`;
4466
- }
4467
- function isMessageChangedEnvelope(value) {
4468
- if (!value || typeof value !== "object") return false;
4469
- const v = value;
4470
- if (v.type !== "event_callback") return false;
4471
- const event = v.event;
4472
- if (!event || typeof event !== "object") return false;
4473
- return event.type === "message" && event.subtype === "message_changed" && typeof event.channel === "string" && typeof event.message === "object" && event.message !== null && typeof event.previous_message === "object" && event.previous_message !== null;
4474
- }
4475
- function getAttachmentType(mimeType) {
4476
- if (mimeType?.startsWith("image/")) return "image";
4477
- if (mimeType?.startsWith("video/")) return "video";
4478
- if (mimeType?.startsWith("audio/")) return "audio";
4479
- return "file";
4480
- }
4481
- function extractEditedMessageAttachments(files) {
4482
- if (!files || files.length === 0) return [];
4483
- return files.map((file) => ({
4484
- type: getAttachmentType(file.mimetype),
4485
- url: file.url_private_download ?? file.url_private,
4486
- name: file.name,
4487
- mimeType: file.mimetype,
4488
- size: file.size,
4489
- width: file.original_w,
4490
- height: file.original_h
4491
- }));
4492
- }
4493
- /**
4494
- * Inspect a raw parsed Slack webhook body and extract a synthesized mention
4495
- * event when a `message_changed` edit newly adds the bot's @mention.
4496
- *
4497
- * Returns `null` when the payload is not a qualifying `message_changed` event.
4498
- */
4499
- function extractMessageChangedMention(body, botUserId, adapter) {
4500
- if (!isMessageChangedEnvelope(body)) return null;
4501
- const { event } = body;
4502
- const newText = event.message.text ?? "";
4503
- const prevText = event.previous_message.text ?? "";
4504
- if (!textMentionsBot(newText, botUserId)) return null;
4505
- if (textMentionsBot(prevText, botUserId)) return null;
4506
- const channelId = event.channel;
4507
- const messageTs = event.message.ts;
4508
- const threadTs = event.message.thread_ts ?? messageTs;
4509
- const userId = parseActorUserId(event.message.user);
4510
- if (!userId) return null;
4511
- const threadId = `slack:${channelId}:${threadTs}`;
4512
- const teamId = typeof body.team_id === "string" ? body.team_id : void 0;
4513
- const userTeam = typeof event.message.user_team === "string" ? event.message.user_team : void 0;
4514
- const sourceTeam = typeof event.message.source_team === "string" ? event.message.source_team : void 0;
4515
- const botId = typeof event.message.bot_id === "string" ? event.message.bot_id : void 0;
4516
- const channelType = typeof event.channel_type === "string" ? event.channel_type : void 0;
4517
- const raw = {
4518
- channel: channelId,
4519
- ...channelType ? { channel_type: channelType } : void 0,
4520
- ts: messageTs,
4521
- thread_ts: threadTs,
4522
- user: userId,
4523
- ...teamId ? { team_id: teamId } : void 0,
4524
- ...userTeam ? { user_team: userTeam } : void 0,
4525
- ...sourceTeam ? { source_team: sourceTeam } : void 0,
4526
- ...botId ? { bot_id: botId } : void 0
4527
- };
4528
- const message = new Message({
4529
- id: getEditedMentionMessageId(messageTs),
4530
- threadId,
4531
- text: newText,
4532
- isMention: true,
4533
- attachments: extractEditedMessageAttachments(event.message.files),
4534
- metadata: {
4535
- dateSent: /* @__PURE__ */ new Date(Number(messageTs) * 1e3),
4536
- edited: true
4537
- },
4538
- formatted: {
4539
- type: "root",
4540
- children: []
4541
- },
4542
- raw,
4543
- author: {
4544
- userId,
4545
- userName: "",
4546
- fullName: "",
4547
- isBot: Boolean(botId),
4548
- isMe: userId === botUserId
4549
- }
4550
- });
4551
- Object.defineProperty(message, "adapter", {
4552
- configurable: true,
4553
- enumerable: false,
4554
- value: adapter,
4555
- writable: true
4556
- });
4557
- return {
4558
- threadId,
4559
- message
4560
- };
4561
- }
4562
- //#endregion
4563
4463
  //#region src/chat/ingress/workspace-membership.ts
4564
4464
  /**
4565
4465
  * Return true when a Slack event's author is from an external workspace.
@@ -4905,24 +4805,6 @@ async function routeParsedMessage(args) {
4905
4805
  state: args.state
4906
4806
  });
4907
4807
  }
4908
- async function handleMessageChanged(args) {
4909
- if (!isMessageChangedEnvelope(args.body)) return false;
4910
- const botUserId = args.adapter.botUserId;
4911
- if (!botUserId) throw new Error("Slack bot identity is unresolved; cannot classify message_changed event");
4912
- const result = extractMessageChangedMention(args.body, botUserId, args.adapter);
4913
- if (!result || shouldIgnoreMessage(result.message)) return true;
4914
- await persistSlackMessage({
4915
- adapter: args.adapter,
4916
- installation: args.installation,
4917
- message: result.message,
4918
- conversationStore: args.conversationStore,
4919
- queue: args.queue,
4920
- receivedAtMs: args.receivedAtMs,
4921
- route: "mention",
4922
- state: args.state
4923
- });
4924
- return true;
4925
- }
4926
4808
  async function handleSlackEvent(args) {
4927
4809
  const event = args.body.event;
4928
4810
  if (!event) return;
@@ -4948,15 +4830,6 @@ async function handleSlackEvent(args) {
4948
4830
  installation,
4949
4831
  state,
4950
4832
  task: async () => {
4951
- if (await handleMessageChanged({
4952
- adapter,
4953
- body: args.body,
4954
- installation,
4955
- conversationStore: args.services.conversationStore,
4956
- queue: args.services.queue,
4957
- receivedAtMs,
4958
- state
4959
- })) return;
4960
4833
  if (event.type === "assistant_thread_started") {
4961
4834
  const assistantThread = event.assistant_thread;
4962
4835
  if (assistantThread?.channel_id && assistantThread.thread_ts) await args.services.runtime.handleAssistantThreadStarted({
@@ -1,10 +1,10 @@
1
- import { _ as findProviderError, h as ProviderError, v as getProviderErrorAttributes, y as getProviderErrorUserMessage } from "./client-BV3_abpr.js";
2
- import { t as buildTurnFailureResponse } from "./logging-CtfUmyiN.js";
1
+ import { _ as findProviderError, h as ProviderError, v as getProviderErrorAttributes, y as getProviderErrorUserMessage } from "./client-pBijNHYx.js";
2
+ import { t as buildTurnFailureResponse } from "./logging-wngKXw7u.js";
3
3
  import { _ as parseSlackMessageTs } from "./context-Bplcgypl.js";
4
- import { Y as hydrateConversationMessages, ot as markConversationMessage } from "./checkpoint-CQ6eQrJD.js";
5
- import { qt as buildDeterministicTurnId } from "./stats-BjipUP7p.js";
6
- import { b as markTurnCompleted, r as clearPendingAuth, y as markTurnClosed } from "./pending-auth-B_nSqxpd.js";
7
- import { o as persistThreadStateById, r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-DrGVG1E-.js";
4
+ import { Y as hydrateConversationMessages, ot as markConversationMessage } from "./checkpoint-DfpPyo-x.js";
5
+ import { qt as buildDeterministicTurnId } from "./stats--FeHjGJ1.js";
6
+ import { b as markTurnCompleted, r as clearPendingAuth, y as markTurnClosed } from "./pending-auth-DJa76b68.js";
7
+ import { o as persistThreadStateById, r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-CpZAVpdG.js";
8
8
  //#region src/chat/runtime/delivered-turn-state.ts
9
9
  /** Build state after destination delivery or intentional no-reply completion. */
10
10
  function buildDeliveredTurnStatePatch(args) {
@@ -1,7 +1,7 @@
1
- import { r as completeObject } from "./client-BV3_abpr.js";
1
+ import { r as completeObject } from "./client-pBijNHYx.js";
2
2
  import { n as defaultModelId } from "./model-profile-CZmVoGdX.js";
3
- import { N as parseBriefInput, d as conversationDetailReportSchema, k as briefCodeChangeSchema, p as conversationEventPageSchema } from "./conversation-BpqLg4MM.js";
4
- import { n as briefEntriesFromReportEvents, s as generateBrief, t as BRIEF_PROMPT } from "./prompt-DAoaq0CT.js";
3
+ import { N as parseBriefInput, d as conversationDetailReportSchema, k as briefCodeChangeSchema, p as conversationEventPageSchema } from "./conversation-BSRGzJmY.js";
4
+ import { n as briefEntriesFromReportEvents, s as generateBrief, t as BRIEF_PROMPT } from "./prompt-BkaHwBW0.js";
5
5
  import { CLI_USAGE } from "./cli/run.js";
6
6
  import path from "node:path";
7
7
  import { z } from "zod";
@@ -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-DceVK986.js").then((n) => n.r);
272
+ const { botConfig } = await import("./config-DYi2mx6N.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-DiIwniX1.js";
2
+ import { t as createPluginCatalogRuntime } from "./registry-6_Zog2YF.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();
@@ -1,11 +1,11 @@
1
- import { i as completeText, m as escapeXml, o as resolveGatewayModel, p as unwrapCurrentInstruction } from "./client-BV3_abpr.js";
2
- import { _ as setSpanAttributes, f as logWarn, o as getActiveTraceId, t as buildTurnFailureResponse, u as logException } from "./logging-CtfUmyiN.js";
3
- import { n as botConfig } from "./config-DceVK986.js";
1
+ import { i as completeText, m as escapeXml, o as resolveGatewayModel, p as unwrapCurrentInstruction } from "./client-pBijNHYx.js";
2
+ import { _ as setSpanAttributes, f as logWarn, o as getActiveTraceId, t as buildTurnFailureResponse, u as logException } from "./logging-wngKXw7u.js";
3
+ import { n as botConfig } from "./config-DYi2mx6N.js";
4
4
  import { _ as parseSlackMessageTs, f as toStoredSlackActor } from "./context-Bplcgypl.js";
5
- import { Bt as authenticationUnlinkedEvent, Ht as getConversationEventStore, Jt as withConversationEventLock, Kt as getSqlExecutor, Lt as JUNIOR_NATIVE_EVENT_NAMESPACE, Qt as bindProviderConversation, Rt as agentsInstructionsUpdatedEvent, Wt as getConversationStore, Yt as sanitizePostgresJson, en as addAgentTurnUsage, qt as createSqlConversationEventStore, zt as authenticationLinkedEvent } from "./agent-hooks-Au93EfEr.js";
6
- import { F as agentHistoryItemSchema, H as contextProvenance, U as instructionActors, W as instructionProvenanceFor } from "./conversation-BpqLg4MM.js";
7
- import { n as generateShortTitle, t as fallbackShortTitle } from "./short-title-BdpXj7eS.js";
8
- import { A as sleep, D as fenceLock, T as MUTATION_LOCK_TTL_MS, k as withLock, w as getStateAdapter } from "./profile-BRupCR8f.js";
5
+ import { Bt as authenticationUnlinkedEvent, Ht as getConversationEventStore, Jt as withConversationEventLock, Kt as getSqlExecutor, Lt as JUNIOR_NATIVE_EVENT_NAMESPACE, Qt as bindProviderConversation, Rt as agentsInstructionsUpdatedEvent, Wt as getConversationStore, Yt as sanitizePostgresJson, en as addAgentTurnUsage, qt as createSqlConversationEventStore, zt as authenticationLinkedEvent } from "./agent-hooks-DsFlR7gi.js";
6
+ import { F as agentHistoryItemSchema, H as contextProvenance, U as instructionActors, W as instructionProvenanceFor } from "./conversation-BSRGzJmY.js";
7
+ import { n as generateShortTitle, t as fallbackShortTitle } from "./short-title-Bs3wWE1M.js";
8
+ import { A as sleep, D as fenceLock, T as MUTATION_LOCK_TTL_MS, k as withLock, w as getStateAdapter } from "./profile-Mv2uNsKJ.js";
9
9
  import { isDeepStrictEqual } from "node:util";
10
10
  import { z } from "zod";
11
11
  import { createHash } from "node:crypto";
package/dist/cli/chat.js CHANGED
@@ -1,5 +1,5 @@
1
- import { t as executeAgentRun } from "../agent-C-wRol8n.js";
2
- import { t as createAgentRunner } from "../agent-runner-skcXibgb.js";
1
+ import { t as executeAgentRun } from "../agent-CJ_-GRPT.js";
2
+ import { t as createAgentRunner } from "../agent-runner-D82gVT0O.js";
3
3
  import { t as loadAppPluginSet } from "../plugin-module-BKGOXca2.js";
4
4
  import path from "node:path";
5
5
  import { createHash, randomUUID } from "node:crypto";
@@ -101,10 +101,10 @@ async function loadLocalPluginSet() {
101
101
  async function configureLocalChatPlugins(pluginSet) {
102
102
  const [pluginsModule, agentHooksModule, catalogRuntimeModule, validationModule, databaseModule] = await Promise.all([
103
103
  import("../plugins-egKWjgue.js").then((n) => n.o),
104
- import("../agent-hooks-Au93EfEr.js").then((n) => n.t),
105
- import("../catalog-runtime-B9yDPVCR.js").then((n) => n.t),
106
- import("../validation-BXDSxuOX.js").then((n) => n.r),
107
- import("../agent-hooks-Au93EfEr.js").then((n) => n.Vt)
104
+ import("../agent-hooks-DsFlR7gi.js").then((n) => n.t),
105
+ import("../catalog-runtime-DSEzvNVT.js").then((n) => n.t),
106
+ import("../validation-QFwh6qzp.js").then((n) => n.r),
107
+ import("../agent-hooks-DsFlR7gi.js").then((n) => n.Vt)
108
108
  ]);
109
109
  const resolvedPluginSet = pluginSet === void 0 ? await loadLocalPluginSet() : pluginSet ?? void 0;
110
110
  const plugins = pluginsModule.pluginRuntimeRegistrationsFromPluginSet(resolvedPluginSet);
@@ -156,16 +156,16 @@ async function prepareLocalChatRun(io, pluginSet) {
156
156
  await configureLocalChatPlugins(pluginSet);
157
157
  const { setExperimentalFeatures } = await import("../experimental-CIXf7Uye.js").then((n) => n.t);
158
158
  setExperimentalFeatures({ subagents: true });
159
- const { setBriefsConfig } = await import("../agent-hooks-Au93EfEr.js").then((n) => n.m);
159
+ const { setBriefsConfig } = await import("../agent-hooks-DsFlR7gi.js").then((n) => n.m);
160
160
  setBriefsConfig({ enabled: true });
161
- const { runLocalAgentTurn } = await import("../runner-DDHI2RaU.js");
162
- const { startLocalOAuthCallbackServer } = await import("../oauth-callback-server-RefMcYAD.js");
161
+ const { runLocalAgentTurn } = await import("../runner-CzrmejYr.js");
162
+ const { startLocalOAuthCallbackServer } = await import("../oauth-callback-server-D1jNG0lr.js");
163
163
  const { createLocalOAuthState } = await import("../oauth-relay-CdCnu80W.js").then((n) => n.t);
164
- const { createLocalSandboxEgressSignalTransport } = await import("../sandbox-egress-signals-CoVhGAih.js");
165
- const { bindSpawnAgent } = await import("../spawn-DLlXPelG.js").then((n) => n.n);
166
- const { createAgentInvocationWorker, routeAgentInvocationWork } = await import("../work-DEMP0L3f.js").then((n) => n.a);
164
+ const { createLocalSandboxEgressSignalTransport } = await import("../sandbox-egress-signals-BcSCyPKx.js");
165
+ const { bindSpawnAgent } = await import("../spawn-DylJoJnT.js").then((n) => n.n);
166
+ const { createAgentInvocationWorker, routeAgentInvocationWork } = await import("../work-BNw2Vmxi.js").then((n) => n.a);
167
167
  const { createLocalConversationWork } = await import("../conversation-work-C6y3T5Hx.js");
168
- const { processConversationWork } = await import("../worker-DvK47zmH.js").then((n) => n.n);
168
+ const { processConversationWork } = await import("../worker-9Us77-te.js").then((n) => n.n);
169
169
  let agentRunner;
170
170
  const localConversationWork = createLocalConversationWork(async (message) => {
171
171
  if (!agentRunner) throw new Error("Local agent runner is not ready");
package/dist/cli/check.js CHANGED
@@ -1,6 +1,6 @@
1
- import { E as JUNIOR_HEARTBEAT_ROUTE, j as LEGACY_JUNIOR_CONVERSATION_WORK_FUNCTION, w as JUNIOR_CONVERSATION_WORK_CALLBACK_ROUTE } from "../logging-CtfUmyiN.js";
2
- import { f as parseInlinePluginManifest, p as parsePluginManifest } from "../registry-DiIwniX1.js";
3
- import { i as parseSkillFile } from "../skills-MlftIiVP.js";
1
+ import { E as JUNIOR_HEARTBEAT_ROUTE, j as LEGACY_JUNIOR_CONVERSATION_WORK_FUNCTION, w as JUNIOR_CONVERSATION_WORK_CALLBACK_ROUTE } from "../logging-wngKXw7u.js";
2
+ import { f as parseInlinePluginManifest, p as parsePluginManifest } from "../registry-6_Zog2YF.js";
3
+ import { i as parseSkillFile } from "../skills-DOE_QPVJ.js";
4
4
  import { pathToFileURL } from "node:url";
5
5
  import path from "node:path";
6
6
  import fs from "node:fs/promises";
package/dist/cli/main.js CHANGED
@@ -25,7 +25,7 @@ async function runChat(argv, pluginSet) {
25
25
  return await (await import("./chat.js")).runChat(argv, void 0, { pluginSet });
26
26
  }
27
27
  async function runBriefs(argv) {
28
- return await (await import("../briefs-Dcdrr46e.js")).runBriefs(argv);
28
+ return await (await import("../briefs-CvXfErSa.js")).runBriefs(argv);
29
29
  }
30
30
  function topLevelCommand(argv) {
31
31
  return (argv[0] === "--" ? argv.slice(1) : argv)[0];
@@ -1,6 +1,6 @@
1
- import { Gt as getDb, bt as createPluginLogger, d as setPlugins, f as validatePlugins } from "../agent-hooks-Au93EfEr.js";
2
- import { n as pluginCatalogRuntime } from "../catalog-runtime-B9yDPVCR.js";
3
- import { n as validatePluginRegistrations, t as validatePluginEgressCredentialHooks } from "../validation-BXDSxuOX.js";
1
+ import { Gt as getDb, bt as createPluginLogger, d as setPlugins, f as validatePlugins } from "../agent-hooks-DsFlR7gi.js";
2
+ import { n as pluginCatalogRuntime } from "../catalog-runtime-DSEzvNVT.js";
3
+ import { n as validatePluginRegistrations, t as validatePluginEgressCredentialHooks } from "../validation-QFwh6qzp.js";
4
4
  import { a as pluginRuntimeRegistrationsFromPluginSet, i as pluginCliRegistrationsFromPluginSet, r as pluginCatalogConfigFromPluginSet } from "../plugins-egKWjgue.js";
5
5
  import { t as loadAppPluginSet } from "../plugin-module-BKGOXca2.js";
6
6
  import { stderr, stdout } from "node:process";
@@ -1,6 +1,6 @@
1
- import { n as pluginCatalogRuntime } from "../catalog-runtime-B9yDPVCR.js";
2
- import { S as disconnectStateAdapter, t as create } from "../profile-BRupCR8f.js";
3
- import { r as resolve } from "../resolve-0BvJroyG.js";
1
+ import { n as pluginCatalogRuntime } from "../catalog-runtime-DSEzvNVT.js";
2
+ import { S as disconnectStateAdapter, t as create } from "../profile-Mv2uNsKJ.js";
3
+ import { r as resolve } from "../resolve-BI3Dfm9p.js";
4
4
  //#region src/cli/snapshot-create.ts
5
5
  const DEFAULT_RUNTIME = "node22";
6
6
  const DEFAULT_TIMEOUT_MS = 6e5;
@@ -1,6 +1,6 @@
1
- import { a as getChatConfig } from "../config-DceVK986.js";
2
- import { t as createJuniorSqlExecutor } from "../executor-CxoH7xaY.js";
3
- import { t as createPluginCatalogRuntime } from "../registry-DiIwniX1.js";
1
+ import { a as getChatConfig } from "../config-DYi2mx6N.js";
2
+ import { t as createJuniorSqlExecutor } from "../executor-t2OCqFgz.js";
3
+ import { t as createPluginCatalogRuntime } from "../registry-6_Zog2YF.js";
4
4
  import { n as pluginCatalogConfigFromEnv, r as pluginCatalogConfigFromPluginSet, t as defineJuniorPlugins } from "../plugins-egKWjgue.js";
5
5
  import { t as loadAppPluginSet } from "../plugin-module-BKGOXca2.js";
6
6
  import { fileURLToPath } from "node:url";
@@ -1,5 +1,5 @@
1
- import { C as withSpan, f as logWarn, h as serializeGenAiAttribute, i as extractGenAiUsageAttributes, p as normalizeGenAiFinishReason, u as logException } from "./logging-CtfUmyiN.js";
2
- import { a as toCanonicalInputMessage, n as getCurrentConversationPrivacy, o as toCanonicalOutputMessage, s as toGenAiMessagesTraceAttributes } from "./conversation-privacy-C_w2FAlM.js";
1
+ import { C as withSpan, f as logWarn, h as serializeGenAiAttribute, i as extractGenAiUsageAttributes, p as normalizeGenAiFinishReason, u as logException } from "./logging-wngKXw7u.js";
2
+ import { a as toCanonicalInputMessage, n as getCurrentConversationPrivacy, o as toCanonicalOutputMessage, s as toGenAiMessagesTraceAttributes } from "./conversation-privacy-TiU3SGZh.js";
3
3
  import { calculateCost, completeSimple, getEnvApiKey, getModels, registerApiProvider } from "@earendil-works/pi-ai/compat";
4
4
  import { stream as streamAnthropic, streamSimple as streamSimpleAnthropic } from "@earendil-works/pi-ai/api/anthropic-messages";
5
5
  import { createGatewayProvider } from "@ai-sdk/gateway";
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.js";
2
- import { o as resolveGatewayModel, w as toOptionalTrimmed } from "./client-BV3_abpr.js";
3
- import { f as logWarn } from "./logging-CtfUmyiN.js";
2
+ import { o as resolveGatewayModel, w as toOptionalTrimmed } from "./client-pBijNHYx.js";
3
+ import { f as logWarn } from "./logging-wngKXw7u.js";
4
4
  import { c as TURN_REASONING_LEVELS, l as parseTurnReasoningLevel, o as modelProfileSchema } from "./model-profile-CZmVoGdX.js";
5
5
  import { getModel } from "@earendil-works/pi-ai/compat";
6
6
  //#region src/chat/slack/emoji.ts
@@ -722,6 +722,7 @@ const conversationSummaryReportSchema = z.object({
722
722
  lastProgressAt: z.string(),
723
723
  surface: conversationSurfaceSchema,
724
724
  actorIdentity: actorIdentitySchema.optional(),
725
+ participants: z.array(actorIdentitySchema).optional(),
725
726
  archivedAt: z.string().datetime().nullable().optional(),
726
727
  channel: z.string().optional(),
727
728
  channelName: z.string().optional(),
@@ -1,4 +1,4 @@
1
- import { f as logWarn } from "./logging-CtfUmyiN.js";
1
+ import { f as logWarn } from "./logging-wngKXw7u.js";
2
2
  import { AsyncLocalStorage } from "node:async_hooks";
3
3
  //#region src/chat/conversation-privacy.ts
4
4
  const SAFE_METADATA_KEY_LIMIT = 20;
@@ -1,28 +1,28 @@
1
- import { N as getMcpProviderErrorAttributes, X as createUserTokenStore, a as deleteMcpAuthSession, d as putMcpStoredOAuthCredentials, h as resolvePluginOAuthAccount, i as finalizeMcpAuthorization, l as getMcpAuthSession, u as getMcpStoredOAuthCredentials, y as lookupSlackUserProfile } from "./agent-C-wRol8n.js";
2
- import { m as escapeXml } from "./client-BV3_abpr.js";
3
- import { L as toOptionalString, S as withLogContext, d as logInfo, f as logWarn, m as runBestEffort, u as logException, y as setTags } from "./logging-CtfUmyiN.js";
4
- import { a as getChatConfig, h as normalizeSlackEmojiName, n as botConfig, o as getRuntimeMetadata } from "./config-DceVK986.js";
1
+ import { N as getMcpProviderErrorAttributes, X as createUserTokenStore, a as deleteMcpAuthSession, d as putMcpStoredOAuthCredentials, h as resolvePluginOAuthAccount, i as finalizeMcpAuthorization, l as getMcpAuthSession, u as getMcpStoredOAuthCredentials, y as lookupSlackUserProfile } from "./agent-CJ_-GRPT.js";
2
+ import { m as escapeXml } from "./client-pBijNHYx.js";
3
+ import { L as toOptionalString, S as withLogContext, d as logInfo, f as logWarn, m as runBestEffort, u as logException, y as setTags } from "./logging-wngKXw7u.js";
4
+ import { a as getChatConfig, h as normalizeSlackEmojiName, n as botConfig, o as getRuntimeMetadata } from "./config-DYi2mx6N.js";
5
5
  import { n as defaultModelId } from "./model-profile-CZmVoGdX.js";
6
6
  import { _ as parseSlackMessageTs, g as parseSlackUserId, l as isUserActor, s as createSlackResumeActor } from "./context-Bplcgypl.js";
7
- import { G as isDmChannel, H as getHeaderString, K as normalizeSlackConversationId, Kt as getSqlExecutor, Nt as buildSentryConversationUrl, U as getSlackClient, Wt as getConversationStore, cn as upsertLinkedIdentity, dn as requireSlackDestination, mt as getDashboardConversationLink, o as getPluginSlackConversationLink, sn as upsertIdentity, z as SlackActionError } from "./agent-hooks-Au93EfEr.js";
7
+ import { G as isDmChannel, H as getHeaderString, K as normalizeSlackConversationId, Kt as getSqlExecutor, Nt as buildSentryConversationUrl, U as getSlackClient, Wt as getConversationStore, cn as upsertLinkedIdentity, dn as requireSlackDestination, mt as getDashboardConversationLink, o as getPluginSlackConversationLink, sn as upsertIdentity, z as SlackActionError } from "./agent-hooks-DsFlR7gi.js";
8
8
  import { i as homeDir } from "./package-discovery-7a9YqLhE.js";
9
- import { n as buildOAuthTokenRequest, r as parseOAuthTokenResponse, u as hasRequiredOAuthScope } from "./registry-DiIwniX1.js";
10
- import { n as pluginCatalogRuntime } from "./catalog-runtime-B9yDPVCR.js";
11
- import { t as discoverSkills } from "./skills-MlftIiVP.js";
12
- import { B as recordAuthenticationLinked, F as loadProjection, V as recordAuthorizationCompleted, Y as hydrateConversationMessages, ct as recordDeliveredAssistantMessage, d as persistWithRetry, i as abandonTurnRecord, j as commitAcceptedReply, lt as turnHasReply, m as buildTurnErrorResponse, n as loadTurnCheckpoint, o as failTurnRecord, ot as markConversationMessage, r as saveTurnCheckpoint, s as getTurnRecord, tt as buildConversationContext, u as recordTurnSummary } from "./checkpoint-CQ6eQrJD.js";
13
- import { E as acquireActiveLock, w as getStateAdapter } from "./profile-BRupCR8f.js";
14
- import { Pt as requestConversationWork, c as parseSlackThreadId, d as resolveSlackChannelIdFromThreadId, l as readSlackRawMessageContext, u as resolveSlackChannelIdFromMessage, wt as ensureConversationWake } from "./stats-BjipUP7p.js";
15
- import { a as isPendingAuthLatestRequest, f as CooperativeTurnYieldError, g as isCooperativeTurnYieldError, i as getConversationPendingAuth, r as clearPendingAuth, s as getAssistantReplyText, x as markTurnFailed } from "./pending-auth-B_nSqxpd.js";
16
- import { a as parseOAuthStatePayload, c as escapeSlackMrkdwnText, d as normalizeSlackStatusText, f as truncateStatusText, g as removeReactionFromMessage, h as postSlackMessage, i as formatProviderLabel, l as formatSlackLink, o as resolveBaseUrl, p as addReactionToMessage, u as normalizeSlackReplyMarkdown, v as RetryableDeliveryError } from "./agent-runner-skcXibgb.js";
9
+ import { n as buildOAuthTokenRequest, r as parseOAuthTokenResponse, u as hasRequiredOAuthScope } from "./registry-6_Zog2YF.js";
10
+ import { n as pluginCatalogRuntime } from "./catalog-runtime-DSEzvNVT.js";
11
+ import { t as discoverSkills } from "./skills-DOE_QPVJ.js";
12
+ import { B as recordAuthenticationLinked, F as loadProjection, V as recordAuthorizationCompleted, Y as hydrateConversationMessages, ct as recordDeliveredAssistantMessage, d as persistWithRetry, i as abandonTurnRecord, j as commitAcceptedReply, lt as turnHasReply, m as buildTurnErrorResponse, n as loadTurnCheckpoint, o as failTurnRecord, ot as markConversationMessage, r as saveTurnCheckpoint, s as getTurnRecord, tt as buildConversationContext, u as recordTurnSummary } from "./checkpoint-DfpPyo-x.js";
13
+ import { E as acquireActiveLock, w as getStateAdapter } from "./profile-Mv2uNsKJ.js";
14
+ import { Pt as requestConversationWork, c as parseSlackThreadId, d as resolveSlackChannelIdFromThreadId, l as readSlackRawMessageContext, u as resolveSlackChannelIdFromMessage, wt as ensureConversationWake } from "./stats--FeHjGJ1.js";
15
+ import { a as isPendingAuthLatestRequest, f as CooperativeTurnYieldError, g as isCooperativeTurnYieldError, i as getConversationPendingAuth, r as clearPendingAuth, s as getAssistantReplyText, x as markTurnFailed } from "./pending-auth-DJa76b68.js";
16
+ import { a as parseOAuthStatePayload, c as escapeSlackMrkdwnText, d as normalizeSlackStatusText, f as truncateStatusText, g as removeReactionFromMessage, h as postSlackMessage, i as formatProviderLabel, l as formatSlackLink, o as resolveBaseUrl, p as addReactionToMessage, u as normalizeSlackReplyMarkdown, v as RetryableDeliveryError } from "./agent-runner-D82gVT0O.js";
17
17
  import { t as getVercelConversationWorkQueue } from "./vercel-queue-DIkVcfK4.js";
18
- import { a as getTurnRequestDeadline } from "./job-queue-DwA7xmCQ.js";
19
- import { i as resolveTurnSessionRouting, n as scheduleSessionCompletedPluginTasks } from "./task-runner-BOuCBVgO.js";
20
- import { n as getTurnLifecycle } from "./turn-lifecycle-BV2Wp_qF.js";
21
- import { n as executeTurn, t as AgentRunError } from "./turn-execution-CZKg5Fw9.js";
22
- import { c as configValueSchema, n as getPersistedSandboxState, o as persistThreadStateById, r as getPersistedThreadState, s as coerceThreadConversationState, t as getLocationConfigurationService } from "./thread-state-DrGVG1E-.js";
23
- import { a as requireTurnFailureEventId, c as getTurnUserMessageId, d as buildDeliveredTurnStatePatch, l as getTurnUserReplyAttachmentContext, n as persistAuthPauseTurnState, o as getInterruptionMarker, r as finalizeFailedTurnReplyWithEvent, s as getTurnUserMessage, u as getTurnUserSlackMessageTs } from "./auth-pause-state-CU71X-6Z.js";
18
+ import { a as getTurnRequestDeadline } from "./job-queue-Deruj7qS.js";
19
+ import { i as resolveTurnSessionRouting, n as scheduleSessionCompletedPluginTasks } from "./task-runner-BDwZj8OX.js";
20
+ import { n as getTurnLifecycle } from "./turn-lifecycle-CGNjfgbT.js";
21
+ import { n as executeTurn, t as AgentRunError } from "./turn-execution-AROC0tUZ.js";
22
+ import { c as configValueSchema, n as getPersistedSandboxState, o as persistThreadStateById, r as getPersistedThreadState, s as coerceThreadConversationState, t as getLocationConfigurationService } from "./thread-state-CpZAVpdG.js";
23
+ import { a as requireTurnFailureEventId, c as getTurnUserMessageId, d as buildDeliveredTurnStatePatch, l as getTurnUserReplyAttachmentContext, n as persistAuthPauseTurnState, o as getInterruptionMarker, r as finalizeFailedTurnReplyWithEvent, s as getTurnUserMessage, u as getTurnUserSlackMessageTs } from "./auth-pause-state-DL5YJXnT.js";
24
24
  import { n as relayLocalOAuthCallback } from "./oauth-relay-CdCnu80W.js";
25
- import { n as deleteWebAuthorization } from "./web-authorization-DhXHpeMK.js";
25
+ import { n as deleteWebAuthorization } from "./web-authorization-ZAQcIE4e.js";
26
26
  import path from "node:path";
27
27
  import { z } from "zod";
28
28
  import { createHmac, createSecretKey, timingSafeEqual } from "node:crypto";
@@ -1,6 +1,6 @@
1
- import { f as logWarn } from "./logging-CtfUmyiN.js";
2
- import { Gt as getDb, nn as agentTurnTotalTokens, tn as agentTurnCostUsd } from "./agent-hooks-Au93EfEr.js";
3
- import { E as juniorConversations, s as juniorAutomationExecutions } from "./executor-CxoH7xaY.js";
1
+ import { f as logWarn } from "./logging-wngKXw7u.js";
2
+ import { Gt as getDb, nn as agentTurnTotalTokens, tn as agentTurnCostUsd } from "./agent-hooks-DsFlR7gi.js";
3
+ import { E as juniorConversations, s as juniorAutomationExecutions } from "./executor-t2OCqFgz.js";
4
4
  import { and, asc, count, desc, eq, gte, inArray, lte, max, or, sql } from "drizzle-orm";
5
5
  //#region src/api/conversations/aggregate.ts
6
6
  function usageTokenValue(source, field) {
@@ -1,5 +1,5 @@
1
1
  import { g as startSpanManual } from "./sentry-CgWZM_kV.js";
2
- import "./config-DceVK986.js";
2
+ import "./config-DYi2mx6N.js";
3
3
  import { n as juniorDestinations, r as timestamptz } from "./destinations-BeBiJeEM.js";
4
4
  import { AsyncLocalStorage } from "node:async_hooks";
5
5
  import { getTableColumns, sql } from "drizzle-orm";
@@ -1,6 +1,6 @@
1
- import { M as getDeploymentServiceVersion, N as getDeploymentTelemetryAttributes } from "./logging-CtfUmyiN.js";
1
+ import { M as getDeploymentServiceVersion, N as getDeploymentTelemetryAttributes } from "./logging-wngKXw7u.js";
2
2
  import { _ as vercelAIIntegration, a as getClient, b as withStreamedSpan, c as init, o as getGlobalScope } from "./sentry-CgWZM_kV.js";
3
- import { n as getCurrentConversationPrivacy } from "./conversation-privacy-C_w2FAlM.js";
3
+ import { n as getCurrentConversationPrivacy } from "./conversation-privacy-TiU3SGZh.js";
4
4
  import { t as consumePrivateTraceResultMarker } from "./private-trace-result-BLvBjy_e.js";
5
5
  //#region src/chat/sentry-payload-filter.ts
6
6
  const PAYLOAD_ATTRIBUTE_KEYS = /* @__PURE__ */ new Set([
@@ -1,4 +1,4 @@
1
- import { a as getChatConfig } from "./config-DceVK986.js";
1
+ import { a as getChatConfig } from "./config-DYi2mx6N.js";
2
2
  import { a as signQueueMessage, i as QUEUE_SIGNATURE_MAX_AGE_MS, o as verifyQueueMessage, s as createVercelQueueClient } from "./vercel-queue-DIkVcfK4.js";
3
3
  import { AsyncLocalStorage } from "node:async_hooks";
4
4
  import { z } from "zod";
@@ -1,5 +1,5 @@
1
1
  import { d as setTag, f as setUser, h as startSpan, i as getActiveSpan, l as logger, n as captureMessage, p as spanToJSON, s as getTraceData, t as captureException, y as withScope } from "./sentry-CgWZM_kV.js";
2
- import { t as JUNIOR_VERSION } from "./version-DNJ6W0LC.js";
2
+ import { t as JUNIOR_VERSION } from "./version-FAS9qrpM.js";
3
3
  import path from "node:path";
4
4
  import { styleText } from "node:util";
5
5
  import { ConfigError, configureSync, getConfig, getLogger } from "@logtape/logtape";
package/dist/nitro.js CHANGED
@@ -1,9 +1,9 @@
1
- import { A as JUNIOR_WORKSPACE_SNAPSHOT_JOB_CALLBACK_ROUTE, D as JUNIOR_PLUGIN_TASK_CALLBACK_ROUTE, E as JUNIOR_HEARTBEAT_ROUTE, O as JUNIOR_RETENTION_CRON_SCHEDULE, T as JUNIOR_HEARTBEAT_CRON_SCHEDULE, k as JUNIOR_RETENTION_ROUTE, w as JUNIOR_CONVERSATION_WORK_CALLBACK_ROUTE } from "./logging-CtfUmyiN.js";
1
+ import { A as JUNIOR_WORKSPACE_SNAPSHOT_JOB_CALLBACK_ROUTE, D as JUNIOR_PLUGIN_TASK_CALLBACK_ROUTE, E as JUNIOR_HEARTBEAT_ROUTE, O as JUNIOR_RETENTION_CRON_SCHEDULE, T as JUNIOR_HEARTBEAT_CRON_SCHEDULE, k as JUNIOR_RETENTION_ROUTE, w as JUNIOR_CONVERSATION_WORK_CALLBACK_ROUTE } from "./logging-wngKXw7u.js";
2
2
  import { d as resolvePackageDir, t as discoverInstalledPluginPackageContent, u as isValidPackageName } from "./package-discovery-7a9YqLhE.js";
3
3
  import { n as resolveConversationWorkQueueTopic } from "./vercel-queue-DIkVcfK4.js";
4
- import { t as WORKSPACE_SNAPSHOT_JOB_QUEUE_TOPIC } from "./job-queue-DwA7xmCQ.js";
4
+ import { t as WORKSPACE_SNAPSHOT_JOB_QUEUE_TOPIC } from "./job-queue-Deruj7qS.js";
5
5
  import { a as pluginRuntimeRegistrationsFromPluginSet, r as pluginCatalogConfigFromPluginSet } from "./plugins-egKWjgue.js";
6
- import { t as PLUGIN_TASK_QUEUE_TOPIC } from "./task-queue-DyfnQ7ZM.js";
6
+ import { t as PLUGIN_TASK_QUEUE_TOPIC } from "./task-queue-CSEo5Ly9.js";
7
7
  import { n as loadPluginSetFromModule, r as resolvePluginModule } from "./plugin-module-BKGOXca2.js";
8
8
  import path from "node:path";
9
9
  import { cpSync, existsSync, mkdirSync, readdirSync, statSync } from "node:fs";
@@ -1,5 +1,5 @@
1
- import { X as createUserTokenStore } from "./agent-C-wRol8n.js";
2
- import { a as GET, n as syncLocalOAuthCredential, r as GET$1 } from "./credential-sync-DKXGTID8.js";
1
+ import { X as createUserTokenStore } from "./agent-CJ_-GRPT.js";
2
+ import { a as GET, n as syncLocalOAuthCredential, r as GET$1 } from "./credential-sync-hBiu11zS.js";
3
3
  import { createServer } from "node:http";
4
4
  //#region src/chat/local/oauth-callback-server.ts
5
5
  const LOCAL_OAUTH_TIMEOUT_MS = 6e5;
@@ -1,5 +1,5 @@
1
- import { g as extractAssistantText, i as abandonTurnRecord } from "./checkpoint-CQ6eQrJD.js";
2
- import { qt as buildDeterministicTurnId } from "./stats-BjipUP7p.js";
1
+ import { g as extractAssistantText, i as abandonTurnRecord } from "./checkpoint-DfpPyo-x.js";
2
+ import { qt as buildDeterministicTurnId } from "./stats--FeHjGJ1.js";
3
3
  //#region src/chat/runtime/turn.ts
4
4
  /** Classified Slack turn failure carrying the owning Sentry capture outward. */
5
5
  var ConversationTurnBoundaryError = class extends Error {