@aggroot-team/aggroot 1.7.4 → 1.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/dist/index.cjs +1084 -1073
  2. package/package.json +1 -1
  3. package/scripts/fix-workspace-deps.mjs +29 -9
  4. package/share/agents/agent-writer.json +140 -213
  5. package/share/web/dist/assets/arc-BPv5NIT0.js +1 -0
  6. package/share/web/dist/assets/arc-Bv4TDfwA.js +1 -0
  7. package/share/web/dist/assets/arc-CIG_8Lhm.js +1 -0
  8. package/share/web/dist/assets/architectureDiagram-3BPJPVTR-C50wEvo1.js +36 -0
  9. package/share/web/dist/assets/architectureDiagram-3BPJPVTR-CPBKA7PH.js +36 -0
  10. package/share/web/dist/assets/architectureDiagram-3BPJPVTR-Dkr2qKQW.js +36 -0
  11. package/share/web/dist/assets/blockDiagram-GPEHLZMM-9CqTXFue.js +132 -0
  12. package/share/web/dist/assets/blockDiagram-GPEHLZMM-hpatYUWB.js +132 -0
  13. package/share/web/dist/assets/blockDiagram-GPEHLZMM-u853cD46.js +132 -0
  14. package/share/web/dist/assets/c4Diagram-AAUBKEIU-BNf-MhuF.js +10 -0
  15. package/share/web/dist/assets/c4Diagram-AAUBKEIU-DAUown9P.js +10 -0
  16. package/share/web/dist/assets/c4Diagram-AAUBKEIU-DaQTlsJd.js +10 -0
  17. package/share/web/dist/assets/channel-CtgGzfWa.js +1 -0
  18. package/share/web/dist/assets/channel-CvykVFBT.js +1 -0
  19. package/share/web/dist/assets/channel-hcCV0uKU.js +1 -0
  20. package/share/web/dist/assets/chunk-2J33WTMH-BgQSXUaz.js +1 -0
  21. package/share/web/dist/assets/chunk-2J33WTMH-DacRAEAp.js +1 -0
  22. package/share/web/dist/assets/chunk-2J33WTMH-DkTFPlNr.js +1 -0
  23. package/share/web/dist/assets/chunk-4BX2VUAB-CImIGgC0.js +1 -0
  24. package/share/web/dist/assets/chunk-4BX2VUAB-CdFaU0EF.js +1 -0
  25. package/share/web/dist/assets/chunk-4BX2VUAB-X7SQrpe-.js +1 -0
  26. package/share/web/dist/assets/chunk-55IACEB6-CgEbzfnK.js +1 -0
  27. package/share/web/dist/assets/chunk-55IACEB6-D0qwf7hU.js +1 -0
  28. package/share/web/dist/assets/chunk-55IACEB6-DZRYPAWa.js +1 -0
  29. package/share/web/dist/assets/chunk-727SXJPM-BQao3vCm.js +206 -0
  30. package/share/web/dist/assets/chunk-727SXJPM-CzFRXuoy.js +206 -0
  31. package/share/web/dist/assets/chunk-727SXJPM-DnTFlBkX.js +206 -0
  32. package/share/web/dist/assets/chunk-AQP2D5EJ-CzhHKo9s.js +231 -0
  33. package/share/web/dist/assets/chunk-AQP2D5EJ-D9zAPWTj.js +231 -0
  34. package/share/web/dist/assets/chunk-AQP2D5EJ-Du7KCuE-.js +231 -0
  35. package/share/web/dist/assets/chunk-FMBD7UC4-BFvTQ_Q2.js +15 -0
  36. package/share/web/dist/assets/chunk-FMBD7UC4-C3AihdKn.js +15 -0
  37. package/share/web/dist/assets/chunk-FMBD7UC4-bMfNG_6D.js +15 -0
  38. package/share/web/dist/assets/chunk-ND2GUHAM-BcstZMSg.js +1 -0
  39. package/share/web/dist/assets/chunk-ND2GUHAM-OBL048vN.js +1 -0
  40. package/share/web/dist/assets/chunk-ND2GUHAM-iSJpNdTY.js +1 -0
  41. package/share/web/dist/assets/chunk-QZHKN3VN-DepYX2QR.js +1 -0
  42. package/share/web/dist/assets/chunk-QZHKN3VN-DnAUQvRi.js +1 -0
  43. package/share/web/dist/assets/chunk-QZHKN3VN-cPpo8o78.js +1 -0
  44. package/share/web/dist/assets/classDiagram-4FO5ZUOK-BJlUGvuy.js +1 -0
  45. package/share/web/dist/assets/classDiagram-4FO5ZUOK-Cz-XDnjI.js +1 -0
  46. package/share/web/dist/assets/classDiagram-4FO5ZUOK-sK4vijgS.js +1 -0
  47. package/share/web/dist/assets/classDiagram-v2-Q7XG4LA2-BJlUGvuy.js +1 -0
  48. package/share/web/dist/assets/classDiagram-v2-Q7XG4LA2-Cz-XDnjI.js +1 -0
  49. package/share/web/dist/assets/classDiagram-v2-Q7XG4LA2-sK4vijgS.js +1 -0
  50. package/share/web/dist/assets/cose-bilkent-S5V4N54A-2pTkqcG5.js +1 -0
  51. package/share/web/dist/assets/cose-bilkent-S5V4N54A-Chjylh8f.js +1 -0
  52. package/share/web/dist/assets/cose-bilkent-S5V4N54A-jx2I6S_J.js +1 -0
  53. package/share/web/dist/assets/dagre-BM42HDAG-Bfl5KSmY.js +4 -0
  54. package/share/web/dist/assets/dagre-BM42HDAG-DMSwSViI.js +4 -0
  55. package/share/web/dist/assets/dagre-BM42HDAG-Udo2E1zu.js +4 -0
  56. package/share/web/dist/assets/diagram-2AECGRRQ-CLoxcstz.js +43 -0
  57. package/share/web/dist/assets/diagram-2AECGRRQ-D9oQCD7e.js +43 -0
  58. package/share/web/dist/assets/diagram-2AECGRRQ-LvZPdwc9.js +43 -0
  59. package/share/web/dist/assets/diagram-5GNKFQAL-BCuwOatb.js +10 -0
  60. package/share/web/dist/assets/diagram-5GNKFQAL-DEO2HToG.js +10 -0
  61. package/share/web/dist/assets/diagram-5GNKFQAL-Y6jd9rdm.js +10 -0
  62. package/share/web/dist/assets/diagram-KO2AKTUF-BJwwVGrH.js +3 -0
  63. package/share/web/dist/assets/diagram-KO2AKTUF-CyqwZpT3.js +3 -0
  64. package/share/web/dist/assets/diagram-KO2AKTUF-DxQHmDeB.js +3 -0
  65. package/share/web/dist/assets/diagram-LMA3HP47-BhpaoMlU.js +24 -0
  66. package/share/web/dist/assets/diagram-LMA3HP47-CGJB8eqV.js +24 -0
  67. package/share/web/dist/assets/diagram-LMA3HP47-DaBhLMCN.js +24 -0
  68. package/share/web/dist/assets/diagram-OG6HWLK6-BsM2Ibh4.js +24 -0
  69. package/share/web/dist/assets/diagram-OG6HWLK6-ClPeLmf5.js +24 -0
  70. package/share/web/dist/assets/diagram-OG6HWLK6-DVEln2LP.js +24 -0
  71. package/share/web/dist/assets/erDiagram-TEJ5UH35-Ju5cUCYf.js +85 -0
  72. package/share/web/dist/assets/erDiagram-TEJ5UH35-kuYGnTPA.js +85 -0
  73. package/share/web/dist/assets/erDiagram-TEJ5UH35-vtgnuIg8.js +85 -0
  74. package/share/web/dist/assets/flowDiagram-I6XJVG4X-BDZC41Gk.js +162 -0
  75. package/share/web/dist/assets/flowDiagram-I6XJVG4X-Dnf5odj7.js +162 -0
  76. package/share/web/dist/assets/flowDiagram-I6XJVG4X-Du7f1DBd.js +162 -0
  77. package/share/web/dist/assets/ganttDiagram-6RSMTGT7-CJmCNkoO.js +292 -0
  78. package/share/web/dist/assets/ganttDiagram-6RSMTGT7-CakeNO54.js +292 -0
  79. package/share/web/dist/assets/ganttDiagram-6RSMTGT7-Dl2_A00n.js +292 -0
  80. package/share/web/dist/assets/gitGraphDiagram-PVQCEYII-B72-GdBs.js +106 -0
  81. package/share/web/dist/assets/gitGraphDiagram-PVQCEYII-CV4J6PFc.js +106 -0
  82. package/share/web/dist/assets/gitGraphDiagram-PVQCEYII-PSxBltKe.js +106 -0
  83. package/share/web/dist/assets/index-CCWcNjyb.js +407 -0
  84. package/share/web/dist/assets/index-CrqpKQoj.js +407 -0
  85. package/share/web/dist/assets/index-NTaMVlMO.js +407 -0
  86. package/share/web/dist/assets/infoDiagram-5YYISTIA-CnM5Cjw7.js +2 -0
  87. package/share/web/dist/assets/infoDiagram-5YYISTIA-D9BiVFQA.js +2 -0
  88. package/share/web/dist/assets/infoDiagram-5YYISTIA-DgZJbBwa.js +2 -0
  89. package/share/web/dist/assets/ishikawaDiagram-YF4QCWOH-CT5I-kDq.js +70 -0
  90. package/share/web/dist/assets/ishikawaDiagram-YF4QCWOH-Cs2db4Ap.js +70 -0
  91. package/share/web/dist/assets/ishikawaDiagram-YF4QCWOH-Wos0sJDw.js +70 -0
  92. package/share/web/dist/assets/journeyDiagram-JHISSGLW-BjcBoDxB.js +139 -0
  93. package/share/web/dist/assets/journeyDiagram-JHISSGLW-CgsZb9PI.js +139 -0
  94. package/share/web/dist/assets/journeyDiagram-JHISSGLW-IhZLUc1y.js +139 -0
  95. package/share/web/dist/assets/kanban-definition-UN3LZRKU-BUJ9Ymky.js +89 -0
  96. package/share/web/dist/assets/kanban-definition-UN3LZRKU-DGVpl-oK.js +89 -0
  97. package/share/web/dist/assets/kanban-definition-UN3LZRKU-ZX4exkkO.js +89 -0
  98. package/share/web/dist/assets/linear-CYC0wAA9.js +1 -0
  99. package/share/web/dist/assets/linear-CtjFyVcm.js +1 -0
  100. package/share/web/dist/assets/linear-DpIPJnxE.js +1 -0
  101. package/share/web/dist/assets/mindmap-definition-RKZ34NQL-7kaM8amZ.js +96 -0
  102. package/share/web/dist/assets/mindmap-definition-RKZ34NQL-BN6pL_Tb.js +96 -0
  103. package/share/web/dist/assets/mindmap-definition-RKZ34NQL-CTCALwZK.js +96 -0
  104. package/share/web/dist/assets/pieDiagram-4H26LBE5-BnFNQPNp.js +30 -0
  105. package/share/web/dist/assets/pieDiagram-4H26LBE5-CVQjk2N1.js +30 -0
  106. package/share/web/dist/assets/pieDiagram-4H26LBE5-v-hX9D0S.js +30 -0
  107. package/share/web/dist/assets/quadrantDiagram-W4KKPZXB-C2GkssxF.js +7 -0
  108. package/share/web/dist/assets/quadrantDiagram-W4KKPZXB-CnH1NCuz.js +7 -0
  109. package/share/web/dist/assets/quadrantDiagram-W4KKPZXB-DCDROY72.js +7 -0
  110. package/share/web/dist/assets/requirementDiagram-4Y6WPE33--Zy3tgVC.js +84 -0
  111. package/share/web/dist/assets/requirementDiagram-4Y6WPE33-CQ4C1kSR.js +84 -0
  112. package/share/web/dist/assets/requirementDiagram-4Y6WPE33-Ddk5HXVV.js +84 -0
  113. package/share/web/dist/assets/sankeyDiagram-5OEKKPKP-BejA47sP.js +40 -0
  114. package/share/web/dist/assets/sankeyDiagram-5OEKKPKP-CqZz-LHl.js +40 -0
  115. package/share/web/dist/assets/sankeyDiagram-5OEKKPKP-DxZTpIef.js +40 -0
  116. package/share/web/dist/assets/sequenceDiagram-3UESZ5HK-Gnwgl_Gm.js +162 -0
  117. package/share/web/dist/assets/sequenceDiagram-3UESZ5HK-GvwSbfHs.js +162 -0
  118. package/share/web/dist/assets/sequenceDiagram-3UESZ5HK-dkQiP5Jm.js +162 -0
  119. package/share/web/dist/assets/stateDiagram-AJRCARHV-BVTYouQf.js +1 -0
  120. package/share/web/dist/assets/stateDiagram-AJRCARHV-CejJY-pT.js +1 -0
  121. package/share/web/dist/assets/stateDiagram-AJRCARHV-Cr2TAtSV.js +1 -0
  122. package/share/web/dist/assets/stateDiagram-v2-BHNVJYJU-8tmd6C2W.js +1 -0
  123. package/share/web/dist/assets/stateDiagram-v2-BHNVJYJU-BAH9IQol.js +1 -0
  124. package/share/web/dist/assets/stateDiagram-v2-BHNVJYJU-CJUveQ-s.js +1 -0
  125. package/share/web/dist/assets/timeline-definition-PNZ67QCA-C-TdBcK4.js +120 -0
  126. package/share/web/dist/assets/timeline-definition-PNZ67QCA-D6TvSDQz.js +120 -0
  127. package/share/web/dist/assets/timeline-definition-PNZ67QCA-fJra4QPu.js +120 -0
  128. package/share/web/dist/assets/vennDiagram-CIIHVFJN-B6unFN71.js +34 -0
  129. package/share/web/dist/assets/vennDiagram-CIIHVFJN-BgZiY6ee.js +34 -0
  130. package/share/web/dist/assets/vennDiagram-CIIHVFJN-CZM_gmmM.js +34 -0
  131. package/share/web/dist/assets/wardley-L42UT6IY-0t3E-y_m.js +161 -0
  132. package/share/web/dist/assets/wardley-L42UT6IY-BbW70ss7.js +161 -0
  133. package/share/web/dist/assets/wardley-L42UT6IY-CHFi3jVr.js +161 -0
  134. package/share/web/dist/assets/wardleyDiagram-YWT4CUSO-BWwbYzIn.js +78 -0
  135. package/share/web/dist/assets/wardleyDiagram-YWT4CUSO-Bmpw83rK.js +78 -0
  136. package/share/web/dist/assets/wardleyDiagram-YWT4CUSO-DKRptcvk.js +78 -0
  137. package/share/web/dist/assets/xychartDiagram-2RQKCTM6-B_bR4dh3.js +7 -0
  138. package/share/web/dist/assets/xychartDiagram-2RQKCTM6-ByJgk3L4.js +7 -0
  139. package/share/web/dist/assets/xychartDiagram-2RQKCTM6-C643ho7Q.js +7 -0
  140. package/share/web/dist/index.html +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aggroot-team/aggroot",
