{"action":"opened","issue":{"url":"https://api.github.com/repos/danmane/abalone/issues/7","labels_url":"https://api.github.com/repos/danmane/abalone/issues/7/labels{/name}","comments_url":"https://api.github.com/repos/danmane/abalone/issues/7/comments","events_url":"https://api.github.com/repos/danmane/abalone/issues/7/events","html_url":"https://github.com/danmane/abalone/issues/7","id":56161183,"number":7,"title":"create an agent manager","user":{"login":"briantigerchow","id":734339,"avatar_url":"https://avatars.githubusercontent.com/u/734339?v=3","gravatar_id":"","url":"https://api.github.com/users/briantigerchow","html_url":"https://github.com/briantigerchow","followers_url":"https://api.github.com/users/briantigerchow/followers","following_url":"https://api.github.com/users/briantigerchow/following{/other_user}","gists_url":"https://api.github.com/users/briantigerchow/gists{/gist_id}","starred_url":"https://api.github.com/users/briantigerchow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/briantigerchow/subscriptions","organizations_url":"https://api.github.com/users/briantigerchow/orgs","repos_url":"https://api.github.com/users/briantigerchow/repos","events_url":"https://api.github.com/users/briantigerchow/events{/privacy}","received_events_url":"https://api.github.com/users/briantigerchow/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-02-01T11:51:12Z","updated_at":"2015-02-01T11:51:12Z","closed_at":null,"body":"The abalone backend breaks down into three main components.\r\n\r\n* a game `runner` serves as a mediator between two players (agent or human). The runner validates queries agents to get their next moves, validates the game states, and declares a winner.\r\n* an agent `manager` allows people to upload agents from Docker images and Git repos. These agents are pitted against each other with the help of the `runner`.\r\n* a `relay` server allows people to play against AI agents by proxying moves between the `runner` and a browser front-end. It allows human-controlled browser agents to interface with the `runner` through the standard agent interface.\r\n\r\nThis issue is about the agent manager.\r\n\r\nThere's an initial Go implementation of the agent manager backend/API. The next steps for this piece are...\r\n\r\n1) wire up the API to a browser front-end\r\n2) go through the common user workflows and iron out the UX\r\n3) iterate on the API/UX until the experience of uploading AIs is sufficiently painless\r\n4) interface with the `runner` and figure out how we ought to allow people to start games"}}