@sentry/junior 0.118.0 → 0.119.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 (46) hide show
  1. package/dist/{agent-hooks-J2FB7XD6.js → agent-hooks-NZSV4QQR.js} +8 -8
  2. package/dist/api/conversations/detail.d.ts +17 -0
  3. package/dist/api/conversations/event-list.d.ts +17 -0
  4. package/dist/api/schema/conversation.d.ts +68 -0
  5. package/dist/api/schema.js +1 -1
  6. package/dist/api.js +58 -16
  7. package/dist/app.js +22 -22
  8. package/dist/{catalog-runtime-UHHLU53I.js → catalog-runtime-TAOYIZIZ.js} +5 -5
  9. package/dist/chat/slack/tools/canvas/api.d.ts +2 -9
  10. package/dist/chat/slack/tools/canvas/markdown.d.ts +9 -0
  11. package/dist/{chunk-S6R23MFB.js → chunk-4UIUDOOV.js} +12 -225
  12. package/dist/{chunk-HN6LFYG3.js → chunk-6ZR455DC.js} +2 -2
  13. package/dist/{chunk-GT2ZUALJ.js → chunk-BLQZACHV.js} +4 -4
  14. package/dist/{chunk-PJPKHGLG.js → chunk-BNJEPYTC.js} +4 -11
  15. package/dist/{chunk-KC5EE27Y.js → chunk-D3N4BPSL.js} +2 -2
  16. package/dist/{chunk-4LPPH7Y6.js → chunk-GKFDU3ZI.js} +4 -4
  17. package/dist/{chunk-FXOYURO4.js → chunk-HDFGNU5E.js} +1 -0
  18. package/dist/{chunk-HWUBBHLK.js → chunk-JLJLZS2N.js} +1 -1
  19. package/dist/{chunk-UXLYAVYL.js → chunk-JSTGI7TX.js} +1 -1
  20. package/dist/{chunk-L72GDKSN.js → chunk-JXRAOOXQ.js} +1 -1
  21. package/dist/{chunk-QWCF4RAC.js → chunk-NUENIPQL.js} +1 -1
  22. package/dist/{chunk-7SM3P4XR.js → chunk-O2ULQJWR.js} +82 -1
  23. package/dist/{chunk-7GADTCNS.js → chunk-QZ7XRJDB.js} +2 -2
  24. package/dist/{chunk-3LGCVRBQ.js → chunk-R53UT2OI.js} +1 -1
  25. package/dist/{chunk-4SOQPUF4.js → chunk-TAGV4Z3J.js} +1 -1
  26. package/dist/{chunk-6K2QE2UI.js → chunk-TGIQN7QW.js} +169 -31
  27. package/dist/{chunk-3N3FMCKN.js → chunk-VJTWKJWQ.js} +1 -1
  28. package/dist/{chunk-PWRFTDTY.js → chunk-VLTWQQKH.js} +2 -2
  29. package/dist/{chunk-3MUSSFMP.js → chunk-YLYJIQRX.js} +220 -13
  30. package/dist/{chunk-6BGUAOYP.js → chunk-ZFX4M743.js} +13 -7
  31. package/dist/{chunk-MLZFK4KP.js → chunk-ZJ6IVZVO.js} +1 -1
  32. package/dist/cli/chat.js +22 -22
  33. package/dist/cli/check.js +6 -6
  34. package/dist/cli/init.js +2 -2
  35. package/dist/cli/plugins.js +11 -11
  36. package/dist/cli/snapshot-create.js +9 -9
  37. package/dist/cli/upgrade.js +6 -6
  38. package/dist/{db-PMRHFSYL.js → db-FWGP5CKY.js} +6 -6
  39. package/dist/instrumentation.js +3 -3
  40. package/dist/nitro.js +2 -2
  41. package/dist/{oauth-callback-server-QJUC7S4X.js → oauth-callback-server-PM3QNXJQ.js} +15 -15
  42. package/dist/{runner-PZMV6JQW.js → runner-DV55N6ZB.js} +10 -10
  43. package/dist/{skills-W4JETYSV.js → skills-MANV5ZK6.js} +6 -6
  44. package/dist/{validation-IJLNHZSU.js → validation-QGB4INTI.js} +6 -6
  45. package/dist/version.js +1 -1
  46. package/package.json +5 -5
@@ -11,20 +11,20 @@ import {
11
11
  getPlugins,
12
12
  setPlugins,
13
13
  validatePlugins
14
- } from "./chunk-GT2ZUALJ.js";
15
- import "./chunk-KC5EE27Y.js";
14
+ } from "./chunk-BLQZACHV.js";
15
+ import "./chunk-D3N4BPSL.js";
16
16
  import "./chunk-GCGJGSQL.js";
