@sentry/junior 0.226.0 → 0.227.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-FUetyyLe.js → agent-hooks-bEwEJhlg.js} +218 -11
- package/dist/{agent-runner-DEF7auSj.js → agent-runner-BGDSjciH.js} +114 -73
- package/dist/api/schema.d.ts +65 -6
- package/dist/api/schema.js +3 -3
- package/dist/api.js +52 -31
- package/dist/{app-TVL42pGL.d.ts → app-CjRIKZb5.d.ts} +1 -1
- package/dist/app.d.ts +1 -1
- package/dist/app.js +208 -136
- package/dist/{briefs-Cb4T2BUI.js → briefs-BkM_ZW4B.js} +4 -4
- package/dist/{catalog-runtime-BYGR3Dr4.js → catalog-runtime-Cw9V2jpn.js} +1 -1
- package/dist/{checkpoint-CJe-dZFF.js → checkpoint-oZYD3-Ar.js} +7 -7
- package/dist/cli/chat.js +13 -13
- package/dist/cli/check.js +3 -3
- package/dist/cli/main.js +1 -1
- package/dist/cli/plugins.js +3 -3
- package/dist/cli/snapshot-create.js +3 -3
- package/dist/cli/upgrade.js +3 -3
- package/dist/{client-C2WBBx7m.js → client-Pcxo3lGn.js} +2 -2
- package/dist/{config-Bws6Rpsh.js → config-CYvEow1F.js} +2 -2
- package/dist/{context-Bplcgypl.js → context-0Et9iVSB.js} +1 -1
- package/dist/{conversation-DPbmIwjy.js → conversation-BnhOMfEB.js} +49 -22
- package/dist/{conversation-privacy-pCcW0a5Y.js → conversation-privacy-hQmyZbOC.js} +1 -1
- package/dist/{credential-sync-ibuNsMyl.js → credential-sync-CUGbiiCM.js} +14 -14
- package/dist/{executor-D36FWjcf.js → executor-BXMlFrV6.js} +1 -1
- package/dist/{history-DI9KJT3J.d.ts → history-nukv1YN8.d.ts} +26 -1
- package/dist/images-8siTAUNW.js +82 -0
- package/dist/instrumentation.js +2 -2
- package/dist/{job-queue-2mFFDMHB.js → job-queue-AI0_QAgc.js} +1 -1
- package/dist/{logging-CvjMHRvg.js → logging-BPBx6WF-.js} +1 -1
- package/dist/nitro.d.ts +1 -1
- package/dist/nitro.js +3 -3
- package/dist/{oauth-authorization-l4O1rXsL.js → oauth-authorization-Cq1GaLIP.js} +1 -1
- package/dist/{oauth-callback-server-Ds8M5FFX.js → oauth-callback-server-CnF03VYh.js} +2 -2
- package/dist/{pending-auth-DLNJbD8H.js → pending-auth-CHUjr_6d.js} +1 -1
- package/dist/{profile-dvV7PB7u.js → profile-upzC-wN1.js} +4 -4
- package/dist/{prompt-DehgjkO5.js → prompt-CZIQcPHy.js} +1 -1
- package/dist/{registry-C6FHctIu.js → registry-DM5aMhjm.js} +2 -2
- package/dist/{resolve-DqwGI9wq.js → resolve-sF6Lg7Ay.js} +2 -2
- package/dist/{runner-CzYEcB73.js → runner-Bu2wYpK8.js} +10 -10
- package/dist/{sandbox-egress-signals-BZOv0fns.js → sandbox-egress-signals-Dgerhizb.js} +1 -1
- package/dist/{schema-BZg-xzfG.js → schema-BSiwcvjm.js} +1 -1
- package/dist/{skills-EhiVbjF4.js → skills-CAI5s___.js} +2 -2
- package/dist/{spawn-Ck3L0rEr.js → spawn-DRK9TBgY.js} +2 -2
- package/dist/{task-queue-TXhAWQwj.js → task-queue-iuDAqfZg.js} +3 -3
- package/dist/{task-runner-axUJS1No.js → task-runner-S3QtH38c.js} +10 -10
- package/dist/{thread-state-CTuWhjru.js → thread-state-C_arVuaN.js} +5 -5
- package/dist/{turn-failure-response-csVoLOzx.js → turn-failure-response-DarwGYgC.js} +9 -9
- package/dist/{turn-lifecycle-C1S6vELh.js → turn-lifecycle-CdiIejXH.js} +1 -1
- package/dist/{turn-session-routing-5RejBvit.js → turn-session-routing-DyLGd_wU.js} +1 -1
- package/dist/{validation-q2PFxkTQ.js → validation-BMig74Zp.js} +1 -1
- package/dist/{version-ByLtIYyy.js → version-lhQSfLjx.js} +1 -1
- package/dist/version.js +1 -1
- package/dist/{web-authorization-Biy8nsS7.js → web-authorization-r2lKYKJ2.js} +6 -6
- package/dist/{web-input-DM9LaEdn.js → web-input-BU-Fu7iq.js} +46 -36
- package/dist/{work-QrbHdXTc.js → work-B9koS8sW.js} +7 -7
- package/dist/{worker-r17aopXW.js → worker-C_iJSRgG.js} +5 -5
- package/package.json +5 -4
package/dist/api.js
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { d as logException, p as logWarn } from "./logging-
|
|
3
|
-
import {
|
|
4
|
-
import { $ as resolveViewerUser,
|
|
1
|
+
import { Ct as cancelHumanFacingPendingMessages, M as parseSlackThreadId, Nt as getConversation, b as readStats, k as readLiveAttachment } from "./agent-runner-BGDSjciH.js";
|
|
2
|
+
import { d as logException, p as logWarn } from "./logging-BPBx6WF-.js";
|
|
3
|
+
import { b as parseSlackMessageTs, h as parseSlackTeamId, p as parseSlackChannelId } from "./context-0Et9iVSB.js";
|
|
4
|
+
import { $ as resolveViewerUser, $t as getDb, At as conversationNotArchivedForUser, Ct as readConversationAccessFromSql, D as SANDBOX_RUNTIME, Dt as conversationHasParticipantEmail, Et as conversationArchivedForUser, Ft as buildSentryConversationUrl, J as withSlackRetries, Nt as readLatestConversationBrief, Ot as conversationHasParticipantUser, Pt as readConversationEventPage, Qt as getConversationStore, S as WorkspaceValidationError, St as createPluginLogger, Tt as conversationArchivedForEmail, U as getSlackClient, Ut as listConversationAnnotations, Wt as listConversationAnnotationsById, Z as findUserByEmail, _ as deleteWorkspace, b as listWorkspaces, dn as hasAgentTurnUsage, en as getSqlExecutor, et as updateViewerDisplayName, fn as resolveRootConversationId, g as createWorkspace, in as locationFromRow, j as workspaceRepoCheckoutPath, jt as viewerConversationMembership, kt as conversationNotArchivedForEmail, on as parseSessionSource, u as getPlugins, un as agentTurnUsageSchema, v as getWorkspace, wt as conversationArchiveTimes, x as updateWorkspace } from "./agent-hooks-bEwEJhlg.js";
|
|
5
5
|
import { n as juniorDestinations } from "./destinations-BeBiJeEM.js";
|
|
6
|
-
import { C as juniorCodeRepositories, D as juniorIdentities, E as juniorConversations, O as juniorUsers, S as juniorCodeChanges, T as conversationReadColumns, b as juniorApiTokens, g as juniorConversationBriefs, m as juniorConversationParticipants, v as juniorConversationMetrics, y as juniorConversationEvents } from "./executor-
|
|
7
|
-
import { D as createConversationBodySchema, O as createConversationMessageBodySchema, T as conversationStatsReportSchema, _ as conversationParamsSchema, a as cancelConversationPendingMessagesBodySchema, c as conversationAttachmentParamsSchema, d as conversationDetailReportSchema, g as conversationFeedSchema, h as conversationFeedQuerySchema, i as archiveConversationResponseSchema, m as conversationEventsQuerySchema, o as cancelConversationPendingMessagesResponseSchema, p as conversationEventPageSchema, r as archiveConversationBodySchema, t as acceptedConversationMessageSchema, u as conversationDetailQuerySchema, x as conversationPendingMessagesReportSchema } from "./conversation-
|
|
8
|
-
import { n as hash, t as create } from "./profile-
|
|
9
|
-
import { t as getCachedSnapshot } from "./resolve-
|
|
10
|
-
import { a as getVercelConversationWorkQueue } from "./job-queue-
|
|
6
|
+
import { C as juniorCodeRepositories, D as juniorIdentities, E as juniorConversations, O as juniorUsers, S as juniorCodeChanges, T as conversationReadColumns, b as juniorApiTokens, g as juniorConversationBriefs, m as juniorConversationParticipants, v as juniorConversationMetrics, y as juniorConversationEvents } from "./executor-BXMlFrV6.js";
|
|
7
|
+
import { D as createConversationBodySchema, I as readMessageAttachments, L as INPUT_IMAGE_TYPES, O as createConversationMessageBodySchema, T as conversationStatsReportSchema, _ as conversationParamsSchema, a as cancelConversationPendingMessagesBodySchema, c as conversationAttachmentParamsSchema, d as conversationDetailReportSchema, g as conversationFeedSchema, h as conversationFeedQuerySchema, i as archiveConversationResponseSchema, m as conversationEventsQuerySchema, o as cancelConversationPendingMessagesResponseSchema, p as conversationEventPageSchema, r as archiveConversationBodySchema, t as acceptedConversationMessageSchema, u as conversationDetailQuerySchema, x as conversationPendingMessagesReportSchema } from "./conversation-BnhOMfEB.js";
|
|
8
|
+
import { n as hash, t as create } from "./profile-upzC-wN1.js";
|
|
9
|
+
import { t as getCachedSnapshot } from "./resolve-sF6Lg7Ay.js";
|
|
10
|
+
import { a as getVercelConversationWorkQueue } from "./job-queue-AI0_QAgc.js";
|
|
11
11
|
import { C as skillReportsSchema, a as fillUtcHours, b as pluginsSchema, c as sumUtcHoursIntoSixHours, d as trailingUtcSixHourWindow, f as utcDayKey, h as pluginOperationalReportFeedSchema, i as fillUtcDays, l as trailingUtcDayWindow, m as healthReportSchema, n as DAY_MS$1, o as fillUtcSixHours, p as utcHourKey, r as HOUR_MS$1, s as startOfUtcHour, u as trailingUtcHourWindow, x as runtimeInfoReportSchema } from "./web-message-id-xPI_EFSC.js";
|
|
12
|
-
import { F as createVercelAttachmentStorage, _ as readViewerAutomations, a as webActorFromEmail, b as clearSlackPendingReactions, c as getProductionSlackAdapter, d as ViewerTaskNotFoundError, f as deleteViewerTask, h as readViewerAutomationRuns, k as legacyWebMailboxMetadataSchema, l as formatSlackConversationRedactedLabel, m as readViewerAutomationExecutions, p as readConversationSourceTask, r as createAndEnqueueConversation, t as appendAndEnqueueWebMessage, u as resolveSlackConversationContextFromThreadId, x as lookupSlackUser, z as readHealthReport } from "./web-input-
|
|
13
|
-
import { A as conversationAggregateColumns, j as conversationRangeColumns, k as conversationActiveDaysColumn } from "./task-runner-
|
|
14
|
-
import { r as getWebAuthorization } from "./web-authorization-
|
|
15
|
-
import {
|
|
12
|
+
import { F as createVercelAttachmentStorage, _ as readViewerAutomations, a as webActorFromEmail, b as clearSlackPendingReactions, c as getProductionSlackAdapter, d as ViewerTaskNotFoundError, f as deleteViewerTask, h as readViewerAutomationRuns, k as legacyWebMailboxMetadataSchema, l as formatSlackConversationRedactedLabel, m as readViewerAutomationExecutions, p as readConversationSourceTask, r as createAndEnqueueConversation, t as appendAndEnqueueWebMessage, u as resolveSlackConversationContextFromThreadId, x as lookupSlackUser, z as readHealthReport } from "./web-input-BU-Fu7iq.js";
|
|
13
|
+
import { A as conversationAggregateColumns, j as conversationRangeColumns, k as conversationActiveDaysColumn } from "./task-runner-S3QtH38c.js";
|
|
14
|
+
import { r as getWebAuthorization } from "./web-authorization-r2lKYKJ2.js";
|
|
15
|
+
import { t as decodeInputImages } from "./images-8siTAUNW.js";
|
|
16
|
+
import { A as actorProfileReportSchema, C as createPersonalTokenBodySchema, D as personalTokenParamsSchema, F as locationDirectoryReportSchema, G as codePersonReportSchema, I as locationParamsSchema, L as activityDays$1, M as personalSpendReportSchema, O as revokePersonalTokenResponseSchema, P as locationDetailReportSchema, R as activityHours$1, T as personalTokenListSchema, W as codeOverviewReportSchema, _ as automationRunListSchema, a as workspaceBodySchema, g as automationParamsSchema, h as automationListSchema, i as deleteWorkspaceResponseSchema, j as personParamsSchema, k as actorDirectoryReportSchema, l as workspaceSchema, m as automationListQuerySchema, n as statsReportSchema, o as workspaceListSchema, q as apiErrorSchema, s as workspaceParamsSchema, u as automationExecutionListSchema, w as createdPersonalTokenSchema, z as activitySixHours$1 } from "./schema-BSiwcvjm.js";
|
|
16
17
|
import { Hono } from "hono";
|
|
17
18
|
import path from "node:path";
|
|
18
19
|
import { z } from "zod";
|
|
@@ -22,6 +23,7 @@ import { conversationSidebarAnnotationSchema, pluginUserPageContentSchema, plugi
|
|
|
22
23
|
import { alias } from "drizzle-orm/pg-core";
|
|
23
24
|
import { readFileSync } from "node:fs";
|
|
24
25
|
import { HTTPException } from "hono/http-exception";
|
|
26
|
+
import { bodyLimit } from "hono/body-limit";
|
|
25
27
|
import { zValidator } from "@hono/zod-validator";
|
|
26
28
|
import { createMiddleware } from "hono/factory";
|
|
27
29
|
//#region src/api/http.ts
|
|
@@ -125,11 +127,8 @@ async function archiveConversation(viewer, conversationId, body) {
|
|
|
125
127
|
}
|
|
126
128
|
//#endregion
|
|
127
129
|
//#region src/api/conversations/attachments.ts
|
|
128
|
-
function mayDisplayInline(contentType) {
|
|
129
|
-
return contentType === "image/gif" || contentType === "image/jpeg" || contentType === "image/png" || contentType === "image/webp";
|
|
130
|
-
}
|
|
131
130
|
function contentDisposition(filename, contentType) {
|
|
132
|
-
return `${
|
|
131
|
+
return `${INPUT_IMAGE_TYPES.some((type) => type === contentType) ? "inline" : "attachment"}; filename="${filename.replace(/[^\x20-\x7e]|["\\]/g, "_")}"; filename*=UTF-8''${encodeURIComponent(filename)}`;
|
|
133
132
|
}
|
|
134
133
|
/** Build response headers for one conversation attachment body. */
|
|
135
134
|
function conversationAttachmentHeaders(args) {
|
|
@@ -170,6 +169,14 @@ async function requireConversationAttachment(args) {
|
|
|
170
169
|
}
|
|
171
170
|
//#endregion
|
|
172
171
|
//#region src/api/conversations/create.ts
|
|
172
|
+
/** Turn image validation failures into request errors before accepting work. */
|
|
173
|
+
function parseImages(images) {
|
|
174
|
+
try {
|
|
175
|
+
return decodeInputImages(images ?? []);
|
|
176
|
+
} catch (error) {
|
|
177
|
+
throwApiError(400, error instanceof Error ? error.message : "Unable to read images.");
|
|
178
|
+
}
|
|
179
|
+
}
|
|
173
180
|
function actorFromViewer(viewer) {
|
|
174
181
|
const normalized = viewer.email.trim().toLowerCase();
|
|
175
182
|
return webActorFromEmail(normalized, {
|
|
@@ -178,15 +185,18 @@ function actorFromViewer(viewer) {
|
|
|
178
185
|
});
|
|
179
186
|
}
|
|
180
187
|
/** Create a dashboard root conversation and enqueue its first message. */
|
|
181
|
-
async function createConversationForViewer(viewer, body) {
|
|
188
|
+
async function createConversationForViewer(viewer, body, attachmentStorage) {
|
|
189
|
+
const images = parseImages(body.images);
|
|
182
190
|
try {
|
|
183
191
|
return await createAndEnqueueConversation({
|
|
184
192
|
actor: actorFromViewer(viewer),
|
|
185
193
|
idempotencyKey: body.idempotencyKey,
|
|
186
194
|
message: body.message,
|
|
195
|
+
images,
|
|
187
196
|
...body.visibility ? { visibility: body.visibility } : void 0
|
|
188
197
|
}, {
|
|
189
198
|
conversationStore: getConversationStore(),
|
|
199
|
+
attachmentStorage,
|
|
190
200
|
queue: getVercelConversationWorkQueue()
|
|
191
201
|
});
|
|
192
202
|
} catch (error) {
|
|
@@ -194,20 +204,23 @@ async function createConversationForViewer(viewer, body) {
|
|
|
194
204
|
}
|
|
195
205
|
}
|
|
196
206
|
/** Append one dashboard message to an existing conversation. */
|
|
197
|
-
async function appendConversationMessageForViewer(viewer, conversationId, body) {
|
|
207
|
+
async function appendConversationMessageForViewer(viewer, conversationId, body, attachmentStorage) {
|
|
198
208
|
const conversation = await getConversationStore().get({ conversationId });
|
|
199
209
|
if (!conversation) throwApiError(404, "Conversation not found.");
|
|
200
210
|
const destinationPlatform = conversation.destination?.platform;
|
|
201
211
|
if (!(destinationPlatform === "local" && conversationId.startsWith("local:web:") || destinationPlatform === "slack")) throwApiError(409, "Conversation does not accept web messages.");
|
|
202
212
|
if (!(await readConversationAccessFromSql(getDb(), [conversationId], viewer)).get(conversationId)?.isParticipant) throwApiError(403, "Only conversation participants can add messages.");
|
|
213
|
+
const images = parseImages(body.images);
|
|
203
214
|
try {
|
|
204
215
|
return await appendAndEnqueueWebMessage({
|
|
205
216
|
actor: actorFromViewer(viewer),
|
|
206
217
|
conversationId,
|
|
207
218
|
idempotencyKey: body.idempotencyKey,
|
|
208
|
-
message: body.message
|
|
219
|
+
message: body.message,
|
|
220
|
+
images
|
|
209
221
|
}, {
|
|
210
222
|
conversationStore: getConversationStore(),
|
|
223
|
+
attachmentStorage,
|
|
211
224
|
queue: getVercelConversationWorkQueue()
|
|
212
225
|
});
|
|
213
226
|
} catch (error) {
|
|
@@ -1338,7 +1351,8 @@ async function projectPendingMessage(message, canExposePayload) {
|
|
|
1338
1351
|
const metadata = legacyWebMailboxMetadataSchema.safeParse(message.input.metadata);
|
|
1339
1352
|
if (!metadata.success) return void 0;
|
|
1340
1353
|
const text = message.input.text.trim();
|
|
1341
|
-
|
|
1354
|
+
const attachments = readMessageAttachments(message.input.attachments);
|
|
1355
|
+
if (!text && !attachments.length) return void 0;
|
|
1342
1356
|
return {
|
|
1343
1357
|
createdAt: isoFromMs(message.createdAtMs),
|
|
1344
1358
|
delivery: message.delivery,
|
|
@@ -1349,7 +1363,8 @@ async function projectPendingMessage(message, canExposePayload) {
|
|
|
1349
1363
|
source: "web",
|
|
1350
1364
|
...canExposePayload ? {
|
|
1351
1365
|
actorIdentity: actorIdentityFromWebMetadata(metadata.data),
|
|
1352
|
-
text
|
|
1366
|
+
text,
|
|
1367
|
+
...attachments.length ? { attachments } : void 0
|
|
1353
1368
|
} : { redacted: true }
|
|
1354
1369
|
};
|
|
1355
1370
|
}
|
|
@@ -1780,6 +1795,12 @@ async function readConversationStats() {
|
|
|
1780
1795
|
/** Create the HTTP routes owned by the conversations API. */
|
|
1781
1796
|
function createConversationRoutes(options) {
|
|
1782
1797
|
const app = new Hono();
|
|
1798
|
+
const messageBodyLimit = bodyLimit({
|
|
1799
|
+
maxSize: 445e4,
|
|
1800
|
+
onError: () => {
|
|
1801
|
+
throwApiError(413, "Images must total 3 MB or less.");
|
|
1802
|
+
}
|
|
1803
|
+
});
|
|
1783
1804
|
app.get("/", validateRequest("query", conversationFeedQuerySchema, "Invalid query parameters."), async (context) => {
|
|
1784
1805
|
const { actorEmail, q, status } = context.req.valid("query");
|
|
1785
1806
|
const viewer = context.get("viewer");
|
|
@@ -1791,16 +1812,16 @@ function createConversationRoutes(options) {
|
|
|
1791
1812
|
}));
|
|
1792
1813
|
});
|
|
1793
1814
|
app.get("/stats", async () => jsonResponse(conversationStatsReportSchema, await readConversationStats()));
|
|
1794
|
-
app.post("/", requireViewer, validateRequest("json", createConversationBodySchema, "Invalid request body."), async (context) => {
|
|
1815
|
+
app.post("/", requireViewer, messageBodyLimit, validateRequest("json", createConversationBodySchema, "Invalid request body."), async (context) => {
|
|
1795
1816
|
const viewer = context.get("viewer");
|
|
1796
1817
|
const body = context.req.valid("json");
|
|
1797
|
-
return jsonResponse(acceptedConversationMessageSchema, await createConversationForViewer(viewer, body));
|
|
1818
|
+
return jsonResponse(acceptedConversationMessageSchema, await createConversationForViewer(viewer, body, options.attachmentStorage));
|
|
1798
1819
|
});
|
|
1799
|
-
app.post("/:conversationId/messages", requireViewer, validateRequest("param", conversationParamsSchema, "Invalid route parameters."), validateRequest("json", createConversationMessageBodySchema, "Invalid request body."), async (context) => {
|
|
1820
|
+
app.post("/:conversationId/messages", requireViewer, messageBodyLimit, validateRequest("param", conversationParamsSchema, "Invalid route parameters."), validateRequest("json", createConversationMessageBodySchema, "Invalid request body."), async (context) => {
|
|
1800
1821
|
const viewer = context.get("viewer");
|
|
1801
1822
|
const { conversationId } = context.req.valid("param");
|
|
1802
1823
|
const body = context.req.valid("json");
|
|
1803
|
-
return jsonResponse(acceptedConversationMessageSchema, await appendConversationMessageForViewer(viewer, conversationId, body));
|
|
1824
|
+
return jsonResponse(acceptedConversationMessageSchema, await appendConversationMessageForViewer(viewer, conversationId, body, options.attachmentStorage));
|
|
1804
1825
|
});
|
|
1805
1826
|
app.patch("/:conversationId/archive", requireViewer, validateRequest("param", conversationParamsSchema, "Invalid route parameters."), validateRequest("json", archiveConversationBodySchema, "Invalid request body."), async (context) => {
|
|
1806
1827
|
const viewer = context.get("viewer");
|
|
@@ -3021,7 +3042,7 @@ async function readPeoplePluginReports(args) {
|
|
|
3021
3042
|
reports: [],
|
|
3022
3043
|
source: "plugins"
|
|
3023
3044
|
});
|
|
3024
|
-
const { getPluginProfileReports } = await import("./agent-hooks-
|
|
3045
|
+
const { getPluginProfileReports } = await import("./agent-hooks-bEwEJhlg.js").then((n) => n.t);
|
|
3025
3046
|
return pluginOperationalReportFeedSchema.parse({
|
|
3026
3047
|
generatedAt: new Date(nowMs).toISOString(),
|
|
3027
3048
|
reports: await getPluginProfileReports({
|
|
@@ -3630,7 +3651,7 @@ function readDescriptionText(home) {
|
|
|
3630
3651
|
}
|
|
3631
3652
|
/** Read discovered skill names for authenticated runtime diagnostics. */
|
|
3632
3653
|
async function readSkillReports() {
|
|
3633
|
-
const { discoverSkills } = await import("./skills-
|
|
3654
|
+
const { discoverSkills } = await import("./skills-CAI5s___.js").then((n) => n.o);
|
|
3634
3655
|
const skills = await discoverSkills();
|
|
3635
3656
|
return skillReportsSchema.parse(skills.map((skill) => ({
|
|
3636
3657
|
name: skill.name,
|
|
@@ -3639,7 +3660,7 @@ async function readSkillReports() {
|
|
|
3639
3660
|
}
|
|
3640
3661
|
/** Read safe configured plugin metadata for authenticated runtime diagnostics. */
|
|
3641
3662
|
async function readPlugins() {
|
|
3642
|
-
const { pluginCatalogRuntime } = await import("./catalog-runtime-
|
|
3663
|
+
const { pluginCatalogRuntime } = await import("./catalog-runtime-Cw9V2jpn.js").then((n) => n.t);
|
|
3643
3664
|
return pluginsSchema.parse(pluginCatalogRuntime.getProviders().map((plugin) => ({
|
|
3644
3665
|
configKeys: plugin.manifest.configKeys ?? [],
|
|
3645
3666
|
description: plugin.manifest.description,
|
|
@@ -3651,7 +3672,7 @@ async function readPlugins() {
|
|
|
3651
3672
|
async function readRuntimeInfoReport() {
|
|
3652
3673
|
const [{ homeDir }, { pluginCatalogRuntime }, plugins, skills] = await Promise.all([
|
|
3653
3674
|
import("./package-discovery-7a9YqLhE.js").then((n) => n.r),
|
|
3654
|
-
import("./catalog-runtime-
|
|
3675
|
+
import("./catalog-runtime-Cw9V2jpn.js").then((n) => n.t),
|
|
3655
3676
|
readPlugins(),
|
|
3656
3677
|
readSkillReports()
|
|
3657
3678
|
]);
|
|
@@ -3668,7 +3689,7 @@ async function readRuntimeInfoReport() {
|
|
|
3668
3689
|
/** Read sanitized operational summaries contributed by plugins. */
|
|
3669
3690
|
async function readPluginOperationalReportFeed() {
|
|
3670
3691
|
const nowMs = Date.now();
|
|
3671
|
-
const { getPluginOperationalReports } = await import("./agent-hooks-
|
|
3692
|
+
const { getPluginOperationalReports } = await import("./agent-hooks-bEwEJhlg.js").then((n) => n.t);
|
|
3672
3693
|
return pluginOperationalReportFeedSchema.parse({
|
|
3673
3694
|
source: "plugins",
|
|
3674
3695
|
generatedAt: new Date(nowMs).toISOString(),
|
package/dist/app.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as ModelProfileInput, n as JuniorDashboardOptions, r as createApp, t as JuniorAppOptions } from "./app-
|
|
1
|
+
import { i as ModelProfileInput, n as JuniorDashboardOptions, r as createApp, t as JuniorAppOptions } from "./app-CjRIKZb5.js";
|
|
2
2
|
import { i as defineJuniorPlugins, n as JuniorPluginSet, r as JuniorPluginSetOptions, t as JuniorPluginInput } from "./plugins-BT2l4We3.js";
|
|
3
3
|
import { t as JUNIOR_VERSION } from "./version-CnXZ614E.js";
|
|
4
4
|
export { JUNIOR_VERSION, JuniorAppOptions, JuniorDashboardOptions, type JuniorPluginInput, type JuniorPluginSet, type JuniorPluginSetOptions, type ModelProfileInput, createApp, defineJuniorPlugins };
|