@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.
- package/dist/agent-CMyTD4DD.js +17509 -0
- package/dist/agent-hooks-Bbcp9e33.js +4040 -0
- package/dist/agent-runner-DNb1A49M.js +678 -0
- package/dist/api/schema.d.ts +2728 -2639
- package/dist/api/schema.js +4 -169
- package/dist/api.d.ts +23 -17
- package/dist/api.js +3881 -5326
- package/dist/app-B1TOqBI8.d.ts +246 -0
- package/dist/app.d.ts +4 -520
- package/dist/app.js +9522 -11875
- package/dist/auth-pause-state-DosEalIG.js +168 -0
- package/dist/catalog-runtime-BReos-D4.js +7 -0
- package/dist/checkpoint-CNrPyRJN.js +2450 -0
- package/dist/cli/chat.d.ts +20 -0
- package/dist/cli/chat.js +229 -336
- package/dist/cli/check.d.ts +8 -0
- package/dist/cli/check.js +513 -806
- package/dist/cli/env.d.ts +13 -0
- package/dist/cli/env.js +63 -12
- package/dist/cli/init.d.ts +3 -0
- package/dist/cli/init.js +90 -159
- package/dist/cli/main.d.ts +6 -0
- package/dist/cli/main.js +43 -64
- package/dist/cli/plugins.d.ts +13 -0
- package/dist/cli/plugins.js +148 -227
- package/dist/cli/run.d.ts +16 -0
- package/dist/cli/run.js +52 -8
- package/dist/cli/snapshot-create.d.ts +4 -0
- package/dist/cli/snapshot-create.js +71 -125
- package/dist/cli/upgrade.d.ts +15 -0
- package/dist/cli/upgrade.js +232 -335
- package/dist/config-nGCW1OTG.js +941 -0
- package/dist/context-B45_WqVX.js +298 -0
- package/dist/conversation-privacy-B4voFRSm.js +182 -0
- package/dist/conversation-work-C6y3T5Hx.js +51 -0
- package/dist/credential-sync-kXr1hvO1.js +2660 -0
- package/dist/db-BeyXKJOI.d.ts +5 -0
- package/dist/destinations-BeBiJeEM.js +29 -0
- package/dist/execution-stats-DWfSihcH.js +373 -0
- package/dist/executor-DcMSlI5c.js +721 -0
- package/dist/experimental-CIXf7Uye.js +46 -0
- package/dist/history-ClE4toxe.d.ts +32 -0
- package/dist/history-CqTuSAdI.js +441 -0
- package/dist/instrumentation.d.ts +3 -3
- package/dist/instrumentation.js +130 -176
- package/dist/job-queue-Drn_LXlM.js +63 -0
- package/dist/logging-BzAk1S_s.js +1210 -0
- package/dist/model-profile-CZmVoGdX.js +49 -0
- package/dist/nitro.d.ts +31 -36
- package/dist/nitro.js +275 -456
- package/dist/oauth-callback-server-JiftokvA.js +130 -0
- package/dist/oauth-relay-CdCnu80W.js +62 -0
- package/dist/package-discovery-7a9YqLhE.js +455 -0
- package/dist/pending-auth-CWmSdZVg.js +185 -0
- package/dist/plugin-module-BKGOXca2.js +81 -0
- package/dist/plugins-BI9A1vKA.d.ts +95 -0
- package/dist/plugins-egKWjgue.js +99 -0
- package/dist/private-trace-result-BLvBjy_e.js +16 -0
- package/dist/profile-CrT5nXbw.js +861 -0
- package/dist/registry-DH1xUo2N.js +1419 -0
- package/dist/reporting-schema-DosTN__Q.js +105 -0
- package/dist/resolve-CZHnfxaS.js +546 -0
- package/dist/rolldown-runtime-B4FMCO8f.js +28 -0
- package/dist/runner-CZV2sC46.js +392 -0
- package/dist/sandbox-egress-signals-bHZfmhbd.js +46 -0
- package/dist/schema-Rn8-XEaN.js +1140 -0
- package/dist/sentry-CD3SdJl-.js +26 -0
- package/dist/skills-CIcDQSgM.js +316 -0
- package/dist/spawn-DdkUFRmq.js +29 -0
- package/dist/stats-DTUbAb88.js +2634 -0
- package/dist/store-C5qxF2ac.d.ts +208 -0
- package/dist/task-queue-CJIR4RF7.js +136 -0
- package/dist/task-runner-D-O3A-Cp.js +639 -0
- package/dist/thread-state-CRc9jTJS.js +431 -0
- package/dist/turn-execution-BkinIdJF.js +47 -0
- package/dist/turn-lifecycle-DQV19VTW.js +54 -0
- package/dist/usage-D3EbSO7w.js +296 -0
- package/dist/usage-schema-CKaDkH_j.js +20 -0
- package/dist/validation-C2CR-OX3.js +40 -0
- package/dist/vercel-queue-DIkVcfK4.js +167 -0
- package/dist/vercel.d.ts +6 -6
- package/dist/vercel.js +14 -6
- package/dist/version-CnXZ614E.d.ts +5 -0
- package/dist/version-DxcWdoKa.js +8 -0
- package/dist/version.d.ts +2 -4
- package/dist/version.js +2 -6
- package/dist/web-authorization-RMBxAR_t.js +76 -0
- package/dist/web-input-3EPfpf55.js +494 -0
- package/dist/work-fGofI7Op.js +509 -0
- package/dist/worker-CsOLq-mR.js +625 -0
- package/package.json +9 -9
- package/dist/agent-hooks-UXITLYOK.js +0 -51
- package/dist/catalog-runtime-BG3JLLK2.js +0 -14
- package/dist/chunk-2LYHWMR4.js +0 -46
- package/dist/chunk-2MK3QBGA.js +0 -321
- package/dist/chunk-3PGQSKJV.js +0 -692
- package/dist/chunk-3UI3WFTX.js +0 -519
- package/dist/chunk-3Y47VMHV.js +0 -6
- package/dist/chunk-4UO6FK4G.js +0 -64
- package/dist/chunk-5NOPO64K.js +0 -198
- package/dist/chunk-5PKWYPFT.js +0 -2943
- package/dist/chunk-63NKKFJL.js +0 -1228
- package/dist/chunk-6AYH6252.js +0 -787
- package/dist/chunk-6Y5B5PEX.js +0 -80
- package/dist/chunk-7DHZP5KJ.js +0 -333
- package/dist/chunk-7H2VZTWN.js +0 -103
- package/dist/chunk-7NL7T6VU.js +0 -406
- package/dist/chunk-A76OIMYN.js +0 -102
- package/dist/chunk-AWMS3SPP.js +0 -58
- package/dist/chunk-B3LY5RCL.js +0 -229
- package/dist/chunk-BD2KT3OB.js +0 -36
- package/dist/chunk-BXCX5QKA.js +0 -2086
- package/dist/chunk-C6VVF43U.js +0 -81
- package/dist/chunk-CEMMLV5L.js +0 -98
- package/dist/chunk-CM5HNV2W.js +0 -131
- package/dist/chunk-DA2KGZZI.js +0 -13
- package/dist/chunk-DBVY6HLX.js +0 -64
- package/dist/chunk-DIB4GX3G.js +0 -8
- package/dist/chunk-DKIJ2RP5.js +0 -68
- package/dist/chunk-DL2KLKVH.js +0 -931
- package/dist/chunk-DWPN6SCH.js +0 -172
- package/dist/chunk-ELWOYVOY.js +0 -206
- package/dist/chunk-EWT7H65X.js +0 -506
- package/dist/chunk-FA6POGLH.js +0 -70
- package/dist/chunk-HMREVIO2.js +0 -135
- package/dist/chunk-IIWUT4FO.js +0 -820
- package/dist/chunk-JAL3CH4G.js +0 -27
- package/dist/chunk-JSJQEWBJ.js +0 -3295
- package/dist/chunk-KHKKHDLD.js +0 -387
- package/dist/chunk-LA6R4A7Q.js +0 -706
- package/dist/chunk-LOOU2DUR.js +0 -20428
- package/dist/chunk-M6FHWXE3.js +0 -700
- package/dist/chunk-M76HMB7M.js +0 -1856
- package/dist/chunk-MAGNK5J4.js +0 -1520
- package/dist/chunk-MTM5IFCY.js +0 -1190
- package/dist/chunk-N7TMSOZH.js +0 -235
- package/dist/chunk-NHJU2ZAL.js +0 -56
- package/dist/chunk-NSXKRGRT.js +0 -717
- package/dist/chunk-OWMPFXJA.js +0 -1764
- package/dist/chunk-PDO5BLNM.js +0 -22
- package/dist/chunk-PEQXYSSE.js +0 -45
- package/dist/chunk-PW4P4JYF.js +0 -1135
- package/dist/chunk-QB54UQUS.js +0 -320
- package/dist/chunk-QP3OGJXF.js +0 -105
- package/dist/chunk-RC745GGZ.js +0 -122
- package/dist/chunk-REOIRYPR.js +0 -37
- package/dist/chunk-SCOZRLZ4.js +0 -164
- package/dist/chunk-TXJSXBV5.js +0 -1433
- package/dist/chunk-TXKUKMVO.js +0 -417
- package/dist/chunk-U2GPUYAL.js +0 -3656
- package/dist/chunk-UIE3R5XU.js +0 -17
- package/dist/chunk-UXPG6ZIN.js +0 -84
- package/dist/chunk-VFUK3X5B.js +0 -50
- package/dist/chunk-WQSHDTTI.js +0 -1163
- package/dist/chunk-X6GDDWQH.js +0 -60
- package/dist/chunk-Y2CM7HXH.js +0 -111
- package/dist/chunk-Y7X25LFY.js +0 -15
- package/dist/chunk-YDUR3ZYW.js +0 -10
- package/dist/conversation-work-VIOQ5ZF3.js +0 -54
- package/dist/db-3L2MCVRI.js +0 -26
- package/dist/discovery-DWVDM7UK.js +0 -44
- package/dist/experimental-P5FZM4CU.js +0 -12
- package/dist/oauth-callback-server-YVV6C6T2.js +0 -243
- package/dist/oauth-relay-5XPVRPYB.js +0 -8
- package/dist/plugins-YTYJMMJF.js +0 -14
- package/dist/runner-LQ7RETDP.js +0 -522
- package/dist/sandbox-egress-signals-FIL7EGPR.js +0 -73
- package/dist/sentry-MB3NL3IR.js +0 -42
- package/dist/skills-XRWYEDCD.js +0 -27
- package/dist/spawn-RC6SJUAI.js +0 -42
- package/dist/task-runner-7DY7ARYH.js +0 -36
- package/dist/validation-7MNQGCJA.js +0 -17
- package/dist/work-COALHUCG.js +0 -51
- 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 };
|