17
- import "./chunk-3N3FMCKN.js";
18
- import "./chunk-PWRFTDTY.js";
17
+ import "./chunk-VJTWKJWQ.js";
18
+ import "./chunk-VLTWQQKH.js";
19
19
  import "./chunk-VFUK3X5B.js";
20
- import "./chunk-FXOYURO4.js";
20
+ import "./chunk-HDFGNU5E.js";
21
21
  import "./chunk-HZF5P5UN.js";
22
- import "./chunk-MLZFK4KP.js";
22
+ import "./chunk-ZJ6IVZVO.js";
23
23
  import "./chunk-OB42YVAE.js";
24
24
  import "./chunk-F3B2YJ76.js";
25
25
  import "./chunk-6GWA276C.js";
26
- import "./chunk-QWCF4RAC.js";
27
- import "./chunk-HWUBBHLK.js";
26
+ import "./chunk-NUENIPQL.js";
27
+ import "./chunk-JLJLZS2N.js";
28
28
  import "./chunk-MLKGABMK.js";
29
29
  export {
30
30
  PluginHookDeniedError,
@@ -105,6 +105,13 @@ declare const _default: import("../route").ApiRoute<import("zod").ZodObject<{
105
105
  }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
106
106
  type: import("zod").ZodLiteral<"message_handled">;
107
107
  messageId: import("zod").ZodString;
108
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
109
+ type: import("zod").ZodLiteral<"assistant_message">;
110
+ parts: import("zod").ZodArray<import("zod").ZodObject<{
111
+ type: import("zod").ZodLiteral<"reasoning">;
112
+ text: import("zod").ZodOptional<import("zod").ZodString>;
113
+ redacted: import("zod").ZodOptional<import("zod").ZodLiteral<true>>;
114
+ }, import("zod/v4/core").$strict>>;
108
115
  }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
109
116
  type: import("zod").ZodLiteral<"tool_calls">;
110
117
  calls: import("zod").ZodArray<import("zod").ZodObject<{
@@ -120,6 +127,16 @@ declare const _default: import("../route").ApiRoute<import("zod").ZodObject<{
120
127
  input: import("zod").ZodOptional<import("zod").ZodUnknown>;
121
128
  output: import("zod").ZodOptional<import("zod").ZodUnknown>;
122
129
  }, import("zod/v4/core").$strict>>;
130
+ assistant: import("zod").ZodOptional<import("zod").ZodObject<{
131
+ parts: import("zod").ZodArray<import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
132
+ type: import("zod").ZodLiteral<"reasoning">;
133
+ text: import("zod").ZodOptional<import("zod").ZodString>;
134
+ redacted: import("zod").ZodOptional<import("zod").ZodLiteral<true>>;
135
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
136
+ type: import("zod").ZodLiteral<"tool_call">;
137
+ toolCallId: import("zod").ZodString;
138
+ }, import("zod/v4/core").$strict>], "type">>;
139
+ }, import("zod/v4/core").$strict>>;
123
140
  }, import("zod/v4/core").$strict>, import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
124
141
  type: import("zod").ZodLiteral<"turn_lifecycle">;
125
142
  turnId: import("zod").ZodString;
@@ -22,6 +22,13 @@ declare const _default: import("../route").ApiRoute<import("zod").ZodObject<{
22
22
  }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
23
23
  type: import("zod").ZodLiteral<"message_handled">;
24
24
  messageId: import("zod").ZodString;
25
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
26
+ type: import("zod").ZodLiteral<"assistant_message">;
27
+ parts: import("zod").ZodArray<import("zod").ZodObject<{
28
+ type: import("zod").ZodLiteral<"reasoning">;
29
+ text: import("zod").ZodOptional<import("zod").ZodString>;
30
+ redacted: import("zod").ZodOptional<import("zod").ZodLiteral<true>>;
31
+ }, import("zod/v4/core").$strict>>;
25
32
  }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
26
33
  type: import("zod").ZodLiteral<"tool_calls">;
27
34
  calls: import("zod").ZodArray<import("zod").ZodObject<{
@@ -37,6 +44,16 @@ declare const _default: import("../route").ApiRoute<import("zod").ZodObject<{
37
44
  input: import("zod").ZodOptional<import("zod").ZodUnknown>;
38
45
  output: import("zod").ZodOptional<import("zod").ZodUnknown>;
39
46
  }, import("zod/v4/core").$strict>>;
47
+ assistant: import("zod").ZodOptional<import("zod").ZodObject<{
48
+ parts: import("zod").ZodArray<import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
49
+ type: import("zod").ZodLiteral<"reasoning">;
50
+ text: import("zod").ZodOptional<import("zod").ZodString>;
51
+ redacted: import("zod").ZodOptional<import("zod").ZodLiteral<true>>;
52
+ }, import("zod/v4/core").$strict>, import("zod").ZodObject<{
53
+ type: import("zod").ZodLiteral<"tool_call">;
54
+ toolCallId: import("zod").ZodString;
55
+ }, import("zod/v4/core").$strict>], "type">>;
56
+ }, import("zod/v4/core").$strict>>;
40
57
  }, import("zod/v4/core").$strict>, import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
