@wecom/wecom-openclaw-plugin 2026.7.2-beta.1 → 2026.8.17-beta.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 (183) hide show
  1. package/README.md +33 -4
  2. package/dist/index.js +14 -21
  3. package/dist/src/cli/argv.d.ts +36 -0
  4. package/dist/src/cli/argv.js +155 -0
  5. package/dist/src/cli/const.d.ts +94 -0
  6. package/dist/src/cli/const.js +107 -0
  7. package/dist/src/cli/credentials.d.ts +54 -0
  8. package/dist/src/cli/credentials.js +342 -0
  9. package/dist/src/cli/index.d.ts +5 -0
  10. package/dist/src/cli/index.js +5 -0
  11. package/dist/src/cli/legacy-tool-warning.d.ts +12 -0
  12. package/dist/src/cli/legacy-tool-warning.js +20 -0
  13. package/dist/src/cli/locate.d.ts +32 -0
  14. package/dist/src/cli/locate.js +196 -0
  15. package/dist/src/cli/process-launcher.d.ts +1 -0
  16. package/dist/src/cli/process-launcher.js +1 -0
  17. package/dist/src/cli/process-output.d.ts +14 -0
  18. package/dist/src/cli/process-output.js +43 -0
  19. package/dist/src/cli/tool.d.ts +46 -0
  20. package/dist/src/cli/tool.js +363 -0
  21. package/dist/src/const.d.ts +0 -8
  22. package/dist/src/const.js +0 -14
  23. package/dist/src/monitor.js +1 -12
  24. package/dist/src/state-manager.d.ts +0 -19
  25. package/dist/src/state-manager.js +1 -34
  26. package/dist/src/utils.d.ts +27 -0
  27. package/openclaw.plugin.json +1 -1
  28. package/package.json +3 -3
  29. package/skills/wecom-send-media/SKILL.md +2 -0
  30. package/skills/wecom-send-template-card/SKILL.md +1 -1
  31. package/skills/wecomcli-calendar/SKILL.md +302 -0
  32. package/skills/wecomcli-calendar/references/calendar-agenda.md +228 -0
  33. package/skills/wecomcli-calendar/references/calendar-cancel.md +110 -0
  34. package/skills/wecomcli-calendar/references/calendar-create.md +240 -0
  35. package/skills/wecomcli-calendar/references/calendar-freebusy.md +209 -0
  36. package/skills/wecomcli-calendar/references/calendar-meeting-room.md +172 -0
  37. package/skills/wecomcli-calendar/references/calendar-search.md +208 -0
  38. package/skills/wecomcli-calendar/references/calendar-update.md +274 -0
  39. package/skills/wecomcli-contact/SKILL.md +59 -0
  40. package/skills/wecomcli-disk/SKILL.md +401 -0
  41. package/skills/wecomcli-doc/SKILL.md +140 -0
  42. package/skills/wecomcli-doc/references/doc-contents-append.md +22 -0
  43. package/skills/wecomcli-doc/references/doc-contents-overwrite.md +29 -0
  44. package/skills/wecomcli-doc/references/doc-create.md +161 -0
  45. package/skills/wecomcli-doc/scripts/build_docx.py +1375 -0
  46. package/skills/wecomcli-doc-manage/SKILL.md +135 -0
  47. package/skills/wecomcli-doc-manage/references/doc-members-update.md +26 -0
  48. package/skills/wecomcli-doc-manage/references/doc-names-update.md +22 -0
  49. package/skills/wecomcli-doc-manage/references/doc-rules-update.md +24 -0
  50. package/skills/wecomcli-email/SKILL.md +216 -0
  51. package/skills/wecomcli-email/references/forward-mail.md +131 -0
  52. package/skills/wecomcli-email/references/get-mail.md +168 -0
  53. package/skills/wecomcli-email/references/reply-mail.md +140 -0
  54. package/skills/wecomcli-email/references/search-mail.md +113 -0
  55. package/skills/wecomcli-email/references/security.md +53 -0
  56. package/skills/wecomcli-email/references/send-mail.md +186 -0
  57. package/skills/wecomcli-email/references/send-schedule.md +83 -0
  58. package/skills/wecomcli-media/SKILL.md +100 -0
  59. package/skills/wecomcli-meeting/SKILL.md +374 -0
  60. package/skills/wecomcli-meeting/references/meeting-cancel.md +115 -0
  61. package/skills/wecomcli-meeting/references/meeting-create.md +169 -0
  62. package/skills/wecomcli-meeting/references/meeting-list.md +228 -0
  63. package/skills/wecomcli-meeting/references/meeting-original-get.md +100 -0
  64. package/skills/wecomcli-meeting/references/meeting-search.md +175 -0
  65. package/skills/wecomcli-meeting/references/meeting-update.md +219 -0
  66. package/skills/wecomcli-message/SKILL.md +213 -0
  67. package/skills/wecomcli-preflight/SKILL.md +147 -0
  68. package/skills/wecomcli-sheet/SKILL.md +177 -0
  69. package/skills/wecomcli-sheet/references/sheet-contents-update.md +49 -0
  70. package/skills/wecomcli-sheet/references/sheet-ranges-get.md +47 -0
  71. package/skills/wecomcli-sheet/references/sheet-rows-append.md +47 -0
  72. package/skills/wecomcli-sheet/references/sheet-subsheets-add.md +28 -0
  73. package/skills/wecomcli-sheet/references/sheet-subsheets-delete.md +22 -0
  74. package/skills/wecomcli-smartpage/SKILL.md +172 -0
  75. package/skills/wecomcli-smartpage/references/data-driven-pages.md +50 -0
  76. package/skills/wecomcli-smartpage/references/formula/arraylist.md +369 -0
  77. package/skills/wecomcli-smartpage/references/formula/datetime.md +283 -0
  78. package/skills/wecomcli-smartpage/references/formula/logic.md +247 -0
  79. package/skills/wecomcli-smartpage/references/formula/math.md +362 -0
  80. package/skills/wecomcli-smartpage/references/formula/operators.md +246 -0
  81. package/skills/wecomcli-smartpage/references/formula/pageblock.md +76 -0
  82. package/skills/wecomcli-smartpage/references/formula/templates.md +410 -0
  83. package/skills/wecomcli-smartpage/references/formula/text.md +377 -0
  84. package/skills/wecomcli-smartpage/references/formula/user.md +22 -0
  85. package/skills/wecomcli-smartpage/references/formula-reference.md +192 -0
  86. package/skills/wecomcli-smartpage/references/mdx-syntax.md +739 -0
  87. package/skills/wecomcli-smartpage/references/smartpage-edit.md +519 -0
  88. package/skills/wecomcli-smartsheet/SKILL.md +153 -0
  89. package/skills/wecomcli-smartsheet/assets/templates/README.md +53 -0
  90. package/skills/wecomcli-smartsheet/assets/templates/ai_efficiency.md +709 -0
  91. package/skills/wecomcli-smartsheet/assets/templates/connect_to_app.md +380 -0
  92. package/skills/wecomcli-smartsheet/assets/templates/financial_accounting.md +369 -0
  93. package/skills/wecomcli-smartsheet/assets/templates/hr_and_administration.md +475 -0
  94. package/skills/wecomcli-smartsheet/assets/templates/ledger_records.md +156 -0
  95. package/skills/wecomcli-smartsheet/assets/templates/manufacturing.md +395 -0
  96. package/skills/wecomcli-smartsheet/assets/templates/marketing.md +186 -0
  97. package/skills/wecomcli-smartsheet/assets/templates/office_essentials.md +299 -0
  98. package/skills/wecomcli-smartsheet/assets/templates/personal_efficiency.md +70 -0
  99. package/skills/wecomcli-smartsheet/assets/templates/procurement_logistics.md +325 -0
  100. package/skills/wecomcli-smartsheet/assets/templates/project_management.md +564 -0
  101. package/skills/wecomcli-smartsheet/assets/templates/rd_process_customer.md +222 -0
  102. package/skills/wecomcli-smartsheet/assets/templates/rd_process_ops.md +105 -0
  103. package/skills/wecomcli-smartsheet/assets/templates/rd_process_project.md +109 -0
  104. package/skills/wecomcli-smartsheet/assets/templates/rd_process_research.md +92 -0
  105. package/skills/wecomcli-smartsheet/assets/templates/sales_and_operations.md +446 -0
  106. package/skills/wecomcli-smartsheet/assets/templates/store_management.md +431 -0
  107. package/skills/wecomcli-smartsheet/assets/templates/team_tasks.md +274 -0
  108. package/skills/wecomcli-smartsheet/assets/templates/wechat_customer.md +384 -0
  109. package/skills/wecomcli-smartsheet/assets/templates/work_report.md +100 -0
  110. package/skills/wecomcli-smartsheet/references/common.md +145 -0
  111. package/skills/wecomcli-smartsheet/references/smart-sheet-chart-types.md +95 -0
  112. package/skills/wecomcli-smartsheet/references/smart-sheet-edit.md +611 -0
  113. package/skills/wecomcli-smartsheet/references/smart-sheet-field-types.md +438 -0
  114. package/skills/wecomcli-smartsheet/references/smart-sheet-formula.md +845 -0
  115. package/skills/wecomcli-smartsheet/references/smart-sheet-read.md +411 -0
  116. package/skills/wecomcli-smartsheet/references/smart-sheet-record-values.md +203 -0
  117. package/skills/wecomcli-smartsheet/references/smart-sheet-view-types.md +356 -0
  118. package/skills/{wecom-smartsheet/references/webhook-examples.md → wecomcli-smartsheet/references/smart-sheet-webhook-examples.md} +23 -32
  119. package/skills/wecomcli-smartsheet/references/smart-sheet-webhook.md +169 -0
  120. package/skills/wecomcli-todo/SKILL.md +75 -0
  121. package/skills/wecomcli-todo/references/todo-create.md +139 -0
  122. package/skills/wecomcli-todo/references/todo-delete.md +65 -0
  123. package/skills/wecomcli-todo/references/todo-finish.md +74 -0
  124. package/skills/wecomcli-todo/references/todo-get.md +68 -0
  125. package/skills/wecomcli-todo/references/todo-list.md +135 -0
  126. package/skills/wecomcli-todo/references/todo-update.md +114 -0
  127. package/dist/src/mcp/index.d.ts +0 -6
  128. package/dist/src/mcp/index.js +0 -10
  129. package/dist/src/mcp/interceptors/biz-error.d.ts +0 -11
  130. package/dist/src/mcp/interceptors/biz-error.js +0 -69
  131. package/dist/src/mcp/interceptors/doc-auth-error.d.ts +0 -10
  132. package/dist/src/mcp/interceptors/doc-auth-error.js +0 -171
  133. package/dist/src/mcp/interceptors/index.d.ts +0 -35
  134. package/dist/src/mcp/interceptors/index.js +0 -72
  135. package/dist/src/mcp/interceptors/msg-media.d.ts +0 -11
  136. package/dist/src/mcp/interceptors/msg-media.js +0 -133
  137. package/dist/src/mcp/interceptors/smartpage-create.d.ts +0 -30
  138. package/dist/src/mcp/interceptors/smartpage-create.js +0 -132
  139. package/dist/src/mcp/interceptors/smartpage-export.d.ts +0 -17
  140. package/dist/src/mcp/interceptors/smartpage-export.js +0 -87
  141. package/dist/src/mcp/interceptors/smartsheet-upload.d.ts +0 -22
  142. package/dist/src/mcp/interceptors/smartsheet-upload.js +0 -263
  143. package/dist/src/mcp/interceptors/types.d.ts +0 -64
  144. package/dist/src/mcp/interceptors/types.js +0 -7
  145. package/dist/src/mcp/schema.d.ts +0 -11
  146. package/dist/src/mcp/schema.js +0 -99
  147. package/dist/src/mcp/tool.d.ts +0 -63
  148. package/dist/src/mcp/tool.js +0 -224
  149. package/dist/src/mcp/transport.d.ts +0 -94
  150. package/dist/src/mcp/transport.js +0 -549
  151. package/skills/wecom-contact/SKILL.md +0 -162
  152. package/skills/wecom-doc/SKILL.md +0 -127
  153. package/skills/wecom-meeting/SKILL.md +0 -441
  154. package/skills/wecom-meeting/references/example-full.md +0 -30
  155. package/skills/wecom-meeting/references/example-reminder.md +0 -46
  156. package/skills/wecom-meeting/references/example-security.md +0 -22
  157. package/skills/wecom-meeting/references/response-get-meeting-info.md +0 -148
  158. package/skills/wecom-msg/SKILL.md +0 -157
  159. package/skills/wecom-msg/references/api-get-messages.md +0 -93
  160. package/skills/wecom-msg/references/api-get-msg-chat-list.md +0 -58
  161. package/skills/wecom-msg/references/api-get-msg-media.md +0 -44
  162. package/skills/wecom-msg/references/api-send-message.md +0 -39
  163. package/skills/wecom-preflight/SKILL.md +0 -141
  164. package/skills/wecom-schedule/SKILL.md +0 -161
  165. package/skills/wecom-schedule/references/api-check-availability.md +0 -56
  166. package/skills/wecom-schedule/references/api-create-schedule.md +0 -38
  167. package/skills/wecom-schedule/references/api-get-schedule-detail.md +0 -81
  168. package/skills/wecom-schedule/references/api-update-schedule.md +0 -32
  169. package/skills/wecom-schedule/references/ref-reminders.md +0 -24
  170. package/skills/wecom-sheet/SKILL.md +0 -131
  171. package/skills/wecom-sheet/references/sheet-add-sub.md +0 -54
  172. package/skills/wecom-sheet/references/sheet-append-data.md +0 -64
  173. package/skills/wecom-sheet/references/sheet-delete-sub.md +0 -38
  174. package/skills/wecom-sheet/references/sheet-update-range-data.md +0 -95
  175. package/skills/wecom-smartpage/SKILL.md +0 -119
  176. package/skills/wecom-smartpage/references/smartpage-create.md +0 -130
  177. package/skills/wecom-smartpage/references/smartpage-export.md +0 -168
  178. package/skills/wecom-smartsheet/SKILL.md +0 -241
  179. package/skills/wecom-smartsheet/references/smartsheet-cell-value-formats.md +0 -163
  180. package/skills/wecom-smartsheet/references/smartsheet-field-types.md +0 -44
  181. package/skills/wecom-smartsheet/references/smartsheet-get-records.md +0 -187
  182. package/skills/wecom-smartsheet/references/webhook-fallback.md +0 -183
  183. package/skills/wecom-todo/SKILL.md +0 -272
