mulmocast-vision 0.0.1

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/LICENSE +661 -0
  2. package/README.md +102 -0
  3. package/assets/html/agendaPage.html +13 -0
  4. package/assets/html/balanceSheetPage.html +29 -0
  5. package/assets/html/balancedScorecardPage.html +15 -0
  6. package/assets/html/bcgMatrixPage.html +37 -0
  7. package/assets/html/beforeAfterPage.html +21 -0
  8. package/assets/html/benchmarkingTablePage.html +23 -0
  9. package/assets/html/bubbleChartPlaceholderPage.html +9 -0
  10. package/assets/html/businessModelCanvasPage.html +14 -0
  11. package/assets/html/capabilityMaturityPage.html +8 -0
  12. package/assets/html/cashFlowPage.html +21 -0
  13. package/assets/html/changeCurvePage.html +11 -0
  14. package/assets/html/circularEconomyMapPage.html +8 -0
  15. package/assets/html/communicationPlanPage.html +22 -0
  16. package/assets/html/complianceHeatmapPage.html +19 -0
  17. package/assets/html/costStructurePage.html +20 -0
  18. package/assets/html/csrInitiativesPage.html +8 -0
  19. package/assets/html/cultureValuesPage.html +21 -0
  20. package/assets/html/customerJourneyPage.html +21 -0
  21. package/assets/html/customerSuccessJourneyPage.html +15 -0
  22. package/assets/html/digitalMaturityPage.html +14 -0
  23. package/assets/html/driverTreePage.html +20 -0
  24. package/assets/html/ecosystemMapPage.html +11 -0
  25. package/assets/html/esgFrameworkPage.html +28 -0
  26. package/assets/html/executiveSummaryPage.html +15 -0
  27. package/assets/html/fourPPage.html +36 -0
  28. package/assets/html/funnelPage.html +8 -0
  29. package/assets/html/ganttSimplePage.html +21 -0
  30. package/assets/html/geMcKinseyMatrixPage.html +13 -0
  31. package/assets/html/heatmapPlaceholderPage.html +24 -0
  32. package/assets/html/hypothesisPage.html +22 -0
  33. package/assets/html/innovationFunnelPage.html +13 -0
  34. package/assets/html/integrationPlanPage.html +21 -0
  35. package/assets/html/issueTreePage.html +23 -0
  36. package/assets/html/keyMessageWithSupportsPage.html +13 -0
  37. package/assets/html/kpiHighlightPage.html +14 -0
  38. package/assets/html/launchPlanPage.html +29 -0
  39. package/assets/html/mAPipelinePage.html +16 -0
  40. package/assets/html/marimekkoPlaceholderPage.html +9 -0
  41. package/assets/html/marketDriversPage.html +8 -0
  42. package/assets/html/marketingMixPage.html +11 -0
  43. package/assets/html/meceListPage.html +15 -0
  44. package/assets/html/milestoneTimelinePage.html +14 -0
  45. package/assets/html/npvSummaryPage.html +12 -0
  46. package/assets/html/okrKpiDashboardPage.html +16 -0
  47. package/assets/html/optionEvaluationPage.html +23 -0
  48. package/assets/html/orgChartPage.html +8 -0
  49. package/assets/html/pLBreakdownPage.html +19 -0
  50. package/assets/html/partnershipMapPage.html +11 -0
  51. package/assets/html/personasPage.html +19 -0
  52. package/assets/html/pipelineFunnelPage.html +8 -0
  53. package/assets/html/porterFiveForcesPage.html +44 -0
  54. package/assets/html/positioningMapPage.html +11 -0
  55. package/assets/html/pricingWaterfallPage.html +8 -0
  56. package/assets/html/productRoadmapPage.html +15 -0
  57. package/assets/html/pyramidPrinciplePage.html +27 -0
  58. package/assets/html/quarterlyRoadmapPage.html +15 -0
  59. package/assets/html/raciPage.html +23 -0
  60. package/assets/html/revenueModelPage.html +17 -0
  61. package/assets/html/riskMitigationPage.html +17 -0
  62. package/assets/html/salesDashboardPage.html +11 -0
  63. package/assets/html/scenarioPlanningPage.html +13 -0
  64. package/assets/html/scqaPage.html +27 -0
  65. package/assets/html/sectionDividerPage.html +7 -0
  66. package/assets/html/segmentationPage.html +15 -0
  67. package/assets/html/sensitivityAnalysisPage.html +22 -0
  68. package/assets/html/sevenSPage.html +11 -0
  69. package/assets/html/shareholderValueTreePage.html +8 -0
  70. package/assets/html/stakeholderMapPage.html +14 -0
  71. package/assets/html/supportOrgModelPage.html +21 -0
  72. package/assets/html/surveyResultsPage.html +11 -0
  73. package/assets/html/sustainabilityRoadmapPage.html +15 -0
  74. package/assets/html/swotPage.html +36 -0
  75. package/assets/html/synergyCapturePage.html +8 -0
  76. package/assets/html/tamSamSomPage.html +11 -0
  77. package/assets/html/techRoadmapPage.html +15 -0
  78. package/assets/html/thankYouContactPage.html +24 -0
  79. package/assets/html/threeCPage.html +28 -0
  80. package/assets/html/twoByTwoMatrixPage.html +17 -0
  81. package/assets/html/valueChainPage.html +18 -0
  82. package/assets/html/waterfallPage.html +8 -0
  83. package/assets/html2/agendaPage.html +26 -0
  84. package/assets/html2/balanceSheetPage.html +87 -0
  85. package/assets/html2/balancedScorecardPage.html +29 -0
  86. package/assets/html2/bcgMatrixPage.html +165 -0
  87. package/assets/html2/beforeAfterPage.html +78 -0
  88. package/assets/html2/benchmarkingTablePage.html +70 -0
  89. package/assets/html2/bubbleChartPlaceholderPage.html +107 -0
  90. package/assets/html2/businessModelCanvasPage.html +43 -0
  91. package/assets/html2/capabilityMaturityPage.html +38 -0
  92. package/assets/html2/cashFlowPage.html +68 -0
  93. package/assets/html2/changeCurvePage.html +53 -0
  94. package/assets/html2/circularEconomyMapPage.html +35 -0
  95. package/assets/html2/communicationPlanPage.html +82 -0
  96. package/assets/html2/complianceHeatmapPage.html +42 -0
  97. package/assets/html2/costStructurePage.html +60 -0
  98. package/assets/html2/csrInitiativesPage.html +26 -0
  99. package/assets/html2/cultureValuesPage.html +44 -0
  100. package/assets/html2/customerJourneyPage.html +68 -0
  101. package/assets/html2/customerSuccessJourneyPage.html +54 -0
  102. package/assets/html2/digitalMaturityPage.html +51 -0
  103. package/assets/html2/driverTreePage.html +92 -0
  104. package/assets/html2/ecosystemMapPage.html +30 -0
  105. package/assets/html2/esgFrameworkPage.html +66 -0
  106. package/assets/html2/executiveSummaryPage.html +27 -0
  107. package/assets/html2/fourPPage.html +85 -0
  108. package/assets/html2/funnelPage.html +53 -0
  109. package/assets/html2/ganttSimplePage.html +56 -0
  110. package/assets/html2/geMcKinseyMatrixPage.html +43 -0
  111. package/assets/html2/heatmapPlaceholderPage.html +131 -0
  112. package/assets/html2/hypothesisPage.html +100 -0
  113. package/assets/html2/innovationFunnelPage.html +61 -0
  114. package/assets/html2/integrationPlanPage.html +61 -0
  115. package/assets/html2/issueTreePage.html +97 -0
  116. package/assets/html2/keyMessageWithSupportsPage.html +47 -0
  117. package/assets/html2/kpiHighlightPage.html +54 -0
  118. package/assets/html2/launchPlanPage.html +86 -0
  119. package/assets/html2/mAPipelinePage.html +79 -0
  120. package/assets/html2/marimekkoPlaceholderPage.html +120 -0
  121. package/assets/html2/marketDriversPage.html +32 -0
  122. package/assets/html2/marketingMixPage.html +50 -0
  123. package/assets/html2/meceListPage.html +32 -0
  124. package/assets/html2/milestoneTimelinePage.html +59 -0
  125. package/assets/html2/npvSummaryPage.html +54 -0
  126. package/assets/html2/okrKpiDashboardPage.html +85 -0
  127. package/assets/html2/optionEvaluationPage.html +128 -0
  128. package/assets/html2/orgChartPage.html +30 -0
  129. package/assets/html2/pLBreakdownPage.html +73 -0
  130. package/assets/html2/partnershipMapPage.html +26 -0
  131. package/assets/html2/personasPage.html +39 -0
  132. package/assets/html2/pipelineFunnelPage.html +77 -0
  133. package/assets/html2/porterFiveForcesPage.html +140 -0
  134. package/assets/html2/positioningMapPage.html +40 -0
  135. package/assets/html2/pricingWaterfallPage.html +33 -0
  136. package/assets/html2/productRoadmapPage.html +47 -0
  137. package/assets/html2/pyramidPrinciplePage.html +47 -0
  138. package/assets/html2/quarterlyRoadmapPage.html +54 -0
  139. package/assets/html2/raciPage.html +49 -0
  140. package/assets/html2/revenueModelPage.html +54 -0
  141. package/assets/html2/riskMitigationPage.html +36 -0
  142. package/assets/html2/salesDashboardPage.html +58 -0
  143. package/assets/html2/scenarioPlanningPage.html +63 -0
  144. package/assets/html2/scqaPage.html +74 -0
  145. package/assets/html2/sectionDividerPage.html +25 -0
  146. package/assets/html2/segmentationPage.html +36 -0
  147. package/assets/html2/sensitivityAnalysisPage.html +82 -0
  148. package/assets/html2/sevenSPage.html +31 -0
  149. package/assets/html2/shareholderValueTreePage.html +32 -0
  150. package/assets/html2/stakeholderMapPage.html +36 -0
  151. package/assets/html2/supportOrgModelPage.html +57 -0
  152. package/assets/html2/surveyResultsPage.html +32 -0
  153. package/assets/html2/sustainabilityRoadmapPage.html +54 -0
  154. package/assets/html2/swotPage.html +97 -0
  155. package/assets/html2/synergyCapturePage.html +39 -0
  156. package/assets/html2/tamSamSomPage.html +62 -0
  157. package/assets/html2/techRoadmapPage.html +54 -0
  158. package/assets/html2/thankYouContactPage.html +78 -0
  159. package/assets/html2/threeCPage.html +66 -0
  160. package/assets/html2/twoByTwoMatrixPage.html +72 -0
  161. package/assets/html2/valueChainPage.html +56 -0
  162. package/assets/html2/waterfallPage.html +47 -0
  163. package/assets/templates/tailwind-sea.html +34 -0
  164. package/assets/templates/tailwind.html +14 -0
  165. package/lib/browser.d.ts +1 -0
  166. package/lib/browser.js +17 -0
  167. package/lib/index.d.ts +2 -0
  168. package/lib/index.js +18 -0
  169. package/lib/mcp/server.d.ts +2 -0
  170. package/lib/mcp/server.js +77 -0
  171. package/lib/mcp/test.d.ts +1 -0
  172. package/lib/mcp/test.js +56 -0
  173. package/lib/presentation.d.ts +1 -0
  174. package/lib/presentation.js +67 -0
  175. package/lib/presentationHandlers/html.d.ts +322 -0
  176. package/lib/presentationHandlers/html.js +348 -0
  177. package/lib/presentationHandlers/html_class.d.ts +98 -0
  178. package/lib/presentationHandlers/html_class.js +266 -0
  179. package/lib/runner.d.ts +1 -0
  180. package/lib/runner.js +31 -0
  181. package/lib/server.d.ts +2 -0
  182. package/lib/server.js +76 -0
  183. package/lib/tools.d.ts +1 -0
  184. package/lib/tools.js +1604 -0
  185. package/lib/utils.d.ts +13 -0
  186. package/lib/utils.js +80 -0
  187. package/package.json +51 -0
