@cplace/test-mcp-server 0.1.14 → 0.1.15

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 (38) hide show
  1. package/README.md +83 -18
  2. package/dist/api.d.ts +4 -0
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js.map +1 -1
  5. package/dist/conditional-registration.d.ts.map +1 -1
  6. package/dist/conditional-registration.js +3 -1
  7. package/dist/conditional-registration.js.map +1 -1
  8. package/dist/index.js +66 -11
  9. package/dist/index.js.map +1 -1
  10. package/dist/profiles.d.ts.map +1 -1
  11. package/dist/profiles.js +13 -8
  12. package/dist/profiles.js.map +1 -1
  13. package/dist/tools/generic-layouts.d.ts +30 -0
  14. package/dist/tools/generic-layouts.d.ts.map +1 -0
  15. package/dist/tools/generic-layouts.js +458 -0
  16. package/dist/tools/generic-layouts.js.map +1 -0
  17. package/dist/tools/pages.d.ts.map +1 -1
  18. package/dist/tools/pages.js +154 -62
  19. package/dist/tools/pages.js.map +1 -1
  20. package/dist/tools/system.d.ts +2 -1
  21. package/dist/tools/system.d.ts.map +1 -1
  22. package/dist/tools/system.js +65 -1
  23. package/dist/tools/system.js.map +1 -1
  24. package/dist/tools/type-layouts.d.ts.map +1 -1
  25. package/dist/tools/type-layouts.js +38 -0
  26. package/dist/tools/type-layouts.js.map +1 -1
  27. package/dist/tools/version-check.d.ts +4 -0
  28. package/dist/tools/version-check.d.ts.map +1 -0
  29. package/dist/tools/version-check.js +105 -0
  30. package/dist/tools/version-check.js.map +1 -0
  31. package/dist/tools/widgets.d.ts.map +1 -1
  32. package/dist/tools/widgets.js +117 -273
  33. package/dist/tools/widgets.js.map +1 -1
  34. package/dist/url-parsing.d.ts +6 -0
  35. package/dist/url-parsing.d.ts.map +1 -0
  36. package/dist/url-parsing.js +25 -0
  37. package/dist/url-parsing.js.map +1 -0
  38. package/package.json +1 -1
