@sentry/junior 0.224.0 → 0.225.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 (53) hide show
  1. package/dist/{agent-hooks-DNLBwmsh.js → agent-hooks-CRuRcOg9.js} +9 -9
  2. package/dist/{agent-runner-9g6TQk9y.js → agent-runner-Cad1RtWn.js} +237 -140
  3. package/dist/api/schema.js +2 -2
  4. package/dist/api.js +16 -16
  5. package/dist/app.js +78 -59
  6. package/dist/{briefs-CjXnGKzZ.js → briefs-BtnkPWT5.js} +5 -5
  7. package/dist/{catalog-runtime-CVZ9TEuK.js → catalog-runtime-pv4grNNb.js} +1 -1
  8. package/dist/{checkpoint-Ceck_fLO.js → checkpoint-6fkAdB3g.js} +7 -7
  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-B27ufhzl.js → client-ihmkx60d.js} +2 -2
  16. package/dist/{config-BAhl7-RC.js → config-DMg679BW.js} +11 -13
  17. package/dist/{conversation-1HUoZr2l.js → conversation-Bygi39Xj.js} +1 -1
  18. package/dist/{conversation-privacy-C-4JQzKD.js → conversation-privacy-ZYy05Y3q.js} +1 -1
  19. package/dist/{credential-sync-BXHIxbtS.js → credential-sync-DCB2SwnQ.js} +14 -14
  20. package/dist/{execution-stats-DikPOxJ1.js → execution-stats-CR9CYpyj.js} +3 -3
  21. package/dist/{executor-BG2Armby.js → executor-B9R4cHte.js} +1 -1
  22. package/dist/instrumentation.js +2 -2
  23. package/dist/{job-queue-D4oAVrL9.js → job-queue-D2SiTrnt.js} +1 -1
  24. package/dist/{logging-iY0ssa2q.js → logging-CcTvYQ8A.js} +2 -2
  25. package/dist/{model-profile-CZmVoGdX.js → model-profile-BwU8mqwD.js} +14 -1
  26. package/dist/nitro.js +3 -3
  27. package/dist/{oauth-authorization-BIijVS2N.js → oauth-authorization-BS4vPJmu.js} +1 -1
  28. package/dist/{oauth-callback-server-DPkK3kzi.js → oauth-callback-server-DnlQsGBJ.js} +2 -2
  29. package/dist/{profile-6KWhg_-U.js → profile-CV97YuiL.js} +4 -4
  30. package/dist/{prompt-90miy8VV.js → prompt-CL8zxsmm.js} +1 -1
  31. package/dist/{registry-Ctgdjt-W.js → registry-C8I4IejN.js} +3 -3
  32. package/dist/{resolve-CB45ZukQ.js → resolve-DXVAzYa3.js} +2 -2
  33. package/dist/{runner-BwKCqoF3.js → runner-Die1RJ_z.js} +9 -9
  34. package/dist/{sandbox-egress-signals-Cmy8ODat.js → sandbox-egress-signals-BZepyVh1.js} +1 -1
  35. package/dist/{schema-RpbW5Od2.js → schema-BE4uso4i.js} +1 -1
  36. package/dist/{short-title-xEkZwkcV.js → short-title-3wYH3ipl.js} +11 -5
  37. package/dist/{skills-c2bMDVRS.js → skills-DUcDEgDI.js} +2 -2
  38. package/dist/{spawn-Cg6lyjE7.js → spawn-o15i3tJu.js} +2 -2
  39. package/dist/{stats-DP9zl3Jg.js → stats-DawHjcTw.js} +6 -6
  40. package/dist/{task-queue-SL4uLfBB.js → task-queue-D3PLY59C.js} +3 -3
  41. package/dist/{task-runner-fntmnqzx.js → task-runner-BMl2aM2v.js} +8 -8
  42. package/dist/{thread-state-Wfr0GdKS.js → thread-state-CAR6gdAm.js} +5 -5
  43. package/dist/{turn-failure-response-DLjSEm-R.js → turn-failure-response-CZyoUMkD.js} +9 -9
  44. package/dist/{turn-lifecycle-5_jvLqRz.js → turn-lifecycle-DPDHKi2U.js} +1 -1
  45. package/dist/{turn-session-routing-CQaysLoe.js → turn-session-routing-Jkmmxpp-.js} +1 -1
  46. package/dist/{validation-CnZkCN7o.js → validation-BcGGxOa6.js} +1 -1
  47. package/dist/{version-C6lA-h_o.js → version-DYcuOFQb.js} +1 -1
  48. package/dist/version.js +1 -1
  49. package/dist/{web-authorization-Bbx999_q.js → web-authorization-B09B8A8R.js} +1 -1
  50. package/dist/{web-input-BoE1xE-K.js → web-input-CGE58TpK.js} +7 -7
  51. package/dist/{work-4Nhz9mVv.js → work-Bm90pR9P.js} +8 -8
  52. package/dist/{worker-CdWPsNL2.js → worker-BvHr6JhE.js} +5 -5
  53. package/package.json +4 -4
@@ -1,4 +1,4 @@
1
- import { f as logWarn } from "./logging-iY0ssa2q.js";
1
+ import { p as logWarn } from "./logging-CcTvYQ8A.js";
2
2
  import { AsyncLocalStorage } from "node:async_hooks";
3
3
  //#region src/chat/conversation-privacy.ts
4
4
  const SAFE_METADATA_KEY_LIMIT = 20;
@@ -1,21 +1,21 @@
1
- import { C as resolvePluginOAuthAccount, D as lookupSlackUserProfile, V as getMcpProviderErrorAttributes, _ as putMcpStoredOAuthCredentials, at as parseOAuthStatePayload, b as getConversationPendingAuth, d as deleteMcpAuthSession, g as getMcpStoredOAuthCredentials, gt as createUserTokenStore, h as getMcpAuthSession, it as formatProviderLabel, mt as postSlackMessage, ot as resolveBaseUrl, u as finalizeMcpAuthorization } from "./agent-runner-9g6TQk9y.js";
2
- import { m as escapeXml } from "./client-B27ufhzl.js";
3
- import { f as logWarn, m as runBestEffort, u as logException } from "./logging-iY0ssa2q.js";
4
- import { n as botConfig, o as getRuntimeMetadata } from "./config-BAhl7-RC.js";
1
+ import { C as resolvePluginOAuthAccount, D as lookupSlackUserProfile, V as getMcpProviderErrorAttributes, _ as putMcpStoredOAuthCredentials, at as parseOAuthStatePayload, b as getConversationPendingAuth, d as deleteMcpAuthSession, g as getMcpStoredOAuthCredentials, h as getMcpAuthSession, it as formatProviderLabel, mt as postSlackMessage, ot as resolveBaseUrl, u as finalizeMcpAuthorization, vt as createUserTokenStore } from "./agent-runner-Cad1RtWn.js";
2
+ import { m as escapeXml } from "./client-ihmkx60d.js";
3
+ import { d as logException, h as runBestEffort, p as logWarn } from "./logging-CcTvYQ8A.js";
4
+ import { n as botConfig, o as getRuntimeMetadata } from "./config-DMg679BW.js";
5
5
  import { g as parseSlackUserId } from "./context-Bplcgypl.js";
