@sentry/junior 0.230.0 → 0.232.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 (48) hide show
  1. package/dist/{agent-hooks-Im1UUKhZ.js → agent-hooks-n9qfV697.js} +6 -6
  2. package/dist/{agent-runner-B9dvsdM8.js → agent-runner-D_FVvrwA.js} +116 -111
  3. package/dist/api/schema.d.ts +2 -2
  4. package/dist/api.js +16 -16
  5. package/dist/app.js +21 -21
  6. package/dist/{briefs-BC3DPfsh.js → briefs-B7wDx-LM.js} +2 -2
  7. package/dist/{catalog-runtime-Blx7IGY9.js → catalog-runtime-FU8TmK-W.js} +1 -1
  8. package/dist/{checkpoint-BDaS7x3C.js → checkpoint-DuA1tIcd.js} +5 -5
  9. package/dist/cli/chat.js +13 -13
  10. package/dist/cli/check.js +3 -3
  11. package/dist/cli/main.js +1 -1
  12. package/dist/cli/plugins.js +3 -3
  13. package/dist/cli/snapshot-create.js +3 -3
  14. package/dist/cli/upgrade.js +3 -3
  15. package/dist/{client-DucHsb6b.js → client-BMqP14EE.js} +3 -2
  16. package/dist/{config-HqsfInxG.js → config-Q7ayKDYh.js} +2 -2
  17. package/dist/{conversation-privacy-k2Ucs1Lg.js → conversation-privacy-DNNsgprf.js} +1 -1
  18. package/dist/{credential-sync-DEF6P_Qr.js → credential-sync-DbgAGIhd.js} +13 -13
  19. package/dist/{executor-C-LEhjeD.js → executor-DDonSWxn.js} +1 -1
  20. package/dist/{images-owPAu3eq.js → images-Bj8PcvZ5.js} +2 -2
  21. package/dist/instrumentation.js +2 -2
  22. package/dist/{job-queue-CpNnv-n1.js → job-queue-Dqc7qQbR.js} +1 -1
  23. package/dist/{logging-BO1fVUQe.js → logging-X4U7SInw.js} +1 -1
  24. package/dist/nitro.js +3 -3
  25. package/dist/{oauth-authorization-DPPpHxSI.js → oauth-authorization-CetcZcwQ.js} +1 -1
  26. package/dist/{oauth-callback-server-BvVXBrQt.js → oauth-callback-server-o34WSoGm.js} +2 -2
  27. package/dist/{pending-auth-BWgfMCZE.js → pending-auth-XoxEa4O5.js} +1 -1
  28. package/dist/{profile-DpHUuqjR.js → profile-DzqqgpDo.js} +4 -4
  29. package/dist/{registry-CIi9NkkR.js → registry-RrIfDnkS.js} +1 -1
  30. package/dist/{resolve-SohTTVYa.js → resolve-Ccu6uGtp.js} +2 -2
  31. package/dist/{runner-JhOJ60On.js → runner-DDQCEV1P.js} +8 -8
  32. package/dist/{sandbox-egress-signals-DyO-LeUT.js → sandbox-egress-signals-CT3xOtNG.js} +1 -1
  33. package/dist/{skills-DElnSC0r.js → skills-NB_I9BuR.js} +2 -2
  34. package/dist/{spawn-DrH6CP9W.js → spawn-DmwIhiNu.js} +2 -2
  35. package/dist/{task-queue-BEzJHMbQ.js → task-queue-B5CERq_E.js} +3 -3
  36. package/dist/{task-runner-DrC1UgCK.js → task-runner-COivEGS3.js} +8 -8
  37. package/dist/{thread-state-BIXM2uhZ.js → thread-state-C7yyfiVM.js} +5 -5
  38. package/dist/{turn-failure-response-9Ql2NYKh.js → turn-failure-response-D990svo-.js} +7 -7
  39. package/dist/{turn-lifecycle-_YDXUFqj.js → turn-lifecycle-C-LUNJC6.js} +1 -1
  40. package/dist/{turn-session-routing-DYxwlqQl.js → turn-session-routing-CoF0GbaY.js} +1 -1
  41. package/dist/{validation-_gPdrVG7.js → validation-f0y71ety.js} +1 -1
  42. package/dist/{version-Y7rGnMXG.js → version-CkRTIRkV.js} +1 -1
  43. package/dist/version.js +1 -1
  44. package/dist/{web-authorization-COF8MUa5.js → web-authorization-BBwQsNCZ.js} +6 -6
  45. package/dist/{web-input-BmLFoSUw.js → web-input-Bkn-JGWd.js} +52 -59
  46. package/dist/{work-CP3L3bNf.js → work-vWPq9P5x.js} +7 -7
  47. package/dist/{worker-DlZMqtCm.js → worker-BgZog5Jp.js} +5 -5
  48. package/package.json +5 -4
