@sentry/junior 0.178.0 → 0.179.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 (67) hide show
  1. package/dist/{agent-hooks-PBT4NNBV.js → agent-hooks-32IDCLMW.js} +12 -12
  2. package/dist/api.js +229 -196
  3. package/dist/app.js +570 -195
  4. package/dist/{catalog-runtime-M7QGKPFZ.js → catalog-runtime-FBVA6WAQ.js} +5 -5
  5. package/dist/chat/scheduled-tasks/personal.d.ts +5 -8
  6. package/dist/chat/scheduled-tasks/runs.d.ts +49 -0
  7. package/dist/chat/scheduled-tasks/schedule-intent.d.ts +1 -1
  8. package/dist/chat/scheduled-tasks/tasks.d.ts +27 -0
  9. package/dist/chat/scheduled-tasks/tool-support.d.ts +0 -4
  10. package/dist/chat/scheduled-tasks/tools/create.d.ts +1 -1
  11. package/dist/chat/scheduled-tasks/tools/update.d.ts +1 -1
  12. package/dist/chat/scheduled-tasks/types.d.ts +127 -78
  13. package/dist/{chunk-JVXZ3WDH.js → chunk-2HIPYNQI.js} +6 -6
  14. package/dist/{chunk-BHHWCNXI.js → chunk-3AFVR5UC.js} +5 -5
  15. package/dist/{chunk-XWUJWHFD.js → chunk-3I7XE3PA.js} +6 -6
  16. package/dist/{chunk-H6ZXBFGX.js → chunk-3TM3FYLQ.js} +1 -1
  17. package/dist/{chunk-6OYVH66J.js → chunk-4GWXAILB.js} +1 -1
  18. package/dist/{chunk-BUGO42R6.js → chunk-5IRROPA5.js} +4 -4
  19. package/dist/{chunk-534BO42N.js → chunk-B6ECUSVX.js} +3 -3
  20. package/dist/{chunk-G3CQEUHI.js → chunk-CJLBLELR.js} +5 -5
  21. package/dist/{chunk-22T3HB44.js → chunk-FAS6AIMF.js} +1 -1
  22. package/dist/{chunk-BFLMRTPD.js → chunk-FIDMHAO6.js} +6 -6
  23. package/dist/{chunk-AVRWMQ4U.js → chunk-FTGD2FBP.js} +1 -1
  24. package/dist/{chunk-UMG7M32G.js → chunk-G2CAC4CV.js} +17 -17
  25. package/dist/{chunk-3ZZEPLLB.js → chunk-GENV6KF2.js} +2 -2
  26. package/dist/{chunk-RE4XWXBV.js → chunk-GPLAT6H7.js} +6 -6
  27. package/dist/{chunk-UGWBJAGN.js → chunk-HQNE5APD.js} +1 -1
  28. package/dist/{chunk-AQHSXA3J.js → chunk-JMJNFEDC.js} +3 -3
  29. package/dist/{chunk-PRDKO3QB.js → chunk-JT4WMD3C.js} +12 -12
  30. package/dist/{chunk-4K6VNP3S.js → chunk-KJLHIHFF.js} +9 -9
  31. package/dist/{chunk-QCCLDJHB.js → chunk-Q5B3WTGG.js} +8 -8
  32. package/dist/{chunk-RGXOLPWO.js → chunk-R5NWWYIS.js} +1 -1
  33. package/dist/{chunk-ZCHHVTMF.js → chunk-R6U7N4FS.js} +1 -1
  34. package/dist/{chunk-OGRD5PFM.js → chunk-RTRBYSF3.js} +1 -1
  35. package/dist/{chunk-FQ6BMP5P.js → chunk-RZRYOLCE.js} +396 -74
  36. package/dist/{chunk-D3UJTX4U.js → chunk-SLGGOASN.js} +1 -1
  37. package/dist/{chunk-IQRPDKPJ.js → chunk-TIEKUH4Q.js} +1 -1
  38. package/dist/{chunk-LAOP4EPL.js → chunk-U4TKB6F6.js} +4 -4
  39. package/dist/{chunk-AGJ4OQ2V.js → chunk-UT6X7XN7.js} +1 -1
  40. package/dist/{chunk-XCNS3CXE.js → chunk-VP4OVRDD.js} +3 -3
  41. package/dist/{chunk-KEQAA42D.js → chunk-XSPSCWLH.js} +1 -1
  42. package/dist/chunk-XZY6G5YZ.js +1088 -0
  43. package/dist/{chunk-ABLODWPO.js → chunk-YFNAMRGE.js} +1 -1
  44. package/dist/{chunk-U3UDPGZG.js → chunk-ZQMG3CL5.js} +2 -2
  45. package/dist/cli/chat.js +31 -31
  46. package/dist/cli/check.js +6 -6
  47. package/dist/cli/plugins.js +13 -13
  48. package/dist/cli/snapshot-create.js +10 -10
  49. package/dist/cli/upgrade.js +7 -7
  50. package/dist/db/schema/scheduled-tasks.d.ts +29 -5
  51. package/dist/db/schema.d.ts +28 -4
  52. package/dist/{db-QVYOWATH.js → db-EJAV7JL6.js} +7 -7
  53. package/dist/instrumentation.js +4 -4
  54. package/dist/nitro.js +2 -2
  55. package/dist/{oauth-callback-server-PLPAFXO6.js → oauth-callback-server-GAVSUBTQ.js} +23 -23
  56. package/dist/{runner-AGNEIOZS.js → runner-34JL64JF.js} +15 -15
  57. package/dist/{skills-U5KQ66EM.js → skills-U545HALM.js} +6 -6
  58. package/dist/spawn-I2S4IDUQ.js +37 -0
  59. package/dist/{validation-QE4U45KS.js → validation-EVXVGA44.js} +6 -6
  60. package/dist/version.js +1 -1
  61. package/dist/{work-ATAXAHJJ.js → work-QOAUPDBU.js} +18 -18
  62. package/dist/worker-5GX2IKLZ.js +24 -0
  63. package/package.json +5 -5
  64. package/dist/chat/scheduled-tasks/store.d.ts +0 -78
  65. package/dist/chunk-RGV6KHDM.js +0 -1944
  66. package/dist/spawn-ZRYYZP2B.js +0 -37
  67. package/dist/worker-LIL5AOER.js +0 -24
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getStateAdapter
3
- } from "./chunk-H6ZXBFGX.js";
3
+ } from "./chunk-3TM3FYLQ.js";
4
4
  import {
5
5
  getClient
6
6
  } from "./chunk-6GWA276C.js";
