@xopcai/xopc 0.0.29 → 0.0.31

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 (632) hide show
  1. package/dist/extensions/telegram/src/adapters/config-surface.js +3 -1
  2. package/dist/extensions/telegram/src/adapters/config-surface.js.map +1 -1
  3. package/dist/extensions/telegram/src/adapters/onboard-cli.js +23 -21
  4. package/dist/extensions/telegram/src/adapters/onboard-cli.js.map +1 -1
  5. package/dist/extensions/telegram/src/adapters/setup-wizard.js +3 -4
  6. package/dist/extensions/telegram/src/adapters/setup-wizard.js.map +1 -1
  7. package/dist/extensions/telegram/src/config-schema.d.ts +0 -1
  8. package/dist/extensions/telegram/src/config-schema.js +17 -4
  9. package/dist/extensions/telegram/src/config-schema.js.map +1 -1
  10. package/dist/extensions/telegram/src/plugin.js +4 -17
  11. package/dist/extensions/telegram/src/plugin.js.map +1 -1
  12. package/dist/extensions/telegram/xopc.extension.json +1 -1
  13. package/dist/extensions/weixin/src/cdn/upload.js +1 -1
  14. package/dist/extensions/weixin/src/media/data-url.js +1 -1
  15. package/dist/extensions/weixin/src/messaging/process-message.js +1 -1
  16. package/dist/gateway/static/root/assets/agents-3u63Fw2Y.js +216 -0
  17. package/dist/gateway/static/root/assets/agents-3u63Fw2Y.js.map +1 -0
  18. package/dist/gateway/static/root/assets/{apps-page-Bmq19MS-.js → apps-page-CWegY6Kp.js} +2 -2
  19. package/dist/gateway/static/root/assets/{apps-page-Bmq19MS-.js.map → apps-page-CWegY6Kp.js.map} +1 -1
  20. package/dist/gateway/static/root/assets/channels-settings-CiyeXcTK.js +9 -0
  21. package/dist/gateway/static/root/assets/channels-settings-CiyeXcTK.js.map +1 -0
  22. package/dist/gateway/static/root/assets/cron-api-_j_79Zf5.js +3 -0
  23. package/dist/gateway/static/root/assets/cron-api-_j_79Zf5.js.map +1 -0
  24. package/dist/gateway/static/root/assets/cron-page-S86YNTtI.js +2 -0
  25. package/dist/gateway/static/root/assets/cron-page-S86YNTtI.js.map +1 -0
  26. package/dist/gateway/static/root/assets/dist-D0jxbvuz.js +2 -0
  27. package/dist/gateway/static/root/assets/{dist--p2HQ2QF.js.map → dist-D0jxbvuz.js.map} +1 -1
  28. package/dist/gateway/static/root/assets/{extension-debug-page-DwHCB_6T.js → extension-debug-page-DB630cW8.js} +2 -2
  29. package/dist/gateway/static/root/assets/{extension-debug-page-DwHCB_6T.js.map → extension-debug-page-DB630cW8.js.map} +1 -1
  30. package/dist/gateway/static/root/assets/{extension-page-BsYwQIex.js → extension-page-CnoPUBul.js} +2 -2
  31. package/dist/gateway/static/root/assets/{extension-page-BsYwQIex.js.map → extension-page-CnoPUBul.js.map} +1 -1
  32. package/dist/gateway/static/root/assets/{extension-settings-page-nsisEgjB.js → extension-settings-page-BsiOkvBe.js} +2 -2
  33. package/dist/gateway/static/root/assets/{extension-settings-page-nsisEgjB.js.map → extension-settings-page-BsiOkvBe.js.map} +1 -1
  34. package/dist/gateway/static/root/assets/{index-CR8zUHGR.js → index-DHLmAIQl.js} +63 -63
  35. package/dist/gateway/static/root/assets/{index-CR8zUHGR.js.map → index-DHLmAIQl.js.map} +1 -1
  36. package/dist/gateway/static/root/assets/index-DoPwy4aU.css +1 -0
  37. package/dist/gateway/static/root/assets/logs-page-Bndhenn2.js +2 -0
  38. package/dist/gateway/static/root/assets/logs-page-Bndhenn2.js.map +1 -0
  39. package/dist/gateway/static/root/assets/sessions-page-Q201-_lP.js +2 -0
  40. package/dist/gateway/static/root/assets/{sessions-page-Be5kIGl_.js.map → sessions-page-Q201-_lP.js.map} +1 -1
  41. package/dist/gateway/static/root/assets/settings-page-Cw75fpc6.js +2 -0
  42. package/dist/gateway/static/root/assets/settings-page-Cw75fpc6.js.map +1 -0
  43. package/dist/gateway/static/root/assets/skills-page-CVwEzD_J.js +3 -0
  44. package/dist/gateway/static/root/assets/skills-page-CVwEzD_J.js.map +1 -0
  45. package/dist/gateway/static/root/index.html +2 -2
  46. package/dist/package.js +1 -1
  47. package/dist/src/agent/agent-manager.d.ts +5 -7
  48. package/dist/src/agent/agent-manager.js +21 -19
  49. package/dist/src/agent/agent-manager.js.map +1 -1
  50. package/dist/src/agent/ipc/inbox.js +4 -2
  51. package/dist/src/agent/ipc/inbox.js.map +1 -1
  52. package/dist/src/agent/memory/dreaming/short-term-store.js +1 -1
  53. package/dist/src/agent/memory/dreaming/utils.js +1 -1
  54. package/dist/src/agent/orchestration/agent-orchestrator.js +1 -1
  55. package/dist/src/agent/prompt/service-prompt-builder.js +0 -2
  56. package/dist/src/agent/prompt/service-prompt-builder.js.map +1 -1
  57. package/dist/src/agent/prompt/system-prompt.d.ts +0 -2
  58. package/dist/src/agent/prompt/system-prompt.js +3 -17
  59. package/dist/src/agent/prompt/system-prompt.js.map +1 -1
  60. package/dist/src/agent/service/btw-query.d.ts +16 -0
  61. package/dist/src/agent/service/btw-query.js +88 -0
  62. package/dist/src/agent/service/btw-query.js.map +1 -0
  63. package/dist/src/agent/service/build-direct-message-content.d.ts +30 -0
  64. package/dist/src/agent/service/build-direct-message-content.js +75 -0
  65. package/dist/src/agent/service/build-direct-message-content.js.map +1 -0
  66. package/dist/src/agent/service/parse-outbound-session-key.d.ts +8 -0
  67. package/dist/src/agent/service/parse-outbound-session-key.js +41 -0
  68. package/dist/src/agent/service/parse-outbound-session-key.js.map +1 -0
  69. package/dist/src/agent/service/process-direct-one-shot.d.ts +34 -0
  70. package/dist/src/agent/service/process-direct-one-shot.js +67 -0
  71. package/dist/src/agent/service/process-direct-one-shot.js.map +1 -0
  72. package/dist/src/agent/service/process-direct-streaming.js +12 -1
  73. package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
  74. package/dist/src/agent/service/reconcile-dreaming-cron.d.ts +6 -0
  75. package/dist/src/agent/service/reconcile-dreaming-cron.js +70 -0
  76. package/dist/src/agent/service/reconcile-dreaming-cron.js.map +1 -0
  77. package/dist/src/agent/service/session-context-report.d.ts +19 -0
  78. package/dist/src/agent/service/session-context-report.js +47 -0
  79. package/dist/src/agent/service/session-context-report.js.map +1 -0
  80. package/dist/src/agent/service/webchat-tts.d.ts +28 -0
  81. package/dist/src/agent/service/webchat-tts.js +73 -0
  82. package/dist/src/agent/service/webchat-tts.js.map +1 -0
  83. package/dist/src/agent/service.d.ts +8 -12
  84. package/dist/src/agent/service.js +74 -379
  85. package/dist/src/agent/service.js.map +1 -1
  86. package/dist/src/agent/skills/config.js +4 -3
  87. package/dist/src/agent/skills/config.js.map +1 -1
  88. package/dist/src/agent/skills/format-skills-prompt.d.ts +0 -2
  89. package/dist/src/agent/skills/format-skills-prompt.js +3 -24
  90. package/dist/src/agent/skills/format-skills-prompt.js.map +1 -1
  91. package/dist/src/agent/skills/hub-lock.js +4 -5
  92. package/dist/src/agent/skills/hub-lock.js.map +1 -1
  93. package/dist/src/agent/skills/index.js +9 -21
  94. package/dist/src/agent/skills/index.js.map +1 -1
  95. package/dist/src/agent/skills/marketplace/adapter.types.d.ts +17 -0
  96. package/dist/src/agent/skills/marketplace/adapter.types.js +1 -0
  97. package/dist/src/agent/skills/marketplace/adapters/skillhub/adapter.d.ts +2 -0
  98. package/dist/src/agent/skills/marketplace/adapters/skillhub/adapter.js +292 -0
  99. package/dist/src/agent/skills/marketplace/adapters/skillhub/adapter.js.map +1 -0
  100. package/dist/src/agent/skills/marketplace/adapters/skillhub/ecosystem-client.d.ts +73 -0
  101. package/dist/src/agent/skills/marketplace/adapters/skillhub/ecosystem-client.js +200 -0
  102. package/dist/src/agent/skills/marketplace/adapters/skillhub/ecosystem-client.js.map +1 -0
  103. package/dist/src/agent/skills/marketplace/adapters/skillhub/registry-client.d.ts +137 -0
  104. package/dist/src/agent/skills/marketplace/adapters/skillhub/registry-client.js +217 -0
  105. package/dist/src/agent/skills/marketplace/adapters/skillhub/registry-client.js.map +1 -0
  106. package/dist/src/agent/skills/marketplace/adapters/skillhub/skillhub-fetch-cache.d.ts +12 -0
  107. package/dist/src/agent/skills/marketplace/adapters/skillhub/skillhub-fetch-cache.js +90 -0
  108. package/dist/src/agent/skills/marketplace/adapters/skillhub/skillhub-fetch-cache.js.map +1 -0
  109. package/dist/src/agent/skills/marketplace/adapters/store/adapter.d.ts +2 -0
  110. package/dist/src/agent/skills/marketplace/adapters/store/adapter.js +35 -0
  111. package/dist/src/agent/skills/marketplace/adapters/store/adapter.js.map +1 -0
  112. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.d.ts +124 -0
  113. package/dist/src/agent/skills/{skills-store-client.js → marketplace/adapters/store/store-api-client.js} +4 -3
  114. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js.map +1 -0
  115. package/dist/src/agent/skills/marketplace/resolve-adapter.d.ts +6 -0
  116. package/dist/src/agent/skills/marketplace/resolve-adapter.js +26 -0
  117. package/dist/src/agent/skills/marketplace/resolve-adapter.js.map +1 -0
  118. package/dist/src/agent/skills/parse-skill-metadata.d.ts +5 -0
  119. package/dist/src/agent/skills/parse-skill-metadata.js +27 -0
  120. package/dist/src/agent/skills/parse-skill-metadata.js.map +1 -0
  121. package/dist/src/agent/skills/skill-markdown-preview-from-raw.d.ts +6 -0
  122. package/dist/src/agent/skills/skill-markdown-preview-from-raw.js +64 -0
  123. package/dist/src/agent/skills/skill-markdown-preview-from-raw.js.map +1 -0
  124. package/dist/src/agent/skills/skill-view-path.d.ts +17 -1
  125. package/dist/src/agent/skills/skill-view-path.js +66 -3
  126. package/dist/src/agent/skills/skill-view-path.js.map +1 -1
  127. package/dist/src/agent/skills/skills-marketplace.d.ts +21 -0
  128. package/dist/src/agent/skills/skills-marketplace.js +18 -0
  129. package/dist/src/agent/skills/skills-marketplace.js.map +1 -0
  130. package/dist/src/agent/skills/test-framework.d.ts +0 -1
  131. package/dist/src/agent/skills/test-framework.js +2 -20
  132. package/dist/src/agent/skills/test-framework.js.map +1 -1
  133. package/dist/src/agent/skills/types.d.ts +12 -6
  134. package/dist/src/agent/tools/dreaming-tool.js +1 -1
  135. package/dist/src/agent/tools/image-generate-tool.js +2 -2
  136. package/dist/src/auth/credentials.js +8 -6
  137. package/dist/src/auth/credentials.js.map +1 -1
  138. package/dist/src/auth/profiles/store.js +5 -3
  139. package/dist/src/auth/profiles/store.js.map +1 -1
  140. package/dist/src/channels/manager.js +1 -1
  141. package/dist/src/channels/outbound/persist-store.js +4 -4
  142. package/dist/src/channels/outbound/persist-store.js.map +1 -1
  143. package/dist/src/cli/commands/config.js +8 -6
  144. package/dist/src/cli/commands/config.js.map +1 -1
  145. package/dist/src/cli/commands/doctor/checks/channel-config.js +3 -4
  146. package/dist/src/cli/commands/doctor/checks/channel-config.js.map +1 -1
  147. package/dist/src/cli/commands/init.js +4 -2
  148. package/dist/src/cli/commands/init.js.map +1 -1
  149. package/dist/src/config/loader.js +3 -1
  150. package/dist/src/config/loader.js.map +1 -1
  151. package/dist/src/config/models-json.js +4 -5
  152. package/dist/src/config/models-json.js.map +1 -1
  153. package/dist/src/config/schema.d.ts +12 -4
  154. package/dist/src/config/schema.js +31 -5
  155. package/dist/src/config/schema.js.map +1 -1
  156. package/dist/src/cron/persistence.d.ts +1 -3
  157. package/dist/src/cron/persistence.js +6 -17
  158. package/dist/src/cron/persistence.js.map +1 -1
  159. package/dist/src/cron/validation.js +1 -1
  160. package/dist/src/cron/validation.js.map +1 -1
  161. package/dist/src/extensions/activation-context.js +0 -1
  162. package/dist/src/extensions/activation-context.js.map +1 -1
  163. package/dist/src/extensions/lockfile.js +4 -2
  164. package/dist/src/extensions/lockfile.js.map +1 -1
  165. package/dist/src/gateway/auth.d.ts +0 -9
  166. package/dist/src/gateway/auth.js +1 -12
  167. package/dist/src/gateway/auth.js.map +1 -1
  168. package/dist/src/gateway/hono/lib/config-payload.d.ts +1 -1
  169. package/dist/src/gateway/hono/lib/extension-store.js +4 -4
  170. package/dist/src/gateway/hono/lib/extension-store.js.map +1 -1
  171. package/dist/src/gateway/hono/routes/channels.js +5 -3
  172. package/dist/src/gateway/hono/routes/channels.js.map +1 -1
  173. package/dist/src/gateway/hono/routes/commands-skills.js +28 -3
  174. package/dist/src/gateway/hono/routes/commands-skills.js.map +1 -1
  175. package/dist/src/gateway/hono/routes/config.js +23 -2
  176. package/dist/src/gateway/hono/routes/config.js.map +1 -1
  177. package/dist/src/gateway/hono/routes/sessions.js +124 -2
  178. package/dist/src/gateway/hono/routes/sessions.js.map +1 -1
  179. package/dist/src/gateway/hono/sse.js +9 -2
  180. package/dist/src/gateway/hono/sse.js.map +1 -1
  181. package/dist/src/gateway/index.js +2 -2
  182. package/dist/src/gateway/lock.js +1 -1
  183. package/dist/src/gateway/service/run-gateway-agent.d.ts +37 -0
  184. package/dist/src/gateway/service/run-gateway-agent.js +163 -0
  185. package/dist/src/gateway/service/run-gateway-agent.js.map +1 -0
  186. package/dist/src/gateway/service/save-webchat-user-message.d.ts +9 -0
  187. package/dist/src/gateway/service/save-webchat-user-message.js +34 -0
  188. package/dist/src/gateway/service/save-webchat-user-message.js.map +1 -0
  189. package/dist/src/gateway/service/session-chat-ids.d.ts +9 -0
  190. package/dist/src/gateway/service/session-chat-ids.js +33 -0
  191. package/dist/src/gateway/service/session-chat-ids.js.map +1 -0
  192. package/dist/src/gateway/service/sse-hub.d.ts +10 -0
  193. package/dist/src/gateway/service/sse-hub.js +55 -0
  194. package/dist/src/gateway/service/sse-hub.js.map +1 -0
  195. package/dist/src/gateway/service/types.d.ts +9 -0
  196. package/dist/src/gateway/service/types.js +1 -0
  197. package/dist/src/gateway/service.d.ts +42 -33
  198. package/dist/src/gateway/service.js +92 -246
  199. package/dist/src/gateway/service.js.map +1 -1
  200. package/dist/src/infra/update-lock.js +4 -2
  201. package/dist/src/infra/update-lock.js.map +1 -1
  202. package/dist/src/infra/update-startup.js +5 -14
  203. package/dist/src/infra/update-startup.js.map +1 -1
  204. package/dist/src/infra/write-file-atomic.d.ts +18 -0
  205. package/dist/src/infra/write-file-atomic.js +115 -0
  206. package/dist/src/infra/write-file-atomic.js.map +1 -0
  207. package/dist/src/session/abort-cutoff.d.ts +6 -0
  208. package/dist/src/session/abort-cutoff.js +10 -0
  209. package/dist/src/session/abort-cutoff.js.map +1 -0
  210. package/dist/src/session/compaction-checkpoints.d.ts +8 -0
  211. package/dist/src/session/compaction-checkpoints.js +21 -0
  212. package/dist/src/session/compaction-checkpoints.js.map +1 -0
  213. package/dist/src/session/config-store.js +4 -2
  214. package/dist/src/session/config-store.js.map +1 -1
  215. package/dist/src/session/index.d.ts +8 -1
  216. package/dist/src/session/index.js +7 -1
  217. package/dist/src/session/manager.d.ts +26 -1
  218. package/dist/src/session/manager.js +39 -2
  219. package/dist/src/session/manager.js.map +1 -1
  220. package/dist/src/session/patch-metadata.d.ts +12 -0
  221. package/dist/src/session/patch-metadata.js +23 -0
  222. package/dist/src/session/patch-metadata.js.map +1 -0
  223. package/dist/src/session/search-index.d.ts +2 -0
  224. package/dist/src/session/search-index.js +30 -2
  225. package/dist/src/session/search-index.js.map +1 -1
  226. package/dist/src/session/session-context-for-llm.d.ts +32 -0
  227. package/dist/src/session/session-context-for-llm.js +60 -0
  228. package/dist/src/session/session-context-for-llm.js.map +1 -0
  229. package/dist/src/session/store.d.ts +53 -2
  230. package/dist/src/session/store.js +427 -145
  231. package/dist/src/session/store.js.map +1 -1
  232. package/dist/src/session/strip-webchat-early-save.d.ts +5 -0
  233. package/dist/src/session/strip-webchat-early-save.js +17 -0
  234. package/dist/src/session/strip-webchat-early-save.js.map +1 -0
  235. package/dist/src/session/transcript-format.d.ts +46 -0
  236. package/dist/src/session/transcript-format.js +88 -0
  237. package/dist/src/session/transcript-format.js.map +1 -0
  238. package/dist/src/session/types.d.ts +37 -0
  239. package/dist/src/session/types.js.map +1 -1
  240. package/dist/src/utils/logger/log-store.js +4 -3
  241. package/dist/src/utils/logger/log-store.js.map +1 -1
  242. package/dist/src/voice/tts/merge-config.js +0 -1
  243. package/dist/src/voice/tts/merge-config.js.map +1 -1
  244. package/dist/src/voice/tts/service.js +1 -2
  245. package/dist/src/voice/tts/service.js.map +1 -1
  246. package/package.json +1 -1
  247. package/skills/business/company-values/SKILL-zh.md +80 -0
  248. package/skills/business/company-values/SKILL.md +80 -0
  249. package/skills/business/find-community/SKILL-zh.md +50 -0
  250. package/skills/business/find-community/SKILL.md +50 -0
  251. package/skills/business/first-customers/SKILL-zh.md +76 -0
  252. package/skills/business/first-customers/SKILL.md +76 -0
  253. package/skills/business/grow-sustainably/SKILL-zh.md +92 -0
  254. package/skills/business/grow-sustainably/SKILL.md +92 -0
  255. package/skills/business/marketing-plan/SKILL-zh.md +100 -0
  256. package/skills/business/marketing-plan/SKILL.md +100 -0
  257. package/skills/business/minimalist-review/SKILL-zh.md +82 -0
  258. package/skills/business/minimalist-review/SKILL.md +82 -0
  259. package/skills/business/mvp/SKILL-zh.md +81 -0
  260. package/skills/business/mvp/SKILL.md +81 -0
  261. package/skills/business/pricing/SKILL-zh.md +64 -0
  262. package/skills/business/pricing/SKILL.md +64 -0
  263. package/skills/business/processize/SKILL-zh.md +91 -0
  264. package/skills/business/processize/SKILL.md +91 -0
  265. package/skills/business/validate-idea/SKILL-zh.md +68 -0
  266. package/skills/business/validate-idea/SKILL.md +68 -0
  267. package/skills/{skill-creator → creative/algorithmic-art}/LICENSE.txt +1 -1
  268. package/skills/creative/algorithmic-art/SKILL-zh.md +405 -0
  269. package/skills/creative/algorithmic-art/SKILL.md +405 -0
  270. package/skills/creative/algorithmic-art/templates/generator_template.js +223 -0
  271. package/skills/creative/algorithmic-art/templates/viewer.html +599 -0
  272. package/skills/creative/canvas-design/LICENSE.txt +202 -0
  273. package/skills/creative/canvas-design/SKILL-zh.md +130 -0
  274. package/skills/creative/canvas-design/SKILL.md +130 -0
  275. package/skills/creative/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
  276. package/skills/creative/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
  277. package/skills/creative/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
  278. package/skills/creative/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
  279. package/skills/creative/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
  280. package/skills/creative/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
  281. package/skills/creative/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
  282. package/skills/creative/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
  283. package/skills/creative/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
  284. package/skills/creative/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
  285. package/skills/creative/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
  286. package/skills/creative/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
  287. package/skills/creative/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
  288. package/skills/creative/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
  289. package/skills/creative/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
  290. package/skills/creative/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
  291. package/skills/creative/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
  292. package/skills/creative/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
  293. package/skills/creative/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
  294. package/skills/creative/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
  295. package/skills/creative/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
  296. package/skills/creative/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
  297. package/skills/creative/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
  298. package/skills/creative/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
  299. package/skills/creative/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
  300. package/skills/creative/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
  301. package/skills/creative/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
  302. package/skills/creative/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
  303. package/skills/creative/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
  304. package/skills/creative/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
  305. package/skills/creative/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
  306. package/skills/creative/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
  307. package/skills/creative/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
  308. package/skills/creative/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
  309. package/skills/creative/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
  310. package/skills/creative/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
  311. package/skills/creative/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
  312. package/skills/creative/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
  313. package/skills/creative/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
  314. package/skills/creative/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
  315. package/skills/creative/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
  316. package/skills/creative/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
  317. package/skills/creative/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
  318. package/skills/creative/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
  319. package/skills/creative/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
  320. package/skills/creative/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
  321. package/skills/creative/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
  322. package/skills/creative/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
  323. package/skills/creative/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
  324. package/skills/creative/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
  325. package/skills/creative/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
  326. package/skills/creative/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
  327. package/skills/creative/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
  328. package/skills/creative/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
  329. package/skills/creative/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
  330. package/skills/creative/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
  331. package/skills/creative/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
  332. package/skills/creative/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
  333. package/skills/creative/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
  334. package/skills/creative/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
  335. package/skills/creative/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
  336. package/skills/creative/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
  337. package/skills/creative/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
  338. package/skills/creative/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
  339. package/skills/creative/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
  340. package/skills/creative/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
  341. package/skills/creative/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
  342. package/skills/creative/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
  343. package/skills/creative/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
  344. package/skills/creative/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
  345. package/skills/creative/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
  346. package/skills/creative/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
  347. package/skills/creative/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
  348. package/skills/creative/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
  349. package/skills/creative/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
  350. package/skills/creative/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
  351. package/skills/creative/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
  352. package/skills/creative/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
  353. package/skills/creative/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
  354. package/skills/creative/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
  355. package/skills/creative/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
  356. package/skills/creative/frontend-design/LICENSE.txt +177 -0
  357. package/skills/creative/frontend-design/SKILL-zh.md +42 -0
  358. package/skills/creative/frontend-design/SKILL.md +42 -0
  359. package/skills/creative/theme-factory/LICENSE.txt +202 -0
  360. package/skills/creative/theme-factory/SKILL-zh.md +59 -0
  361. package/skills/creative/theme-factory/SKILL.md +59 -0
  362. package/skills/creative/theme-factory/theme-showcase.pdf +0 -0
  363. package/skills/creative/theme-factory/themes/arctic-frost.md +19 -0
  364. package/skills/creative/theme-factory/themes/botanical-garden.md +19 -0
  365. package/skills/creative/theme-factory/themes/desert-rose.md +19 -0
  366. package/skills/creative/theme-factory/themes/forest-canopy.md +19 -0
  367. package/skills/creative/theme-factory/themes/golden-hour.md +19 -0
  368. package/skills/creative/theme-factory/themes/midnight-galaxy.md +19 -0
  369. package/skills/creative/theme-factory/themes/modern-minimalist.md +19 -0
  370. package/skills/creative/theme-factory/themes/ocean-depths.md +19 -0
  371. package/skills/creative/theme-factory/themes/sunset-boulevard.md +19 -0
  372. package/skills/creative/theme-factory/themes/tech-innovation.md +19 -0
  373. package/skills/creative/web-artifacts-builder/LICENSE.txt +202 -0
  374. package/skills/creative/web-artifacts-builder/SKILL-zh.md +74 -0
  375. package/skills/creative/web-artifacts-builder/SKILL.md +74 -0
  376. package/skills/creative/web-artifacts-builder/scripts/bundle-artifact.sh +54 -0
  377. package/skills/creative/web-artifacts-builder/scripts/init-artifact.sh +322 -0
  378. package/skills/creative/web-artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  379. package/skills/documents/doc-coauthoring/SKILL-zh.md +375 -0
  380. package/skills/documents/doc-coauthoring/SKILL.md +375 -0
  381. package/skills/documents/docx/SKILL-zh.md +590 -0
  382. package/skills/{docx → documents/docx}/SKILL.md +11 -11
  383. package/skills/{docx → documents/docx}/scripts/comment.py +2 -2
  384. package/skills/{docx → documents/docx}/scripts/office/helpers/simplify_redlines.py +1 -1
  385. package/skills/{docx → documents/docx}/scripts/office/pack.py +2 -2
  386. package/skills/{xlsx → documents/docx}/scripts/office/validate.py +2 -2
  387. package/skills/{xlsx → documents/docx}/scripts/office/validators/redlining.py +1 -1
  388. package/skills/documents/pdf/SKILL-zh.md +314 -0
  389. package/skills/documents/pptx/SKILL-zh.md +232 -0
  390. package/skills/{pptx → documents/pptx}/editing.md +3 -3
  391. package/skills/{pptx → documents/pptx}/scripts/office/helpers/simplify_redlines.py +1 -1
  392. package/skills/{xlsx → documents/pptx}/scripts/office/pack.py +2 -2
  393. package/skills/{pptx → documents/pptx}/scripts/office/validate.py +2 -2
  394. package/skills/{docx → documents/pptx}/scripts/office/validators/redlining.py +1 -1
  395. package/skills/documents/xlsx/SKILL-zh.md +292 -0
  396. package/skills/{xlsx → documents/xlsx}/scripts/office/helpers/simplify_redlines.py +1 -1
  397. package/skills/{pptx → documents/xlsx}/scripts/office/pack.py +2 -2
  398. package/skills/{docx → documents/xlsx}/scripts/office/validate.py +2 -2
  399. package/skills/{pptx → documents/xlsx}/scripts/office/validators/redlining.py +1 -1
  400. package/skills/meta/skill-creator/LICENSE.txt +202 -0
  401. package/skills/meta/skill-creator/SKILL-zh.md +483 -0
  402. package/skills/{skill-creator → meta/skill-creator}/SKILL.md +0 -1
  403. package/skills/tools/find-skills/SKILL-zh.md +440 -0
  404. package/skills/tools/github/SKILL-zh.md +48 -0
  405. package/skills/tools/internal-comms/LICENSE.txt +202 -0
  406. package/skills/tools/internal-comms/SKILL-zh.md +32 -0
  407. package/skills/tools/internal-comms/SKILL.md +32 -0
  408. package/skills/tools/internal-comms/examples/3p-updates.md +47 -0
  409. package/skills/tools/internal-comms/examples/company-newsletter.md +65 -0
  410. package/skills/tools/internal-comms/examples/faq-answers.md +30 -0
  411. package/skills/tools/internal-comms/examples/general-comms.md +16 -0
  412. package/skills/tools/summarize/SKILL-zh.md +47 -0
  413. package/skills/tools/weather/SKILL-zh.md +46 -0
  414. package/skills/tools/webapp-testing/LICENSE.txt +202 -0
  415. package/skills/tools/webapp-testing/SKILL-zh.md +96 -0
  416. package/skills/tools/webapp-testing/SKILL.md +96 -0
  417. package/skills/tools/webapp-testing/examples/console_logging.py +35 -0
  418. package/skills/tools/webapp-testing/examples/element_discovery.py +40 -0
  419. package/skills/tools/webapp-testing/examples/static_html_automation.py +33 -0
  420. package/skills/tools/webapp-testing/scripts/with_server.py +106 -0
  421. package/dist/gateway/static/root/assets/agents-CkgFSiCY.js +0 -216
  422. package/dist/gateway/static/root/assets/agents-CkgFSiCY.js.map +0 -1
  423. package/dist/gateway/static/root/assets/channels-settings-CE7jrdkO.js +0 -9
  424. package/dist/gateway/static/root/assets/channels-settings-CE7jrdkO.js.map +0 -1
  425. package/dist/gateway/static/root/assets/cron-page-BpPPcykJ.js +0 -2
  426. package/dist/gateway/static/root/assets/cron-page-BpPPcykJ.js.map +0 -1
  427. package/dist/gateway/static/root/assets/cron-utils-N1PqD2DB.js +0 -3
  428. package/dist/gateway/static/root/assets/cron-utils-N1PqD2DB.js.map +0 -1
  429. package/dist/gateway/static/root/assets/dist--p2HQ2QF.js +0 -2
  430. package/dist/gateway/static/root/assets/index-Dnfha4O2.css +0 -1
  431. package/dist/gateway/static/root/assets/logs-page-CQwdV_Xw.js +0 -2
  432. package/dist/gateway/static/root/assets/logs-page-CQwdV_Xw.js.map +0 -1
  433. package/dist/gateway/static/root/assets/sessions-page-Be5kIGl_.js +0 -2
  434. package/dist/gateway/static/root/assets/settings-page-PodSlNwr.js +0 -2
  435. package/dist/gateway/static/root/assets/settings-page-PodSlNwr.js.map +0 -1
  436. package/dist/gateway/static/root/assets/skills-page-Clg8deH0.js +0 -3
  437. package/dist/gateway/static/root/assets/skills-page-Clg8deH0.js.map +0 -1
  438. package/dist/src/agent/skills/skills-store-client.d.ts +0 -66
  439. package/dist/src/agent/skills/skills-store-client.js.map +0 -1
  440. package/dist/src/stt/index.d.ts +0 -1
  441. package/dist/src/stt/index.js +0 -8
  442. /package/skills/{docx → documents/docx}/LICENSE.txt +0 -0
  443. /package/skills/{docx → documents/docx}/scripts/__init__.py +0 -0
  444. /package/skills/{docx → documents/docx}/scripts/accept_changes.py +0 -0
  445. /package/skills/{docx → documents/docx}/scripts/office/helpers/__init__.py +0 -0
  446. /package/skills/{docx → documents/docx}/scripts/office/helpers/merge_runs.py +0 -0
  447. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -0
  448. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -0
  449. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -0
  450. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -0
  451. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -0
  452. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -0
  453. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -0
  454. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -0
  455. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -0
  456. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -0
  457. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -0
  458. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -0
  459. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -0
  460. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -0
  461. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -0
  462. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -0
  463. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -0
  464. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -0
  465. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -0
  466. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -0
  467. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -0
  468. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -0
  469. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -0
  470. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -0
  471. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -0
  472. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -0
  473. /package/skills/{docx → documents/docx}/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -0
  474. /package/skills/{docx → documents/docx}/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -0
  475. /package/skills/{docx → documents/docx}/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -0
  476. /package/skills/{docx → documents/docx}/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -0
  477. /package/skills/{docx → documents/docx}/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -0
  478. /package/skills/{docx → documents/docx}/scripts/office/schemas/mce/mc.xsd +0 -0
  479. /package/skills/{docx → documents/docx}/scripts/office/schemas/microsoft/wml-2010.xsd +0 -0
  480. /package/skills/{docx → documents/docx}/scripts/office/schemas/microsoft/wml-2012.xsd +0 -0
  481. /package/skills/{docx → documents/docx}/scripts/office/schemas/microsoft/wml-2018.xsd +0 -0
  482. /package/skills/{docx → documents/docx}/scripts/office/schemas/microsoft/wml-cex-2018.xsd +0 -0
  483. /package/skills/{docx → documents/docx}/scripts/office/schemas/microsoft/wml-cid-2016.xsd +0 -0
  484. /package/skills/{docx → documents/docx}/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -0
  485. /package/skills/{docx → documents/docx}/scripts/office/schemas/microsoft/wml-symex-2015.xsd +0 -0
  486. /package/skills/{docx → documents/docx}/scripts/office/soffice.py +0 -0
  487. /package/skills/{docx → documents/docx}/scripts/office/unpack.py +0 -0
  488. /package/skills/{docx → documents/docx}/scripts/office/validators/__init__.py +0 -0
  489. /package/skills/{docx → documents/docx}/scripts/office/validators/base.py +0 -0
  490. /package/skills/{docx → documents/docx}/scripts/office/validators/docx.py +0 -0
  491. /package/skills/{docx → documents/docx}/scripts/office/validators/pptx.py +0 -0
  492. /package/skills/{docx → documents/docx}/scripts/templates/comments.xml +0 -0
  493. /package/skills/{docx → documents/docx}/scripts/templates/commentsExtended.xml +0 -0
  494. /package/skills/{docx → documents/docx}/scripts/templates/commentsExtensible.xml +0 -0
  495. /package/skills/{docx → documents/docx}/scripts/templates/commentsIds.xml +0 -0
  496. /package/skills/{docx → documents/docx}/scripts/templates/people.xml +0 -0
  497. /package/skills/{pdf → documents/pdf}/LICENSE.txt +0 -0
  498. /package/skills/{pdf → documents/pdf}/SKILL.md +0 -0
  499. /package/skills/{pdf → documents/pdf}/forms.md +0 -0
  500. /package/skills/{pdf → documents/pdf}/reference.md +0 -0
  501. /package/skills/{pdf → documents/pdf}/scripts/check_bounding_boxes.py +0 -0
  502. /package/skills/{pdf → documents/pdf}/scripts/check_fillable_fields.py +0 -0
  503. /package/skills/{pdf → documents/pdf}/scripts/convert_pdf_to_images.py +0 -0
  504. /package/skills/{pdf → documents/pdf}/scripts/create_validation_image.py +0 -0
  505. /package/skills/{pdf → documents/pdf}/scripts/extract_form_field_info.py +0 -0
  506. /package/skills/{pdf → documents/pdf}/scripts/extract_form_structure.py +0 -0
  507. /package/skills/{pdf → documents/pdf}/scripts/fill_fillable_fields.py +0 -0
  508. /package/skills/{pdf → documents/pdf}/scripts/fill_pdf_form_with_annotations.py +0 -0
  509. /package/skills/{pptx → documents/pptx}/LICENSE.txt +0 -0
  510. /package/skills/{pptx → documents/pptx}/SKILL.md +0 -0
  511. /package/skills/{pptx → documents/pptx}/pptxgenjs.md +0 -0
  512. /package/skills/{pptx → documents/pptx}/scripts/__init__.py +0 -0
  513. /package/skills/{pptx → documents/pptx}/scripts/add_slide.py +0 -0
  514. /package/skills/{pptx → documents/pptx}/scripts/clean.py +0 -0
  515. /package/skills/{pptx → documents/pptx}/scripts/office/helpers/__init__.py +0 -0
  516. /package/skills/{pptx → documents/pptx}/scripts/office/helpers/merge_runs.py +0 -0
  517. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -0
  518. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -0
  519. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -0
  520. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -0
  521. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -0
  522. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -0
  523. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -0
  524. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -0
  525. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -0
  526. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -0
  527. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -0
  528. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -0
  529. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -0
  530. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -0
  531. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -0
  532. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -0
  533. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -0
  534. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -0
  535. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -0
  536. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -0
  537. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -0
  538. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -0
  539. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -0
  540. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -0
  541. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -0
  542. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -0
  543. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -0
  544. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -0
  545. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -0
  546. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -0
  547. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -0
  548. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/mce/mc.xsd +0 -0
  549. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/microsoft/wml-2010.xsd +0 -0
  550. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/microsoft/wml-2012.xsd +0 -0
  551. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/microsoft/wml-2018.xsd +0 -0
  552. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/microsoft/wml-cex-2018.xsd +0 -0
  553. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/microsoft/wml-cid-2016.xsd +0 -0
  554. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -0
  555. /package/skills/{pptx → documents/pptx}/scripts/office/schemas/microsoft/wml-symex-2015.xsd +0 -0
  556. /package/skills/{pptx → documents/pptx}/scripts/office/soffice.py +0 -0
  557. /package/skills/{pptx → documents/pptx}/scripts/office/unpack.py +0 -0
  558. /package/skills/{pptx → documents/pptx}/scripts/office/validators/__init__.py +0 -0
  559. /package/skills/{pptx → documents/pptx}/scripts/office/validators/base.py +0 -0
  560. /package/skills/{pptx → documents/pptx}/scripts/office/validators/docx.py +0 -0
  561. /package/skills/{pptx → documents/pptx}/scripts/office/validators/pptx.py +0 -0
  562. /package/skills/{pptx → documents/pptx}/scripts/thumbnail.py +0 -0
  563. /package/skills/{xlsx → documents/xlsx}/LICENSE.txt +0 -0
  564. /package/skills/{xlsx → documents/xlsx}/SKILL.md +0 -0
  565. /package/skills/{skill-creator/scripts → documents/xlsx/scripts/office/helpers}/__init__.py +0 -0
  566. /package/skills/{xlsx → documents/xlsx}/scripts/office/helpers/merge_runs.py +0 -0
  567. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -0
  568. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -0
  569. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -0
  570. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -0
  571. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -0
  572. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -0
  573. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -0
  574. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -0
  575. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -0
  576. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -0
  577. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -0
  578. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -0
  579. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -0
  580. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -0
  581. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -0
  582. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -0
  583. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -0
  584. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -0
  585. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -0
  586. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -0
  587. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -0
  588. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -0
  589. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -0
  590. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -0
  591. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -0
  592. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -0
  593. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -0
  594. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -0
  595. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -0
  596. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -0
  597. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -0
  598. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/mce/mc.xsd +0 -0
  599. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/microsoft/wml-2010.xsd +0 -0
  600. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/microsoft/wml-2012.xsd +0 -0
  601. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/microsoft/wml-2018.xsd +0 -0
  602. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/microsoft/wml-cex-2018.xsd +0 -0
  603. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/microsoft/wml-cid-2016.xsd +0 -0
  604. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -0
  605. /package/skills/{xlsx → documents/xlsx}/scripts/office/schemas/microsoft/wml-symex-2015.xsd +0 -0
  606. /package/skills/{xlsx → documents/xlsx}/scripts/office/soffice.py +0 -0
  607. /package/skills/{xlsx → documents/xlsx}/scripts/office/unpack.py +0 -0
  608. /package/skills/{xlsx → documents/xlsx}/scripts/office/validators/__init__.py +0 -0
  609. /package/skills/{xlsx → documents/xlsx}/scripts/office/validators/base.py +0 -0
  610. /package/skills/{xlsx → documents/xlsx}/scripts/office/validators/docx.py +0 -0
  611. /package/skills/{xlsx → documents/xlsx}/scripts/office/validators/pptx.py +0 -0
  612. /package/skills/{xlsx → documents/xlsx}/scripts/recalc.py +0 -0
  613. /package/skills/{skill-creator → meta/skill-creator}/agents/analyzer.md +0 -0
  614. /package/skills/{skill-creator → meta/skill-creator}/agents/comparator.md +0 -0
  615. /package/skills/{skill-creator → meta/skill-creator}/agents/grader.md +0 -0
  616. /package/skills/{skill-creator → meta/skill-creator}/assets/eval_review.html +0 -0
  617. /package/skills/{skill-creator → meta/skill-creator}/eval-viewer/generate_review.py +0 -0
  618. /package/skills/{skill-creator → meta/skill-creator}/eval-viewer/viewer.html +0 -0
  619. /package/skills/{skill-creator → meta/skill-creator}/references/schemas.md +0 -0
  620. /package/skills/{xlsx/scripts/office/helpers → meta/skill-creator/scripts}/__init__.py +0 -0
  621. /package/skills/{skill-creator → meta/skill-creator}/scripts/aggregate_benchmark.py +0 -0
  622. /package/skills/{skill-creator → meta/skill-creator}/scripts/generate_report.py +0 -0
  623. /package/skills/{skill-creator → meta/skill-creator}/scripts/improve_description.py +0 -0
  624. /package/skills/{skill-creator → meta/skill-creator}/scripts/package_skill.py +0 -0
  625. /package/skills/{skill-creator → meta/skill-creator}/scripts/quick_validate.py +0 -0
  626. /package/skills/{skill-creator → meta/skill-creator}/scripts/run_eval.py +0 -0
  627. /package/skills/{skill-creator → meta/skill-creator}/scripts/run_loop.py +0 -0
  628. /package/skills/{skill-creator → meta/skill-creator}/scripts/utils.py +0 -0
  629. /package/skills/{find-skills → tools/find-skills}/SKILL.md +0 -0
  630. /package/skills/{github → tools/github}/SKILL.md +0 -0
  631. /package/skills/{summarize → tools/summarize}/SKILL.md +0 -0
  632. /package/skills/{weather → tools/weather}/SKILL.md +0 -0
