{
  "schemaVersion": "1.0",
  "item": {
    "slug": "s2g-workflow-engine",
    "name": "S2G - General Purpose Workflow Engine",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/helmutsreinis/s2g-workflow-engine",
    "canonicalUrl": "https://clawhub.ai/helmutsreinis/s2g-workflow-engine",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/s2g-workflow-engine",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=s2g-workflow-engine",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "scripts/s2g-bridge.js",
      "references/api.md",
      "references/operations.md",
      "references/protocol.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/s2g-workflow-engine"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/s2g-workflow-engine",
    "agentPageUrl": "https://openagent3.xyz/skills/s2g-workflow-engine/agent",
    "manifestUrl": "https://openagent3.xyz/skills/s2g-workflow-engine/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/s2g-workflow-engine/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "S2G Integration",
        "body": "OpenClaw is the orchestrator. S2G is the toolbox. Connect to an S2G workflow via WebSocket, auto-discover all nodes, and execute them as tools.\n\nOpenClaw ──WS──▶ S2G (wss://s2g.run/api/openclaw/ws/{nodeId})\n                   ├── PasswordGenerator\n                   ├── HashGenerator\n                   ├── DateMath\n                   ├── SqlServer\n                   ├── Knowledge Base\n                   └── ... 200+ node types"
      },
      {
        "title": "The OpenClaw Node in S2G",
        "body": "The OpenClaw node is a built-in S2G node type (category: AI) that acts as a bidirectional bridge between OpenClaw agents and S2G workflows. It appears in the S2G node catalog as \"OpenClaw Agent\" and serves two roles:\n\nBridge Endpoint — Provides a WebSocket endpoint (wss://s2g.run/api/openclaw/ws/{nodeId}) that OpenClaw agents connect to. Once connected, the agent can execute any sibling node in the workflow.\n\n\nData Forwarder — Pushes upstream workflow data to connected OpenClaw agents via Input Forwarding. When the workflow triggers (e.g., from an HTTP webhook, scheduler, or another node), mapped fields are sent to all connected agents as {\"type\":\"data\",\"data\":{...}}."
      },
      {
        "title": "Setting Up the OpenClaw Node",
        "body": "Open the S2G designer at s2g.run\nCreate or open a workflow\nAdd an OpenClaw node from the AI category in the node palette\nAdd tool nodes — any nodes you want the agent to access (e.g., PasswordGenerator, HashGenerator, DateMath, SqlServer, Knowledge Base)\nConnect the OpenClaw node to the tool nodes (the connection wiring tells S2G which nodes to expose)\nConfigure the OpenClaw node (click to open properties):\n\nAuth Secret (optional) — If set, the bridge must send {\"type\":\"auth\",\"secret\":\"...\"} as its first message\nPer-Request Timeout — Maximum time per individual node execution request\nInput Forwarding — Map upstream node outputs to push data to connected agents\nManual Payload — Send ad-hoc JSON payloads to connected agents for testing\n\n\nStart the workflow (▶ button or API: POST https://s2g.run/api/v1/workflows/{id}/start)\nCopy the Node ID (UUID) from the node properties — this is needed for the bridge connection URL"
      },
      {
        "title": "Live View",
        "body": "The OpenClaw node properties panel includes a Live View that shows:\n\nConnected clients count\nReal-time execute/result message flow\nData push events\nConnection/disconnection events"
      },
      {
        "title": "Prerequisites",
        "body": "S2G account at s2g.run (or self-hosted instance)\nA workflow with an OpenClaw node and tool nodes connected to it\nWorkflow running — the WebSocket endpoint only accepts connections while the workflow is active\nNode.js with ws module: npm install ws"
      },
      {
        "title": "1. Install the bridge",
        "body": "# Copy bridge script to workspace\ncp scripts/s2g-bridge.js ~/.openclaw/workspace/s2g-bridge.js\nnpm install ws"
      },
      {
        "title": "2. Get the OpenClaw node ID",
        "body": "In the S2G designer at s2g.run, click the OpenClaw node → copy the Node ID (UUID) from properties."
      },
      {
        "title": "3. Start the bridge",
        "body": "# Connect to public S2G\nnode s2g-bridge.js --s2g wss://s2g.run --node-id YOUR_NODE_UUID [--port 18792] [--secret SECRET]\n\n# Or with environment variables:\nS2G_WS_HOST=wss://s2g.run S2G_NODE_ID=abc-123 node s2g-bridge.js\n\n# Self-hosted S2G instance (development)\nnode s2g-bridge.js --s2g ws://YOUR_HOST:5184 --node-id YOUR_NODE_UUID"
      },
      {
        "title": "4. Verify",
        "body": "curl http://localhost:18792/health\n# {\"healthy\":true,\"uptime\":42.5}\n\ncurl http://localhost:18792/nodes\n# Lists all discovered nodes with names, types, and IDs"
      },
      {
        "title": "Bridge HTTP API",
        "body": "The bridge exposes a local HTTP API on port 18792 (configurable via --port):\n\nMethodEndpointDescriptionGET/health200 if connected to S2G, 503 if notGET/statusFull status: connection state, host, node list, stats, errorsGET/nodesList all available S2G nodes (name, type, ID)POST/executeExecute by nodeId: { nodeId, params }POST/execute/:nameExecute by name (fuzzy match): { params }POST/refreshRequest fresh node list from S2GPOST/reconnectForce disconnect and reconnect to S2G"
      },
      {
        "title": "By name (recommended)",
        "body": "curl -X POST http://localhost:18792/execute/PasswordGenerator \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"params\": {\"length\": \"20\", \"mode\": \"strong\"}}'"
      },
      {
        "title": "By node ID",
        "body": "curl -X POST http://localhost:18792/execute \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"nodeId\": \"uuid-here\", \"params\": {\"length\": \"20\"}}'"
      },
      {
        "title": "Response",
        "body": "{\n  \"success\": true,\n  \"output\": {\n    \"Password\": \"xK9!mN...\",\n    \"Strength\": \"Very Strong\",\n    \"_TriggeredTags\": \"[\\\"success\\\"]\"\n  }\n}"
      },
      {
        "title": "Node Schema Discovery",
        "body": "Before using an unfamiliar node, check its exact parameter names via the S2G Catalog API:\n\n# Get schema for any node type\ncurl -H \"X-API-Key: $KEY\" \"https://s2g.run/api/v1/catalog/nodes/Custom_Base64/schema\"\n\n# List all available node categories\ncurl -H \"X-API-Key: $KEY\" \"https://s2g.run/api/v1/catalog/categories\"\n\n# List all nodes in a category\ncurl -H \"X-API-Key: $KEY\" \"https://s2g.run/api/v1/catalog/categories/AI/nodes\"\n\nThe fieldName in inputFields is the exact key to use in params. Case-sensitive."
      },
      {
        "title": "Data Generation",
        "body": "PasswordGenerator — length, mode (strong/pronounceable/passphrase/PIN), count\nUuidGenerator — count, format\nHashGenerator — text, algorithm (md5/sha1/sha256)\nLoremIpsum — count, unit (paragraphs/sentences/words)"
      },
      {
        "title": "Data Operations",
        "body": "DateMath — operation (add/subtract/difference), date1, date2, days, hours...\nExpressionEvaluator — expression, variables, precision\nCronParser — expression, count, fromDate\nTimezoneConverter — datetime, fromTimezone, toTimezone\nJsonPathQuery — json, path, returnFirst"
      },
      {
        "title": "Text & Encoding",
        "body": "Base64 — inputText, mode (encode/decode)\nUrlEncode — inputText, mode (encode/decode)\nCaseConverter — text, targetCase (camelCase/PascalCase/snake_case/kebab-case)\nMarkdownToHtml — markdown, addWrapper\nTextDiff — oldText, newText"
      },
      {
        "title": "Format Conversion",
        "body": "XmlToJson — xmlInput\nJsonToXml — jsonInput, rootElement\nCsvJson — inputText, mode (toJson/toCsv), delimiter\nJwtDecoder — token"
      },
      {
        "title": "AI Nodes",
        "body": "OpenAI — GPT models for text generation\nAnthropic — Claude models\nGemini — Google AI models\nDeepSeek / DeepSeek Agent — DeepSeek models with agent capabilities\nOrchestrator — Multi-agent orchestration across AI providers"
      },
      {
        "title": "Knowledge Base",
        "body": "Knowledge — Graph-based knowledge store with 11 operations: Search, GetEntity, AddEntity, UpdateEntity, DeleteEntity, AddRelation, RemoveRelation, GetRelations, GetGraph, ListEntities, ListTypes"
      },
      {
        "title": "Vector Storage",
        "body": "VectorDb — Vector store for RAG: ingest documents, semantic search\nVectorClient — Query vector stores from workflows"
      },
      {
        "title": "Database",
        "body": "SqlServer — Execute SQL queries against SQL Server\nPostgresql — Execute PostgreSQL queries\nMongoDB — MongoDB document operations"
      },
      {
        "title": "Data Push (S2G → OpenClaw)",
        "body": "S2G can push data to connected OpenClaw agents in two ways:\n\nInput Forwarding — Configure in the OpenClaw node properties. Map upstream node output fields to keys that get forwarded to all connected agents. When the workflow triggers (e.g., webhook receives data → processes it → OpenClaw node forwards results), agents receive {\"type\":\"data\",\"data\":{...}}.\n\n\nManual Payload — In the OpenClaw node properties, use the Manual Payload editor to send ad-hoc JSON to all connected agents. Useful for testing and debugging."
      },
      {
        "title": "Deployment & Operations",
        "body": "For running as a service (systemd/pm2), connection lifecycle, auto-reconnect behavior, monitoring, handling S2G/OpenClaw restarts, security, and multi-bridge setups: see references/operations.md.\n\nKey points:\n\nBridge auto-reconnects on disconnect (5s delay)\nBridge is stateless — just needs the WebSocket URL and node ID\nSends keepalive pings every 30s to detect dead connections\n409 = workflow not running — enable Auto-Start (🚀) in S2G or start via API: POST https://s2g.run/api/v1/workflows/{id}/start\nLogs to logs/s2g-bridge.log with 5MB rotation"
      },
      {
        "title": "S2G REST API",
        "body": "Full platform API at https://s2g.run/api/v1/ covering workflows, catalog, knowledge base, AI assistant, connections, usage, and logs: see references/api.md.\n\nKey capabilities:\n\nWorkflows — Create, start/stop, add/remove nodes and connections: https://s2g.run/api/v1/workflows\nCatalog — Discover all 200+ node types and their schemas: https://s2g.run/api/v1/catalog/nodes\nKnowledge Base — Graph-based knowledge store with search, entities, and relations\nAI Assistant — Generate workflows from natural language: POST https://s2g.run/api/v1/ai/generate\nConnections — Manage OAuth/API key connections: https://s2g.run/api/v1/connections\nUsage & Logs — Monitor quotas and execution logs: https://s2g.run/api/v1/usage"
      },
      {
        "title": "WebSocket Protocol",
        "body": "For raw protocol details (message types, auth handshake, data push framing): see references/protocol.md.\n\nConnection URL: wss://s2g.run/api/openclaw/ws/{nodeId}\nHealth check: GET https://s2g.run/api/openclaw/health"
      },
      {
        "title": "Tips",
        "body": "No manual wiring needed. All sibling nodes connected to the OpenClaw node are auto-discovered on connect.\nParam names are case-sensitive. Always verify with the catalog schema API.\n_TriggeredTags in output indicates which connection tag fired (success/error).\n409 on connect means workflow isn't running. Start it at s2g.run or via API.\nBridge auto-reconnects on disconnect with 5s delay — no manual intervention needed."
      }
    ],
    "body": "S2G Integration\n\nOpenClaw is the orchestrator. S2G is the toolbox. Connect to an S2G workflow via WebSocket, auto-discover all nodes, and execute them as tools.\n\nOpenClaw ──WS──▶ S2G (wss://s2g.run/api/openclaw/ws/{nodeId})\n                   ├── PasswordGenerator\n                   ├── HashGenerator\n                   ├── DateMath\n                   ├── SqlServer\n                   ├── Knowledge Base\n                   └── ... 200+ node types\n\nThe OpenClaw Node in S2G\n\nThe OpenClaw node is a built-in S2G node type (category: AI) that acts as a bidirectional bridge between OpenClaw agents and S2G workflows. It appears in the S2G node catalog as \"OpenClaw Agent\" and serves two roles:\n\nBridge Endpoint — Provides a WebSocket endpoint (wss://s2g.run/api/openclaw/ws/{nodeId}) that OpenClaw agents connect to. Once connected, the agent can execute any sibling node in the workflow.\n\nData Forwarder — Pushes upstream workflow data to connected OpenClaw agents via Input Forwarding. When the workflow triggers (e.g., from an HTTP webhook, scheduler, or another node), mapped fields are sent to all connected agents as {\"type\":\"data\",\"data\":{...}}.\n\nSetting Up the OpenClaw Node\nOpen the S2G designer at s2g.run\nCreate or open a workflow\nAdd an OpenClaw node from the AI category in the node palette\nAdd tool nodes — any nodes you want the agent to access (e.g., PasswordGenerator, HashGenerator, DateMath, SqlServer, Knowledge Base)\nConnect the OpenClaw node to the tool nodes (the connection wiring tells S2G which nodes to expose)\nConfigure the OpenClaw node (click to open properties):\nAuth Secret (optional) — If set, the bridge must send {\"type\":\"auth\",\"secret\":\"...\"} as its first message\nPer-Request Timeout — Maximum time per individual node execution request\nInput Forwarding — Map upstream node outputs to push data to connected agents\nManual Payload — Send ad-hoc JSON payloads to connected agents for testing\nStart the workflow (▶ button or API: POST https://s2g.run/api/v1/workflows/{id}/start)\nCopy the Node ID (UUID) from the node properties — this is needed for the bridge connection URL\nLive View\n\nThe OpenClaw node properties panel includes a Live View that shows:\n\nConnected clients count\nReal-time execute/result message flow\nData push events\nConnection/disconnection events\nPrerequisites\nS2G account at s2g.run (or self-hosted instance)\nA workflow with an OpenClaw node and tool nodes connected to it\nWorkflow running — the WebSocket endpoint only accepts connections while the workflow is active\nNode.js with ws module: npm install ws\nQuick Start\n1. Install the bridge\n# Copy bridge script to workspace\ncp scripts/s2g-bridge.js ~/.openclaw/workspace/s2g-bridge.js\nnpm install ws\n\n2. Get the OpenClaw node ID\n\nIn the S2G designer at s2g.run, click the OpenClaw node → copy the Node ID (UUID) from properties.\n\n3. Start the bridge\n# Connect to public S2G\nnode s2g-bridge.js --s2g wss://s2g.run --node-id YOUR_NODE_UUID [--port 18792] [--secret SECRET]\n\n# Or with environment variables:\nS2G_WS_HOST=wss://s2g.run S2G_NODE_ID=abc-123 node s2g-bridge.js\n\n# Self-hosted S2G instance (development)\nnode s2g-bridge.js --s2g ws://YOUR_HOST:5184 --node-id YOUR_NODE_UUID\n\n4. Verify\ncurl http://localhost:18792/health\n# {\"healthy\":true,\"uptime\":42.5}\n\ncurl http://localhost:18792/nodes\n# Lists all discovered nodes with names, types, and IDs\n\nBridge HTTP API\n\nThe bridge exposes a local HTTP API on port 18792 (configurable via --port):\n\nMethod\tEndpoint\tDescription\nGET\t/health\t200 if connected to S2G, 503 if not\nGET\t/status\tFull status: connection state, host, node list, stats, errors\nGET\t/nodes\tList all available S2G nodes (name, type, ID)\nPOST\t/execute\tExecute by nodeId: { nodeId, params }\nPOST\t/execute/:name\tExecute by name (fuzzy match): { params }\nPOST\t/refresh\tRequest fresh node list from S2G\nPOST\t/reconnect\tForce disconnect and reconnect to S2G\nExecuting Nodes\nBy name (recommended)\ncurl -X POST http://localhost:18792/execute/PasswordGenerator \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"params\": {\"length\": \"20\", \"mode\": \"strong\"}}'\n\nBy node ID\ncurl -X POST http://localhost:18792/execute \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"nodeId\": \"uuid-here\", \"params\": {\"length\": \"20\"}}'\n\nResponse\n{\n  \"success\": true,\n  \"output\": {\n    \"Password\": \"xK9!mN...\",\n    \"Strength\": \"Very Strong\",\n    \"_TriggeredTags\": \"[\\\"success\\\"]\"\n  }\n}\n\nNode Schema Discovery\n\nBefore using an unfamiliar node, check its exact parameter names via the S2G Catalog API:\n\n# Get schema for any node type\ncurl -H \"X-API-Key: $KEY\" \"https://s2g.run/api/v1/catalog/nodes/Custom_Base64/schema\"\n\n# List all available node categories\ncurl -H \"X-API-Key: $KEY\" \"https://s2g.run/api/v1/catalog/categories\"\n\n# List all nodes in a category\ncurl -H \"X-API-Key: $KEY\" \"https://s2g.run/api/v1/catalog/categories/AI/nodes\"\n\n\nThe fieldName in inputFields is the exact key to use in params. Case-sensitive.\n\nCommon Node Types\nData Generation\nPasswordGenerator — length, mode (strong/pronounceable/passphrase/PIN), count\nUuidGenerator — count, format\nHashGenerator — text, algorithm (md5/sha1/sha256)\nLoremIpsum — count, unit (paragraphs/sentences/words)\nData Operations\nDateMath — operation (add/subtract/difference), date1, date2, days, hours...\nExpressionEvaluator — expression, variables, precision\nCronParser — expression, count, fromDate\nTimezoneConverter — datetime, fromTimezone, toTimezone\nJsonPathQuery — json, path, returnFirst\nText & Encoding\nBase64 — inputText, mode (encode/decode)\nUrlEncode — inputText, mode (encode/decode)\nCaseConverter — text, targetCase (camelCase/PascalCase/snake_case/kebab-case)\nMarkdownToHtml — markdown, addWrapper\nTextDiff — oldText, newText\nFormat Conversion\nXmlToJson — xmlInput\nJsonToXml — jsonInput, rootElement\nCsvJson — inputText, mode (toJson/toCsv), delimiter\nJwtDecoder — token\nAI Nodes\nOpenAI — GPT models for text generation\nAnthropic — Claude models\nGemini — Google AI models\nDeepSeek / DeepSeek Agent — DeepSeek models with agent capabilities\nOrchestrator — Multi-agent orchestration across AI providers\nKnowledge Base\nKnowledge — Graph-based knowledge store with 11 operations: Search, GetEntity, AddEntity, UpdateEntity, DeleteEntity, AddRelation, RemoveRelation, GetRelations, GetGraph, ListEntities, ListTypes\nVector Storage\nVectorDb — Vector store for RAG: ingest documents, semantic search\nVectorClient — Query vector stores from workflows\nDatabase\nSqlServer — Execute SQL queries against SQL Server\nPostgresql — Execute PostgreSQL queries\nMongoDB — MongoDB document operations\nData Push (S2G → OpenClaw)\n\nS2G can push data to connected OpenClaw agents in two ways:\n\nInput Forwarding — Configure in the OpenClaw node properties. Map upstream node output fields to keys that get forwarded to all connected agents. When the workflow triggers (e.g., webhook receives data → processes it → OpenClaw node forwards results), agents receive {\"type\":\"data\",\"data\":{...}}.\n\nManual Payload — In the OpenClaw node properties, use the Manual Payload editor to send ad-hoc JSON to all connected agents. Useful for testing and debugging.\n\nDeployment & Operations\n\nFor running as a service (systemd/pm2), connection lifecycle, auto-reconnect behavior, monitoring, handling S2G/OpenClaw restarts, security, and multi-bridge setups: see references/operations.md.\n\nKey points:\n\nBridge auto-reconnects on disconnect (5s delay)\nBridge is stateless — just needs the WebSocket URL and node ID\nSends keepalive pings every 30s to detect dead connections\n409 = workflow not running — enable Auto-Start (🚀) in S2G or start via API: POST https://s2g.run/api/v1/workflows/{id}/start\nLogs to logs/s2g-bridge.log with 5MB rotation\nS2G REST API\n\nFull platform API at https://s2g.run/api/v1/ covering workflows, catalog, knowledge base, AI assistant, connections, usage, and logs: see references/api.md.\n\nKey capabilities:\n\nWorkflows — Create, start/stop, add/remove nodes and connections: https://s2g.run/api/v1/workflows\nCatalog — Discover all 200+ node types and their schemas: https://s2g.run/api/v1/catalog/nodes\nKnowledge Base — Graph-based knowledge store with search, entities, and relations\nAI Assistant — Generate workflows from natural language: POST https://s2g.run/api/v1/ai/generate\nConnections — Manage OAuth/API key connections: https://s2g.run/api/v1/connections\nUsage & Logs — Monitor quotas and execution logs: https://s2g.run/api/v1/usage\nWebSocket Protocol\n\nFor raw protocol details (message types, auth handshake, data push framing): see references/protocol.md.\n\nConnection URL: wss://s2g.run/api/openclaw/ws/{nodeId} Health check: GET https://s2g.run/api/openclaw/health\n\nTips\nNo manual wiring needed. All sibling nodes connected to the OpenClaw node are auto-discovered on connect.\nParam names are case-sensitive. Always verify with the catalog schema API.\n_TriggeredTags in output indicates which connection tag fired (success/error).\n409 on connect means workflow isn't running. Start it at s2g.run or via API.\nBridge auto-reconnects on disconnect with 5s delay — no manual intervention needed."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/helmutsreinis/s2g-workflow-engine",
    "publisherUrl": "https://clawhub.ai/helmutsreinis/s2g-workflow-engine",
    "owner": "helmutsreinis",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/s2g-workflow-engine",
    "downloadUrl": "https://openagent3.xyz/downloads/s2g-workflow-engine",
    "agentUrl": "https://openagent3.xyz/skills/s2g-workflow-engine/agent",
    "manifestUrl": "https://openagent3.xyz/skills/s2g-workflow-engine/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/s2g-workflow-engine/agent.md"
  }
}