2.20.4 • Published 2 years ago

@dxos/cli-bot v2.20.4

Weekly downloads
150
License
AGPL-3.0
Repository
github
Last release
2 years ago

Bot CLI

Read concepts first, if unfamiliar with how bots work.

Commands:

  • wire bot publish - Publish bot packages to IPFS.
  • wire bot register - Register a bot in WNS.
  • wire bot query - Query bot in WNS.
  • wire bot factory start - Start a bot factory.

Local Development

To aid local development, bot factories can be made to run bot code directly from a bot directory, bypassing WNS/IPFS.

For example:

$ cd examples/echo-bot
$ yarn wire bot factory start --local-dev
  bot-factory {"started":true,"topic":"83e8b9ac8d7a22d096673f2f55b13346f225fd060fe869fab9c26042716753b5","peerId":"83e8b9ac8d7a22d096673f2f55b13346f225fd060fe869fab9c26042716753b5","localDev":true}

Use the swarm topic from the output to connect to the bot factory, e.g. to spawn a bot.

Publishing/Registering Bots

Bot binary packages are published to IPFS. Bot metadata is registered in WNS.

Note:

  • Ensure the wire CLI is configured correctly.
  • Cross compilation doesn't work correctly, so binaries are built on the corresponding platform.

Create self-contained bot packages for supported platforms.

$ cd packages/echo-bot
$ yarn package:macos-x64

Upload the packages to IPFS.

$ yarn wire bot publish
Uploaded macos-x64.tgz to IPFS, CID: QmXf72DJYLNokVG7HMZnxeXoc3gLdQ8q5H5gK8D9zmR4Mn
Package contents have changed.
Run 'wire bot register' to register the new bot version: 1.0.53

Inspect bot.yml before registering.

$ cat bot.yml
id: 'wrn:bot:wireline.io/echo'
name: ECHO
version: 1.0.53
package:
  linux:
    x64: QmVRmLrQeLZS8Xee7YVzYYAQANWmXqsNgNkaPMxM8MtPLA
    arm: QmX3DDmeFunX5aVmaTNnViwQUe15Wa4UbZYcC3AwFwoWcg
  macos:
    x64: QmXf72DJYLNokVG7HMZnxeXoc3gLdQ8q5H5gK8D9zmR4Mn

Register the bot with WNS.

$ yarn wire bot register

Query registered bot.

$ yarn wire bot query --name 'wireline.io/echo'
[
  {
    "id": "QmbwMajMxYsFrgZpLt7feSr88VvpAEJrrXwRBF1FwL6EoR",
    "type": "wrn:bot",
    "name": "wireline.io/echo",
    "version": "1.0.53",
    "owners": [
      "6ee3328f65c8566cd5451e49e97a767d10a8adf7"
    ],
    "bondId": "8e340dd7cf6fc91c27eeefce9cca1406c262e93fd6f3a4f3b1e99b01161fcef3",
    "createTime": "2020-04-30T10:37:00.974990000",
    "expiryTime": "2021-04-30T10:37:00.974990000",
    "attributes": {
      "displayName": "ECHO",
      "name": "wireline.io/echo",
      "package": {
        "linux": {
          "arm": "QmX3DDmeFunX5aVmaTNnViwQUe15Wa4UbZYcC3AwFwoWcg",
          "x64": "QmVRmLrQeLZS8Xee7YVzYYAQANWmXqsNgNkaPMxM8MtPLA"
        },
        "macos": {
          "x64": "QmXf72DJYLNokVG7HMZnxeXoc3gLdQ8q5H5gK8D9zmR4Mn"
        }
      },
      "type": "wrn:bot",
      "version": "1.0.53"
    }
  }
]

Running Bots (via WNS/IPFS)

Start the bot factory. The topic logged by bot-factory is the swarm topic that the CLI uses to connect to the bot factory. Provide it to the spawn command later.

$ cd dxos/botkit

$ yarn run wire bot factory start
  bot-factory {"started":true,"topic":"0955697f31e973503286ded7b426fa6725b9e6c9e06ba112f537467b0a1beb1e","peerId":"0955697f31e973503286ded7b426fa6725b9e6c9e06ba112f537467b0a1beb1e","localDev":false}

