@sentry/junior 0.260.0 → 0.261.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 (59) hide show
  1. package/dist/{adapter-Dj5BTJRd.js → adapter-Bx_1B2De.js} +1 -1
  2. package/dist/{admin-tzkZDqrH.js → admin-BAbbVgVc.js} +1 -1
  3. package/dist/{agent-hooks-V4Hfc2tB.js → agent-hooks-ghyZZQqB.js} +20 -16
  4. package/dist/{agent-runner-DvTUyGTY.js → agent-runner-g110-xgg.js} +23 -22
  5. package/dist/api.js +35 -37
  6. package/dist/{app-BsBUs3rF.d.ts → app-VCiPQ65Q.d.ts} +5 -0
  7. package/dist/app.d.ts +1 -1
  8. package/dist/app.js +34 -31
  9. package/dist/{assistant-reply-CEOMzsWy.js → assistant-reply-CQcMaWNL.js} +1 -1
  10. package/dist/{briefs-BSCkyYqs.js → briefs-CKcfrIQL.js} +2 -2
  11. package/dist/{catalog-runtime-Bpcs2b2L.js → catalog-runtime-cd60vzAB.js} +1 -1
  12. package/dist/cli/chat.js +16 -16
  13. package/dist/cli/check.js +3 -3
  14. package/dist/cli/init.js +1 -1
  15. package/dist/cli/main.js +3 -3
  16. package/dist/cli/plugins.js +4 -4
  17. package/dist/cli/snapshot-create.js +4 -4
  18. package/dist/cli/upgrade.js +3 -3
  19. package/dist/{client-JeyzRwsT.js → client-2i0JJpoC.js} +2 -2
  20. package/dist/{config-ULs6Zl9b.js → config-C9qM41O0.js} +2 -2
  21. package/dist/{connections-CZ7HhEmN.js → connections-DrtTrwkp.js} +10 -10
  22. package/dist/{conversation-privacy-BQSlZXgV.js → conversation-privacy-1iTiFX1O.js} +1 -1
  23. package/dist/{credential-sync-BKcv5rBe.js → credential-sync-wKNQ1dYc.js} +14 -14
  24. package/dist/{executor-BoGNVEDn.js → executor-Rimyj8HZ.js} +2 -2
  25. package/dist/{images-BBmDXQCB.js → images-D1JggcVY.js} +2 -2
  26. package/dist/instrumentation.js +2 -2
  27. package/dist/{job-queue-CbdVyaCo.js → job-queue-BjQdSqA3.js} +1 -1
  28. package/dist/{logging-DSMmkHXG.js → logging-BLTa7R7f.js} +1 -1
  29. package/dist/{message-zaj5gBbS.js → message-DAeP5WWW.js} +3 -3
  30. package/dist/nitro.d.ts +1 -1
  31. package/dist/nitro.js +3 -3
  32. package/dist/{oauth-callback-server-yYFG8Own.js → oauth-callback-server-BAy1hhF1.js} +2 -2
  33. package/dist/{profile-ByWkAY7L.js → profile-CthM2qFM.js} +3 -3
  34. package/dist/{registry-BL-osYWN.js → registry-BnSaArNb.js} +1 -1
  35. package/dist/{resolve-HuPG2VMB.js → resolve-B5eLRl0v.js} +3 -3
  36. package/dist/{result-DS7V4a3-.js → result-Cvm0GZCv.js} +6 -6
  37. package/dist/{runner-Cba_OfGl.js → runner-D-pUzHbU.js} +10 -10
  38. package/dist/{sandbox-egress-signals-C7NcPzea.js → sandbox-egress-signals-mvwGV7rl.js} +1 -1
  39. package/dist/{service-account-Ko1Xs--F.js → service-account-Ch1uIpnR.js} +3 -3
  40. package/dist/{service-account-DqwHhwJA.js → service-account-DWxvpSfd.js} +3 -3
  41. package/dist/{session-stop-HfKx-pky.js → session-stop-Boj_zpTa.js} +10 -10
  42. package/dist/{skills-D6_bcAuW.js → skills-BpdYCfFt.js} +2 -2
  43. package/dist/{spawn-BWqK6EwM.js → spawn-h1DJMQTf.js} +2 -2
  44. package/dist/{store-DzRbd5VT.js → store-B6KqcdCQ.js} +6 -6
  45. package/dist/{task-queue-9LICOzcL.js → task-queue-BaDwKSYv.js} +3 -3
  46. package/dist/{task-runner-DGnd_B5X.js → task-runner-BAX5li9a.js} +10 -10
  47. package/dist/{tasks-CjrS098O.js → tasks-uCfmlWga.js} +40 -14
  48. package/dist/{thread-state-CqkYowEz.js → thread-state-BJHVIz8G.js} +5 -5
  49. package/dist/{turn-failure-response-BkKmGqFt.js → turn-failure-response-CCC76P6-.js} +7 -7
  50. package/dist/{turn-lifecycle-DYv8IV6w.js → turn-lifecycle-pHSESVR9.js} +1 -1
  51. package/dist/{turn-session-routing-TaVhKmdz.js → turn-session-routing-BIKJZaiw.js} +1 -1
  52. package/dist/{validation-BrXMYPyo.js → validation-B9KL_5Wc.js} +1 -1
  53. package/dist/{version-Ct049vav.js → version-CN9BXMW_.js} +1 -1
  54. package/dist/version.js +1 -1
  55. package/dist/{viewer-C-J0ewlH.js → viewer-C5xFaYVi.js} +3 -3
  56. package/dist/{web-input-C_xB3RXp.js → web-input-D6eqfXYd.js} +25 -25
  57. package/dist/{work-D829Ue7k.js → work-C-ecZAme.js} +9 -9
  58. package/dist/{worker-BRTYzlpk.js → worker-BpYDqiOf.js} +5 -5
  59. package/package.json +11 -11
@@ -1,19 +1,19 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-nwUcYXjP.js";
2
- import { a as completeText, f as unwrapCurrentInstruction, p as escapeXml, s as resolveGatewayModel, y as isProviderRetryError } from "./client-JeyzRwsT.js";
3
- import { V as toOptionalString, f as logException, m as logWarn, o as getActiveTraceId, p as logInfo, s as getLogContextAttributes, t as buildTurnFailureResponse, u as logAudit, y as setSpanAttributes, z as isRecord } from "./logging-DSMmkHXG.js";
2
+ import { a as completeText, f as unwrapCurrentInstruction, p as escapeXml, s as resolveGatewayModel, y as isProviderRetryError } from "./client-2i0JJpoC.js";
3
+ import { V as toOptionalString, f as logException, m as logWarn, o as getActiveTraceId, p as logInfo, s as getLogContextAttributes, t as buildTurnFailureResponse, u as logAudit, y as setSpanAttributes, z as isRecord } from "./logging-BLTa7R7f.js";
4
4
  import { n as captureMessage } from "./sentry-BBUlHih9.js";