@@ -1,29 +1,29 @@
1
- import { $t as recordFinishedTurnForAutomatedLimit, B as isListedScheduledAutomation, Cn as createUserTokenStore, D as renderBlockText, E as renderAttachmentText, F as resolveSlackChannelIdFromThreadId, G as readScheduledAutomation, I as listThreadReplies, K as saveScheduledAutomation, M as parseSlackThreadId, N as readSlackRawMessageContext, On as AuthorizationFlowDisabledError, P as resolveSlackChannelIdFromMessage, Pt as getConversationWorkState, Q as effectiveTaskOutcomes, Qt as maybePostAutomatedTurnLimitNotice, Tn as RetryableDeliveryError, V as listPublicScheduledAutomationsForTeams, W as parseScheduledAutomationRow, Z as eventAutomationTriggerAvailable, _n as truncateStatusText, _t as getEventCatalog, a as isExperimentalFeatureEnabled, at as listEventAutomationsCreatedBy, bn as removeReactionFromMessage, bt as appendAndEnqueueExclusiveInboundMessage, c as createContextCompactor, et as deleteEventAutomation, gn as normalizeSlackStatusText, gt as isEventMailboxMetadata, hn as normalizeSlackReplyMarkdown, ht as EVENT_WAIT_MS, it as listDeletedEventAutomationsCreatedBy, j as storeAttachment, kn as shouldEmitDevAgentTrace, mn as formatSlackLink, ot as listPublicEventAutomationsForTeams, pn as escapeSlackMrkdwnText, rt as getEventAutomation, s as executeAgentRun, t as createAgentRunner, tt as eventAutomationBelongsToUser, v as PluginCredentialFailureError, vn as addReactionToMessage, wn as buildSteeringPiMessage, xt as appendAndEnqueueInboundMessage, y as latestProgressStatus, yn as postSlackMessage } from "./agent-runner-B9dvsdM8.js";
2
- import { f as escapeXml, i as completeText, r as completeObject, v as isProviderRetryError } from "./client-DucHsb6b.js";
3
- import { C as withLogContext, I as isRecord, L as toOptionalNumber, R as toOptionalString, _ as setSentryUser, b as setTags, d as logException, f as logInfo, n as createChatSdkLogger, o as getActiveTraceId, p as logWarn, t as buildTurnFailureResponse, u as logError, v as setSpanAttributes, w as withSpan } from "./logging-BO1fVUQe.js";
4
- import { a as getChatConfig, c as getSlackClientId, d as getSlackSigningSecret, h as normalizeSlackEmojiName, l as getSlackClientSecret, n as botConfig, s as getSlackBotToken } from "./config-HqsfInxG.js";
1
+ import { $t as recordFinishedTurnForAutomatedLimit, B as isListedScheduledAutomation, Cn as createUserTokenStore, D as renderBlockText, E as renderAttachmentText, F as resolveSlackChannelIdFromThreadId, G as readScheduledAutomation, I as listThreadReplies, K as saveScheduledAutomation, M as parseSlackThreadId, N as readSlackRawMessageContext, On as AuthorizationFlowDisabledError, P as resolveSlackChannelIdFromMessage, Pt as getConversationWorkState, Q as effectiveTaskOutcomes, Qt as maybePostAutomatedTurnLimitNotice, Tn as RetryableDeliveryError, V as listPublicScheduledAutomationsForTeams, W as parseScheduledAutomationRow, Z as eventAutomationTriggerAvailable, _n as truncateStatusText, _t as getEventCatalog, a as isExperimentalFeatureEnabled, at as listEventAutomationsCreatedBy, bn as removeReactionFromMessage, bt as appendAndEnqueueExclusiveInboundMessage, c as createContextCompactor, et as deleteEventAutomation, gn as normalizeSlackStatusText, gt as isEventMailboxMetadata, hn as normalizeSlackReplyMarkdown, ht as EVENT_WAIT_MS, it as listDeletedEventAutomationsCreatedBy, j as storeAttachment, kn as shouldEmitDevAgentTrace, mn as formatSlackLink, ot as listPublicEventAutomationsForTeams, pn as escapeSlackMrkdwnText, rt as getEventAutomation, s as executeAgentRun, t as createAgentRunner, tt as eventAutomationBelongsToUser, v as PluginCredentialFailureError, vn as addReactionToMessage, wn as buildSteeringPiMessage, xt as appendAndEnqueueInboundMessage, y as latestProgressStatus, yn as postSlackMessage } from "./agent-runner-D_FVvrwA.js";
2
+ import { f as escapeXml, i as completeText, r as completeObject, v as isProviderRetryError } from "./client-BMqP14EE.js";
3
+ import { C as withLogContext, I as isRecord, L as toOptionalNumber, R as toOptionalString, _ as setSentryUser, b as setTags, d as logException, f as logInfo, n as createChatSdkLogger, o as getActiveTraceId, p as logWarn, t as buildTurnFailureResponse, u as logError, v as setSpanAttributes, w as withSpan } from "./logging-X4U7SInw.js";
4
+ import { a as getChatConfig, c as getSlackClientId, d as getSlackSigningSecret, h as normalizeSlackEmojiName, l as getSlackClientSecret, n as botConfig, s as getSlackBotToken } from "./config-Q7ayKDYh.js";
5
5
  import { o as modelIdForProfile, r as defaultModelId } from "./model-profile-BwU8mqwD.js";
