@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.
- package/dist/{agent-C-wRol8n.js → agent-CJ_-GRPT.js} +40 -29
- package/dist/{agent-hooks-Au93EfEr.js → agent-hooks-DsFlR7gi.js} +8 -8
- package/dist/{agent-runner-skcXibgb.js → agent-runner-D82gVT0O.js} +5 -5
- package/dist/api/schema.d.ts +30 -0
- package/dist/api/schema.js +2 -2
- package/dist/api.js +80 -19
- package/dist/app.js +31 -158
- package/dist/{auth-pause-state-CU71X-6Z.js → auth-pause-state-DL5YJXnT.js} +6 -6
- package/dist/{briefs-Dcdrr46e.js → briefs-CvXfErSa.js} +4 -4
- package/dist/{catalog-runtime-B9yDPVCR.js → catalog-runtime-DSEzvNVT.js} +1 -1
- package/dist/{checkpoint-CQ6eQrJD.js → checkpoint-DfpPyo-x.js} +7 -7
- package/dist/cli/chat.js +13 -13
- package/dist/cli/check.js +3 -3
- package/dist/cli/main.js +1 -1
- package/dist/cli/plugins.js +3 -3
- package/dist/cli/snapshot-create.js +3 -3
- package/dist/cli/upgrade.js +3 -3
- package/dist/{client-BV3_abpr.js → client-pBijNHYx.js} +2 -2
- package/dist/{config-DceVK986.js → config-DYi2mx6N.js} +2 -2
- package/dist/{conversation-BpqLg4MM.js → conversation-BSRGzJmY.js} +1 -0
- package/dist/{conversation-privacy-C_w2FAlM.js → conversation-privacy-TiU3SGZh.js} +1 -1
- package/dist/{credential-sync-DKXGTID8.js → credential-sync-hBiu11zS.js} +20 -20
- package/dist/{execution-stats-BIyGof8p.js → execution-stats-DAWGg9WH.js} +3 -3
- package/dist/{executor-CxoH7xaY.js → executor-t2OCqFgz.js} +1 -1
- package/dist/instrumentation.js +2 -2
- package/dist/{job-queue-DwA7xmCQ.js → job-queue-Deruj7qS.js} +1 -1
- package/dist/{logging-CtfUmyiN.js → logging-wngKXw7u.js} +1 -1
- package/dist/nitro.js +3 -3
- package/dist/{oauth-callback-server-RefMcYAD.js → oauth-callback-server-D1jNG0lr.js} +2 -2
- package/dist/{pending-auth-B_nSqxpd.js → pending-auth-DJa76b68.js} +2 -2
- package/dist/{profile-BRupCR8f.js → profile-Mv2uNsKJ.js} +4 -4
- package/dist/{prompt-DAoaq0CT.js → prompt-BkaHwBW0.js} +1 -1
- package/dist/{registry-DiIwniX1.js → registry-6_Zog2YF.js} +1 -1
- package/dist/{resolve-0BvJroyG.js → resolve-BI3Dfm9p.js} +2 -2
- package/dist/{runner-DDHI2RaU.js → runner-CzrmejYr.js} +9 -9
- package/dist/{sandbox-egress-signals-CoVhGAih.js → sandbox-egress-signals-BcSCyPKx.js} +1 -1
- package/dist/{schema-BMG8MJPJ.js → schema-YPJXVcOW.js} +1 -1
- package/dist/{short-title-BdpXj7eS.js → short-title-Bs3wWE1M.js} +2 -2
- package/dist/{skills-MlftIiVP.js → skills-DOE_QPVJ.js} +2 -2
- package/dist/{spawn-DLlXPelG.js → spawn-DylJoJnT.js} +2 -2
- package/dist/{stats-BjipUP7p.js → stats--FeHjGJ1.js} +5 -5
- package/dist/{task-queue-DyfnQ7ZM.js → task-queue-CSEo5Ly9.js} +3 -3
- package/dist/{task-runner-BOuCBVgO.js → task-runner-BDwZj8OX.js} +8 -8
- package/dist/{thread-state-DrGVG1E-.js → thread-state-CpZAVpdG.js} +5 -5
- package/dist/{turn-execution-CZKg5Fw9.js → turn-execution-AROC0tUZ.js} +3 -3
- package/dist/{turn-lifecycle-BV2Wp_qF.js → turn-lifecycle-CGNjfgbT.js} +1 -1
- package/dist/{validation-BXDSxuOX.js → validation-QFwh6qzp.js} +1 -1
- package/dist/{version-DNJ6W0LC.js → version-FAS9qrpM.js} +1 -1
- package/dist/version.js +1 -1
- package/dist/{web-authorization-DhXHpeMK.js → web-authorization-ZAQcIE4e.js} +1 -1
- package/dist/{web-input-BqFF7CQB.js → web-input-C5nhIX0j.js} +4 -4
- package/dist/{work-DEMP0L3f.js → work-BNw2Vmxi.js} +9 -9
- package/dist/{worker-DvK47zmH.js → worker-9Us77-te.js} +5 -5
- package/package.json +5 -5
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import { C as resolveGatewayCredential, S as getGatewayApiKey, _ as findProviderError, b as isProviderRetryError, c as COMPACTION_SUMMARY_PREFIX, d as isCompactionSummaryText, f as renderCurrentInstruction, g as createProviderError, h as ProviderError, i as completeText, l as MODEL_HANDOFF_SUMMARY_PREFIX, m as escapeXml, n as GEN_AI_SERVER_ADDRESS, o as resolveGatewayModel, p as unwrapCurrentInstruction, r as completeObject, s as ACTIVE_TURN_COMPACTION_SUMMARY_PREFIX, t as GEN_AI_PROVIDER_NAME, u as hasCompactedConversationContext, v as getProviderErrorAttributes, x as MISSING_GATEWAY_CREDENTIALS_ERROR } from "./client-
|
|
2
|
-
import { C as withSpan, F as isRecord$2, P as normalizeIdentityEmail, S as withLogContext, _ as setSpanAttributes, a as extractGenAiUsageSummary, b as summarizeMessageText, c as getTracePropagationHeaders, d as logInfo, f as logWarn, h as serializeGenAiAttribute, i as extractGenAiUsageAttributes, l as logError, p as normalizeGenAiFinishReason, s as getLogContextAttributesForSpan, u as logException, v as setSpanStatus, y as setTags } from "./logging-
|
|
1
|
+
import { C as resolveGatewayCredential, S as getGatewayApiKey, _ as findProviderError, b as isProviderRetryError, c as COMPACTION_SUMMARY_PREFIX, d as isCompactionSummaryText, f as renderCurrentInstruction, g as createProviderError, h as ProviderError, i as completeText, l as MODEL_HANDOFF_SUMMARY_PREFIX, m as escapeXml, n as GEN_AI_SERVER_ADDRESS, o as resolveGatewayModel, p as unwrapCurrentInstruction, r as completeObject, s as ACTIVE_TURN_COMPACTION_SUMMARY_PREFIX, t as GEN_AI_PROVIDER_NAME, u as hasCompactedConversationContext, v as getProviderErrorAttributes, x as MISSING_GATEWAY_CREDENTIALS_ERROR } from "./client-pBijNHYx.js";
|
|
2
|
+
import { C as withSpan, F as isRecord$2, P as normalizeIdentityEmail, S as withLogContext, _ as setSpanAttributes, a as extractGenAiUsageSummary, b as summarizeMessageText, c as getTracePropagationHeaders, d as logInfo, f as logWarn, h as serializeGenAiAttribute, i as extractGenAiUsageAttributes, l as logError, p as normalizeGenAiFinishReason, s as getLogContextAttributesForSpan, u as logException, v as setSpanStatus, y as setTags } from "./logging-wngKXw7u.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-
|
|
5
|
-
import { h as normalizeSlackEmojiName, n as botConfig } from "./config-
|
|
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-TiU3SGZh.js";
|
|
5
|
+
import { h as normalizeSlackEmojiName, n as botConfig } from "./config-DYi2mx6N.js";
|
|
6
6
|
import { a as modelIdForProfile, c as TURN_REASONING_LEVELS, i as formatModelProfiles, o as modelProfileSchema, r as formatModelProfile, s as profileConfig, t as ModelProfileNotConfiguredError } from "./model-profile-CZmVoGdX.js";
|
|
7
7
|
import { _ as parseSlackMessageTs, g as parseSlackUserId, h as parseSlackTeamId, i as credentialUserSubjectId, l as isUserActor, m as parseSlackChannelReferenceId, n as credentialContextSchema, p as parseSlackChannelId, t as credentialContextForActor } from "./context-Bplcgypl.js";
|
|
8
|
-
import { A as tryWorkspaceRepoCheckoutPath, B as downloadPrivateSlackFile, C as invalidateReadySnapshot, D as SANDBOX_RUNTIME, E as setWorkspaceSnapshotBuild, Gt as getDb, Ht as getConversationEventStore, J as withSlackRetries, K as normalizeSlackConversationId, Kt as getSqlExecutor, M as resolveChannelCapabilities, O as deleteWorkspaceSnapshotBuilders, Q as readActorIdentity, S as WorkspaceValidationError, T as setWorkspaceSnapshot, U as getSlackClient, Ut as getConversationMessageSearchStore, V as getFilePermalink, W as isConversationScopedChannel, Wt as getConversationStore, _ as deleteWorkspace, at as STOP_WATCHING_TOOL_NAME, b as listWorkspaces, bt as createPluginLogger, c as getPluginTools, dt as findMatchingWatches, en as addAgentTurnUsage, ft as listWatches, g as createWorkspace, ht as getDashboardTaskLink, in as hasAgentTurnUsage, it as RESOURCE_WATCH_TOOL_SOURCE, j as workspaceRepoCheckoutPath, k as getWorkspaceSnapshotBuilder, l as getPluginUserPromptContributions, lt as createWatch, mt as getDashboardConversationLink, nt as RESOURCE_SUBSCRIPTION_DEFAULT_TTL_MS, ot as cancelSubscriptions, pt as JUNIOR_THREAD_STATE_TTL_MS, r as createPluginHookRunner, s as getPluginSystemPromptContributions, st as cancelWatch, tt as getSlackToolContext, u as getPlugins, un as parseDestination, ut as deliverWatch, v as getWorkspace, w as loadSnapshotsForProfile, x as updateWorkspace, y as getWorkspaceByName, z as SlackActionError } from "./agent-hooks-
|
|
8
|
+
import { A as tryWorkspaceRepoCheckoutPath, B as downloadPrivateSlackFile, C as invalidateReadySnapshot, D as SANDBOX_RUNTIME, E as setWorkspaceSnapshotBuild, Gt as getDb, Ht as getConversationEventStore, J as withSlackRetries, K as normalizeSlackConversationId, Kt as getSqlExecutor, M as resolveChannelCapabilities, O as deleteWorkspaceSnapshotBuilders, Q as readActorIdentity, S as WorkspaceValidationError, T as setWorkspaceSnapshot, U as getSlackClient, Ut as getConversationMessageSearchStore, V as getFilePermalink, W as isConversationScopedChannel, Wt as getConversationStore, _ as deleteWorkspace, at as STOP_WATCHING_TOOL_NAME, b as listWorkspaces, bt as createPluginLogger, c as getPluginTools, dt as findMatchingWatches, en as addAgentTurnUsage, ft as listWatches, g as createWorkspace, ht as getDashboardTaskLink, in as hasAgentTurnUsage, it as RESOURCE_WATCH_TOOL_SOURCE, j as workspaceRepoCheckoutPath, k as getWorkspaceSnapshotBuilder, l as getPluginUserPromptContributions, lt as createWatch, mt as getDashboardConversationLink, nt as RESOURCE_SUBSCRIPTION_DEFAULT_TTL_MS, ot as cancelSubscriptions, pt as JUNIOR_THREAD_STATE_TTL_MS, r as createPluginHookRunner, s as getPluginSystemPromptContributions, st as cancelWatch, tt as getSlackToolContext, u as getPlugins, un as parseDestination, ut as deliverWatch, v as getWorkspace, w as loadSnapshotsForProfile, x as updateWorkspace, y as getWorkspaceByName, z as SlackActionError } from "./agent-hooks-DsFlR7gi.js";
|
|
9
9
|
import { n as juniorDestinations } from "./destinations-BeBiJeEM.js";
|
|
10
|
-
import { D as juniorIdentities, E as juniorConversations, a as juniorSchedulerRuns, d as AGENT_INVOCATION_MAILBOX_STATUSES, g as juniorConversationBriefs, k as juniorArtifacts, w as juniorAttachments, x as juniorConversationAnnotations } from "./executor-
|
|
11
|
-
import { A as briefLinkSchema, G as sameActorIdentity, H as contextProvenance, M as conversationBriefSchema, P as KNOWN_CONVERSATION_EVENT_TYPES, U as instructionActors, W as instructionProvenanceFor, j as briefOutcomeStatusSchema } from "./conversation-
|
|
10
|
+
import { D as juniorIdentities, E as juniorConversations, a as juniorSchedulerRuns, d as AGENT_INVOCATION_MAILBOX_STATUSES, g as juniorConversationBriefs, k as juniorArtifacts, w as juniorAttachments, x as juniorConversationAnnotations } from "./executor-t2OCqFgz.js";
|
|
11
|
+
import { A as briefLinkSchema, G as sameActorIdentity, H as contextProvenance, M as conversationBriefSchema, P as KNOWN_CONVERSATION_EVENT_TYPES, U as instructionActors, W as instructionProvenanceFor, j as briefOutcomeStatusSchema } from "./conversation-BSRGzJmY.js";
|
|
12
12
|
import { a as listReferenceFiles, c as soulPathCandidates, l as worldPathCandidates } from "./package-discovery-7a9YqLhE.js";
|
|
13
|
-
import { a as resolveAuthTokenPlaceholder, c as fetchWithBoundedOAuthErrorBodies, d as CredentialUnavailableError, i as resolvePluginHeaderEnvRefs, l as getOAuthProviderErrorAttributes, o as resolvePluginCommandEnv, s as OAuthProviderError } from "./registry-
|
|
14
|
-
import { n as pluginCatalogRuntime } from "./catalog-runtime-
|
|
15
|
-
import { a as parseSkillInvocation, n as findSkillByName, r as loadSkillsByName, t as discoverSkills } from "./skills-
|
|
16
|
-
import { A as TURN_CONTEXT_TAG, C as isContinuablePiBoundary, D as retainRuntimeTurnContext, E as normalizeToolNameFromResult, H as recordAuthorizationRequested, I as loadTurnRoute, K as recordToolExecutionStarted, L as openConversationProjection, N as loadConnectedMcpProviders, O as stripRuntimeTurnContext, P as loadConversationProjection, R as recordAgentsInstructionsUpdated, S as isAssistantMessage, T as isToolResultMessage, U as recordGuardianActionReviewed, W as recordMcpProviderConnected, _ as getPiMessageRole, b as hasRuntimeTurnContext, dt as estimateTextTokens, f as TurnSliceLimitExceededError, ft as getAgentContextCompactionTriggerTokens, g as extractAssistantText, h as isTurnExecutionLimitExceededError, ht as piMessageFromHistoryItem, k as trimTrailingAssistantMessages, mt as historyItemFromPiMessage, n as loadTurnCheckpoint, p as assertTurnToolCallLimit, pt as getAgentContextInputLimitTokens, q as recordTurnRoute, r as saveTurnCheckpoint, t as continuableMessages, v as getTerminalAssistantMessages, w as isToolResultError, y as getUserMessageInstructionText, z as recordAttachmentsDelivered } from "./checkpoint-
|
|
17
|
-
import { n as generateShortTitle, r as resolveTaskTitle } from "./short-title-
|
|
18
|
-
import { A as sleep$1, D as fenceLock, E as acquireActiveLock, F as sandboxSkillDir, I as sandboxSkillFile, L as sandboxSkillPathResolution, M as SANDBOX_REPOS_ROOT, N as SANDBOX_SKILLS_ROOT, P as SANDBOX_WORKSPACE_ROOT, _ 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_DATA_ROOT, k as withLock, 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-
|
|
19
|
-
import { $ as workspaceSnapshotFinishedEvent, B as createEventAutomation, C as SCHEDULED_AUTOMATION_SYSTEM_ACTOR, D as eventAutomationMatchesDestination, E as eventAutomationListToolResultSchema, F as effectiveTaskOutcomes, Gt as makeStructuredToolOutput, I as moveTaskOutcomes, Jt as ToolInputError, L as resolveTaskOutcomes, M as requireEventAutomationSlackContext, N as requireSupportedEventAutomationTrigger, O as eventAutomationToolResult, P as writableEventAutomation, Q as WORKSPACE_SNAPSHOT_READY_EVENT, R as taskOutcomeInputSchema, T as compactEventAutomation, Ut as injectContinuationToolName, V as deleteEventAutomation, W as getEventAutomation, Wt as juniorToolOutputSchema, X as getEventCatalog, Y as saveEventAutomation, Z as WORKSPACE_SNAPSHOT_FAILED_EVENT, at as normalizeCatalogEventIdentifier, c as parseSlackThreadId, ct as registeredEventTypeSchema, et as workspaceSnapshotWatch, f as createScheduledAutomation, g as listScheduledAutomationsForTeam, i as readLiveAttachment, it as hasPluginEventCatalogEntries, j as registeredEventAutomationTriggerSchema, k as eventAutomationToolResultSchema, lt as registeredResourceTypeSchema, nt as eventNamespaceSchema, ot as pluginSupportsEvent, pt as appendAndEnqueueInboundMessage, q as listEventAutomationsForTeam, rt as hasEventCatalogEntries, s as storeAttachments, st as registeredEventMatchSchema, t as incrementStat, tt as eventGuidance, ut as requireSupportedEventMatch, v as readScheduledAutomation, y as saveScheduledAutomation } from "./stats
|
|
20
|
-
import { _ as isTurnInputCommitLostError, c as sanitizeAssistantText, f as CooperativeTurnYieldError, l as NO_REPLY_MARKER, n as canReusePendingAuthLink, o as decideReply, p as TurnInputCommitLostError, s as getAssistantReplyText, t as abandonReplacedPendingAuth, u as isNoReplyMarker } from "./pending-auth-
|
|
21
|
-
import { C as toolInvocationDestination, S as surfaceFromRun, _ as uploadFilesToConversation, b as assertRunConsistency, h as postSlackMessage, i as formatProviderLabel, m as getSlackMessagePermalink, o as resolveBaseUrl, p as addReactionToMessage, r as deliverOAuthAuthorization, s as startOAuthFlow, v as RetryableDeliveryError, x as isAgentRunFeatureDisabled, y as actorFromRun } from "./agent-runner-
|
|
22
|
-
import { r as EVENT_AUTHOR_ID } from "./prompt-
|
|
23
|
-
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-
|
|
13
|
+
import { a as resolveAuthTokenPlaceholder, c as fetchWithBoundedOAuthErrorBodies, d as CredentialUnavailableError, i as resolvePluginHeaderEnvRefs, l as getOAuthProviderErrorAttributes, o as resolvePluginCommandEnv, s as OAuthProviderError } from "./registry-6_Zog2YF.js";
|
|
14
|
+
import { n as pluginCatalogRuntime } from "./catalog-runtime-DSEzvNVT.js";
|
|
15
|
+
import { a as parseSkillInvocation, n as findSkillByName, r as loadSkillsByName, t as discoverSkills } from "./skills-DOE_QPVJ.js";
|
|
16
|
+
import { A as TURN_CONTEXT_TAG, C as isContinuablePiBoundary, D as retainRuntimeTurnContext, E as normalizeToolNameFromResult, H as recordAuthorizationRequested, I as loadTurnRoute, K as recordToolExecutionStarted, L as openConversationProjection, N as loadConnectedMcpProviders, O as stripRuntimeTurnContext, P as loadConversationProjection, R as recordAgentsInstructionsUpdated, S as isAssistantMessage, T as isToolResultMessage, U as recordGuardianActionReviewed, W as recordMcpProviderConnected, _ as getPiMessageRole, b as hasRuntimeTurnContext, dt as estimateTextTokens, f as TurnSliceLimitExceededError, ft as getAgentContextCompactionTriggerTokens, g as extractAssistantText, h as isTurnExecutionLimitExceededError, ht as piMessageFromHistoryItem, k as trimTrailingAssistantMessages, mt as historyItemFromPiMessage, n as loadTurnCheckpoint, p as assertTurnToolCallLimit, pt as getAgentContextInputLimitTokens, q as recordTurnRoute, r as saveTurnCheckpoint, t as continuableMessages, v as getTerminalAssistantMessages, w as isToolResultError, y as getUserMessageInstructionText, z as recordAttachmentsDelivered } from "./checkpoint-DfpPyo-x.js";
|
|
17
|
+
import { n as generateShortTitle, r as resolveTaskTitle } from "./short-title-Bs3wWE1M.js";
|
|
18
|
+
import { A as sleep$1, D as fenceLock, E as acquireActiveLock, F as sandboxSkillDir, I as sandboxSkillFile, L as sandboxSkillPathResolution, M as SANDBOX_REPOS_ROOT, N as SANDBOX_SKILLS_ROOT, P as SANDBOX_WORKSPACE_ROOT, _ 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_DATA_ROOT, k as withLock, 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-Mv2uNsKJ.js";
|
|
19
|
+
import { $ as workspaceSnapshotFinishedEvent, B as createEventAutomation, C as SCHEDULED_AUTOMATION_SYSTEM_ACTOR, D as eventAutomationMatchesDestination, E as eventAutomationListToolResultSchema, F as effectiveTaskOutcomes, Gt as makeStructuredToolOutput, I as moveTaskOutcomes, Jt as ToolInputError, L as resolveTaskOutcomes, M as requireEventAutomationSlackContext, N as requireSupportedEventAutomationTrigger, O as eventAutomationToolResult, P as writableEventAutomation, Q as WORKSPACE_SNAPSHOT_READY_EVENT, R as taskOutcomeInputSchema, T as compactEventAutomation, Ut as injectContinuationToolName, V as deleteEventAutomation, W as getEventAutomation, Wt as juniorToolOutputSchema, X as getEventCatalog, Y as saveEventAutomation, Z as WORKSPACE_SNAPSHOT_FAILED_EVENT, at as normalizeCatalogEventIdentifier, c as parseSlackThreadId, ct as registeredEventTypeSchema, et as workspaceSnapshotWatch, f as createScheduledAutomation, g as listScheduledAutomationsForTeam, i as readLiveAttachment, it as hasPluginEventCatalogEntries, j as registeredEventAutomationTriggerSchema, k as eventAutomationToolResultSchema, lt as registeredResourceTypeSchema, nt as eventNamespaceSchema, ot as pluginSupportsEvent, pt as appendAndEnqueueInboundMessage, q as listEventAutomationsForTeam, rt as hasEventCatalogEntries, s as storeAttachments, st as registeredEventMatchSchema, t as incrementStat, tt as eventGuidance, ut as requireSupportedEventMatch, v as readScheduledAutomation, y as saveScheduledAutomation } from "./stats--FeHjGJ1.js";
|
|
20
|
+
import { _ as isTurnInputCommitLostError, c as sanitizeAssistantText, f as CooperativeTurnYieldError, l as NO_REPLY_MARKER, n as canReusePendingAuthLink, o as decideReply, p as TurnInputCommitLostError, s as getAssistantReplyText, t as abandonReplacedPendingAuth, u as isNoReplyMarker } from "./pending-auth-DJa76b68.js";
|
|
21
|
+
import { C as toolInvocationDestination, S as surfaceFromRun, _ as uploadFilesToConversation, b as assertRunConsistency, h as postSlackMessage, i as formatProviderLabel, m as getSlackMessagePermalink, o as resolveBaseUrl, p as addReactionToMessage, r as deliverOAuthAuthorization, s as startOAuthFlow, v as RetryableDeliveryError, x as isAgentRunFeatureDisabled, y as actorFromRun } from "./agent-runner-D82gVT0O.js";
|
|
22
|
+
import { r as EVENT_AUTHOR_ID } from "./prompt-BkaHwBW0.js";
|
|
23
|
+
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-BI3Dfm9p.js";
|
|
24
24
|
import { t as getVercelConversationWorkQueue } from "./vercel-queue-DIkVcfK4.js";
|
|
25
|
-
import { a as getTurnRequestDeadline, n as sendNextWorkspaceSnapshotJob, r as sendWorkspaceSnapshotJob } from "./job-queue-
|
|
25
|
+
import { a as getTurnRequestDeadline, n as sendNextWorkspaceSnapshotJob, r as sendWorkspaceSnapshotJob } from "./job-queue-Deruj7qS.js";
|
|
26
26
|
import { n as privateTraceResultAttributes } from "./private-trace-result-BLvBjy_e.js";
|
|
27
27
|
import { streamSimple } from "@earendil-works/pi-ai/compat";
|
|
28
28
|
import { createGatewayProvider } from "@ai-sdk/gateway";
|
|
@@ -8832,12 +8832,13 @@ function createSlackScheduleCreateAutomationTool(context) {
|
|
|
8832
8832
|
openWorldHint: true,
|
|
8833
8833
|
readOnlyHint: false
|
|
8834
8834
|
},
|
|
8835
|
-
description: "Create a one-time or recurring Junior task in the active Slack conversation when the user asks
|
|
8835
|
+
description: "Create a one-time or recurring Junior task in the active Slack conversation. Set destination to \"channel\" when the user asks for top-level delivery in the active channel.",
|
|
8836
8836
|
executionMode: "sequential",
|
|
8837
8837
|
inputSchema: z.object({
|
|
8838
8838
|
instruction: z.string().min(1).max(4e3),
|
|
8839
8839
|
title: z.string().trim().min(1).max(60).nullable().describe("Optional short display title. Omit or use null to generate one from the task instruction.").optional(),
|
|
8840
8840
|
schedule: scheduleIntentSchema.describe("When the task runs. The scheduler computes the exact next run from this intent and the server clock."),
|
|
8841
|
+
destination: z.literal("channel").nullable().describe("Set to \"channel\" to post at the active channel top level. Omit to use this Slack conversation.").optional(),
|
|
8841
8842
|
outcomes: z.array(taskOutcomeInputSchema).max(5).describe("Successful work is silent by default. Omit this field or use an empty list when the Automation should act through tools without a status message. Add send_message only when the user asks for a reminder, post, digest, summary, or other visible result.").optional(),
|
|
8842
8843
|
credentialMode: z.enum(["creator", "system"]).nullable().describe("Use creator to make the task creator's connected credentials available, or system when the creator says not to use them. Omit or use null for the creator default.").optional()
|
|
8843
8844
|
}).strict(),
|
|
@@ -8849,7 +8850,12 @@ function createSlackScheduleCreateAutomationTool(context) {
|
|
|
8849
8850
|
},
|
|
8850
8851
|
outputSchema: scheduleAutomationToolResultSchema,
|
|
8851
8852
|
execute: async (input, options) => {
|
|
8852
|
-
const
|
|
8853
|
+
const activeDestination = requireActiveConversation(context);
|
|
8854
|
+
const destination = input.destination === "channel" ? {
|
|
8855
|
+
platform: "slack",
|
|
8856
|
+
teamId: activeDestination.teamId,
|
|
8857
|
+
channelId: activeDestination.channelId
|
|
8858
|
+
} : activeDestination;
|
|
8853
8859
|
const actor = requireActor(context, destination);
|
|
8854
8860
|
const id = buildTaskId({
|
|
8855
8861
|
actor,
|
|
@@ -9074,7 +9080,7 @@ function createSlackScheduleUpdateAutomationTool(context) {
|
|
|
9074
9080
|
openWorldHint: true,
|
|
9075
9081
|
readOnlyHint: false
|
|
9076
9082
|
},
|
|
9077
|
-
description: "Update a scheduled automation.
|
|
9083
|
+
description: "Update a scheduled automation. Set destination to \"here\" for this Slack conversation or \"channel\" for the active channel top level.",
|
|
9078
9084
|
executionMode: "sequential",
|
|
9079
9085
|
inputSchema: z.object({
|
|
9080
9086
|
automationId: z.string().min(1).describe("Scheduled automation ID returned by slackScheduleListAutomations."),
|
|
@@ -9082,7 +9088,7 @@ function createSlackScheduleUpdateAutomationTool(context) {
|
|
|
9082
9088
|
schedule: scheduleIntentSchema.describe("Complete replacement schedule. Omit to keep it unchanged.").nullable().optional(),
|
|
9083
9089
|
outcomes: z.array(taskOutcomeInputSchema).max(5).describe("Replacement messages to send after successful work. Use an empty list to send nothing. Omit to keep unchanged.").optional(),
|
|
9084
9090
|
status: z.enum(["active", "blocked"]).describe("Set active to resume a blocked task, or blocked to stop dispatch.").optional(),
|
|
9085
|
-
destination: z.
|
|
9091
|
+
destination: z.enum(["here", "channel"]).nullable().describe("Set to \"here\" to move the creator's task into this Slack conversation, or \"channel\" to post at the active channel top level. Omit to keep its destination.").optional(),
|
|
9086
9092
|
credentialMode: z.enum(["system", "creator"]).nullable().describe("Use creator credentials or system credentials. Only the task creator may enable creator mode. Omit to keep unchanged.").optional()
|
|
9087
9093
|
}).strict(),
|
|
9088
9094
|
outputSchema: scheduleAutomationToolResultSchema,
|
|
@@ -9095,14 +9101,19 @@ function createSlackScheduleUpdateAutomationTool(context) {
|
|
|
9095
9101
|
if (lookup.status === "completed") throwToolInputError("Completed scheduled automations cannot be updated. Create a new automation instead.");
|
|
9096
9102
|
if (lookup.destination.platform !== "slack") throwToolInputError("Scheduled automation destination is invalid.");
|
|
9097
9103
|
if (lookup.destination.teamId !== activeDestination.teamId) throwToolInputError("Scheduled automations can only be managed within the same Slack workspace.");
|
|
9098
|
-
const
|
|
9104
|
+
const moveDestination = input.destination != null;
|
|
9105
|
+
const requestedDestination = input.destination === "channel" ? {
|
|
9106
|
+
platform: "slack",
|
|
9107
|
+
teamId: activeDestination.teamId,
|
|
9108
|
+
channelId: activeDestination.channelId
|
|
9109
|
+
} : activeDestination;
|
|
9099
9110
|
const alreadyHere = sameDestination(lookup, activeDestination);
|
|
9100
9111
|
const isCreator = actor.slackUserId === lookup.createdBy.slackUserId;
|
|
9101
|
-
if (!alreadyHere && !
|
|
9102
|
-
if (
|
|
9112
|
+
if (!alreadyHere && !moveDestination) throwToolInputError("Scheduled automation can only be managed from the Slack destination where it currently delivers. Set destination to \"here\" to move it into this conversation.");
|
|
9113
|
+
if (moveDestination && !isCreator) throwToolInputError("Only the scheduled automation creator can move this task.");
|
|
9103
9114
|
if (input.credentialMode === "creator" && !isCreator) throwToolInputError("Only the scheduled automation creator can enable creator credential use.");
|
|
9104
9115
|
if (input.outcomes !== void 0 && !isCreator) throwToolInputError("Only the scheduled automation creator can change message destinations.");
|
|
9105
|
-
const changingDestination =
|
|
9116
|
+
const changingDestination = moveDestination && (!alreadyHere || lookup.destination.threadTs !== requestedDestination.threadTs);
|
|
9106
9117
|
if (changingDestination) {
|
|
9107
9118
|
if ((await db.select({ id: juniorSchedulerRuns.id }).from(juniorSchedulerRuns).where(and(eq(juniorSchedulerRuns.taskId, lookup.id), inArray(juniorSchedulerRuns.status, ["pending", "running"]))).limit(1)).length > 0) throwToolInputError("Scheduled automation cannot be moved while an occurrence is already running. Try again after the current run finishes.");
|
|
9108
9119
|
}
|
|
@@ -9126,7 +9137,7 @@ function createSlackScheduleUpdateAutomationTool(context) {
|
|
|
9126
9137
|
const credentialMode = input.instruction !== void 0 && input.instruction !== lookup.task.text && !isCreator ? "system" : input.credentialMode ?? lookup.credentialMode;
|
|
9127
9138
|
const nextInstruction = input.instruction !== void 0 ? input.instruction : lookup.task.text;
|
|
9128
9139
|
const instructionChanged = nextInstruction !== lookup.task.text;
|
|
9129
|
-
const nextDestination = changingDestination ?
|
|
9140
|
+
const nextDestination = changingDestination ? requestedDestination : lookup.destination;
|
|
9130
9141
|
const next = {
|
|
9131
9142
|
...lookup,
|
|
9132
9143
|
conversationAccess: changingDestination ? getConversationAccess(activeDestination, context.source) : lookup.conversationAccess,
|
|
@@ -9150,7 +9161,7 @@ function createSlackScheduleUpdateAutomationTool(context) {
|
|
|
9150
9161
|
if (title) next.title = title;
|
|
9151
9162
|
else delete next.title;
|
|
9152
9163
|
}
|
|
9153
|
-
if (!changingDestination && !instructionChanged && !compiled && status === void 0 && (input.credentialMode === void 0 || input.credentialMode === null || input.credentialMode === lookup.credentialMode) && input.outcomes === void 0 &&
|
|
9164
|
+
if (!changingDestination && !instructionChanged && !compiled && status === void 0 && (input.credentialMode === void 0 || input.credentialMode === null || input.credentialMode === lookup.credentialMode) && input.outcomes === void 0 && moveDestination) return scheduleAutomationToolResult(lookup, actor.slackUserId);
|
|
9154
9165
|
const committed = await saveScheduledAutomation(db, next);
|
|
9155
9166
|
if (changingDestination) logInfo("scheduled_automation.move.completed", scheduledAutomationAttributes(committed));
|
|
9156
9167
|
return scheduleAutomationToolResult(committed, actor.slackUserId);
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.js";
|
|
2
|
-
import { a as embedTexts, r as completeObject } from "./client-
|
|
3
|
-
import { C as withSpan, P as normalizeIdentityEmail, _ as setSpanAttributes, d as logInfo, f as logWarn, u as logException, v as setSpanStatus } from "./logging-
|
|
2
|
+
import { a as embedTexts, r as completeObject } from "./client-pBijNHYx.js";
|
|
3
|
+
import { C as withSpan, P as normalizeIdentityEmail, _ as setSpanAttributes, d as logInfo, f as logWarn, u as logException, v as setSpanStatus } from "./logging-wngKXw7u.js";
|
|
4
4
|
import { a as getClient$1 } from "./sentry-CgWZM_kV.js";
|
|
5
|
-
import { t as canExposeConversationPayload } from "./conversation-privacy-
|
|
6
|
-
import { a as getChatConfig, n as botConfig, s as getSlackBotToken } from "./config-
|
|
5
|
+
import { t as canExposeConversationPayload } from "./conversation-privacy-TiU3SGZh.js";
|
|
6
|
+
import { a as getChatConfig, n as botConfig, s as getSlackBotToken } from "./config-DYi2mx6N.js";
|
|
7
7
|
import { n as defaultModelId } from "./model-profile-CZmVoGdX.js";
|
|
8
8
|
import { _ as parseSlackMessageTs, c as isActorUserId, h as parseSlackTeamId, m as parseSlackChannelReferenceId, u as parseActorUserId } from "./context-Bplcgypl.js";
|
|
9
9
|
import { n as juniorDestinations } from "./destinations-BeBiJeEM.js";
|
|
10
|
-
import { C as juniorCodeRepositories, D as juniorIdentities, E as juniorConversations, O as juniorUsers, S as juniorCodeChanges, T as conversationReadColumns, _ as CONVERSATION_METRICS, g as juniorConversationBriefs, h as juniorConversationBindings, i as juniorWorkspaces, m as juniorConversationParticipants, n as juniorSnapshots, r as juniorWorkspaceRepos, t as createJuniorSqlExecutor, v as juniorConversationMetrics, x as juniorConversationAnnotations, y as juniorConversationEvents } from "./executor-
|
|
11
|
-
import { B as historyReplacementSchema, C as conversationReportEventSchema, I as conversationEventDataSchema, K as usageSchema, M as conversationBriefSchema, N as parseBriefInput, V as newConversationEventSchema, z as decodeStoredConversationEvent } from "./conversation-
|
|
12
|
-
import { A as sleep$1, P as SANDBOX_WORKSPACE_ROOT, l as isSandboxMissingError, n as hash, v as getVercelSandboxCredentials, w as getStateAdapter, x as runNonInteractiveCommand } from "./profile-
|
|
13
|
-
import { n as briefEntriesFromReportEvents, s as generateBrief, t as BRIEF_PROMPT } from "./prompt-
|
|
10
|
+
import { C as juniorCodeRepositories, D as juniorIdentities, E as juniorConversations, O as juniorUsers, S as juniorCodeChanges, T as conversationReadColumns, _ as CONVERSATION_METRICS, g as juniorConversationBriefs, h as juniorConversationBindings, i as juniorWorkspaces, m as juniorConversationParticipants, n as juniorSnapshots, r as juniorWorkspaceRepos, t as createJuniorSqlExecutor, v as juniorConversationMetrics, x as juniorConversationAnnotations, y as juniorConversationEvents } from "./executor-t2OCqFgz.js";
|
|
11
|
+
import { B as historyReplacementSchema, C as conversationReportEventSchema, I as conversationEventDataSchema, K as usageSchema, M as conversationBriefSchema, N as parseBriefInput, V as newConversationEventSchema, z as decodeStoredConversationEvent } from "./conversation-BSRGzJmY.js";
|
|
12
|
+
import { A as sleep$1, P as SANDBOX_WORKSPACE_ROOT, l as isSandboxMissingError, n as hash, v as getVercelSandboxCredentials, w as getStateAdapter, x as runNonInteractiveCommand } from "./profile-Mv2uNsKJ.js";
|
|
13
|
+
import { n as briefEntriesFromReportEvents, s as generateBrief, t as BRIEF_PROMPT } from "./prompt-BkaHwBW0.js";
|
|
14
14
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
15
15
|
import { z } from "zod";
|
|
16
16
|
import { createHash, createHmac, randomUUID, timingSafeEqual } from "node:crypto";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { F as isRecord, d as logInfo, f as logWarn } from "./logging-
|
|
2
|
-
import { h as normalizeSlackEmojiName } from "./config-
|
|
1
|
+
import { F as isRecord, d as logInfo, f as logWarn } from "./logging-wngKXw7u.js";
|
|
2
|
+
import { h as normalizeSlackEmojiName } from "./config-DYi2mx6N.js";
|
|
3
3
|
import { _ as parseSlackMessageTs, g as parseSlackUserId } from "./context-Bplcgypl.js";
|
|
4
|
-
import { G as isDmChannel, J as withSlackRetries, K as normalizeSlackConversationId, U as getSlackClient, n as applyPluginFormatMarkdown, un as parseDestination, z as SlackActionError } from "./agent-hooks-
|
|
5
|
-
import { n as pluginCatalogRuntime } from "./catalog-runtime-
|
|
6
|
-
import { w as getStateAdapter } from "./profile-
|
|
4
|
+
import { G as isDmChannel, J as withSlackRetries, K as normalizeSlackConversationId, U as getSlackClient, n as applyPluginFormatMarkdown, un as parseDestination, z as SlackActionError } from "./agent-hooks-DsFlR7gi.js";
|
|
5
|
+
import { n as pluginCatalogRuntime } from "./catalog-runtime-DSEzvNVT.js";
|
|
6
|
+
import { w as getStateAdapter } from "./profile-Mv2uNsKJ.js";
|
|
7
7
|
import { r as isExperimentalFeatureEnabled } from "./experimental-CIXf7Uye.js";
|
|
8
8
|
import { randomBytes } from "node:crypto";
|
|
9
9
|
import { actorSchema, sourceSchema } from "@sentry/junior-plugin-api";
|
package/dist/api/schema.d.ts
CHANGED
|
@@ -409,6 +409,12 @@ export declare const conversationSummaryReportSchema: z.ZodObject<{
|
|
|
409
409
|
slackUserId: z.ZodOptional<z.ZodString>;
|
|
410
410
|
slackUserName: z.ZodOptional<z.ZodString>;
|
|
411
411
|
}, z.core.$strict>>;
|
|
412
|
+
participants: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
413
|
+
email: z.ZodOptional<z.ZodString>;
|
|
414
|
+
fullName: z.ZodOptional<z.ZodString>;
|
|
415
|
+
slackUserId: z.ZodOptional<z.ZodString>;
|
|
416
|
+
slackUserName: z.ZodOptional<z.ZodString>;
|
|
417
|
+
}, z.core.$strict>>>;
|
|
412
418
|
archivedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
413
419
|
channel: z.ZodOptional<z.ZodString>;
|
|
414
420
|
channelName: z.ZodOptional<z.ZodString>;
|
|
@@ -973,6 +979,12 @@ export declare const conversationDetailReportSchema: z.ZodObject<{
|
|
|
973
979
|
slackUserId: z.ZodOptional<z.ZodString>;
|
|
974
980
|
slackUserName: z.ZodOptional<z.ZodString>;
|
|
975
981
|
}, z.core.$strict>>;
|
|
982
|
+
participants: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
983
|
+
email: z.ZodOptional<z.ZodString>;
|
|
984
|
+
fullName: z.ZodOptional<z.ZodString>;
|
|
985
|
+
slackUserId: z.ZodOptional<z.ZodString>;
|
|
986
|
+
slackUserName: z.ZodOptional<z.ZodString>;
|
|
987
|
+
}, z.core.$strict>>>;
|
|
976
988
|
archivedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
977
989
|
channel: z.ZodOptional<z.ZodString>;
|
|
978
990
|
channelName: z.ZodOptional<z.ZodString>;
|
|
@@ -1641,6 +1653,12 @@ export declare const conversationFeedSchema: z.ZodObject<{
|
|
|
1641
1653
|
slackUserId: z.ZodOptional<z.ZodString>;
|
|
1642
1654
|
slackUserName: z.ZodOptional<z.ZodString>;
|
|
1643
1655
|
}, z.core.$strict>>;
|
|
1656
|
+
participants: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1657
|
+
email: z.ZodOptional<z.ZodString>;
|
|
1658
|
+
fullName: z.ZodOptional<z.ZodString>;
|
|
1659
|
+
slackUserId: z.ZodOptional<z.ZodString>;
|
|
1660
|
+
slackUserName: z.ZodOptional<z.ZodString>;
|
|
1661
|
+
}, z.core.$strict>>>;
|
|
1644
1662
|
archivedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1645
1663
|
channel: z.ZodOptional<z.ZodString>;
|
|
1646
1664
|
channelName: z.ZodOptional<z.ZodString>;
|
|
@@ -2137,6 +2155,12 @@ export declare const actorProfileReportSchema: z.ZodObject<{
|
|
|
2137
2155
|
slackUserId: z.ZodOptional<z.ZodString>;
|
|
2138
2156
|
slackUserName: z.ZodOptional<z.ZodString>;
|
|
2139
2157
|
}, z.core.$strict>>;
|
|
2158
|
+
participants: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2159
|
+
email: z.ZodOptional<z.ZodString>;
|
|
2160
|
+
fullName: z.ZodOptional<z.ZodString>;
|
|
2161
|
+
slackUserId: z.ZodOptional<z.ZodString>;
|
|
2162
|
+
slackUserName: z.ZodOptional<z.ZodString>;
|
|
2163
|
+
}, z.core.$strict>>>;
|
|
2140
2164
|
archivedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2141
2165
|
channel: z.ZodOptional<z.ZodString>;
|
|
2142
2166
|
channelName: z.ZodOptional<z.ZodString>;
|
|
@@ -2448,6 +2472,12 @@ export declare const locationDetailReportSchema: z.ZodObject<{
|
|
|
2448
2472
|
slackUserId: z.ZodOptional<z.ZodString>;
|
|
2449
2473
|
slackUserName: z.ZodOptional<z.ZodString>;
|
|
2450
2474
|
}, z.core.$strict>>;
|
|
2475
|
+
participants: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2476
|
+
email: z.ZodOptional<z.ZodString>;
|
|
2477
|
+
fullName: z.ZodOptional<z.ZodString>;
|
|
2478
|
+
slackUserId: z.ZodOptional<z.ZodString>;
|
|
2479
|
+
slackUserName: z.ZodOptional<z.ZodString>;
|
|
2480
|
+
}, z.core.$strict>>>;
|
|
2451
2481
|
archivedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2452
2482
|
channel: z.ZodOptional<z.ZodString>;
|
|
2453
2483
|
channelName: z.ZodOptional<z.ZodString>;
|
package/dist/api/schema.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as conversationReportEventSchema, D as createConversationBodySchema, E as conversationSummaryReportSchema, L as conversationTurnFailureCodeSchema, O as createConversationMessageBodySchema, R as conversationTurnFailureReasonSchema, S as conversationReportEventDataSchema, T as conversationStatsReportSchema, _ as conversationParamsSchema, a as cancelConversationPendingMessagesBodySchema, b as conversationPendingMessageSchema, d as conversationDetailReportSchema, f as conversationEventHistorySchema, g as conversationFeedSchema, h as conversationFeedQuerySchema, i as archiveConversationResponseSchema, 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-
|
|
1
|
+
import { C as conversationReportEventSchema, D as createConversationBodySchema, E as conversationSummaryReportSchema, L as conversationTurnFailureCodeSchema, O as createConversationMessageBodySchema, R as conversationTurnFailureReasonSchema, S as conversationReportEventDataSchema, T as conversationStatsReportSchema, _ as conversationParamsSchema, a as cancelConversationPendingMessagesBodySchema, b as conversationPendingMessageSchema, d as conversationDetailReportSchema, f as conversationEventHistorySchema, g as conversationFeedSchema, h as conversationFeedQuerySchema, i as archiveConversationResponseSchema, 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-BSRGzJmY.js";
|
|
2
2
|
import { a as pluginPackageContentReportSchema, c as runtimeInfoReportSchema, i as pluginPackageContentItemReportSchema, l as skillReportSchema, n as pluginOperationalReportFeedSchema, o as pluginSchema, r as pluginOperationalReportSchema, s as pluginsSchema, t as healthReportSchema, u as skillReportsSchema } from "../reporting-schema-DosTN__Q.js";
|
|
3
|
-
import { A as actorProfileReportSchema, B as dailyConversationActivitySchema, C as createPersonalTokenBodySchema, D as personalTokenParamsSchema, E as personalTokenMetadataSchema, F as locationDirectoryReportSchema, G as codePersonReportSchema, H as codeChangeSummaryReportSchema, I as locationParamsSchema, K as codeRepositorySummarySchema, M as personalSpendReportSchema, N as locationActivityDayReportSchema, O as revokePersonalTokenResponseSchema, P as locationDetailReportSchema, S as scheduledAutomationSummarySchema, T as personalTokenListSchema, U as codeChangeSummarySchema, V as codeActivityDaySchema, W as codeOverviewReportSchema, _ as automationRunListSchema, a as workspaceBodySchema, at as apiErrorSchema, b as automationSummarySchema, c as workspaceRepoSchema, d as automationExecutionSchema, f as automationExecutionStatusDaySchema, g as automationParamsSchema, h as automationListSchema, i as deleteWorkspaceResponseSchema, j as personParamsSchema, k as actorDirectoryReportSchema, l as workspaceSchema, m as automationListQuerySchema, n as statsReportSchema, o as workspaceListSchema, p as automationExecutionStatusSchema, r as baselineSnapshotSchema, s as workspaceParamsSchema, t as statSchema, u as automationExecutionListSchema, v as automationRunSchema, w as createdPersonalTokenSchema, x as eventAutomationSummarySchema, y as automationRunWindowsSchema } from "../schema-
|
|
3
|
+
import { A as actorProfileReportSchema, B as dailyConversationActivitySchema, C as createPersonalTokenBodySchema, D as personalTokenParamsSchema, E as personalTokenMetadataSchema, F as locationDirectoryReportSchema, G as codePersonReportSchema, H as codeChangeSummaryReportSchema, I as locationParamsSchema, K as codeRepositorySummarySchema, M as personalSpendReportSchema, N as locationActivityDayReportSchema, O as revokePersonalTokenResponseSchema, P as locationDetailReportSchema, S as scheduledAutomationSummarySchema, T as personalTokenListSchema, U as codeChangeSummarySchema, V as codeActivityDaySchema, W as codeOverviewReportSchema, _ as automationRunListSchema, a as workspaceBodySchema, at as apiErrorSchema, b as automationSummarySchema, c as workspaceRepoSchema, d as automationExecutionSchema, f as automationExecutionStatusDaySchema, g as automationParamsSchema, h as automationListSchema, i as deleteWorkspaceResponseSchema, j as personParamsSchema, k as actorDirectoryReportSchema, l as workspaceSchema, m as automationListQuerySchema, n as statsReportSchema, o as workspaceListSchema, p as automationExecutionStatusSchema, r as baselineSnapshotSchema, s as workspaceParamsSchema, t as statSchema, u as automationExecutionListSchema, v as automationRunSchema, w as createdPersonalTokenSchema, x as eventAutomationSummarySchema, y as automationRunWindowsSchema } from "../schema-YPJXVcOW.js";
|
|
4
4
|
export { acceptedConversationMessageSchema, actorDirectoryReportSchema, actorProfileReportSchema, apiErrorSchema, archiveConversationBodySchema, archiveConversationResponseSchema, automationExecutionListSchema, automationExecutionSchema, automationExecutionStatusDaySchema, automationExecutionStatusSchema, automationListQuerySchema, automationListSchema, automationParamsSchema, automationRunListSchema, automationRunSchema, automationRunWindowsSchema, automationSummarySchema, baselineSnapshotSchema, cancelConversationPendingMessagesBodySchema, cancelConversationPendingMessagesResponseSchema, codeActivityDaySchema, codeChangeSummaryReportSchema, codeChangeSummarySchema, codeOverviewReportSchema, codePersonReportSchema, codeRepositorySummarySchema, conversationActivityPreviewSchema, conversationAuxiliaryCostsSchema, conversationDetailQuerySchema, conversationDetailReportSchema, conversationEventHistorySchema, conversationEventPageSchema, conversationEventsQuerySchema, conversationFeedQuerySchema, conversationFeedSchema, conversationParamsSchema, conversationPendingAuthorizationSchema, conversationPendingMessageDeliverySchema, conversationPendingMessageSchema, conversationPendingMessagesReportSchema, conversationReportEventDataSchema, conversationReportEventSchema, conversationStatsReportSchema, conversationSummaryReportSchema, conversationTurnFailureCodeSchema, conversationTurnFailureReasonSchema, createConversationBodySchema, createConversationMessageBodySchema, createPersonalTokenBodySchema, createdPersonalTokenSchema, dailyConversationActivitySchema, deleteWorkspaceResponseSchema, eventAutomationSummarySchema, healthReportSchema, locationActivityDayReportSchema, locationDetailReportSchema, locationDirectoryReportSchema, locationParamsSchema, personParamsSchema, personalSpendReportSchema, personalTokenListSchema, personalTokenMetadataSchema, personalTokenParamsSchema, pluginOperationalReportFeedSchema, pluginOperationalReportSchema, pluginPackageContentItemReportSchema, pluginPackageContentReportSchema, pluginSchema, pluginsSchema, revokePersonalTokenResponseSchema, runtimeInfoReportSchema, scheduledAutomationSummarySchema, skillReportSchema, skillReportsSchema, statSchema, statsReportSchema, workspaceBodySchema, workspaceListSchema, workspaceParamsSchema, workspaceRepoSchema, workspaceSchema };
|
package/dist/api.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { f as logWarn, u as logException } from "./logging-
|
|
1
|
+
import { f as logWarn, u as logException } from "./logging-wngKXw7u.js";
|
|
2
2
|
import { _ as parseSlackMessageTs, h as parseSlackTeamId, p as parseSlackChannelId } from "./context-Bplcgypl.js";
|
|
3
|
-
import { $ as resolveViewerUser, $t as parseSessionSource, Ct as conversationArchivedForEmail, D as SANDBOX_RUNTIME, Dt as conversationNotArchivedForEmail, Et as conversationHasParticipantUser, Ft as listConversationAnnotations, Gt as getDb, It as listConversationAnnotationsById, J as withSlackRetries, Kt as getSqlExecutor, Mt as readConversationEventPage, Nt as buildSentryConversationUrl, Ot as conversationNotArchivedForUser, S as WorkspaceValidationError, St as conversationArchiveTimes, Tt as conversationHasParticipantEmail, U as getSlackClient, Wt as getConversationStore, Z as findUserByEmail, Zt as locationFromRow, _ as deleteWorkspace, an as resolveRootConversationId, b as listWorkspaces, bt as createPluginLogger, et as updateViewerDisplayName, g as createWorkspace, in as hasAgentTurnUsage, j as workspaceRepoCheckoutPath, jt as readLatestConversationBrief, kt as viewerConversationMembership, rn as agentTurnUsageSchema, u as getPlugins, v as getWorkspace, wt as conversationArchivedForUser, x as updateWorkspace, xt as readConversationAccessFromSql } from "./agent-hooks-
|
|
3
|
+
import { $ as resolveViewerUser, $t as parseSessionSource, Ct as conversationArchivedForEmail, D as SANDBOX_RUNTIME, Dt as conversationNotArchivedForEmail, Et as conversationHasParticipantUser, Ft as listConversationAnnotations, Gt as getDb, It as listConversationAnnotationsById, J as withSlackRetries, Kt as getSqlExecutor, Mt as readConversationEventPage, Nt as buildSentryConversationUrl, Ot as conversationNotArchivedForUser, S as WorkspaceValidationError, St as conversationArchiveTimes, Tt as conversationHasParticipantEmail, U as getSlackClient, Wt as getConversationStore, Z as findUserByEmail, Zt as locationFromRow, _ as deleteWorkspace, an as resolveRootConversationId, b as listWorkspaces, bt as createPluginLogger, et as updateViewerDisplayName, g as createWorkspace, in as hasAgentTurnUsage, j as workspaceRepoCheckoutPath, jt as readLatestConversationBrief, kt as viewerConversationMembership, rn as agentTurnUsageSchema, u as getPlugins, v as getWorkspace, wt as conversationArchivedForUser, x as updateWorkspace, xt as readConversationAccessFromSql } from "./agent-hooks-DsFlR7gi.js";
|
|
4
4
|
import { n as juniorDestinations } from "./destinations-BeBiJeEM.js";
|
|
5
|
-
import { C as juniorCodeRepositories, D as juniorIdentities, E as juniorConversations, O as juniorUsers, S as juniorCodeChanges, T as conversationReadColumns, b as juniorApiTokens, g as juniorConversationBriefs, m as juniorConversationParticipants, o as juniorSchedulerTasks, v as juniorConversationMetrics, y as juniorConversationEvents } from "./executor-
|
|
6
|
-
import { D as createConversationBodySchema, O as createConversationMessageBodySchema, T as conversationStatsReportSchema, _ as conversationParamsSchema, a as cancelConversationPendingMessagesBodySchema, c as conversationAttachmentParamsSchema, d as conversationDetailReportSchema, g as conversationFeedSchema, h as conversationFeedQuerySchema, i as archiveConversationResponseSchema, m as conversationEventsQuerySchema, o as cancelConversationPendingMessagesResponseSchema, p as conversationEventPageSchema, r as archiveConversationBodySchema, t as acceptedConversationMessageSchema, u as conversationDetailQuerySchema, x as conversationPendingMessagesReportSchema } from "./conversation-
|
|
7
|
-
import { t as fallbackShortTitle } from "./short-title-
|
|
8
|
-
import { n as hash, t as create } from "./profile-
|
|
9
|
-
import { A as eventAutomationTriggerAvailable, F as effectiveTaskOutcomes, G as listDeletedEventAutomationsCreatedBy, H as eventAutomationBelongsToUser, J as listPublicEventAutomationsForTeams, K as listEventAutomationsCreatedBy, Tt as getConversation, V as deleteEventAutomation, W as getEventAutomation, X as getEventCatalog, _ as parseScheduledAutomationRow, c as parseSlackThreadId, ht as cancelHumanFacingPendingMessages, i as readLiveAttachment, m as listPublicScheduledAutomationsForTeams, n as readStats, p as isListedScheduledAutomation, v as readScheduledAutomation, y as saveScheduledAutomation } from "./stats
|
|
10
|
-
import { t as getCachedSnapshot } from "./resolve-
|
|
5
|
+
import { C as juniorCodeRepositories, D as juniorIdentities, E as juniorConversations, O as juniorUsers, S as juniorCodeChanges, T as conversationReadColumns, b as juniorApiTokens, g as juniorConversationBriefs, m as juniorConversationParticipants, o as juniorSchedulerTasks, v as juniorConversationMetrics, y as juniorConversationEvents } from "./executor-t2OCqFgz.js";
|
|
6
|
+
import { D as createConversationBodySchema, O as createConversationMessageBodySchema, T as conversationStatsReportSchema, _ as conversationParamsSchema, a as cancelConversationPendingMessagesBodySchema, c as conversationAttachmentParamsSchema, d as conversationDetailReportSchema, g as conversationFeedSchema, h as conversationFeedQuerySchema, i as archiveConversationResponseSchema, m as conversationEventsQuerySchema, o as cancelConversationPendingMessagesResponseSchema, p as conversationEventPageSchema, r as archiveConversationBodySchema, t as acceptedConversationMessageSchema, u as conversationDetailQuerySchema, x as conversationPendingMessagesReportSchema } from "./conversation-BSRGzJmY.js";
|
|
7
|
+
import { t as fallbackShortTitle } from "./short-title-Bs3wWE1M.js";
|
|
8
|
+
import { n as hash, t as create } from "./profile-Mv2uNsKJ.js";
|
|
9
|
+
import { A as eventAutomationTriggerAvailable, F as effectiveTaskOutcomes, G as listDeletedEventAutomationsCreatedBy, H as eventAutomationBelongsToUser, J as listPublicEventAutomationsForTeams, K as listEventAutomationsCreatedBy, Tt as getConversation, V as deleteEventAutomation, W as getEventAutomation, X as getEventCatalog, _ as parseScheduledAutomationRow, c as parseSlackThreadId, ht as cancelHumanFacingPendingMessages, i as readLiveAttachment, m as listPublicScheduledAutomationsForTeams, n as readStats, p as isListedScheduledAutomation, v as readScheduledAutomation, y as saveScheduledAutomation } from "./stats--FeHjGJ1.js";
|
|
10
|
+
import { t as getCachedSnapshot } from "./resolve-BI3Dfm9p.js";
|
|
11
11
|
import { t as getVercelConversationWorkQueue } from "./vercel-queue-DIkVcfK4.js";
|
|
12
12
|
import { c as runtimeInfoReportSchema, n as pluginOperationalReportFeedSchema, s as pluginsSchema, t as healthReportSchema, u as skillReportsSchema } from "./reporting-schema-DosTN__Q.js";
|
|
13
|
-
import { a as webActorFromEmail, c as formatSlackConversationRedactedLabel, d as resolveSlackConversationContextFromThreadId, f as lookupSlackUser, g as readHealthReport, m as createVercelAttachmentStorage, p as legacyWebMailboxMetadataSchema, r as createAndEnqueueConversation, t as appendAndEnqueueWebMessage } from "./web-input-
|
|
14
|
-
import { a as readAutomationExecutionStatusDays, c as readAutomationExecutions, d as conversationActiveDaysColumn, f as conversationAggregateColumns, i as readAutomationExecutionHours, l as readAutomationRuns, n as readAutomationExecutionByConversationId, o as readAutomationExecutionStatusHours, p as conversationRangeColumns, r as readAutomationExecutionDays, s as readAutomationExecutionSummaries, t as emptyAutomationRunWindows } from "./execution-stats-
|
|
15
|
-
import { r as getWebAuthorization } from "./web-authorization-
|
|
16
|
-
import { $ as sumUtcHoursIntoSixHours, A as actorProfileReportSchema, C as createPersonalTokenBodySchema, D as personalTokenParamsSchema, F as locationDirectoryReportSchema, G as codePersonReportSchema, I as locationParamsSchema, J as HOUR_MS$1, L as activityDays$1, M as personalSpendReportSchema, O as revokePersonalTokenResponseSchema, P as locationDetailReportSchema, Q as startOfUtcHour, R as activityHours$1, T as personalTokenListSchema, W as codeOverviewReportSchema, X as fillUtcHours, Y as fillUtcDays, Z as fillUtcSixHours, _ as automationRunListSchema, a as workspaceBodySchema, at as apiErrorSchema, et as trailingUtcDayWindow, g as automationParamsSchema, h as automationListSchema, i as deleteWorkspaceResponseSchema, it as utcHourKey, j as personParamsSchema, k as actorDirectoryReportSchema, l as workspaceSchema, m as automationListQuerySchema, n as statsReportSchema, nt as trailingUtcSixHourWindow, o as workspaceListSchema, q as DAY_MS$1, rt as utcDayKey, s as workspaceParamsSchema, tt as trailingUtcHourWindow, u as automationExecutionListSchema, w as createdPersonalTokenSchema, z as activitySixHours$1 } from "./schema-
|
|
13
|
+
import { a as webActorFromEmail, c as formatSlackConversationRedactedLabel, d as resolveSlackConversationContextFromThreadId, f as lookupSlackUser, g as readHealthReport, m as createVercelAttachmentStorage, p as legacyWebMailboxMetadataSchema, r as createAndEnqueueConversation, t as appendAndEnqueueWebMessage } from "./web-input-C5nhIX0j.js";
|
|
14
|
+
import { a as readAutomationExecutionStatusDays, c as readAutomationExecutions, d as conversationActiveDaysColumn, f as conversationAggregateColumns, i as readAutomationExecutionHours, l as readAutomationRuns, n as readAutomationExecutionByConversationId, o as readAutomationExecutionStatusHours, p as conversationRangeColumns, r as readAutomationExecutionDays, s as readAutomationExecutionSummaries, t as emptyAutomationRunWindows } from "./execution-stats-DAWGg9WH.js";
|
|
15
|
+
import { r as getWebAuthorization } from "./web-authorization-ZAQcIE4e.js";
|
|
16
|
+
import { $ as sumUtcHoursIntoSixHours, A as actorProfileReportSchema, C as createPersonalTokenBodySchema, D as personalTokenParamsSchema, F as locationDirectoryReportSchema, G as codePersonReportSchema, I as locationParamsSchema, J as HOUR_MS$1, L as activityDays$1, M as personalSpendReportSchema, O as revokePersonalTokenResponseSchema, P as locationDetailReportSchema, Q as startOfUtcHour, R as activityHours$1, T as personalTokenListSchema, W as codeOverviewReportSchema, X as fillUtcHours, Y as fillUtcDays, Z as fillUtcSixHours, _ as automationRunListSchema, a as workspaceBodySchema, at as apiErrorSchema, et as trailingUtcDayWindow, g as automationParamsSchema, h as automationListSchema, i as deleteWorkspaceResponseSchema, it as utcHourKey, j as personParamsSchema, k as actorDirectoryReportSchema, l as workspaceSchema, m as automationListQuerySchema, n as statsReportSchema, nt as trailingUtcSixHourWindow, o as workspaceListSchema, q as DAY_MS$1, rt as utcDayKey, s as workspaceParamsSchema, tt as trailingUtcHourWindow, u as automationExecutionListSchema, w as createdPersonalTokenSchema, z as activitySixHours$1 } from "./schema-YPJXVcOW.js";
|
|
17
17
|
import { Hono } from "hono";
|
|
18
18
|
import path from "node:path";
|
|
19
19
|
import { z } from "zod";
|
|
@@ -902,6 +902,61 @@ async function readConversationActivityPreviews(db, conversationIds) {
|
|
|
902
902
|
}]));
|
|
903
903
|
}
|
|
904
904
|
//#endregion
|
|
905
|
+
//#region src/api/conversations/participants.ts
|
|
906
|
+
const identityColumns = {
|
|
907
|
+
displayName: juniorIdentities.displayName,
|
|
908
|
+
email: juniorIdentities.email,
|
|
909
|
+
handle: juniorIdentities.handle,
|
|
910
|
+
identityId: juniorIdentities.id,
|
|
911
|
+
provider: juniorIdentities.provider,
|
|
912
|
+
providerSubjectId: juniorIdentities.providerSubjectId,
|
|
913
|
+
userDisplayName: juniorUsers.displayName,
|
|
914
|
+
userEmail: juniorUsers.primaryEmail,
|
|
915
|
+
userId: juniorIdentities.userId
|
|
916
|
+
};
|
|
917
|
+
function participantIdentity(row) {
|
|
918
|
+
const fullName = row.userDisplayName?.trim() || row.displayName?.trim();
|
|
919
|
+
const email = row.email?.trim() || row.userEmail?.trim();
|
|
920
|
+
const slack = row.provider === "slack";
|
|
921
|
+
const participant = {
|
|
922
|
+
...email ? { email } : void 0,
|
|
923
|
+
...fullName ? { fullName } : void 0,
|
|
924
|
+
...slack && row.providerSubjectId ? { slackUserId: row.providerSubjectId } : void 0,
|
|
925
|
+
...slack && row.handle ? { slackUserName: row.handle } : void 0
|
|
926
|
+
};
|
|
927
|
+
return Object.keys(participant).length > 0 ? participant : void 0;
|
|
928
|
+
}
|
|
929
|
+
/** Read actor identities in first-appearance order for each Conversation. */
|
|
930
|
+
async function readConversationParticipants(db, conversationIds) {
|
|
931
|
+
if (conversationIds.length === 0) return /* @__PURE__ */ new Map();
|
|
932
|
+
const [rootRows, eventRows] = await Promise.all([db.select({
|
|
933
|
+
conversationId: juniorConversations.conversationId,
|
|
934
|
+
...identityColumns
|
|
935
|
+
}).from(juniorConversations).innerJoin(juniorIdentities, eq(juniorIdentities.id, juniorConversations.actorIdentityId)).leftJoin(juniorUsers, eq(juniorUsers.id, juniorIdentities.userId)).where(inArray(juniorConversations.conversationId, [...conversationIds])), db.selectDistinctOn([juniorConversationEvents.conversationId, juniorConversationEvents.actorIdentityId], {
|
|
936
|
+
conversationId: juniorConversationEvents.conversationId,
|
|
937
|
+
seq: juniorConversationEvents.seq,
|
|
938
|
+
...identityColumns
|
|
939
|
+
}).from(juniorConversationEvents).innerJoin(juniorIdentities, eq(juniorIdentities.id, juniorConversationEvents.actorIdentityId)).leftJoin(juniorUsers, eq(juniorUsers.id, juniorIdentities.userId)).where(inArray(juniorConversationEvents.conversationId, [...conversationIds])).orderBy(asc(juniorConversationEvents.conversationId), asc(juniorConversationEvents.actorIdentityId), asc(juniorConversationEvents.seq))]);
|
|
940
|
+
const ordered = /* @__PURE__ */ new Map();
|
|
941
|
+
const add = (conversationId, row) => {
|
|
942
|
+
const participant = participantIdentity(row);
|
|
943
|
+
if (!participant) return;
|
|
944
|
+
const group = ordered.get(conversationId) ?? {
|
|
945
|
+
identities: [],
|
|
946
|
+
keys: /* @__PURE__ */ new Set()
|
|
947
|
+
};
|
|
948
|
+
const key = row.userId ? `user:${row.userId}` : `identity:${row.identityId}`;
|
|
949
|
+
if (!group.keys.has(key)) {
|
|
950
|
+
group.keys.add(key);
|
|
951
|
+
group.identities.push(participant);
|
|
952
|
+
}
|
|
953
|
+
ordered.set(conversationId, group);
|
|
954
|
+
};
|
|
955
|
+
for (const row of rootRows) add(row.conversationId, row);
|
|
956
|
+
for (const row of eventRows.sort((left, right) => left.seq - right.seq)) add(row.conversationId, row);
|
|
957
|
+
return new Map([...ordered].map(([conversationId, group]) => [conversationId, group.identities]));
|
|
958
|
+
}
|
|
959
|
+
//#endregion
|
|
905
960
|
//#region src/api/conversations/list.ts
|
|
906
961
|
const CONVERSATION_FEED_LIMIT = 50;
|
|
907
962
|
function conversationFeedMembershipFilter(status, filter) {
|
|
@@ -1019,12 +1074,13 @@ async function readConversationFeedFromSql(options = {}) {
|
|
|
1019
1074
|
const rows = await conversationRows(db, options.limit ?? CONVERSATION_FEED_LIMIT, query ? "all" : options.status ?? "active", filter, query, filter?.kind === "viewer");
|
|
1020
1075
|
const conversations = rows.map((row) => conversationFromRow(row));
|
|
1021
1076
|
const conversationIds = conversations.map((conversation) => conversation.conversationId);
|
|
1022
|
-
const [accessByConversation, archiveTimesByConversation, annotationsByConversation, auxiliaryCostsByRoot, metricsByRoot, teamDomainByTeamId, conversationWork, lastUserMessageAtByConversation, activityPreviewByConversation] = await Promise.all([
|
|
1077
|
+
const [accessByConversation, archiveTimesByConversation, annotationsByConversation, auxiliaryCostsByRoot, metricsByRoot, participantsByConversation, teamDomainByTeamId, conversationWork, lastUserMessageAtByConversation, activityPreviewByConversation] = await Promise.all([
|
|
1023
1078
|
readConversationAccessFromSql(db, conversationIds, options.viewer),
|
|
1024
1079
|
conversationArchiveTimes(db, conversationIds, filter?.kind === "viewer" ? { userId: filter.userId } : filter?.kind === "actorEmail" ? { email: filter.email } : void 0),
|
|
1025
1080
|
listConversationAnnotationsById(db, conversationIds),
|
|
1026
1081
|
readConversationAuxiliaryCostsFromSql(db, conversationIds, { includeDescendants: true }),
|
|
1027
1082
|
readRootConversationMetricsFromSql(db, conversationIds),
|
|
1083
|
+
readConversationParticipants(db, conversationIds),
|
|
1028
1084
|
resolveSlackTeamDomains(conversations.flatMap((conversation) => conversation.location?.provider === "slack" ? [conversation.location.teamId] : [])),
|
|
1029
1085
|
listConversationWork(conversationIds),
|
|
1030
1086
|
readLastUserMessageAtByConversation(db, conversationIds),
|
|
@@ -1056,9 +1112,11 @@ async function readConversationFeedFromSql(options = {}) {
|
|
|
1056
1112
|
};
|
|
1057
1113
|
const annotations = access?.canViewPrivateContent ? annotationsByConversation.get(conversation.conversationId) ?? [] : [];
|
|
1058
1114
|
const activityPreview = access?.canViewPrivateContent ? activityPreviewByConversation.get(conversation.conversationId) : void 0;
|
|
1115
|
+
const participants = access?.canViewPrivateContent ? participantsByConversation.get(conversation.conversationId) : void 0;
|
|
1059
1116
|
return {
|
|
1060
1117
|
...summary,
|
|
1061
1118
|
...work,
|
|
1119
|
+
...participants && participants.length > 0 ? { participants } : void 0,
|
|
1062
1120
|
...activityPreview ? { activityPreview } : void 0,
|
|
1063
1121
|
...annotations.length > 0 ? { annotations } : void 0,
|
|
1064
1122
|
...sidebarAnnotationsByConversation[conversation.conversationId] ? { sidebarAnnotations: sidebarAnnotationsByConversation[conversation.conversationId] } : void 0,
|
|
@@ -1600,6 +1658,7 @@ function projectConversationDetail(args) {
|
|
|
1600
1658
|
annotations: canExposePayload ? args.annotations : [],
|
|
1601
1659
|
...canExposePayload && args.brief ? { brief: args.brief } : void 0,
|
|
1602
1660
|
events: args.events,
|
|
1661
|
+
...canExposePayload && args.participants.length > 0 ? { participants: args.participants } : void 0,
|
|
1603
1662
|
...args.previousSeq !== void 0 ? { previousCursor: encodeConversationCursor({
|
|
1604
1663
|
conversationId,
|
|
1605
1664
|
seq: args.previousSeq
|
|
@@ -1620,7 +1679,7 @@ async function readConversationDetailFromSql(conversationId, options) {
|
|
|
1620
1679
|
const archivedAtMs = options.viewer ? await readConversationArchivedAt(options.viewer, conversationId) : void 0;
|
|
1621
1680
|
const executor = getSqlExecutor();
|
|
1622
1681
|
const includeDescendantMetrics = record.rootConversationId === conversationId;
|
|
1623
|
-
const [accessByConversation, annotations, auxiliaryCostsByConversation, briefVersion, modelUsage, metricsByRoot, sourceTask, teamDomainByTeamId] = await Promise.all([
|
|
1682
|
+
const [accessByConversation, annotations, auxiliaryCostsByConversation, briefVersion, modelUsage, metricsByRoot, participantsByConversation, sourceTask, teamDomainByTeamId] = await Promise.all([
|
|
1624
1683
|
readConversationAccessFromSql(getDb(), [conversationId], options.viewer),
|
|
1625
1684
|
listConversationAnnotations(getDb(), conversationId),
|
|
1626
1685
|
readConversationAuxiliaryCostsFromSql(getDb(), [conversationId], { includeDescendants: includeDescendantMetrics }),
|
|
@@ -1630,6 +1689,7 @@ async function readConversationDetailFromSql(conversationId, options) {
|
|
|
1630
1689
|
includeDescendants: includeDescendantMetrics
|
|
1631
1690
|
}) : Promise.resolve([]),
|
|
1632
1691
|
readRootConversationMetricsFromSql(getDb(), includeDescendantMetrics ? [conversationId] : []),
|
|
1692
|
+
readConversationParticipants(getDb(), [conversationId]),
|
|
1633
1693
|
readConversationSourceTask({
|
|
1634
1694
|
conversationId,
|
|
1635
1695
|
...options.viewer ? { viewer: options.viewer } : void 0
|
|
@@ -1657,6 +1717,7 @@ async function readConversationDetailFromSql(conversationId, options) {
|
|
|
1657
1717
|
durationMs: metrics?.durationMs ?? record.durationMs,
|
|
1658
1718
|
events: page.events,
|
|
1659
1719
|
modelUsage,
|
|
1720
|
+
participants: participantsByConversation.get(conversationId) ?? [],
|
|
1660
1721
|
...sourceTask ? { sourceTask } : void 0,
|
|
1661
1722
|
teamDomainByTeamId,
|
|
1662
1723
|
...page.previousSeq === void 0 ? void 0 : { previousSeq: page.previousSeq },
|
|
@@ -3453,7 +3514,7 @@ async function readPeoplePluginReports(args) {
|
|
|
3453
3514
|
reports: [],
|
|
3454
3515
|
source: "plugins"
|
|
3455
3516
|
});
|
|
3456
|
-
const { getPluginProfileReports } = await import("./agent-hooks-
|
|
3517
|
+
const { getPluginProfileReports } = await import("./agent-hooks-DsFlR7gi.js").then((n) => n.t);
|
|
3457
3518
|
return pluginOperationalReportFeedSchema.parse({
|
|
3458
3519
|
generatedAt: new Date(nowMs).toISOString(),
|
|
3459
3520
|
reports: await getPluginProfileReports({
|
|
@@ -4062,7 +4123,7 @@ function readDescriptionText(home) {
|
|
|
4062
4123
|
}
|
|
4063
4124
|
/** Read discovered skill names for authenticated runtime diagnostics. */
|
|
4064
4125
|
async function readSkillReports() {
|
|
4065
|
-
const { discoverSkills } = await import("./skills-
|
|
4126
|
+
const { discoverSkills } = await import("./skills-DOE_QPVJ.js").then((n) => n.o);
|
|
4066
4127
|
const skills = await discoverSkills();
|
|
4067
4128
|
return skillReportsSchema.parse(skills.map((skill) => ({
|
|
4068
4129
|
name: skill.name,
|
|
@@ -4071,7 +4132,7 @@ async function readSkillReports() {
|
|
|
4071
4132
|
}
|
|
4072
4133
|
/** Read safe configured plugin metadata for authenticated runtime diagnostics. */
|
|
4073
4134
|
async function readPlugins() {
|
|
4074
|
-
const { pluginCatalogRuntime } = await import("./catalog-runtime-
|
|
4135
|
+
const { pluginCatalogRuntime } = await import("./catalog-runtime-DSEzvNVT.js").then((n) => n.t);
|
|
4075
4136
|
return pluginsSchema.parse(pluginCatalogRuntime.getProviders().map((plugin) => ({
|
|
4076
4137
|
configKeys: plugin.manifest.configKeys ?? [],
|
|
4077
4138
|
description: plugin.manifest.description,
|
|
@@ -4083,7 +4144,7 @@ async function readPlugins() {
|
|
|
4083
4144
|
async function readRuntimeInfoReport() {
|
|
4084
4145
|
const [{ homeDir }, { pluginCatalogRuntime }, plugins, skills] = await Promise.all([
|
|
4085
4146
|
import("./package-discovery-7a9YqLhE.js").then((n) => n.r),
|
|
4086
|
-
import("./catalog-runtime-
|
|
4147
|
+
import("./catalog-runtime-DSEzvNVT.js").then((n) => n.t),
|
|
4087
4148
|
readPlugins(),
|
|
4088
4149
|
readSkillReports()
|
|
4089
4150
|
]);
|
|
@@ -4100,7 +4161,7 @@ async function readRuntimeInfoReport() {
|
|
|
4100
4161
|
/** Read sanitized operational summaries contributed by plugins. */
|
|
4101
4162
|
async function readPluginOperationalReportFeed() {
|
|
4102
4163
|
const nowMs = Date.now();
|
|
4103
|
-
const { getPluginOperationalReports } = await import("./agent-hooks-
|
|
4164
|
+
const { getPluginOperationalReports } = await import("./agent-hooks-DsFlR7gi.js").then((n) => n.t);
|
|
4104
4165
|
return pluginOperationalReportFeedSchema.parse({
|
|
4105
4166
|
source: "plugins",
|
|
4106
4167
|
generatedAt: new Date(nowMs).toISOString(),
|