@@ -4,11 +4,11 @@ import {
4
4
  import {
5
5
  buildSentryConversationUrl,
6
6
  deleteWebAuthorization
7
- } from "./chunk-AVRWMQ4U.js";
7
+ } from "./chunk-FTGD2FBP.js";
8
8
  import {
9
9
  ensureConversationWake,
10
10
  requestConversationWork
11
- } from "./chunk-BUGO42R6.js";
11
+ } from "./chunk-5IRROPA5.js";
12
12
  import {
13
13
  buildDeliveredTurnStatePatch,
14
14
  finalizeFailedTurnReplyWithEvent,
@@ -21,7 +21,7 @@ import {
21
21
  requireTurnFailureEventId,
22
22
  resolveTurnSessionRouting,
23
23
  scheduleSessionCompletedPluginTasks
24
- } from "./chunk-4K6VNP3S.js";
24
+ } from "./chunk-KJLHIHFF.js";
25
25
  import {
26
26
  ConversationTurnLifecycleService,
27
27
  coerceThreadConversationState,
@@ -30,7 +30,7 @@ import {
30
30
  getPersistedSandboxState,
31
31
  getPersistedThreadState,
32
32
  persistThreadStateById
33
- } from "./chunk-G3CQEUHI.js";
33
+ } from "./chunk-CJLBLELR.js";
34
34
  import {
35
35
  getVercelConversationWorkQueue
36
36
  } from "./chunk-WR76IVA5.js";
