@botiverse/oar-cli 0.1.4 → 0.3.0
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.
- package/README.md +15 -11
- package/dist/index.js +14 -10
- package/dist/index.js.map +1 -1
- package/dist/progress.d.ts +2 -2
- package/dist/progress.d.ts.map +1 -1
- package/dist/progress.js +49 -48
- package/dist/progress.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -25,8 +25,12 @@ oar run claude "What does this repo do?"
|
|
|
25
25
|
|
|
26
26
|
## `oar run`: the run-and-verify entrypoint
|
|
27
27
|
|
|
28
|
-
By default `run` prints readable progress
|
|
29
|
-
|
|
28
|
+
By default `run` prints readable progress from the session's `events()`:
|
|
29
|
+
assistant text verbatim (coalesced into blocks via `coalesceText`), and
|
|
30
|
+
everything else as a bracketed meta line (`[compacting: threshold]`,
|
|
31
|
+
`[compacted]` or `[compaction failed] reason`, `[retry 2/3] reason`,
|
|
32
|
+
`[waiting for app: type]`; tool progress deltas and oar's own answers to
|
|
33
|
+
app requests print nothing):
|
|
30
34
|
|
|
31
35
|
```
|
|
32
36
|
[thinking] The user wants...
|
|
@@ -39,11 +43,11 @@ The repo is a pnpm workspace...
|
|
|
39
43
|
Flags:
|
|
40
44
|
|
|
41
45
|
- `--model <model>`: runtime-native model identifier.
|
|
42
|
-
- `--json`: print the session records as JSON lines instead
|
|
43
|
-
progress (
|
|
44
|
-
plus the request/response records of the run), and a final
|
|
46
|
+
- `--json`: print the session records (`RawEvent`s) as JSON lines instead
|
|
47
|
+
of progress (frames with their verbatim `native` payload and oar's
|
|
48
|
+
`events`, plus the request/response records of the run), and a final
|
|
45
49
|
`{"outcome": ...}` line.
|
|
46
|
-
- `--record <file>`: additionally write the run as an `oar-voyage/
|
|
50
|
+
- `--record <file>`: additionally write the run as an `oar-voyage/3` JSONL
|
|
47
51
|
log (works in both output modes; the log always carries every record).
|
|
48
52
|
|
|
49
53
|
A run without a record is an anecdote. When a run is meant to be evidence
|
|
@@ -59,9 +63,9 @@ behavior), pass `--record` so the claim points at a log anyone can read:
|
|
|
59
63
|
and pin it with a test (`docs/development.md` has the test ladder).
|
|
60
64
|
4. **Report honest outcomes.** A turn that failed or aborted is a finding,
|
|
61
65
|
not something to retry until it looks clean: the exit code and the
|
|
62
|
-
runtime's own `turn_ended`
|
|
66
|
+
runtime's own `turn_ended` event in the log say what actually happened.
|
|
63
67
|
|
|
64
|
-
## The `oar-voyage/
|
|
68
|
+
## The `oar-voyage/3` format
|
|
65
69
|
|
|
66
70
|
`--record` writes one JSON object per line, discriminated by `kind`. The
|
|
67
71
|
format is defined and owned by `@botiverse/oar`, which exports the line
|
|
@@ -70,10 +74,10 @@ builders and `openVoyage` recorder; other tools (such as the
|
|
|
70
74
|
or read the same format as consumers.
|
|
71
75
|
|
|
72
76
|
- Line 1 is always the header:
|
|
73
|
-
`{"kind":"header","format":"oar-voyage/
|
|
77
|
+
`{"kind":"header","format":"oar-voyage/3","runtime","model?","cwd","sessionId","startedAt","recorder"}`
|
|
74
78
|
(`model` is omitted when none was requested; `recorder` names the writer,
|
|
75
|
-
e.g. `oar-cli/0.
|
|
76
|
-
- `{"kind":"record","record":{...}}`: one `
|
|
79
|
+
e.g. `oar-cli/0.2.0`).
|
|
80
|
+
- `{"kind":"record","record":{...}}`: one `RawEvent` verbatim, no
|
|
77
81
|
filtering or re-timestamping. Human inputs are in the stream already as
|
|
78
82
|
`request` records, so the format has no separate submission line; the
|
|
79
83
|
`seq` on each record is the order.
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { readFileSync } from "node:fs";
|
|
3
3
|
import { Command } from "commander";
|
|
4
|
-
import {
|
|
4
|
+
import { awaitTurnEnd, openVoyage, runtimes, } from "@botiverse/oar";
|
|
5
5
|
import { readModels, renderModels } from "./models.js";
|
|
6
6
|
import { createProgressRenderer } from "./progress.js";
|
|
7
7
|
// Read the version from this package's own manifest so `--version` can never
|
|
@@ -51,7 +51,7 @@ program
|
|
|
51
51
|
.action(async (id) => {
|
|
52
52
|
const result = await Promise.all(selected(id).map(async (runtime) => {
|
|
53
53
|
if (runtime.accountUsage === undefined || runtime.installation === undefined) {
|
|
54
|
-
return { runtimeId: runtime.id, accountUsage: { kind: "unsupported" } };
|
|
54
|
+
return { runtimeId: runtime.id, accountUsage: { kind: "unsupported", reason: "capability_unavailable" } };
|
|
55
55
|
}
|
|
56
56
|
const installation = await runtime.installation();
|
|
57
57
|
if (installation.kind !== "available") {
|
|
@@ -93,19 +93,18 @@ const jsonObserver = (record) => {
|
|
|
93
93
|
};
|
|
94
94
|
function progressObserver(runtimeId) {
|
|
95
95
|
const render = createProgressRenderer(runtimeId);
|
|
96
|
-
|
|
97
|
-
for (const line of render(
|
|
96
|
+
return (event) => {
|
|
97
|
+
for (const line of render(event)) {
|
|
98
98
|
process.stdout.write(`${line}\n`);
|
|
99
99
|
}
|
|
100
100
|
};
|
|
101
|
-
return aggregateDeltas(renderTo, { maxHoldMs: 250 });
|
|
102
101
|
}
|
|
103
102
|
program
|
|
104
103
|
.command("run <runtime> <prompt>")
|
|
105
104
|
.description("Run one turn in a fresh session and show its progress")
|
|
106
105
|
.option("--model <model>", "runtime-native model identifier")
|
|
107
106
|
.option("--json", "print the session records as JSON lines instead of progress")
|
|
108
|
-
.option("--record <file>", "write the run as an oar-voyage/
|
|
107
|
+
.option("--record <file>", "write the run as an oar-voyage/3 JSONL log")
|
|
109
108
|
.action(async (id, prompt, flags) => {
|
|
110
109
|
const runtime = runtimes.require(id);
|
|
111
110
|
if (runtime.installation === undefined) {
|
|
@@ -133,14 +132,19 @@ program
|
|
|
133
132
|
startedAt: Date.now(),
|
|
134
133
|
recorder: `oar-cli/${packageVersion()}`,
|
|
135
134
|
});
|
|
136
|
-
const print = flags.json === true ? jsonObserver : progressObserver(id);
|
|
137
135
|
// Replay from the start so the log and the output carry the records the
|
|
138
136
|
// adapter stamped while opening (model, handshake frames), not only what
|
|
139
137
|
// arrives after this subscription.
|
|
140
|
-
session.
|
|
138
|
+
const cursor = { sessionId: session.id, afterSeq: -1 };
|
|
139
|
+
session.rawEvents((record) => {
|
|
141
140
|
recorder?.record(record);
|
|
142
|
-
|
|
143
|
-
|
|
141
|
+
if (flags.json === true) {
|
|
142
|
+
jsonObserver(record);
|
|
143
|
+
}
|
|
144
|
+
}, cursor);
|
|
145
|
+
if (flags.json !== true) {
|
|
146
|
+
session.events(progressObserver(id), { cursor, coalesceText: { maxHoldMs: 250 } });
|
|
147
|
+
}
|
|
144
148
|
const result = await session.prompt(prompt);
|
|
145
149
|
if (result.response.body.kind !== "accepted") {
|
|
146
150
|
process.stderr.write(`prompt not accepted: ${JSON.stringify(result.response.body)}\n`);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/progress.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type Event, type TurnOutcome } from "@botiverse/oar";
|
|
2
2
|
export declare function renderOutcome(outcome: TurnOutcome): string;
|
|
3
|
-
export declare function createProgressRenderer(runtimeId: string): (
|
|
3
|
+
export declare function createProgressRenderer(runtimeId: string): (event: Event) => readonly string[];
|
|
4
4
|
//# sourceMappingURL=progress.d.ts.map
|
package/dist/progress.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,KAAK,EAEV,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAC;AAYxB,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAQ1D;AAID,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,GAChB,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS,MAAM,EAAE,CAqDrC"}
|
package/dist/progress.js
CHANGED
|
@@ -8,59 +8,60 @@ export function renderOutcome(outcome) {
|
|
|
8
8
|
}
|
|
9
9
|
return `[turn failed: ${outcome.failure}] ${outcome.reason}`;
|
|
10
10
|
}
|
|
11
|
-
// Returns the printable
|
|
12
|
-
//
|
|
13
|
-
// print nothing. A record with several views (one claude assistant message
|
|
14
|
-
// with thinking + text + tool_use) prints one line per view, in frame order.
|
|
11
|
+
// Returns the printable line for one event, if any: turn starts, usage,
|
|
12
|
+
// model reports, redacted/empty reasoning and empty text print nothing.
|
|
15
13
|
export function createProgressRenderer(runtimeId) {
|
|
16
14
|
const started = new Map();
|
|
17
|
-
return (
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const label = toolActionLabel(action.kind, "running");
|
|
39
|
-
lines.push(action.detail === undefined ? `${agent}[${label}]` : `${agent}[${label}] ${action.detail}`);
|
|
40
|
-
break;
|
|
41
|
-
}
|
|
42
|
-
case "tool_call_ended": {
|
|
43
|
-
const key = `${record.agentPath.join("/")}|${view.callId}`;
|
|
44
|
-
const call = started.get(key);
|
|
45
|
-
started.delete(key);
|
|
46
|
-
if (call === undefined) {
|
|
47
|
-
lines.push(`${agent}[${toolActionLabel("other", "done")}]`);
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
const seconds = ((record.receivedAt - call.receivedAt) / 1000).toFixed(1);
|
|
51
|
-
lines.push(`${agent}[${toolActionLabel(call.kind, "done")}] (${seconds}s)`);
|
|
52
|
-
}
|
|
53
|
-
break;
|
|
15
|
+
return (event) => {
|
|
16
|
+
const agent = event.agentPath.length === 0 ? "" : `[${event.agentPath.join("/")}] `;
|
|
17
|
+
switch (event.kind) {
|
|
18
|
+
case "text_delta":
|
|
19
|
+
return event.text === "" ? [] : [`${agent}${event.text}`];
|
|
20
|
+
case "reasoning":
|
|
21
|
+
return event.content.kind === "text" && event.content.text !== ""
|
|
22
|
+
? [`${agent}[thinking] ${event.content.text}`]
|
|
23
|
+
: [];
|
|
24
|
+
case "tool_call_started": {
|
|
25
|
+
const action = classifyTool(runtimeId, event.tool, event.input);
|
|
26
|
+
started.set(`${event.agentPath.join("/")}|${event.callId}`, { kind: action.kind, receivedAt: event.receivedAt });
|
|
27
|
+
const label = toolActionLabel(action.kind, "running");
|
|
28
|
+
return [action.detail === undefined ? `${agent}[${label}]` : `${agent}[${label}] ${action.detail}`];
|
|
29
|
+
}
|
|
30
|
+
case "tool_call_ended": {
|
|
31
|
+
const key = `${event.agentPath.join("/")}|${event.callId}`;
|
|
32
|
+
const call = started.get(key);
|
|
33
|
+
started.delete(key);
|
|
34
|
+
if (call === undefined) {
|
|
35
|
+
return [`${agent}[${toolActionLabel("other", "done")}]`];
|
|
54
36
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
break;
|
|
58
|
-
case "usage":
|
|
59
|
-
case "model":
|
|
60
|
-
break;
|
|
37
|
+
const seconds = ((event.receivedAt - call.receivedAt) / 1000).toFixed(1);
|
|
38
|
+
return [`${agent}[${toolActionLabel(call.kind, "done")}] (${seconds}s)`];
|
|
61
39
|
}
|
|
40
|
+
case "turn_ended":
|
|
41
|
+
return [`${agent}${renderOutcome(event.outcome)}`];
|
|
42
|
+
case "compaction_started":
|
|
43
|
+
return [`${agent}[compacting${event.trigger === undefined ? "" : `: ${event.trigger}`}]`];
|
|
44
|
+
case "compaction_ended":
|
|
45
|
+
if (event.outcome === "completed") {
|
|
46
|
+
return [`${agent}[compacted]`];
|
|
47
|
+
}
|
|
48
|
+
return [`${agent}[compaction ${event.outcome}]${event.reason === undefined ? "" : ` ${event.reason}`}`];
|
|
49
|
+
case "retry":
|
|
50
|
+
return [`${agent}[retry ${String(event.attempt)}${event.maxAttempts === undefined ? "" : `/${String(event.maxAttempts)}`}]${event.reason === undefined ? "" : ` ${event.reason}`}`];
|
|
51
|
+
case "app_request":
|
|
52
|
+
return [`${agent}[waiting for app: ${event.type}]`];
|
|
53
|
+
case "control_rejected":
|
|
54
|
+
return [`${agent}[${event.action} rejected] ${event.reason}`];
|
|
55
|
+
case "exited":
|
|
56
|
+
return [`${agent}[runtime exited${event.code === null ? "" : `: ${String(event.code)}`}]`];
|
|
57
|
+
case "turn_started":
|
|
58
|
+
case "tool_call_progress":
|
|
59
|
+
case "app_answered":
|
|
60
|
+
case "usage":
|
|
61
|
+
case "model":
|
|
62
|
+
return [];
|
|
62
63
|
}
|
|
63
|
-
return
|
|
64
|
+
return [];
|
|
64
65
|
};
|
|
65
66
|
}
|
|
66
67
|
//# sourceMappingURL=progress.js.map
|
package/dist/progress.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,eAAe,GAIhB,MAAM,gBAAgB,CAAC;AAYxB,MAAM,UAAU,aAAa,CAAC,OAAoB;IAChD,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACjC,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,OAAO,iBAAiB,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;AAC/D,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botiverse/oar-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
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.
|
|
15
|
+
"@botiverse/oar": "0.3.0"
|
|
16
16
|
},
|
|
17
17
|
"publishConfig": {
|
|
18
18
|
"access": "public"
|