As you know , in Google Wave, you can use two types of extensions (extensions) - gadgets and robots. I recall:
A gadget is a small program that runs on the client’s side, belongs to a certain wave and allows its participants to interact with each other, since they can all change the status of the gadget and simultaneously see these changes. A good example is the voting gadget. You voted “for” or “against”, the gadget took into account your vote and changed the table of results. All participants in the wave in which this gadget is embedded, saw this change.
Robot - executed on the server side. You can even say "on the server side," because now the robots are placed "in the clouds" on Google servers AppEngine. The robot is an equal participant of the wave. Just like people, he has access to the content of the wave, can change it, add or remove participants of this wave, as well as create new “blips” (remarks in the discussion) and new waves.
The question arises, how to add robots or gadgets to the wave? Since robots are full participants in the wave, they can be added in the same way as humans. Enter the address of the robot in your address book, and then from there as necessary connect the robot to the desired wave. The gadget is inserted using a special item in the “Debug” menu (we are now talking about a wave client that is used in the Google Wave sandbox -
wavesandbox.com ).
')
However, over time, you realize that this process needs to be made more flexible. Often it is necessary to connect several robots to the wave at once. Or you need to insert some own gadget, which is not in the public library (or, as is correct, "gadgetnitse"? :). To address these issues, we currently have a simple mechanism for expanding the wave client interface. With it, we can add additional buttons to the blip editing menu and the new wave creation menu. Here's what it looks like.
Task 1. You wrote (or dug up somewhere code) convenient gadget. Often and with pleasure you insert it into the wave. But you don’t want to constantly go into the “Debug” menu and add a line with the address of the gadget. It would be nice to have just a button that will insert the desired gadget by the wave of your finger.
Create a "manifest", i.e. An XML file with something like this:
<extension location = "Toolbar">
<info text = "Are You In?"
description = "Click to insert the Are You In? gadget."
imageUrl = "http://wave-api.appspot.com/public/gadgets/areyouin/icon.png" />
<insertGadget url = "http://wave-api.appspot.com/public/gadgets/areyouin/gadget.xml" />
</ extension>

Then create a new wave, go to the “Debug> Add Extension Installer” menu and specify the address where your “manifest” is located.
Save the wave (button "Done"). The image of the element from the "puzzles" with the name of your gadget, the words "Author Unknown" and the button "Install" appear in it. Her and click.
Everything, now in your editing menu "blip" a new button appears, which inserts your gadget wherever you want. (Hussars, be silent! :) In my screenshot you can see the added button with the blue and white facebook logo.
Note : The structure of the "manifest", as we see, is very simple. Location indicates the place where the button will be added (now there are two possible options - Toolbar and NewWaveMenu, about which just below). Info text - explanation. Description - a more detailed description of the gadget. ImageUrl - the location of the image for the button. InsertGadget url - respectively, the location of the xml file of your gadget. You can try with the demo gadget that lies here - http://wave-api-dmo.appspot.com/public/simplemap/whereareyou.xml
Task 2 . You sold robots, often shouting in a dream, “Glory to the robots! Death to humans! ”And add to your every wave with a dozen of your favorite bots. Right, is Tweeting needed? It is necessary, who will tell the latest gossip from Twitter. Rosie need? Need, who will translate them from different languages. "Yvette, Musetta, Jeanette ..."
I want to be able to add the necessary harem of robots with one click (well, and people at the same time, of course) to the wave.
Create another manifest:
<extension location = "NewWaveMenu">
<info text = "New Twave"
description = "Creates a new Twitter wave." />
<createNewWave>
<participant id = "tweety-wave@appspot.com"> </ participant>
</ createNewWave>
</ extension>

In the same way, we open a new wave, then go to the menu “Debug> Add Extension Installer” and indicate the address where this “manifest” is located in the network. Oops! And in the panel next to the "New Wave" button appears a button with a down arrow, which when you click on it shows a drop-down menu with the items you added.
Note: As you can see, the Location has changed here, as well as the opportunity to create a wave (createNewWave) and add participants to it.
So far, as far as I know, there is still no way to add participants to the existing wave in the same way or remove them from there. But the API will eventually expand and improve. And if these expectations come true, then you and I will have the opportunity to adjust our working environment in waves according to our personal tastes and preferences.
Or create "clones" of the wave client, sharpened for a specific range of tasks (IM, joint editing of texts, discussion or gaming community, etc.).
Or under the skills and habits of users (hmm, “1C-wave” for accounting, it probably would be cool, yes! :).
Material from the group
“Google Wave Russia”Also published in the blog
"Google Wave in Russian"