@@ -44,10 +44,10 @@ import {
44
44
  lookupSlackUserProfile,
45
45
  resolvePluginOAuthAccount,
46
46
  runAgentWithTimeout
47
- } from "./chunk-QCCLDJHB.js";
47
+ } from "./chunk-Q5B3WTGG.js";
48
48
  import {
49
49
  getTurnRequestDeadline
50
- } from "./chunk-6OYVH66J.js";
50
+ } from "./chunk-4GWXAILB.js";
51
51
  import {
52
52
  RetryableDeliveryError
53
53
  } from "./chunk-RF6J3DIO.js";
@@ -63,13 +63,13 @@ import {
63
63
  removeReactionFromMessage,
64
64
  resolveBaseUrl,
65
65
  truncateStatusText
66
- } from "./chunk-JVXZ3WDH.js";
66
+ } from "./chunk-2HIPYNQI.js";
67
67
  import {
68
68
  parseSlackThreadId,
69
69
  readSlackRawMessageContext,
70
70
  resolveSlackChannelIdFromMessage,
71
71
  resolveSlackChannelIdFromThreadId
72
- } from "./chunk-22T3HB44.js";
72
+ } from "./chunk-FAS6AIMF.js";
73
73
  import {
74
74
  CooperativeTurnYieldError,
75
75
  TurnSliceLimitExceededError,
@@ -96,7 +96,7 @@ import {
96
96
  recordTurnSummary,
97
97
  saveTurnCheckpoint,
98
98
  turnHasReply
99
- } from "./chunk-BFLMRTPD.js";
99
+ } from "./chunk-FIDMHAO6.js";
100
100
  import {
101
101
  SlackActionError,
102
102
  getDashboardConversationLink,
@@ -105,18 +105,18 @@ import {
105
105
  getSlackClient,
106
106
  isDmChannel,
107
107
  normalizeSlackConversationId
108
- } from "./chunk-XWUJWHFD.js";
108
+ } from "./chunk-3I7XE3PA.js";
109
109
  import {
110
110
  getConversationEventStore,
111
111
  getSqlExecutor,
112
112
  requireSlackDestination,
113
113
  upsertIdentity,
114
114
  upsertLinkedIdentity
115
- } from "./chunk-XCNS3CXE.js";
115
+ } from "./chunk-VP4OVRDD.js";
116
116
  import {
117
117
  acquireActiveLock,
118
118
  getStateAdapter
119
- } from "./chunk-H6ZXBFGX.js";
119
+ } from "./chunk-3TM3FYLQ.js";
120
120
  import {
121
121
  botConfig,
122
122
  escapeXml,
@@ -124,18 +124,18 @@ import {
124
124
  getRuntimeMetadata,
125
125
  normalizeSlackEmojiName,
126
126
  standardModelId
127
- } from "./chunk-3ZZEPLLB.js";
127
+ } from "./chunk-GENV6KF2.js";
128
128
  import {
129
129
  discoverSkills
130
- } from "./chunk-U3UDPGZG.js";
130
+ } from "./chunk-ZQMG3CL5.js";
131
131
  import {
132
132
  pluginCatalogRuntime
133
- } from "./chunk-ABLODWPO.js";
133
+ } from "./chunk-YFNAMRGE.js";
134
134
  import {
135
135
  buildOAuthTokenRequest,
136
136
  hasRequiredOAuthScope,
137
137
  parseOAuthTokenResponse
138
- } from "./chunk-D3UJTX4U.js";
138
+ } from "./chunk-SLGGOASN.js";
139
139
  import {
140
140
  createSlackResumeActor,
141
141
  isUserActor,
@@ -151,7 +151,7 @@ import {
151
151
  setTags,
152
152
  toOptionalString,
153
153
  withLogContext
154
- } from "./chunk-UGWBJAGN.js";
154
+ } from "./chunk-HQNE5APD.js";
155
155
  import {
156
156
  homeDir
157
157
  } from "./chunk-H4HBKISO.js";
@@ -3,7 +3,7 @@ import {
3
3
  toCanonicalInputMessage,
4
4
  toCanonicalOutputMessage,
5
5
  toGenAiMessagesTraceAttributes
6
- } from "./chunk-KEQAA42D.js";
6
+ } from "./chunk-XSPSCWLH.js";
7
7
  import {
8
8
  extractGenAiUsageAttributes,
9
9
  logException,
@@ -11,7 +11,7 @@ import {
11
11
  normalizeGenAiFinishReason,
12
12
  serializeGenAiAttribute,
13
13
  withSpan
14
- } from "./chunk-UGWBJAGN.js";
14
+ } from "./chunk-HQNE5APD.js";
15
15
 
