@botiverse/oar-cli 0.13.1 → 0.13.3

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.
Files changed (2) hide show
  1. package/README.md +46 -41
  2. package/package.json +2 -2
package/README.md CHANGED
@@ -13,45 +13,48 @@ oar run claude "What does this repo do?"
13
13
 
14
14
  ## Commands
15
15
 
16
+ Commands that take an optional `[runtime]` cover every registered runtime when
17
+ it is omitted.
18
+
16
19
  - `oar list`: registered runtimes and their capabilities.
17
20
  - `oar installation [runtime]` (alias `detect`): probe local installation
18
21
  and version, no account or usage I/O.
19
22
  - `oar usage [runtime]`: account usage for each available installation.
20
23
  - `oar models [runtime]`: models each available installation can run right
21
- now (login state, plan, and configured providers included); `--json` prints
22
- the `ListModelsResult` per runtime, `--timeout <ms>` bounds each query.
23
- The first column after the runtime is the `id` to pass to `oar run --model`.
24
+ now (login state, plan, and configured providers included). The first
25
+ column after the runtime is the `id` to pass to `oar run --model`; `--json`
26
+ prints the `ListModelsResult` per runtime, `--timeout <ms>` bounds each
27
+ query.
24
28
  - `oar run <runtime> <prompt>`: run one turn in a fresh (or `--resume`d)