6
6
  import { a as createActor, b as parseSlackMessageTs, c as isActorUserId, l as isUserActor, o as createSlackActor, p as parseSlackChannelId, s as createSlackResumeActor, t as credentialContextForActor, u as parseActorUserId } from "./context-0Et9iVSB.js";
7
- import { $t as getConversationStore, B as downloadPrivateSlackFile, Bt as recordSlackAttachment, G as isDmChannel, H as getHeaderString, It as buildSentryConversationUrl, K as normalizeSlackConversationId, Lt as getSlackFileId, U as getSlackClient, Zt as getConversationEventStore, _n as createSlackDestination, _t as getDashboardObjectIconLink, en as getDb, gt as getDashboardConversationLink, ht as JUNIOR_THREAD_STATE_TTL_MS, o as getPluginSlackConversationLink, ot as cancelSubscriptions, q as runWithSlackInstallationToken, tn as getSqlExecutor, yn as requireSlackDestination, z as SlackActionError, zt as readAttachmentVisionSummary } from "./agent-hooks-Im1UUKhZ.js";
7
+ import { $t as getConversationStore, B as downloadPrivateSlackFile, Bt as recordSlackAttachment, G as isDmChannel, H as getHeaderString, It as buildSentryConversationUrl, K as normalizeSlackConversationId, Lt as getSlackFileId, U as getSlackClient, Zt as getConversationEventStore, _n as createSlackDestination, _t as getDashboardObjectIconLink, en as getDb, gt as getDashboardConversationLink, ht as JUNIOR_THREAD_STATE_TTL_MS, o as getPluginSlackConversationLink, ot as cancelSubscriptions, q as runWithSlackInstallationToken, tn as getSqlExecutor, yn as requireSlackDestination, z as SlackActionError, zt as readAttachmentVisionSummary } from "./agent-hooks-n9qfV697.js";
8
8
  import { n as juniorDestinations } from "./destinations-BeBiJeEM.js";
9
- import { D as juniorIdentities, O as juniorUsers, o as juniorSchedulerTasks } from "./executor-C-LEhjeD.js";
9
+ import { D as juniorIdentities, O as juniorUsers, o as juniorSchedulerTasks } from "./executor-DDonSWxn.js";
10
10
  import { N as isVisionImageMediaType, j as readMessageAttachments, nt as instructionProvenanceFor } from "./conversation-DsuDtoYR.js";