16
16
  // src/chat/services/provider-error.ts
17
17
  var ProviderError = class extends Error {
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  appendAndEnqueueInboundMessage
3
- } from "./chunk-BUGO42R6.js";
3
+ } from "./chunk-5IRROPA5.js";
4
4
  import {
5
5
  ConversationTurnLifecycleService,
6
6
  getPersistedSandboxState,
7
7
  getPersistedThreadState,
8
8
  persistThreadStateById
9
- } from "./chunk-G3CQEUHI.js";
9
+ } from "./chunk-CJLBLELR.js";
10
10
  import {
11
11
  AgentInvocationBusyError,
12
12
  AgentInvocationLimitError,
@@ -15,7 +15,7 @@ import {
15
15
  agentBindingSchema,
16
16
  agentInvocationSchema,
17
17
  createAgentInvocationSchema
18
- } from "./chunk-BHHWCNXI.js";
18
+ } from "./chunk-3AFVR5UC.js";
19
19
  import {
20
20
  TurnInputCommitLostError,
21
21
  failTurnRecord,
@@ -26,16 +26,16 @@ import {
26
26
  isTurnInputCommitLostError,
27
27
  openConversationProjection,
28
28
  saveTurnCheckpoint
29
- } from "./chunk-BFLMRTPD.js";
29
+ } from "./chunk-FIDMHAO6.js";
30
30
  import {
31
31
  getConversationEventStore,
32
32
  getConversationStore,
33
33
  getSqlExecutor
34
- } from "./chunk-XCNS3CXE.js";
34
+ } from "./chunk-VP4OVRDD.js";
35
35
  import {
36
36
  juniorAgentBindings,
37
37
  juniorAgentInvocations
38
- } from "./chunk-ZCHHVTMF.js";
38
+ } from "./chunk-R6U7N4FS.js";
39
39
 
40
40
  // src/chat/agent-invocations/work.ts
41
41
  import { z } from "zod";
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-6GWA276C.js";
10
10
  import {
11
11
  getDeploymentTelemetryAttributes
12
- } from "./chunk-AGJ4OQ2V.js";
12
+ } from "./chunk-UT6X7XN7.js";
13
13
 
14
14
  // src/chat/logging.ts
15
15
  import path from "path";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  toOptionalTrimmed
3
- } from "./chunk-3ZZEPLLB.js";
3
+ } from "./chunk-GENV6KF2.js";
4
4
  import {
5
5
  pluginCatalogRuntime
6
- } from "./chunk-ABLODWPO.js";
6
+ } from "./chunk-YFNAMRGE.js";
7
7
  import {
8
8
  setSpanAttributes,
9
9
  setSpanStatus
10
- } from "./chunk-UGWBJAGN.js";
10
+ } from "./chunk-HQNE5APD.js";
11
11
 
12
12
  // src/chat/sandbox/paths.ts
13
13
  function normalizeWorkspaceRoot(input) {
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  createWebAuthorization,
3
3
  deleteWebAuthorization
4
- } from "./chunk-AVRWMQ4U.js";
4
+ } from "./chunk-FTGD2FBP.js";
5
5
  import {
6
6
  appendAndEnqueueInboundMessage
7
- } from "./chunk-BUGO42R6.js";
7
+ } from "./chunk-5IRROPA5.js";
8
8
  import {
9
9
  buildDeliveredTurnStatePatch,
10
10
  completeAuthPauseTurn,
@@ -12,20 +12,20 @@ import {
12
12
  getTurnUserMessage,
13
13
  processPluginTask,
14
14
  scheduleSessionCompletedPluginTasks
15
- } from "./chunk-4K6VNP3S.js";
15
+ } from "./chunk-KJLHIHFF.js";
16
16
  import {
17
17
  ConversationTurnLifecycleService,
18
18
  coerceThreadConversationState,
19
19
  getPersistedSandboxState,
20
20
  getPersistedThreadState,
21
21
  persistThreadStateById
22
- } from "./chunk-G3CQEUHI.js";
22
+ } from "./chunk-CJLBLELR.js";
23
23
  import {
24
24
  healthReportSchema
25
25
  } from "./chunk-UTL3MHPC.js";
