@peninsula-med/beisen-ehr-plugin 1.0.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.
package/README.md ADDED
@@ -0,0 +1,169 @@
1
+ # 北森 EHR OpenClaw Plugin 🏢
2
+
3
+ 北森 EHR 系统的 OpenClaw 插件,支持加班申请、考勤查询、假期余额等功能。
4
+
5
+ > **开发:** 龙二 (Long Er) 🐉
6
+ > **版本:** 1.0.0
7
+
8
+ ---
9
+
10
+ ## 快速安装
11
+
12
+ ```bash
13
+ openclaw plugins install @beisen/beisen-ehr-plugin
14
+ ```
15
+
16
+ 安装后配置:
17
+
18
+ ```bash
19
+ openclaw plugins config beisen-ehr-plugin
20
+ ```
21
+
22
+ 或编辑 `~/.openclaw/config.json`:
23
+
24
+ ```json
25
+ {
26
+ "plugins": {
27
+ "beisen-ehr-plugin": {
28
+ "enabled": true,
29
+ "config": {
30
+ "apiUrl": "https://openapi.italent.cn",
31
+ "appKey": "YOUR_APP_KEY",
32
+ "appSecret": "YOUR_APP_SECRET",
33
+ "staffId": "YOUR_STAFF_ID",
34
+ "tenantId": "YOUR_TENANT_ID",
35
+ "email": "your.email@company.com"
36
+ }
37
+ }
38
+ }
39
+ }
40
+ ```
41
+
42
+ 重启 OpenClaw:
43
+
44
+ ```bash
45
+ openclaw gateway restart
46
+ ```
47
+
48
+ ---
49
+
50
+ ## 功能
51
+
52
+ ### Tools (工具)
53
+
54
+ | 工具 | 说明 |
55
+ |------|------|
56
+ | `submit_overtime` | 提交加班申请 |
57
+ | `query_attendance` | 查询考勤记录 |
58
+ | `get_approval_status` | 查询审批状态 |
59
+ | `get_leave_balance` | 查询假期余额 |
60
+
61
+ ### Resources (资源)
62
+
63
+ - `ehr://employee/{id}/profile` - 员工信息
64
+ - `ehr://attendance/{id}/records` - 考勤记录
65
+ - `ehr://overtime/{id}/list` - 加班记录
66
+
67
+ ---
68
+
69
+ ## 使用示例
70
+
71
+ ### 提交加班申请
72
+
73
+ ```
74
+ 帮我提交一个加班申请,这周日全天
75
+ ```
76
+
77
+ ### 查询假期余额
78
+
79
+ ```
80
+ 我还有多少调休假?
81
+ ```
82
+
83
+ ### 查询考勤
84
+
85
+ ```
86
+ 查一下本周的考勤记录
87
+ ```
88
+
89
+ ---
90
+
91
+ ## 配置说明
92
+
93
+ ### 必要配置
94
+
95
+ | 字段 | 说明 | 获取方式 |
96
+ |------|------|---------|
97
+ | `appKey` | 北森 App Key | 联系北森管理员 |
98
+ | `appSecret` | 北森 App Secret | 联系北森管理员 |
99
+ | `staffId` | 员工 ID | 北森系统或个人信息 |
100
+ | `tenantId` | 企业租户 ID | 北森管理员 |
101
+ | `email` | 企业邮箱 | 公司邮箱 |
102
+
103
+ ### 可选配置
104
+
105
+ | 字段 | 说明 | 默认值 |
106
+ |------|------|-------|
107
+ | `apiUrl` | 北森 API 地址 | `https://openapi.italent.cn` |
108
+
109
+ ---
110
+
111
+ ## 开发
112
+
113
+ ### 安装依赖
114
+
115
+ ```bash
116
+ npm install
117
+ ```
118
+
119
+ ### 开发模式
120
+
121
+ ```bash
122
+ npm run dev
123
+ ```
124
+
125
+ ### 构建
126
+
127
+ ```bash
128
+ npm run build
129
+ ```
130
+
131
+ ### 发布
132
+
133
+ ```bash
134
+ npm run publish:release
135
+ ```
136
+
137
+ ---
138
+
139
+ ## 故障排查
140
+
141
+ ### 插件未加载
142
+
143
+ ```bash
144
+ openclaw plugins list
145
+ openclaw plugins info beisen-ehr-plugin
146
+ ```
147
+
148
+ ### 配置错误
149
+
150
+ ```bash
151
+ openclaw plugins config beisen-ehr-plugin
152
+ ```
153
+
154
+ ### 查看日志
155
+
156
+ ```bash
157
+ openclaw gateway logs | grep beisen
158
+ ```
159
+
160
+ ---
161
+
162
+ ## License
163
+
164
+ MIT
165
+
166
+ ---
167
+
168
+ 🐉 **开发:** 龙二 (Long Er)
169
+ **最后更新:** 2026-03-11
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ /**
6
+ * 北森 EHR OpenClaw Plugin
7
+ * 🐉 龙二 开发
8
+ *
9
+ * 功能:加班申请、考勤查询、假期余额、审批状态查询
10
+ */
11
+ // 插件元数据
12
+ const pluginId = 'beisen-ehr-plugin';
13
+ const pluginVersion = '1.0.0';
14
+ /**
15
+ * 默认配置
16
+ */
17
+ const defaultConfig = {
18
+ apiUrl: 'https://openapi.italent.cn',
19
+ };
20
+ /**
21
+ * 插件激活函数
22
+ *
23
+ * 当插件被激活时,自动配置 MCP 服务器
24
+ */
25
+ async function activate(runtime, config) {
26
+ console.error(`🏢 北森 EHR 插件已激活 v${pluginVersion}`);
27
+ // 验证必要配置
28
+ const requiredFields = ['appKey', 'appSecret', 'staffId', 'tenantId', 'email'];
29
+ const missingFields = requiredFields.filter(field => !config[field]);
30
+ if (missingFields.length > 0) {
31
+ console.error(`❌ 缺少必要配置:${missingFields.join(', ')}`);
32
+ console.error('请在 OpenClaw 配置中补充这些字段');
33
+ return;
34
+ }
35
+ // MCP 服务器配置会自动从 openclaw.plugin.json 加载
36
+ // 这里只需要验证配置即可
37
+ console.error('✅ 北森 EHR 配置验证通过');
38
+ console.error(`📡 API: ${config.apiUrl || defaultConfig.apiUrl}`);
39
+ console.error(`👤 员工:${config.staffId}`);
40
+ console.error(`🏢 企业:${config.tenantId}`);
41
+ }
42
+ /**
43
+ * 插件停用函数
44
+ */
45
+ async function deactivate() {
46
+ console.error('🏢 北森 EHR 插件已停用');
47
+ }
48
+ /**
49
+ * 配置变更回调
50
+ */
51
+ async function onConfigChange(config) {
52
+ console.error('🔄 北森 EHR 配置已更新');
53
+ await activate(undefined, config);
54
+ }
55
+ // 导出插件入口
56
+ const plugin = {
57
+ id: pluginId,
58
+ version: pluginVersion,
59
+ activate,
60
+ deactivate,
61
+ onConfigChange,
62
+ };
63
+
64
+ exports.activate = activate;
65
+ exports.deactivate = deactivate;
66
+ exports.default = plugin;
67
+ exports.defaultConfig = defaultConfig;
68
+ exports.onConfigChange = onConfigChange;
69
+ exports.pluginId = pluginId;
70
+ exports.pluginVersion = pluginVersion;
71
+ //# sourceMappingURL=index.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs.js","sources":["../src/index.ts"],"sourcesContent":["/**\n * 北森 EHR OpenClaw Plugin\n * 🐉 龙二 开发\n * \n * 功能:加班申请、考勤查询、假期余额、审批状态查询\n */\n\nimport type { OpenClawPlugin } from 'openclaw/plugin-sdk';\n\n// 插件元数据\nexport const pluginId = 'beisen-ehr-plugin';\nexport const pluginVersion = '1.0.0';\n\n/**\n * 北森 EHR 插件配置接口\n */\nexport interface BeisenEHRConfig {\n /** 北森 API 地址 */\n apiUrl?: string;\n /** App Key */\n appKey: string;\n /** App Secret */\n appSecret: string;\n /** 员工 ID */\n staffId: string;\n /** 企业租户 ID */\n tenantId: string;\n /** 企业邮箱 */\n email: string;\n}\n\n/**\n * 默认配置\n */\nexport const defaultConfig: Partial<BeisenEHRConfig> = {\n apiUrl: 'https://openapi.italent.cn',\n};\n\n/**\n * 插件激活函数\n * \n * 当插件被激活时,自动配置 MCP 服务器\n */\nexport async function activate(runtime: any, config: BeisenEHRConfig) {\n console.error(`🏢 北森 EHR 插件已激活 v${pluginVersion}`);\n \n // 验证必要配置\n const requiredFields: (keyof BeisenEHRConfig)[] = ['appKey', 'appSecret', 'staffId', 'tenantId', 'email'];\n const missingFields = requiredFields.filter(field => !config[field]);\n \n if (missingFields.length > 0) {\n console.error(`❌ 缺少必要配置:${missingFields.join(', ')}`);\n console.error('请在 OpenClaw 配置中补充这些字段');\n return;\n }\n \n // MCP 服务器配置会自动从 openclaw.plugin.json 加载\n // 这里只需要验证配置即可\n console.error('✅ 北森 EHR 配置验证通过');\n console.error(`📡 API: ${config.apiUrl || defaultConfig.apiUrl}`);\n console.error(`👤 员工:${config.staffId}`);\n console.error(`🏢 企业:${config.tenantId}`);\n}\n\n/**\n * 插件停用函数\n */\nexport async function deactivate() {\n console.error('🏢 北森 EHR 插件已停用');\n}\n\n/**\n * 配置变更回调\n */\nexport async function onConfigChange(config: BeisenEHRConfig) {\n console.error('🔄 北森 EHR 配置已更新');\n await activate(undefined as any, config);\n}\n\n// 导出插件入口\nconst plugin: OpenClawPlugin = {\n id: pluginId,\n version: pluginVersion,\n activate,\n deactivate,\n onConfigChange,\n};\n\nexport default plugin;\n"],"names":[],"mappings":";;;;AAAA;;;;;AAKG;AAIH;AACO,MAAM,QAAQ,GAAG;AACjB,MAAM,aAAa,GAAG;AAoB7B;;AAEG;AACI,MAAM,aAAa,GAA6B;AACrD,IAAA,MAAM,EAAE,4BAA4B;;AAGtC;;;;AAIG;AACI,eAAe,QAAQ,CAAC,OAAY,EAAE,MAAuB,EAAA;AAClE,IAAA,OAAO,CAAC,KAAK,CAAC,oBAAoB,aAAa,CAAA,CAAE,CAAC;;AAGlD,IAAA,MAAM,cAAc,GAA8B,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC;AACzG,IAAA,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAEpE,IAAA,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5B,QAAA,OAAO,CAAC,KAAK,CAAC,CAAA,SAAA,EAAY,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CAAC;AACrD,QAAA,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC;QACtC;IACF;;;AAIA,IAAA,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC;AAChC,IAAA,OAAO,CAAC,KAAK,CAAC,CAAA,QAAA,EAAW,MAAM,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAA,CAAE,CAAC;IACjE,OAAO,CAAC,KAAK,CAAC,CAAA,MAAA,EAAS,MAAM,CAAC,OAAO,CAAA,CAAE,CAAC;IACxC,OAAO,CAAC,KAAK,CAAC,CAAA,MAAA,EAAS,MAAM,CAAC,QAAQ,CAAA,CAAE,CAAC;AAC3C;AAEA;;AAEG;AACI,eAAe,UAAU,GAAA;AAC9B,IAAA,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC;AAClC;AAEA;;AAEG;AACI,eAAe,cAAc,CAAC,MAAuB,EAAA;AAC1D,IAAA,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC;AAChC,IAAA,MAAM,QAAQ,CAAC,SAAgB,EAAE,MAAM,CAAC;AAC1C;AAEA;AACA,MAAM,MAAM,GAAmB;AAC7B,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,OAAO,EAAE,aAAa;IACtB,QAAQ;IACR,UAAU;IACV,cAAc;;;;;;;;;;;"}
@@ -0,0 +1,50 @@
1
+ import { OpenClawPlugin } from 'openclaw/plugin-sdk';
2
+
3
+ /**
4
+ * 北森 EHR OpenClaw Plugin
5
+ * 🐉 龙二 开发
6
+ *
7
+ * 功能:加班申请、考勤查询、假期余额、审批状态查询
8
+ */
9
+
10
+ declare const pluginId = "beisen-ehr-plugin";
11
+ declare const pluginVersion = "1.0.0";
12
+ /**
13
+ * 北森 EHR 插件配置接口
14
+ */
15
+ interface BeisenEHRConfig {
16
+ /** 北森 API 地址 */
17
+ apiUrl?: string;
18
+ /** App Key */
19
+ appKey: string;
20
+ /** App Secret */
21
+ appSecret: string;
22
+ /** 员工 ID */
23
+ staffId: string;
24
+ /** 企业租户 ID */
25
+ tenantId: string;
26
+ /** 企业邮箱 */
27
+ email: string;
28
+ }
29
+ /**
30
+ * 默认配置
31
+ */
32
+ declare const defaultConfig: Partial<BeisenEHRConfig>;
33
+ /**
34
+ * 插件激活函数
35
+ *
36
+ * 当插件被激活时,自动配置 MCP 服务器
37
+ */
38
+ declare function activate(runtime: any, config: BeisenEHRConfig): Promise<void>;
39
+ /**
40
+ * 插件停用函数
41
+ */
42
+ declare function deactivate(): Promise<void>;
43
+ /**
44
+ * 配置变更回调
45
+ */
46
+ declare function onConfigChange(config: BeisenEHRConfig): Promise<void>;
47
+ declare const plugin: OpenClawPlugin;
48
+
49
+ export { activate, deactivate, plugin as default, defaultConfig, onConfigChange, pluginId, pluginVersion };
50
+ export type { BeisenEHRConfig };
@@ -0,0 +1,61 @@
1
+ /**
2
+ * 北森 EHR OpenClaw Plugin
3
+ * 🐉 龙二 开发
4
+ *
5
+ * 功能:加班申请、考勤查询、假期余额、审批状态查询
6
+ */
7
+ // 插件元数据
8
+ const pluginId = 'beisen-ehr-plugin';
9
+ const pluginVersion = '1.0.0';
10
+ /**
11
+ * 默认配置
12
+ */
13
+ const defaultConfig = {
14
+ apiUrl: 'https://openapi.italent.cn',
15
+ };
16
+ /**
17
+ * 插件激活函数
18
+ *
19
+ * 当插件被激活时,自动配置 MCP 服务器
20
+ */
21
+ async function activate(runtime, config) {
22
+ console.error(`🏢 北森 EHR 插件已激活 v${pluginVersion}`);
23
+ // 验证必要配置
24
+ const requiredFields = ['appKey', 'appSecret', 'staffId', 'tenantId', 'email'];
25
+ const missingFields = requiredFields.filter(field => !config[field]);
26
+ if (missingFields.length > 0) {
27
+ console.error(`❌ 缺少必要配置:${missingFields.join(', ')}`);
28
+ console.error('请在 OpenClaw 配置中补充这些字段');
29
+ return;
30
+ }
31
+ // MCP 服务器配置会自动从 openclaw.plugin.json 加载
32
+ // 这里只需要验证配置即可
33
+ console.error('✅ 北森 EHR 配置验证通过');
34
+ console.error(`📡 API: ${config.apiUrl || defaultConfig.apiUrl}`);
35
+ console.error(`👤 员工:${config.staffId}`);
36
+ console.error(`🏢 企业:${config.tenantId}`);
37
+ }
38
+ /**
39
+ * 插件停用函数
40
+ */
41
+ async function deactivate() {
42
+ console.error('🏢 北森 EHR 插件已停用');
43
+ }
44
+ /**
45
+ * 配置变更回调
46
+ */
47
+ async function onConfigChange(config) {
48
+ console.error('🔄 北森 EHR 配置已更新');
49
+ await activate(undefined, config);
50
+ }
51
+ // 导出插件入口
52
+ const plugin = {
53
+ id: pluginId,
54
+ version: pluginVersion,
55
+ activate,
56
+ deactivate,
57
+ onConfigChange,
58
+ };
59
+
60
+ export { activate, deactivate, plugin as default, defaultConfig, onConfigChange, pluginId, pluginVersion };
61
+ //# sourceMappingURL=index.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":["../src/index.ts"],"sourcesContent":["/**\n * 北森 EHR OpenClaw Plugin\n * 🐉 龙二 开发\n * \n * 功能:加班申请、考勤查询、假期余额、审批状态查询\n */\n\nimport type { OpenClawPlugin } from 'openclaw/plugin-sdk';\n\n// 插件元数据\nexport const pluginId = 'beisen-ehr-plugin';\nexport const pluginVersion = '1.0.0';\n\n/**\n * 北森 EHR 插件配置接口\n */\nexport interface BeisenEHRConfig {\n /** 北森 API 地址 */\n apiUrl?: string;\n /** App Key */\n appKey: string;\n /** App Secret */\n appSecret: string;\n /** 员工 ID */\n staffId: string;\n /** 企业租户 ID */\n tenantId: string;\n /** 企业邮箱 */\n email: string;\n}\n\n/**\n * 默认配置\n */\nexport const defaultConfig: Partial<BeisenEHRConfig> = {\n apiUrl: 'https://openapi.italent.cn',\n};\n\n/**\n * 插件激活函数\n * \n * 当插件被激活时,自动配置 MCP 服务器\n */\nexport async function activate(runtime: any, config: BeisenEHRConfig) {\n console.error(`🏢 北森 EHR 插件已激活 v${pluginVersion}`);\n \n // 验证必要配置\n const requiredFields: (keyof BeisenEHRConfig)[] = ['appKey', 'appSecret', 'staffId', 'tenantId', 'email'];\n const missingFields = requiredFields.filter(field => !config[field]);\n \n if (missingFields.length > 0) {\n console.error(`❌ 缺少必要配置:${missingFields.join(', ')}`);\n console.error('请在 OpenClaw 配置中补充这些字段');\n return;\n }\n \n // MCP 服务器配置会自动从 openclaw.plugin.json 加载\n // 这里只需要验证配置即可\n console.error('✅ 北森 EHR 配置验证通过');\n console.error(`📡 API: ${config.apiUrl || defaultConfig.apiUrl}`);\n console.error(`👤 员工:${config.staffId}`);\n console.error(`🏢 企业:${config.tenantId}`);\n}\n\n/**\n * 插件停用函数\n */\nexport async function deactivate() {\n console.error('🏢 北森 EHR 插件已停用');\n}\n\n/**\n * 配置变更回调\n */\nexport async function onConfigChange(config: BeisenEHRConfig) {\n console.error('🔄 北森 EHR 配置已更新');\n await activate(undefined as any, config);\n}\n\n// 导出插件入口\nconst plugin: OpenClawPlugin = {\n id: pluginId,\n version: pluginVersion,\n activate,\n deactivate,\n onConfigChange,\n};\n\nexport default plugin;\n"],"names":[],"mappings":"AAAA;;;;;AAKG;AAIH;AACO,MAAM,QAAQ,GAAG;AACjB,MAAM,aAAa,GAAG;AAoB7B;;AAEG;AACI,MAAM,aAAa,GAA6B;AACrD,IAAA,MAAM,EAAE,4BAA4B;;AAGtC;;;;AAIG;AACI,eAAe,QAAQ,CAAC,OAAY,EAAE,MAAuB,EAAA;AAClE,IAAA,OAAO,CAAC,KAAK,CAAC,oBAAoB,aAAa,CAAA,CAAE,CAAC;;AAGlD,IAAA,MAAM,cAAc,GAA8B,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC;AACzG,IAAA,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAEpE,IAAA,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5B,QAAA,OAAO,CAAC,KAAK,CAAC,CAAA,SAAA,EAAY,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CAAC;AACrD,QAAA,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC;QACtC;IACF;;;AAIA,IAAA,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC;AAChC,IAAA,OAAO,CAAC,KAAK,CAAC,CAAA,QAAA,EAAW,MAAM,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAA,CAAE,CAAC;IACjE,OAAO,CAAC,KAAK,CAAC,CAAA,MAAA,EAAS,MAAM,CAAC,OAAO,CAAA,CAAE,CAAC;IACxC,OAAO,CAAC,KAAK,CAAC,CAAA,MAAA,EAAS,MAAM,CAAC,QAAQ,CAAA,CAAE,CAAC;AAC3C;AAEA;;AAEG;AACI,eAAe,UAAU,GAAA;AAC9B,IAAA,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC;AAClC;AAEA;;AAEG;AACI,eAAe,cAAc,CAAC,MAAuB,EAAA;AAC1D,IAAA,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC;AAChC,IAAA,MAAM,QAAQ,CAAC,SAAgB,EAAE,MAAM,CAAC;AAC1C;AAEA;AACA,MAAM,MAAM,GAAmB;AAC7B,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,OAAO,EAAE,aAAa;IACtB,QAAQ;IACR,UAAU;IACV,cAAc;;;;;"}
@@ -0,0 +1,69 @@
1
+ {
2
+ "id": "beisen-ehr-plugin",
3
+ "mcpServers": [
4
+ {
5
+ "name": "beisen-ehr",
6
+ "command": "beisen-ehr-mcp",
7
+ "configSchema": {
8
+ "type": "object",
9
+ "additionalProperties": false,
10
+ "properties": {
11
+ "apiUrl": {
12
+ "type": "string",
13
+ "description": "北森 API 地址",
14
+ "default": "https://openapi.italent.cn"
15
+ },
16
+ "appKey": {
17
+ "type": "string",
18
+ "description": "App Key(从北森管理员获取)"
19
+ },
20
+ "appSecret": {
21
+ "type": "string",
22
+ "description": "App Secret(从北森管理员获取)"
23
+ },
24
+ "staffId": {
25
+ "type": "string",
26
+ "description": "员工 ID"
27
+ },
28
+ "tenantId": {
29
+ "type": "string",
30
+ "description": "企业租户 ID"
31
+ },
32
+ "email": {
33
+ "type": "string",
34
+ "format": "email",
35
+ "description": "企业邮箱"
36
+ }
37
+ },
38
+ "required": ["appKey", "appSecret", "staffId", "tenantId", "email"]
39
+ }
40
+ }
41
+ ],
42
+ "configSchema": {
43
+ "type": "object",
44
+ "additionalProperties": false,
45
+ "properties": {
46
+ "apiUrl": {
47
+ "type": "string",
48
+ "default": "https://openapi.italent.cn"
49
+ },
50
+ "appKey": {
51
+ "type": "string"
52
+ },
53
+ "appSecret": {
54
+ "type": "string"
55
+ },
56
+ "staffId": {
57
+ "type": "string"
58
+ },
59
+ "tenantId": {
60
+ "type": "string"
61
+ },
62
+ "email": {
63
+ "type": "string",
64
+ "format": "email"
65
+ }
66
+ },
67
+ "required": ["appKey", "appSecret", "staffId", "tenantId", "email"]
68
+ }
69
+ }
package/package.json ADDED
@@ -0,0 +1,72 @@
1
+ {
2
+ "name": "@peninsula-med/beisen-ehr-plugin",
3
+ "version": "1.0.0",
4
+ "type": "module",
5
+ "main": "dist/index.cjs.js",
6
+ "module": "dist/index.esm.js",
7
+ "types": "dist/index.d.ts",
8
+ "files": [
9
+ "dist",
10
+ "openclaw.plugin.json",
11
+ "README.md"
12
+ ],
13
+ "scripts": {
14
+ "build": "rollup -c",
15
+ "dev": "rollup -c -w",
16
+ "clean": "rm -rf dist",
17
+ "prebuild": "npm run clean",
18
+ "publish:release": "npm run prebuild && npm run build && npm publish --access public"
19
+ },
20
+ "keywords": [
21
+ "beisen",
22
+ "ehr",
23
+ "openclaw-plugin",
24
+ "mcp",
25
+ "加班申请",
26
+ "考勤"
27
+ ],
28
+ "author": "龙二 🐉",
29
+ "license": "MIT",
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "https://github.com/your-org/beisen-ehr-plugin.git"
33
+ },
34
+ "homepage": "https://github.com/your-org/beisen-ehr-plugin#readme",
35
+ "bugs": {
36
+ "url": "https://github.com/your-org/beisen-ehr-plugin/issues"
37
+ },
38
+ "description": "北森 EHR MCP 插件 - 加班申请、考勤查询、假期余额",
39
+ "openclaw": {
40
+ "extensions": [
41
+ "./dist/index.esm.js"
42
+ ],
43
+ "mcp": {
44
+ "id": "beisen-ehr",
45
+ "label": "北森 EHR",
46
+ "blurb": "北森 EHR 系统集成,支持加班申请、考勤查询、假期余额等功能",
47
+ "order": 50,
48
+ "quickstartAllowFrom": false
49
+ },
50
+ "install": {
51
+ "npmSpec": "@peninsula-med/beisen-ehr-plugin",
52
+ "localPath": "extensions/beisen-ehr-plugin",
53
+ "defaultChoice": "npm"
54
+ }
55
+ },
56
+ "dependencies": {
57
+ "@peninsula-med/beisen-ehr-mcp": "^1.0.0"
58
+ },
59
+ "devDependencies": {
60
+ "@rollup/plugin-commonjs": "^25.0.8",
61
+ "@rollup/plugin-json": "^6.1.0",
62
+ "@rollup/plugin-node-resolve": "^15.3.1",
63
+ "@rollup/plugin-typescript": "^11.1.6",
64
+ "rollup": "^4.59.0",
65
+ "rollup-plugin-dts": "^6.3.0",
66
+ "tslib": "^2.8.1",
67
+ "typescript": "^5.9.3"
68
+ },
69
+ "peerDependencies": {
70
+ "openclaw": ">=2026.1.29"
71
+ }
72
+ }