Create a new party.

$ cd dxos/data-cli

$ yarn run wire party create
{
  "partyKey": "bd0f63cb1dad10889902d8b8ba450db128f9cf019b34d6b91e0362a108085483"
}
[wire]>

Spawn the echo bot. Use topic from the bot factory console output, enabling the CLI to connect to it. Use echo-bot version from echo-bot/bot.yml.

[wire]> bot spawn --bot-id="wrn:bot:wireline.io/echo#1.0.53" --spec='{"type":"testing.item.Task","listId":"list-tasks"}' --topic 0955697f31e973503286ded7b426fa6725b9e6c9e06ba112f537467b0a1beb1e
Spawning bot wrn:bot:wireline.io/echo#1.0.53 to join 'bd0f63cb1dad10889902d8b8ba450db128f9cf019b34d6b91e0362a108085483' party with invitation: {"swarmKey":"305b70cf46d0e22628d424fce23ea6f76bd9da44df8a3ed3fe70e56858b0bffa","invitation":"878c110aaab9a7173e3562e882e10c4480c32789ff012733825034c1fa340be7","hash":"b8f9fc83963153f63ae9e36871abed598f248d61"}.
[wire]>

Bot factory should download and spawn the bot:

  bot-factory Spawn bot request for wrn:bot:wireline.io/echo#1.0.53: {"botConfig":{"botId":"wrn:bot:wireline.io/echo#1.0.53","topic":"bd0f63cb1dad10889902d8b8ba450db128f9cf019b34d6b91e0362a108085483","modelOptions":"{\"type\":\"testing.item.Task\",\"listId\":\"list-tasks\"}","invitation":"{\"swarmKey\":\"305b70cf46d0e22628d424fce23ea6f76bd9da44df8a3ed3fe70e56858b0bffa\",\"invitation\":\"878c110aaab9a7173e3562e882e10c4480c32789ff012733825034c1fa340be7\",\"hash\":\"b8f9fc83963153f63ae9e36871abed598f248d61\"}","__type_url":"dxos.protocol.bot.Spawn"}} +0ms
  bot-factory Downloading bot package: http://127.0.0.1:8888/ipfs//QmXf72DJYLNokVG7HMZnxeXoc3gLdQ8q5H5gK8D9zmR4Mn +7ms
  bot-factory Bot package downloaded: /Users/ashwinp/projects/wireline/incubator/dxos/botkit/out/bots/QmbwMajMxYsFrgZpLt7feSr88VvpAEJrrXwRBF1FwL6EoR +955ms
  bot-factory Spawned bot: {"pid":61969,"command":"/Users/ashwinp/projects/wireline/incubator/dxos/botkit/out/bots/QmbwMajMxYsFrgZpLt7feSr88VvpAEJrrXwRBF1FwL6EoR/main.bin","args":[],"wireEnv":{"WIRE_BOT_IPC_SERVER":"bot-61894","WIRE_BOT_TOPIC":"bd0f63cb1dad10889902d8b8ba450db128f9cf019b34d6b91e0362a108085483","WIRE_BOT_SPEC":"{\"type\":\"testing.item.Task\",\"listId\":\"list-tasks\"}","WIRE_BOT_INVITATION":"{\"swarmKey\":\"305b70cf46d0e22628d424fce23ea6f76bd9da44df8a3ed3fe70e56858b0bffa\",\"invitation\":\"878c110aaab9a7173e3562e882e10c4480c32789ff012733825034c1fa340be7\",\"hash\":\"b8f9fc83963153f63ae9e36871abed598f248d61\"}"},"topic":"bd0f63cb1dad10889902d8b8ba450db128f9cf019b34d6b91e0362a108085483","spec":"{\"type\":\"testing.item.Task\",\"listId\":\"list-tasks\"}","cwd":"/Users/ashwinp/projects/wireline/incubator/dxos/botkit/out/bots/QmbwMajMxYsFrgZpLt7feSr88VvpAEJrrXwRBF1FwL6EoR/.bots/d50e8a9f-f02c-4863-83b6-968749924ef3"} +19ms