26
26
  import {
27
27
  parseSlackThreadId
28
- } from "./chunk-22T3HB44.js";
28
+ } from "./chunk-FAS6AIMF.js";
29
29
  import {
30
30
  TurnInputCommitLostError,
31
31
  abandonTurnRecord,
@@ -49,31 +49,31 @@ import {
49
49
  saveTurnCheckpoint,
50
50
  startActiveTurn,
51
51
  upsertConversationMessage
52
- } from "./chunk-BFLMRTPD.js";
52
+ } from "./chunk-FIDMHAO6.js";
53
53
  import {
54
54
  normalizeSlackConversationId
55
- } from "./chunk-XWUJWHFD.js";
55
+ } from "./chunk-3I7XE3PA.js";
56
56
  import {
57
57
  getConversationEventStore,
58
58
  getConversationStore,
59
59
  getDb
60
- } from "./chunk-XCNS3CXE.js";
60
+ } from "./chunk-VP4OVRDD.js";
61
61
  import {
62
62
  juniorApiTokens,
63
63
  juniorConversationParticipants,
64
64
  juniorConversations,
65
65
  juniorIdentities,
66
66
  juniorUsers
67
- } from "./chunk-ZCHHVTMF.js";
67
+ } from "./chunk-R6U7N4FS.js";
68
68
  import {
69
69
  getSlackBotToken
70
- } from "./chunk-3ZZEPLLB.js";
70
+ } from "./chunk-GENV6KF2.js";
71
71
  import {
72
72
  juniorDestinations
73
73
  } from "./chunk-VFUK3X5B.js";
74
74
  import {
75
75
  canExposeConversationPayload
76
- } from "./chunk-KEQAA42D.js";
76
+ } from "./chunk-XSPSCWLH.js";
77
77
  import {
78
78
  credentialContextForActor
79
79
  } from "./chunk-CGA4ERJ5.js";
@@ -82,7 +82,7 @@ import {
82
82
  logWarn,
83
83
  setTags,
84
84
  withLogContext
85
- } from "./chunk-UGWBJAGN.js";
85
+ } from "./chunk-HQNE5APD.js";
86
86
 
87
87
  // src/handlers/health.ts
88
88
  function readHealthReport() {
@@ -2,7 +2,7 @@ import {
2
2
  coerceThreadConversationState,
3
3
  getPersistedThreadState,
4
4
  persistThreadStateById
5
- } from "./chunk-G3CQEUHI.js";
5
+ } from "./chunk-CJLBLELR.js";
6
6
  import {
7
7
  pluginTaskId,
8
8
  pluginTaskParamsSchema,
@@ -22,7 +22,7 @@ import {
22
22
  markTurnCompleted,
23
23
  normalizeToolNameFromResult,
24
24
  stripRuntimeTurnContext
25
- } from "./chunk-BFLMRTPD.js";
25
+ } from "./chunk-FIDMHAO6.js";
26
26
  import {
27
27
  createPluginConversationEvents,
28
28
  createPluginEmbedder,
@@ -30,7 +30,7 @@ import {
30
30
  createPluginModel,
31
31
  createPluginState,
32
32
  getPlugins
33
- } from "./chunk-XWUJWHFD.js";
33
+ } from "./chunk-3I7XE3PA.js";
34
34
  import {
35
35
  JUNIOR_THREAD_STATE_TTL_MS
36
36
  } from "./chunk-3Y47VMHV.js";
