Run a valid github.add_comment call through the same SDK surface used by every toolkit.

Minimal tool call

ts
import { Eyeball } from "@eyeball/sdk";

const eyeball = new Eyeball({
  apiKey: process.env.EYEBALL_API_KEY!,
  baseUrl: process.env.EYEBALL_EXECUTOR_URL!,
});

const output = await eyeball.tools.run(
  "github.add_comment",
  {
  "projectId": "example_projectId",
  "issueId": "example_issueId",
  "body": "example_body"
},
  { userId: "demo_user",
  idempotencyKey: "docs:github.add_comment:demo-1" },
);
console.log(output);

The model receives canonical output. Your application retains the execution envelope through tools.execute or the execution APIs when it needs IDs, status, versions, and latency.

Supported canonical tools

ToolPurposeExecutionEffectVersion
github.add_commentAdd an externally visible comment or discussion update to an issue.sync or asyncmutation1.0.0
github.create_issueCreate an issue, work item, or defect with optional ownership and priority metadata.sync or asyncmutation1.0.0
github.get_issueRetrieve one issue or work item by provider identifier or stable issue key.sync or asyncread1.0.0
github.get_pull_requestRetrieve one pull or merge request with review and change metadata exposed by the provider.sync or asyncread1.0.0
github.list_commitsList repository commits, optionally filtered by branch or author.sync or asyncread1.0.0
github.list_issuesList issues in a project or repository using state, assignee, and label filters where supported.sync or asyncread1.0.0
github.list_projectsList projects, repositories, boards, workspaces, or teams visible to the connection.sync or asyncread1.0.0
github.update_issueUpdate issue fields, state, assignment, labels, or priority. Repeating the same values has no additional effect.sync or asyncmutation1.0.0

Only the rows above are implemented. A capability tool omitted by this manifest returns not_supported; eyeball never synthesizes provider parity.

Supported canonical triggers

This manifest does not implement a canonical trigger.

Input and output schemas

