@cplace/mcp-server 1.9.1 → 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.
- package/README.md +12 -13
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/plugins/app-catalog.js +1 -1
- package/dist/plugins/app-catalog.js.map +1 -1
- package/dist/plugins/application-settings.d.ts.map +1 -1
- package/dist/plugins/application-settings.js +6 -3
- package/dist/plugins/application-settings.js.map +1 -1
- package/dist/plugins/core/widget-specifications/cf.cplace.platform.tableWidget/columns.md +6 -0
- package/dist/plugins/core.d.ts.map +1 -1
- package/dist/plugins/core.js +25 -13
- package/dist/plugins/core.js.map +1 -1
- package/dist/plugins/forms-wizard.js +2 -2
- package/dist/plugins/forms-wizard.js.map +1 -1
- package/dist/plugins/history.d.ts.map +1 -1
- package/dist/plugins/history.js +6 -3
- package/dist/plugins/history.js.map +1 -1
- package/dist/plugins/jobs.js +2 -2
- package/dist/plugins/jobs.js.map +1 -1
- package/dist/plugins/layouts.d.ts.map +1 -1
- package/dist/plugins/layouts.js +17 -8
- package/dist/plugins/layouts.js.map +1 -1
- package/dist/plugins/low-code.d.ts.map +1 -1
- package/dist/plugins/low-code.js +48 -17
- package/dist/plugins/low-code.js.map +1 -1
- package/dist/plugins/project-planning.d.ts.map +1 -1
- package/dist/plugins/project-planning.js +6 -3
- package/dist/plugins/project-planning.js.map +1 -1
- package/dist/plugins/resource-management.d.ts.map +1 -1
- package/dist/plugins/resource-management.js +6 -3
- package/dist/plugins/resource-management.js.map +1 -1
- package/dist/plugins/solution-management.d.ts.map +1 -1
- package/dist/plugins/solution-management.js +6 -3
- package/dist/plugins/solution-management.js.map +1 -1
- package/dist/plugins/types-write.d.ts.map +1 -1
- package/dist/plugins/types-write.js +6 -3
- package/dist/plugins/types-write.js.map +1 -1
- package/dist/plugins/widget-specifications.d.ts.map +1 -1
- package/dist/plugins/widget-specifications.js +2 -2
- package/dist/plugins/widget-specifications.js.map +1 -1
- package/dist/plugins/workspace-admin.d.ts.map +1 -1
- package/dist/plugins/workspace-admin.js +6 -3
- package/dist/plugins/workspace-admin.js.map +1 -1
- package/dist/str-replace-utils.js +1 -1
- package/dist/str-replace-utils.js.map +1 -1
- package/dist/tools/apps-catalog.d.ts +1 -1
- package/dist/tools/apps-catalog.d.ts.map +1 -1
- package/dist/tools/apps-catalog.js +16 -12
- package/dist/tools/apps-catalog.js.map +1 -1
- package/dist/tools/board-widget.d.ts +2 -2
- package/dist/tools/board-widget.d.ts.map +1 -1
- package/dist/tools/board-widget.js +354 -201
- package/dist/tools/board-widget.js.map +1 -1
- package/dist/tools/change-listeners.d.ts +2 -2
- package/dist/tools/change-listeners.d.ts.map +1 -1
- package/dist/tools/change-listeners.js +125 -57
- package/dist/tools/change-listeners.js.map +1 -1
- package/dist/tools/common-schemas.d.ts +1 -1
- package/dist/tools/common-schemas.d.ts.map +1 -1
- package/dist/tools/common-schemas.js +5 -3
- package/dist/tools/common-schemas.js.map +1 -1
- package/dist/tools/csv-export.d.ts +2 -2
- package/dist/tools/csv-export.d.ts.map +1 -1
- package/dist/tools/csv-export.js +29 -24
- package/dist/tools/csv-export.js.map +1 -1
- package/dist/tools/documents.d.ts +2 -2
- package/dist/tools/documents.d.ts.map +1 -1
- package/dist/tools/documents.js +34 -14
- package/dist/tools/documents.js.map +1 -1
- package/dist/tools/expert-settings.d.ts +3 -3
- package/dist/tools/expert-settings.d.ts.map +1 -1
- package/dist/tools/expert-settings.js +97 -38
- package/dist/tools/expert-settings.js.map +1 -1
- package/dist/tools/get-operations.d.ts +2 -2
- package/dist/tools/get-operations.d.ts.map +1 -1
- package/dist/tools/get-operations.js +29 -21
- package/dist/tools/get-operations.js.map +1 -1
- package/dist/tools/job-schedule-trigger.d.ts +2 -2
- package/dist/tools/job-schedule-trigger.d.ts.map +1 -1
- package/dist/tools/job-schedule-trigger.js +19 -10
- package/dist/tools/job-schedule-trigger.js.map +1 -1
- package/dist/tools/job-scripts.d.ts +2 -2
- package/dist/tools/job-scripts.d.ts.map +1 -1
- package/dist/tools/job-scripts.js +119 -55
- package/dist/tools/job-scripts.js.map +1 -1
- package/dist/tools/jobs.d.ts +2 -2
- package/dist/tools/jobs.d.ts.map +1 -1
- package/dist/tools/jobs.js +68 -38
- package/dist/tools/jobs.js.map +1 -1
- package/dist/tools/layout-richstring-shared.d.ts +24 -1
- package/dist/tools/layout-richstring-shared.d.ts.map +1 -1
- package/dist/tools/layout-richstring-shared.js +99 -1
- package/dist/tools/layout-richstring-shared.js.map +1 -1
- package/dist/tools/layout-richstring-widgets.d.ts +94 -2
- package/dist/tools/layout-richstring-widgets.d.ts.map +1 -1
- package/dist/tools/layout-richstring-widgets.js +247 -25
- package/dist/tools/layout-richstring-widgets.js.map +1 -1
- package/dist/tools/layout.d.ts +5 -4
- package/dist/tools/layout.d.ts.map +1 -1
- package/dist/tools/layout.js +235 -124
- package/dist/tools/layout.js.map +1 -1
- package/dist/tools/linting.d.ts +2 -2
- package/dist/tools/linting.d.ts.map +1 -1
- package/dist/tools/linting.js +5 -5
- package/dist/tools/linting.js.map +1 -1
- package/dist/tools/page-action-simulation.d.ts +18 -0
- package/dist/tools/page-action-simulation.d.ts.map +1 -0
- package/dist/tools/page-action-simulation.js +88 -0
- package/dist/tools/page-action-simulation.js.map +1 -0
- package/dist/tools/page-actions.d.ts +60 -0
- package/dist/tools/page-actions.d.ts.map +1 -0
- package/dist/tools/page-actions.js +284 -0
- package/dist/tools/page-actions.js.map +1 -0
- package/dist/tools/pages.d.ts +3 -3
- package/dist/tools/pages.d.ts.map +1 -1
- package/dist/tools/pages.js +237 -112
- package/dist/tools/pages.js.map +1 -1
- package/dist/tools/ppt-export-schemas.d.ts +1 -1
- package/dist/tools/ppt-export-schemas.d.ts.map +1 -1
- package/dist/tools/ppt-export-schemas.js +269 -122
- package/dist/tools/ppt-export-schemas.js.map +1 -1
- package/dist/tools/ppt-export.d.ts +2 -2
- package/dist/tools/ppt-export.d.ts.map +1 -1
- package/dist/tools/ppt-export.js +82 -43
- package/dist/tools/ppt-export.js.map +1 -1
- package/dist/tools/profile-management.d.ts +2 -2
- package/dist/tools/profile-management.d.ts.map +1 -1
- package/dist/tools/profile-management.js +109 -82
- package/dist/tools/profile-management.js.map +1 -1
- package/dist/tools/references.d.ts +2 -2
- package/dist/tools/references.d.ts.map +1 -1
- package/dist/tools/references.js +36 -24
- package/dist/tools/references.js.map +1 -1
- package/dist/tools/resource-planner-widget.d.ts +2 -2
- package/dist/tools/resource-planner-widget.d.ts.map +1 -1
- package/dist/tools/resource-planner-widget.js +334 -138
- package/dist/tools/resource-planner-widget.js.map +1 -1
- package/dist/tools/richstring-marker-resolver.d.ts +16 -0
- package/dist/tools/richstring-marker-resolver.d.ts.map +1 -0
- package/dist/tools/richstring-marker-resolver.js +47 -0
- package/dist/tools/richstring-marker-resolver.js.map +1 -0
- package/dist/tools/richstring-widgets.d.ts +6 -16
- package/dist/tools/richstring-widgets.d.ts.map +1 -1
- package/dist/tools/richstring-widgets.js +184 -129
- package/dist/tools/richstring-widgets.js.map +1 -1
- package/dist/tools/schedule.d.ts +2 -2
- package/dist/tools/schedule.d.ts.map +1 -1
- package/dist/tools/schedule.js +23 -14
- package/dist/tools/schedule.js.map +1 -1
- package/dist/tools/script-logs.d.ts +2 -2
- package/dist/tools/script-logs.d.ts.map +1 -1
- package/dist/tools/script-logs.js +71 -32
- package/dist/tools/script-logs.js.map +1 -1
- package/dist/tools/script.d.ts +2 -2
- package/dist/tools/script.d.ts.map +1 -1
- package/dist/tools/script.js +44 -26
- package/dist/tools/script.js.map +1 -1
- package/dist/tools/search.d.ts +2 -2
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +139 -102
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/solution-packages.d.ts +2 -2
- package/dist/tools/solution-packages.d.ts.map +1 -1
- package/dist/tools/solution-packages.js +149 -61
- package/dist/tools/solution-packages.js.map +1 -1
- package/dist/tools/system.d.ts +2 -2
- package/dist/tools/system.d.ts.map +1 -1
- package/dist/tools/system.js +43 -21
- package/dist/tools/system.js.map +1 -1
- package/dist/tools/type-layouts.d.ts +2 -2
- package/dist/tools/type-layouts.d.ts.map +1 -1
- package/dist/tools/type-layouts.js +67 -31
- package/dist/tools/type-layouts.js.map +1 -1
- package/dist/tools/type-management.d.ts +86 -70
- package/dist/tools/type-management.d.ts.map +1 -1
- package/dist/tools/type-management.js +410 -138
- package/dist/tools/type-management.js.map +1 -1
- package/dist/tools/url-resolution.d.ts +2 -2
- package/dist/tools/url-resolution.d.ts.map +1 -1
- package/dist/tools/url-resolution.js +16 -12
- package/dist/tools/url-resolution.js.map +1 -1
- package/dist/tools/users.d.ts +2 -2
- package/dist/tools/users.d.ts.map +1 -1
- package/dist/tools/users.js +24 -14
- package/dist/tools/users.js.map +1 -1
- package/dist/tools/validators.d.ts +2 -2
- package/dist/tools/validators.d.ts.map +1 -1
- package/dist/tools/validators.js +68 -35
- package/dist/tools/validators.js.map +1 -1
- package/dist/tools/version-check.d.ts +2 -2
- package/dist/tools/version-check.d.ts.map +1 -1
- package/dist/tools/version-check.js +36 -30
- package/dist/tools/version-check.js.map +1 -1
- package/dist/tools/version-history.d.ts +2 -2
- package/dist/tools/version-history.d.ts.map +1 -1
- package/dist/tools/version-history.js +72 -41
- package/dist/tools/version-history.js.map +1 -1
- package/dist/tools/widget-simulation.d.ts +5 -6
- package/dist/tools/widget-simulation.d.ts.map +1 -1
- package/dist/tools/widget-simulation.js +60 -42
- package/dist/tools/widget-simulation.js.map +1 -1
- package/dist/tools/widget-tool-helpers.d.ts +17 -1
- package/dist/tools/widget-tool-helpers.d.ts.map +1 -1
- package/dist/tools/widget-tool-helpers.js +41 -6
- package/dist/tools/widget-tool-helpers.js.map +1 -1
- package/dist/tools/widgets.d.ts +2 -2
- package/dist/tools/widgets.d.ts.map +1 -1
- package/dist/tools/widgets.js +62 -43
- package/dist/tools/widgets.js.map +1 -1
- package/dist/tools/wizards.d.ts +2 -2
- package/dist/tools/wizards.d.ts.map +1 -1
- package/dist/tools/wizards.js +378 -182
- package/dist/tools/wizards.js.map +1 -1
- package/dist/tools/workflow-execution.d.ts +2 -2
- package/dist/tools/workflow-execution.d.ts.map +1 -1
- package/dist/tools/workflow-execution.js +27 -19
- package/dist/tools/workflow-execution.js.map +1 -1
- package/dist/tools/workflow-scripts.d.ts +2 -2
- package/dist/tools/workflow-scripts.d.ts.map +1 -1
- package/dist/tools/workflow-scripts.js +168 -81
- package/dist/tools/workflow-scripts.js.map +1 -1
- package/dist/tools/workflow.d.ts +2 -2
- package/dist/tools/workflow.d.ts.map +1 -1
- package/dist/tools/workflow.js +185 -74
- package/dist/tools/workflow.js.map +1 -1
- package/dist/tools/workspace-admin.d.ts +2 -2
- package/dist/tools/workspace-admin.d.ts.map +1 -1
- package/dist/tools/workspace-admin.js +82 -40
- package/dist/tools/workspace-admin.js.map +1 -1
- package/dist/tools/workspace-core.d.ts +2 -2
- package/dist/tools/workspace-core.d.ts.map +1 -1
- package/dist/tools/workspace-core.js +93 -53
- package/dist/tools/workspace-core.js.map +1 -1
- package/dist/utils/dateValidation.js.map +1 -1
- 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:
|
|
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
|
-
|
|
32
|
+
content: [
|
|
33
|
+
{
|
|
34
|
+
type: 'text',
|
|
34
35
|
text: JSON.stringify({
|
|
35
|
-
status:
|
|
36
|
-
message:
|
|
36
|
+
status: 'compatible',
|
|
37
|
+
message: '✅ Package version matches backend expectations',
|
|
37
38
|
details: {
|
|
38
39
|
frontendPackageVersion: FRONTEND_VERSION,
|
|
39
40
|
backendExpectedVersion: backendExpectedVersion,
|
|
40
|
-
packageName:
|
|
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:
|
|
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:
|
|
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
|
-
|
|
65
|
+
content: [
|
|
66
|
+
{
|
|
67
|
+
type: 'text',
|
|
65
68
|
text: JSON.stringify({
|
|
66
|
-
status:
|
|
67
|
-
message:
|
|
69
|
+
status: 'mismatch',
|
|
70
|
+
message: '⚠️ VERSION MISMATCH DETECTED',
|
|
68
71
|
details: {
|
|
69
72
|
frontendPackageVersion: FRONTEND_VERSION,
|
|
70
73
|
backendExpectedVersion: backendExpectedVersion,
|
|
71
|
-
packageName:
|
|
74
|
+
packageName: '@cplace/mcp-server',
|
|
72
75
|
},
|
|
73
|
-
...guidance
|
|
74
|
-
}, null, 2)
|
|
75
|
-
}
|
|
76
|
-
|
|
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
|
-
|
|
86
|
+
content: [
|
|
87
|
+
{
|
|
88
|
+
type: 'text',
|
|
84
89
|
text: JSON.stringify({
|
|
85
|
-
status:
|
|
86
|
-
message:
|
|
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
|
-
|
|
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":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGrC,MAAM,gCAAgC,GAAG,oCAAoC,CAAC;AAM9E,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;AAE9D,SAAS,kBAAkB;IACzB,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;QACtE,OAAO,WAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAGf,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;QACtE,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,gBAAgB,GAAG,kBAAkB,EAAE,CAAC;AAE9C,MAAM,UAAU,wBAAwB,CAAC,MAAiB,EAAE,MAAuB;IACjF,MAAM,CAAC,YAAY,
|
|
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
|
|
2
|
-
import { z } from
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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
|
|
2
|
-
import { debugLogWithTag } from
|
|
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:
|
|
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(
|
|
13
|
-
fromTimestamp: z
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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:
|
|
24
|
+
annotations: { title: 'Get Page ChangeSets' },
|
|
19
25
|
},
|
|
20
26
|
[TOOL_GET_PAGE_STATE_AT_TIMESTAMP]: {
|
|
21
|
-
description:
|
|
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
|
|
24
|
-
|
|
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:
|
|
34
|
+
annotations: { title: 'Get Page State at Timestamp' },
|
|
27
35
|
},
|
|
28
36
|
[TOOL_GET_PAGE_DIFF]: {
|
|
29
|
-
description:
|
|
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(
|
|
32
|
-
fromTimestamp: z.number().describe(
|
|
33
|
-
toTimestamp: z
|
|
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:
|
|
46
|
+
annotations: { title: 'Get Page Diff' },
|
|
36
47
|
},
|
|
37
48
|
[TOOL_GET_PAGE_CHANGESETS_SUMMARY]: {
|
|
38
|
-
description:
|
|
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(
|
|
41
|
-
daysBack: coerceNumber(z.number().optional()).describe(
|
|
42
|
-
limit: coerceNumber(z.number().max(1000).optional()).describe(
|
|
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:
|
|
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:
|
|
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: [
|
|
75
|
-
|
|
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:
|
|
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: [
|
|
97
|
-
|
|
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:
|
|
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: [
|
|
123
|
-
|
|
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 -
|
|
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:
|
|
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: [
|
|
152
|
-
|
|
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":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,wBAAwB,GAAG,4BAA4B,CAAC;AAC9D,MAAM,gCAAgC,GAAG,oCAAoC,CAAC;AAC9E,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAClD,MAAM,gCAAgC,GAAG,oCAAoC,CAAC;AAG9E,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,CAAC,wBAAwB,CAAC,EAAE;QAC1B,WAAW,
|
|
1
|
+
{"version":3,"file":"version-history.js","sourceRoot":"","sources":["../../src/tools/version-history.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { McpServer } from
|
|
2
|
-
import { z } from
|
|
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 WIDGET_SIMULATION_TOOL_DEFINITIONS: {
|
|
5
5
|
readonly cplace_simulate_widget_script: {
|
|
6
|
-
readonly description: "Execute a 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
7
|
readonly inputSchema: {
|
|
8
8
|
readonly script: z.ZodString;
|
|
9
|
-
readonly
|
|
10
|
-
readonly
|
|
11
|
-
readonly embeddingPageUid: z.ZodOptional<z.ZodString>;
|
|
9
|
+
readonly embeddingPageUid: z.ZodString;
|
|
10
|
+
readonly targetEntityUid: z.ZodString;
|
|
12
11
|
};
|
|
13
12
|
readonly annotations: {
|
|
14
13
|
readonly title: "Simulate Widget Script";
|
|
@@ -1 +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
|
|
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"}
|
|
@@ -1,74 +1,92 @@
|
|
|
1
|
-
import { z } from
|
|
2
|
-
import { debugLogWithTag } from
|
|
3
|
-
import { checkResponseSize } from
|
|
4
|
-
import { CPLACEJS_COMMON_API_CHEAT_SHEET } from
|
|
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
5
|
const TOOL_SIMULATE_WIDGET_SCRIPT = 'cplace_simulate_widget_script';
|
|
6
6
|
export const WIDGET_SIMULATION_TOOL_DEFINITIONS = {
|
|
7
7
|
[TOOL_SIMULATE_WIDGET_SCRIPT]: {
|
|
8
|
-
description: `Execute a widget script
|
|
8
|
+
description: `Execute a widget script under the production widget engine context for pre-embed verification.
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
14
|
|
|
15
|
-
**Mode**: Read-only —
|
|
15
|
+
**Mode**: Read-only — widgets cannot modify data
|
|
16
16
|
**Timeout**: 30 seconds maximum execution time
|
|
17
17
|
|
|
18
|
-
**Injected
|
|
19
|
-
- \`
|
|
20
|
-
- \`
|
|
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
21
|
|
|
22
|
-
**
|
|
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:
|
|
23
24
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
(
|
|
30
|
-
|
|
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).
|
|
31
33
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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.'),
|
|
36
51
|
},
|
|
37
|
-
annotations: { title:
|
|
38
|
-
}
|
|
52
|
+
annotations: { title: 'Simulate Widget Script' },
|
|
53
|
+
},
|
|
39
54
|
};
|
|
40
55
|
export function registerWidgetSimulationTools(server, client) {
|
|
41
|
-
server.registerTool(TOOL_SIMULATE_WIDGET_SCRIPT, WIDGET_SIMULATION_TOOL_DEFINITIONS[TOOL_SIMULATE_WIDGET_SCRIPT], async ({ script,
|
|
42
|
-
debugLogWithTag('WIDGET_SIM', `Simulating widget script (${script.length} chars)
|
|
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}`);
|
|
43
58
|
try {
|
|
44
|
-
const requestBody = { script,
|
|
45
|
-
if (workspaceId)
|
|
46
|
-
requestBody.workspaceId = workspaceId;
|
|
47
|
-
if (embeddingPageUid)
|
|
48
|
-
requestBody.embeddingPageUid = embeddingPageUid;
|
|
59
|
+
const requestBody = { script, embeddingPageUid, targetEntityUid };
|
|
49
60
|
const response = await client.makeApiRequest('json/widget/simulateScript', 'POST', undefined, requestBody);
|
|
50
61
|
const result = { result: response };
|
|
51
62
|
const sizeCheck = checkResponseSize(result);
|
|
52
63
|
if (sizeCheck.tooLarge) {
|
|
53
64
|
debugLogWithTag('WIDGET_SIM', `Response too large: ${sizeCheck.actualSize} characters`);
|
|
54
65
|
return {
|
|
55
|
-
content: [
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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,
|
|
60
73
|
};
|
|
61
74
|
}
|
|
62
75
|
debugLogWithTag('WIDGET_SIM', 'Widget script simulated successfully');
|
|
63
76
|
return {
|
|
64
|
-
content: [{ type:
|
|
77
|
+
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
65
78
|
};
|
|
66
79
|
}
|
|
67
80
|
catch (error) {
|
|
68
81
|
debugLogWithTag('WIDGET_SIM', `Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
69
82
|
return {
|
|
70
|
-
content: [
|
|
71
|
-
|
|
83
|
+
content: [
|
|
84
|
+
{
|
|
85
|
+
type: 'text',
|
|
86
|
+
text: `Error simulating widget script: ${error instanceof Error ? error.message : String(error)}`,
|
|
87
|
+
},
|
|
88
|
+
],
|
|
89
|
+
isError: true,
|
|
72
90
|
};
|
|
73
91
|
}
|
|
74
92
|
});
|
|
@@ -1 +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
|
|
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
|
|
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;
|