Note: The bot package is downloaded to the botkit/out/bots/<CID> folder. Delete the botkit/out/bots directory to re-test the bot install flow later.

Add a new task from the CLI session. The spawned echo-bot will log the mutations.

[wire]> echo open --type="testing.item.Task" --args.listId="list-tasks"
[wire]> echo append --data.title="Hello World"
{"title":"Hello"}
[wire]> [{"id":"testing.item.Task/cd3aa78a-c64c-4480-82b8-e54115a2f5c8","properties":{"title":"Hello"}}]
[wire]>
[wire]> echo append --data.title="Hello World"
{"title":"Hello"}
[wire]> [{"id":"testing.item.Task/cd3aa78a-c64c-4480-82b8-e54115a2f5c8","properties":{"title":"Hello"}},{"id":"testing.item.Task/3a7703af-900b-424a-831a-712f8a0243ad","properties":{"title":"Hello"}}]
[wire]>

Spawned echo-bot:

  bot-factory:61969 [{"id":"testing.item.Task/cd3aa78a-c64c-4480-82b8-e54115a2f5c8","properties":{"title":"Hello"}}]
  bot-factory:61969  +0ms
  bot-factory:61969 [{"id":"testing.item.Task/cd3aa78a-c64c-4480-82b8-e54115a2f5c8","properties":{"title":"Hello"}},{"id":"testing.item.Task/3a7703af-900b-424a-831a-712f8a0243ad","properties":{"title":"Hello"}}]
  bot-factory:61969  +3s
2.20.2

2 years ago

2.20.3

2 years ago

2.20.4

2 years ago

2.20.0

2 years ago

2.20.1

2 years ago

2.19.0

2 years ago

2.18.3

2 years ago

2.18.4

2 years ago

2.18.1

2 years ago

2.18.2

2 years ago

2.18.0

2 years ago

2.17.0

2 years ago

2.16.9

2 years ago

2.16.8

2 years ago

2.16.7

2 years ago

2.16.5

2 years ago

2.16.6

2 years ago

2.16.3

2 years ago

2.16.4

2 years ago

2.16.1

2 years ago

2.16.2

2 years ago

2.11.4

2 years ago

2.11.5

2 years ago

2.11.3

2 years ago

2.16.0

2 years ago

2.13.14

2 years ago

2.13.13

2 years ago

2.13.12

2 years ago

2.13.11

2 years ago

2.13.10

2 years ago

2.15.0

2 years ago

2.14.3

2 years ago

2.14.1

2 years ago

2.14.2

2 years ago

2.14.0

2 years ago

2.13.8

2 years ago

2.13.9

2 years ago

2.13.6

2 years ago

2.13.7

2 years ago

2.13.4

2 years ago

2.13.5

2 years ago

2.13.2

2 years ago

2.13.3

2 years ago

2.13.0

2 years ago

2.13.1

2 years ago

2.12.0

2 years ago

2.12.3

2 years ago

2.12.4

2 years ago

2.12.1

2 years ago

2.12.2

2 years ago

2.11.1

2 years ago

2.10.0

2 years ago

2.11.1-alpha.0

2 years ago

2.11.3-alpha.0

2 years ago

2.10.0-alpha.0

2 years ago

2.11.0-alpha.0

2 years ago

2.9.5-alpha.0

2 years ago

2.11.2-alpha.0

2 years ago

2.10.0-beta.0

2 years ago

2.8.7-alpha.0

2 years ago

2.9.1-alpha.0

2 years ago

2.8.10-alpha.0

2 years ago

2.9.3-alpha.0

2 years ago

2.8.5-alpha.0

2 years ago

2.9.0-alpha.0

2 years ago

2.8.8-alpha.0

2 years ago

2.8.6-alpha.0

2 years ago

2.9.2-alpha.0

2 years ago

2.8.9-alpha.0

2 years ago

2.9.4-alpha.0

2 years ago

2.8.4-alpha.0

2 years ago

2.8.3-alpha.0

3 years ago

2.8.2-alpha.0

3 years ago

