sophhub 0.4.19 → 0.4.21

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 (633) hide show
  1. package/README.md +199 -187
  2. package/agents/ai-cs-admin/.config.json +51 -51
  3. package/agents/ai-cs-admin/AGENTS.md +293 -293
  4. package/agents/ai-cs-admin/HEARTBEAT.md +18 -18
  5. package/agents/ai-cs-qa/.config.json +47 -47
  6. package/agents/ai-cs-qa/BOOTSTRAP.md +22 -22
  7. package/agents/ai-cs-qa/scripts/setup_links.sh +39 -39
  8. package/agents/beauty/.config.json +17 -17
  9. package/agents/beauty/AGENTS.md +234 -234
  10. package/agents/beauty/BOOTSTRAP.md +55 -55
  11. package/agents/beauty/HEARTBEAT.md +5 -5
  12. package/agents/beauty/IDENTITY.md +5 -5
  13. package/agents/beauty/MEMORY.md +44 -44
  14. package/agents/beauty/SOUL.md +64 -64
  15. package/agents/beauty/TOOLS.md +160 -160
  16. package/agents/beauty/USER.md +114 -114
  17. package/agents/intern-admin/.config.json +60 -60
  18. package/agents/intern-admin/AGENTS.md +267 -267
  19. package/agents/intern-admin/BOOTSTRAP.md +21 -21
  20. package/agents/intern-admin/HEARTBEAT.md +3 -3
  21. package/agents/intern-admin/IDENTITY.md +6 -6
  22. package/agents/intern-admin/MEMORY.md +21 -21
  23. package/agents/intern-admin/SOUL.md +23 -23
  24. package/agents/intern-admin/TOOLS.md +93 -93
  25. package/agents/intern-admin/USER.md +16 -16
  26. package/agents/intern-admin/scripts/init_workspace.sh +27 -27
  27. package/agents/intern-qa/.config.json +46 -46
  28. package/agents/intern-qa/AGENTS.md +303 -303
  29. package/agents/intern-qa/BOOTSTRAP.md +16 -16
  30. package/agents/intern-qa/HEARTBEAT.md +3 -3
  31. package/agents/intern-qa/IDENTITY.md +6 -6
  32. package/agents/intern-qa/MEMORY.md +22 -22
  33. package/agents/intern-qa/SOUL.md +24 -24
  34. package/agents/intern-qa/TOOLS.md +24 -24
  35. package/agents/intern-qa/USER.md +27 -27
  36. package/agents/intern-qa/scripts/setup_links.sh +54 -54
  37. package/agents/parent-toddler/.config.json +37 -37
  38. package/agents/parent-toddler/AGENTS.md +51 -51
  39. package/agents/parent-toddler/BOOTSTRAP.md +55 -55
  40. package/agents/parent-toddler/HEARTBEAT.md +5 -5
  41. package/agents/parent-toddler/IDENTITY.md +5 -5
  42. package/agents/parent-toddler/MEMORY.md +22 -22
  43. package/agents/parent-toddler/SOUL.md +35 -35
  44. package/agents/parent-toddler/TOOLS.md +31 -31
  45. package/agents/parent-toddler/USER.md +44 -44
  46. package/agents/vip-admin/.config.json +51 -51
  47. package/agents/vip-admin/AGENTS.md +314 -314
  48. package/agents/vip-admin/BOOTSTRAP.md +21 -21
  49. package/agents/vip-admin/HEARTBEAT.md +19 -19
  50. package/agents/vip-admin/IDENTITY.md +6 -6
  51. package/agents/vip-admin/MEMORY.md +30 -30
  52. package/agents/vip-admin/SOUL.md +25 -25
  53. package/agents/vip-admin/TOOLS.md +108 -108
  54. package/agents/vip-admin/USER.md +31 -31
  55. package/agents/vip-qa/.config.json +58 -58
  56. package/agents/vip-qa/AGENTS.md +319 -319
  57. package/agents/vip-qa/BOOTSTRAP.md +73 -73
  58. package/agents/vip-qa/HEARTBEAT.md +23 -23
  59. package/agents/vip-qa/IDENTITY.md +7 -7
  60. package/agents/vip-qa/MEMORY.md +23 -23
  61. package/agents/vip-qa/SOUL.md +34 -34
  62. package/agents/vip-qa/TOOLS.md +41 -41
  63. package/agents/vip-qa/USER.md +16 -16
  64. package/agents/vip-qa/scripts/setup_links.sh +39 -39
  65. package/bin/sophhub.js +25 -25
  66. package/package.json +35 -33
  67. package/skills/agent-install/skill.json +34 -34
  68. package/skills/agent-install/src/SKILL.md +240 -240
  69. package/skills/agent-install/src/pyproject.toml +6 -6
  70. package/skills/agent-install/src/scripts/backup_agent.py +120 -120
  71. package/skills/agent-install/src/scripts/check_installed.py +479 -479
  72. package/skills/agent-install/src/scripts/common.py +568 -568
  73. package/skills/agent-install/src/scripts/copy_agent_files.py +59 -59
  74. package/skills/agent-install/src/scripts/list_agents.py +285 -285
  75. package/skills/agent-install/src/scripts/resolve_install_params.py +90 -90
  76. package/skills/agent-install/src/scripts/update_agent_md.py +76 -76
  77. package/skills/agent-install/src/scripts/update_openclaw.py +193 -193
  78. package/skills/agent-install/src/scripts/verify_download.py +148 -148
  79. package/skills/aippt/skill.json +20 -20
  80. package/skills/aippt/src/SKILL.md +235 -235
  81. package/skills/aippt/src/pyproject.toml +8 -8
  82. package/skills/aippt/src/scripts/auth.py +122 -122
  83. package/skills/aippt/src/scripts/ppt.py +361 -361
  84. package/skills/aippt/src/scripts/provider_docmee.py +299 -299
  85. package/skills/beauty-salon-inventory/skill.json +16 -16
  86. package/skills/beauty-salon-inventory/src/SKILL.md +69 -69
  87. package/skills/beauty-salon-inventory/src/scripts/init_salon_inventory.py +39 -39
  88. package/skills/beauty-salon-inventory/src/scripts/init_salon_inventory.sh +4 -4
  89. package/skills/beauty-salon-inventory/src/scripts/salon_inventory_cli.py +244 -244
  90. package/skills/beauty-salon-marketing/skill.json +10 -10
  91. package/skills/beauty-salon-marketing/src/SKILL.md +36 -36
  92. package/skills/beauty-salon-marketing/src/playbooks/beauty-salon-festival.md +19 -19
  93. package/skills/beauty-salon-marketing/src/playbooks/beauty-salon-segment.md +18 -18
  94. package/skills/beauty-salon-marketing/src/scripts/beauty_marketing_cli.py +99 -99
  95. package/skills/beauty-salon-marketing/src/scripts/member_segment.py +114 -114
  96. package/skills/beauty-salon-member-appointment/skill.json +10 -10
  97. package/skills/beauty-salon-member-appointment/src/SKILL.md +36 -36
  98. package/skills/beauty-salon-member-appointment/src/pyproject.toml +9 -9
  99. package/skills/beauty-salon-member-appointment/src/scripts/run_e2e_smoke.py +160 -160
  100. package/skills/beauty-salon-member-appointment/src/src/member_appt_cli/__init__.py +1 -1
  101. package/skills/beauty-salon-member-appointment/src/src/member_appt_cli/__main__.py +4 -4
  102. package/skills/beauty-salon-member-appointment/src/src/member_appt_cli/cli.py +921 -921
  103. package/skills/beauty-salon-member-appointment/src/src/member_appt_cli/db.py +30 -30
  104. package/skills/beauty-salon-membership/skill.json +20 -20
  105. package/skills/beauty-salon-membership/src/SKILL.md +67 -67
  106. package/skills/beauty-salon-product-service/skill.json +12 -12
  107. package/skills/beauty-salon-product-service/src/SKILL.md +42 -42
  108. package/skills/beauty-salon-product-service/src/pyproject.toml +9 -9
  109. package/skills/beauty-salon-product-service/src/src/product_service_cli/__init__.py +1 -1
  110. package/skills/beauty-salon-product-service/src/src/product_service_cli/__main__.py +4 -4
  111. package/skills/beauty-salon-product-service/src/src/product_service_cli/cli.py +329 -329
  112. package/skills/beauty-salon-product-service/src/src/product_service_cli/db.py +29 -29
  113. package/skills/beauty-salon-staff/skill.json +10 -10
  114. package/skills/beauty-salon-staff/src/SKILL.md +37 -37
  115. package/skills/beauty-salon-staff/src/pyproject.toml +9 -9
  116. package/skills/beauty-salon-staff/src/src/staff_cli/__init__.py +1 -1
  117. package/skills/beauty-salon-staff/src/src/staff_cli/__main__.py +4 -4
  118. package/skills/beauty-salon-staff/src/src/staff_cli/cli.py +479 -479
  119. package/skills/beauty-salon-staff/src/src/staff_cli/db.py +28 -28
  120. package/skills/beauty-salon-suite/skill.json +13 -13
  121. package/skills/beauty-salon-suite/src/SKILL.md +18 -18
  122. package/skills/beauty-salon-suite/src/beauty_db/__init__.py +2 -2
  123. package/skills/beauty-salon-suite/src/beauty_db/db.py +249 -249
  124. package/skills/beauty-salon-traffic/skill.json +20 -20
  125. package/skills/beauty-salon-traffic/src/SKILL.md +84 -84
  126. package/skills/bing-image-search/skill.json +20 -20
  127. package/skills/bing-image-search/src/SKILL.md +105 -105
  128. package/skills/bot-api-status/skill.json +44 -44
  129. package/skills/bot-api-status/src/SKILL.md +99 -99
  130. package/skills/bot-api-status/src/pyproject.toml +5 -5
  131. package/skills/bot-api-status/src/scripts/secret.py +496 -496
  132. package/skills/bot-secret/skill.json +35 -35
  133. package/skills/bot-secret/src/SKILL.md +51 -51
  134. package/skills/bot-secret/src/pyproject.toml +5 -5
  135. package/skills/bot-secret/src/scripts/secret.py +120 -120
  136. package/skills/cake-flower-holiday-campaign/skill.json +20 -20
  137. package/skills/cake-flower-holiday-campaign/src/SKILL.md +68 -68
  138. package/skills/cake-flower-order-sop/skill.json +20 -20
  139. package/skills/cake-flower-order-sop/src/SKILL.md +65 -65
  140. package/skills/claw-agent-get-send/skill.json +32 -32
  141. package/skills/claw-agent-get-send/src/SKILL.md +43 -43
  142. package/skills/claw-agent-get-send/src/pyproject.toml +5 -5
  143. package/skills/claw-agent-get-send/src/scripts/appia_claw.py +379 -379
  144. package/skills/compact-context/skill.json +20 -20
  145. package/skills/compact-context/src/SKILL.md +133 -133
  146. package/skills/compact-context/src/scripts/check.sh +381 -381
  147. package/skills/compact-context/src/scripts/set-keep-recent.mjs +1337 -1337
  148. package/skills/compact-context/src/scripts/setup.sh +96 -96
  149. package/skills/consensus/skill.json +20 -20
  150. package/skills/consensus/src/SKILL.md +93 -93
  151. package/skills/deepwiki/skill.json +20 -20
  152. package/skills/deepwiki/src/SKILL.md +45 -45
  153. package/skills/deepwiki/src/_meta.json +5 -5
  154. package/skills/deepwiki/src/scripts/deepwiki.js +135 -135
  155. package/skills/didi-ride/skill.json +20 -20
  156. package/skills/didi-ride/src/SKILL.md +309 -309
  157. package/skills/didi-ride/src/_meta.json +5 -5
  158. package/skills/didi-ride/src/assets/PREFERENCE.md +58 -58
  159. package/skills/didi-ride/src/package.json +15 -15
  160. package/skills/didi-ride/src/references/api_references.md +171 -171
  161. package/skills/didi-ride/src/references/error_handling.md +68 -68
  162. package/skills/didi-ride/src/references/setup.md +73 -73
  163. package/skills/didi-ride/src/references/workflow.md +150 -150
  164. package/skills/feishu-bitable/skill.json +20 -20
  165. package/skills/feishu-bitable/src/CHECKLIST.md +149 -149
  166. package/skills/feishu-bitable/src/README.md +177 -177
  167. package/skills/feishu-bitable/src/SKILL.md +113 -113
  168. package/skills/feishu-bitable/src/_meta.json +5 -5
  169. package/skills/feishu-bitable/src/api.js +380 -380
  170. package/skills/feishu-bitable/src/bin/cli.js +283 -283
  171. package/skills/feishu-bitable/src/description.md +142 -142
  172. package/skills/feishu-bitable/src/examples/create-records.json +51 -51
  173. package/skills/feishu-bitable/src/examples/create-table.json +63 -63
  174. package/skills/feishu-bitable/src/package-lock.json +324 -324
  175. package/skills/feishu-bitable/src/package.json +32 -32
  176. package/skills/feishu-bitable/src/publish-config.json +13 -13
  177. package/skills/feishu-bitable/src/test-simple.js +60 -60
  178. package/skills/feishu-bitable/src/utils.js +260 -260
  179. package/skills/feishu-notes-assistant-universal/skill.json +20 -20
  180. package/skills/feishu-notes-assistant-universal/src/README.md +55 -55
  181. package/skills/feishu-notes-assistant-universal/src/SKILL.md +159 -159
  182. package/skills/feishu-notes-assistant-universal/src/scripts/_resolve_lark_cli.py +58 -58
  183. package/skills/feishu-notes-assistant-universal/src/scripts/openclaw_meeting_minutes.py +462 -462
  184. package/skills/feishu-notes-assistant-universal/src/scripts/openclaw_notes_crud.py +547 -547
  185. package/skills/feishu-notes-assistant-universal/src/scripts/openclaw_notes_crud_test.py +181 -181
  186. package/skills/feishu-notes-assistant-universal/src/scripts/run_meeting_minutes.py +80 -80
  187. package/skills/feishu-notes-assistant-universal/src/scripts/run_meeting_minutes.sh +5 -5
  188. package/skills/feishu-notes-assistant-universal/src/scripts/run_note_crud.py +32 -32
  189. package/skills/feishu-notes-assistant-universal/src/scripts/run_note_crud.sh +5 -5
  190. package/skills/flight-booking/skill.json +36 -36
  191. package/skills/flight-booking/src/SKILL.md +288 -288
  192. package/skills/flight-booking/src/scripts/flight_booking.py +1237 -1237
  193. package/skills/flyai/skill.json +20 -20
  194. package/skills/flyai/src/SKILL.md +119 -119
  195. package/skills/flyai/src/references/fliggy-fast-search.md +53 -53
  196. package/skills/flyai/src/references/search-flight.md +89 -89
  197. package/skills/flyai/src/references/search-hotels.md +57 -57
  198. package/skills/flyai/src/references/search-poi.md +48 -48
  199. package/skills/google-maps/skill.json +20 -20
  200. package/skills/google-maps/src/SKILL.md +237 -237
  201. package/skills/google-maps/src/_meta.json +5 -5
  202. package/skills/google-maps/src/lib/map_helper.py +912 -912
  203. package/skills/image-classify/skill.json +42 -42
  204. package/skills/image-classify/src/SKILL.md +368 -368
  205. package/skills/image-classify/src/references/config.json +4 -4
  206. package/skills/image-classify/src/scripts/face_search.py +1276 -1276
  207. package/skills/image-description/skill.json +34 -34
  208. package/skills/image-description/src/SKILL.md +33 -33
  209. package/skills/image-description/src/pyproject.toml +8 -8
  210. package/skills/image-description/src/scripts/ana_image.py +112 -112
  211. package/skills/image-identify-world/skill.json +20 -20
  212. package/skills/image-identify-world/src/SKILL.md +40 -40
  213. package/skills/image-identify-world/src/pyproject.toml +8 -8
  214. package/skills/image-identify-world/src/scripts/identify_world.py +115 -115
  215. package/skills/insurance-policy-review/skill.json +27 -27
  216. package/skills/insurance-policy-review/src/SKILL.md +75 -75
  217. package/skills/insurance-sales-playbook/skill.json +20 -20
  218. package/skills/insurance-sales-playbook/src/SKILL.md +58 -58
  219. package/skills/inventory-management/skill.json +20 -20
  220. package/skills/inventory-management/src/SKILL.md +241 -241
  221. package/skills/inventory-management/src/scripts/inventory.py +1844 -1844
  222. package/skills/large-task-router/skill.json +20 -20
  223. package/skills/large-task-router/src/SKILL.md +79 -79
  224. package/skills/large-task-router/src/templates/plan.md +74 -74
  225. package/skills/lawding-contract-review/skill.json +20 -20
  226. package/skills/lawding-contract-review/src/SKILL.md +284 -284
  227. package/skills/lawding-contract-review/src/references/legal-language-library.md +1385 -1385
  228. package/skills/lawding-contract-review/src/scripts/build_reminders.py +471 -471
  229. package/skills/lawding-contract-review/src/scripts/register_contract_cron.py +457 -457
  230. package/skills/md2pdf-converter/skill.json +20 -20
  231. package/skills/md2pdf-converter/src/SKILL.md +244 -244
  232. package/skills/md2pdf-converter/src/_meta.json +5 -5
  233. package/skills/md2pdf-converter/src/scripts/generate_emoji_mapping.py +74 -74
  234. package/skills/md2pdf-converter/src/scripts/md2pdf-local.sh +291 -291
  235. package/skills/notes-hub-assistant/skill.json +20 -20
  236. package/skills/notes-hub-assistant/src/SKILL.md +233 -233
  237. package/skills/notes-hub-assistant/src/scripts/_resolve_lark_cli.py +48 -48
  238. package/skills/notes-hub-assistant/src/scripts/openclaw_meeting_minutes.py +473 -473
  239. package/skills/notes-hub-assistant/src/scripts/openclaw_notes_crud.py +596 -596
  240. package/skills/notes-hub-assistant/src/scripts/openclaw_wolai_notes_crud.py +364 -364
  241. package/skills/notes-hub-assistant/src/scripts/run_meeting_minutes.py +79 -79
  242. package/skills/notes-hub-assistant/src/scripts/run_note_crud.py +37 -37
  243. package/skills/notes-hub-assistant/src/scripts/run_notionbot.py +36 -36
  244. package/skills/notes-hub-assistant/src/scripts/run_wolai_note_crud.py +27 -27
  245. package/skills/schedule-reminder/skill.json +20 -20
  246. package/skills/schedule-reminder/src/SKILL.md +619 -619
  247. package/skills/schedule-reminder/src/schedule_template.md +68 -68
  248. package/skills/schedule-reminder/src/scripts/append_event.py +204 -204
  249. package/skills/schedule-reminder/src/scripts/create_reminders.sh +163 -163
  250. package/skills/schedule-reminder/src/scripts/daily_activate.sh +175 -175
  251. package/skills/schedule-reminder/src/scripts/parse_schedule.py +704 -704
  252. package/skills/schedule-reminder/src/scripts/setup.sh +242 -242
  253. package/skills/schedule-reminder/src//347/224/250/346/210/267/346/214/207/345/215/227.md +311 -311
  254. package/skills/sessions-analysis/skill.json +34 -34
  255. package/skills/sessions-analysis/src/SKILL.md +81 -81
  256. package/skills/sessions-analysis/src/pyproject.toml +5 -5
  257. package/skills/sessions-analysis/src/scripts/ana_logs.py +205 -205
  258. package/skills/share-skill/skill.json +20 -20
  259. package/skills/share-skill/src/SKILL.md +261 -261
  260. package/skills/share-skill/src/scripts/share_skill_to_friend.py +1031 -1031
  261. package/skills/skill-creator/skill.json +20 -20
  262. package/skills/skill-creator/src/SKILL.md +370 -370
  263. package/skills/skill-creator/src/license.txt +202 -202
  264. package/skills/skill-creator/src/scripts/init_skill.py +378 -378
  265. package/skills/skill-creator/src/scripts/package_skill.py +111 -111
  266. package/skills/skill-creator/src/scripts/quick_validate.py +101 -101
  267. package/skills/skillhub/skill.json +27 -27
  268. package/skills/skillhub/src/SKILL.md +121 -121
  269. package/skills/sophnet-age-appearance/skill.json +20 -20
  270. package/skills/sophnet-age-appearance/src/SKILL.md +83 -83
  271. package/skills/sophnet-age-appearance/src/pyproject.toml +10 -10
  272. package/skills/sophnet-age-appearance/src/scripts/age_appearance.py +395 -395
  273. package/skills/sophnet-age-appearance/src/scripts/age_face_crop.py +313 -313
  274. package/skills/sophnet-bot-client/skill.json +20 -20
  275. package/skills/sophnet-bot-client/src/SKILL.md +255 -255
  276. package/skills/sophnet-bot-client/src/pyproject.toml +13 -13
  277. package/skills/sophnet-bot-client/src/scripts/bot_client_proxy.py +165 -165
  278. package/skills/sophnet-bot-client/src/scripts/bot_client_safe.sh +29 -29
  279. package/skills/sophnet-bot-client/src/scripts/bot_client_setup.py +502 -502
  280. package/skills/sophnet-bot-client/src/tests/test_bot_client_proxy.py +255 -255
  281. package/skills/sophnet-bot-client/src/tests/test_bot_client_setup.py +679 -679
  282. package/skills/sophnet-bot-client/src/uv.lock +8 -8
  283. package/skills/sophnet-customer-management/skill.json +20 -20
  284. package/skills/sophnet-customer-management/src/SKILL.md +270 -270
  285. package/skills/sophnet-customer-management/src/pyproject.toml +15 -15
  286. package/skills/sophnet-customer-management/src/src/customer_mgmt_cli/__init__.py +2 -2
  287. package/skills/sophnet-customer-management/src/src/customer_mgmt_cli/__main__.py +5 -5
  288. package/skills/sophnet-customer-management/src/src/customer_mgmt_cli/cli.py +67 -67
  289. package/skills/sophnet-customer-management/src/src/customer_mgmt_cli/commands/__init__.py +2 -2
  290. package/skills/sophnet-customer-management/src/src/customer_mgmt_cli/commands/customer.py +60 -60
  291. package/skills/sophnet-customer-management/src/src/customer_mgmt_cli/commands/export_file.py +18 -18
  292. package/skills/sophnet-customer-management/src/src/customer_mgmt_cli/commands/import_file.py +15 -15
  293. package/skills/sophnet-customer-management/src/src/customer_mgmt_cli/commands/reminder.py +26 -26
  294. package/skills/sophnet-customer-management/src/src/customer_mgmt_cli/commands/schema.py +28 -28
  295. package/skills/sophnet-customer-management/src/src/customer_mgmt_cli/config.py +54 -54
  296. package/skills/sophnet-customer-management/src/src/customer_mgmt_core/__init__.py +2 -2
  297. package/skills/sophnet-customer-management/src/src/customer_mgmt_core/exporter.py +85 -85
  298. package/skills/sophnet-customer-management/src/src/customer_mgmt_core/models.py +84 -84
  299. package/skills/sophnet-customer-management/src/src/customer_mgmt_core/normalizer.py +144 -144
  300. package/skills/sophnet-customer-management/src/src/customer_mgmt_core/parser.py +241 -241
  301. package/skills/sophnet-customer-management/src/src/customer_mgmt_core/query.py +109 -109
  302. package/skills/sophnet-customer-management/src/src/customer_mgmt_core/reminder.py +121 -121
  303. package/skills/sophnet-customer-management/src/src/customer_mgmt_core/repository.py +397 -397
  304. package/skills/sophnet-customer-management/src/src/customer_mgmt_core/schema.py +106 -106
  305. package/skills/sophnet-customer-management/src/src/customer_mgmt_core/service.py +565 -565
  306. package/skills/sophnet-customer-management/src/uv.lock +48 -48
  307. package/skills/sophnet-customized-marketing/skill.json +28 -28
  308. package/skills/sophnet-customized-marketing/src/SKILL.md +144 -144
  309. package/skills/sophnet-customized-marketing/src/playbooks/campaign-planning.md +187 -187
  310. package/skills/sophnet-customized-marketing/src/playbooks/content-generation.md +124 -124
  311. package/skills/sophnet-customized-marketing/src/playbooks/marketing-calendar.md +59 -59
  312. package/skills/sophnet-customized-marketing/src/playbooks/multi-channel-bundle.md +94 -94
  313. package/skills/sophnet-customized-marketing/src/playbooks/poster-generation.md +182 -182
  314. package/skills/sophnet-customized-marketing/src/playbooks/style-profile-workflow.md +103 -103
  315. package/skills/sophnet-customized-marketing/src/pyproject.toml +8 -8
  316. package/skills/sophnet-customized-marketing/src/references/campaign-mechanics.md +168 -168
  317. package/skills/sophnet-customized-marketing/src/references/content-safety.md +26 -26
  318. package/skills/sophnet-customized-marketing/src/references/marketing-date-checklist.md +99 -99
  319. package/skills/sophnet-customized-marketing/src/references/platform-writing-guidelines.md +88 -88
  320. package/skills/sophnet-customized-marketing/src/references/quality-checklist.md +44 -44
  321. package/skills/sophnet-customized-marketing/src/scripts/generate_poster.py +572 -572
  322. package/skills/sophnet-customized-marketing/src/scripts/style_profile.py +215 -215
  323. package/skills/sophnet-dailynews/skill.json +20 -20
  324. package/skills/sophnet-dailynews/src/SKILL.md +179 -179
  325. package/skills/sophnet-dailynews/src/cache.json +150 -150
  326. package/skills/sophnet-dailynews/src/sources.json +230 -230
  327. package/skills/sophnet-docx/skill.json +20 -20
  328. package/skills/sophnet-docx/src/SKILL.md +463 -463
  329. package/skills/sophnet-docx/src/package-lock.json +208 -208
  330. package/skills/sophnet-docx/src/package.json +16 -16
  331. package/skills/sophnet-docx/src/pyproject.toml +11 -11
  332. package/skills/sophnet-docx/src/scripts/__init__.py +1 -1
  333. package/skills/sophnet-docx/src/scripts/accept_changes.py +135 -135
  334. package/skills/sophnet-docx/src/scripts/comment.py +318 -318
  335. package/skills/sophnet-docx/src/scripts/ensure_uv_env.sh +68 -68
  336. package/skills/sophnet-docx/src/scripts/office/helpers/merge_runs.py +199 -199
  337. package/skills/sophnet-docx/src/scripts/office/helpers/simplify_redlines.py +197 -197
  338. package/skills/sophnet-docx/src/scripts/office/pack.py +159 -159
  339. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -1499
  340. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -146
  341. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -1085
  342. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -11
  343. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -3081
  344. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -23
  345. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -185
  346. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -287
  347. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -1676
  348. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -28
  349. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -144
  350. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -174
  351. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -25
  352. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -18
  353. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -59
  354. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -56
  355. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -195
  356. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -582
  357. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -25
  358. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -4439
  359. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -570
  360. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -509
  361. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -12
  362. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -108
  363. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -96
  364. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -3646
  365. package/skills/sophnet-docx/src/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -116
  366. package/skills/sophnet-docx/src/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -42
  367. package/skills/sophnet-docx/src/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -50
  368. package/skills/sophnet-docx/src/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -49
  369. package/skills/sophnet-docx/src/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -33
  370. package/skills/sophnet-docx/src/scripts/office/schemas/mce/mc.xsd +75 -75
  371. package/skills/sophnet-docx/src/scripts/office/schemas/microsoft/wml-2010.xsd +560 -560
  372. package/skills/sophnet-docx/src/scripts/office/schemas/microsoft/wml-2012.xsd +67 -67
  373. package/skills/sophnet-docx/src/scripts/office/schemas/microsoft/wml-2018.xsd +14 -14
  374. package/skills/sophnet-docx/src/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -20
  375. package/skills/sophnet-docx/src/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -13
  376. package/skills/sophnet-docx/src/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -4
  377. package/skills/sophnet-docx/src/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -8
  378. package/skills/sophnet-docx/src/scripts/office/soffice.py +183 -183
  379. package/skills/sophnet-docx/src/scripts/office/unpack.py +132 -132
  380. package/skills/sophnet-docx/src/scripts/office/validate.py +111 -111
  381. package/skills/sophnet-docx/src/scripts/office/validators/__init__.py +15 -15
  382. package/skills/sophnet-docx/src/scripts/office/validators/base.py +847 -847
  383. package/skills/sophnet-docx/src/scripts/office/validators/docx.py +446 -446
  384. package/skills/sophnet-docx/src/scripts/office/validators/pptx.py +275 -275
  385. package/skills/sophnet-docx/src/scripts/office/validators/redlining.py +247 -247
  386. package/skills/sophnet-docx/src/scripts/templates/comments.xml +3 -3
  387. package/skills/sophnet-docx/src/scripts/templates/commentsExtended.xml +3 -3
  388. package/skills/sophnet-docx/src/scripts/templates/commentsExtensible.xml +3 -3
  389. package/skills/sophnet-docx/src/scripts/templates/commentsIds.xml +3 -3
  390. package/skills/sophnet-docx/src/scripts/templates/people.xml +3 -3
  391. package/skills/sophnet-docx/src/scripts/upload_file.sh +96 -96
  392. package/skills/sophnet-docx/src/uv.lock +320 -320
  393. package/skills/sophnet-face-search/skill.json +20 -20
  394. package/skills/sophnet-face-search/src/SKILL.md +115 -115
  395. package/skills/sophnet-face-search/src/pyproject.toml +11 -11
  396. package/skills/sophnet-face-search/src/scripts/face_search.py +335 -335
  397. package/skills/sophnet-face-search/src/uv.lock +508 -508
  398. package/skills/sophnet-id-photo/skill.json +20 -20
  399. package/skills/sophnet-id-photo/src/SKILL.md +107 -107
  400. package/skills/sophnet-id-photo/src/pyproject.toml +10 -10
  401. package/skills/sophnet-id-photo/src/scripts/id_photo.py +540 -540
  402. package/skills/sophnet-id-photo/src/scripts/id_photo_compliance.py +215 -215
  403. package/skills/sophnet-id-photo/src/scripts/id_photo_face_crop.py +313 -313
  404. package/skills/sophnet-image-edit/skill.json +20 -20
  405. package/skills/sophnet-image-edit/src/SKILL.md +140 -140
  406. package/skills/sophnet-image-edit/src/pyproject.toml +9 -9
  407. package/skills/sophnet-image-edit/src/scripts/edit_and_preview.sh +68 -68
  408. package/skills/sophnet-image-edit/src/scripts/edit_image.py +279 -279
  409. package/skills/sophnet-image-edit/src/uv.lock +234 -234
  410. package/skills/sophnet-image-generate/skill.json +20 -20
  411. package/skills/sophnet-image-generate/src/SKILL.md +62 -62
  412. package/skills/sophnet-image-generate/src/pyproject.toml +9 -9
  413. package/skills/sophnet-image-generate/src/scripts/generate_image.py +156 -156
  414. package/skills/sophnet-image-generate/src/uv.lock +234 -234
  415. package/skills/sophnet-image-ocr/skill.json +20 -20
  416. package/skills/sophnet-image-ocr/src/SKILL.md +167 -167
  417. package/skills/sophnet-image-ocr/src/pyproject.toml +13 -13
  418. package/skills/sophnet-image-ocr/src/scripts/ocr.py +225 -225
  419. package/skills/sophnet-image-ocr/src/uv.lock +234 -234
  420. package/skills/sophnet-infinite-talk/skill.json +20 -20
  421. package/skills/sophnet-infinite-talk/src/SKILL.md +140 -140
  422. package/skills/sophnet-infinite-talk/src/pyproject.toml +9 -9
  423. package/skills/sophnet-infinite-talk/src/scripts/gen.py +172 -172
  424. package/skills/sophnet-oss/skill.json +27 -27
  425. package/skills/sophnet-oss/src/SKILL.md +118 -118
  426. package/skills/sophnet-oss/src/pyproject.toml +8 -8
  427. package/skills/sophnet-oss/src/scripts/upload_file.py +43 -43
  428. package/skills/sophnet-pdf/skill.json +20 -20
  429. package/skills/sophnet-pdf/src/SKILL.md +413 -413
  430. package/skills/sophnet-pdf/src/forms.md +297 -297
  431. package/skills/sophnet-pdf/src/pyproject.toml +14 -14
  432. package/skills/sophnet-pdf/src/reference.md +611 -611
  433. package/skills/sophnet-pdf/src/scripts/check_bounding_boxes.py +65 -65
  434. package/skills/sophnet-pdf/src/scripts/check_fillable_fields.py +11 -11
  435. package/skills/sophnet-pdf/src/scripts/convert_pdf_to_images.py +33 -33
  436. package/skills/sophnet-pdf/src/scripts/create_validation_image.py +37 -37
  437. package/skills/sophnet-pdf/src/scripts/enhance_tutorial.py +557 -557
  438. package/skills/sophnet-pdf/src/scripts/ensure_uv_env.sh +68 -68
  439. package/skills/sophnet-pdf/src/scripts/extract_form_field_info.py +122 -122
  440. package/skills/sophnet-pdf/src/scripts/extract_form_structure.py +115 -115
  441. package/skills/sophnet-pdf/src/scripts/extract_pdf_content.py +34 -34
  442. package/skills/sophnet-pdf/src/scripts/fill_fillable_fields.py +98 -98
  443. package/skills/sophnet-pdf/src/scripts/fill_pdf_form_with_annotations.py +107 -107
  444. package/skills/sophnet-pdf/src/scripts/upload_file.sh +88 -88
  445. package/skills/sophnet-pdf/src/uv.lock +537 -537
  446. package/skills/sophnet-qa-install/skill.json +27 -27
  447. package/skills/sophnet-qa-install/src/SKILL.md +210 -210
  448. package/skills/sophnet-qa-install/src/pyproject.toml +6 -6
  449. package/skills/sophnet-qa-install/src/scripts/backup_md.py +35 -35
  450. package/skills/sophnet-qa-install/src/scripts/check_installed.py +143 -143
  451. package/skills/sophnet-qa-install/src/scripts/update_config.py +142 -142
  452. package/skills/sophnet-qa-install/src/scripts/update_md.py +73 -73
  453. package/skills/sophnet-schedule/skill.json +20 -20
  454. package/skills/sophnet-schedule/src/ARCHITECTURE.md +321 -321
  455. package/skills/sophnet-schedule/src/IMPROVEMENTS.md +145 -145
  456. package/skills/sophnet-schedule/src/SKILL.md +1050 -1050
  457. package/skills/sophnet-schedule/src/_meta.json +6 -6
  458. package/skills/sophnet-schedule/src/api/models.py +245 -245
  459. package/skills/sophnet-schedule/src/apps/add_event.py +237 -237
  460. package/skills/sophnet-schedule/src/apps/check_reminders.py +112 -112
  461. package/skills/sophnet-schedule/src/apps/check_roc.py +246 -246
  462. package/skills/sophnet-schedule/src/apps/generate_daily_plan.py +342 -342
  463. package/skills/sophnet-schedule/src/apps/import_events.py +216 -216
  464. package/skills/sophnet-schedule/src/apps/monitor_calendar_changes.py +140 -140
  465. package/skills/sophnet-schedule/src/apps/register_tasks.py +169 -169
  466. package/skills/sophnet-schedule/src/apps/sync_roc_to_gcal.py +174 -174
  467. package/skills/sophnet-schedule/src/compat.py +66 -66
  468. package/skills/sophnet-schedule/src/config/reminder_rules.yaml +96 -96
  469. package/skills/sophnet-schedule/src/config/roc_events.yaml +44 -44
  470. package/skills/sophnet-schedule/src/config/settings.py +133 -133
  471. package/skills/sophnet-schedule/src/config/task_registry.yaml +92 -92
  472. package/skills/sophnet-schedule/src/docs/FRONTEND_INTEGRATION_GUIDE.md +437 -437
  473. package/skills/sophnet-schedule/src/gcal/client.py +374 -374
  474. package/skills/sophnet-schedule/src/gcal/models.py +91 -91
  475. package/skills/sophnet-schedule/src/requirements.txt +6 -6
  476. package/skills/sophnet-schedule/src/scripts/setup_gcal_token.py +85 -85
  477. package/skills/sophnet-schedule/src/server.py +669 -669
  478. package/skills/sophnet-schedule/src/services/calendar_backend.py +139 -139
  479. package/skills/sophnet-schedule/src/services/conflict_detector.py +96 -96
  480. package/skills/sophnet-schedule/src/services/datetime_utils.py +117 -117
  481. package/skills/sophnet-schedule/src/services/event_classifier.py +100 -100
  482. package/skills/sophnet-schedule/src/services/event_diff.py +160 -160
  483. package/skills/sophnet-schedule/src/services/google_integration.py +500 -500
  484. package/skills/sophnet-schedule/src/services/job_store.py +100 -100
  485. package/skills/sophnet-schedule/src/services/local_event_store.py +266 -266
  486. package/skills/sophnet-schedule/src/services/reminder_planner.py +116 -116
  487. package/skills/sophnet-schedule/src/services/runtime_utils.py +31 -31
  488. package/skills/sophnet-schedule/src/services/table_parser.py +286 -286
  489. package/skills/sophnet-schedule/src/services/task_builder.py +167 -167
  490. package/skills/sophnet-schedule/src/services/time_window.py +72 -72
  491. package/skills/sophnet-sticker-edit/skill.json +27 -27
  492. package/skills/sophnet-sticker-edit/src/SKILL.md +80 -80
  493. package/skills/sophnet-sticker-edit/src/pyproject.toml +9 -9
  494. package/skills/sophnet-sticker-edit/src/scripts/edit_sticker_image.py +403 -403
  495. package/skills/sophnet-stock/skill.json +20 -20
  496. package/skills/sophnet-stock/src/App-Plan.md +442 -442
  497. package/skills/sophnet-stock/src/README.md +214 -214
  498. package/skills/sophnet-stock/src/SKILL.md +236 -236
  499. package/skills/sophnet-stock/src/TODO.md +394 -394
  500. package/skills/sophnet-stock/src/_meta.json +5 -5
  501. package/skills/sophnet-stock/src/docs/ARCHITECTURE.md +408 -408
  502. package/skills/sophnet-stock/src/docs/CONCEPT.md +233 -233
  503. package/skills/sophnet-stock/src/docs/HOT_SCANNER.md +288 -288
  504. package/skills/sophnet-stock/src/docs/README.md +95 -95
  505. package/skills/sophnet-stock/src/docs/USAGE.md +465 -465
  506. package/skills/sophnet-stock/src/scripts/analyze_stock.py +2565 -2565
  507. package/skills/sophnet-stock/src/scripts/dividends.py +365 -365
  508. package/skills/sophnet-stock/src/scripts/hot_scanner.py +582 -582
  509. package/skills/sophnet-stock/src/scripts/portfolio.py +548 -548
  510. package/skills/sophnet-stock/src/scripts/rumor_scanner.py +342 -342
  511. package/skills/sophnet-stock/src/scripts/test_stock_analysis.py +409 -409
  512. package/skills/sophnet-stock/src/scripts/watchlist.py +336 -336
  513. package/skills/sophnet-training-install/skill.json +27 -27
  514. package/skills/sophnet-training-install/src/SKILL.md +211 -211
  515. package/skills/sophnet-training-install/src/pyproject.toml +6 -6
  516. package/skills/sophnet-training-install/src/scripts/backup_md.py +35 -35
  517. package/skills/sophnet-training-install/src/scripts/check_installed.py +144 -144
  518. package/skills/sophnet-training-install/src/scripts/update_config.py +142 -142
  519. package/skills/sophnet-training-install/src/scripts/update_md.py +73 -73
  520. package/skills/sophnet-tts/skill.json +20 -20
  521. package/skills/sophnet-tts/src/SKILL.md +79 -79
  522. package/skills/sophnet-tts/src/pyproject.toml +9 -9
  523. package/skills/sophnet-tts/src/scripts/gen_tts.py +130 -130
  524. package/skills/sophnet-video-generate/skill.json +37 -37
  525. package/skills/sophnet-video-generate/src/SKILL.md +117 -117
  526. package/skills/sophnet-video-generate/src/scripts/gen_video.py +321 -321
  527. package/skills/sophnet-xlsx/skill.json +20 -20
  528. package/skills/sophnet-xlsx/src/SKILL.md +399 -399
  529. package/skills/sophnet-xlsx/src/pyproject.toml +11 -11
  530. package/skills/sophnet-xlsx/src/scripts/ensure_uv_env.sh +68 -68
  531. package/skills/sophnet-xlsx/src/scripts/office/helpers/merge_runs.py +199 -199
  532. package/skills/sophnet-xlsx/src/scripts/office/helpers/simplify_redlines.py +197 -197
  533. package/skills/sophnet-xlsx/src/scripts/office/pack.py +159 -159
  534. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -1499
  535. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -146
  536. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -1085
  537. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -11
  538. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -3081
  539. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -23
  540. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -185
  541. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -287
  542. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -1676
  543. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -28
  544. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -144
  545. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -174
  546. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -25
  547. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -18
  548. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -59
  549. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -56
  550. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -195
  551. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -582
  552. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -25
  553. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -4439
  554. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -570
  555. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -509
  556. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -12
  557. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -108
  558. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -96
  559. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -3646
  560. package/skills/sophnet-xlsx/src/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -116
  561. package/skills/sophnet-xlsx/src/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -42
  562. package/skills/sophnet-xlsx/src/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -50
  563. package/skills/sophnet-xlsx/src/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -49
  564. package/skills/sophnet-xlsx/src/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -33
  565. package/skills/sophnet-xlsx/src/scripts/office/schemas/mce/mc.xsd +75 -75
  566. package/skills/sophnet-xlsx/src/scripts/office/schemas/microsoft/wml-2010.xsd +560 -560
  567. package/skills/sophnet-xlsx/src/scripts/office/schemas/microsoft/wml-2012.xsd +67 -67
  568. package/skills/sophnet-xlsx/src/scripts/office/schemas/microsoft/wml-2018.xsd +14 -14
  569. package/skills/sophnet-xlsx/src/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -20
  570. package/skills/sophnet-xlsx/src/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -13
  571. package/skills/sophnet-xlsx/src/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -4
  572. package/skills/sophnet-xlsx/src/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -8
  573. package/skills/sophnet-xlsx/src/scripts/office/soffice.py +183 -183
  574. package/skills/sophnet-xlsx/src/scripts/office/unpack.py +132 -132
  575. package/skills/sophnet-xlsx/src/scripts/office/validate.py +111 -111
  576. package/skills/sophnet-xlsx/src/scripts/office/validators/__init__.py +15 -15
  577. package/skills/sophnet-xlsx/src/scripts/office/validators/base.py +847 -847
  578. package/skills/sophnet-xlsx/src/scripts/office/validators/docx.py +446 -446
  579. package/skills/sophnet-xlsx/src/scripts/office/validators/pptx.py +275 -275
  580. package/skills/sophnet-xlsx/src/scripts/office/validators/redlining.py +247 -247
  581. package/skills/sophnet-xlsx/src/scripts/recalc.py +184 -184
  582. package/skills/sophnet-xlsx/src/scripts/upload_file.sh +96 -96
  583. package/skills/sophnet-xlsx/src/uv.lock +319 -319
  584. package/skills/ui-ux-pro-max/skill.json +20 -20
  585. package/skills/ui-ux-pro-max/src/SKILL.md +377 -377
  586. package/skills/ui-ux-pro-max/src/data/icons.csv +101 -101
  587. package/skills/ui-ux-pro-max/src/data/react-performance.csv +45 -45
  588. package/skills/ui-ux-pro-max/src/data/stacks/astro.csv +54 -54
  589. package/skills/ui-ux-pro-max/src/data/stacks/jetpack-compose.csv +53 -53
  590. package/skills/ui-ux-pro-max/src/data/stacks/nuxt-ui.csv +51 -51
  591. package/skills/ui-ux-pro-max/src/data/stacks/nuxtjs.csv +59 -59
  592. package/skills/ui-ux-pro-max/src/data/stacks/shadcn.csv +61 -61
  593. package/skills/ui-ux-pro-max/src/data/typography.csv +57 -57
  594. package/skills/ui-ux-pro-max/src/data/ui-reasoning.csv +101 -101
  595. package/skills/ui-ux-pro-max/src/data/web-interface.csv +31 -31
  596. package/skills/ui-ux-pro-max/src/scripts/core.py +253 -253
  597. package/skills/ui-ux-pro-max/src/scripts/design_system.py +1067 -1067
  598. package/skills/video-understand/skill.json +20 -20
  599. package/skills/video-understand/src/SKILL.md +79 -79
  600. package/skills/video-understand/src/scripts/video_understand.py +204 -204
  601. package/skills/weather/skill.json +19 -19
  602. package/skills/weather/src/SKILL.md +112 -112
  603. package/skills/web-scraper/skill.json +20 -20
  604. package/skills/web-scraper/src/SKILL.md +101 -101
  605. package/skills/web-scraper/src/scripts/scrape.py +270 -270
  606. package/skills/website-builder/skill.json +20 -20
  607. package/skills/website-builder/src/SKILL.md +266 -266
  608. package/skills/website-builder/src/scripts/deploy_site.sh +46 -46
  609. package/skills/wechat-article-publisher/skill.json +20 -20
  610. package/skills/wechat-article-publisher/src/SKILL.md +60 -60
  611. package/skills/wechat-article-publisher/src/config.json +6 -6
  612. package/skills/wechat-article-publisher/src/pyproject.toml +12 -12
  613. package/skills/wechat-article-publisher/src/scripts/publish_wechat.py +825 -825
  614. package/skills/xiaohongshu/skill.json +20 -20
  615. package/skills/xiaohongshu/src/SKILL.md +91 -91
  616. package/skills/xiaohongshu/src/_meta.json +5 -5
  617. package/skills/xiaohongshu/src/assets/card.html +216 -216
  618. package/skills/xiaohongshu/src/assets/cover.html +82 -82
  619. package/skills/xiaohongshu/src/assets/example.md +84 -84
  620. package/skills/xiaohongshu/src/assets/styles.css +318 -318
  621. package/skills/xiaohongshu/src/scripts/render_xhs_v2.py +737 -737
  622. package/skills/xiaohongshu/src/scripts/sign_server.py +158 -158
  623. package/skills/xiaohongshu/src/scripts/stealth.min.js +6 -6
  624. package/skills/xiaohongshu/src/scripts/xhs_tool.py +186 -186
  625. package/skills/xiaohongshu/src/workflow.py +185 -185
  626. package/src/commands/agent.js +112 -112
  627. package/src/commands/download.js +101 -101
  628. package/src/commands/info.js +58 -58
  629. package/src/commands/list.js +71 -71
  630. package/src/utils/agents.js +36 -36
  631. package/src/utils/config.js +22 -22
  632. package/src/utils/paths.js +31 -31
  633. package/src/utils/versions.js +57 -57
