@sentry/junior 0.148.0 → 0.149.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 (70) hide show
  1. package/dist/{agent-hooks-VAUYT6PD.js → agent-hooks-CWMCXAMT.js} +10 -10
  2. package/dist/api/conversations/aggregate.d.ts +2 -0
  3. package/dist/api/conversations/create.d.ts +1 -1
  4. package/dist/api/conversations/pending-messages.d.ts +15 -0
  5. package/dist/api/people/shared.d.ts +2 -0
  6. package/dist/api/schema/conversation.d.ts +78 -4
  7. package/dist/api/schema.d.ts +2 -2
  8. package/dist/api/schema.js +7 -1
  9. package/dist/api.js +182 -33
  10. package/dist/app.js +92 -133
  11. package/dist/{catalog-runtime-WADOZVTB.js → catalog-runtime-GAW5APVI.js} +5 -5
  12. package/dist/chat/api-turns/work.d.ts +6 -1
  13. package/dist/chat/app/services.d.ts +1 -1
  14. package/dist/chat/runtime/reply-executor.d.ts +0 -2
  15. package/dist/chat/services/conversation-memory.d.ts +2 -2
  16. package/dist/chat/services/conversation-title.d.ts +20 -0
  17. package/dist/chat/slack/assistant-thread/title.d.ts +10 -27
  18. package/dist/chat/state/conversation.d.ts +1 -0
  19. package/dist/{chunk-2B3PT3V2.js → chunk-25SC7D6Z.js} +1 -1
  20. package/dist/{chunk-POSZWRGL.js → chunk-2JHKISQA.js} +1 -1
  21. package/dist/{chunk-VY6W3T43.js → chunk-2P6BQQER.js} +4 -4
  22. package/dist/{chunk-4GXJUYJV.js → chunk-32CXPIZE.js} +2 -2
  23. package/dist/{chunk-VRHTNBA6.js → chunk-3GYZ5YEH.js} +3 -3
  24. package/dist/{chunk-D3WPMGEX.js → chunk-3I2IVWSZ.js} +1 -1
  25. package/dist/{chunk-45LOR4PU.js → chunk-3JVUWLR7.js} +45 -1
  26. package/dist/{chunk-LE5H7LMT.js → chunk-3KGQOKIG.js} +1 -1
  27. package/dist/{chunk-4AQZYNHM.js → chunk-4JGM7FXO.js} +2 -2
  28. package/dist/{chunk-IL4EDBMV.js → chunk-4YKPOYRV.js} +5 -5
  29. package/dist/{chunk-ZPL2RR7F.js → chunk-5CWUQXXT.js} +28 -20
  30. package/dist/{chunk-LAZGHEYU.js → chunk-6G5RCDKP.js} +1 -1
  31. package/dist/{chunk-ULAU5ZGU.js → chunk-75DSYFFB.js} +24 -24
  32. package/dist/{chunk-ZCHIC2GM.js → chunk-7BH46NB4.js} +6 -6
  33. package/dist/{chunk-7OEIXFC3.js → chunk-ALJG73MQ.js} +1 -1
  34. package/dist/{chunk-LNVEIJ2L.js → chunk-ART7P442.js} +5 -5
  35. package/dist/{chunk-VMNRXKAH.js → chunk-DK5UT6PQ.js} +24 -26
  36. package/dist/{chunk-VCYSOXON.js → chunk-EW2LNCRL.js} +545 -7
  37. package/dist/{chunk-DUY5CDAM.js → chunk-EXW76GW4.js} +1 -1
  38. package/dist/{chunk-WCN4YSH7.js → chunk-JMH3DBM5.js} +6 -6
  39. package/dist/{chunk-HLPLT3NY.js → chunk-JMSMXXED.js} +8 -4
  40. package/dist/{chunk-WOONT5ZP.js → chunk-MEMURSBG.js} +1 -1
  41. package/dist/{chunk-QOWHHM3F.js → chunk-QIW7OQEO.js} +1 -1
  42. package/dist/{chunk-XJ42NBP5.js → chunk-RB26T3LU.js} +8 -8
  43. package/dist/{chunk-EAI67NTM.js → chunk-RLVZIWNQ.js} +1 -1
  44. package/dist/{chunk-V2FXMOEA.js → chunk-SWHPVZBV.js} +2 -2
  45. package/dist/{chunk-D6YX4NNN.js → chunk-TFBNBXPU.js} +4 -4
  46. package/dist/{chunk-GXYDVZKM.js → chunk-URDCZAL4.js} +5 -5
  47. package/dist/{chunk-RRJV5UR5.js → chunk-UZGASGOD.js} +11 -337
  48. package/dist/{chunk-OJCP3C3J.js → chunk-W7UONUIZ.js} +6 -6
  49. package/dist/{chunk-HWQGBIH7.js → chunk-X22XXSZA.js} +1 -1
  50. package/dist/{chunk-EINWQFXI.js → chunk-XPYWWMHR.js} +5 -5
  51. package/dist/{chunk-55F4QU2V.js → chunk-ZYMYLLWG.js} +1 -1
  52. package/dist/cli/chat.js +30 -31
  53. package/dist/cli/check.js +6 -6
  54. package/dist/cli/plugins.js +13 -13
  55. package/dist/cli/snapshot-create.js +9 -9
  56. package/dist/cli/upgrade.js +7 -7
  57. package/dist/{db-XUKZRFFK.js → db-JBZLRIVY.js} +7 -7
  58. package/dist/instrumentation.js +4 -4
  59. package/dist/nitro.js +2 -2
  60. package/dist/{oauth-callback-server-LPZMMGFI.js → oauth-callback-server-MNTVYY2I.js} +23 -24
  61. package/dist/{runner-DGKUTMPX.js → runner-K24BWZSZ.js} +21 -22
  62. package/dist/{skills-P7YUFSXM.js → skills-AU5ST2CG.js} +6 -6
  63. package/dist/spawn-6PO7CVJ6.js +38 -0
  64. package/dist/{validation-S7U5M5NR.js → validation-IXGZCFRO.js} +6 -6
  65. package/dist/version.js +1 -1
  66. package/dist/{work-GAA7TVAD.js → work-WCZIYILX.js} +17 -17
  67. package/dist/{worker-JXPJH3QB.js → worker-U2AACBEY.js} +11 -11
  68. package/package.json +5 -5
  69. package/dist/chunk-4EA2SFK2.js +0 -137
  70. package/dist/spawn-DSK3ZEVD.js +0 -38
package/dist/api.js CHANGED
@@ -13,6 +13,7 @@ import {
13
13
  conversationFeedQuerySchema,
14
14
  conversationFeedSchema,
15
15
  conversationParamsSchema,
16
+ conversationPendingMessagesReportSchema,
16
17
  conversationReportEventSchema,
17
18
  conversationStatsReportSchema,
18
19
  createConversationBodySchema,
@@ -32,7 +33,7 @@ import {
32
33
  taskListSchema,
33
34
  taskParamsSchema,
34
35
  taskRunListSchema
35
- } from "./chunk-45LOR4PU.js";
36
+ } from "./chunk-3JVUWLR7.js";
36
37
  import {
37
38
  appendAndEnqueueApiConversationMessage,
38
39
  createAndEnqueueApiConversation,
@@ -40,11 +41,13 @@ import {
40
41
  readHealthReport,
41
42
  resolveSlackConversationContextFromThreadId,
42
43
  webActorFromEmail
43
- } from "./chunk-ZPL2RR7F.js";
44
+ } from "./chunk-5CWUQXXT.js";
44
45
  import {
45
46
  buildSentryConversationUrl
46
47
  } from "./chunk-4CODA7P5.js";
47
- import "./chunk-HLPLT3NY.js";
48
+ import {
49
+ getConversation
50
+ } from "./chunk-JMSMXXED.js";
48
51
  import {
49
52
  readTaskExecutionByConversationId,
50
53
  readTaskExecutionDays,
@@ -52,8 +55,8 @@ import {
52
55
  readTaskExecutionSummaries,
53
56
  readTaskExecutions,
54
57
  readTaskRuns
55
- } from "./chunk-RRJV5UR5.js";
56
- import "./chunk-IL4EDBMV.js";
58
+ } from "./chunk-UZGASGOD.js";
59
+ import "./chunk-4YKPOYRV.js";
57
60
  import {
58
61
  healthReportSchema,
59
62
  pluginOperationalReportFeedSchema,
@@ -77,18 +80,16 @@ import {
77
80
  listPublicEventTasksForTeams,
78
81
  listPublicScheduledTasksForTeams,
79
82
  readStats
80
- } from "./chunk-GXYDVZKM.js";
83
+ } from "./chunk-URDCZAL4.js";
81
84
  import {
82
85
  parseSlackThreadId
83
- } from "./chunk-WOONT5ZP.js";
84
- import {
85
- fallbackShortTitle
86
- } from "./chunk-4EA2SFK2.js";
86
+ } from "./chunk-MEMURSBG.js";
87
87
  import {
88
88
  agentTurnUsageSchema,
89
+ fallbackShortTitle,
89
90
  hasAgentTurnUsage,
90
91
  renderJuniorNativeConversationEvent
91
- } from "./chunk-VCYSOXON.js";
92
+ } from "./chunk-EW2LNCRL.js";
92
93
  import "./chunk-3Y47VMHV.js";
93
94
  import "./chunk-PDO5BLNM.js";
94
95
  import {
@@ -97,11 +98,11 @@ import {
97
98
  listConversationAnnotations,
98
99
  renderPluginConversationEvent,
99
100
  resolveViewerUser
100
- } from "./chunk-ZCHIC2GM.js";
101
+ } from "./chunk-7BH46NB4.js";
101
102
  import {
102
103
  getSlackClient,
103
104
  withSlackRetries
104
- } from "./chunk-V2FXMOEA.js";
105
+ } from "./chunk-SWHPVZBV.js";
105
106
  import {
106
107
  decodeStoredConversationEvent,
107
108
  getConversationStore,
@@ -109,23 +110,23 @@ import {
109
110
  getSqlExecutor,
110
111
  locationFromRow,
111
112
  parseSessionSource
112
- } from "./chunk-VRHTNBA6.js";
113
+ } from "./chunk-3GYZ5YEH.js";
113
114
  import {
114
115
  juniorApiTokens,
115
116
  juniorConversationEvents,
116
117
  juniorConversations,
117
118
  juniorIdentities,
118
119
  juniorUsers
119
- } from "./chunk-D3WPMGEX.js";
120
+ } from "./chunk-3I2IVWSZ.js";
120
121
  import "./chunk-EM225ITJ.js";
121
- import "./chunk-2B3PT3V2.js";
122
- import "./chunk-4GXJUYJV.js";
122
+ import "./chunk-25SC7D6Z.js";
123
+ import "./chunk-32CXPIZE.js";
123
124
  import {
124
125
  juniorDestinations
125
126
  } from "./chunk-VFUK3X5B.js";
126
127
  import {
127
128
  canExposeConversationPayload
128
- } from "./chunk-LE5H7LMT.js";
129
+ } from "./chunk-3KGQOKIG.js";
129
130
  import "./chunk-RUIXF3YQ.js";
130
131
  import "./chunk-HZF5P5UN.js";
131
132
  import {
@@ -135,10 +136,10 @@ import {
135
136
  } from "./chunk-F3B2YJ76.js";
136
137
  import {
137
138
  logException
138
- } from "./chunk-EAI67NTM.js";
139
+ } from "./chunk-RLVZIWNQ.js";
139
140
  import "./chunk-6GWA276C.js";
140
- import "./chunk-LAZGHEYU.js";
141
- import "./chunk-55F4QU2V.js";
141
+ import "./chunk-6G5RCDKP.js";
142
+ import "./chunk-ZYMYLLWG.js";
142
143
  import "./chunk-MLKGABMK.js";
143
144
 
144
145
  // src/api.ts
@@ -290,7 +291,8 @@ async function createConversationForViewer(viewer, body) {
290
291
  {
291
292
  actor: actorFromViewer(viewer),
292
293
  idempotencyKey: body.idempotencyKey,
293
- message: body.message
294
+ message: body.message,
295
+ ...body.visibility ? { visibility: body.visibility } : {}
294
296
  },
295
297
  {
296
298
  conversationStore: getConversationStore(),
@@ -827,6 +829,7 @@ function reportEventData(args) {
827
829
  type: "message",
828
830
  messageId: data.messageId,
829
831
  role: data.role,
832
+ ...data.meta?.source === "web" ? { source: "web" } : {},
830
833
  ...actorIdentity ? { actorIdentity } : {},
831
834
  ...typeof data.meta?.eventType === "string" ? { eventType: data.meta.eventType } : {},
832
835
  ...args.canExposePayload ? { text: data.text } : { redacted: true }
@@ -2335,12 +2338,132 @@ async function readConversationEvents(conversationId, beforeValue, options = {})
2335
2338
  });
2336
2339
  }
2337
2340
 
2341
+ // src/api/conversations/pending-messages.ts
2342
+ import { z as z4 } from "zod";
2343
+ var apiTurnMailboxMetadataSchema = z4.object({
2344
+ authorEmail: z4.string().email(),
2345
+ authorFullName: z4.string().min(1).optional(),
2346
+ authorUserId: z4.string().min(1),
2347
+ authorUserName: z4.string().min(1).optional(),
2348
+ kind: z4.literal("api_turn"),
2349
+ messageId: z4.string().min(1)
2350
+ }).strict();
2351
+ var slackMailboxAuthorSchema = z4.object({
2352
+ userId: z4.string(),
2353
+ userName: z4.string().optional(),
2354
+ fullName: z4.string().optional(),
2355
+ isMe: z4.boolean().optional()
2356
+ }).passthrough();
2357
+ var slackMailboxMessageSchema = z4.object({
2358
+ author: slackMailboxAuthorSchema,
2359
+ id: z4.string().min(1)
2360
+ }).passthrough();
2361
+ var slackMailboxMetadataSchema = z4.object({
2362
+ message: slackMailboxMessageSchema,
2363
+ platform: z4.literal("slack")
2364
+ }).passthrough();
2365
+ function isoFromMs(value) {
2366
+ return new Date(value).toISOString();
2367
+ }
2368
+ function actorIdentityFromApiMetadata(metadata2) {
2369
+ return {
2370
+ email: metadata2.authorEmail.trim().toLowerCase(),
2371
+ ...metadata2.authorFullName ? { fullName: metadata2.authorFullName } : {}
2372
+ };
2373
+ }
2374
+ function actorIdentityFromSlackMetadata(metadata2) {
2375
+ if (metadata2.message.author.isMe === true) return void 0;
2376
+ const slackUserId = metadata2.message.author.userId.trim();
2377
+ if (!slackUserId) return void 0;
2378
+ const slackUserName = metadata2.message.author.userName?.trim();
2379
+ const fullName = metadata2.message.author.fullName?.trim();
2380
+ return {
2381
+ slackUserId,
2382
+ ...slackUserName ? { slackUserName } : {},
2383
+ ...fullName ? { fullName } : {}
2384
+ };
2385
+ }
2386
+ function projectPendingMessage(message2, canExposePayload) {
2387
+ if (message2.source === "web") {
2388
+ const metadata2 = apiTurnMailboxMetadataSchema.safeParse(
2389
+ message2.input.metadata
2390
+ );
2391
+ if (!metadata2.success) return void 0;
2392
+ const text = message2.input.text.trim();
2393
+ if (!text) return void 0;
2394
+ return {
2395
+ createdAt: isoFromMs(message2.createdAtMs),
2396
+ delivery: message2.delivery,
2397
+ inboundMessageId: message2.inboundMessageId,
2398
+ messageId: metadata2.data.messageId,
2399
+ receivedAt: isoFromMs(message2.receivedAtMs),
2400
+ role: "user",
2401
+ source: "web",
2402
+ ...canExposePayload ? {
2403
+ actorIdentity: actorIdentityFromApiMetadata(metadata2.data),
2404
+ text
2405
+ } : { redacted: true }
2406
+ };
2407
+ }
2408
+ if (message2.source === "slack") {
2409
+ const metadata2 = slackMailboxMetadataSchema.safeParse(
2410
+ message2.input.metadata
2411
+ );
2412
+ if (!metadata2.success) return void 0;
2413
+ if (metadata2.data.message.author.isMe === true) return void 0;
2414
+ const text = message2.input.text.trim();
2415
+ if (!text) return void 0;
2416
+ const actorIdentity = actorIdentityFromSlackMetadata(metadata2.data);
2417
+ return {
2418
+ createdAt: isoFromMs(message2.createdAtMs),
2419
+ delivery: message2.delivery,
2420
+ inboundMessageId: message2.inboundMessageId,
2421
+ messageId: metadata2.data.message.id,
2422
+ receivedAt: isoFromMs(message2.receivedAtMs),
2423
+ role: "user",
2424
+ source: "slack",
2425
+ ...canExposePayload ? {
2426
+ ...actorIdentity ? { actorIdentity } : {},
2427
+ text
2428
+ } : { redacted: true }
2429
+ };
2430
+ }
2431
+ return void 0;
2432
+ }
2433
+ async function readConversationPendingMessages(conversationId, options = {}) {
2434
+ const conversation = await getConversationStore().get({ conversationId });
2435
+ if (!conversation) return void 0;
2436
+ const access = (await readConversationAccessFromSql(getDb(), [conversationId], options.viewer)).get(conversationId);
2437
+ const canExposePayload = access?.canViewPrivateContent ?? false;
2438
+ const work = await getConversation({ conversationId });
2439
+ const messages = (work?.execution.pendingMessages ?? []).map((message2) => projectPendingMessage(message2, canExposePayload)).filter(
2440
+ (message2) => Boolean(message2)
2441
+ );
2442
+ return conversationPendingMessagesReportSchema.parse({
2443
+ conversationId,
2444
+ generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
2445
+ messages
2446
+ });
2447
+ }
2448
+ async function requireConversationPendingMessages(conversationId, options = {}) {
2449
+ const report = await readConversationPendingMessages(conversationId, options);
2450
+ if (!report) throwApiError(404, "Conversation not found.");
2451
+ return report;
2452
+ }
2453
+
2338
2454
  // src/api/conversations/stats.query.ts
