Files
Codesys-MCP/vscode_codesys_companion/package.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"
}
}