@@ -0,0 +1,458 @@
1
+ import { z } from "zod";
2
+ import { debugLogWithTag } from "../logger.js";
3
+ import { PositionSchema, WIDGET_CONFIG_DESCRIPTION } from './common-schemas.js';
4
+ export const LayoutContextSchema = z.union([
5
+ z.object({
6
+ type: z.literal("page"),
7
+ pageUID: z.string().describe("Page UID (e.g., 'page/abc123')")
8
+ }),
9
+ z.object({
10
+ type: z.literal("type"),
11
+ workspaceId: z.string().describe("Workspace ID (e.g., 'workspace123')"),
12
+ typeInternalName: z.string().describe("Type internal name (e.g., 'cf.example.myType')"),
13
+ alternativeLayoutName: z.string().optional().describe("Alternative layout name (optional)")
14
+ })
15
+ ]).describe("Layout target - specify whether operating on page or type layout");
16
+ function determineApiEndpoint(context, operation) {
17
+ const baseEndpoint = context.type === "page" ? "json/pageLayout" : "json/typeLayout";
18
+ return baseEndpoint;
19
+ }
20
+ function buildRequestParams(context, additionalParams = {}) {
21
+ if (context.type === "page") {
22
+ return { pageUID: context.pageUID, ...additionalParams };
23
+ }
24
+ else {
25
+ return {
26
+ workspaceId: context.workspaceId,
27
+ typeInternalName: context.typeInternalName,
28
+ ...(context.alternativeLayoutName && { alternativeLayoutName: context.alternativeLayoutName }),
29
+ ...additionalParams
30
+ };
31
+ }
32
+ }
33
+ async function handleLayoutOperation(client, context, operation, params = {}) {
34
+ const endpoint = determineApiEndpoint(context, operation);
35
+ const requestParams = buildRequestParams(context, params);
36
+ debugLogWithTag('LAYOUT', `${operation} operation on ${context.type} layout via ${endpoint}`);
37
+ if (operation === 'getOverview') {
38
+ return await client.makeApiRequest(endpoint, 'GET', requestParams);
39
+ }
40
+ else {
41
+ const requestBody = {
42
+ ...requestParams,
43
+ operation: { type: operation, ...params }
44
+ };
45
+ return await client.makeApiRequest(endpoint, 'PATCH', undefined, requestBody);
46
+ }
47
+ }
48
+ function mapOperationName(context, operation) {
49
+ const operationMapping = {
50
+ page: {
51
+ 'add_widget': 'ADD',
52
+ 'remove_widget': 'REMOVE',
53
+ 'update_widget': 'UPDATE',
54
+ 'move_widget': 'MOVE',
55
+ 'add_row': 'ADD_ROW',
56
+ 'compact': 'COMPACT'
57
+ },
58
+ type: {
59
+ 'add_widget': 'ADD',
60
+ 'remove_widget': 'REMOVE',
61
+ 'update_widget': 'UPDATE',
62
+ 'move_widget': 'MOVE',
63
+ 'add_row': 'ADD',
64
+ 'compact': 'COMPACT'
65
+ }
66
+ };
67
+ const contextMapping = operationMapping[context.type];
68
+ return contextMapping[operation] || operation;
69
+ }
70
+ export function registerLayoutTools(server, client) {
71
+ server.registerTool("cplace_layout_get_overview", {
72
+ description: "Get layout structure for page or type. Provides an overview of the layout grid including rows, columns, and widget summaries for both page and type layouts.",
73
+ inputSchema: {
74
+ context: LayoutContextSchema
75
+ },
76
+ annotations: { title: "Get Layout Overview" }
77
+ }, async ({ context }) => {
78
+ debugLogWithTag('LAYOUT', `Starting layout overview request for ${context.type} layout`);
79
+ try {
80
+ const result = await handleLayoutOperation(client, context, 'getOverview');
81
+ const overview = {
82
+ context,
83
+ rows: result.rows?.map((row, rowIndex) => ({
84
+ rowIndex,
85
+ columns: row.columns?.map((column, colIndex) => ({
86
+ columnIndex: colIndex,
87
+ proportion: column.proportion,
88
+ widgets: column.widgets?.map((widget) => ({
89
+ id: widget.id,
90
+ widgetType: widget.widgetType,
91
+ configurationCount: widget.configuration?.length || 0
92
+ })) || []
93
+ })) || []
94
+ })) || []
95
+ };
96
+ debugLogWithTag('LAYOUT', `Retrieved ${context.type} layout overview successfully`);
97
+ return {
98
+ content: [{ type: "text", text: JSON.stringify(overview, null, 2) }]
99
+ };
100
+ }
101
+ catch (error) {
102
+ debugLogWithTag('LAYOUT', `Error getting layout overview: ${error instanceof Error ? error.message : String(error)}`);
103
+ return {
104
+ content: [{
105
+ type: "text",
106
+ text: `Error getting ${context.type} layout overview: ${error instanceof Error ? error.message : String(error)}`
107
+ }],
108
+ isError: true
109
+ };
110
+ }
111
+ });
112
+ server.registerTool("cplace_layout_add_widget", {
113
+ description: "Add widget to page or type layout. Works with both page and type layouts using the same interface and behavior.",
114
+ inputSchema: {
115
+ context: LayoutContextSchema,
116
+ widgetType: z.string().describe("Widget type identifier (e.g., 'cf.cplace.platform.table', 'cf.platform.wiki')"),
117
+ position: PositionSchema,
118
+ configuration: z.record(z.any()).optional().describe(WIDGET_CONFIG_DESCRIPTION)
119
+ },
120
+ annotations: { title: "Add Widget to Layout" }
121
+ }, async ({ context, widgetType, position, configuration }) => {
122
+ debugLogWithTag('LAYOUT', `Adding widget ${widgetType} to ${context.type} layout`);
123
+ try {
124
+ const operationType = mapOperationName(context, 'add_widget');
125
+ const operationParams = {
126
+ widgetType,
127
+ position: {
128
+ rowIndex: position.rowIndex,
129
+ columnIndex: position.columnIndex,
130
+ widgetIndex: position.widgetIndex
131
+ }
132
+ };
133
+ if (configuration && Object.keys(configuration).length > 0) {
134
+ operationParams.configuration = configuration;
135
+ debugLogWithTag('LAYOUT', `Including configuration: ${JSON.stringify(Object.keys(configuration))}`);
136
+ }
137
+ const result = await handleLayoutOperation(client, context, operationType, operationParams);
138
+ debugLogWithTag('LAYOUT', `Successfully added widget to ${context.type} layout`);
139
+ const response = {
140
+ operation: "ADD",
141
+ status: "SUCCESS",
142
+ context,
143
+ widgetType,
144
+ position,
145
+ message: `Widget added successfully to ${context.type} layout`
146
+ };
147
+ return {
148
+ content: [{ type: "text", text: JSON.stringify(response, null, 2) }]
149
+ };
150
+ }
151
+ catch (error) {
152
+ debugLogWithTag('LAYOUT', `Error adding widget: ${error instanceof Error ? error.message : String(error)}`);
153
+ const errorResponse = {
154
+ operation: "ADD",
155
+ status: "ERROR",
156
+ context,
157
+ widgetType,
158
+ position,
159
+ error: error instanceof Error ? error.message : String(error),
160
+ message: `Failed to add widget to ${context.type} layout`
161
+ };
162
+ return {
163
+ content: [{ type: "text", text: JSON.stringify(errorResponse, null, 2) }],
164
+ isError: true
165
+ };
166
+ }
167
+ });
168
+ server.registerTool("cplace_layout_remove_widget", {
169
+ description: "Remove widget from page or type layout. Works with both page and type layouts using the same interface.",
170
+ inputSchema: {
171
+ context: LayoutContextSchema,
172
+ widgetId: z.string().describe("The unique identifier of the widget to remove")
173
+ },
174
+ annotations: { title: "Remove Widget from Layout" }
175
+ }, async ({ context, widgetId }) => {
176
+ debugLogWithTag('LAYOUT', `Removing widget ${widgetId} from ${context.type} layout`);
177
+ try {
178
+ const operationType = mapOperationName(context, 'remove_widget');
179
+ const result = await handleLayoutOperation(client, context, operationType, { widgetId });
180
+ debugLogWithTag('LAYOUT', `Successfully removed widget from ${context.type} layout`);
181
+ const response = {
182
+ operation: "REMOVE",
183
+ status: "SUCCESS",
184
+ context,
185
+ widgetId,
186
+ message: `Widget removed successfully from ${context.type} layout`
187
+ };
188
+ return {
189
+ content: [{ type: "text", text: JSON.stringify(response, null, 2) }]
190
+ };
191
+ }
192
+ catch (error) {
193
+ debugLogWithTag('LAYOUT', `Error removing widget: ${error instanceof Error ? error.message : String(error)}`);
194
+ const errorResponse = {
195
+ operation: "REMOVE",
196
+ status: "ERROR",
197
+ context,
198
+ widgetId,
199
+ error: error instanceof Error ? error.message : String(error),
200
+ message: `Failed to remove widget from ${context.type} layout`
201
+ };
202
+ return {
203
+ content: [{ type: "text", text: JSON.stringify(errorResponse, null, 2) }],
204
+ isError: true
205
+ };
206
+ }
207
+ });
208
+ server.registerTool("cplace_layout_add_row", {
209
+ description: "Add row structure to page or type layout. Creates new row with specific column layout. Essential for multi-column structures as widget placement alone cannot create columns.",
210
+ inputSchema: {
211
+ context: LayoutContextSchema,
212
+ rowIndex: z.number().min(0).describe("Row index where to insert the new row (0-based). If rowIndex >= current row count, adds at the end. Otherwise, inserts at position and shifts existing rows down."),
213
+ columnProportions: z.array(z.number().min(1)).min(1).describe("Array of column width proportions that must sum to 12 (Bootstrap grid system). Examples: [12] (single column), [6,6] (two equal columns), [4,4,4] (three equal columns), [3,9] (sidebar + main)")
214
+ },
215
+ annotations: { title: "Add Row to Layout" }
216
+ }, async ({ context, rowIndex, columnProportions }) => {
217
+ debugLogWithTag('LAYOUT', `Adding row ${rowIndex} with proportions ${JSON.stringify(columnProportions)} to ${context.type} layout`);
218
+ try {
219
+ const operationType = mapOperationName(context, 'add_row');
220
+ const result = await handleLayoutOperation(client, context, operationType, {
221
+ rowIndex,
222
+ columnProportions
223
+ });
224
+ debugLogWithTag('LAYOUT', `Successfully added row to ${context.type} layout`);
225
+ const response = {
226
+ operation: "ADD_ROW",
227
+ status: "SUCCESS",
228
+ context,
229
+ rowIndex,
230
+ columnProportions,
231
+ columnsCreated: columnProportions.length,
232
+ message: `Row added successfully to ${context.type} layout with ${columnProportions.length} column${columnProportions.length === 1 ? '' : 's'} [${columnProportions.join(',')}]`
233
+ };
234
+ return {
235
+ content: [{ type: "text", text: JSON.stringify(response, null, 2) }]
236
+ };
237
+ }
238
+ catch (error) {
239
+ debugLogWithTag('LAYOUT', `Error adding row: ${error instanceof Error ? error.message : String(error)}`);
240
+ const errorResponse = {
241
+ operation: "ADD_ROW",
242
+ status: "ERROR",
243
+ context,
244
+ rowIndex,
245
+ columnProportions,
246
+ error: error instanceof Error ? error.message : String(error),
247
+ message: `Failed to add row to ${context.type} layout`
248
+ };
249
+ return {
250
+ content: [{ type: "text", text: JSON.stringify(errorResponse, null, 2) }],
251
+ isError: true
252
+ };
253
+ }
254
+ });
255
+ server.registerTool("cplace_layout_get_widget_details", {
256
+ description: "Get detailed widget configuration from page or type layout. Extracts specific widget information from the layout structure.",
257
+ inputSchema: {
258
+ context: LayoutContextSchema,
259
+ widgetId: z.string().describe("The unique widget identifier to get details for")
260
+ },
261
+ annotations: { title: "Get Widget Details from Layout" }
262
+ }, async ({ context, widgetId }) => {
263
+ debugLogWithTag('LAYOUT', `Getting widget details for ${widgetId} from ${context.type} layout`);
264
+ try {
265
+ const layoutResult = await handleLayoutOperation(client, context, 'getOverview');
266
+ let foundWidget = null;
267
+ const findWidget = (rows) => {
268
+ for (const row of rows || []) {
269
+ for (const column of row.columns || []) {
270
+ for (const widget of column.widgets || []) {
271
+ if (widget.id === widgetId) {
272
+ return widget;
273
+ }
274
+ if (widget.widgetsLayout?.rows) {
275
+ const nestedWidget = findWidget(widget.widgetsLayout.rows);
276
+ if (nestedWidget)
277
+ return nestedWidget;
278
+ }
279
+ }
280
+ }
281
+ }
282
+ return null;
283
+ };
284
+ foundWidget = findWidget(layoutResult.rows);
285
+ if (!foundWidget) {
286
+ return {
287
+ content: [{ type: "text", text: `Widget with ID ${widgetId} not found in ${context.type} layout` }]
288
+ };
289
+ }
290
+ debugLogWithTag('LAYOUT', `Retrieved widget details for: ${widgetId} from ${context.type} layout`);
291
+ const response = {
292
+ context,
293
+ widgetId,
294
+ widget: foundWidget
295
+ };
296
+ return {
297
+ content: [{ type: "text", text: JSON.stringify(response, null, 2) }]
298
+ };
299
+ }
300
+ catch (error) {
301
+ debugLogWithTag('LAYOUT', `Error getting widget details: ${error instanceof Error ? error.message : String(error)}`);
302
+ return {
303
+ content: [{
304
+ type: "text",
305
+ text: `Error getting widget details from ${context.type} layout: ${error instanceof Error ? error.message : String(error)}`
306
+ }],
307
+ isError: true
308
+ };
309
+ }
310
+ });
311
+ server.registerTool("cplace_layout_update_widget", {
312
+ description: "Update widget configuration or collapse state in page or type layout. Allows modification of widget properties and display settings.",
313
+ inputSchema: {
314
+ context: LayoutContextSchema,
315
+ widgetId: z.string().describe("The unique identifier of the widget to update"),
316
+ newConfiguration: z.record(z.any()).optional().describe(`Updated widget configuration as key-value pairs (optional). ${WIDGET_CONFIG_DESCRIPTION}`),
317
+ collapsed: z.boolean().optional().describe("Widget collapse state (optional)")
318
+ },
319
+ annotations: { title: "Update Widget in Layout" }
320
+ }, async ({ context, widgetId, newConfiguration, collapsed }) => {
321
+ debugLogWithTag('LAYOUT', `Updating widget ${widgetId} in ${context.type} layout`);
322
+ try {
323
+ const operationType = mapOperationName(context, 'update_widget');
324
+ const operationParams = {
325
+ widgetId
326
+ };
327
+ if (newConfiguration && Object.keys(newConfiguration).length > 0) {
328
+ operationParams.newConfiguration = newConfiguration;
329
+ debugLogWithTag('LAYOUT', `Including new configuration: ${JSON.stringify(Object.keys(newConfiguration))}`);
330
+ }
331
+ if (collapsed !== undefined) {
332
+ operationParams.collapsed = collapsed;
333
+ debugLogWithTag('LAYOUT', `Setting collapsed state to: ${collapsed}`);
334
+ }
335
+ if (!operationParams.newConfiguration && operationParams.collapsed === undefined) {
336
+ return {
337
+ content: [{ type: "text", text: "No updates specified. At least one of newConfiguration or collapsed must be provided." }]
338
+ };
339
+ }
340
+ const result = await handleLayoutOperation(client, context, operationType, operationParams);
341
+ debugLogWithTag('LAYOUT', `Successfully updated widget in ${context.type} layout`);
342
+ const response = {
343
+ operation: "UPDATE",
344
+ status: "SUCCESS",
345
+ context,
346
+ widgetId,
347
+ message: `Widget updated successfully in ${context.type} layout`
348
+ };
349
+ return {
350
+ content: [{ type: "text", text: JSON.stringify(response, null, 2) }]
351
+ };
352
+ }
353
+ catch (error) {
354
+ debugLogWithTag('LAYOUT', `Error updating widget: ${error instanceof Error ? error.message : String(error)}`);
355
+ const errorResponse = {
356
+ operation: "UPDATE",
357
+ status: "ERROR",
358
+ context,
359
+ widgetId,
360
+ error: error instanceof Error ? error.message : String(error),
361
+ message: `Failed to update widget in ${context.type} layout`
362
+ };
363
+ return {
364
+ content: [{ type: "text", text: JSON.stringify(errorResponse, null, 2) }],
365
+ isError: true
366
+ };
367
+ }
368
+ });
369
+ server.registerTool("cplace_layout_move_widget", {
370
+ description: "Move widget to different position in page or type layout. Relocates widget to specified grid position.",
371
+ inputSchema: {
372
+ context: LayoutContextSchema,
373
+ widgetId: z.string().describe("The unique identifier of the widget to move"),
374
+ newPosition: PositionSchema
375
+ },
376
+ annotations: { title: "Move Widget in Layout" }
377
+ }, async ({ context, widgetId, newPosition }) => {
378
+ debugLogWithTag('LAYOUT', `Moving widget ${widgetId} in ${context.type} layout to position ${JSON.stringify(newPosition)}`);
379
+ try {
380
+ const operationType = mapOperationName(context, 'move_widget');
381
+ const operationParams = {
382
+ widgetId,
383
+ newPosition: {
384
+ rowIndex: newPosition.rowIndex,
385
+ columnIndex: newPosition.columnIndex,
386
+ widgetIndex: newPosition.widgetIndex
387
+ }
388
+ };
389
+ const result = await handleLayoutOperation(client, context, operationType, operationParams);
390
+ debugLogWithTag('LAYOUT', `Successfully moved widget in ${context.type} layout`);
391
+ const response = {
392
+ operation: "MOVE",
393
+ status: "SUCCESS",
394
+ context,
395
+ oldWidgetId: widgetId,
396
+ newPosition,
397
+ message: `Widget moved successfully in ${context.type} layout`
398
+ };
399
+ return {
400
+ content: [{ type: "text", text: JSON.stringify(response, null, 2) }]
401
+ };
402
+ }
403
+ catch (error) {
404
+ debugLogWithTag('LAYOUT', `Error moving widget: ${error instanceof Error ? error.message : String(error)}`);
405
+ const errorResponse = {
406
+ operation: "MOVE",
407
+ status: "ERROR",
408
+ context,
409
+ oldWidgetId: widgetId,
410
+ newPosition,
411
+ error: error instanceof Error ? error.message : String(error),
412
+ message: `Failed to move widget in ${context.type} layout`
413
+ };
414
+ return {
415
+ content: [{ type: "text", text: JSON.stringify(errorResponse, null, 2) }],
416
+ isError: true
417
+ };
418
+ }
419
+ });
420
+ server.registerTool("cplace_layout_compact", {
421
+ description: "Remove empty rows from page or type layout. Compacts the layout by keeping only rows that contain widgets while preserving order and configurations.",
422
+ inputSchema: {
423
+ context: LayoutContextSchema
424
+ },
425
+ annotations: { title: "Compact Layout" }
426
+ }, async ({ context }) => {
427
+ debugLogWithTag('LAYOUT', `Compacting ${context.type} layout`);
428
+ try {
429
+ const operationType = mapOperationName(context, 'compact');
430
+ const result = await handleLayoutOperation(client, context, operationType);
431
+ debugLogWithTag('LAYOUT', `Successfully compacted ${context.type} layout`);
432
+ const response = {
433
+ operation: "COMPACT_LAYOUT",
434
+ status: "SUCCESS",
435
+ context,
436
+ message: `Layout compacted successfully - empty rows removed from ${context.type} layout`
437
+ };
438
+ return {
439
+ content: [{ type: "text", text: JSON.stringify(response, null, 2) }]
440
+ };
441
+ }
442
+ catch (error) {
443
+ debugLogWithTag('LAYOUT', `Error compacting layout: ${error instanceof Error ? error.message : String(error)}`);
444
+ const errorResponse = {
445
+ operation: "COMPACT_LAYOUT",
446
+ status: "ERROR",
447
+ context,
448
+ error: error instanceof Error ? error.message : String(error),
449
+ message: `Failed to compact ${context.type} layout`
450
+ };
451
+ return {
452
+ content: [{ type: "text", text: JSON.stringify(errorResponse, null, 2) }],
453
+ isError: true
454
+ };
455
+ }
456
+ });
457
+ }
458
+ //# sourceMappingURL=generic-layouts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic-layouts.js","sourceRoot":"","sources":["../../src/tools/generic-layouts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../src/tools/pages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAI5C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,QA0W3E"}
1
+ {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../src/tools/pages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAI5C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,QA+d3E"}