2339
2455
  import { and as and8, eq as eq9, gte, isNull as isNull4, lte, sql as sql6 } from "drizzle-orm";
2340
2456
  import { alias as alias4 } from "drizzle-orm/pg-core";
2341
2457
 
2342
2458
  // src/api/conversations/aggregate.ts
2343
2459
  import { sql as sql5 } from "drizzle-orm";
2460
+ function usageTokenValue(source, field) {
2461
+ return sql5`CASE
2462
+ WHEN ${source.usage}->>${field} IS NOT NULL
2463
+ THEN (${source.usage}->>${field})::double precision
2464
+ ELSE NULL
2465
+ END`;
2466
+ }
2344
2467
  function tokenValue(source) {
2345
2468
  return sql5`
2346
2469
  CASE
@@ -2388,11 +2511,13 @@ function conversationAggregateColumns(sources) {
2388
2511
  WHERE ${roots.executionStatus} NOT IN ('idle', 'failed')
2389
2512
  )::integer`,
2390
2513
  conversations: sql5`${conversationCount}::integer`,
2514
+ cachedInputTokens: sql5`SUM(${usageTokenValue(metrics, "cachedInputTokens")})::double precision`,
2391
2515
  costUsd: sql5`SUM(${costValue(metrics)})::double precision`,
2392
2516
  durationMs: sql5`COALESCE(SUM(${metrics.durationMs}), 0)::double precision`,
2393
2517
  failed: sql5`${conversationCount} FILTER (
2394
2518
  WHERE ${roots.executionStatus} = 'failed'
2395
2519
  )::integer`,
2520
+ inputTokens: sql5`SUM(${usageTokenValue(metrics, "inputTokens")})::double precision`,
2396
2521
  tokens: sql5`SUM(${tokenValue(metrics)})::double precision`
2397
2522
  };