5
- import { n as botConfig, v as normalizeSlackEmojiName } from "./config-ULs6Zl9b.js";
5
+ import { n as botConfig, v as normalizeSlackEmojiName } from "./config-C9qM41O0.js";
6
6
  import { c as toStoredSlackActor, f as parseSlackUserId, g as parseSlackMessageTs } from "./actor-tlxzqaRe.js";
7
- import { C as addAgentTurnUsage, R as parseDestination, c as getConversationEventStore, d as getDb, f as getSqlExecutor, m as withConversationEventLock, p as createSqlConversationEventStore, u as getConversationStore, x as bindProviderConversation, y as startLocationThread } from "./viewer-C-J0ewlH.js";
7
+ import { C as addAgentTurnUsage, R as parseDestination, c as getConversationEventStore, d as getDb, f as getSqlExecutor, m as withConversationEventLock, p as createSqlConversationEventStore, u as getConversationStore, x as bindProviderConversation, y as startLocationThread } from "./viewer-C5xFaYVi.js";
8
8
  import { d as juniorDestinations } from "./agent-invocations-Qfz7dWgU.js";
9
- import { a as juniorAutomationRuns, l as juniorLocationConfigurations, o as juniorAutomationVersions, s as juniorAutomations } from "./executor-BoGNVEDn.js";
9
+ import { a as juniorAutomationRuns, l as juniorLocationConfigurations, o as juniorAutomationVersions, s as juniorAutomations } from "./executor-Rimyj8HZ.js";
10
10
  import { d as contextProvenance, f as instructionActors, n as agentHistoryItemSchema, p as instructionProvenanceFor } from "./history-AY8rs-FR.js";
11
- import { _ as CredentialUnavailableError, a as resolveAuthTokenPlaceholder, f as credentialContextForActor, h as credentialSubjectSchema, o as resolvePluginCommandEnv, p as credentialContextSchema } from "./registry-BL-osYWN.js";
12
- import { n as pluginCatalogRuntime } from "./catalog-runtime-Bpcs2b2L.js";
13
- import { $t as authenticationUnlinkedEvent, Qt as authenticationLinkedEvent, Xt as JUNIOR_NATIVE_EVENT_NAMESPACE, Zt as agentsInstructionsUpdatedEvent, ct as getSlackClient, dt as normalizeSlackConversationId, it as SlackActionError, n as applyPluginFormatMarkdown, pt as withSlackRetries, u as getPlugins, ut as isDmChannel, wt as createPluginLogger } from "./agent-hooks-V4Hfc2tB.js";
11
+ import { _ as CredentialUnavailableError, a as resolveAuthTokenPlaceholder, f as credentialContextForActor, h as credentialSubjectSchema, o as resolvePluginCommandEnv, p as credentialContextSchema } from "./registry-BnSaArNb.js";
12
+ import { n as pluginCatalogRuntime } from "./catalog-runtime-cd60vzAB.js";
13
+ import { $t as authenticationUnlinkedEvent, Qt as authenticationLinkedEvent, Xt as JUNIOR_NATIVE_EVENT_NAMESPACE, Zt as agentsInstructionsUpdatedEvent, ct as getSlackClient, dt as normalizeSlackConversationId, it as SlackActionError, n as applyPluginFormatMarkdown, pt as withSlackRetries, u as getPlugins, ut as isDmChannel, wt as createPluginLogger } from "./agent-hooks-ghyZZQqB.js";
14
14
  import { N as messageCardRef } from "./conversation-CvuKJ3tA.js";
15
- import { a as acquireActiveLock, i as MUTATION_LOCK_TTL_MS, o as fenceLock, r as getStateAdapter, s as withLock } from "./adapter-Dj5BTJRd.js";
16
- import { y as sleep } from "./profile-ByWkAY7L.js";
15
+ import { a as acquireActiveLock, i as MUTATION_LOCK_TTL_MS, o as fenceLock, r as getStateAdapter, s as withLock } from "./adapter-Bx_1B2De.js";
16
+ import { y as sleep } from "./profile-CthM2qFM.js";
17
17
  import { A as eventAutomationSchema, E as scheduledAutomationSchema, S as automationVersionSchema } from "./automation-DrpcA-SX.js";
18
18
  import { isDeepStrictEqual } from "node:util";
19
19
  import { z } from "zod";
@@ -1030,10 +1030,32 @@ function wrapBareReferences(text) {
1030
1030
  }
1031
1031
  return out.join("\n");
1032
1032
  }
1033
+ const LIST_ITEM_PATTERN = /^[-*•]\s|^\d+\.\s/;
1034
+ /**
1035
+ * Turn a follow-up paragraph inside a list item into a bullet at the same
1036
+ * indent.
1037
+ *
1038
+ * Slack's `markdown` block keeps only one paragraph per list item. It joins
1039
+ * the other paragraphs to the top-level item's text with no space and renders
1040
+ * nested lists after them. As a bullet, the paragraph keeps its place and
1041
+ * nesting.
1042
+ */
1043
+ function bulletListFollowUpParagraphs(text) {
1044
+ const lines = text.split("\n");
1045
+ let inCodeBlock = false;
1046
+ let inList = false;
1047
+ for (const [i, line] of lines.entries()) {
1048
+ const trimmed = line.trimStart();
1049
+ const isFence = trimmed.startsWith("```");
1050
+ if (!inCodeBlock && trimmed && trimmed.length === line.length) inList = LIST_ITEM_PATTERN.test(line);
1051
+ else if (!inCodeBlock && inList && trimmed && !isFence && lines[i - 1]?.trim() === "" && !LIST_ITEM_PATTERN.test(trimmed)) lines[i] = `${line.slice(0, line.length - trimmed.length)}- ${trimmed}`;
1052
+ if (isFence) inCodeBlock = !inCodeBlock;
1053
+ }
1054
+ return lines.join("\n");
1055
+ }
1033
1056
  /** Insert blank lines between content blocks so Slack renders them with visual separation. */