25
- session and show its progress; the exit code is 0 only when the turn
26
- completed.
29
+ session and show its progress; [below](#oar-run-the-run-and-verify-entrypoint).
27
30
  - `oar upgrade [runtime]`: upgrade each available installation with the
28
31
  runtime's own updater, one at a time; `--check` only reports the version
29
- the updater would install, `--json` prints the reports. The exit code is 1
30
- when an upgrade failed or left the version unchanged. See
31
- [runtime updates](../../docs/spec/update.md).
32
+ the updater would install, `--json` prints the reports, `--timeout <ms>`
33
+ bounds each runtime. The exit code is 1 when an upgrade failed or left the
34
+ version unchanged, or when a runtime could not be probed. See [runtime updates](https://github.com/botiverse/oar/blob/main/docs/spec/update.md).
32
35
  - `oar mcp`: serve subagents over MCP on stdio, so an agent (claude, codex,
33
36
  any MCP client) can delegate tasks to other runtimes: `run` waits for a
34
- subagent's turn, `spawn` / `send` / `wait` work in parallel. Flags
37
+ subagent's turn, `spawn` / `send` / `wait` work in parallel, and
38
+ `runtimes`, `list`, `interrupt` and `close` complete the tool set. Flags
35
39
  `--runtimes`, `--max-running`, `--max-depth`, `--cwd`, `--log-dir`.
36
40
  Subagents run with full permissions. A codex agent starts MCP servers with
37
41
  a reduced environment, so give its `oar` entry
38
42
  `env_vars = ["OAR_SUBAGENT_DEPTH"]` for the nesting limit to hold. See
39
- [subagents](../../docs/spec/subagents.md).
43
+ [subagents](https://github.com/botiverse/oar/blob/main/docs/spec/subagents.md).
40
44
  - `oar skills|mcps|tools [runtime]`: native inventories, see
41
45
  [below](#native-inventories).
42
46
 
43
47
  ## `oar run`: the run-and-verify entrypoint
44
48
 
45
- By default `run` prints readable progress from the session's `events()`,
46
- after one opening line naming the session (the id `--resume` takes; it
47
- reads `[resumed <id> …]` on a resumed run) and the
48
- model and effort the runtime reported while opening, when it did (the
49
- `model()` / `effort()` folds, never the flags echoed):
50
- assistant text verbatim (coalesced into blocks via `coalesceText`), and
51
- everything else as a bracketed meta line (`[compacting: threshold]`,
52
- `[compacted]` or `[compaction failed] reason`, `[retry 2/3] reason`,
53
- `[waiting for app: type]`; tool progress deltas and oar's own answers to
54
- app requests print nothing):
49
+ By default `run` prints one opening line naming the session (the id
50
+ `--resume` takes; `[resumed <id> …]` on a resumed run) and the model and
51
+ effort the runtime reported while opening, when it did (the `model()` /
52
+ `effort()` folds, never the flags echoed). Then it prints readable progress
53
+ from the session's `events()`: assistant text verbatim (coalesced into blocks
54
+ via `coalesceText`), and everything else as a bracketed meta line
55
+ (`[compacting: threshold]`, `[compacted]` or `[compaction failed] reason`,
56
+ `[retry 2/3] reason`, `[waiting for app: type]`; tool progress deltas and
57
+ oar's own answers to app requests print nothing):
55
58
 
56
59
  ```
57
60
  [session 01a0e982-… · model gpt-6-luna · effort low]
@@ -62,6 +65,9 @@ The repo is a pnpm workspace...
62
65
  [turn completed]
63
66
  ```
64
67
 
68
+ The exit code is 0 only when the turn completed. The first Ctrl-C interrupts
69
+ the turn and exits 130; a second one disposes the session at once.
70
+
65
71
  Flags:
66
72
 
67
73
  - `--model <model>`: runtime-native model identifier.
@@ -80,40 +86,40 @@ Flags:
80
86
  of progress (frames with their verbatim `native` payload and oar's
81
87
  `events`, plus the request/response records of the run), and a final
82
88
  `{"outcome": ...}` line.
83
- - `--record <file>`: additionally write the run as an `oar-voyage/3` JSONL
84
- log (works in both output modes; the log always carries every record).
89
+ - `--record <file>`: also write the run as an `oar-voyage/3` JSONL log (in
90
+ both output modes; the log always carries every record).
85
91
 
86
92
  A run without a record is an anecdote. When a run is meant to be evidence
87
93
  (verifying a doc claim, reproducing a bug, checking a runtime's live
88
94
  behavior), pass `--record` so the claim points at a log anyone can read:
89
95
 
90
96
  1. **Run live, don't infer.** A claim about runtime behavior is verified by
91
- actually running it, not by reading code or remembering last time.
92
- 2. **Record the evidence.** Keep the voyage log and reference it in the
97
+ running it, not by reading code or remembering last time.
98
+ 2. **Record the evidence.** Keep the voyage log and cite it in the
93
99
  conclusion, so "it works" is checkable later.
94
100
  3. **Triage what you see.** If reality differs from the docs, decide which
95
- moved: the runtime changed → fix the doc; oar regressed → file the bug
96
- and pin it with a test (`docs/development.md` has the test ladder).
101
+ moved: the runtime changed, so fix the doc; or oar regressed, so file the
102
+ bug and pin it with a test (`docs/development.md` has the test layers).
97
103
  4. **Report honest outcomes.** A turn that failed or aborted is a finding,
98
104
  not something to retry until it looks clean: the exit code and the
99
- runtime's own `turn_ended` event in the log say what actually happened.
105
+ runtime's own `turn_ended` event in the log say what happened.
100
106
 
101
107
  ## The `oar-voyage/3` format
102
108
 
103
109
  `--record` writes one JSON object per line, discriminated by `kind`. The
104
110
  format is defined and owned by `@botiverse/oar`, which exports the line
105
- builders and `openVoyage` recorder; other tools (such as the
111
+ builders and the `openVoyage` recorder; other tools (such as the
106
112
  [oar-coxswain](https://github.com/botiverse/oar-coxswain) cockpit) may write
107
- or read the same format as consumers.
113
+ or read it as consumers.
108
114
 
109
115
  - Line 1 is always the header:
110
116
  `{"kind":"header","format":"oar-voyage/3","runtime","model?","effort?","cwd","sessionId","startedAt","recorder"}`
111
117
  (`model` and `effort` are omitted when none was requested; `recorder`
112
118
  names the writer, e.g. `oar-cli/<version>`).
113
119
  - `{"kind":"record","record":{...}}`: one `RawEvent` verbatim, no
114
- filtering or re-timestamping. Human inputs are in the stream already as
115
- `request` records, so the format has no separate submission line; the
116
- `seq` on each record is the order.
120
+ filtering or re-timestamping. Human inputs are already in the stream as
121
+ `request` records, so there is no separate submission line; the `seq` on
122
+ each record is the order.
117
123
  - `{"kind":"end","at","reason"}`: always the last line; a log without it
118
124
  is a truncated capture.
119
125
 
@@ -121,7 +127,6 @@ All timestamps are Unix epoch milliseconds on the same clock as each
121
127
  record's `receivedAt`. Lines are written synchronously in arrival order, so
122
128
  a crashed run still leaves a readable prefix.
123
129
 
124
-
125
130
  ## Native inventories
126
131
 
127
132
  ```sh
@@ -130,11 +135,11 @@ oar mcps claude --cwd /path/to/project --timeout 15000
130
135
  oar tools pi
131
136
  ```
132
137
 
133
- Each command prints JSON. Omit the runtime to query all runtimes. The directory
134
- defaults to the current working directory. These are independent discovery
135
- queries; no existing agent is inspected. Check `kind`, `view` and `partial`
136
- before displaying results: `mcp-only` excludes built-in tools, unsupported
137
- queries are not empty lists, and a pending/failed MCP connection can produce a
138
- partial catalog. Native startup can load extensions and connect configured MCP
139
- servers; no model prompt is sent.
140
- See the [inventory contract](../../docs/spec/inventory.md).
138
+ Each command prints JSON. `--cwd` defaults to the current working directory;
139
+ `--timeout <ms>` bounds each runtime. These are independent discovery
140
+ queries: no existing agent is inspected and no model prompt is sent, though
141
+ native startup can load extensions and connect configured MCP servers. Check
142
+ `kind`, `view` and `partial` before displaying results: `mcp-only` excludes
143
+ built-in tools, unsupported queries are not empty lists, and a pending or
144
+ failed MCP connection can produce a partial catalog. See the
145
+ [inventory contract](https://github.com/botiverse/oar/blob/main/docs/spec/inventory.md).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@botiverse/oar-cli",
3
- "version": "0.13.1",
3
+ "version": "0.13.3",
4
4
  "description": "Command-line interface for controlling and observing agent runtimes with OAR",
5
5
  "type": "module",
6
6
  "bin": {
@@ -12,7 +12,7 @@
12
12
  ],
13
13
  "dependencies": {
14
14
  "commander": "^12.1.0",
15
- "@botiverse/oar": "0.13.1"
15
+ "@botiverse/oar": "0.13.3"
16
16
  },
17
17
  "publishConfig": {
18
18
  "access": "public"