2.8.0-alpha.0

3 years ago

2.8.1-alpha.0

3 years ago

2.6.8-alpha.0

3 years ago

2.6.4-alpha.0

3 years ago

2.6.0-alpha.0

3 years ago

2.6.3-alpha.0

3 years ago

2.6.7-alpha.0

3 years ago

2.7.0-alpha.0

3 years ago

2.6.2-alpha.0

3 years ago

2.5.1-alpha.0

3 years ago

2.6.6-alpha.0

3 years ago

2.6.9-alpha.0

3 years ago

2.7.1-alpha.0

3 years ago

2.6.1-alpha.0

3 years ago

2.6.5-alpha.0

3 years ago

2.5.0-alpha.0

3 years ago

2.4.15-beta.0

3 years ago

2.4.15

3 years ago

2.4.15-alpha.0

3 years ago

2.4.14-alpha.0

3 years ago

2.4.12-alpha.0

3 years ago

2.4.13

3 years ago

2.4.13-beta.0

3 years ago

2.4.13-alpha.0

3 years ago

2.4.11-alpha.0

3 years ago

2.4.10-alpha.0

3 years ago

2.4.9-alpha.0

3 years ago

2.4.8-alpha.0

3 years ago

2.4.7-test.0

3 years ago

2.4.7

3 years ago

2.4.7-beta.0

3 years ago

2.4.7-alpha.0

3 years ago

2.4.5-alpha.0

3 years ago

2.4.6

3 years ago

2.4.6-beta.0

3 years ago

2.4.6-alpha.0

3 years ago

2.4.4

3 years ago

2.4.4-alpha.0

3 years ago

2.4.4-beta.0

3 years ago

2.4.3-alpha.0

3 years ago

2.4.3-beta.0

3 years ago

2.4.2-alpha.0

3 years ago

2.4.1

3 years ago

2.4.1-beta.0

3 years ago

2.4.1-alpha.0

3 years ago

2.4.0-alpha.0

3 years ago

2.3.1-beta.0

3 years ago

2.3.1-alpha.0

3 years ago

2.3.0-alpha.0

3 years ago

2.2.2-alpha.0

3 years ago

2.2.1-alpha.0

3 years ago

2.2.0-alpha.0

3 years ago

2.1.6-alpha.0

3 years ago

2.1.5-alpha.0

3 years ago

2.1.3-alpha.0

3 years ago

2.1.4-alpha.0

3 years ago

2.1.2-alpha.0

3 years ago

2.0.62-alpha.0

3 years ago

2.0.58-alpha.0

3 years ago

2.1.1-alpha.0

3 years ago

2.0.60-alpha.0

3 years ago

2.0.59-alpha.0

3 years ago

2.0.61-alpha.0

3 years ago

2.1.0-alpha.0

3 years ago

2.0.57-alpha.0

3 years ago

2.0.56-alpha.0

3 years ago

2.0.55-alpha.0

3 years ago

2.0.54-alpha.0

3 years ago

2.0.49-alpha.0

3 years ago

2.0.50-alpha.0

3 years ago

2.0.45-alpha.0

3 years ago

2.0.53-alpha.0

3 years ago

2.0.48-alpha.0

3 years ago

2.0.44-alpha.0

3 years ago

2.0.52-alpha.0

3 years ago

2.0.47-alpha.0

3 years ago

2.0.43-alpha.0

3 years ago

2.0.51-alpha.0

3 years ago

2.0.46-alpha.0

3 years ago

2.0.42-alpha.0

3 years ago

2.0.41-alpha.0

3 years ago

2.0.40-alpha.0

3 years ago

2.0.39-alpha.0

3 years ago

2.0.38-alpha.0

3 years ago

2.0.37-alpha.0

3 years ago

2.0.36-alpha.0

3 years ago

2.0.35-alpha.0

3 years ago

2.0.34-alpha.0

3 years ago

2.0.33-alpha.0

3 years ago

2.0.32

3 years ago

2.0.32-alpha.0

3 years ago

2.0.32-beta.0

3 years ago

2.0.30-alpha.0

3 years ago

2.0.30-beta.0

