@sentry/junior 0.78.0 → 0.80.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-hooks-OFDNZJB2.js → agent-hooks-ZGTDOXQY.js} +11 -10
- package/dist/api-reference.d.ts +1 -1
- package/dist/app.js +39 -41
- package/dist/catalog-runtime-IVWRAPSI.js +12 -0
- package/dist/chat/conversation-privacy.d.ts +4 -0
- package/dist/chat/plugins/catalog-runtime.d.ts +1 -0
- package/dist/chat/plugins/registry.d.ts +27 -26
- package/dist/chat/sentry-payload-filter.d.ts +14 -0
- package/dist/chat/sentry.d.ts +1 -1
- package/dist/chat/state/session-log.d.ts +84 -0
- package/dist/chat/tools/advisor/tool.d.ts +1 -0
- package/dist/chat/tools/definition.d.ts +6 -0
- package/dist/{chunk-LUNMJQ7D.js → chunk-2AJ4TEKE.js} +6 -6
- package/dist/{chunk-ST6YNAXG.js → chunk-3DA7X2U3.js} +6 -3
- package/dist/{chunk-PNGAJ75P.js → chunk-3JKTVW4R.js} +7 -8
- package/dist/{chunk-Q6XFTRV5.js → chunk-4XHCVBXH.js} +2 -2
- package/dist/{chunk-Z4CIQ3EB.js → chunk-66NX7MNW.js} +1 -1
- package/dist/{chunk-Q3XNY442.js → chunk-6APU57E6.js} +1 -3
- package/dist/{chunk-T77LUIX3.js → chunk-ABRNFE3N.js} +7 -211
- package/dist/chunk-DR75T7J3.js +225 -0
- package/dist/{chunk-KIDP757T.js → chunk-FAGWUF44.js} +17 -7
- package/dist/{chunk-OJ53FYVG.js → chunk-FTMXFBDC.js} +14 -0
- package/dist/{chunk-RARSKPVT.js → chunk-GUO4EE7L.js} +2 -2
- package/dist/{chunk-2ECJXSVQ.js → chunk-IOBSRZK5.js} +1 -1
- package/dist/{chunk-EJN6G5A2.js → chunk-KF7522P3.js} +5 -19
- package/dist/{chunk-C2YBH4S6.js → chunk-LX5GBMEP.js} +6 -6
- package/dist/{chunk-237T7XAN.js → chunk-PQ2U2AO3.js} +3 -3
- package/dist/{chunk-YLVJRYTD.js → chunk-TW23AT22.js} +190 -196
- package/dist/{chunk-2MSW5BZY.js → chunk-W2QGQCKG.js} +129 -62
- package/dist/{chunk-Y3EG7S7P.js → chunk-WCXVEQPI.js} +7 -8
- package/dist/{chunk-LXTPBU4K.js → chunk-X2FL5ZH5.js} +1 -1
- package/dist/{chunk-SSWBYEFH.js → chunk-Y3YUOEAZ.js} +13 -7
- package/dist/{chunk-QDQVOMBA.js → chunk-YA2JCC7G.js} +165 -14
- package/dist/{chunk-VALUBQ7R.js → chunk-ZPCGQRFJ.js} +1 -1
- package/dist/cli/chat.js +12 -10
- package/dist/cli/check.js +7 -7
- package/dist/cli/main.js +1 -1
- package/dist/cli/plugins.js +17 -16
- package/dist/cli/snapshot-warmup.js +14 -15
- package/dist/cli/upgrade.js +20 -22
- package/dist/db-GQJKBX5W.js +18 -0
- package/dist/instrumentation.js +76 -3
- package/dist/nitro.js +8 -7
- package/dist/reporting/conversations.d.ts +30 -0
- package/dist/reporting.d.ts +1 -1
- package/dist/reporting.js +115 -24
- package/dist/{runner-WW4GJFUB.js → runner-JOVPVMIH.js} +18 -17
- package/dist/{sentry-4CP5NNQ5.js → sentry-EGFOV3DH.js} +5 -3
- package/dist/validation-TN6HMZAD.js +15 -0
- package/package.json +4 -4
- package/dist/db-NGQ3JCMF.js +0 -17
- package/dist/registry-RRIDPJBT.js +0 -46
- package/dist/validation-MDMYBRFB.js +0 -15
package/dist/instrumentation.js
CHANGED
|
@@ -1,15 +1,84 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getCurrentConversationPrivacy
|
|
3
|
+
} from "./chunk-DR75T7J3.js";
|
|
1
4
|
import {
|
|
2
5
|
getDeploymentServiceVersion,
|
|
3
6
|
getDeploymentTelemetryAttributes
|
|
4
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-FTMXFBDC.js";
|
|
5
8
|
import {
|
|
6
9
|
getClient,
|
|
7
10
|
getGlobalScope,
|
|
8
11
|
init,
|
|
9
|
-
vercelAIIntegration
|
|
10
|
-
|
|
12
|
+
vercelAIIntegration,
|
|
13
|
+
withStreamedSpan
|
|
14
|
+
} from "./chunk-3DA7X2U3.js";
|
|
11
15
|
import "./chunk-MLKGABMK.js";
|
|
12
16
|
|
|
17
|
+
// src/chat/sentry-payload-filter.ts
|
|
18
|
+
var PAYLOAD_ATTRIBUTE_KEYS = /* @__PURE__ */ new Set([
|
|
19
|
+
"app.message.input",
|
|
20
|
+
"app.message.output",
|
|
21
|
+
"gen_ai.input.messages",
|
|
22
|
+
"gen_ai.output.messages",
|
|
23
|
+
"gen_ai.system_instructions",
|
|
24
|
+
"gen_ai.tool.call.arguments",
|
|
25
|
+
"gen_ai.tool.call.result"
|
|
26
|
+
]);
|
|
27
|
+
function hasPayloadAttributes(attributes) {
|
|
28
|
+
return Object.keys(attributes).some((key) => PAYLOAD_ATTRIBUTE_KEYS.has(key));
|
|
29
|
+
}
|
|
30
|
+
function shouldScrubPayloads(attributes) {
|
|
31
|
+
if (!hasPayloadAttributes(attributes)) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
return getCurrentConversationPrivacy() !== "public";
|
|
35
|
+
}
|
|
36
|
+
function scrubPayloadAttributes(attributes) {
|
|
37
|
+
if (!attributes) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (!shouldScrubPayloads(attributes)) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
for (const key of PAYLOAD_ATTRIBUTE_KEYS) {
|
|
44
|
+
delete attributes[key];
|
|
45
|
+
}
|
|
46
|
+
attributes["app.conversation.payload_redacted"] = true;
|
|
47
|
+
}
|
|
48
|
+
function scrubContainer(container) {
|
|
49
|
+
if (!container) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
scrubPayloadAttributes(container.data);
|
|
53
|
+
scrubPayloadAttributes(container.attributes);
|
|
54
|
+
}
|
|
55
|
+
function scrubPrivateSentryEvent(event) {
|
|
56
|
+
const eventRecord = event;
|
|
57
|
+
scrubContainer(eventRecord);
|
|
58
|
+
scrubContainer(event.contexts?.trace);
|
|
59
|
+
for (const breadcrumb of event.breadcrumbs ?? []) {
|
|
60
|
+
scrubContainer(breadcrumb);
|
|
61
|
+
}
|
|
62
|
+
return event;
|
|
63
|
+
}
|
|
64
|
+
function scrubPrivateSentryTransaction(event) {
|
|
65
|
+
const eventRecord = event;
|
|
66
|
+
scrubContainer(eventRecord);
|
|
67
|
+
scrubContainer(event.contexts?.trace);
|
|
68
|
+
for (const span of event.spans ?? []) {
|
|
69
|
+
scrubContainer(span);
|
|
70
|
+
}
|
|
71
|
+
return event;
|
|
72
|
+
}
|
|
73
|
+
function scrubPrivateSentrySpan(span) {
|
|
74
|
+
scrubContainer(span);
|
|
75
|
+
return span;
|
|
76
|
+
}
|
|
77
|
+
function scrubPrivateSentryLog(log) {
|
|
78
|
+
scrubContainer(log);
|
|
79
|
+
return log;
|
|
80
|
+
}
|
|
81
|
+
|
|
13
82
|
// src/instrumentation.ts
|
|
14
83
|
function getSampleRate(value, fallback) {
|
|
15
84
|
if (!value) return fallback;
|
|
@@ -41,6 +110,10 @@ function initSentry() {
|
|
|
41
110
|
enableLogs,
|
|
42
111
|
registerEsmLoaderHooks: false,
|
|
43
112
|
streamGenAiSpans: true,
|
|
113
|
+
beforeSend: scrubPrivateSentryEvent,
|
|
114
|
+
beforeSendLog: scrubPrivateSentryLog,
|
|
115
|
+
beforeSendSpan: withStreamedSpan(scrubPrivateSentrySpan),
|
|
116
|
+
beforeSendTransaction: scrubPrivateSentryTransaction,
|
|
44
117
|
integrations: [
|
|
45
118
|
vercelAIIntegration({
|
|
46
119
|
recordInputs: true,
|
package/dist/nitro.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveConversationWorkQueueTopic
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-IOBSRZK5.js";
|
|
4
4
|
import {
|
|
5
5
|
PLUGIN_TASK_QUEUE_TOPIC
|
|
6
6
|
} from "./chunk-KNFROR7R.js";
|
|
@@ -8,8 +8,9 @@ import {
|
|
|
8
8
|
pluginCatalogConfigFromPluginSet,
|
|
9
9
|
pluginRuntimeRegistrationsFromPluginSet
|
|
10
10
|
} from "./chunk-SG5WAA7H.js";
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-4XHCVBXH.js";
|
|
12
|
+
import "./chunk-ABRNFE3N.js";
|
|
13
|
+
import "./chunk-DR75T7J3.js";
|
|
13
14
|
import {
|
|
14
15
|
loadPluginSetFromModule,
|
|
15
16
|
resolvePluginModule
|
|
@@ -18,15 +19,15 @@ import {
|
|
|
18
19
|
discoverInstalledPluginPackageContent,
|
|
19
20
|
isValidPackageName,
|
|
20
21
|
resolvePackageDir
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import "./chunk-
|
|
22
|
+
} from "./chunk-6APU57E6.js";
|
|
23
|
+
import "./chunk-KF7522P3.js";
|
|
23
24
|
import {
|
|
24
25
|
JUNIOR_CONVERSATION_WORK_CALLBACK_ROUTE,
|
|
25
26
|
JUNIOR_HEARTBEAT_CRON_SCHEDULE,
|
|
26
27
|
JUNIOR_HEARTBEAT_ROUTE,
|
|
27
28
|
JUNIOR_PLUGIN_TASK_CALLBACK_ROUTE
|
|
28
|
-
} from "./chunk-
|
|
29
|
-
import "./chunk-
|
|
29
|
+
} from "./chunk-FTMXFBDC.js";
|
|
30
|
+
import "./chunk-3DA7X2U3.js";
|
|
30
31
|
import "./chunk-MLKGABMK.js";
|
|
31
32
|
|
|
32
33
|
// src/nitro.ts
|
|
@@ -67,6 +67,7 @@ export interface TranscriptMessage {
|
|
|
67
67
|
timestamp?: number;
|
|
68
68
|
}
|
|
69
69
|
export interface ConversationRunReport extends ConversationSummaryReport {
|
|
70
|
+
activity?: ConversationActivityReport[];
|
|
70
71
|
transcriptAvailable: boolean;
|
|
71
72
|
transcriptMetadata?: TranscriptMessage[];
|
|
72
73
|
transcriptMessageCount?: number;
|
|
@@ -74,6 +75,35 @@ export interface ConversationRunReport extends ConversationSummaryReport {
|
|
|
74
75
|
transcriptRedactionReason?: "non_public_conversation";
|
|
75
76
|
transcript: TranscriptMessage[];
|
|
76
77
|
}
|
|
78
|
+
export type ConversationActivityStatus = "aborted" | "completed" | "error" | "running" | "success";
|
|
79
|
+
interface ActivityPayloadMetadata {
|
|
80
|
+
inputKeys?: string[];
|
|
81
|
+
inputSizeBytes?: number;
|
|
82
|
+
inputSizeChars?: number;
|
|
83
|
+
inputType?: string;
|
|
84
|
+
}
|
|
85
|
+
export interface ConversationSubagentActivityReport {
|
|
86
|
+
type: "subagent";
|
|
87
|
+
createdAt: string;
|
|
88
|
+
endedAt?: string;
|
|
89
|
+
id: string;
|
|
90
|
+
outcome?: "success" | "error" | "aborted";
|
|
91
|
+
parentToolCallId?: string;
|
|
92
|
+
status: ConversationActivityStatus;
|
|
93
|
+
subagentKind: string;
|
|
94
|
+
}
|
|
95
|
+
export interface ConversationToolActivityReport extends ActivityPayloadMetadata {
|
|
96
|
+
type: "tool_execution";
|
|
97
|
+
args?: unknown;
|
|
98
|
+
createdAt: string;
|
|
99
|
+
id: string;
|
|
100
|
+
redacted?: boolean;
|
|
101
|
+
status: ConversationActivityStatus;
|
|
102
|
+
subagents: ConversationSubagentActivityReport[];
|
|
103
|
+
toolCallId: string;
|
|
104
|
+
toolName: string;
|
|
105
|
+
}
|
|
106
|
+
export type ConversationActivityReport = ConversationToolActivityReport | ConversationSubagentActivityReport;
|
|
77
107
|
export interface ConversationReport {
|
|
78
108
|
conversationId: string;
|
|
79
109
|
/** Always-populated display title, computed the same way as per-run reports. */
|
package/dist/reporting.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { PluginOperationalReport } from "@sentry/junior-plugin-api";
|
|
2
2
|
import { type ConversationFeed, type PluginConversationSummary, type ConversationReport, type ConversationStatsReport } from "./reporting/conversations";
|
|
3
|
-
export type { PluginConversationStatus, PluginConversations, PluginConversationSummary, ConversationFeed, ConversationReport, ConversationReportStatus, ConversationRunReport, ConversationStatsItem, ConversationStatsReport, ConversationSummaryReport, ConversationSurface, ConversationUsage, RequesterIdentity, TranscriptMessage, TranscriptPart, TranscriptPartType, TranscriptRole, } from "./reporting/conversations";
|
|
3
|
+
export type { PluginConversationStatus, PluginConversations, PluginConversationSummary, ConversationActivityReport, ConversationActivityStatus, ConversationFeed, ConversationReport, ConversationReportStatus, ConversationRunReport, ConversationSubagentActivityReport, ConversationStatsItem, ConversationStatsReport, ConversationSummaryReport, ConversationSurface, ConversationToolActivityReport, ConversationUsage, RequesterIdentity, TranscriptMessage, TranscriptPart, TranscriptPartType, TranscriptRole, } from "./reporting/conversations";
|
|
4
4
|
export interface HealthReport {
|
|
5
5
|
status: "ok";
|
|
6
6
|
service: string;
|
package/dist/reporting.js
CHANGED
|
@@ -6,45 +6,46 @@ import {
|
|
|
6
6
|
getConversationDetails,
|
|
7
7
|
getConversationDetailsForIds,
|
|
8
8
|
resolveSlackConversationContextFromThreadId
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-LX5GBMEP.js";
|
|
10
10
|
import {
|
|
11
11
|
buildSystemPrompt,
|
|
12
12
|
getAgentTurnSessionRecord,
|
|
13
|
-
listAgentTurnSessionSummariesForConversation
|
|
14
|
-
|
|
13
|
+
listAgentTurnSessionSummariesForConversation,
|
|
14
|
+
loadActivityEntries
|
|
15
|
+
} from "./chunk-YA2JCC7G.js";
|
|
15
16
|
import {
|
|
16
17
|
getPluginOperationalReports
|
|
17
|
-
} from "./chunk-
|
|
18
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-Y3YUOEAZ.js";
|
|
19
|
+
import "./chunk-GUO4EE7L.js";
|
|
19
20
|
import {
|
|
20
21
|
getConversationStore
|
|
21
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-PQ2U2AO3.js";
|
|
22
23
|
import "./chunk-G3E7SCME.js";
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-X2FL5ZH5.js";
|
|
25
|
+
import "./chunk-4XHCVBXH.js";
|
|
26
|
+
import "./chunk-ABRNFE3N.js";
|
|
25
27
|
import {
|
|
26
28
|
canExposeConversationPayload,
|
|
27
29
|
parseSlackThreadId,
|
|
28
30
|
resolveConversationPrivacy
|
|
29
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-DR75T7J3.js";
|
|
30
32
|
import {
|
|
31
33
|
discoverSkills
|
|
32
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-WCXVEQPI.js";
|
|
33
35
|
import {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
} from "./chunk-YLVJRYTD.js";
|
|
36
|
+
pluginCatalogRuntime
|
|
37
|
+
} from "./chunk-TW23AT22.js";
|
|
37
38
|
import {
|
|
38
39
|
toStoredSlackRequester
|
|
39
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-ZPCGQRFJ.js";
|
|
40
41
|
import {
|
|
41
42
|
homeDir
|
|
42
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-6APU57E6.js";
|
|
44
|
+
import "./chunk-KF7522P3.js";
|
|
43
45
|
import {
|
|
44
46
|
isRecord
|
|
45
|
-
} from "./chunk-
|
|
46
|
-
import "./chunk-
|
|
47
|
-
import "./chunk-ST6YNAXG.js";
|
|
47
|
+
} from "./chunk-FTMXFBDC.js";
|
|
48
|
+
import "./chunk-3DA7X2U3.js";
|
|
48
49
|
import "./chunk-MLKGABMK.js";
|
|
49
50
|
|
|
50
51
|
// src/reporting.ts
|
|
@@ -665,6 +666,86 @@ function redactTranscriptMessage(message) {
|
|
|
665
666
|
parts: message.parts.map(redactTranscriptPart)
|
|
666
667
|
};
|
|
667
668
|
}
|
|
669
|
+
function toolResultStatuses(messages) {
|
|
670
|
+
const statuses = /* @__PURE__ */ new Map();
|
|
671
|
+
for (const message of messages) {
|
|
672
|
+
const record = message;
|
|
673
|
+
if (record.role !== "toolResult" || typeof record.toolCallId !== "string") {
|
|
674
|
+
continue;
|
|
675
|
+
}
|
|
676
|
+
statuses.set(record.toolCallId, record.isError ? "error" : "completed");
|
|
677
|
+
}
|
|
678
|
+
return statuses;
|
|
679
|
+
}
|
|
680
|
+
function activityPayloadFields(args, canExposePayload) {
|
|
681
|
+
if (args === void 0) {
|
|
682
|
+
return {};
|
|
683
|
+
}
|
|
684
|
+
return canExposePayload ? { args } : { redacted: true, ...redactedPayloadFields("input", args) };
|
|
685
|
+
}
|
|
686
|
+
function subagentActivity(entry, options) {
|
|
687
|
+
const end = options.end;
|
|
688
|
+
return {
|
|
689
|
+
type: "subagent",
|
|
690
|
+
id: entry.subagentInvocationId,
|
|
691
|
+
subagentKind: entry.subagentKind,
|
|
692
|
+
...entry.parentToolCallId ? { parentToolCallId: entry.parentToolCallId } : {},
|
|
693
|
+
createdAt: new Date(entry.createdAtMs).toISOString(),
|
|
694
|
+
...end ? {
|
|
695
|
+
endedAt: new Date(end.createdAtMs).toISOString(),
|
|
696
|
+
outcome: end.outcome,
|
|
697
|
+
status: end.outcome
|
|
698
|
+
} : { status: options.parentStatus ?? "running" }
|
|
699
|
+
};
|
|
700
|
+
}
|
|
701
|
+
function buildConversationActivity(args) {
|
|
702
|
+
const toolStatuses = toolResultStatuses(args.messages);
|
|
703
|
+
const subagentEnds = /* @__PURE__ */ new Map();
|
|
704
|
+
const subagentsByToolCallId = /* @__PURE__ */ new Map();
|
|
705
|
+
const orphanSubagents = [];
|
|
706
|
+
for (const entry of args.entries) {
|
|
707
|
+
if (entry.type === "subagent_ended") {
|
|
708
|
+
subagentEnds.set(entry.subagentInvocationId, entry);
|
|
709
|
+
}
|
|
710
|
+
}
|
|
711
|
+
for (const entry of args.entries) {
|
|
712
|
+
if (entry.type !== "subagent_started") {
|
|
713
|
+
continue;
|
|
714
|
+
}
|
|
715
|
+
const parentStatus = entry.parentToolCallId ? toolStatuses.get(entry.parentToolCallId) : void 0;
|
|
716
|
+
const activity = subagentActivity(entry, {
|
|
717
|
+
end: subagentEnds.get(entry.subagentInvocationId),
|
|
718
|
+
parentStatus
|
|
719
|
+
});
|
|
720
|
+
if (entry.parentToolCallId) {
|
|
721
|
+
subagentsByToolCallId.set(entry.parentToolCallId, [
|
|
722
|
+
...subagentsByToolCallId.get(entry.parentToolCallId) ?? [],
|
|
723
|
+
activity
|
|
724
|
+
]);
|
|
725
|
+
continue;
|
|
726
|
+
}
|
|
727
|
+
orphanSubagents.push(activity);
|
|
728
|
+
}
|
|
729
|
+
const rows = [];
|
|
730
|
+
for (const entry of args.entries) {
|
|
731
|
+
if (entry.type !== "tool_execution_started") {
|
|
732
|
+
continue;
|
|
733
|
+
}
|
|
734
|
+
rows.push({
|
|
735
|
+
type: "tool_execution",
|
|
736
|
+
id: entry.toolCallId,
|
|
737
|
+
toolCallId: entry.toolCallId,
|
|
738
|
+
toolName: entry.toolName,
|
|
739
|
+
createdAt: new Date(entry.createdAtMs).toISOString(),
|
|
740
|
+
status: toolStatuses.get(entry.toolCallId) ?? "running",
|
|
741
|
+
subagents: subagentsByToolCallId.get(entry.toolCallId) ?? [],
|
|
742
|
+
...activityPayloadFields(entry.args, args.canExposePayload)
|
|
743
|
+
});
|
|
744
|
+
}
|
|
745
|
+
return [...rows, ...orphanSubagents].sort(
|
|
746
|
+
(left, right) => Date.parse(left.createdAt) - Date.parse(right.createdAt) || left.id.localeCompare(right.id)
|
|
747
|
+
);
|
|
748
|
+
}
|
|
668
749
|
function isConversationMessageRole(role) {
|
|
669
750
|
return role === "user" || role === "assistant";
|
|
670
751
|
}
|
|
@@ -864,10 +945,13 @@ async function readConversationReport(conversationId, options = {}) {
|
|
|
864
945
|
);
|
|
865
946
|
const runs = await Promise.all(
|
|
866
947
|
summaries.map(async (summary) => {
|
|
867
|
-
const sessionRecord = await
|
|
868
|
-
summary.conversationId,
|
|
869
|
-
|
|
870
|
-
|
|
948
|
+
const [sessionRecord, activityEntries] = await Promise.all([
|
|
949
|
+
getAgentTurnSessionRecord(summary.conversationId, summary.sessionId),
|
|
950
|
+
loadActivityEntries({
|
|
951
|
+
conversationId: summary.conversationId,
|
|
952
|
+
sessionId: summary.sessionId
|
|
953
|
+
})
|
|
954
|
+
]);
|
|
871
955
|
const scopedMessages = sessionRecord?.piMessages ? turnScopedMessages(
|
|
872
956
|
sessionRecord.piMessages,
|
|
873
957
|
sessionRecord.turnStartMessageIndex
|
|
@@ -876,6 +960,11 @@ async function readConversationReport(conversationId, options = {}) {
|
|
|
876
960
|
const normalizedTranscript = scopedMessages.messages.map(
|
|
877
961
|
normalizeTranscriptMessage
|
|
878
962
|
);
|
|
963
|
+
const activity = buildConversationActivity({
|
|
964
|
+
canExposePayload: canExposeTranscript,
|
|
965
|
+
entries: activityEntries,
|
|
966
|
+
messages: scopedMessages.messages
|
|
967
|
+
});
|
|
879
968
|
const transcriptMessageCount = countConversationMessages(normalizedTranscript);
|
|
880
969
|
const transcript = canExposeTranscript ? [
|
|
881
970
|
...scopedMessages.startsAtRunBoundary && normalizedTranscript.length > 0 && sessionRecord?.source ? [systemPromptMessage(sessionRecord.source)] : [],
|
|
@@ -888,6 +977,7 @@ async function readConversationReport(conversationId, options = {}) {
|
|
|
888
977
|
...sessionReportFromSummary(summary, nowMs, details),
|
|
889
978
|
...traceId ? { traceId } : {},
|
|
890
979
|
...sentryTraceUrl ? { sentryTraceUrl } : {},
|
|
980
|
+
activity,
|
|
891
981
|
transcriptAvailable: Boolean(sessionRecord) && canExposeTranscript,
|
|
892
982
|
...sessionRecord && transcriptMessageCount > 0 ? { transcriptMessageCount } : {},
|
|
893
983
|
...!canExposeTranscript ? {
|
|
@@ -911,6 +1001,7 @@ async function readConversationReport(conversationId, options = {}) {
|
|
|
911
1001
|
const effectiveRuns = runs.length > 0 || !conversation ? runs : [
|
|
912
1002
|
{
|
|
913
1003
|
...sessionReportFromConversation(conversation, nowMs, details),
|
|
1004
|
+
activity: [],
|
|
914
1005
|
transcriptAvailable: false,
|
|
915
1006
|
transcript: []
|
|
916
1007
|
}
|
|
@@ -949,7 +1040,7 @@ async function readSkills() {
|
|
|
949
1040
|
}));
|
|
950
1041
|
}
|
|
951
1042
|
async function readPlugins() {
|
|
952
|
-
return
|
|
1043
|
+
return pluginCatalogRuntime.getProviders().map((plugin) => ({
|
|
953
1044
|
name: plugin.manifest.name
|
|
954
1045
|
}));
|
|
955
1046
|
}
|
|
@@ -972,7 +1063,7 @@ function createJuniorReporting() {
|
|
|
972
1063
|
descriptionText: readDescriptionText(),
|
|
973
1064
|
providers: plugins.map((plugin) => plugin.name),
|
|
974
1065
|
skills,
|
|
975
|
-
packagedContent:
|
|
1066
|
+
packagedContent: pluginCatalogRuntime.getPackageContent()
|
|
976
1067
|
};
|
|
977
1068
|
},
|
|
978
1069
|
getPlugins: readPlugins,
|
|
@@ -14,35 +14,36 @@ import {
|
|
|
14
14
|
startActiveTurn,
|
|
15
15
|
updateConversationStats,
|
|
16
16
|
upsertConversationMessage
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-W2QGQCKG.js";
|
|
18
18
|
import {
|
|
19
19
|
coerceThreadConversationState
|
|
20
|
-
} from "./chunk-
|
|
21
|
-
import "./chunk-
|
|
20
|
+
} from "./chunk-66NX7MNW.js";
|
|
21
|
+
import "./chunk-3JKTVW4R.js";
|
|
22
22
|
import "./chunk-KNFROR7R.js";
|
|
23
23
|
import {
|
|
24
24
|
commitMessages,
|
|
25
25
|
loadProjection
|
|
26
|
-
} from "./chunk-
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
26
|
+
} from "./chunk-YA2JCC7G.js";
|
|
27
|
+
import "./chunk-Y3YUOEAZ.js";
|
|
28
|
+
import "./chunk-GUO4EE7L.js";
|
|
29
|
+
import "./chunk-PQ2U2AO3.js";
|
|
30
30
|
import "./chunk-G3E7SCME.js";
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
31
|
+
import "./chunk-X2FL5ZH5.js";
|
|
32
|
+
import "./chunk-4XHCVBXH.js";
|
|
33
33
|
import {
|
|
34
34
|
stripRuntimeTurnContext,
|
|
35
35
|
trimTrailingAssistantMessages
|
|
36
|
-
} from "./chunk-
|
|
37
|
-
import "./chunk-
|
|
38
|
-
import "./chunk-
|
|
39
|
-
import "./chunk-
|
|
40
|
-
import "./chunk-
|
|
36
|
+
} from "./chunk-ABRNFE3N.js";
|
|
37
|
+
import "./chunk-DR75T7J3.js";
|
|
38
|
+
import "./chunk-WCXVEQPI.js";
|
|
39
|
+
import "./chunk-TW23AT22.js";
|
|
40
|
+
import "./chunk-ZPCGQRFJ.js";
|
|
41
|
+
import "./chunk-6APU57E6.js";
|
|
41
42
|
import {
|
|
42
43
|
logException
|
|
43
|
-
} from "./chunk-
|
|
44
|
-
import "./chunk-
|
|
45
|
-
import "./chunk-
|
|
44
|
+
} from "./chunk-KF7522P3.js";
|
|
45
|
+
import "./chunk-FTMXFBDC.js";
|
|
46
|
+
import "./chunk-3DA7X2U3.js";
|
|
46
47
|
import "./chunk-MLKGABMK.js";
|
|
47
48
|
|
|
48
49
|
// src/chat/local/runner.ts
|
|
@@ -11,8 +11,9 @@ import {
|
|
|
11
11
|
startSpan,
|
|
12
12
|
vercelAIIntegration,
|
|
13
13
|
withActiveSpan,
|
|
14
|
-
withScope
|
|
15
|
-
|
|
14
|
+
withScope,
|
|
15
|
+
withStreamedSpan
|
|
16
|
+
} from "./chunk-3DA7X2U3.js";
|
|
16
17
|
import "./chunk-MLKGABMK.js";
|
|
17
18
|
export {
|
|
18
19
|
captureException,
|
|
@@ -27,5 +28,6 @@ export {
|
|
|
27
28
|
startSpan,
|
|
28
29
|
vercelAIIntegration,
|
|
29
30
|
withActiveSpan,
|
|
30
|
-
withScope
|
|
31
|
+
withScope,
|
|
32
|
+
withStreamedSpan
|
|
31
33
|
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {
|
|
2
|
+
validatePluginEgressCredentialHooks,
|
|
3
|
+
validatePluginRegistrations
|
|
4
|
+
} from "./chunk-FAGWUF44.js";
|
|
5
|
+
import "./chunk-TW23AT22.js";
|
|
6
|
+
import "./chunk-ZPCGQRFJ.js";
|
|
7
|
+
import "./chunk-6APU57E6.js";
|
|
8
|
+
import "./chunk-KF7522P3.js";
|
|
9
|
+
import "./chunk-FTMXFBDC.js";
|
|
10
|
+
import "./chunk-3DA7X2U3.js";
|
|
11
|
+
import "./chunk-MLKGABMK.js";
|
|
12
|
+
export {
|
|
13
|
+
validatePluginEgressCredentialHooks,
|
|
14
|
+
validatePluginRegistrations
|
|
15
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sentry/junior",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.80.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"pg": "^8.16.3",
|
|
71
71
|
"yaml": "^2.9.0",
|
|
72
72
|
"zod": "^4.4.3",
|
|
73
|
-
"@sentry/junior-plugin-api": "0.
|
|
73
|
+
"@sentry/junior-plugin-api": "0.80.0"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
76
|
"@emnapi/core": "^1.10.0",
|
|
@@ -86,9 +86,9 @@
|
|
|
86
86
|
"typescript": "^6.0.3",
|
|
87
87
|
"vercel": "^54.4.0",
|
|
88
88
|
"vitest": "^4.1.7",
|
|
89
|
-
"@sentry/junior-memory": "0.78.0",
|
|
90
89
|
"@sentry/junior-testing": "0.0.0",
|
|
91
|
-
"@sentry/junior-scheduler": "0.
|
|
90
|
+
"@sentry/junior-scheduler": "0.80.0",
|
|
91
|
+
"@sentry/junior-memory": "0.80.0"
|
|
92
92
|
},
|
|
93
93
|
"scripts": {
|
|
94
94
|
"build": "tsup && tsc -p tsconfig.build.json --emitDeclarationOnly",
|
package/dist/db-NGQ3JCMF.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
closeDb,
|
|
3
|
-
getConversationStore,
|
|
4
|
-
getDb
|
|
5
|
-
} from "./chunk-237T7XAN.js";
|
|
6
|
-
import "./chunk-Q6XFTRV5.js";
|
|
7
|
-
import "./chunk-T77LUIX3.js";
|
|
8
|
-
import "./chunk-VALUBQ7R.js";
|
|
9
|
-
import "./chunk-EJN6G5A2.js";
|
|
10
|
-
import "./chunk-OJ53FYVG.js";
|
|
11
|
-
import "./chunk-ST6YNAXG.js";
|
|
12
|
-
import "./chunk-MLKGABMK.js";
|
|
13
|
-
export {
|
|
14
|
-
closeDb,
|
|
15
|
-
getConversationStore,
|
|
16
|
-
getDb
|
|
17
|
-
};
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
createPluginBroker,
|
|
3
|
-
getPluginCapabilityProviders,
|
|
4
|
-
getPluginCatalogSignature,
|
|
5
|
-
getPluginDefinition,
|
|
6
|
-
getPluginDisplayName,
|
|
7
|
-
getPluginForSkillPath,
|
|
8
|
-
getPluginMcpProviders,
|
|
9
|
-
getPluginMigrationRoots,
|
|
10
|
-
getPluginOAuthConfig,
|
|
11
|
-
getPluginPackageContent,
|
|
12
|
-
getPluginProviders,
|
|
13
|
-
getPluginRuntimeDependencies,
|
|
14
|
-
getPluginRuntimePostinstall,
|
|
15
|
-
getPluginSkillRoots,
|
|
16
|
-
isPluginCapability,
|
|
17
|
-
isPluginConfigKey,
|
|
18
|
-
isPluginProvider,
|
|
19
|
-
setPluginCatalogConfig
|
|
20
|
-
} from "./chunk-YLVJRYTD.js";
|
|
21
|
-
import "./chunk-VALUBQ7R.js";
|
|
22
|
-
import "./chunk-Q3XNY442.js";
|
|
23
|
-
import "./chunk-EJN6G5A2.js";
|
|
24
|
-
import "./chunk-OJ53FYVG.js";
|
|
25
|
-
import "./chunk-ST6YNAXG.js";
|
|
26
|
-
import "./chunk-MLKGABMK.js";
|
|
27
|
-
export {
|
|
28
|
-
createPluginBroker,
|
|
29
|
-
getPluginCapabilityProviders,
|
|
30
|
-
getPluginCatalogSignature,
|
|
31
|
-
getPluginDefinition,
|
|
32
|
-
getPluginDisplayName,
|
|
33
|
-
getPluginForSkillPath,
|
|
34
|
-
getPluginMcpProviders,
|
|
35
|
-
getPluginMigrationRoots,
|
|
36
|
-
getPluginOAuthConfig,
|
|
37
|
-
getPluginPackageContent,
|
|
38
|
-
getPluginProviders,
|
|
39
|
-
getPluginRuntimeDependencies,
|
|
40
|
-
getPluginRuntimePostinstall,
|
|
41
|
-
getPluginSkillRoots,
|
|
42
|
-
isPluginCapability,
|
|
43
|
-
isPluginConfigKey,
|
|
44
|
-
isPluginProvider,
|
|
45
|
-
setPluginCatalogConfig
|
|
46
|
-
};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
validatePluginEgressCredentialHooks,
|
|
3
|
-
validatePluginRegistrations
|
|
4
|
-
} from "./chunk-KIDP757T.js";
|
|
5
|
-
import "./chunk-YLVJRYTD.js";
|
|
6
|
-
import "./chunk-VALUBQ7R.js";
|
|
7
|
-
import "./chunk-Q3XNY442.js";
|
|
8
|
-
import "./chunk-EJN6G5A2.js";
|
|
9
|
-
import "./chunk-OJ53FYVG.js";
|
|
10
|
-
import "./chunk-ST6YNAXG.js";
|
|
11
|
-
import "./chunk-MLKGABMK.js";
|
|
12
|
-
export {
|
|
13
|
-
validatePluginEgressCredentialHooks,
|
|
14
|
-
validatePluginRegistrations
|
|
15
|
-
};
|