local-cli-agent 5.0.4 → 5.0.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 (187) hide show
  1. package/dist/agents/browser/browser-sub-agent.d.ts.map +1 -1
  2. package/dist/agents/browser/browser-sub-agent.js +3 -0
  3. package/dist/agents/browser/browser-sub-agent.js.map +1 -1
  4. package/dist/constants.d.ts +1 -2
  5. package/dist/constants.d.ts.map +1 -1
  6. package/dist/constants.js +1 -2
  7. package/dist/constants.js.map +1 -1
  8. package/dist/core/llm/llm-client.d.ts +1 -0
  9. package/dist/core/llm/llm-client.d.ts.map +1 -1
  10. package/dist/core/llm/llm-client.js +17 -4
  11. package/dist/core/llm/llm-client.js.map +1 -1
  12. package/dist/core/llm/providers.d.ts +12 -0
  13. package/dist/core/llm/providers.d.ts.map +1 -0
  14. package/dist/core/llm/providers.js +80 -0
  15. package/dist/core/llm/providers.js.map +1 -0
  16. package/dist/prompts/system/plan-execute.d.ts.map +1 -1
  17. package/dist/prompts/system/plan-execute.js +40 -4
  18. package/dist/prompts/system/plan-execute.js.map +1 -1
  19. package/dist/tools/browser/browser-client.d.ts +13 -1
  20. package/dist/tools/browser/browser-client.d.ts.map +1 -1
  21. package/dist/tools/browser/browser-client.js +137 -9
  22. package/dist/tools/browser/browser-client.js.map +1 -1
  23. package/dist/tools/browser/browser-tools.d.ts +8 -2
  24. package/dist/tools/browser/browser-tools.d.ts.map +1 -1
  25. package/dist/tools/browser/browser-tools.js +428 -49
  26. package/dist/tools/browser/browser-tools.js.map +1 -1
  27. package/dist/tools/browser/index.d.ts +1 -1
  28. package/dist/tools/browser/index.d.ts.map +1 -1
  29. package/dist/tools/browser/index.js +1 -1
  30. package/dist/tools/browser/index.js.map +1 -1
  31. package/dist/tools/llm/simple/planning-tools.d.ts +1 -0
  32. package/dist/tools/llm/simple/planning-tools.d.ts.map +1 -1
  33. package/dist/tools/llm/simple/planning-tools.js +80 -26
  34. package/dist/tools/llm/simple/planning-tools.js.map +1 -1
  35. package/dist/tools/llm/simple/read-image-tool.d.ts.map +1 -1
  36. package/dist/tools/llm/simple/read-image-tool.js +0 -2
  37. package/dist/tools/llm/simple/read-image-tool.js.map +1 -1
  38. package/dist/tools/office/excel-tools/advanced.d.ts +13 -0
  39. package/dist/tools/office/excel-tools/advanced.d.ts.map +1 -0
  40. package/dist/tools/office/excel-tools/advanced.js +364 -0
  41. package/dist/tools/office/excel-tools/advanced.js.map +1 -0
  42. package/dist/tools/office/excel-tools/cells.js +1 -1
  43. package/dist/tools/office/excel-tools/cells.js.map +1 -1
  44. package/dist/tools/office/excel-tools/charts.d.ts +6 -0
  45. package/dist/tools/office/excel-tools/charts.d.ts.map +1 -1
  46. package/dist/tools/office/excel-tools/charts.js +250 -1
  47. package/dist/tools/office/excel-tools/charts.js.map +1 -1
  48. package/dist/tools/office/excel-tools/comments.d.ts +1 -0
  49. package/dist/tools/office/excel-tools/comments.d.ts.map +1 -1
  50. package/dist/tools/office/excel-tools/comments.js +36 -0
  51. package/dist/tools/office/excel-tools/comments.js.map +1 -1
  52. package/dist/tools/office/excel-tools/data-ops.d.ts +4 -0
  53. package/dist/tools/office/excel-tools/data-ops.d.ts.map +1 -1
  54. package/dist/tools/office/excel-tools/data-ops.js +155 -1
  55. package/dist/tools/office/excel-tools/data-ops.js.map +1 -1
  56. package/dist/tools/office/excel-tools/export.d.ts +3 -0
  57. package/dist/tools/office/excel-tools/export.d.ts.map +1 -1
  58. package/dist/tools/office/excel-tools/export.js +117 -1
  59. package/dist/tools/office/excel-tools/export.js.map +1 -1
  60. package/dist/tools/office/excel-tools/formatting.d.ts +2 -0
  61. package/dist/tools/office/excel-tools/formatting.d.ts.map +1 -1
  62. package/dist/tools/office/excel-tools/formatting.js +74 -0
  63. package/dist/tools/office/excel-tools/formatting.js.map +1 -1
  64. package/dist/tools/office/excel-tools/formulas.d.ts +11 -0
  65. package/dist/tools/office/excel-tools/formulas.d.ts.map +1 -0
  66. package/dist/tools/office/excel-tools/formulas.js +313 -0
  67. package/dist/tools/office/excel-tools/formulas.js.map +1 -0
  68. package/dist/tools/office/excel-tools/index.d.ts +5 -0
  69. package/dist/tools/office/excel-tools/index.d.ts.map +1 -1
  70. package/dist/tools/office/excel-tools/index.js +15 -0
  71. package/dist/tools/office/excel-tools/index.js.map +1 -1
  72. package/dist/tools/office/excel-tools/launch.d.ts +0 -1
  73. package/dist/tools/office/excel-tools/launch.d.ts.map +1 -1
  74. package/dist/tools/office/excel-tools/launch.js +33 -36
  75. package/dist/tools/office/excel-tools/launch.js.map +1 -1
  76. package/dist/tools/office/excel-tools/media.d.ts +5 -0
  77. package/dist/tools/office/excel-tools/media.d.ts.map +1 -1
  78. package/dist/tools/office/excel-tools/media.js +176 -0
  79. package/dist/tools/office/excel-tools/media.js.map +1 -1
  80. package/dist/tools/office/excel-tools/page-setup.d.ts +6 -0
  81. package/dist/tools/office/excel-tools/page-setup.d.ts.map +1 -0
  82. package/dist/tools/office/excel-tools/page-setup.js +144 -0
  83. package/dist/tools/office/excel-tools/page-setup.js.map +1 -0
  84. package/dist/tools/office/excel-tools/pivot-table.d.ts +7 -0
  85. package/dist/tools/office/excel-tools/pivot-table.d.ts.map +1 -0
  86. package/dist/tools/office/excel-tools/pivot-table.js +151 -0
  87. package/dist/tools/office/excel-tools/pivot-table.js.map +1 -0
  88. package/dist/tools/office/excel-tools/rows-columns.d.ts +4 -0
  89. package/dist/tools/office/excel-tools/rows-columns.d.ts.map +1 -1
  90. package/dist/tools/office/excel-tools/rows-columns.js +149 -2
  91. package/dist/tools/office/excel-tools/rows-columns.js.map +1 -1
  92. package/dist/tools/office/excel-tools/sheets.d.ts +8 -0
  93. package/dist/tools/office/excel-tools/sheets.d.ts.map +1 -1
  94. package/dist/tools/office/excel-tools/sheets.js +288 -0
  95. package/dist/tools/office/excel-tools/sheets.js.map +1 -1
  96. package/dist/tools/office/excel-tools/tables.d.ts +7 -0
  97. package/dist/tools/office/excel-tools/tables.d.ts.map +1 -0
  98. package/dist/tools/office/excel-tools/tables.js +156 -0
  99. package/dist/tools/office/excel-tools/tables.js.map +1 -0
  100. package/dist/tools/office/index.d.ts +3 -3
  101. package/dist/tools/office/index.d.ts.map +1 -1
  102. package/dist/tools/office/index.js +3 -3
  103. package/dist/tools/office/index.js.map +1 -1
  104. package/dist/tools/office/powerpoint-client.d.ts +20 -0
  105. package/dist/tools/office/powerpoint-client.d.ts.map +1 -1
  106. package/dist/tools/office/powerpoint-client.js +223 -0
  107. package/dist/tools/office/powerpoint-client.js.map +1 -1
  108. package/dist/tools/office/powerpoint-tools/effects.d.ts.map +1 -1
  109. package/dist/tools/office/powerpoint-tools/effects.js +55 -42
  110. package/dist/tools/office/powerpoint-tools/effects.js.map +1 -1
  111. package/dist/tools/office/powerpoint-tools/export.d.ts +1 -0
  112. package/dist/tools/office/powerpoint-tools/export.d.ts.map +1 -1
  113. package/dist/tools/office/powerpoint-tools/export.js +44 -1
  114. package/dist/tools/office/powerpoint-tools/export.js.map +1 -1
  115. package/dist/tools/office/powerpoint-tools/launch.d.ts +0 -1
  116. package/dist/tools/office/powerpoint-tools/launch.d.ts.map +1 -1
  117. package/dist/tools/office/powerpoint-tools/launch.js +28 -36
  118. package/dist/tools/office/powerpoint-tools/launch.js.map +1 -1
  119. package/dist/tools/office/powerpoint-tools/media.d.ts.map +1 -1
  120. package/dist/tools/office/powerpoint-tools/media.js +25 -15
  121. package/dist/tools/office/powerpoint-tools/media.js.map +1 -1
  122. package/dist/tools/office/powerpoint-tools/notes.d.ts.map +1 -1
  123. package/dist/tools/office/powerpoint-tools/notes.js +20 -10
  124. package/dist/tools/office/powerpoint-tools/notes.js.map +1 -1
  125. package/dist/tools/office/powerpoint-tools/sections.d.ts.map +1 -1
  126. package/dist/tools/office/powerpoint-tools/sections.js +13 -6
  127. package/dist/tools/office/powerpoint-tools/sections.js.map +1 -1
  128. package/dist/tools/office/powerpoint-tools/shapes.d.ts +2 -0
  129. package/dist/tools/office/powerpoint-tools/shapes.d.ts.map +1 -1
  130. package/dist/tools/office/powerpoint-tools/shapes.js +181 -45
  131. package/dist/tools/office/powerpoint-tools/shapes.js.map +1 -1
  132. package/dist/tools/office/powerpoint-tools/slides.d.ts +4 -0
  133. package/dist/tools/office/powerpoint-tools/slides.d.ts.map +1 -1
  134. package/dist/tools/office/powerpoint-tools/slides.js +179 -15
  135. package/dist/tools/office/powerpoint-tools/slides.js.map +1 -1
  136. package/dist/tools/office/powerpoint-tools/tables.d.ts +6 -0
  137. package/dist/tools/office/powerpoint-tools/tables.d.ts.map +1 -1
  138. package/dist/tools/office/powerpoint-tools/tables.js +239 -9
  139. package/dist/tools/office/powerpoint-tools/tables.js.map +1 -1
  140. package/dist/tools/office/powerpoint-tools/text.d.ts +1 -0
  141. package/dist/tools/office/powerpoint-tools/text.d.ts.map +1 -1
  142. package/dist/tools/office/powerpoint-tools/text.js +96 -34
  143. package/dist/tools/office/powerpoint-tools/text.js.map +1 -1
  144. package/dist/tools/office/word-tools/find.d.ts +5 -0
  145. package/dist/tools/office/word-tools/find.d.ts.map +1 -0
  146. package/dist/tools/office/word-tools/find.js +106 -0
  147. package/dist/tools/office/word-tools/find.js.map +1 -0
  148. package/dist/tools/office/word-tools/footnotes.d.ts +9 -0
  149. package/dist/tools/office/word-tools/footnotes.d.ts.map +1 -0
  150. package/dist/tools/office/word-tools/footnotes.js +227 -0
  151. package/dist/tools/office/word-tools/footnotes.js.map +1 -0
  152. package/dist/tools/office/word-tools/index.d.ts +6 -0
  153. package/dist/tools/office/word-tools/index.d.ts.map +1 -1
  154. package/dist/tools/office/word-tools/index.js +18 -0
  155. package/dist/tools/office/word-tools/index.js.map +1 -1
  156. package/dist/tools/office/word-tools/launch.d.ts +0 -1
  157. package/dist/tools/office/word-tools/launch.d.ts.map +1 -1
  158. package/dist/tools/office/word-tools/launch.js +33 -36
  159. package/dist/tools/office/word-tools/launch.js.map +1 -1
  160. package/dist/tools/office/word-tools/selection.d.ts +8 -0
  161. package/dist/tools/office/word-tools/selection.d.ts.map +1 -0
  162. package/dist/tools/office/word-tools/selection.js +193 -0
  163. package/dist/tools/office/word-tools/selection.js.map +1 -0
  164. package/dist/tools/office/word-tools/tables-advanced.d.ts +8 -0
  165. package/dist/tools/office/word-tools/tables-advanced.d.ts.map +1 -0
  166. package/dist/tools/office/word-tools/tables-advanced.js +190 -0
  167. package/dist/tools/office/word-tools/tables-advanced.js.map +1 -0
  168. package/dist/tools/office/word-tools/toc.d.ts +6 -0
  169. package/dist/tools/office/word-tools/toc.d.ts.map +1 -0
  170. package/dist/tools/office/word-tools/toc.js +114 -0
  171. package/dist/tools/office/word-tools/toc.js.map +1 -0
  172. package/dist/tools/office/word-tools/track-changes.d.ts +8 -0
  173. package/dist/tools/office/word-tools/track-changes.d.ts.map +1 -0
  174. package/dist/tools/office/word-tools/track-changes.js +195 -0
  175. package/dist/tools/office/word-tools/track-changes.js.map +1 -0
  176. package/dist/types/index.d.ts +1 -0
  177. package/dist/types/index.d.ts.map +1 -1
  178. package/dist/ui/components/Logo.d.ts.map +1 -1
  179. package/dist/ui/components/Logo.js +2 -4
  180. package/dist/ui/components/Logo.js.map +1 -1
  181. package/dist/ui/components/PlanExecuteApp.d.ts.map +1 -1
  182. package/dist/ui/components/PlanExecuteApp.js +3 -5
  183. package/dist/ui/components/PlanExecuteApp.js.map +1 -1
  184. package/dist/ui/components/dialogs/SettingsDialog.d.ts.map +1 -1
  185. package/dist/ui/components/dialogs/SettingsDialog.js +50 -5
  186. package/dist/ui/components/dialogs/SettingsDialog.js.map +1 -1
  187. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"shapes.d.ts","sourceRoot":"","sources":["../../../../src/tools/office/powerpoint-tools/shapes.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,aAAa,EAAc,MAAM,gBAAgB,CAAC;AAkD3D,eAAO,MAAM,sBAAsB,EAAE,aAKpC,CAAC;AAqCF,eAAO,MAAM,yBAAyB,EAAE,aAKvC,CAAC;AAqCF,eAAO,MAAM,4BAA4B,EAAE,aAK1C,CAAC;AAuCF,eAAO,MAAM,yBAAyB,EAAE,aAKvC,CAAC;AAqCF,eAAO,MAAM,0BAA0B,EAAE,aAKxC,CAAC;AAuCF,eAAO,MAAM,0BAA0B,EAAE,aAKxC,CAAC;AAiCF,eAAO,MAAM,0BAA0B,EAAE,aAKxC,CAAC;AAyCF,eAAO,MAAM,8BAA8B,EAAE,aAK5C,CAAC;AA2CF,eAAO,MAAM,0BAA0B,EAAE,aAKxC,CAAC;AAqDF,eAAO,MAAM,2BAA2B,EAAE,aAKzC,CAAC;AAuCF,eAAO,MAAM,6BAA6B,EAAE,aAK3C,CAAC;AAqCF,eAAO,MAAM,0BAA0B,EAAE,aAKxC,CAAC;AAiCF,eAAO,MAAM,wBAAwB,EAAE,aAKtC,CAAC;AAiCF,eAAO,MAAM,0BAA0B,EAAE,aAKxC,CAAC;AAiCF,eAAO,MAAM,0BAA0B,EAAE,aAKxC,CAAC;AAuCF,eAAO,MAAM,yBAAyB,EAAE,aAKvC,CAAC;AAuCF,eAAO,MAAM,8BAA8B,EAAE,aAK5C,CAAC;AAqCF,eAAO,MAAM,yBAAyB,EAAE,aAKvC,CAAC;AAqCF,eAAO,MAAM,2BAA2B,EAAE,aAKzC,CAAC;AAMF,eAAO,MAAM,WAAW,EAAE,aAAa,EAoBtC,CAAC"}