3 years ago

2.0.31-alpha.0

3 years ago

2.0.29-alpha.0

3 years ago

2.0.28-alpha.0

3 years ago

2.0.27-alpha.0

3 years ago

2.0.26-alpha.0

3 years ago

2.0.25-alpha.0

3 years ago

2.0.24-alpha.0

3 years ago

2.0.24

3 years ago

2.0.24-beta.0

3 years ago

2.0.23-alpha.0

3 years ago

2.0.22-alpha.0

3 years ago

2.0.21-alpha.0

3 years ago

2.0.20

3 years ago

2.0.20-beta.0

3 years ago

2.0.20-alpha.0

3 years ago

2.0.19-alpha.0

3 years ago

2.0.18-alpha.0

3 years ago

2.0.17-alpha.0

3 years ago

2.0.16-beta.0

3 years ago

2.0.17-beta.0

3 years ago

2.0.16

3 years ago

2.0.17

3 years ago

2.0.16-alpha.0

3 years ago

2.0.15-alpha.0

3 years ago

2.0.14-alpha.0

3 years ago

2.0.13-alpha.0

3 years ago

2.0.9-alpha.0

3 years ago

2.0.10-alpha.0

3 years ago

2.0.12-alpha.0

3 years ago

2.0.8

3 years ago

2.0.8-beta.0

3 years ago

2.0.8-alpha.0

3 years ago

2.0.7

3 years ago

2.0.7-alpha.0

3 years ago

2.0.6-alpha.0

3 years ago

2.0.5-alpha.0

3 years ago

2.0.4-alpha.0

4 years ago

2.0.3-beta.0

4 years ago

2.0.3

4 years ago

2.0.2

4 years ago

2.0.2-alpha.0

4 years ago

2.0.3-alpha.0

4 years ago

2.0.2-beta.0

4 years ago

2.0.1-alpha.0

4 years ago

1.1.0-beta.11

4 years ago

1.1.0-beta.10

4 years ago

1.1.0-beta.9

4 years ago

1.1.0-beta.8

4 years ago

1.1.0-beta.7

4 years ago

1.1.0-beta.6

4 years ago

1.1.0-beta.5

4 years ago

1.1.0-beta.4

4 years ago

1.1.0-beta.2

4 years ago

1.1.0-beta.3

4 years ago

1.1.0-beta.1

4 years ago

1.0.1-moon.8

4 years ago

1.1.0-beta.0

4 years ago

1.0.1-moon.7

4 years ago

1.0.1-moon.6

4 years ago

1.0.1-moon.5

4 years ago

1.0.1-moon.4

4 years ago

1.0.1-moon.3

4 years ago

1.0.1-moon.1

4 years ago

1.0.1-moon.0

4 years ago

1.0.1-moon.2

4 years ago

1.0.1-beta.31

4 years ago

1.0.1-beta.30

4 years ago

1.0.1-beta.29

4 years ago

1.0.1-beta.28

4 years ago

1.0.1-beta.26

4 years ago

1.0.1-beta.27

4 years ago

1.0.1-beta.25

4 years ago

1.0.1-beta.24

4 years ago

1.0.1-beta.23

4 years ago

1.0.1-beta.22

4 years ago

1.0.1-beta.21

4 years ago

1.0.1-beta.20

4 years ago

1.0.1-beta.19

4 years ago

1.0.1-beta.18

4 years ago

1.0.1-beta.17

4 years ago

1.0.1-beta.14

4 years ago

1.0.1-beta.15

4 years ago

1.0.1-beta.16

4 years ago

1.0.1-beta.13

4 years ago

1.0.1-beta.12

4 years ago

1.0.1-beta.11

4 years ago

1.0.1-beta.10

4 years ago

1.0.1-beta.9

4 years ago

1.0.1-beta.8

4 years ago

1.0.1-beta.7

4 years ago

1.0.1-beta.6

4 years ago

1.0.1-beta.5

4 years ago

1.0.1-beta.4

4 years ago

1.0.1-beta.3

4 years ago

1.0.1-beta.2

4 years ago

1.0.1-beta.1

4 years ago