11
- import { $ as fallbackShortTitle, A as commitAcceptedReply, B as recordAuthorizationCompleted, J as hydrateConversationMessages, N as loadConversationProjection, O as trimTrailingAssistantMessages, P as loadProjection, Q as resolveConversationTitle, W as recordSubscribedReplyRoute, Y as persistConversationMessages, Z as persistConversationMessageSummaries, a as completeTurnRecord, at as estimateConversationContextTokens, c as listTurnSummaries, ct as markConversationMessage, dt as turnHasReply, ft as upsertConversationMessage, i as abandonTurnRecord, it as createConversationMemoryService, j as commitMessages, l as recordTurnSummary, lt as normalizeConversationText, n as loadTurnCheckpoint, nt as appendThreadContextMessages, o as failTurnRecord, ot as getConversationMessageSlackTs, p as buildTurnErrorResponse, pt as estimateTextTokens, r as saveTurnCheckpoint, rt as buildConversationContext, s as getTurnRecord, st as isHumanConversationMessage, u as persistWithRetry, ut as recordDeliveredAssistantMessage } from "./checkpoint-BDaS7x3C.js";
12
- import { E as acquireActiveLock, O as withLock, T as MUTATION_LOCK_TTL_MS, w as getStateAdapter } from "./profile-DpHUuqjR.js";
13
- import { a as isPendingAuthLatestRequest, o as buildDeterministicAssistantMessageId, r as clearPendingAuth, s as buildDeterministicTurnId } from "./pending-auth-BWgfMCZE.js";
14
- import { _ as markTurnFailed, c as CooperativeTurnYieldError, d as getConversationTurnBoundaryError, f as isCooperativeTurnYieldError, g as markTurnCompleted, h as markTurnClosed, l as TurnInputCommitLostError, m as isTurnInputDeferredError, p as isTurnInputCommitLostError, r as getAssistantReplyText, s as ConversationTurnBoundaryError, u as TurnInputDeferredError, v as startActiveTurn } from "./oauth-authorization-DPPpHxSI.js";
11
+ import { $ as fallbackShortTitle, A as commitAcceptedReply, B as recordAuthorizationCompleted, J as hydrateConversationMessages, N as loadConversationProjection, O as trimTrailingAssistantMessages, P as loadProjection, Q as resolveConversationTitle, W as recordSubscribedReplyRoute, Y as persistConversationMessages, Z as persistConversationMessageSummaries, a as completeTurnRecord, at as estimateConversationContextTokens, c as listTurnSummaries, ct as markConversationMessage, dt as turnHasReply, ft as upsertConversationMessage, i as abandonTurnRecord, it as createConversationMemoryService, j as commitMessages, l as recordTurnSummary, lt as normalizeConversationText, n as loadTurnCheckpoint, nt as appendThreadContextMessages, o as failTurnRecord, ot as getConversationMessageSlackTs, p as buildTurnErrorResponse, pt as estimateTextTokens, r as saveTurnCheckpoint, rt as buildConversationContext, s as getTurnRecord, st as isHumanConversationMessage, u as persistWithRetry, ut as recordDeliveredAssistantMessage } from "./checkpoint-DuA1tIcd.js";
12
+ import { E as acquireActiveLock, O as withLock, T as MUTATION_LOCK_TTL_MS, w as getStateAdapter } from "./profile-DzqqgpDo.js";
13
+ import { a as isPendingAuthLatestRequest, o as buildDeterministicAssistantMessageId, r as clearPendingAuth, s as buildDeterministicTurnId } from "./pending-auth-XoxEa4O5.js";
14
+ import { _ as markTurnFailed, c as CooperativeTurnYieldError, d as getConversationTurnBoundaryError, f as isCooperativeTurnYieldError, g as markTurnCompleted, h as markTurnClosed, l as TurnInputCommitLostError, m as isTurnInputDeferredError, p as isTurnInputCommitLostError, r as getAssistantReplyText, s as ConversationTurnBoundaryError, u as TurnInputDeferredError, v as startActiveTurn } from "./oauth-authorization-CetcZcwQ.js";
15
15
  import { a as EVENT_SYSTEM_ACTOR, i as EVENT_MESSAGE_AUTHOR, o as isEventConversationMessage } from "./prompt-D5RPLy92.js";
16
- import { a as getVercelConversationWorkQueue, f as getTurnRequestDeadline } from "./job-queue-CpNnv-n1.js";
16
+ import { a as getVercelConversationWorkQueue, f as getTurnRequestDeadline } from "./job-queue-Dqc7qQbR.js";
17
17
  import { c as sumUtcHoursIntoSixHours, m as healthReportSchema, t as webMessageId } from "./web-message-id-xPI_EFSC.js";