41
58
  type: import("zod").ZodLiteral<"turn_lifecycle">;
42
59
  turnId: import("zod").ZodString;
@@ -121,6 +121,13 @@ export declare const conversationReportEventDataSchema: z.ZodDiscriminatedUnion<
121
121
  }, z.core.$strict>, z.ZodObject<{
122
122
  type: z.ZodLiteral<"message_handled">;
123
123
  messageId: z.ZodString;
124
+ }, z.core.$strict>, z.ZodObject<{
125
+ type: z.ZodLiteral<"assistant_message">;
126
+ parts: z.ZodArray<z.ZodObject<{
127
+ type: z.ZodLiteral<"reasoning">;
128
+ text: z.ZodOptional<z.ZodString>;
129
+ redacted: z.ZodOptional<z.ZodLiteral<true>>;
130
+ }, z.core.$strict>>;
124
131
  }, z.core.$strict>, z.ZodObject<{
125
132
  type: z.ZodLiteral<"tool_calls">;
126
133
  calls: z.ZodArray<z.ZodObject<{
@@ -136,6 +143,16 @@ export declare const conversationReportEventDataSchema: z.ZodDiscriminatedUnion<
136
143
  input: z.ZodOptional<z.ZodUnknown>;
137
144
  output: z.ZodOptional<z.ZodUnknown>;
138
145
  }, z.core.$strict>>;
146
+ assistant: z.ZodOptional<z.ZodObject<{
147
+ parts: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
148
+ type: z.ZodLiteral<"reasoning">;
149
+ text: z.ZodOptional<z.ZodString>;
150
+ redacted: z.ZodOptional<z.ZodLiteral<true>>;
151
+ }, z.core.$strict>, z.ZodObject<{
152
+ type: z.ZodLiteral<"tool_call">;
153
+ toolCallId: z.ZodString;
154
+ }, z.core.$strict>], "type">>;
155
+ }, z.core.$strict>>;
139
156
  }, z.core.$strict>, z.ZodDiscriminatedUnion<[z.ZodObject<{
140
157
  type: z.ZodLiteral<"turn_lifecycle">;
141
158
  turnId: z.ZodString;
@@ -225,6 +242,13 @@ export declare const conversationReportEventSchema: z.ZodObject<{
225
242
  }, z.core.$strict>, z.ZodObject<{
226
243
  type: z.ZodLiteral<"message_handled">;
227
244
  messageId: z.ZodString;
245
+ }, z.core.$strict>, z.ZodObject<{
246
+ type: z.ZodLiteral<"assistant_message">;
247
+ parts: z.ZodArray<z.ZodObject<{
248
+ type: z.ZodLiteral<"reasoning">;
249
+ text: z.ZodOptional<z.ZodString>;
250
+ redacted: z.ZodOptional<z.ZodLiteral<true>>;
251
+ }, z.core.$strict>>;
228
252
  }, z.core.$strict>, z.ZodObject<{
229
253
  type: z.ZodLiteral<"tool_calls">;
230
254
  calls: z.ZodArray<z.ZodObject<{
@@ -240,6 +264,16 @@ export declare const conversationReportEventSchema: z.ZodObject<{
240
264
  input: z.ZodOptional<z.ZodUnknown>;
241
265
  output: z.ZodOptional<z.ZodUnknown>;
242
266
  }, z.core.$strict>>;
267
+ assistant: z.ZodOptional<z.ZodObject<{
268
+ parts: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
269
+ type: z.ZodLiteral<"reasoning">;
270
+ text: z.ZodOptional<z.ZodString>;
271
+ redacted: z.ZodOptional<z.ZodLiteral<true>>;
272
+ }, z.core.$strict>, z.ZodObject<{
273
+ type: z.ZodLiteral<"tool_call">;
274
+ toolCallId: z.ZodString;
275
+ }, z.core.$strict>], "type">>;
276
+ }, z.core.$strict>>;
243
277
  }, z.core.$strict>, z.ZodDiscriminatedUnion<[z.ZodObject<{
244
278
  type: z.ZodLiteral<"turn_lifecycle">;
245
279
  turnId: z.ZodString;
@@ -440,6 +474,13 @@ export declare const conversationDetailReportSchema: z.ZodObject<{
440
474
  }, z.core.$strict>, z.ZodObject<{
441
475
  type: z.ZodLiteral<"message_handled">;
442
476
  messageId: z.ZodString;
477
+ }, z.core.$strict>, z.ZodObject<{
478
+ type: z.ZodLiteral<"assistant_message">;
479
+ parts: z.ZodArray<z.ZodObject<{
480
+ type: z.ZodLiteral<"reasoning">;
481
+ text: z.ZodOptional<z.ZodString>;
482
+ redacted: z.ZodOptional<z.ZodLiteral<true>>;
483
+ }, z.core.$strict>>;
443
484
  }, z.core.$strict>, z.ZodObject<{
444
485
  type: z.ZodLiteral<"tool_calls">;
445
486
  calls: z.ZodArray<z.ZodObject<{
@@ -455,6 +496,16 @@ export declare const conversationDetailReportSchema: z.ZodObject<{
455
496
  input: z.ZodOptional<z.ZodUnknown>;
456
497
  output: z.ZodOptional<z.ZodUnknown>;
457
498
  }, z.core.$strict>>;
499
+ assistant: z.ZodOptional<z.ZodObject<{
500
+ parts: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
501
+ type: z.ZodLiteral<"reasoning">;
502
+ text: z.ZodOptional<z.ZodString>;
503
+ redacted: z.ZodOptional<z.ZodLiteral<true>>;
504
+ }, z.core.$strict>, z.ZodObject<{
505
+ type: z.ZodLiteral<"tool_call">;
506
+ toolCallId: z.ZodString;
507
+ }, z.core.$strict>], "type">>;
508
+ }, z.core.$strict>>;
458
509
  }, z.core.$strict>, z.ZodDiscriminatedUnion<[z.ZodObject<{
459
510
  type: z.ZodLiteral<"turn_lifecycle">;
460
511
  turnId: z.ZodString;
@@ -558,6 +609,13 @@ export declare const conversationEventPageSchema: z.ZodObject<{
558
609
  }, z.core.$strict>, z.ZodObject<{
559
610
  type: z.ZodLiteral<"message_handled">;
560
611
  messageId: z.ZodString;
612
+ }, z.core.$strict>, z.ZodObject<{
613
+ type: z.ZodLiteral<"assistant_message">;
614
+ parts: z.ZodArray<z.ZodObject<{
615
+ type: z.ZodLiteral<"reasoning">;
616
+ text: z.ZodOptional<z.ZodString>;
617
+ redacted: z.ZodOptional<z.ZodLiteral<true>>;
618
+ }, z.core.$strict>>;
561
619
  }, z.core.$strict>, z.ZodObject<{
562
620
  type: z.ZodLiteral<"tool_calls">;
563
621
  calls: z.ZodArray<z.ZodObject<{
@@ -573,6 +631,16 @@ export declare const conversationEventPageSchema: z.ZodObject<{
573
631
  input: z.ZodOptional<z.ZodUnknown>;
574
632
  output: z.ZodOptional<z.ZodUnknown>;
575
633
  }, z.core.$strict>>;
634
+ assistant: z.ZodOptional<z.ZodObject<{
635
+ parts: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
636
+ type: z.ZodLiteral<"reasoning">;
637
+ text: z.ZodOptional<z.ZodString>;
638
+ redacted: z.ZodOptional<z.ZodLiteral<true>>;
639
+ }, z.core.$strict>, z.ZodObject<{
640
+ type: z.ZodLiteral<"tool_call">;
641
+ toolCallId: z.ZodString;
642
+ }, z.core.$strict>], "type">>;
643
+ }, z.core.$strict>>;
576
644
  }, z.core.$strict>, z.ZodDiscriminatedUnion<[z.ZodObject<{
577
645
  type: z.ZodLiteral<"turn_lifecycle">;
578
646
  turnId: z.ZodString;
@@ -30,7 +30,7 @@ import {
30
30
  revokePersonalTokenResponseSchema,
31
31
  statSchema,
32
32
  statsReportSchema
33
- } from "../chunk-7SM3P4XR.js";
33
+ } from "../chunk-O2ULQJWR.js";
34
34
  import {
35
35
  healthReportSchema,
36
36
  pluginOperationalReportFeedSchema,
package/dist/api.js CHANGED
@@ -24,12 +24,12 @@ import {
24
24
  personalTokenParamsSchema,
25
25
  revokePersonalTokenResponseSchema,
26
26
  statsReportSchema
27
- } from "./chunk-7SM3P4XR.js";
27
+ } from "./chunk-O2ULQJWR.js";
28
28
  import {
29
29
  formatSlackConversationRedactedLabel,
30
30
  readHealthReport,
31
31
  resolveSlackConversationContextFromThreadId
32
- } from "./chunk-HN6LFYG3.js";
32
+ } from "./chunk-6ZR455DC.js";
33
33
  import {
34
34
  buildSentryConversationUrl
35
35
  } from "./chunk-4CODA7P5.js";
@@ -42,7 +42,7 @@ import {
42
42
  } from "./chunk-PE44LDDQ.js";
43
43
  import {
44
44
  readStats
45
- } from "./chunk-L72GDKSN.js";
45
+ } from "./chunk-JXRAOOXQ.js";
46
46
  import {
47
47
  agentTurnUsageSchema,
48
48
  hasAgentTurnUsage
@@ -52,12 +52,12 @@ import {
52
52
  createPluginLogger,
53
53
  getPlugins,
54
54
  listConversationAnnotations
55
- } from "./chunk-GT2ZUALJ.js";
55
+ } from "./chunk-BLQZACHV.js";
56
56
  import {
57
57
  decodeStoredConversationEvent,
58
58
  getDb,
59
59
  getSqlExecutor
60
- } from "./chunk-KC5EE27Y.js";
60
+ } from "./chunk-D3N4BPSL.js";
61
61
  import {
62
62
  juniorApiTokens,
63
63
  juniorConversationEvents,
@@ -65,24 +65,24 @@ import {
65
65
  juniorIdentities,
66
66
  juniorUsers
67
67
  } from "./chunk-GCGJGSQL.js";
68
- import "./chunk-3N3FMCKN.js";
69
- import "./chunk-PWRFTDTY.js";
68
+ import "./chunk-VJTWKJWQ.js";
69
+ import "./chunk-VLTWQQKH.js";
70
70
  import {
71
71
  juniorDestinations
72
72
  } from "./chunk-VFUK3X5B.js";
73
73
  import {
74
74
  canExposeConversationPayload,
75
75
  parseSlackThreadId
76
- } from "./chunk-FXOYURO4.js";
76
+ } from "./chunk-HDFGNU5E.js";
77
77
  import "./chunk-HZF5P5UN.js";
78
78
  import {
79
79
  normalizeIdentityEmail
80
- } from "./chunk-MLZFK4KP.js";
80
+ } from "./chunk-ZJ6IVZVO.js";
81
81
  import "./chunk-OB42YVAE.js";