@@ -0,0 +1,147 @@
1
+ ---
2
+ name: wecomcli-preflight
3
+ description: 企业微信插件前置条件检查。在执行任何 wecom-cli 操作前,通过 shell 命令检查工具权限配置(profile 和白名单),若缺失则自动修复并提示用户重启 Gateway。所有使用 wecom-cli 的技能都应在首次调用前执行此检查。
4
+ ---
5
+
6
+ # 企业微信前置条件检查
7
+
8
+ > 本技能确保 `wecom-cli` 工具已正确获得执行权限。**所有使用 wecom-cli 的技能在首次调用前,必须先执行本检查流程。**
9
+
10
+ ## 触发条件
11
+
12
+ 当满足以下**任一条件**时,执行前置检查:
13
+
14
+ 1. 当前会话中**首次**需要调用 `wecom-cli` 工具
15
+ 2. 调用 `wecom-cli` 时收到 `tool not allowed`、`not permitted`、`permission denied` 或类似权限错误
16
+
17
+ > 如果当前会话中已成功调用过 `wecom-cli`(任何操作),则无需重复检查。
18
+
19
+ ---
20
+
21
+ ## 检查流程
22
+
23
+ > **重要**:以下所有步骤均为 **shell 命令**(在终端中执行),不是 `wecom-cli` 工具调用。
24
+ > 这些 shell 命令仅用于检查和修改 OpenClaw 工具权限,严禁用它们直接运行全局 `wecom-cli`。
25
+ > `wecom-cli` 在未加入白名单前对 AI Agent 不可见,因此不能用 tool 调用来探测;此时应完成权限修复或向用户报告问题,不得降级到 `exec` / `bash` / `shell` / `npx` 执行 CLI,也不得手动执行 `auth init`。
26
+
27
+ ### 步骤 1:检查 tools.profile
28
+
29
+ 在终端执行以下命令,读取当前 `tools.profile` 配置:
30
+
31
+ ```bash
32
+ openclaw config get tools.profile
33
+ ```
34
+
35
+ 根据返回结果分流:
36
+
37
+ - **返回 `full`** → ✅ **检查通过**。`full` 模式无任何工具限制,所有工具(包括 `wecom-cli`)直接可用,无需检查 `alsoAllow`,继续执行用户原始请求;通过仅表示专用 tool 可用,即使存在 `exec` 也必须调用专用 `wecom-cli` tool,不得直接运行全局 CLI
38
+ - **返回其他值**(如 `coding`、`messaging`、`minimal`、`undefined` 或空)→ 进入步骤 1b(检查 alsoAllow)
39
+ - **命令执行失败**(如 `command not found: openclaw`、权限错误等)→ 进入步骤 3(环境异常)
40
+
41
+ ### 步骤 1b:检查 tools.alsoAllow
42
+
43
+ 在终端执行以下命令,读取当前 `tools.alsoAllow` 配置:
44
+
45
+ ```bash
46
+ openclaw config get tools.alsoAllow
47
+ ```
48
+
49
+ 根据返回结果分流:
50
+
51
+ - **返回内容包含 `wecom-openclaw-plugin`**(如 `["wecom-openclaw-plugin"]` 或 `["wecom-openclaw-plugin", "other_tool"]`)→ ✅ 插件已放行,检查通过,继续执行用户原始请求
52
+ - **返回内容不包含 `wecom-openclaw-plugin`**(如空数组 `[]`、`undefined`、或列表中只有旧条目 `wecom_mcp`)→ 进入步骤 2(自动修复)
53
+ - **命令执行失败** → 进入步骤 3(环境异常)
54
+
55
+ ---
56
+
57
+ ### 步骤 2:自动修复 tools.alsoAllow
58
+
59
+ 在终端执行以下命令,将企业微信插件加入工具白名单:
60
+
61
+ ```bash
62
+ openclaw config set tools.alsoAllow '["wecom-openclaw-plugin"]'
63
+ ```
64
+
65
+ > **权限边界**:按插件 ID 放行会允许该插件当前及未来注册的全部工具;这是本插件约定的推荐配置。
66
+ >
67
+ > **注意**:如果步骤 1b 返回的列表中已有其他工具(如 `["other_tool"]`),需要合并后再写入,例如:
68
+ > ```bash
69
+ > openclaw config set tools.alsoAllow '["other_tool", "wecom-openclaw-plugin"]'
70
+ > ```
71
+ > 旧的 `wecom_mcp` 条目已无效,可以保留或自行删除;不要为清理旧条目覆盖其他配置。
72
+
73
+ 根据执行结果分流:
74
+
75
+ #### 2a. 命令执行成功
76
+
77
+ 向用户回复(**不要自动执行重启**):
78
+
79
+ ```
80
+ ✅ 已自动将企业微信插件(wecom-openclaw-plugin)加入工具执行权限白名单(tools.alsoAllow)。
81
+ ⚠️ 配置变更需要重启 Gateway 后才能生效,请在终端执行以下命令:
82
+
83
+ openclaw gateway restart
84
+
85
+ 重启完成后请重新发送您的请求。
86
+ ```
87
+
88
+ > **为什么不自动重启**:`openclaw gateway restart` 会中断当前所有活跃连接(包括本会话),
89
+ > 如果由 AI 自动执行,用户可能无法看到完整的提示信息。交由用户手动重启更可控。
90
+
91
+ #### 2b. 命令执行失败
92
+
93
+ 向用户回复以下手动修复指引:
94
+
95
+ ```
96
+ ❌ 自动配置失败,请在终端手动执行以下命令:
97
+
98
+ openclaw config set tools.alsoAllow '["wecom-openclaw-plugin"]'
99
+ openclaw gateway restart
100
+
101
+ 完成后请重新发送您的请求。
102
+ ```
103
+
104
+ ---
105
+
106
+ ### 步骤 3:环境异常处理
107
+
108
+ 如果步骤 1 或 1b 的 `openclaw` 命令本身执行失败(如 `command not found`、权限不足等),说明 OpenClaw CLI 未正确安装或不在 PATH 中,直接告知用户:
109
+
110
+ ```
111
+ ⚠️ OpenClaw CLI 不可用:<错误信息>
112
+
113
+ 可能原因:
114
+ - OpenClaw 未安装或未加入系统 PATH
115
+ - OpenClaw 版本过低,不支持 config 子命令
116
+ - 当前 shell 环境缺少必要配置
117
+
118
+ 请检查 OpenClaw 安装状态后重试。
119
+ 参考:https://docs.openclaw.dev/installation
120
+ ```
121
+
122
+ ---
123
+
124
+ ## 注意事项
125
+
126
+ 1. **全程使用 shell 命令**:本技能的所有探测和修复操作均通过 `openclaw` CLI 在终端中执行,**不调用 `wecom-cli` 工具**。这样可以避免"tool 未白名单 → tool 不可见 → 无法探测"的死锁问题
127
+ 2. **profile 优先判断**:`tools.profile` 为 `full` 时所有工具无限制,无需检查 `alsoAllow`,可快速跳过
128
+ 3. **幂等性**:如果 `tools.alsoAllow` 中已包含 `wecom-openclaw-plugin`,无需重复写入
129
+ 4. **按插件 ID 放行**:`wecom-openclaw-plugin` 会展开为该插件当前及未来注册的全部工具
130
+ 5. **保留已有配置**:修改 `tools.alsoAllow` 时需保留已有条目,仅追加 `wecom-openclaw-plugin`;旧的 `wecom_mcp` 可以保留或自行删除
131
+ 6. **不自动重启**:自动配置成功后仅提示用户重启并附上命令,由用户手动执行,避免会话中断导致信息丢失
132
+ 7. **会话缓存**:同一会话中一旦检查通过(profile 为 full 或 alsoAllow 包含插件 ID),后续调用无需重复检查
133
+ 8. **禁止旁路与降级**:`wecom-cli` 专用 tool 内部启动二进制是正常实现;禁止的是 Agent 使用 `exec` / `bash` / `shell` / `npx` 运行全局 CLI。专用 tool 失败、不可见或提示授权时,必须报告权限或配置问题,不得手动执行 `auth init`
134
+
135
+ ---
136
+
137
+ ## 快速参考
138
+
139
+ | 场景 | 处理方式 |
140
+ |------|---------|
141
+ | 首次调用 wecom-cli 前 | 执行 `openclaw config get tools.profile` 检查 |
142
+ | `tools.profile` 为 `full` | ✅ 跳过,直接执行原始请求 |
143
+ | profile 非 full + alsoAllow 已包含 `wecom-openclaw-plugin` | ✅ 跳过,继续执行 |
144
+ | profile 非 full + alsoAllow 只有旧 `wecom_mcp` 或不含插件 ID → 自动写入成功 | 追加插件 ID,提示已配置 + 附 `openclaw gateway restart` 命令让用户重启 |
145
+ | profile 非 full + alsoAllow 不含插件 ID → 自动写入失败 | 给出手动修复指引 |
146
+ | openclaw CLI 不可用 | 告知用户检查 OpenClaw 安装 |
147
+ | 会话中已成功调用过 wecom-cli | 跳过检查 |
@@ -0,0 +1,177 @@
1
+ ---
2
+ name: wecomcli-sheet
3
+ description: 企业微信在线表格文档管理:新建在线表格、导入 CSV/Excel 为在线表格、读取表格信息与数据、修改表格内容、追加行数据、子表管理。当用户提到'表格'、'在线表格'、'excel表格'这些关键词触发,或链接形如 https://doc.weixin.qq.com/sheet/xxx 时触发。文档公共操作请使用 wecomcli-doc-manage;doc文档操作请使用 wecomcli-doc;智能表格内容 CRUD 请使用 wecomcli-smartsheet。
4
+ ---
5
+
6
+ `wecom-cli` 是插件提供的 tool,不是终端命令:所有操作都通过调用该 tool 完成,参数应使用 `args` 传入,禁止通过 exec / shell / 终端等命令行方式使用。
7
+
8
+ ⚠️ 前置条件:首次调用 wecom-cli 前,必须按 wecomcli-preflight 技能执行前置条件检查,确保工具已加入白名单。
9
+
10
+ # 企业微信在线表格管理
11
+
12
+ 资源型 skill,负责在线表格(`sheet`)的新建、导入与内容读写及子表管理。
13
+
14
+ ## 适用范围
15
+
16
+ ### 适用
17
+
18
+ - 新建 / 导入企微在线表格
19
+ - 读取 / 修改 / 追加在线表格内容
20
+ - 添加 / 删除在线表格子表
21
+
22
+ ### 不适用
23
+
24
+ - 搜索文档 / 修改文档权限 / 重命名 / 加成员 → 改用 `wecomcli-doc-manage`
25
+ - 用户给的链接是 `https://doc.weixin.qq.com/smartsheet/...` → 改用 `wecomcli-smartsheet`
26
+ - 若遇到的 `docid` 以 `s3` 开头(形如 `s3_xxxx`)→ 改用 `wecomcli-smartsheet`
27
+
28
+
29
+ ## 接口路由表
30
+
31
+ > **硬规则**:第二列是 `references/xxx.md` 链接的, 命中这一行后先 `read` 对应 references 文件,再构造命令。
32
+
33
+ | 用户意图 | 参考位置 |
34
+ |---|---|
35
+ | 新建在线表格 | 见下方「新建在线表格」 |
36
+ | 导入本地 CSV / Excel 文件为企微在线表格 | 见下方「导入在线表格」 |
37
+ | 读取在线表格基础信息与子表列表 | 见下方「读取在线表格」 |
38
+ | 读取在线表格子表数据 | [references/sheet-ranges-get.md](references/sheet-ranges-get.md) |
39
+ | 修改在线表格指定区域内容 | [references/sheet-contents-update.md](references/sheet-contents-update.md) |
40
+ | 在线表格末尾追加一行数据 | [references/sheet-rows-append.md](references/sheet-rows-append.md) |
41
+ | 添加在线表格子工作表 | [references/sheet-subsheets-add.md](references/sheet-subsheets-add.md) |
42
+ | 删除在线表格子工作表 | [references/sheet-subsheets-delete.md](references/sheet-subsheets-delete.md) |
43
+
44
+ ## 接口详述
45
+
46
+ ### 新建在线表格
47
+
48
+ 从零新建一篇企微在线表格:空白,或带初始数据(二维表格数据)。**本接口不接受任何文件路径参数**——"用本地文件建/导入"走「导入在线表格」。
49
+
50
+ #### 调用方式
51
+
52
+ 使用 wecom-cli 工具按照下面格式调用
53
+
54
+ ```
55
+ wecom-cli sheet create --json '<JSON 参数>'
56
+ ```
57
+
58
+ #### 参数
59
+
60
+ | 字段 | 类型 | 必填 | 默认值 | 语义 |
61
+ |---|---|---|---|---|
62
+ | `doc_name` | string | 是 | — | 表格标题 |
63
+ | `grid_data` | object | 否 | — | 默认子表初始化数据;子结构见下方 |
64
+
65
+ `grid_data` 对象结构:
66
+
67
+ | 子字段 | 类型 | 必填 | 默认值 | 语义 |
68
+ |---|---|---|---|---|
69
+ | `start_row` / `start_column` | int | 否 | `0` | 起始行 / 列号,从 0 起 |
70
+ | `rows` | array | 否 | — | 各行数据;每项 `values` 为单元格数组 |
71
+ | `rows[].values[].cell_value` | object | 否 | — | 单元格值,见下方「cell_value 类型选择」 |
72
+ | `rows[].values[].data_type` | string | 否 | — | 枚举:`TEXT` / `NUMBER` / `LINK` / `FORMULA` |
73
+
74
+ ##### cell_value 类型选择
75
+
76
+ > 硬规则:选择 `cell_value` 形态后,必须同时把同级的 `data_type` 设置为下表对应值。
77
+
78
+ | 形态 | 对应 `data_type` | 结构 | 适用场景 |
79
+ |---|---|---|---|
80
+ | `text` | `TEXT` | `{"text": "<纯文本>"}` | 纯文本内容(如姓名、说明、标签、编号字符串等) |
81
+ | `number` | `NUMBER` | `{"number": 123.45}` | 数值,用于金额、数量、比率等需要参与公式计算或聚合的数据;值为 JSON 数字类型,不加引号 |
82
+ | `formula` | `FORMULA` | `{"formula": "=SUM(A1,A2)"}` | 任何以 `=` 开头的公式,包括 `=SUM(...)`、`=A1+B1`、`=IF(...)`、`=VLOOKUP(...)` 等 |
83
+ | `link` | `LINK` | `{"link": {"url": "<URL>", "text": "<显示文本>"}}` | 超链接 |
84
+
85
+ #### 返回
86
+
87
+ | 字段 | 类型 | 说明 |
88
+ |---|---|---|
89
+ | `docid` | string | 新建表格 ID |
90
+ | `url` | string | 表格访问链接 |
91
+
92
+ #### 使用规则
93
+
94
+ - **何时走 import 而非本接口**:用户提到具体文件路径、或明确说"导入 / 用这个文件建",一律走「导入在线表格」。
95
+
96
+ ### 导入在线表格
97
+
98
+ 把本地文件(`.csv` / `.xls` / `.xlsx`)导入为企微在线表格。
99
+
100
+ #### 调用方式
101
+
102
+ 使用 wecom-cli 工具按照下面格式调用
103
+
104
+ ```
105
+ wecom-cli sheet import --json '<JSON 参数>'
106
+ ```
107
+
108
+ #### 参数
109
+
110
+ | 字段 | 类型 | 必填 | 默认值 | 语义 |
111
+ |-------------|---|---|---|---|
112
+ | `file_name` | string | 是 | — | 二进制文件名(含后缀),用于业务判断源文件类型 |
113
+ | `file_path` | string | 是 | — | 源文件的本地绝对路径 |
114
+ | `passwd` | string | 否 | — | Office 文件加密密码(若有) |
115
+
116
+ #### 返回
117
+
118
+ | 字段 | 类型 | 说明 |
119
+ |---|---|---|
120
+ | `docid` | string | 导入完成后的表格 ID |
121
+ | `url` | string | 导入完成后的访问链接 |
122
+ | `task_status` | string | 任务状态枚举,如 `succ` 成功 |
123
+
124
+ ### 读取在线表格
125
+
126
+ 根据 `docid` 读取**在线表格**的基础信息,包括工作表列表、文档名称与访问链接。所有后续 `sheet *` 接口的 `sheet_id` 都从本接口返回的 `sheets[]` 中取。
127
+
128
+ #### 调用方式
129
+
130
+ 使用 wecom-cli 工具按照下面格式调用
131
+
132
+ ```
133
+ wecom-cli sheet get --json '<JSON 参数>'
134
+ ```
135
+
136
+ #### 参数
137
+
138
+ | 字段 | 类型 | 必填 | 默认值 | 语义 |
139
+ |---|---|---|---|---|
140
+ | `docid` | string | 是 | — | 在线表格 ID |
141
+
142
+ #### 返回
143
+
144
+ | 字段 | 类型 | 说明 |
145
+ |---|---|---|
146
+ | `sheets` | array | 工作表列表;每项含 `sheet_id` / `title` / `row_count` / `column_count` / `data_range` 等基础信息 |
147
+ | `url` | string | 文档访问链接 |
148
+ | `name` | string | 文档名称 |
149
+
150
+ #### 使用规则
151
+
152
+ - 拿到 `sheet_id` 后**继续读取子表数据是另一个接口**,命令字符串、参数名、是否分页等都没有在本节出现,**必须**先用 `read` 工具读 `references/sheet-ranges-get.md`,再据此构造命令。
153
+
154
+ ## 跨技能依赖
155
+
156
+ | 依赖技能 | 典型协作场景 | 数据流向 |
157
+ |---|-------------------------------------------------------|---|
158
+ | `wecomcli-doc-manage` | 用户只给表格名称/关键词,需搜索获取 `docid` 后再读写表格;或需要文件级操作(改名、权限等) | `wecomcli-doc-manage` 的「搜索文档」接口 → 返回 `docid` → 本 skill 的读取/修改/追加接口|
159
+
160
+ > 必填参数缺失 / `docid` 多候选 / 新建 vs 导入等歧义场景,用简洁自然语言仅追问缺失或有歧义的信息;有候选项时在文字中列出供用户选择,不得自行猜测。
161
+
162
+ #### `docid` 使用规则
163
+
164
+ `docid`仅cli使用。
165
+ 最终展示用户时,不应展示 `docid`,而是使用文档 URL:
166
+
167
+
168
+ ```
169
+ [doc_name](doc_url)
170
+ ```
171
+
172
+
173
+ `docid` 是文档的唯一标识符,调用任何文档内容操作技能时均需提供。禁止自造 `docid`,按以下优先级获取:
174
+
175
+ 1. 从文档链接提取(优先):用户提供了企微文档 URL 时,直接从 URL 中解析。URL 格式为 `https://doc.weixin.qq.com/<type>/<docid>?scode=...`,取 `/<type>/` 后、`?` 前的部分即为 docid。
176
+ 2. 通过文档搜索获取(备选):用户仅提供文档名称或关键词、未给链接时,先调用 `wecomcli-doc-manage` 搜索文档,从返回结果中取 `docid`。
177
+ 3. 用户直接提供:用户明确给出了完整 `docid`,可直接使用,无需再提取或搜索。
@@ -0,0 +1,49 @@
1
+ # 修改表格内容 — `wecom-cli sheet contents update`
2
+
3
+ 修改**在线表格**指定区域的内容与格式,通过 `grid_data` 指定写入的起始位置与各单元格数据。
4
+
5
+ ## 调用方式
6
+
7
+ 使用 wecom-cli 工具按照下面格式调用
8
+
9
+ ```
10
+ wecom-cli sheet contents update --json '<JSON 参数>'
11
+ ```
12
+
13
+ ## 参数
14
+
15
+ | 字段 | 类型 | 必填 | 默认值 | 语义 |
16
+ |---|---|---|---|---|
17
+ | `docid` | string | 是 | — | 在线表格 ID |
18
+ | `sheet_id` | string | 是 | — | 工作表 ID;通过 `sheet get` 获取 |
19
+ | `grid_data` | object | 是 | — | 写入区域的数据 |
20
+ | `grid_data.start_row` | int | 是 | — | 起始行号,从 0 起 |
21
+ | `grid_data.start_column` | int | 是 | — | 起始列号,从 0 起 |
22
+ | `grid_data.rows` | array | 是 | — | 各行数据 |
23
+
24
+ `grid_data.rows[].values[]` 对象结构:
25
+
26
+ | 子字段 | 类型 | 说明 |
27
+ |---|---|---|
28
+ | `cell_value` | object | 单元格值,见下方「cell_value 类型选择」 |
29
+ | `data_type` | string | 与 `cell_value` 对应的数据类型 |
30
+ | `cell_format` | object | 单元格样式;传空对象 `{}` 表示默认样式 |
31
+
32
+ ### cell_value 类型选择
33
+
34
+ | 形态 | 结构 | 适用场景 |
35
+ |---|---|---|
36
+ | `text` | `{"text": "<纯文本>"}` | 纯文本内容(如姓名、说明、标签、编号字符串等) |
37
+ | `number` | `{"number": 123.45}` | 数值,用于金额、数量、比率等需要参与公式计算或聚合的数据;值为 JSON 数字类型,不加引号 |
38
+ | `formula` | `{"formula": "=SUM(A1,A2)"}` | 任何以 `=` 开头的公式,包括 `=SUM(...)`、`=A1+B1`、`=IF(...)`、`=VLOOKUP(...)` 等 |
39
+ | `link` | `{"link": {"url": "<URL>", "text": "<显示文本>"}}` | 超链接 |
40
+
41
+ ## 返回
42
+
43
+ | 字段 | 类型 | 说明 |
44
+ |---|---|---|
45
+ | `grid_data` | object | 写入的数据,结构与入参 `grid_data` 一致 |
46
+
47
+ ## 使用规则
48
+
49
+ - **格式与已有内容对齐**:向已有内容的表格追加数据时,新行的样式应尽量与现有表格保持一致,避免出现字体、字号、对齐、边框、底色等风格突兀的行。
@@ -0,0 +1,47 @@
1
+ # 读取子表数据 — `wecom-cli sheet ranges get`
2
+
3
+ 根据 `docid`、`sheet_id` 读取**在线表格**指定子表的全部数据。可通过 `mode` 参数选择返回结构化的表格数据(含格式信息),或返回 CSV(内容或文件路径)。
4
+
5
+ ## 调用方式
6
+
7
+ 使用 wecom-cli 工具按照下面格式调用
8
+
9
+ ```
10
+ wecom-cli sheet ranges get --json '<JSON 参数>'
11
+ ```
12
+
13
+ ## 参数
14
+
15
+ | 字段 | 类型 | 必填 | 默认值 | 语义 |
16
+ |---|---|---|---|---|
17
+ | `docid` | string | 是 | — | 在线表格 ID |
18
+ | `sheet_id` | string | 是 | — | 工作表 ID;通过 `sheet get` 获取 |
19
+ | `mode` | string | 否 | `"default"` | 返回格式选择:`"default"` 返回结构化 `grid_data`(含单元格格式);填 `"csv"` 返回 CSV(内容或文件路径) |
20
+ | `range` | string | 条件必填 | — | 当 `mode="default"` 时**必填**,表示要读取的区域,形如 `"A1:A100"`;取值可从 `sheet get` 返回的 `sheets[].data_range` 拿到。`mode="csv"` 时忽略此字段 |
21
+
22
+ ### `mode` 如何选择
23
+
24
+ 默认一律使用 `"default"`,包括普通的读取、查看、展示数据等场景。此时必须同时传 `range`,返回 `grid_data`(含单元格值、格式、数据类型等完整信息)。
25
+ 仅当用户明确表达需要对数据做统计、计算、聚合分析(例如"求和/平均/分组统计/透视/跑数据分析"等)时,才填 `"csv"`,便于直接把数据交给计算流程。
26
+
27
+ ## 返回
28
+
29
+ ### `mode` 为 `"default"`(默认)
30
+
31
+ | 字段 | 类型 | 说明 |
32
+ |---|---|---|
33
+ | `grid_data` | object | 结构化表格数据,包含每个单元格的值(`cell_value`)、格式(`cell_format`,如字体、字号、颜色、对齐方式)和数据类型(`data_type`) |
34
+
35
+ ### `mode` 为 `"csv"`
36
+
37
+ 回包可能是以下两种形式之一(取决于数据大小):
38
+
39
+ | 字段 | 类型 | 说明 |
40
+ |---|---|---|
41
+ | `content` | string | CSV 内容(直接返回) |
42
+ | `file_path` | string | CSV 文件落盘后的绝对路径 |
43
+
44
+ ## 使用规则
45
+
46
+ - `mode="csv"` 且返回 `file_path` 时:必须再用 `read` 工具读取该文件内容,才能展示给用户或继续做分析。
47
+ - `mode="csv"` 且返回 `content` 时:可直接消费,无需再次读取文件。
@@ -0,0 +1,47 @@
1
+ # 追加一行数据 — `wecom-cli sheet rows append`
2
+
3
+ 向**在线表格**的指定子工作表末尾自动追加一行数据,无需指定行号——数据将写到最末一行之后。
4
+
5
+ ## 调用方式
6
+
7
+ 使用 wecom-cli 工具按照下面格式调用
8
+
9
+ ```
10
+ wecom-cli sheet rows append --json '<JSON 参数>'
11
+ ```
12
+
13
+ ## 参数
14
+
15
+ | 字段 | 类型 | 必填 | 默认值 | 语义 |
16
+ |---|---|---|---|---|
17
+ | `docid` | string | 是 | — | 在线表格 ID |
18
+ | `sheet_id` | string | 是 | — | 工作表 ID;通过 `sheet get` 获取 |
19
+ | `row` | object | 是 | — | 追加的一行数据 |
20
+ | `row.values` | array | 是 | — | 单元格数组,按列顺序排列 |
21
+
22
+ `row.values[]` 对象结构:
23
+
24
+ | 子字段 | 类型 | 说明 |
25
+ |---|---|---|
26
+ | `cell_value` | object | 单元格值,见下方「cell_value 类型选择」|
27
+ | `cell_format` | object | 单元格样式;传空对象 `{}` 表示默认样式 |
28
+
29
+ ### cell_value 类型选择
30
+
31
+ | 形态 | 结构 | 适用场景 |
32
+ |---|---|---|
33
+ | `text` | `{"text": "<纯文本>"}` | 纯文本内容(如姓名、说明、标签、编号字符串等) |
34
+ | `number` | `{"number": 123.45}` | 数值,用于金额、数量、比率等需要参与公式计算或聚合的数据;值为 JSON 数字类型,不加引号 |
35
+ | `formula` | `{"formula": "=SUM(A1,A2)"}` | 任何以 `=` 开头的公式,包括 `=SUM(...)`、`=A1+B1`、`=IF(...)`、`=VLOOKUP(...)` 等 |
36
+ | `link` | `{"link": {"url": "<URL>", "text": "<显示文本>"}}` | 超链接 |
37
+
38
+ ## 返回
39
+
40
+ | 字段 | 类型 | 说明 |
41
+ |---|---|---|
42
+ | `row` | object | 写入的行数据,结构与入参 `row` 一致 |
43
+
44
+ ## 使用规则
45
+
46
+ - **逐行写入场景**:本接口会自动定位到子表最末一行之后追加;批量写不同区域请用 `sheet contents update`。
47
+ - **格式与已有内容对齐**:向已有内容的表格追加数据时,新行的样式应尽量与现有表格保持一致,避免出现字体、字号、对齐、边框、底色等风格突兀的行。
@@ -0,0 +1,28 @@
1
+ # 添加子工作表 — `wecom-cli sheet subsheets add`
2
+
3
+ 向**在线表格**添加一个新的子工作表。
4
+
5
+ ## 调用方式
6
+
7
+ 使用 wecom-cli 工具按照下面格式调用
8
+
9
+ ```
10
+ wecom-cli sheet subsheets add --json '<JSON 参数>'
11
+ ```
12
+
13
+ ## 参数
14
+
15
+ | 字段 | 类型 | 必填 | 默认值 | 语义 |
16
+ |---|---|---|---|---|
17
+ | `docid` | string | 是 | — | 在线表格 ID |
18
+ | `sheet` | object | 是 | — | 子表信息 |
19
+ | `sheet.title` | string | 是 | — | 工作表名称 |
20
+ | `sheet.row_count` | int | 否 | — | 表格总行数 |
21
+ | `sheet.column_count` | int | 否 | — | 表格总列数 |
22
+ | `index` | int | 否 | — | 插入位置:`0` 表示插入到最后,`1` 表示插入到第一个位置 |
23
+
24
+ ## 返回
25
+
26
+ | 字段 | 类型 | 说明 |
27
+ |---|---|---|
28
+ | `sheet` | object | 新增的子表信息;含 `sheet_id`(唯一标识)/ `title` / `row_count` / `column_count` / `data_range`(新建时为空) |
@@ -0,0 +1,22 @@
1
+ # 删除子工作表 — `wecom-cli sheet subsheets delete`
2
+
3
+ 根据 `docid` 与 `sheet_id` 删除**在线表格**的指定子工作表。
4
+
5
+ ## 调用方式
6
+
7
+ 使用 wecom-cli 工具按照下面格式调用
8
+
9
+ ```
10
+ wecom-cli sheet subsheets delete --json '<JSON 参数>'
11
+ ```
12
+
13
+ ## 参数
14
+
15
+ | 字段 | 类型 | 必填 | 默认值 | 语义 |
16
+ |---|---|---|---|---|
17
+ | `docid` | string | 是 | — | 在线表格 ID |
18
+ | `sheet_id` | string | 是 | — | 要删除的工作表 ID;通过 `sheet get` 获取 |
19
+
20
+ ## 返回
21
+
22
+ 删除成功返回空对象。