18
- import { C as readAutomationExecutionStatusDays, D as readAutomationRuns, E as readAutomationExecutions, S as readAutomationExecutionHours, T as readAutomationExecutionSummaries, _ as markDispatchFailed, a as confirmDispatchMailboxAppend, b as readAutomationExecutionByConversationId, c as getDispatchInputMessageId, f as isTerminalDispatchStatus, g as markDispatchCompleted, h as markDispatchBlocked, i as claimDispatchMailboxAppend, l as getDispatchRecord, m as markDispatchAwaitingResume, n as scheduleSessionCompletedPluginTasks, s as getDispatchConversationId, t as processPluginTask, u as getDispatchTurnId, v as markDispatchRunning, w as readAutomationExecutionStatusHours, x as readAutomationExecutionDays, y as emptyAutomationRunWindows } from "./task-runner-DrC1UgCK.js";
19
- import { i as resolveAgentInvocationId, o as AgentRunError, s as executeTurn, t as createAgentInvocationWorker } from "./work-CP3L3bNf.js";
20
- import { n as getTurnLifecycle, t as ConversationTurnLifecycleService } from "./turn-lifecycle-_YDXUFqj.js";
21
- import { a as persistThreadState, c as configValueSchema, i as persistThreadRuntimeState, n as getPersistedSandboxState, o as persistThreadStateById, r as getPersistedThreadState, s as coerceThreadConversationState, t as getLocationConfigurationService } from "./thread-state-BIXM2uhZ.js";
22
- import { a as getPausedTurnRequest, c as getTurnAuthorization, i as createPausedTurns, n as deleteWebAuthorization, s as wakePausedTurn, t as createWebAuthorization } from "./web-authorization-COF8MUa5.js";
23
- import { n as resolveTurnSessionRouting } from "./turn-session-routing-DYxwlqQl.js";
24
- import { t as bindSpawnAgent } from "./spawn-DrH6CP9W.js";
25
- import { a as persistAuthPauseTurnState, c as getTurnUserSlackMessageTs, d as loadPendingMessageCards, i as completeAuthPauseTurn, l as buildDeliveredTurnStatePatch, n as getAgentTurnDiagnosticsAttributes, o as getTurnUserMessage, r as requireTurnFailureEventId, s as getTurnUserReplyAttachmentContext, t as finalizeFailedTurnReplyWithEvent, u as getInterruptionMarker } from "./turn-failure-response-9Ql2NYKh.js";
26
- import { r as storeInputImages } from "./images-owPAu3eq.js";
18
+ import { C as readAutomationExecutionStatusDays, D as readAutomationRuns, E as readAutomationExecutions, S as readAutomationExecutionHours, T as readAutomationExecutionSummaries, _ as markDispatchFailed, a as confirmDispatchMailboxAppend, b as readAutomationExecutionByConversationId, c as getDispatchInputMessageId, f as isTerminalDispatchStatus, g as markDispatchCompleted, h as markDispatchBlocked, i as claimDispatchMailboxAppend, l as getDispatchRecord, m as markDispatchAwaitingResume, n as scheduleSessionCompletedPluginTasks, s as getDispatchConversationId, t as processPluginTask, u as getDispatchTurnId, v as markDispatchRunning, w as readAutomationExecutionStatusHours, x as readAutomationExecutionDays, y as emptyAutomationRunWindows } from "./task-runner-COivEGS3.js";
19
+ import { i as resolveAgentInvocationId, o as AgentRunError, s as executeTurn, t as createAgentInvocationWorker } from "./work-vWPq9P5x.js";
20
+ import { n as getTurnLifecycle, t as ConversationTurnLifecycleService } from "./turn-lifecycle-C-LUNJC6.js";
21
+ import { a as persistThreadState, c as configValueSchema, i as persistThreadRuntimeState, n as getPersistedSandboxState, o as persistThreadStateById, r as getPersistedThreadState, s as coerceThreadConversationState, t as getLocationConfigurationService } from "./thread-state-C7yyfiVM.js";
22
+ import { a as getPausedTurnRequest, c as getTurnAuthorization, i as createPausedTurns, n as deleteWebAuthorization, s as wakePausedTurn, t as createWebAuthorization } from "./web-authorization-BBwQsNCZ.js";
23
+ import { n as resolveTurnSessionRouting } from "./turn-session-routing-CoF0GbaY.js";
24
+ import { t as bindSpawnAgent } from "./spawn-DmwIhiNu.js";
25
+ import { a as persistAuthPauseTurnState, c as getTurnUserSlackMessageTs, d as loadPendingMessageCards, i as completeAuthPauseTurn, l as buildDeliveredTurnStatePatch, n as getAgentTurnDiagnosticsAttributes, o as getTurnUserMessage, r as requireTurnFailureEventId, s as getTurnUserReplyAttachmentContext, t as finalizeFailedTurnReplyWithEvent, u as getInterruptionMarker } from "./turn-failure-response-D990svo-.js";
26
+ import { r as storeInputImages } from "./images-Bj8PcvZ5.js";
27
27
  import { z } from "zod";
