@zhin.js/plugin-group-suite 1.1.0 → 1.1.3

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 (103) hide show
  1. package/README.md +2 -2
  2. package/commands/{checkin.js → checkin/index.js} +3 -3
  3. package/commands/{checkin.ts → checkin/index.ts} +3 -3
  4. package/commands/{forget.js → forget/index.js} +2 -2
  5. package/commands/{forget.ts → forget/index.ts} +3 -3
  6. package/commands/keyword-add/{[keyword].js → [keyword]/index.js} +3 -3
  7. package/commands/keyword-add/{[keyword].ts → [keyword]/index.ts} +4 -4
  8. package/commands/{keyword-list.js → keyword-list/index.js} +3 -3
  9. package/commands/{keyword-list.ts → keyword-list/index.ts} +4 -4
  10. package/commands/keyword-remove/{[keyword].js → [keyword]/index.js} +3 -3
  11. package/commands/keyword-remove/{[keyword].ts → [keyword]/index.ts} +4 -4
  12. package/commands/{mypoints.js → mypoints/index.js} +2 -2
  13. package/commands/{mypoints.ts → mypoints/index.ts} +3 -3
  14. package/commands/{mystats.js → mystats/index.js} +2 -2
  15. package/commands/{mystats.ts → mystats/index.ts} +3 -3
  16. package/commands/{rank.js → rank/index.js} +3 -3
  17. package/commands/{rank.ts → rank/index.ts} +3 -3
  18. package/commands/{stats.js → stats/index.js} +4 -4
  19. package/commands/{stats.ts → stats/index.ts} +4 -4
  20. package/commands/{stats-rank.js → stats-rank/index.js} +3 -3
  21. package/commands/{stats-rank.ts → stats-rank/index.ts} +3 -3
  22. package/commands/{stats-week.js → stats-week/index.js} +3 -3
  23. package/commands/{stats-week.ts → stats-week/index.ts} +3 -3
  24. package/commands/{teach.js → teach/index.js} +3 -3
  25. package/commands/{teach.ts → teach/index.ts} +3 -3
  26. package/commands/teach-list/{[[page]].js → [[page]]/index.js} +3 -3
  27. package/commands/teach-list/{[[page]].ts → [[page]]/index.ts} +3 -3
  28. package/commands/{teach-regex.js → teach-regex/index.js} +3 -3
  29. package/commands/{teach-regex.ts → teach-regex/index.ts} +3 -3
  30. package/lib/checkin-lib.d.ts +3 -3
  31. package/lib/checkin-lib.d.ts.map +1 -1
  32. package/lib/checkin-lib.js +9 -10
  33. package/lib/checkin-lib.js.map +1 -1
  34. package/lib/db-store.d.ts +3 -10
  35. package/lib/db-store.d.ts.map +1 -1
  36. package/lib/db-store.js +7 -34
  37. package/lib/db-store.js.map +1 -1
  38. package/lib/index.d.ts +4 -4
  39. package/lib/index.d.ts.map +1 -1
  40. package/lib/index.js +4 -4
  41. package/lib/index.js.map +1 -1
  42. package/lib/keyword-store.d.ts +4 -5
  43. package/lib/keyword-store.d.ts.map +1 -1
  44. package/lib/keyword-store.js +4 -8
  45. package/lib/keyword-store.js.map +1 -1
  46. package/lib/memory-store.d.ts +1 -1
  47. package/lib/memory-store.js +1 -1
  48. package/lib/runtime-state.d.ts +3 -4
  49. package/lib/runtime-state.d.ts.map +1 -1
  50. package/lib/runtime-state.js +2 -8
  51. package/lib/runtime-state.js.map +1 -1
  52. package/lib/stats-lib.d.ts +5 -7
  53. package/lib/stats-lib.d.ts.map +1 -1
  54. package/lib/stats-lib.js +5 -10
  55. package/lib/stats-lib.js.map +1 -1
  56. package/lib/tables.js +1 -1
  57. package/lib/teach-lib.d.ts +4 -6
  58. package/lib/teach-lib.d.ts.map +1 -1
  59. package/lib/teach-lib.js +6 -11
  60. package/lib/teach-lib.js.map +1 -1
  61. package/middlewares/{keyword-reply.js → keyword-reply/index.js} +4 -4
  62. package/middlewares/{keyword-reply.ts → keyword-reply/index.ts} +4 -4
  63. package/middlewares/{stats-count.js → stats-count/index.js} +2 -2
  64. package/middlewares/{stats-count.ts → stats-count/index.ts} +3 -3
  65. package/middlewares/{teach-reply.js → teach-reply/index.js} +3 -3
  66. package/middlewares/{teach-reply.ts → teach-reply/index.ts} +3 -3
  67. package/package.json +18 -14
  68. package/plugin.js +0 -2
  69. package/skills/checkin/tools/checkin_query/index.js +42 -0
  70. package/skills/checkin/tools/checkin_query/index.ts +41 -0
  71. package/skills/checkin/tools/checkin_rank/index.js +34 -0
  72. package/skills/checkin/tools/checkin_rank/index.ts +34 -0
  73. package/skills/group-daily-analysis/SKILL.md +36 -0
  74. package/skills/group-daily-analysis/tools/group_announce/index.js +14 -0
  75. package/skills/group-daily-analysis/tools/group_announce/index.ts +14 -0
  76. package/skills/group-daily-analysis/tools/stats_query/index.js +35 -0
  77. package/skills/group-daily-analysis/tools/stats_query/index.ts +36 -0
  78. package/skills/group-daily-analysis/tools/stats_user/index.js +50 -0
  79. package/skills/group-daily-analysis/tools/stats_user/index.ts +46 -0
  80. package/src/checkin-lib.ts +15 -13
  81. package/src/db-store.ts +6 -38
  82. package/src/index.ts +0 -8
  83. package/src/keyword-store.ts +4 -10
  84. package/src/memory-store.ts +1 -1
  85. package/src/runtime-state.ts +5 -8
  86. package/src/stats-lib.ts +10 -17
  87. package/src/tables.ts +1 -1
  88. package/src/teach-lib.ts +11 -18
  89. package/agent/skills/group-daily-analysis.md +0 -29
  90. package/agent/tools/group_announce.ts +0 -12
  91. package/tools/checkin-query/checkin-query.tool.md +0 -11
  92. package/tools/checkin-query/handler.js +0 -22
  93. package/tools/checkin-query/handler.ts +0 -22
  94. package/tools/checkin-rank/checkin-rank.tool.md +0 -11
  95. package/tools/checkin-rank/handler.js +0 -15
  96. package/tools/checkin-rank/handler.ts +0 -16
  97. package/tools/stats-query/handler.js +0 -28
  98. package/tools/stats-query/handler.ts +0 -31
  99. package/tools/stats-query/stats-query.tool.md +0 -16
  100. package/tools/stats-user/handler.js +0 -29
  101. package/tools/stats-user/handler.ts +0 -29
  102. package/tools/stats-user/stats-user.tool.md +0 -12
  103. /package/{agent/skills/checkin.md → skills/checkin/SKILL.md} +0 -0
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # @zhin.js/plugin-group-suite
2
2
 