6
- import { Jt as getSqlExecutor, U as getSlackClient, Wt as getConversationEventStore, ln as upsertIdentity, un as upsertLinkedIdentity } from "./agent-hooks-DNLBwmsh.js";
6
+ import { Jt as getSqlExecutor, U as getSlackClient, Wt as getConversationEventStore, ln as upsertIdentity, un as upsertLinkedIdentity } from "./agent-hooks-CRuRcOg9.js";
7
7
  import { i as homeDir } from "./package-discovery-7a9YqLhE.js";
8
- import { n as buildOAuthTokenRequest, r as parseOAuthTokenResponse, u as hasRequiredOAuthScope } from "./registry-Ctgdjt-W.js";
9
- import { n as pluginCatalogRuntime } from "./catalog-runtime-CVZ9TEuK.js";
10
- import { t as discoverSkills } from "./skills-c2bMDVRS.js";
11
- import { B as recordAuthorizationCompleted, n as loadTurnCheckpoint, o as failTurnRecord, s as getTurnRecord, z as recordAuthenticationLinked } from "./checkpoint-Ceck_fLO.js";
12
- import { E as acquireActiveLock, w as getStateAdapter } from "./profile-6KWhg_-U.js";
13
- import { Pt as requestConversationWork, wt as ensureConversationWake } from "./stats-DP9zl3Jg.js";
8
+ import { n as buildOAuthTokenRequest, r as parseOAuthTokenResponse, u as hasRequiredOAuthScope } from "./registry-C8I4IejN.js";
9
+ import { n as pluginCatalogRuntime } from "./catalog-runtime-pv4grNNb.js";
10
+ import { t as discoverSkills } from "./skills-DUcDEgDI.js";
11
+ import { B as recordAuthorizationCompleted, n as loadTurnCheckpoint, o as failTurnRecord, s as getTurnRecord, z as recordAuthenticationLinked } from "./checkpoint-6fkAdB3g.js";
12
+ import { E as acquireActiveLock, w as getStateAdapter } from "./profile-CV97YuiL.js";
13
+ import { Pt as requestConversationWork, wt as ensureConversationWake } from "./stats-DawHjcTw.js";
14
14
  import { t as getVercelConversationWorkQueue } from "./vercel-queue-DIkVcfK4.js";
