{ "version": "2.0.0", "tasks": [ { "label": "Update Data Files from CSV", "type": "shell", "command": "${workspaceFolder}/.venv/bin/python", "args": [ "parse_csv_to_json.py" ], "options": { "cwd": "${workspaceFolder}/app" }, "presentation": { "reveal": "always", "panel": "shared", "clear": true }, "problemMatcher": [], "group": { "kind": "build", "isDefault": false }, "detail": "Generate JSON files from products.csv (Step 1/2)" }, { "label": "Generate Bitwise Data", "type": "shell", "command": "${workspaceFolder}/.venv/bin/python", "args": [ "generate_bitwise_helper.py" ], "options": { "cwd": "${workspaceFolder}/app" }, "presentation": { "reveal": "always", "panel": "shared", "clear": false }, "problemMatcher": [], "group": { "kind": "build", "isDefault": false }, "detail": "Generate bitwise filtering data (Step 2/2)" }, { "label": "Process All Data", "dependsOn": [ "Update Data Files from CSV", "Generate Bitwise Data" ], "dependsOrder": "sequence", "presentation": { "reveal": "always", "panel": "shared" }, "problemMatcher": [], "group": { "kind": "build", "isDefault": true }, "detail": "Run both scripts to update all JSON files from products.csv" }, { "label": "Start Flask Server", "type": "shell", "command": "${workspaceFolder}/.venv/bin/python", "args": [ "app.py" ], "options": { "cwd": "${workspaceFolder}/app" }, "isBackground": true, "presentation": { "reveal": "always", "panel": "dedicated", "clear": true }, "problemMatcher": { "pattern": { "regexp": "^\\s*\\*\\s+Running on (https?://\\S+)", "message": 1 }, "background": { "activeOnStart": true, "beginsPattern": "^\\s*\\*\\s+Serving Flask app", "endsPattern": "^\\s*\\*\\s+Running on" } }, "group": "none", "detail": "Start the Flask development server on port 8080" }, { "label": "Start Quote Bridge Listener", "type": "shell", "command": "${workspaceFolder}/.venv/bin/python", "args": [ "quote-bridge/listener.py" ], "options": { "cwd": "${workspaceFolder}" }, "isBackground": true, "presentation": { "reveal": "always", "panel": "dedicated", "clear": true }, "problemMatcher": { "pattern": { "regexp": "^\\[.*\\] Quote bridge listener started$", "message": 0 }, "background": { "activeOnStart": true, "beginsPattern": "^\\[.*\\] Quote bridge listener started$", "endsPattern": "^\\[.*\\] Poll interval:" } }, "group": "none", "detail": "Start the quote bridge helper app (shared file listener)" } ] }