@cplace/mcp-server 1.9.0 → 1.10.5

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 (235) hide show
  1. package/README.md +12 -13
  2. package/dist/index.js +4 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/plugins/app-catalog.js +1 -1
  5. package/dist/plugins/app-catalog.js.map +1 -1
  6. package/dist/plugins/application-settings.d.ts.map +1 -1
  7. package/dist/plugins/application-settings.js +6 -3
  8. package/dist/plugins/application-settings.js.map +1 -1
  9. package/dist/plugins/core/widget-specifications/cf.cplace.platform.tableWidget/columns.md +6 -0
  10. package/dist/plugins/core.d.ts.map +1 -1
  11. package/dist/plugins/core.js +25 -13
  12. package/dist/plugins/core.js.map +1 -1
  13. package/dist/plugins/forms-wizard.js +2 -2
  14. package/dist/plugins/forms-wizard.js.map +1 -1
  15. package/dist/plugins/history.d.ts.map +1 -1
  16. package/dist/plugins/history.js +6 -3
  17. package/dist/plugins/history.js.map +1 -1
  18. package/dist/plugins/jobs.js +2 -2
  19. package/dist/plugins/jobs.js.map +1 -1
  20. package/dist/plugins/layouts.d.ts.map +1 -1
  21. package/dist/plugins/layouts.js +17 -8
  22. package/dist/plugins/layouts.js.map +1 -1
  23. package/dist/plugins/low-code.d.ts.map +1 -1
  24. package/dist/plugins/low-code.js +48 -15
  25. package/dist/plugins/low-code.js.map +1 -1
  26. package/dist/plugins/project-planning.d.ts.map +1 -1
  27. package/dist/plugins/project-planning.js +6 -3
  28. package/dist/plugins/project-planning.js.map +1 -1
  29. package/dist/plugins/resource-management.d.ts.map +1 -1
  30. package/dist/plugins/resource-management.js +6 -3
  31. package/dist/plugins/resource-management.js.map +1 -1
  32. package/dist/plugins/solution-management.d.ts.map +1 -1
  33. package/dist/plugins/solution-management.js +6 -3
  34. package/dist/plugins/solution-management.js.map +1 -1
  35. package/dist/plugins/types-write.d.ts.map +1 -1
  36. package/dist/plugins/types-write.js +6 -3
  37. package/dist/plugins/types-write.js.map +1 -1
  38. package/dist/plugins/widget-specifications.d.ts.map +1 -1
  39. package/dist/plugins/widget-specifications.js +2 -2
  40. package/dist/plugins/widget-specifications.js.map +1 -1
  41. package/dist/plugins/workspace-admin.d.ts.map +1 -1
  42. package/dist/plugins/workspace-admin.js +6 -3
  43. package/dist/plugins/workspace-admin.js.map +1 -1
  44. package/dist/str-replace-utils.js +1 -1
  45. package/dist/str-replace-utils.js.map +1 -1
  46. package/dist/tools/apps-catalog.d.ts +1 -1
  47. package/dist/tools/apps-catalog.d.ts.map +1 -1
  48. package/dist/tools/apps-catalog.js +16 -12
  49. package/dist/tools/apps-catalog.js.map +1 -1
  50. package/dist/tools/board-widget.d.ts +2 -2
  51. package/dist/tools/board-widget.d.ts.map +1 -1
  52. package/dist/tools/board-widget.js +354 -201
  53. package/dist/tools/board-widget.js.map +1 -1
  54. package/dist/tools/change-listeners.d.ts +2 -2
  55. package/dist/tools/change-listeners.d.ts.map +1 -1
  56. package/dist/tools/change-listeners.js +125 -57
  57. package/dist/tools/change-listeners.js.map +1 -1
  58. package/dist/tools/common-schemas.d.ts +1 -1
  59. package/dist/tools/common-schemas.d.ts.map +1 -1
  60. package/dist/tools/common-schemas.js +5 -3
  61. package/dist/tools/common-schemas.js.map +1 -1
  62. package/dist/tools/csv-export.d.ts +2 -2
  63. package/dist/tools/csv-export.d.ts.map +1 -1
  64. package/dist/tools/csv-export.js +29 -24
  65. package/dist/tools/csv-export.js.map +1 -1
  66. package/dist/tools/documents.d.ts +2 -2
  67. package/dist/tools/documents.d.ts.map +1 -1
  68. package/dist/tools/documents.js +34 -14
  69. package/dist/tools/documents.js.map +1 -1
  70. package/dist/tools/expert-settings.d.ts +3 -3
  71. package/dist/tools/expert-settings.d.ts.map +1 -1
  72. package/dist/tools/expert-settings.js +97 -38
  73. package/dist/tools/expert-settings.js.map +1 -1
  74. package/dist/tools/get-operations.d.ts +2 -2
  75. package/dist/tools/get-operations.d.ts.map +1 -1
  76. package/dist/tools/get-operations.js +29 -21
  77. package/dist/tools/get-operations.js.map +1 -1
  78. package/dist/tools/job-schedule-trigger.d.ts +2 -2
  79. package/dist/tools/job-schedule-trigger.d.ts.map +1 -1
  80. package/dist/tools/job-schedule-trigger.js +19 -10
  81. package/dist/tools/job-schedule-trigger.js.map +1 -1
  82. package/dist/tools/job-scripts.d.ts +2 -2
  83. package/dist/tools/job-scripts.d.ts.map +1 -1
  84. package/dist/tools/job-scripts.js +119 -55
  85. package/dist/tools/job-scripts.js.map +1 -1
  86. package/dist/tools/jobs.d.ts +2 -2
  87. package/dist/tools/jobs.d.ts.map +1 -1
  88. package/dist/tools/jobs.js +68 -38
  89. package/dist/tools/jobs.js.map +1 -1
  90. package/dist/tools/layout-richstring-shared.d.ts +24 -1
  91. package/dist/tools/layout-richstring-shared.d.ts.map +1 -1
  92. package/dist/tools/layout-richstring-shared.js +99 -1
  93. package/dist/tools/layout-richstring-shared.js.map +1 -1
  94. package/dist/tools/layout-richstring-widgets.d.ts +94 -2
  95. package/dist/tools/layout-richstring-widgets.d.ts.map +1 -1
  96. package/dist/tools/layout-richstring-widgets.js +247 -25
  97. package/dist/tools/layout-richstring-widgets.js.map +1 -1
  98. package/dist/tools/layout.d.ts +5 -4
  99. package/dist/tools/layout.d.ts.map +1 -1
  100. package/dist/tools/layout.js +235 -124
  101. package/dist/tools/layout.js.map +1 -1
  102. package/dist/tools/linting.d.ts +2 -2
  103. package/dist/tools/linting.d.ts.map +1 -1
  104. package/dist/tools/linting.js +5 -5
  105. package/dist/tools/linting.js.map +1 -1
  106. package/dist/tools/page-action-simulation.d.ts +18 -0
  107. package/dist/tools/page-action-simulation.d.ts.map +1 -0
  108. package/dist/tools/page-action-simulation.js +88 -0
  109. package/dist/tools/page-action-simulation.js.map +1 -0
  110. package/dist/tools/page-actions.d.ts +60 -0
  111. package/dist/tools/page-actions.d.ts.map +1 -0
  112. package/dist/tools/page-actions.js +284 -0
  113. package/dist/tools/page-actions.js.map +1 -0
  114. package/dist/tools/pages.d.ts +3 -3
  115. package/dist/tools/pages.d.ts.map +1 -1
  116. package/dist/tools/pages.js +237 -112
  117. package/dist/tools/pages.js.map +1 -1
  118. package/dist/tools/ppt-export-schemas.d.ts +1 -1
  119. package/dist/tools/ppt-export-schemas.d.ts.map +1 -1
  120. package/dist/tools/ppt-export-schemas.js +269 -122
  121. package/dist/tools/ppt-export-schemas.js.map +1 -1
  122. package/dist/tools/ppt-export.d.ts +2 -2
  123. package/dist/tools/ppt-export.d.ts.map +1 -1
  124. package/dist/tools/ppt-export.js +82 -43
  125. package/dist/tools/ppt-export.js.map +1 -1
  126. package/dist/tools/profile-management.d.ts +2 -2
  127. package/dist/tools/profile-management.d.ts.map +1 -1
  128. package/dist/tools/profile-management.js +109 -82
  129. package/dist/tools/profile-management.js.map +1 -1
  130. package/dist/tools/references.d.ts +2 -2
  131. package/dist/tools/references.d.ts.map +1 -1
  132. package/dist/tools/references.js +36 -24
  133. package/dist/tools/references.js.map +1 -1
  134. package/dist/tools/resource-planner-widget.d.ts +2 -2
  135. package/dist/tools/resource-planner-widget.d.ts.map +1 -1
  136. package/dist/tools/resource-planner-widget.js +334 -138
  137. package/dist/tools/resource-planner-widget.js.map +1 -1
  138. package/dist/tools/richstring-marker-resolver.d.ts +16 -0
  139. package/dist/tools/richstring-marker-resolver.d.ts.map +1 -0
  140. package/dist/tools/richstring-marker-resolver.js +47 -0
  141. package/dist/tools/richstring-marker-resolver.js.map +1 -0
  142. package/dist/tools/richstring-widgets.d.ts +6 -16
  143. package/dist/tools/richstring-widgets.d.ts.map +1 -1
  144. package/dist/tools/richstring-widgets.js +184 -129
  145. package/dist/tools/richstring-widgets.js.map +1 -1
  146. package/dist/tools/schedule.d.ts +2 -2
  147. package/dist/tools/schedule.d.ts.map +1 -1
  148. package/dist/tools/schedule.js +23 -14
  149. package/dist/tools/schedule.js.map +1 -1
  150. package/dist/tools/script-logs.d.ts +2 -2
  151. package/dist/tools/script-logs.d.ts.map +1 -1
  152. package/dist/tools/script-logs.js +71 -32
  153. package/dist/tools/script-logs.js.map +1 -1
  154. package/dist/tools/script.d.ts +2 -2
  155. package/dist/tools/script.d.ts.map +1 -1
  156. package/dist/tools/script.js +44 -26
  157. package/dist/tools/script.js.map +1 -1
  158. package/dist/tools/search.d.ts +2 -2
  159. package/dist/tools/search.d.ts.map +1 -1
  160. package/dist/tools/search.js +139 -102
  161. package/dist/tools/search.js.map +1 -1
  162. package/dist/tools/solution-packages.d.ts +2 -2
  163. package/dist/tools/solution-packages.d.ts.map +1 -1
  164. package/dist/tools/solution-packages.js +149 -61
  165. package/dist/tools/solution-packages.js.map +1 -1
  166. package/dist/tools/system.d.ts +2 -2
  167. package/dist/tools/system.d.ts.map +1 -1
  168. package/dist/tools/system.js +43 -21
  169. package/dist/tools/system.js.map +1 -1
  170. package/dist/tools/type-layouts.d.ts +2 -2
  171. package/dist/tools/type-layouts.d.ts.map +1 -1
  172. package/dist/tools/type-layouts.js +67 -31
  173. package/dist/tools/type-layouts.js.map +1 -1
  174. package/dist/tools/type-management.d.ts +86 -70
  175. package/dist/tools/type-management.d.ts.map +1 -1
  176. package/dist/tools/type-management.js +410 -138
  177. package/dist/tools/type-management.js.map +1 -1
  178. package/dist/tools/url-resolution.d.ts +2 -2
  179. package/dist/tools/url-resolution.d.ts.map +1 -1
  180. package/dist/tools/url-resolution.js +16 -12
  181. package/dist/tools/url-resolution.js.map +1 -1
  182. package/dist/tools/users.d.ts +2 -2
  183. package/dist/tools/users.d.ts.map +1 -1
  184. package/dist/tools/users.js +24 -14
  185. package/dist/tools/users.js.map +1 -1
  186. package/dist/tools/validators.d.ts +2 -2
  187. package/dist/tools/validators.d.ts.map +1 -1
  188. package/dist/tools/validators.js +68 -35
  189. package/dist/tools/validators.js.map +1 -1
  190. package/dist/tools/version-check.d.ts +2 -2
  191. package/dist/tools/version-check.d.ts.map +1 -1
  192. package/dist/tools/version-check.js +36 -30
  193. package/dist/tools/version-check.js.map +1 -1
  194. package/dist/tools/version-history.d.ts +2 -2
  195. package/dist/tools/version-history.d.ts.map +1 -1
  196. package/dist/tools/version-history.js +72 -41
  197. package/dist/tools/version-history.js.map +1 -1
  198. package/dist/tools/widget-simulation.d.ts +18 -0
  199. package/dist/tools/widget-simulation.d.ts.map +1 -0
  200. package/dist/tools/widget-simulation.js +94 -0
  201. package/dist/tools/widget-simulation.js.map +1 -0
  202. package/dist/tools/widget-tool-helpers.d.ts +17 -1
  203. package/dist/tools/widget-tool-helpers.d.ts.map +1 -1
  204. package/dist/tools/widget-tool-helpers.js +41 -6
  205. package/dist/tools/widget-tool-helpers.js.map +1 -1
  206. package/dist/tools/widgets.d.ts +2 -2
  207. package/dist/tools/widgets.d.ts.map +1 -1
  208. package/dist/tools/widgets.js +62 -43
  209. package/dist/tools/widgets.js.map +1 -1
  210. package/dist/tools/wizards.d.ts +2 -2
  211. package/dist/tools/wizards.d.ts.map +1 -1
  212. package/dist/tools/wizards.js +378 -182
  213. package/dist/tools/wizards.js.map +1 -1
  214. package/dist/tools/workflow-execution.d.ts +2 -2
  215. package/dist/tools/workflow-execution.d.ts.map +1 -1
  216. package/dist/tools/workflow-execution.js +27 -19
  217. package/dist/tools/workflow-execution.js.map +1 -1
  218. package/dist/tools/workflow-scripts.d.ts +2 -2
  219. package/dist/tools/workflow-scripts.d.ts.map +1 -1
  220. package/dist/tools/workflow-scripts.js +168 -81
  221. package/dist/tools/workflow-scripts.js.map +1 -1
  222. package/dist/tools/workflow.d.ts +2 -2
  223. package/dist/tools/workflow.d.ts.map +1 -1
  224. package/dist/tools/workflow.js +185 -74
  225. package/dist/tools/workflow.js.map +1 -1
  226. package/dist/tools/workspace-admin.d.ts +2 -2
  227. package/dist/tools/workspace-admin.d.ts.map +1 -1
  228. package/dist/tools/workspace-admin.js +82 -40
  229. package/dist/tools/workspace-admin.js.map +1 -1
  230. package/dist/tools/workspace-core.d.ts +2 -2
  231. package/dist/tools/workspace-core.d.ts.map +1 -1
  232. package/dist/tools/workspace-core.js +93 -53
  233. package/dist/tools/workspace-core.js.map +1 -1
  234. package/dist/utils/dateValidation.js.map +1 -1
  235. package/package.json +9 -4