28
28
  import { createHash } from "node:crypto";
29
29
  import { and, desc, eq, inArray, lt, notInArray, or, sql } from "drizzle-orm";
@@ -334,7 +334,6 @@ function renderSlackAutomationCard(card) {
334
334
  const text = [
335
335
  "Automation",
336
336
  card.url ? formatSlackLink(card.url, title) : escapeSlackMrkdwnText(title),
337
- card.status ? escapeSlackMrkdwnText(card.status) : null,
338
337
  escapeSlackMrkdwnText(trigger),
339
338
  warning ? escapeSlackMrkdwnText(warning) : null
340
339
  ].filter(Boolean).join("\n");
@@ -360,28 +359,19 @@ function renderSlackAutomationCard(card) {
360
359
  alt_text: "Automation"
361
360
  } : void 0
362
361
  },
363
- custom_fields: [
364
- ...card.status ? [{
365
- key: "status",
366
- label: "Status",
367
- type: "string",
368
- value: card.status
369
- }] : [],
370
- {
371
- key: "trigger",
372
- label: "When",
373
- type: "string",
374
- value: trigger,
375
- long: true
376
- },
377
- ...warning ? [{
378
- key: "warning",
379
- label: "Needs attention",
380
- type: "string",
381
- value: warning,
382
- long: true
383
- }] : []
384
- ]
362
+ custom_fields: [{
363
+ key: "trigger",
364
+ label: "When",
365
+ type: "string",
366
+ value: trigger,
367
+ long: true
368
+ }, ...warning ? [{
369
+ key: "warning",
370
+ label: "Needs attention",
371
+ type: "string",
372
+ value: warning,
373
+ long: true
374
+ }] : []]
385
375
  }
386
376
  }
387
377
  };
@@ -393,29 +383,32 @@ function descriptionPreview(value) {
393
383
  const preview = text.split("\n").slice(0, 6).join("\n").slice(0, 500);
394
384
  return preview.length < text.length ? `${preview.slice(0, 499).trimEnd()}…` : preview;
395
385
  }
