Protocol

June 25, 2026 · View on GitHub

The protocol is the contract between the Go daemon and the EasyEDA connector extension. It is intentionally action-oriented rather than a raw mirror of every eda.* method.

Request

{
  "id": "req_01",
  "type": "request",
  "version": "v1",
  "windowId": "optional-target-window",
  "createdAt": "2026-06-25T09:00:00Z",
  "action": "schematic.components.list",
  "payload": {
    "allPages": false
  }
}

Response

{
  "id": "req_01",
  "type": "response",
  "version": "v1",
  "windowId": "active-window",
  "createdAt": "2026-06-25T09:00:01Z",
  "ok": true,
  "context": {
    "projectUuid": "project-id",
    "projectName": "demo",
    "documentUuid": "schematic-page-id",
    "documentType": "schematic",
    "tabId": "tab-id",
    "unit": "mil"
  },
  "result": {},
  "artifacts": [],
  "warnings": []
}

Error

{
  "id": "req_01",
  "type": "response",
  "version": "v1",
  "ok": false,
  "error": {
    "code": "SCHEMATIC_PAGE_NOT_ACTIVE",
    "message": "No active schematic page is open.",
    "detail": "Open a schematic page before placing components."
  }
}

Artifact

Artifacts are files produced by EasyEDA or the connector (snapshots, netlists, BOM files). The connector runs in a webview and cannot write to the daemon's disk, so it returns the bytes inline as base64. The daemon decodes them, writes the file under its artifact directory, fills path/size/sha256, and strips inlineBase64 before returning to the caller.

Connector → daemon (on the WebSocket):

{
  "id": "art_01",
  "kind": "schematic_snapshot",
  "fileName": "snapshot.png",
  "mimeType": "image/png",
  "inlineBase64": "iVBORw0KGgo..."
}

Daemon → caller (after persistence):

{
  "id": "art_01",
  "kind": "schematic_snapshot",
  "path": "/absolute/path/to/artifacts/art_01.png",
  "fileName": "snapshot.png",
  "mimeType": "image/png",
  "size": 123456,
  "sha256": "..."
}

Raw JavaScript Escape Hatch

Raw JavaScript may exist as a debug action:

debug.exec_js

It must be disabled or confirmation-gated in normal Skill workflows. Typed actions are the default public surface.