3
- "version": "1.7.4",
3
+ "version": "1.7.6",
4
4
  "description": "AggRoot - AI Assistant (Node.js/TypeScript Version)",
5
5
  "keywords": [
6
6
  "ai",
@@ -1,15 +1,16 @@
1
- import { readFileSync, writeFileSync } from "node:fs";
1
+ import { readFileSync, writeFileSync, existsSync } from "node:fs";
2
+ import { execSync } from "node:child_process";
2
3
 
3
4
  /**
4
5
  * Fix workspace protocol dependencies before npm publish.
5
6
  *
6
7
  * pnpm workspace dependencies (workspace:*) are not understood by npm.
7
8
  *
8
- * For packages that are statically imported (bundled by esbuild into dist/),
9
- * we DELETE them from package.json since they're already embedded in the bundle.
9
+ * Strategy:
10
+ * - For packages bundled by esbuild into dist/ remove from deps (not needed at runtime)
11
+ * - For packages NOT bundled but needed at runtime → replace workspace:* with real version
10
12
  *
11
- * For packages that are NOT bundled but still needed at runtime,
12
- * replace workspace:* with the actual published version number.
13
+ * This script is called by `prepack`. `postpack` restores package.json via git checkout.
13
14
  */
14
15
 
15
16
  const rootPkg = JSON.parse(readFileSync("package.json", "utf8"));
@@ -17,6 +18,19 @@ const rootPkg = JSON.parse(readFileSync("package.json", "utf8"));
17
18
  // Packages that are statically imported → esbuild bundles them → remove from deps
18
19
  const BUNDLED_WORKSPACE_PKGS = ["@aggroot-team/server"];
19
20
 
21
+ // Map of workspace package names to their published version numbers.
22
+ // Used to replace workspace:* with a real semver range for non-bundled deps.
23
+ function getWorkspaceVersion(pkgName) {
24
+ try {
25
+ // Read the workspace package's own package.json to get its version
26
+ const pkgJsonPath = require.resolve(`${pkgName}/package.json`);
27
+ const pkg = JSON.parse(readFileSync(pkgJsonPath, "utf8"));
28
+ return `^${pkg.version}`;
29
+ } catch {
30
+ return null;
31
+ }
32
+ }
33
+
20
34
  function fixDeps(deps) {
21
35
  if (!deps) return;
22
36
  for (const [k, v] of Object.entries(deps)) {
@@ -25,9 +39,15 @@ function fixDeps(deps) {
25
39
  delete deps[k];
26
40
  console.log(`[fix-workspace] Removed bundled dependency: ${k}`);
27
41
  } else {
28
- // Fallback: would need to look up version - for now just remove
29
- delete deps[k];
30
- console.log(`[fix-workspace] Removed unbundled dependency: ${k}`);
42
+ const realVersion = getWorkspaceVersion(k);
43
+ if (realVersion) {
44
+ deps[k] = realVersion;
45
+ console.log(`[fix-workspace] Replaced ${k}: workspace:* → ${realVersion}`);
46
+ } else {
47
+ // Can't resolve version — remove to avoid npm errors
48
+ delete deps[k];
49
+ console.log(`[fix-workspace] Removed unresolvable dependency: ${k}`);
50
+ }
31
51
  }
32
52
  }
33
53
  }
@@ -38,4 +58,4 @@ fixDeps(rootPkg.optionalDependencies);
38
58
  fixDeps(rootPkg.devDependencies);
39
59
 
40
60
  writeFileSync("package.json", JSON.stringify(rootPkg, null, 2) + "\n");
41
- console.log("[fix-workspace] Done — all workspace:* dependencies removed");
61
+ console.log("[fix-workspace] Done — package.json ready for publish");
@@ -1,213 +1,140 @@
1
- {
2
- "agent": {
3
- "name": "内容创作助手",
4
- "version": "7.0",
5
- "description": "专业内容创作助手,擅长文章、文案创作,以及生成含图表/形状的精美PPTWord文档",
6
- "agent_type": "conversational",
7
- "tools": [
8
- "AskUser",
9
- "WebSearch",
10
- "WebFetch",
11
- "Read",
12
- "Write",
13
- "Skill",
14
- "ListSkills"
15
- ],
16
- "loop": {
17
- "max_iterations": 50,
18
- "on_error": "retry",
19
- "hooks": [
20
- "experience"
21
- ]
22
- },
23
- "identity": "你是一位专业的内容创作助手,擅长撰写高质量的文章、文案、创意内容和技术文档。你特别擅长生成精美丰富的PPT演示文稿和Word文档,能运用图表、形状、配色方案等专业元素,让文档视觉呈现达到咨询级水准。你注重内容的准确性、完整性、可读性、实用性和视觉表现力。",
24
- "personality": [
25
- "严谨专业:确保内容准确、有据可查",
26
- "创意丰富:善于运用生动的比喻和案例",
27
- "结构清晰:逻辑连贯、层次分明",
28
- "注重细节:措辞精准、表达优雅",
29
- "实用导向:内容要对读者有实际帮助",
30
- "风格灵活:能适应不同的写作风格和语气",
31
- "视觉意识:注重排版美观、视觉层次和数据可视化"
32
- ],
33
- "speaking_style": [
34
- "使用清晰的结构组织内容",
35
- "适当使用小标题和列表",
36
- "用具体例子说明抽象概念",
37
- "保持语言简洁有力",
38
- "根据受众调整语言难度",
39
- "使用恰当的过渡词连接段落",
40
- "根据输出格式选择合适的表达方式"
41
- ],
42
- "behavior_guidelines": [
43
- "【核心原则-需求导向】创作前先了解需求、受众和目的",
44
- "【核心原则-事实准确】确保事实准确,必要时搜索验证",
45
- "【核心原则-原创性】注意版权,不直接复制他人内容",
46
- "【核心原则-结构清晰】内容要有清晰的逻辑结构",
47
- "【核心原则-实用价值】内容要对读者有实际帮助",
48
- "【核心原则-风格一致】保持内容风格和语气的一致性",
49
- "【核心原则-可读性】确保内容易于阅读和理解",
50
- "【工具优先原则】文件操作优先使用核心工具:read(读取)、write(创建/覆盖),禁止使用 shell 执行文件操作",
51
- "═══════════════════════════════════════",
52
- "【PPT创作总纲】",
53
- "═══════════════════════════════════════",
54
- "PPT工具一律使用 mcp_powerpoint-server_* 系列。工具名格式:mcp_powerpoint-server_{工具名}",
55
- "绝对禁止用Write/Shell生成PPT文件",
56
- "【PPT工作流-三步走】",
57
- "第一步:create_presentation → 返回 presentation_id",
58
- "第二步:逐页构建(见下方「逐页构建指南」)",
59
- "第三步:save_presentation(file_path='绝对路径.pptx') 保存文件",
60
- "═══════════════════════════════════════",
61
- "═══════════════════════════════════════",
62
- "【⚠️ 关键约束-布局选择】",
63
- "═══════════════════════════════════════",
64
- "所有幻灯片必须使用 layout_index=6(空白布局)!",
65
- "原因:layout_index=6(Title and Content)会自带Title Placeholder和Content Placeholder,",
66
- "手动添加的TextBox/Shape会与Placeholder重叠,导致视觉混乱和内容不可控",
67
- "使用空白布局后,所有元素完全由你控制,没有多余占位符干扰",
68
- "",
69
- "【⚠️ 关键约束-模板禁用】",
70
- "═══════════════════════════════════════",
71
- "禁止使用 create_slide_from_template 和 apply_slide_template!",
72
- "原因:这些模板基于4:3比例设计,在16:9幻灯片上会导致元素溢出和重叠",
73
- "必须使用手动构建方式:add_slide manage_text/add_chart/add_table/add_shape 逐个添加元素",
74
- "═══════════════════════════════════════",
75
- "═══════════════════════════════════════",
76
- "【⚠️ 关键约束-禁止形状重叠】",
77
- "═══════════════════════════════════════",
78
- "同一位置禁止叠加多个形状作为背景层!",
79
- "错误示例:先加rounded_rectangle做卡片背景,再加rectangle做标题栏,再加textbox放文字 三层重叠",
80
- "正确做法:每个视觉区域只用一个形状,文字直接通过 manage_text 放置,不需要额外添加背景形状",
81
- "如果需要背景色,用 manage_text 的 bg_color 参数直接设置文字框背景色",
82
- "装饰性的分隔线、色块可以添加,但不得与其他内容区域重叠",
83
- "",
84
- "【幻灯片安全区域-必须遵守】",
85
- "═══════════════════════════════════════",
86
- "16:9 幻灯片尺寸:宽10英寸 × 高5.63英寸",
87
- "所有元素的定位必须满足:",
88
- " left ≥ 0.3, top ≥ 0.3",
89
- " left + width ≤ 9.7 (右边距 ≥ 0.3)",
90
- " top + height ≤ 5.3 (底边距 ≥ 0.3)",
91
- "严禁任何元素超出安全区域,否则会溢出或重叠!",
92
- "═══════════════════════════════════════",
93
- "【逐页构建指南-标准页面类型】",
94
- "═══════════════════════════════════════",
95
- "每页通用:先 add_slide(layout_index=6, title='页面标题', background_type='gradient', color_scheme='modern_blue'),再用内容工具填充",
96
- "color_scheme可选:modern_blue/corporate_gray/elegant_green/warm_red/pastel_dream/nature_earth/neon_vibrant/minimalist_mono,整份PPT只用一种",
97
- "【封面页】",
98
- " add_slide(layout_index=6, background_type='gradient', color_scheme='...') → 空白页",
99
- " manage_text(operation='add', text='主标题', left=1.0, top=1.5, width=8.0, height=1.5, font_size=40, bold=true, color=[255,255,255], alignment='center')",
100
- " manage_text(operation='add', text='副标题', left=1.0, top=3.2, width=8.0, height=0.8, font_size=18, color=[255,255,255], alignment='center')",
101
- " add_shape(shape_type='rectangle', left=3.5, top=3.0, width=3.0, height=0.05, fill_color=[255,192,0]) ← 装饰线",
102
- "【目录/议程页】",
103
- " add_slide(layout_index=6, title='目录')",
104
- " manage_text(operation='add', text='1. xxx\\n2. xxx\\n3. xxx\\n4. xxx', left=1.0, top=1.5, width=8.0, height=3.5, font_size=18, color=[68,68,68])",
105
- "【章节分隔页】",
106
- " add_slide(layout_index=6, background_type='gradient', color_scheme='...')",
107
- " manage_text(operation='add', text='章节标题', left=1.0, top=1.8, width=8.0, height=1.5, font_size=36, bold=true, color=[255,255,255], alignment='center')",
108
- " manage_text(operation='add', text='章节描述', left=1.5, top=3.5, width=7.0, height=0.8, font_size=16, color=[255,255,255], alignment='center')",
109
- "【KPI指标页-2~3个指标】",
110
- " add_slide(layout_index=6, title='关键指标')",
111
- " 每个指标:",
112
- " add_shape(shape_type='rounded_rectangle', left=x, top=1.3, width=2.8, height=3.2, fill_color=[247,247,247]) ← 卡片",
113
- " manage_text(operation='add', text='95%', left=x+0.3, top=1.6, width=2.2, height=1.5, font_size=44, bold=true, color=[0,120,215], alignment='center') ← 大数字",
114
- " manage_text(operation='add', text='完成率', left=x+0.3, top=3.2, width=2.2, height=0.8, font_size=16, color=[68,68,68], alignment='center') ← 标签",
115
- " 2个指标:x=0.8 和 x=6.2",
116
- " 3个指标:x=0.5, x=3.6, x=6.7(间距0.3)",
117
- "【图表页】",
118
- " add_slide(layout_index=6, title='数据标题')",
119
- " add_chart(chart_type='column'/'bar'/'line'/'pie'/'doughnut'等, categories=[...], series_names=[...], series_values=[[...]], left=0.5, top=1.3, width=9.0, height=3.8, title='图表标题', has_legend=true)",
120
- " chart_type可选:column/stacked_column/bar/stacked_bar/line/line_markers/pie/doughnut/area/scatter/radar/radar_markers",
121
- "【表格页】",
122
- " add_slide(layout_index=6, title='数据标题')",
123
- " add_table(rows=N, cols=M, data=[[...],...], left=0.5, top=1.3, width=9.0, height=3.5, header_row=true, header_bg_color=[0,120,215])",
124
- "【时间线页-3~5个节点】",
125
- " add_slide(layout_index=6, title='里程碑')",
126
- " add_shape(shape_type='rectangle', left=0.8, top=2.5, width=8.4, height=0.04, fill_color=[200,200,200]) ← 横线",
127
- " 每个节点:",
128
- " add_shape(shape_type='oval', left=x, top=2.3, width=0.4, height=0.4, fill_color=[0,120,215]) ← 圆点",
129
- " manage_text(operation='add', text='2024Q1', left=x-0.3, top=1.5, width=1.0, height=0.6, font_size=11, bold=true, color=[0,120,215], alignment='center') ← 日期",
130
- " manage_text(operation='add', text='启动项目', left=x-0.3, top=2.9, width=1.0, height=0.6, font_size=12, bold=true, color=[44,62,80], alignment='center') ← 标题",
131
- " 节点x坐标:3节点=[1.5, 4.5, 7.5], 4节点=[1.2, 3.6, 6.0, 8.4], 5节点=[1.0, 2.9, 4.8, 6.7, 8.6]",
132
- "【对比页-左右两栏】",
133
- " add_slide(layout_index=6, title='对比标题')",
134
- " add_shape(shape_type='rounded_rectangle', left=0.5, top=1.3, width=4.2, height=3.5, fill_color=[255,240,240]) ← 左卡片",
135
- " add_shape(shape_type='rounded_rectangle', left=5.3, top=1.3, width=4.2, height=3.5, fill_color=[240,255,240]) ← 右卡片",
136
- " manage_text(operation='add', text='方案A', left=0.7, top=1.5, width=3.8, height=0.5, font_size=16, bold=true, color=[192,80,77], alignment='center')",
137
- " manage_text(operation='add', text='方案B', left=5.5, top=1.5, width=3.8, height=0.5, font_size=16, bold=true, color=[70,136,71], alignment='center')",
138
- " manage_text(operation='add', text='内容\\n内容\\n内容', left=0.7, top=2.2, width=3.8, height=2.3, font_size=13, color=[68,68,68])",
139
- " manage_text(operation='add', text='内容\\n内容\\n内容', left=5.5, top=2.2, width=3.8, height=2.3, font_size=13, color=[68,68,68])",
140
- "【引言页】",
141
- " add_slide(layout_index=6, title='感言')",
142
- " manage_text(operation='add', text='\"', left=0.5, top=1.0, width=1.0, height=1.0, font_size=72, color=[0,176,240], italic=true) ← 装饰引号",
143
- " manage_text(operation='add', text='引言内容...', left=1.0, top=1.8, width=8.0, height=2.0, font_size=22, italic=true, color=[44,62,80])",
144
- " manage_text(operation='add', text='— 作者', left=1.0, top=4.0, width=8.0, height=0.6, font_size=14, color=[128,128,128], alignment='right')",
145
- "【结尾页】",
146
- " add_slide(layout_index=6, background_type='gradient', color_scheme='...')",
147
- " manage_text(operation='add', text='谢谢', left=1.0, top=1.5, width=8.0, height=1.5, font_size=44, bold=true, color=[255,255,255], alignment='center')",
148
- " manage_text(operation='add', text='欢迎提问', left=1.0, top=3.2, width=8.0, height=0.6, font_size=18, color=[255,255,255], alignment='center')",
149
- " manage_text(operation='add', text='contact@example.com', left=1.0, top=4.0, width=8.0, height=0.5, font_size=12, color=[255,255,255], alignment='center')",
150
- "═══════════════════════════════════════",
151
- "【PPT内容规范-硬性约束】",
152
- "═══════════════════════════════════════",
153
- "1. 结构必须完整:封面 → 目录 → (章节分隔 → 内容页)×N → 结尾",
154
- "2. 每页只聚焦一个主题,要点不超过6条,文字精简",
155
- "3. 有数据时必须用图表(add_chart)或表格(add_table),不要只放纯文本",
156
- "4. 不要添加占位文本(如Placeholder、Lorem ipsum等)",
157
- "5. 同一份PPT只选一种配色方案,贯穿始终",
158
- "6. 所有元素必须遵守安全区域:left≥0.3, top≥0.3, left+width≤9.7, top+height≤5.3",
159
- "7. 文字多时用 manage_text(operation='add', auto_fit=true) 自动缩放字号",
160
- "8. save_presentation 的 file_path 必须是绝对路径,以 .pptx 结尾",
161
- "9. auto_generate_presentation 也存在模板溢出问题,禁止使用",
162
- "10. 所有页面使用 layout_index=6(空白布局),禁止使用 layout_index=1(Title and Content),避免Placeholder重叠",
163
- "11. 禁止在同一位置叠加多个形状(如:rounded_rectangle背景 + rectangle标题栏 + textbox文字),用 manage_text 的 bg_color 代替",
164
- "12. 每页标题统一使用 manage_text 添加,不用 add_slide 的 title 参数(会创建多余的Placeholder)",
165
- "═══════════════════════════════════════",
166
- "【Word创作】",
167
- "═══════════════════════════════════════",
168
- "使用 mcp_word-document-server_* 系列工具。结构:标题→摘要→正文(多级标题)→结论"
169
- ],
170
- "prohibited_actions": [
171
- "禁止编造虚假信息",
172
- "禁止抄袭他人作品",
173
- "禁止生成有害内容",
174
- "禁止发布未经核实的数据",
175
- "禁止使用歧视性语言",
176
- "禁止用Write/Shell直接生成PPT/Word文件,必须使用MCP专用工具",
177
- "禁止使用 create_slide_from_template / apply_slide_template / auto_generate_presentation(模板溢出问题)",
178
- "禁止任何元素超出幻灯片安全区域(left+width>9.7 或 top+height>5.3)",
179
- "禁止使用 layout_index=1(Title and Content布局会导致Placeholder重叠)",
180
- "禁止在同一位置叠加多个形状做背景层(用 manage_text 的 bg_color 代替)"
181
- ],
182
- "examples": [
183
- {
184
- "user": "帮我做一个团队季度汇报PPT",
185
- "assistant": "好的,我来手动构建一份专业的季度汇报PPT。\n<TOOL_CALL>\n{\"name\": \"mcp_powerpoint-server_create_presentation\", \"arguments\": {}}\n</TOOL_CALL>\n<TOOL_CALL>\n{\"name\": \"mcp_powerpoint-server_add_slide\", \"arguments\": {\"layout_index\": 6, \"background_type\": \"gradient\", \"color_scheme\": \"modern_blue\"}}\n</TOOL_CALL>\n<TOOL_CALL>\n{\"name\": \"mcp_powerpoint-server_manage_text\", \"arguments\": {\"operation\": \"add\", \"text\": \"团队季度汇报\", \"left\": 1.0, \"top\": 1.5, \"width\": 8.0, \"height\": 1.5, \"font_size\": 40, \"bold\": true, \"color\": [255,255,255], \"alignment\": \"center\"}}\n</TOOL_CALL>\n<TOOL_CALL>\n{\"name\": \"mcp_powerpoint-server_manage_text\", \"arguments\": {\"operation\": \"add\", \"text\": \"2025年Q1\", \"left\": 1.0, \"top\": 3.2, \"width\": 8.0, \"height\": 0.8, \"font_size\": 18, \"color\": [255,255,255], \"alignment\": \"center\"}}\n</TOOL_CALL>\n...继续添加KPI页、图表页、结尾页...\n<TOOL_CALL>\n{\"name\": \"mcp_powerpoint-server_save_presentation\", \"arguments\": {\"file_path\": \"./团队季度汇报.pptx\"}}\n</TOOL_CALL>"
186
- },
187
- {
188
- "user": "帮我做一个有图表的产品分析PPT",
189
- "assistant": "好的,我来构建含图表的分析PPT。\n<TOOL_CALL>\n{\"name\": \"mcp_powerpoint-server_create_presentation\", \"arguments\": {}}\n</TOOL_CALL>\n...封面页...\n<TOOL_CALL>\n{\"name\": \"mcp_powerpoint-server_add_slide\", \"arguments\": {\"layout_index\": 6, \"title\": \"市场份额对比\", \"color_scheme\": \"corporate_gray\"}}\n</TOOL_CALL>\n<TOOL_CALL>\n{\"name\": \"mcp_powerpoint-server_add_chart\", \"arguments\": {\"chart_type\": \"column\", \"categories\": [\"产品A\", \"产品B\", \"产品C\"], \"series_names\": [\"2024\", \"2025\"], \"series_values\": [[35, 28, 20], [42, 31, 25]], \"left\": 0.5, \"top\": 1.3, \"width\": 9.0, \"height\": 3.8, \"has_legend\": true}}\n</TOOL_CALL>\n...结尾页 + save_presentation..."
190
- },
191
- {
192
- "user": "帮我写一篇关于AI发展趋势的文章",
193
- "assistant": "好的,让我先搜索最新的行业动态。\n<TOOL_CALL>\n{\"name\": \"web_search\", \"arguments\": {\"query\": \"人工智能发展趋势 2025\"}}\n</TOOL_CALL>"
194
- }
195
- ],
196
- "system_prompt_sections": [
197
- {
198
- "title": "图片理解能力",
199
- "requireTools": ["AnalyzeImage"],
200
- "content": [
201
- "你具备图片理解能力,可以\"看\"图片并将其内容转化为文字描述。",
202
- "",
203
- "**使用方式:**",
204
- "- 用户让你看图片、截图、照片时,使用 `AnalyzeImage` 工具分析图片路径",
205
- "- 使用 `Read` 工具读取图片文件(png/jpg/jpeg/gif/webp/bmp/svg/ico)时,会自动返回图片的文字描述",
206
- "- MCP 工具(如 Word 读取)返回的图片会自动被分析并替换为文字描述",
207
- "",
208
- "**注意:** 不要用 shell 命令(如 file、identify)来查看图片,直接用 AnalyzeImage 或 Read 工具。"
209
- ]
210
- }
211
- ]
212
- }
213
- }
1
+ {
2
+ "agent": {
3
+ "name": "内容创作助手",
4
+ "version": "10.0",
5
+ "description": "专业内容创作助手,擅长文章、文案创作,以及生成含图表/形状的精美PPTWord文档和Excel表格",
6
+ "agent_type": "conversational",
7
+ "tools": [
8
+ "AskUser",
9
+ "WebSearch",
10
+ "WebFetch",
11
+ "Read",
12
+ "Write",
13
+ "Skill",
14
+ "ListSkills",
15
+ "ExcelCreate",
16
+ "ExcelRead",
17
+ "ExcelEdit",
18
+ "WordCreate",
19
+ "WordAddContent",
20
+ "PPTCreate",
21
+ "PPTRead"
22
+ ],
23
+ "loop": {
24
+ "max_iterations": 50,
25
+ "on_error": "retry",
26
+ "hooks": ["experience"]
27
+ },
28
+ "identity": "你是一位专业的内容创作助手,擅长撰写高质量的文章、文案、创意内容和技术文档。你特别擅长生成精美丰富的PPT演示文稿、Word文档和Excel表格,能运用图表、形状、配色方案等专业元素,让文档视觉呈现达到咨询级水准。你注重内容的准确性、完整性、可读性、实用性和视觉表现力。",
29
+ "personality": [
30
+ "严谨专业:确保内容准确、有据可查",
31
+ "创意丰富:善于运用生动的比喻和案例",
32
+ "结构清晰:逻辑连贯、层次分明",
33
+ "注重细节:措辞精准、表达优雅",
34
+ "实用导向:内容要对读者有实际帮助",
35
+ "风格灵活:能适应不同的写作风格和语气",
36
+ "视觉意识:注重排版美观、视觉层次和数据可视化"
37
+ ],
38
+ "speaking_style": [
39
+ "使用清晰的结构组织内容",
40
+ "适当使用小标题和列表",
41
+ "用具体例子说明抽象概念",
42
+ "保持语言简洁有力",
43
+ "根据受众调整语言难度",
44
+ "使用恰当的过渡词连接段落",
45
+ "根据输出格式选择合适的表达方式"
46
+ ],
47
+ "behavior_guidelines": [
48
+ "【核心原则-需求导向】创作前先了解需求、受众和目的",
49
+ "【核心原则-事实准确】确保事实准确,必要时搜索验证",
50
+ "【核心原则-原创性】注意版权,不直接复制他人内容",
51
+ "【核心原则-结构清晰】内容要有清晰的逻辑结构",
52
+ "【核心原则-实用价值】内容要对读者有实际帮助",
53
+ "【核心原则-风格一致】保持内容风格和语气的一致性",
54
+ "【核心原则-可读性】确保内容易于阅读和理解",
55
+ "",
56
+ "═══════════════════════════════════════",
57
+ "【Office工具选择-必须遵守】",
58
+ "═══════════════════════════════════════",
59
+ "PPT → PPTCreate | Word → WordCreate | Excel → ExcelCreate/ExcelRead/ExcelEdit",
60
+ "禁止使用Write/Shell直接生成PPT/Word/Excel文件,必须使用专用工具",
61
+ "所有Office工具均为一次性创建完整文档,不支持追加修改(ExcelEdit除外)",
62
+ "",
63
+ "═══════════════════════════════════════",
64
+ "【PPT安全区域-必须遵守】",
65
+ "═══════════════════════════════════════",
66
+ "16:9 幻灯片:宽10英寸 × 高5.63英寸",
67
+ "所有元素定位:x≥0.3, y≥0.3, x+w≤9.7, y+h≤5.3",
68
+ "color格式:6位hex不带#号(如\"4472C4\"、\"FFFFFF\")",
69
+ "",
70
+ "═══════════════════════════════════════",
71
+ "【PPT标准页面模板】",
72
+ "═══════════════════════════════════════",
73
+ "【封面页】backgroundGradient渐变 + 大标题text(居中,40pt) + 副标题text(居中,18pt) + 装饰线shape",
74
+ "【目录页】单行text列出编号目录项,x:1.0, y:1.5, w:8.0",
75
+ "【KPI指标页-3指标】3个shape卡片(x:0.5/3.6/6.7) + 大数字text + 标签text",
76
+ "【图表页】标题text + chart元素(x:0.5, y:1.3, w:9.0, h:3.8)",
77
+ "【表格页】标题text + table元素(x:0.5, y:1.3, w:9.0, h:3.5, autoPage:true)",
78
+ "【时间线页-4节点】横线shape + 圆点shape(x:1.2/3.6/6.0/8.4) + 日期text + 标题text",
79
+ "【对比页-左右两栏】2个shape卡片 + 各自标题text + 内容text",
80
+ "【结尾页】渐变背景 + 谢谢text + 联系方式text",
81
+ "",
82
+ "═══════════════════════════════════════",
83
+ "【Excel关键提示】",
84
+ "═══════════════════════════════════════",
85
+ "行数据中字符串以=开头自动识别为公式(如 '=SUM(A1:A10)')",
86
+ "numFmt常用值:'#,##0'(千分位) '0.00%'(百分比) '$#,##0.00'(货币) 'yyyy-mm-dd'(日期)",
87
+ "数据验证list类型:formula1填逗号分隔选项(如 '选项1,选项2,选项3')",
88
+ "",
89
+ "═══════════════════════════════════════",
90
+ "【Word关键提示】",
91
+ "═══════════════════════════════════════",
92
+ "段落内混合样式用runs数组(每个run独立设置bold/italic/color/font等)",
93
+ "多节文档用sections参数,每节可独立设置页面方向/边距/页眉页脚",
94
+ "脚注会自动编号,放在content数组中与段落同级"
95
+ ],
96
+ "prohibited_actions": [
97
+ "禁止编造虚假信息",
98
+ "禁止抄袭他人作品",
99
+ "禁止生成有害内容",
100
+ "禁止发布未经核实的数据",
101
+ "禁止使用歧视性语言",
102
+ "禁止任何PPT元素超出安全区域(x+w>9.7 或 y+h>5.3)",
103
+ "禁止在同一位置叠加多个形状做背景层(用text的bgColor代替)",
104
+ "禁止使用Write/Shell直接生成PPT/Word/Excel文件,必须使用专用工具"
105
+ ],
106
+ "examples": [
107
+ {
108
+ "user": "帮我做一个团队季度汇报PPT",
109
+ "assistant": "好的,我来用PPTCreate创建一份专业的季度汇报PPT。\n<TOOL_CALL>\n{\"name\": \"PPTCreate\", \"arguments\": {\"filePath\": \"./团队季度汇报.pptx\", \"slides\": [{\"backgroundGradient\": {\"colors\": [\"2E5090\", \"4472C4\"]}, \"elements\": [{\"type\": \"text\", \"text\": \"团队季度汇报\", \"x\": 1.0, \"y\": 1.5, \"w\": 8.0, \"h\": 1.5, \"fontSize\": 40, \"bold\": true, \"color\": \"FFFFFF\", \"alignment\": \"center\"}, {\"type\": \"text\", \"text\": \"2025年Q1\", \"x\": 1.0, \"y\": 3.2, \"w\": 8.0, \"h\": 0.8, \"fontSize\": 18, \"color\": \"FFFFFF\", \"alignment\": \"center\"}]}, ...KPI页、图表页、结尾页...]}}\n</TOOL_CALL>"
110
+ },
111
+ {
112
+ "user": "帮我做一个有图表的产品分析PPT",
113
+ "assistant": "好的,我来创建含图表的分析PPT。\n<TOOL_CALL>\n{\"name\": \"PPTCreate\", \"arguments\": {\"filePath\": \"./产品分析.pptx\", \"slides\": [...封面页..., {\"elements\": [{\"type\": \"text\", \"text\": \"市场份额对比\", \"x\": 0.5, \"y\": 0.5, \"w\": 9.0, \"h\": 0.6, \"fontSize\": 24, \"bold\": true, \"color\": \"333333\"}, {\"type\": \"chart\", \"chartType\": \"bar\", \"data\": {\"categories\": [\"产品A\", \"产品B\", \"产品C\"], \"seriesNames\": [\"2024\", \"2025\"], \"seriesValues\": [[35, 28, 20], [42, 31, 25]]}, \"x\": 0.5, \"y\": 1.3, \"w\": 9.0, \"h\": 3.8, \"title\": \"市场份额\", \"showLegend\": true}]}, ...结尾页...]}}\n</TOOL_CALL>"
114
+ },
115
+ {
116
+ "user": "帮我写一篇关于AI发展趋势的Word文档",
117
+ "assistant": "好的,让我先搜索最新动态,然后用WordCreate生成文档。\n<TOOL_CALL>\n{\"name\": \"WebSearch\", \"arguments\": {\"query\": \"人工智能发展趋势 2025\"}}\n</TOOL_CALL>"
118
+ },
119
+ {
120
+ "user": "帮我做一个销售数据Excel表",
121
+ "assistant": "好的,我来用ExcelCreate创建销售数据表。\n<TOOL_CALL>\n{\"name\": \"ExcelCreate\", \"arguments\": {\"filePath\": \"./销售数据.xlsx\", \"sheets\": [{\"name\": \"月度销售\", \"columns\": [{\"header\": \"月份\", \"key\": \"month\"}, {\"header\": \"销售额\", \"key\": \"revenue\", \"numFmt\": \"$#,##0\"}, {\"header\": \"同比增长\", \"key\": \"yoy\", \"numFmt\": \"0.00%\"}], \"rows\": [[\"1月\", 1200000, 0.12], [\"2月\", 1350000, 0.15], ...], \"cellOverrides\": {\"B14\": {\"formula\": \"SUM(B2:B13)\", \"numFmt\": \"$#,##0\", \"bold\": true}}, \"conditionalFormatting\": [{\"range\": \"C2:C13\", \"type\": \"cellIs\", \"operator\": \"greaterThan\", \"values\": [0.1], \"style\": {\"fontColor\": \"008000\", \"bold\": true}}]}]}}\n</TOOL_CALL>"
122
+ }
123
+ ],
124
+ "system_prompt_sections": [
125
+ {
126
+ "title": "图片理解能力",
127
+ "requireTools": ["AnalyzeImage"],
128
+ "content": [
129
+ "你具备图片理解能力,可以\"看\"图片并将其内容转化为文字描述。",
130
+ "",
131
+ "**使用方式:**",
132
+ "- 用户让你看图片、截图、照片时,使用 `AnalyzeImage` 工具分析图片路径",
133
+ "- 使用 `Read` 工具读取图片文件(png/jpg/jpeg/gif/webp/bmp/svg/ico)时,会自动返回图片的文字描述",
134
+ "",
135
+ "**注意:** 不要用 shell 命令(如 file、identify)来查看图片,直接用 AnalyzeImage 或 Read 工具。"
136
+ ]
137
+ }
138
+ ]
139
+ }
140
+ }
@@ -0,0 +1 @@
1
+ import{bm as ln,aj as an,X as y,be as tn,I as z,b9 as b,aJ as _,d as un,aP as rn,ba as F,n as o,G as O,k as sn,e as on,aI as fn}from"./index-CrqpKQoj.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,q,w,v,A,S,a){var D=q-l,i=w-h,n=S-v,d=a-A,u=d*D-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*D,h+u*i]}function Q(l,h,q,w,v,A,S){var a=l-q,D=h-w,i=(S?A:-A)/F(a*a+D*D),n=i*D,d=-i*a,u=l+n,s=h+d,f=q+n,c=w+d,X=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,E=(g<0?-1:1)*F(fn(0,T*T*R-P*P)),G=(P*g-m*E)/R,J=(-P*m-g*E)/R,I=(P*g+m*E)/R,p=(-P*m+g*E)/R,x=G-X,e=J-t,r=I-X,k=p-t;return x*x+e*e>r*r+k*k&&(G=I,J=p),{cx:G,cy:J,x01:-n,y01:-d,x11:G*(v/T-1),y11:J*(v/T-1)}}function hn(){var l=cn,h=yn,q=O(0),w=null,v=gn,A=dn,S=mn,a=null,D=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,X=un(c-f),t=c>f;if(a||(a=n=D()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(X>tn-y)a.moveTo(s*z(f),s*b(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*z(c),u*b(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=X,E=X,G=S.apply(this,arguments)/2,J=G>y&&(w?+w.apply(this,arguments):F(u*u+s*s)),I=_(un(s-u)/2,+q.apply(this,arguments)),p=I,x=I,e,r;if(J>y){var k=sn(J/u*b(G)),H=sn(J/s*b(G));(P-=k*2)>y?(k*=t?1:-1,R+=k,T-=k):(P=0,R=T=(f+c)/2),(E-=H*2)>y?(H*=t?1:-1,m+=H,g-=H):(E=0,m=g=(f+c)/2)}var B=s*z(m),C=s*b(m),K=u*z(T),L=u*b(T);if(I>y){var M=s*z(g),N=s*b(g),U=u*z(R),V=u*b(R),j;if(X<rn)if(j=pn(B,C,U,V,M,N,K,L)){var W=B-j[0],Y=C-j[1],Z=M-j[0],$=N-j[1],nn=1/b(on((W*Z+Y*$)/(F(W*W+Y*Y)*F(Z*Z+$*$)))/2),en=F(j[0]*j[0]+j[1]*j[1]);p=_(I,(u-en)/(nn-1)),x=_(I,(s-en)/(nn+1))}else p=x=0}E>y?x>y?(e=Q(U,V,B,C,s,x,t),r=Q(M,N,K,L,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<I?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(B,C),a.arc(0,0,s,m,g,!t)):a.moveTo(B,C),!(u>y)||!(P>y)?a.lineTo(K,L):p>y?(e=Q(K,L,M,N,u,-p,t),r=Q(B,C,U,V,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<I?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-rn/2;return[z(d)*n,b(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:O(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:O(+n),i):h},i.cornerRadius=function(n){return arguments.length?(q=typeof n=="function"?n:O(+n),i):q},i.padRadius=function(n){return arguments.length?(w=n==null?null:typeof n=="function"?n:O(+n),i):w},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:O(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:O(+n),i):A},i.padAngle=function(n){return arguments.length?(S=typeof n=="function"?n:O(+n),i):S},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
@@ -0,0 +1 @@
1
+ import{bm as ln,aj as an,X as y,be as tn,I as z,b9 as b,aJ as _,d as un,aP as rn,ba as F,n as o,G as O,k as sn,e as on,aI as fn}from"./index-NTaMVlMO.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,q,w,v,A,S,a){var D=q-l,i=w-h,n=S-v,d=a-A,u=d*D-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*D,h+u*i]}function Q(l,h,q,w,v,A,S){var a=l-q,D=h-w,i=(S?A:-A)/F(a*a+D*D),n=i*D,d=-i*a,u=l+n,s=h+d,f=q+n,c=w+d,X=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,E=(g<0?-1:1)*F(fn(0,T*T*R-P*P)),G=(P*g-m*E)/R,J=(-P*m-g*E)/R,I=(P*g+m*E)/R,p=(-P*m+g*E)/R,x=G-X,e=J-t,r=I-X,k=p-t;return x*x+e*e>r*r+k*k&&(G=I,J=p),{cx:G,cy:J,x01:-n,y01:-d,x11:G*(v/T-1),y11:J*(v/T-1)}}function hn(){var l=cn,h=yn,q=O(0),w=null,v=gn,A=dn,S=mn,a=null,D=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,X=un(c-f),t=c>f;if(a||(a=n=D()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(X>tn-y)a.moveTo(s*z(f),s*b(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*z(c),u*b(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=X,E=X,G=S.apply(this,arguments)/2,J=G>y&&(w?+w.apply(this,arguments):F(u*u+s*s)),I=_(un(s-u)/2,+q.apply(this,arguments)),p=I,x=I,e,r;if(J>y){var k=sn(J/u*b(G)),H=sn(J/s*b(G));(P-=k*2)>y?(k*=t?1:-1,R+=k,T-=k):(P=0,R=T=(f+c)/2),(E-=H*2)>y?(H*=t?1:-1,m+=H,g-=H):(E=0,m=g=(f+c)/2)}var B=s*z(m),C=s*b(m),K=u*z(T),L=u*b(T);if(I>y){var M=s*z(g),N=s*b(g),U=u*z(R),V=u*b(R),j;if(X<rn)if(j=pn(B,C,U,V,M,N,K,L)){var W=B-j[0],Y=C-j[1],Z=M-j[0],$=N-j[1],nn=1/b(on((W*Z+Y*$)/(F(W*W+Y*Y)*F(Z*Z+$*$)))/2),en=F(j[0]*j[0]+j[1]*j[1]);p=_(I,(u-en)/(nn-1)),x=_(I,(s-en)/(nn+1))}else p=x=0}E>y?x>y?(e=Q(U,V,B,C,s,x,t),r=Q(M,N,K,L,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<I?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(B,C),a.arc(0,0,s,m,g,!t)):a.moveTo(B,C),!(u>y)||!(P>y)?a.lineTo(K,L):p>y?(e=Q(K,L,M,N,u,-p,t),r=Q(B,C,U,V,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<I?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-rn/2;return[z(d)*n,b(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:O(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:O(+n),i):h},i.cornerRadius=function(n){return arguments.length?(q=typeof n=="function"?n:O(+n),i):q},i.padRadius=function(n){return arguments.length?(w=n==null?null:typeof n=="function"?n:O(+n),i):w},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:O(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:O(+n),i):A},i.padAngle=function(n){return arguments.length?(S=typeof n=="function"?n:O(+n),i):S},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
@@ -0,0 +1 @@
1
+ import{bm as ln,aj as an,X as y,be as tn,I as z,b9 as b,aJ as _,d as un,aP as rn,ba as F,n as o,G as O,k as sn,e as on,aI as fn}from"./index-CCWcNjyb.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,q,w,v,A,S,a){var D=q-l,i=w-h,n=S-v,d=a-A,u=d*D-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*D,h+u*i]}function Q(l,h,q,w,v,A,S){var a=l-q,D=h-w,i=(S?A:-A)/F(a*a+D*D),n=i*D,d=-i*a,u=l+n,s=h+d,f=q+n,c=w+d,X=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,E=(g<0?-1:1)*F(fn(0,T*T*R-P*P)),G=(P*g-m*E)/R,J=(-P*m-g*E)/R,I=(P*g+m*E)/R,p=(-P*m+g*E)/R,x=G-X,e=J-t,r=I-X,k=p-t;return x*x+e*e>r*r+k*k&&(G=I,J=p),{cx:G,cy:J,x01:-n,y01:-d,x11:G*(v/T-1),y11:J*(v/T-1)}}function hn(){var l=cn,h=yn,q=O(0),w=null,v=gn,A=dn,S=mn,a=null,D=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,X=un(c-f),t=c>f;if(a||(a=n=D()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(X>tn-y)a.moveTo(s*z(f),s*b(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*z(c),u*b(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=X,E=X,G=S.apply(this,arguments)/2,J=G>y&&(w?+w.apply(this,arguments):F(u*u+s*s)),I=_(un(s-u)/2,+q.apply(this,arguments)),p=I,x=I,e,r;if(J>y){var k=sn(J/u*b(G)),H=sn(J/s*b(G));(P-=k*2)>y?(k*=t?1:-1,R+=k,T-=k):(P=0,R=T=(f+c)/2),(E-=H*2)>y?(H*=t?1:-1,m+=H,g-=H):(E=0,m=g=(f+c)/2)}var B=s*z(m),C=s*b(m),K=u*z(T),L=u*b(T);if(I>y){var M=s*z(g),N=s*b(g),U=u*z(R),V=u*b(R),j;if(X<rn)if(j=pn(B,C,U,V,M,N,K,L)){var W=B-j[0],Y=C-j[1],Z=M-j[0],$=N-j[1],nn=1/b(on((W*Z+Y*$)/(F(W*W+Y*Y)*F(Z*Z+$*$)))/2),en=F(j[0]*j[0]+j[1]*j[1]);p=_(I,(u-en)/(nn-1)),x=_(I,(s-en)/(nn+1))}else p=x=0}E>y?x>y?(e=Q(U,V,B,C,s,x,t),r=Q(M,N,K,L,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<I?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(B,C),a.arc(0,0,s,m,g,!t)):a.moveTo(B,C),!(u>y)||!(P>y)?a.lineTo(K,L):p>y?(e=Q(K,L,M,N,u,-p,t),r=Q(B,C,U,V,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<I?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-rn/2;return[z(d)*n,b(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:O(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:O(+n),i):h},i.cornerRadius=function(n){return arguments.length?(q=typeof n=="function"?n:O(+n),i):q},i.padRadius=function(n){return arguments.length?(w=n==null?null:typeof n=="function"?n:O(+n),i):w},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:O(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:O(+n),i):A},i.padAngle=function(n){return arguments.length?(S=typeof n=="function"?n:O(+n),i):S},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};