github.add_comment

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:project_management_dev_tools:add_comment:1.0.0:github",
  "type": "object",
  "description": "Issue identifiers and comment body.",
  "additionalProperties": false,
  "required": [
    "projectId",
    "issueId",
    "body"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Containing project or repository identifier.",
      "minLength": 1
    },
    "issueId": {
      "type": "string",
      "description": "Provider identifier of the issue.",
      "minLength": 1
    },
    "body": {
      "type": "string",
      "description": "Comment content.",
      "minLength": 1
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:project_management_dev_tools:add_comment:output:1.0.0:github",
  "type": "object",
  "description": "Newly created comment.",
  "additionalProperties": false,
  "required": [
    "comment"
  ],
  "properties": {
    "comment": {
      "type": "object",
      "description": "A normalized issue comment.",
      "additionalProperties": false,
      "required": [
        "commentId",
        "issueId",
        "body",
        "createdAt",
        "updatedAt"
      ],
      "properties": {
        "commentId": {
          "type": "string",
          "description": "Provider identifier of the comment.",
          "minLength": 1
        },
        "issueId": {
          "type": "string",
          "description": "Provider identifier of the parent issue.",
          "minLength": 1
        },
        "body": {
          "type": "string",
          "description": "Comment content.",
          "minLength": 1
        },
        "authorId": {
          "type": "string",
          "description": "Comment author identifier."
        },
        "webUrl": {
          "type": "string",
          "format": "uri",
          "description": "Provider web URL for the comment."
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "Comment creation timestamp."
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Most recent comment update timestamp."
        }
      }
    }
  }
}
github.create_issue

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:project_management_dev_tools:create_issue:1.0.0:github",
  "type": "object",
  "description": "Project and new issue fields.",
  "additionalProperties": false,
  "required": [
    "projectId",
    "title"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Target project, repository, or team identifier.",
      "minLength": 1
    },
    "title": {
      "type": "string",
      "description": "Issue title.",
      "minLength": 1
    },
    "body": {
      "type": "string",
      "description": "Issue body or description."
    },
    "assigneeIds": {
      "type": "array",
      "description": "User identifiers to assign.",
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "labels": {
      "type": "array",
      "description": "Labels to apply.",
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "priority": {
      "type": "integer",
      "minimum": 0,
      "maximum": 4,
      "description": "Provider-normalized priority."
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:project_management_dev_tools:create_issue:output:1.0.0:github",
  "type": "object",
  "description": "Newly created issue.",
  "additionalProperties": false,
  "required": [
    "issue"
  ],
  "properties": {
    "issue": {
      "type": "object",
      "description": "A normalized issue, work item, or defect.",
      "additionalProperties": false,
      "required": [
        "issueId",
        "projectId",
        "title",
        "state",
        "labels",
        "assigneeIds",
        "commentCount",
        "createdAt",
        "updatedAt"
      ],
      "properties": {
        "issueId": {
          "type": "string",
          "description": "Provider identifier or stable issue key.",
          "minLength": 1
        },
        "issueKey": {
          "type": "string",
          "description": "Human-readable issue number or identifier."
        },
        "projectId": {
          "type": "string",
          "description": "Containing project or repository identifier.",
          "minLength": 1
        },
        "title": {
          "type": "string",
          "description": "Issue title.",
          "minLength": 1
        },
        "body": {
          "type": "string",
          "description": "Issue body or description."
        },
        "state": {
          "type": "string",
          "description": "Provider issue state.",
          "minLength": 1
        },
        "labels": {
          "type": "array",
          "description": "Issue labels.",
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "assigneeIds": {
          "type": "array",
          "description": "Assigned user identifiers.",
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "authorId": {
          "type": "string",
          "description": "Issue author identifier."
        },
        "priority": {
          "type": "integer",
          "minimum": 0,
          "description": "Provider priority value."
        },
        "commentCount": {
          "type": "integer",
          "minimum": 0,
          "description": "Number of issue comments."
        },
        "webUrl": {
          "type": "string",
          "format": "uri",
          "description": "Provider web URL for the issue."
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "Issue creation timestamp."
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Most recent issue update timestamp."
        },
        "closedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Issue close timestamp."
        }
      }
    }
  }
}
github.get_issue

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:project_management_dev_tools:get_issue:1.0.0:github",
  "type": "object",
  "description": "Project and issue identifiers.",
  "additionalProperties": false,
  "required": [
    "projectId",
    "issueId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Containing project or repository identifier.",
      "minLength": 1
    },
    "issueId": {
      "type": "string",
      "description": "Provider identifier or stable issue key.",
      "minLength": 1
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:project_management_dev_tools:get_issue:output:1.0.0:github",
  "type": "object",
  "description": "Requested issue.",
  "additionalProperties": false,
  "required": [
    "issue"
  ],
  "properties": {
    "issue": {
      "type": "object",
      "description": "A normalized issue, work item, or defect.",
      "additionalProperties": false,
      "required": [
        "issueId",
        "projectId",
        "title",
        "state",
        "labels",
        "assigneeIds",
        "commentCount",
        "createdAt",
        "updatedAt"
      ],
      "properties": {
        "issueId": {
          "type": "string",
          "description": "Provider identifier or stable issue key.",
          "minLength": 1
        },
        "issueKey": {
          "type": "string",
          "description": "Human-readable issue number or identifier."
        },
        "projectId": {
          "type": "string",
          "description": "Containing project or repository identifier.",
          "minLength": 1
        },
        "title": {
          "type": "string",
          "description": "Issue title.",
          "minLength": 1
        },
        "body": {
          "type": "string",
          "description": "Issue body or description."
        },
        "state": {
          "type": "string",
          "description": "Provider issue state.",
          "minLength": 1
        },
        "labels": {
          "type": "array",
          "description": "Issue labels.",
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "assigneeIds": {
          "type": "array",
          "description": "Assigned user identifiers.",
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "authorId": {
          "type": "string",
          "description": "Issue author identifier."
        },
        "priority": {
          "type": "integer",
          "minimum": 0,
          "description": "Provider priority value."
        },
        "commentCount": {
          "type": "integer",
          "minimum": 0,
          "description": "Number of issue comments."
        },
        "webUrl": {
          "type": "string",
          "format": "uri",
          "description": "Provider web URL for the issue."
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "Issue creation timestamp."
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Most recent issue update timestamp."
        },
        "closedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Issue close timestamp."
        }
      }
    }
  }
}
github.get_pull_request

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:project_management_dev_tools:get_pull_request:1.0.0:github",
  "type": "object",
  "description": "Repository and pull-request identifiers.",
  "additionalProperties": false,
  "required": [
    "projectId",
    "pullRequestId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Containing repository identifier.",
      "minLength": 1
    },
    "pullRequestId": {
      "type": "string",
      "description": "Provider pull-request number or identifier.",
      "minLength": 1
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:project_management_dev_tools:get_pull_request:output:1.0.0:github",
  "type": "object",
  "description": "Requested pull request.",
  "additionalProperties": false,
  "required": [
    "pullRequest"
  ],
  "properties": {
    "pullRequest": {
      "type": "object",
      "description": "A normalized pull or merge request.",
      "additionalProperties": false,
      "required": [
        "pullRequestId",
        "projectId",
        "title",
        "state",
        "merged",
        "headBranch",
        "headSha",
        "baseBranch",
        "baseSha",
        "createdAt",
        "updatedAt"
      ],
      "properties": {
        "pullRequestId": {
          "type": "string",
          "description": "Provider identifier or number of the pull request.",
          "minLength": 1
        },
        "projectId": {
          "type": "string",
          "description": "Containing repository identifier.",
          "minLength": 1
        },
        "title": {
          "type": "string",
          "description": "Pull-request title.",
          "minLength": 1
        },
        "body": {
          "type": "string",
          "description": "Pull-request body."
        },
        "state": {
          "type": "string",
          "description": "Provider pull-request state.",
          "minLength": 1
        },
        "merged": {
          "type": "boolean",
          "description": "Whether the pull request was merged."
        },
        "mergeable": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Provider mergeability result when known."
        },
        "headBranch": {
          "type": "string",
          "description": "Source branch.",
          "minLength": 1
        },
        "headSha": {
          "type": "string",
          "description": "Source commit SHA.",
          "minLength": 1
        },
        "baseBranch": {
          "type": "string",
          "description": "Target branch.",
          "minLength": 1
        },
        "baseSha": {
          "type": "string",
          "description": "Target commit SHA.",
          "minLength": 1
        },
        "authorId": {
          "type": "string",
          "description": "Pull-request author identifier."
        },
        "webUrl": {
          "type": "string",
          "format": "uri",
          "description": "Provider web URL."
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "Pull-request creation timestamp."
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Most recent pull-request update timestamp."
        }
      }
    }
  }
}
github.list_commits

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:project_management_dev_tools:list_commits:1.0.0:github",
  "type": "object",
  "description": "Repository, commit filters, and pagination.",
  "additionalProperties": false,
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Containing repository identifier.",
      "minLength": 1
    },
    "branch": {
      "type": "string",
      "description": "Branch name or commit SHA.",
      "minLength": 1
    },
    "author": {
      "type": "string",
      "description": "Author name, email, or provider identifier.",
      "minLength": 1
    },
    "pageSize": {
      "type": "integer",
      "description": "Maximum number of commits to return in one page.",
      "minimum": 1,
      "maximum": 100,
      "default": 50
    },
    "pageToken": {
      "type": "string",
      "description": "Opaque continuation token from a previous commit page.",
      "minLength": 1
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:project_management_dev_tools:list_commits:output:1.0.0:github",
  "type": "object",
  "description": "One page of commits.",
  "additionalProperties": false,
  "required": [
    "commits"
  ],
  "properties": {
    "commits": {
      "type": "array",
      "description": "Repository commits.",
      "items": {
        "type": "object",
        "description": "A normalized repository commit.",
        "additionalProperties": false,
        "required": [
          "sha",
          "message",
          "authoredAt"
        ],
        "properties": {
          "sha": {
            "type": "string",
            "description": "Commit SHA.",
            "minLength": 1
          },
          "message": {
            "type": "string",
            "description": "Commit message.",
            "minLength": 1
          },
          "authorName": {
            "type": "string",
            "description": "Commit author name."
          },
          "authorEmail": {
            "type": "string",
            "format": "email",
            "description": "Commit author email."
          },
          "authoredAt": {
            "type": "string",
            "format": "date-time",
            "description": "Commit author timestamp."
          },
          "webUrl": {
            "type": "string",
            "format": "uri",
            "description": "Provider web URL for the commit."
          }
        }
      }
    },
    "nextPageToken": {
      "type": "string",
      "description": "Opaque token to request the next page of commits; absent when the result is complete.",
      "minLength": 1
    }
  }
}
github.list_issues

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:project_management_dev_tools:list_issues:1.0.0:github",
  "type": "object",
  "description": "Project, issue filters, and pagination.",
  "additionalProperties": false,
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project, repository, or team identifier.",
      "minLength": 1
    },
    "state": {
      "type": "string",
      "description": "Provider issue state."
    },
    "assigneeId": {
      "type": "string",
      "description": "Assigned user identifier.",
      "minLength": 1
    },
    "labels": {
      "type": "array",
      "description": "Labels every result must contain.",
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "pageSize": {
      "type": "integer",
      "description": "Maximum number of issues to return in one page.",
      "minimum": 1,
      "maximum": 100,
      "default": 50
    },
    "pageToken": {
      "type": "string",
      "description": "Opaque continuation token from a previous issue page.",
      "minLength": 1
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:project_management_dev_tools:list_issues:output:1.0.0:github",
  "type": "object",
  "description": "One page of issues.",
  "additionalProperties": false,
  "required": [
    "issues"
  ],
  "properties": {
    "issues": {
      "type": "array",
      "description": "Matching issues.",
      "items": {
        "type": "object",
        "description": "A normalized issue, work item, or defect.",
        "additionalProperties": false,
        "required": [
          "issueId",
          "projectId",
          "title",
          "state",
          "labels",
          "assigneeIds",
          "commentCount",
          "createdAt",
          "updatedAt"
        ],
        "properties": {
          "issueId": {
            "type": "string",
            "description": "Provider identifier or stable issue key.",
            "minLength": 1
          },
          "issueKey": {
            "type": "string",
            "description": "Human-readable issue number or identifier."
          },
          "projectId": {
            "type": "string",
            "description": "Containing project or repository identifier.",
            "minLength": 1
          },
          "title": {
            "type": "string",
            "description": "Issue title.",
            "minLength": 1
          },
          "body": {
            "type": "string",
            "description": "Issue body or description."
          },
          "state": {
            "type": "string",
            "description": "Provider issue state.",
            "minLength": 1
          },
          "labels": {
            "type": "array",
            "description": "Issue labels.",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "assigneeIds": {
            "type": "array",
            "description": "Assigned user identifiers.",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "authorId": {
            "type": "string",
            "description": "Issue author identifier."
          },
          "priority": {
            "type": "integer",
            "minimum": 0,
            "description": "Provider priority value."
          },
          "commentCount": {
            "type": "integer",
            "minimum": 0,
            "description": "Number of issue comments."
          },
          "webUrl": {
            "type": "string",
            "format": "uri",
            "description": "Provider web URL for the issue."
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Issue creation timestamp."
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Most recent issue update timestamp."
          },
          "closedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Issue close timestamp."
          }
        }
      }
    },
    "nextPageToken": {
      "type": "string",
      "description": "Opaque token to request the next page of issues; absent when the result is complete.",
      "minLength": 1
    }
  }
}
github.list_projects

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:project_management_dev_tools:list_projects:1.0.0:github",
  "type": "object",
  "description": "Project pagination selectors.",
  "additionalProperties": false,
  "properties": {
    "pageSize": {
      "type": "integer",
      "description": "Maximum number of projects to return in one page.",
      "minimum": 1,
      "maximum": 100,
      "default": 50
    },
    "pageToken": {
      "type": "string",
      "description": "Opaque continuation token from a previous project page.",
      "minLength": 1
    }
  }
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:project_management_dev_tools:list_projects:output:1.0.0:github",
  "type": "object",
  "description": "One page of projects.",
  "additionalProperties": false,
  "required": [
    "projects"
  ],
  "properties": {
    "projects": {
      "type": "array",
      "description": "Visible projects.",
      "items": {
        "type": "object",
        "description": "A normalized repository, project, board, or workspace.",
        "additionalProperties": false,
        "required": [
          "projectId",
          "name",
          "kind"
        ],
        "properties": {
          "projectId": {
            "type": "string",
            "description": "Provider identifier of the project or repository.",
            "minLength": 1
          },
          "name": {
            "type": "string",
            "description": "Project display name.",
            "minLength": 1
          },
          "kind": {
            "type": "string",
            "enum": [
              "project",
              "repository",
              "board",
              "workspace",
              "team"
            ],
            "description": "Normalized project container kind."
          },
          "description": {
            "type": "string",
            "description": "Project description."
          },
          "state": {
            "type": "string",
            "description": "Provider project state."
          },
          "private": {
            "type": "boolean",
            "description": "Whether access is private."
          },
          "defaultBranch": {
            "type": "string",
            "description": "Default repository branch."
          },
          "webUrl": {
            "type": "string",
            "format": "uri",
            "description": "Provider web URL."
          },
          "teamIds": {
            "type": "array",
            "description": "Provider team identifiers associated with the project.",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Project creation timestamp."
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Most recent project update timestamp."
          }
        }
      }
    },
    "nextPageToken": {
      "type": "string",
      "description": "Opaque token to request the next page of projects; absent when the result is complete.",
      "minLength": 1
    }
  }
}
github.update_issue

Input schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:project_management_dev_tools:update_issue:1.0.0:github",
  "type": "object",
  "description": "Issue identifiers and fields to update.",
  "additionalProperties": false,
  "required": [
    "projectId",
    "issueId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Containing project or repository identifier.",
      "minLength": 1
    },
    "issueId": {
      "type": "string",
      "description": "Provider identifier or stable issue key.",
      "minLength": 1
    },
    "title": {
      "type": "string",
      "description": "Replacement issue title.",
      "minLength": 1
    },
    "body": {
      "type": "string",
      "description": "Replacement issue body."
    },
    "state": {
      "type": "string",
      "description": "Replacement provider issue state.",
      "minLength": 1
    },
    "assigneeIds": {
      "type": "array",
      "description": "Replacement assignee identifiers.",
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "labels": {
      "type": "array",
      "description": "Replacement issue labels.",
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "priority": {
      "type": "integer",
      "minimum": 0,
      "maximum": 4,
      "description": "Replacement priority."
    }
  },
  "minProperties": 3
}

Output schema

JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:eyeball:project_management_dev_tools:update_issue:output:1.0.0:github",
  "type": "object",
  "description": "Updated issue.",
  "additionalProperties": false,
  "required": [
    "issue"
  ],
  "properties": {
    "issue": {
      "type": "object",
      "description": "A normalized issue, work item, or defect.",
      "additionalProperties": false,
      "required": [
        "issueId",
        "projectId",
        "title",
        "state",
        "labels",
        "assigneeIds",
        "commentCount",
        "createdAt",
        "updatedAt"
      ],
      "properties": {
        "issueId": {
          "type": "string",
          "description": "Provider identifier or stable issue key.",
          "minLength": 1
        },
        "issueKey": {
          "type": "string",
          "description": "Human-readable issue number or identifier."
        },
        "projectId": {
          "type": "string",
          "description": "Containing project or repository identifier.",
          "minLength": 1
        },
        "title": {
          "type": "string",
          "description": "Issue title.",
          "minLength": 1
        },
        "body": {
          "type": "string",
          "description": "Issue body or description."
        },
        "state": {
          "type": "string",
          "description": "Provider issue state.",
          "minLength": 1
        },
        "labels": {
          "type": "array",
          "description": "Issue labels.",
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "assigneeIds": {
          "type": "array",
          "description": "Assigned user identifiers.",
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "authorId": {
          "type": "string",
          "description": "Issue author identifier."
        },
        "priority": {
          "type": "integer",
          "minimum": 0,
          "description": "Provider priority value."
        },
        "commentCount": {
          "type": "integer",
          "minimum": 0,
          "description": "Number of issue comments."
        },
        "webUrl": {
          "type": "string",
          "format": "uri",
          "description": "Provider web URL for the issue."
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "Issue creation timestamp."
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Most recent issue update timestamp."
        },
        "closedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Issue close timestamp."
        }
      }
    }
  }
}

Authentication

PropertyValue
Auth classoauth2
Required scopesNone
Optional scopesNone
Credential fieldsNone

Credentials are resolved inside the executor by CredentialProvider. They never belong in tool input, x_provider, model context, logs, or execution output.

Provider-specific extensions

This manifest declares no provider-specific schema extensions. Use only canonical fields.

Provider differences may appear only under x_provider.github and only when the schema above declares them.

Sync and async behavior

All tools are synchronous by nature, but callers may choose mode: "async" to queue them.

Mutations require a stable Idempotency-Key. The TypeScript SDK accepts it as idempotencyKey; it is never part of the JSON request body.

REST example

Bash
curl "$EYEBALL_EXECUTOR_URL/v1/execute" \
  -H "Authorization: Bearer $EYEBALL_API_KEY" \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: docs:github.add_comment:demo-1' \
  --data '{"tool":"github.add_comment","userId":"demo_user","input":{"projectId":"example_projectId","issueId":"example_issueId","body":"example_body"},"mode":"sync"}'

Mock support

Point EYEBALL_EXECUTOR_URL at a mock-configured executor to run through the real catalog, validation, credential seam, adapter, normalized errors, and execution records with no GitHub account. Mock selection changes the executor endpoint and trusted provider base-URL configuration, never the execute request.

Limitations

  • This page describes the manifest's explicit P0 subset, not every operation offered by the provider.
  • Provider account policy, consent UI, quota details, and current wire compatibility still require a real-provider certification pass.
  • Fields outside the canonical schemas and declared x_provider extensions are rejected.

Versions

ContractVersion
Runtime catalog1.1
Manifest catalog1.0
Manifest schema1.0
Sourceactivepieces-bridge
TierP0
Capabilitiesproject_management_dev_tools

Next

Use Testing with mocks to exercise this toolkit before connecting a live provider account.