@sentry/junior 0.10.1 → 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-VWHGDGDH.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-3KBAD3OR.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-LNCWHJH5.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-VWHGDGDH.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
  }
@@ -54,7 +54,7 @@ var ANSI = {
54
54
  gray: "\x1B[90m"
55
55
  };
56
56
  var CONSOLE_PRIORITY_KEYS = [
57
- "app.conversation.id",
57
+ "gen_ai.conversation.id",
58
58
  "app.turn.id",
59
59
  "event.name",
60
60
  "error.message",
@@ -71,7 +71,7 @@ var CONSOLE_PRIORITY_INDEX = new Map(
71
71
  CONSOLE_PRIORITY_KEYS.map((key, index) => [key, index])
72
72
  );
73
73
  var CONSOLE_ALWAYS_HIDDEN_KEYS = /* @__PURE__ */ new Set([
74
- "app.assistant.username",
74
+ "gen_ai.agent.name",
75
75
  "app.platform",
76
76
  "enduser.id",
77
77
  "enduser.pseudo_id",
@@ -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);
@@ -237,7 +237,7 @@ function sanitizeValue(value) {
237
237
  }
238
238
  function contextToAttributes(context) {
239
239
  const attributes = {
240
- "app.conversation.id": context.conversationId,
240
+ "gen_ai.conversation.id": context.conversationId,
241
241
  "app.turn.id": context.turnId,
242
242
  "app.agent.id": context.agentId,
243
243
  "app.platform": context.platform,
@@ -248,7 +248,7 @@ function contextToAttributes(context) {
248
248
  "enduser.id": context.slackUserId,
249
249
  "enduser.pseudo_id": context.slackUserName,
250
250
  "app.run.id": context.runId,
251
- "app.assistant.username": context.assistantUserName,
251
+ "gen_ai.agent.name": context.assistantUserName,
252
252
  "gen_ai.request.model": context.modelId,
253
253
  "app.skill.name": context.skillName,
254
254
  "http.request.method": context.httpMethod,
@@ -368,7 +368,7 @@ function shouldHideConsoleAttribute(level, eventName, key, attributes) {
368
368
  if (key === "app.agent.id" && attributes[key] === attributes["app.turn.id"]) {
369
369
  return true;
370
370
  }
371
- if (key === "messaging.message.conversation_id" && attributes[key] === attributes["app.conversation.id"]) {
371
+ if (key === "messaging.message.conversation_id" && attributes[key] === attributes["gen_ai.conversation.id"]) {
372
372
  return true;
373
373
  }
374
374
  if (key === "app.message.id" && attributes[key] === attributes["messaging.message.id"]) {
@@ -2,7 +2,7 @@ import {
2
2
  getPluginRuntimeDependencies,
3
3
  getPluginRuntimePostinstall,
4
4
  withSpan
5
- } from "./chunk-VWHGDGDH.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-3KBAD3OR.js";
3
+ } from "../chunk-573MJIST.js";
4
4
  import {
5
5
  parsePluginManifest
6
- } from "../chunk-VWHGDGDH.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-LNCWHJH5.js";
4
+ } from "../chunk-FNYLIUOK.js";
5
5
  import {
6
6
  getPluginProviders,
7
7
  getPluginRuntimeDependencies,
8
8
  getPluginRuntimePostinstall
9
- } from "../chunk-VWHGDGDH.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-T66A2F7U.js";
31
+ } from "../chunk-ASAQ64YN.js";
32
32
  import {
33
33
  GET
34
34
  } from "../chunk-4RBEYCOG.js";
35
- import "../chunk-3KBAD3OR.js";
35
+ import "../chunk-573MJIST.js";
36
36
  import {
37
37
  botConfig,
38
38
  getStateAdapter
39
- } from "../chunk-LNCWHJH5.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-VWHGDGDH.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-T66A2F7U.js";
5
- import "../chunk-3KBAD3OR.js";
6
- import "../chunk-LNCWHJH5.js";
7
- import "../chunk-VWHGDGDH.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.1",
3
+ "version": "0.10.3",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"