396
- /** Render verified annotation facts as a native Task or Item preview. */
397
- function renderSlackObjectCard(card, conversationId) {
386
+ /** Render a compact Task or Item preview, or the saved facts for its detail panel. */
387
+ function renderSlackObjectCard(card, conversationId, surface = "preview") {
398
388
  if (card.objectType === "automation" && card.plugin === "junior") return renderSlackAutomationCard({
399
389
  id: card.key,
400
390
  title: card.title,
401
391
  url: card.url,
402
392
  trigger: card.trigger ?? "",
403
- warning: card.warning ?? null,
404
- status: card.status
393
+ warning: card.warning ?? null
405
394
  });
406
395
  const presentation = objectPresentation(card);
407
396
  const type = card.displayType ?? presentation.label;
408
397
  const iconUrl = getDashboardObjectIconLink(presentation.icon);
409
398
  const title = card.title.slice(0, 160);
410
- const facts = objectFactFields(card.facts);
411
- const description = descriptionPreview(card.description);
399
+ const details = surface === "details";
400
+ const deployment = card.objectType === "deployment" || card.objectType === "item" && card.facts?.type === "deployment";
401
+ const status = details || deployment ? card.status : void 0;
402
+ const warning = details || deployment ? card.warning : void 0;
403
+ const facts = objectFactFields(card.facts).filter((field) => details || deployment && field.key === "environment");
404
+ const description = details ? card.description?.trim() ?? "" : descriptionPreview(card.description);
412
405
  const text = [
413
406
  escapeSlackMrkdwnText(type),
414
407
  card.url ? formatSlackLink(card.url, title) : escapeSlackMrkdwnText(title),
415
408
  escapeSlackMrkdwnText(card.label),
416
- card.status ? escapeSlackMrkdwnText(card.status) : null,
409
+ status ? escapeSlackMrkdwnText(status) : null,
417
410
  description ? escapeSlackMrkdwnText(description) : null,
418
- card.warning ? escapeSlackMrkdwnText(`Needs attention: ${card.warning}`) : null,
411
+ warning ? escapeSlackMrkdwnText(`Needs attention: ${warning}`) : null,
419
412
  ...facts.map((field) => escapeSlackMrkdwnText(`${field.label}: ${field.value}`))
420
413
  ].filter(Boolean).join("\n");
421
414
  if (!card.url) return {
@@ -429,7 +422,7 @@ function renderSlackObjectCard(card, conversationId) {
429
422
  display_type: type,
430
423
  product_icon: iconUrl ? {
431
424
  url: iconUrl,
432
- alt_text: `${type}${card.status ? `: ${card.status}` : ""}`
425
+ alt_text: `${type}${status ? `: ${status}` : ""}`
433
426
  } : void 0,
434
427
  product_name: card.plugin
435
428
  };
@@ -446,11 +439,11 @@ function renderSlackObjectCard(card, conversationId) {
446
439
  ...field,
447
440
  type: "string"
448
441
  })),
449
- ...card.warning ? [{
442
+ ...warning ? [{
450
443
  key: "warning",
451
444
  label: "Needs attention",
452
445
  type: "string",
453
- value: card.warning
446
+ value: warning
454
447
  }] : []
455
448
  ];
456
449
  return {
@@ -460,20 +453,20 @@ function renderSlackObjectCard(card, conversationId) {
460
453
  entity_type: "slack#/entities/task",
461
454
  entity_payload: {
462
455
  attributes,
463
- display_order: [...card.status ? ["status"] : [], ...customFields.map((field) => field.key)],
464
- fields: card.status ? { status: { value: card.status } } : void 0,
456
+ display_order: [...status ? ["status"] : [], ...customFields.map((field) => field.key)],
457
+ fields: status ? { status: { value: status } } : void 0,
465
458
  custom_fields: customFields
466
459
  }
467
460
  } : {
468
461
  entity_type: "slack#/entities/item",
469
462
  entity_payload: {
470
463
  attributes,
471
- display_order: [...card.status ? ["status"] : [], ...customFields.map((field) => field.key)],
472
- custom_fields: [...card.status ? [{
464
+ display_order: [...status ? ["status"] : [], ...customFields.map((field) => field.key)],
465
+ custom_fields: [...status ? [{
473
466
  key: "status",
474
467
  label: "Status",
475
468
  type: "string",
476
- value: card.status
469
+ value: status
477
470
  }] : [], ...customFields]
478
471
  }
479
472
  },
@@ -1,11 +1,11 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.js";
2
- import { On as AuthorizationFlowDisabledError, ct as agentInvocationSchema, dt as AgentInvocationLimitError, lt as createAgentInvocationSchema, n as runAgentWithTimeout, st as agentBindingSchema, ut as AgentInvocationBusyError, v as PluginCredentialFailureError, xt as appendAndEnqueueInboundMessage } from "./agent-runner-B9dvsdM8.js";
3
- import { $t as getConversationStore, Zt as getConversationEventStore, tn as getSqlExecutor } from "./agent-hooks-Im1UUKhZ.js";
4
- import { f as juniorAgentBindings, p as juniorAgentInvocations } from "./executor-C-LEhjeD.js";
5
- import { I as openConversationProjection, _ as getTerminalAssistantMessages, o as failTurnRecord, r as saveTurnCheckpoint, s as getTurnRecord } from "./checkpoint-BDaS7x3C.js";
6
- import { d as getConversationTurnBoundaryError, l as TurnInputCommitLostError, p as isTurnInputCommitLostError, r as getAssistantReplyText } from "./oauth-authorization-DPPpHxSI.js";
7
- import { t as ConversationTurnLifecycleService } from "./turn-lifecycle-_YDXUFqj.js";
8
- import { n as getPersistedSandboxState, o as persistThreadStateById, r as getPersistedThreadState } from "./thread-state-BIXM2uhZ.js";
2
+ import { On as AuthorizationFlowDisabledError, ct as agentInvocationSchema, dt as AgentInvocationLimitError, lt as createAgentInvocationSchema, n as runAgentWithTimeout, st as agentBindingSchema, ut as AgentInvocationBusyError, v as PluginCredentialFailureError, xt as appendAndEnqueueInboundMessage } from "./agent-runner-D_FVvrwA.js";
3
+ import { $t as getConversationStore, Zt as getConversationEventStore, tn as getSqlExecutor } from "./agent-hooks-n9qfV697.js";
4
+ import { f as juniorAgentBindings, p as juniorAgentInvocations } from "./executor-DDonSWxn.js";
5
+ import { I as openConversationProjection, _ as getTerminalAssistantMessages, o as failTurnRecord, r as saveTurnCheckpoint, s as getTurnRecord } from "./checkpoint-DuA1tIcd.js";
6
+ import { d as getConversationTurnBoundaryError, l as TurnInputCommitLostError, p as isTurnInputCommitLostError, r as getAssistantReplyText } from "./oauth-authorization-CetcZcwQ.js";
7
+ import { t as ConversationTurnLifecycleService } from "./turn-lifecycle-C-LUNJC6.js";
8
+ import { n as getPersistedSandboxState, o as persistThreadStateById, r as getPersistedThreadState } from "./thread-state-C7yyfiVM.js";
9
9
  import { z } from "zod";
10
10
  import { createHash } from "node:crypto";
11
11
  import { and, asc, count, eq, inArray } from "drizzle-orm";
@@ -1,9 +1,9 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.js";
2
- import { At as deadLetterAttempt, Dt as completeConversationStop, Lt as recordAttemptFailure, Mt as ensureConversationWake, Ot as completeConversationWork, Pt as getConversationWorkState, Rt as recordConversationRetry, St as beginConversationResume, Tt as clearConsumedConversationWake, Ut as startConversationWork, Vt as requestAnotherSlice, Xt as isInvalidConversationRecordError, Yt as isFinalAttempt, jt as drainConversationMailbox, kt as countPendingConversationMessages, qt as hasConversationStop, wt as checkInConversationWork, yt as ackMessages, zt as releaseConversationWork } from "./agent-runner-B9dvsdM8.js";
3
- import { v as isProviderRetryError } from "./client-DucHsb6b.js";
4
- import { C as withLogContext, d as logException, f as logInfo, p as logWarn } from "./logging-BO1fVUQe.js";
5
- import { a as getChatConfig } from "./config-HqsfInxG.js";
6
- import { f as getTurnRequestDeadline, m as ConversationQueueMessageRejectedError } from "./job-queue-CpNnv-n1.js";
2
+ import { At as deadLetterAttempt, Dt as completeConversationStop, Lt as recordAttemptFailure, Mt as ensureConversationWake, Ot as completeConversationWork, Pt as getConversationWorkState, Rt as recordConversationRetry, St as beginConversationResume, Tt as clearConsumedConversationWake, Ut as startConversationWork, Vt as requestAnotherSlice, Xt as isInvalidConversationRecordError, Yt as isFinalAttempt, jt as drainConversationMailbox, kt as countPendingConversationMessages, qt as hasConversationStop, wt as checkInConversationWork, yt as ackMessages, zt as releaseConversationWork } from "./agent-runner-D_FVvrwA.js";
3
+ import { v as isProviderRetryError } from "./client-BMqP14EE.js";
4
+ import { C as withLogContext, d as logException, f as logInfo, p as logWarn } from "./logging-X4U7SInw.js";
5
+ import { a as getChatConfig } from "./config-Q7ayKDYh.js";
6
+ import { f as getTurnRequestDeadline, m as ConversationQueueMessageRejectedError } from "./job-queue-Dqc7qQbR.js";
7
7
  //#region src/chat/task-execution/worker.ts
8
8
  var worker_exports = /* @__PURE__ */ __exportAll({
9
9
  CONVERSATION_WORK_DEFER_DELAY_MS: () => CONVERSATION_WORK_DEFER_DELAY_MS,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentry/junior",
3
- "version": "0.230.0",
3
+ "version": "0.232.0",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -77,6 +77,7 @@
77
77
  "ai": "^6.0.190",
78
78
  "chat": "4.29.0",
79
79
  "commander": "^14.0.3",
80
+ "diff": "^8.0.4",
80
81
  "drizzle-orm": "^0.45.2",
81
82
  "hono": "^4.12.27",
82
83
  "jiti": "^2.7.0",
@@ -86,7 +87,7 @@
86
87
  "pg": "^8.16.3",
87
88
  "yaml": "^2.9.0",
88
89
  "zod": "^4.5.4",
89
- "@sentry/junior-plugin-api": "0.230.0"
90
+ "@sentry/junior-plugin-api": "0.232.0"
90
91
  },
91
92
  "devDependencies": {
92
93
  "@emnapi/core": "^1.10.0",
@@ -105,8 +106,8 @@
105
106
  "typescript": "^6.0.3",
106
107
  "vercel": "^54.4.0",
107
108
  "vitest": "^4.1.7",
108
- "@sentry/junior-github": "0.230.0",
109
- "@sentry/junior-memory": "0.230.0",
109
+ "@sentry/junior-github": "0.232.0",
110
+ "@sentry/junior-memory": "0.232.0",
110
111
  "@sentry/junior-testing": "0.0.0"
111
112
  },
112
113
  "scripts": {