@sentry/junior 0.71.3 → 0.73.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/bin/junior.mjs +22 -10
- package/dist/api-reference.d.ts +2 -0
- package/dist/app.d.ts +12 -3
- package/dist/app.js +2522 -15560
- package/dist/chat/agent-dispatch/heartbeat.d.ts +0 -6
- package/dist/chat/agent-dispatch/runner.d.ts +2 -0
- package/dist/chat/agent-dispatch/store.d.ts +2 -2
- package/dist/chat/agent-dispatch/types.d.ts +6 -3
- package/dist/chat/agent-dispatch/validation.d.ts +2 -3
- package/dist/chat/app/production.d.ts +8 -1
- package/dist/chat/app/services.d.ts +7 -0
- package/dist/chat/destination.d.ts +3 -1
- package/dist/chat/logging.d.ts +3 -0
- package/dist/chat/mcp/errors.d.ts +3 -0
- package/dist/chat/mcp/tool-manager.d.ts +5 -1
- package/dist/chat/oauth-flow.d.ts +1 -1
- package/dist/chat/plugins/agent-hooks.d.ts +3 -2
- package/dist/chat/plugins/registry.d.ts +2 -0
- package/dist/chat/plugins/types.d.ts +2 -0
- package/dist/chat/prompt.d.ts +4 -1
- package/dist/chat/requester.d.ts +67 -0
- package/dist/chat/respond.d.ts +8 -8
- package/dist/chat/runtime/agent-continue-runner.d.ts +25 -0
- package/dist/chat/runtime/reply-executor.d.ts +7 -5
- package/dist/chat/runtime/slack-resume.d.ts +3 -3
- package/dist/chat/runtime/slack-runtime.d.ts +13 -3
- package/dist/chat/runtime/turn.d.ts +17 -3
- package/dist/chat/sandbox/egress-credentials.d.ts +5 -2
- package/dist/chat/sandbox/egress-policy.d.ts +5 -1
- package/dist/chat/sandbox/egress-proxy.d.ts +2 -0
- package/dist/chat/sandbox/egress-schemas.d.ts +4 -0
- package/dist/chat/sandbox/egress-session.d.ts +3 -1
- package/dist/chat/sandbox/egress-tracing.d.ts +7 -0
- package/dist/chat/sandbox/sandbox.d.ts +2 -0
- package/dist/chat/sandbox/session.d.ts +3 -2
- package/dist/chat/services/agent-continue.d.ts +27 -0
- package/dist/chat/services/auth-pause-response.d.ts +1 -1
- package/dist/chat/services/auth-pause.d.ts +2 -1
- package/dist/chat/services/mcp-auth-orchestration.d.ts +1 -1
- package/dist/chat/services/message-actor-identity.d.ts +12 -4
- package/dist/chat/services/plugin-auth-orchestration.d.ts +9 -8
- package/dist/chat/services/turn-result.d.ts +3 -0
- package/dist/chat/services/turn-session-record.d.ts +10 -7
- package/dist/chat/slack/user.d.ts +4 -4
- package/dist/chat/state/adapter.d.ts +2 -0
- package/dist/chat/state/conversation-details.d.ts +4 -3
- package/dist/chat/state/session-log.d.ts +43 -0
- package/dist/chat/state/turn-session.d.ts +7 -10
- package/dist/chat/task-execution/slack-work.d.ts +5 -5
- package/dist/chat/task-execution/store.d.ts +83 -48
- package/dist/chat/task-execution/worker.d.ts +3 -3
- package/dist/chat/tools/definition.d.ts +3 -0
- package/dist/chat/tools/execution/tool-error-handler.d.ts +2 -1
- package/dist/chat/tools/slack/canvas-tools.d.ts +3 -2
- package/dist/chat/tools/slack/channel-list-messages.d.ts +2 -2
- package/dist/chat/tools/slack/channel-post-message.d.ts +3 -2
- package/dist/chat/tools/slack/context.d.ts +15 -2
- package/dist/chat/tools/slack/message-add-reaction.d.ts +3 -2
- package/dist/chat/tools/slack/thread-read.d.ts +2 -2
- package/dist/chat/tools/types.d.ts +20 -23
- package/dist/{chunk-BBXYXOJW.js → chunk-3BYAPS6B.js} +48 -529
- package/dist/{chunk-UXG6TU2U.js → chunk-7Q5YOUUT.js} +16 -93
- package/dist/chunk-AL5T52ZD.js +1119 -0
- package/dist/chunk-CYUI7JU5.js +195 -0
- package/dist/{chunk-R62YWUNO.js → chunk-DIMX5F3T.js} +10 -28
- package/dist/chunk-G3E7SCME.js +28 -0
- package/dist/chunk-KVZL5NZS.js +519 -0
- package/dist/chunk-M4FLLXXD.js +212 -0
- package/dist/chunk-OQSYYOLM.js +12787 -0
- package/dist/{chunk-GT67ZWZQ.js → chunk-OR6NQJ5E.js} +5 -3
- package/dist/{chunk-B5HKWWQB.js → chunk-RY6AL5C7.js} +8 -6
- package/dist/chunk-SJHUF3DP.js +43 -0
- package/dist/{chunk-XE2VFQQN.js → chunk-UOTZ3EEQ.js} +1 -1
- package/dist/{chunk-HOGQL2H6.js → chunk-UZVHXZ7V.js} +1357 -1486
- package/dist/{chunk-76YMBKW7.js → chunk-V4VYUY4A.js} +27 -14
- package/dist/{chunk-JS4HURDT.js → chunk-WS2EG3GW.js} +224 -224
- package/dist/chunk-ZDA2HYX5.js +275 -0
- package/dist/cli/chat.js +205 -0
- package/dist/cli/check.js +6 -5
- package/dist/cli/run.js +18 -2
- package/dist/cli/snapshot-warmup.js +11 -8
- package/dist/cli/upgrade.js +599 -0
- package/dist/deployment.d.ts +4 -0
- package/dist/handlers/agent-dispatch.d.ts +6 -1
- package/dist/handlers/mcp-oauth-callback.d.ts +6 -1
- package/dist/handlers/oauth-callback.d.ts +6 -1
- package/dist/handlers/sandbox-egress-proxy.d.ts +2 -0
- package/dist/handlers/webhooks.d.ts +4 -2
- package/dist/instrumentation.js +17 -2
- package/dist/nitro.d.ts +1 -1
- package/dist/nitro.js +10 -10
- package/dist/plugins.d.ts +1 -1
- package/dist/reporting/conversations.d.ts +116 -0
- package/dist/reporting.d.ts +24 -129
- package/dist/reporting.js +320 -166
- package/dist/runner-LMAM4OGD.js +259 -0
- package/package.json +3 -3
- package/dist/chat/runtime/timeout-resume-runner.d.ts +0 -19
- package/dist/chat/services/requester-identity.d.ts +0 -19
- package/dist/chat/services/timeout-resume.d.ts +0 -23
- package/dist/chunk-6YY4Q3D4.js +0 -12
- package/dist/chunk-Z3YD6NHK.js +0 -12
- package/dist/handlers/turn-resume.d.ts +0 -4
package/dist/instrumentation.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
|
+
getDeploymentServiceVersion,
|
|
3
|
+
getDeploymentTelemetryAttributes,
|
|
2
4
|
sentry_exports
|
|
3
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-SJHUF3DP.js";
|
|
4
6
|
import "./chunk-2KG3PWR4.js";
|
|
5
7
|
|
|
6
8
|
// src/instrumentation.ts
|
|
@@ -22,16 +24,29 @@ function initSentry() {
|
|
|
22
24
|
}
|
|
23
25
|
const dsn = process.env.SENTRY_DSN;
|
|
24
26
|
const enableLogs = getBoolean(process.env.SENTRY_ENABLE_LOGS, Boolean(dsn));
|
|
27
|
+
const serviceVersion = getDeploymentServiceVersion();
|
|
28
|
+
const deploymentSpanAttributes = getDeploymentTelemetryAttributes();
|
|
25
29
|
sentry_exports.init({
|
|
26
30
|
dsn,
|
|
27
31
|
environment: process.env.SENTRY_ENVIRONMENT ?? process.env.VERCEL_ENV ?? process.env.NODE_ENV,
|
|
28
|
-
release:
|
|
32
|
+
release: serviceVersion,
|
|
29
33
|
tracesSampleRate: getSampleRate(process.env.SENTRY_TRACES_SAMPLE_RATE, 1),
|
|
30
34
|
sendDefaultPii: true,
|
|
31
35
|
enabled: Boolean(dsn),
|
|
32
36
|
enableLogs,
|
|
33
37
|
registerEsmLoaderHooks: false,
|
|
34
38
|
streamGenAiSpans: true,
|
|
39
|
+
// Keep deployment identity centralized so every emitted Sentry span carries it.
|
|
40
|
+
beforeSendSpan(span) {
|
|
41
|
+
if (Object.keys(deploymentSpanAttributes).length === 0) {
|
|
42
|
+
return span;
|
|
43
|
+
}
|
|
44
|
+
span.data = {
|
|
45
|
+
...span.data,
|
|
46
|
+
...deploymentSpanAttributes
|
|
47
|
+
};
|
|
48
|
+
return span;
|
|
49
|
+
},
|
|
35
50
|
integrations: [
|
|
36
51
|
sentry_exports.vercelAIIntegration({
|
|
37
52
|
recordInputs: true,
|
package/dist/nitro.d.ts
CHANGED
package/dist/nitro.js
CHANGED
|
@@ -2,20 +2,20 @@ import {
|
|
|
2
2
|
pluginCatalogConfigFromPluginSet,
|
|
3
3
|
pluginHookRegistrationsFromPluginSet,
|
|
4
4
|
resolveConversationWorkQueueTopic
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import {
|
|
8
|
-
JUNIOR_CONVERSATION_WORK_CALLBACK_ROUTE,
|
|
9
|
-
JUNIOR_HEARTBEAT_CRON_SCHEDULE,
|
|
10
|
-
JUNIOR_HEARTBEAT_ROUTE
|
|
11
|
-
} from "./chunk-6YY4Q3D4.js";
|
|
12
|
-
import "./chunk-JS4HURDT.js";
|
|
5
|
+
} from "./chunk-UOTZ3EEQ.js";
|
|
6
|
+
import "./chunk-V4VYUY4A.js";
|
|
13
7
|
import {
|
|
14
8
|
discoverInstalledPluginPackageContent,
|
|
15
9
|
isValidPackageName,
|
|
16
10
|
resolvePackageDir
|
|
17
|
-
} from "./chunk-
|
|
18
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-KVZL5NZS.js";
|
|
12
|
+
import "./chunk-WS2EG3GW.js";
|
|
13
|
+
import "./chunk-3BYAPS6B.js";
|
|
14
|
+
import {
|
|
15
|
+
JUNIOR_CONVERSATION_WORK_CALLBACK_ROUTE,
|
|
16
|
+
JUNIOR_HEARTBEAT_CRON_SCHEDULE,
|
|
17
|
+
JUNIOR_HEARTBEAT_ROUTE
|
|
18
|
+
} from "./chunk-SJHUF3DP.js";
|
|
19
19
|
import "./chunk-2KG3PWR4.js";
|
|
20
20
|
|
|
21
21
|
// src/nitro.ts
|
package/dist/plugins.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { JuniorPluginRegistration } from "@sentry/junior-plugin-api";
|
|
2
|
-
import type { PluginCatalogConfig, PluginManifestConfig } from "
|
|
2
|
+
import type { PluginCatalogConfig, PluginManifestConfig } from "./chat/plugins/types";
|
|
3
3
|
export type JuniorPluginInput = JuniorPluginRegistration | string;
|
|
4
4
|
export interface JuniorPluginSetOptions {
|
|
5
5
|
/** Install-level manifest overrides applied before validation. */
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
export type ConversationReportStatus = "active" | "completed" | "failed" | "hung" | "superseded";
|
|
2
|
+
export type ConversationSurface = "api" | "internal" | "scheduler" | "slack";
|
|
3
|
+
export interface ConversationUsage {
|
|
4
|
+
inputTokens?: number;
|
|
5
|
+
outputTokens?: number;
|
|
6
|
+
cachedInputTokens?: number;
|
|
7
|
+
cacheCreationTokens?: number;
|
|
8
|
+
totalTokens?: number;
|
|
9
|
+
}
|
|
10
|
+
export interface RequesterIdentity {
|
|
11
|
+
email?: string;
|
|
12
|
+
fullName?: string;
|
|
13
|
+
slackUserId?: string;
|
|
14
|
+
slackUserName?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface ConversationSummaryReport {
|
|
17
|
+
/** Always-populated display title, with privacy redaction applied first. */
|
|
18
|
+
displayTitle: string;
|
|
19
|
+
cumulativeDurationMs: number;
|
|
20
|
+
cumulativeUsage?: ConversationUsage;
|
|
21
|
+
conversationId: string;
|
|
22
|
+
id: string;
|
|
23
|
+
status: ConversationReportStatus;
|
|
24
|
+
startedAt: string;
|
|
25
|
+
lastSeenAt: string;
|
|
26
|
+
lastProgressAt: string;
|
|
27
|
+
completedAt?: string;
|
|
28
|
+
surface: ConversationSurface;
|
|
29
|
+
requesterIdentity?: RequesterIdentity;
|
|
30
|
+
channel?: string;
|
|
31
|
+
channelName?: string;
|
|
32
|
+
sentryConversationUrl?: string;
|
|
33
|
+
sentryTraceUrl?: string;
|
|
34
|
+
traceId?: string;
|
|
35
|
+
}
|
|
36
|
+
export type TranscriptPartType = "text" | "thinking" | "tool_call" | "tool_result" | "unknown";
|
|
37
|
+
export interface TranscriptPart {
|
|
38
|
+
bytes?: number;
|
|
39
|
+
chars?: number;
|
|
40
|
+
id?: string;
|
|
41
|
+
input?: unknown;
|
|
42
|
+
inputKeys?: string[];
|
|
43
|
+
inputSizeBytes?: number;
|
|
44
|
+
inputSizeChars?: number;
|
|
45
|
+
inputType?: string;
|
|
46
|
+
name?: string;
|
|
47
|
+
output?: unknown;
|
|
48
|
+
outputKeys?: string[];
|
|
49
|
+
outputSizeBytes?: number;
|
|
50
|
+
outputSizeChars?: number;
|
|
51
|
+
outputType?: string;
|
|
52
|
+
redacted?: boolean;
|
|
53
|
+
sourceType?: string;
|
|
54
|
+
text?: string;
|
|
55
|
+
type: TranscriptPartType;
|
|
56
|
+
}
|
|
57
|
+
export type TranscriptRole = "assistant" | "system" | "tool" | "toolResult" | "unknown" | "user";
|
|
58
|
+
export interface TranscriptMessage {
|
|
59
|
+
parts: TranscriptPart[];
|
|
60
|
+
role: TranscriptRole;
|
|
61
|
+
timestamp?: number;
|
|
62
|
+
}
|
|
63
|
+
export interface ConversationRunReport extends ConversationSummaryReport {
|
|
64
|
+
transcriptAvailable: boolean;
|
|
65
|
+
transcriptMetadata?: TranscriptMessage[];
|
|
66
|
+
transcriptMessageCount?: number;
|
|
67
|
+
transcriptRedacted?: boolean;
|
|
68
|
+
transcriptRedactionReason?: "non_public_conversation";
|
|
69
|
+
transcript: TranscriptMessage[];
|
|
70
|
+
}
|
|
71
|
+
export interface ConversationReport {
|
|
72
|
+
conversationId: string;
|
|
73
|
+
/** Always-populated display title, computed the same way as per-run reports. */
|
|
74
|
+
displayTitle: string;
|
|
75
|
+
generatedAt: string;
|
|
76
|
+
runs: ConversationRunReport[];
|
|
77
|
+
}
|
|
78
|
+
export interface ConversationFeed {
|
|
79
|
+
sessions: ConversationSummaryReport[];
|
|
80
|
+
source: "conversation_index";
|
|
81
|
+
generatedAt: string;
|
|
82
|
+
}
|
|
83
|
+
export interface ConversationStatsItem {
|
|
84
|
+
active: number;
|
|
85
|
+
conversations: number;
|
|
86
|
+
durationMs: number;
|
|
87
|
+
failed: number;
|
|
88
|
+
hung: number;
|
|
89
|
+
label: string;
|
|
90
|
+
runs: number;
|
|
91
|
+
tokens?: number;
|
|
92
|
+
}
|
|
93
|
+
export interface ConversationStatsReport {
|
|
94
|
+
active: number;
|
|
95
|
+
conversations: number;
|
|
96
|
+
durationMs: number;
|
|
97
|
+
failed: number;
|
|
98
|
+
generatedAt: string;
|
|
99
|
+
hung: number;
|
|
100
|
+
locations: ConversationStatsItem[];
|
|
101
|
+
requesters: ConversationStatsItem[];
|
|
102
|
+
sampleLimit: number;
|
|
103
|
+
sampleSize: number;
|
|
104
|
+
source: "conversation_index";
|
|
105
|
+
tokens?: number;
|
|
106
|
+
truncated: boolean;
|
|
107
|
+
runs: number;
|
|
108
|
+
windowEnd: string;
|
|
109
|
+
windowStart: string;
|
|
110
|
+
}
|
|
111
|
+
/** Read the recent conversation feed for reporting consumers. */
|
|
112
|
+
export declare function readConversationFeed(): Promise<ConversationFeed>;
|
|
113
|
+
/** Read aggregate conversation statistics for reporting consumers. */
|
|
114
|
+
export declare function readConversationStatsReport(): Promise<ConversationStatsReport>;
|
|
115
|
+
/** Read one conversation transcript for reporting consumers. */
|
|
116
|
+
export declare function readConversationReport(conversationId: string): Promise<ConversationReport>;
|
package/dist/reporting.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { getPluginPackageContent } from "@/chat/plugins/registry";
|
|
2
|
-
import { type AgentTurnSurface } from "@/chat/state/turn-session";
|
|
3
1
|
import type { PluginOperationalReport } from "@sentry/junior-plugin-api";
|
|
2
|
+
import { type ConversationFeed, type ConversationReport, type ConversationStatsReport } from "./reporting/conversations";
|
|
3
|
+
export type { ConversationFeed, ConversationReport, ConversationReportStatus, ConversationRunReport, ConversationStatsItem, ConversationStatsReport, ConversationSummaryReport, ConversationSurface, ConversationUsage, RequesterIdentity, TranscriptMessage, TranscriptPart, TranscriptPartType, TranscriptRole, } from "./reporting/conversations";
|
|
4
4
|
export interface HealthReport {
|
|
5
5
|
status: "ok";
|
|
6
6
|
service: string;
|
|
@@ -19,119 +19,19 @@ export interface RuntimeInfoReport {
|
|
|
19
19
|
descriptionText?: string;
|
|
20
20
|
providers: string[];
|
|
21
21
|
skills: SkillReport[];
|
|
22
|
-
packagedContent:
|
|
22
|
+
packagedContent: PluginPackageContentReport;
|
|
23
23
|
}
|
|
24
|
-
export
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
outputTokens?: number;
|
|
29
|
-
cachedInputTokens?: number;
|
|
30
|
-
cacheCreationTokens?: number;
|
|
31
|
-
totalTokens?: number;
|
|
32
|
-
}
|
|
33
|
-
export interface DashboardRequesterIdentity {
|
|
34
|
-
email?: string;
|
|
35
|
-
fullName?: string;
|
|
36
|
-
slackUserId?: string;
|
|
37
|
-
slackUserName?: string;
|
|
38
|
-
}
|
|
39
|
-
export interface DashboardSessionReport {
|
|
40
|
-
/** Always-populated display title. LLM-generated title when available, otherwise the
|
|
41
|
-
* Slack channel/conversation location label or a generic fallback. Privacy redaction
|
|
42
|
-
* wins over everything else for non-public conversations. */
|
|
43
|
-
displayTitle: string;
|
|
44
|
-
cumulativeDurationMs: number;
|
|
45
|
-
cumulativeUsage?: DashboardTurnUsage;
|
|
46
|
-
conversationId: string;
|
|
47
|
-
id: string;
|
|
48
|
-
status: DashboardSessionStatus;
|
|
49
|
-
startedAt: string;
|
|
50
|
-
lastSeenAt: string;
|
|
51
|
-
lastProgressAt: string;
|
|
52
|
-
completedAt?: string;
|
|
53
|
-
surface: DashboardSurface;
|
|
54
|
-
requesterIdentity?: DashboardRequesterIdentity;
|
|
55
|
-
channel?: string;
|
|
56
|
-
channelName?: string;
|
|
57
|
-
sentryConversationUrl?: string;
|
|
58
|
-
sentryTraceUrl?: string;
|
|
59
|
-
traceId?: string;
|
|
60
|
-
}
|
|
61
|
-
export type DashboardTranscriptPartType = "text" | "thinking" | "tool_call" | "tool_result" | "unknown";
|
|
62
|
-
export interface DashboardTranscriptPart {
|
|
63
|
-
bytes?: number;
|
|
64
|
-
chars?: number;
|
|
65
|
-
id?: string;
|
|
66
|
-
input?: unknown;
|
|
67
|
-
inputKeys?: string[];
|
|
68
|
-
inputSizeBytes?: number;
|
|
69
|
-
inputSizeChars?: number;
|
|
70
|
-
inputType?: string;
|
|
71
|
-
name?: string;
|
|
72
|
-
output?: unknown;
|
|
73
|
-
outputKeys?: string[];
|
|
74
|
-
outputSizeBytes?: number;
|
|
75
|
-
outputSizeChars?: number;
|
|
76
|
-
outputType?: string;
|
|
77
|
-
redacted?: boolean;
|
|
78
|
-
sourceType?: string;
|
|
79
|
-
text?: string;
|
|
80
|
-
type: DashboardTranscriptPartType;
|
|
81
|
-
}
|
|
82
|
-
export type DashboardTranscriptRole = "assistant" | "system" | "tool" | "toolResult" | "unknown" | "user";
|
|
83
|
-
export interface DashboardTranscriptMessage {
|
|
84
|
-
parts: DashboardTranscriptPart[];
|
|
85
|
-
role: DashboardTranscriptRole;
|
|
86
|
-
timestamp?: number;
|
|
87
|
-
}
|
|
88
|
-
export interface DashboardTurnReport extends DashboardSessionReport {
|
|
89
|
-
transcriptAvailable: boolean;
|
|
90
|
-
transcriptMetadata?: DashboardTranscriptMessage[];
|
|
91
|
-
transcriptMessageCount?: number;
|
|
92
|
-
transcriptRedacted?: boolean;
|
|
93
|
-
transcriptRedactionReason?: "non_public_conversation";
|
|
94
|
-
transcript: DashboardTranscriptMessage[];
|
|
95
|
-
}
|
|
96
|
-
export interface DashboardConversationReport {
|
|
97
|
-
conversationId: string;
|
|
98
|
-
/** Always-populated display title, computed the same way as DashboardSessionReport.displayTitle. */
|
|
99
|
-
displayTitle: string;
|
|
100
|
-
generatedAt: string;
|
|
101
|
-
turns: DashboardTurnReport[];
|
|
102
|
-
}
|
|
103
|
-
export interface DashboardSessionFeed {
|
|
104
|
-
sessions: DashboardSessionReport[];
|
|
105
|
-
source: "turn_session_records";
|
|
106
|
-
generatedAt: string;
|
|
107
|
-
}
|
|
108
|
-
export interface DashboardConversationStatsItem {
|
|
109
|
-
active: number;
|
|
110
|
-
conversations: number;
|
|
111
|
-
durationMs: number;
|
|
112
|
-
failed: number;
|
|
113
|
-
hung: number;
|
|
114
|
-
label: string;
|
|
115
|
-
tokens?: number;
|
|
116
|
-
turns: number;
|
|
24
|
+
export interface PluginPackageContentItemReport {
|
|
25
|
+
dir: string;
|
|
26
|
+
hasSkillsDir: boolean;
|
|
27
|
+
name: string;
|
|
117
28
|
}
|
|
118
|
-
export interface
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
hung: number;
|
|
125
|
-
locations: DashboardConversationStatsItem[];
|
|
126
|
-
requesters: DashboardConversationStatsItem[];
|
|
127
|
-
sampleLimit: number;
|
|
128
|
-
sampleSize: number;
|
|
129
|
-
source: "turn_session_records";
|
|
130
|
-
tokens?: number;
|
|
131
|
-
truncated: boolean;
|
|
132
|
-
turns: number;
|
|
133
|
-
windowEnd: string;
|
|
134
|
-
windowStart: string;
|
|
29
|
+
export interface PluginPackageContentReport {
|
|
30
|
+
packageNames: string[];
|
|
31
|
+
packages: PluginPackageContentItemReport[];
|
|
32
|
+
manifestRoots: string[];
|
|
33
|
+
skillRoots: string[];
|
|
34
|
+
tracingIncludes: string[];
|
|
135
35
|
}
|
|
136
36
|
export type { PluginOperationalReport } from "@sentry/junior-plugin-api";
|
|
137
37
|
export interface PluginOperationalReportFeed {
|
|
@@ -142,34 +42,29 @@ export interface PluginOperationalReportFeed {
|
|
|
142
42
|
export interface JuniorReporting {
|
|
143
43
|
/** Read the public runtime health snapshot without exposing discovery data. */
|
|
144
44
|
getHealth(): Promise<HealthReport>;
|
|
145
|
-
/** Read authenticated
|
|
45
|
+
/** Read authenticated runtime discovery data for reporting consumers. */
|
|
146
46
|
getRuntimeInfo(): Promise<RuntimeInfoReport>;
|
|
147
|
-
/** Read configured plugin names for
|
|
47
|
+
/** Read configured plugin names for reporting consumers. */
|
|
148
48
|
getPlugins(): Promise<PluginReport[]>;
|
|
149
|
-
/** Read discovered skill names for
|
|
49
|
+
/** Read discovered skill names for reporting consumers. */
|
|
150
50
|
getSkills(): Promise<SkillReport[]>;
|
|
151
|
-
/**
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
* actor, route, usage, and links that can later be reconstructed from spans.
|
|
156
|
-
*/
|
|
157
|
-
getSessions(): Promise<DashboardSessionFeed>;
|
|
158
|
-
/** Read aggregate conversation stats for authenticated dashboard views. */
|
|
159
|
-
getConversationStats?(): Promise<DashboardConversationStatsReport>;
|
|
51
|
+
/** Read recent conversation summaries for reporting consumers. */
|
|
52
|
+
getSessions(): Promise<ConversationFeed>;
|
|
53
|
+
/** Read aggregate conversation stats for reporting consumers. */
|
|
54
|
+
getConversationStats?(): Promise<ConversationStatsReport>;
|
|
160
55
|
/** Read sanitized operational summaries contributed by plugins. */
|
|
161
56
|
getPluginOperationalReports?(): Promise<PluginOperationalReportFeed>;
|
|
162
57
|
/**
|
|
163
|
-
* Read one conversation transcript for
|
|
58
|
+
* Read one conversation transcript for reporting consumers.
|
|
164
59
|
*
|
|
165
60
|
* The current implementation joins turn-session records with expiring session
|
|
166
61
|
* logs, but the API should stay compatible with a future Sentry trace-history
|
|
167
62
|
* source. Avoid adding fields that require Redis-only transcript internals.
|
|
168
63
|
*/
|
|
169
|
-
getConversation(conversationId: string): Promise<
|
|
64
|
+
getConversation(conversationId: string): Promise<ConversationReport>;
|
|
170
65
|
}
|
|
171
|
-
/** Create the read-only reporting boundary used by
|
|
66
|
+
/** Create the read-only reporting boundary used by plugins and other consumers. */
|
|
172
67
|
export declare function createJuniorReporting(): JuniorReporting & {
|
|
173
|
-
getConversationStats(): Promise<
|
|
68
|
+
getConversationStats(): Promise<ConversationStatsReport>;
|
|
174
69
|
getPluginOperationalReports(): Promise<PluginOperationalReportFeed>;
|
|
175
70
|
};
|