package/lib/tools.js ADDED
@@ -0,0 +1,1604 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tools = void 0;
4
+ exports.tools = [
5
+ // 01 Section divider
6
+ {
7
+ type: "function",
8
+ function: {
9
+ name: "createSectionDividerPage",
10
+ description: "Insert a new slide in the presentation that serves as a section divider. This slide must include both a large main heading and a subtitle. Use this when the user wants to create a single slide that clearly introduces or separates a new section in their presentation.",
11
+ parameters: {
12
+ type: "object",
13
+ properties: {
14
+ heading: { type: "string", description: "Main section title, shown prominently on the slide" },
15
+ subheading: { type: "string", description: "Subtitle that provides context or explanation for the section" },
16
+ },
17
+ required: ["heading", "subheading"],
18
+ },
19
+ },
20
+ },
21
+ // 02 Agenda
22
+ {
23
+ type: "function",
24
+ function: {
25
+ name: "createAgendaPage",
26
+ description: "Insert one slide in the presentation that shows the agenda. This slide lists the main topics as bullet points under a clear title, giving the audience an overview of what will be covered.",
27
+ parameters: {
28
+ type: "object",
29
+ properties: {
30
+ title: { type: "string", description: "Heading shown at the top of the agenda slide" },
31
+ items: { type: "array", items: { type: "string" }, minItems: 1, description: "Agenda bullet points" },
32
+ },
33
+ required: ["title", "items"],
34
+ },
35
+ },
36
+ },
37
+ // 03 Executive summary
38
+ {
39
+ type: "function",
40
+ function: {
41
+ name: "createExecutiveSummaryPage",
42
+ description: "Insert one slide in the presentation that provides an executive summary. This slide should include a clear title and 3–7 concise bullet points highlighting the key takeaways.",
43
+ parameters: {
44
+ type: "object",
45
+ properties: {
46
+ title: { type: "string", description: "Slide title for the executive summary" },
47
+ bullets: {
48
+ type: "array",
49
+ items: { type: "string" },
50
+ minItems: 3,
51
+ maxItems: 7,
52
+ description: "Key takeaway points to summarize",
53
+ },
54
+ },
55
+ required: ["title", "bullets"],
56
+ },
57
+ },
58
+ },
59
+ // 04 Key message + supports
60
+ {
61
+ type: "function",
62
+ function: {
63
+ name: "createKeyMessageWithSupportsPage",
64
+ description: "Insert one slide in the presentation that emphasizes a single key message. The headline should state the main message, supported by at least two bullet points.",
65
+ parameters: {
66
+ type: "object",
67
+ properties: {
68
+ headline: { type: "string", description: "Main key message shown as the headline" },
69
+ supports: { type: "array", items: { type: "string" }, minItems: 2, description: "Supporting points or evidence" },
70
+ },
71
+ required: ["headline", "supports"],
72
+ },
73
+ },
74
+ },
75
+ // 05 Hypothesis
76
+ {
77
+ type: "function",
78
+ function: {
79
+ name: "createHypothesisPage",
80
+ description: "Insert one slide in the presentation that presents a hypothesis. This slide states the hypothesis clearly and may also outline implications and suggested next steps.",
81
+ parameters: {
82
+ type: "object",
83
+ properties: {
84
+ hypothesis: { type: "string", description: "The main hypothesis statement" },
85
+ implications: { type: "array", items: { type: "string" }, description: "Possible implications if the hypothesis is true" },
86
+ nextSteps: { type: "array", items: { type: "string" }, description: "Recommended next actions" },
87
+ },
88
+ required: ["hypothesis"],
89
+ },
90
+ },
91
+ },
92
+ // 06 Issue tree
93
+ {
94
+ type: "function",
95
+ function: {
96
+ name: "createIssueTreePage",
97
+ description: "Insert one slide in the presentation that visualizes an issue tree. This slide shows the root issue at the top and branches into MECE sub-issues to structure the problem.",
98
+ parameters: {
99
+ type: "object",
100
+ properties: {
101
+ rootIssue: { type: "string", description: "Main issue or problem statement" },
102
+ branches: {
103
+ type: "array",
104
+ items: { type: "array", items: { type: "string" } },
105
+ minItems: 2,
106
+ description: "Sub-issues or branches grouped under the root issue",
107
+ },
108
+ },
109
+ required: ["rootIssue", "branches"],
110
+ },
111
+ },
112
+ },
113
+ // 07 Driver tree
114
+ {
115
+ type: "function",
116
+ function: {
117
+ name: "createDriverTreePage",
118
+ description: "Insert one slide in the presentation that visualizes a driver tree. This slide shows a key business metric at the top and the drivers that influence it branching below.",
119
+ parameters: {
120
+ type: "object",
121
+ properties: {
122
+ metric: { type: "string", description: "The main business metric being analyzed" },
123
+ drivers: {
124
+ type: "array",
125
+ items: { type: "array", items: { type: "string" } },
126
+ minItems: 1,
127
+ description: "Driver branches that affect the main metric",
128
+ },
129
+ },
130
+ required: ["metric", "drivers"],
131
+ },
132
+ },
133
+ },
134
+ // 08 MECE list
135
+ {
136
+ type: "function",
137
+ function: {
138
+ name: "createMeceListPage",
139
+ description: "Insert one slide in the presentation that organizes items into MECE (Mutually Exclusive, Collectively Exhaustive) groups. Each group has a label and its own bullet list.",
140
+ parameters: {
141
+ type: "object",
142
+ properties: {
143
+ title: { type: "string", description: "Title of the MECE slide" },
144
+ groups: {
145
+ type: "array",
146
+ minItems: 2,
147
+ items: {
148
+ type: "object",
149
+ properties: {
150
+ label: { type: "string", description: "Group label" },
151
+ items: {
152
+ type: "array",
153
+ items: { type: "string" },
154
+ minItems: 1,
155
+ description: "Bullet points within this group",
156
+ },
157
+ },
158
+ required: ["label", "items"],
159
+ },
160
+ },
161
+ },
162
+ required: ["title", "groups"],
163
+ },
164
+ },
165
+ },
166
+ // 09 Pyramid principle
167
+ {
168
+ type: "function",
169
+ function: {
170
+ name: "createPyramidPrinciplePage",
171
+ description: "Insert one slide in the presentation that follows the pyramid principle. The slide starts with the key message, followed by supporting reasons, and optional detailed breakdowns.",
172
+ parameters: {
173
+ type: "object",
174
+ properties: {
175
+ keyMessage: { type: "string", description: "Top-level conclusion or main message" },
176
+ supports: { type: "array", items: { type: "string" }, minItems: 2, description: "Supporting reasons for the key message" },
177
+ details: {
178
+ type: "array",
179
+ items: { type: "array", items: { type: "string" } },
180
+ description: "Optional deeper details for each supporting reason",
181
+ },
182
+ },
183
+ required: ["keyMessage", "supports"],
184
+ },
185
+ },
186
+ },
187
+ // 10 SCQA
188
+ {
189
+ type: "function",
190
+ function: {
191
+ name: "createScqaPage",
192
+ description: "Insert one slide in the presentation that explains a storyline using the SCQA framework: Situation, Complication, Question, and Answer.",
193
+ parameters: {
194
+ type: "object",
195
+ properties: {
196
+ situation: { type: "string", description: "The initial situation or context" },
197
+ complication: { type: "string", description: "The complication or challenge" },
198
+ question: { type: "string", description: "The key question that arises" },
199
+ answer: { type: "string", description: "The answer or proposed resolution" },
200
+ },
201
+ required: ["situation", "complication", "question", "answer"],
202
+ },
203
+ },
204
+ },
205
+ // 11 SWOT
206
+ {
207
+ type: "function",
208
+ function: {
209
+ name: "createSwotPage",
210
+ description: "Create a SWOT matrix.",
211
+ parameters: {
212
+ type: "object",
213
+ properties: {
214
+ strengths: { type: "array", items: { type: "string" } },
215
+ weaknesses: { type: "array", items: { type: "string" } },
216
+ opportunities: { type: "array", items: { type: "string" } },
217
+ threats: { type: "array", items: { type: "string" } },
218
+ },
219
+ required: ["strengths", "weaknesses", "opportunities", "threats"],
220
+ },
221
+ },
222
+ },
223
+ // 12 3C
224
+ {
225
+ type: "function",
226
+ function: {
227
+ name: "createThreeCPage",
228
+ description: "Create a 3C (Company, Customer, Competitor) page.",
229
+ parameters: {
230
+ type: "object",
231
+ properties: {
232
+ company: { type: "array", items: { type: "string" } },
233
+ customer: { type: "array", items: { type: "string" } },
234
+ competitor: { type: "array", items: { type: "string" } },
235
+ },
236
+ required: ["company", "customer", "competitor"],
237
+ },
238
+ },
239
+ },
240
+ // 13 4P
241
+ {
242
+ type: "function",
243
+ function: {
244
+ name: "createFourPPage",
245
+ description: "Create a marketing 4P page.",
246
+ parameters: {
247
+ type: "object",
248
+ properties: {
249
+ product: { type: "array", items: { type: "string" } },
250
+ price: { type: "array", items: { type: "string" } },
251
+ place: { type: "array", items: { type: "string" } },
252
+ promotion: { type: "array", items: { type: "string" } },
253
+ },
254
+ required: ["product", "price", "place", "promotion"],
255
+ },
256
+ },
257
+ },
258
+ // 14 7S
259
+ {
260
+ type: "function",
261
+ function: {
262
+ name: "createSevenSPage",
263
+ description: "Create a McKinsey 7S page.",
264
+ parameters: {
265
+ type: "object",
266
+ properties: {
267
+ strategy: { type: "string" },
268
+ structure: { type: "string" },
269
+ systems: { type: "string" },
270
+ sharedValues: { type: "string" },
271
+ skills: { type: "string" },
272
+ style: { type: "string" },
273
+ staff: { type: "string" },
274
+ },
275
+ required: ["strategy", "structure", "systems", "sharedValues", "skills", "style", "staff"],
276
+ },
277
+ },
278
+ },
279
+ // 15 Value chain
280
+ {
281
+ type: "function",
282
+ function: {
283
+ name: "createValueChainPage",
284
+ description: "Create a value chain with primary and support activities.",
285
+ parameters: {
286
+ type: "object",
287
+ properties: {
288
+ primary: { type: "array", items: { type: "string" }, minItems: 3 },
289
+ support: { type: "array", items: { type: "string" }, minItems: 3 },
290
+ },
291
+ required: ["primary", "support"],
292
+ },
293
+ },
294
+ },
295
+ // 16 Five forces
296
+ {
297
+ type: "function",
298
+ function: {
299
+ name: "createPorterFiveForcesPage",
300
+ description: "Create a Porter’s Five Forces page.",
301
+ parameters: {
302
+ type: "object",
303
+ properties: {
304
+ newEntrants: { type: "array", items: { type: "string" } },
305
+ suppliers: { type: "array", items: { type: "string" } },
306
+ buyers: { type: "array", items: { type: "string" } },
307
+ substitutes: { type: "array", items: { type: "string" } },
308
+ rivalry: { type: "array", items: { type: "string" } },
309
+ },
310
+ required: ["newEntrants", "suppliers", "buyers", "substitutes", "rivalry"],
311
+ },
312
+ },
313
+ },
314
+ // 17 Business model canvas
315
+ {
316
+ type: "function",
317
+ function: {
318
+ name: "createBusinessModelCanvasPage",
319
+ description: "Create a Business Model Canvas (9 blocks).",
320
+ parameters: {
321
+ type: "object",
322
+ properties: {
323
+ blocks: {
324
+ type: "object",
325
+ additionalProperties: { type: "array", items: { type: "string" } },
326
+ },
327
+ },
328
+ required: ["blocks"],
329
+ },
330
+ },
331
+ },
332
+ // 18 Customer journey
333
+ {
334
+ type: "function",
335
+ function: {
336
+ name: "createCustomerJourneyPage",
337
+ description: "Create a customer journey with stages and touchpoints.",
338
+ parameters: {
339
+ type: "object",
340
+ properties: {
341
+ stages: { type: "array", items: { type: "string" }, minItems: 3 },
342
+ touchpoints: {
343
+ type: "array",
344
+ items: { type: "array", items: { type: "string" } },
345
+ },
346
+ },
347
+ required: ["stages"],
348
+ },
349
+ },
350
+ },
351
+ // 19 Stakeholder map
352
+ {
353
+ type: "function",
354
+ function: {
355
+ name: "createStakeholderMapPage",
356
+ description: "Create a stakeholder influence-interest map.",
357
+ parameters: {
358
+ type: "object",
359
+ properties: {
360
+ stakeholders: {
361
+ type: "array",
362
+ items: {
363
+ type: "object",
364
+ properties: {
365
+ name: { type: "string" },
366
+ influence: { type: "number" },
367
+ interest: { type: "number" },
368
+ notes: { type: "string" },
369
+ },
370
+ required: ["name", "influence", "interest"],
371
+ },
372
+ },
373
+ },
374
+ required: ["stakeholders"],
375
+ },
376
+ },
377
+ },
378
+ // 20 RACI
379
+ {
380
+ type: "function",
381
+ function: {
382
+ name: "createRaciPage",
383
+ description: "Create a RACI matrix.",
384
+ parameters: {
385
+ type: "object",
386
+ properties: {
387
+ tasks: { type: "array", items: { type: "string" }, minItems: 1 },
388
+ roles: { type: "array", items: { type: "string" }, minItems: 1 },
389
+ assignments: {
390
+ type: "array",
391
+ items: { type: "array", items: { type: "string" } },
392
+ },
393
+ },
394
+ required: ["tasks", "roles"],
395
+ },
396
+ },
397
+ },
398
+ // 21 OKR/KPI dashboard
399
+ {
400
+ type: "function",
401
+ function: {
402
+ name: "createOkrKpiDashboardPage",
403
+ description: "Create an OKR/KPI dashboard with tiles.",
404
+ parameters: {
405
+ type: "object",
406
+ properties: {
407
+ title: { type: "string" },
408
+ metrics: {
409
+ type: "array",
410
+ minItems: 3,
411
+ items: {
412
+ type: "object",
413
+ properties: {
414
+ label: { type: "string" },
415
+ value: { type: "string" },
416
+ target: { type: "string" },
417
+ status: { type: "string" },
418
+ },
419
+ required: ["label", "value"],
420
+ },
421
+ },
422
+ },
423
+ required: ["metrics"],
424
+ },
425
+ },
426
+ },
427
+ // 22 Balanced scorecard
428
+ {
429
+ type: "function",
430
+ function: {
431
+ name: "createBalancedScorecardPage",
432
+ description: "Create a balanced scorecard page.",
433
+ parameters: {
434
+ type: "object",
435
+ properties: {
436
+ perspectives: {
437
+ type: "array",
438
+ items: {
439
+ type: "object",
440
+ properties: {
441
+ name: { type: "string" },
442
+ items: { type: "array", items: { type: "string" } },
443
+ },
444
+ required: ["name", "items"],
445
+ },
446
+ },
447
+ },
448
+ required: ["perspectives"],
449
+ },
450
+ },
451
+ },
452
+ // 23 Quarterly roadmap
453
+ {
454
+ type: "function",
455
+ function: {
456
+ name: "createQuarterlyRoadmapPage",
457
+ description: "Create a quarterly roadmap.",
458
+ parameters: {
459
+ type: "object",
460
+ properties: {
461
+ quarters: { type: "array", items: { type: "string" }, minItems: 2 },
462
+ items: {
463
+ type: "array",
464
+ items: {
465
+ type: "object",
466
+ properties: {
467
+ quarter: { type: "string" },
468
+ label: { type: "string" },
469
+ },
470
+ required: ["quarter", "label"],
471
+ },
472
+ },
473
+ },
474
+ required: ["quarters", "items"],
475
+ },
476
+ },
477
+ },
478
+ // 24 Milestone timeline
479
+ {
480
+ type: "function",
481
+ function: {
482
+ name: "createMilestoneTimelinePage",
483
+ description: "Create a milestone timeline.",
484
+ parameters: {
485
+ type: "object",
486
+ properties: {
487
+ title: { type: "string" },
488
+ milestones: {
489
+ type: "array",
490
+ minItems: 2,
491
+ items: {
492
+ type: "object",
493
+ properties: {
494
+ label: { type: "string" },
495
+ date: { type: "string" },
496
+ notes: { type: "string" },
497
+ },
498
+ required: ["label"],
499
+ },
500
+ },
501
+ },
502
+ required: ["milestones"],
503
+ },
504
+ },
505
+ },
506
+ // 25 Gantt (simple)
507
+ {
508
+ type: "function",
509
+ function: {
510
+ name: "createGanttSimplePage",
511
+ description: "Create a simple Gantt placeholder.",
512
+ parameters: {
513
+ type: "object",
514
+ properties: {
515
+ tasks: {
516
+ type: "array",
517
+ items: {
518
+ type: "object",
519
+ properties: {
520
+ name: { type: "string" },
521
+ start: { type: "string" },
522
+ end: { type: "string" },
523
+ },
524
+ required: ["name", "start", "end"],
525
+ },
526
+ },
527
+ },
528
+ required: ["tasks"],
529
+ },
530
+ },
531
+ },
532
+ // 26 Waterfall (numeric decomposition)
533
+ {
534
+ type: "function",
535
+ function: {
536
+ name: "createWaterfallPage",
537
+ description: "Create a numeric waterfall steps placeholder.",
538
+ parameters: {
539
+ type: "object",
540
+ properties: {
541
+ title: { type: "string" },
542
+ steps: {
543
+ type: "array",
544
+ items: {
545
+ type: "object",
546
+ properties: {
547
+ label: { type: "string" },
548
+ value: { type: "number" },
549
+ },
550
+ required: ["label", "value"],
551
+ },
552
+ },
553
+ },
554
+ required: ["steps"],
555
+ },
556
+ },
557
+ },
558
+ // 27 Funnel
559
+ {
560
+ type: "function",
561
+ function: {
562
+ name: "createFunnelPage",
563
+ description: "Create a funnel stages placeholder.",
564
+ parameters: {
565
+ type: "object",
566
+ properties: {
567
+ stages: {
568
+ type: "array",
569
+ minItems: 3,
570
+ items: {
571
+ type: "object",
572
+ properties: {
573
+ label: { type: "string" },
574
+ value: { type: "number" },
575
+ },
576
+ required: ["label", "value"],
577
+ },
578
+ },
579
+ },
580
+ required: ["stages"],
581
+ },
582
+ },
583
+ },
584
+ // 28 2x2 matrix
585
+ {
586
+ type: "function",
587
+ function: {
588
+ name: "createTwoByTwoMatrixPage",
589
+ description: "Create a 2x2 matrix with quadrant items.",
590
+ parameters: {
591
+ type: "object",
592
+ properties: {
593
+ xAxis: { type: "string" },
594
+ yAxis: { type: "string" },
595
+ quadrants: {
596
+ type: "array",
597
+ minItems: 4,
598
+ maxItems: 4,
599
+ items: { type: "array", items: { type: "string" } },
600
+ },
601
+ },
602
+ required: ["xAxis", "yAxis", "quadrants"],
603
+ },
604
+ },
605
+ },
606
+ // 29 BCG matrix
607
+ {
608
+ type: "function",
609
+ function: {
610
+ name: "createBcgMatrixPage",
611
+ description: "Create a BCG matrix placeholder.",
612
+ parameters: {
613
+ type: "object",
614
+ properties: {
615
+ stars: { type: "array", items: { type: "string" } },
616
+ cashCows: { type: "array", items: { type: "string" } },
617
+ questionMarks: { type: "array", items: { type: "string" } },
618
+ dogs: { type: "array", items: { type: "string" } },
619
+ },
620
+ required: ["stars", "cashCows", "questionMarks", "dogs"],
621
+ },
622
+ },
623
+ },
624
+ // 30 GE-McKinsey matrix
625
+ {
626
+ type: "function",
627
+ function: {
628
+ name: "createGeMcKinseyMatrixPage",
629
+ description: "Create a GE-McKinsey 3x3 matrix placeholder.",
630
+ parameters: {
631
+ type: "object",
632
+ properties: {
633
+ industryAttractiveness: { type: "array", items: { type: "string" } },
634
+ competitiveStrength: { type: "array", items: { type: "string" } },
635
+ placements: {
636
+ type: "array",
637
+ items: {
638
+ type: "object",
639
+ properties: {
640
+ name: { type: "string" },
641
+ row: { type: "number" },
642
+ col: { type: "number" },
643
+ },
644
+ required: ["name", "row", "col"],
645
+ },
646
+ },
647
+ },
648
+ required: ["placements"],
649
+ },
650
+ },
651
+ },
652
+ // 31 Marimekko (placeholder)
653
+ {
654
+ type: "function",
655
+ function: {
656
+ name: "createMarimekkoPlaceholderPage",
657
+ description: "Create a Marimekko chart placeholder.",
658
+ parameters: {
659
+ type: "object",
660
+ properties: {
661
+ title: { type: "string" },
662
+ categories: { type: "array", items: { type: "string" }, minItems: 2 },
663
+ },
664
+ required: ["categories"],
665
+ },
666
+ },
667
+ },
668
+ // 32 Bubble chart (placeholder)
669
+ {
670
+ type: "function",
671
+ function: {
672
+ name: "createBubbleChartPlaceholderPage",
673
+ description: "Create a bubble chart placeholder.",
674
+ parameters: {
675
+ type: "object",
676
+ properties: {
677
+ title: { type: "string" },
678
+ points: {
679
+ type: "array",
680
+ items: {
681
+ type: "object",
682
+ properties: {
683
+ label: { type: "string" },
684
+ x: { type: "number" },
685
+ y: { type: "number" },
686
+ r: { type: "number" },
687
+ },
688
+ required: ["label", "x", "y", "r"],
689
+ },
690
+ },
691
+ },
692
+ required: ["points"],
693
+ },
694
+ },
695
+ },
696
+ // 33 Heatmap (placeholder)
697
+ {
698
+ type: "function",
699
+ function: {
700
+ name: "createHeatmapPlaceholderPage",
701
+ description: "Create a heatmap placeholder.",
702
+ parameters: {
703
+ type: "object",
704
+ properties: {
705
+ rows: { type: "array", items: { type: "string" }, minItems: 1 },
706
+ cols: { type: "array", items: { type: "string" }, minItems: 1 },
707
+ values: {
708
+ type: "array",
709
+ items: { type: "array", items: { type: "number" } },
710
+ },
711
+ },
712
+ required: ["rows", "cols", "values"],
713
+ },
714
+ },
715
+ },
716
+ // 34 KPI highlight
717
+ {
718
+ type: "function",
719
+ function: {
720
+ name: "createKpiHighlightPage",
721
+ description: "Create a slide highlighting key KPIs.",
722
+ parameters: {
723
+ type: "object",
724
+ properties: {
725
+ title: { type: "string" },
726
+ kpis: {
727
+ type: "array",
728
+ items: {
729
+ type: "object",
730
+ properties: {
731
+ label: { type: "string" },
732
+ value: { type: "string" },
733
+ delta: { type: "string" },
734
+ },
735
+ required: ["label", "value"],
736
+ },
737
+ },
738
+ },
739
+ required: ["kpis"],
740
+ },
741
+ },
742
+ },
743
+ // 35 Before/After
744
+ {
745
+ type: "function",
746
+ function: {
747
+ name: "createBeforeAfterPage",
748
+ description: "Create a before vs after comparison page.",
749
+ parameters: {
750
+ type: "object",
751
+ properties: {
752
+ title: { type: "string" },
753
+ before: { type: "array", items: { type: "string" }, minItems: 1 },
754
+ after: { type: "array", items: { type: "string" }, minItems: 1 },
755
+ },
756
+ required: ["before", "after"],
757
+ },
758
+ },
759
+ },
760
+ // 36 Option evaluation (criteria x options)
761
+ {
762
+ type: "function",
763
+ function: {
764
+ name: "createOptionEvaluationPage",
765
+ description: "Create an options vs criteria evaluation matrix.",
766
+ parameters: {
767
+ type: "object",
768
+ properties: {
769
+ criteria: { type: "array", items: { type: "string" }, minItems: 3 },
770
+ options: { type: "array", items: { type: "string" }, minItems: 2 },
771
+ scores: {
772
+ type: "array",
773
+ items: { type: "array", items: { type: "number" } },
774
+ },
775
+ },
776
+ required: ["criteria", "options"],
777
+ },
778
+ },
779
+ },
780
+ // 37 Risk & mitigation
781
+ {
782
+ type: "function",
783
+ function: {
784
+ name: "createRiskMitigationPage",
785
+ description: "Create a risk register with mitigations.",
786
+ parameters: {
787
+ type: "object",
788
+ properties: {
789
+ risks: {
790
+ type: "array",
791
+ items: {
792
+ type: "object",
793
+ properties: {
794
+ risk: { type: "string" },
795
+ impact: { type: "string" },
796
+ likelihood: { type: "string" },
797
+ mitigation: { type: "string" },
798
+ },
799
+ required: ["risk"],
800
+ },
801
+ },
802
+ },
803
+ required: ["risks"],
804
+ },
805
+ },
806
+ },
807
+ // 38 Positioning map
808
+ {
809
+ type: "function",
810
+ function: {
811
+ name: "createPositioningMapPage",
812
+ description: "Create a competitive positioning map.",
813
+ parameters: {
814
+ type: "object",
815
+ properties: {
816
+ xAxis: { type: "string" },
817
+ yAxis: { type: "string" },
818
+ players: {
819
+ type: "array",
820
+ items: {
821
+ type: "object",
822
+ properties: {
823
+ name: { type: "string" },
824
+ x: { type: "number" },
825
+ y: { type: "number" },
826
+ },
827
+ required: ["name", "x", "y"],
828
+ },
829
+ },
830
+ },
831
+ required: ["xAxis", "yAxis", "players"],
832
+ },
833
+ },
834
+ },
835
+ // 39 TAM/SAM/SOM
836
+ {
837
+ type: "function",
838
+ function: {
839
+ name: "createTamSamSomPage",
840
+ description: "Create a market size (TAM/SAM/SOM) page.",
841
+ parameters: {
842
+ type: "object",
843
+ properties: {
844
+ tam: { type: "number" },
845
+ sam: { type: "number" },
846
+ som: { type: "number" },
847
+ notes: { type: "string" },
848
+ },
849
+ required: ["tam", "sam", "som"],
850
+ },
851
+ },
852
+ },
853
+ // 40 Market drivers
854
+ {
855
+ type: "function",
856
+ function: {
857
+ name: "createMarketDriversPage",
858
+ description: "Create a list of market growth drivers.",
859
+ parameters: {
860
+ type: "object",
861
+ properties: {
862
+ title: { type: "string" },
863
+ drivers: { type: "array", items: { type: "string" }, minItems: 1 },
864
+ },
865
+ required: ["drivers"],
866
+ },
867
+ },
868
+ },
869
+ // 41 Revenue model
870
+ {
871
+ type: "function",
872
+ function: {
873
+ name: "createRevenueModelPage",
874
+ description: "Create revenue streams and pricing notes.",
875
+ parameters: {
876
+ type: "object",
877
+ properties: {
878
+ streams: { type: "array", items: { type: "string" }, minItems: 1 },
879
+ pricingNotes: { type: "string" },
880
+ },
881
+ required: ["streams"],
882
+ },
883
+ },
884
+ },
885
+ // 42 Cost structure
886
+ {
887
+ type: "function",
888
+ function: {
889
+ name: "createCostStructurePage",
890
+ description: "Create a cost structure with buckets and notes.",
891
+ parameters: {
892
+ type: "object",
893
+ properties: {
894
+ buckets: { type: "array", items: { type: "string" }, minItems: 1 },
895
+ fixedVsVariable: { type: "array", items: { type: "string" } },
896
+ },
897
+ required: ["buckets"],
898
+ },
899
+ },
900
+ },
901
+ // 43 Org chart
902
+ {
903
+ type: "function",
904
+ function: {
905
+ name: "createOrgChartPage",
906
+ description: "Create a simple org chart placeholder.",
907
+ parameters: {
908
+ type: "object",
909
+ properties: {
910
+ nodes: {
911
+ type: "array",
912
+ items: {
913
+ type: "object",
914
+ properties: {
915
+ id: { type: "string" },
916
+ label: { type: "string" },
917
+ parentId: { type: "string" },
918
+ },
919
+ required: ["id", "label"],
920
+ },
921
+ },
922
+ },
923
+ required: ["nodes"],
924
+ },
925
+ },
926
+ },
927
+ // 44 Capability maturity
928
+ {
929
+ type: "function",
930
+ function: {
931
+ name: "createCapabilityMaturityPage",
932
+ description: "Create a capability maturity model (1–5).",
933
+ parameters: {
934
+ type: "object",
935
+ properties: {
936
+ capabilities: {
937
+ type: "array",
938
+ items: {
939
+ type: "object",
940
+ properties: {
941
+ name: { type: "string" },
942
+ level: { type: "number" },
943
+ },
944
+ required: ["name", "level"],
945
+ },
946
+ },
947
+ },
948
+ required: ["capabilities"],
949
+ },
950
+ },
951
+ },
952
+ // 45 Technology roadmap
953
+ {
954
+ type: "function",
955
+ function: {
956
+ name: "createTechRoadmapPage",
957
+ description: "Create a technology roadmap with phases.",
958
+ parameters: {
959
+ type: "object",
960
+ properties: {
961
+ phases: { type: "array", items: { type: "string" }, minItems: 2 },
962
+ items: {
963
+ type: "array",
964
+ items: {
965
+ type: "object",
966
+ properties: {
967
+ phase: { type: "string" },
968
+ label: { type: "string" },
969
+ },
970
+ required: ["phase", "label"],
971
+ },
972
+ },
973
+ },
974
+ required: ["phases"],
975
+ },
976
+ },
977
+ },
978
+ // 46 Digital maturity
979
+ {
980
+ type: "function",
981
+ function: {
982
+ name: "createDigitalMaturityPage",
983
+ description: "Create a digital maturity assessment.",
984
+ parameters: {
985
+ type: "object",
986
+ properties: {
987
+ dimensions: { type: "array", items: { type: "string" } },
988
+ levels: { type: "array", items: { type: "number" } },
989
+ notes: { type: "string" },
990
+ },
991
+ required: ["dimensions"],
992
+ },
993
+ },
994
+ },
995
+ // 47 Ecosystem map
996
+ {
997
+ type: "function",
998
+ function: {
999
+ name: "createEcosystemMapPage",
1000
+ description: "Create an ecosystem or partner map.",
1001
+ parameters: {
1002
+ type: "object",
1003
+ properties: {
1004
+ categories: { type: "array", items: { type: "string" } },
1005
+ entities: {
1006
+ type: "array",
1007
+ items: {
1008
+ type: "object",
1009
+ properties: {
1010
+ category: { type: "string" },
1011
+ name: { type: "string" },
1012
+ },
1013
+ required: ["category", "name"],
1014
+ },
1015
+ },
1016
+ },
1017
+ required: ["entities"],
1018
+ },
1019
+ },
1020
+ },
1021
+ // 48 Change curve
1022
+ {
1023
+ type: "function",
1024
+ function: {
1025
+ name: "createChangeCurvePage",
1026
+ description: "Create a change curve with stages.",
1027
+ parameters: {
1028
+ type: "object",
1029
+ properties: {
1030
+ stages: { type: "array", items: { type: "string" }, minItems: 4 },
1031
+ notes: { type: "string" },
1032
+ },
1033
+ required: ["stages"],
1034
+ },
1035
+ },
1036
+ },
1037
+ // 49 Communication plan
1038
+ {
1039
+ type: "function",
1040
+ function: {
1041
+ name: "createCommunicationPlanPage",
1042
+ description: "Create a communication plan matrix.",
1043
+ parameters: {
1044
+ type: "object",
1045
+ properties: {
1046
+ audiences: { type: "array", items: { type: "string" } },
1047
+ channels: { type: "array", items: { type: "string" } },
1048
+ cadence: { type: "string" },
1049
+ },
1050
+ required: ["audiences", "channels"],
1051
+ },
1052
+ },
1053
+ },
1054
+ // 50 Integration plan (PMI)
1055
+ {
1056
+ type: "function",
1057
+ function: {
1058
+ name: "createIntegrationPlanPage",
1059
+ description: "Create a post-merger integration (PMI) plan placeholder.",
1060
+ parameters: {
1061
+ type: "object",
1062
+ properties: {
1063
+ workstreams: {
1064
+ type: "array",
1065
+ items: { type: "string" },
1066
+ minItems: 2,
1067
+ },
1068
+ milestones: { type: "array", items: { type: "string" } },
1069
+ },
1070
+ required: ["workstreams"],
1071
+ },
1072
+ },
1073
+ },
1074
+ // 51 Benchmarking table
1075
+ {
1076
+ type: "function",
1077
+ function: {
1078
+ name: "createBenchmarkingTablePage",
1079
+ description: "Create a benchmarking comparison table.",
1080
+ parameters: {
1081
+ type: "object",
1082
+ properties: {
1083
+ metrics: { type: "array", items: { type: "string" }, minItems: 1 },
1084
+ competitors: {
1085
+ type: "array",
1086
+ items: { type: "string" },
1087
+ minItems: 2,
1088
+ },
1089
+ },
1090
+ required: ["metrics", "competitors"],
1091
+ },
1092
+ },
1093
+ },
1094
+ // 52 Survey results
1095
+ {
1096
+ type: "function",
1097
+ function: {
1098
+ name: "createSurveyResultsPage",
1099
+ description: "Create a survey results summary.",
1100
+ parameters: {
1101
+ type: "object",
1102
+ properties: {
1103
+ questions: { type: "array", items: { type: "string" } },
1104
+ summaries: { type: "array", items: { type: "string" } },
1105
+ },
1106
+ required: ["questions"],
1107
+ },
1108
+ },
1109
+ },
1110
+ // 53 Personas
1111
+ {
1112
+ type: "function",
1113
+ function: {
1114
+ name: "createPersonasPage",
1115
+ description: "Create customer persona cards.",
1116
+ parameters: {
1117
+ type: "object",
1118
+ properties: {
1119
+ personas: {
1120
+ type: "array",
1121
+ items: {
1122
+ type: "object",
1123
+ properties: {
1124
+ name: { type: "string" },
1125
+ bio: { type: "string" },
1126
+ needs: { type: "array", items: { type: "string" } },
1127
+ },
1128
+ required: ["name"],
1129
+ },
1130
+ },
1131
+ },
1132
+ required: ["personas"],
1133
+ },
1134
+ },
1135
+ },
1136
+ // 54 Segmentation
1137
+ {
1138
+ type: "function",
1139
+ function: {
1140
+ name: "createSegmentationPage",
1141
+ description: "Create a customer segmentation page.",
1142
+ parameters: {
1143
+ type: "object",
1144
+ properties: {
1145
+ segments: { type: "array", items: { type: "string" }, minItems: 2 },
1146
+ descriptors: { type: "array", items: { type: "string" } },
1147
+ },
1148
+ required: ["segments"],
1149
+ },
1150
+ },
1151
+ },
1152
+ // 55 Pricing waterfall
1153
+ {
1154
+ type: "function",
1155
+ function: {
1156
+ name: "createPricingWaterfallPage",
1157
+ description: "Create a pricing waterfall placeholder.",
1158
+ parameters: {
1159
+ type: "object",
1160
+ properties: {
1161
+ steps: {
1162
+ type: "array",
1163
+ items: {
1164
+ type: "object",
1165
+ properties: {
1166
+ label: { type: "string" },
1167
+ value: { type: "number" },
1168
+ },
1169
+ required: ["label", "value"],
1170
+ },
1171
+ },
1172
+ },
1173
+ required: ["steps"],
1174
+ },
1175
+ },
1176
+ },
1177
+ // 56 Sensitivity analysis
1178
+ {
1179
+ type: "function",
1180
+ function: {
1181
+ name: "createSensitivityAnalysisPage",
1182
+ description: "Create a sensitivity analysis placeholder.",
1183
+ parameters: {
1184
+ type: "object",
1185
+ properties: {
1186
+ variables: { type: "array", items: { type: "string" }, minItems: 2 },
1187
+ scenarios: { type: "array", items: { type: "string" }, minItems: 2 },
1188
+ },
1189
+ required: ["variables", "scenarios"],
1190
+ },
1191
+ },
1192
+ },
1193
+ // 57 P&L breakdown
1194
+ {
1195
+ type: "function",
1196
+ function: {
1197
+ name: "createPLBreakdownPage",
1198
+ description: "Create a P&L breakdown placeholder.",
1199
+ parameters: {
1200
+ type: "object",
1201
+ properties: {
1202
+ categories: { type: "array", items: { type: "string" }, minItems: 3 },
1203
+ values: { type: "array", items: { type: "number" }, minItems: 3 },
1204
+ },
1205
+ required: ["categories", "values"],
1206
+ },
1207
+ },
1208
+ },
1209
+ // 58 Cash flow
1210
+ {
1211
+ type: "function",
1212
+ function: {
1213
+ name: "createCashFlowPage",
1214
+ description: "Create a cash flow summary placeholder.",
1215
+ parameters: {
1216
+ type: "object",
1217
+ properties: {
1218
+ inflows: { type: "array", items: { type: "number" } },
1219
+ outflows: { type: "array", items: { type: "number" } },
1220
+ },
1221
+ required: ["inflows", "outflows"],
1222
+ },
1223
+ },
1224
+ },
1225
+ // 59 Balance sheet
1226
+ {
1227
+ type: "function",
1228
+ function: {
1229
+ name: "createBalanceSheetPage",
1230
+ description: "Create a balance sheet summary placeholder.",
1231
+ parameters: {
1232
+ type: "object",
1233
+ properties: {
1234
+ assets: { type: "array", items: { type: "string" } },
1235
+ liabilities: { type: "array", items: { type: "string" } },
1236
+ equity: { type: "array", items: { type: "string" } },
1237
+ },
1238
+ required: ["assets", "liabilities", "equity"],
1239
+ },
1240
+ },
1241
+ },
1242
+ // 60 Shareholder value tree
1243
+ {
1244
+ type: "function",
1245
+ function: {
1246
+ name: "createShareholderValueTreePage",
1247
+ description: "Create a shareholder value driver tree.",
1248
+ parameters: {
1249
+ type: "object",
1250
+ properties: {
1251
+ drivers: { type: "array", items: { type: "string" }, minItems: 3 },
1252
+ },
1253
+ required: ["drivers"],
1254
+ },
1255
+ },
1256
+ },
1257
+ // 61 NPV summary
1258
+ {
1259
+ type: "function",
1260
+ function: {
1261
+ name: "createNpvSummaryPage",
1262
+ description: "Create an NPV summary placeholder.",
1263
+ parameters: {
1264
+ type: "object",
1265
+ properties: {
1266
+ npv: { type: "number" },
1267
+ assumptions: { type: "array", items: { type: "string" } },
1268
+ },
1269
+ required: ["npv"],
1270
+ },
1271
+ },
1272
+ },
1273
+ // 62 Scenario planning
1274
+ {
1275
+ type: "function",
1276
+ function: {
1277
+ name: "createScenarioPlanningPage",
1278
+ description: "Create a scenario planning page.",
1279
+ parameters: {
1280
+ type: "object",
1281
+ properties: {
1282
+ scenarios: { type: "array", items: { type: "string" }, minItems: 2 },
1283
+ impacts: { type: "array", items: { type: "string" } },
1284
+ },
1285
+ required: ["scenarios"],
1286
+ },
1287
+ },
1288
+ },
1289
+ // 63 Compliance heatmap
1290
+ {
1291
+ type: "function",
1292
+ function: {
1293
+ name: "createComplianceHeatmapPage",
1294
+ description: "Create a compliance heatmap placeholder.",
1295
+ parameters: {
1296
+ type: "object",
1297
+ properties: {
1298
+ areas: { type: "array", items: { type: "string" } },
1299
+ levels: { type: "array", items: { type: "string" } },
1300
+ },
1301
+ required: ["areas"],
1302
+ },
1303
+ },
1304
+ },
1305
+ // 64 ESG framework
1306
+ {
1307
+ type: "function",
1308
+ function: {
1309
+ name: "createEsgFrameworkPage",
1310
+ description: "Create an ESG framework summary.",
1311
+ parameters: {
1312
+ type: "object",
1313
+ properties: {
1314
+ environmental: { type: "array", items: { type: "string" } },
1315
+ social: { type: "array", items: { type: "string" } },
1316
+ governance: { type: "array", items: { type: "string" } },
1317
+ },
1318
+ required: ["environmental", "social", "governance"],
1319
+ },
1320
+ },
1321
+ },
1322
+ // 65 CSR initiatives
1323
+ {
1324
+ type: "function",
1325
+ function: {
1326
+ name: "createCsrInitiativesPage",
1327
+ description: "Create a CSR initiatives page.",
1328
+ parameters: {
1329
+ type: "object",
1330
+ properties: {
1331
+ initiatives: {
1332
+ type: "array",
1333
+ items: { type: "string" },
1334
+ minItems: 1,
1335
+ },
1336
+ },
1337
+ required: ["initiatives"],
1338
+ },
1339
+ },
1340
+ },
1341
+ // 66 Sustainability roadmap
1342
+ {
1343
+ type: "function",
1344
+ function: {
1345
+ name: "createSustainabilityRoadmapPage",
1346
+ description: "Create a sustainability roadmap.",
1347
+ parameters: {
1348
+ type: "object",
1349
+ properties: {
1350
+ phases: { type: "array", items: { type: "string" }, minItems: 2 },
1351
+ actions: { type: "array", items: { type: "string" } },
1352
+ },
1353
+ required: ["phases"],
1354
+ },
1355
+ },
1356
+ },
1357
+ // 67 Circular economy map
1358
+ {
1359
+ type: "function",
1360
+ function: {
1361
+ name: "createCircularEconomyMapPage",
1362
+ description: "Create a circular economy loop map placeholder.",
1363
+ parameters: {
1364
+ type: "object",
1365
+ properties: {
1366
+ loops: { type: "array", items: { type: "string" }, minItems: 3 },
1367
+ },
1368
+ required: ["loops"],
1369
+ },
1370
+ },
1371
+ },
1372
+ // 68 Innovation funnel
1373
+ {
1374
+ type: "function",
1375
+ function: {
1376
+ name: "createInnovationFunnelPage",
1377
+ description: "Create an innovation funnel placeholder.",
1378
+ parameters: {
1379
+ type: "object",
1380
+ properties: {
1381
+ stages: { type: "array", items: { type: "string" }, minItems: 3 },
1382
+ counts: { type: "array", items: { type: "number" } },
1383
+ },
1384
+ required: ["stages"],
1385
+ },
1386
+ },
1387
+ },
1388
+ // 69 Product roadmap
1389
+ {
1390
+ type: "function",
1391
+ function: {
1392
+ name: "createProductRoadmapPage",
1393
+ description: "Create a product roadmap.",
1394
+ parameters: {
1395
+ type: "object",
1396
+ properties: {
1397
+ releases: { type: "array", items: { type: "string" }, minItems: 2 },
1398
+ items: {
1399
+ type: "array",
1400
+ items: {
1401
+ type: "object",
1402
+ properties: {
1403
+ release: { type: "string" },
1404
+ label: { type: "string" },
1405
+ },
1406
+ required: ["release", "label"],
1407
+ },
1408
+ },
1409
+ },
1410
+ required: ["releases"],
1411
+ },
1412
+ },
1413
+ },
1414
+ // 70 Launch plan
1415
+ {
1416
+ type: "function",
1417
+ function: {
1418
+ name: "createLaunchPlanPage",
1419
+ description: "Create a go-to-market launch plan.",
1420
+ parameters: {
1421
+ type: "object",
1422
+ properties: {
1423
+ workstreams: { type: "array", items: { type: "string" } },
1424
+ milestones: { type: "array", items: { type: "string" } },
1425
+ risks: { type: "array", items: { type: "string" } },
1426
+ },
1427
+ required: ["workstreams"],
1428
+ },
1429
+ },
1430
+ },
1431
+ // 71 Pipeline funnel
1432
+ {
1433
+ type: "function",
1434
+ function: {
1435
+ name: "createPipelineFunnelPage",
1436
+ description: "Create a pipeline funnel placeholder.",
1437
+ parameters: {
1438
+ type: "object",
1439
+ properties: {
1440
+ stages: { type: "array", items: { type: "string" }, minItems: 3 },
1441
+ values: { type: "array", items: { type: "number" } },
1442
+ },
1443
+ required: ["stages"],
1444
+ },
1445
+ },
1446
+ },
1447
+ // 72 Sales dashboard
1448
+ {
1449
+ type: "function",
1450
+ function: {
1451
+ name: "createSalesDashboardPage",
1452
+ description: "Create a sales dashboard placeholder.",
1453
+ parameters: {
1454
+ type: "object",
1455
+ properties: {
1456
+ metrics: { type: "array", items: { type: "string" }, minItems: 3 },
1457
+ notes: { type: "string" },
1458
+ },
1459
+ required: ["metrics"],
1460
+ },
1461
+ },
1462
+ },
1463
+ // 73 Marketing mix
1464
+ {
1465
+ type: "function",
1466
+ function: {
1467
+ name: "createMarketingMixPage",
1468
+ description: "Create a marketing mix summary.",
1469
+ parameters: {
1470
+ type: "object",
1471
+ properties: {
1472
+ levers: { type: "array", items: { type: "string" }, minItems: 4 },
1473
+ notes: { type: "string" },
1474
+ },
1475
+ required: ["levers"],
1476
+ },
1477
+ },
1478
+ },
1479
+ // 74 Customer success journey
1480
+ {
1481
+ type: "function",
1482
+ function: {
1483
+ name: "createCustomerSuccessJourneyPage",
1484
+ description: "Create a customer success journey map.",
1485
+ parameters: {
1486
+ type: "object",
1487
+ properties: {
1488
+ stages: { type: "array", items: { type: "string" }, minItems: 3 },
1489
+ metrics: { type: "array", items: { type: "string" } },
1490
+ },
1491
+ required: ["stages"],
1492
+ },
1493
+ },
1494
+ },
1495
+ // 75 Support org model
1496
+ {
1497
+ type: "function",
1498
+ function: {
1499
+ name: "createSupportOrgModelPage",
1500
+ description: "Create a support organization model placeholder.",
1501
+ parameters: {
1502
+ type: "object",
1503
+ properties: {
1504
+ tiers: { type: "array", items: { type: "string" }, minItems: 2 },
1505
+ roles: { type: "array", items: { type: "string" } },
1506
+ },
1507
+ required: ["tiers"],
1508
+ },
1509
+ },
1510
+ },
1511
+ // 76 Partnership map
1512
+ {
1513
+ type: "function",
1514
+ function: {
1515
+ name: "createPartnershipMapPage",
1516
+ description: "Create a partnership ecosystem map.",
1517
+ parameters: {
1518
+ type: "object",
1519
+ properties: {
1520
+ categories: { type: "array", items: { type: "string" } },
1521
+ partners: {
1522
+ type: "array",
1523
+ items: {
1524
+ type: "object",
1525
+ properties: {
1526
+ name: { type: "string" },
1527
+ category: { type: "string" },
1528
+ },
1529
+ required: ["name"],
1530
+ },
1531
+ },
1532
+ },
1533
+ required: ["partners"],
1534
+ },
1535
+ },
1536
+ },
1537
+ // 77 M&A pipeline
1538
+ {
1539
+ type: "function",
1540
+ function: {
1541
+ name: "createMAPipelinePage",
1542
+ description: "Create an M&A pipeline placeholder.",
1543
+ parameters: {
1544
+ type: "object",
1545
+ properties: {
1546
+ stages: { type: "array", items: { type: "string" }, minItems: 3 },
1547
+ targets: { type: "array", items: { type: "string" } },
1548
+ },
1549
+ required: ["stages"],
1550
+ },
1551
+ },
1552
+ },
1553
+ // 78 Synergy capture
1554
+ {
1555
+ type: "function",
1556
+ function: {
1557
+ name: "createSynergyCapturePage",
1558
+ description: "Create a synergy capture plan placeholder.",
1559
+ parameters: {
1560
+ type: "object",
1561
+ properties: {
1562
+ sources: { type: "array", items: { type: "string" } },
1563
+ values: { type: "array", items: { type: "number" } },
1564
+ },
1565
+ required: ["sources"],
1566
+ },
1567
+ },
1568
+ },
1569
+ // 79 Culture values
1570
+ {
1571
+ type: "function",
1572
+ function: {
1573
+ name: "createCultureValuesPage",
1574
+ description: "Create a culture and values page.",
1575
+ parameters: {
1576
+ type: "object",
1577
+ properties: {
1578
+ values: { type: "array", items: { type: "string" }, minItems: 3 },
1579
+ behaviors: { type: "array", items: { type: "string" } },
1580
+ },
1581
+ required: ["values"],
1582
+ },
1583
+ },
1584
+ },
1585
+ // 80 Thank-you / Contact
1586
+ {
1587
+ type: "function",
1588
+ function: {
1589
+ name: "createThankYouContactPage",
1590
+ description: "Create a closing page with a thank-you message and contacts.",
1591
+ parameters: {
1592
+ type: "object",
1593
+ properties: {
1594
+ message: { type: "string", default: "Thank you!" },
1595
+ name: { type: "string" },
1596
+ email: { type: "string" },
1597
+ url: { type: "string" },
1598
+ qrImageUrl: { type: "string" },
1599
+ },
1600
+ required: ["message"],
1601
+ },
1602
+ },
1603
+ },
1604
+ ];