@@ -0,0 +1,590 @@
1
+ ---
2
+ name: docx
3
+ description: "当用户想要创建、读取、编辑或操作 Word 文档(.docx 文件)时使用本技能。触发条件包括:任何提到'Word 文档'、'word document'、'.docx' 或要求生成带有目录、标题、页码或信头等格式的专业文档时。也适用于从 .docx 文件中提取或重组内容、在文档中插入或替换图片、在 Word 文件中执行查找替换、处理修订或批注,或将内容转换为精美的 Word 文档。如果用户要求以 Word 或 .docx 文件形式提供'报告'、'备忘录'、'信函'、'模板'或类似交付物,使用本技能。不要用于 PDF、电子表格、Google Docs 或与文档生成无关的常规编码任务。"
4
+ license: 专有。完整条款见 LICENSE.txt
5
+ ---
6
+
7
+ # DOCX 创建、编辑和分析
8
+
9
+ ## 概述
10
+
11
+ .docx 文件是包含 XML 文件的 ZIP 归档。
12
+
13
+ ## 快速参考
14
+
15
+ | 任务 | 方法 |
16
+ |------|------|
17
+ | 读取/分析内容 | `pandoc` 或解包以获取原始 XML |
18
+ | 创建新文档 | 使用 `docx-js`——见下方"创建新文档" |
19
+ | 编辑现有文档 | 解包 → 编辑 XML → 重新打包——见下方"编辑现有文档" |
20
+
21
+ ### 转换 .doc 为 .docx
22
+
23
+ 旧版 `.doc` 文件必须先转换才能编辑:
24
+
25
+ ```bash
26
+ python scripts/office/soffice.py --headless --convert-to docx document.doc
27
+ ```
28
+
29
+ ### 读取内容
30
+
31
+ ```bash
32
+ # 带修订标记的文字提取
33
+ pandoc --track-changes=all document.docx -o output.md
34
+
35
+ # 原始 XML 访问
36
+ python scripts/office/unpack.py document.docx unpacked/
37
+ ```
38
+
39
+ ### 转换为图片
40
+
41
+ ```bash
42
+ python scripts/office/soffice.py --headless --convert-to pdf document.docx
43
+ pdftoppm -jpeg -r 150 document.pdf page
44
+ ```
45
+
46
+ ### 接受修订
47
+
48
+ 要生成一个接受所有修订的干净文档(需要 LibreOffice):
49
+
50
+ ```bash
51
+ python scripts/accept_changes.py input.docx output.docx
52
+ ```
53
+
54
+ ---
55
+
56
+ ## 创建新文档
57
+
58
+ 使用 JavaScript 生成 .docx 文件,然后验证。安装:`npm install -g docx`
59
+
60
+ ### 设置
61
+ ```javascript
62
+ const { Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell, ImageRun,
63
+ Header, Footer, AlignmentType, PageOrientation, LevelFormat, ExternalHyperlink,
64
+ InternalHyperlink, Bookmark, FootnoteReferenceRun, PositionalTab,
65
+ PositionalTabAlignment, PositionalTabRelativeTo, PositionalTabLeader,
66
+ TabStopType, TabStopPosition, Column, SectionType,
67
+ TableOfContents, HeadingLevel, BorderStyle, WidthType, ShadingType,
68
+ VerticalAlign, PageNumber, PageBreak } = require('docx');
69
+
70
+ const doc = new Document({ sections: [{ children: [/* 内容 */] }] });
71
+ Packer.toBuffer(doc).then(buffer => fs.writeFileSync("doc.docx", buffer));
72
+ ```
73
+
74
+ ### 验证
75
+ 创建文件后,进行验证。如果验证失败,解包、修复 XML 并重新打包。
76
+ ```bash
77
+ python scripts/office/validate.py doc.docx
78
+ ```
79
+
80
+ ### 页面大小
81
+
82
+ ```javascript
83
+ // 关键:docx-js 默认为 A4,不是美式信纸
84
+ // 始终显式设置页面大小以保证结果一致
85
+ sections: [{
86
+ properties: {
87
+ page: {
88
+ size: {
89
+ width: 12240, // 8.5 英寸,单位为 DXA
90
+ height: 15840 // 11 英寸,单位为 DXA
91
+ },
92
+ margin: { top: 1440, right: 1440, bottom: 1440, left: 1440 } // 1 英寸边距
93
+ }
94
+ },
95
+ children: [/* 内容 */]
96
+ }]
97
+ ```
98
+
99
+ **常见页面大小(DXA 单位,1440 DXA = 1 英寸):**
100
+
101
+ | 纸张 | 宽 | 高 | 内容宽度(1 英寸边距) |
102
+ |------|------|--------|---------------------|
103
+ | 美式信纸 | 12,240 | 15,840 | 9,360 |
104
+ | A4(默认) | 11,906 | 16,838 | 9,026 |
105
+
106
+ **横向:** docx-js 内部会交换宽/高,所以传入纵向尺寸,让它处理交换:
107
+ ```javascript
108
+ size: {
109
+ width: 12240, // 传入 SHORT 边作为 width
110
+ height: 15840, // 传入 LONG 边作为 height
111
+ orientation: PageOrientation.LANDSCAPE // docx-js 在 XML 中交换
112
+ },
113
+ // 内容宽度 = 15840 - 左边距 - 右边距(使用长边)
114
+ ```
115
+
116
+ ### 样式(覆盖内置标题)
117
+
118
+ 使用 Arial 作为默认字体(通用支持)。保持标题为黑色以确保可读性。
119
+
120
+ ```javascript
121
+ const doc = new Document({
122
+ styles: {
123
+ default: { document: { run: { font: "Arial", size: 24 } } }, // 12pt 默认
124
+ paragraphStyles: [
125
+ // 重要:使用精确 ID 覆盖内置样式
126
+ { id: "Heading1", name: "Heading 1", basedOn: "Normal", next: "Normal", quickFormat: true,
127
+ run: { size: 32, bold: true, font: "Arial" },
128
+ paragraph: { spacing: { before: 240, after: 240 }, outlineLevel: 0 } }, // TOC 需要 outlineLevel
129
+ { id: "Heading2", name: "Heading 2", basedOn: "Normal", next: "Normal", quickFormat: true,
130
+ run: { size: 28, bold: true, font: "Arial" },
131
+ paragraph: { spacing: { before: 180, after: 180 }, outlineLevel: 1 } },
132
+ ]
133
+ },
134
+ sections: [{
135
+ children: [
136
+ new Paragraph({ heading: HeadingLevel.HEADING_1, children: [new TextRun("标题")] }),
137
+ ]
138
+ }]
139
+ });
140
+ ```
141
+
142
+ ### 列表(永远不要使用 Unicode 项目符号)
143
+
144
+ ```javascript
145
+ // ❌ 错误——不要手动插入项目符号字符
146
+ new Paragraph({ children: [new TextRun("• 项目")] }) // 错误
147
+ new Paragraph({ children: [new TextRun("\u2022 项目")] }) // 错误
148
+
149
+ // ✅ 正确——使用 LevelFormat.BULLET 的编号配置
150
+ const doc = new Document({
151
+ numbering: {
152
+ config: [
153
+ { reference: "bullets",
154
+ levels: [{ level: 0, format: LevelFormat.BULLET, text: "•", alignment: AlignmentType.LEFT,
155
+ style: { paragraph: { indent: { left: 720, hanging: 360 } } } }] },
156
+ { reference: "numbers",
157
+ levels: [{ level: 0, format: LevelFormat.DECIMAL, text: "%1.", alignment: AlignmentType.LEFT,
158
+ style: { paragraph: { indent: { left: 720, hanging: 360 } } } }] },
159
+ ]
160
+ },
161
+ sections: [{
162
+ children: [
163
+ new Paragraph({ numbering: { reference: "bullets", level: 0 },
164
+ children: [new TextRun("项目符号项")] }),
165
+ new Paragraph({ numbering: { reference: "numbers", level: 0 },
166
+ children: [new TextRun("编号项")] }),
167
+ ]
168
+ }]
169
+ });
170
+
171
+ // ⚠️ 每个 reference 创建独立的编号
172
+ // 同一 reference = 继续(1,2,3 然后 4,5,6)
173
+ // 不同 reference = 重新开始(1,2,3 然后 1,2,3)
174
+ ```
175
+
176
+ ### 表格
177
+
178
+ **关键:表格需要双重宽度**——同时设置表格的 `columnWidths` 和每个单元格的 `width`。缺少任何一个,表格在某些平台上会渲染不正确。
179
+
180
+ ```javascript
181
+ // 关键:始终设置表格宽度以保证一致的渲染
182
+ // 关键:使用 ShadingType.CLEAR(非 SOLID)以防止黑色背景
183
+ const border = { style: BorderStyle.SINGLE, size: 1, color: "CCCCCC" };
184
+ const borders = { top: border, bottom: border, left: border, right: border };
185
+
186
+ new Table({
187
+ width: { size: 9360, type: WidthType.DXA }, // 始终使用 DXA(百分比在 Google Docs 中出错)
188
+ columnWidths: [4680, 4680], // 必须总和等于表格宽度(DXA:1440 = 1 英寸)
189
+ rows: [
190
+ new TableRow({
191
+ children: [
192
+ new TableCell({
193
+ borders,
194
+ width: { size: 4680, type: WidthType.DXA }, // 也要在每个单元格上设置
195
+ shading: { fill: "D5E8F0", type: ShadingType.CLEAR }, // CLEAR 而非 SOLID
196
+ margins: { top: 80, bottom: 80, left: 120, right: 120 }, // 单元格内边距(内部的,不增加宽度)
197
+ children: [new Paragraph({ children: [new TextRun("单元格")] })]
198
+ })
199
+ ]
200
+ })
201
+ ]
202
+ })
203
+ ```
204
+
205
+ **表格宽度计算:**
206
+
207
+ 始终使用 `WidthType.DXA`——`WidthType.PERCENTAGE` 在 Google Docs 中会出错。
208
+
209
+ ```javascript
210
+ // 表格宽度 = columnWidths 之和 = 内容宽度
211
+ // 美式信纸 1 英寸边距:12240 - 2880 = 9360 DXA
212
+ width: { size: 9360, type: WidthType.DXA },
213
+ columnWidths: [7000, 2360] // 必须总和等于表格宽度
214
+ ```
215
+
216
+ **宽度规则:**
217
+ - **始终使用 `WidthType.DXA`**——永远不要用 `WidthType.PERCENTAGE`(与 Google Docs 不兼容)
218
+ - 表格宽度必须等于 `columnWidths` 之和
219
+ - 单元格 `width` 必须匹配对应的 `columnWidth`
220
+ - 单元格 `margins` 是内部边距——减少内容区域,不增加单元格宽度
221
+ - 对于全宽表格:使用内容宽度(页面宽度减去左右边距)
222
+
223
+ ### 图片
224
+
225
+ ```javascript
226
+ // 关键:type 参数是必需的
227
+ new Paragraph({
228
+ children: [new ImageRun({
229
+ type: "png", // 必需:png、jpg、jpeg、gif、bmp、svg
230
+ data: fs.readFileSync("image.png"),
231
+ transformation: { width: 200, height: 150 },
232
+ altText: { title: "标题", description: "描述", name: "名称" } // 三者均必需
233
+ })]
234
+ })
235
+ ```
236
+
237
+ ### 分页符
238
+
239
+ ```javascript
240
+ // 关键:PageBreak 必须放在 Paragraph 内部
241
+ new Paragraph({ children: [new PageBreak()] })
242
+
243
+ // 或使用 pageBreakBefore
244
+ new Paragraph({ pageBreakBefore: true, children: [new TextRun("新页面")] })
245
+ ```
246
+
247
+ ### 超链接
248
+
249
+ ```javascript
250
+ // 外部链接
251
+ new Paragraph({
252
+ children: [new ExternalHyperlink({
253
+ children: [new TextRun({ text: "点击此处", style: "Hyperlink" })],
254
+ link: "https://example.com",
255
+ })]
256
+ })
257
+
258
+ // 内部链接(书签 + 引用)
259
+ // 1. 在目标位置创建书签
260
+ new Paragraph({ heading: HeadingLevel.HEADING_1, children: [
261
+ new Bookmark({ id: "chapter1", children: [new TextRun("第 1 章")] }),
262
+ ]})
263
+ // 2. 链接到它
264
+ new Paragraph({ children: [new InternalHyperlink({
265
+ children: [new TextRun({ text: "查看第 1 章", style: "Hyperlink" })],
266
+ anchor: "chapter1",
267
+ })]})
268
+ ```
269
+
270
+ ### 脚注
271
+
272
+ ```javascript
273
+ const doc = new Document({
274
+ footnotes: {
275
+ 1: { children: [new Paragraph("来源:2024 年度报告")] },
276
+ 2: { children: [new Paragraph("方法说明见附录")] },
277
+ },
278
+ sections: [{
279
+ children: [new Paragraph({
280
+ children: [
281
+ new TextRun("收入增长 15%"),
282
+ new FootnoteReferenceRun(1),
283
+ new TextRun(",按调整后指标"),
284
+ new FootnoteReferenceRun(2),
285
+ ],
286
+ })]
287
+ }]
288
+ });
289
+ ```
290
+
291
+ ### 制表位
292
+
293
+ ```javascript
294
+ // 同一行右对齐文字(如日期与标题相对)
295
+ new Paragraph({
296
+ children: [
297
+ new TextRun("公司名称"),
298
+ new TextRun("\t2025 年 1 月"),
299
+ ],
300
+ tabStops: [{ type: TabStopType.RIGHT, position: TabStopPosition.MAX }],
301
+ })
302
+
303
+ // 点状前导符(如目录样式)
304
+ new Paragraph({
305
+ children: [
306
+ new TextRun("引言"),
307
+ new TextRun({ children: [
308
+ new PositionalTab({
309
+ alignment: PositionalTabAlignment.RIGHT,
310
+ relativeTo: PositionalTabRelativeTo.MARGIN,
311
+ leader: PositionalTabLeader.DOT,
312
+ }),
313
+ "3",
314
+ ]}),
315
+ ],
316
+ })
317
+ ```
318
+
319
+ ### 多列布局
320
+
321
+ ```javascript
322
+ // 等宽列
323
+ sections: [{
324
+ properties: {
325
+ column: {
326
+ count: 2, // 列数
327
+ space: 720, // 列间距(DXA,720 = 0.5 英寸)
328
+ equalWidth: true,
329
+ separate: true, // 列之间垂直分隔线
330
+ },
331
+ },
332
+ children: [/* 内容自然跨列流动 */]
333
+ }]
334
+
335
+ // 自定义宽度列(equalWidth 必须为 false)
336
+ sections: [{
337
+ properties: {
338
+ column: {
339
+ equalWidth: false,
340
+ children: [
341
+ new Column({ width: 5400, space: 720 }),
342
+ new Column({ width: 3240 }),
343
+ ],
344
+ },
345
+ },
346
+ children: [/* 内容 */]
347
+ }]
348
+ ```
349
+
350
+ 使用 `type: SectionType.NEXT_COLUMN` 的新章节强制分列。
351
+
352
+ ### 目录
353
+
354
+ ```javascript
355
+ // 关键:标题必须只使用 HeadingLevel——不使用自定义样式
356
+ new TableOfContents("目录", { hyperlink: true, headingStyleRange: "1-3" })
357
+ ```
358
+
359
+ ### 页眉/页脚
360
+
361
+ ```javascript
362
+ sections: [{
363
+ properties: {
364
+ page: { margin: { top: 1440, right: 1440, bottom: 1440, left: 1440 } } // 1440 = 1 英寸
365
+ },
366
+ headers: {
367
+ default: new Header({ children: [new Paragraph({ children: [new TextRun("页眉")] })] })
368
+ },
369
+ footers: {
370
+ default: new Footer({ children: [new Paragraph({
371
+ children: [new TextRun("第 "), new TextRun({ children: [PageNumber.CURRENT] }), new TextRun(" 页")]
372
+ })] })
373
+ },
374
+ children: [/* 内容 */]
375
+ }]
376
+ ```
377
+
378
+ ### docx-js 的关键规则
379
+
380
+ - **显式设置页面大小**——docx-js 默认为 A4;美式文档使用美式信纸(12240 x 15840 DXA)
381
+ - **横向:传入纵向尺寸**——docx-js 内部交换宽/高;传入短边为 `width`,长边为 `height`,设置 `orientation: PageOrientation.LANDSCAPE`
382
+ - **永远不要使用 `\n`**——使用独立的 Paragraph 元素
383
+ - **永远不要使用 Unicode 项目符号**——使用带有 numbering config 的 `LevelFormat.BULLET`
384
+ - **PageBreak 必须在 Paragraph 中**——独立使用会生成无效 XML
385
+ - **ImageRun 需要 `type`**——始终指定 png/jpg 等
386
+ - **始终使用 DXA 设置表格 `width`**——永远不要使用 `WidthType.PERCENTAGE`(在 Google Docs 中出错)
387
+ - **表格需要双重宽度**——`columnWidths` 数组和单元格 `width`,两者必须匹配
388
+ - **表格宽度 = columnWidths 之和**——对于 DXA,确保它们精确相加
389
+ - **始终添加单元格边距**——使用 `margins: { top: 80, bottom: 80, left: 120, right: 120 }` 以保证可读的内边距
390
+ - **使用 `ShadingType.CLEAR`**——表格底纹永远不要用 SOLID
391
+ - **永远不要将表格用作分隔线/装饰线**——单元格有最小高度,会渲染为空盒子(包括在页眉/页脚中);改用 Paragraph 上的 `border: { bottom: { style: BorderStyle.SINGLE, size: 6, color: "2E75B6", space: 1 } }`。对于两栏页脚,使用制表位(见制表位章节),不要使用表格
392
+ - **TOC 只接受 HeadingLevel**——标题段落上不要使用自定义样式
393
+ - **覆盖内置样式**——使用精确 ID:"Heading1"、"Heading2" 等
394
+ - **包含 `outlineLevel`**——TOC 需要(H1 为 0,H2 为 1 等)
395
+
396
+ ---
397
+
398
+ ## 编辑现有文档
399
+
400
+ **按顺序执行所有 3 个步骤。**
401
+
402
+ ### 第 1 步:解包
403
+ ```bash
404
+ python scripts/office/unpack.py document.docx unpacked/
405
+ ```
406
+ 解包 XML,美化格式,合并相邻 runs,将智能引号转换为 XML 实体(`“` 等)以便在编辑中存活。使用 `--merge-runs false` 跳过 run 合并。
407
+
408
+ ### 第 2 步:编辑 XML
409
+
410
+ 编辑 `unpacked/word/` 中的文件。XML 模式见下方 XML 参考。
411
+
412
+ **使用"Claude"作为修订和批注的作者**,除非用户明确要求使用其他名字。
413
+
414
+ **直接使用 Edit 工具进行字符串替换。不要编写 Python 脚本。** 脚本引入不必要的复杂性。Edit 工具精确展示替换的内容。
415
+
416
+ **关键:新内容使用智能引号。** 在添加包含撇号或引号的文字时,使用 XML 实体生成智能引号:
417
+ ```xml
418
+ <!-- 使用这些实体获得专业排版效果 -->
419
+ <w:t>这里&#x2019;是一个引号:&#x201C;你好&#x201D;</w:t>
420
+ ```
421
+ | 实体 | 字符 |
422
+ |------|--------|
423
+ | `&#x2018;` | '(左单引号) |
424
+ | `&#x2019;` | '(右单引号/撇号) |
425
+ | `&#x201C;` | "(左双引号) |
426
+ | `&#x201D;` | "(右双引号) |
427
+
428
+ **添加批注:** 使用 `comment.py` 处理跨多个 XML 文件的样板代码(文本必须预先转义为 XML):
429
+ ```bash
430
+ python scripts/comment.py unpacked/ 0 "批注文本包含 &amp; 和 &#x2019;"
431
+ python scripts/comment.py unpacked/ 1 "回复文本" --parent 0 # 回复批注 0
432
+ python scripts/comment.py unpacked/ 0 "文本" --author "自定义作者" # 自定义作者名称
433
+ ```
434
+ 然后在 document.xml 中添加标记(见 XML 参考中的"批注"部分)。
435
+
436
+ ### 第 3 步:打包
437
+ ```bash
438
+ python scripts/office/pack.py unpacked/ output.docx --original document.docx
439
+ ```
440
+ 自动修复验证、压缩 XML 并创建 DOCX。使用 `--validate false` 跳过验证。
441
+
442
+ **自动修复会修复:**
443
+ - `durableId` >= 0x7FFFFFFF(重新生成有效 ID)
444
+ - 带空白的 `<w:t>` 缺少 `xml:space="preserve"`
445
+
446
+ **自动修复不会修复:**
447
+ - 格式错误的 XML、无效的元素嵌套、缺少关系、违反模式
448
+
449
+ ### 常见陷阱
450
+
451
+ - **替换整个 `<w:r>` 元素**:添加修订时,替换整个 `<w:r>...</w:r>` 块,用 `<w:del>...<w:ins>...` 作为兄弟元素。不要将修订标签插入到 run 内部。
452
+ - **保留 `<w:rPr>` 格式**:将原 run 的 `<w:rPr>` 块复制到你的修订 run 中以保持粗体、字号等。
453
+
454
+ ---
455
+
456
+ ## XML 参考
457
+
458
+ ### 模式合规
459
+
460
+ - **`<w:pPr>` 中的元素顺序**:`<w:pStyle>`、`<w:numPr>`、`<w:spacing>`、`<w:ind>`、`<w:jc>`、`<w:rPr>` 最后
461
+ - **空白字符**:对有前导/尾随空格的 `<w:t>` 添加 `xml:space="preserve"`
462
+ - **RSID**:必须为 8 位十六进制(如 `00AB1234`)
463
+
464
+ ### 修订标记
465
+
466
+ **插入:**
467
+ ```xml
468
+ <w:ins w:id="1" w:author="Claude" w:date="2025-01-01T00:00:00Z">
469
+ <w:r><w:t>插入的文字</w:t></w:r>
470
+ </w:ins>
471
+ ```
472
+
473
+ **删除:**
474
+ ```xml
475
+ <w:del w:id="2" w:author="Claude" w:date="2025-01-01T00:00:00Z">
476
+ <w:r><w:delText>已删除的文字</w:delText></w:r>
477
+ </w:del>
478
+ ```
479
+
480
+ **在 `<w:del>` 内部**:使用 `<w:delText>` 代替 `<w:t>`,使用 `<w:delInstrText>` 代替 `<w:instrText>`。
481
+
482
+ **最小化编辑**——只标记变更:
483
+ ```xml
484
+ <!-- 将"30 天"改为"60 天" -->
485
+ <w:r><w:t>期限为 </w:t></w:r>
486
+ <w:del w:id="1" w:author="Claude" w:date="...">
487
+ <w:r><w:delText>30</w:delText></w:r>
488
+ </w:del>
489
+ <w:ins w:id="2" w:author="Claude" w:date="...">
490
+ <w:r><w:t>60</w:t></w:r>
491
+ </w:ins>
492
+ <w:r><w:t> 天。</w:t></w:r>
493
+ ```
494
+
495
+ **删除整个段落/列表项目**——删除段落的所有内容时,同时将段落标记标记为已删除,使其与下一段合并。在 `<w:pPr><w:rPr>` 中添加 `<w:del/>`:
496
+ ```xml
497
+ <w:p>
498
+ <w:pPr>
499
+ <w:numPr>...</w:numPr> <!-- 如有列表编号 -->
500
+ <w:rPr>
501
+ <w:del w:id="1" w:author="Claude" w:date="2025-01-01T00:00:00Z"/>
502
+ </w:rPr>
503
+ </w:pPr>
504
+ <w:del w:id="2" w:author="Claude" w:date="2025-01-01T00:00:00Z">
505
+ <w:r><w:delText>被删除的整个段落内容...</w:delText></w:r>
506
+ </w:del>
507
+ </w:p>
508
+ ```
509
+ 没有 `<w:pPr><w:rPr>` 中的 `<w:del/>`,接受修订会留下空段落/列表项。
510
+
511
+ **拒绝另一位作者的插入**——将删除嵌套在其插入内部:
512
+ ```xml
513
+ <w:ins w:author="张三" w:id="5">
514
+ <w:del w:author="Claude" w:id="10">
515
+ <w:r><w:delText>他们插入的文字</w:delText></w:r>
516
+ </w:del>
517
+ </w:ins>
518
+ ```
519
+
520
+ **恢复另一位作者的删除**——在其删除后添加插入(不要修改他们的删除):
521
+ ```xml
522
+ <w:del w:author="张三" w:id="5">
523
+ <w:r><w:delText>已删除的文字</w:delText></w:r>
524
+ </w:del>
525
+ <w:ins w:author="Claude" w:id="10">
526
+ <w:r><w:t>已删除的文字</w:t></w:r>
527
+ </w:ins>
528
+ ```
529
+
530
+ ### 批注
531
+
532
+ 运行 `comment.py` 后(见第 2 步),在 document.xml 中添加标记。对于回复,使用 `--parent` 标志并将标记嵌套在父级内部。
533
+
534
+ **关键:`<w:commentRangeStart>` 和 `<w:commentRangeEnd>` 是 `<w:r>` 的兄弟元素,绝不在 `<w:r>` 内部。**
535
+
536
+ ```xml
537
+ <!-- 批注标记是 w:p 的直接子元素,绝不在 w:r 内部 -->
538
+ <w:commentRangeStart w:id="0"/>
539
+ <w:del w:id="1" w:author="Claude" w:date="2025-01-01T00:00:00Z">
540
+ <w:r><w:delText>已删除</w:delText></w:r>
541
+ </w:del>
542
+ <w:r><w:t>更多文字</w:t></w:r>
543
+ <w:commentRangeEnd w:id="0"/>
544
+ <w:r><w:rPr><w:rStyle w:val="CommentReference"/></w:rPr><w:commentReference w:id="0"/></w:r>
545
+
546
+ <!-- 批注 0 带嵌套在内的回复 1 -->
547
+ <w:commentRangeStart w:id="0"/>
548
+ <w:commentRangeStart w:id="1"/>
549
+ <w:r><w:t>文字</w:t></w:r>
550
+ <w:commentRangeEnd w:id="1"/>
551
+ <w:commentRangeEnd w:id="0"/>
552
+ <w:r><w:rPr><w:rStyle w:val="CommentReference"/></w:rPr><w:commentReference w:id="0"/></w:r>
553
+ <w:r><w:rPr><w:rStyle w:val="CommentReference"/></w:rPr><w:commentReference w:id="1"/></w:r>
554
+ ```
555
+
556
+ ### 图片
557
+
558
+ 1. 将图片文件添加到 `word/media/`
559
+ 2. 在 `word/_rels/document.xml.rels` 中添加关系:
560
+ ```xml
561
+ <Relationship Id="rId5" Type=".../image" Target="media/image1.png"/>
562
+ ```
563
+ 3. 在 `[Content_Types].xml` 中添加内容类型:
564
+ ```xml
565
+ <Default Extension="png" ContentType="image/png"/>
566
+ ```
567
+ 4. 在 document.xml 中引用:
568
+ ```xml
569
+ <w:drawing>
570
+ <wp:inline>
571
+ <wp:extent cx="914400" cy="914400"/> <!-- EMU:914400 = 1 英寸 -->
572
+ <a:graphic>
573
+ <a:graphicData uri=".../picture">
574
+ <pic:pic>
575
+ <pic:blipFill><a:blip r:embed="rId5"/></pic:blipFill>
576
+ </pic:pic>
577
+ </a:graphicData>
578
+ </a:graphic>
579
+ </wp:inline>
580
+ </w:drawing>
581
+ ```
582
+
583
+ ---
584
+
585
+ ## 依赖项
586
+
587
+ - **pandoc**:文字提取
588
+ - **docx**:`npm install -g docx`(新文档)
589
+ - **LibreOffice**:PDF 转换(通过 `scripts/office/soffice.py` 为沙箱环境自动配置)
590
+ - **Poppler**:`pdftoppm` 用于图片
@@ -409,9 +409,9 @@ Extracts XML, pretty-prints, merges adjacent runs, and converts smart quotes to
409
409
 
