Commands passed by tandem bots:


chat <from> <text...>
   public chatter on the party line; <from> can be a bot or a user@bot

act <from> <text...>
   public actions on the party line; <from> should always be a user@bot

priv <from> <to> <text...>
   private message between two people cross-bots; <from> can be a bot or
   a user@bot but <to> should always be a user@bot

bye
   from a bot that is about to disconnect; means "please drop my link"

*bye
   an acknowledgement to a "bye"; means "so long sucker"

who <from> <botname>
   request for a '.who' list from a bot; <from> is always a user@bot; the
   result is sent to <from> via a group of "priv" notices; if <botname> is
   left off, the who request is for this bot

version <#channel> <text>
   transmission of channel and version information which is stored and used
   for '.who' displays and very little else; it's nice to know though

looptest <botname>
   should be treated like a "chat" in that a looptest should reach every
   bot in the chain; <botname> is the bot that sent it; if a bot ever gets
   a looptest from itself, there is a loop and it should disconnect

who? <from>
   like "looptest" and "chat", should be sent to every bot; <from> is a
   user@bot to send "whom" responses to; every bot should answer who?
   requests

whom <to> <attrchar><nick> <botname> <hostinfo>
   responses to "who?" queries; one should be sent out for each user the bot
   has online; <to> is the <from> of the "who?"; <attrchar> is '-' for party
   line members, '@' for chanops, or '*' for masters; <botname> is always
   the name of the bot responding

ping
   a demand for a "pong"; any bot that doesn't respond to ping within 60
   seconds will be dropped

pong
   a response to "ping"

link <from> <sourcebot> <destbot>
   remote bot linking request to <sourcebot>; <sourcebot> should try to link
   to <destbot> and return info to <from> which is always a from@bot

unlink <from> <sourcebot> <destbot>
   like "link", but is a request to unlink <destbot> from <sourcebot>

userfile?
   is an offer by the sending bot, to send its userfile to the bot which
   receives this command; should be answered with "uf-no" or "uf-yes"

uf-no <reason>
   reject a userfile offer, with plain-text <reason>

uf-yes
   accept a userfile offer, ie "send me your user list!"

(v0.8m)

linked <bot>
   notice to other bots that this bot has a link to <bot>; each bot should
   receive a linked notice for each other bot in the chain

unlinked <bot>
   notice to other bots that <bot> is no longer in the chain

(v0.8o)

trace <from> <bot> <chain:chain...>
   a trace request from a user to a distant bot; each intermediate bot should
   append its name to the chain, and pass the trace on to the next bot on the
   way to the destination <bot>; the destination bot should transmit a
   "traced"

traced <to> <chain:chain...>
   the response to a "trace"; <to> is the <from> of the "trace"; the dest-
   ination bot should append its name to the chain before sending the traced

(v0.8p)

reject <from> <dest>
   a rejection of a <dest> bot or user@bot; <from> may be a bot or user@bot;
   if <dest> is a bot, it should be treated as an "unlink"; if <dest> is a
   user@bot, it should be treated as a remote '.boot'

handshake <pass>
   notification of a new password to be used between the two bots (currently
   only sent when two bots connect that have no password set yet)

(v0.9)

resync?
   similar to "userfile?"; an offer to consider the two bots as sharing, with
   the userfile already downloaded, and any adjustments to be made via the
   user data transmission commands

resync!
   an acceptance of the "resync?" offer

resync-no <reason>
   a rejection of the "resync?" offer, with a human-readable explanation

thisbot <nick>
   identifies the bot when first connected

nlinked <bot> <by> [possible future information...]
   a replacement for "linked", which tells not only that a new bot was
   linked in, but what existing bot linked it in

[user data transmission commands were omitted]

robey, 13jun94