82
82
  import "./chunk-F3B2YJ76.js";
83
83
  import "./chunk-6GWA276C.js";
84
- import "./chunk-QWCF4RAC.js";
85
- import "./chunk-HWUBBHLK.js";
84
+ import "./chunk-NUENIPQL.js";
85
+ import "./chunk-JLJLZS2N.js";
86
86
  import "./chunk-MLKGABMK.js";
87
87
 
88
88
  // src/api.ts
@@ -395,6 +395,11 @@ var reportingToolResultDetailsSchema = z2.object({
395
395
  status: z2.string().optional()
396
396
  }).passthrough();
397
397
  var reportingTextPartSchema = z2.object({ type: z2.literal("text"), text: z2.string() }).passthrough();
398
+ var reportingReasoningPartSchema = z2.object({
399
+ type: z2.literal("thinking"),
400
+ thinking: z2.string(),
401
+ redacted: z2.literal(true).optional()
402
+ }).passthrough();
398
403
  var reportingMediaPartSchema = z2.object({
399
404
  type: z2.enum(["image", "audio"]),
400
405
  mimeType: z2.string().min(1).optional()
@@ -435,6 +440,43 @@ function reportToolCalls(args) {
435
440
  });
436
441
  return calls.length > 0 ? { type: "tool_calls", calls } : void 0;
437
442
  }
