koishi-plugin-group-analysis-mx 1.0.1

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 (94) hide show
  1. package/lib/config.d.ts +53 -0
  2. package/lib/config.d.ts.map +1 -0
  3. package/lib/config.js +376 -0
  4. package/lib/config.js.map +1 -0
  5. package/lib/cron.d.ts +8 -0
  6. package/lib/cron.d.ts.map +1 -0
  7. package/lib/cron.js +62 -0
  8. package/lib/cron.js.map +1 -0
  9. package/lib/index.d.ts +6 -0
  10. package/lib/index.d.ts.map +1 -0
  11. package/lib/index.js +51 -0
  12. package/lib/index.js.map +1 -0
  13. package/lib/onebot/cqcode.d.ts +14 -0
  14. package/lib/onebot/cqcode.d.ts.map +1 -0
  15. package/lib/onebot/cqcode.js +92 -0
  16. package/lib/onebot/cqcode.js.map +1 -0
  17. package/lib/plugin.d.ts +4 -0
  18. package/lib/plugin.d.ts.map +1 -0
  19. package/lib/plugin.js +41 -0
  20. package/lib/plugin.js.map +1 -0
  21. package/lib/plugins/command.d.ts +9 -0
  22. package/lib/plugins/command.d.ts.map +1 -0
  23. package/lib/plugins/command.js +196 -0
  24. package/lib/plugins/command.js.map +1 -0
  25. package/lib/service/analysis.d.ts +48 -0
  26. package/lib/service/analysis.d.ts.map +1 -0
  27. package/lib/service/analysis.js +714 -0
  28. package/lib/service/analysis.js.map +1 -0
  29. package/lib/service/llm.d.ts +43 -0
  30. package/lib/service/llm.d.ts.map +1 -0
  31. package/lib/service/llm.js +160 -0
  32. package/lib/service/llm.js.map +1 -0
  33. package/lib/service/message.d.ts +55 -0
  34. package/lib/service/message.d.ts.map +1 -0
  35. package/lib/service/message.js +527 -0
  36. package/lib/service/message.js.map +1 -0
  37. package/lib/service/renderer.d.ts +23 -0
  38. package/lib/service/renderer.d.ts.map +1 -0
  39. package/lib/service/renderer.js +298 -0
  40. package/lib/service/renderer.js.map +1 -0
  41. package/lib/skins/anime.d.ts +19 -0
  42. package/lib/skins/anime.d.ts.map +1 -0
  43. package/lib/skins/anime.js +138 -0
  44. package/lib/skins/anime.js.map +1 -0
  45. package/lib/skins/art.d.ts +19 -0
  46. package/lib/skins/art.d.ts.map +1 -0
  47. package/lib/skins/art.js +146 -0
  48. package/lib/skins/art.js.map +1 -0
  49. package/lib/skins/index.d.ts +50 -0
  50. package/lib/skins/index.d.ts.map +1 -0
  51. package/lib/skins/index.js +84 -0
  52. package/lib/skins/index.js.map +1 -0
  53. package/lib/skins/md3.d.ts +19 -0
  54. package/lib/skins/md3.d.ts.map +1 -0
  55. package/lib/skins/md3.js +147 -0
  56. package/lib/skins/md3.js.map +1 -0
  57. package/lib/skins/newspaper.d.ts +19 -0
  58. package/lib/skins/newspaper.d.ts.map +1 -0
  59. package/lib/skins/newspaper.js +141 -0
  60. package/lib/skins/newspaper.js.map +1 -0
  61. package/lib/skins/scrapbook.d.ts +20 -0
  62. package/lib/skins/scrapbook.d.ts.map +1 -0
  63. package/lib/skins/scrapbook.js +207 -0
  64. package/lib/skins/scrapbook.js.map +1 -0
  65. package/lib/skins/types.d.ts +69 -0
  66. package/lib/skins/types.d.ts.map +1 -0
  67. package/lib/skins/types.js +12 -0
  68. package/lib/skins/types.js.map +1 -0
  69. package/lib/types.d.ts +170 -0
  70. package/lib/types.d.ts.map +1 -0
  71. package/lib/types.js +3 -0
  72. package/lib/types.js.map +1 -0
  73. package/lib/utils.d.ts +55 -0
  74. package/lib/utils.d.ts.map +1 -0
  75. package/lib/utils.js +334 -0
  76. package/lib/utils.js.map +1 -0
  77. package/package.json +48 -0
  78. package/resources/anime/css/template_group.css +470 -0
  79. package/resources/anime/images/decoration_br.svg +19 -0
  80. package/resources/anime/images/decoration_tl.svg +24 -0
  81. package/resources/anime/template_group.html +108 -0
  82. package/resources/anime/template_user.html +99 -0
  83. package/resources/art/css/template_group.css +484 -0
  84. package/resources/art/template_group.html +77 -0
  85. package/resources/art/template_user.html +63 -0
  86. package/resources/md3/css/template_group.css +880 -0
  87. package/resources/md3/template_group.html +189 -0
  88. package/resources/md3/template_user.html +175 -0
  89. package/resources/newspaper/css/template_group.css +568 -0
  90. package/resources/newspaper/template_group.html +133 -0
  91. package/resources/newspaper/template_user.html +119 -0
  92. package/resources/scrapbook/css/style.css +1094 -0
  93. package/resources/scrapbook/template_group.html +115 -0
  94. package/resources/scrapbook/template_user.html +119 -0