1
+ {"version":3,"file":"shapes.d.ts","sourceRoot":"","sources":["../../../../src/tools/office/powerpoint-tools/shapes.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,aAAa,EAAc,MAAM,gBAAgB,CAAC;AAuD3D,eAAO,MAAM,sBAAsB,EAAE,aAKpC,CAAC;AAqCF,eAAO,MAAM,yBAAyB,EAAE,aAKvC,CAAC;AAqCF,eAAO,MAAM,4BAA4B,EAAE,aAK1C,CAAC;AAuCF,eAAO,MAAM,yBAAyB,EAAE,aAKvC,CAAC;AAqCF,eAAO,MAAM,0BAA0B,EAAE,aAKxC,CAAC;AAsCF,eAAO,MAAM,0BAA0B,EAAE,aAKxC,CAAC;AAmCF,eAAO,MAAM,0BAA0B,EAAE,aAKxC,CAAC;AAyCF,eAAO,MAAM,8BAA8B,EAAE,aAK5C,CAAC;AAgDF,eAAO,MAAM,0BAA0B,EAAE,aAKxC,CAAC;AAwDF,eAAO,MAAM,2BAA2B,EAAE,aAKzC,CAAC;AAuCF,eAAO,MAAM,6BAA6B,EAAE,aAK3C,CAAC;AAqCF,eAAO,MAAM,0BAA0B,EAAE,aAKxC,CAAC;AAiCF,eAAO,MAAM,wBAAwB,EAAE,aAKtC,CAAC;AAiCF,eAAO,MAAM,0BAA0B,EAAE,aAKxC,CAAC;AAiCF,eAAO,MAAM,0BAA0B,EAAE,aAKxC,CAAC;AA0CF,eAAO,MAAM,yBAAyB,EAAE,aAKvC,CAAC;AA0CF,eAAO,MAAM,8BAA8B,EAAE,aAK5C,CAAC;AAqCF,eAAO,MAAM,yBAAyB,EAAE,aAKvC,CAAC;AAqCF,eAAO,MAAM,2BAA2B,EAAE,aAKzC,CAAC;AAwCF,eAAO,MAAM,uBAAuB,EAAE,aAKrC,CAAC;AAwCF,eAAO,MAAM,uBAAuB,EAAE,aAKrC,CAAC;AAMF,eAAO,MAAM,WAAW,EAAE,aAAa,EAsBtC,CAAC"}
@@ -9,7 +9,7 @@ const POWERPOINT_ADD_SHAPE_DEFINITION = {
9
9
  type: 'object',
10
10
  properties: {
11
11
  reason: { type: 'string', description: 'Why you are adding a shape' },
12
- slide: { type: 'number', description: 'Slide number' },
12
+ slide_number: { type: 'number', description: 'Slide number' },
13
13
  shape_type: { type: 'string', enum: ['rectangle', 'oval', 'triangle', 'arrow', 'star'], description: 'Type of shape' },
14
14
  left: { type: 'number', description: 'Left position in points' },
15
15
  top: { type: 'number', description: 'Top position in points' },
@@ -17,15 +17,20 @@ const POWERPOINT_ADD_SHAPE_DEFINITION = {
17
17
  height: { type: 'number', description: 'Height in points' },
18
18
  fill_color: { type: 'string', description: 'Fill color as hex (optional)' },
19
19
  },
20
- required: ['reason', 'slide', 'shape_type', 'left', 'top', 'width', 'height'],
20
+ required: ['reason', 'slide_number', 'shape_type', 'left', 'top', 'width', 'height'],
21
21
  },
22
22
  },
23
23
  };
