@sentry/junior 0.202.0 → 0.204.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 (174) hide show
  1. package/dist/agent-CMyTD4DD.js +17509 -0
  2. package/dist/agent-hooks-Bbcp9e33.js +4040 -0
  3. package/dist/agent-runner-DNb1A49M.js +678 -0
  4. package/dist/api/schema.d.ts +2728 -2639
  5. package/dist/api/schema.js +4 -169
  6. package/dist/api.d.ts +23 -17
  7. package/dist/api.js +3881 -5326
  8. package/dist/app-B1TOqBI8.d.ts +246 -0
  9. package/dist/app.d.ts +4 -520
  10. package/dist/app.js +9522 -11875
  11. package/dist/auth-pause-state-DosEalIG.js +168 -0
  12. package/dist/catalog-runtime-BReos-D4.js +7 -0
  13. package/dist/checkpoint-CNrPyRJN.js +2450 -0
  14. package/dist/cli/chat.d.ts +20 -0
  15. package/dist/cli/chat.js +229 -336
  16. package/dist/cli/check.d.ts +8 -0
  17. package/dist/cli/check.js +513 -806
  18. package/dist/cli/env.d.ts +13 -0
  19. package/dist/cli/env.js +63 -12
  20. package/dist/cli/init.d.ts +3 -0
  21. package/dist/cli/init.js +90 -159
  22. package/dist/cli/main.d.ts +6 -0
  23. package/dist/cli/main.js +43 -64
  24. package/dist/cli/plugins.d.ts +13 -0
  25. package/dist/cli/plugins.js +148 -227
  26. package/dist/cli/run.d.ts +16 -0
  27. package/dist/cli/run.js +52 -8
  28. package/dist/cli/snapshot-create.d.ts +4 -0
  29. package/dist/cli/snapshot-create.js +71 -125
  30. package/dist/cli/upgrade.d.ts +15 -0
  31. package/dist/cli/upgrade.js +232 -335
  32. package/dist/config-nGCW1OTG.js +941 -0
  33. package/dist/context-B45_WqVX.js +298 -0
  34. package/dist/conversation-privacy-B4voFRSm.js +182 -0
  35. package/dist/conversation-work-C6y3T5Hx.js +51 -0
  36. package/dist/credential-sync-kXr1hvO1.js +2660 -0
  37. package/dist/db-BeyXKJOI.d.ts +5 -0
  38. package/dist/destinations-BeBiJeEM.js +29 -0
  39. package/dist/execution-stats-DWfSihcH.js +373 -0
  40. package/dist/executor-DcMSlI5c.js +721 -0
  41. package/dist/experimental-CIXf7Uye.js +46 -0
  42. package/dist/history-ClE4toxe.d.ts +32 -0
  43. package/dist/history-CqTuSAdI.js +441 -0
  44. package/dist/instrumentation.d.ts +3 -3
  45. package/dist/instrumentation.js +130 -176
  46. package/dist/job-queue-Drn_LXlM.js +63 -0
  47. package/dist/logging-BzAk1S_s.js +1210 -0
  48. package/dist/model-profile-CZmVoGdX.js +49 -0
  49. package/dist/nitro.d.ts +31 -36
  50. package/dist/nitro.js +275 -456
  51. package/dist/oauth-callback-server-JiftokvA.js +130 -0
  52. package/dist/oauth-relay-CdCnu80W.js +62 -0
  53. package/dist/package-discovery-7a9YqLhE.js +455 -0
  54. package/dist/pending-auth-CWmSdZVg.js +185 -0
  55. package/dist/plugin-module-BKGOXca2.js +81 -0
  56. package/dist/plugins-BI9A1vKA.d.ts +95 -0
  57. package/dist/plugins-egKWjgue.js +99 -0
  58. package/dist/private-trace-result-BLvBjy_e.js +16 -0
  59. package/dist/profile-CrT5nXbw.js +861 -0
  60. package/dist/registry-DH1xUo2N.js +1419 -0
  61. package/dist/reporting-schema-DosTN__Q.js +105 -0
  62. package/dist/resolve-CZHnfxaS.js +546 -0
  63. package/dist/rolldown-runtime-B4FMCO8f.js +28 -0
  64. package/dist/runner-CZV2sC46.js +392 -0
  65. package/dist/sandbox-egress-signals-bHZfmhbd.js +46 -0
  66. package/dist/schema-Rn8-XEaN.js +1140 -0
  67. package/dist/sentry-CD3SdJl-.js +26 -0
  68. package/dist/skills-CIcDQSgM.js +316 -0
  69. package/dist/spawn-DdkUFRmq.js +29 -0
  70. package/dist/stats-DTUbAb88.js +2634 -0
  71. package/dist/store-C5qxF2ac.d.ts +208 -0
  72. package/dist/task-queue-CJIR4RF7.js +136 -0
  73. package/dist/task-runner-D-O3A-Cp.js +639 -0
  74. package/dist/thread-state-CRc9jTJS.js +431 -0
  75. package/dist/turn-execution-BkinIdJF.js +47 -0
  76. package/dist/turn-lifecycle-DQV19VTW.js +54 -0
  77. package/dist/usage-D3EbSO7w.js +296 -0
  78. package/dist/usage-schema-CKaDkH_j.js +20 -0
  79. package/dist/validation-C2CR-OX3.js +40 -0
  80. package/dist/vercel-queue-DIkVcfK4.js +167 -0
  81. package/dist/vercel.d.ts +6 -6
  82. package/dist/vercel.js +14 -6
  83. package/dist/version-CnXZ614E.d.ts +5 -0
  84. package/dist/version-DxcWdoKa.js +8 -0
  85. package/dist/version.d.ts +2 -4
  86. package/dist/version.js +2 -6
  87. package/dist/web-authorization-RMBxAR_t.js +76 -0
  88. package/dist/web-input-3EPfpf55.js +494 -0
  89. package/dist/work-fGofI7Op.js +509 -0
  90. package/dist/worker-CsOLq-mR.js +625 -0
  91. package/package.json +9 -9
  92. package/dist/agent-hooks-UXITLYOK.js +0 -51
  93. package/dist/catalog-runtime-BG3JLLK2.js +0 -14
  94. package/dist/chunk-2LYHWMR4.js +0 -46
  95. package/dist/chunk-2MK3QBGA.js +0 -321
  96. package/dist/chunk-3PGQSKJV.js +0 -692
  97. package/dist/chunk-3UI3WFTX.js +0 -519
  98. package/dist/chunk-3Y47VMHV.js +0 -6
  99. package/dist/chunk-4UO6FK4G.js +0 -64
  100. package/dist/chunk-5NOPO64K.js +0 -198
  101. package/dist/chunk-5PKWYPFT.js +0 -2943
  102. package/dist/chunk-63NKKFJL.js +0 -1228
  103. package/dist/chunk-6AYH6252.js +0 -787
  104. package/dist/chunk-6Y5B5PEX.js +0 -80
  105. package/dist/chunk-7DHZP5KJ.js +0 -333
  106. package/dist/chunk-7H2VZTWN.js +0 -103
  107. package/dist/chunk-7NL7T6VU.js +0 -406
  108. package/dist/chunk-A76OIMYN.js +0 -102
  109. package/dist/chunk-AWMS3SPP.js +0 -58
  110. package/dist/chunk-B3LY5RCL.js +0 -229
  111. package/dist/chunk-BD2KT3OB.js +0 -36
  112. package/dist/chunk-BXCX5QKA.js +0 -2086
  113. package/dist/chunk-C6VVF43U.js +0 -81
  114. package/dist/chunk-CEMMLV5L.js +0 -98
  115. package/dist/chunk-CM5HNV2W.js +0 -131
  116. package/dist/chunk-DA2KGZZI.js +0 -13
  117. package/dist/chunk-DBVY6HLX.js +0 -64
  118. package/dist/chunk-DIB4GX3G.js +0 -8
  119. package/dist/chunk-DKIJ2RP5.js +0 -68
  120. package/dist/chunk-DL2KLKVH.js +0 -931
  121. package/dist/chunk-DWPN6SCH.js +0 -172
  122. package/dist/chunk-ELWOYVOY.js +0 -206
  123. package/dist/chunk-EWT7H65X.js +0 -506
  124. package/dist/chunk-FA6POGLH.js +0 -70
  125. package/dist/chunk-HMREVIO2.js +0 -135
  126. package/dist/chunk-IIWUT4FO.js +0 -820
  127. package/dist/chunk-JAL3CH4G.js +0 -27
  128. package/dist/chunk-JSJQEWBJ.js +0 -3295
  129. package/dist/chunk-KHKKHDLD.js +0 -387
  130. package/dist/chunk-LA6R4A7Q.js +0 -706
  131. package/dist/chunk-LOOU2DUR.js +0 -20428
  132. package/dist/chunk-M6FHWXE3.js +0 -700
  133. package/dist/chunk-M76HMB7M.js +0 -1856
  134. package/dist/chunk-MAGNK5J4.js +0 -1520
  135. package/dist/chunk-MTM5IFCY.js +0 -1190
  136. package/dist/chunk-N7TMSOZH.js +0 -235
  137. package/dist/chunk-NHJU2ZAL.js +0 -56
  138. package/dist/chunk-NSXKRGRT.js +0 -717
  139. package/dist/chunk-OWMPFXJA.js +0 -1764
  140. package/dist/chunk-PDO5BLNM.js +0 -22
  141. package/dist/chunk-PEQXYSSE.js +0 -45
  142. package/dist/chunk-PW4P4JYF.js +0 -1135
  143. package/dist/chunk-QB54UQUS.js +0 -320
  144. package/dist/chunk-QP3OGJXF.js +0 -105
  145. package/dist/chunk-RC745GGZ.js +0 -122
  146. package/dist/chunk-REOIRYPR.js +0 -37
  147. package/dist/chunk-SCOZRLZ4.js +0 -164
  148. package/dist/chunk-TXJSXBV5.js +0 -1433
  149. package/dist/chunk-TXKUKMVO.js +0 -417
  150. package/dist/chunk-U2GPUYAL.js +0 -3656
  151. package/dist/chunk-UIE3R5XU.js +0 -17
  152. package/dist/chunk-UXPG6ZIN.js +0 -84
  153. package/dist/chunk-VFUK3X5B.js +0 -50
  154. package/dist/chunk-WQSHDTTI.js +0 -1163
  155. package/dist/chunk-X6GDDWQH.js +0 -60
  156. package/dist/chunk-Y2CM7HXH.js +0 -111
  157. package/dist/chunk-Y7X25LFY.js +0 -15
  158. package/dist/chunk-YDUR3ZYW.js +0 -10
  159. package/dist/conversation-work-VIOQ5ZF3.js +0 -54
  160. package/dist/db-3L2MCVRI.js +0 -26
  161. package/dist/discovery-DWVDM7UK.js +0 -44
  162. package/dist/experimental-P5FZM4CU.js +0 -12
  163. package/dist/oauth-callback-server-YVV6C6T2.js +0 -243
  164. package/dist/oauth-relay-5XPVRPYB.js +0 -8
  165. package/dist/plugins-YTYJMMJF.js +0 -14
  166. package/dist/runner-LQ7RETDP.js +0 -522
  167. package/dist/sandbox-egress-signals-FIL7EGPR.js +0 -73
  168. package/dist/sentry-MB3NL3IR.js +0 -42
  169. package/dist/skills-XRWYEDCD.js +0 -27
  170. package/dist/spawn-RC6SJUAI.js +0 -42
  171. package/dist/task-runner-7DY7ARYH.js +0 -36
  172. package/dist/validation-7MNQGCJA.js +0 -17
  173. package/dist/work-COALHUCG.js +0 -51
  174. package/dist/worker-6MURZIPD.js +0 -24