3
3
  Plugin Runtime 群运营能力包,提供签到积分、消息统计、关键词回复与群问答。所有能力
4
- 由 `commands/`、`middlewares/` 和 `agent/` 约定目录发现,不注册 legacy Plugin 回调。
4
+ 由 `commands/`、`middlewares/` 和 `skills/` 约定目录发现,不注册 legacy Plugin 回调。
5
5
 
6
6
  ## 安装与拓扑
7
7
 
@@ -51,7 +51,7 @@ plugins:
51
51
  | `teach` / `teach-regex` / `teach-list` / `forget` | 群问答管理 |
52
52
  | `keyword-add` / `keyword-list` / `keyword-remove` | 关键词回复管理 |
53
53
  | `middlewares/*` | 入站统计、关键词和问答匹配 |
54
- | `agent/tools/group_announce.ts` | 可选 Agent 群公告工具 |
54
+ | `skills/<name>/tools/<tool>/index.ts` | Skill 激活后披露签到查询、排行、消息统计和群公告 Tool |
55
55
 
56
56
  本 major 不包含 Adapter side-event 欢迎/撤回、AI 群日报或 HTML 报表。这些旧能力
57
57
  需要独立的事件与渲染 Feature,已从 schema 移除,避免出现“可配置但不生效”的字段。
@@ -1,8 +1,8 @@
1
1
  // Generated by build-plugin-runtime-entries.mjs. Do not edit.
2
2
  import { defineCommand } from 'zhin.js/command';