@@ -1,309 +1,309 @@
1
- ---
2
- name: didi-ride
3
- description: 中国城市出行服务。当用户表达任何交通出行需求时必须使用此技能——包括打车/叫车/网约车、查价格、路线规划(公交/驾车/步行/骑行)、周边搜索、查询订单/司机位置/取消订单。关键词:"打车"、"叫车"、"去[地点]"、"回家"、"上班"、"下班"、"查价格"、"多少钱"、"路线"、"怎么走"、"步行到"、"附近"、"周边"、"司机"、"订单"、"查询订单"。注意:即使用户未明确说"打车",只要涉及从A地到B地、通勤、或交通方式选择,都应触发。不触发场景:开发打车应用、使用其他导航app、订外卖、查公交时刻表、股票/财报查询。
4
- homepage: https://mcp.didichuxing.com
5
- # OpenClaw 配置键名仍为 skills.entries.didi-ride-skill(与 package 注册名一致);skill 目录与 VERSIONS 中名称为 didi-ride
6
- metadata:
7
- openclaw:
8
- emoji: "🚕"
9
- always: true
10
- requires:
11
- bins:
12
- - openclaw
13
- - mcporter
14
- env:
15
- - DIDI_MCP_KEY
16
- primaryEnv: DIDI_MCP_KEY
17
- install:
18
- - id: node
19
- kind: node
20
- package: mcporter
21
- bins:
22
- - mcporter
23
- label: Install mcporter (node)
24
- ---
25
-
26
- # 滴滴出行服务 (DiDi Ride Skill)
27
-
28
- 通过 DiDi MCP Server API 提供打车、查询订单、司机位置、预约叫车、路线规划、周边搜索能力。
29
-
30
- ---
31
-
32
- ## 1. 快速开始(2 分钟)
33
-
34
- ### 1.1 获取 MCP KEY
35
-
36
- **方式一:用「滴滴出行App」扫码(推荐,最快)**
37
-
38
- ![滴滴出行APP扫码获取MCP Key,解锁一键打车](https://s3-yspu-cdn.didistatic.com/mcp-web/qrcode/didi_ride_skill_qrcode.png)
39
- > ⚠️ **Agent 注意**:用户客户端可以渲染 Markdown 图片,**直接输出上方图片语法**。
40
-
41
- 打开滴滴出行 App,扫描二维码,即可快速获取 MCP Key。
42
-
43
- **方式二:访问官网**
44
-
45
- 访问 https://mcp.didichuxing.com/claw 获取您的 MCP Key。
46
-
47
- ### 1.2 配置 Key
48
-
49
- **方式一:对话中输入(推荐)**
50
-
51
- 直接在对话中告诉我您的 MCP Key,我会帮您配置:
52
-
53
- ```
54
- 你: 我的 MCP Key 是 xxxxxx
55
- ```
56
-
57
- **方式二:OpenClaw 配置文件**
58
-
59
- 编辑 `~/.openclaw/openclaw.json`,添加:
60
-
61
- ```json
62
- {
63
- "skills": {
64
- "entries": {
65
- "didi-ride-skill": {
66
- "enabled": true,
67
- "apiKey": "你的MCP_KEY" // apiKey 是 OpenClaw 标准字段名,存储的值就是滴滴平台的 MCP KEY
68
- }
69
- }
70
- }
71
- }
72
- ```
73
-
74
- ### 1.3 开始使用
75
-
76
- 配置完成后,直接对话即可:
77
-
78
- ```
79
- 你: 打车去北京西站
80
- 你: 帮我查一下从国贸到三里屯的路线
81
- 你: 查询订单
82
- ```
83
-
84
- 首次使用时,OpenClaw 会提示安装 mcporter 工具。
85
-
86
- ---
87
-
88
- ## 2. 用户指南
89
-
90
- 本 Skill 支持以下操作:
91
-
92
- - **打车**:直接说"打车去[地点]"、"回家"、"上班"
93
- - **查价**:查一下从 A 到 B 多少钱
94
- - **查询订单**:输入「查询订单」了解当前订单状态(司机位置、行程进度等)
95
- - **司机位置**:司机在哪里、多久到
96
- - **预约出行**:"15分钟后打个车"、"明天9点去机场"
97
- - **路线规划**:驾车/公交/步行/骑行路线
98
- - **取消订单**:取消当前订单
99
-
100
- ---
101
-
102
- ## 3. Agent 执行指令
103
-
104
- 以下内容为 AI 执行参考,用户可忽略。
105
-
106
- ### 3.1 文件地图
107
-
108
- 按需读取以下文件,不要猜测未读过的内容:
109
-
110
- | 文件 | 用途 | 何时读取 |
111
- |------|------|----------|
112
- | `SKILL.md` | 触发、主流程、硬性门禁、查询订单规则、预约出行规则 | 每次触发必读 |
113
- | `references/workflow.md` | 分阶段详细流程与命令范式 | 需要实现细节时读 |
114
- | `references/api_references.md` | MCP 函数签名与参数定义 | 每次调用工具前**必须**核对 |
115
- | `references/error_handling.md` | 常见错误与恢复策略 | ⚠️ 遇到调用失败时(比如 400 错误)必须读取此文件 |
116
- | `references/setup.md` | 安装 mcporter、配置 MCP KEY 的完整步骤 | 用户询问安装/配置问题时读 |
117
- | `assets/PREFERENCE.md` | 地址别名/车型/手机号偏好 | 用户提到别名地址(家、公司、妈妈家等)、车型、手机号,或未明确给出起终点时**必须**读取。别名匹配规则见执行前检查第 6 条 |
118
-
119
- ### 3.2 执行前检查
120
-
121
- 1. **检查 mcporter**:若 `mcporter` 不存在(`command not found`),停止并引导用户阅读 `references/setup.md`。没有 mcporter 就无法调用任何 MCP 工具,后续任何流程都无法执行。
122
-
123
- 2. **检查 Key**:执行 `openclaw config get skills.entries.didi-ride-skill.apiKey`,若输出为空或非 `__OPENCLAW_REDACTED__`,按 `### 3.9 MCP KEY 与配置` 流程引导。Key 缺失时 mcporter 的报错信息具有误导性,不要尝试绕过。
124
-
125
- 3. **mcporter 调用格式**:
126
-
127
- ```bash
128
- MCP_URL=”https://mcp.didichuxing.com/mcp-servers?key=$DIDI_MCP_KEY”
129
- mcporter call “$MCP_URL” <tool> --args '{“key”:”value”}'
130
- ```
131
-
132
- 4. **参数值必须加引号**(字符串格式),否则 API 会报”缺少必填参数”。
133
- 5. **先预估再下单**:`taxi_create_order` 依赖 `taxi_estimate` 返回的 `traceId`,没有 traceId 下单会失败。traceId 有时效性,过期(`-32021` 错误)需重新预估。
134
- 6. **起终点处理**:
135
- - 坐标必须来自 `maps_textsearch`,不要凭空猜测坐标。
136
- - **禁止用对话历史记忆补充起终点**——用户可能已经换了地方。
137
- - **起终点缺失时**按以下顺序补全:
138
- - ① 读 `assets/PREFERENCE.md`,若有地址别名**且地址值非空**,根据场景推断(如早晨→起点"家"、下班→起点"公司")。别名行存在但地址为空 = 未配置。
139
- - ② 若无可用别名,直接询问用户。
140
- - **别名匹配规则(精确优先)**:"家"只匹配别名"家",不匹配"妈妈家";需明确含"妈妈"语义才匹配"妈妈家"。其他自定义别名同理。
141
- - **推断的起终点、或 `maps_textsearch` 返回多个候选结果时,必须在主流程 step 2 向用户确认**;用户明确指定且精确匹配的地点无需确认。
142
-
143
- ### 3.3 用户确认策略
144
-
145
- | 场景 | 规则 |
146
- |------|------|
147
- | 打车(实时/预约) | 推断的地址或搜索返回多个候选时必须确认起终点(见主流程 step 2),用户明确指定且精确匹配时无需确认,确认后再预估下单 |
148
- | 取消订单 | 即使用户说了"取消订单",仍必须先明确询问"确认取消吗?",等用户回复确认后才能调用 `taxi_cancel_order`。用户的取消意图 ≠ 取消确认。 |
149
-
150
- ### 3.4 主流程(最小可执行)
151
-
152
- 1. 地址解析:`maps_textsearch`(必要时结合 `assets/PREFERENCE.md`,按执行前检查第 6 条处理)。
153
- 2. 确认起终点:推断的地址(如别名推断)或 `maps_textsearch` 返回多个候选结果时,必须向用户确认(如"从家出发去首都机场T3航站楼,确认吗?");用户明确指定且精确匹配的地点无需确认。用户纠正则按纠正内容重新解析。
154
- 3. 价格预估:`taxi_estimate`,记录 `traceId`。
155
- 4. 车型决策:
156
- - 用户明确车型:直接用;
157
- - 用户未明确:使用 `assets/PREFERENCE.md` 中的场景车型偏好或默认车型;
158
- - 偏好也未配置:向用户询问车型,不要自行推荐。
159
- - 可用车型以 `taxi_estimate` API 返回为准,获取对应的 `productCategory` 创建订单。
160
- 5. 创建订单:`taxi_create_order`(使用最新 `traceId`)。
161
- 6. 结果输出:给出订单号、起终点、车型、预估价,末尾提示 `💡 发送「查询订单」可了解当前订单状态`。
162
- 7. ⚠️ 自动回查(必做):根据 `### 3.8 发单后自动回查` 中的 cron 指令内容,创建定时任务,参数信息严格遵循章节内要求。此步不可省略。
163
-
164
- ### 3.5 偏好设置更新
165
-
166
- 当用户要求设置/记住/记一下/帮我记/保存地址别名、车型偏好或手机号时,**必须**直接编辑 `assets/PREFERENCE.md` 对应的 markdown 表格行。
167
-
168
- - **地址别名**("我家在…"、"公司在…"、"儿子的学校是…"、"妈妈家在…"):先调用 `maps_textsearch` 解析地址获取坐标,然后更新「地址别名」表——已有别名更新对应行,新别名追加新行。别名由用户定义,不限于"家""公司"。
169
- - **场景车型**("上班用快车"、"下班用特惠和快车"):更新「场景车型偏好」表对应行。品类代码参考表底注释,多车型用英文逗号分隔(如 `1,201`)。
170
- - **叫车手机号**("我的手机号是…"):更新「默认偏好」表中的叫车手机号行。
171
- - **创建订单时**:若 PREFERENCE.md 中配置了叫车手机号,将其作为 `caller_car_phone` 参数传入 `taxi_create_order`。
172
-
173
- ### 3.6 查询订单
174
-
175
- 触发词:`查询订单` / `查询订单 <orderId>`
176
-
177
- 订单号来源(优先级从高到低):
178
- 1. 用户消息中明确给出;
179
- 2. 当前对话上下文中最近一次创建的订单号;
180
- 3. 以上均无时,向用户询问。
181
-
182
- 调用命令:
183
-
184
- ```bash
185
- MCP_URL="https://mcp.didichuxing.com/mcp-servers?key=$DIDI_MCP_KEY"
186
- mcporter call "$MCP_URL" taxi_query_order --args '{"order_id":"ORDER_ID"}'
187
- ```
188
-
189
- #### 3.6.1 状态码与输出规则
190
-
191
- | code | 含义 | 必须输出 |
192
- |------|------|----------|
193
- | 0 | 匹配中 | ⏳ 正在为您匹配司机,请稍候 |
194
- | 1 | 司机已接单 | **必须展示**:司机姓名、车型、车牌、电话;距上车点距离和预计到达时间 |
195
- | 2 | 司机已到达 | 🔔 司机已到达上车点,请前往上车 |
196
- | 4 | 行程进行中 | 🚗 行程已开始 |
197
- | 5 | 订单完成 | ✅ 行程结束,展示费用(如有) |
198
- | 6 | 订单已被系统取消 | ❌ 订单已被系统取消 |
199
- | 7 | 订单已被取消 | ❌ 订单已取消 |
200
- | 3/8-12 | 其他终态 | 显示对应状态描述 |
201
-
202
- ### 3.7 预约出行规则
203
-
204
- 当用户要求在特定时间叫车(如"15分钟后"、"明天9点"):
205
-
206
- - 使用 cron 一次性任务(`--at`),到点由 isolated agent 独立执行完整打车流程;
207
- - ⚠️ `--message` 必须包含完整起终点(带城市前缀)和车型,isolated session 无历史上下文。起点或终点缺失时先从 `assets/PREFERENCE.md` 推断并向用户确认,推断不了则必须先询问用户,**不要自行推断未知信息**;
208
- - 到点后 agent 自行执行:地址解析 → 价格预估(获取最新 traceId)→ 创建订单;
209
- - 如果无法获取当前会话的 metadata,不要创建 cron,改为在回复中提醒用户主动查询;
210
- - 如果定时任务创建失败,必须在回复中提示用户,不能默默失败。
211
-
212
- ```bash
213
- # ⚠️ 替换占位符:
214
- # FROM_NAME → 带城市前缀的起点全称(如"北京市西二旗地铁站")
215
- # TO_NAME → 带城市前缀的终点全称(如"北京市佰嘉城小区")
216
- # VEHICLE → 车型(如"快车")
217
- # TIME → 见下方时间规则
218
- # CHANNEL_NAME → 当前会话 metadata 中的 channel 字段(如 feishu、telegram),CHANNEL_NAME 不需要带引号,例如: feishu ✅, "feishu" ❌。不允许使用 last 作为参数值。
219
- # CHAT_ID → 当前会话 metadata 中的 chat_id 字段
220
-
221
-
222
- openclaw cron add \
223
- --name "didi-ride-skill:$(date +%s)" \
224
- --at "TIME" \
225
- --session isolated \
226
- --message "执行定时打车:起点「FROM_NAME」,终点「TO_NAME」,车型「VEHICLE」。请完整执行打车流程:地址解析 → 价格预估(获取最新 traceId)→ 创建订单。订单创建成功后,输出订单信息并提示用户可发送「查询订单」了解订单状态,同时创建 5 分钟后自动回查 cron(模板见 SKILL.md 第 3.8 节「发单后自动回查」)。" \
227
- --announce \
228
- --channel CHANNEL_NAME \
229
- --to "CHAT_ID"
230
- ```
231
-
232
- #### 3.7.1 TIME 填写规则
233
-
234
- | 场景 | 写法 | 示例 |
235
- |------|------|------|
236
- | 相对时间(X 分钟/小时后) | duration 格式 | `15m` / `2h` / `1h30m` |
237
- | 绝对时间(具体时刻) | 本地时区 ISO 格式 | `$(date -d '明天 09:00' '+%Y-%m-%dT%H:%M:%S+08:00')` |
238
-
239
- - 相对时间(如 `15m`)无需格式化,直接使用
240
- - 绝对时间使用带时区的 ISO 8601 格式:`YYYY-MM-DDTHH:MM:SS+08:00`(北京时间东八区)
241
-
242
- **系统兼容性说明:**
243
- - Linux (GNU date): `date -d '明天 09:00' '+%Y-%m-%dT%H:%M:%S+08:00'`
244
- - macOS (BSD date): `TZ=Asia/Shanghai date -j -v+1d -f '%H:%M' '09:00' '+%Y-%m-%dT%H:%M:%S+08:00'`
245
-
246
- ### 3.8 发单后自动回查
247
-
248
- 发单成功后(实时单或预约单),根据本章节下文 "openclaw cron add" 命令,创建 cron 任务,务必按照本章节下文bash命令参数设置。
249
- - 如果无法获取当前会话的 metadata,不要创建 cron,改为在回复中提醒用户主动查询订单状态。
250
- - 如果定时任务创建失败,必须在回复中提示用户,不能默默失败。
251
-
252
- ```bash
253
- # ⚠️ 替换占位符:
254
- # ORDER_ID → 实际订单号(taxi_create_order 返回)
255
- # CHANNEL_NAME → 当前会话 metadata 中的 channel 字段(如 feishu、telegram),CHANNEL_NAME 不需要带引号,例如: feishu ✅, "feishu" ❌。不允许使用 last 作为参数值。
256
- # CHAT_ID → 当前会话 metadata 中的 chat_id 字段
257
-
258
- openclaw cron add \
259
- --name "didi-ride-skill:check:ORDER_ID" \
260
- --at "5m" \
261
- --session isolated \
262
- --message "查询滴滴订单状态:订单号 ORDER_ID。调用 taxi_query_order 查询并输出当前状态。如果司机已接单,输出司机姓名、车型、车牌、电话及预计到达时间;如果仍在匹配中,提示用户耐心等待。" \
263
- --announce \
264
- --channel CHANNEL_NAME \
265
- --to "CHAT_ID"
266
- ```
267
-
268
- ### 3.9 MCP KEY 与配置
269
-
270
- > **术语说明**:滴滴平台称此凭证为「MCP KEY」,OpenClaw 配置字段统一叫 `apiKey`,注入后的环境变量为 `DIDI_MCP_KEY`——三者是同一个值。
271
-
272
- ⚠️ Key 来源:通过 `openclaw config set` 持久化后,OpenClaw 在每次 agent run 启动时自动注入为环境变量 `DIDI_MCP_KEY`。
273
- ```bash
274
- # ⚠️ 可以通过以下命令判断当前 DIDI_MCP_KEY 是否配置。如果输出 __OPENCLAW_REDACTED__ ,即为已配置,可在后面使用环境变量`DIDI_MCP_KEY`。
275
- openclaw config get skills.entries.didi-ride-skill.apiKey
276
- ```
277
-
278
- #### 3.9.1 用户在对话中提供 Key 时(必须持久化)
279
-
280
- 当用户回复了 Key(如"我的 Key 是 xxxxxx"),**必须**执行以下命令持久化,**严禁只 export 到当前 shell**:
281
-
282
- ```bash
283
- # ⚠️ 将 YOUR_KEY 替换为用户提供的实际值
284
- openclaw config set 'skills.entries.didi-ride-skill.apiKey' 'YOUR_KEY'
285
- ```
286
-
287
- 持久化成功后:
288
- - OpenClaw 在所有后续 agent run(含 cron isolated session)中自动注入 `DIDI_MCP_KEY`
289
- - 配置更改后会自动生效,无需额外操作指令。
290
-
291
- ⚠️ Key 未配置**或** MCP 返回鉴权失败(`error.code: -32002`)时,执行以下两步:
292
-
293
- 1. 执行下面的 "openclaw message send" 命令,发送二维码图片(`{CHAT_ID}` → metadata 的 chat_id,`{CHANNEL_NAME}` → metadata 的 channel):
294
-
295
- ```bash
296
- openclaw message send --channel {CHANNEL_NAME} --target {CHAT_ID} --media "https://s3-yspu-cdn.didistatic.com/mcp-web/qrcode/didi_ride_skill_qrcode.png" --message "滴滴出行APP扫码获取MCP Key,解锁一键打车"
297
- ```
298
-
299
- 2. 输出文字:
300
-
301
- > 您还没有配置 DIDI_MCP_KEY 或 Key 已失效,请访问 [滴滴MCP平台](https://mcp.didichuxing.com/claw) 获取 MCP KEY,然后配置环境变量或在 OpenClaw 配置文件中设置。
302
-
303
- ### 3.10 工具清单
304
-
305
- | 领域 | 工具 |
306
- |------|------|
307
- | 打车 | `maps_textsearch`, `taxi_estimate`, `taxi_create_order`, `taxi_query_order`, `taxi_get_driver_location`, `taxi_cancel_order`, `maps_regeocode`, `taxi_generate_ride_app_link`(用户无 API 直发权限时的备选:生成深度链接让用户在 App 内完成发单) |
308
- | 路线 | `maps_direction_driving`, `maps_direction_transit`, `maps_direction_walking`, `maps_direction_bicycling` |
309
- | 周边 | `maps_place_around` |
1
+ ---
2
+ name: didi-ride
3
+ description: 中国城市出行服务。当用户表达任何交通出行需求时必须使用此技能——包括打车/叫车/网约车、查价格、路线规划(公交/驾车/步行/骑行)、周边搜索、查询订单/司机位置/取消订单。关键词:"打车"、"叫车"、"去[地点]"、"回家"、"上班"、"下班"、"查价格"、"多少钱"、"路线"、"怎么走"、"步行到"、"附近"、"周边"、"司机"、"订单"、"查询订单"。注意:即使用户未明确说"打车",只要涉及从A地到B地、通勤、或交通方式选择,都应触发。不触发场景:开发打车应用、使用其他导航app、订外卖、查公交时刻表、股票/财报查询。
4
+ homepage: https://mcp.didichuxing.com
5
+ # OpenClaw 配置键名仍为 skills.entries.didi-ride-skill(与 package 注册名一致);skill 目录与 VERSIONS 中名称为 didi-ride
6
+ metadata:
7
+ openclaw:
8
+ emoji: "🚕"
9
+ always: true
10
+ requires:
11
+ bins:
12
+ - openclaw
13
+ - mcporter
14
+ env:
15
+ - DIDI_MCP_KEY
16
+ primaryEnv: DIDI_MCP_KEY
17
+ install:
18
+ - id: node
19
+ kind: node
20
+ package: mcporter
21
+ bins:
22
+ - mcporter
23
+ label: Install mcporter (node)
24
+ ---
25
+
26
+ # 滴滴出行服务 (DiDi Ride Skill)
27
+
28
+ 通过 DiDi MCP Server API 提供打车、查询订单、司机位置、预约叫车、路线规划、周边搜索能力。
29
+
30
+ ---
31
+
32
+ ## 1. 快速开始(2 分钟)
33
+
34
+ ### 1.1 获取 MCP KEY
35
+
36
+ **方式一:用「滴滴出行App」扫码(推荐,最快)**
37
+
38
+ ![滴滴出行APP扫码获取MCP Key,解锁一键打车](https://s3-yspu-cdn.didistatic.com/mcp-web/qrcode/didi_ride_skill_qrcode.png)
39
+ > ⚠️ **Agent 注意**:用户客户端可以渲染 Markdown 图片,**直接输出上方图片语法**。
40
+
41
+ 打开滴滴出行 App,扫描二维码,即可快速获取 MCP Key。
42
+
43
+ **方式二:访问官网**
44
+
45
+ 访问 https://mcp.didichuxing.com/claw 获取您的 MCP Key。
46
+
47
+ ### 1.2 配置 Key
48
+
49
+ **方式一:对话中输入(推荐)**
50
+
51
+ 直接在对话中告诉我您的 MCP Key,我会帮您配置:
52
+
53
+ ```
54
+ 你: 我的 MCP Key 是 xxxxxx
55
+ ```
56
+
57
+ **方式二:OpenClaw 配置文件**
58
+
59
+ 编辑 `~/.openclaw/openclaw.json`,添加:
60
+
61
+ ```json
62
+ {
63
+ "skills": {
64
+ "entries": {
65
+ "didi-ride-skill": {
66
+ "enabled": true,
67
+ "apiKey": "你的MCP_KEY" // apiKey 是 OpenClaw 标准字段名,存储的值就是滴滴平台的 MCP KEY
68
+ }
69
+ }
70
+ }
71
+ }
72
+ ```
73
+
74
+ ### 1.3 开始使用
75
+
76
+ 配置完成后,直接对话即可:
77
+
78
+ ```
79
+ 你: 打车去北京西站
80
+ 你: 帮我查一下从国贸到三里屯的路线
81
+ 你: 查询订单
82
+ ```
83
+
84
+ 首次使用时,OpenClaw 会提示安装 mcporter 工具。
85
+
86
+ ---
87
+
88
+ ## 2. 用户指南
89
+
90
+ 本 Skill 支持以下操作:
91
+
92
+ - **打车**:直接说"打车去[地点]"、"回家"、"上班"
93
+ - **查价**:查一下从 A 到 B 多少钱
94
+ - **查询订单**:输入「查询订单」了解当前订单状态(司机位置、行程进度等)
95
+ - **司机位置**:司机在哪里、多久到
96
+ - **预约出行**:"15分钟后打个车"、"明天9点去机场"
97
+ - **路线规划**:驾车/公交/步行/骑行路线
98
+ - **取消订单**:取消当前订单
99
+
100
+ ---
101
+
102
+ ## 3. Agent 执行指令
103
+
104
+ 以下内容为 AI 执行参考,用户可忽略。
105
+
106
+ ### 3.1 文件地图
107
+
108
+ 按需读取以下文件,不要猜测未读过的内容:
109
+
110
+ | 文件 | 用途 | 何时读取 |
111
+ |------|------|----------|
112
+ | `SKILL.md` | 触发、主流程、硬性门禁、查询订单规则、预约出行规则 | 每次触发必读 |
113
+ | `references/workflow.md` | 分阶段详细流程与命令范式 | 需要实现细节时读 |
114
+ | `references/api_references.md` | MCP 函数签名与参数定义 | 每次调用工具前**必须**核对 |
115
+ | `references/error_handling.md` | 常见错误与恢复策略 | ⚠️ 遇到调用失败时(比如 400 错误)必须读取此文件 |
116
+ | `references/setup.md` | 安装 mcporter、配置 MCP KEY 的完整步骤 | 用户询问安装/配置问题时读 |
117
+ | `assets/PREFERENCE.md` | 地址别名/车型/手机号偏好 | 用户提到别名地址(家、公司、妈妈家等)、车型、手机号,或未明确给出起终点时**必须**读取。别名匹配规则见执行前检查第 6 条 |
118
+
119
+ ### 3.2 执行前检查
120
+
121
+ 1. **检查 mcporter**:若 `mcporter` 不存在(`command not found`),停止并引导用户阅读 `references/setup.md`。没有 mcporter 就无法调用任何 MCP 工具,后续任何流程都无法执行。
122
+
123
+ 2. **检查 Key**:执行 `openclaw config get skills.entries.didi-ride-skill.apiKey`,若输出为空或非 `__OPENCLAW_REDACTED__`,按 `### 3.9 MCP KEY 与配置` 流程引导。Key 缺失时 mcporter 的报错信息具有误导性,不要尝试绕过。
124
+
125
+ 3. **mcporter 调用格式**:
126
+
127
+ ```bash
128
+ MCP_URL=”https://mcp.didichuxing.com/mcp-servers?key=$DIDI_MCP_KEY”
129
+ mcporter call “$MCP_URL” <tool> --args '{“key”:”value”}'
130
+ ```
131
+
132
+ 4. **参数值必须加引号**(字符串格式),否则 API 会报”缺少必填参数”。
133
+ 5. **先预估再下单**:`taxi_create_order` 依赖 `taxi_estimate` 返回的 `traceId`,没有 traceId 下单会失败。traceId 有时效性,过期(`-32021` 错误)需重新预估。
134
+ 6. **起终点处理**:
135
+ - 坐标必须来自 `maps_textsearch`,不要凭空猜测坐标。
136
+ - **禁止用对话历史记忆补充起终点**——用户可能已经换了地方。
137
+ - **起终点缺失时**按以下顺序补全:
138
+ - ① 读 `assets/PREFERENCE.md`,若有地址别名**且地址值非空**,根据场景推断(如早晨→起点"家"、下班→起点"公司")。别名行存在但地址为空 = 未配置。
139
+ - ② 若无可用别名,直接询问用户。
140
+ - **别名匹配规则(精确优先)**:"家"只匹配别名"家",不匹配"妈妈家";需明确含"妈妈"语义才匹配"妈妈家"。其他自定义别名同理。
141
+ - **推断的起终点、或 `maps_textsearch` 返回多个候选结果时,必须在主流程 step 2 向用户确认**;用户明确指定且精确匹配的地点无需确认。
142
+
143
+ ### 3.3 用户确认策略
144
+
145
+ | 场景 | 规则 |
146
+ |------|------|
147
+ | 打车(实时/预约) | 推断的地址或搜索返回多个候选时必须确认起终点(见主流程 step 2),用户明确指定且精确匹配时无需确认,确认后再预估下单 |
148
+ | 取消订单 | 即使用户说了"取消订单",仍必须先明确询问"确认取消吗?",等用户回复确认后才能调用 `taxi_cancel_order`。用户的取消意图 ≠ 取消确认。 |
149
+
150
+ ### 3.4 主流程(最小可执行)
151
+
152
+ 1. 地址解析:`maps_textsearch`(必要时结合 `assets/PREFERENCE.md`,按执行前检查第 6 条处理)。
153
+ 2. 确认起终点:推断的地址(如别名推断)或 `maps_textsearch` 返回多个候选结果时,必须向用户确认(如"从家出发去首都机场T3航站楼,确认吗?");用户明确指定且精确匹配的地点无需确认。用户纠正则按纠正内容重新解析。
154
+ 3. 价格预估:`taxi_estimate`,记录 `traceId`。
155
+ 4. 车型决策:
156
+ - 用户明确车型:直接用;
157
+ - 用户未明确:使用 `assets/PREFERENCE.md` 中的场景车型偏好或默认车型;
158
+ - 偏好也未配置:向用户询问车型,不要自行推荐。
159
+ - 可用车型以 `taxi_estimate` API 返回为准,获取对应的 `productCategory` 创建订单。
160
+ 5. 创建订单:`taxi_create_order`(使用最新 `traceId`)。
161
+ 6. 结果输出:给出订单号、起终点、车型、预估价,末尾提示 `💡 发送「查询订单」可了解当前订单状态`。
162
+ 7. ⚠️ 自动回查(必做):根据 `### 3.8 发单后自动回查` 中的 cron 指令内容,创建定时任务,参数信息严格遵循章节内要求。此步不可省略。
163
+
164
+ ### 3.5 偏好设置更新
165
+
166
+ 当用户要求设置/记住/记一下/帮我记/保存地址别名、车型偏好或手机号时,**必须**直接编辑 `assets/PREFERENCE.md` 对应的 markdown 表格行。
167
+
168
+ - **地址别名**("我家在…"、"公司在…"、"儿子的学校是…"、"妈妈家在…"):先调用 `maps_textsearch` 解析地址获取坐标,然后更新「地址别名」表——已有别名更新对应行,新别名追加新行。别名由用户定义,不限于"家""公司"。
169
+ - **场景车型**("上班用快车"、"下班用特惠和快车"):更新「场景车型偏好」表对应行。品类代码参考表底注释,多车型用英文逗号分隔(如 `1,201`)。
170
+ - **叫车手机号**("我的手机号是…"):更新「默认偏好」表中的叫车手机号行。
171
+ - **创建订单时**:若 PREFERENCE.md 中配置了叫车手机号,将其作为 `caller_car_phone` 参数传入 `taxi_create_order`。
172
+
173
+ ### 3.6 查询订单
174
+
175
+ 触发词:`查询订单` / `查询订单 <orderId>`
176
+
177
+ 订单号来源(优先级从高到低):
178
+ 1. 用户消息中明确给出;
179
+ 2. 当前对话上下文中最近一次创建的订单号;
180
+ 3. 以上均无时,向用户询问。
181
+
182
+ 调用命令:
183
+
184
+ ```bash
185
+ MCP_URL="https://mcp.didichuxing.com/mcp-servers?key=$DIDI_MCP_KEY"
186
+ mcporter call "$MCP_URL" taxi_query_order --args '{"order_id":"ORDER_ID"}'
187
+ ```
188
+
189
+ #### 3.6.1 状态码与输出规则
190
+
191
+ | code | 含义 | 必须输出 |
192
+ |------|------|----------|
193
+ | 0 | 匹配中 | ⏳ 正在为您匹配司机,请稍候 |
194
+ | 1 | 司机已接单 | **必须展示**:司机姓名、车型、车牌、电话;距上车点距离和预计到达时间 |
195
+ | 2 | 司机已到达 | 🔔 司机已到达上车点,请前往上车 |
196
+ | 4 | 行程进行中 | 🚗 行程已开始 |
197
+ | 5 | 订单完成 | ✅ 行程结束,展示费用(如有) |
198
+ | 6 | 订单已被系统取消 | ❌ 订单已被系统取消 |
199
+ | 7 | 订单已被取消 | ❌ 订单已取消 |
200
+ | 3/8-12 | 其他终态 | 显示对应状态描述 |
201
+
202
+ ### 3.7 预约出行规则
203
+
204
+ 当用户要求在特定时间叫车(如"15分钟后"、"明天9点"):
205
+
206
+ - 使用 cron 一次性任务(`--at`),到点由 isolated agent 独立执行完整打车流程;
207
+ - ⚠️ `--message` 必须包含完整起终点(带城市前缀)和车型,isolated session 无历史上下文。起点或终点缺失时先从 `assets/PREFERENCE.md` 推断并向用户确认,推断不了则必须先询问用户,**不要自行推断未知信息**;
208
+ - 到点后 agent 自行执行:地址解析 → 价格预估(获取最新 traceId)→ 创建订单;
209
+ - 如果无法获取当前会话的 metadata,不要创建 cron,改为在回复中提醒用户主动查询;
210
+ - 如果定时任务创建失败,必须在回复中提示用户,不能默默失败。
211
+
212
+ ```bash
213
+ # ⚠️ 替换占位符:
214
+ # FROM_NAME → 带城市前缀的起点全称(如"北京市西二旗地铁站")
215
+ # TO_NAME → 带城市前缀的终点全称(如"北京市佰嘉城小区")
216
+ # VEHICLE → 车型(如"快车")
217
+ # TIME → 见下方时间规则
218
+ # CHANNEL_NAME → 当前会话 metadata 中的 channel 字段(如 feishu、telegram),CHANNEL_NAME 不需要带引号,例如: feishu ✅, "feishu" ❌。不允许使用 last 作为参数值。
219
+ # CHAT_ID → 当前会话 metadata 中的 chat_id 字段
220
+
221
+
222
+ openclaw cron add \
223
+ --name "didi-ride-skill:$(date +%s)" \
224
+ --at "TIME" \
225
+ --session isolated \
226
+ --message "执行定时打车:起点「FROM_NAME」,终点「TO_NAME」,车型「VEHICLE」。请完整执行打车流程:地址解析 → 价格预估(获取最新 traceId)→ 创建订单。订单创建成功后,输出订单信息并提示用户可发送「查询订单」了解订单状态,同时创建 5 分钟后自动回查 cron(模板见 SKILL.md 第 3.8 节「发单后自动回查」)。" \
227
+ --announce \
228
+ --channel CHANNEL_NAME \
229
+ --to "CHAT_ID"
230
+ ```
231
+
232
+ #### 3.7.1 TIME 填写规则
233
+
234
+ | 场景 | 写法 | 示例 |
235
+ |------|------|------|
236
+ | 相对时间(X 分钟/小时后) | duration 格式 | `15m` / `2h` / `1h30m` |
237
+ | 绝对时间(具体时刻) | 本地时区 ISO 格式 | `$(date -d '明天 09:00' '+%Y-%m-%dT%H:%M:%S+08:00')` |
238
+
239
+ - 相对时间(如 `15m`)无需格式化,直接使用
240
+ - 绝对时间使用带时区的 ISO 8601 格式:`YYYY-MM-DDTHH:MM:SS+08:00`(北京时间东八区)
241
+
242
+ **系统兼容性说明:**
243
+ - Linux (GNU date): `date -d '明天 09:00' '+%Y-%m-%dT%H:%M:%S+08:00'`
244
+ - macOS (BSD date): `TZ=Asia/Shanghai date -j -v+1d -f '%H:%M' '09:00' '+%Y-%m-%dT%H:%M:%S+08:00'`
245
+
246
+ ### 3.8 发单后自动回查
247
+
248
+ 发单成功后(实时单或预约单),根据本章节下文 "openclaw cron add" 命令,创建 cron 任务,务必按照本章节下文bash命令参数设置。
249
+ - 如果无法获取当前会话的 metadata,不要创建 cron,改为在回复中提醒用户主动查询订单状态。
250
+ - 如果定时任务创建失败,必须在回复中提示用户,不能默默失败。
251
+
252
+ ```bash
253
+ # ⚠️ 替换占位符:
254
+ # ORDER_ID → 实际订单号(taxi_create_order 返回)
255
+ # CHANNEL_NAME → 当前会话 metadata 中的 channel 字段(如 feishu、telegram),CHANNEL_NAME 不需要带引号,例如: feishu ✅, "feishu" ❌。不允许使用 last 作为参数值。
256
+ # CHAT_ID → 当前会话 metadata 中的 chat_id 字段
257
+
258
+ openclaw cron add \
259
+ --name "didi-ride-skill:check:ORDER_ID" \
260
+ --at "5m" \
261
+ --session isolated \
262
+ --message "查询滴滴订单状态:订单号 ORDER_ID。调用 taxi_query_order 查询并输出当前状态。如果司机已接单,输出司机姓名、车型、车牌、电话及预计到达时间;如果仍在匹配中,提示用户耐心等待。" \
263
+ --announce \
264
+ --channel CHANNEL_NAME \
265
+ --to "CHAT_ID"
266
+ ```
267
+
268
+ ### 3.9 MCP KEY 与配置
269
+
270
+ > **术语说明**:滴滴平台称此凭证为「MCP KEY」,OpenClaw 配置字段统一叫 `apiKey`,注入后的环境变量为 `DIDI_MCP_KEY`——三者是同一个值。
271
+
272
+ ⚠️ Key 来源:通过 `openclaw config set` 持久化后,OpenClaw 在每次 agent run 启动时自动注入为环境变量 `DIDI_MCP_KEY`。
273
+ ```bash
274
+ # ⚠️ 可以通过以下命令判断当前 DIDI_MCP_KEY 是否配置。如果输出 __OPENCLAW_REDACTED__ ,即为已配置,可在后面使用环境变量`DIDI_MCP_KEY`。
275
+ openclaw config get skills.entries.didi-ride-skill.apiKey
276
+ ```
277
+
278
+ #### 3.9.1 用户在对话中提供 Key 时(必须持久化)
279
+
280
+ 当用户回复了 Key(如"我的 Key 是 xxxxxx"),**必须**执行以下命令持久化,**严禁只 export 到当前 shell**:
281
+
282
+ ```bash
283
+ # ⚠️ 将 YOUR_KEY 替换为用户提供的实际值
284
+ openclaw config set 'skills.entries.didi-ride-skill.apiKey' 'YOUR_KEY'
285
+ ```
286
+
287
+ 持久化成功后:
288
+ - OpenClaw 在所有后续 agent run(含 cron isolated session)中自动注入 `DIDI_MCP_KEY`
289
+ - 配置更改后会自动生效,无需额外操作指令。
290
+
291
+ ⚠️ Key 未配置**或** MCP 返回鉴权失败(`error.code: -32002`)时,执行以下两步:
292
+
293
+ 1. 执行下面的 "openclaw message send" 命令,发送二维码图片(`{CHAT_ID}` → metadata 的 chat_id,`{CHANNEL_NAME}` → metadata 的 channel):
294
+
295
+ ```bash
296
+ openclaw message send --channel {CHANNEL_NAME} --target {CHAT_ID} --media "https://s3-yspu-cdn.didistatic.com/mcp-web/qrcode/didi_ride_skill_qrcode.png" --message "滴滴出行APP扫码获取MCP Key,解锁一键打车"
297
+ ```
298
+
299
+ 2. 输出文字:
300
+
301
+ > 您还没有配置 DIDI_MCP_KEY 或 Key 已失效,请访问 [滴滴MCP平台](https://mcp.didichuxing.com/claw) 获取 MCP KEY,然后配置环境变量或在 OpenClaw 配置文件中设置。
302
+
303
+ ### 3.10 工具清单
304
+
305
+ | 领域 | 工具 |
306
+ |------|------|
307
+ | 打车 | `maps_textsearch`, `taxi_estimate`, `taxi_create_order`, `taxi_query_order`, `taxi_get_driver_location`, `taxi_cancel_order`, `maps_regeocode`, `taxi_generate_ride_app_link`(用户无 API 直发权限时的备选:生成深度链接让用户在 App 内完成发单) |
308
+ | 路线 | `maps_direction_driving`, `maps_direction_transit`, `maps_direction_walking`, `maps_direction_bicycling` |
309
+ | 周边 | `maps_place_around` |
@@ -1,6 +1,6 @@
1
- {
2
- "ownerId": "kn7can12c6x8pp8ade0sxqkv6582sfzp",
3
- "slug": "didi-ride-skill",
4
- "version": "1.1.0",
5
- "publishedAt": 1774527736125
1
+ {
2
+ "ownerId": "kn7can12c6x8pp8ade0sxqkv6582sfzp",
3
+ "slug": "didi-ride-skill",
4
+ "version": "1.1.0",
5
+ "publishedAt": 1774527736125
6
6
  }