Skip to content

Conversation

@JamesPiechota
Copy link
Collaborator

No description provided.

samcamwilliams and others added 30 commits July 25, 2025 18:11
The order of invocation was making it fail as one case was getting skipped.
samcamwilliams and others added 29 commits August 18, 2025 16:45
This commit adds the `[email protected]` device, allowing for key and value searches for messages across HyperBEAM stores using a simple AO-Core HTTP interface. As the moduledoc describes, the interface is as follows:

```
A discovery engine for searching for and returning messages found in
a node's cache, through supported stores.

This device supports various modes of matching, including:

- `all' (default): Match all keys in the request message.
- `base': Match all keys in the base message.
- `only': Match only the key(s) specified in the `only' key.

The `only' key can be a binary, a map, or a list of keys. If it is a binary,
it is split on commas to get a list of keys to search for. If it is a message,
it is used directly as the match spec. If it is a list, it is assumed to be
a list of keys that we should select from the request or base message and
use as the match spec.

The `return' key can be used to specify the type of data to return.

- `count': Return the number of matches.
- `paths': Return the paths of the matches in a list.
- `messages': Return the messages associated with each match in a list.
- `first-path': Return the first path of the matches.
- `first-message': Return the first message of the matches.
- `boolean': Return a boolean indicating whether any matches were found.
```

Presently, only the LMDB store (HyperBEAM's default) offers the necessary querying engine.

This feature is intended as a baseline for future work that offers full support for Arweave and AO GraphQL-based search.
feat: Rich querying of HyperBEAM stores
impr: `[email protected]` improvements, fixing `committed` key generation
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants