@amaster.ai/pi-lark 0.1.2-beta.53 → 0.1.2-beta.55

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 (105) hide show
  1. package/package.json +2 -2
  2. package/skills/lark-apps/SKILL.md +29 -2
  3. package/skills/lark-base/SKILL.md +4 -3
  4. package/skills/lark-base/references/lark-base-data-query-guide.md +8 -0
  5. package/skills/lark-base/references/lark-base-field-create.md +19 -8
  6. package/skills/lark-base/references/lark-base-field-json.md +3 -2
  7. package/skills/lark-doc/SKILL.md +25 -61
  8. package/skills/lark-doc/references/genres/business-analysis.md +30 -0
  9. package/skills/lark-doc/references/genres/data-report.md +32 -0
  10. package/skills/lark-doc/references/genres/email.md +38 -0
  11. package/skills/lark-doc/references/genres/execution-plan.md +27 -0
  12. package/skills/lark-doc/references/genres/formal-doc.md +37 -0
  13. package/skills/lark-doc/references/genres/meeting-minutes.md +24 -0
  14. package/skills/lark-doc/references/genres/memo-brief.md +25 -0
  15. package/skills/lark-doc/references/genres/official-redhead.md +73 -0
  16. package/skills/lark-doc/references/genres/prd.md +26 -0
  17. package/skills/lark-doc/references/genres/proposal.md +24 -0
  18. package/skills/lark-doc/references/genres/research-report.md +32 -0
  19. package/skills/lark-doc/references/genres/retrospective.md +25 -0
  20. package/skills/lark-doc/references/genres/route-consumer.md +37 -0
  21. package/skills/lark-doc/references/genres/route-creative.md +36 -0
  22. package/skills/lark-doc/references/genres/route-knowledge.md +39 -0
  23. package/skills/lark-doc/references/genres/route-marketing.md +40 -0
  24. package/skills/lark-doc/references/genres/route-media.md +36 -0
  25. package/skills/lark-doc/references/genres/route-opinion.md +38 -0
  26. package/skills/lark-doc/references/genres/route-personal-brand.md +36 -0
  27. package/skills/lark-doc/references/genres/route-platform.md +9 -0
  28. package/skills/lark-doc/references/genres/route-report.md +10 -0
  29. package/skills/lark-doc/references/genres/route-workplace.md +17 -0
  30. package/skills/lark-doc/references/genres/sop-tutorial.md +41 -0
  31. package/skills/lark-doc/references/genres/technical-doc.md +39 -0
  32. package/skills/lark-doc/references/genres/wechat.md +39 -0
  33. package/skills/lark-doc/references/genres/weekly-report.md +24 -0
  34. package/skills/lark-doc/references/genres/white-paper.md +32 -0
  35. package/skills/lark-doc/references/genres/xiaohongshu.md +38 -0
  36. package/skills/lark-doc/references/lark-doc-create-workflow.md +121 -0
  37. package/skills/lark-doc/references/lark-doc-create.md +22 -48
  38. package/skills/lark-doc/references/lark-doc-fetch.md +75 -92
  39. package/skills/lark-doc/references/lark-doc-history.md +3 -1
  40. package/skills/lark-doc/references/lark-doc-md.md +5 -1
  41. package/skills/lark-doc/references/lark-doc-media-download.md +2 -1
  42. package/skills/lark-doc/references/lark-doc-script.md +76 -0
  43. package/skills/lark-doc/references/lark-doc-update.md +70 -222
  44. package/skills/lark-doc/references/lark-doc-whiteboard.md +5 -9
  45. package/skills/lark-doc/references/lark-doc-xml-extended-blocks.md +17 -12
  46. package/skills/lark-doc/references/lark-doc-xml.md +38 -167
  47. package/skills/lark-drive/SKILL.md +1 -1
  48. package/skills/lark-drive/references/lark-drive-download.md +29 -2
  49. package/skills/lark-drive/references/lark-drive-preview.md +21 -2
  50. package/skills/lark-im/SKILL.md +3 -3
  51. package/skills/lark-im/references/lark-im-messages-resources-download.md +19 -25
  52. package/skills/lark-slides/SKILL.md +57 -59
  53. package/skills/lark-slides/references/cli/lark-slides-create.md +176 -0
  54. package/skills/lark-slides/references/cli/lark-slides-history.md +132 -0
  55. package/skills/lark-slides/references/cli/lark-slides-media-upload.md +104 -0
  56. package/skills/lark-slides/references/cli/lark-slides-replace-slide.md +258 -0
  57. package/skills/lark-slides/references/cli/lark-slides-screenshot.md +115 -0
  58. package/skills/lark-slides/references/cli/lark-slides-xml-presentation-slide-get.md +110 -0
  59. package/skills/lark-slides/references/cli/lark-slides-xml-presentation-slide-replace.md +188 -0
  60. package/skills/lark-slides/references/cli/lark-slides-xml-presentations-get.md +157 -0
  61. package/skills/lark-slides/references/iconpark-index.json +5 -41901
  62. package/skills/lark-slides/references/iconpark.md +3 -44
  63. package/skills/lark-slides/references/lark-slides-add-slide.md +3 -90
  64. package/skills/lark-slides/references/lark-slides-create.md +3 -143
  65. package/skills/lark-slides/references/lark-slides-delete-slide.md +3 -63
  66. package/skills/lark-slides/references/lark-slides-edit-workflows.md +3 -144
  67. package/skills/lark-slides/references/lark-slides-history.md +3 -130
  68. package/skills/lark-slides/references/lark-slides-media-upload.md +3 -102
  69. package/skills/lark-slides/references/lark-slides-pptx-template-workflows.md +3 -83
  70. package/skills/lark-slides/references/lark-slides-replace-slide.md +3 -256
  71. package/skills/lark-slides/references/lark-slides-screenshot.md +3 -113
  72. package/skills/lark-slides/references/lark-slides-update-slide.md +146 -0
  73. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +3 -108
  74. package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +3 -186
  75. package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +3 -132
  76. package/skills/lark-slides/references/planning-layer.md +1 -1
  77. package/skills/lark-slides/references/slides_chart_demo.xml +5 -1416
  78. package/skills/lark-slides/references/slides_xml_schema_definition.xml +3 -3512
  79. package/skills/lark-slides/references/troubleshooting.md +3 -60
  80. package/skills/lark-slides/references/validation-checklist.md +3 -154
  81. package/skills/lark-slides/references/workflow/error-handling.md +62 -0
  82. package/skills/lark-slides/references/workflow/slides_editing.md +143 -0
  83. package/skills/lark-slides/references/workflow/template-editing.md +85 -0
  84. package/skills/lark-slides/references/workflow/validation-xml.md +156 -0
  85. package/skills/lark-slides/references/xml/iconpark-index.json +37458 -0
  86. package/skills/lark-slides/references/xml/iconpark.md +46 -0
  87. package/skills/lark-slides/references/xml/lark-slides-add-slide.md +92 -0
  88. package/skills/lark-slides/references/xml/lark-slides-delete-slide.md +65 -0
  89. package/skills/lark-slides/references/xml/slides_chart_demo.xml +1415 -0
  90. package/skills/lark-slides/references/xml/slides_xml_schema_definition.xml +3514 -0
  91. package/skills/lark-slides/references/xml/xml-schema-quick-ref.md +497 -0
  92. package/skills/lark-slides/references/xml-schema-quick-ref.md +3 -497
  93. package/skills/lark-slides/scripts/iconpark_tool.py +1 -1
  94. package/skills/lark-slides/scripts/xml_lint.py +2989 -0
  95. package/skills/lark-slides/scripts/xml_lint_test.py +4720 -0
  96. package/skills/lark-slides/scripts/xml_text_overlap_lint.py +3 -2975
  97. package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +5 -4712
  98. package/skills/lark-wiki/SKILL.md +3 -1
  99. package/skills/lark-wiki/references/lark-wiki-node-copy.md +4 -19
  100. package/skills/lark-doc/references/lark-doc-word-stat.md +0 -93
  101. package/skills/lark-doc/references/style/lark-doc-create-workflow.md +0 -47
  102. package/skills/lark-doc/references/style/lark-doc-style.md +0 -68
  103. package/skills/lark-doc/references/style/lark-doc-update-workflow.md +0 -48
  104. package/skills/lark-doc/scripts/doc_word_stat.py +0 -1243
  105. /package/skills/lark-slides/references/{lark-slides-replace-pages.md → cli/lark-slides-replace-pages.md} +0 -0