1034
1057
  function ensureBlockSpacing(text) {
1035
1058
  const codeBlockPattern = /^```/;
1036
- const listItemPattern = /^[-*•]\s|^\d+\.\s/;
1037
1059
  const lines = text.split("\n");
1038
1060
  const result = [];
1039
1061
  let inCodeBlock = false;
@@ -1052,7 +1074,9 @@ function ensureBlockSpacing(text) {
1052
1074
  continue;
1053
1075
  }
1054
1076
  const prev = result.length > 0 ? result[result.length - 1] : void 0;
1055
- if (prev !== void 0 && prev.trim() !== "" && line.trim() !== "" && !(listItemPattern.test(prev.trimStart()) && listItemPattern.test(line.trimStart()))) result.push("");
1077
+ const isListItem = LIST_ITEM_PATTERN.test(line.trimStart());
1078
+ const isListContinuation = prev !== void 0 && !isListItem && /^\s/.test(line) && (/^\s/.test(prev) || LIST_ITEM_PATTERN.test(prev));
1079
+ if (prev !== void 0 && prev.trim() !== "" && line.trim() !== "" && !isListContinuation && !(LIST_ITEM_PATTERN.test(prev.trimStart()) && isListItem)) result.push("");
1056
1080
  result.push(line);
1057
1081
  }
1058
1082
  return result.join("\n");
@@ -1062,13 +1086,15 @@ function ensureBlockSpacing(text) {
1062
1086
  * or `{ type: "markdown" }` blocks.
1063
1087
  *
1064
1088
  * Plugins may first rewrite ordinary Markdown. Core then applies Slack-only
1065
- * delivery shaping: bare URL wrapping and block spacing. Slack reply delivery
1066
- * owns chunking and continuation markers separately.
1089
+ * delivery shaping: bare URL wrapping, block spacing, and list follow-up
1090
+ * paragraph bullets. Slack reply delivery owns chunking and continuation
1091
+ * markers separately.
1067
1092
  */
1068
1093
  function normalizeSlackReplyMarkdown(text) {
1069
1094
  let normalized = applyPluginFormatMarkdown(text).replace(/\r\n?/g, "\n").replace(/[ \t]+$/gm, "");
1070
1095
  normalized = wrapBareReferences(normalized);
1071
1096
  normalized = ensureBlockSpacing(normalized);
1097
+ normalized = bulletListFollowUpParagraphs(normalized);
1072
1098
  return normalized.replace(/\n{3,}/g, "\n\n").trim();
1073
1099
  }
1074
1100
  /** Normalize assistant status text before handing it to Slack. */
@@ -1,8 +1,8 @@
1
- import { Q as persistConversationMessages, er as createDurableLocationConfigurationService } from "./tasks-CjrS098O.js";
2
- import { B as toOptionalNumber, V as toOptionalString, z as isRecord } from "./logging-DSMmkHXG.js";
3
- import { d as getDb } from "./viewer-C-J0ewlH.js";
4
- import { gt as JUNIOR_THREAD_STATE_TTL_MS } from "./agent-hooks-V4Hfc2tB.js";
5
- import { r as getStateAdapter } from "./adapter-Dj5BTJRd.js";
1
+ import { Q as persistConversationMessages, er as createDurableLocationConfigurationService } from "./tasks-uCfmlWga.js";
2
+ import { B as toOptionalNumber, V as toOptionalString, z as isRecord } from "./logging-BLTa7R7f.js";
3
+ import { d as getDb } from "./viewer-C5xFaYVi.js";
4
+ import { gt as JUNIOR_THREAD_STATE_TTL_MS } from "./agent-hooks-ghyZZQqB.js";
5
+ import { r as getStateAdapter } from "./adapter-Bx_1B2De.js";
6
6
  // src/chat/state/conversation.ts
7
7
  function defaultConversationState() {
8
8
  return {
@@ -1,12 +1,12 @@
1
- import { Tt as clearPendingAuth, Z as hydrateConversationMessages, dt as markConversationMessage, sn as buildDeterministicTurnId } from "./tasks-CjrS098O.js";
2
- import { _ as getProviderErrorAttributes, g as findProviderError, m as ProviderError, v as getProviderErrorUserMessage } from "./client-JeyzRwsT.js";
3
- import { t as buildTurnFailureResponse, z as isRecord } from "./logging-DSMmkHXG.js";
1
+ import { Tt as clearPendingAuth, Z as hydrateConversationMessages, dt as markConversationMessage, sn as buildDeterministicTurnId } from "./tasks-uCfmlWga.js";
2
+ import { _ as getProviderErrorAttributes, g as findProviderError, m as ProviderError, v as getProviderErrorUserMessage } from "./client-2i0JJpoC.js";
3
+ import { t as buildTurnFailureResponse, z as isRecord } from "./logging-BLTa7R7f.js";
4
4
  import { g as parseSlackMessageTs } from "./actor-tlxzqaRe.js";
5
- import { c as getConversationEventStore, d as getDb } from "./viewer-C-J0ewlH.js";
6
- import { Ft as markTurnCompleted, Pt as markTurnClosed } from "./agent-runner-DvTUyGTY.js";
7
- import { Gt as listConversationAnnotations } from "./agent-hooks-V4Hfc2tB.js";
5
+ import { c as getConversationEventStore, d as getDb } from "./viewer-C5xFaYVi.js";
6
+ import { Ft as markTurnCompleted, Pt as markTurnClosed } from "./agent-runner-g110-xgg.js";
7
+ import { Gt as listConversationAnnotations } from "./agent-hooks-ghyZZQqB.js";
8
8
  import { F as readMessageCardRefs, I as removedCardSchema, L as resolveMessageCards } from "./conversation-CvuKJ3tA.js";
9
- import { o as persistThreadStateById, r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-CqkYowEz.js";
9
+ import { o as persistThreadStateById, r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-BJHVIz8G.js";
10
10
  // src/chat/conversations/pending-cards.ts
11
11
  /** Select undelivered cards and load their latest saved facts. */
12
12
  async function loadPendingMessageCards(conversationId) {
@@ -1,4 +1,4 @@
1
- import { c as getConversationEventStore } from "./viewer-C-J0ewlH.js";
1
+ import { c as getConversationEventStore } from "./viewer-C5xFaYVi.js";
2
2
  // src/chat/conversations/turn-lifecycle.ts
3
3
  /** Persist correlated turn lifecycle facts with retry-safe terminal exclusion. */
4
4
  var ConversationTurnLifecycleService = class {
@@ -34,7 +34,7 @@ function slackSourceForDestination(args) {
34
34
  * Reads parent Conversations when this Conversation has no Destination.
35
35
  */
36
36
  async function resolveConversationRouting(args) {
37
- const conversationStore = args.conversationStore ?? (await import("./viewer-C-J0ewlH.js").then((n) => n.s)).getConversationStore();
37
+ const conversationStore = args.conversationStore ?? (await import("./viewer-C5xFaYVi.js").then((n) => n.s)).getConversationStore();
38
38
  const chain = await loadConversationChain(args.conversationId, conversationStore);
39
39
  let destination;
40
40
  let source;
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-nwUcYXjP.js";
2
- import { n as pluginCatalogRuntime } from "./catalog-runtime-Bpcs2b2L.js";
2
+ import { n as pluginCatalogRuntime } from "./catalog-runtime-cd60vzAB.js";
3
3
  import { isDeepStrictEqual } from "node:util";
4
4
  // src/chat/plugins/validation.ts
5
5
  var validation_exports = /* @__PURE__ */ __exportAll({
@@ -1,5 +1,5 @@
1
1
  // package.json
2
- var version = "0.260.0";
2
+ var version = "0.261.0";
3
3
  // src/version.ts
4
4
  /** Installed Junior package version, or `unknown` when package metadata is unavailable. */
5
5
  const JUNIOR_VERSION = typeof version === "string" && version.trim() ? version : "unknown";
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export { t as JUNIOR_VERSION } from "./version-Ct049vav.js";
1
+ export { t as JUNIOR_VERSION } from "./version-CN9BXMW_.js";
@@ -1,9 +1,9 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-nwUcYXjP.js";
2
- import { I as GOOGLE_IDENTITY_PROVIDER, R as normalizeIdentityEmail } from "./logging-DSMmkHXG.js";
3
- import { i as getChatConfig } from "./config-ULs6Zl9b.js";
2
+ import { I as GOOGLE_IDENTITY_PROVIDER, R as normalizeIdentityEmail } from "./logging-BLTa7R7f.js";
3
+ import { i as getChatConfig } from "./config-C9qM41O0.js";
4
4
  import { d as parseSlackTeamId, o as parseActorUserId, u as parseSlackChannelReferenceId } from "./actor-tlxzqaRe.js";
5
5
  import { c as juniorIdentities, d as juniorDestinations, l as juniorUsers, o as conversationReadColumns, s as juniorConversations } from "./agent-invocations-Qfz7dWgU.js";
6
- import { _ as juniorConversationAnnotations, d as juniorConversationBindings, h as juniorConversationEvents, m as juniorConversationMetrics, p as CONVERSATION_METRICS, t as createJuniorSqlExecutor, u as juniorConversationParticipants } from "./executor-BoGNVEDn.js";
6
+ import { _ as juniorConversationAnnotations, d as juniorConversationBindings, h as juniorConversationEvents, m as juniorConversationMetrics, p as CONVERSATION_METRICS, t as createJuniorSqlExecutor, u as juniorConversationParticipants } from "./executor-Rimyj8HZ.js";
7
7
  import { c as newConversationEventSchema, h as usageSchema, l as encodeHistoryPayload, o as decodeStoredConversationEvent, r as conversationEventDataSchema, s as historyReplacementSchema } from "./history-AY8rs-FR.js";
8
8
  import { randomUUID } from "node:crypto";
9
9
  import { and, asc, desc, eq, gt, gte, inArray, isNull, lt, lte, ne, or, sql } from "drizzle-orm";
@@ -1,36 +1,36 @@
1
- import { At as saveTurnCheckpoint, Bn as normalizeSlackReplyMarkdown, Dt as wasPendingAuthStopped, E as sameDefinitionValue, Ft as listTurnSummaries, I as loadProjection, It as recordTurnSummary, Jn as removeReactionFromMessage, M as commitMessages, Mt as completeTurnRecord, Nt as failTurnRecord, P as loadConversationProjection, Pt as getTurnRecord, Q as persistConversationMessages, Rn as escapeSlackMrkdwnText, S as automationDefinition, Tt as clearPendingAuth, U as recordAuthorizationCompleted, Un as truncateStatusText, Vn as normalizeSlackStatusText, Vt as buildTurnErrorResponse, Wn as addReactionToMessage, Wt as persistWithRetry, Z as hydrateConversationMessages, _ as parseEventAutomationRow, _n as isExperimentalFeatureEnabled, _t as PluginCredentialFailureError, at as appendThreadContextMessages, bn as createUserTokenStore, c as withScheduledAutomationLock, ct as estimateConversationContextTokens, dn as getThreadStopDecision, dt as markConversationMessage, et as persistConversationMessageSummaries, f as deleteEventAutomation, ft as normalizeConversationText, h as listDeletedEventAutomationsCreatedBy, ht as upsertConversationMessage, i as readScheduledAutomation, in as trimTrailingAssistantMessages, j as commitAcceptedReply, jt as abandonTurnRecord, kt as loadTurnCheckpoint, ln as decideSubscribedThreadReply, lt as getConversationMessageSlackTs, mt as turnHasReply, o as saveScheduledAutomationInLock, on as buildDeterministicAssistantMessageId, ot as buildConversationContext, pt as recordDeliveredAssistantMessage, q as recordSubscribedReplyRoute, qn as postSlackMessage, r as parseScheduledAutomationRow, rt as fallbackShortTitle, sn as buildDeterministicTurnId, st as createConversationMemoryService, tr as configValueSchema, tt as resolveConversationTitle, un as getSubscribedReplyPreflightDecision, ut as isHumanConversationMessage, w as listAutomationVersions, xt as AuthorizationFlowDisabledError, zn as formatSlackLink } from "./tasks-CjrS098O.js";
2
- import { a as completeText, p as escapeXml, r as completeDecision, y as isProviderRetryError } from "./client-JeyzRwsT.js";
3
- import { B as toOptionalNumber, T as withSpan, V as toOptionalString, d as logError, f as logException, m as logWarn, n as createChatSdkLogger, o as getActiveTraceId, p as logInfo, t as buildTurnFailureResponse, v as setSentryUser, w as withLogContext, x as setTags, y as setSpanAttributes, z as isRecord } from "./logging-DSMmkHXG.js";
4
- import { c as getSlackClientSecret, i as getChatConfig, l as getSlackSigningSecret, n as botConfig, o as getSlackBotToken, s as getSlackClientId, v as normalizeSlackEmojiName } from "./config-ULs6Zl9b.js";
1
+ import { At as saveTurnCheckpoint, Bn as normalizeSlackReplyMarkdown, Dt as wasPendingAuthStopped, E as sameDefinitionValue, Ft as listTurnSummaries, I as loadProjection, It as recordTurnSummary, Jn as removeReactionFromMessage, M as commitMessages, Mt as completeTurnRecord, Nt as failTurnRecord, P as loadConversationProjection, Pt as getTurnRecord, Q as persistConversationMessages, Rn as escapeSlackMrkdwnText, S as automationDefinition, Tt as clearPendingAuth, U as recordAuthorizationCompleted, Un as truncateStatusText, Vn as normalizeSlackStatusText, Vt as buildTurnErrorResponse, Wn as addReactionToMessage, Wt as persistWithRetry, Z as hydrateConversationMessages, _ as parseEventAutomationRow, _n as isExperimentalFeatureEnabled, _t as PluginCredentialFailureError, at as appendThreadContextMessages, bn as createUserTokenStore, c as withScheduledAutomationLock, ct as estimateConversationContextTokens, dn as getThreadStopDecision, dt as markConversationMessage, et as persistConversationMessageSummaries, f as deleteEventAutomation, ft as normalizeConversationText, h as listDeletedEventAutomationsCreatedBy, ht as upsertConversationMessage, i as readScheduledAutomation, in as trimTrailingAssistantMessages, j as commitAcceptedReply, jt as abandonTurnRecord, kt as loadTurnCheckpoint, ln as decideSubscribedThreadReply, lt as getConversationMessageSlackTs, mt as turnHasReply, o as saveScheduledAutomationInLock, on as buildDeterministicAssistantMessageId, ot as buildConversationContext, pt as recordDeliveredAssistantMessage, q as recordSubscribedReplyRoute, qn as postSlackMessage, r as parseScheduledAutomationRow, rt as fallbackShortTitle, sn as buildDeterministicTurnId, st as createConversationMemoryService, tr as configValueSchema, tt as resolveConversationTitle, un as getSubscribedReplyPreflightDecision, ut as isHumanConversationMessage, w as listAutomationVersions, xt as AuthorizationFlowDisabledError, zn as formatSlackLink } from "./tasks-uCfmlWga.js";
2
+ import { a as completeText, p as escapeXml, r as completeDecision, y as isProviderRetryError } from "./client-2i0JJpoC.js";
3
+ import { B as toOptionalNumber, T as withSpan, V as toOptionalString, d as logError, f as logException, m as logWarn, n as createChatSdkLogger, o as getActiveTraceId, p as logInfo, t as buildTurnFailureResponse, v as setSentryUser, w as withLogContext, x as setTags, y as setSpanAttributes, z as isRecord } from "./logging-BLTa7R7f.js";
4
+ import { c as getSlackClientSecret, i as getChatConfig, l as getSlackSigningSecret, n as botConfig, o as getSlackBotToken, s as getSlackClientId, v as normalizeSlackEmojiName } from "./config-C9qM41O0.js";
5
5
  import { o as modelIdForProfile, r as defaultModelId } from "./model-profile-Bg8EoCKD.js";
6
6
  import { a as isUserActor, g as parseSlackMessageTs, i as isActorUserId, l as parseSlackChannelId, n as createSlackActor, o as parseActorUserId, r as createSlackResumeActor, t as createActor } from "./actor-tlxzqaRe.js";
7
- import { L as createSlackDestination, c as getConversationEventStore, d as getDb, f as getSqlExecutor, u as getConversationStore, z as requireSlackDestination } from "./viewer-C-J0ewlH.js";
7
+ import { L as createSlackDestination, c as getConversationEventStore, d as getDb, f as getSqlExecutor, u as getConversationStore, z as requireSlackDestination } from "./viewer-C5xFaYVi.js";
8
8
  import { c as juniorIdentities, d as juniorDestinations, l as juniorUsers } from "./agent-invocations-Qfz7dWgU.js";
9
- import { a as juniorAutomationRuns, s as juniorAutomations } from "./executor-BoGNVEDn.js";
9
+ import { a as juniorAutomationRuns, s as juniorAutomations } from "./executor-Rimyj8HZ.js";
10
10
  import { p as instructionProvenanceFor } from "./history-AY8rs-FR.js";
11
- import { d as actorLogContext, f as credentialContextForActor } from "./registry-BL-osYWN.js";
12
- import { A as listThreadReplies, At as getConversationTurnBoundaryError, D as resolveSlackChannelIdFromMessage, Dt as CooperativeTurnYieldError, E as readSlackRawMessageContext, Et as ConversationTurnBoundaryError, Ft as markTurnCompleted, I as eventAutomationTriggerAvailable, It as markTurnFailed, L as effectiveTaskOutcomes, Lt as startActiveTurn, Mt as isTurnInputCommitLostError, Nt as isTurnInputDeferredError, O as resolveSlackChannelIdFromThreadId, Ot as TurnInputCommitLostError, Pt as markTurnClosed, Rt as shouldEmitDevAgentTrace, St as RetryableDeliveryError, T as parseSlackThreadId, b as renderBlockText, bt as buildSteeringPiMessage, i as buildAuthPauseResponse, jt as isCooperativeTurnYieldError, k as getConversationInfo, kt as TurnInputDeferredError, n as executeAgentRun, p as latestProgressStatus, r as createContextCompactor, t as createAgentRunner, w as storeAttachment, xt as withoutSavedSteeringMessages, y as renderAttachmentText } from "./agent-runner-DvTUyGTY.js";
13
- import { Bt as readAttachmentVisionSummary, Lt as buildSentryConversationUrl, Rt as getSlackFileId, V as cancelSubscriptions, Vt as recordSlackAttachment, Yt as lookupSlackUser, _t as getDashboardConversationLink, at as downloadPrivateSlackFile, ct as getSlackClient, dt as normalizeSlackConversationId, ft as runWithSlackInstallationToken, gt as JUNIOR_THREAD_STATE_TTL_MS, it as SlackActionError, o as getPluginSlackConversationLink, rt as verifyTimerWatchCredentialSubject, st as getHeaderString, ut as isDmChannel, vt as getDashboardObjectIconLink } from "./agent-hooks-V4Hfc2tB.js";
11
+ import { d as actorLogContext, f as credentialContextForActor } from "./registry-BnSaArNb.js";
12
+ import { A as listThreadReplies, At as getConversationTurnBoundaryError, D as resolveSlackChannelIdFromMessage, Dt as CooperativeTurnYieldError, E as readSlackRawMessageContext, Et as ConversationTurnBoundaryError, Ft as markTurnCompleted, I as eventAutomationTriggerAvailable, It as markTurnFailed, L as effectiveTaskOutcomes, Lt as startActiveTurn, Mt as isTurnInputCommitLostError, Nt as isTurnInputDeferredError, O as resolveSlackChannelIdFromThreadId, Ot as TurnInputCommitLostError, Pt as markTurnClosed, Rt as shouldEmitDevAgentTrace, St as RetryableDeliveryError, T as parseSlackThreadId, b as renderBlockText, bt as buildSteeringPiMessage, i as buildAuthPauseResponse, jt as isCooperativeTurnYieldError, k as getConversationInfo, kt as TurnInputDeferredError, n as executeAgentRun, p as latestProgressStatus, r as createContextCompactor, t as createAgentRunner, w as storeAttachment, xt as withoutSavedSteeringMessages, y as renderAttachmentText } from "./agent-runner-g110-xgg.js";
13
+ import { Bt as readAttachmentVisionSummary, Lt as buildSentryConversationUrl, Rt as getSlackFileId, V as cancelSubscriptions, Vt as recordSlackAttachment, Yt as lookupSlackUser, _t as getDashboardConversationLink, at as downloadPrivateSlackFile, ct as getSlackClient, dt as normalizeSlackConversationId, ft as runWithSlackInstallationToken, gt as JUNIOR_THREAD_STATE_TTL_MS, it as SlackActionError, o as getPluginSlackConversationLink, rt as verifyTimerWatchCredentialSubject, st as getHeaderString, ut as isDmChannel, vt as getDashboardObjectIconLink } from "./agent-hooks-ghyZZQqB.js";
14
14
  import { B as readMessageAttachments, U as isVisionImageMediaType } from "./conversation-CvuKJ3tA.js";
15
15
  import { a as EVENT_SYSTEM_ACTOR, o as isEventConversationMessage } from "./prompt-DeVax2qO.js";
16
- import { a as acquireActiveLock, i as MUTATION_LOCK_TTL_MS, r as getStateAdapter, s as withLock } from "./adapter-Dj5BTJRd.js";
17
- import { n as getAssistantReplyText } from "./assistant-reply-CEOMzsWy.js";
18
- import { H as runDispatchOutcome, N as maybePostAutomatedTurnLimitNotice, P as recordFinishedTurnForAutomatedLimit, R as deliversFinalText, c as isEventMailboxMetadata, d as getEventCatalog, i as skipInputBeforeConversationStop, j as joinMailboxText, l as renderEventBatchText, s as eventBatchMessageEvents, u as timerWatchCredentialSubject, x as automationEventCatalog, z as finishedRunReply } from "./session-stop-HfKx-pky.js";
19
- import { a as getVercelConversationWorkQueue, f as getTurnRequestDeadline } from "./job-queue-CbdVyaCo.js";
20
- import { E as stopConversationWork, g as getConversationWorkState, h as getConversation, m as ensureConversationWake, n as appendAndEnqueueExclusiveInboundMessage, r as appendAndEnqueueInboundMessage, w as requestConversationWork } from "./store-DzRbd5VT.js";
16
+ import { a as acquireActiveLock, i as MUTATION_LOCK_TTL_MS, r as getStateAdapter, s as withLock } from "./adapter-Bx_1B2De.js";
17
+ import { n as getAssistantReplyText } from "./assistant-reply-CQcMaWNL.js";
18
+ import { H as runDispatchOutcome, N as maybePostAutomatedTurnLimitNotice, P as recordFinishedTurnForAutomatedLimit, R as deliversFinalText, c as isEventMailboxMetadata, d as getEventCatalog, i as skipInputBeforeConversationStop, j as joinMailboxText, l as renderEventBatchText, s as eventBatchMessageEvents, u as timerWatchCredentialSubject, x as automationEventCatalog, z as finishedRunReply } from "./session-stop-Boj_zpTa.js";
19
+ import { a as getVercelConversationWorkQueue, f as getTurnRequestDeadline } from "./job-queue-BjQdSqA3.js";
20
+ import { E as stopConversationWork, g as getConversationWorkState, h as getConversation, m as ensureConversationWake, n as appendAndEnqueueExclusiveInboundMessage, r as appendAndEnqueueInboundMessage, w as requestConversationWork } from "./store-B6KqcdCQ.js";
21
21
  import { l as automationListQuerySchema } from "./automation-DrpcA-SX.js";
22
22
  import { c as sumUtcHoursIntoSixHours, m as healthReportSchema, t as webMessageId } from "./web-message-id-CJSUiksE.js";
23
- import { A as readAutomationExecutions, D as readAutomationExecutionStatusDays, E as readAutomationExecutionHours, O as readAutomationExecutionStatusHours, S as emptyAutomationRunWindows, T as readAutomationExecutionDays, _ as markDispatchBlocked, a as claimDispatchMailboxAppend, b as markDispatchRunning, c as getDispatchConversationId, d as getDispatchRecord, f as getDispatchTurnId, g as markDispatchAwaitingResume, j as readAutomationRuns, k as readAutomationExecutionSummaries, l as getDispatchIdForConversation, m as isTerminalDispatchStatus, n as scheduleSessionCompletedPluginTasks, o as confirmDispatchMailboxAppend, t as processPluginTask, u as getDispatchInputMessageId, v as markDispatchCompleted, w as readAutomationExecutionByConversationId, y as markDispatchFailed } from "./task-runner-DGnd_B5X.js";
24
- import { a as withAgentInvocationResultActors, c as resolveMailboxTurnWork, i as startAgentInvocationsForChildInput, l as sourceFromTurnInput, o as getAuthPausedConversationTurnId, s as getEventBatchDelayMs, t as enqueueAgentInvocationResult, u as turnInputFactsFromConversationMessage } from "./result-DS7V4a3-.js";
25
- import { n as getTurnLifecycle, t as ConversationTurnLifecycleService } from "./turn-lifecycle-DYv8IV6w.js";
26
- import { i as resolveAgentInvocationId, o as AgentRunError, s as executeTurn, t as createAgentInvocationWorker } from "./work-D829Ue7k.js";
27
- import { a as persistThreadState, i as persistThreadRuntimeState, n as getPersistedSandboxState, o as persistThreadStateById, r as getPersistedThreadState, s as coerceThreadConversationState, t as getLocationConfigurationService } from "./thread-state-CqkYowEz.js";
28
- import { c as deleteWebAuthorization, d as createPausedTurns, f as getPausedTurnRequest, h as getTurnAuthorization, m as wakePausedTurn, s as createWebAuthorization } from "./connections-CZ7HhEmN.js";
29
- import { n as resolveTurnSessionRouting } from "./turn-session-routing-TaVhKmdz.js";
30
- import { t as bindMessageAgent } from "./message-zaj5gBbS.js";
31
- import { t as bindSpawnAgent } from "./spawn-BWqK6EwM.js";
32
- 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-BkKmGqFt.js";
33
- import { r as storeInputImages } from "./images-BBmDXQCB.js";
23
+ import { A as readAutomationExecutions, D as readAutomationExecutionStatusDays, E as readAutomationExecutionHours, O as readAutomationExecutionStatusHours, S as emptyAutomationRunWindows, T as readAutomationExecutionDays, _ as markDispatchBlocked, a as claimDispatchMailboxAppend, b as markDispatchRunning, c as getDispatchConversationId, d as getDispatchRecord, f as getDispatchTurnId, g as markDispatchAwaitingResume, j as readAutomationRuns, k as readAutomationExecutionSummaries, l as getDispatchIdForConversation, m as isTerminalDispatchStatus, n as scheduleSessionCompletedPluginTasks, o as confirmDispatchMailboxAppend, t as processPluginTask, u as getDispatchInputMessageId, v as markDispatchCompleted, w as readAutomationExecutionByConversationId, y as markDispatchFailed } from "./task-runner-BAX5li9a.js";
24
+ import { a as withAgentInvocationResultActors, c as resolveMailboxTurnWork, i as startAgentInvocationsForChildInput, l as sourceFromTurnInput, o as getAuthPausedConversationTurnId, s as getEventBatchDelayMs, t as enqueueAgentInvocationResult, u as turnInputFactsFromConversationMessage } from "./result-Cvm0GZCv.js";
25
+ import { n as getTurnLifecycle, t as ConversationTurnLifecycleService } from "./turn-lifecycle-pHSESVR9.js";
26
+ import { i as resolveAgentInvocationId, o as AgentRunError, s as executeTurn, t as createAgentInvocationWorker } from "./work-C-ecZAme.js";
27
+ import { a as persistThreadState, i as persistThreadRuntimeState, n as getPersistedSandboxState, o as persistThreadStateById, r as getPersistedThreadState, s as coerceThreadConversationState, t as getLocationConfigurationService } from "./thread-state-BJHVIz8G.js";
28
+ import { c as deleteWebAuthorization, d as createPausedTurns, f as getPausedTurnRequest, h as getTurnAuthorization, m as wakePausedTurn, s as createWebAuthorization } from "./connections-DrtTrwkp.js";
29
+ import { n as resolveTurnSessionRouting } from "./turn-session-routing-BIKJZaiw.js";
30
+ import { t as bindMessageAgent } from "./message-DAeP5WWW.js";
31
+ import { t as bindSpawnAgent } from "./spawn-h1DJMQTf.js";
32
+ 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-CCC76P6-.js";
33
+ import { r as storeInputImages } from "./images-D1JggcVY.js";
34
34
  import { z } from "zod";
35
35
  import { createHash } from "node:crypto";
36
36
  import { and, asc, count, desc, eq, exists, inArray, ne, or, sql } from "drizzle-orm";
@@ -1,14 +1,14 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-nwUcYXjP.js";
2
- import { At as saveTurnCheckpoint, Nt as failTurnRecord, Pt as getTurnRecord, Ut as isTurnExecutionLimitExceededError, _t as PluginCredentialFailureError, jt as abandonTurnRecord, qt as getTerminalAssistantMessages, xt as AuthorizationFlowDisabledError, z as openConversationProjection } from "./tasks-CjrS098O.js";
3
- import { n as botConfig } from "./config-ULs6Zl9b.js";
4
- import { c as getConversationEventStore, u as getConversationStore } from "./viewer-C-J0ewlH.js";
2
+ import { At as saveTurnCheckpoint, Nt as failTurnRecord, Pt as getTurnRecord, Ut as isTurnExecutionLimitExceededError, _t as PluginCredentialFailureError, jt as abandonTurnRecord, qt as getTerminalAssistantMessages, xt as AuthorizationFlowDisabledError, z as openConversationProjection } from "./tasks-uCfmlWga.js";
3
+ import { n as botConfig } from "./config-C9qM41O0.js";
4
+ import { c as getConversationEventStore, u as getConversationStore } from "./viewer-C5xFaYVi.js";
5
5
  import { m as sameActorIdentity, u as agentInstructionProvenance } from "./history-AY8rs-FR.js";
6
- import { At as getConversationTurnBoundaryError, G as createAgentInvocation, H as recordSubagentStarted, Mt as isTurnInputCommitLostError, Ot as TurnInputCommitLostError, Tt as readBlockedReport, V as recordSubagentEnded, W as completeAgentInvocation, X as getAgentInvocation, Y as getActiveAgentInvocationForConversation, at as isTerminalAgentInvocation, bt as buildSteeringPiMessage, ct as markAgentInvocationMailboxAppended, dt as markAgentInvocationRunning, et as getAgentInvocationMessageId, ft as markAgentInvocationSteered, it as getLatestAgentInvocationForConversation, nt as getAgentInvocationTurnId, pt as reportReplacedAgentInvocation, ut as markAgentInvocationPaused, xt as withoutSavedSteeringMessages, z as stopChildAgentsOf } from "./agent-runner-DvTUyGTY.js";
7
- import { n as getAssistantReplyText } from "./assistant-reply-CEOMzsWy.js";
8
- import { F as resetAutomatedTurnLimit, N as maybePostAutomatedTurnLimitNotice, P as recordFinishedTurnForAutomatedLimit } from "./session-stop-HfKx-pky.js";
9
- import { r as appendAndEnqueueInboundMessage } from "./store-DzRbd5VT.js";
10
- import { t as ConversationTurnLifecycleService } from "./turn-lifecycle-DYv8IV6w.js";
11
- import { n as getPersistedSandboxState, o as persistThreadStateById, r as getPersistedThreadState } from "./thread-state-CqkYowEz.js";
6
+ import { At as getConversationTurnBoundaryError, G as createAgentInvocation, H as recordSubagentStarted, Mt as isTurnInputCommitLostError, Ot as TurnInputCommitLostError, Tt as readBlockedReport, V as recordSubagentEnded, W as completeAgentInvocation, X as getAgentInvocation, Y as getActiveAgentInvocationForConversation, at as isTerminalAgentInvocation, bt as buildSteeringPiMessage, ct as markAgentInvocationMailboxAppended, dt as markAgentInvocationRunning, et as getAgentInvocationMessageId, ft as markAgentInvocationSteered, it as getLatestAgentInvocationForConversation, nt as getAgentInvocationTurnId, pt as reportReplacedAgentInvocation, ut as markAgentInvocationPaused, xt as withoutSavedSteeringMessages, z as stopChildAgentsOf } from "./agent-runner-g110-xgg.js";
7
+ import { n as getAssistantReplyText } from "./assistant-reply-CQcMaWNL.js";
8
+ import { F as resetAutomatedTurnLimit, N as maybePostAutomatedTurnLimitNotice, P as recordFinishedTurnForAutomatedLimit } from "./session-stop-Boj_zpTa.js";
9
+ import { r as appendAndEnqueueInboundMessage } from "./store-B6KqcdCQ.js";
10
+ import { t as ConversationTurnLifecycleService } from "./turn-lifecycle-pHSESVR9.js";
11
+ import { n as getPersistedSandboxState, o as persistThreadStateById, r as getPersistedThreadState } from "./thread-state-BJHVIz8G.js";
12
12
  import { isDeepStrictEqual } from "node:util";
13
13
  import { z } from "zod";
14
14
  // src/chat/runtime/turn-execution.ts
@@ -1,9 +1,9 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-nwUcYXjP.js";
2
- import { y as isProviderRetryError } from "./client-JeyzRwsT.js";
3
- import { f as logException, m as logWarn, p as logInfo, w as withLogContext } from "./logging-DSMmkHXG.js";
4
- import { i as getChatConfig } from "./config-ULs6Zl9b.js";
5
- import { f as getTurnRequestDeadline, m as ConversationQueueMessageRejectedError } from "./job-queue-CbdVyaCo.js";
6
- import { C as requestAnotherSlice, M as isInvalidConversationRecordError, T as startConversationWork, b as recordConversationRetry, d as countPendingConversationMessages, f as deadLetterAttempt, g as getConversationWorkState, i as beginConversationResume, j as isFinalAttempt, k as hasConversationStop, l as completeConversationStop, m as ensureConversationWake, o as checkInConversationWork, p as drainConversationMailbox, s as clearConsumedConversationWake, t as ackMessages, u as completeConversationWork, x as releaseConversationWork, y as recordAttemptFailure } from "./store-DzRbd5VT.js";
2
+ import { y as isProviderRetryError } from "./client-2i0JJpoC.js";
3
+ import { f as logException, m as logWarn, p as logInfo, w as withLogContext } from "./logging-BLTa7R7f.js";
4
+ import { i as getChatConfig } from "./config-C9qM41O0.js";
5
+ import { f as getTurnRequestDeadline, m as ConversationQueueMessageRejectedError } from "./job-queue-BjQdSqA3.js";
6
+ import { C as requestAnotherSlice, M as isInvalidConversationRecordError, T as startConversationWork, b as recordConversationRetry, d as countPendingConversationMessages, f as deadLetterAttempt, g as getConversationWorkState, i as beginConversationResume, j as isFinalAttempt, k as hasConversationStop, l as completeConversationStop, m as ensureConversationWake, o as checkInConversationWork, p as drainConversationMailbox, s as clearConsumedConversationWake, t as ackMessages, u as completeConversationWork, x as releaseConversationWork, y as recordAttemptFailure } from "./store-B6KqcdCQ.js";
7
7
  // 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.260.0",
3
+ "version": "0.261.0",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -61,7 +61,7 @@
61
61
  "@earendil-works/pi-ai": "0.85.1",
62
62
  "@hono/zod-validator": "^0.9.0",
63
63
  "@logtape/logtape": "^2.1.1",
64
- "@modelcontextprotocol/sdk": "1.31.0",
64
+ "@modelcontextprotocol/sdk": "1.32.0",
65
65
  "@neondatabase/serverless": "^1.1.0",
66
66
  "@opentelemetry/api": "1.9.1",
67
67
  "@opentelemetry/core": "2.9.0",
@@ -75,12 +75,12 @@
75
75
  "@vercel/queue": "^0.2.0",
76
76
  "@vercel/sandbox": "2.8.0",
77
77
  "ai": "^7.0.153",
78
- "better-auth": "^1.6.22",
78
+ "better-auth": "^1.7.7",
79
79
  "chat": "4.29.0",
80
80
  "commander": "^14.0.3",
81
81
  "diff": "^8.0.4",
82
82
  "drizzle-orm": "^0.45.2",
83
- "hono": "^4.12.27",
83
+ "hono": "^4.13.11",
84
84
  "jiti": "^2.7.0",
85
85
  "jose": "^6.2.3",
86
86
  "just-bash": "3.0.1",
@@ -89,17 +89,17 @@
89
89
  "sharp": "^0.35.3",
90
90
  "yaml": "^2.9.0",
91
91
  "zod": "^4.5.4",
92
- "@sentry/junior-plugin-api": "0.260.0"
92
+ "@sentry/junior-plugin-api": "0.261.0"
93
93
  },
94
94
  "devDependencies": {
95
95
  "@emnapi/core": "^1.10.0",
96
96
  "@emnapi/runtime": "^1.10.0",
97
- "@hono/node-server": "1.19.14",
97
+ "@hono/node-server": "1.19.15",
98
98
  "@oxlint/plugins": "1.79.0",
99
99
  "@types/node": "^25.9.1",
100
100
  "@types/pg": "^8.15.6",
101
101
  "@typescript/typescript6": "6.0.2",
102
- "@vitest/coverage-v8": "4.1.7",
102
+ "@vitest/coverage-v8": "4.1.12",
103
103
  "dependency-cruiser": "^17.4.0",
104
104
  "drizzle-kit": "^0.31.8",
105
105
  "msw": "^2.14.6",
@@ -108,10 +108,10 @@
108
108
  "tsdown": "0.23.1",
109
109
  "typescript": "^7.0.2",
110
110
  "vercel": "^54.4.0",
111
- "vitest": "^4.1.7",
112
- "@sentry/junior-memory": "0.260.0",
113
- "@sentry/junior-github": "0.260.0",
114
- "@sentry/junior-testing": "0.0.0"
111
+ "vitest": "^4.1.12",
112
+ "@sentry/junior-testing": "0.0.0",
113
+ "@sentry/junior-memory": "0.261.0",
114
+ "@sentry/junior-github": "0.261.0"
115
115
  },
116
116
  "scripts": {
117
117
  "build": "tsdown",