@@ -38,20 +38,20 @@ import {
38
38
  getConversationStore,
39
39
  getDb,
40
40
  sameActorIdentity
41
- } from "./chunk-XCNS3CXE.js";
41
+ } from "./chunk-VP4OVRDD.js";
42
42
  import {
43
43
  juniorConversations,
44
44
  juniorTaskExecutions
45
- } from "./chunk-ZCHHVTMF.js";
45
+ } from "./chunk-R6U7N4FS.js";
46
46
  import {
47
47
  getStateAdapter
48
- } from "./chunk-H6ZXBFGX.js";
48
+ } from "./chunk-3TM3FYLQ.js";
49
49
  import {
50
50
  ProviderError,
51
51
  findProviderError,
52
52
  getProviderErrorAttributes,
53
53
  getProviderErrorUserMessage
54
- } from "./chunk-3ZZEPLLB.js";
54
+ } from "./chunk-GENV6KF2.js";
55
55
  import {
56
56
  credentialSubjectSchema
57
57
  } from "./chunk-CGA4ERJ5.js";
@@ -61,7 +61,7 @@ import {
61
61
  import {
62
62
  buildTurnFailureResponse,
63
63
  logWarn
64
- } from "./chunk-UGWBJAGN.js";
64
+ } from "./chunk-HQNE5APD.js";
65
65
 
66
66
  // src/chat/runtime/delivered-turn-state.ts
67
67
  function buildDeliveredTurnStatePatch(args) {
@@ -87,7 +87,7 @@ import { pluginRunContextSchema } from "@sentry/junior-plugin-api";
87
87
 
88
88
  // src/chat/services/turn-session-routing.ts
89
89
  async function resolveTurnSessionRouting(args) {
90
- const conversationStore = args.conversationStore ?? (await import("./db-QVYOWATH.js")).getConversationStore();
90
+ const conversationStore = args.conversationStore ?? (await import("./db-EJAV7JL6.js")).getConversationStore();
91
91
  const conversation = await conversationStore.get({
92
92
  conversationId: args.conversationId
93
93
  });
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-RF6J3DIO.js";
4
4
  import {
5
5
  resolveBaseUrl
6
- } from "./chunk-JVXZ3WDH.js";
6
+ } from "./chunk-2HIPYNQI.js";
7
7
  import {
8
8
  isExperimentalFeatureEnabled
9
9
  } from "./chunk-VRS6WDK5.js";
@@ -12,27 +12,27 @@ import {
12
12
  getPlugins,
13
13
  getSlackClient,
14
14
  withSlackRetries
15
- } from "./chunk-XWUJWHFD.js";
15
+ } from "./chunk-3I7XE3PA.js";
16
16
  import {
17
17
  getDb,
18
18
  parseDestination
19
- } from "./chunk-XCNS3CXE.js";
19
+ } from "./chunk-VP4OVRDD.js";
20
20
  import {
21
21
  sleep
22
- } from "./chunk-AQHSXA3J.js";
22
+ } from "./chunk-JMJNFEDC.js";
23
23
  import {
24
24
  acquireActiveLock,
25
25
  getStateAdapter
26
- } from "./chunk-H6ZXBFGX.js";
26
+ } from "./chunk-3TM3FYLQ.js";
27
27
  import {
28
28
  pluginCatalogRuntime
29
- } from "./chunk-ABLODWPO.js";
29
+ } from "./chunk-YFNAMRGE.js";
30
30
  import {
31
31
  fetchWithBoundedOAuthErrorBodies
32
- } from "./chunk-D3UJTX4U.js";
32
+ } from "./chunk-SLGGOASN.js";
33
33
  import {
34
34
  isRecord
35
- } from "./chunk-UGWBJAGN.js";
35
+ } from "./chunk-HQNE5APD.js";
36
36
 
37
37
  // src/chat/capabilities/router.ts
38
38
  var ProviderCredentialRouter = class {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createAndEnqueueAgentInvocation
3
- } from "./chunk-RE4XWXBV.js";
3
+ } from "./chunk-GPLAT6H7.js";
4
4
  import {
5
5
  actorFromRun,
6
6
  toolInvocationDestination
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DEFAULT_SQL_STATEMENT_TIMEOUT_MS
3
- } from "./chunk-3ZZEPLLB.js";
3
+ } from "./chunk-GENV6KF2.js";
4
4
  import {
5
5
  juniorDestinations,
6
6
  timestamptz
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  pluginCatalogRuntime
3
- } from "./chunk-ABLODWPO.js";
3
+ } from "./chunk-YFNAMRGE.js";
4
4
 
5
5
  // src/chat/plugins/validation.ts
6
6
  import { isDeepStrictEqual } from "util";