15
- import { r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-Wfr0GdKS.js";
16
- import { n as resolveTurnSessionRouting } from "./turn-session-routing-CQaysLoe.js";
15
+ import { r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-CAR6gdAm.js";
16
+ import { n as resolveTurnSessionRouting } from "./turn-session-routing-Jkmmxpp-.js";
17
17
  import { n as relayLocalOAuthCallback } from "./oauth-relay-CdCnu80W.js";
18
- import { n as deleteWebAuthorization } from "./web-authorization-Bbx999_q.js";
18
+ import { n as deleteWebAuthorization } from "./web-authorization-B09B8A8R.js";
19
19
  import path from "node:path";
20
20
  import { z } from "zod";
21
21
  import { createHmac, createSecretKey, timingSafeEqual } from "node:crypto";
@@ -1,6 +1,6 @@
1
- import { f as logWarn } from "./logging-iY0ssa2q.js";
2
- import { in as agentTurnTotalTokens, qt as getDb, rn as agentTurnCostUsd } from "./agent-hooks-DNLBwmsh.js";
3
- import { E as juniorConversations, s as juniorAutomationExecutions } from "./executor-BG2Armby.js";
1
+ import { p as logWarn } from "./logging-CcTvYQ8A.js";
2
+ import { in as agentTurnTotalTokens, qt as getDb, rn as agentTurnCostUsd } from "./agent-hooks-CRuRcOg9.js";
3
+ import { E as juniorConversations, s as juniorAutomationExecutions } from "./executor-B9R4cHte.js";
4
4
  import { and, asc, count, desc, eq, gte, inArray, lte, max, or, sql } from "drizzle-orm";
5
5
  //#region src/api/conversations/aggregate.ts
6
6
  function usageTokenValue(source, field) {
@@ -1,5 +1,5 @@
1
1
  import { g as startSpanManual } from "./sentry-CgWZM_kV.js";
2
- import "./config-BAhl7-RC.js";
2
+ import "./config-DMg679BW.js";
3
3
  import { n as juniorDestinations, r as timestamptz } from "./destinations-BeBiJeEM.js";
4
4
  import { AsyncLocalStorage } from "node:async_hooks";
5
5
  import { getTableColumns, sql } from "drizzle-orm";
@@ -1,6 +1,6 @@
1
- import { M as getDeploymentServiceVersion, N as getDeploymentTelemetryAttributes } from "./logging-iY0ssa2q.js";
1
+ import { N as getDeploymentServiceVersion, P as getDeploymentTelemetryAttributes } from "./logging-CcTvYQ8A.js";
2
2
  import { _ as vercelAIIntegration, a as getClient, b as withStreamedSpan, c as init, o as getGlobalScope } from "./sentry-CgWZM_kV.js";
3
- import { n as getCurrentConversationPrivacy } from "./conversation-privacy-C-4JQzKD.js";
3
+ import { n as getCurrentConversationPrivacy } from "./conversation-privacy-ZYy05Y3q.js";
4
4
  import { t as consumePrivateTraceResultMarker } from "./private-trace-result-BLvBjy_e.js";
5
5
  //#region src/chat/sentry-payload-filter.ts
6
6
  const PAYLOAD_ATTRIBUTE_KEYS = /* @__PURE__ */ new Set([
@@ -1,4 +1,4 @@
1
- import { a as getChatConfig } from "./config-BAhl7-RC.js";
1
+ import { a as getChatConfig } from "./config-DMg679BW.js";
2
2
  import { a as signQueueMessage, i as QUEUE_SIGNATURE_MAX_AGE_MS, o as verifyQueueMessage, s as createVercelQueueClient } from "./vercel-queue-DIkVcfK4.js";
3
3
  import { AsyncLocalStorage } from "node:async_hooks";
4
4
  import { z } from "zod";
@@ -1,5 +1,5 @@
1
1
  import { d as setTag, f as setUser, h as startSpan, i as getActiveSpan, l as logger, n as captureMessage, p as spanToJSON, s as getTraceData, t as captureException, y as withScope } from "./sentry-CgWZM_kV.js";
2
- import { t as JUNIOR_VERSION } from "./version-C6lA-h_o.js";
2
+ import { t as JUNIOR_VERSION } from "./version-DYcuOFQb.js";
3
3
  import path from "node:path";
4
4
  import { styleText } from "node:util";
5
5
  import { ConfigError, configureSync, getConfig, getLogger } from "@logtape/logtape";
@@ -1207,4 +1207,4 @@ function extractGenAiUsageAttributes(...sources) {
1207
1207
  };
1208
1208
  }
1209
1209
  //#endregion
1210
- export { JUNIOR_WORKSPACE_SNAPSHOT_JOB_CALLBACK_ROUTE as A, withSpan as C, JUNIOR_PLUGIN_TASK_CALLBACK_ROUTE as D, JUNIOR_HEARTBEAT_ROUTE as E, isRecord as F, toOptionalNumber as I, toOptionalString as L, getDeploymentServiceVersion as M, getDeploymentTelemetryAttributes as N, JUNIOR_RETENTION_CRON_SCHEDULE as O, normalizeIdentityEmail as P, withLogContext as S, JUNIOR_HEARTBEAT_CRON_SCHEDULE as T, setSpanAttributes as _, extractGenAiUsageSummary as a, summarizeMessageText as b, getTracePropagationHeaders as c, logInfo as d, logWarn as f, setSentryUser as g, serializeGenAiAttribute as h, extractGenAiUsageAttributes as i, LEGACY_JUNIOR_CONVERSATION_WORK_FUNCTION as j, JUNIOR_RETENTION_ROUTE as k, logError as l, runBestEffort as m, createChatSdkLogger as n, getActiveTraceId as o, normalizeGenAiFinishReason as p, createRequestContext as r, getLogContextAttributesForSpan as s, buildTurnFailureResponse as t, logException as u, setSpanStatus as v, JUNIOR_CONVERSATION_WORK_CALLBACK_ROUTE as w, withContext as x, setTags as y };
1210
+ export { JUNIOR_RETENTION_ROUTE as A, withLogContext as C, JUNIOR_HEARTBEAT_ROUTE as D, JUNIOR_HEARTBEAT_CRON_SCHEDULE as E, normalizeIdentityEmail as F, isRecord as I, toOptionalNumber as L, LEGACY_JUNIOR_CONVERSATION_WORK_FUNCTION as M, getDeploymentServiceVersion as N, JUNIOR_PLUGIN_TASK_CALLBACK_ROUTE as O, getDeploymentTelemetryAttributes as P, toOptionalString as R, withContext as S, JUNIOR_CONVERSATION_WORK_CALLBACK_ROUTE as T, setSentryUser as _, extractGenAiUsageSummary as a, setTags as b, getLogContextAttributesForSpan as c, logException as d, logInfo as f, serializeGenAiAttribute as g, runBestEffort as h, extractGenAiUsageAttributes as i, JUNIOR_WORKSPACE_SNAPSHOT_JOB_CALLBACK_ROUTE as j, JUNIOR_RETENTION_CRON_SCHEDULE as k, getTracePropagationHeaders as l, normalizeGenAiFinishReason as m, createChatSdkLogger as n, getActiveTraceId as o, logWarn as p, createRequestContext as r, getLogContextAttributes as s, buildTurnFailureResponse as t, logError as u, setSpanAttributes as v, withSpan as w, summarizeMessageText as x, setSpanStatus as y };
@@ -15,6 +15,19 @@ function parseTurnReasoningLevel(value) {
15
15
  //#region src/chat/model-profile.ts
16
16
  /** Keep durable profile names stable and safe to expose in tool schemas. */
17
17
  const modelProfileSchema = z.string().regex(/^[a-z][a-z0-9_-]*$/);
18
+ /** Shared model profiles used when the app does not configure its own. */
19
+ const DEFAULT_MODEL_PROFILES = {
20
+ standard: {
21
+ modelId: "openai/gpt-6-luna",
22
+ description: "Use for lookups, explanations, summaries, routine tool use, and focused source checks, including reading a single code file. Avoid for implementation, debugging, code review, architecture decisions, or research across several systems.",
23
+ reasoningLevel: "high"
24
+ },
25
+ handoff: {
26
+ modelId: "anthropic/claude-opus-5.5",
27
+ description: "Use for implementation, debugging, code review, architecture decisions, and research across several systems. Include verification of unfinished work. Avoid for routine lookups, short explanations, or a new routine request after completed work.",
28
+ reasoningLevel: "high"
29
+ }
30
+ };
18
31
  /** Format one profile and its task-fit description. */
19
32
  function formatModelProfile(profile, description) {
20
33
  const text = description?.trim();
@@ -46,4 +59,4 @@ function profileConfig(config, profile) {
46
59
  return profileConfig;
47
60
  }
48
61
  //#endregion
49
- export { modelIdForProfile as a, TURN_REASONING_LEVELS as c, formatModelProfiles as i, parseTurnReasoningLevel as l, defaultModelId as n, modelProfileSchema as o, formatModelProfile as r, profileConfig as s, ModelProfileNotConfiguredError as t };
62
+ export { formatModelProfiles as a, profileConfig as c, formatModelProfile as i, TURN_REASONING_LEVELS as l, ModelProfileNotConfiguredError as n, modelIdForProfile as o, defaultModelId as r, modelProfileSchema as s, DEFAULT_MODEL_PROFILES as t, parseTurnReasoningLevel as u };
package/dist/nitro.js CHANGED
@@ -1,9 +1,9 @@
1
- import { A as JUNIOR_WORKSPACE_SNAPSHOT_JOB_CALLBACK_ROUTE, D as JUNIOR_PLUGIN_TASK_CALLBACK_ROUTE, E as JUNIOR_HEARTBEAT_ROUTE, O as JUNIOR_RETENTION_CRON_SCHEDULE, T as JUNIOR_HEARTBEAT_CRON_SCHEDULE, k as JUNIOR_RETENTION_ROUTE, w as JUNIOR_CONVERSATION_WORK_CALLBACK_ROUTE } from "./logging-iY0ssa2q.js";
1
+ import { A as JUNIOR_RETENTION_ROUTE, D as JUNIOR_HEARTBEAT_ROUTE, E as JUNIOR_HEARTBEAT_CRON_SCHEDULE, O as JUNIOR_PLUGIN_TASK_CALLBACK_ROUTE, T as JUNIOR_CONVERSATION_WORK_CALLBACK_ROUTE, j as JUNIOR_WORKSPACE_SNAPSHOT_JOB_CALLBACK_ROUTE, k as JUNIOR_RETENTION_CRON_SCHEDULE } from "./logging-CcTvYQ8A.js";
2
2
  import { d as resolvePackageDir, t as discoverInstalledPluginPackageContent, u as isValidPackageName } from "./package-discovery-7a9YqLhE.js";
3
3
  import { n as resolveConversationWorkQueueTopic } from "./vercel-queue-DIkVcfK4.js";
4
- import { t as WORKSPACE_SNAPSHOT_JOB_QUEUE_TOPIC } from "./job-queue-D4oAVrL9.js";
4
+ import { t as WORKSPACE_SNAPSHOT_JOB_QUEUE_TOPIC } from "./job-queue-D2SiTrnt.js";
5
5
  import { a as pluginRuntimeRegistrationsFromPluginSet, r as pluginCatalogConfigFromPluginSet } from "./plugins-egKWjgue.js";
6
- import { t as PLUGIN_TASK_QUEUE_TOPIC } from "./task-queue-SL4uLfBB.js";
6
+ import { t as PLUGIN_TASK_QUEUE_TOPIC } from "./task-queue-D3PLY59C.js";
7
7
  import { n as loadPluginSetFromModule, r as resolvePluginModule } from "./plugin-module-BKGOXca2.js";
8
8
  import path from "node:path";
9
9
  import { cpSync, existsSync, mkdirSync, readdirSync, statSync } from "node:fs";
@@ -1,4 +1,4 @@
1
- import { h as extractAssistantText } from "./checkpoint-Ceck_fLO.js";
1
+ import { h as extractAssistantText } from "./checkpoint-6fkAdB3g.js";
2
2
  //#region src/chat/runtime/turn.ts
3
3
  /** Classified Slack turn failure carrying the owning Sentry capture outward. */
4
4
  var ConversationTurnBoundaryError = class extends Error {
@@ -1,5 +1,5 @@
1
- import { gt as createUserTokenStore } from "./agent-runner-9g6TQk9y.js";
2
- import { a as GET, n as syncLocalOAuthCredential, r as GET$1 } from "./credential-sync-BXHIxbtS.js";
1
+ import { vt as createUserTokenStore } from "./agent-runner-Cad1RtWn.js";
2
+ import { a as GET, n as syncLocalOAuthCredential, r as GET$1 } from "./credential-sync-DCB2SwnQ.js";
3
3
  import { createServer } from "node:http";
4
4
  //#region src/chat/local/oauth-callback-server.ts
5
5
  const LOCAL_OAUTH_TIMEOUT_MS = 6e5;
@@ -1,7 +1,7 @@
1
- import { w as toOptionalTrimmed } from "./client-B27ufhzl.js";
2
- import { _ as setSpanAttributes, v as setSpanStatus } from "./logging-iY0ssa2q.js";
3
- import { a as getChatConfig } from "./config-BAhl7-RC.js";
4
- import { n as pluginCatalogRuntime } from "./catalog-runtime-CVZ9TEuK.js";
1
+ import { w as toOptionalTrimmed } from "./client-ihmkx60d.js";
2
+ import { v as setSpanAttributes, y as setSpanStatus } from "./logging-CcTvYQ8A.js";
3
+ import { a as getChatConfig } from "./config-DMg679BW.js";
4
+ import { n as pluginCatalogRuntime } from "./catalog-runtime-pv4grNNb.js";
5
5
  import { createHash } from "node:crypto";
6
6
  import { createMemoryState } from "@chat-adapter/state-memory";
7
7
  import { createRedisState } from "@chat-adapter/state-redis";
@@ -1,4 +1,4 @@
1
- import { I as briefOutcomeStatusSchema, L as conversationBriefSchema, R as parseBriefInput } from "./conversation-1HUoZr2l.js";
1
+ import { I as briefOutcomeStatusSchema, L as conversationBriefSchema, R as parseBriefInput } from "./conversation-Bygi39Xj.js";
2
2
  import { z } from "zod";
3
3
  //#region src/chat/briefs/generate.ts
4
4
  const MAX_INPUT_CHARS = 6e4;
@@ -1,4 +1,4 @@
1
- import { _ as setSpanAttributes, d as logInfo, f as logWarn } from "./logging-iY0ssa2q.js";
1
+ import { f as logInfo, p as logWarn, v as setSpanAttributes } from "./logging-CcTvYQ8A.js";
2
2
  import { i as credentialUserSubjectId } from "./context-Bplcgypl.js";
3
3
  import { n as normalizePluginPackageNames, o as pluginRoots, t as discoverInstalledPluginPackageContent } from "./package-discovery-7a9YqLhE.js";
4
4
  import path from "node:path";
@@ -1246,8 +1246,8 @@ function registerInlineManifests(state, source, config) {
1246
1246
  const migrationOwners = /* @__PURE__ */ new Map();
1247
1247
  for (const definition of source.inlineManifests) {
1248
1248
  const pkg = definition.packageName ? packageContentByName(source.packagedContent, definition.packageName) : void 0;
1249
- const dir = pkg?.dir ?? process.cwd();
1250
- const skillsDir = pkg?.hasSkillsDir ? path.join(pkg.dir, "skills") : void 0;
1249
+ const dir = pkg?.dir ?? definition.dir ?? process.cwd();
1250
+ const skillsDir = pkg?.hasSkillsDir || definition.dir && statSync(path.join(dir, "skills"), { throwIfNoEntry: false })?.isDirectory() ? path.join(dir, "skills") : void 0;
1251
1251
  const migrationsDir = pkg?.hasMigrationsDir && statSync(path.join(pkg.dir, "migrations"), { throwIfNoEntry: false })?.isDirectory() ? path.join(pkg.dir, "migrations") : void 0;
1252
1252
  const manifest = parseInlinePluginManifest(definition.manifest, dir, config);
1253
1253
  if (migrationsDir) {
@@ -1,5 +1,5 @@
1
- import { C as withSpan, _ as setSpanAttributes } from "./logging-iY0ssa2q.js";
2
- import { N as SANDBOX_WORKSPACE_ROOT, k as sleep, r as isStale, t as create, u as isSandboxUnavailableError, v as getVercelSandboxCredentials, w as getStateAdapter, x as runNonInteractiveCommand } from "./profile-6KWhg_-U.js";
1
+ import { v as setSpanAttributes, w as withSpan } from "./logging-CcTvYQ8A.js";
2
+ import { N as SANDBOX_WORKSPACE_ROOT, k as sleep, r as isStale, t as create, u as isSandboxUnavailableError, v as getVercelSandboxCredentials, w as getStateAdapter, x as runNonInteractiveCommand } from "./profile-CV97YuiL.js";
3
3
  import { z } from "zod";
4
4
  import { FileSystem, Sandbox } from "@vercel/sandbox";
5
5
  //#region src/chat/sandbox/resources.ts
@@ -1,13 +1,13 @@
1
- import { S as withLogContext, u as logException, y as setTags } from "./logging-iY0ssa2q.js";
1
+ import { C as withLogContext, b as setTags, d as logException } from "./logging-CcTvYQ8A.js";
2
2
  import { t as credentialContextForActor } from "./context-Bplcgypl.js";
3
- import { Kt as getConversationStore, Wt as getConversationEventStore } from "./agent-hooks-DNLBwmsh.js";
4
- import { M as messageCardText } from "./conversation-1HUoZr2l.js";
5
- import { A as commitAcceptedReply, B as recordAuthorizationCompleted, J as hydrateConversationMessages, P as loadProjection, Y as persistConversationMessages, at as markConversationMessage, et as buildConversationContext, lt as upsertConversationMessage, ot as normalizeConversationText, r as saveTurnCheckpoint, st as recordDeliveredAssistantMessage, u as persistWithRetry } from "./checkpoint-Ceck_fLO.js";
6
- import { _ as markTurnFailed, r as getAssistantReplyText, t as authorizationId, v as startActiveTurn } from "./oauth-authorization-BIijVS2N.js";
7
- import { n as scheduleSessionCompletedPluginTasks, t as processPluginTask } from "./task-runner-fntmnqzx.js";
8
- import { t as ConversationTurnLifecycleService } from "./turn-lifecycle-5_jvLqRz.js";
9
- import { n as getPersistedSandboxState, o as persistThreadStateById, r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-Wfr0GdKS.js";
10
- import { d as loadPendingMessageCards, i as completeAuthPauseTurn, l as buildDeliveredTurnStatePatch, t as finalizeFailedTurnReplyWithEvent } from "./turn-failure-response-DLjSEm-R.js";
3
+ import { Kt as getConversationStore, Wt as getConversationEventStore } from "./agent-hooks-CRuRcOg9.js";
4
+ import { M as messageCardText } from "./conversation-Bygi39Xj.js";
5
+ import { A as commitAcceptedReply, B as recordAuthorizationCompleted, J as hydrateConversationMessages, P as loadProjection, Y as persistConversationMessages, at as markConversationMessage, et as buildConversationContext, lt as upsertConversationMessage, ot as normalizeConversationText, r as saveTurnCheckpoint, st as recordDeliveredAssistantMessage, u as persistWithRetry } from "./checkpoint-6fkAdB3g.js";
6
+ import { _ as markTurnFailed, r as getAssistantReplyText, t as authorizationId, v as startActiveTurn } from "./oauth-authorization-BS4vPJmu.js";
7
+ import { n as scheduleSessionCompletedPluginTasks, t as processPluginTask } from "./task-runner-BMl2aM2v.js";
8
+ import { t as ConversationTurnLifecycleService } from "./turn-lifecycle-DPDHKi2U.js";
9
+ import { n as getPersistedSandboxState, o as persistThreadStateById, r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-CAR6gdAm.js";
10
+ import { d as loadPendingMessageCards, i as completeAuthPauseTurn, l as buildDeliveredTurnStatePatch, t as finalizeFailedTurnReplyWithEvent } from "./turn-failure-response-CZyoUMkD.js";
11
11
  import { randomUUID } from "node:crypto";
12
12
  import { createLocalSource, localDestinationSchema } from "@sentry/junior-plugin-api";
13
13
  //#region src/chat/local/runner.ts
@@ -1,4 +1,4 @@
1
- import { rt as sandboxEgressSignalsResponseSchema } from "./agent-runner-9g6TQk9y.js";
1
+ import { rt as sandboxEgressSignalsResponseSchema } from "./agent-runner-Cad1RtWn.js";
2
2
  //#region src/chat/local/sandbox-egress-signals.ts
3
3
  const SANDBOX_EGRESS_SIGNALS_PATH = "/api/internal/sandbox-egress/signals";
4
4
  const LOCAL_DEV_SERVER_TIMEOUT_MS = 1e3;
@@ -1,5 +1,5 @@
1
1
  import { t as juniorDestinationKindSchema } from "./destinations-BeBiJeEM.js";
2
- import { E as conversationSummaryReportSchema, n as actorIdentitySchema, w as conversationStatsItemSchema } from "./conversation-1HUoZr2l.js";
2
+ import { E as conversationSummaryReportSchema, n as actorIdentitySchema, w as conversationStatsItemSchema } from "./conversation-Bygi39Xj.js";
3
3
  import { i as fillUtcHours, r as fillUtcDays, s as sumUtcHoursIntoSixHours } from "./reporting-window-DbUqng0P.js";
4
4
  import { z } from "zod";
5
5
  import { codeChangeStateSchema, taskOutcomeSchema } from "@sentry/junior-plugin-api";
@@ -1,5 +1,5 @@
1
- import { f as logWarn } from "./logging-iY0ssa2q.js";
2
- import { n as botConfig } from "./config-BAhl7-RC.js";
1
+ import { p as logWarn } from "./logging-CcTvYQ8A.js";
2
+ import { n as botConfig } from "./config-DMg679BW.js";
3
3
  const TITLE_PROMPTS = {
4
4
  conversation: [
5
5
  "Generate a concise 5-8 word conversation title from the first user message below.",
@@ -25,10 +25,12 @@ function fallbackShortTitle(sourceText, fallback = "Untitled") {
25
25
  }
26
26
  /** Generate a short title with the fast model, or return undefined on failure. */
27
27
  async function generateShortTitle(args) {
28
+ args.signal?.throwIfAborted();
28
29
  const sourceText = args.sourceText.trim();
29
30
  if (!sourceText) return void 0;
30
31
  try {
31
- return normalizeShortTitle((await args.completeText({
32
+ const result = await args.completeText({
33
+ signal: args.signal,
32
34
  modelId: botConfig.fastModelId,
33
35
  temperature: 0,
34
36
  promptName: `junior.${args.kind}_title`,
@@ -42,8 +44,11 @@ async function generateShortTitle(args) {
42
44
  timestamp: Date.now()
43
45
  }],
44
46
  metadata: { modelId: botConfig.fastModelId }
45
- })).text) || void 0;
47
+ });
48
+ args.signal?.throwIfAborted();
49
+ return normalizeShortTitle(result.text) || void 0;
46
50
  } catch (error) {
51
+ args.signal?.throwIfAborted();
47
52
  logWarn(`${args.kind}.title.generation.failed`, { "exception.message": error instanceof Error ? error.message : String(error) });
48
53
  return;
49
54
  }
@@ -58,7 +63,8 @@ async function resolveTaskTitle(args) {
58
63
  return generateShortTitle({
59
64
  completeText: args.completeText,
60
65
  kind: "task",
61
- sourceText: args.instruction
66
+ sourceText: args.instruction,
67
+ signal: args.signal
62
68
  });
63
69
  }
64
70
  //#endregion
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.js";
2
- import { f as logWarn } from "./logging-iY0ssa2q.js";
2
+ import { p as logWarn } from "./logging-CcTvYQ8A.js";
3
3
  import { s as skillRoots } from "./package-discovery-7a9YqLhE.js";
4
- import { n as pluginCatalogRuntime } from "./catalog-runtime-CVZ9TEuK.js";
4
+ import { n as pluginCatalogRuntime } from "./catalog-runtime-pv4grNNb.js";
5
5
  import path from "node:path";
6
6
  import { z } from "zod";
7
7
  import fs from "node:fs/promises";
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.js";
2
- import { bt as actorFromRun, xt as toolInvocationDestination } from "./agent-runner-9g6TQk9y.js";
3
- import { n as createAndEnqueueAgentInvocation } from "./work-4Nhz9mVv.js";
2
+ import { Ct as toolInvocationDestination, St as actorFromRun } from "./agent-runner-Cad1RtWn.js";
3
+ import { n as createAndEnqueueAgentInvocation } from "./work-Bm90pR9P.js";
4
4
  //#region src/chat/agent-invocations/spawn.ts
5
5
  var spawn_exports = /* @__PURE__ */ __exportAll({ bindSpawnAgent: () => bindSpawnAgent });
6
6
  /** Bind a Run's Actor and credentials to new Agent invocations. */
@@ -1,11 +1,11 @@
1
- import { F as isRecord$1, I as toOptionalNumber, L as toOptionalString } from "./logging-iY0ssa2q.js";
2
- import { a as getChatConfig } from "./config-BAhl7-RC.js";
1
+ import { I as isRecord$1, L as toOptionalNumber, R as toOptionalString } from "./logging-CcTvYQ8A.js";
2
+ import { a as getChatConfig } from "./config-DMg679BW.js";
3
3
  import { _ as parseSlackMessageTs, d as parseStoredSlackActor, h as parseSlackTeamId, p as parseSlackChannelId } from "./context-Bplcgypl.js";
4
- import { Ft as saveObjectAnnotations, J as withSlackRetries, Kt as getConversationStore, U as getSlackClient, fn as parseDestination, ht as getDashboardTaskLink, mn as sameDestination, pt as JUNIOR_THREAD_STATE_TTL_MS, qt as getDb, u as getPlugins } from "./agent-hooks-DNLBwmsh.js";
4
+ import { Ft as saveObjectAnnotations, J as withSlackRetries, Kt as getConversationStore, U as getSlackClient, fn as parseDestination, ht as getDashboardTaskLink, mn as sameDestination, pt as JUNIOR_THREAD_STATE_TTL_MS, qt as getDb, u as getPlugins } from "./agent-hooks-CRuRcOg9.js";
5
5
  import { n as juniorDestinations } from "./destinations-BeBiJeEM.js";
6
- import { E as juniorConversations, a as juniorSchedulerRuns, c as juniorStats, l as juniorEventAutomations, o as juniorSchedulerTasks, w as juniorAttachments } from "./executor-BG2Armby.js";
7
- import { t as fallbackShortTitle } from "./short-title-xEkZwkcV.js";
8
- import { C as getDefaultRedisStateAdapterFor, w as getStateAdapter } from "./profile-6KWhg_-U.js";
6
+ import { E as juniorConversations, a as juniorSchedulerRuns, c as juniorStats, l as juniorEventAutomations, o as juniorSchedulerTasks, w as juniorAttachments } from "./executor-B9R4cHte.js";
7
+ import { t as fallbackShortTitle } from "./short-title-3wYH3ipl.js";
8
+ import { C as getDefaultRedisStateAdapterFor, w as getStateAdapter } from "./profile-CV97YuiL.js";
9
9
  import "./vercel-queue-DIkVcfK4.js";
10
10
  import { z } from "zod";
11
11
  import { createHash, randomUUID } from "node:crypto";
@@ -1,6 +1,6 @@
1
- import { f as logWarn } from "./logging-iY0ssa2q.js";
1
+ import { p as logWarn } from "./logging-CcTvYQ8A.js";
2
2
  import { a as signQueueMessage, i as QUEUE_SIGNATURE_MAX_AGE_MS, o as verifyQueueMessage, s as createVercelQueueClient } from "./vercel-queue-DIkVcfK4.js";
3
- import { o as runWithTurnRequestDeadline } from "./job-queue-D4oAVrL9.js";
3
+ import { o as runWithTurnRequestDeadline } from "./job-queue-D2SiTrnt.js";
4
4
  import { z } from "zod";
5
5
  import { createHash } from "node:crypto";
6
6
  import { handleCallback, registerDevConsumer } from "@vercel/queue";
@@ -110,7 +110,7 @@ function pluginTaskCallback() {
110
110
  maxDeliveries: PLUGIN_TASK_MAX_DELIVERIES,
111
111
  onRejected: logPluginTaskQueueMessageRejected,
112
112
  run: async (message) => {
113
- const { processPluginTask } = await import("./task-runner-fntmnqzx.js").then((n) => n.r);
113
+ const { processPluginTask } = await import("./task-runner-BMl2aM2v.js").then((n) => n.r);
114
114
  await processPluginTask(message);
115
115
  },
116
116
  topic: PLUGIN_TASK_QUEUE_TOPIC,
@@ -1,13 +1,13 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.js";
2
2
  import { _ as parseSlackMessageTs, r as credentialSubjectSchema } from "./context-Bplcgypl.js";
3
- import { At as createPluginConversationEvents, Kt as getConversationStore, Q as readActorIdentity, _t as createPluginState, bt as createPluginLogger, p as coreTaskRegistrations, pt as JUNIOR_THREAD_STATE_TTL_MS, qt as getDb, u as getPlugins, vt as createPluginEmbedder, yt as createPluginModel } from "./agent-hooks-DNLBwmsh.js";
4
- import { X as sameActorIdentity } from "./conversation-1HUoZr2l.js";
5
- import { C as isToolResultError, D as stripRuntimeTurnContext, J as hydrateConversationMessages, T as normalizeToolNameFromResult, b as instructionTextForProjection, g as getPiMessageRole, s as getTurnRecord, w as isToolResultMessage } from "./checkpoint-Ceck_fLO.js";
6
- import { w as getStateAdapter } from "./profile-6KWhg_-U.js";
7
- import { u as recordAutomationExecution } from "./execution-stats-DikPOxJ1.js";
8
- import { r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-Wfr0GdKS.js";
9
- import { t as resolveConversationRouting } from "./turn-session-routing-CQaysLoe.js";
10
- import { i as pluginTaskParamsSchema, o as sendVercelPluginTask, r as pluginTaskId } from "./task-queue-SL4uLfBB.js";
3
+ import { At as createPluginConversationEvents, Kt as getConversationStore, Q as readActorIdentity, _t as createPluginState, bt as createPluginLogger, p as coreTaskRegistrations, pt as JUNIOR_THREAD_STATE_TTL_MS, qt as getDb, u as getPlugins, vt as createPluginEmbedder, yt as createPluginModel } from "./agent-hooks-CRuRcOg9.js";
4
+ import { X as sameActorIdentity } from "./conversation-Bygi39Xj.js";
5
+ import { C as isToolResultError, D as stripRuntimeTurnContext, J as hydrateConversationMessages, T as normalizeToolNameFromResult, b as instructionTextForProjection, g as getPiMessageRole, s as getTurnRecord, w as isToolResultMessage } from "./checkpoint-6fkAdB3g.js";
6
+ import { w as getStateAdapter } from "./profile-CV97YuiL.js";
7
+ import { u as recordAutomationExecution } from "./execution-stats-CR9CYpyj.js";
8
+ import { r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-CAR6gdAm.js";
9
+ import { t as resolveConversationRouting } from "./turn-session-routing-Jkmmxpp-.js";
10
+ import { i as pluginTaskParamsSchema, o as sendVercelPluginTask, r as pluginTaskId } from "./task-queue-D3PLY59C.js";
11
11
  import { z } from "zod";
12
12
  import { createHash } from "node:crypto";
13
13
  import { destinationSchema, destinationVisibilitySchema, isSlackDestination, pluginRunContextSchema, replyAttributionSchema, sourceSchema, taskOutcomeSchema } from "@sentry/junior-plugin-api";
@@ -1,9 +1,9 @@
1
- import { F as isRecord, I as toOptionalNumber, L as toOptionalString } from "./logging-iY0ssa2q.js";
2
- import { pt as JUNIOR_THREAD_STATE_TTL_MS, qt as getDb } from "./agent-hooks-DNLBwmsh.js";
1
+ import { I as isRecord, L as toOptionalNumber, R as toOptionalString } from "./logging-CcTvYQ8A.js";
2
+ import { pt as JUNIOR_THREAD_STATE_TTL_MS, qt as getDb } from "./agent-hooks-CRuRcOg9.js";
3
3
  import { n as juniorDestinations } from "./destinations-BeBiJeEM.js";
4
- import { u as juniorLocationConfigurations } from "./executor-BG2Armby.js";
5
- import { Y as persistConversationMessages } from "./checkpoint-Ceck_fLO.js";
6
- import { w as getStateAdapter } from "./profile-6KWhg_-U.js";
4
+ import { u as juniorLocationConfigurations } from "./executor-B9R4cHte.js";
5
+ import { Y as persistConversationMessages } from "./checkpoint-6fkAdB3g.js";
6
+ import { w as getStateAdapter } from "./profile-CV97YuiL.js";
7
7
  import { z } from "zod";
8
8
  import { randomUUID } from "node:crypto";
9
9
  import { and, eq, sql } from "drizzle-orm";
@@ -1,13 +1,13 @@
1
- import { y as clearPendingAuth } from "./agent-runner-9g6TQk9y.js";
2
- import { _ as findProviderError, h as ProviderError, v as getProviderErrorAttributes, y as getProviderErrorUserMessage } from "./client-B27ufhzl.js";
3
- import { F as isRecord, t as buildTurnFailureResponse } from "./logging-iY0ssa2q.js";
1
+ import { y as clearPendingAuth } from "./agent-runner-Cad1RtWn.js";
2
+ import { _ as findProviderError, h as ProviderError, v as getProviderErrorAttributes, y as getProviderErrorUserMessage } from "./client-ihmkx60d.js";
3
+ import { I as isRecord, t as buildTurnFailureResponse } from "./logging-CcTvYQ8A.js";
4
4
  import { _ as parseSlackMessageTs } from "./context-Bplcgypl.js";
5
- import { Wt as getConversationEventStore } from "./agent-hooks-DNLBwmsh.js";
6
- import { A as messageCardKey, N as readMessageCards, j as messageCardRefSchema } from "./conversation-1HUoZr2l.js";
7
- import { J as hydrateConversationMessages, at as markConversationMessage } from "./checkpoint-Ceck_fLO.js";
8
- import { qt as buildDeterministicTurnId } from "./stats-DP9zl3Jg.js";
9
- import { g as markTurnCompleted, h as markTurnClosed } from "./oauth-authorization-BIijVS2N.js";
10
- import { o as persistThreadStateById, r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-Wfr0GdKS.js";
5
+ import { Wt as getConversationEventStore } from "./agent-hooks-CRuRcOg9.js";
6
+ import { A as messageCardKey, N as readMessageCards, j as messageCardRefSchema } from "./conversation-Bygi39Xj.js";
7
+ import { J as hydrateConversationMessages, at as markConversationMessage } from "./checkpoint-6fkAdB3g.js";
8
+ import { qt as buildDeterministicTurnId } from "./stats-DawHjcTw.js";
9
+ import { g as markTurnCompleted, h as markTurnClosed } from "./oauth-authorization-BS4vPJmu.js";
10
+ import { o as persistThreadStateById, r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-CAR6gdAm.js";
11
11
  //#region src/chat/conversations/pending-cards.ts
12
12
  /** Read undelivered card snapshots across resume and history replacement. */
13
13
  async function loadPendingMessageCards(conversationId) {
@@ -1,4 +1,4 @@
1
- import { Wt as getConversationEventStore } from "./agent-hooks-DNLBwmsh.js";
1
+ import { Wt as getConversationEventStore } from "./agent-hooks-CRuRcOg9.js";
2
2
  //#region 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("./agent-hooks-DNLBwmsh.js").then((n) => n.Ut)).getConversationStore();
37
+ const conversationStore = args.conversationStore ?? (await import("./agent-hooks-CRuRcOg9.js").then((n) => n.Ut)).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-B4FMCO8f.js";
2
- import { n as pluginCatalogRuntime } from "./catalog-runtime-CVZ9TEuK.js";
2
+ import { n as pluginCatalogRuntime } from "./catalog-runtime-pv4grNNb.js";
3
3
  import { isDeepStrictEqual } from "node:util";
4
4
  //#region src/chat/plugins/validation.ts
5
5
  var validation_exports = /* @__PURE__ */ __exportAll({
@@ -1,5 +1,5 @@
1
1
  //#region package.json
2
- var version = "0.224.0";
2
+ var version = "0.225.0";
3
3
  //#endregion
4
4
  //#region src/version.ts
5
5
  /** Installed Junior package version, or `unknown` when package metadata is unavailable. */
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- import { t as JUNIOR_VERSION } from "./version-C6lA-h_o.js";
1
+ import { t as JUNIOR_VERSION } from "./version-DYcuOFQb.js";
2
2
  export { JUNIOR_VERSION };
@@ -1,4 +1,4 @@
1
- import { w as getStateAdapter } from "./profile-6KWhg_-U.js";
1
+ import { w as getStateAdapter } from "./profile-CV97YuiL.js";
2
2
  import { randomUUID } from "node:crypto";
3
3
  //#region src/chat/conversations/web-authorization.ts
4
4
  const WEB_AUTHORIZATION_PREFIX = "junior:web_authorization:v1";
@@ -1,13 +1,13 @@
1
- import { f as logWarn } from "./logging-iY0ssa2q.js";
2
- import { s as getSlackBotToken } from "./config-BAhl7-RC.js";
1
+ import { p as logWarn } from "./logging-CcTvYQ8A.js";
2
+ import { s as getSlackBotToken } from "./config-DMg679BW.js";
3
3
  import "./context-Bplcgypl.js";
4
- import { K as normalizeSlackConversationId, Kt as getConversationStore, qt as getDb } from "./agent-hooks-DNLBwmsh.js";
4
+ import { K as normalizeSlackConversationId, Kt as getConversationStore, qt as getDb } from "./agent-hooks-CRuRcOg9.js";
5
5
  import { n as juniorDestinations } from "./destinations-BeBiJeEM.js";
6
- import { D as juniorIdentities, O as juniorUsers, o as juniorSchedulerTasks } from "./executor-BG2Armby.js";
7
- import { t as fallbackShortTitle } from "./short-title-xEkZwkcV.js";
8
- import { A as eventAutomationTriggerAvailable, F as effectiveTaskOutcomes, G as listDeletedEventAutomationsCreatedBy, H as eventAutomationBelongsToUser, J as listPublicEventAutomationsForTeams, K as listEventAutomationsCreatedBy, V as deleteEventAutomation, W as getEventAutomation, X as getEventCatalog, _ as parseScheduledAutomationRow, c as parseSlackThreadId, ft as appendAndEnqueueExclusiveInboundMessage, m as listPublicScheduledAutomationsForTeams, p as isListedScheduledAutomation, pt as appendAndEnqueueInboundMessage, qt as buildDeterministicTurnId, v as readScheduledAutomation, y as saveScheduledAutomation } from "./stats-DP9zl3Jg.js";
6
+ import { D as juniorIdentities, O as juniorUsers, o as juniorSchedulerTasks } from "./executor-B9R4cHte.js";
7
+ import { t as fallbackShortTitle } from "./short-title-3wYH3ipl.js";
8
+ import { A as eventAutomationTriggerAvailable, F as effectiveTaskOutcomes, G as listDeletedEventAutomationsCreatedBy, H as eventAutomationBelongsToUser, J as listPublicEventAutomationsForTeams, K as listEventAutomationsCreatedBy, V as deleteEventAutomation, W as getEventAutomation, X as getEventCatalog, _ as parseScheduledAutomationRow, c as parseSlackThreadId, ft as appendAndEnqueueExclusiveInboundMessage, m as listPublicScheduledAutomationsForTeams, p as isListedScheduledAutomation, pt as appendAndEnqueueInboundMessage, qt as buildDeterministicTurnId, v as readScheduledAutomation, y as saveScheduledAutomation } from "./stats-DawHjcTw.js";
9
9
  import { p as healthReportSchema, s as sumUtcHoursIntoSixHours } from "./reporting-window-DbUqng0P.js";
10
- import { a as readAutomationExecutionStatusDays, c as readAutomationExecutions, i as readAutomationExecutionHours, l as readAutomationRuns, n as readAutomationExecutionByConversationId, o as readAutomationExecutionStatusHours, r as readAutomationExecutionDays, s as readAutomationExecutionSummaries, t as emptyAutomationRunWindows } from "./execution-stats-DikPOxJ1.js";
10
+ import { a as readAutomationExecutionStatusDays, c as readAutomationExecutions, i as readAutomationExecutionHours, l as readAutomationRuns, n as readAutomationExecutionByConversationId, o as readAutomationExecutionStatusHours, r as readAutomationExecutionDays, s as readAutomationExecutionSummaries, t as emptyAutomationRunWindows } from "./execution-stats-CR9CYpyj.js";
11
11
  import { z } from "zod";
12
12
  import { createHash } from "node:crypto";
13
13
  import { and, desc, eq, inArray, lt, notInArray, or, sql } from "drizzle-orm";
@@ -1,12 +1,12 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.js";
2
- import { B as AgentInvocationLimitError, I as agentBindingSchema, L as agentInvocationSchema, R as createAgentInvocationSchema, St as AuthorizationFlowDisabledError, n as runAgentWithTimeout, v as PluginCredentialFailureError, z as AgentInvocationBusyError } from "./agent-runner-9g6TQk9y.js";
3
- import { Jt as getSqlExecutor, Kt as getConversationStore, Wt as getConversationEventStore } from "./agent-hooks-DNLBwmsh.js";
4
- import { f as juniorAgentBindings, p as juniorAgentInvocations } from "./executor-BG2Armby.js";
5
- import { I as openConversationProjection, _ as getTerminalAssistantMessages, o as failTurnRecord, r as saveTurnCheckpoint, s as getTurnRecord } from "./checkpoint-Ceck_fLO.js";
6
- import { pt as appendAndEnqueueInboundMessage } from "./stats-DP9zl3Jg.js";
7
- import { d as getConversationTurnBoundaryError, l as TurnInputCommitLostError, p as isTurnInputCommitLostError, r as getAssistantReplyText } from "./oauth-authorization-BIijVS2N.js";
8
- import { t as ConversationTurnLifecycleService } from "./turn-lifecycle-5_jvLqRz.js";
9
- import { n as getPersistedSandboxState, o as persistThreadStateById, r as getPersistedThreadState } from "./thread-state-Wfr0GdKS.js";
2
+ import { B as AgentInvocationLimitError, I as agentBindingSchema, L as agentInvocationSchema, R as createAgentInvocationSchema, n as runAgentWithTimeout, v as PluginCredentialFailureError, wt as AuthorizationFlowDisabledError, z as AgentInvocationBusyError } from "./agent-runner-Cad1RtWn.js";
3
+ import { Jt as getSqlExecutor, Kt as getConversationStore, Wt as getConversationEventStore } from "./agent-hooks-CRuRcOg9.js";
4
+ import { f as juniorAgentBindings, p as juniorAgentInvocations } from "./executor-B9R4cHte.js";
5
+ import { I as openConversationProjection, _ as getTerminalAssistantMessages, o as failTurnRecord, r as saveTurnCheckpoint, s as getTurnRecord } from "./checkpoint-6fkAdB3g.js";
6
+ import { pt as appendAndEnqueueInboundMessage } from "./stats-DawHjcTw.js";
7
+ import { d as getConversationTurnBoundaryError, l as TurnInputCommitLostError, p as isTurnInputCommitLostError, r as getAssistantReplyText } from "./oauth-authorization-BS4vPJmu.js";
8
+ import { t as ConversationTurnLifecycleService } from "./turn-lifecycle-DPDHKi2U.js";
9
+ import { n as getPersistedSandboxState, o as persistThreadStateById, r as getPersistedThreadState } from "./thread-state-CAR6gdAm.js";
10
10
  import { z } from "zod";
11
11
  import { createHash } from "node:crypto";
12
12
  import { and, asc, count, eq, inArray } from "drizzle-orm";
@@ -1,10 +1,10 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.js";
2
- import { b as isProviderRetryError } from "./client-B27ufhzl.js";
3
- import { S as withLogContext, d as logInfo, f as logWarn, u as logException } from "./logging-iY0ssa2q.js";
4
- import { a as getChatConfig } from "./config-BAhl7-RC.js";
5
- import { At as recordConversationRetry, Ct as drainConversationMailbox, Et as getConversationWorkState, Ft as startConversationWork, Ht as isInvalidConversationRecordError, Nt as requestAnotherSlice, St as deadLetterAttempt, Vt as isFinalAttempt, _t as clearConsumedConversationWake, bt as completeConversationWork, dt as ackMessages, gt as checkInConversationWork, jt as releaseConversationWork, kt as recordAttemptFailure, mt as beginConversationResume, wt as ensureConversationWake, xt as countPendingConversationMessages, yt as completeConversationStop, zt as hasConversationStop } from "./stats-DP9zl3Jg.js";
2
+ import { b as isProviderRetryError } from "./client-ihmkx60d.js";
3
+ import { C as withLogContext, d as logException, f as logInfo, p as logWarn } from "./logging-CcTvYQ8A.js";
4
+ import { a as getChatConfig } from "./config-DMg679BW.js";
5
+ import { At as recordConversationRetry, Ct as drainConversationMailbox, Et as getConversationWorkState, Ft as startConversationWork, Ht as isInvalidConversationRecordError, Nt as requestAnotherSlice, St as deadLetterAttempt, Vt as isFinalAttempt, _t as clearConsumedConversationWake, bt as completeConversationWork, dt as ackMessages, gt as checkInConversationWork, jt as releaseConversationWork, kt as recordAttemptFailure, mt as beginConversationResume, wt as ensureConversationWake, xt as countPendingConversationMessages, yt as completeConversationStop, zt as hasConversationStop } from "./stats-DawHjcTw.js";
6
6
  import { c as ConversationQueueMessageRejectedError } from "./vercel-queue-DIkVcfK4.js";
7
- import { a as getTurnRequestDeadline } from "./job-queue-D4oAVrL9.js";
7
+ import { a as getTurnRequestDeadline } from "./job-queue-D2SiTrnt.js";
8
8
  //#region src/chat/task-execution/worker.ts
9
9
  var worker_exports = /* @__PURE__ */ __exportAll({
10
10
  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.224.0",
3
+ "version": "0.225.0",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -85,7 +85,7 @@
85
85
  "pg": "^8.16.3",
86
86
  "yaml": "^2.9.0",
87
87
  "zod": "^4.5.4",
88
- "@sentry/junior-plugin-api": "0.224.0"
88
+ "@sentry/junior-plugin-api": "0.225.0"
89
89
  },
90
90
  "devDependencies": {
91
91
  "@emnapi/core": "^1.10.0",
@@ -104,9 +104,9 @@
104
104
  "typescript": "^6.0.3",
105
105
  "vercel": "^54.4.0",
106
106
  "vitest": "^4.1.7",
107
- "@sentry/junior-memory": "0.224.0",
107
+ "@sentry/junior-github": "0.225.0",
108
108
  "@sentry/junior-testing": "0.0.0",
109
- "@sentry/junior-github": "0.224.0"
109
+ "@sentry/junior-memory": "0.225.0"
110
110
  },
111
111
  "scripts": {
112
112
  "build": "tsdown",