@sentry/junior 0.10.2 → 0.10.3

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.
@@ -4,7 +4,7 @@ import {
4
4
  getPluginSkillRoots,
5
5
  logInfo,
6
6
  logWarn
7
- } from "./chunk-LSXXIMX3.js";
7
+ } from "./chunk-AVIUX5XL.js";
8
8
  import {
9
9
  skillRoots
10
10
  } from "./chunk-KCLEEKYX.js";
@@ -7,7 +7,7 @@ import {
7
7
  logCapabilityCatalogLoadedOnce,
8
8
  parseSkillInvocation,
9
9
  stripFrontmatter
10
- } from "./chunk-GTJP3RVX.js";
10
+ } from "./chunk-573MJIST.js";
11
11
  import {
12
12
  SANDBOX_SKILLS_ROOT,
13
13
  SANDBOX_WORKSPACE_ROOT,
@@ -27,7 +27,7 @@ import {
27
27
  runNonInteractiveCommand,
28
28
  sandboxSkillDir,
29
29
  toOptionalTrimmed
30
- } from "./chunk-FESDWP3I.js";
30
+ } from "./chunk-FNYLIUOK.js";
31
31
  import {
32
32
  CredentialUnavailableError,
33
33
  createPluginBroker,
@@ -51,7 +51,7 @@ import {
51
51
  toOptionalString,
52
52
  withContext,
53
53
  withSpan
54
- } from "./chunk-LSXXIMX3.js";
54
+ } from "./chunk-AVIUX5XL.js";
55
55
  import {
56
56
  aboutPathCandidates,
57
57
  homeDir,
@@ -10721,6 +10721,19 @@ function createNormalizingStream(inner, normalize) {
10721
10721
  }
10722
10722
 
10723
10723
  // src/chat/runtime/reply-executor.ts
10724
+ function getExecutionFailureReason(reply) {
10725
+ const errorMessage = reply.diagnostics.errorMessage?.trim();
10726
+ if (errorMessage) {
10727
+ return errorMessage;
10728
+ }
10729
+ if (reply.diagnostics.toolErrorCount > 0) {
10730
+ return `${reply.diagnostics.toolErrorCount} tool result error(s)`;
10731
+ }
10732
+ if (reply.diagnostics.assistantMessageCount > 0) {
10733
+ return "assistant returned no text";
10734
+ }
10735
+ return "empty assistant turn";
10736
+ }
10724
10737
  function createReplyToThread(deps) {
10725
10738
  return async function replyToThread(thread, message, options = {}) {
10726
10739
  if (message.author.isMe) {
@@ -10960,10 +10973,15 @@ function createReplyToThread(deps) {
10960
10973
  "Agent turn failed with provider error"
10961
10974
  );
10962
10975
  } else if (reply.diagnostics.outcome !== "success") {
10963
- logWarn(
10964
- "agent_turn_diagnostics",
10976
+ const failureReason = getExecutionFailureReason(reply);
10977
+ logException(
10978
+ new Error(`Agent turn execution failure: ${failureReason}`),
10979
+ "agent_turn_execution_failure",
10965
10980
  diagnosticsContext,
10966
- diagnosticsAttributes,
10981
+ {
10982
+ ...diagnosticsAttributes,
10983
+ "app.ai.execution_failure_reason": failureReason
10984
+ },
10967
10985
  "Agent turn completed with execution failure"
10968
10986
  );
10969
10987
  }
@@ -96,13 +96,13 @@ function getSentryEnvironment() {
96
96
  return (process.env.SENTRY_ENVIRONMENT ?? process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT ?? process.env.VERCEL_ENV ?? process.env.NODE_ENV ?? "").trim().toLowerCase();
97
97
  }
98
98
  function shouldSuppressInfoLog(level) {
99
- return level === "info";
99
+ return getSentryEnvironment() === "production" && level === "info";
100
100
  }
101
101
  function shouldEmitConsole(level) {
102
102
  if (process.env.NODE_ENV === "test") {
103
103
  return level === "error";
104
104
  }
105
- return getSentryEnvironment() !== "production";
105
+ return true;
106
106
  }
107
107
  function findNextBlankLineBoundary(input, start) {
108
108
  const lfBoundary = input.indexOf("\n\n", start);
@@ -2,7 +2,7 @@ import {
2
2
  getPluginRuntimeDependencies,
3
3
  getPluginRuntimePostinstall,
4
4
  withSpan
5
- } from "./chunk-LSXXIMX3.js";
5
+ } from "./chunk-AVIUX5XL.js";
6
6
 
7
7
  // src/chat/optional-string.ts
8
8
  function toOptionalTrimmed(value) {
package/dist/cli/check.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  parseSkillFile
3
- } from "../chunk-GTJP3RVX.js";
3
+ } from "../chunk-573MJIST.js";
4
4
  import {
5
5
  parsePluginManifest
6
- } from "../chunk-LSXXIMX3.js";
6
+ } from "../chunk-AVIUX5XL.js";
7
7
  import "../chunk-KCLEEKYX.js";
8
8
 
9
9
  // src/cli/check.ts
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  disconnectStateAdapter,
3
3
  resolveRuntimeDependencySnapshot
4
- } from "../chunk-FESDWP3I.js";
4
+ } from "../chunk-FNYLIUOK.js";
5
5
  import {
6
6
  getPluginProviders,
7
7
  getPluginRuntimeDependencies,
8
8
  getPluginRuntimePostinstall
9
- } from "../chunk-LSXXIMX3.js";
9
+ } from "../chunk-AVIUX5XL.js";
10
10
  import "../chunk-KCLEEKYX.js";
11
11
 
12
12
  // src/cli/snapshot-warmup.ts
@@ -28,15 +28,15 @@ import {
28
28
  updateConversationStats,
29
29
  uploadFilesToThread,
30
30
  upsertConversationMessage
31
- } from "../chunk-BID5VOWA.js";
31
+ } from "../chunk-ASAQ64YN.js";
32
32
  import {
33
33
  GET
34
34
  } from "../chunk-4RBEYCOG.js";
35
- import "../chunk-GTJP3RVX.js";
35
+ import "../chunk-573MJIST.js";
36
36
  import {
37
37
  botConfig,
38
38
  getStateAdapter
39
- } from "../chunk-FESDWP3I.js";
39
+ } from "../chunk-FNYLIUOK.js";
40
40
  import {
41
41
  buildOAuthTokenRequest,
42
42
  getPluginOAuthConfig,
@@ -44,7 +44,7 @@ import {
44
44
  logInfo,
45
45
  logWarn,
46
46
  parseOAuthTokenResponse
47
- } from "../chunk-LSXXIMX3.js";
47
+ } from "../chunk-AVIUX5XL.js";
48
48
  import "../chunk-KCLEEKYX.js";
49
49
 
50
50
  // src/handlers/mcp-oauth-callback.ts
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  POST,
3
3
  maxDuration
4
- } from "../chunk-BID5VOWA.js";
5
- import "../chunk-GTJP3RVX.js";
6
- import "../chunk-FESDWP3I.js";
7
- import "../chunk-LSXXIMX3.js";
4
+ } from "../chunk-ASAQ64YN.js";
5
+ import "../chunk-573MJIST.js";
6
+ import "../chunk-FNYLIUOK.js";
7
+ import "../chunk-AVIUX5XL.js";
8
8
  import "../chunk-KCLEEKYX.js";
9
9
  export {
10
10
  POST,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentry/junior",
3
- "version": "0.10.2",
3
+ "version": "0.10.3",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"