410
410
  Edit files in `unpacked/word/`. See XML Reference below for patterns.
411
411
 
412
- **Use "xopc" as the author** for tracked changes and comments, unless the user explicitly requests use of a different name.
412
+ **Use "Claude" as the author** for tracked changes and comments, unless the user explicitly requests use of a different name.
413
413
 
414
- **Edit the unpacked XML with precise, explicit changes** (search-and-replace or patch tools). Avoid one-off Python scripts for simple text edits—they add complexity. For boilerplate across multiple files, `comment.py` and the office scripts are still appropriate.
414
+ **Use the Edit tool directly for string replacement. Do not write Python scripts.** Scripts introduce unnecessary complexity. The Edit tool shows exactly what is being replaced.
415
415
 
416
416
  **CRITICAL: Use smart quotes for new content.** When adding text with apostrophes or quotes, use XML entities to produce smart quotes:
417
417
  ```xml
@@ -465,14 +465,14 @@ Validates with auto-repair, condenses XML, and creates DOCX. Use `--validate fal
465
465
 
466
466
  **Insertion:**
467
467
  ```xml
468
- <w:ins w:id="1" w:author="xopc" w:date="2025-01-01T00:00:00Z">
468
+ <w:ins w:id="1" w:author="Claude" w:date="2025-01-01T00:00:00Z">
469
469
  <w:r><w:t>inserted text</w:t></w:r>
470
470
  </w:ins>
471
471
  ```
