@cplace/test-mcp-server 0.1.15 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/README.md +248 -113
  2. package/dist/conditional-registration.d.ts.map +1 -1
  3. package/dist/conditional-registration.js +19 -3
  4. package/dist/conditional-registration.js.map +1 -1
  5. package/dist/index.js +21 -93
  6. package/dist/index.js.map +1 -1
  7. package/dist/preference-file.d.ts +16 -0
  8. package/dist/preference-file.d.ts.map +1 -0
  9. package/dist/preference-file.js +133 -0
  10. package/dist/preference-file.js.map +1 -0
  11. package/dist/profiles.d.ts +1 -3
  12. package/dist/profiles.d.ts.map +1 -1
  13. package/dist/profiles.js +60 -112
  14. package/dist/profiles.js.map +1 -1
  15. package/dist/searchConversion.d.ts.map +1 -1
  16. package/dist/searchConversion.js +18 -5
  17. package/dist/searchConversion.js.map +1 -1
  18. package/dist/searchSchema.d.ts +25 -25
  19. package/dist/searchSchema.d.ts.map +1 -1
  20. package/dist/searchSchema.js +5 -5
  21. package/dist/searchSchema.js.map +1 -1
  22. package/dist/token-hashing.d.ts +3 -0
  23. package/dist/token-hashing.d.ts.map +1 -0
  24. package/dist/token-hashing.js +18 -0
  25. package/dist/token-hashing.js.map +1 -0
  26. package/dist/tool-metadata.d.ts +2 -0
  27. package/dist/tool-metadata.d.ts.map +1 -0
  28. package/dist/tool-metadata.js +43 -0
  29. package/dist/tool-metadata.js.map +1 -0
  30. package/dist/tools/change-listeners.d.ts +30 -0
  31. package/dist/tools/change-listeners.d.ts.map +1 -1
  32. package/dist/tools/change-listeners.js +24 -18
  33. package/dist/tools/change-listeners.js.map +1 -1
  34. package/dist/tools/common-schemas.d.ts +2 -0
  35. package/dist/tools/common-schemas.d.ts.map +1 -1
  36. package/dist/tools/common-schemas.js +16 -0
  37. package/dist/tools/common-schemas.js.map +1 -1
  38. package/dist/tools/csv-export.d.ts +1849 -0
  39. package/dist/tools/csv-export.d.ts.map +1 -0
  40. package/dist/tools/csv-export.js +61 -0
  41. package/dist/tools/csv-export.js.map +1 -0
  42. package/dist/tools/generic-layouts.d.ts +302 -0
  43. package/dist/tools/generic-layouts.d.ts.map +1 -1
  44. package/dist/tools/generic-layouts.js +102 -70
  45. package/dist/tools/generic-layouts.js.map +1 -1
  46. package/dist/tools/get-operations.d.ts +16 -0
  47. package/dist/tools/get-operations.d.ts.map +1 -0
  48. package/dist/tools/get-operations.js +63 -0
  49. package/dist/tools/get-operations.js.map +1 -0
  50. package/dist/tools/pages.d.ts +55 -0
  51. package/dist/tools/pages.d.ts.map +1 -1
  52. package/dist/tools/pages.js +173 -257
  53. package/dist/tools/pages.js.map +1 -1
  54. package/dist/tools/ppt-export-schemas.d.ts +16 -16
  55. package/dist/tools/ppt-export.d.ts +1493 -0
  56. package/dist/tools/ppt-export.d.ts.map +1 -1
  57. package/dist/tools/ppt-export.js +23 -17
  58. package/dist/tools/ppt-export.js.map +1 -1
  59. package/dist/tools/profile-management.d.ts +20 -0
  60. package/dist/tools/profile-management.d.ts.map +1 -0
  61. package/dist/tools/profile-management.js +250 -0
  62. package/dist/tools/profile-management.js.map +1 -0
  63. package/dist/tools/references.d.ts +36 -0
  64. package/dist/tools/references.d.ts.map +1 -1
  65. package/dist/tools/references.js +48 -45
  66. package/dist/tools/references.js.map +1 -1
  67. package/dist/tools/richstring-widgets.d.ts +51 -0
  68. package/dist/tools/richstring-widgets.d.ts.map +1 -0
  69. package/dist/tools/richstring-widgets.js +173 -0
  70. package/dist/tools/richstring-widgets.js.map +1 -0
  71. package/dist/tools/schedule.d.ts +14 -0
  72. package/dist/tools/schedule.d.ts.map +1 -1
  73. package/dist/tools/schedule.js +7 -3
  74. package/dist/tools/schedule.js.map +1 -1
  75. package/dist/tools/script-logs.d.ts +29 -0
  76. package/dist/tools/script-logs.d.ts.map +1 -0
  77. package/dist/tools/script-logs.js +144 -0
  78. package/dist/tools/script-logs.js.map +1 -0
  79. package/dist/tools/search.d.ts +1870 -0
  80. package/dist/tools/search.d.ts.map +1 -1
  81. package/dist/tools/search.js +49 -75
  82. package/dist/tools/search.js.map +1 -1
  83. package/dist/tools/system.d.ts.map +1 -1
  84. package/dist/tools/system.js +4 -2
  85. package/dist/tools/system.js.map +1 -1
  86. package/dist/tools/type-layouts.d.ts +37 -0
  87. package/dist/tools/type-layouts.d.ts.map +1 -1
  88. package/dist/tools/type-layouts.js +30 -22
  89. package/dist/tools/type-layouts.js.map +1 -1
  90. package/dist/tools/type-management.d.ts +134 -0
  91. package/dist/tools/type-management.d.ts.map +1 -0
  92. package/dist/tools/{workspace.js → type-management.js} +67 -307
  93. package/dist/tools/type-management.js.map +1 -0
  94. package/dist/tools/users.d.ts +19 -0
  95. package/dist/tools/users.d.ts.map +1 -1
  96. package/dist/tools/users.js +14 -28
  97. package/dist/tools/users.js.map +1 -1
  98. package/dist/tools/validators.d.ts +28 -0
  99. package/dist/tools/validators.d.ts.map +1 -1
  100. package/dist/tools/validators.js +21 -15
  101. package/dist/tools/validators.js.map +1 -1
  102. package/dist/tools/version-check.d.ts.map +1 -1
  103. package/dist/tools/version-check.js +11 -9
  104. package/dist/tools/version-check.js.map +1 -1
  105. package/dist/tools/version-history.d.ts +48 -0
  106. package/dist/tools/version-history.d.ts.map +1 -1
  107. package/dist/tools/version-history.js +39 -29
  108. package/dist/tools/version-history.js.map +1 -1
  109. package/dist/tools/widgets.d.ts +182 -0
  110. package/dist/tools/widgets.d.ts.map +1 -1
  111. package/dist/tools/widgets.js +122 -343
  112. package/dist/tools/widgets.js.map +1 -1
  113. package/dist/tools/workflow-scripts.d.ts +40 -0
  114. package/dist/tools/workflow-scripts.d.ts.map +1 -0
  115. package/dist/tools/workflow-scripts.js +186 -0
  116. package/dist/tools/workflow-scripts.js.map +1 -0
  117. package/dist/tools/workflow.d.ts +70 -0
  118. package/dist/tools/workflow.d.ts.map +1 -0
  119. package/dist/tools/workflow.js +259 -0
  120. package/dist/tools/workflow.js.map +1 -0
  121. package/dist/tools/workspace-admin.d.ts +40 -0
  122. package/dist/tools/workspace-admin.d.ts.map +1 -0
  123. package/dist/tools/workspace-admin.js +125 -0
  124. package/dist/tools/workspace-admin.js.map +1 -0
  125. package/dist/tools/workspace-core.d.ts +45 -0
  126. package/dist/tools/workspace-core.d.ts.map +1 -0
  127. package/dist/tools/workspace-core.js +153 -0
  128. package/dist/tools/workspace-core.js.map +1 -0
  129. package/dist/types.d.ts +3 -3
  130. package/dist/types.d.ts.map +1 -1
  131. package/dist/utils/dateValidation.d.ts +5 -0
  132. package/dist/utils/dateValidation.d.ts.map +1 -0
  133. package/dist/utils/dateValidation.js +57 -0
  134. package/dist/utils/dateValidation.js.map +1 -0
  135. package/dist/utils.js +7 -7
  136. package/dist/utils.js.map +1 -1
  137. package/package.json +1 -1
  138. package/dist/tools/workspace.d.ts +0 -4
  139. package/dist/tools/workspace.d.ts.map +0 -1
  140. package/dist/tools/workspace.js.map +0 -1
