@lark-apaas/coding-miaoda-sandbox-skills 0.1.0-dev.28c4f05 → 0.1.0-dev.4e64c13

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 (140) hide show
  1. package/miaoda/animation-skill/SKILL.md +348 -0
  2. package/miaoda/authz-cli/SKILL.md +1 -0
  3. package/miaoda/charts-skill/SKILL.md +264 -0
  4. package/miaoda/creative-to-fullstack/SKILL.md +157 -0
  5. package/miaoda/creative-to-fullstack/references/artifact-signals.md +46 -0
  6. package/miaoda/creative-to-fullstack/references/ui-to-function.md +134 -0
  7. package/miaoda/data-analysis/SKILL.md +151 -0
  8. package/miaoda/data-analysis/references/json-output-specification.md +277 -0
  9. package/miaoda/data-analysis/references/post-analysis-guide.md +77 -0
  10. package/miaoda/data-analysis/references/python-analysis-reference.md +272 -0
  11. package/miaoda/data-analysis/references/tmp-file-management-guide.md +100 -0
  12. package/miaoda/debug-investigation/SKILL.md +21 -18
  13. package/miaoda/extract-json-schema/SKILL.md +147 -0
  14. package/miaoda/lark-apps/SKILL.md +37 -0
  15. package/miaoda/lark-apps/references/openapi-key.md +80 -0
  16. package/miaoda/lark-apps-authz/SKILL.md +292 -0
  17. package/miaoda/lark-apps-authz/references/permission-points.md +39 -0
  18. package/miaoda/lark-apps-authz/references/role.md +122 -0
  19. package/miaoda/lark-apps-db/SKILL.md +226 -0
  20. package/miaoda/lark-apps-db/references/full-reference.md +302 -0
  21. package/miaoda/lark-apps-file/SKILL.md +216 -0
  22. package/miaoda/lark-apps-ops/SKILL.md +62 -0
  23. package/miaoda/lark-apps-ops/references/lark-apps-access-scope-get.md +30 -0
  24. package/miaoda/lark-apps-ops/references/lark-apps-access-scope-set.md +40 -0
  25. package/miaoda/lark-apps-ops/references/lark-apps-cache.md +62 -0
  26. package/miaoda/lark-apps-ops/references/lark-apps-env.md +46 -0
  27. package/miaoda/lark-apps-ops/references/lark-apps-local-dev.md +25 -0
  28. package/miaoda/lark-apps-ops/references/lark-apps-member.md +93 -0
  29. package/miaoda/lark-apps-ops/references/lark-apps-observability.md +46 -0
  30. package/miaoda/lark-apps-ops/references/lark-apps-plugin-install.md +36 -0
  31. package/miaoda/lark-apps-ops/references/lark-apps-plugin-list.md +23 -0
  32. package/miaoda/lark-apps-ops/references/lark-apps-plugin-uninstall.md +25 -0
  33. package/miaoda/lark-apps-ops/references/lark-apps-release-create.md +30 -0
  34. package/miaoda/lark-apps-ops/references/lark-apps-release-get.md +28 -0
  35. package/miaoda/lark-apps-ops/references/lark-apps-release-list.md +31 -0
  36. package/miaoda/lark-apps-ops/references/lark-apps-update.md +30 -0
  37. package/miaoda/lark-apps-ops/references/openapi-key.md +80 -0
  38. package/miaoda/miaoda-file/SKILL.md +1 -0
  39. package/miaoda/miaoda-sql/SKILL.md +6 -2
  40. package/miaoda/performance-review/SKILL.md +144 -0
  41. package/miaoda/performance-review/references/business-analyzer.md +139 -0
  42. package/miaoda/performance-review/references/examples.md +107 -0
  43. package/miaoda/reviewer-usage/SKILL.md +111 -0
  44. package/miaoda/testing-guide/SKILL.md +218 -0
  45. package/miaoda-design/lark-apps-comment/SKILL.md +110 -0
  46. package/miaoda-design/lark-apps-ops/SKILL.md +45 -0
  47. package/miaoda-design/lark-apps-ops/references/lark-apps-release-create.md +51 -0
  48. package/miaoda-design/lark-apps-ops/references/lark-apps-release-get.md +28 -0
  49. package/miaoda-design/lark-apps-ops/references/lark-apps-release-list.md +31 -0
  50. package/miaoda-design/lark-apps-ops/references/lark-apps-update.md +33 -0
  51. package/{shared → miaoda-modern}/lark-apps/SKILL.md +5 -5
  52. package/miaoda-modern/lark-apps/references/openapi-key.md +80 -0
  53. package/miaoda-modern/lark-apps-ops/SKILL.md +62 -0
  54. package/miaoda-modern/lark-apps-ops/references/lark-apps-access-scope-get.md +30 -0
  55. package/miaoda-modern/lark-apps-ops/references/lark-apps-access-scope-set.md +40 -0
  56. package/miaoda-modern/lark-apps-ops/references/lark-apps-cache.md +62 -0
  57. package/miaoda-modern/lark-apps-ops/references/lark-apps-env.md +46 -0
  58. package/miaoda-modern/lark-apps-ops/references/lark-apps-local-dev.md +25 -0
  59. package/miaoda-modern/lark-apps-ops/references/lark-apps-member.md +93 -0
  60. package/miaoda-modern/lark-apps-ops/references/lark-apps-observability.md +46 -0
  61. package/miaoda-modern/lark-apps-ops/references/lark-apps-plugin-install.md +36 -0
  62. package/miaoda-modern/lark-apps-ops/references/lark-apps-plugin-list.md +23 -0
  63. package/miaoda-modern/lark-apps-ops/references/lark-apps-plugin-uninstall.md +25 -0
  64. package/miaoda-modern/lark-apps-ops/references/lark-apps-release-create.md +30 -0
  65. package/miaoda-modern/lark-apps-ops/references/lark-apps-release-get.md +28 -0
  66. package/miaoda-modern/lark-apps-ops/references/lark-apps-release-list.md +31 -0
  67. package/miaoda-modern/lark-apps-ops/references/lark-apps-update.md +30 -0
  68. package/{shared/lark-apps → miaoda-modern/lark-apps-ops}/references/openapi-key.md +3 -3
  69. package/miaoda-modern/memory/SKILL.md +86 -0
  70. package/package.json +1 -1
  71. package/shared/lark-cli/SKILL.md +221 -0
  72. package/shared/lark-cli/lark-base/README.md +56 -0
  73. package/shared/lark-cli/lark-base/references/lark-base-commands.md +108 -0
  74. package/shared/lark-cli/lark-calendar/README.md +158 -0
  75. package/shared/lark-cli/lark-calendar/references/lark-calendar-meeting.md +30 -0
  76. package/shared/lark-cli/lark-calendar/references/lark-calendar-room-find.md +108 -0
  77. package/shared/lark-cli/lark-calendar/references/lark-calendar-suggestion.md +120 -0
  78. package/shared/lark-cli/lark-contact/README.md +35 -0
  79. package/shared/lark-cli/lark-contact/references/lark-contact-get-user.md +13 -0
  80. package/shared/lark-cli/lark-contact/references/lark-contact-search-user.md +121 -0
  81. package/shared/lark-cli/lark-doc/README.md +67 -0
  82. package/shared/lark-cli/lark-doc/references/lark-doc-fetch.md +138 -0
  83. package/shared/lark-cli/lark-doc/references/lark-doc-history.md +61 -0
  84. package/shared/lark-cli/lark-drive/README.md +129 -0
  85. package/shared/lark-cli/lark-drive/references/lark-drive-files-list.md +183 -0
  86. package/shared/lark-cli/lark-im/README.md +84 -0
  87. package/shared/lark-cli/lark-im/references/lark-im-chat-list.md +140 -0
  88. package/shared/lark-cli/lark-im/references/lark-im-chat-members-list.md +84 -0
  89. package/shared/lark-cli/lark-im/references/lark-im-chat-search.md +135 -0
  90. package/shared/lark-cli/lark-im/references/lark-im-reactions.md +232 -0
  91. package/shared/lark-cli/lark-minutes/README.md +51 -0
  92. package/shared/lark-cli/lark-minutes/references/lark-minutes-download.md +130 -0
  93. package/shared/lark-cli/lark-sheets/README.md +173 -0
  94. package/shared/lark-cli/lark-sheets/references/lark-sheets-changeset.md +105 -0
  95. package/shared/lark-cli/lark-sheets/references/lark-sheets-chart.md +45 -0
  96. package/shared/lark-cli/lark-sheets/references/lark-sheets-conditional-format.md +42 -0
  97. package/shared/lark-cli/lark-sheets/references/lark-sheets-filter-view.md +49 -0
  98. package/shared/lark-cli/lark-sheets/references/lark-sheets-filter.md +42 -0
  99. package/shared/lark-cli/lark-sheets/references/lark-sheets-float-image.md +43 -0
  100. package/shared/lark-cli/lark-sheets/references/lark-sheets-formula-verify.md +64 -0
  101. package/shared/lark-cli/lark-sheets/references/lark-sheets-history.md +70 -0
  102. package/shared/lark-cli/lark-sheets/references/lark-sheets-pivot-table.md +44 -0
  103. package/shared/lark-cli/lark-sheets/references/lark-sheets-read-data.md +216 -0
  104. package/shared/lark-cli/lark-sheets/references/lark-sheets-search-replace.md +67 -0
  105. package/shared/lark-cli/lark-sheets/references/lark-sheets-sheet-structure.md +52 -0
  106. package/shared/lark-cli/lark-sheets/references/lark-sheets-sparkline.md +47 -0
  107. package/shared/lark-cli/lark-sheets/references/lark-sheets-workbook.md +69 -0
  108. package/shared/lark-cli/lark-sheets/scripts/sheets_df.py +32 -0
  109. package/shared/lark-cli/lark-slides/README.md +86 -0
  110. package/shared/lark-cli/lark-slides/references/lark-slides-history.md +105 -0
  111. package/shared/lark-cli/lark-slides/references/lark-slides-xml-presentation-slide-get.md +108 -0
  112. package/shared/lark-cli/lark-slides/references/lark-slides-xml-presentations-get.md +77 -0
  113. package/shared/lark-cli/lark-task/README.md +93 -0
  114. package/shared/lark-cli/lark-task/references/lark-task-get-my-tasks.md +57 -0
  115. package/shared/lark-cli/lark-task/references/lark-task-get-related-tasks.md +49 -0
  116. package/shared/lark-cli/lark-task/references/lark-task-search.md +36 -0
  117. package/shared/lark-cli/lark-task/references/lark-task-tasklist-search.md +35 -0
  118. package/shared/lark-cli/lark-vc/README.md +40 -0
  119. package/shared/lark-cli/lark-vc/references/lark-vc-recording.md +31 -0
  120. package/shared/lark-cli/lark-whiteboard/README.md +35 -0
  121. package/shared/lark-cli/lark-whiteboard/references/lark-whiteboard-export.md +59 -0
  122. package/shared/lark-cli/lark-wiki/README.md +50 -0
  123. package/shared/lark-cli/lark-wiki/references/lark-wiki-node-get.md +59 -0
  124. package/shared/lark-cli/lark-wiki/references/lark-wiki-node-list.md +95 -0
  125. package/shared/lark-cli/lark-wiki/references/lark-wiki-space-list.md +68 -0
  126. package/miaoda-design/attachment/SKILL.md +0 -58
  127. /package/{shared → miaoda}/memory/SKILL.md +0 -0
  128. /package/{shared → miaoda-modern}/animation-skill/SKILL.md +0 -0
  129. /package/{shared → miaoda-modern}/charts-skill/SKILL.md +0 -0
  130. /package/{shared → miaoda-modern}/data-analysis/SKILL.md +0 -0
  131. /package/{shared → miaoda-modern}/data-analysis/references/json-output-specification.md +0 -0
  132. /package/{shared → miaoda-modern}/data-analysis/references/post-analysis-guide.md +0 -0
  133. /package/{shared → miaoda-modern}/data-analysis/references/python-analysis-reference.md +0 -0
  134. /package/{shared → miaoda-modern}/data-analysis/references/tmp-file-management-guide.md +0 -0
  135. /package/{shared → miaoda-modern}/extract-json-schema/SKILL.md +0 -0
  136. /package/{shared → miaoda-modern}/performance-review/SKILL.md +0 -0
  137. /package/{shared → miaoda-modern}/performance-review/references/business-analyzer.md +0 -0
  138. /package/{shared → miaoda-modern}/performance-review/references/examples.md +0 -0
  139. /package/{shared → miaoda-modern}/reviewer-usage/SKILL.md +0 -0
  140. /package/{shared → miaoda-modern}/testing-guide/SKILL.md +0 -0