472
472
 
473
473
  **Deletion:**
474
474
  ```xml
475
- <w:del w:id="2" w:author="xopc" w:date="2025-01-01T00:00:00Z">
475
+ <w:del w:id="2" w:author="Claude" w:date="2025-01-01T00:00:00Z">
476
476
  <w:r><w:delText>deleted text</w:delText></w:r>
477
477
  </w:del>
478
478
  ```
@@ -483,10 +483,10 @@ Validates with auto-repair, condenses XML, and creates DOCX. Use `--validate fal
483
483
  ```xml
484
484
  <!-- Change "30 days" to "60 days" -->
485
485
  <w:r><w:t>The term is </w:t></w:r>
486
- <w:del w:id="1" w:author="xopc" w:date="...">
486
+ <w:del w:id="1" w:author="Claude" w:date="...">
487
487
  <w:r><w:delText>30</w:delText></w:r>
488
488
  </w:del>
489
- <w:ins w:id="2" w:author="xopc" w:date="...">
489
+ <w:ins w:id="2" w:author="Claude" w:date="...">
490
490
  <w:r><w:t>60</w:t></w:r>
491
491
  </w:ins>
492
492
  <w:r><w:t> days.</w:t></w:r>
@@ -498,10 +498,10 @@ Validates with auto-repair, condenses XML, and creates DOCX. Use `--validate fal
498
498
  <w:pPr>
499
499
  <w:numPr>...</w:numPr> <!-- list numbering if present -->
500
500
  <w:rPr>
501
- <w:del w:id="1" w:author="xopc" w:date="2025-01-01T00:00:00Z"/>
501
+ <w:del w:id="1" w:author="Claude" w:date="2025-01-01T00:00:00Z"/>
502
502
  </w:rPr>
503
503
  </w:pPr>
504
- <w:del w:id="2" w:author="xopc" w:date="2025-01-01T00:00:00Z">
504
+ <w:del w:id="2" w:author="Claude" w:date="2025-01-01T00:00:00Z">
505
505
  <w:r><w:delText>Entire paragraph content being deleted...</w:delText></w:r>
506
506
  </w:del>
507
507
  </w:p>
@@ -511,7 +511,7 @@ Without the `<w:del/>` in `<w:pPr><w:rPr>`, accepting changes leaves an empty pa
511
511
  **Rejecting another author's insertion** - nest deletion inside their insertion:
512
512
  ```xml
