onemessagebus-cli 0.4.0__py3-none-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- onemessagebus_cli-0.4.0.data/scripts/onemessagebus.exe +0 -0
- onemessagebus_cli-0.4.0.dist-info/METADATA +102 -0
- onemessagebus_cli-0.4.0.dist-info/RECORD +6 -0
- onemessagebus_cli-0.4.0.dist-info/WHEEL +4 -0
- onemessagebus_cli-0.4.0.dist-info/licenses/LICENSE +21 -0
- onemessagebus_cli-0.4.0.dist-info/sboms/onemessagebus-cli.cyclonedx.json +3870 -0
|
Binary file
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: onemessagebus-cli
|
|
3
|
+
Version: 0.4.0
|
|
4
|
+
Classifier: Development Status :: 3 - Alpha
|
|
5
|
+
Classifier: Environment :: Console
|
|
6
|
+
Classifier: Intended Audience :: Developers
|
|
7
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
8
|
+
Classifier: Operating System :: OS Independent
|
|
9
|
+
Classifier: Programming Language :: Rust
|
|
10
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Summary: A typed NDJSON message bus: schema registry verbs and stream verbs over the agent profile.
|
|
13
|
+
Keywords: ndjson,events,message-bus,schema,cli
|
|
14
|
+
Home-Page: https://github.com/nickderobertis/onemessagebus
|
|
15
|
+
Author: Nick DeRobertis
|
|
16
|
+
License: MIT
|
|
17
|
+
Requires-Python: >=3.9
|
|
18
|
+
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
19
|
+
Project-URL: Homepage, https://github.com/nickderobertis/onemessagebus
|
|
20
|
+
Project-URL: Repository, https://github.com/nickderobertis/onemessagebus
|
|
21
|
+
|
|
22
|
+
# onemessagebus
|
|
23
|
+
|
|
24
|
+
A typed NDJSON message bus for agent communication — and for anything else
|
|
25
|
+
that speaks in events. One envelope, one filter grammar, payload bounds and
|
|
26
|
+
redaction, a schema registry with version read-sets, and an emitter and reader
|
|
27
|
+
over streams, generic over the **vocabulary** a consumer declares.
|
|
28
|
+
|
|
29
|
+
Three artifacts:
|
|
30
|
+
|
|
31
|
+
- **`onemessagebus`** — the core library. It knows the shape of an envelope and
|
|
32
|
+
none of the words: which sources exist, which label keys are reserved and
|
|
33
|
+
which top-level dimensions an envelope carries are a `Vocabulary`'s to
|
|
34
|
+
declare. `Open` reserves nothing; a vocabulary of your own is proven through
|
|
35
|
+
the same conformance table the agent one is.
|
|
36
|
+
- **`onemessagebus-agent`** — the agent profile: the sources `agentgraph`,
|
|
37
|
+
`vcs`, `pipeline`; the `phase` dimension; the reserved labels `run_id`,
|
|
38
|
+
`round`, `node`, `step`, `member`, `persona`; and the schema families the
|
|
39
|
+
stack registers (`agent.event-envelope` at `[2, 1]`, `agent.reply-envelope`
|
|
40
|
+
at `[3, 2]`). Its types serialize to the bytes `oneagentgraph`, `onevcs` and
|
|
41
|
+
`onepipeline` write today, which the recorded streams under
|
|
42
|
+
`crates/onemessagebus-agent/tests/recorded/` prove byte for byte.
|
|
43
|
+
- **`onemessagebus`**, the binary — `schema list|check|gen|register` over the
|
|
44
|
+
registry, `events merge|emit` over streams with `--profile agent` (the
|
|
45
|
+
default) or `--profile open`, `deliver` and `inbox carried` over the inbox —
|
|
46
|
+
a typed channel into a running process whose sender learns what the receiver
|
|
47
|
+
did with each message — and `send`, `next`, `reply`, `subscribe` and `status`
|
|
48
|
+
over durable queues kept on a transport a configuration names, with
|
|
49
|
+
`transports` listing the kinds a transport can be, `ask` raising a question and
|
|
50
|
+
waiting for the one reply that echoes its correlation, `validate` judging a
|
|
51
|
+
record by a queue's validators before anything is sent, and `serve` answering a
|
|
52
|
+
`onejudge` member's frames as its judge side. The local transport keeps
|
|
53
|
+
the planner channel's files byte-compatible with `onepipeline`, and a
|
|
54
|
+
distributed one is a plugin rather than a consumer change.
|
|
55
|
+
|
|
56
|
+
## Install the command line
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
pip install onemessagebus-cli # PyPI wheel, no toolchain needed
|
|
60
|
+
npm install -g onemessagebus-cli # npm launcher, no toolchain needed
|
|
61
|
+
cargo install --git https://github.com/nickderobertis/onemessagebus onemessagebus-cli --locked
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
$ echo '{"note":"hello"}' | onemessagebus events emit run.ndjson --kind note-left --stream s-1 --source vcs --label run_id=R
|
|
66
|
+
{"v":1,"ts":"2026-09-13T06:16:27.838Z","stream":"s-1","seq":1,"source":"vcs","kind":"note-left","labels":{"run_id":"R"},"payload":{"note":"hello"},"artifacts":[]}
|
|
67
|
+
$ onemessagebus events merge run.ndjson other.ndjson --filter '{"include":[{"source":"vcs"}]}' --format text
|
|
68
|
+
$ onemessagebus schema check agent.event-envelope@2 --file envelope.json
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
<!-- llmlint: ignore-block[no_redundant_instruction_pointers] this README is also the PyPI page of the `onemessagebus-cli` wheel (pyproject.toml's `readme`) and the repository's front page, read by someone who has installed or found the tool and never opens AGENTS.md; these links are how that reader reaches the command line, the wire and the contract. -->
|
|
72
|
+
[`docs/cli.md`](docs/cli.md) is the whole command line; [`docs/wire.md`](docs/wire.md)
|
|
73
|
+
is the wire; [`docs/contract.md`](docs/contract.md) is the approved contract the
|
|
74
|
+
consumers restate from.
|
|
75
|
+
<!-- llmlint: ignore-end[no_redundant_instruction_pointers] -->
|
|
76
|
+
|
|
77
|
+
## Use the library
|
|
78
|
+
|
|
79
|
+
```rust
|
|
80
|
+
use onemessagebus_agent::{Emitter, EventFilter, Labels, Source};
|
|
81
|
+
use serde_json::Map;
|
|
82
|
+
|
|
83
|
+
let emitter = Emitter::new("run-1", Source::Vcs, Box::new(std::io::stdout()))
|
|
84
|
+
.with_labels(Labels { run_id: Some("R".into()), ..Labels::default() })
|
|
85
|
+
.with_filter(EventFilter::parse(r#"{"exclude":[{"kind":"heartbeat"}]}"#)?);
|
|
86
|
+
let envelope = emitter.emit("push", Map::new());
|
|
87
|
+
assert_eq!(envelope.seq, 1);
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Every wire value is a Rust type with `serde` and `schemars` derivations, and
|
|
91
|
+
the public API is stated in [`docs/contract.md`](docs/contract.md).
|
|
92
|
+
|
|
93
|
+
## Develop
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
just bootstrap # from a clean clone
|
|
97
|
+
just check # the deterministic gate: format, lint, tests incl. the binary journeys, docs, coverage
|
|
98
|
+
just gate # check plus the diff-scoped LLM-judge tier; the bar before a push
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
`AGENTS.md` is the instruction layer; `just --list` is the command surface.
|
|
102
|
+
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
onemessagebus_cli-0.4.0.data/scripts/onemessagebus.exe,sha256=kVKRnSS4CWCRfF6lyY9jTAUlYhY74cXRtmB5tMWdNQY,8127488
|
|
2
|
+
onemessagebus_cli-0.4.0.dist-info/METADATA,sha256=JOlt66uaGcsdLsx0rBF9Mrc85b4YvStrFv_suCj1Kfo,5289
|
|
3
|
+
onemessagebus_cli-0.4.0.dist-info/WHEEL,sha256=2zDlIYIdD4m4N3p5DVEG3iJhGLdhsBQgdH-FqVkAur8,94
|
|
4
|
+
onemessagebus_cli-0.4.0.dist-info/licenses/LICENSE,sha256=JeBGdcXIUkoTZEHhkKd-FmKgdgumkH509Ob1QWJomVE,1072
|
|
5
|
+
onemessagebus_cli-0.4.0.dist-info/sboms/onemessagebus-cli.cyclonedx.json,sha256=XykcA1oUFUYsL4nZZN_dxK3ewbkkEMOnDrGCYB_EfW0,122514
|
|
6
|
+
onemessagebus_cli-0.4.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Nick DeRobertis
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|