Mike,
Alexa is not a sandbox. You register a hook with your Alexa skill to service the requests. The Amazon demo’s help you do this to a Lambda function, but you can register your own server. You also need to use Alexa’s catch-all/unknown intent, since you obviously don’t want to use Amazon’s intent resolution mechanism (for with I wholeheartedly agree).
As far as I know there are no open source projects to transform Alexa requests to and from CS requests. What I have done is use the Adapter Pattern. I wrote Adapter (RESTful service written node.js using Express) that translates from various front ends like Alexa, WebX Teams, or my own custom web client using Ajax. The sole purpose of the adapter is to take in messages from the front end, convert them to CS format and send them to the CS engine; wait on the answer and then format the response to the way the front end expects. There is a lot of use of OOB in this since it is stateless. One of the things I have to do is package up the front end’s context (userId, message number, room, Alexa context, etc.) and send it as JSON via OOB to CS. I have CS hold onto that JSON data and return it back with the response using the post processing mechanism in CS.
For Alexa, specifically, you would register your adapter’s URL:port/request with your Alexa skill. Be sure the unknown intent’s are passed through. Write your adapter to translate from Alexa incoming to CS format. Be sure to put the Alexa context info into the OOB. Have CS hold onto the OOB data while it does its job. Write a translator in the adapter to convert the OOB data and the response to Alexa format. And, finally return the whole thing to Amazon.
Hope this helps, but I bet it only confirms your fears on what is required. LOL
Stephen G.
Stephen G.