@@ -21,7 +21,7 @@ export function registerVersionCheckTool(server, client) {
21
21
  server.registerTool(TOOL_CHECK_VERSION_COMPATIBILITY, {
22
22
  description: "Check version compatibility between this MCP server package and the cplace backend API. Compares the npm package version (package.json) with the backend's expected version to detect mismatches. Returns compatibility status and provides guidance on whether to upgrade/downgrade the MCP server or upgrade the backend to resolve version mismatches.",
23
23
  inputSchema: {},
24
- annotations: { title: "Check Version Compatibility" }
24
+ annotations: { title: 'Check Version Compatibility' },
25
25
  }, async () => {
26
26
  try {
27
27
  const backendResponse = await client.makeApiRequest('json/version', 'GET');
@@ -29,18 +29,20 @@ export function registerVersionCheckTool(server, client) {
29
29
  const isCompatible = semver.satisfies(FRONTEND_VERSION, backendExpectedVersion);
30
30
  if (isCompatible) {
31
31
  return {
32
- content: [{
33
- type: "text",
32
+ content: [
33
+ {
34
+ type: 'text',
34
35
  text: JSON.stringify({
35
- status: "compatible",
36
- message: "✅ Package version matches backend expectations",
36
+ status: 'compatible',
37
+ message: '✅ Package version matches backend expectations',
37
38
  details: {
38
39
  frontendPackageVersion: FRONTEND_VERSION,
39
40
  backendExpectedVersion: backendExpectedVersion,
40
- packageName: "@cplace/mcp-server"
41
- }
42
- }, null, 2)
43
- }]
41
+ packageName: '@cplace/mcp-server',
42
+ },
43
+ }, null, 2),
44
+ },
45
+ ],
44
46
  };
45
47
  }
46
48
  else {
@@ -48,47 +50,51 @@ export function registerVersionCheckTool(server, client) {
48
50
  const isBelowRange = minVersion && semver.lt(FRONTEND_VERSION, minVersion.version);
49
51
  const guidance = isBelowRange
50
52
  ? {
51
- action: "MCP SERVER UPGRADE NEEDED",
53
+ action: 'MCP SERVER UPGRADE NEEDED',
52
54
  recommendation: `Upgrade MCP server package to version ${minVersion?.version} or higher. If using npx without version pin, simply restart Claude to auto-upgrade. Otherwise, update your configuration to @cplace/mcp-server@${minVersion?.version} or later.`,
53
- explanation: `Backend accepts versions matching: ${backendExpectedVersion}. Your version ${FRONTEND_VERSION} is below the minimum required.`
55
+ explanation: `Backend accepts versions matching: ${backendExpectedVersion}. Your version ${FRONTEND_VERSION} is below the minimum required.`,
54
56
  }
55
57
  : {
56
- action: "MCP SERVER DOWNGRADE OR BACKEND UPGRADE NEEDED",
58
+ action: 'MCP SERVER DOWNGRADE OR BACKEND UPGRADE NEEDED',
57
59
  recommendation: `Two resolution options:
58
60
  Option A: Downgrade MCP server to a version matching ${backendExpectedVersion} by updating your Claude Desktop/Code configuration
59
61
  Option B: Contact administrator to upgrade cplace backend to support version ${FRONTEND_VERSION}`,
60
- explanation: `Your MCP server package version ${FRONTEND_VERSION} is newer than what the backend accepts (${backendExpectedVersion}). Backend needs to be updated to declare a range that includes your version.`
62
+ explanation: `Your MCP server package version ${FRONTEND_VERSION} is newer than what the backend accepts (${backendExpectedVersion}). Backend needs to be updated to declare a range that includes your version.`,
61
63
  };
62
64
  return {
63
- content: [{
64
- type: "text",
65
+ content: [
66
+ {
67
+ type: 'text',
65
68
  text: JSON.stringify({
66
- status: "mismatch",
67
- message: "⚠️ VERSION MISMATCH DETECTED",
69
+ status: 'mismatch',
70
+ message: '⚠️ VERSION MISMATCH DETECTED',
68
71
  details: {
69
72
  frontendPackageVersion: FRONTEND_VERSION,
70
73
  backendExpectedVersion: backendExpectedVersion,
71
- packageName: "@cplace/mcp-server"
74
+ packageName: '@cplace/mcp-server',
72
75
  },
73
- ...guidance
74
- }, null, 2)
75
- }],
76
- isError: true
76
+ ...guidance,
77
+ }, null, 2),
78
+ },
79
+ ],
80
+ isError: true,
77
81
  };
78
82
  }
79
83
  }