443
+ function reportAssistantMessage(args) {
444
+ const message2 = reportingAssistantMessageSchema.safeParse(args.message);
445
+ if (!message2.success) return void 0;
446
+ const hasReasoning = message2.data.content.some((part) => {
447
+ const reasoning = reportingReasoningPartSchema.safeParse(part);
448
+ return reasoning.success && reasoning.data.redacted !== true && reasoning.data.thinking.trim().length > 0;
449
+ });
450
+ if (!hasReasoning) return reportToolCalls(args);
451
+ const reasoningParts = [];
452
+ const assistantParts = [];
453
+ for (const part of message2.data.content) {
454
+ const reasoning = reportingReasoningPartSchema.safeParse(part);
455
+ if (reasoning.success) {
456
+ if (reasoning.data.redacted !== true && reasoning.data.thinking.trim().length > 0) {
457
+ const projected = {
458
+ type: "reasoning",
459
+ ...args.canExposePayload ? { text: reasoning.data.thinking } : { redacted: true }
460
+ };
461
+ reasoningParts.push(projected);
462
+ assistantParts.push(projected);
463
+ }
464
+ continue;
465
+ }
466
+ const call = reportingToolCallPartSchema.safeParse(part);
467
+ if (call.success) {
468
+ assistantParts.push({
469
+ type: "tool_call",
470
+ toolCallId: call.data.id
471
+ });
472
+ }
473
+ }
474
+ const toolCalls = reportToolCalls(args);
475
+ if (toolCalls?.type === "tool_calls") {
476
+ return { ...toolCalls, assistant: { parts: assistantParts } };
477
+ }
478
+ return reasoningParts.length > 0 ? { type: "assistant_message", parts: reasoningParts } : void 0;
479
+ }
438
480
  function reportToolResult(args) {
439
481
  const message2 = reportingToolResultMessageSchema.safeParse(args.message);
440
482
  if (!message2.success) return void 0;
@@ -576,7 +618,7 @@ function projectConversationReportEventPage(args) {
576
618
  };
577
619
  const result = reportingToolResultMessageSchema.safeParse(event.data);
578
620
  const start = result.success ? toolStarts.get(result.data.toolCallId) : void 0;
579
- data = reportToolCalls(reportArgs) ?? reportToolResult({
621
+ data = reportAssistantMessage(reportArgs) ?? reportToolResult({
580
622
  canExposePayload: args.canExposePayload,
581
623
  message: event.data,
582
624
  ...start && start.seq < event.seq ? { start } : {}
@@ -1699,7 +1741,7 @@ function readDescriptionText(home) {
1699
1741
  }
1700
1742
  }
1701
1743
  async function readSkillReports() {
1702
- const { discoverSkills } = await import("./skills-W4JETYSV.js");
1744
+ const { discoverSkills } = await import("./skills-MANV5ZK6.js");
1703
1745
  const skills = await discoverSkills();
1704
1746
  return skillReportsSchema.parse(
1705
1747
  skills.map((skill) => ({
@@ -1709,7 +1751,7 @@ async function readSkillReports() {
1709
1751
  );
1710
1752
  }
1711
1753
  async function readPlugins() {
1712
- const { pluginCatalogRuntime } = await import("./catalog-runtime-UHHLU53I.js");
1754
+ const { pluginCatalogRuntime } = await import("./catalog-runtime-TAOYIZIZ.js");
1713
1755
  return pluginsSchema.parse(
1714
1756
  pluginCatalogRuntime.getProviders().map((plugin) => ({
1715
1757
  configKeys: plugin.manifest.configKeys ?? [],
@@ -1722,7 +1764,7 @@ async function readPlugins() {
1722
1764
  async function readRuntimeInfoReport() {
1723
1765
  const [{ homeDir }, { pluginCatalogRuntime }, plugins, skills] = await Promise.all([
1724
1766
  import("./discovery-RMHYSRL7.js"),
1725
- import("./catalog-runtime-UHHLU53I.js"),
1767
+ import("./catalog-runtime-TAOYIZIZ.js"),
1726
1768
  readPlugins(),
1727
1769
  readSkillReports()
1728
1770
  ]);
@@ -1738,7 +1780,7 @@ async function readRuntimeInfoReport() {
1738
1780
  }
1739
1781
  async function readPluginOperationalReportFeed() {
1740
1782
  const nowMs = Date.now();
1741
- const { getPluginOperationalReports } = await import("./agent-hooks-J2FB7XD6.js");
1783
+ const { getPluginOperationalReports } = await import("./agent-hooks-NZSV4QQR.js");
1742
1784
  return pluginOperationalReportFeedSchema.parse({
1743
1785
  source: "plugins",
1744
1786
  generatedAt: new Date(nowMs).toISOString(),
package/dist/app.js CHANGED
@@ -8,6 +8,7 @@ import {
8
8
  appendAndEnqueueInboundMessage,
9
9
  beginConversationResume,
10
10
  buildAuthPauseResponse,
11
+ buildSlackOutputMessage,
11
12
  checkInConversationWork,
12
13
  clearConsumedConversationWake,
13
14
  clearExpiredConversationLease,
@@ -45,10 +46,11 @@ import {
45
46
  scheduleAgentContinue,
46
47
  sendSlackReply,
47
48
  shouldKeepProcessingReactionForToolInvocation,
49
+ splitSlackReplyText,
48
50
  startConversationWork,
49
51
  startSlackProcessingReaction,
50
52
  stripLeadingBotMention
51
- } from "./chunk-3MUSSFMP.js";
53
+ } from "./chunk-YLYJIQRX.js";
52
54
  import "./chunk-FA6POGLH.js";
53
55
  import {
54
56
  ConversationTurnLifecycleService,
@@ -63,13 +65,13 @@ import {
63
65
  processPluginTask,
64
66
  requireTurnFailureEventId,
65
67
  scheduleSessionCompletedPluginTasks
66
- } from "./chunk-6BGUAOYP.js";
68
+ } from "./chunk-ZFX4M743.js";
67
69
  import {
68
70
  GET,
69
71
  conversationVisibilityFromSlackChannelType,
70
72
  resolveSlackChannelTypeFromMessage,
71
73
  resolveSlackConversationContext
72
- } from "./chunk-HN6LFYG3.js";
74
+ } from "./chunk-6ZR455DC.js";
73
75
  import "./chunk-4CODA7P5.js";
74
76
  import "./chunk-PE44LDDQ.js";
75
77
  import {
@@ -88,7 +90,7 @@ import {
88
90
  import {
89
91
  validatePluginEgressCredentialHooks,
90
92
  validatePluginRegistrations
91
- } from "./chunk-4SOQPUF4.js";
93
+ } from "./chunk-TAGV4Z3J.js";
92
94
  import {
93
95
  defineJuniorPlugins,
94
96
  pluginCatalogConfigFromEnv,
@@ -121,20 +123,18 @@ import {
121
123
  setConfigDefaults,
122
124
  shouldEmitDevAgentTrace,
123
125
  shouldPropagateSandboxEgressTrace
124
- } from "./chunk-6K2QE2UI.js";
126
+ } from "./chunk-TGIQN7QW.js";
125
127
  import "./chunk-DIB4GX3G.js";
126
128
  import {
127
129
  RetryableDeliveryError,
128
- buildSlackOutputMessage,
129
130
  createUserTokenStore,
130
131
  deleteMcpAuthSessionsForUserProvider,
131
132
  deleteMcpServerSessionId,
132
133
  deleteMcpStoredOAuthCredentials,
133
134
  formatProviderLabel,
134
135
  postSlackMessage,
135
- splitSlackReplyText,
136
136
  startOAuthFlow
137
- } from "./chunk-S6R23MFB.js";
137
+ } from "./chunk-4UIUDOOV.js";
138
138
  import {
139
139
  ConversationTurnBoundaryError,
140
140
  CooperativeTurnYieldError,
@@ -188,10 +188,10 @@ import {
188
188
  trimTrailingAssistantMessages,
189
189
  updateConversationStats,
190
190
  upsertConversationMessage
191
- } from "./chunk-PJPKHGLG.js";
191
+ } from "./chunk-BNJEPYTC.js";
192
192
  import "./chunk-HDSDCEPK.js";
193
- import "./chunk-4LPPH7Y6.js";
194
- import "./chunk-L72GDKSN.js";
193
+ import "./chunk-GKFDU3ZI.js";
194
+ import "./chunk-JXRAOOXQ.js";
195
195
  import "./chunk-MU6HHZEN.js";
196
196
  import "./chunk-PDO5BLNM.js";
197
197
  import "./chunk-UIE3R5XU.js";
@@ -216,7 +216,7 @@ import {
216
216
  validatePlugins,
217
217
  verifyScheduledTaskCredentialSubject,
218
218
  verifySlackDirectCredentialSubject
219
- } from "./chunk-GT2ZUALJ.js";
219
+ } from "./chunk-BLQZACHV.js";
220
220
  import {
221
221
  contextProvenance,
222
222
  createSlackDestination,
@@ -227,7 +227,7 @@ import {
227
227
  instructionProvenanceFor,
228
228
  requireSlackDestination,
229
229
  withConversationEventLock
230
- } from "./chunk-KC5EE27Y.js";
230
+ } from "./chunk-D3N4BPSL.js";
231
231
  import {
232
232
  juniorConversationEvents,
233
233
  juniorConversations
@@ -236,7 +236,7 @@ import {
236
236
  acquireActiveLock,
237
237
  getStateAdapter,
238
238
  sleep
239
- } from "./chunk-3N3FMCKN.js";
239
+ } from "./chunk-VJTWKJWQ.js";
240
240
  import {
241
241
  STANDARD_MODEL_PROFILE,
242
242
  botConfig,
@@ -254,18 +254,18 @@ import {
254
254
  modelIdForProfile,
255
255
  setSlackReactionConfig,
256
256
  standardModelId
257
- } from "./chunk-PWRFTDTY.js";
257
+ } from "./chunk-VLTWQQKH.js";
258
258
  import {
259
259
  juniorDestinations
260
260
  } from "./chunk-VFUK3X5B.js";
261
261
  import {
262
262
  parseSlackThreadId
263
- } from "./chunk-FXOYURO4.js";
264
- import "./chunk-7GADTCNS.js";
263
+ } from "./chunk-HDFGNU5E.js";
264
+ import "./chunk-QZ7XRJDB.js";
265
265
  import {
266
266
  pluginCatalogRuntime
267
- } from "./chunk-UXLYAVYL.js";
268
- import "./chunk-3LGCVRBQ.js";
267
+ } from "./chunk-JSTGI7TX.js";
268
+ import "./chunk-R53UT2OI.js";
269
269
  import {
270
270
  credentialSubjectSchema
271
271
  } from "./chunk-W3U3YQYI.js";
@@ -291,7 +291,7 @@ import {
291
291
  setTags,
292
292
  withContext,
293
293
  withSpan
294
- } from "./chunk-MLZFK4KP.js";
294
+ } from "./chunk-ZJ6IVZVO.js";
295
295
  import {
296
296
  toOptionalString
297
297
  } from "./chunk-OB42YVAE.js";
@@ -306,10 +306,10 @@ import "./chunk-B3IT5END.js";
306
306
  import "./chunk-3V7OFJZC.js";
307
307
  import {
308
308
  JUNIOR_PLUGIN_TASK_CALLBACK_ROUTE
309
- } from "./chunk-QWCF4RAC.js";
309
+ } from "./chunk-NUENIPQL.js";
310
310
  import {
311
311
  JUNIOR_VERSION
312
- } from "./chunk-HWUBBHLK.js";
312
+ } from "./chunk-JLJLZS2N.js";
313
313
  import "./chunk-MLKGABMK.js";
314
314
 
315
315
  // src/app.ts
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  pluginCatalogRuntime
3
- } from "./chunk-UXLYAVYL.js";
4
- import "./chunk-3LGCVRBQ.js";
3
+ } from "./chunk-JSTGI7TX.js";
4
+ import "./chunk-R53UT2OI.js";
5
5
  import "./chunk-W3U3YQYI.js";
6
6
  import "./chunk-HZF5P5UN.js";
7
- import "./chunk-MLZFK4KP.js";
7
+ import "./chunk-ZJ6IVZVO.js";
8
8
  import "./chunk-OB42YVAE.js";
9
9
  import "./chunk-F3B2YJ76.js";
10
10
  import "./chunk-6GWA276C.js";
11
11
  import "./chunk-B3IT5END.js";
12
12
  import "./chunk-3V7OFJZC.js";
13
- import "./chunk-QWCF4RAC.js";
14
- import "./chunk-HWUBBHLK.js";
13
+ import "./chunk-NUENIPQL.js";
14
+ import "./chunk-JLJLZS2N.js";
15
15
  import "./chunk-MLKGABMK.js";
16
16
  export {
17
17
  pluginCatalogRuntime
@@ -1,3 +1,4 @@
1
+ import { type CanvasMarkdownNormalization } from "@/chat/slack/tools/canvas/markdown";
1
2
  export { extractCanvasId } from "@/chat/slack/canvas-references";
2
3
  export interface CanvasCreateInput {
3
4
  title: string;
@@ -13,11 +14,6 @@ export interface CanvasReadResult {
13
14
  content: string;
14
15
  byteLength: number;
15
16
  }
16
- /** Clamp headings deeper than h3 to h3 (Slack canvas limitation). */
17
- export declare function normalizeCanvasMarkdown(markdown: string): {
18
- markdown: string;
19
- normalizedHeadingCount: number;
20
- };
21
17
  /**
22
18
  * Create a standalone Slack canvas owned by the bot and best-effort grant write
23
19
  * access to the active channel. Standalone canvases (`canvases.create`) are not
@@ -32,10 +28,7 @@ export declare function createCanvas(input: CanvasCreateInput): Promise<{
32
28
  export declare function writeCanvasMarkdown(input: {
33
29
  canvasId: string;
34
30
  markdown: string;
35
- }): Promise<{
36
- markdown: string;
37
- normalizedHeadingCount: number;
38
- }>;
31
+ }): Promise<CanvasMarkdownNormalization>;
39
32
  /**
40
33
  * Read a Slack canvas the bot has access to and return its raw downloadable
41
34
  * content. Slack does not expose a structured canvas-read API, so we fetch
@@ -0,0 +1,9 @@
1
+ export interface CanvasMarkdownNormalization {
2
+ markdown: string;
3
+ normalizedCount: number;
4
+ normalizedHeadingCount: number;
5
+ normalizedMixedListCount: number;
6
+ unwrappedBlockquoteCount: number;
7
+ }
8
+ /** Normalize Markdown constructs known to be rejected by Slack Canvas. */
9
+ export declare function normalizeCanvasMarkdown(markdown: string): CanvasMarkdownNormalization;