3
- import { resolveGroupSuiteConfig } from "../lib/config.js";
4
- import { doCheckin } from "../lib/checkin-lib.js";
5
- import { resolveGroupSuiteRuntime } from "../lib/runtime-state.js";
3
+ import { resolveGroupSuiteConfig } from "../../lib/config.js";
4
+ import { doCheckin } from "../../lib/checkin-lib.js";
5
+ import { resolveGroupSuiteRuntime } from "../../lib/runtime-state.js";
6
6
  export default defineCommand({
7
7
  description: '每日签到获得积分',
8
8
  execute({ config, input, owner, use }) {
@@ -1,8 +1,8 @@
1
1
  import { defineCommand } from 'zhin.js/command';
2
2
  import type { Message } from '@zhin.js/core/runtime';
3
- import { resolveGroupSuiteConfig, type GroupSuiteConfig } from '../src/config.js';
4
- import { doCheckin } from '../src/checkin-lib.js';
5
- import { resolveGroupSuiteRuntime } from '../src/runtime-state.js';
3
+ import { resolveGroupSuiteConfig, type GroupSuiteConfig } from '../../src/config.js';
4
+ import { doCheckin } from '../../src/checkin-lib.js';
5
+ import { resolveGroupSuiteRuntime } from '../../src/runtime-state.js';
6
6
 
7
7
  export default defineCommand<GroupSuiteConfig, string, Message>({
8
8
  description: '每日签到获得积分',
@@ -1,7 +1,7 @@
1
1
  // Generated by build-plugin-runtime-entries.mjs. Do not edit.
2
2
  import { defineCommand } from 'zhin.js/command';
3
- import { teachForget } from "../lib/teach-lib.js";
4
- import { resolveGroupSuiteRuntime } from "../lib/runtime-state.js";
3
+ import { teachForget } from "../../lib/teach-lib.js";
4
+ import { resolveGroupSuiteRuntime } from "../../lib/runtime-state.js";
5
5
  export default defineCommand({
6
6
  description: '忘记问答(删除问答对)',
7
7
  execute({ input, args, owner, use }) {
@@ -1,8 +1,8 @@
1
1
  import { defineCommand } from 'zhin.js/command';
2
2
  import type { Message } from '@zhin.js/core/runtime';
3
- import type { GroupSuiteConfig } from '../src/config.js';
4
- import { teachForget } from '../src/teach-lib.js';
5
- import { resolveGroupSuiteRuntime } from '../src/runtime-state.js';
3
+ import type { GroupSuiteConfig } from '../../src/config.js';
4
+ import { teachForget } from '../../src/teach-lib.js';
5
+ import { resolveGroupSuiteRuntime } from '../../src/runtime-state.js';
6
6
 
7
7
  export default defineCommand<GroupSuiteConfig, string, Message>({
8
8
  description: '忘记问答(删除问答对)',
@@ -1,7 +1,7 @@
1
1
  // Generated by build-plugin-runtime-entries.mjs. Do not edit.
2
2
  import { defineCommand } from 'zhin.js/command';
3
- import { addKeyword } from "../../lib/keyword-store.js";
4
- import { resolveGroupSuiteRuntime } from "../../lib/runtime-state.js";
3
+ import { addKeyword } from "../../../lib/keyword-store.js";
4
+ import { resolveGroupSuiteRuntime } from "../../../lib/runtime-state.js";
5
5
  export default defineCommand({
6
6
  description: '添加关键词自动回复',
7
7
  params: { keyword: { type: 'string' } },
@@ -10,7 +10,7 @@ export default defineCommand({
10
10
  const reply = args.join(' ').trim();
11
11
  if (!keyword || !reply)
12
12
  return '请提供关键词和回复内容';
13
- addKeyword(keyword, reply, resolveGroupSuiteRuntime({ owner, use })?.keywords);
13
+ addKeyword(keyword, reply, resolveGroupSuiteRuntime({ owner, use }).keywords);
14
14
  return `已添加关键词「${keyword}」→「${reply}」`;
15
15
  },
16
16
  });
@@ -1,7 +1,7 @@
1
1
  import { defineCommand } from 'zhin.js/command';
2
- import { addKeyword } from '../../src/keyword-store.js';
3
- import type { GroupSuiteConfig } from '../../src/config.js';
4
- import { resolveGroupSuiteRuntime } from '../../src/runtime-state.js';
2
+ import { addKeyword } from '../../../src/keyword-store.js';
3
+ import type { GroupSuiteConfig } from '../../../src/config.js';
4
+ import { resolveGroupSuiteRuntime } from '../../../src/runtime-state.js';
5
5
 
6
6
  export default defineCommand<GroupSuiteConfig>({
7
7
  description: '添加关键词自动回复',
@@ -10,7 +10,7 @@ export default defineCommand<GroupSuiteConfig>({
10
10
  const keyword = String(params.keyword ?? '');
11
11
  const reply = args.join(' ').trim();
12
12
  if (!keyword || !reply) return '请提供关键词和回复内容';
13
- addKeyword(keyword, reply, resolveGroupSuiteRuntime({ owner, use })?.keywords);
13
+ addKeyword(keyword, reply, resolveGroupSuiteRuntime({ owner, use }).keywords);
14
14
  return `已添加关键词「${keyword}」→「${reply}」`;
15
15
  },
16
16
  });
@@ -1,11 +1,11 @@
1
1
  // Generated by build-plugin-runtime-entries.mjs. Do not edit.
2
2
  import { defineCommand } from 'zhin.js/command';
3
- import { listKeywords } from "../lib/keyword-store.js";
4
- import { resolveGroupSuiteRuntime } from "../lib/runtime-state.js";
3
+ import { listKeywords } from "../../lib/keyword-store.js";
4
+ import { resolveGroupSuiteRuntime } from "../../lib/runtime-state.js";
5
5
  export default defineCommand({
6
6
  description: '查看所有关键词回复对',
7
7
  execute({ owner, use }) {
8
- const entries = listKeywords(resolveGroupSuiteRuntime({ owner, use })?.keywords);
8
+ const entries = listKeywords(resolveGroupSuiteRuntime({ owner, use }).keywords);
9
9
  if (entries.length === 0)
10
10
  return '当前没有设置任何关键词';
11
11
  const lines = entries.map(([k, v], i) => `${i + 1}. 「${k}」→「${v}」`);
@@ -1,12 +1,12 @@
1
1
  import { defineCommand } from 'zhin.js/command';
2
- import { listKeywords } from '../src/keyword-store.js';
3
- import type { GroupSuiteConfig } from '../src/config.js';
4
- import { resolveGroupSuiteRuntime } from '../src/runtime-state.js';
2
+ import { listKeywords } from '../../src/keyword-store.js';
3
+ import type { GroupSuiteConfig } from '../../src/config.js';
4
+ import { resolveGroupSuiteRuntime } from '../../src/runtime-state.js';
5
5
 
6
6
  export default defineCommand<GroupSuiteConfig>({
7
7
  description: '查看所有关键词回复对',
8
8
  execute({ owner, use }) {
9
- const entries = listKeywords(resolveGroupSuiteRuntime({ owner, use })?.keywords);
9
+ const entries = listKeywords(resolveGroupSuiteRuntime({ owner, use }).keywords);
10
10
  if (entries.length === 0) return '当前没有设置任何关键词';
11
11
  const lines = entries.map(([k, v], i) => `${i + 1}. 「${k}」→「${v}」`);
12
12
  return `关键词列表(共 ${entries.length} 条):\n${lines.join('\n')}`;
@@ -1,7 +1,7 @@
1
1
  // Generated by build-plugin-runtime-entries.mjs. Do not edit.
2
2
  import { defineCommand } from 'zhin.js/command';
3
- import { removeKeyword } from "../../lib/keyword-store.js";
4
- import { resolveGroupSuiteRuntime } from "../../lib/runtime-state.js";
3
+ import { removeKeyword } from "../../../lib/keyword-store.js";
4
+ import { resolveGroupSuiteRuntime } from "../../../lib/runtime-state.js";
5
5
  export default defineCommand({
6
6
  description: '删除关键词自动回复',
7
7
  params: { keyword: { type: 'string' } },
@@ -9,7 +9,7 @@ export default defineCommand({
9
9
  const keyword = String(params.keyword ?? '');
10
10
  if (!keyword)
11
11
  return '请提供要删除的关键词';
12
- if (!removeKeyword(keyword, resolveGroupSuiteRuntime({ owner, use })?.keywords))
12
+ if (!removeKeyword(keyword, resolveGroupSuiteRuntime({ owner, use }).keywords))
13
13
  return `关键词「${keyword}」不存在`;
14
14
  return `已删除关键词「${keyword}」`;
15
15
  },
@@ -1,7 +1,7 @@
1
1
  import { defineCommand } from 'zhin.js/command';
2
- import { removeKeyword } from '../../src/keyword-store.js';
3
- import type { GroupSuiteConfig } from '../../src/config.js';
4
- import { resolveGroupSuiteRuntime } from '../../src/runtime-state.js';
2
+ import { removeKeyword } from '../../../src/keyword-store.js';
3
+ import type { GroupSuiteConfig } from '../../../src/config.js';
4
+ import { resolveGroupSuiteRuntime } from '../../../src/runtime-state.js';
5
5
 
6
6
  export default defineCommand<GroupSuiteConfig>({
7
7
  description: '删除关键词自动回复',
@@ -9,7 +9,7 @@ export default defineCommand<GroupSuiteConfig>({
9
9
  execute({ params, owner, use }) {
10
10
  const keyword = String(params.keyword ?? '');
11
11
  if (!keyword) return '请提供要删除的关键词';
12
- if (!removeKeyword(keyword, resolveGroupSuiteRuntime({ owner, use })?.keywords)) return `关键词「${keyword}」不存在`;
12
+ if (!removeKeyword(keyword, resolveGroupSuiteRuntime({ owner, use }).keywords)) return `关键词「${keyword}」不存在`;
13
13
  return `已删除关键词「${keyword}」`;
14
14
  },
15
15
  });
@@ -1,7 +1,7 @@
1
1
  // Generated by build-plugin-runtime-entries.mjs. Do not edit.
2
2
  import { defineCommand } from 'zhin.js/command';
3
- import { myPoints } from "../lib/checkin-lib.js";
4
- import { resolveGroupSuiteRuntime } from "../lib/runtime-state.js";
3
+ import { myPoints } from "../../lib/checkin-lib.js";
4
+ import { resolveGroupSuiteRuntime } from "../../lib/runtime-state.js";
5
5
  export default defineCommand({
6
6
  description: '查看个人积分与签到信息',
7
7
  execute({ input, owner, use }) {
@@ -1,8 +1,8 @@
1
1
  import { defineCommand } from 'zhin.js/command';
2
2
  import type { Message } from '@zhin.js/core/runtime';
3
- import type { GroupSuiteConfig } from '../src/config.js';
4
- import { myPoints } from '../src/checkin-lib.js';
5
- import { resolveGroupSuiteRuntime } from '../src/runtime-state.js';
3
+ import type { GroupSuiteConfig } from '../../src/config.js';
4
+ import { myPoints } from '../../src/checkin-lib.js';
5
+ import { resolveGroupSuiteRuntime } from '../../src/runtime-state.js';
6
6
 
7
7
  export default defineCommand<GroupSuiteConfig, string, Message>({
8
8
  description: '查看个人积分与签到信息',
@@ -1,7 +1,7 @@
1
1
  // Generated by build-plugin-runtime-entries.mjs. Do not edit.
2
2
  import { defineCommand } from 'zhin.js/command';
3
- import { myStatsText } from "../lib/stats-lib.js";
4
- import { resolveGroupSuiteRuntime } from "../lib/runtime-state.js";
3
+ import { myStatsText } from "../../lib/stats-lib.js";
4
+ import { resolveGroupSuiteRuntime } from "../../lib/runtime-state.js";
5
5
  export default defineCommand({
6
6
  description: '查看个人消息统计',
7
7
  execute({ input, owner, use }) {
@@ -1,8 +1,8 @@
1
1
  import { defineCommand } from 'zhin.js/command';
2
2
  import type { Message } from '@zhin.js/core/runtime';
3
- import type { GroupSuiteConfig } from '../src/config.js';
4
- import { myStatsText } from '../src/stats-lib.js';
5
- import { resolveGroupSuiteRuntime } from '../src/runtime-state.js';
3
+ import type { GroupSuiteConfig } from '../../src/config.js';
4
+ import { myStatsText } from '../../src/stats-lib.js';
5
+ import { resolveGroupSuiteRuntime } from '../../src/runtime-state.js';
6
6
 
7
7
  export default defineCommand<GroupSuiteConfig, string, Message>({
8
8
  description: '查看个人消息统计',
@@ -1,8 +1,8 @@
1
1
  // Generated by build-plugin-runtime-entries.mjs. Do not edit.
2
2
  import { defineCommand } from 'zhin.js/command';
3
- import { resolveGroupSuiteConfig } from "../lib/config.js";
4
- import { pointsRank } from "../lib/checkin-lib.js";
5
- import { resolveGroupSuiteRuntime } from "../lib/runtime-state.js";
3
+ import { resolveGroupSuiteConfig } from "../../lib/config.js";
4
+ import { pointsRank } from "../../lib/checkin-lib.js";
5
+ import { resolveGroupSuiteRuntime } from "../../lib/runtime-state.js";
6
6
  export default defineCommand({
7
7
  description: '查看积分排行榜',
8
8
  execute({ config, input, owner, use }) {
@@ -1,8 +1,8 @@
1
1
  import { defineCommand } from 'zhin.js/command';
2
2
  import type { Message } from '@zhin.js/core/runtime';
3
- import { resolveGroupSuiteConfig, type GroupSuiteConfig } from '../src/config.js';
4
- import { pointsRank } from '../src/checkin-lib.js';
5
- import { resolveGroupSuiteRuntime } from '../src/runtime-state.js';
3
+ import { resolveGroupSuiteConfig, type GroupSuiteConfig } from '../../src/config.js';
4
+ import { pointsRank } from '../../src/checkin-lib.js';
5
+ import { resolveGroupSuiteRuntime } from '../../src/runtime-state.js';
6
6
 
7
7
  export default defineCommand<GroupSuiteConfig, string, Message>({
8
8
  description: '查看积分排行榜',
@@ -1,9 +1,9 @@
1
1
  // Generated by build-plugin-runtime-entries.mjs. Do not edit.
2
2
  import { defineCommand } from 'zhin.js/command';
3
- import { resolveGroupSuiteConfig } from "../lib/config.js";
4
- import { todayStr } from "../lib/shared-runtime.js";
5
- import { resolveGroupId, statsRankText } from "../lib/stats-lib.js";
6
- import { resolveGroupSuiteRuntime } from "../lib/runtime-state.js";
3
+ import { resolveGroupSuiteConfig } from "../../lib/config.js";
4
+ import { todayStr } from "../../lib/shared-runtime.js";
5
+ import { resolveGroupId, statsRankText } from "../../lib/stats-lib.js";
6
+ import { resolveGroupSuiteRuntime } from "../../lib/runtime-state.js";
7
7
  export default defineCommand({
8
8
  description: '查看今日消息统计',
9
9
  execute({ config, input, owner, use }) {
@@ -1,9 +1,9 @@
1
1
  import { defineCommand } from 'zhin.js/command';
2
2
  import type { Message } from '@zhin.js/core/runtime';
3
- import { resolveGroupSuiteConfig, type GroupSuiteConfig } from '../src/config.js';
4
- import { todayStr } from '../src/shared-runtime.js';
5
- import { resolveGroupId, statsRankText } from '../src/stats-lib.js';
6
- import { resolveGroupSuiteRuntime } from '../src/runtime-state.js';
3
+ import { resolveGroupSuiteConfig, type GroupSuiteConfig } from '../../src/config.js';
4
+ import { todayStr } from '../../src/shared-runtime.js';
5
+ import { resolveGroupId, statsRankText } from '../../src/stats-lib.js';
6
+ import { resolveGroupSuiteRuntime } from '../../src/runtime-state.js';
7
7
 
8
8
  export default defineCommand<GroupSuiteConfig, string, Message>({
9
9
  description: '查看今日消息统计',
@@ -1,8 +1,8 @@
1
1
  // Generated by build-plugin-runtime-entries.mjs. Do not edit.
2
2
  import { defineCommand } from 'zhin.js/command';
3
- import { resolveGroupSuiteConfig } from "../lib/config.js";
4
- import { monthStartStr, resolveGroupId, statsRankText } from "../lib/stats-lib.js";
5
- import { resolveGroupSuiteRuntime } from "../lib/runtime-state.js";
3
+ import { resolveGroupSuiteConfig } from "../../lib/config.js";
4
+ import { monthStartStr, resolveGroupId, statsRankText } from "../../lib/stats-lib.js";
5
+ import { resolveGroupSuiteRuntime } from "../../lib/runtime-state.js";
6
6
  export default defineCommand({
7
7
  description: '查看本月话唠排行',
8
8
  execute({ config, input, owner, use }) {
@@ -1,8 +1,8 @@
1
1
  import { defineCommand } from 'zhin.js/command';
2
2
  import type { Message } from '@zhin.js/core/runtime';
3
- import { resolveGroupSuiteConfig, type GroupSuiteConfig } from '../src/config.js';
4
- import { monthStartStr, resolveGroupId, statsRankText } from '../src/stats-lib.js';
5
- import { resolveGroupSuiteRuntime } from '../src/runtime-state.js';
3
+ import { resolveGroupSuiteConfig, type GroupSuiteConfig } from '../../src/config.js';
4
+ import { monthStartStr, resolveGroupId, statsRankText } from '../../src/stats-lib.js';
5
+ import { resolveGroupSuiteRuntime } from '../../src/runtime-state.js';
6
6
 
7
7
  export default defineCommand<GroupSuiteConfig, string, Message>({
8
8
  description: '查看本月话唠排行',
@@ -1,8 +1,8 @@
1
1
  // Generated by build-plugin-runtime-entries.mjs. Do not edit.
2
2
  import { defineCommand } from 'zhin.js/command';
3
- import { resolveGroupSuiteConfig } from "../lib/config.js";
4
- import { resolveGroupId, statsRankText, weekStartStr } from "../lib/stats-lib.js";
5
- import { resolveGroupSuiteRuntime } from "../lib/runtime-state.js";
3
+ import { resolveGroupSuiteConfig } from "../../lib/config.js";
4
+ import { resolveGroupId, statsRankText, weekStartStr } from "../../lib/stats-lib.js";
5
+ import { resolveGroupSuiteRuntime } from "../../lib/runtime-state.js";
6
6
  export default defineCommand({
7
7
  description: '查看本周消息统计',
8
8
  execute({ config, input, owner, use }) {
@@ -1,8 +1,8 @@
1
1
  import { defineCommand } from 'zhin.js/command';
2
2
  import type { Message } from '@zhin.js/core/runtime';
3
- import { resolveGroupSuiteConfig, type GroupSuiteConfig } from '../src/config.js';
4
- import { resolveGroupId, statsRankText, weekStartStr } from '../src/stats-lib.js';
5
- import { resolveGroupSuiteRuntime } from '../src/runtime-state.js';
3
+ import { resolveGroupSuiteConfig, type GroupSuiteConfig } from '../../src/config.js';
4
+ import { resolveGroupId, statsRankText, weekStartStr } from '../../src/stats-lib.js';
5
+ import { resolveGroupSuiteRuntime } from '../../src/runtime-state.js';
6
6
 
7
7
  export default defineCommand<GroupSuiteConfig, string, Message>({
8
8
  description: '查看本周消息统计',
@@ -1,8 +1,8 @@
1
1
  // Generated by build-plugin-runtime-entries.mjs. Do not edit.
2
2
  import { defineCommand } from 'zhin.js/command';
3
- import { resolveGroupSuiteConfig } from "../lib/config.js";
4
- import { teachAdd } from "../lib/teach-lib.js";
5
- import { resolveGroupSuiteRuntime } from "../lib/runtime-state.js";
3
+ import { resolveGroupSuiteConfig } from "../../lib/config.js";
4
+ import { teachAdd } from "../../lib/teach-lib.js";
5
+ import { resolveGroupSuiteRuntime } from "../../lib/runtime-state.js";
6
6
  export default defineCommand({
7
7
  description: '教我问答(teach 问题 回答 或 问题|答案)',
8
8
  execute({ config, input, args, owner, use }) {
@@ -1,8 +1,8 @@
1
1
  import { defineCommand } from 'zhin.js/command';
2
2
  import type { Message } from '@zhin.js/core/runtime';
3
- import { resolveGroupSuiteConfig, type GroupSuiteConfig } from '../src/config.js';
4
- import { teachAdd } from '../src/teach-lib.js';
5
- import { resolveGroupSuiteRuntime } from '../src/runtime-state.js';
3
+ import { resolveGroupSuiteConfig, type GroupSuiteConfig } from '../../src/config.js';
4
+ import { teachAdd } from '../../src/teach-lib.js';
5
+ import { resolveGroupSuiteRuntime } from '../../src/runtime-state.js';
6
6
 
7
7
  export default defineCommand<GroupSuiteConfig, string, Message>({
8
8
  description: '教我问答(teach 问题 回答 或 问题|答案)',
@@ -1,8 +1,8 @@
1
1
  // Generated by build-plugin-runtime-entries.mjs. Do not edit.
2
2
  import { defineCommand } from 'zhin.js/command';
3
- import { resolveGroupSuiteConfig } from "../../lib/config.js";
4
- import { teachList } from "../../lib/teach-lib.js";
5
- import { resolveGroupSuiteRuntime } from "../../lib/runtime-state.js";
3
+ import { resolveGroupSuiteConfig } from "../../../lib/config.js";
4
+ import { teachList } from "../../../lib/teach-lib.js";
5
+ import { resolveGroupSuiteRuntime } from "../../../lib/runtime-state.js";
6
6
  export default defineCommand({
7
7
  description: '查看问答列表',
8
8
  params: { page: { type: 'number', default: 1 } },
@@ -1,8 +1,8 @@
1
1
  import { defineCommand } from 'zhin.js/command';
2
2
  import type { Message } from '@zhin.js/core/runtime';
3
- import { resolveGroupSuiteConfig, type GroupSuiteConfig } from '../../src/config.js';
4
- import { teachList } from '../../src/teach-lib.js';
5
- import { resolveGroupSuiteRuntime } from '../../src/runtime-state.js';
3
+ import { resolveGroupSuiteConfig, type GroupSuiteConfig } from '../../../src/config.js';
4
+ import { teachList } from '../../../src/teach-lib.js';
5
+ import { resolveGroupSuiteRuntime } from '../../../src/runtime-state.js';
6
6
 
7
7
  export default defineCommand<GroupSuiteConfig, string, Message>({
8
8
  description: '查看问答列表',
@@ -1,8 +1,8 @@
1
1
  // Generated by build-plugin-runtime-entries.mjs. Do not edit.
2
2
  import { defineCommand } from 'zhin.js/command';
3
- import { resolveGroupSuiteConfig } from "../lib/config.js";
4
- import { teachAdd } from "../lib/teach-lib.js";
5
- import { resolveGroupSuiteRuntime } from "../lib/runtime-state.js";
3
+ import { resolveGroupSuiteConfig } from "../../lib/config.js";
4
+ import { teachAdd } from "../../lib/teach-lib.js";
5
+ import { resolveGroupSuiteRuntime } from "../../lib/runtime-state.js";
6
6
  export default defineCommand({
7
7
  description: '教我正则问答',
8
8
  execute({ config, input, args, owner, use }) {
@@ -1,8 +1,8 @@
1
1
  import { defineCommand } from 'zhin.js/command';
2
2
  import type { Message } from '@zhin.js/core/runtime';
3
- import { resolveGroupSuiteConfig, type GroupSuiteConfig } from '../src/config.js';
4
- import { teachAdd } from '../src/teach-lib.js';
5
- import { resolveGroupSuiteRuntime } from '../src/runtime-state.js';
3
+ import { resolveGroupSuiteConfig, type GroupSuiteConfig } from '../../src/config.js';
4
+ import { teachAdd } from '../../src/teach-lib.js';
5
+ import { resolveGroupSuiteRuntime } from '../../src/runtime-state.js';
6
6
 
7
7
  export default defineCommand<GroupSuiteConfig, string, Message>({
8
8
  description: '教我正则问答',
@@ -7,7 +7,7 @@ export declare function doCheckin(input: {
7
7
  };
8
8
  target?: string;
9
9
  metadata?: Readonly<Record<string, unknown>>;
10
- }, cfg: GroupSuiteConfig, runtime?: GroupSuiteRuntime): Promise<string>;
10
+ }, cfg: GroupSuiteConfig, runtime: GroupSuiteRuntime): Promise<string>;
11
11
  export declare function myPoints(input: {
12
12
  sender?: {
13
13
  readonly id: string;
@@ -15,7 +15,7 @@ export declare function myPoints(input: {
15
15
  };
16
16
  target?: string;
17
17
  metadata?: Readonly<Record<string, unknown>>;
18
- }, runtime?: GroupSuiteRuntime): Promise<string>;
18
+ }, runtime: GroupSuiteRuntime): Promise<string>;
19
19
  export declare function pointsRank(input: {
20
20
  sender?: {
21
21
  readonly id: string;
@@ -23,5 +23,5 @@ export declare function pointsRank(input: {
23
23
  };
24
24
  target?: string;
25
25
  metadata?: Readonly<Record<string, unknown>>;
26
- }, cfg: GroupSuiteConfig, runtime?: GroupSuiteRuntime): Promise<string>;
26
+ }, cfg: GroupSuiteConfig, runtime: GroupSuiteRuntime): Promise<string>;
27
27
  //# sourceMappingURL=checkin-lib.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkin-lib.d.ts","sourceRoot":"","sources":["../src/checkin-lib.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAUpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAqD5D,wBAAsB,SAAS,CAC7B,KAAK,EAAE;IAAE,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,EAClI,GAAG,EAAE,gBAAgB,EACrB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,CA2CjB;AAED,wBAAsB,QAAQ,CAC5B,KAAK,EAAE;IAAE,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,EAClI,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE;IAAE,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,EAClI,GAAG,EAAE,gBAAgB,EACrB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAsBjB"}
1
+ {"version":3,"file":"checkin-lib.d.ts","sourceRoot":"","sources":["../src/checkin-lib.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAUpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAuD5D,wBAAsB,SAAS,CAC7B,KAAK,EAAE;IAAE,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,EAClI,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,MAAM,CAAC,CA2CjB;AAED,wBAAsB,QAAQ,CAC5B,KAAK,EAAE;IAAE,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,EAClI,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE;IAAE,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,EAClI,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,MAAM,CAAC,CAsBjB"}
@@ -32,25 +32,24 @@ async function getOrCreateUser(model, userId, userName, ctxType, ctxId) {
32
32
  * 同一 user_id+context 的签到串行化(per-user promise 链),
33
33
  * 避免 check-then-act 竞态导致连发两条都签到成功。
34
34
  */
35
- const checkinChains = new Map();
36
- function serializedCheckin(key, task) {
37
- const prev = checkinChains.get(key) ?? Promise.resolve();
35
+ function serializedCheckin(chains, key, task) {
36
+ const prev = chains.get(key) ?? Promise.resolve();
38
37
  const next = prev.then(task, task);
39
- checkinChains.set(key, next);
38
+ chains.set(key, next);
40
39
  return next.finally(() => {
41
- if (checkinChains.get(key) === next)
42
- checkinChains.delete(key);
40
+ if (chains.get(key) === next)
41
+ chains.delete(key);
43
42
  });
44
43
  }
45
44
  export async function doCheckin(input, cfg, runtime) {
46
- const M = getCheckinModel(runtime?.db);
45
+ const M = getCheckinModel(runtime.db);
47
46
  if (!M)
48
47
  return '签到数据库尚未就绪,请稍后重试';
49
48
  const { id: userId, name: userName } = resolveSender(input);
50
49
  if (!userId)
51
50
  return '无法获取用户信息';
52
51
  const { type: ctxType, id: ctxId } = resolveContextKey(input);
53
- return serializedCheckin(`${userId}:${ctxType}:${ctxId}`, async () => {
52
+ return serializedCheckin(runtime.checkinChains, `${userId}:${ctxType}:${ctxId}`, async () => {
54
53
  const user = await getOrCreateUser(M, userId, userName, ctxType, ctxId);
55
54
  if (!user)
56
55
  return '签到失败,请重试';
@@ -85,7 +84,7 @@ export async function doCheckin(input, cfg, runtime) {
85
84
  });
86
85
  }
87
86
  export async function myPoints(input, runtime) {
88
- const M = getCheckinModel(runtime?.db);
87
+ const M = getCheckinModel(runtime.db);
89
88
  if (!M)
90
89
  return '签到数据库尚未就绪';
91
90
  const { id: userId } = resolveSender(input);
@@ -109,7 +108,7 @@ export async function myPoints(input, runtime) {
109
108
  ].join('\n');
110
109
  }
111
110
  export async function pointsRank(input, cfg, runtime) {
112
- const M = getCheckinModel(runtime?.db);
111
+ const M = getCheckinModel(runtime.db);
113
112
  if (!M)
114
113
  return '签到数据库尚未就绪';
115
114
  const { type: ctxType, id: ctxId } = resolveContextKey(input);
@@ -1 +1 @@
1
- {"version":3,"file":"checkin-lib.js","sourceRoot":"","sources":["../src/checkin-lib.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkin-lib.js","sourceRoot":"","sources":["../src/checkin-lib.ts"],"names":[],"mappings":"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"}
package/lib/db-store.d.ts CHANGED
@@ -1,12 +1,5 @@
1
1
  import { type GroupSuiteMemoryDb, type GroupSuiteModel } from './memory-store.js';
2
- /** Ensure an in-memory store when Runtime DatabaseFeature Resource is not wired yet. */
3
- export declare function ensureGroupSuiteMemoryDb(): GroupSuiteMemoryDb;
4
- export declare function getGroupSuiteDb(): GroupSuiteMemoryDb | null;
5
- export declare function setGroupSuiteDb(db: GroupSuiteMemoryDb | null): void;
6
- export declare function registerGroupSuiteDb(db: GroupSuiteMemoryDb): () => void;
7
- /** Test helper: clear module store. */
8
- export declare function resetGroupSuiteDb(): void;
9
- export declare function getCheckinModel(db?: GroupSuiteMemoryDb | null): GroupSuiteModel | null;
10
- export declare function getTeachModel(db?: GroupSuiteMemoryDb | null): GroupSuiteModel | null;
11
- export declare function getStatsModel(db?: GroupSuiteMemoryDb | null): GroupSuiteModel | null;
2
+ export declare function getCheckinModel(db: GroupSuiteMemoryDb): GroupSuiteModel | undefined;
3
+ export declare function getTeachModel(db: GroupSuiteMemoryDb): GroupSuiteModel | undefined;
4
+ export declare function getStatsModel(db: GroupSuiteMemoryDb): GroupSuiteModel | undefined;
12
5
  //# sourceMappingURL=db-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"db-store.d.ts","sourceRoot":"","sources":["../src/db-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAK3B,wFAAwF;AACxF,wBAAgB,wBAAwB,IAAI,kBAAkB,CAG7D;AAED,wBAAgB,eAAe,IAAI,kBAAkB,GAAG,IAAI,CAE3D;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAEnE;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,kBAAkB,GAAG,MAAM,IAAI,CAOvE;AAED,uCAAuC;AACvC,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED,wBAAgB,eAAe,CAAC,EAAE,4BAAoB,GAAG,eAAe,GAAG,IAAI,CAE9E;AAED,wBAAgB,aAAa,CAAC,EAAE,4BAAoB,GAAG,eAAe,GAAG,IAAI,CAE5E;AAED,wBAAgB,aAAa,CAAC,EAAE,4BAAoB,GAAG,eAAe,GAAG,IAAI,CAE5E"}
1
+ {"version":3,"file":"db-store.d.ts","sourceRoot":"","sources":["../src/db-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAE3B,wBAAgB,eAAe,CAAC,EAAE,EAAE,kBAAkB,GAAG,eAAe,GAAG,SAAS,CAEnF;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,kBAAkB,GAAG,eAAe,GAAG,SAAS,CAEjF;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,kBAAkB,GAAG,eAAe,GAAG,SAAS,CAEjF"}
package/lib/db-store.js CHANGED
@@ -1,38 +1,11 @@
1
- import { CHECKIN_TABLE, createInMemoryGroupSuiteDb, STATS_TABLE, TEACH_TABLE, } from './memory-store.js';
2
- let _db = null;
3
- const registrations = [];
4
- /** Ensure an in-memory store when Runtime DatabaseFeature Resource is not wired yet. */
5
- export function ensureGroupSuiteMemoryDb() {
6
- if (!_db)
7
- _db = createInMemoryGroupSuiteDb();
8
- return _db;
1
+ import { CHECKIN_TABLE, STATS_TABLE, TEACH_TABLE, } from './memory-store.js';
2
+ export function getCheckinModel(db) {
3
+ return db.models.get(CHECKIN_TABLE);
9
4
  }
10
- export function getGroupSuiteDb() {
11
- return registrations[registrations.length - 1]?.value ?? ensureGroupSuiteMemoryDb();
5
+ export function getTeachModel(db) {
6
+ return db.models.get(TEACH_TABLE);
12
7
  }
13
- export function setGroupSuiteDb(db) {
14
- _db = db;
15
- }
16
- export function registerGroupSuiteDb(db) {
17
- const registration = Object.freeze({ value: db });
18
- registrations.push(registration);
19
- return () => {
20
- const index = registrations.lastIndexOf(registration);
21
- if (index >= 0)
22
- registrations.splice(index, 1);
23
- };
24
- }
25
- /** Test helper: clear module store. */
26
- export function resetGroupSuiteDb() {
27
- _db = null;
28
- }
29
- export function getCheckinModel(db = getGroupSuiteDb()) {
30
- return db?.models.get(CHECKIN_TABLE) ?? null;
31
- }
32
- export function getTeachModel(db = getGroupSuiteDb()) {
33
- return db?.models.get(TEACH_TABLE) ?? null;
34
- }
35
- export function getStatsModel(db = getGroupSuiteDb()) {
36
- return db?.models.get(STATS_TABLE) ?? null;
8
+ export function getStatsModel(db) {
9
+ return db.models.get(STATS_TABLE);
37
10
  }
38
11
  //# sourceMappingURL=db-store.js.map