513
513
  <w:ins w:author="Jane" w:id="5">
514
- <w:del w:author="xopc" w:id="10">
514
+ <w:del w:author="Claude" w:id="10">
515
515
  <w:r><w:delText>their inserted text</w:delText></w:r>
516
516
  </w:del>
517
517
  </w:ins>
@@ -522,7 +522,7 @@ Without the `<w:del/>` in `<w:pPr><w:rPr>`, accepting changes leaves an empty pa
522
522
  <w:del w:author="Jane" w:id="5">
523
523
  <w:r><w:delText>deleted text</w:delText></w:r>
524
524
  </w:del>
525
- <w:ins w:author="xopc" w:id="10">
525
+ <w:ins w:author="Claude" w:id="10">
526
526
  <w:r><w:t>deleted text</w:t></w:r>
527
527
  </w:ins>
528
528
  ```
@@ -536,7 +536,7 @@ After running `comment.py` (see Step 2), add markers to document.xml. For replie
536
536
  ```xml
537
537
  <!-- Comment markers are direct children of w:p, never inside w:r -->
538
538
  <w:commentRangeStart w:id="0"/>
539
- <w:del w:id="1" w:author="xopc" w:date="2025-01-01T00:00:00Z">
539
+ <w:del w:id="1" w:author="Claude" w:date="2025-01-01T00:00:00Z">
540
540
  <w:r><w:delText>deleted</w:delText></w:r>
541
541
  </w:del>
542
542
  <w:r><w:t> more text</w:t></w:r>
@@ -219,7 +219,7 @@ def add_comment(
219
219
  unpacked_dir: str,
220
220
  comment_id: int,
221
221
  text: str,
222
- author: str = "xopc",
222
+ author: str = "Claude",
223
223
  initials: str = "C",
224
224
  parent_id: int | None = None,
225
225
  ) -> tuple[str, str]:
@@ -295,7 +295,7 @@ if __name__ == "__main__":
295
295
  p.add_argument("unpacked_dir", help="Unpacked DOCX directory")
296
296
  p.add_argument("comment_id", type=int, help="Comment ID (must be unique)")
297
297
  p.add_argument("text", help="Comment text")
298
- p.add_argument("--author", default="xopc", help="Author name")
298
+ p.add_argument("--author", default="Claude", help="Author name")
299
299
  p.add_argument("--initials", default="C", help="Author initials")
300
300
  p.add_argument("--parent", type=int, help="Parent comment ID (for replies)")
301
301
  args = p.parse_args()