80
84
  catch (error) {
81
85
  return {
82
- content: [{
83
- type: "text",
86
+ content: [
87
+ {
88
+ type: 'text',
84
89
  text: JSON.stringify({
85
- status: "error",
86
- message: "❌ Unable to check version compatibility",
90
+ status: 'error',
91
+ message: '❌ Unable to check version compatibility',
87
92
  reason: error instanceof Error ? error.message : String(error),
88
- suggestion: "Ensure backend endpoint 'json/version' is available. This may indicate the backend needs to be upgraded to support version checking."
89
- }, null, 2)
90
- }],
91
- isError: true
93
+ suggestion: "Ensure backend endpoint 'json/version' is available. This may indicate the backend needs to be upgraded to support version checking.",
94
+ }, null, 2),
95
+ },
96
+ ],
97
+ isError: true,
92
98
  };
93
99
  }
94
100
  });
@@ -1 +1 @@
1
- {"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/tools/version-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/tools/version-check.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- import { z } from "zod";
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { z } from 'zod';
3
3
  import { CplaceApiClient } from '../api.js';
4
4
  export declare const VERSION_HISTORY_TOOL_DEFINITIONS: {
5
5
  readonly cplace_get_page_changesets: {
@@ -1 +1 @@
1
- {"version":3,"file":"version-history.d.ts","sourceRoot":"","sources":["../../src/tools/version-history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAW5C,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCnC,CAAC;AAEX,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,QAqJrF"}
1
+ {"version":3,"file":"version-history.d.ts","sourceRoot":"","sources":["../../src/tools/version-history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAW5C,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DnC,CAAC;AAEX,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,QA4NrF"}
@@ -1,5 +1,5 @@
1
- import { z } from "zod";
2
- import { debugLogWithTag } from "../logger.js";
1
+ import { z } from 'zod';
2
+ import { debugLogWithTag } from '../logger.js';
3
3
  import { coerceNumber } from './common-schemas.js';
4
4
  const TOOL_GET_PAGE_CHANGESETS = 'cplace_get_page_changesets';
5
5
  const TOOL_GET_PAGE_STATE_AT_TIMESTAMP = 'cplace_get_page_state_at_timestamp';
@@ -7,42 +7,53 @@ const TOOL_GET_PAGE_DIFF = 'cplace_get_page_diff';
7
7
  const TOOL_GET_PAGE_CHANGESETS_SUMMARY = 'cplace_get_page_changesets_summary';
8
8
  export const VERSION_HISTORY_TOOL_DEFINITIONS = {
9
9
  [TOOL_GET_PAGE_CHANGESETS]: {
10
- description: "Get all changesets (modification records) for a specific page within an optional time range. Returns changes in reverse chronological order. RichString values in changes appear in decoded form (`<decoded-widget>` tags) — no base64.",
10
+ description: 'Get all changesets (modification records) for a specific page within an optional time range. Returns changes in reverse chronological order. RichString values in changes appear in decoded form (`<decoded-widget>` tags) — no base64.',
11
11
  inputSchema: {
12
- pageUID: z.string().describe("The unique identifier (UID) of the page to get changesets for"),
13
- fromTimestamp: z.number().optional().describe("Optional start time in milliseconds since Unix epoch (inclusive)"),
14
- toTimestamp: z.number().optional().describe("Optional end time in milliseconds since Unix epoch (inclusive)"),
15
- offset: coerceNumber(z.number().optional()).describe("Pagination offset (default: 0)"),
16
- limit: coerceNumber(z.number().max(1000).optional()).describe("Maximum number of results (default: 100, max: 1000)")
12
+ pageUID: z.string().describe('The unique identifier (UID) of the page to get changesets for'),
13
+ fromTimestamp: z
14
+ .number()
15
+ .optional()
16
+ .describe('Optional start time in milliseconds since Unix epoch (inclusive)'),
17
+ toTimestamp: z
18
+ .number()
19
+ .optional()
20
+ .describe('Optional end time in milliseconds since Unix epoch (inclusive)'),
21
+ offset: coerceNumber(z.number().optional()).describe('Pagination offset (default: 0)'),
22
+ limit: coerceNumber(z.number().max(1000).optional()).describe('Maximum number of results (default: 100, max: 1000)'),
17
23
  },
18
- annotations: { title: "Get Page ChangeSets" }
24
+ annotations: { title: 'Get Page ChangeSets' },
19
25
  },
20
26
  [TOOL_GET_PAGE_STATE_AT_TIMESTAMP]: {
21
- description: "Reconstruct and return the complete state of a page as it was at a specific point in time. RichString attributes appear in decoded form (`<decoded-widget>` tags) — no base64.",
27
+ description: 'Reconstruct and return the complete state of a page as it was at a specific point in time. RichString attributes appear in decoded form (`<decoded-widget>` tags) — no base64.',
22
28
  inputSchema: {
23
- pageUID: z.string().describe("The unique identifier (UID) of the page to get historical state for"),
24
- timestamp: z.number().describe("Target timestamp in milliseconds since Unix epoch")
29
+ pageUID: z
30
+ .string()
31
+ .describe('The unique identifier (UID) of the page to get historical state for'),
32
+ timestamp: z.number().describe('Target timestamp in milliseconds since Unix epoch'),
25
33
  },
26
- annotations: { title: "Get Page State at Timestamp" }
34
+ annotations: { title: 'Get Page State at Timestamp' },
27
35
  },
28
36
  [TOOL_GET_PAGE_DIFF]: {
29
- description: "Compare page states between two timestamps and return the differences. If toTimestamp is not provided, compares with current state. RichString values in diffs appear in decoded form (`<decoded-widget>` tags) — no base64.",
37
+ description: 'Compare page states between two timestamps and return the differences. If toTimestamp is not provided, compares with current state. RichString values in diffs appear in decoded form (`<decoded-widget>` tags) — no base64.',
30
38
  inputSchema: {
31
- pageUID: z.string().describe("The unique identifier (UID) of the page to compare"),
32
- fromTimestamp: z.number().describe("Starting timestamp in milliseconds since Unix epoch"),
33
- toTimestamp: z.number().optional().describe("Optional ending timestamp in milliseconds since Unix epoch (defaults to current state)")
39
+ pageUID: z.string().describe('The unique identifier (UID) of the page to compare'),
40
+ fromTimestamp: z.number().describe('Starting timestamp in milliseconds since Unix epoch'),
41
+ toTimestamp: z
42
+ .number()
43
+ .optional()
44
+ .describe('Optional ending timestamp in milliseconds since Unix epoch (defaults to current state)'),
34
45
  },
35
- annotations: { title: "Get Page Diff" }
46
+ annotations: { title: 'Get Page Diff' },
36
47
  },
37
48
  [TOOL_GET_PAGE_CHANGESETS_SUMMARY]: {
38
- description: "Get a summary of recent changes for a page. This is a convenience tool that retrieves changesets for the last 7 days by default. RichString values in changes appear in decoded form (`<decoded-widget>` tags) — no base64.",
49
+ description: 'Get a summary of recent changes for a page. This is a convenience tool that retrieves changesets for the last 7 days by default. RichString values in changes appear in decoded form (`<decoded-widget>` tags) — no base64.',
39
50
  inputSchema: {
40
- pageUID: z.string().describe("The unique identifier (UID) of the page to get changes for"),
41
- daysBack: coerceNumber(z.number().optional()).describe("Number of days to look back (default: 7)"),
42
- limit: coerceNumber(z.number().max(1000).optional()).describe("Maximum number of changesets to return (default: 50)")
51
+ pageUID: z.string().describe('The unique identifier (UID) of the page to get changes for'),
52
+ daysBack: coerceNumber(z.number().optional()).describe('Number of days to look back (default: 7)'),
53
+ limit: coerceNumber(z.number().max(1000).optional()).describe('Maximum number of changesets to return (default: 50)'),
43
54
  },
44
- annotations: { title: "Get Page Recent Changes Summary" }
45
- }
55
+ annotations: { title: 'Get Page Recent Changes Summary' },
56
+ },
46
57
  };
47
58
  export function registerVersionHistoryTools(server, client) {
48
59
  server.registerTool(TOOL_GET_PAGE_CHANGESETS, VERSION_HISTORY_TOOL_DEFINITIONS[TOOL_GET_PAGE_CHANGESETS], async ({ pageUID, fromTimestamp, toTimestamp, offset, limit }) => {
@@ -51,7 +62,7 @@ export function registerVersionHistoryTools(server, client) {
51
62
  const requestBody = {
52
63
  pageUID,
53
64
  offset: offset || 0,
54
- limit: limit || 100
65
+ limit: limit || 100,
55
66
  };
56
67
  if (fromTimestamp !== undefined) {
57
68
  requestBody.fromTimestamp = fromTimestamp;
@@ -65,14 +76,19 @@ export function registerVersionHistoryTools(server, client) {
65
76
  const result = await client.makeApiRequest('json/page/changesets', 'POST', undefined, requestBody);
66
77
  debugLogWithTag('PAGE_CHANGESETS', `Successfully retrieved changesets for page: ${pageUID}`);
67
78
  return {
68
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
79
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
69
80
  };
70
81
  }
71
82
  catch (error) {
72
83
  debugLogWithTag('PAGE_CHANGESETS', `Error retrieving changesets: ${error instanceof Error ? error.message : String(error)}`);
73
84
  return {
74
- content: [{ type: "text", text: `Error retrieving changesets: ${error instanceof Error ? error.message : String(error)}` }],
75
- isError: true
85
+ content: [
86
+ {
87
+ type: 'text',
88
+ text: `Error retrieving changesets: ${error instanceof Error ? error.message : String(error)}`,
89
+ },
90
+ ],
91
+ isError: true,
76
92
  };
77
93
  }
78
94
  });
@@ -81,20 +97,25 @@ export function registerVersionHistoryTools(server, client) {
81
97
  try {
82
98
  const requestBody = {
83
99
  pageUID,
84
- timestamp
100
+ timestamp,
85
101
  };
86
102
  debugLogWithTag('PAGE_STATE', `Request body: ${JSON.stringify(requestBody, null, 2)}`);
87
103
  const result = await client.makeApiRequest('json/page/state', 'POST', undefined, requestBody);
88
104
  debugLogWithTag('PAGE_STATE', `Successfully retrieved page state at timestamp ${timestamp}`);
89
105
  return {
90
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
106
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
91
107
  };
92
108
  }
93
109
  catch (error) {
94
110
  debugLogWithTag('PAGE_STATE', `Error retrieving page state: ${error instanceof Error ? error.message : String(error)}`);
95
111
  return {
96
- content: [{ type: "text", text: `Error retrieving page state: ${error instanceof Error ? error.message : String(error)}` }],
97
- isError: true
112
+ content: [
113
+ {
114
+ type: 'text',
115
+ text: `Error retrieving page state: ${error instanceof Error ? error.message : String(error)}`,
116
+ },
117
+ ],
118
+ isError: true,
98
119
  };
99
120
  }
100
121
  });
@@ -103,7 +124,7 @@ export function registerVersionHistoryTools(server, client) {
103
124
  try {
104
125
  const requestBody = {
105
126
  pageUID,
106
- fromTimestamp
127
+ fromTimestamp,
107
128
  };
108
129
  if (toTimestamp !== undefined) {
109
130
  requestBody.toTimestamp = toTimestamp;
@@ -113,14 +134,19 @@ export function registerVersionHistoryTools(server, client) {
113
134
  const result = await client.makeApiRequest('json/page/diff', 'POST', undefined, requestBody);
114
135
  debugLogWithTag('PAGE_DIFF', `Successfully retrieved page diff`);
115
136
  return {
116
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
137
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
117
138
  };
118
139
  }
119
140
  catch (error) {
120
141
  debugLogWithTag('PAGE_DIFF', `Error retrieving page diff: ${error instanceof Error ? error.message : String(error)}`);
121
142
  return {
122
- content: [{ type: "text", text: `Error retrieving page diff: ${error instanceof Error ? error.message : String(error)}` }],
123
- isError: true
143
+ content: [
144
+ {
145
+ type: 'text',
146
+ text: `Error retrieving page diff: ${error instanceof Error ? error.message : String(error)}`,
147
+ },
148
+ ],
149
+ isError: true,
124
150
  };
125
151
  }
126
152
  });
@@ -130,26 +156,31 @@ export function registerVersionHistoryTools(server, client) {
130
156
  debugLogWithTag('PAGE_CHANGES_SUMMARY', `Getting recent changes for page ${pageUID} (last ${effectiveDaysBack} days)`);
131
157
  try {
132
158
  const toTimestamp = Date.now();
133
- const fromTimestamp = toTimestamp - (effectiveDaysBack * 24 * 60 * 60 * 1000);
159
+ const fromTimestamp = toTimestamp - effectiveDaysBack * 24 * 60 * 60 * 1000;
134
160
  const requestBody = {
135
161
  pageUID,
136
162
  fromTimestamp,
137
163
  toTimestamp,
138
164
  offset: 0,
139
- limit: effectiveLimit
165
+ limit: effectiveLimit,
140
166
  };
141
167
  debugLogWithTag('PAGE_CHANGES_SUMMARY', `Request body: ${JSON.stringify(requestBody, null, 2)}`);
142
168
  const result = await client.makeApiRequest('json/page/changesets', 'POST', undefined, requestBody);
143
169
  debugLogWithTag('PAGE_CHANGES_SUMMARY', `Successfully retrieved recent changes summary`);
144
170
  return {
145
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
171
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
146
172
  };
147
173
  }
148
174
  catch (error) {
149
175
  debugLogWithTag('PAGE_CHANGES_SUMMARY', `Error retrieving changes summary: ${error instanceof Error ? error.message : String(error)}`);
150
176
  return {
151
- content: [{ type: "text", text: `Error retrieving changes summary: ${error instanceof Error ? error.message : String(error)}` }],
152
- isError: true
177
+ content: [
178
+ {
179
+ type: 'text',
180
+ text: `Error retrieving changes summary: ${error instanceof Error ? error.message : String(error)}`,
181
+ },
182
+ ],
183
+ isError: true,
153
184
  };
154
185
  }
155
186
  });
@@ -1 +1 @@
1
- {"version":3,"file":"version-history.js","sourceRoot":"","sources":["../../src/tools/version-history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version-history.js","sourceRoot":"","sources":["../../src/tools/version-history.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { z } from 'zod';
3
+ import { CplaceApiClient } from '../api.js';
4
+ export declare const WIDGET_SIMULATION_TOOL_DEFINITIONS: {
5
+ readonly cplace_simulate_widget_script: {
6
+ readonly description: "Execute a widget script under the production widget engine context for pre-embed verification.\n\nThis tool mirrors the engine row used by the real widget runtime\n(`evaluateShowAttributeScript` in cplace platform). The bindings, allowed type\nclasses, and read-only posture come from the platform source row — see\n`script-context-cards/widget.md` and `best-practices/low-code/script-contexts.md`.\n\n**Mode**: Read-only — widgets cannot modify data\n**Timeout**: 30 seconds maximum execution time\n\n**Injected bindings** (in addition to the baseline cplace API):\n- `embeddingPage` — WrappedPage hosting the layout this widget renders into\n- `targetEntity` — WrappedPage of the entity the widget is rendered for\n\n**No `pages` binding.** The widget runtime does not inject a pages iterable.\nIf your script needs an iterable of pages, construct one explicitly:\n\n new Search()\n .setEmbeddingEntity(embeddingPage)\n .add(Filters.embeddingSpace())\n .add(Filters.type('cf.myapp.task'))\n .findAllPages()\n .forEach(p => /* ... */)\n\n**Allowed type classes**: `Search`, `Filters` (lowcode wrapper classes).\n\n**Return Value Restrictions**: Same as cplace_execute_script (primitives, flat arrays/objects only).\n\n**When to use**: Before embedding any widget script (scriptingHighcharts, scriptingLineChart,\nlowCodeText, lowCodeButton row variants, dynamicCodeBlockWidget). For other contexts (page\nactions, change listeners, validators, jobs, wizards, button widgets) use the matching\n`cplace_simulate_*` tool — never `cplace_execute_script_write` for context-specific scripts.";
7
+ readonly inputSchema: {
8
+ readonly script: z.ZodString;
9
+ readonly embeddingPageUid: z.ZodString;
10
+ readonly targetEntityUid: z.ZodString;
11
+ };
12
+ readonly annotations: {
13
+ readonly title: "Simulate Widget Script";
14
+ };
15
+ };
16
+ };
17
+ export declare function registerWidgetSimulationTools(server: McpServer, client: CplaceApiClient): void;
18
+ //# sourceMappingURL=widget-simulation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-simulation.d.ts","sourceRoot":"","sources":["../../src/tools/widget-simulation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAO5C,eAAO,MAAM,kCAAkC;;;;;;;;;;;;CAoDrC,CAAC;AAEX,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,QAyDvF"}
@@ -0,0 +1,94 @@
1
+ import { z } from 'zod';
2
+ import { debugLogWithTag } from '../logger.js';
3
+ import { checkResponseSize } from '../utils.js';
4
+ import { CPLACEJS_COMMON_API_CHEAT_SHEET } from './common-schemas.js';
5
+ const TOOL_SIMULATE_WIDGET_SCRIPT = 'cplace_simulate_widget_script';
6
+ export const WIDGET_SIMULATION_TOOL_DEFINITIONS = {
7
+ [TOOL_SIMULATE_WIDGET_SCRIPT]: {
8
+ description: `Execute a widget script under the production widget engine context for pre-embed verification.
9
+
10
+ This tool mirrors the engine row used by the real widget runtime
11
+ (\`evaluateShowAttributeScript\` in cplace platform). The bindings, allowed type
12
+ classes, and read-only posture come from the platform source row — see
13
+ \`script-context-cards/widget.md\` and \`best-practices/low-code/script-contexts.md\`.
14
+
15
+ **Mode**: Read-only — widgets cannot modify data
16
+ **Timeout**: 30 seconds maximum execution time
17
+
18
+ **Injected bindings** (in addition to the baseline cplace API):
19
+ - \`embeddingPage\` — WrappedPage hosting the layout this widget renders into
20
+ - \`targetEntity\` — WrappedPage of the entity the widget is rendered for
21
+
22
+ **No \`pages\` binding.** The widget runtime does not inject a pages iterable.
23
+ If your script needs an iterable of pages, construct one explicitly:
24
+
25
+ new Search()
26
+ .setEmbeddingEntity(embeddingPage)
27
+ .add(Filters.embeddingSpace())
28
+ .add(Filters.type('cf.myapp.task'))
29
+ .findAllPages()
30
+ .forEach(p => /* ... */)
31
+
32
+ **Allowed type classes**: \`Search\`, \`Filters\` (lowcode wrapper classes).
33
+
34
+ **Return Value Restrictions**: Same as cplace_execute_script (primitives, flat arrays/objects only).
35
+
36
+ **When to use**: Before embedding any widget script (scriptingHighcharts, scriptingLineChart,
37
+ lowCodeText, lowCodeButton row variants, dynamicCodeBlockWidget). For other contexts (page
38
+ actions, change listeners, validators, jobs, wizards, button widgets) use the matching
39
+ \`cplace_simulate_*\` tool — never \`cplace_execute_script_write\` for context-specific scripts.`,
40
+ inputSchema: {
41
+ script: z.string().describe(`JavaScript code to execute. Bindings: \`embeddingPage\`, \`targetEntity\` (both WrappedPage).
42
+ There is NO \`pages\` binding — construct your own \`new Search()\` (e.g. \`new Search().setEmbeddingEntity(embeddingPage)\`).
43
+ Allowed type classes: Search, Filters. Must return a JSON-serializable value.` +
44
+ CPLACEJS_COMMON_API_CHEAT_SHEET),
45
+ embeddingPageUid: z
46
+ .string()
47
+ .describe('Page UID hosting the layout (bound as `embeddingPage`). Required.'),
48
+ targetEntityUid: z
49
+ .string()
50
+ .describe('Page UID of the entity the widget renders for (bound as `targetEntity`). Required.'),
51
+ },
52
+ annotations: { title: 'Simulate Widget Script' },
53
+ },
54
+ };
55
+ export function registerWidgetSimulationTools(server, client) {
56
+ server.registerTool(TOOL_SIMULATE_WIDGET_SCRIPT, WIDGET_SIMULATION_TOOL_DEFINITIONS[TOOL_SIMULATE_WIDGET_SCRIPT], async ({ script, embeddingPageUid, targetEntityUid }) => {
57
+ debugLogWithTag('WIDGET_SIM', `Simulating widget script (${script.length} chars) embeddingPage=${embeddingPageUid} targetEntity=${targetEntityUid}`);
58
+ try {
59
+ const requestBody = { script, embeddingPageUid, targetEntityUid };
60
+ const response = await client.makeApiRequest('json/widget/simulateScript', 'POST', undefined, requestBody);
61
+ const result = { result: response };
62
+ const sizeCheck = checkResponseSize(result);
63
+ if (sizeCheck.tooLarge) {
64
+ debugLogWithTag('WIDGET_SIM', `Response too large: ${sizeCheck.actualSize} characters`);
65
+ return {
66
+ content: [
67
+ {
68
+ type: 'text',
69
+ text: `Widget simulation result too large (${sizeCheck.actualSize} characters). Modify your script to return less data.`,
70
+ },
71
+ ],
72
+ isError: true,
73
+ };
74
+ }
75
+ debugLogWithTag('WIDGET_SIM', 'Widget script simulated successfully');
76
+ return {
77
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
78
+ };
79
+ }
80
+ catch (error) {
81
+ debugLogWithTag('WIDGET_SIM', `Error: ${error instanceof Error ? error.message : String(error)}`);
82
+ return {
83
+ content: [
84
+ {
85
+ type: 'text',
86
+ text: `Error simulating widget script: ${error instanceof Error ? error.message : String(error)}`,
87
+ },
88
+ ],
89
+ isError: true,
90
+ };
91
+ }
92
+ });
93
+ }
94
+ //# sourceMappingURL=widget-simulation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-simulation.js","sourceRoot":"","sources":["../../src/tools/widget-simulation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AAEtE,MAAM,2BAA2B,GAAG,+BAA+B,CAAC;AAEpE,MAAM,CAAC,MAAM,kCAAkC,GAAG;IAChD,CAAC,2BAA2B,CAAC,EAAE;QAC7B,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iGA+BgF;QAC7F,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CACzB;;8EAEsE;gBACpE,+BAA+B,CAClC;YACD,gBAAgB,EAAE,CAAC;iBAChB,MAAM,EAAE;iBACR,QAAQ,CAAC,mEAAmE,CAAC;YAChF,eAAe,EAAE,CAAC;iBACf,MAAM,EAAE;iBACR,QAAQ,CACP,oFAAoF,CACrF;SACJ;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE;KACjD;CACO,CAAC;AAEX,MAAM,UAAU,6BAA6B,CAAC,MAAiB,EAAE,MAAuB;IACtF,MAAM,CAAC,YAAY,CACjB,2BAA2B,EAC3B,kCAAkC,CAAC,2BAA2B,CAAC,EAC/D,KAAK,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,EAAE,EAAE;QACtD,eAAe,CACb,YAAY,EACZ,6BAA6B,MAAM,CAAC,MAAM,yBAAyB,gBAAgB,iBAAiB,eAAe,EAAE,CACtH,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,WAAW,GAA2B,EAAE,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC;YAE1F,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,cAAc,CAC1C,4BAA4B,EAC5B,MAAM,EACN,SAAS,EACT,WAAW,CACZ,CAAC;YAEF,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YAEpC,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACvB,eAAe,CAAC,YAAY,EAAE,uBAAuB,SAAS,CAAC,UAAU,aAAa,CAAC,CAAC;gBACxF,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,uCAAuC,SAAS,CAAC,UAAU,uDAAuD;yBACzH;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,eAAe,CAAC,YAAY,EAAE,sCAAsC,CAAC,CAAC;YACtE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAe,CACb,YAAY,EACZ,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnE,CAAC;YACF,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;qBAClG;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,5 +1,21 @@
1
- import { z } from "zod";
1
+ import { z } from 'zod';
2
2
  import { LayoutContextSchema } from './layout.js';
3
+ export interface WidgetIdEntry {
4
+ widgetId: string;
5
+ widgetType: string;
6
+ row: number;
7
+ column: number;
8
+ parentWidgetId?: string;
9
+ }
10
+ export declare function extractWidgetIdSummary(rows: any[], parentWidgetId?: string): WidgetIdEntry[];
11
+ export declare function buildStaleIdErrorText(widgetId: string, contextType: string): string;
12
+ export declare function buildStaleIdErrorResponse(widgetId: string, contextType: string): {
13
+ content: {
14
+ type: "text";
15
+ text: string;
16
+ }[];
17
+ isError: boolean;
18
+ };
3
19
  export declare function determineApiEndpoint(context: z.infer<typeof LayoutContextSchema>): string;
4
20
  export declare function buildRequestParams(context: z.infer<typeof LayoutContextSchema>): any;
5
21
  export declare function buildUpdateRequestBody(context: z.infer<typeof LayoutContextSchema>, widgetId: string, newConfiguration: Record<string, any>): any;
@@ -1 +1 @@
1
- {"version":3,"file":"widget-tool-helpers.d.ts","sourceRoot":"","sources":["../../src/tools/widget-tool-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAKlD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,GAAG,MAAM,CAEzF;AAKD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,GAAG,GAAG,CAUpF;AAKD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,EAC5C,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACpC,GAAG,CASL;AAKD,wBAAgB,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAexE"}
1
+ {"version":3,"file":"widget-tool-helpers.d.ts","sourceRoot":"","sources":["../../src/tools/widget-tool-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,aAAa,EAAE,CAuB5F;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAEnF;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;;;;;;EAK9E;AAKD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,GAAG,MAAM,CAEzF;AAKD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,GAAG,GAAG,CAYpF;AAKD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,EAC5C,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACpC,GAAG,CASL;AAKD,wBAAgB,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAexE"}
@@ -1,15 +1,50 @@
1
+ export function extractWidgetIdSummary(rows, parentWidgetId) {
2
+ const entries = [];
3
+ for (const row of rows || []) {
4
+ const rowIndex = rows.indexOf(row);
5
+ for (const column of row.columns || []) {
6
+ const colIndex = row.columns.indexOf(column);
7
+ for (const widget of column.widgets || []) {
8
+ if (widget.id) {
9
+ entries.push({
10
+ widgetId: widget.id,
11
+ widgetType: widget.widgetType,
12
+ row: rowIndex,
13
+ column: colIndex,
14
+ ...(parentWidgetId && { parentWidgetId }),
15
+ });
16
+ }
17
+ if (widget.widgetsLayout?.rows) {
18
+ entries.push(...extractWidgetIdSummary(widget.widgetsLayout.rows, widget.id));
19
+ }
20
+ }
21
+ }
22
+ }
23
+ return entries;
24
+ }
25
+ export function buildStaleIdErrorText(widgetId, contextType) {
26
+ return `Widget with ID ${widgetId} not found in ${contextType} layout. Widget IDs are regenerated after every layout save — call cplace_get_layout_overview to get current IDs.`;
27
+ }
28
+ export function buildStaleIdErrorResponse(widgetId, contextType) {
29
+ return {
30
+ content: [{ type: 'text', text: buildStaleIdErrorText(widgetId, contextType) }],
31
+ isError: true,
32
+ };
33
+ }
1
34
  export function determineApiEndpoint(context) {
2
- return context.type === "page" ? "json/pageLayout" : "json/typeLayout";
35
+ return context.type === 'page' ? 'json/pageLayout' : 'json/typeLayout';
3
36
  }
4
37
  export function buildRequestParams(context) {
5
- if (context.type === "page") {
38
+ if (context.type === 'page') {
6
39
  return { pageUID: context.pageUID };
7
40
  }
8
41
  else {
9
42
  return {
10
43
  workspaceId: context.workspaceId,
11
44
  typeInternalName: context.typeInternalName,
12
- ...(context.alternativeLayoutName && { alternativeLayoutName: context.alternativeLayoutName })
45
+ ...(context.alternativeLayoutName && {
46
+ alternativeLayoutName: context.alternativeLayoutName,
47
+ }),
13
48
  };
14
49
  }
15
50
  }
@@ -17,10 +52,10 @@ export function buildUpdateRequestBody(context, widgetId, newConfiguration) {
17
52
  return {
18
53
  ...buildRequestParams(context),
19
54
  operation: {
20
- type: "UPDATE",
55
+ type: 'UPDATE',
21
56
  widgetId,
22
- newConfiguration
23
- }
57
+ newConfiguration,
58
+ },
24
59
  };
25
60
  }
26
61
  export function findWidgetById(rows, widgetId) {