{
  "version": "urirun.bindings.v2",
  "bindings": {
    "social://linkedin.com/post/command/publish": {
      "kind": "command",
      "adapter": "local-function",
      "ref": "nl_autonomy:publish_local",
      "python": {
        "type": "python",
        "module": "nl_autonomy",
        "export": "publish_local"
      },
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "post": {
            "type": "string",
            "description": "Text to publish on the LinkedIn feed."
          },
          "port": {
            "type": "integer",
            "default": 0
          },
          "env": {
            "type": "string",
            "default": "/home/tom/github/if-uri/examples/39-local-social-autonomy/.env"
          },
          "keep_browser": {
            "type": "boolean",
            "default": false
          }
        }
      },
      "policy": {
        "allowExecute": true
      },
      "meta": {
        "label": "Publish a LinkedIn post",
        "description": "Loads host/domain settings from .env, starts the site, publishes, and verifies the feed."
      }
    },
    "social://linkedin.com/session/query/active": {
      "kind": "query",
      "adapter": "local-function",
      "ref": "nl_autonomy:check_active_session",
      "python": {
        "type": "python",
        "module": "nl_autonomy",
        "export": "check_active_session"
      },
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "ports": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "List of debug ports to probe."
          },
          "env": {
            "type": "string",
            "default": "/home/tom/github/if-uri/examples/39-local-social-autonomy/.env",
            "description": "Path to .env with LI_DEBUG_PORT settings."
          }
        }
      },
      "policy": {
        "allowExecute": true
      },
      "meta": {
        "label": "Check for active LinkedIn browser session",
        "description": "Probes debugging ports to find a browser tab containing a logged-in LinkedIn session."
      }
    },
    "social://linkedin.com/scout/command/capture": {
      "kind": "command",
      "adapter": "local-function",
      "ref": "nl_autonomy:scout_capture",
      "python": {
        "type": "python",
        "module": "nl_autonomy",
        "export": "scout_capture"
      },
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "index": {
            "type": "integer",
            "default": 1,
            "description": "Index of the post to capture (1-based)."
          },
          "env": {
            "type": "string",
            "default": "/home/tom/github/if-uri/examples/39-local-social-autonomy/.env",
            "description": "Path to .env file."
          }
        }
      },
      "policy": {
        "allowExecute": true
      },
      "meta": {
        "label": "Capture LinkedIn post by index",
        "description": "Attaches to the active browser session, extracts the feed, and appends the post at the given index to the captures file."
      }
    }
  }
}