@@ -0,0 +1,168 @@
1
+ import { M as getProviderErrorAttributes, N as getProviderErrorUserMessage, j as findProviderError, k as ProviderError } from "./config-nGCW1OTG.js";
2
+ import { t as buildTurnFailureResponse } from "./logging-BzAk1S_s.js";
3
+ import { _ as parseSlackMessageTs } from "./context-B45_WqVX.js";
4
+ import { Q as hydrateConversationMessages, lt as markConversationMessage } from "./checkpoint-CNrPyRJN.js";
5
+ import { Gt as buildDeterministicTurnId } from "./stats-DTUbAb88.js";
6
+ import { b as markTurnCompleted, r as clearPendingAuth, y as markTurnClosed } from "./pending-auth-CWmSdZVg.js";
7
+ import { o as persistThreadStateById, r as getPersistedThreadState, s as coerceThreadConversationState } from "./thread-state-CRc9jTJS.js";
8
+ //#region src/chat/runtime/delivered-turn-state.ts
9
+ /** Build state after destination delivery or intentional no-reply completion. */
10
+ function buildDeliveredTurnStatePatch(args) {
11
+ const conversation = structuredClone(args.conversation);
12
+ clearPendingAuth(conversation, args.sessionId);
13
+ markConversationMessage(conversation, args.userMessageId, {
14
+ replied: true,
15
+ skippedReason: void 0
16
+ });
17
+ markTurnCompleted({
18
+ conversation,
19
+ nowMs: Date.now(),
20
+ sessionId: args.sessionId
21
+ });
22
+ return {
23
+ conversation,
24
+ sandboxRef: args.reply.sandboxRef
25
+ };
26
+ }
27
+ //#endregion
28
+ //#region src/chat/runtime/turn-user-message.ts
29
+ /** Return the user message for a persisted turn/session, if one exists. */
30
+ function getTurnUserMessage(conversation, sessionId) {
31
+ for (let index = conversation.messages.length - 1; index >= 0; index -= 1) {
32
+ const message = conversation.messages[index];
33
+ if (message?.role !== "user") continue;
34
+ if (buildDeterministicTurnId(message.id) === sessionId) return message;
35
+ }
36
+ }
37
+ /** Return the persisted user-message id for a turn/session, if one exists. */
38
+ function getTurnUserMessageId(conversation, sessionId) {
39
+ return getTurnUserMessage(conversation, sessionId)?.id;
40
+ }
41
+ /** Return the Slack timestamp for the user message that a resumed turn acts on. */
42
+ function getTurnUserSlackMessageTs(message) {
43
+ return parseSlackMessageTs(message?.meta?.slackTs);
44
+ }
45
+ /** Rebuild attachment context for a resumed turn from the persisted user message. */
46
+ function getTurnUserReplyAttachmentContext(message) {
47
+ const inboundAttachmentCount = message?.meta?.attachmentCount ?? 0;
48
+ const imageAttachmentCount = message?.meta?.imageAttachmentCount ?? 0;
49
+ const imagesHydrated = message?.meta?.imagesHydrated === true;
50
+ return {
51
+ ...inboundAttachmentCount > 0 ? { inboundAttachmentCount } : void 0,
52
+ ...!imagesHydrated && imageAttachmentCount > 0 ? { omittedImageAttachmentCount: imageAttachmentCount } : void 0
53
+ };
54
+ }
55
+ //#endregion
56
+ //#region src/chat/interruption-marker.ts
57
+ const INTERRUPTED_MARKER = "\n\n[Response interrupted before completion]";
58
+ /** Return the marker added when a visible reply ended mid-execution. */
59
+ function getInterruptionMarker() {
60
+ return INTERRUPTED_MARKER;
61
+ }
62
+ //#endregion
63
+ //#region src/chat/services/turn-failure-response.ts
64
+ /** Require captured turn failures to carry a real Sentry event reference. */
65
+ function requireTurnFailureEventId(eventId, eventName) {
66
+ if (!eventId) throw new Error(`Sentry did not return an event ID for ${eventName}`);
67
+ return eventId;
68
+ }
69
+ function getExecutionFailureReason(reply) {
70
+ const errorMessage = reply.diagnostics.errorMessage?.trim();
71
+ if (errorMessage) return errorMessage;
72
+ if (reply.diagnostics.toolErrorCount > 0) return `${reply.diagnostics.toolErrorCount} tool result error(s)`;
73
+ if (reply.diagnostics.assistantMessageCount > 0) return "assistant returned no text";
74
+ return "empty assistant turn";
75
+ }
76
+ /** Return a fixed reason label for a failed model turn. */
77
+ function getTurnFailureReason(reply) {
78
+ if (reply.diagnostics.outcome === "success") return;
79
+ if (reply.diagnostics.outcome === "provider_error") return findProviderError(reply.diagnostics.providerError)?.kind ?? "unknown";
80
+ if (reply.diagnostics.toolErrorCount > 0) return "tool_errors";
81
+ if (reply.diagnostics.usedPrimaryText && reply.diagnostics.assistantMessageCount > 0) return "suppressed_output";
82
+ return "empty_output";
83
+ }
84
+ function getFailureCapture(reply) {
85
+ if (reply.diagnostics.outcome === "provider_error") {
86
+ const providerError = findProviderError(reply.diagnostics.providerError);
87
+ return {
88
+ eventName: "agent.turn.provider_error",
89
+ error: reply.diagnostics.providerError ?? new Error(reply.diagnostics.errorMessage ?? "Provider error without explicit message"),
90
+ attributes: providerError ? getProviderErrorAttributes(providerError) : {},
91
+ body: "Agent turn failed with provider error"
92
+ };
93
+ }
94
+ const failureReason = getExecutionFailureReason(reply);
95
+ return {
96
+ eventName: "agent.turn.execution.failed",
97
+ error: /* @__PURE__ */ new Error(`Agent turn execution failure: ${failureReason}`),
98
+ attributes: { "app.ai.execution_failure_reason": failureReason },
99
+ body: "Agent turn completed with execution failure"
100
+ };
101
+ }
102
+ /** Keep failed-turn Sentry captures and completion spans on the same keys. */
103
+ function getAgentTurnDiagnosticsAttributes(reply) {
104
+ return {
105
+ "app.ai.outcome": reply.diagnostics.outcome,
106
+ "app.ai.assistant_messages": reply.diagnostics.assistantMessageCount,
107
+ "app.ai.tool_results": reply.diagnostics.toolResultCount,
108
+ "app.ai.tool_error_results": reply.diagnostics.toolErrorCount,
109
+ "app.ai.tool_call_count": reply.diagnostics.toolCalls.length,
110
+ "app.ai.used_primary_text": reply.diagnostics.usedPrimaryText,
111
+ ...reply.diagnostics.reasoningLevel ? { "gen_ai.request.reasoning.level": reply.diagnostics.reasoningLevel } : void 0,
112
+ ...reply.diagnostics.stopReason ? { "gen_ai.response.finish_reasons": [reply.diagnostics.stopReason] } : void 0,
113
+ ...reply.diagnostics.errorMessage && reply.diagnostics.outcome !== "provider_error" ? { "exception.message": reply.diagnostics.errorMessage } : void 0
114
+ };
115
+ }
116
+ /** Enforce one captured failure response and return its structured correlation. */
117
+ function finalizeFailedTurnReplyWithEvent(args) {
118
+ if (args.reply.diagnostics.outcome === "success") return { reply: args.reply };
119
+ const failureReason = getTurnFailureReason(args.reply);
120
+ const capture = getFailureCapture(args.reply);
121
+ const eventId = requireTurnFailureEventId(args.logException(capture.error, capture.eventName, {
122
+ ...getAgentTurnDiagnosticsAttributes(args.reply),
123
+ ...args.attributes,
124
+ ...capture.attributes,
125
+ ...failureReason ? { "app.ai.failure_reason": failureReason } : void 0
126
+ }), capture.eventName);
127
+ const providerPartialText = args.reply.diagnostics.outcome === "provider_error" && args.reply.diagnostics.assistantMessageCount > 0 ? args.reply.text.trim() : "";
128
+ const providerUserMessage = args.reply.diagnostics.providerError instanceof ProviderError ? getProviderErrorUserMessage(args.reply.diagnostics.providerError) : "";
129
+ const failureText = providerUserMessage ? `${providerUserMessage} Reference: \`event_id=${eventId}\`.` : buildTurnFailureResponse(eventId);
130
+ return {
131
+ eventId,
132
+ ...failureReason ? { failureReason } : void 0,
133
+ reply: {
134
+ ...args.reply,
135
+ text: providerPartialText ? `${providerPartialText}${getInterruptionMarker()}` : failureText
136
+ }
137
+ };
138
+ }
139
+ //#endregion
140
+ //#region src/chat/runtime/auth-pause-state.ts
141
+ /** Mark an auth-paused turn complete after private authorization link delivery. */
142
+ function completeAuthPauseTurn(args) {
143
+ markConversationMessage(args.conversation, getTurnUserMessageId(args.conversation, args.sessionId), {
144
+ replied: true,
145
+ skippedReason: void 0
146
+ });
147
+ markTurnClosed({
148
+ conversation: args.conversation,
149
+ nowMs: Date.now(),
150
+ sessionId: args.sessionId
151
+ });
152
+ }
153
+ /** Reload thread state, mark the auth pause as parked, and persist it. */
154
+ async function persistAuthPauseTurnState(args) {
155
+ const currentState = await getPersistedThreadState(args.threadStateId);
156
+ const conversation = coerceThreadConversationState(currentState);
157
+ await hydrateConversationMessages({
158
+ conversation,
159
+ conversationId: args.threadStateId
160
+ });
161
+ completeAuthPauseTurn({
162
+ conversation,
163
+ sessionId: args.sessionId
164
+ });
165
+ await persistThreadStateById(args.threadStateId, { conversation });
166
+ }
167
+ //#endregion
168
+ export { requireTurnFailureEventId as a, getTurnUserMessageId as c, buildDeliveredTurnStatePatch as d, getAgentTurnDiagnosticsAttributes as i, getTurnUserReplyAttachmentContext as l, persistAuthPauseTurnState as n, getInterruptionMarker as o, finalizeFailedTurnReplyWithEvent as r, getTurnUserMessage as s, completeAuthPauseTurn as t, getTurnUserSlackMessageTs as u };
@@ -0,0 +1,7 @@
1
+ import { t as __exportAll } from "./rolldown-runtime-B4FMCO8f.js";
2
+ import { t as createPluginCatalogRuntime } from "./registry-DH1xUo2N.js";
3
+ //#region src/chat/plugins/catalog-runtime.ts
4
+ var catalog_runtime_exports = /* @__PURE__ */ __exportAll({ pluginCatalogRuntime: () => pluginCatalogRuntime });
5
+ const pluginCatalogRuntime = createPluginCatalogRuntime();
6
+ //#endregion
7
+ export { pluginCatalogRuntime as n, catalog_runtime_exports as t };