@@ -0,0 +1,46 @@
1
+ # IconPark 图标
2
+
3
+ IconPark 图标通过 `<icon>` 写入 slides XML,`iconType` 必须来自本 skill 的离线索引,避免凭记忆拼路径。
4
+
5
+ ## 机器优先流程
6
+
7
+ ```bash
8
+ python3 skills/lark-slides/scripts/iconpark_tool.py search --query "增长趋势" --limit 8
9
+ python3 skills/lark-slides/scripts/iconpark_tool.py resolve --name chart-line
10
+ python3 skills/lark-slides/scripts/iconpark_tool.py list-categories
11
+ ```
12
+
13
+ `search` 返回 JSON 数组,每项包含 `iconType`、`category`、`name`、`tags`、`score`。直接把选中的 `iconType` 写入 XML,并为图标指定可见颜色:
14
+
15
+ ```xml
16
+ <icon iconType="iconpark/Charts/chart-line.svg" topLeftX="80" topLeftY="120" width="32" height="32">
17
+ <fill>
18
+ <fillColor color="rgba(37, 99, 235, 1)"/>
19
+ </fill>
20
+ </icon>
21
+ ```
22
+
23
+ ## 使用规则
24
+
25
+ - 默认先检索:语义图标需求必须先用 `iconpark_tool.py search --limit 8` 或 `--limit 10`,让 agent 从候选里结合版面语义二次判断;不要阅读全文索引,也不要编造不存在的 `iconType`。
26
+ - 图标用于概念提示、步骤、状态、指标、角色和导航;不要用无关装饰图标填充版面。
27
+ - 常用尺寸:行内状态图标 16-24px,卡片标题图标 28-40px,主视觉图标 56-96px。
28
+ - 图标必须填充颜色并和背景有足够对比;深色背景优先放在浅色圆形/方形底上,或使用 `rgba(255, 255, 255, 1)` 作为图标填充色。
29
+ - 查不到合适图标时,从高频示例里选择替代图标(随机选择,不要千篇一律),不留空图标位。
30
+
31
+ ## 高频示例
32
+
33
+ | 语义 | iconType |
34
+ |---|---|
35
+ | 设置/配置 | `iconpark/Base/setting.svg` |
36
+ | 目标 | `iconpark/Base/aiming.svg` |
37
+ | 增长趋势 | `iconpark/Charts/positive-dynamics.svg` |
38
+ | 折线趋势 | `iconpark/Charts/chart-line.svg` |
39
+ | 占比 | `iconpark/Charts/chart-proportion.svg` |
40
+ | 数据看板 | `iconpark/Charts/data-screen.svg` |
41
+ | 成功 | `iconpark/Character/check-one.svg` |
42
+ | 失败/风险 | `iconpark/Character/close-one.svg` |
43
+ | 团队/用户 | `iconpark/Peoples/peoples.svg` |
44
+ | 安全防护 | `iconpark/Safe/protect.svg` |
45
+ | 全球/市场 | `iconpark/Travel/world.svg` |
46
+ | 邮件/联系 | `iconpark/Office/envelope-one.svg` |
@@ -0,0 +1,92 @@
1
+ # slides +add-slide(向已有演示文稿追加/插入单页)
2
+
3
+ 向已有演示文稿添加**一页**。这是两步创建流程的第二步:先 `+create` 建空壳,再逐页 `+add-slide`;也用于给已有 PPT 追加新页。
4
+
5
+ `--presentation` 接受 token / `/slides/` URL / `/wiki/` URL(wiki 自动解析),`--slide` 直接收 XML(支持 `@file` 和 stdin,复杂 XML 走文件可绕开 shell 转义),`<img src="@./local.png">` 占位符自动上传并替换成 `file_token`。
6
+
7
+ **CRITICAL — 提交前必须先跑版式 lint**:把待提交的 `<slide>` XML 存成本地文件,运行 [`scripts/xml_lint.py`](../../scripts/xml_lint.py),`summary.error_count` 必须为 0。
8
+
9
+ ## 命令
10
+
11
+ ```bash
12
+ # 追加到末尾(XML 直接作为参数)
13
+ lark-cli slides +add-slide --as user \
14
+ --presentation "$PID" \
15
+ --slide '<slide xmlns="https://www.larkoffice.com/sml/2.0"><data></data></slide>'
16
+
17
+ # XML 从文件读(推荐:避免 shell 转义和长参数截断)
18
+ lark-cli slides +add-slide --as user \
19
+ --presentation "$PID" \
20
+ --slide @page3.xml
21
+
22
+ # XML 从 stdin 读
23
+ cat page3.xml | lark-cli slides +add-slide --as user --presentation "$PID" --slide -
24
+
25
+ # 插到某页之前
26
+ lark-cli slides +add-slide --as user \
27
+ --presentation "$PID" \
28
+ --slide @cover.xml \
29
+ --before-slide-id "$SID"
30
+
31
+ # wiki 链接(CLI 自动 wiki.spaces.get_node 解析,并校验 obj_type=slides)
32
+ lark-cli slides +add-slide --as user \
33
+ --presentation "https://xxx.feishu.cn/wiki/wikcnXXXXXX" \
34
+ --slide @page3.xml
35
+
36
+ # 预览请求,不实际写入
37
+ lark-cli slides +add-slide --presentation "$PID" --slide @page3.xml --dry-run
38
+ ```
39
+
40
+ ## 参数
41
+
42
+ | 参数 | 必需 | 说明 |
43
+ |------|------|------|
44
+ | `--presentation` | 是 | `xml_presentation_id`、`/slides/` URL 或 `/wiki/` URL |
45
+ | `--slide` | 是 | 一个完整的 `<slide>...</slide>` 文档;支持字面量、`@file`、stdin `-` |
46
+ | `--before-slide-id` | 否 | 插到该 `slide_id` 之前;**不传就是追加到末尾** |
47
+ | `--revision-id` | 否 | 演示文稿版本号,默认 `-1`(最新);传具体版本号做乐观锁 |
48
+ | `--dry-run` | 否 | 打印将要发起的请求(含图片上传步骤),不写入 |
49
+
50
+ `@file` 路径**必须在 CWD 内**(如 `@./plan/page3.xml`);绝对路径和 `../` 会被拒绝并报 `unsafe file path`。
51
+
52
+ ## 本地图片:`@路径` 占位符
53
+
54
+ XML 里写 `<img src="@./chart.png" .../>`,CLI 会:先把每个不重复的本地文件上传到这份演示文稿(`parent_type=slide_file`),再把 `src` 替换成返回的 `file_token`,最后才提交页面。
55
+
56
+ 占位符路径按**执行命令时的 CWD** 解析,跟 `--slide @file` 所在目录无关;`@./assets/x.png` 找的是 `$PWD/assets/x.png`。
57
+
58
+ ```bash
59
+ lark-cli slides +add-slide --as user \
60
+ --presentation "$PID" \
61
+ --slide '<slide xmlns="https://www.larkoffice.com/sml/2.0"><data><img src="@./chart.png" topLeftX="100" topLeftY="100" width="320" height="180"/></data></slide>'
62
+ ```
63
+
64
+ - 文件不存在、不是普通文件、超过 20 MB,都在**调用任何接口之前**报错,不会留下半成品。
65
+ - 去重只在**单次调用内**生效:多页共用同一张图时,逐页循环会把它每页重传一次。这种图先用 [`+media-upload`](../cli/lark-slides-media-upload.md) 传一次,把 `file_token` 写进各页的 `src`。
66
+
67
+ ## 成功输出
68
+
69
+ ```json
70
+ {
71
+ "xml_presentation_id": "slides_example_presentation_id",
72
+ "slide_id": "slide_example_id",
73
+ "revision_id": 42,
74
+ "before_slide_id": "slide_example_target_id",
75
+ "images_uploaded": 1,
76
+ "issues": "[issue=unsupported_attr tag=<strong> attr=style]"
77
+ }
78
+ ```
79
+
80
+ | 字段 | 说明 |
81
+ |------|------|
82
+ | `slide_id` | 新创建页面的唯一标识 |
83
+ | `issues` | 字符串,**只在服务端丢弃过内容时才出现**:页面创建成功,但括号里列出的标签/属性没写进去。出现就必须 `+screenshot` 复核,别当纯警告忽略;干净提交时这个字段不返回 |
84
+
85
+ ## 常见错误
86
+
87
+ | 现象 | 原因 | 解决 |
88
+ |------|------|------|
89
+ | `--slide is not a single complete <slide> document` | 传了 `<presentation>` 整份 XML,或多个 `<slide>` 拼在一起 | 一次只传一页,根元素必须是 `<slide>` |
90
+ | `--slide cannot be empty` | `@file` 指向空文件,或 stdin 没内容 | 检查文件内容 |
91
+ | 3350001 | XML 结构/转义有问题;**或 `--before-slide-id` 不是有效 `slide_id`** | 优先改用 `--slide @file` 绕开 shell 转义;插页失败先 `+xml-get` 回读确认 `slide_id`;再按 [workflow/error-handling.md](../workflow/error-handling.md) 排查 |
92
+ | 1061004 / 403 | 当前身份对这份 PPT 没有编辑权限 | 检查是否拥有 `slides:presentation:update` 或 `slides:presentation:write_only` scope;wiki 链接另需 `wiki:node:read`,`@` 占位符另需 `docs:document.media:upload`;`--as bot` 还要求该 bot 对目标 PPT 有编辑权限 |
@@ -0,0 +1,65 @@
1
+ # slides +delete-slide(按 slide_id 删除单页)
2
+
3
+ 从演示文稿删除**一页**,按 `slide_id` 指定。只改一页里的局部内容用 [`+replace-slide`](../cli/lark-slides-replace-slide.md),不要删了重建。
4
+
5
+ `--presentation` 接受 token / `/slides/` URL / `/wiki/` URL,ID 是普通 flag 而不是 `--params` JSON 串。
6
+
7
+ > `--slide-id` 只接受单个 ID —— 不支持逗号分隔的列表(`+screenshot` 的 `--slide-id` 支持,这个不支持),也不支持按页号删。
8
+
9
+ ## 命令
10
+
11
+ ```bash
12
+ # 直接传 xml_presentation_id
13
+ lark-cli slides +delete-slide --as user \
14
+ --presentation "$PID" \
15
+ --slide-id "$SID"
16
+
17
+ # slides URL / wiki URL 都可以(wiki 会自动解析并校验 obj_type=slides)
18
+ lark-cli slides +delete-slide --as user \
19
+ --presentation "https://xxx.feishu.cn/wiki/wikcnXXXXXX" \
20
+ --slide-id "$SID"
21
+
22
+ # 删之前先确认打到哪份 PPT、哪一页
23
+ lark-cli slides +delete-slide --presentation "$PID" --slide-id "$SID" --dry-run
24
+ ```
25
+
26
+ ## 参数
27
+
28
+ | 参数 | 必需 | 说明 |
29
+ |------|------|------|
30
+ | `--presentation` | 是 | `xml_presentation_id`、`/slides/` URL 或 `/wiki/` URL |
31
+ | `--slide-id` | 是 | 要删除的页面 ID |
32
+ | `--revision-id` | 否 | 演示文稿版本号,默认 `-1`(最新);传具体版本号做乐观锁 |
33
+ | `--dry-run` | 否 | 打印将要发起的请求,不删除 |
34
+
35
+ ## 成功输出
36
+
37
+ ```json
38
+ {
39
+ "xml_presentation_id": "slides_example_presentation_id",
40
+ "slide_id": "slide_example_id",
41
+ "deleted": true,
42
+ "revision_id": 43
43
+ }
44
+ ```
45
+
46
+ ## 怎么拿 `slide_id`
47
+
48
+ `slide_id` 是服务端短 ID,**不能从 XML 里推导**。两个来源:
49
+
50
+ 1. `+create` / `+add-slide` 的返回值里存下来;
51
+ 2. 事后回读:`slides +xml-get --presentation "$PID" --output .lark-slides/plan/<deck>/readback.xml`。
52
+
53
+ 删错页的代价高于多跑一次回读 —— 不确定就先回读 + `+screenshot` 看一眼再删。
54
+
55
+ ## 删错了怎么办
56
+
57
+ 删除在原地不可撤销,但可以走历史版本回滚:`+history-list` 找 `history_version_id` → `+history-revert`(只接受 `history_version_id`,不能传 `revision_id`)→ `+history-revert-status` 轮询。命令用法见 [lark-slides-history.md](../cli/lark-slides-history.md)。
58
+
59
+ ## 常见错误
60
+
61
+ | 现象 | 原因 | 解决 |
62
+ |------|------|------|
63
+ | `--slide-id cannot be empty` | 传了空串或纯空格 | 检查变量有没有取到值 |
64
+ | 3350001 `invalid param` | `slide_id` 写错或该页已被删 | `+xml-get` 回读确认 `slide_id` 还在 |
65
+ | 403 / 权限不足 | 当前身份对这份 PPT 没有编辑权限 | 检查是否拥有 `slides:presentation:update` 或 `slides:presentation:write_only` scope;wiki 链接另需 `wiki:node:read`;`--as bot` 还要求该 bot 对目标 PPT 有编辑权限 |