@sentry/junior 0.203.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 +8 -8
  92. package/dist/agent-hooks-GB2VPTNA.js +0 -51
  93. package/dist/catalog-runtime-UBLIWD3O.js +0 -14
  94. package/dist/chunk-2LYHWMR4.js +0 -46
  95. package/dist/chunk-352OWAZH.js +0 -320
  96. package/dist/chunk-3Y47VMHV.js +0 -6
  97. package/dist/chunk-3YJSKOWF.js +0 -164
  98. package/dist/chunk-4KSSKTQ5.js +0 -229
  99. package/dist/chunk-4UO6FK4G.js +0 -64
  100. package/dist/chunk-5AHX53NQ.js +0 -717
  101. package/dist/chunk-5J3E5FWA.js +0 -700
  102. package/dist/chunk-5PDAG6O3.js +0 -206
  103. package/dist/chunk-6Y5B5PEX.js +0 -80
  104. package/dist/chunk-7GWQ5S5R.js +0 -2086
  105. package/dist/chunk-7H2VZTWN.js +0 -103
  106. package/dist/chunk-7NL7T6VU.js +0 -406
  107. package/dist/chunk-A5L27LE4.js +0 -387
  108. package/dist/chunk-ADIAWL34.js +0 -81
  109. package/dist/chunk-ASTEMBKJ.js +0 -519
  110. package/dist/chunk-CEMMLV5L.js +0 -98
  111. package/dist/chunk-CM5HNV2W.js +0 -131
  112. package/dist/chunk-CRTRBBRI.js +0 -105
  113. package/dist/chunk-DA2KGZZI.js +0 -13
  114. package/dist/chunk-DIB4GX3G.js +0 -8
  115. package/dist/chunk-DKIJ2RP5.js +0 -68
  116. package/dist/chunk-DWPN6SCH.js +0 -172
  117. package/dist/chunk-EDKUFGPL.js +0 -64
  118. package/dist/chunk-ENY6SKIU.js +0 -1228
  119. package/dist/chunk-F4MGCZOX.js +0 -2943
  120. package/dist/chunk-FA6POGLH.js +0 -70
  121. package/dist/chunk-FSUR7GTG.js +0 -20475
  122. package/dist/chunk-GKEOHJL5.js +0 -1856
  123. package/dist/chunk-GMCB6W5Y.js +0 -333
  124. package/dist/chunk-IE2VPG7O.js +0 -1135
  125. package/dist/chunk-IZ5B5IHQ.js +0 -3656
  126. package/dist/chunk-JAL3CH4G.js +0 -27
  127. package/dist/chunk-KIIEUXD3.js +0 -1764
  128. package/dist/chunk-KXU4NIL7.js +0 -692
  129. package/dist/chunk-MTM5IFCY.js +0 -1190
  130. package/dist/chunk-N7TMSOZH.js +0 -235
  131. package/dist/chunk-NCEBK6PH.js +0 -36
  132. package/dist/chunk-NHJU2ZAL.js +0 -56
  133. package/dist/chunk-P6KTRNVC.js +0 -321
  134. package/dist/chunk-PDO5BLNM.js +0 -22
  135. package/dist/chunk-PDRNLLFT.js +0 -3295
  136. package/dist/chunk-PEQXYSSE.js +0 -45
  137. package/dist/chunk-PKEX2AQX.js +0 -198
  138. package/dist/chunk-PSJCGIGO.js +0 -1163
  139. package/dist/chunk-PZUSUL55.js +0 -506
  140. package/dist/chunk-R45M4TUS.js +0 -37
  141. package/dist/chunk-RC745GGZ.js +0 -122
  142. package/dist/chunk-SP3QKZXJ.js +0 -820
  143. package/dist/chunk-TXKUKMVO.js +0 -417
  144. package/dist/chunk-UE4GPWSD.js +0 -931
  145. package/dist/chunk-UIE3R5XU.js +0 -17
  146. package/dist/chunk-UXPG6ZIN.js +0 -84
  147. package/dist/chunk-VFUK3X5B.js +0 -50
  148. package/dist/chunk-VNMJWREK.js +0 -787
  149. package/dist/chunk-VZ7CSOX2.js +0 -706
  150. package/dist/chunk-WCNQJKFT.js +0 -10
  151. package/dist/chunk-WDZR3QQM.js +0 -135
  152. package/dist/chunk-WLYVJCHV.js +0 -1433
  153. package/dist/chunk-WS7NAFTM.js +0 -1520
  154. package/dist/chunk-X6GDDWQH.js +0 -60
  155. package/dist/chunk-XPDEYNQI.js +0 -102
  156. package/dist/chunk-XRW44VGM.js +0 -58
  157. package/dist/chunk-Y2CM7HXH.js +0 -111
  158. package/dist/chunk-Y7X25LFY.js +0 -15
  159. package/dist/conversation-work-VIOQ5ZF3.js +0 -54
  160. package/dist/db-NGDJV7YH.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-YFY7YEGK.js +0 -243
  164. package/dist/oauth-relay-5XPVRPYB.js +0 -8
  165. package/dist/plugins-YTYJMMJF.js +0 -14
  166. package/dist/runner-ORTNSB2Q.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-H376WQOH.js +0 -27
  170. package/dist/spawn-T43WHLOS.js +0 -42
  171. package/dist/task-runner-LBZWF32V.js +0 -36
  172. package/dist/validation-REJLRKI6.js +0 -17
  173. package/dist/work-3KJ3RE76.js +0 -51
  174. package/dist/worker-QFEBU72E.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 };