24
24
  async function executePowerPointAddShape(args) {
25
25
  try {
26
- const response = await powerpointClient.powerpointAddShape(args['slide'], args['shape_type'], args['left'], args['top'], args['width'], args['height'], args['fill_color']);
26
+ const slideNum = Number(args['slide_number']);
27
+ const left = Number(args['left']);
28
+ const top = Number(args['top']);
29
+ const width = Number(args['width']);
30
+ const height = Number(args['height']);
31
+ const response = await powerpointClient.powerpointAddShape(slideNum, args['shape_type'], left, top, width, height, args['fill_color']);
27
32
  if (response.success) {
28
- return { success: true, result: `${args['shape_type']} shape added to slide ${args['slide']}` };
33
+ return { success: true, result: `${args['shape_type']} shape added to slide ${slideNum}` };
29
34
  }
30
35
  return { success: false, error: response.error || 'Failed to add shape' };
31
36
  }
@@ -43,20 +48,23 @@ const POWERPOINT_DELETE_SHAPE_DEFINITION = {
43
48
  type: 'function',
44
49
  function: {
45
50
  name: 'powerpoint_delete_shape',
46
- description: `Delete a shape from a slide.`,
51
+ description: `Delete a shape from a slide. IMPORTANT: Shape indices shift after deletion. When deleting multiple shapes, delete from highest index to lowest to avoid index shift issues.`,
47
52
  parameters: {
48
53
  type: 'object',
49
54
  properties: {
55
+ reason: { type: 'string', description: 'Why you are deleting this shape' },
50
56
  slide_number: { type: 'number', description: 'Slide number' },
51
57
  shape_index: { type: 'number', description: 'Shape index to delete' },
52
58
  },
53
- required: ['slide_number', 'shape_index'],
59
+ required: ['reason', 'slide_number', 'shape_index'],
54
60
  },
55
61
  },
56
62
  };
57
63
  async function executePowerPointDeleteShape(args) {
58
64
  try {
59
- const response = await powerpointClient.powerpointDeleteShape(args['slide_number'], args['shape_index']);
65
+ const slideNum = Number(args['slide_number']);
66
+ const shapeIndex = Number(args['shape_index']);
67
+ const response = await powerpointClient.powerpointDeleteShape(slideNum, shapeIndex);
60
68
  if (response.success) {
61
69
  return { success: true, result: response.message || 'Shape deleted' };
62
70
  }
@@ -80,16 +88,19 @@ const POWERPOINT_DUPLICATE_SHAPE_DEFINITION = {
80
88
  parameters: {
81
89
  type: 'object',
82
90
  properties: {
91
+ reason: { type: 'string', description: 'Why you are duplicating this shape' },
83
92
  slide_number: { type: 'number', description: 'Slide number' },
84
93
  shape_index: { type: 'number', description: 'Shape index to duplicate' },
85
94
  },
86
- required: ['slide_number', 'shape_index'],
95
+ required: ['reason', 'slide_number', 'shape_index'],
87
96
  },
88
97
  },
89
98
  };
90
99
  async function executePowerPointDuplicateShape(args) {
91
100
  try {
92
- const response = await powerpointClient.powerpointDuplicateShape(args['slide_number'], args['shape_index']);
101
+ const slideNum = Number(args['slide_number']);
102
+ const shapeIndex = Number(args['shape_index']);
103
+ const response = await powerpointClient.powerpointDuplicateShape(slideNum, shapeIndex);
93
104
  if (response.success) {
94
105
  return { success: true, result: `Shape duplicated. New shape index: ${response['new_shape_index']}` };
95
106
  }
@@ -113,17 +124,21 @@ const POWERPOINT_ROTATE_SHAPE_DEFINITION = {
113
124
  parameters: {
114
125
  type: 'object',
115
126
  properties: {
127
+ reason: { type: 'string', description: 'Why you are rotating this shape' },
116
128
  slide_number: { type: 'number', description: 'Slide number' },
117
129
  shape_index: { type: 'number', description: 'Shape index' },
118
130
  angle: { type: 'number', description: 'Rotation angle in degrees (0-360)' },
119
131
  },
120
- required: ['slide_number', 'shape_index', 'angle'],
132
+ required: ['reason', 'slide_number', 'shape_index', 'angle'],
121
133
  },
122
134
  },
123
135
  };
124
136
  async function executePowerPointRotateShape(args) {
125
137
  try {
126
- const response = await powerpointClient.powerpointRotateShape(args['slide_number'], args['shape_index'], args['angle']);
138
+ const slideNum = Number(args['slide_number']);
139
+ const shapeIndex = Number(args['shape_index']);
140
+ const angle = Number(args['angle']);
141
+ const response = await powerpointClient.powerpointRotateShape(slideNum, shapeIndex, angle);
127
142
  if (response.success) {
128
143
  return { success: true, result: response.message || 'Shape rotated' };
129
144
  }
@@ -147,16 +162,19 @@ const POWERPOINT_GET_SHAPE_INFO_DEFINITION = {
147
162
  parameters: {
148
163
  type: 'object',
149
164
  properties: {
165
+ reason: { type: 'string', description: 'Why you need shape information' },
150
166
  slide_number: { type: 'number', description: 'Slide number' },
151
167
  shape_index: { type: 'number', description: 'Shape index' },
152
168
  },
153
- required: ['slide_number', 'shape_index'],
169
+ required: ['reason', 'slide_number', 'shape_index'],
154
170
  },
155
171
  },
156
172
  };
157
173
  async function executePowerPointGetShapeInfo(args) {
158
174
  try {
159
- const response = await powerpointClient.powerpointGetShapeInfo(args['slide_number'], args['shape_index']);
175
+ const slideNum = Number(args['slide_number']);
176
+ const shapeIndex = Number(args['shape_index']);
177
+ const response = await powerpointClient.powerpointGetShapeInfo(slideNum, shapeIndex);
160
178
  if (response.success) {
161
179
  return { success: true, result: JSON.stringify(response, null, 2) };
162
180
  }
@@ -180,17 +198,20 @@ const POWERPOINT_SET_SHAPE_NAME_DEFINITION = {
180
198
  parameters: {
181
199
  type: 'object',
182
200
  properties: {
201
+ reason: { type: 'string', description: 'Why you are setting the shape name' },
183
202
  slide_number: { type: 'number', description: 'Slide number' },
184
203
  shape_index: { type: 'number', description: 'Shape index' },
185
204
  name: { type: 'string', description: 'Shape name' },
186
205
  },
187
- required: ['slide_number', 'shape_index', 'name'],
206
+ required: ['reason', 'slide_number', 'shape_index', 'name'],
188
207
  },
189
208
  },
190
209
  };
191
210
  async function executePowerPointSetShapeName(args) {
192
211
  try {
193
- const response = await powerpointClient.powerpointSetShapeName(args['slide_number'], args['shape_index'], args['name']);
212
+ const slideNum = Number(args['slide_number']);
213
+ const shapeIndex = Number(args['shape_index']);
214
+ const response = await powerpointClient.powerpointSetShapeName(slideNum, shapeIndex, args['name']);
194
215
  if (response.success) {
195
216
  return { success: true, result: response.message || 'Shape name set' };
196
217
  }
@@ -214,15 +235,17 @@ const POWERPOINT_GET_SHAPE_LIST_DEFINITION = {
214
235
  parameters: {
215
236
  type: 'object',
216
237
  properties: {
238
+ reason: { type: 'string', description: 'Why you are getting the shape list' },
217
239
  slide_number: { type: 'number', description: 'Slide number' },
218
240
  },
219
- required: ['slide_number'],
241
+ required: ['reason', 'slide_number'],
220
242
  },
221
243
  },
222
244
  };
223
245
  async function executePowerPointGetShapeList(args) {
224
246
  try {
225
- const response = await powerpointClient.powerpointGetShapeList(args['slide_number']);
247
+ const slideNum = Number(args['slide_number']);
248
+ const response = await powerpointClient.powerpointGetShapeList(slideNum);
226
249
  if (response.success) {
227
250
  return { success: true, result: JSON.stringify(response, null, 2) };
228
251
  }
@@ -246,18 +269,23 @@ const POWERPOINT_SET_SHAPE_POSITION_DEFINITION = {
246
269
  parameters: {
247
270
  type: 'object',
248
271
  properties: {
272
+ reason: { type: 'string', description: 'Why you are setting the shape position' },
249
273
  slide_number: { type: 'number', description: 'Slide number' },
250
274
  shape_index: { type: 'number', description: 'Shape index' },
251
275
  left: { type: 'number', description: 'Left position in points' },
252
276
  top: { type: 'number', description: 'Top position in points' },
253
277
  },
254
- required: ['slide_number', 'shape_index', 'left', 'top'],
278
+ required: ['reason', 'slide_number', 'shape_index', 'left', 'top'],
255
279
  },
256
280
  },
257
281
  };
258
282
  async function executePowerPointSetShapePosition(args) {
259
283
  try {
260
- const response = await powerpointClient.powerpointSetShapePosition(args['slide_number'], args['shape_index'], args['left'], args['top']);
284
+ const slideNum = Number(args['slide_number']);
285
+ const shapeIndex = Number(args['shape_index']);
286
+ const left = Number(args['left']);
287
+ const top = Number(args['top']);
288
+ const response = await powerpointClient.powerpointSetShapePosition(slideNum, shapeIndex, left, top);
261
289
  if (response.success) {
262
290
  return { success: true, result: response.message || 'Shape position set' };
263
291
  }
@@ -281,19 +309,24 @@ const POWERPOINT_SET_SHAPE_SIZE_DEFINITION = {
281
309
  parameters: {
282
310
  type: 'object',
283
311
  properties: {
312
+ reason: { type: 'string', description: 'Why you are setting the shape size' },
284
313
  slide_number: { type: 'number', description: 'Slide number' },
285
314
  shape_index: { type: 'number', description: 'Shape index' },
286
315
  width: { type: 'number', description: 'Width in points' },
287
316
  height: { type: 'number', description: 'Height in points' },
288
317
  lock_aspect_ratio: { type: 'boolean', description: 'Lock aspect ratio (default: false)' },
289
318
  },
290
- required: ['slide_number', 'shape_index', 'width', 'height'],
319
+ required: ['reason', 'slide_number', 'shape_index', 'width', 'height'],
291
320
  },
292
321
  },
293
322
  };
294
323
  async function executePowerPointSetShapeSize(args) {
295
324
  try {
296
- const response = await powerpointClient.powerpointSetShapeSize(args['slide_number'], args['shape_index'], args['width'], args['height'], args['lock_aspect_ratio']);
325
+ const slideNum = Number(args['slide_number']);
326
+ const shapeIndex = Number(args['shape_index']);
327
+ const width = Number(args['width']);
328
+ const height = Number(args['height']);
329
+ const response = await powerpointClient.powerpointSetShapeSize(slideNum, shapeIndex, width, height, args['lock_aspect_ratio'] != null ? Boolean(args['lock_aspect_ratio']) : undefined);
297
330
  if (response.success) {
298
331
  return { success: true, result: response.message || 'Shape size set' };
299
332
  }
@@ -317,6 +350,7 @@ const POWERPOINT_SET_SHAPE_STYLE_DEFINITION = {
317
350
  parameters: {
318
351
  type: 'object',
319
352
  properties: {
353
+ reason: { type: 'string', description: 'Why you are setting the shape style' },
320
354
  slide_number: { type: 'number', description: 'Slide number' },
321
355
  shape_index: { type: 'number', description: 'Shape index' },
322
356
  fill_color: { type: 'string', description: 'Fill color (hex: #RRGGBB)' },
@@ -327,20 +361,22 @@ const POWERPOINT_SET_SHAPE_STYLE_DEFINITION = {
327
361
  no_fill: { type: 'boolean', description: 'Remove fill' },
328
362
  no_line: { type: 'boolean', description: 'Remove line/border' },
329
363
  },
330
- required: ['slide_number', 'shape_index'],
364
+ required: ['reason', 'slide_number', 'shape_index'],
331
365
  },
332
366
  },
333
367
  };
334
368
  async function executePowerPointSetShapeStyle(args) {
335
369
  try {
336
- const response = await powerpointClient.powerpointSetShapeStyle(args['slide_number'], args['shape_index'], {
370
+ const slideNum = Number(args['slide_number']);
371
+ const shapeIndex = Number(args['shape_index']);
372
+ const response = await powerpointClient.powerpointSetShapeStyle(slideNum, shapeIndex, {
337
373
  fillColor: args['fill_color'],
338
- fillTransparency: args['fill_transparency'],
374
+ fillTransparency: args['fill_transparency'] != null ? Number(args['fill_transparency']) : undefined,
339
375
  lineColor: args['line_color'],
340
- lineWeight: args['line_weight'],
376
+ lineWeight: args['line_weight'] != null ? Number(args['line_weight']) : undefined,
341
377
  lineStyle: args['line_style'],
342
- noFill: args['no_fill'],
343
- noLine: args['no_line'],
378
+ noFill: args['no_fill'] != null ? Boolean(args['no_fill']) : undefined,
379
+ noLine: args['no_line'] != null ? Boolean(args['no_line']) : undefined,
344
380
  });
345
381
  if (response.success) {
346
382
  return { success: true, result: response.message || 'Shape style updated' };
@@ -365,17 +401,21 @@ const POWERPOINT_SET_SHAPE_OPACITY_DEFINITION = {
365
401
  parameters: {
366
402
  type: 'object',
367
403
  properties: {
404
+ reason: { type: 'string', description: 'Why you are setting the shape opacity' },
368
405
  slide_number: { type: 'number', description: 'Slide number' },
369
406
  shape_index: { type: 'number', description: 'Shape index' },
370
407
  opacity: { type: 'number', description: 'Opacity percentage (0-100, where 0 is fully transparent)' },
371
408
  },
372
- required: ['slide_number', 'shape_index', 'opacity'],
409
+ required: ['reason', 'slide_number', 'shape_index', 'opacity'],
373
410
  },
374
411
  },
375
412
  };
376
413
  async function executePowerPointSetShapeOpacity(args) {
377
414
  try {
378
- const response = await powerpointClient.powerpointSetShapeOpacity(args['slide_number'], args['shape_index'], args['opacity']);
415
+ const slideNum = Number(args['slide_number']);
416
+ const shapeIndex = Number(args['shape_index']);
417
+ const opacity = Number(args['opacity']);
418
+ const response = await powerpointClient.powerpointSetShapeOpacity(slideNum, shapeIndex, opacity);
379
419
  if (response.success) {
380
420
  return { success: true, result: response.message || 'Shape opacity set' };
381
421
  }
@@ -399,16 +439,19 @@ const POWERPOINT_BRING_TO_FRONT_DEFINITION = {
399
439
  parameters: {
400
440
  type: 'object',
401
441
  properties: {
442
+ reason: { type: 'string', description: 'Why you are bringing the shape to front' },
402
443
  slide_number: { type: 'number', description: 'Slide number' },
403
444
  shape_index: { type: 'number', description: 'Shape index' },
404
445
  },
405
- required: ['slide_number', 'shape_index'],
446
+ required: ['reason', 'slide_number', 'shape_index'],
406
447
  },
407
448
  },
408
449
  };
409
450
  async function executePowerPointBringToFront(args) {
410
451
  try {
411
- const response = await powerpointClient.powerpointBringToFront(args['slide_number'], args['shape_index']);
452
+ const slideNum = Number(args['slide_number']);
453
+ const shapeIndex = Number(args['shape_index']);
454
+ const response = await powerpointClient.powerpointBringToFront(slideNum, shapeIndex);
412
455
  if (response.success) {
413
456
  return { success: true, result: response.message || 'Shape brought to front' };
414
457
  }
@@ -432,16 +475,19 @@ const POWERPOINT_SEND_TO_BACK_DEFINITION = {
432
475
  parameters: {
433
476
  type: 'object',
434
477
  properties: {
478
+ reason: { type: 'string', description: 'Why you are sending the shape to back' },
435
479
  slide_number: { type: 'number', description: 'Slide number' },
436
480
  shape_index: { type: 'number', description: 'Shape index' },
437
481
  },
438
- required: ['slide_number', 'shape_index'],
482
+ required: ['reason', 'slide_number', 'shape_index'],
439
483
  },
440
484
  },
441
485
  };
442
486
  async function executePowerPointSendToBack(args) {
443
487
  try {
444
- const response = await powerpointClient.powerpointSendToBack(args['slide_number'], args['shape_index']);
488
+ const slideNum = Number(args['slide_number']);
489
+ const shapeIndex = Number(args['shape_index']);
490
+ const response = await powerpointClient.powerpointSendToBack(slideNum, shapeIndex);
445
491
  if (response.success) {
446
492
  return { success: true, result: response.message || 'Shape sent to back' };
447
493
  }
@@ -465,16 +511,19 @@ const POWERPOINT_BRING_FORWARD_DEFINITION = {
465
511
  parameters: {
466
512
  type: 'object',
467
513
  properties: {
514
+ reason: { type: 'string', description: 'Why you are bringing the shape forward' },
468
515
  slide_number: { type: 'number', description: 'Slide number' },
469
516
  shape_index: { type: 'number', description: 'Shape index' },
470
517
  },
471
- required: ['slide_number', 'shape_index'],
518
+ required: ['reason', 'slide_number', 'shape_index'],
472
519
  },
473
520
  },
474
521
  };
475
522
  async function executePowerPointBringForward(args) {
476
523
  try {
477
- const response = await powerpointClient.powerpointBringForward(args['slide_number'], args['shape_index']);
524
+ const slideNum = Number(args['slide_number']);
525
+ const shapeIndex = Number(args['shape_index']);
526
+ const response = await powerpointClient.powerpointBringForward(slideNum, shapeIndex);
478
527
  if (response.success) {
479
528
  return { success: true, result: response.message || 'Shape brought forward' };
480
529
  }
@@ -498,16 +547,19 @@ const POWERPOINT_SEND_BACKWARD_DEFINITION = {
498
547
  parameters: {
499
548
  type: 'object',
500
549
  properties: {
550
+ reason: { type: 'string', description: 'Why you are sending the shape backward' },
501
551
  slide_number: { type: 'number', description: 'Slide number' },
502
552
  shape_index: { type: 'number', description: 'Shape index' },
503
553
  },
504
- required: ['slide_number', 'shape_index'],
554
+ required: ['reason', 'slide_number', 'shape_index'],
505
555
  },
506
556
  },
507
557
  };
508
558
  async function executePowerPointSendBackward(args) {
509
559
  try {
510
- const response = await powerpointClient.powerpointSendBackward(args['slide_number'], args['shape_index']);
560
+ const slideNum = Number(args['slide_number']);
561
+ const shapeIndex = Number(args['shape_index']);
562
+ const response = await powerpointClient.powerpointSendBackward(slideNum, shapeIndex);
511
563
  if (response.success) {
512
564
  return { success: true, result: response.message || 'Shape sent backward' };
513
565
  }
@@ -531,17 +583,20 @@ const POWERPOINT_ALIGN_SHAPES_DEFINITION = {
531
583
  parameters: {
532
584
  type: 'object',
533
585
  properties: {
586
+ reason: { type: 'string', description: 'Why you are aligning the shapes' },
534
587
  slide_number: { type: 'number', description: 'Slide number' },
535
588
  shape_indices: { type: 'array', items: { type: 'number' }, description: 'Array of shape indices to align' },
536
589
  alignment: { type: 'string', enum: ['left', 'center', 'right', 'top', 'middle', 'bottom'], description: 'Alignment type' },
537
590
  },
538
- required: ['slide_number', 'shape_indices', 'alignment'],
591
+ required: ['reason', 'slide_number', 'shape_indices', 'alignment'],
539
592
  },
540
593
  },
541
594
  };
542
595
  async function executePowerPointAlignShapes(args) {
543
596
  try {
544
- const response = await powerpointClient.powerpointAlignShapes(args['slide_number'], args['shape_indices'], args['alignment']);
597
+ const slideNum = Number(args['slide_number']);
598
+ const shapeIndices = args['shape_indices'].map(i => Number(i));
599
+ const response = await powerpointClient.powerpointAlignShapes(slideNum, shapeIndices, args['alignment']);
545
600
  if (response.success) {
546
601
  return { success: true, result: response.message || 'Shapes aligned' };
547
602
  }
@@ -565,17 +620,20 @@ const POWERPOINT_DISTRIBUTE_SHAPES_DEFINITION = {
565
620
  parameters: {
566
621
  type: 'object',
567
622
  properties: {
623
+ reason: { type: 'string', description: 'Why you are distributing the shapes' },
568
624
  slide_number: { type: 'number', description: 'Slide number' },
569
625
  shape_indices: { type: 'array', items: { type: 'number' }, description: 'Array of shape indices' },
570
626
  direction: { type: 'string', enum: ['horizontal', 'vertical'], description: 'Distribution direction' },
571
627
  },
572
- required: ['slide_number', 'shape_indices', 'direction'],
628
+ required: ['reason', 'slide_number', 'shape_indices', 'direction'],
573
629
  },
574
630
  },
575
631
  };
576
632
  async function executePowerPointDistributeShapes(args) {
577
633
  try {
578
- const response = await powerpointClient.powerpointDistributeShapes(args['slide_number'], args['shape_indices'], args['direction']);
634
+ const slideNum = Number(args['slide_number']);
635
+ const shapeIndices = args['shape_indices'].map(i => Number(i));
636
+ const response = await powerpointClient.powerpointDistributeShapes(slideNum, shapeIndices, args['direction']);
579
637
  if (response.success) {
580
638
  return { success: true, result: response.message || 'Shapes distributed' };
581
639
  }
@@ -599,16 +657,19 @@ const POWERPOINT_GROUP_SHAPES_DEFINITION = {
599
657
  parameters: {
600
658
  type: 'object',
601
659
  properties: {
660
+ reason: { type: 'string', description: 'Why you are grouping the shapes' },
602
661
  slide_number: { type: 'number', description: 'Slide number' },
603
662
  shape_indices: { type: 'array', items: { type: 'number' }, description: 'Array of shape indices to group' },
604
663
  },
605
- required: ['slide_number', 'shape_indices'],
664
+ required: ['reason', 'slide_number', 'shape_indices'],
606
665
  },
607
666
  },
608
667
  };
609
668
  async function executePowerPointGroupShapes(args) {
610
669
  try {
611
- const response = await powerpointClient.powerpointGroupShapes(args['slide_number'], args['shape_indices']);
670
+ const slideNum = Number(args['slide_number']);
671
+ const shapeIndices = args['shape_indices'].map(i => Number(i));
672
+ const response = await powerpointClient.powerpointGroupShapes(slideNum, shapeIndices);
612
673
  if (response.success) {
613
674
  return { success: true, result: `Shapes grouped. Group index: ${response['group_index']}` };
614
675
  }
@@ -632,16 +693,19 @@ const POWERPOINT_UNGROUP_SHAPES_DEFINITION = {
632
693
  parameters: {
633
694
  type: 'object',
634
695
  properties: {
696
+ reason: { type: 'string', description: 'Why you are ungrouping the shapes' },
635
697
  slide_number: { type: 'number', description: 'Slide number' },
636
698
  group_index: { type: 'number', description: 'Group shape index' },
637
699
  },
638
- required: ['slide_number', 'group_index'],
700
+ required: ['reason', 'slide_number', 'group_index'],
639
701
  },
640
702
  },
641
703
  };
642
704
  async function executePowerPointUngroupShapes(args) {
643
705
  try {
644
- const response = await powerpointClient.powerpointUngroupShapes(args['slide_number'], args['group_index']);
706
+ const slideNum = Number(args['slide_number']);
707
+ const groupIndex = Number(args['group_index']);
708
+ const response = await powerpointClient.powerpointUngroupShapes(slideNum, groupIndex);
645
709
  if (response.success) {
646
710
  return { success: true, result: `Group ungrouped. ${response['shape_count']} shapes` };
647
711
  }
@@ -657,6 +721,76 @@ export const powerpointUngroupShapesTool = {
657
721
  categories: OFFICE_CATEGORIES,
658
722
  description: 'Ungroup shapes',
659
723
  };
724
+ const POWERPOINT_FLIP_SHAPE_DEFINITION = {
725
+ type: 'function',
726
+ function: {
727
+ name: 'powerpoint_flip_shape',
728
+ description: `Flip a shape horizontally or vertically.`,
729
+ parameters: {
730
+ type: 'object',
731
+ properties: {
732
+ reason: { type: 'string', description: 'Why you are flipping this shape' },
733
+ slide_number: { type: 'number', description: 'Slide number' },
734
+ shape_index: { type: 'number', description: 'Shape index' },
735
+ direction: { type: 'string', enum: ['horizontal', 'vertical'], description: 'Flip direction' },
736
+ },
737
+ required: ['reason', 'slide_number', 'shape_index', 'direction'],
738
+ },
739
+ },
740
+ };
741
+ async function executePowerPointFlipShape(args) {
742
+ try {
743
+ const response = await powerpointClient.powerpointFlipShape(Number(args['slide_number']), Number(args['shape_index']), args['direction']);
744
+ if (response.success) {
745
+ return { success: true, result: response.message || 'Shape flipped' };
746
+ }
747
+ return { success: false, error: response.error || 'Failed to flip shape' };
748
+ }
749
+ catch (error) {
750
+ return { success: false, error: `Failed to flip shape: ${error instanceof Error ? error.message : String(error)}` };
751
+ }
752
+ }
753
+ export const powerpointFlipShapeTool = {
754
+ definition: POWERPOINT_FLIP_SHAPE_DEFINITION,
755
+ execute: executePowerPointFlipShape,
756
+ categories: OFFICE_CATEGORIES,
757
+ description: 'Flip shape horizontally or vertically',
758
+ };
759
+ const POWERPOINT_COPY_SHAPE_DEFINITION = {
760
+ type: 'function',
761
+ function: {
762
+ name: 'powerpoint_copy_shape',
763
+ description: `Copy a shape to the same slide or a different slide.`,
764
+ parameters: {
765
+ type: 'object',
766
+ properties: {
767
+ reason: { type: 'string', description: 'Why you are copying this shape' },
768
+ source_slide: { type: 'number', description: 'Source slide number' },
769
+ shape_index: { type: 'number', description: 'Shape index to copy' },
770
+ target_slide: { type: 'number', description: 'Target slide number (default: same slide)' },
771
+ },
772
+ required: ['reason', 'source_slide', 'shape_index'],
773
+ },
774
+ },
775
+ };
776
+ async function executePowerPointCopyShape(args) {
777
+ try {
778
+ const response = await powerpointClient.powerpointCopyShape(Number(args['source_slide']), Number(args['shape_index']), args['target_slide'] != null ? Number(args['target_slide']) : undefined);
779
+ if (response.success) {
780
+ return { success: true, result: `${response.message}. New shape index: ${response['new_shape_index']}` };
781
+ }
782
+ return { success: false, error: response.error || 'Failed to copy shape' };
783
+ }
784
+ catch (error) {
785
+ return { success: false, error: `Failed to copy shape: ${error instanceof Error ? error.message : String(error)}` };
786
+ }
787
+ }
788
+ export const powerpointCopyShapeTool = {
789
+ definition: POWERPOINT_COPY_SHAPE_DEFINITION,
790
+ execute: executePowerPointCopyShape,
791
+ categories: OFFICE_CATEGORIES,
792
+ description: 'Copy shape to same or different slide',
793
+ };
660
794
  export const shapesTools = [
661
795
  powerpointAddShapeTool,
662
796
  powerpointDeleteShapeTool,
@@ -677,5 +811,7 @@ export const shapesTools = [
677
811
  powerpointDistributeShapesTool,
678
812
  powerpointGroupShapesTool,
679
813
  powerpointUngroupShapesTool,
814
+ powerpointFlipShapeTool,
815
+ powerpointCopyShapeTool,
680
816
  ];
681
817
  //# sourceMappingURL=shapes.js.map