@@ -2,8 +2,14 @@ import { z } from "zod";
2
2
  import { debugLogWithTag } from "../logger.js";
3
3
  import { transformMultiplicityToBoolean } from '../utils.js';
4
4
  import { PositionSchema, WIDGET_CONFIG_DESCRIPTION } from './common-schemas.js';
5
- export function registerWidgetTools(server, client) {
6
- server.registerTool("cplace_list_widget_definitions", {
5
+ const TOOL_LIST_WIDGET_DEFINITIONS = 'cplace_list_widget_definitions';
6
+ const TOOL_GET_WIDGET_DEFINITION = 'cplace_get_widget_definition';
7
+ const TOOL_GET_WIDGET_DETAILS = 'cplace_get_widget_details';
8
+ const TOOL_GET_EMBEDDED_LAYOUT = 'cplace_get_embedded_layout';
9
+ const TOOL_ADD_WIDGET_TO_EMBEDDED_LAYOUT = 'cplace_add_widget_to_embedded_layout';
10
+ const TOOL_REMOVE_WIDGET_FROM_EMBEDDED_LAYOUT = 'cplace_remove_widget_from_embedded_layout';
11
+ export const WIDGET_TOOL_DEFINITIONS = {
12
+ [TOOL_LIST_WIDGET_DEFINITIONS]: {
7
13
  description: "Get a list of all available widget definitions in the system that support the specified embedding context, with their basic metadata including names, descriptions, and apps",
8
14
  inputSchema: {
9
15
  embeddingContext: z.enum(["AS_WIDGET", "INSIDE_RICHSTRING", "INSIDE_WIDGET"]).default("AS_WIDGET").describe(`Filter widgets by embedding context support:
@@ -12,7 +18,109 @@ export function registerWidgetTools(server, client) {
12
18
  - INSIDE_WIDGET: Widgets that can be embedded inside other widgets without frame`)
13
19
  },
14
20
  annotations: { title: "List Widget Definitions" }
15
- }, async ({ embeddingContext = "AS_WIDGET" }) => {
21
+ },
22
+ [TOOL_GET_WIDGET_DEFINITION]: {
23
+ description: "Get detailed widget configuration schema.\n\n🔍 ALWAYS USE BEFORE ADDING/CONFIGURING WIDGETS to understand:\n- Required vs optional attributes\n- Correct attribute names (often not intuitive!)\n- Expected data types and formats\n- Available enumeration values\n\nCOMMON GOTCHAS:\n- Bar charts use 'attributeName' not 'attribute'\n- Connected charts need 'tableWidgetId' to link to tables\n- Attribute names often need single quotes: \"'cf.cplace.myAttribute'\"\n- LocalizedString format: {\"en\": \"English\", \"de\": \"German\"}\n\nWidget kinds: 'cf.platform.connectedBarChart', 'cf.platform.wiki', etc.",
24
+ inputSchema: {
25
+ widgetKind: z.string().describe("The widget kind identifier (e.g., 'cf.cplace.platform.table', 'cf.platform.wiki')")
26
+ },
27
+ annotations: { title: "Get Widget Definition Details" }
28
+ },
29
+ [TOOL_GET_WIDGET_DETAILS]: {
30
+ description: "Get detailed configuration for a specific widget within a page layout. Use this after cplace_get_page_layout_overview to examine specific widget configurations.",
31
+ inputSchema: {
32
+ pageUID: z.string().describe("The unique identifier (UID) of the page containing the widget"),
33
+ widgetId: z.string().describe("The unique widget identifier from the layout (e.g., 'id_123', 'id_456')")
34
+ },
35
+ annotations: { title: "Get Widget Details" }
36
+ },
37
+ [TOOL_GET_EMBEDDED_LAYOUT]: {
38
+ description: "Get embedded widget layout structure for page or type. Retrieves the widget layout structure of embedded widgets within container widgets like AttributesGroup widgets.",
39
+ inputSchema: {
40
+ context: z.union([
41
+ z.object({
42
+ type: z.literal("page"),
43
+ pageUID: z.string().describe("Page UID (e.g., 'page/abc123')"),
44
+ containerWidgetId: z.string().describe("Container widget ID (e.g., 'id_abc123')"),
45
+ layoutAttributeName: z.string().describe("Layout attribute name (e.g., 'detailsLayout')")
46
+ }),
47
+ z.object({
48
+ type: z.literal("type"),
49
+ workspaceId: z.string().describe("Workspace ID (e.g., 'workspace123')"),
50
+ typeInternalName: z.string().describe("Type internal name (e.g., 'cf.example.myType')"),
51
+ alternativeLayoutName: z.string().optional().describe("Alternative layout name (optional)"),
52
+ containerWidgetId: z.string().describe("Container widget ID (e.g., 'id_abc123')"),
53
+ layoutAttributeName: z.string().describe("Layout attribute name (e.g., 'detailsLayout')")
54
+ })
55
+ ]).describe("Embedded layout target - specify whether operating on page or type embedded layout")
56
+ },
57
+ annotations: { title: "Get Embedded Layout" }
58
+ },
59
+ [TOOL_ADD_WIDGET_TO_EMBEDDED_LAYOUT]: {
60
+ description: "Add widget to page or type embedded layout. Enables adding widgets to nested layouts like those within AttributesGroup widgets.",
61
+ inputSchema: {
62
+ context: z.union([
63
+ z.object({
64
+ type: z.literal("page"),
65
+ pageUID: z.string().describe("Page UID (e.g., 'page/abc123')"),
66
+ containerWidgetId: z.string().describe("Container widget ID (e.g., 'id_abc123')"),
67
+ layoutAttributeName: z.string().describe("Layout attribute name (e.g., 'detailsLayout')")
68
+ }),
69
+ z.object({
70
+ type: z.literal("type"),
71
+ workspaceId: z.string().describe("Workspace ID (e.g., 'workspace123')"),
72
+ typeInternalName: z.string().describe("Type internal name (e.g., 'cf.example.myType')"),
73
+ alternativeLayoutName: z.string().optional().describe("Alternative layout name (optional)"),
74
+ containerWidgetId: z.string().describe("Container widget ID (e.g., 'id_abc123')"),
75
+ layoutAttributeName: z.string().describe("Layout attribute name (e.g., 'detailsLayout')")
76
+ })
77
+ ]).describe("Embedded layout target - specify whether operating on page or type embedded layout"),
78
+ widgetType: z.string().describe("Widget type identifier (e.g., 'cf.cplace.platform.table', 'cf.platform.wiki')"),
79
+ position: PositionSchema,
80
+ configuration: z.record(z.any()).optional().describe(WIDGET_CONFIG_DESCRIPTION)
81
+ },
82
+ annotations: { title: "Add Widget to Embedded Layout" }
83
+ },
84
+ [TOOL_REMOVE_WIDGET_FROM_EMBEDDED_LAYOUT]: {
85
+ description: "Remove widget from page or type embedded layout. Enables removing widgets from nested layouts like those within AttributesGroup widgets.",
86
+ inputSchema: {
87
+ context: z.union([
88
+ z.object({
89
+ type: z.literal("page"),
90
+ pageUID: z.string().describe("Page UID (e.g., 'page/abc123')"),
91
+ containerWidgetId: z.string().describe("Container widget ID (e.g., 'id_abc123')"),
92
+ layoutAttributeName: z.string().describe("Layout attribute name (e.g., 'detailsLayout')")
93
+ }),
94
+ z.object({
95
+ type: z.literal("type"),
96
+ workspaceId: z.string().describe("Workspace ID (e.g., 'workspace123')"),
97
+ typeInternalName: z.string().describe("Type internal name (e.g., 'cf.example.myType')"),
98
+ alternativeLayoutName: z.string().optional().describe("Alternative layout name (optional)"),
99
+ containerWidgetId: z.string().describe("Container widget ID (e.g., 'id_abc123')"),
100
+ layoutAttributeName: z.string().describe("Layout attribute name (e.g., 'detailsLayout')")
101
+ })
102
+ ]).describe("Embedded layout target - specify whether operating on page or type embedded layout"),
103
+ widgetId: z.string().describe("The ID of the existing widget to remove from the embedded layout")
104
+ },
105
+ annotations: { title: "Remove Widget from Embedded Layout" }
106
+ }
107
+ };
108
+ export function registerWidgetTools(server, client) {
109
+ const WIDGET_ATTRIBUTE_ENHANCEMENTS = {
110
+ 'cf.cplace.platform.attributesGroup': {
111
+ 'cf.cplace.platform.attributesGroup.pageSelection': {
112
+ validValues: {
113
+ 'embedding': 'Use the current embedding page (the page containing this widget)',
114
+ 'parent': 'Use the parent page of the embedding page',
115
+ 'absolute': 'Use an absolute page reference (requires cf.cplace.platform.attributesGroup.absoluteSelection)',
116
+ 'relative': 'Use a relative reference through an attribute (requires cf.cplace.platform.attributesGroup.relativeSelection)'
117
+ },
118
+ defaultValue: 'embedding',
119
+ note: 'This attribute determines which page\'s attributes are displayed in the widget'
120
+ }
121
+ },
122
+ };
123
+ server.registerTool(TOOL_LIST_WIDGET_DEFINITIONS, WIDGET_TOOL_DEFINITIONS[TOOL_LIST_WIDGET_DEFINITIONS], async ({ embeddingContext = "AS_WIDGET" }) => {
16
124
  debugLogWithTag('WIDGETS', `Starting widget definitions list request with embeddingContext: ${embeddingContext}`);
17
125
  try {
18
126
  const result = await client.makeApiRequest('json/widget-definitions', 'GET', { embeddingContext });
@@ -31,27 +139,7 @@ export function registerWidgetTools(server, client) {
31
139
  };
32
140
  }
33
141
  });
34
- const WIDGET_ATTRIBUTE_ENHANCEMENTS = {
35
- 'cf.cplace.platform.attributesGroup': {
36
- 'cf.cplace.platform.attributesGroup.pageSelection': {
37
- validValues: {
38
- 'embedding': 'Use the current embedding page (the page containing this widget)',
39
- 'parent': 'Use the parent page of the embedding page',
40
- 'absolute': 'Use an absolute page reference (requires cf.cplace.platform.attributesGroup.absoluteSelection)',
41
- 'relative': 'Use a relative reference through an attribute (requires cf.cplace.platform.attributesGroup.relativeSelection)'
42
- },
43
- defaultValue: 'embedding',
44
- note: 'This attribute determines which page\'s attributes are displayed in the widget'
45
- }
46
- },
47
- };
48
- server.registerTool("cplace_get_widget_definition", {
49
- description: "Get detailed widget configuration schema.\n\n🔍 ALWAYS USE BEFORE ADDING/CONFIGURING WIDGETS to understand:\n- Required vs optional attributes\n- Correct attribute names (often not intuitive!)\n- Expected data types and formats\n- Available enumeration values\n\nCOMMON GOTCHAS:\n- Bar charts use 'attributeName' not 'attribute'\n- Connected charts need 'tableWidgetId' to link to tables\n- Attribute names often need single quotes: \"'cf.cplace.myAttribute'\"\n- LocalizedString format: {\"en\": \"English\", \"de\": \"German\"}\n\nWidget kinds: 'cf.platform.connectedBarChart', 'cf.platform.wiki', etc.",
50
- inputSchema: {
51
- widgetKind: z.string().describe("The widget kind identifier (e.g., 'cf.cplace.platform.table', 'cf.platform.wiki')")
52
- },
53
- annotations: { title: "Get Widget Definition Details" }
54
- }, async ({ widgetKind }) => {
142
+ server.registerTool(TOOL_GET_WIDGET_DEFINITION, WIDGET_TOOL_DEFINITIONS[TOOL_GET_WIDGET_DEFINITION], async ({ widgetKind }) => {
55
143
  debugLogWithTag('WIDGETS', `Starting widget definition request for: ${widgetKind}`);
56
144
  try {
57
145
  const result = await client.makeApiRequest('json/widget-definition', 'GET', { widgetKind });
@@ -84,14 +172,7 @@ export function registerWidgetTools(server, client) {
84
172
  };
85
173
  }
86
174
  });
87
- server.registerTool("cplace_get_widget_details", {
88
- description: "Get detailed configuration for a specific widget within a page layout. Use this after cplace_get_page_layout_overview to examine specific widget configurations.",
89
- inputSchema: {
90
- pageUID: z.string().describe("The unique identifier (UID) of the page containing the widget"),
91
- widgetId: z.string().describe("The unique widget identifier from the layout (e.g., 'id_123', 'id_456')")
92
- },
93
- annotations: { title: "Get Widget Details" }
94
- }, async ({ pageUID, widgetId }) => {
175
+ server.registerTool(TOOL_GET_WIDGET_DETAILS, WIDGET_TOOL_DEFINITIONS[TOOL_GET_WIDGET_DETAILS], async ({ pageUID, widgetId }) => {
95
176
  debugLogWithTag('LAYOUT', `Starting widget details request for widget ${widgetId} in page ${pageUID}`);
96
177
  try {
97
178
  const result = await client.makeApiRequest('json/pageLayout', 'GET', { pageUID });
@@ -120,302 +201,22 @@ export function registerWidgetTools(server, client) {
120
201
  };
121
202
  }
122
203
  debugLogWithTag('LAYOUT', `Retrieved widget details for: ${widgetId} in page`);
123
- return {
124
- content: [{ type: "text", text: JSON.stringify(foundWidget, null, 2) }]
125
- };
126
- }
127
- catch (error) {
128
- return {
129
- content: [{
130
- type: "text",
131
- text: `Error retrieving widget details for ${widgetId} in page ${pageUID}: ${error instanceof Error ? error.message : String(error)}`
132
- }],
133
- isError: true
134
- };
135
- }
136
- });
137
- server.registerTool("cplace_add_widget_to_layout", {
138
- description: "Add a new widget to a page layout at a specific position.\n\n⚠️ REQUIRED BEFORE USE:\n- ALWAYS call cplace_get_widget_definition FIRST to understand required fields\n- Many widgets have non-obvious required attributes that will cause validation errors\n- Widget configurations must match the schema exactly\n\nCRITICAL BEHAVIOR:\n- Row creation: ❌ NOT automatic - use cplace_add_row_to_page_layout to create rows first\n- Column creation: ❌ NOT automatic - columnIndex only references existing columns\n- Invalid columnIndex: Falls back to last existing column (no error)\n\nTO CREATE SIDE-BY-SIDE LAYOUTS:\n1. First use cplace_add_row_to_page_layout to create multi-column structure\n2. Then add widgets to the created columns\n\nEXAMPLES:\n- Add to new row 0: Creates single-column row, widget goes to column 0\n- Add to column 1 when only column 0 exists: Widget goes to column 0 (fallback)\n- Add to pre-created 6/6 row: Works correctly if columns exist\n\nTIP: Always check current layout with cplace_get_page_layout_overview before adding widgets.\n\nSupports both page-level layouts (default) and embedded layouts within container widgets like AttributesGroup.",
139
- inputSchema: {
140
- pageUID: z.string().describe("The unique identifier (UID) of the page to add the widget to"),
141
- widgetType: z.string().describe("The widget type identifier (e.g., 'cf.cplace.platform.table', 'cf.platform.wiki', 'cf.platform.singleAttribute')"),
142
- configuration: z.record(z.any()).optional().describe(`${WIDGET_CONFIG_DESCRIPTION}
143
-
144
- WIDGET-SPECIFIC PATTERNS:
145
- - Connected widgets (bar/pie charts): Use 'tableWidgetId' to connect to existing table widget
146
- Example: {'tableWidgetId': 'id_abc123', 'title': {'en': 'Chart Title'}}
147
- - Attribute widgets: Use 'cf.platform.quotedAttributeName' with single quotes
148
- Example: {'cf.platform.quotedAttributeName': "'cf.cplace.myAttribute'", 'cf.platform.withLabel': true}
149
- - Search widgets: Use 'search' with JSON search string
150
- Example: {'search': '{"filters":[{"types":["test.project"]}]}', 'title': {'en': 'Results'}}
151
-
152
- For embedded attribute widgets: {'cf.platform.quotedAttributeName': "'cf.cplace.myAttribute'", 'cf.platform.withLabel': true}`),
153
- position: PositionSchema.extend({}).describe("Grid position where the widget should be added"),
154
- layoutContext: z.enum(["page", "widget"]).default("page").describe("Layout context: 'page' for page-level layout (default), 'widget' for embedded layout within a container widget"),
155
- containerWidgetId: z.string().optional().describe("Required when layoutContext is 'widget'. The unique identifier of the container widget (e.g., AttributesGroup widget) that contains the embedded layout to modify"),
156
- layoutAttributeName: z.string().optional().describe("Optional layout attribute name for embedded layouts. If not provided, it will be auto-detected based on the container widget type")
157
- },
158
- annotations: { title: "Add Widget to Layout" }
159
- }, async ({ pageUID, widgetType, configuration, position, layoutContext = "page", containerWidgetId, layoutAttributeName }) => {
160
- debugLogWithTag('LAYOUT_MODIFY', `Starting add widget operation: ${widgetType} to ${layoutContext === "widget" ? "embedded layout in container " + containerWidgetId : "page layout"} ${pageUID} at position ${JSON.stringify(position)}`);
161
- try {
162
- if (layoutContext === "widget") {
163
- if (!containerWidgetId) {
164
- return {
165
- content: [{ type: "text", text: "containerWidgetId is required when layoutContext is 'widget'" }]
166
- };
167
- }
168
- debugLogWithTag('LAYOUT_MODIFY', `Adding to embedded layout in container widget: ${containerWidgetId}`);
169
- }
170
- const operation = {
171
- type: "ADD",
172
- widgetType,
173
- position: {
174
- rowIndex: position.rowIndex,
175
- columnIndex: position.columnIndex,
176
- widgetIndex: position.widgetIndex
177
- }
178
- };
179
- if (configuration && Object.keys(configuration).length > 0) {
180
- operation.configuration = configuration;
181
- debugLogWithTag('LAYOUT_MODIFY', `Including configuration: ${JSON.stringify(Object.keys(configuration))}`);
182
- }
183
- const requestBody = {
184
- pageUID,
185
- layoutContext,
186
- operation
187
- };
188
- if (layoutContext === "widget") {
189
- requestBody.containerWidgetId = containerWidgetId;
190
- if (layoutAttributeName) {
191
- requestBody.layoutAttributeName = layoutAttributeName;
192
- }
193
- }
194
- debugLogWithTag('LAYOUT_MODIFY', `Request body: ${JSON.stringify(requestBody, null, 2)}`);
195
- const result = await client.makeApiRequest('json/pageLayout', 'PATCH', undefined, requestBody);
196
- debugLogWithTag('LAYOUT_MODIFY', `Successfully added widget ${widgetType} to page ${pageUID}`);
197
- const response = {
198
- operation: "ADD",
199
- status: "SUCCESS",
200
- pageUID,
201
- widgetType,
202
- position,
203
- layoutContext,
204
- ...(layoutContext === "widget" && containerWidgetId && { containerWidgetId }),
205
- message: layoutContext === "widget"
206
- ? "Widget added successfully to embedded layout"
207
- : "Widget added successfully"
208
- };
209
- return {
210
- content: [{ type: "text", text: JSON.stringify(response, null, 2) }]
211
- };
212
- }
213
- catch (error) {
214
- debugLogWithTag('LAYOUT_MODIFY', `Error adding widget: ${error instanceof Error ? error.message : String(error)}`);
215
- const errorResponse = {
216
- operation: "ADD",
217
- status: "ERROR",
218
- pageUID,
219
- widgetType,
220
- position,
221
- layoutContext,
222
- ...(layoutContext === "widget" && containerWidgetId && { containerWidgetId }),
223
- error: error instanceof Error ? error.message : String(error),
224
- message: "Failed to add widget"
225
- };
226
- return {
227
- content: [{ type: "text", text: JSON.stringify(errorResponse, null, 2) }],
228
- isError: true
229
- };
230
- }
231
- });
232
- server.registerTool("cplace_remove_widget_from_layout", {
233
- description: "Remove an existing widget from a page layout",
234
- inputSchema: {
235
- pageUID: z.string().describe("The unique identifier (UID) of the page containing the widget"),
236
- widgetId: z.string().describe("The unique identifier of the widget to remove")
237
- },
238
- annotations: { title: "Remove Widget from Layout" }
239
- }, async ({ pageUID, widgetId }) => {
240
- debugLogWithTag('LAYOUT_MODIFY', `Starting remove widget operation: ${widgetId} from page ${pageUID}`);
241
- try {
242
- const requestBody = {
243
- pageUID,
244
- operation: {
245
- type: "REMOVE",
246
- widgetId
247
- }
248
- };
249
- debugLogWithTag('LAYOUT_MODIFY', `Request body: ${JSON.stringify(requestBody, null, 2)}`);
250
- const result = await client.makeApiRequest('json/pageLayout', 'PATCH', undefined, requestBody);
251
- debugLogWithTag('LAYOUT_MODIFY', `Successfully removed widget ${widgetId} from page ${pageUID}`);
252
204
  const response = {
253
- operation: "REMOVE",
254
- status: "SUCCESS",
255
- pageUID,
256
- widgetId,
257
- message: "Widget removed successfully"
258
- };
259
- return {
260
- content: [{ type: "text", text: JSON.stringify(response, null, 2) }]
261
- };
262
- }
263
- catch (error) {
264
- debugLogWithTag('LAYOUT_MODIFY', `Error removing widget: ${error instanceof Error ? error.message : String(error)}`);
265
- const errorResponse = {
266
- operation: "REMOVE",
267
- status: "ERROR",
268
- pageUID,
269
- widgetId,
270
- error: error instanceof Error ? error.message : String(error),
271
- message: "Failed to remove widget"
272
- };
273
- return {
274
- content: [{ type: "text", text: JSON.stringify(errorResponse, null, 2) }],
275
- isError: true
276
- };
277
- }
278
- });
279
- server.registerTool("cplace_update_widget_in_layout", {
280
- description: "Modify widget configuration or display properties.\nUSE CASES:\n- Restore configuration after widget moves (configurations may be lost during moves)\n- Update widget connections (e.g., change tableWidgetId after layout modifications)\n- Modify display properties (titles, collapse state, etc.)\n\nTIP: Widget IDs may change after layout operations - always use current IDs from latest layout overview.",
281
- inputSchema: {
282
- pageUID: z.string().describe("The unique identifier (UID) of the page containing the widget"),
283
- widgetId: z.string().describe("The unique identifier of the widget to update"),
284
- newConfiguration: z.record(z.any()).optional().describe(`Updated widget configuration as key-value pairs (optional). ${WIDGET_CONFIG_DESCRIPTION}`),
285
- collapsed: z.boolean().optional().describe("Widget collapse state (optional)")
286
- },
287
- annotations: { title: "Update Widget in Layout" }
288
- }, async ({ pageUID, widgetId, newConfiguration, collapsed }) => {
289
- debugLogWithTag('LAYOUT_MODIFY', `Starting update widget operation: ${widgetId} in page ${pageUID}`);
290
- try {
291
- const operation = {
292
- type: "UPDATE",
293
- widgetId
294
- };
295
- if (newConfiguration && Object.keys(newConfiguration).length > 0) {
296
- operation.newConfiguration = newConfiguration;
297
- debugLogWithTag('LAYOUT_MODIFY', `Including new configuration: ${JSON.stringify(Object.keys(newConfiguration))}`);
298
- }
299
- if (collapsed !== undefined) {
300
- operation.collapsed = collapsed;
301
- debugLogWithTag('LAYOUT_MODIFY', `Setting collapsed state to: ${collapsed}`);
302
- }
303
- if (!operation.newConfiguration && operation.collapsed === undefined) {
304
- return {
305
- content: [{ type: "text", text: "No updates specified. At least one of newConfiguration or collapsed must be provided." }]
306
- };
307
- }
308
- const requestBody = {
309
- pageUID,
310
- operation
311
- };
312
- debugLogWithTag('LAYOUT_MODIFY', `Request body: ${JSON.stringify(requestBody, null, 2)}`);
313
- const result = await client.makeApiRequest('json/pageLayout', 'PATCH', undefined, requestBody);
314
- debugLogWithTag('LAYOUT_MODIFY', `Successfully updated widget ${widgetId} in page ${pageUID}`);
315
- const response = {
316
- operation: "UPDATE",
317
- status: "SUCCESS",
318
- pageUID,
319
- widgetId,
320
- message: "Widget updated successfully"
321
- };
322
- return {
323
- content: [{ type: "text", text: JSON.stringify(response, null, 2) }]
324
- };
325
- }
326
- catch (error) {
327
- debugLogWithTag('LAYOUT_MODIFY', `Error updating widget: ${error instanceof Error ? error.message : String(error)}`);
328
- const errorResponse = {
329
- operation: "UPDATE",
330
- status: "ERROR",
331
- pageUID,
332
205
  widgetId,
333
- error: error instanceof Error ? error.message : String(error),
334
- message: "Failed to update widget"
335
- };
336
- return {
337
- content: [{ type: "text", text: JSON.stringify(errorResponse, null, 2) }],
338
- isError: true
339
- };
340
- }
341
- });
342
- server.registerTool("cplace_move_widget_in_layout", {
343
- description: "Relocate a widget to a different position in the layout.\n\nMOVE BEHAVIOR:\n- ✅ Can move between existing rows and columns\n- ❌ Cannot create new columns (only references existing ones)\n- Invalid columnIndex: Falls back to last column in target row\n\nCRITICAL WARNINGS:\n- Widget configurations may be LOST during moves\n- Widget IDs may CHANGE - always get new IDs from response\n- Connected widgets (charts) may lose their tableWidgetId references\n\nPOST-MOVE CHECKLIST:\n1. Get new widget ID from response\n2. Use cplace_get_widget_details to check if configuration was preserved\n3. If lost, use cplace_update_widget_in_layout to restore configuration\n4. Update any widgets that referenced the moved widget's old ID\n\nTIP: For complex layouts, consider removing and re-adding widgets instead of moving.",
344
- inputSchema: {
345
- pageUID: z.string().describe("The unique identifier (UID) of the page containing the widget"),
346
- widgetId: z.string().describe("The unique identifier of the widget to move"),
347
- newPosition: PositionSchema.extend({}).describe("Target grid position for the widget")
348
- },
349
- annotations: { title: "Move Widget in Layout" }
350
- }, async ({ pageUID, widgetId, newPosition }) => {
351
- debugLogWithTag('LAYOUT_MODIFY', `Starting move widget operation: ${widgetId} in page ${pageUID} to position ${JSON.stringify(newPosition)}`);
352
- try {
353
- const requestBody = {
354
206
  pageUID,
355
- operation: {
356
- type: "MOVE",
357
- widgetId,
358
- newPosition: {
359
- rowIndex: newPosition.rowIndex,
360
- columnIndex: newPosition.columnIndex,
361
- widgetIndex: newPosition.widgetIndex
362
- }
363
- }
364
- };
365
- debugLogWithTag('LAYOUT_MODIFY', `Request body: ${JSON.stringify(requestBody, null, 2)}`);
366
- const result = await client.makeApiRequest('json/pageLayout', 'PATCH', undefined, requestBody);
367
- debugLogWithTag('LAYOUT_MODIFY', `Successfully moved widget ${widgetId} in page ${pageUID}`);
368
- let newWidgetId = widgetId;
369
- let widgetIdChanged = false;
370
- try {
371
- const layoutString = result.result;
372
- const layout = JSON.parse(layoutString);
373
- if (layout.rows && layout.rows[newPosition.rowIndex]) {
374
- const targetRow = layout.rows[newPosition.rowIndex];
375
- if (targetRow.columns && targetRow.columns[newPosition.columnIndex]) {
376
- const targetColumn = targetRow.columns[newPosition.columnIndex];
377
- if (targetColumn.widgets && targetColumn.widgets[newPosition.widgetIndex]) {
378
- const movedWidget = targetColumn.widgets[newPosition.widgetIndex];
379
- if (movedWidget.id && movedWidget.id !== widgetId) {
380
- newWidgetId = movedWidget.id;
381
- widgetIdChanged = true;
382
- }
383
- }
384
- }
385
- }
386
- }
387
- catch (parseError) {
388
- debugLogWithTag('LAYOUT_MODIFY', `Could not parse layout to detect ID change: ${parseError}`);
389
- }
390
- const response = {
391
- operation: "MOVE",
392
- status: "SUCCESS",
393
- pageUID,
394
- oldWidgetId: widgetId,
395
- newWidgetId,
396
- newPosition,
397
- widgetIdChanged,
398
- message: widgetIdChanged
399
- ? "Widget moved successfully - widget ID changed, please update any references"
400
- : "Widget moved successfully"
207
+ widget: foundWidget,
208
+ validationStatus: foundWidget.validationStatus || null
401
209
  };
402
210
  return {
403
211
  content: [{ type: "text", text: JSON.stringify(response, null, 2) }]
404
212
  };
405
213
  }
406
214
  catch (error) {
407
- debugLogWithTag('LAYOUT_MODIFY', `Error moving widget: ${error instanceof Error ? error.message : String(error)}`);
408
- const errorResponse = {
409
- operation: "MOVE",
410
- status: "ERROR",
411
- pageUID,
412
- oldWidgetId: widgetId,
413
- newPosition,
414
- error: error instanceof Error ? error.message : String(error),
415
- message: "Failed to move widget"
416
- };
417
215
  return {
418
- content: [{ type: "text", text: JSON.stringify(errorResponse, null, 2) }],
216
+ content: [{
217
+ type: "text",
218
+ text: `Error retrieving widget details for ${widgetId} in page ${pageUID}: ${error instanceof Error ? error.message : String(error)}`
219
+ }],
419
220
  isError: true
420
221
  };
421
222
  }
@@ -466,13 +267,7 @@ For embedded attribute widgets: {'cf.platform.quotedAttributeName': "'cf.cplace.
466
267
  const operationVerb = operation === "ADD" ? "added" : "removed";
467
268
  return `Widget ${operationVerb} successfully`;
468
269
  }
469
- server.registerTool("cplace_get_embedded_layout", {
470
- description: "Get embedded widget layout structure for page or type. Retrieves the widget layout structure of embedded widgets within container widgets like AttributesGroup widgets.",
471
- inputSchema: {
472
- context: EmbeddedLayoutContextSchema
473
- },
474
- annotations: { title: "Get Embedded Layout" }
475
- }, async ({ context }) => {
270
+ server.registerTool(TOOL_GET_EMBEDDED_LAYOUT, WIDGET_TOOL_DEFINITIONS[TOOL_GET_EMBEDDED_LAYOUT], async ({ context }) => {
476
271
  try {
477
272
  debugLogWithTag('EMBEDDED_LAYOUT', `Getting embedded layout for ${context.type} context: ${JSON.stringify({ context, endpoint: determineEmbeddedApiEndpoint(context) })}`);
478
273
  const endpoint = determineEmbeddedApiEndpoint(context);
@@ -497,16 +292,7 @@ For embedded attribute widgets: {'cf.platform.quotedAttributeName': "'cf.cplace.
497
292
  };
498
293
  }
499
294
  });
500
- server.registerTool("cplace_add_widget_to_embedded_layout", {
501
- description: "Add widget to page or type embedded layout. Enables adding widgets to nested layouts like those within AttributesGroup widgets.",
502
- inputSchema: {
503
- context: EmbeddedLayoutContextSchema,
504
- widgetType: z.string().describe("Widget type identifier (e.g., 'cf.cplace.platform.table', 'cf.platform.wiki')"),
505
- position: PositionSchema,
506
- configuration: z.record(z.any()).optional().describe(WIDGET_CONFIG_DESCRIPTION)
507
- },
508
- annotations: { title: "Add Widget to Embedded Layout" }
509
- }, async ({ context, widgetType, position, configuration }) => {
295
+ server.registerTool(TOOL_ADD_WIDGET_TO_EMBEDDED_LAYOUT, WIDGET_TOOL_DEFINITIONS[TOOL_ADD_WIDGET_TO_EMBEDDED_LAYOUT], async ({ context, widgetType, position, configuration }) => {
510
296
  try {
511
297
  debugLogWithTag('EMBEDDED_LAYOUT_ADD', `Adding widget to ${context.type} embedded layout: ${JSON.stringify({ context, widgetType, position, hasConfiguration: !!configuration })}`);
512
298
  const endpoint = determineEmbeddedApiEndpoint(context);
@@ -542,14 +328,7 @@ For embedded attribute widgets: {'cf.platform.quotedAttributeName': "'cf.cplace.
542
328
  };
543
329
  }
544
330
  });
545
- server.registerTool("cplace_remove_widget_from_embedded_layout", {
546
- description: "Remove widget from page or type embedded layout. Enables removing widgets from nested layouts like those within AttributesGroup widgets.",
547
- inputSchema: {
548
- context: EmbeddedLayoutContextSchema,
549
- widgetId: z.string().describe("The ID of the existing widget to remove from the embedded layout")
550
- },
551
- annotations: { title: "Remove Widget from Embedded Layout" }
552
- }, async ({ context, widgetId }) => {
331
+ server.registerTool(TOOL_REMOVE_WIDGET_FROM_EMBEDDED_LAYOUT, WIDGET_TOOL_DEFINITIONS[TOOL_REMOVE_WIDGET_FROM_EMBEDDED_LAYOUT], async ({ context, widgetId }) => {
553
332
  try {
554
333
  debugLogWithTag('EMBEDDED_LAYOUT_REMOVE', `Removing widget from ${context.type} embedded layout: ${JSON.stringify({ context, widgetId })}`);
555
334
  const endpoint = determineEmbeddedApiEndpoint(context);
@@ -1 +1 @@
1
- {"version":3,"file":"widgets.js","sourceRoot":"","sources":["../../src/tools/widgets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"widgets.js","sourceRoot":"","sources":["../../src/tools/widgets.ts"],"names":[],"mappings":"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"}