Implement SimpleBot native client (#86)
Some checks failed
Native code generation / deterministic (push) Successful in 18m9s
Imaging and meshing gate / native (push) Successful in 5m45s
JPEG 2000 feature / linux (push) Successful in 2m45s
Native Rust workspace compile / compile (push) Has been cancelled
Skia feature / linux (push) Successful in 31m33s
Some checks failed
Native code generation / deterministic (push) Successful in 18m9s
Imaging and meshing gate / native (push) Successful in 5m45s
JPEG 2000 feature / linux (push) Successful in 2m45s
Native Rust workspace compile / compile (push) Has been cancelled
Skia feature / linux (push) Successful in 31m33s
This commit is contained in:
@@ -8,7 +8,7 @@ here so a source entry is never mistaken for a completed port.
|
||||
| Binary | Upstream project | Status |
|
||||
| --- | --- | --- |
|
||||
| `osd-inspector` | OSDInspector | Implemented and tested offline |
|
||||
| `simple-bot` | SimpleBot | Pending milestone 11 issue #86 |
|
||||
| `simple-bot` | SimpleBot | Implemented with live and deterministic fake-grid modes |
|
||||
| `packet-dump` | PacketDump | Pending milestone 11 issue #87 |
|
||||
| `prim-inspector` | PrimInspector | Pending milestone 11 issue #88 |
|
||||
| `inventory-explorer` | InventoryExplorer | Pending milestone 11 issue #89 |
|
||||
@@ -60,3 +60,43 @@ with:
|
||||
cargo test -p libremetaverse-programs --test osd_inspector_cli --locked
|
||||
cargo test --manifest-path tests/compat/Cargo.toml --test structured_data --locked
|
||||
```
|
||||
|
||||
## SimpleBot
|
||||
|
||||
`simple-bot` is an asynchronous native Rust client with the command surface of
|
||||
the upstream example. A live session accepts the original positional
|
||||
credentials, or reads them from the environment:
|
||||
|
||||
```text
|
||||
simple-bot FIRSTNAME LASTNAME PASSWORD [--login-uri URL]
|
||||
GRID_FIRST_NAME=... GRID_LAST_NAME=... GRID_PASSWORD=... simple-bot
|
||||
```
|
||||
|
||||
`GRID_LOGIN_URL` supplies the endpoint when `--login-uri` is absent, and
|
||||
`--login-timeout-seconds` bounds login to 30 seconds by default. Credentials,
|
||||
authorization values, capability URLs, and token values are redacted from
|
||||
output. After login the bot answers `help`/`?`, `where`/`location`, `sit`,
|
||||
`stand`, `dance`, `fly`, `walk`, `jump`, and `hello`/`hi`/`hey` instant
|
||||
messages. It also greets other avatars that say hello in local chat. Ctrl-C
|
||||
cancels pending greetings and login work, releases an in-progress jump,
|
||||
unsubscribes event handlers, logs out, and disposes the client before exit.
|
||||
|
||||
For offline validation, `--fake-script FILE` runs the same command handlers
|
||||
against a deterministic fake grid. Scripts contain no credentials. Blank
|
||||
lines and lines beginning with `#` are ignored; remaining lines use one of:
|
||||
|
||||
```text
|
||||
im<TAB>source-uuid<TAB>source-name<TAB>message
|
||||
chat<TAB>source-uuid<TAB>source-name<TAB>message
|
||||
status<TAB>message
|
||||
```
|
||||
|
||||
The reader accepts at most 1 MiB, 1,024 events, 256-byte names, and 4,096-byte
|
||||
messages. The fake transcript records every client call, uses the real DANCE1
|
||||
UUID, and finishes with zero active tasks and sockets. Run the issue-focused
|
||||
suite and the related runtime compatibility cases with:
|
||||
|
||||
```sh
|
||||
cargo test -p libremetaverse-programs --test simple_bot_cli --locked
|
||||
cargo test --manifest-path tests/compat/Cargo.toml --test core_runtime_shims --locked
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user