@@ -0,0 +1,232 @@
1
+ # im reactions
2
+
3
+ This reference is the annotation target for the read-only IM reaction APIs available in this sandbox:
4
+
5
+ - `im.reactions.list`
6
+ - `im.reactions.batch_query`
7
+
8
+ It focuses on:
9
+
10
+ - What each reaction read method does
11
+ - The request/response shape you need when calling the raw API commands
12
+ - The complete `emoji_type` list used in reaction payloads and filters
13
+
14
+ > **Important:** These raw API commands accept structured input through `--params '<json>'` and `--data '<json>'`. They do not expose typed flags such as `--message-id` or `--reaction-type` directly.
15
+
16
+ ## Command Overview
17
+
18
+ | Method | HTTP | Path | Purpose |
19
+ |---|---|---|---|
20
+ | `im.reactions.list` | `GET` | `/open-apis/im/v1/messages/{message_id}/reactions` | List reaction records on one message |
21
+ | `im.reactions.batch_query` | `POST` | `/open-apis/im/v1/messages/reactions/batch_query` | Query reactions for multiple messages in one request |
22
+
23
+ ## Common Notes
24
+
25
+ - `message_id` is always an IM message ID such as `om_xxx`
26
+ - `reaction_id` is the unique record ID of a reaction
27
+ - `reaction_type.emoji_type` is the enum-like emoji identifier used by the read APIs
28
+ - Reaction APIs return **reaction records**, not only aggregated counts
29
+ - When the operator is a human user, the returned ID type may depend on `user_id_type`
30
+
31
+ ## Inspect Schema
32
+
33
+ ```bash
34
+ lark-cli schema im.reactions
35
+ lark-cli schema im.reactions.list --format pretty
36
+ ```
37
+
38
+ If your local build has already exposed the batch API in `schema`, also check:
39
+
40
+ ```bash
41
+ lark-cli schema im.reactions.batch_query --format pretty
42
+ ```
43
+
44
+ ## list
45
+
46
+ List reaction records on one message.
47
+
48
+ ```bash
49
+ lark-cli im reactions list --params '{"message_id":"om_xxx"}'
50
+ lark-cli im reactions list --params '{"message_id":"om_xxx","reaction_type":"SMILE"}'
51
+ lark-cli im reactions list --params '{"message_id":"om_xxx","page_size":50}'
52
+ lark-cli im reactions list --params '{"message_id":"om_xxx","page_token":"<PAGE_TOKEN>"}'
53
+ lark-cli im reactions list --params '{"message_id":"om_xxx","user_id_type":"open_id"}'
54
+ ```
55
+
56
+ ### Request Parameters (`--params`)
57
+
58
+ | Parameter | Required | Description |
59
+ |---|---|---|
60
+ | `message_id` | Yes | Message ID (`om_xxx`) |
61
+ | `reaction_type` | No | Filter by one emoji type such as `SMILE` or `LAUGH` |
62
+ | `page_size` | No | Number of records per page. Default is 20 |
63
+ | `page_token` | No | Pagination token from the previous page |
64
+ | `user_id_type` | No | Returned operator ID type when `operator_type=user`: `open_id`, `union_id`, or `user_id` |
65
+
66
+ ### Response Shape
67
+
68
+ ```json
69
+ {
70
+ "items": [
71
+ {
72
+ "reaction_id": "ZCaCIjUBVVWSrm5L-3ZTw_xxx",
73
+ "operator": {
74
+ "operator_id": "ou_xxx",
75
+ "operator_type": "user"
76
+ },
77
+ "action_time": "1663054162546",
78
+ "reaction_type": {
79
+ "emoji_type": "SMILE"
80
+ }
81
+ }
82
+ ],
83
+ "has_more": true,
84
+ "page_token": "YhljsPiGfUgnVAg9urvRFd-BvSqRLxxxx"
85
+ }
86
+ ```
87
+
88
+ ### Top-Level Fields
89
+
90
+ | Field | Type | Meaning |
91
+ |---|---|---|
92
+ | `items` | `array<object>` | Reaction records for the current page |
93
+ | `has_more` | `boolean` | Whether more pages are available |
94
+ | `page_token` | `string` | Token for the next page when `has_more=true` |
95
+
96
+ ### `items[]` Fields
97
+
98
+ | Field | Type | Meaning |
99
+ |---|---|---|
100
+ | `reaction_id` | `string` | Unique ID of this reaction record |
101
+ | `operator` | `object` | Identity of the user or app that added the reaction |
102
+ | `action_time` | `string` | Unix timestamp in milliseconds |
103
+ | `reaction_type` | `object` | Reaction payload. The key field is `emoji_type` |
104
+
105
+ ### `operator` Fields
106
+
107
+ | Field | Type | Meaning |
108
+ |---|---|---|
109
+ | `operator.operator_id` | `string` | Operator ID. If `operator_type=user`, the returned ID type follows `user_id_type`; if `operator_type=app`, this is the app ID |
110
+ | `operator.operator_type` | `string` | `user` or `app` |
111
+
112
+ ## batch_query
113
+
114
+ Query reactions for multiple messages in one request.
115
+
116
+ ```bash
117
+ lark-cli im reactions batch_query \
118
+ --params '{"user_id_type":"open_id"}' \
119
+ --data '{
120
+ "queries":[
121
+ {"message_id":"om_xxx"},
122
+ {"message_id":"om_yyy","page_token":"<PAGE_TOKEN>"}
123
+ ],
124
+ "page_size_per_message":10,
125
+ "reaction_type":"LAUGH"
126
+ }'
127
+ ```
128
+
129
+ ### Request
130
+
131
+ #### `--params`
132
+
133
+ | Parameter | Required | Description |
134
+ |---|---|---|
135
+ | `user_id_type` | No | Returned user ID type in operator info: `open_id`, `union_id`, or `user_id` |
136
+
137
+ #### `--data`
138
+
139
+ | Field | Required | Description |
140
+ |---|---|---|
141
+ | `queries` | Yes | Array of target messages |
142
+ | `queries[].message_id` | No | Message ID to query |
143
+ | `queries[].page_token` | No | Continuation token for that message |
144
+ | `page_size_per_message` | No | Max reactions returned per message |
145
+ | `reaction_type` | No | Filter by one emoji type |
146
+
147
+ ### Response
148
+
149
+ The meta definition contains three top-level result groups:
150
+
151
+ | Field | Meaning |
152
+ |---|---|
153
+ | `success_msg_reaction_details` | Per-message reaction detail records |
154
+ | `success_msg_reaction_counts` | Per-message aggregated reaction counts |
155
+ | `fail_msg_reaction_details` | Query failures for individual messages |
156
+
157
+ #### `success_msg_reaction_details`
158
+
159
+ Each `message_reaction_items[]` element includes:
160
+
161
+ - `reaction_id`
162
+ - `operator`
163
+ - `action_time`
164
+ - `emoji_type`
165
+
166
+ #### `success_msg_reaction_counts`
167
+
168
+ Each aggregated count record includes:
169
+
170
+ - `message_id`
171
+ - `reaction_count[].reaction_type`
172
+ - `reaction_count[].count`
173
+
174
+ #### `fail_msg_reaction_details`
175
+
176
+ Each failed message record includes:
177
+
178
+ - `message_id`
179
+ - `fail_reason`
180
+
181
+ Supported `fail_reason` values from meta:
182
+
183
+ - `invalid`
184
+ - `invalid_page_token`
185
+ - `no_permission`
186
+
187
+ ## `emoji_type` Field
188
+
189
+ Reaction emoji identifiers are used in slightly different field names across the read APIs:
190
+
191
+ - `im.reactions.list`: request filter uses `reaction_type`, response uses `reaction_type.emoji_type`
192
+ - `im.reactions.batch_query`: request filter uses top-level `reaction_type`, detail results use `message_reaction_items[].emoji_type`, aggregated results use `reaction_count[].reaction_type`
193
+
194
+ ## Complete `emoji_type` List
195
+
196
+ The following list is synchronized from the official Feishu reaction emoji documentation:
197
+
198
+ - Source page: `https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message-reaction/emojis-introduce`
199
+ - Markdown source: `https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message-reaction/emojis-introduce.md`
200
+
201
+ Current count in the fetched source: `185`.
202
+
203
+ ```text
204
+ OK, THUMBSUP, THANKS, MUSCLE, FINGERHEART, APPLAUSE, FISTBUMP, JIAYI
205
+ DONE, SMILE, BLUSH, LAUGH, SMIRK, LOL, FACEPALM, LOVE
206
+ WINK, PROUD, WITTY, SMART, SCOWL, THINKING, SOB, CRY
207
+ ERROR, NOSEPICK, HAUGHTY, SLAP, SPITBLOOD, TOASTED, GLANCE, DULL
208
+ INNOCENTSMILE, JOYFUL, WOW, TRICK, YEAH, ENOUGH, TEARS, EMBARRASSED
209
+ KISS, SMOOCH, DROOL, OBSESSED, MONEY, TEASE, SHOWOFF, COMFORT
210
+ CLAP, PRAISE, STRIVE, XBLUSH, SILENT, WAVE, WHAT, FROWN
211
+ SHY, DIZZY, LOOKDOWN, CHUCKLE, WAIL, CRAZY, WHIMPER, HUG
212
+ BLUBBER, WRONGED, HUSKY, SHHH, SMUG, ANGRY, HAMMER, SHOCKED
213
+ TERROR, PETRIFIED, SKULL, SWEAT, SPEECHLESS, SLEEP, DROWSY, YAWN
214
+ SICK, PUKE, BETRAYED, HEADSET, EatingFood, MeMeMe, Sigh, Typing
215
+ Lemon, Get, LGTM, OnIt, OneSecond, VRHeadset, YouAreTheBest, SALUTE
216
+ SHAKE, HIGHFIVE, UPPERLEFT, ThumbsDown, SLIGHT, TONGUE, EYESCLOSED, RoarForYou
217
+ CALF, BEAR, BULL, RAINBOWPUKE, ROSE, HEART, PARTY, LIPS
218
+ BEER, CAKE, GIFT, CUCUMBER, Drumstick, Pepper, CANDIEDHAWS, BubbleTea
219
+ Coffee, Yes, No, OKR, CheckMark, CrossMark, MinusOne, Hundred
220
+ AWESOMEN, Pin, Alarm, Loudspeaker, Trophy, Fire, BOMB, Music
221
+ XmasTree, Snowman, XmasHat, FIREWORKS, 2022, REDPACKET, FORTUNE, LUCK
222
+ FIRECRACKER, StickyRiceBalls, HEARTBROKEN, POOP, StatusFlashOfInspiration, 18X, CLEAVER, Soccer
223
+ Basketball, GeneralDoNotDisturb, Status_PrivateMessage, GeneralInMeetingBusy, StatusReading, StatusInFlight, GeneralBusinessTrip, GeneralWorkFromHome
224
+ StatusEnjoyLife, GeneralTravellingCar, StatusBus, GeneralSun, GeneralMoonRest, MoonRabbit, Mooncake, JubilantRabbit
225
+ TV, Movie, Pumpkin, BeamingFace, Delighted, ColdSweat, FullMoonFace, Partying
226
+ GoGoGo, ThanksFace, SaluteFace, Shrug, ClownFace, HappyDragon
227
+ ```
228
+
229
+ ## References
230
+
231
+ - [lark-im](../README.md) - all IM commands
232
+ - Official emoji doc: `https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message-reaction/emojis-introduce`
@@ -0,0 +1,51 @@
1
+ # minutes (v1)
2
+
3
+ ## 身份
4
+
5
+ 所有 minutes 命令默认使用 `--as user`。
6
+
7
+ ## Shortcuts
8
+
9
+ | Shortcut | 说明 |
10
+ |----------|------|
11
+ | [`+download`](references/lark-minutes-download.md) | 下载妙记音视频媒体文件 |
12
+
13
+ - 使用 Shortcut 前,必须先读其对应 reference 文档。
14
+
15
+ ## 意图路由
16
+
17
+ | 用户意图 | 命令 |
18
+ |---------|------|
19
+ | 下载妙记音视频文件、获取媒体下载链接 | `+download` |
20
+ | 妙记基础信息:标题 / 时长 / 封面 / 链接 / 所有者 | `minutes minutes get` |
21
+
22
+ ## 核心概念
23
+
24
+ - **妙记(Minutes)**:来源于飞书视频会议的录制产物或用户上传的音视频文件,通过 `minute_token` 标识。
25
+ - **妙记 Token(minute_token)**:妙记的唯一标识符,可从妙记 URL 末尾提取(如 `https://*.feishu.cn/minutes/obcnxxx` 中的 `obcnxxx`)。如果 URL 中包含额外参数(如 `?xxx`),截取路径最后一段。
26
+
27
+ ## 核心场景
28
+
29
+ ### 查看妙记基础信息
30
+
31
+ 1. 当用户只需要确认某条妙记的标题、封面、时长、所有者、URL 等基础信息时,使用 `minutes minutes get`。
32
+ 2. 从妙记 URL 末尾提取 `minute_token`,再调用 `minutes minutes get`。
33
+ 3. 用户意图不明确时,默认先给基础元信息,帮助确认是否命中目标妙记。
34
+
35
+ ### 下载妙记音视频文件
36
+
37
+ 下载妙记的录音 / 录像媒体文件,或获取有效期 1 天的下载链接(只读操作)。使用前必须先阅读 [references/lark-minutes-download.md](references/lark-minutes-download.md)。
38
+
39
+ ## API Resources
40
+
41
+ 沙箱内本域仅以下原生 API 可用:
42
+
43
+ ```bash
44
+ lark-cli minutes <resource> <method> [flags]
45
+ ```
46
+
47
+ ### minutes
48
+
49
+ - `get` — 获取妙记信息
50
+
51
+ > **权限错误**:如果返回 `[2091005] permission deny`,表示用户没有对应妙记文件的阅读权限,需提示用户联系妙记 owner 申请权限。
@@ -0,0 +1,130 @@
1
+
2
+ # minutes +download
3
+
4
+
5
+ 下载妙记的音视频媒体文件到本地,或获取有效期 1 天的下载链接。只读操作。
6
+
7
+ 本 skill 对应 shortcut:`lark-cli minutes +download`。
8
+
9
+ ## 命令
10
+
11
+ ```bash
12
+ # 下载妙记(默认布局,落到 ./minutes/{minute_token}/<server-filename>)
13
+ lark-cli minutes +download --minute-tokens obcnxxxxxxxxxxxxxxxxxxxx
14
+
15
+ # 指定输出文件(单 token,文件路径)
16
+ lark-cli minutes +download --minute-tokens obcnxxxxxxxxxxxxxxxxxxxx --output ./meeting.mp4
17
+
18
+ # 指定输出目录(单/批量均可,目录路径)
19
+ lark-cli minutes +download --minute-tokens obcnxxxxxxxxxxxxxxxxxxxx --output-dir ./downloads
20
+
21
+ # 仅获取下载链接(有效期 1 天),不下载文件
22
+ lark-cli minutes +download --minute-tokens obcnxxxxxxxxxxxxxxxxxxxx --url-only
23
+
24
+ # 批量下载多个妙记(默认布局,逐个落到 ./minutes/{minute_token}/)
25
+ lark-cli minutes +download --minute-tokens obcnxxxxxxxxxxxxxxxxxxxx,obcnyyyyyyyyyyyyyyyyyyyy
26
+
27
+ # 批量下载到同一指定目录
28
+ lark-cli minutes +download --minute-tokens obcnxxxxxxxxxxxxxxxxxxxx,obcnyyyyyyyyyyyyyyyyyyyy --output-dir ./downloads
29
+
30
+ # 预览 API 调用
31
+ lark-cli minutes +download --minute-tokens obcnxxxxxxxxxxxxxxxxxxxx --dry-run
32
+ ```
33
+
34
+ ## 参数
35
+
36
+ | 参数 | 必填 | 说明 |
37
+ |------|------|------|
38
+ | `--minute-tokens <tokens>` | 是 | 妙记 Token,逗号分隔支持批量(最多 50 个) |
39
+ | `--output <path>` | 否 | 输出文件路径(单 token)。若传入的是已存在目录,等价于 `--output-dir`。与 `--output-dir` 互斥 |
40
+ | `--output-dir <dir>` | 否 | 输出目录(单/批量均可)。与 `--output` 互斥 |
41
+ | `--overwrite` | 否 | 覆盖已存在的输出文件 |
42
+ | `--url-only` | 否 | 仅返回下载链接,不下载文件 |
43
+ | `--dry-run` | 否 | 预览 API 调用,不执行 |
44
+
45
+ > **默认落点**:未指定 `--output` / `--output-dir` 时,文件落到 `./minutes/{minute_token}/<server-filename>`。文件名沿用服务端 Content-Disposition / Content-Type 推断,Agent 可从 `saved_path` 字段读取实际路径。
46
+
47
+ ## 核心约束
48
+
49
+ ### 1. 妙记必须已完成转写
50
+
51
+ 音视频文件仅在妙记转写完成后可下载。如果妙记尚未准备好,API 会返回 `2091003` 错误。
52
+
53
+ ### 2. 下载链接有效期 1 天
54
+
55
+ `--url-only` 返回的链接有效期为 1 天,过期后需重新获取。
56
+
57
+ ### 3. 频率限制
58
+
59
+ API 限流 5 次/秒,批量下载时需注意控制频率。
60
+
61
+ ### 4. 所需权限
62
+
63
+ | 身份 | 所需权限 |
64
+ |------|---------|
65
+ | user | `minutes:minutes.media:export` |
66
+
67
+ ## 输出结果
68
+
69
+ ### 下载模式(默认)
70
+
71
+ 单 token:
72
+
73
+ ```json
74
+ {
75
+ "minute_token": "obcnxxxxxxxxxxxxxxxxxxxx",
76
+ "artifact_type": "recording",
77
+ "saved_path": "/path/to/minutes/obcnxxxxxxxxxxxxxxxxxxxx/访谈一则.m4a",
78
+ "size_bytes": 52428800
79
+ }
80
+ ```
81
+
82
+ 批量:`downloads` 数组,每条与上面结构一致,失败项带 `error` 字段。
83
+
84
+ | 字段 | 说明 |
85
+ |------|------|
86
+ | `minute_token` | 妙记 Token(用于 Agent 索引) |
87
+ | `artifact_type` | 固定为 `"recording"` |
88
+ | `saved_path` | 文件保存的本地路径(绝对路径) |
89
+ | `size_bytes` | 文件大小(字节) |
90
+
91
+ ### URL 模式(--url-only)
92
+
93
+ ```json
94
+ {
95
+ "minute_token": "obcnxxxxxxxxxxxxxxxxxxxx",
96
+ "download_url": "https://..."
97
+ }
98
+ ```
99
+
100
+ | 字段 | 说明 |
101
+ |------|------|
102
+ | `minute_token` | 妙记 Token |
103
+ | `download_url` | 媒体文件下载链接(有效期 1 天) |
104
+
105
+ ## 如何获取 minute_token
106
+
107
+ | 来源 | 获取方式 |
108
+ |------|---------|
109
+ | 妙记 URL | 从 URL 末尾提取,如 `https://sample.feishu.cn/minutes/obcnxxxxxxxxxxxxxxxxxxxx` → `obcnxxxxxxxxxxxxxxxxxxxx` |
110
+ | 妙记元信息查询 | `lark-cli minutes minutes get --params '{"minute_token": "obcn..."}'` |
111
+
112
+ ## 常见错误与排查
113
+
114
+ | 错误现象 | 错误码 | 根本原因 | 解决方案 |
115
+ |---------|--------|---------|---------|
116
+ | 参数无效 | 2091001 | minute_token 格式不正确 | 检查 token 是否完整(24 位) |
117
+ | 资源不存在 | 2091002 | token 不存在 | 确认 minute_token 正确 |
118
+ | 妙记尚未准备好 | 2091003 | 转写未完成 | 等待转写完成后重试 |
119
+ | 资源已删除 | 2091004 | 妙记已被删除 | 确认妙记文件仍然存在 |
120
+ | 权限不足 | 2091005 | 无阅读权限 | 检查是否有该妙记的访问权限 |
121
+
122
+ ## 提示
123
+
124
+ - 音视频文件可能较大,下载无固定超时限制(由用户 Ctrl+C 控制取消)。
125
+ - 单 token 模式下 `--output` 若传入已存在目录(如 `--output ./existing-dir`),等价于 `--output-dir`,文件落入该目录(cp 语义)。
126
+ - 批量模式下 `--output` 不接受已存在的文件路径(会报错),应改用 `--output-dir`。
127
+
128
+ ## 参考
129
+
130
+ - [lark-minutes](../README.md) — 妙记全部命令
@@ -0,0 +1,173 @@
1
+ # sheets
2
+
3
+ ## 术语约定
4
+
5
+ 下列词在本 skill 各文档中可能交替出现,但**指同一对象**;解析用户口语时按此映射,不要当成不同概念:
6
+
7
+ | 标准用语 | 同义 / 口语(均指同一对象) | 说明 |
8
+ | --- | --- | --- |
9
+ | 工作表(sheet) | 子表、tab、标签页 | spreadsheet 内的单张表;`sheet_id` 是其稳定标识 |
10
+ | 电子表格(spreadsheet) | 工作簿、表格 | 顶层容器;由 `--url` 或 `--spreadsheet-token` 定位 |
11
+ | reference_id | id | **表内对象**的稳定标识,即各对象主键 flag 接受的值(见下表) |
12
+
13
+ 各类只读对象命令用各自的主键 flag 过滤定位(命名不统一,按此表对照,不要凭直觉拼):
14
+
15
+ | 对象 | 主键 flag | 对象 | 主键 flag |
16
+ | --- | --- | --- | --- |
17
+ | 工作表 sheet | `--sheet-id` | 条件格式规则 | `--rule-id` |
18
+ | 图表 chart | `--chart-id` | 筛选视图 | `--view-id` |
19
+ | 透视表 pivot | `--pivot-table-id` | 迷你图(按组) | `--group-id` |
20
+ | 浮动图片 | `--float-image-id` | | |
21
+
22
+ ## 场景 → 命令速查(拿不准命令名先查这里,别按直觉拼)
23
+
24
+ 把高频**只读**意图映射到**真实存在**的 shortcut。agent 常从 Excel / Google Sheets / 飞书 OpenAPI 误迁移命令名或 flag,先对照本表,避免一次必然失败的试错。完整 shortcut 见各工具参考。**选定命令后先读"参考"列指向的 reference**:命令名对得上不代表用法对,读取分页 / 定位尤其容易漏掉 reference 里的防错规则。
25
+
26
+ | 你要做的事 | ✅ 正确写法 | 参考 |
27
+ | --- | --- | --- |
28
+ | 读数据(纯值 / CSV) | `+csv-get`(范围用 `--range`) | `lark-sheets-read-data` |
29
+ | 按列类型结构化读出(喂 DataFrame / round-trip) | `+table-get` | `lark-sheets-read-data` |
30
+ | 读值 + 公式 / 样式 / 批注 / 数据验证 | `+cells-get --include value,formula,style,comment,data_validation` | `lark-sheets-read-data` |
31
+ | 看某区域下拉框(数据验证)的选项 | `+dropdown-get`(范围用 `--range`) | `lark-sheets-read-data` |
32
+ | 查找 / 定位文本 | `+cells-search`(关键字用 `--find`) | `lark-sheets-search-replace` |
33
+ | 看子表结构(合并 / 行高列宽 / 冻结 / 隐藏 / 分组) | `+sheet-info` | `lark-sheets-sheet-structure` |
34
+ | 看工作簿 / 子表清单 | `+workbook-info` | `lark-sheets-workbook` |
35
+ | 取当前文档 revision(版本号) | `+revision-get` | `lark-sheets-workbook` |
36
+ | 复核某次(AI)编辑改了什么 / 取两个版本间的变更 | `+changeset-get --start-revision <编辑前版本>`(省略 `--end-revision` 取到最新;版本差 ≤ 20) | `lark-sheets-changeset` |
37
+ | 看历史版本列表 | `+history-list` | `lark-sheets-history` |
38
+ | 查回滚任务的当前状态 | `+history-revert-status --transaction-id <id>` | `lark-sheets-history` |
39
+ | 公式健康自检(扫全表 / 子表的公式错误) | `+formula-verify` | `lark-sheets-formula-verify` |
40
+ | 看已有图表配置 | `+chart-list` | `lark-sheets-chart` |
41
+ | 看条件格式规则 | `+cond-format-list` | `lark-sheets-conditional-format` |
42
+ | 看筛选器配置 | `+filter-list` | `lark-sheets-filter` |
43
+ | 看筛选视图 | `+filter-view-list` | `lark-sheets-filter-view` |
44
+ | 看透视表配置 | `+pivot-list` | `lark-sheets-pivot-table` |
45
+ | 看迷你图 | `+sparkline-list` | `lark-sheets-sparkline` |
46
+ | 看浮动图片 | `+float-image-list` | `lark-sheets-float-image` |
47
+
48
+ > ⚠️ **定位 flag**:`+cells-get` / `+csv-get` / `+dropdown-get` 用 `--range`;**读取附加信息**一律走 `+cells-get --include …`,**没有** `--with-styles` 这类 flag;**看合并单元格**用 `+sheet-info` 的 `merged_cells`,不要在 `+cells-get` 里找 merge flag。
49
+ > ⚠️ **要按名称 / 关键词在云空间里找某个表格文件**(不是读某张已知表的内容):当前沙箱不可用(lark-drive 域仅开放只读查询,不含按名称搜索能力);需用户直接提供表格的 URL / token,再回本 skill 读内容。
50
+
51
+ ## 执行要点(读取 / 陷阱)
52
+
53
+ 端到端只读工作流:了解结构(`+workbook-info`)→ 读数据 → 理解语义 → 按需读对象配置 / 自检公式。
54
+
55
+ ### 读取:按需求选路径(细则见 `lark-sheets-read-data`)
56
+
57
+ | 用户需求 | 读取路径 |
58
+ |---|---|
59
+ | "查一下 / 看看 / 统计 / 汇总"等只读 | `+csv-get` 读到上下文(大表按 `--range` 行窗口分批读) |
60
+ | 需要按列类型结构化读出(喂 DataFrame) | `+table-get` |
61
+ | 需要公式 / 样式 / 批注 / 数据验证 | `+cells-get --include …` |
62
+ | 需要看某区域下拉选项 | `+dropdown-get` |
63
+
64
+ > 读大表先按 `lark-sheets-read-data` 确认真实数据末行、注意分页标志(`has_more` / `truncated`),不要一口气拉全表撑爆上下文。
65
+
66
+ ### 用脚本配合 CLI 时
67
+
68
+ - **只读 stdout**:CLI 数据走 stdout、诊断走 stderr;解析 JSON 别 `2>&1`(警告混入会解析失败),用管道或单独重定向 stdout。
69
+ - **喂 CLI 的 CSV / JSON 用 UTF-8 无 BOM**;临时文件放系统临时目录、勿落项目目录。
70
+ - **命令失败先读 stderr 再调整**,别原样重发。
71
+
72
+ ### 易漏陷阱
73
+
74
+ - **隐藏行列**:`+csv-get` 默认含隐藏行列;设 `--skip-hidden=true` 只看可见,但返回行序号与实际行号不再对应。
75
+ - **跨 sheet 对象**:图表 / 条件格式 / 透视表 / 浮动图片可能分布在多个子表,读取前先 `+workbook-info` 掌握全局。
76
+ - **大数字精度**:15 位以上的身份证 / 参考号做去重 / 比较时禁止用 `+csv-get` 的显示值(会显示成科学计数、误判重复),改用 `+cells-get` 取原始精确值(见 `lark-sheets-read-data`)。
77
+
78
+ ## References
79
+
80
+ 先按操作对象进入对应工具参考查具体 shortcut 与调用细节。所有参考仅覆盖只读命令。
81
+
82
+ | Reference | 描述 |
83
+ | --- | --- |
84
+ | [Lark Sheet Read Data](references/lark-sheets-read-data.md) | 读取飞书表格中的单元格数据(`+csv-get` / `+cells-get` / `+table-get` / `+dropdown-get`)。当用户需要"看看数据"、"分析数据"、"统计/汇总",或需要查看公式、样式、批注、数据验证下拉选项时使用。 |
85
+ | [Lark Sheet Search](references/lark-sheets-search-replace.md) | 在飞书表格中搜索 / 定位文本(`+cells-search`),支持限定范围、大小写匹配、精确匹配、正则表达式。当用户需要"查找"、"搜索"、"定位"某个值时使用。不要用于理解表格结构(应读取数据)、不要把操作动作关键词(如"汇总金额")当作搜索词。 |
86
+ | [Lark Sheet Sheet Structure](references/lark-sheets-sheet-structure.md) | 查看飞书表格的子表结构与布局(`+sheet-info`):行高、列宽、隐藏行列、合并单元格、行列分组、冻结等布局信息。 |
87
+ | [Lark Sheet Workbook](references/lark-sheets-workbook.md) | 查看飞书表格的工作簿结构(`+workbook-info` 子表列表及元数据)与当前 revision(`+revision-get`)。当用户提到"看看这个表格有什么"、"表格结构"、"有哪些 sheet"、"当前版本号"时使用。 |
88
+ | [Lark Sheet Changeset](references/lark-sheets-changeset.md) | 读取两个版本(CS revision)之间的 changeset(原始变更操作清单,`+changeset-get`),用于复核某次编辑——尤其是 AI 编辑——是否真实满足用户诉求。当用户需要"看看这次改了什么"、"核对 AI 改动"、"对比两个版本的变更"时使用。 |
89
+ | [Lark Sheet History](references/lark-sheets-history.md) | 查询飞书表格的历史版本列表(`+history-list`)与回滚任务的异步状态(`+history-revert-status`)。当用户需要查看一张表的编辑历史版本列表、或查询某次回滚的进行中/成功/失败状态时使用。 |
90
+ | [Lark Sheet Formula Verify](references/lark-sheets-formula-verify.md) | 公式健康自检入口(`+formula-verify`)。对指定子表(或整本工作簿)扫描公式与单元格值,聚合所有 Excel 错误(#REF! / #DIV/0! / #VALUE! / #NAME? / #NULL! / #NUM! / #N/A)与编译失败清单,输出统一 JSON。需要核对一张表里公式是否零错误时使用。 |
91
+ | [Lark Sheet Chart](references/lark-sheets-chart.md) | 查看飞书表格中已有图表的配置(`+chart-list`):类型、数据源、样式。 |
92
+ | [Lark Sheet Pivot Table](references/lark-sheets-pivot-table.md) | 查看飞书表格中已有数据透视表的配置(`+pivot-list`):结构、数据源、展开后的占用区域与状态。 |
93
+ | [Lark Sheet Conditional Format](references/lark-sheets-conditional-format.md) | 查看飞书表格中已有条件格式规则的配置(`+cond-format-list`):规则类型、范围、样式。 |
94
+ | [Lark Sheet Filter](references/lark-sheets-filter.md) | 查看飞书表格中已有筛选器(filter)的配置(`+filter-list`):范围、规则、条件。 |
95
+ | [Lark Sheet Filter View](references/lark-sheets-filter-view.md) | 查看飞书表格中已有筛选视图(filter view)的配置(`+filter-view-list`):视图名、范围、规则。 |
96
+ | [Lark Sheet Sparkline](references/lark-sheets-sparkline.md) | 查看飞书表格中已有迷你图组的配置(`+sparkline-list`):类型、数据源、样式。 |
97
+ | [Lark Sheet Float Image](references/lark-sheets-float-image.md) | 查看飞书表格中已有浮动图片的配置(`+float-image-list`):位置、大小、层级。 |
98
+
99
+ ## 公共 flag 速查
100
+
101
+ 各 reference 的每个 shortcut 标题下用一行徽章标注该 shortcut 支持的公共 / 系统 flag,例如:
102
+
103
+ - `_公共四件套 · 系统:--dry-run_` — URL/token + sheet 定位(两组各**必给一个**,详见下方「公共 flag」),加 `--dry-run`
104
+ - `_公共:URL/token(无 sheet 定位) · 系统:--dry-run_` — 只接 URL/token,常见于 `+workbook-info` / `+revision-get` / `+changeset-get` / `+history-list` 等不强制 sheet 定位的 shortcut
105
+
106
+ 徽章里只列名字。type / 必填 / 描述都在本段统一声明:
107
+
108
+ ### 公共 flag(定位资源)
109
+
110
+ **公共四件套** = `--url` / `--spreadsheet-token` / `--sheet-id` / `--sheet-name`,分成两组 XOR,**每组都必须给且只能给一个**(XOR = 二选一必填,不是"可选"):
111
+
112
+ 1. **spreadsheet 定位(必填)**:`--url` 与 `--spreadsheet-token` 二选一,**必须给其中之一**。两个都不给 → 校验报错 `specify at least one of --url or --spreadsheet-token`;两个都给 → 互斥冲突。
113
+ - **`--url` 解析 `/sheets/`、`/spreadsheets/` 与 `/wiki/` 三种链接**(从路径里抽出 token;也可以直接把裸 token 传给 `--spreadsheet-token`)。其它形态的链接不会被解析成表格 token。
114
+ - **`/wiki/` 知识库链接可直接传 `--url`**:会自动定位到链接背后的电子表格;若该链接背后不是电子表格(而是文档 / 多维表格等),则报错。
115
+ 2. **sheet 定位(公共四件套 shortcut 必填)**:`--sheet-id` 与 `--sheet-name` 二选一,**必须给其中之一**。两个都不给 → 校验报错 `specify at least one of --sheet-id or --sheet-name`。
116
+ - ⚠️ **不确定 sheet 名时禁止直接猜 `Sheet1`**:除非用户对话明确说出 sheet 名 / id,或上下文(之前的工具调用 / URL 锚点 `?sheet=xxx`)已经出现过具体值,否则**第一步先调 `+workbook-info --url "..."`**(或 `--spreadsheet-token`)拿 `sheets[].sheet_id` / `sheets[].title` 列表再选。中文环境下子表常叫"数据" / "Sheet"(无数字)/ "工作表 1" / 业务名,猜 `Sheet1` 大概率撞 `sheet not found`。
117
+ - ⚠️ **`--range` 里的 `Sheet1!` 前缀不能替代 sheet 定位**:即使写了 `--range 'Sheet1!A1:B2'`,仍**必须**额外传 `--sheet-id` 或 `--sheet-name`,否则照样报上面的错。
118
+ - ⚠️ **A1 reference 含 `!`**(`--range`)**:整段用单引号包裹**,如 `--range 'Sheet1!A1:B2'`——单引号能挡住 bash 的 history expansion(`!` 被拦成 `event not found`;双引号挡不住;别改用 `set +H`)。sheet 名含特殊字符(`-` / 空格 / 非 ASCII)需在内部按 A1 标准再包一层单引号时,用 `'\''` 转义保持外层单引号。
119
+ - **例外**:徽章标为 `_公共:URL/token(无 sheet 定位)…_` 的 shortcut(如 `+workbook-info` / `+revision-get` / `+changeset-get` / `+history-list` / `+history-revert-status`)**不接受也不需要** sheet 定位,只给一组 spreadsheet 定位即可。`+table-get` 的 `--sheet-id` / `--sheet-name` 可选(省略读全部子表)。
120
+
121
+ | Flag | Type | 必填 | 说明 |
122
+ | --- | --- | --- | --- |
123
+ | `--url` | string | 二选一必填(与 `--spreadsheet-token`) | spreadsheet 或 wiki URL |
124
+ | `--spreadsheet-token` | string | 二选一必填(与 `--url`) | spreadsheet token |
125
+ | `--sheet-id` | string | 二选一必填(与 `--sheet-name`;仅公共四件套 shortcut) | 工作表 reference_id |
126
+ | `--sheet-name` | string | 二选一必填(与 `--sheet-id`;仅公共四件套 shortcut) | 工作表名称 |
127
+
128
+ **统一调用范式**(公共四件套 shortcut 的所有示例都遵循此形状,两组定位缺一不可):
129
+
130
+ ```bash
131
+ lark-cli sheets <shortcut> <workbook 定位> <sheet 定位> <其它 flag>
132
+ # workbook 定位:--url "..." 或 --spreadsheet-token "..." (二选一,必给)
133
+ # sheet 定位: --sheet-id "$SID" 或 --sheet-name "<真实表名>" (二选一,必给;占位符不要原样填)
134
+ # 例:lark-cli sheets +csv-get --url "https://.../sheets/shtXXX" --sheet-name "<真实表名>" --range "A1:F30"
135
+ # 注意:真实表名不要直接填 "Sheet1"——大多数表的子表不叫这个;先 +workbook-info 拿 sheets[].title 再代入。
136
+ ```
137
+
138
+ ### 系统 flag
139
+
140
+ | Flag | Type | 必填 | 说明 |
141
+ | --- | --- | --- | --- |
142
+ | `--dry-run` | bool | 否 | 零副作用:仅打印请求路径与参数模板,不发起调用 |
143
+ | `--yes` | bool | 是(仅 `high-risk-write`) | 二次确认;不带时退出码 10,需重新带 `--yes` 确认高风险写操作 |
144
+
145
+ - **envelope**:所有 shortcut 返回统一外层结构 `{ok, identity, data, ...}`。正文里 `envelope.data` 指业务数据层(如 `+csv-get` 的 `annotated_csv`)。
146
+
147
+ ## API(沙箱内仅以下原生 API 调用可用)
148
+
149
+ 绝大多数只读需求都被上面的 shortcut 覆盖;shortcut 没覆盖到时,**仅**以下原生 `<service> <resource> <method>` 组合在本沙箱内可用,不要再自行拼其它 service/api 组合去试:
150
+
151
+ ### spreadsheets
152
+
153
+ - `get` — 读取电子表格的元数据(等价于 `+workbook-info` 的底层调用)
154
+
155
+ ```bash
156
+ lark-cli sheets spreadsheets get
157
+ ```
158
+
159
+ ### spreadsheet.sheets
160
+
161
+ - `find` — 在电子表格里查找单元格(等价于 `+cells-search` 的底层调用)
162
+
163
+ ```bash
164
+ lark-cli sheets spreadsheet.sheets find
165
+ ```
166
+
167
+ ### spreadsheet.sheet.filters
168
+
169
+ - `get` — 读取某个子表的筛选器信息(等价于 `+filter-list` 的底层调用)
170
+
171
+ ```bash
172
+ lark-cli sheets spreadsheet.sheet.filters get
173
+ ```