@bli-cockpit/cli 0.2.66 → 0.2.67
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.
|
@@ -59,6 +59,7 @@ export const JARVIS_ANSWER_ENVELOPE_KEYS = [
|
|
|
59
59
|
"thread_id",
|
|
60
60
|
"trace_thread_id",
|
|
61
61
|
"proposal_id",
|
|
62
|
+
"next_action",
|
|
62
63
|
"degraded",
|
|
63
64
|
"degraded_reasons",
|
|
64
65
|
];
|
|
@@ -195,6 +196,7 @@ export function buildJarvisAnswerEnvelope(input) {
|
|
|
195
196
|
thread_id: input.thread ?? null,
|
|
196
197
|
trace_thread_id: input.traceThread ?? null,
|
|
197
198
|
proposal_id: input.proposalId ?? null,
|
|
199
|
+
next_action: input.nextAction ?? null,
|
|
198
200
|
degraded: reasons.length > 0,
|
|
199
201
|
degraded_reasons: reasons,
|
|
200
202
|
};
|
|
@@ -158,6 +158,9 @@ export async function sendOneTurn(context, prompt, io) {
|
|
|
158
158
|
revised: body.revised,
|
|
159
159
|
trace,
|
|
160
160
|
proposalId: body.proposalId,
|
|
161
|
+
// BLI-3787: the sentence beside it — what a person must do next when
|
|
162
|
+
// the arm proposed something, and when it refused instead.
|
|
163
|
+
nextAction: body.nextAction,
|
|
161
164
|
// BLI-3770: the door's own structured citations. Absent from a
|
|
162
165
|
// dashboard that predates it, and the envelope falls back to
|
|
163
166
|
// reading the answer's own `Source:` lines when it is.
|
|
@@ -254,7 +254,8 @@ export function localSubcommandHelp(command) {
|
|
|
254
254
|
"Trace lines arrive live while JARVIS works; pass --no-stream to wait for the whole answer in one piece instead.",
|
|
255
255
|
"--json writes one machine-readable response (including trace and model) to stdout; operational metadata stays on stderr. A --json run never streams fragments, whichever mode it is in.",
|
|
256
256
|
"A --json turn is treated as an AGENT surface: if it proposes a coding task, JARVIS answers with proposal_id and NOT the eight-character approval code, because a code a program can read is a code it could approve with. The person fetches the code themself — a Tower browser tab, their Slack DM, or an interactive `cockpit jarvis` — and hands it back. Pass --show-approval-code when a script really is driving a dispatch for a person; the run says on stderr that it did.",
|
|
257
|
-
"That object carries answer, sources (the Source: lines inside it), turn_id (pass it to --trace), thread_id (pass it to --thread), proposal_id
|
|
257
|
+
"That object carries answer, sources (the Source: lines inside it), turn_id (pass it to --trace), thread_id (pass it to --thread), proposal_id, next_action, degraded and degraded_reasons — the SAME shape the bli-tower MCP server's jarvis_ask tool returns, so a script and an agent read one contract. reply/thread/traceId/model/trace/latency are still there beside it and still mean what they always meant.",
|
|
258
|
+
"proposal_id carries the coding-arm proposal a turn made, and is null when it made none — including when the arm refused. next_action is the sentence that says which of those it was and what a PERSON has to do about it: fetch the approval code for that proposal (a Tower tab, their Slack DM, or their own interactive `cockpit jarvis`), or approve a refused one where a person reads. A null proposal_id is never on its own. Do not send a proposal_id back on a --json turn: this is the surface the code was withheld from, and reading it back is refused here.",
|
|
258
259
|
"A turn that outlives the dashboard's own ceiling is reported as turn_timed_out — an incomplete answer is never printed as a finished one.",
|
|
259
260
|
"The command uses the existing paired device identity. It cannot override the caller, team, role, or person scope.",
|
|
260
261
|
"A thread is SINGLE-WRITER: two turns in the same conversation at the same time can read each other, and one can answer the other's question. Your own terminal is one conversation, named main, and stays that way. A --json turn is a program's, so it gets a FRESH conversation per call unless --thread names one, and the answer's thread_id is the name it used — pass that back with --thread to continue it deliberately. On a --json turn, --thread main asks for the shared default nobody chose, so it is treated as naming nothing and a fresh conversation is minted anyway.",
|
|
@@ -15,7 +15,7 @@ export async function runCockpitCli(argv, io) {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
if (command === "--version" || command === "-V" || command === "version") {
|
|
18
|
-
writeLine(io?.stdout ?? process.stdout, "0.2.
|
|
18
|
+
writeLine(io?.stdout ?? process.stdout, "0.2.67");
|
|
19
19
|
return 0;
|
|
20
20
|
}
|
|
21
21
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bli-cockpit/cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.67",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@bli-cockpit/memory-mcp": "0.1.9",
|
|
31
|
-
"@bli-cockpit/mcp": "0.1.
|
|
31
|
+
"@bli-cockpit/mcp": "0.1.9",
|
|
32
32
|
"@bli-cockpit/telemetry-core": "0.1.30"
|
|
33
33
|
}
|
|
34
34
|
}
|