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.
- package/dist/agents/browser/browser-sub-agent.d.ts.map +1 -1
- package/dist/agents/browser/browser-sub-agent.js +3 -0
- package/dist/agents/browser/browser-sub-agent.js.map +1 -1
- package/dist/constants.d.ts +1 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +1 -2
- package/dist/constants.js.map +1 -1
- package/dist/core/llm/llm-client.d.ts +1 -0
- package/dist/core/llm/llm-client.d.ts.map +1 -1
- package/dist/core/llm/llm-client.js +17 -4
- package/dist/core/llm/llm-client.js.map +1 -1
- package/dist/core/llm/providers.d.ts +12 -0
- package/dist/core/llm/providers.d.ts.map +1 -0
- package/dist/core/llm/providers.js +80 -0
- package/dist/core/llm/providers.js.map +1 -0
- package/dist/prompts/system/plan-execute.d.ts.map +1 -1
- package/dist/prompts/system/plan-execute.js +40 -4
- package/dist/prompts/system/plan-execute.js.map +1 -1
- package/dist/tools/browser/browser-client.d.ts +13 -1
- package/dist/tools/browser/browser-client.d.ts.map +1 -1
- package/dist/tools/browser/browser-client.js +137 -9
- package/dist/tools/browser/browser-client.js.map +1 -1
- package/dist/tools/browser/browser-tools.d.ts +8 -2
- package/dist/tools/browser/browser-tools.d.ts.map +1 -1
- package/dist/tools/browser/browser-tools.js +428 -49
- package/dist/tools/browser/browser-tools.js.map +1 -1
- package/dist/tools/browser/index.d.ts +1 -1
- package/dist/tools/browser/index.d.ts.map +1 -1
- package/dist/tools/browser/index.js +1 -1
- package/dist/tools/browser/index.js.map +1 -1
- package/dist/tools/llm/simple/planning-tools.d.ts +1 -0
- package/dist/tools/llm/simple/planning-tools.d.ts.map +1 -1
- package/dist/tools/llm/simple/planning-tools.js +80 -26
- package/dist/tools/llm/simple/planning-tools.js.map +1 -1
- package/dist/tools/llm/simple/read-image-tool.d.ts.map +1 -1
- package/dist/tools/llm/simple/read-image-tool.js +0 -2
- package/dist/tools/llm/simple/read-image-tool.js.map +1 -1
- package/dist/tools/office/excel-tools/advanced.d.ts +13 -0
- package/dist/tools/office/excel-tools/advanced.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/advanced.js +364 -0
- package/dist/tools/office/excel-tools/advanced.js.map +1 -0
- package/dist/tools/office/excel-tools/cells.js +1 -1
- package/dist/tools/office/excel-tools/cells.js.map +1 -1
- package/dist/tools/office/excel-tools/charts.d.ts +6 -0
- package/dist/tools/office/excel-tools/charts.d.ts.map +1 -1
- package/dist/tools/office/excel-tools/charts.js +250 -1
- package/dist/tools/office/excel-tools/charts.js.map +1 -1
- package/dist/tools/office/excel-tools/comments.d.ts +1 -0
- package/dist/tools/office/excel-tools/comments.d.ts.map +1 -1
- package/dist/tools/office/excel-tools/comments.js +36 -0
- package/dist/tools/office/excel-tools/comments.js.map +1 -1
- package/dist/tools/office/excel-tools/data-ops.d.ts +4 -0
- package/dist/tools/office/excel-tools/data-ops.d.ts.map +1 -1
- package/dist/tools/office/excel-tools/data-ops.js +155 -1
- package/dist/tools/office/excel-tools/data-ops.js.map +1 -1
- package/dist/tools/office/excel-tools/export.d.ts +3 -0
- package/dist/tools/office/excel-tools/export.d.ts.map +1 -1
- package/dist/tools/office/excel-tools/export.js +117 -1
- package/dist/tools/office/excel-tools/export.js.map +1 -1
- package/dist/tools/office/excel-tools/formatting.d.ts +2 -0
- package/dist/tools/office/excel-tools/formatting.d.ts.map +1 -1
- package/dist/tools/office/excel-tools/formatting.js +74 -0
- package/dist/tools/office/excel-tools/formatting.js.map +1 -1
- package/dist/tools/office/excel-tools/formulas.d.ts +11 -0
- package/dist/tools/office/excel-tools/formulas.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/formulas.js +313 -0
- package/dist/tools/office/excel-tools/formulas.js.map +1 -0
- package/dist/tools/office/excel-tools/index.d.ts +5 -0
- package/dist/tools/office/excel-tools/index.d.ts.map +1 -1
- package/dist/tools/office/excel-tools/index.js +15 -0
- package/dist/tools/office/excel-tools/index.js.map +1 -1
- package/dist/tools/office/excel-tools/launch.d.ts +0 -1
- package/dist/tools/office/excel-tools/launch.d.ts.map +1 -1
- package/dist/tools/office/excel-tools/launch.js +33 -36
- package/dist/tools/office/excel-tools/launch.js.map +1 -1
- package/dist/tools/office/excel-tools/media.d.ts +5 -0
- package/dist/tools/office/excel-tools/media.d.ts.map +1 -1
- package/dist/tools/office/excel-tools/media.js +176 -0
- package/dist/tools/office/excel-tools/media.js.map +1 -1
- package/dist/tools/office/excel-tools/page-setup.d.ts +6 -0
- package/dist/tools/office/excel-tools/page-setup.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/page-setup.js +144 -0
- package/dist/tools/office/excel-tools/page-setup.js.map +1 -0
- package/dist/tools/office/excel-tools/pivot-table.d.ts +7 -0
- package/dist/tools/office/excel-tools/pivot-table.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/pivot-table.js +151 -0
- package/dist/tools/office/excel-tools/pivot-table.js.map +1 -0
- package/dist/tools/office/excel-tools/rows-columns.d.ts +4 -0
- package/dist/tools/office/excel-tools/rows-columns.d.ts.map +1 -1
- package/dist/tools/office/excel-tools/rows-columns.js +149 -2
- package/dist/tools/office/excel-tools/rows-columns.js.map +1 -1
- package/dist/tools/office/excel-tools/sheets.d.ts +8 -0
- package/dist/tools/office/excel-tools/sheets.d.ts.map +1 -1
- package/dist/tools/office/excel-tools/sheets.js +288 -0
- package/dist/tools/office/excel-tools/sheets.js.map +1 -1
- package/dist/tools/office/excel-tools/tables.d.ts +7 -0
- package/dist/tools/office/excel-tools/tables.d.ts.map +1 -0
- package/dist/tools/office/excel-tools/tables.js +156 -0
- package/dist/tools/office/excel-tools/tables.js.map +1 -0
- package/dist/tools/office/index.d.ts +3 -3
- package/dist/tools/office/index.d.ts.map +1 -1
- package/dist/tools/office/index.js +3 -3
- package/dist/tools/office/index.js.map +1 -1
- package/dist/tools/office/powerpoint-client.d.ts +20 -0
- package/dist/tools/office/powerpoint-client.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-client.js +223 -0
- package/dist/tools/office/powerpoint-client.js.map +1 -1
- package/dist/tools/office/powerpoint-tools/effects.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-tools/effects.js +55 -42
- package/dist/tools/office/powerpoint-tools/effects.js.map +1 -1
- package/dist/tools/office/powerpoint-tools/export.d.ts +1 -0
- package/dist/tools/office/powerpoint-tools/export.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-tools/export.js +44 -1
- package/dist/tools/office/powerpoint-tools/export.js.map +1 -1
- package/dist/tools/office/powerpoint-tools/launch.d.ts +0 -1
- package/dist/tools/office/powerpoint-tools/launch.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-tools/launch.js +28 -36
- package/dist/tools/office/powerpoint-tools/launch.js.map +1 -1
- package/dist/tools/office/powerpoint-tools/media.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-tools/media.js +25 -15
- package/dist/tools/office/powerpoint-tools/media.js.map +1 -1
- package/dist/tools/office/powerpoint-tools/notes.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-tools/notes.js +20 -10
- package/dist/tools/office/powerpoint-tools/notes.js.map +1 -1
- package/dist/tools/office/powerpoint-tools/sections.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-tools/sections.js +13 -6
- package/dist/tools/office/powerpoint-tools/sections.js.map +1 -1
- package/dist/tools/office/powerpoint-tools/shapes.d.ts +2 -0
- package/dist/tools/office/powerpoint-tools/shapes.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-tools/shapes.js +181 -45
- package/dist/tools/office/powerpoint-tools/shapes.js.map +1 -1
- package/dist/tools/office/powerpoint-tools/slides.d.ts +4 -0
- package/dist/tools/office/powerpoint-tools/slides.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-tools/slides.js +179 -15
- package/dist/tools/office/powerpoint-tools/slides.js.map +1 -1
- package/dist/tools/office/powerpoint-tools/tables.d.ts +6 -0
- package/dist/tools/office/powerpoint-tools/tables.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-tools/tables.js +239 -9
- package/dist/tools/office/powerpoint-tools/tables.js.map +1 -1
- package/dist/tools/office/powerpoint-tools/text.d.ts +1 -0
- package/dist/tools/office/powerpoint-tools/text.d.ts.map +1 -1
- package/dist/tools/office/powerpoint-tools/text.js +96 -34
- package/dist/tools/office/powerpoint-tools/text.js.map +1 -1
- package/dist/tools/office/word-tools/find.d.ts +5 -0
- package/dist/tools/office/word-tools/find.d.ts.map +1 -0
- package/dist/tools/office/word-tools/find.js +106 -0
- package/dist/tools/office/word-tools/find.js.map +1 -0
- package/dist/tools/office/word-tools/footnotes.d.ts +9 -0
- package/dist/tools/office/word-tools/footnotes.d.ts.map +1 -0
- package/dist/tools/office/word-tools/footnotes.js +227 -0
- package/dist/tools/office/word-tools/footnotes.js.map +1 -0
- package/dist/tools/office/word-tools/index.d.ts +6 -0
- package/dist/tools/office/word-tools/index.d.ts.map +1 -1
- package/dist/tools/office/word-tools/index.js +18 -0
- package/dist/tools/office/word-tools/index.js.map +1 -1
- package/dist/tools/office/word-tools/launch.d.ts +0 -1
- package/dist/tools/office/word-tools/launch.d.ts.map +1 -1
- package/dist/tools/office/word-tools/launch.js +33 -36
- package/dist/tools/office/word-tools/launch.js.map +1 -1
- package/dist/tools/office/word-tools/selection.d.ts +8 -0
- package/dist/tools/office/word-tools/selection.d.ts.map +1 -0
- package/dist/tools/office/word-tools/selection.js +193 -0
- package/dist/tools/office/word-tools/selection.js.map +1 -0
- package/dist/tools/office/word-tools/tables-advanced.d.ts +8 -0
- package/dist/tools/office/word-tools/tables-advanced.d.ts.map +1 -0
- package/dist/tools/office/word-tools/tables-advanced.js +190 -0
- package/dist/tools/office/word-tools/tables-advanced.js.map +1 -0
- package/dist/tools/office/word-tools/toc.d.ts +6 -0
- package/dist/tools/office/word-tools/toc.d.ts.map +1 -0
- package/dist/tools/office/word-tools/toc.js +114 -0
- package/dist/tools/office/word-tools/toc.js.map +1 -0
- package/dist/tools/office/word-tools/track-changes.d.ts +8 -0
- package/dist/tools/office/word-tools/track-changes.d.ts.map +1 -0
- package/dist/tools/office/word-tools/track-changes.js +195 -0
- package/dist/tools/office/word-tools/track-changes.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/ui/components/Logo.d.ts.map +1 -1
- package/dist/ui/components/Logo.js +2 -4
- package/dist/ui/components/Logo.js.map +1 -1
- package/dist/ui/components/PlanExecuteApp.d.ts.map +1 -1
- package/dist/ui/components/PlanExecuteApp.js +3 -5
- package/dist/ui/components/PlanExecuteApp.js.map +1 -1
- package/dist/ui/components/dialogs/SettingsDialog.d.ts.map +1 -1
- package/dist/ui/components/dialogs/SettingsDialog.js +50 -5
- package/dist/ui/components/dialogs/SettingsDialog.js.map +1 -1
- 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;
|
|
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
|
-
|
|
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', '
|
|
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
|
|
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 ${
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|