@cplace/mcp-server 1.5.0 → 1.5.2
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 +89 -51
- package/dist/conditional-registration.d.ts.map +1 -1
- package/dist/conditional-registration.js +3 -1
- package/dist/conditional-registration.js.map +1 -1
- package/dist/linter.d.ts +14 -0
- package/dist/linter.d.ts.map +1 -0
- package/dist/linter.js +113 -0
- package/dist/linter.js.map +1 -0
- package/dist/profiles.js +1 -1
- package/dist/profiles.js.map +1 -1
- package/dist/tool-metadata.d.ts.map +1 -1
- package/dist/tool-metadata.js +3 -1
- package/dist/tool-metadata.js.map +1 -1
- package/dist/tools/layout-richstring-widgets.js +3 -3
- package/dist/tools/linting.d.ts +16 -0
- package/dist/tools/linting.d.ts.map +1 -0
- package/dist/tools/linting.js +21 -0
- package/dist/tools/linting.js.map +1 -0
- package/dist/tools/richstring-widgets.js +4 -4
- package/dist/widget-specifications/_research_from_ga_products/cf-cplace-treeTableWidget/research.md +2 -0
- package/dist/widget-specifications/cf.cplace.dynamicCodeBlockWidget.dynamicCodeBlockWidget/_overview.md +4 -1
- package/dist/widget-specifications/cf.cplace.lowCodeWidgets.lowCodeText/_overview.md +1 -0
- package/dist/widget-specifications/cf.cplace.treeTableWidget/_overview.md +4 -1
- package/package.json +6 -5
package/README.md
CHANGED
|
@@ -18,20 +18,23 @@ claude mcp add --transport http cplace https://mcp.cplace.com --header "cplace-u
|
|
|
18
18
|
#### Claude Desktop
|
|
19
19
|
```json
|
|
20
20
|
{
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
"mcpServers": {
|
|
22
|
+
"cplace": {
|
|
23
|
+
"command": "/npx",
|
|
24
|
+
"args": [
|
|
25
|
+
"--ignore-existing",
|
|
26
|
+
"-y",
|
|
27
|
+
"@cplace/mcp-server@latest"
|
|
28
|
+
],
|
|
29
|
+
"env": {
|
|
30
|
+
"CPLACE_URL": "https://base.cplace.io/",
|
|
31
|
+
"API_TOKEN": "****"
|
|
32
|
+
}
|
|
27
33
|
}
|
|
28
|
-
|
|
29
|
-
}
|
|
34
|
+
}
|
|
30
35
|
}
|
|
31
36
|
```
|
|
32
37
|
|
|
33
|
-
Authentication is handled through the remote server's OAuth flow — no API token configuration needed in the MCP client.
|
|
34
|
-
|
|
35
38
|
### Local Installation (Alternative)
|
|
36
39
|
|
|
37
40
|
If you prefer to run the MCP server locally (e.g., for development or air-gapped environments), you can install it via npx.
|
|
@@ -43,31 +46,31 @@ By default, only the core tools are loaded. Add this entry to your Claude Deskto
|
|
|
43
46
|
**Option 1: Separate credentials (traditional)**
|
|
44
47
|
```json
|
|
45
48
|
{
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
"mcpServers": {
|
|
50
|
+
"cplace": {
|
|
51
|
+
"command": "npx",
|
|
52
|
+
"args": ["--ignore-existing", "-y", "@cplace/mcp-server@latest"],
|
|
53
|
+
"env": {
|
|
54
|
+
"CPLACE_URL": "https://your-cplace-instance.com/your-tenant",
|
|
55
|
+
"API_TOKEN": "your-api-token"
|
|
56
|
+
}
|
|
53
57
|
}
|
|
54
|
-
|
|
55
|
-
}
|
|
58
|
+
}
|
|
56
59
|
}
|
|
57
60
|
```
|
|
58
61
|
|
|
59
62
|
**Option 2: URL-embedded credentials**
|
|
60
63
|
```json
|
|
61
64
|
{
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
"mcpServers": {
|
|
66
|
+
"cplace": {
|
|
67
|
+
"command": "npx",
|
|
68
|
+
"args": ["--ignore-existing", "-y", "@cplace/mcp-server@latest"],
|
|
69
|
+
"env": {
|
|
70
|
+
"CPLACE_URL": "https://your-api-token@your-cplace-instance.com/your-tenant"
|
|
71
|
+
}
|
|
68
72
|
}
|
|
69
|
-
|
|
70
|
-
}
|
|
73
|
+
}
|
|
71
74
|
}
|
|
72
75
|
```
|
|
73
76
|
|
|
@@ -116,7 +119,7 @@ By default, `npx` installs the latest version of the MCP server. To install a sp
|
|
|
116
119
|
@cplace/mcp-server@0.1.15
|
|
117
120
|
```
|
|
118
121
|
|
|
119
|
-
instead of
|
|
122
|
+
instead of
|
|
120
123
|
|
|
121
124
|
```
|
|
122
125
|
@cplace/mcp-server@latest
|
|
@@ -148,10 +151,10 @@ The following configuration properties must be set for API Token authentication
|
|
|
148
151
|
## Usage
|
|
149
152
|
|
|
150
153
|
1. Obtain an API Token for your cplace system (see [cplace documentation](https://docs.cplace.io/lowcode/low-code-cli/authentication/))
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
154
|
+
* Navigate to your user profile in cplace
|
|
155
|
+
* Click on "Action" -> "View my API Tokens" 
|
|
156
|
+
* Create a new API Token
|
|
157
|
+
* Copy the token value 
|
|
155
158
|
2. Configure your credentials (see Installation section above)
|
|
156
159
|
3. If Claude Desktop is running, close it
|
|
157
160
|
4. Add the MCP server configuration to Claude Desktop
|
|
@@ -204,16 +207,16 @@ If you're using a local MCP server installation, you can downgrade to match the
|
|
|
204
207
|
Example for Claude Desktop:
|
|
205
208
|
```json
|
|
206
209
|
{
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
210
|
+
"mcpServers": {
|
|
211
|
+
"cplace": {
|
|
212
|
+
"command": "npx",
|
|
213
|
+
"args": ["--ignore-existing", "-y", "@cplace/mcp-server@1.0.2"],
|
|
214
|
+
"env": {
|
|
215
|
+
"CPLACE_URL": "https://your-cplace-instance.com/your-tenant",
|
|
216
|
+
"API_TOKEN": "your-api-token"
|
|
217
|
+
}
|
|
214
218
|
}
|
|
215
|
-
|
|
216
|
-
}
|
|
219
|
+
}
|
|
217
220
|
}
|
|
218
221
|
```
|
|
219
222
|
|
|
@@ -243,16 +246,16 @@ The MCP server will automatically upgrade to the latest version on the next rest
|
|
|
243
246
|
Example for Claude Desktop (auto-upgrade to latest):
|
|
244
247
|
```json
|
|
245
248
|
{
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
249
|
+
"mcpServers": {
|
|
250
|
+
"cplace": {
|
|
251
|
+
"command": "npx",
|
|
252
|
+
"args": ["--ignore-existing", "-y", "@cplace/mcp-server@latest"],
|
|
253
|
+
"env": {
|
|
254
|
+
"CPLACE_URL": "https://your-cplace-instance.com/your-tenant",
|
|
255
|
+
"API_TOKEN": "your-api-token"
|
|
256
|
+
}
|
|
253
257
|
}
|
|
254
|
-
|
|
255
|
-
}
|
|
258
|
+
}
|
|
256
259
|
}
|
|
257
260
|
```
|
|
258
261
|
|
|
@@ -260,7 +263,38 @@ Close and reopen Claude Desktop to apply the changes, then run the version check
|
|
|
260
263
|
|
|
261
264
|
## Changing the cplace System
|
|
262
265
|
|
|
263
|
-
|
|
266
|
+
There are two approaches for working with multiple cplace systems:
|
|
267
|
+
|
|
268
|
+
**Option A: Edit and restart**
|
|
269
|
+
Update the `CPLACE_URL` and/or `API_TOKEN` values in the Claude Desktop configuration, then close & reopen Claude Desktop.
|
|
270
|
+
|
|
271
|
+
**Option B: Multiple labeled entries (recommended for frequent switching)**
|
|
272
|
+
Define a separate entry per system under `mcpServers`, each with a distinct key (e.g., `cplace-dev`, `cplace-prod`). Disable unused entries by removing them or commenting them out — Claude Desktop does not support disabling entries without removing them from the config.
|
|
273
|
+
|
|
274
|
+
```json
|
|
275
|
+
{
|
|
276
|
+
"mcpServers": {
|
|
277
|
+
"cplace-dev": {
|
|
278
|
+
"command": "npx",
|
|
279
|
+
"args": ["--ignore-existing", "-y", "@cplace/mcp-server@latest"],
|
|
280
|
+
"env": {
|
|
281
|
+
"CPLACE_URL": "https://dev.cplace.io/tenant",
|
|
282
|
+
"API_TOKEN": "dev-token"
|
|
283
|
+
}
|
|
284
|
+
},
|
|
285
|
+
"cplace-prod": {
|
|
286
|
+
"command": "npx",
|
|
287
|
+
"args": ["--ignore-existing", "-y", "@cplace/mcp-server@latest"],
|
|
288
|
+
"env": {
|
|
289
|
+
"CPLACE_URL": "https://prod.cplace.io/tenant",
|
|
290
|
+
"API_TOKEN": "prod-token"
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
Keep only the entry for the system you are currently working with active. Remove or comment out the others to avoid loading unused tools into Claude's context.
|
|
264
298
|
|
|
265
299
|
## Profile System
|
|
266
300
|
|
|
@@ -463,6 +497,10 @@ Schedule analysis and cross-schedule dependencies.
|
|
|
463
497
|
|
|
464
498
|
- `cplace_get_schedule_links` - Get schedule dependencies and links between work packages
|
|
465
499
|
|
|
500
|
+
## Troubleshooting
|
|
501
|
+
|
|
502
|
+
For common issues and solutions, see [TROUBLESHOOTING.md](TROUBLESHOOTING.md).
|
|
503
|
+
|
|
466
504
|
## Development
|
|
467
505
|
|
|
468
506
|
For development setup, contribution guidelines, and extending the server, see [DEVELOPMENT.md](DEVELOPMENT.md).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional-registration.d.ts","sourceRoot":"","sources":["../src/conditional-registration.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"conditional-registration.d.ts","sourceRoot":"","sources":["../src/conditional-registration.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAqE3C,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,eAAe,EACvB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GACxB,IAAI,CAeN"}
|
|
@@ -27,6 +27,7 @@ import { registerBoardWidgetTools } from './tools/board-widget.js';
|
|
|
27
27
|
import { registerUrlResolutionTools } from './tools/url-resolution.js';
|
|
28
28
|
import { registerLayoutTools } from './tools/layout.js';
|
|
29
29
|
import { registerSolutionPackageTools } from './tools/solution-packages.js';
|
|
30
|
+
import { registerLintingTools } from './tools/linting.js';
|
|
30
31
|
const MODULE_REGISTRY = {
|
|
31
32
|
'workspace-core': registerWorkspaceCoreTools,
|
|
32
33
|
'workspace-admin': registerWorkspaceAdminTools,
|
|
@@ -54,7 +55,8 @@ const MODULE_REGISTRY = {
|
|
|
54
55
|
'board-widget': registerBoardWidgetTools,
|
|
55
56
|
'url-resolution': registerUrlResolutionTools,
|
|
56
57
|
'layout': registerLayoutTools,
|
|
57
|
-
'solution-packages': registerSolutionPackageTools
|
|
58
|
+
'solution-packages': registerSolutionPackageTools,
|
|
59
|
+
'linting': registerLintingTools,
|
|
58
60
|
};
|
|
59
61
|
export function registerActiveTools(server, client, activeGroups) {
|
|
60
62
|
const requiredModules = getRequiredModules(activeGroups);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional-registration.js","sourceRoot":"","sources":["../src/conditional-registration.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,mCAAmC,EAAE,MAAM,sCAAsC,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"conditional-registration.js","sourceRoot":"","sources":["../src/conditional-registration.ts"],"names":[],"mappings":"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"}
|
package/dist/linter.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface LintMessage {
|
|
2
|
+
line: number;
|
|
3
|
+
column: number;
|
|
4
|
+
severity: 'error' | 'warning';
|
|
5
|
+
message: string;
|
|
6
|
+
ruleId: string | null;
|
|
7
|
+
}
|
|
8
|
+
export interface LintResult {
|
|
9
|
+
errors: LintMessage[];
|
|
10
|
+
warnings: LintMessage[];
|
|
11
|
+
summary: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function lintScript(script: string): LintResult;
|
|
14
|
+
//# sourceMappingURL=linter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../src/linter.ts"],"names":[],"mappings":"AA+FA,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACvB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACnB;AAgCD,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CASrD"}
|
package/dist/linter.js
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { Linter } from 'eslint';
|
|
2
|
+
const linter = new Linter({ configType: 'flat' });
|
|
3
|
+
const CPLACE_GLOBALS = {
|
|
4
|
+
attributeMappingPage: 'readonly',
|
|
5
|
+
attributeName: 'readonly',
|
|
6
|
+
changeEvent: 'readonly',
|
|
7
|
+
Components: 'readonly',
|
|
8
|
+
context: 'readonly',
|
|
9
|
+
cplace: 'readonly',
|
|
10
|
+
CustomAttributeConditions: 'readonly',
|
|
11
|
+
customAttribute: 'readonly',
|
|
12
|
+
DateTime: 'readonly',
|
|
13
|
+
Days: 'readonly',
|
|
14
|
+
embeddingPage: 'readonly',
|
|
15
|
+
Filters: 'readonly',
|
|
16
|
+
HashSet: 'readonly',
|
|
17
|
+
importValues: 'readonly',
|
|
18
|
+
info: 'readonly',
|
|
19
|
+
interfaceDefinitionPage: 'readonly',
|
|
20
|
+
Iterables: 'readonly',
|
|
21
|
+
jobParameters: 'readonly',
|
|
22
|
+
log: 'readonly',
|
|
23
|
+
messages: 'readonly',
|
|
24
|
+
page: 'readonly',
|
|
25
|
+
pages: 'readonly',
|
|
26
|
+
permissionPropagator: 'readonly',
|
|
27
|
+
report: 'readonly',
|
|
28
|
+
request: 'readonly',
|
|
29
|
+
Search: 'readonly',
|
|
30
|
+
searchResults: 'readonly',
|
|
31
|
+
state: 'readonly',
|
|
32
|
+
wizard: 'readonly',
|
|
33
|
+
writersAssignment: 'readonly',
|
|
34
|
+
additionalData: 'writable',
|
|
35
|
+
selectedActiveLayout: 'writable',
|
|
36
|
+
selectedLayouts: 'writable',
|
|
37
|
+
};
|
|
38
|
+
const CPLACE_RULES = {
|
|
39
|
+
'no-cond-assign': ['error', 'always'],
|
|
40
|
+
'no-const-assign': 'error',
|
|
41
|
+
'no-unsafe-finally': 'off',
|
|
42
|
+
'no-unmodified-loop-condition': 'error',
|
|
43
|
+
'no-unreachable-loop': 'error',
|
|
44
|
+
'no-use-before-define': ['error', { functions: false }],
|
|
45
|
+
'block-scoped-var': 'error',
|
|
46
|
+
'camelcase': ['error', { ignoreGlobals: true }],
|
|
47
|
+
'no-mixed-operators': 'error',
|
|
48
|
+
'no-param-reassign': 'error',
|
|
49
|
+
'no-useless-return': 'error',
|
|
50
|
+
'curly': 'error',
|
|
51
|
+
'no-var': 'error',
|
|
52
|
+
'prefer-const': 'warn',
|
|
53
|
+
'no-duplicate-imports': 'error',
|
|
54
|
+
'no-console': 'warn',
|
|
55
|
+
'no-debugger': 'warn',
|
|
56
|
+
'no-unused-vars': ['error', {
|
|
57
|
+
varsIgnorePattern: '^_',
|
|
58
|
+
argsIgnorePattern: '^_',
|
|
59
|
+
caughtErrorsIgnorePattern: '^_',
|
|
60
|
+
}],
|
|
61
|
+
};
|
|
62
|
+
const CPLACE_CONFIG = [
|
|
63
|
+
{
|
|
64
|
+
languageOptions: {
|
|
65
|
+
ecmaVersion: 'latest',
|
|
66
|
+
sourceType: 'commonjs',
|
|
67
|
+
parserOptions: {
|
|
68
|
+
ecmaFeatures: { globalReturn: true },
|
|
69
|
+
},
|
|
70
|
+
globals: CPLACE_GLOBALS,
|
|
71
|
+
},
|
|
72
|
+
rules: CPLACE_RULES,
|
|
73
|
+
},
|
|
74
|
+
];
|
|
75
|
+
function toLintMessage(msg) {
|
|
76
|
+
return {
|
|
77
|
+
line: msg.line,
|
|
78
|
+
column: msg.column,
|
|
79
|
+
severity: msg.severity === 2 ? 'error' : 'warning',
|
|
80
|
+
message: msg.message,
|
|
81
|
+
ruleId: msg.ruleId,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
function formatSummary(errors, warnings) {
|
|
85
|
+
if (errors.length === 0 && warnings.length === 0) {
|
|
86
|
+
return 'No lint issues found.';
|
|
87
|
+
}
|
|
88
|
+
const lines = [];
|
|
89
|
+
if (errors.length > 0) {
|
|
90
|
+
lines.push(`${errors.length} error(s):`);
|
|
91
|
+
for (const e of errors) {
|
|
92
|
+
lines.push(` Line ${e.line}:${e.column} — ${e.message} (${e.ruleId})`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
if (warnings.length > 0) {
|
|
96
|
+
lines.push(`${warnings.length} warning(s):`);
|
|
97
|
+
for (const w of warnings) {
|
|
98
|
+
lines.push(` Line ${w.line}:${w.column} — ${w.message} (${w.ruleId})`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return lines.join('\n');
|
|
102
|
+
}
|
|
103
|
+
export function lintScript(script) {
|
|
104
|
+
const messages = linter.verify(script, CPLACE_CONFIG);
|
|
105
|
+
const errors = messages.filter(m => m.severity === 2).map(toLintMessage);
|
|
106
|
+
const warnings = messages.filter(m => m.severity === 1).map(toLintMessage);
|
|
107
|
+
return {
|
|
108
|
+
errors,
|
|
109
|
+
warnings,
|
|
110
|
+
summary: formatSummary(errors, warnings),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=linter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linter.js","sourceRoot":"","sources":["../src/linter.ts"],"names":[],"mappings":"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"}
|
package/dist/profiles.js
CHANGED
|
@@ -23,7 +23,7 @@ export const TOOL_GROUPS = {
|
|
|
23
23
|
},
|
|
24
24
|
'low-code': {
|
|
25
25
|
description: "Validators, change listeners, workflow management, script logs, script execution, and job monitoring",
|
|
26
|
-
modules: ['validators', 'change-listeners', 'workflow', 'workflow-scripts', 'script-logs', 'script']
|
|
26
|
+
modules: ['validators', 'change-listeners', 'workflow', 'workflow-scripts', 'script-logs', 'script', 'linting']
|
|
27
27
|
},
|
|
28
28
|
'jobs': {
|
|
29
29
|
description: "Job monitoring",
|
package/dist/profiles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../src/profiles.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAWrD,MAAM,CAAC,MAAM,WAAW,GAA8B;IACpD,IAAI,EAAE;QACJ,WAAW,EAAE,qGAAqG;QAClH,OAAO,EAAE,CAAC,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,CAAC;KAC1G;IACD,iBAAiB,EAAE;QACjB,WAAW,EAAE,uCAAuC;QACpD,OAAO,EAAE,CAAC,iBAAiB,CAAC;KAC7B;IACD,YAAY,EAAE;QACZ,WAAW,EAAE,0BAA0B;QACvC,OAAO,EAAE,CAAC,YAAY,CAAC;KACxB;IACD,OAAO,EAAE;QACP,WAAW,EAAE,oIAAoI;QACjJ,OAAO,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,cAAc,EAAE,QAAQ,CAAC;KAClH;IACD,aAAa,EAAE;QACb,WAAW,EAAE,+BAA+B;QAC5C,OAAO,EAAE,CAAC,iBAAiB,CAAC;KAC7B;IACD,UAAU,EAAE;QACV,WAAW,EAAE,sGAAsG;QACnH,OAAO,EAAE,CAAC,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../src/profiles.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAWrD,MAAM,CAAC,MAAM,WAAW,GAA8B;IACpD,IAAI,EAAE;QACJ,WAAW,EAAE,qGAAqG;QAClH,OAAO,EAAE,CAAC,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,CAAC;KAC1G;IACD,iBAAiB,EAAE;QACjB,WAAW,EAAE,uCAAuC;QACpD,OAAO,EAAE,CAAC,iBAAiB,CAAC;KAC7B;IACD,YAAY,EAAE;QACZ,WAAW,EAAE,0BAA0B;QACvC,OAAO,EAAE,CAAC,YAAY,CAAC;KACxB;IACD,OAAO,EAAE;QACP,WAAW,EAAE,oIAAoI;QACjJ,OAAO,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,cAAc,EAAE,QAAQ,CAAC;KAClH;IACD,aAAa,EAAE;QACb,WAAW,EAAE,+BAA+B;QAC5C,OAAO,EAAE,CAAC,iBAAiB,CAAC;KAC7B;IACD,UAAU,EAAE;QACV,WAAW,EAAE,sGAAsG;QACnH,OAAO,EAAE,CAAC,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC;KAChH;IACD,MAAM,EAAE;QACN,WAAW,EAAE,gBAAgB;QAC7B,OAAO,EAAE,CAAC,MAAM,CAAC;KAClB;IACD,YAAY,EAAE;QACZ,WAAW,EAAE,mBAAmB;QAChC,OAAO,EAAE,CAAC,YAAY,CAAC;KACxB;IACD,OAAO,EAAE;QACP,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE,CAAC,iBAAiB,CAAC;KAC7B;IACD,QAAQ,EAAE;QACR,WAAW,EAAE,mDAAmD;QAChE,OAAO,EAAE,CAAC,UAAU,CAAC;KACtB;IACD,mBAAmB,EAAE;QACnB,WAAW,EAAE,4CAA4C;QACzD,OAAO,EAAE,CAAC,mBAAmB,CAAC;KAC/B;CACF,CAAC;AAeF,MAAM,UAAU,aAAa,CAC3B,IAAc,EACd,QAAiB,EACjB,SAAkB;IAElB,eAAe,CAAC,UAAU,EAAE,mCAAmC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvF,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAGvC,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC1B,MAAM,gBAAgB,GAAG,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC5D,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAEpD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;YACvE,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,CAAC,IAAI,CACV,sEAAsE,cAAc,MAAM;oBAC1F,sCAAsC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;oBACrE,qFAAqF;oBACrF,2EAA2E,CAC5E,CAAC;YACJ,CAAC;YAED,eAAe,CAAC,UAAU,EAAE,+BAA+B,SAAS,KAAK,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAGxG,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;gBACnE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;gBACvE,OAAO,YAAY,CAAC;YACtB,CAAC;YAED,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACjC,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;oBACzB,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,eAAe,CAAC,UAAU,EAAE,wDAAwD,OAAO,cAAc,CAAC,CAAC;gBAC7G,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,eAAe,CAAC,UAAU,EAAE,kCAAkC,SAAS,EAAE,CAAC,CAAC;IAC7E,CAAC;IAGD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpE,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAGhD,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YACvE,eAAe,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;YACzD,OAAO,YAAY,CAAC;QACtB,CAAC;QAGD,MAAM,QAAQ,GAAG,aAAa;aAC3B,KAAK,CAAC,MAAM,CAAC;aACb,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAC5B,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAG5B,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAGzB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,eAAe,CAAC,UAAU,EAAE,6BAA6B,OAAO,cAAc,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QAED,eAAe,CAAC,UAAU,EAAE,QAAQ,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3E,OAAO,YAAY,CAAC;IACtB,CAAC;IAGD,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,eAAe,CAAC,UAAU,EAAE,+BAA+B,CAAC,CAAC;IAC7D,OAAO,YAAY,CAAC;AACtB,CAAC;AAKD,MAAM,UAAU,kBAAkB,CAAC,YAAyB;IAC1D,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAE1C,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QACzC,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAC/B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-metadata.d.ts","sourceRoot":"","sources":["../src/tool-metadata.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tool-metadata.d.ts","sourceRoot":"","sources":["../src/tool-metadata.ts"],"names":[],"mappings":"AAkCA,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAwBvE,CAAC"}
|
package/dist/tool-metadata.js
CHANGED
|
@@ -20,6 +20,7 @@ import { GET_OPERATIONS_TOOL_DEFINITIONS } from './tools/get-operations.js';
|
|
|
20
20
|
import { JOBS_TOOL_DEFINITIONS } from './tools/jobs.js';
|
|
21
21
|
import { LAYOUT_TOOL_DEFINITIONS } from './tools/layout.js';
|
|
22
22
|
import { SOLUTION_PACKAGE_TOOL_DEFINITIONS } from './tools/solution-packages.js';
|
|
23
|
+
import { LINTING_TOOL_DEFINITIONS } from './tools/linting.js';
|
|
23
24
|
export const MODULE_TOOL_DEFINITIONS = {
|
|
24
25
|
'profile-management': PROFILE_MANAGEMENT_TOOL_DEFINITIONS,
|
|
25
26
|
'workspace-core': WORKSPACE_CORE_TOOL_DEFINITIONS,
|
|
@@ -42,6 +43,7 @@ export const MODULE_TOOL_DEFINITIONS = {
|
|
|
42
43
|
'get-operations': GET_OPERATIONS_TOOL_DEFINITIONS,
|
|
43
44
|
'jobs': JOBS_TOOL_DEFINITIONS,
|
|
44
45
|
'layout': LAYOUT_TOOL_DEFINITIONS,
|
|
45
|
-
'solution-packages': SOLUTION_PACKAGE_TOOL_DEFINITIONS
|
|
46
|
+
'solution-packages': SOLUTION_PACKAGE_TOOL_DEFINITIONS,
|
|
47
|
+
'linting': LINTING_TOOL_DEFINITIONS,
|
|
46
48
|
};
|
|
47
49
|
//# sourceMappingURL=tool-metadata.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-metadata.js","sourceRoot":"","sources":["../src/tool-metadata.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mCAAmC,EAAE,MAAM,+BAA+B,CAAC;AACpF,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,kCAAkC,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,iCAAiC,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-metadata.js","sourceRoot":"","sources":["../src/tool-metadata.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mCAAmC,EAAE,MAAM,+BAA+B,CAAC;AACpF,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,kCAAkC,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,iCAAiC,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAM9D,MAAM,CAAC,MAAM,uBAAuB,GAAwC;IAC1E,oBAAoB,EAAE,mCAAmC;IACzD,gBAAgB,EAAE,+BAA+B;IACjD,iBAAiB,EAAE,gCAAgC;IACnD,OAAO,EAAE,qBAAqB;IAC9B,YAAY,EAAE,0BAA0B;IACxC,YAAY,EAAE,2BAA2B;IACzC,UAAU,EAAE,yBAAyB;IACrC,OAAO,EAAE,qBAAqB;IAC9B,QAAQ,EAAE,uBAAuB;IACjC,iBAAiB,EAAE,gCAAgC;IACnD,YAAY,EAAE,0BAA0B;IACxC,kBAAkB,EAAE,gCAAgC;IACpD,YAAY,EAAE,2BAA2B;IACzC,SAAS,EAAE,uBAAuB;IAClC,cAAc,EAAE,4BAA4B;IAC5C,oBAAoB,EAAE,kCAAkC;IACxD,iBAAiB,EAAE,gCAAgC;IACnD,UAAU,EAAE,yBAAyB;IACrC,gBAAgB,EAAE,+BAA+B;IACjD,MAAM,EAAE,qBAAqB;IAC7B,QAAQ,EAAE,uBAAuB;IACjC,mBAAmB,EAAE,iCAAiC;IACtD,SAAS,EAAE,wBAAwB;CACpC,CAAC"}
|
|
@@ -128,11 +128,11 @@ Most values are wrapped in single-element arrays:
|
|
|
128
128
|
- String: {"title": ["My Widget"]}
|
|
129
129
|
- Number: {"height": [800]}
|
|
130
130
|
- Boolean: {"showFooter": [true]}
|
|
131
|
-
- Complex JSON: {"config": ["{
|
|
131
|
+
- Complex JSON: {"config": ["{\\"key\\": \\"value\\"}"]}
|
|
132
132
|
|
|
133
133
|
EXCEPTIONS — these types must NOT be array-wrapped:
|
|
134
134
|
- LocalizedString: pass as plain map → {"localizedHeading": {"en": "Title", "de": "Titel"}}
|
|
135
|
-
- Search definitions: pass as plain JSON string → {"search": "{
|
|
135
|
+
- Search definitions: pass as plain JSON string → {"search": "{\\"filters\\":{...}}"}
|
|
136
136
|
|
|
137
137
|
When unsure whether a property accepts an array wrapper, call cplace_get_widget_definition to check the property type.`)
|
|
138
138
|
},
|
|
@@ -155,7 +155,7 @@ Most values are wrapped in single-element arrays:
|
|
|
155
155
|
|
|
156
156
|
EXCEPTIONS — these types must NOT be array-wrapped:
|
|
157
157
|
- LocalizedString: pass as plain map → {"localizedHeading": {"en": "Title", "de": "Titel"}}
|
|
158
|
-
- Search definitions: pass as plain JSON string → {"search": "{
|
|
158
|
+
- Search definitions: pass as plain JSON string → {"search": "{\\"filters\\":{...}}"}
|
|
159
159
|
|
|
160
160
|
When unsure whether a property accepts an array wrapper, call cplace_get_widget_definition to check the property type.`)
|
|
161
161
|
},
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { CplaceApiClient } from '../api.js';
|
|
4
|
+
export declare const LINTING_TOOL_DEFINITIONS: {
|
|
5
|
+
readonly cplace_lint_script: {
|
|
6
|
+
readonly description: "Lint a cplace low-code script (change listener, validator, or workflow script) using the cplace ESLint rules. Returns errors and warnings. Does not modify the script. Use this to check script quality before or after saving.";
|
|
7
|
+
readonly inputSchema: {
|
|
8
|
+
readonly script: z.ZodString;
|
|
9
|
+
};
|
|
10
|
+
readonly annotations: {
|
|
11
|
+
readonly title: "Lint cplace Script";
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export declare function registerLintingTools(server: McpServer, _client: CplaceApiClient): void;
|
|
16
|
+
//# sourceMappingURL=linting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linting.d.ts","sourceRoot":"","sources":["../../src/tools/linting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAI5C,eAAO,MAAM,wBAAwB;;;;;;;;;;CAQ3B,CAAC;AAEX,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,QAW/E"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { lintScript } from '../linter.js';
|
|
3
|
+
const TOOL_LINT_SCRIPT = 'cplace_lint_script';
|
|
4
|
+
export const LINTING_TOOL_DEFINITIONS = {
|
|
5
|
+
[TOOL_LINT_SCRIPT]: {
|
|
6
|
+
description: "Lint a cplace low-code script (change listener, validator, or workflow script) using the cplace ESLint rules. Returns errors and warnings. Does not modify the script. Use this to check script quality before or after saving.",
|
|
7
|
+
inputSchema: {
|
|
8
|
+
script: z.string().describe("The full JavaScript source code of the cplace script to lint"),
|
|
9
|
+
},
|
|
10
|
+
annotations: { title: "Lint cplace Script" },
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
export function registerLintingTools(server, _client) {
|
|
14
|
+
server.registerTool(TOOL_LINT_SCRIPT, LINTING_TOOL_DEFINITIONS[TOOL_LINT_SCRIPT], async ({ script }) => {
|
|
15
|
+
const result = lintScript(script);
|
|
16
|
+
return {
|
|
17
|
+
content: [{ type: "text", text: result.summary }],
|
|
18
|
+
};
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=linting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linting.js","sourceRoot":"","sources":["../../src/tools/linting.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAE9C,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACpC,CAAC,gBAAgB,CAAC,EAAE;QAChB,WAAW,EAAE,iOAAiO;QAC9O,WAAW,EAAE;YACT,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;SAC9F;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;KAC/C;CACK,CAAC;AAEX,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,OAAwB;IAC5E,MAAM,CAAC,YAAY,CACf,gBAAgB,EAChB,wBAAwB,CAAC,gBAAgB,CAAC,EAC1C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACjB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;SAC7D,CAAC;IACN,CAAC,CACJ,CAAC;AACN,CAAC"}
|
|
@@ -31,11 +31,11 @@ Most values are wrapped in single-element arrays:
|
|
|
31
31
|
- String: {"title": ["My Widget"]}
|
|
32
32
|
- Number: {"height": [800]}
|
|
33
33
|
- Boolean: {"showFooter": [true]}
|
|
34
|
-
- Complex JSON: {"config": ["{
|
|
34
|
+
- Complex JSON: {"config": ["{\\"key\\": \\"value\\"}"]}
|
|
35
35
|
|
|
36
36
|
EXCEPTIONS — these types must NOT be array-wrapped:
|
|
37
37
|
- LocalizedString: pass as plain map → {"localizedHeading": {"en": "Title", "de": "Titel"}}
|
|
38
|
-
- Search definitions: pass as plain JSON string → {"search": "{
|
|
38
|
+
- Search definitions: pass as plain JSON string → {"search": "{\\"filters\\":{...}}"}
|
|
39
39
|
|
|
40
40
|
When unsure whether a property accepts an array wrapper, call cplace_get_widget_definition to check the property type.`)
|
|
41
41
|
},
|
|
@@ -55,11 +55,11 @@ Most values are wrapped in single-element arrays:
|
|
|
55
55
|
- String: {"title": ["Updated Widget"]}
|
|
56
56
|
- Number: {"height": [900]}
|
|
57
57
|
- Boolean: {"showFooter": [true]}
|
|
58
|
-
- Complex JSON: {"config": ["{
|
|
58
|
+
- Complex JSON: {"config": ["{\\"key\\": \\"value\\"}"]}
|
|
59
59
|
|
|
60
60
|
EXCEPTIONS — these types must NOT be array-wrapped:
|
|
61
61
|
- LocalizedString: pass as plain map → {"localizedHeading": {"en": "Title", "de": "Titel"}}
|
|
62
|
-
- Search definitions: pass as plain JSON string → {"search": "{
|
|
62
|
+
- Search definitions: pass as plain JSON string → {"search": "{\\"filters\\":{...}}"}
|
|
63
63
|
|
|
64
64
|
When unsure whether a property accepts an array wrapper, call cplace_get_widget_definition to check the property type.`)
|
|
65
65
|
},
|
package/dist/widget-specifications/_research_from_ga_products/cf-cplace-treeTableWidget/research.md
CHANGED
|
@@ -62,6 +62,7 @@ The `cf.cplace.treeTableWidget` is a concrete implementation of the platform's a
|
|
|
62
62
|
- Create dashboard pages with hierarchical navigation
|
|
63
63
|
- Provide overview pages showing entire page structures
|
|
64
64
|
- Serve as entry points to complex information architectures
|
|
65
|
+
- Place on type layout pages where the embedding page is a concrete data instance
|
|
65
66
|
|
|
66
67
|
### When to Use This Widget:
|
|
67
68
|
|
|
@@ -385,6 +386,7 @@ src/main/resources/
|
|
|
385
386
|
2. **Single Hierarchy**: Uses one parent attribute at a time (no multiple relationship types)
|
|
386
387
|
3. **Platform Rendering**: Limited to platform's rendering capabilities (can't customize without TypeScript)
|
|
387
388
|
4. **Error Handling**: Throws `TreeUnconstructableException` if embedded in a TypeDefinition page
|
|
389
|
+
5. **Dashboard limitation without explicit root**: Root node resolves as: (1) connected table selection, (2) configured `rootNode`, (3) embedding page fallback. On dashboards without a configured root, the fallback uses the dashboard page — which has no hierarchy children — resulting in a single empty row. Configure an explicit `rootNode` to use on dashboards, or prefer `cf.platform.embeddedSearchAsTable` with grouping.
|
|
388
390
|
|
|
389
391
|
### Best Practices:
|
|
390
392
|
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Represents a dynamically generated code block with content defined using cplaceJS. The widget displays formatted code snippets with syntax highlighting, where the code content is generated dynamically through a cplaceJS script. This widget is useful for showing code examples, configuration snippets, or any text content that benefits from code formatting, with the content determined at runtime based on page data or other dynamic criteria.
|
|
4
4
|
|
|
5
|
+
> **Text-only rendering**: This widget renders content as **plain text** inside `<pre><code>` using `ng-bind` (equivalent to `textContent`). It does **not** render HTML. Any HTML tags in the script return value are displayed as literal text, not rendered. For scripted HTML output (KPI cards, pivot tables, dynamic banners, formatted content), use the **Low-Code Text** widget (`cf.cplace.lowCodeWidgets.lowCodeText`) embedded inside a **Rich String** or **Text without Widget Frame** container.
|
|
6
|
+
|
|
5
7
|
**Use when you need to:**
|
|
6
8
|
- Display code examples or snippets that change based on page context
|
|
7
9
|
- Show dynamically generated configuration files or scripts
|
|
@@ -10,7 +12,7 @@ Represents a dynamically generated code block with content defined using cplaceJ
|
|
|
10
12
|
|
|
11
13
|
**Alternatives:**
|
|
12
14
|
- **Rich Text Widget** - For static code blocks or when content doesn't need to be generated dynamically
|
|
13
|
-
- **Low-Code Text Widget** - For
|
|
15
|
+
- **Low-Code Text Widget** (`cf.cplace.lowCodeWidgets.lowCodeText`) - For scripted HTML output rendered inline within a rich string container
|
|
14
16
|
|
|
15
17
|
## Operating Modes
|
|
16
18
|
|
|
@@ -40,6 +42,7 @@ Use the Dynamic Code Block when:
|
|
|
40
42
|
|
|
41
43
|
Avoid when:
|
|
42
44
|
- The code content is static and doesn't change (use Rich Text instead)
|
|
45
|
+
- You need rendered HTML output such as KPI cards, formatted tables, or styled content (use Low-Code Text embedded in a Rich String instead)
|
|
43
46
|
- You need user interaction with the code (editing, copying with click)
|
|
44
47
|
- The output is better suited to table or structured display
|
|
45
48
|
- Performance is critical and the script is computationally expensive
|
|
@@ -53,6 +53,7 @@ This widget can **only** be embedded inside rich string widgets. It cannot be pl
|
|
|
53
53
|
## Design Considerations
|
|
54
54
|
|
|
55
55
|
### When to Use This Widget
|
|
56
|
+
- You need scripted HTML output — this is the correct widget for rendering HTML from cplaceJS scripts (not `dynamicCodeBlockWidget`, which is text-only)
|
|
56
57
|
- You need dynamic, script-computed content within a rich text layout
|
|
57
58
|
- The content should update reactively based on connected table interactions
|
|
58
59
|
- You want inline computed values (metrics, status text, formatted data) mixed with static rich text
|
|
@@ -19,7 +19,10 @@ Show document folder structures and content hierarchies such as chapters, sectio
|
|
|
19
19
|
Display product hierarchies, component breakdowns, and system architectures. Navigate through technical structures and dependencies.
|
|
20
20
|
|
|
21
21
|
### Navigation and Overview Pages
|
|
22
|
-
|
|
22
|
+
Provide overview pages showing entire page structures and serve as entry points to complex information architectures. Place this widget on type layout pages where the embedding page is a concrete data instance with hierarchy relationships.
|
|
23
|
+
|
|
24
|
+
### Limitations
|
|
25
|
+
- **Not suitable for dashboards without explicit root node configuration**: The widget resolves its root node in priority order: (1) connected table selection, (2) explicitly configured `rootNode`, (3) embedding page fallback. On a dashboard page without a configured root node, the fallback uses the dashboard page itself as root. Since no data pages reference the dashboard page through hierarchy attributes, the tree shows only the dashboard page as a single empty row. To use this widget on a dashboard, configure an explicit `rootNode` — or prefer `cf.platform.embeddedSearchAsTable` with grouping for dashboard-based hierarchical views.
|
|
23
26
|
|
|
24
27
|
## Design Considerations
|
|
25
28
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cplace/mcp-server",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.2",
|
|
4
4
|
"description": "MCP server that provides Claude Desktop with tools to interact with cplace APIs",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"start:dev": "node dist/index.js --remote",
|
|
16
16
|
"test": "vitest",
|
|
17
17
|
"clean": "rm -rf dist",
|
|
18
|
-
"lint": "eslint src
|
|
18
|
+
"lint": "eslint src/**/*.ts",
|
|
19
19
|
"format": "prettier --write src/**/*.ts",
|
|
20
20
|
"prepare": "npm run clean && npm run build"
|
|
21
21
|
},
|
|
@@ -46,11 +46,13 @@
|
|
|
46
46
|
"node": ">=18.0.0"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
+
"@eslint/js": "^9.28.0",
|
|
49
50
|
"@modelcontextprotocol/sdk": "^1.17.4",
|
|
50
51
|
"axios": "^1.6.0",
|
|
51
52
|
"cors": "^2.8.5",
|
|
52
53
|
"dot-prop": "^8.0.2",
|
|
53
54
|
"dotenv": "^16.3.0",
|
|
55
|
+
"eslint": "^9.28.0",
|
|
54
56
|
"express": "^5.1.0",
|
|
55
57
|
"semver": "^7.6.0",
|
|
56
58
|
"zod": "^3.25.67"
|
|
@@ -59,12 +61,11 @@
|
|
|
59
61
|
"@types/cors": "^2.8.19",
|
|
60
62
|
"@types/express": "^5.0.3",
|
|
61
63
|
"@types/node": "^20.0.0",
|
|
62
|
-
"@
|
|
63
|
-
"@typescript-eslint/parser": "^6.0.0",
|
|
64
|
-
"eslint": "^8.0.0",
|
|
64
|
+
"@types/semver": "^7.5.0",
|
|
65
65
|
"prettier": "^3.0.0",
|
|
66
66
|
"tsx": "^4.0.0",
|
|
67
67
|
"typescript": "^5.5.0",
|
|
68
|
+
"typescript-eslint": "^8.33.1",
|
|
68
69
|
"vitest": "^1.0.0"
|
|
69
70
|
}
|
|
70
71
|
}
|