package/lib/utils.js ADDED
@@ -0,0 +1,334 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calculateBasicStats = calculateBasicStats;
4
+ exports.buildPersonaRecordId = buildPersonaRecordId;
5
+ exports.generateTextReport = generateTextReport;
6
+ exports.getAvatarUrl = getAvatarUrl;
7
+ exports.formatUserStats = formatUserStats;
8
+ exports.formatGoldenQuotes = formatGoldenQuotes;
9
+ exports.formatUserTitles = formatUserTitles;
10
+ exports.formatTopics = formatTopics;
11
+ exports.generateActiveHoursChart = generateActiveHoursChart;
12
+ exports.renderTemplate = renderTemplate;
13
+ exports.shouldListenToMessage = shouldListenToMessage;
14
+ exports.inferPlatformInfo = inferPlatformInfo;
15
+ exports.getStartTimeByDays = getStartTimeByDays;
16
+ exports.normalizeArray = normalizeArray;
17
+ exports.preferArray = preferArray;
18
+ exports.finalizePersonaList = finalizePersonaList;
19
+ exports.normalizePersonaText = normalizePersonaText;
20
+ exports.formatMessagesForPersona = formatMessagesForPersona;
21
+ exports.formatPersonaForPrompt = formatPersonaForPrompt;
22
+ exports.mergePersona = mergePersona;
23
+ exports.isCacheExpiredByDays = isCacheExpiredByDays;
24
+ exports.isCacheExpiredByMinutes = isCacheExpiredByMinutes;
25
+ exports.buildGroupAnalysisCacheKey = buildGroupAnalysisCacheKey;
26
+ exports.buildMessagePersistenceKey = buildMessagePersistenceKey;
27
+ exports.isNapCatBot = isNapCatBot;
28
+ const koishi_1 = require("koishi");
29
+ const skins_1 = require("./skins");
30
+ function calculateBasicStats(messages) {
31
+ const userStats = {};
32
+ let totalChars = 0;
33
+ let totalEmojiCount = 0;
34
+ const allMessagesText = [];
35
+ for (const msg of messages) {
36
+ const userId = String(msg.userId);
37
+ if (!userId)
38
+ continue;
39
+ if (!userStats[userId]) {
40
+ userStats[userId] = getInitialUserStats(msg);
41
+ }
42
+ const stat = userStats[userId];
43
+ stat.messageCount++;
44
+ stat.lastActive = new Date(Math.max(stat.lastActive.getTime(), msg.timestamp.getTime()));
45
+ const hour = msg.timestamp.getHours();
46
+ stat.activeHours[hour] = (stat.activeHours[hour] || 0) + 1;
47
+ if (hour >= 0 && hour < 6) {
48
+ stat.nightMessages++;
49
+ }
50
+ const elements = msg.elements || koishi_1.h.parse(msg.content);
51
+ let pureText = '';
52
+ for (const el of elements) {
53
+ if (el.type === 'text') {
54
+ pureText += el.attrs.content;
55
+ // onebot 兼容,添加 reply
56
+ }
57
+ else if (el.type === 'quote' || el.type === 'reply') {
58
+ stat.replyCount++;
59
+ }
60
+ else if (el.type === 'at') {
61
+ stat.atCount++;
62
+ }
63
+ else if (el.type === 'face') {
64
+ stat.emojiStats['face'] = (stat.emojiStats['face'] || 0) + 1;
65
+ totalEmojiCount++;
66
+ }
67
+ else if (el.type === 'image' &&
68
+ el.attrs.subType != null &&
69
+ el.attrs.subType !== 0) {
70
+ stat.emojiStats['sticker'] =
71
+ (stat.emojiStats['sticker'] || 0) + 1;
72
+ totalEmojiCount++;
73
+ }
74
+ }
75
+ if (pureText) {
76
+ allMessagesText.push(`${msg.username}(${msg.userId}): ${pureText.trim()}`);
77
+ }
78
+ stat.charCount += pureText.length || msg.content.length;
79
+ totalChars += pureText.length || msg.content.length;
80
+ }
81
+ for (const userId in userStats) {
82
+ const stat = userStats[userId];
83
+ stat.avgChars = stat.messageCount
84
+ ? parseFloat((stat.charCount / stat.messageCount).toFixed(1))
85
+ : 0;
86
+ stat.nightRatio = stat.messageCount
87
+ ? parseFloat((stat.nightMessages / stat.messageCount).toFixed(2))
88
+ : 0;
89
+ stat.replyRatio = stat.messageCount
90
+ ? parseFloat((stat.replyCount / stat.messageCount).toFixed(2))
91
+ : 0;
92
+ stat.emojiRatio = stat.messageCount
93
+ ? parseFloat((totalEmojiCount / stat.messageCount).toFixed(2))
94
+ : 0;
95
+ }
96
+ return { userStats, totalChars, totalEmojiCount, allMessagesText };
97
+ }
98
+ function buildPersonaRecordId(platform, selfId, userId) {
99
+ return `${platform}:${selfId}:${userId}`;
100
+ }
101
+ function getInitialUserStats(msg) {
102
+ return {
103
+ userId: String(msg.userId),
104
+ nickname: msg.username,
105
+ messageCount: 0,
106
+ charCount: 0,
107
+ avatar: msg.avatarUrl,
108
+ lastActive: new Date(0),
109
+ replyCount: 0,
110
+ atCount: 0,
111
+ emojiRatio: 0,
112
+ emojiStats: {},
113
+ nightRatio: 0,
114
+ avgChars: 0,
115
+ replyRatio: 0,
116
+ nightMessages: 0,
117
+ activeHours: Object.fromEntries(Array.from({ length: 24 }, (_, i) => [i, 0]))
118
+ };
119
+ }
120
+ function generateTextReport(result) {
121
+ let report = `📊 群聊分析报告 (${result.analysisDate})\n`;
122
+ report += `群组: ${result.groupName}\n\n`;
123
+ report += `总消息: ${result.totalMessages} | 参与人数: ${result.totalParticipants} | 总字数: ${result.totalChars} | 表情: ${result.emojiCount}\n`;
124
+ report += `最活跃时段: ${result.mostActivePeriod}\n\n`;
125
+ report += `💬 热门话题:\n`;
126
+ if (result.topics?.length) {
127
+ result.topics.forEach((t) => {
128
+ report += `- ${t.topic} (参与者: ${t.contributors.join(', ')})\n ${t.detail}\n`;
129
+ });
130
+ }
131
+ else {
132
+ report += '无明显话题\n';
133
+ }
134
+ report += `\n🏆 群友称号:\n`;
135
+ if (result.userTitles?.length) {
136
+ result.userTitles.forEach((t) => {
137
+ report += `- ${t.name}: ${t.title} ${t.mbti && t.mbti !== 'N/A' ? `(${t.mbti})` : ''} - ${t.reason}\n`;
138
+ });
139
+ }
140
+ else {
141
+ report += '无特殊称号\n';
142
+ }
143
+ report += `\n💬 群圣经:\n`;
144
+ if (result.goldenQuotes?.length) {
145
+ result.goldenQuotes.forEach((q) => {
146
+ report += `- "${q.content}" —— ${q.sender}\n 理由: ${q.reason}\n`;
147
+ });
148
+ }
149
+ else {
150
+ report += '无金句记录\n';
151
+ }
152
+ return report;
153
+ }
154
+ function getAvatarUrl(userId) {
155
+ return `http://q1.qlogo.cn/g?b=qq&nk=${userId}&s=640`;
156
+ }
157
+ function formatUserStats(userStats, skin = 'md3') {
158
+ const renderer = skins_1.skinRegistry.getSafe(skin);
159
+ return renderer.formatUserStats(userStats);
160
+ }
161
+ function formatGoldenQuotes(quotes, skin = 'md3') {
162
+ const renderer = skins_1.skinRegistry.getSafe(skin);
163
+ return renderer.formatGoldenQuotes(quotes);
164
+ }
165
+ function formatUserTitles(userTitles, skin = 'md3') {
166
+ const renderer = skins_1.skinRegistry.getSafe(skin);
167
+ return renderer.formatUserTitles(userTitles);
168
+ }
169
+ function formatTopics(topics, skin = 'md3') {
170
+ const renderer = skins_1.skinRegistry.getSafe(skin);
171
+ return renderer.formatTopics(topics);
172
+ }
173
+ function generateActiveHoursChart(activeHours, skin = 'md3') {
174
+ const renderer = skins_1.skinRegistry.getSafe(skin);
175
+ return renderer.generateActiveHoursChart(activeHours);
176
+ }
177
+ function renderTemplate(template, data) {
178
+ return template.replace(/\$\{(.*?)\}/g, (_, key) => data[key] || '');
179
+ }
180
+ function shouldListenToMessage(session, listenerGroups, enableAllGroupsByDefault = false) {
181
+ if (!session.guildId && !session.channelId)
182
+ return false;
183
+ if (enableAllGroupsByDefault)
184
+ return true;
185
+ return listenerGroups.some((listener) => {
186
+ if (!listener.enabled ||
187
+ listener.platform !== session.platform ||
188
+ listener.selfId !== session.selfId) {
189
+ return false;
190
+ }
191
+ const channelMatches = !!listener.channelId &&
192
+ !!session.channelId &&
193
+ listener.channelId === session.channelId;
194
+ const guildMatches = !!listener.guildId &&
195
+ !!session.guildId &&
196
+ listener.guildId === session.guildId;
197
+ return channelMatches || guildMatches;
198
+ });
199
+ }
200
+ function inferPlatformInfo(filter, listenerGroups) {
201
+ for (const listener of listenerGroups) {
202
+ if ((!filter.guildId || listener.guildId === filter.guildId) &&
203
+ (!filter.channelId || listener.channelId === filter.channelId)) {
204
+ return {
205
+ platform: listener.platform,
206
+ guildId: filter.guildId || listener.guildId,
207
+ channelId: filter.channelId || listener.channelId,
208
+ selfId: listener.selfId
209
+ };
210
+ }
211
+ }
212
+ return {};
213
+ }
214
+ function getStartTimeByDays(days) {
215
+ const now = new Date();
216
+ const millisecondsPerDay = 24 * 60 * 60 * 1000;
217
+ const targetTime = now.getTime() - (days - 1) * millisecondsPerDay;
218
+ const startTime = new Date(targetTime);
219
+ startTime.setHours(0, 0, 0, 0);
220
+ return startTime;
221
+ }
222
+ function normalizeArray(value) {
223
+ if (!value)
224
+ return [];
225
+ if (Array.isArray(value))
226
+ return value;
227
+ if (value === '无')
228
+ return [];
229
+ return value
230
+ .split(/[,;\n]/)
231
+ .map((item) => item.trim())
232
+ .filter(Boolean);
233
+ }
234
+ function preferArray(primary, fallback) {
235
+ const primaryList = primary?.filter(Boolean) || [];
236
+ if (primaryList.length)
237
+ return primaryList;
238
+ return fallback?.filter(Boolean) || [];
239
+ }
240
+ function finalizePersonaList(list) {
241
+ return list.length ? list : '无';
242
+ }
243
+ function normalizePersonaText(text) {
244
+ return text ? text.replace(/\s+/g, ' ').trim() : '';
245
+ }
246
+ function formatMessagesForPersona(messages) {
247
+ return messages
248
+ .map((message) => {
249
+ const time = message.timestamp
250
+ .toISOString()
251
+ .replace('T', ' ')
252
+ .slice(0, 16);
253
+ const scope = message.guildId
254
+ ? `群:${message.guildId}`
255
+ : `频道:${message.channelId}`;
256
+ const normalized = normalizePersonaText(koishi_1.h
257
+ .select(message.elements, 'text')
258
+ .map((text) => text.attrs.content)
259
+ .join(''));
260
+ const referenceId = message.messageId || message.id;
261
+ const referenceLabel = referenceId
262
+ ? `msgid:${referenceId}`
263
+ : `msgid:${message.id}`;
264
+ return `[${time}] ${scope} ${message.username} <${referenceLabel}>: ${normalized}`;
265
+ })
266
+ .join('\n');
267
+ }
268
+ function formatPersonaForPrompt(persona) {
269
+ if (!persona)
270
+ return '(无历史画像)';
271
+ const lines = [];
272
+ lines.push(`summary: ${persona.summary || '无'}`);
273
+ lines.push(`keyTraits: ${(persona.keyTraits || []).join('; ') || '无'}`);
274
+ lines.push(`interests: ${(persona.interests || []).join('; ') || '无'}`);
275
+ lines.push(`communicationStyle: ${persona.communicationStyle || '未知'}`);
276
+ if (!persona.evidence || !persona.evidence.length) {
277
+ lines.push('evidence: 无');
278
+ }
279
+ else {
280
+ lines.push('evidence:');
281
+ persona.evidence.forEach((item) => {
282
+ lines.push(` quote: ${item || '(空)'}`);
283
+ });
284
+ }
285
+ return lines.join('\n');
286
+ }
287
+ function mergePersona(previous, current) {
288
+ if (!previous)
289
+ return current;
290
+ return {
291
+ ...previous,
292
+ ...current,
293
+ keyTraits: preferArray(current.keyTraits, previous.keyTraits),
294
+ interests: preferArray(current.interests, previous.interests),
295
+ evidence: preferArray(current.evidence, previous.evidence),
296
+ lastMergedFromHistory: true
297
+ };
298
+ }
299
+ function isCacheExpiredByDays(lastAnalysisAt, ttlDays) {
300
+ if (ttlDays <= 0)
301
+ return true;
302
+ if (!lastAnalysisAt)
303
+ return true;
304
+ const ttlMs = ttlDays * 24 * 60 * 60 * 1000;
305
+ return Date.now() - lastAnalysisAt.getTime() > ttlMs;
306
+ }
307
+ function isCacheExpiredByMinutes(lastAnalysisAt, ttlMinutes) {
308
+ if (ttlMinutes <= 0)
309
+ return true;
310
+ if (!lastAnalysisAt)
311
+ return true;
312
+ const ttlMs = ttlMinutes * 60 * 1000;
313
+ return Date.now() - lastAnalysisAt.getTime() > ttlMs;
314
+ }
315
+ function buildGroupAnalysisCacheKey(selfId, target, days) {
316
+ const targetId = target.guildId
317
+ ? `guild:${target.guildId}`
318
+ : `channel:${target.channelId}`;
319
+ return `${selfId}:${targetId}:${days}`;
320
+ }
321
+ function buildMessagePersistenceKey(message) {
322
+ const scope = message.guildId || message.channelId || 'global';
323
+ return `${message.platform}_${message.selfId}_${scope}`;
324
+ }
325
+ async function isNapCatBot(bot) {
326
+ if (bot.platform !== 'onebot') {
327
+ return { isRunningNapCat: false, botAppName: '' };
328
+ }
329
+ const onebot = bot;
330
+ const versionInfo = await onebot.internal._request('get_version_info', {});
331
+ const name = versionInfo.data['app_name'].toLowerCase();
332
+ return { isRunningNapCat: name.includes('napcat'), botAppName: name };
333
+ }
334
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;AAcA,kDA+EC;AAED,oDAMC;AAwBD,gDAkCC;AAED,oCAEC;AAED,0CAMC;AAED,gDAMC;AAED,4CAMC;AAED,oCAMC;AAED,4DAMC;AAED,wCAKC;AAED,sDAuCC;AAED,8CAuBC;AAED,gDAOC;AAED,wCAUC;AAED,kCAOC;AAED,kDAEC;AAED,oDAEC;AAED,4DAuBC;AAED,wDAmBC;AAED,oCAcC;AAED,oDAQC;AAED,0DAQC;AAED,gEASC;AAED,gEAGC;AAED,kCAWC;AAzaD,mCAAmC;AAYnC,mCAAsC;AAEtC,SAAgB,mBAAmB,CAC/B,QAAyB;IAEzB,MAAM,SAAS,GAA8B,EAAE,CAAA;IAC/C,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,IAAI,eAAe,GAAG,CAAC,CAAA;IACvB,MAAM,eAAe,GAAa,EAAE,CAAA;IAEpC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACjC,IAAI,CAAC,MAAM;YAAE,SAAQ;QAErB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,SAAS,CAAC,MAAM,CAAC,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAA;QAChD,CAAC;QAED,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;QAC9B,IAAI,CAAC,YAAY,EAAE,CAAA;QAEnB,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAC/D,CAAA;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAA;QACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QAC1D,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,EAAE,CAAA;QACxB,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,UAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACrD,IAAI,QAAQ,GAAG,EAAE,CAAA;QACjB,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;YACxB,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACrB,QAAQ,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAA;gBAC5B,qBAAqB;YACzB,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACpD,IAAI,CAAC,UAAU,EAAE,CAAA;YACrB,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC1B,IAAI,CAAC,OAAO,EAAE,CAAA;YAClB,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;gBAC5D,eAAe,EAAE,CAAA;YACrB,CAAC;iBAAM,IACH,EAAE,CAAC,IAAI,KAAK,OAAO;gBACnB,EAAE,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;gBACxB,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,EACxB,CAAC;gBACC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;oBACtB,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;gBACzC,eAAe,EAAE,CAAA;YACrB,CAAC;QACL,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACX,eAAe,CAAC,IAAI,CAChB,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,CACvD,CAAA;QACL,CAAC;QAED,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAA;QACvD,UAAU,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAA;IACvD,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY;YAC7B,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC,CAAA;QACP,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY;YAC/B,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC,CAAA;QACP,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY;YAC/B,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC,CAAA;QACP,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY;YAC/B,CAAC,CAAC,UAAU,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC,CAAA;IACX,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,CAAA;AACtE,CAAC;AAED,SAAgB,oBAAoB,CAChC,QAAgB,EAChB,MAAc,EACd,MAAuB;IAEvB,OAAO,GAAG,QAAQ,IAAI,MAAM,IAAI,MAAM,EAAE,CAAA;AAC5C,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAkB;IAC3C,OAAO;QACH,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;QAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,YAAY,EAAE,CAAC;QACf,SAAS,EAAE,CAAC;QACZ,MAAM,EAAE,GAAG,CAAC,SAAS;QACrB,UAAU,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;QACvB,UAAU,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;QACV,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC;QACb,aAAa,EAAE,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC,WAAW,CAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAC/C;KACJ,CAAA;AACL,CAAC;AAED,SAAgB,kBAAkB,CAAC,MAA2B;IAC1D,IAAI,MAAM,GAAG,cAAc,MAAM,CAAC,YAAY,KAAK,CAAA;IACnD,MAAM,IAAI,OAAO,MAAM,CAAC,SAAS,MAAM,CAAA;IACvC,MAAM,IAAI,QAAQ,MAAM,CAAC,aAAa,YAAY,MAAM,CAAC,iBAAiB,WAAW,MAAM,CAAC,UAAU,UAAU,MAAM,CAAC,UAAU,IAAI,CAAA;IACrI,MAAM,IAAI,UAAU,MAAM,CAAC,gBAAgB,MAAM,CAAA;IAEjD,MAAM,IAAI,YAAY,CAAA;IACtB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QACxB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACxB,MAAM,IAAI,KAAK,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,CAAA;QACjF,CAAC,CAAC,CAAA;IACN,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,SAAS,CAAA;IACvB,CAAC;IAED,MAAM,IAAI,cAAc,CAAA;IACxB,IAAI,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QAC5B,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,IAAI,CAAA;QAC1G,CAAC,CAAC,CAAA;IACN,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,SAAS,CAAA;IACvB,CAAC;IAED,MAAM,IAAI,aAAa,CAAA;IACvB,IAAI,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAC9B,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9B,MAAM,IAAI,MAAM,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,WAAW,CAAC,CAAC,MAAM,IAAI,CAAA;QACpE,CAAC,CAAC,CAAA;IACN,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,SAAS,CAAA;IACvB,CAAC;IAED,OAAO,MAAM,CAAA;AACjB,CAAC;AAED,SAAgB,YAAY,CAAC,MAAuB;IAChD,OAAO,gCAAgC,MAAM,QAAQ,CAAA;AACzD,CAAC;AAED,SAAgB,eAAe,CAC3B,SAAsB,EACtB,OAAe,KAAK;IAEpB,MAAM,QAAQ,GAAG,oBAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3C,OAAO,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;AAC9C,CAAC;AAED,SAAgB,kBAAkB,CAC9B,MAA2C,EAC3C,OAAe,KAAK;IAEpB,MAAM,QAAQ,GAAG,oBAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3C,OAAO,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;AAC9C,CAAC;AAED,SAAgB,gBAAgB,CAC5B,UAA6C,EAC7C,OAAe,KAAK;IAEpB,MAAM,QAAQ,GAAG,oBAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3C,OAAO,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAA;AAChD,CAAC;AAED,SAAgB,YAAY,CACxB,MAAqC,EACrC,OAAe,KAAK;IAEpB,MAAM,QAAQ,GAAG,oBAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3C,OAAO,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;AACxC,CAAC;AAED,SAAgB,wBAAwB,CACpC,WAAmC,EACnC,OAAe,KAAK;IAEpB,MAAM,QAAQ,GAAG,oBAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3C,OAAO,QAAQ,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAA;AACzD,CAAC;AAED,SAAgB,cAAc,CAC1B,QAAgB,EAChB,IAA4B;IAE5B,OAAO,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;AACxE,CAAC;AAED,SAAgB,qBAAqB,CACjC,OAKC,EACD,cAMG,EACH,wBAAwB,GAAG,KAAK;IAEhC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS;QAAE,OAAO,KAAK,CAAA;IACxD,IAAI,wBAAwB;QAAE,OAAO,IAAI,CAAA;IAEzC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACpC,IACI,CAAC,QAAQ,CAAC,OAAO;YACjB,QAAQ,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ;YACtC,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EACpC,CAAC;YACC,OAAO,KAAK,CAAA;QAChB,CAAC;QAED,MAAM,cAAc,GAChB,CAAC,CAAC,QAAQ,CAAC,SAAS;YACpB,CAAC,CAAC,OAAO,CAAC,SAAS;YACnB,QAAQ,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAA;QAC5C,MAAM,YAAY,GACd,CAAC,CAAC,QAAQ,CAAC,OAAO;YAClB,CAAC,CAAC,OAAO,CAAC,OAAO;YACjB,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAA;QAExC,OAAO,cAAc,IAAI,YAAY,CAAA;IACzC,CAAC,CAAC,CAAA;AACN,CAAC;AAED,SAAgB,iBAAiB,CAC7B,MAAgD,EAChD,cAAwC;IAOxC,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;QACpC,IACI,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC;YACxD,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,CAAC,EAChE,CAAC;YACC,OAAO;gBACH,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO;gBAC3C,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS;gBACjD,MAAM,EAAE,QAAQ,CAAC,MAAM;aAC1B,CAAA;QACL,CAAC;IACL,CAAC;IACD,OAAO,EAAE,CAAA;AACb,CAAC;AAED,SAAgB,kBAAkB,CAAC,IAAY;IAC3C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IAC9C,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,kBAAkB,CAAA;IAClE,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAA;IACtC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC9B,OAAO,SAAS,CAAA;AACpB,CAAC;AAED,SAAgB,cAAc,CAC1B,KAA0C;IAE1C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAA;IACrB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACtC,IAAI,KAAK,KAAK,GAAG;QAAE,OAAO,EAAE,CAAA;IAC5B,OAAO,KAAK;SACP,KAAK,CAAC,QAAQ,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CAAA;AACxB,CAAC;AAED,SAAgB,WAAW,CACvB,OAAyB,EACzB,QAA0B;IAE1B,MAAM,WAAW,GAAG,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;IAClD,IAAI,WAAW,CAAC,MAAM;QAAE,OAAO,WAAW,CAAA;IAC1C,OAAO,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;AAC1C,CAAC;AAED,SAAgB,mBAAmB,CAAC,IAAc;IAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAA;AACnC,CAAC;AAED,SAAgB,oBAAoB,CAAC,IAAwB;IACzD,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AACvD,CAAC;AAED,SAAgB,wBAAwB,CAAC,QAAyB;IAC9D,OAAO,QAAQ;SACV,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACb,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS;aACzB,WAAW,EAAE;aACb,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;aACjB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QACjB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO;YACzB,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,EAAE;YACxB,CAAC,CAAC,MAAM,OAAO,CAAC,SAAS,EAAE,CAAA;QAC/B,MAAM,UAAU,GAAG,oBAAoB,CACnC,UAAC;aACI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;aAChC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;aACjC,IAAI,CAAC,EAAE,CAAC,CAChB,CAAA;QACD,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,EAAE,CAAA;QACnD,MAAM,cAAc,GAAG,WAAW;YAC9B,CAAC,CAAC,SAAS,WAAW,EAAE;YACxB,CAAC,CAAC,SAAS,OAAO,CAAC,EAAE,EAAE,CAAA;QAC3B,OAAO,IAAI,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,QAAQ,KAAK,cAAc,MAAM,UAAU,EAAE,CAAA;IACtF,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAA;AACnB,CAAC;AAED,SAAgB,sBAAsB,CAClC,OAAmC;IAEnC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAA;IAE9B,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAA;IAChD,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;IACvE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;IACvE,KAAK,CAAC,IAAI,CAAC,uBAAuB,OAAO,CAAC,kBAAkB,IAAI,IAAI,EAAE,CAAC,CAAA;IACvE,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAC7B,CAAC;SAAM,CAAC;QACJ,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,KAAK,EAAE,CAAC,CAAA;QAC7C,CAAC,CAAC,CAAA;IACN,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC3B,CAAC;AAED,SAAgB,YAAY,CACxB,QAA+C,EAC/C,OAA2B;IAE3B,IAAI,CAAC,QAAQ;QAAE,OAAO,OAAO,CAAA;IAE7B,OAAO;QACH,GAAG,QAAQ;QACX,GAAG,OAAO;QACV,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC;QAC7D,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC;QAC7D,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC;QAC1D,qBAAqB,EAAE,IAAI;KAC9B,CAAA;AACL,CAAC;AAED,SAAgB,oBAAoB,CAChC,cAAgC,EAChC,OAAe;IAEf,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAC7B,IAAI,CAAC,cAAc;QAAE,OAAO,IAAI,CAAA;IAChC,MAAM,KAAK,GAAG,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IAC3C,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,GAAG,KAAK,CAAA;AACxD,CAAC;AAED,SAAgB,uBAAuB,CACnC,cAAgC,EAChC,UAAkB;IAElB,IAAI,UAAU,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAChC,IAAI,CAAC,cAAc;QAAE,OAAO,IAAI,CAAA;IAChC,MAAM,KAAK,GAAG,UAAU,GAAG,EAAE,GAAG,IAAI,CAAA;IACpC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,GAAG,KAAK,CAAA;AACxD,CAAC;AAED,SAAgB,0BAA0B,CACtC,MAAc,EACd,MAAgD,EAChD,IAAY;IAEZ,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO;QAC3B,CAAC,CAAC,SAAS,MAAM,CAAC,OAAO,EAAE;QAC3B,CAAC,CAAC,WAAW,MAAM,CAAC,SAAS,EAAE,CAAA;IACnC,OAAO,GAAG,MAAM,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAA;AAC1C,CAAC;AAED,SAAgB,0BAA0B,CAAC,OAAsB;IAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAA;IAC9D,OAAO,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,CAAA;AAC3D,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,GAAuB;IACrD,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,CAAA;IACrD,CAAC;IACD,MAAM,MAAM,GAAG,GAAyB,CAAA;IAExC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAA;IAE1E,MAAM,IAAI,GAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAY,CAAC,WAAW,EAAE,CAAA;IAEnE,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA;AACzE,CAAC"}
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "koishi-plugin-group-analysis-mx",
3
+ "description": "群聊分析插件 - 生成精美群聊统计报告,支持 AI 话题总结(独立版,不依赖 ChatLuna)",
4
+ "version": "1.0.1",
5
+ "main": "lib/index.js",
6
+ "module": "lib/index.mjs",
7
+ "typings": "lib/index.d.ts",
8
+ "files": [
9
+ "lib",
10
+ "resources"
11
+ ],
12
+ "license": "AGPL-3.0",
13
+ "keywords": [
14
+ "koishi",
15
+ "koishi-plugin",
16
+ "group-analysis",
17
+ "群分析",
18
+ "聊天统计"
19
+ ],
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "https://github.com/Lee1094/koishi-plugin-group-analysis.git"
23
+ },
24
+ "dependencies": {
25
+ "chrono-node": "^2.9.0",
26
+ "js-yaml": "^4.1.0",
27
+ "zod": "^3.25.0",
28
+ "cron-parser": "^5.5.0"
29
+ },
30
+ "devDependencies": {
31
+ "koishi": "^4.18.0",
32
+ "koishi-plugin-adapter-onebot": "^6.0.0",
33
+ "koishi-plugin-puppeteer": "^3.9.0",
34
+ "typescript": "^5.5.0"
35
+ },
36
+ "peerDependencies": {
37
+ "koishi": "^4.18.0"
38
+ },
39
+ "koishi": {
40
+ "description": {
41
+ "zh": "群聊分析插件(独立版):统计发言数据 + AI 话题总结。支持 OpenAI 兼容 API,不依赖 ChatLuna。"
42
+ },
43
+ "service": {
44
+ "required": ["database", "puppeteer"],
45
+ "optional": []
46
+ }
47
+ }
48
+ }