2398
2523
  }
@@ -2498,7 +2623,9 @@ function metricDays(rows, endMs) {
2498
2623
  conversations: row?.conversations ?? 0,
2499
2624
  date,
2500
2625
  durationMs: row?.durationMs ?? 0,
2626
+ ...row?.cachedInputTokens !== null && row?.cachedInputTokens !== void 0 ? { cachedInputTokens: row.cachedInputTokens } : {},
2501
2627
  ...row?.costUsd !== null && row?.costUsd !== void 0 ? { costUsd: addUsd(void 0, row.costUsd) } : {},
2628
+ ...row?.inputTokens !== null && row?.inputTokens !== void 0 ? { inputTokens: row.inputTokens } : {},
2502
2629
  ...row?.tokens !== null && row?.tokens !== void 0 ? { tokens: row.tokens } : {}
2503
2630
  });
2504
2631
  }
@@ -2609,10 +2736,12 @@ async function aggregateStats(db, start, end) {
2609
2736
  juniorDestinations.visibility
2610
2737
  ),
2611
2738
  db.select({
2739
+ cachedInputTokens: treeAggregateColumns.cachedInputTokens,
2612
2740
  conversations: treeAggregateColumns.conversations,
2613
2741
  costUsd: treeAggregateColumns.costUsd,
2614
2742
  date: activityDate,
2615
2743
  durationMs: treeAggregateColumns.durationMs,
2744
+ inputTokens: treeAggregateColumns.inputTokens,
2616
2745
  tokens: treeAggregateColumns.tokens
2617
2746
  }).from(juniorConversations).innerJoin(
2618
2747
  treeConversation,
@@ -2668,6 +2797,7 @@ async function readConversationStatsFromSql() {
2668
2797
  }
2669
2798
  return {
2670
2799
  active: totals?.active ?? 0,
2800
+ ...totals?.cachedInputTokens !== null && totals?.cachedInputTokens !== void 0 ? { cachedInputTokens: totals.cachedInputTokens } : {},
2671
2801
  conversations: totals?.conversations ?? 0,
2672
2802
  durationMs: totals?.durationMs ?? 0,
2673
2803
  failed: totals?.failed ?? 0,
@@ -2678,6 +2808,7 @@ async function readConversationStatsFromSql() {
2678
2808
  actors: statsItems(actors),
2679
2809
  source: "conversation_index",
2680
2810
  ...totals?.costUsd !== null && totals?.costUsd !== void 0 ? { costUsd: addUsd(void 0, totals.costUsd) } : {},
2811
+ ...totals?.inputTokens !== null && totals?.inputTokens !== void 0 ? { inputTokens: totals.inputTokens } : {},
2681
2812
  ...totals?.tokens !== null && totals?.tokens !== void 0 ? { tokens: totals.tokens } : {},
2682
2813
  windowEnd: end.toISOString(),
2683
2814
  windowStart: start.toISOString()
@@ -2802,6 +2933,24 @@ function createConversationRoutes() {
2802
2933
  return jsonResponse(conversationEventPageSchema, report);
2803
2934
  }
2804
2935
  );
2936
+ app.get(
2937
+ "/:conversationId/pending-messages",
2938
+ validateRequest(
2939
+ "param",
2940
+ conversationParamsSchema,
2941
+ "Invalid route parameters."
2942
+ ),
2943
+ async (context) => {
2944
+ const { conversationId } = context.req.valid("param");
2945
+ const viewer = context.get("viewer");
2946
+ return jsonResponse(
2947
+ conversationPendingMessagesReportSchema,
2948
+ await requireConversationPendingMessages(conversationId, {
2949
+ viewer
2950
+ })
2951
+ );
2952
+ }
2953
+ );
2805
2954
  app.get(
2806
2955
  "/:conversationId",
2807
2956
  validateRequest(
@@ -3957,7 +4106,7 @@ function createPersonalTokenRoutes() {
3957
4106
 
3958
4107
  // src/api/user-pages/routes.ts
3959
4108
  import { Hono as Hono5 } from "hono";
3960
- import { z as z4 } from "zod";
4109
+ import { z as z5 } from "zod";
3961
4110
  import {
3962
4111
  pluginUserPageContentSchema as pluginUserPageContentSchema2,
3963
4112
  pluginUserPageInputSchema,
@@ -4023,20 +4172,20 @@ async function readPluginUserPage(input) {
4023
4172
  }
4024
4173
 
4025
4174
  // src/api/user-pages/routes.ts
4026
- var userPageQuerySchema = z4.object({
4027
- cursor: z4.preprocess(
4175
+ var userPageQuerySchema = z5.object({
4176
+ cursor: z5.preprocess(
4028
4177
  (value) => value || void 0,
4029
4178
  pluginUserPageInputSchema.shape.cursor
4030
4179
  ),
4031
- filter: z4.preprocess(
4180
+ filter: z5.preprocess(
4032
4181
  (value) => value || void 0,
4033
4182
  pluginUserPageInputSchema.shape.filter
4034
4183
  ),
4035
- limit: z4.preprocess(
4184
+ limit: z5.preprocess(
4036
4185
  (value) => value === "" ? void 0 : value,
4037
- z4.coerce.number().int().min(1).max(50).default(20)
4186
+ z5.coerce.number().int().min(1).max(50).default(20)
4038
4187
  ),
4039
- q: z4.preprocess(
4188
+ q: z5.preprocess(
4040
4189
  (value) => value || void 0,
4041
4190
  pluginUserPageInputSchema.shape.query
4042
4191
  )
@@ -4160,7 +4309,7 @@ function readDescriptionText(home) {
4160
4309
  }
4161
4310
  }
4162
4311
  async function readSkillReports() {
4163
- const { discoverSkills } = await import("./skills-P7YUFSXM.js");
4312
+ const { discoverSkills } = await import("./skills-AU5ST2CG.js");
4164
4313
  const skills = await discoverSkills();
4165
4314
  return skillReportsSchema.parse(
4166
4315
  skills.map((skill) => ({
@@ -4170,7 +4319,7 @@ async function readSkillReports() {
4170
4319
  );
4171
4320
  }
4172
4321
  async function readPlugins() {
4173
- const { pluginCatalogRuntime } = await import("./catalog-runtime-WADOZVTB.js");
4322
+ const { pluginCatalogRuntime } = await import("./catalog-runtime-GAW5APVI.js");
4174
4323
  return pluginsSchema.parse(
4175
4324
  pluginCatalogRuntime.getProviders().map((plugin) => ({
4176
4325
  configKeys: plugin.manifest.configKeys ?? [],
@@ -4183,7 +4332,7 @@ async function readPlugins() {
4183
4332
  async function readRuntimeInfoReport() {
4184
4333
  const [{ homeDir }, { pluginCatalogRuntime }, plugins, skills] = await Promise.all([
4185
4334
  import("./discovery-GUFTFBTL.js"),
4186
- import("./catalog-runtime-WADOZVTB.js"),
4335
+ import("./catalog-runtime-GAW5APVI.js"),
4187
4336
  readPlugins(),
4188
4337
  readSkillReports()
4189
4338
  ]);
@@ -4199,7 +4348,7 @@ async function readRuntimeInfoReport() {
4199
4348
  }
4200
4349
  async function readPluginOperationalReportFeed() {
4201
4350
  const nowMs = Date.now();
4202
- const { getPluginOperationalReports } = await import("./agent-hooks-VAUYT6PD.js");
4351
+ const { getPluginOperationalReports } = await import("./agent-hooks-CWMCXAMT.js");
4203
4352
  return pluginOperationalReportFeedSchema.parse({
4204
4353
  source: "plugins",
4205
4354
  generatedAt: new Date(nowMs).toISOString(),