241 lines
6.5 KiB
JSON
241 lines
6.5 KiB
JSON
{
|
|
"name": "codesys-mcp-companion",
|
|
"displayName": "CODESYS MCP Companion",
|
|
"description": "VS Code/Cursor companion extension for CODESYS MCP bridge workflows.",
|
|
"version": "0.1.0",
|
|
"publisher": "nearxos",
|
|
"private": true,
|
|
"engines": {
|
|
"vscode": "^1.90.0"
|
|
},
|
|
"categories": [
|
|
"Other",
|
|
"Programming Languages"
|
|
],
|
|
"activationEvents": [
|
|
"onStartupFinished",
|
|
"onCommand:codesys.connect",
|
|
"onCommand:codesys.health",
|
|
"onCommand:codesys.createProject",
|
|
"onCommand:codesys.syncProject",
|
|
"onCommand:codesys.buildProject",
|
|
"onCommand:codesys.downloadToDevice"
|
|
],
|
|
"main": "./out/extension.js",
|
|
"contributes": {
|
|
"commands": [
|
|
{
|
|
"command": "codesys.connect",
|
|
"title": "CODESYS: Connect MCP Bridge"
|
|
},
|
|
{
|
|
"command": "codesys.health",
|
|
"title": "CODESYS: Health Check"
|
|
},
|
|
{
|
|
"command": "codesys.createProject",
|
|
"title": "CODESYS: Create Project"
|
|
},
|
|
{
|
|
"command": "codesys.selectProject",
|
|
"title": "CODESYS: Select Project"
|
|
},
|
|
{
|
|
"command": "codesys.stageExistingProject",
|
|
"title": "CODESYS: Stage Existing Project"
|
|
},
|
|
{
|
|
"command": "codesys.readProjectInventory",
|
|
"title": "CODESYS: Read Project Inventory"
|
|
},
|
|
{
|
|
"command": "codesys.readDeviceIo",
|
|
"title": "CODESYS: Read Device I/O"
|
|
},
|
|
{
|
|
"command": "codesys.writePou",
|
|
"title": "CODESYS: Write POU"
|
|
},
|
|
{
|
|
"command": "codesys.writeIoMapping",
|
|
"title": "CODESYS: Write IO Mapping"
|
|
},
|
|
{
|
|
"command": "codesys.manageDevice",
|
|
"title": "CODESYS: Manage Device"
|
|
},
|
|
{
|
|
"command": "codesys.syncProject",
|
|
"title": "CODESYS: Sync Project"
|
|
},
|
|
{
|
|
"command": "codesys.buildProject",
|
|
"title": "CODESYS: Build Project"
|
|
},
|
|
{
|
|
"command": "codesys.downloadToDevice",
|
|
"title": "CODESYS: Download To Device"
|
|
},
|
|
{
|
|
"command": "codesys.refreshJobs",
|
|
"title": "CODESYS: Refresh Jobs"
|
|
},
|
|
{
|
|
"command": "codesys.openOutput",
|
|
"title": "CODESYS: Open Output"
|
|
},
|
|
{
|
|
"command": "codesys.syncCurrentFile",
|
|
"title": "CODESYS: Sync Current ST File"
|
|
}
|
|
],
|
|
"configuration": {
|
|
"title": "CODESYS MCP Companion",
|
|
"properties": {
|
|
"codesys.pythonPath": {
|
|
"type": "string",
|
|
"default": "python",
|
|
"description": "Python executable used to launch the CODESYS MCP bridge server."
|
|
},
|
|
"codesys.bridgeScriptPath": {
|
|
"type": "string",
|
|
"default": "",
|
|
"description": "Absolute path to python_scripting/mcp_codesys_bridge/server.py. If empty, default repo-relative path is used."
|
|
},
|
|
"codesys.agentUrl": {
|
|
"type": "string",
|
|
"default": "http://127.0.0.1:8787",
|
|
"description": "Windows CODESYS agent URL passed to MCP bridge."
|
|
},
|
|
"codesys.agentToken": {
|
|
"type": "string",
|
|
"default": "",
|
|
"description": "Windows CODESYS agent shared token."
|
|
},
|
|
"codesys.requestTimeoutSec": {
|
|
"type": "number",
|
|
"default": 30,
|
|
"minimum": 5,
|
|
"description": "CODESYS MCP bridge request timeout in seconds."
|
|
},
|
|
"codesys.pollIntervalMs": {
|
|
"type": "number",
|
|
"default": 1500,
|
|
"minimum": 500,
|
|
"description": "Polling interval for asynchronous job progress."
|
|
},
|
|
"codesys.defaultProjectPath": {
|
|
"type": "string",
|
|
"default": "",
|
|
"description": "Default CODESYS project path used by commands."
|
|
},
|
|
"codesys.defaultDryRunMutations": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Run mutating operations in dry-run mode unless explicitly disabled in command input."
|
|
},
|
|
"codesys.allowDownloadCommand": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Enable UI command for download_to_device."
|
|
},
|
|
"codesys.mockMode": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Use local mocked MCP responses for extension integration testing."
|
|
}
|
|
}
|
|
},
|
|
"viewsContainers": {
|
|
"activitybar": [
|
|
{
|
|
"id": "codesys",
|
|
"title": "CODESYS",
|
|
"icon": "media/codesys.svg"
|
|
}
|
|
]
|
|
},
|
|
"views": {
|
|
"codesys": [
|
|
{
|
|
"id": "codesysProjectsView",
|
|
"name": "Projects"
|
|
},
|
|
{
|
|
"id": "codesysJobsView",
|
|
"name": "Jobs"
|
|
},
|
|
{
|
|
"id": "codesysActionsView",
|
|
"name": "Actions"
|
|
}
|
|
]
|
|
},
|
|
"menus": {
|
|
"editor/context": [
|
|
{
|
|
"command": "codesys.syncCurrentFile",
|
|
"when": "resourceExtname =~ /\\.st$/ || resourceExtname =~ /\\.gvl$/ || resourceExtname =~ /\\.nvl$/ || resourceExtname =~ /\\.txt$/",
|
|
"group": "navigation@90"
|
|
}
|
|
],
|
|
"view/title": [
|
|
{
|
|
"command": "codesys.refreshJobs",
|
|
"when": "view == codesysJobsView",
|
|
"group": "navigation"
|
|
}
|
|
]
|
|
},
|
|
"languages": [
|
|
{
|
|
"id": "codesys-st",
|
|
"aliases": [
|
|
"CODESYS Structured Text",
|
|
"ST"
|
|
],
|
|
"extensions": [
|
|
".st",
|
|
".gvl",
|
|
".nvl",
|
|
".type.st"
|
|
],
|
|
"configuration": "./language-configuration.json"
|
|
}
|
|
],
|
|
"grammars": [
|
|
{
|
|
"language": "codesys-st",
|
|
"scopeName": "source.codesys.st",
|
|
"path": "./syntaxes/codesys-st.tmLanguage.json"
|
|
}
|
|
],
|
|
"snippets": [
|
|
{
|
|
"language": "codesys-st",
|
|
"path": "./snippets/codesys-st.json"
|
|
}
|
|
]
|
|
},
|
|
"scripts": {
|
|
"compile": "tsc -p ./",
|
|
"watch": "tsc -watch -p ./",
|
|
"lint": "eslint src --ext ts",
|
|
"test": "npm run compile && node ./out/test/runTest.js",
|
|
"package": "vsce package --no-dependencies",
|
|
"check": "npm run compile && npm run lint"
|
|
},
|
|
"devDependencies": {
|
|
"@types/mocha": "^10.0.8",
|
|
"@types/node": "^20.16.5",
|
|
"@types/vscode": "^1.90.0",
|
|
"@typescript-eslint/eslint-plugin": "^8.13.0",
|
|
"@typescript-eslint/parser": "^8.13.0",
|
|
"@vscode/test-electron": "^2.4.1",
|
|
"@vscode/vsce": "^3.2.2",
|
|
"eslint": "^8.57.1",
|
|
"mocha": "^10.7.3",
|
|
"typescript": "^5.6.2"
|
|
}
|
|
}
|