@oh-hai/cli 0.3.0 → 0.4.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/CHANGELOG.md +65 -0
- package/README.md +17 -10
- package/dist/commands/ask.js +8 -4
- package/dist/commands/ask.js.map +1 -1
- package/dist/commands/bridge.js +1 -1
- package/dist/commands/bridge.js.map +1 -1
- package/dist/commands/messaging/build.d.ts +5 -4
- package/dist/commands/messaging/build.js +52 -47
- package/dist/commands/messaging/build.js.map +1 -1
- package/dist/commands/messaging/capability.d.ts +39 -1
- package/dist/commands/messaging/capability.js.map +1 -1
- package/dist/commands/messaging/http.d.ts +29 -9
- package/dist/commands/messaging/http.js +159 -191
- package/dist/commands/messaging/http.js.map +1 -1
- package/dist/commands/messaging/inbox-entries.d.ts +13 -6
- package/dist/commands/messaging/inbox-entries.js +100 -111
- package/dist/commands/messaging/inbox-entries.js.map +1 -1
- package/dist/commands/messaging/inbox-stream.d.ts +2 -1
- package/dist/commands/messaging/inbox-stream.js.map +1 -1
- package/dist/commands/messaging/session-drain.d.ts +11 -1
- package/dist/commands/messaging/session-drain.js +28 -10
- package/dist/commands/messaging/session-drain.js.map +1 -1
- package/dist/commands/messaging/validate.d.ts +37 -9
- package/dist/commands/messaging/validate.js +49 -19
- package/dist/commands/messaging/validate.js.map +1 -1
- package/dist/commands/messaging/wire.d.ts +22 -307
- package/dist/commands/messaging/wire.js +10 -13
- package/dist/commands/messaging/wire.js.map +1 -1
- package/dist/commands/notify.js +5 -4
- package/dist/commands/notify.js.map +1 -1
- package/dist/commands/registry.js +6 -4
- package/dist/commands/registry.js.map +1 -1
- package/dist/commands/self-test.js +27 -22
- package/dist/commands/self-test.js.map +1 -1
- package/dist/commands/task.js +8 -4
- package/dist/commands/task.js.map +1 -1
- package/dist/version.d.ts +16 -2
- package/dist/version.js +17 -2
- package/dist/version.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,6 +1,13 @@
|
|
|
1
|
+
import { type HubTouchpoint } from "@oh-hai/ma2h-core/errors";
|
|
1
2
|
import { CliError } from "../../envelope.js";
|
|
2
3
|
import type { CommandContext } from "../context.js";
|
|
3
|
-
import type { GetMessageBody, InboundDelivery,
|
|
4
|
+
import type { GetMessageBody, InboundDelivery, SubmitAck } from "./wire.js";
|
|
5
|
+
/** POST /v1/inbox/ack — the ids of the directives consumed by this call (spec §14; the server's
|
|
6
|
+
* `ackDirectives` returns the id array, not a count). A TRANSPORT wrapper shape of this Hub's
|
|
7
|
+
* ack route, which is why it lives beside the parser that reads it rather than in the wire shim. */
|
|
8
|
+
export interface InboxAckResult {
|
|
9
|
+
acked: string[];
|
|
10
|
+
}
|
|
4
11
|
/** The per-request bound for a single Hub call: `config.timeoutMs` (from `--timeout` /
|
|
5
12
|
* `MA2H_TIMEOUT_MS`, §6), defaulted and clamped to the timer ceiling so an oversized/negative value
|
|
6
13
|
* can't overflow `AbortSignal.timeout` and fail the request spuriously. */
|
|
@@ -15,12 +22,26 @@ export declare function submitEnvelope(ctx: CommandContext, token: string, envel
|
|
|
15
22
|
addressedTo?: string;
|
|
16
23
|
}): Promise<SubmitAck>;
|
|
17
24
|
/** GET one message (the submitter-bound pull, agent bearer). Embeds the terminal Response.
|
|
18
|
-
* A `2xx` returns the parsed body; every other status maps to a §7 exit code.
|
|
25
|
+
* A `2xx` returns the parsed body; every other status maps to a §7 exit code.
|
|
26
|
+
*
|
|
27
|
+
* The poll checks are the layer's `validatePollStatus`: the id echo-match, the status drawn from
|
|
28
|
+
* the polled type's own table (human-inbox notify: `delivered`; ADDRESSED notify: the §14.2
|
|
29
|
+
* delivery track; ask/task: their §7 resolution track), and terminal-requires-Response. The
|
|
30
|
+
* layer's `PollExpectation` wants the SUBMIT-side context, which a by-id read does not have — so
|
|
31
|
+
* this adapter derives it from the body itself (`type` from `body.type`, `addressed` from
|
|
32
|
+
* `body.to !== undefined`): body-derived SELF-CONSISTENCY, deliberately weaker than submit-side
|
|
33
|
+
* knowledge. The await layers keep their own wrong-kind fail-fast on `body.type` (product §4.4
|
|
34
|
+
* behavior — a copied notify id must say "not an ask", not "malformed body"). */
|
|
19
35
|
export declare function pollMessage(ctx: CommandContext, token: string, id: string, timeoutMs: number): Promise<GetMessageBody>;
|
|
20
36
|
/** GET the agent's mailbox — the human→agent drain (spec §13, agent bearer). A `2xx` returns the
|
|
21
37
|
* signed deliveries; every other status maps to a §7 exit code. `max`, when set, caps the batch via
|
|
22
38
|
* `?max=`. The drain also touches `agent_seen` server-side, so an authenticated poll is itself the
|
|
23
|
-
* presence heartbeat (§15) — nothing extra to send.
|
|
39
|
+
* presence heartbeat (§15) — nothing extra to send.
|
|
40
|
+
*
|
|
41
|
+
* The `{ directives: [...] }` wrapper is this Hub's v0.4 transport shape, parsed here; the
|
|
42
|
+
* unwrapped array goes to the layer's whole-batch shape guard (`validateDrainBatch` — one
|
|
43
|
+
* malformed row refuses the ENTIRE batch, because consuming the well-formed rows of a garbled
|
|
44
|
+
* body would ack mail out of a response the Hub demonstrably mangled). */
|
|
24
45
|
export declare function drainInbox(ctx: CommandContext, token: string, max?: number): Promise<{
|
|
25
46
|
directives: InboundDelivery[];
|
|
26
47
|
}>;
|
|
@@ -41,9 +62,8 @@ export declare function listMessages(ctx: CommandContext, token: string, opts: {
|
|
|
41
62
|
/** POST a single batched consume-ack for the drained ids — the §14 directive receipt (agent bearer).
|
|
42
63
|
* A `2xx` returns the consumed count; every other status maps to a §7 exit code. */
|
|
43
64
|
export declare function ackInbox(ctx: CommandContext, token: string, ids: string[]): Promise<InboxAckResult>;
|
|
44
|
-
/** Map a Hub error response to a CliError. The exit code comes from the HTTP status
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
|
|
49
|
-
export declare function statusToCliError(status: number, message: string | undefined, hubCode?: string, hint?: string): CliError;
|
|
65
|
+
/** Map a Hub error response to a CliError. The exit code comes from the HTTP status (the §7 exit
|
|
66
|
+
* tiers are CLI product policy); the `error.code` string surfaced in the §8 envelope is read via
|
|
67
|
+
* the vendored §8.5 vocabulary — see `cliErrorCode`. The server message is stripped of terminal
|
|
68
|
+
* control chars (the top-level catch prints it). */
|
|
69
|
+
export declare function statusToCliError(status: number, message: string | undefined, hubCode?: string, hint?: string, touchpoint?: HubTouchpoint): CliError;
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
// Shared Hub HTTP for the messaging commands (notify / ask / task) — submit an envelope and
|
|
2
2
|
// poll a message, over the INJECTABLE `ctx.runtime.fetchImpl` so command tests stay hermetic
|
|
3
|
-
// (never a live Hub).
|
|
4
|
-
// mapping, so every messaging command surfaces the same codes/messages (cli spec §7/§8).
|
|
3
|
+
// (never a live Hub).
|
|
5
4
|
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
5
|
+
// Since #726 this module is a thin ADAPTER over the vendored client layer: the §8.1 submit-ack
|
|
6
|
+
// validation (with its addressed-misroute detector), the per-type poll-status tables, the
|
|
7
|
+
// drain-batch shape guard, and the §8.5 error reading all come from `@oh-hai/ma2h-core/wire` —
|
|
8
|
+
// never re-derived here. What stays CLI-owned is transport (fetch, timeouts, redaction), the
|
|
9
|
+
// Hub's product wrapper shapes (`{ directives }` / `{ messages }` / `{ acked }` bodies, parsed as
|
|
10
|
+
// transport before the unwrapped data reaches the layer), and the §7 exit-code tiers each layer
|
|
11
|
+
// verdict maps to (docs/specs/cli.md §7/§8 — the published machine contract, unchanged).
|
|
12
|
+
import { effectiveCode, validateDrainBatch, validatePollStatus, validateSubmitAck, } from "@oh-hai/ma2h-core/wire";
|
|
13
|
+
import { baseCodeForStatus, isHubErrorStatus, isKnownHubErrorCode, } from "@oh-hai/ma2h-core/errors";
|
|
11
14
|
import { CliError } from "../../envelope.js";
|
|
12
15
|
import { exitCodeForError, isErrorCode } from "../../exit-codes.js";
|
|
13
16
|
import { throwTransportError } from "../http.js";
|
|
@@ -31,6 +34,16 @@ export function redactToken(message, token) {
|
|
|
31
34
|
return message;
|
|
32
35
|
return message.split(token).join("[redacted]");
|
|
33
36
|
}
|
|
37
|
+
/** The submitted envelope's verb — the client-side context the layer's ack validation needs (its
|
|
38
|
+
* `SubmitContext.type`; the submit-ack schema's status enum is the union of every track, so only
|
|
39
|
+
* the sender can pin the ack to the owning track). Every product caller submits a built or
|
|
40
|
+
* replay-validated envelope, so a missing/unknown type is a caller bug surfaced as usage. */
|
|
41
|
+
function submitTypeOf(envelope) {
|
|
42
|
+
const type = envelope !== null && typeof envelope === "object" ? envelope.type : undefined;
|
|
43
|
+
if (type === "notify" || type === "ask" || type === "task")
|
|
44
|
+
return type;
|
|
45
|
+
throw new CliError("usage", "submitEnvelope requires an MA2H envelope declaring type notify | ask | task.");
|
|
46
|
+
}
|
|
34
47
|
/** POST an envelope to the Hub's ingest endpoint (agent bearer). `202` → the SubmitAck; every
|
|
35
48
|
* other status maps to the right §7 exit code (via the Hub's error envelope when present). */
|
|
36
49
|
export async function submitEnvelope(ctx, token, envelope, opts = {}) {
|
|
@@ -42,6 +55,8 @@ export async function submitEnvelope(ctx, token, envelope, opts = {}) {
|
|
|
42
55
|
// cannot miss it — a per-caller gate already got forgotten once.
|
|
43
56
|
if (opts.addressedTo !== undefined)
|
|
44
57
|
await assertHubSpeaksAddressing(ctx, opts.addressedTo);
|
|
58
|
+
const addressed = opts.addressedTo !== undefined;
|
|
59
|
+
const type = submitTypeOf(envelope);
|
|
45
60
|
const url = `${ctx.config.baseUrl}/v1/messages`;
|
|
46
61
|
const init = {
|
|
47
62
|
method: "POST",
|
|
@@ -61,90 +76,53 @@ export async function submitEnvelope(ctx, token, envelope, opts = {}) {
|
|
|
61
76
|
// On an ADDRESSED submit, append the one sentence that turns each documented §8.5 refusal into
|
|
62
77
|
// a next step. Done here — where the HTTP status and the Hub's own `error.code` are still in
|
|
63
78
|
// hand — rather than by re-inspecting a flattened CliError message at the call site.
|
|
64
|
-
const hint =
|
|
65
|
-
throw statusToCliError(res.status, redactToken(message, token), code, hint);
|
|
79
|
+
const hint = addressed ? addressedHint(res.status, code, opts.addressedTo) : undefined;
|
|
80
|
+
throw statusToCliError(res.status, redactToken(message, token), code, hint, addressed ? "addressed-send" : "own-session-submit");
|
|
66
81
|
}
|
|
67
82
|
const body = await readJson(res);
|
|
68
|
-
//
|
|
69
|
-
//
|
|
70
|
-
//
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
// Authorization value into id/status/poll_url/review_url, which the submit handlers print to
|
|
82
|
-
// stdout / the --json envelope (§5.4). Build a clean ack (drops any extra Hub fields too).
|
|
83
|
-
const destination = destinationOf(body, token, opts.addressedTo !== undefined);
|
|
84
|
-
// §8.1 MUST: every ADDRESSED ack carries the destination snapshot, and its absence is not a
|
|
85
|
-
// cosmetic gap — it is positive proof that the Hub did not route the address. A pre-0.5 Hub cannot
|
|
86
|
-
// emit this object at all, so a 202 without it means `to` was ignored and the message was filed in
|
|
87
|
-
// the HUMAN inbox. Printing a warning while still returning a successful ack (the earlier shape)
|
|
88
|
-
// left every caller exiting 0 and `--json` saying `ok: true` for a message that reached the wrong
|
|
89
|
-
// recipient — a silent misroute is exactly what this snapshot exists to make impossible. The id is
|
|
90
|
-
// included because the submit WAS accepted: the caller needs it to find (and cancel) the message.
|
|
91
|
-
if (opts.addressedTo !== undefined && destination === undefined) {
|
|
92
|
-
throw new CliError("server", `the Hub accepted this message (id ${redactToken(String(body.id), token)}) but returned no destination snapshot, ` +
|
|
93
|
-
`which means it did not route "${opts.addressedTo}" — the message was filed in the HUMAN inbox instead. ` +
|
|
94
|
-
"This Hub predates v0.5 addressing (§8.1).");
|
|
95
|
-
}
|
|
96
|
-
const ack = {
|
|
97
|
-
id: redactToken(body.id, token),
|
|
98
|
-
status: redactToken(body.status, token),
|
|
99
|
-
poll_url: redactToken(body.poll_url, token),
|
|
100
|
-
...(typeof body.review_url === "string" ? { review_url: redactToken(body.review_url, token) } : {}),
|
|
101
|
-
...(destination !== undefined ? { destination } : {}),
|
|
102
|
-
};
|
|
103
|
-
return ack;
|
|
104
|
-
}
|
|
105
|
-
/** Read the v0.5 §8.1 `destination` snapshot off an ack, defensively. Absent / wrong-shaped ⇒
|
|
106
|
-
* undefined, which the submit handlers render as "no destination snapshot" — a meaningful signal in
|
|
107
|
-
* itself on an ADDRESSED submit, because a pre-0.5 Hub cannot emit this object at all, so its
|
|
108
|
-
* absence is the sender's proof that `to` was IGNORED and the message filed in a human inbox.
|
|
109
|
-
* An unrecognized `state` is passed through verbatim (sanitized at render) rather than coerced to
|
|
110
|
-
* `unknown`: inventing a reachability claim is exactly the dishonesty §8.1 exists to prevent. */
|
|
111
|
-
function destinationOf(body, token, addressed) {
|
|
112
|
-
const raw = body.destination;
|
|
113
|
-
if (raw === null || typeof raw !== "object" || Array.isArray(raw))
|
|
114
|
-
return undefined;
|
|
115
|
-
const { state, last_seen: lastSeen } = raw;
|
|
116
|
-
if (typeof state !== "string" || state === "")
|
|
117
|
-
return undefined;
|
|
118
|
-
if (addressed) {
|
|
119
|
-
// The v0.5 submit-ack schema (and conformance vector sv-034) fixes BOTH the enum and the
|
|
120
|
-
// relationship: `state` is online|offline|unknown, and `unknown` — the "no visibility" answer —
|
|
121
|
-
// MUST carry no `last_seen`, because a timestamp IS visibility. Passing an out-of-enum state
|
|
122
|
-
// through "verbatim" was the wrong kind of honesty: rendering `reachable` or an `unknown` with a
|
|
123
|
-
// last-seen invents a reachability claim the protocol cannot express, which is exactly the false
|
|
124
|
-
// belief this snapshot exists to prevent. A violation is a malformed ack, not a usable reading.
|
|
125
|
-
if (state !== "online" && state !== "offline" && state !== "unknown") {
|
|
126
|
-
throw new CliError("server", `the Hub returned an unknown destination reachability state ${JSON.stringify(sanitizeForTerminal(state))}.`);
|
|
127
|
-
}
|
|
128
|
-
// The schema pins the relationship in BOTH directions, and each direction is load-bearing:
|
|
129
|
-
// `unknown` must carry no `last_seen` (a timestamp IS visibility, so one here contradicts the
|
|
130
|
-
// claim), and `online`/`offline` MUST carry one (a known state with no timestamp is an
|
|
131
|
-
// unanchored assertion — "online" as of when?). Half-validating leaves the second case rendering
|
|
132
|
-
// a reachability reading the sender cannot date, which is the same unfalsifiable claim the
|
|
133
|
-
// snapshot exists to replace.
|
|
134
|
-
if (state === "unknown" && lastSeen !== undefined) {
|
|
135
|
-
throw new CliError("server", "the Hub returned an `unknown` destination reachability carrying a last_seen, which the v0.5 ack schema forbids.");
|
|
136
|
-
}
|
|
137
|
-
if (state !== "unknown" && !isIsoTimestamp(lastSeen)) {
|
|
138
|
-
throw new CliError("server", `the Hub reported the destination as ${state} without the last_seen timestamp the v0.5 ack schema requires to anchor it.`);
|
|
83
|
+
// The §8.1 ack validation is the LAYER's: field narrowing, delegation to the published
|
|
84
|
+
// submit-ack schema (which owns the snapshot's enum + last_seen pairing this module used to
|
|
85
|
+
// hand-check), the owning-track status vocabulary, and the misroute detector in both directions.
|
|
86
|
+
const verdict = validateSubmitAck(body, { addressed, type });
|
|
87
|
+
if (!verdict.valid) {
|
|
88
|
+
if (verdict.misroute) {
|
|
89
|
+
// §8.1 MUST: every ADDRESSED ack carries a valid destination snapshot, and its absence is
|
|
90
|
+
// positive proof that the Hub did not route the address — a pre-0.5 Hub cannot emit this
|
|
91
|
+
// object at all, so the message was filed in the HUMAN inbox. The submit WAS accepted, so
|
|
92
|
+
// the id is carried: the caller needs it to find (and cancel) the message.
|
|
93
|
+
throw new CliError("server", `the Hub accepted this message (id ${redactToken(verdict.acceptedId, token)}) but returned no usable destination snapshot, ` +
|
|
94
|
+
`which means it did not route "${opts.addressedTo}" — the message was filed in the HUMAN inbox instead. ` +
|
|
95
|
+
"This Hub predates v0.5 addressing (§8.1).");
|
|
139
96
|
}
|
|
97
|
+
// The 202 DID accept the message even though the ack is unusable — carry the id whenever the
|
|
98
|
+
// body offers one, so a caller can find (or cancel) the accepted message instead of blindly
|
|
99
|
+
// retrying and duplicating a notify (asks/tasks are idempotency-keyed; notifies are not).
|
|
100
|
+
const acceptedId = typeof body.id === "string" ? ` (accepted id ${redactToken(body.id, token)})` : "";
|
|
101
|
+
throw new CliError("server", `the Hub accepted the message${acceptedId} but returned an incomplete or malformed ack (${sanitizeForTerminal(redactToken(verdict.errors.join("; "), token) ?? "")}).`);
|
|
140
102
|
}
|
|
103
|
+
// Redact the bearer from every ack field before returning — a hostile/buggy Hub could echo the
|
|
104
|
+
// Authorization value into any of them, which the submit handlers print to stdout / the --json
|
|
105
|
+
// envelope (§5.4). Rebuilt field-by-field from the layer's typed ack.
|
|
106
|
+
const ack = verdict.ack;
|
|
141
107
|
return {
|
|
142
|
-
|
|
143
|
-
|
|
108
|
+
id: redactToken(ack.id, token),
|
|
109
|
+
status: redactToken(ack.status, token),
|
|
110
|
+
poll_url: redactToken(ack.poll_url, token),
|
|
111
|
+
...(ack.review_url !== undefined ? { review_url: redactToken(ack.review_url, token) } : {}),
|
|
112
|
+
...(ack.destination !== undefined
|
|
113
|
+
? {
|
|
114
|
+
destination: {
|
|
115
|
+
state: redactToken(ack.destination.state, token),
|
|
116
|
+
...(ack.destination.last_seen !== undefined ? { last_seen: redactToken(ack.destination.last_seen, token) } : {}),
|
|
117
|
+
},
|
|
118
|
+
}
|
|
119
|
+
: {}),
|
|
144
120
|
};
|
|
145
121
|
}
|
|
146
122
|
/** The actionable second sentence for a refused ADDRESSED submit (spec §8.5). Keyed on the HTTP
|
|
147
|
-
* status plus the Hub's `error.code
|
|
123
|
+
* status plus the Hub's `error.code` READ per §8.5 through the vendored `effectiveCode` (a
|
|
124
|
+
* recognized code reads as itself; an unrecognized 422 falls back to `invalid_field`, the class's
|
|
125
|
+
* base code at the addressed-send touchpoint):
|
|
148
126
|
* - `403` — the leg is ACCOUNT-OPT-IN and defaults off (§8.0). Nothing the sender can fix in argv.
|
|
149
127
|
* - `422 unknown_destination` — no such agent (or a session that is not the addressee's) in THIS
|
|
150
128
|
* account. Deliberately indistinguishable from "exists but not yours", so the guidance can only
|
|
@@ -160,16 +138,26 @@ function addressedHint(status, code, to) {
|
|
|
160
138
|
const principal = to.split("#")[0] ?? to;
|
|
161
139
|
return `that session is terminal — re-address the principal (\`--to ${principal}\`) or pick a live session from \`oh-hai fleet ls\`.`;
|
|
162
140
|
}
|
|
163
|
-
|
|
141
|
+
const reading = effectiveCode({ code, status }, "addressed-send");
|
|
142
|
+
if (status === 422 && reading === "unknown_destination") {
|
|
164
143
|
return "no live agent (or session) in this account answers to that address — check it with `oh-hai fleet ls`.";
|
|
165
144
|
}
|
|
166
|
-
if (status === 422 &&
|
|
145
|
+
if (status === 422 && reading === "invalid_field") {
|
|
167
146
|
return "this Hub does not speak v0.5 addressing, so `--to` cannot be routed here.";
|
|
168
147
|
}
|
|
169
148
|
return undefined;
|
|
170
149
|
}
|
|
171
150
|
/** GET one message (the submitter-bound pull, agent bearer). Embeds the terminal Response.
|
|
172
|
-
* A `2xx` returns the parsed body; every other status maps to a §7 exit code.
|
|
151
|
+
* A `2xx` returns the parsed body; every other status maps to a §7 exit code.
|
|
152
|
+
*
|
|
153
|
+
* The poll checks are the layer's `validatePollStatus`: the id echo-match, the status drawn from
|
|
154
|
+
* the polled type's own table (human-inbox notify: `delivered`; ADDRESSED notify: the §14.2
|
|
155
|
+
* delivery track; ask/task: their §7 resolution track), and terminal-requires-Response. The
|
|
156
|
+
* layer's `PollExpectation` wants the SUBMIT-side context, which a by-id read does not have — so
|
|
157
|
+
* this adapter derives it from the body itself (`type` from `body.type`, `addressed` from
|
|
158
|
+
* `body.to !== undefined`): body-derived SELF-CONSISTENCY, deliberately weaker than submit-side
|
|
159
|
+
* knowledge. The await layers keep their own wrong-kind fail-fast on `body.type` (product §4.4
|
|
160
|
+
* behavior — a copied notify id must say "not an ask", not "malformed body"). */
|
|
173
161
|
export async function pollMessage(ctx, token, id, timeoutMs) {
|
|
174
162
|
const url = `${ctx.config.baseUrl}/v1/messages/${encodeURIComponent(id)}`;
|
|
175
163
|
const init = {
|
|
@@ -189,28 +177,25 @@ export async function pollMessage(ctx, token, id, timeoutMs) {
|
|
|
189
177
|
throw statusToCliError(res.status, redactToken(message, token), code);
|
|
190
178
|
}
|
|
191
179
|
const body = await readJson(res);
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
// wrong outcome under the requested id), and a `status` valid globally but IMPOSSIBLE for the
|
|
195
|
-
// message's `type` (e.g. an ask-only `cancelled` on a task) would be reported as a real outcome.
|
|
196
|
-
// A malformed / mismatched poll body is a server error, not a completed await.
|
|
197
|
-
if (typeof body.id !== "string" || body.id !== id || !isValidTypeStatus(body.type, body.status)) {
|
|
180
|
+
const type = body.type;
|
|
181
|
+
if (type !== "notify" && type !== "ask" && type !== "task") {
|
|
198
182
|
throw new CliError("server", "the Hub returned a malformed or mismatched message (bad/other id, or a status invalid for its type).");
|
|
199
183
|
}
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
// design (they describe DELIVERY, not a human's answer), so the old negative form would have
|
|
204
|
-
// rejected a legitimate `queued` / `acknowledged` / `bounced` poll body as malformed.
|
|
205
|
-
if (isResolved(body.type, body.status) && (typeof body.response !== "object" || body.response === null)) {
|
|
206
|
-
throw new CliError("server", "the Hub returned a resolved message with no embedded Response.");
|
|
184
|
+
const verdict = validatePollStatus(body, { id, type, addressed: body.to !== undefined });
|
|
185
|
+
if (!verdict.valid) {
|
|
186
|
+
throw new CliError("server", `the Hub returned a malformed or mismatched message (bad/other id, a status invalid for its type, or a terminal body with no embedded Response): ${sanitizeForTerminal(redactToken(verdict.errors.join("; "), token) ?? "")}`);
|
|
207
187
|
}
|
|
208
188
|
return body;
|
|
209
189
|
}
|
|
210
190
|
/** GET the agent's mailbox — the human→agent drain (spec §13, agent bearer). A `2xx` returns the
|
|
211
191
|
* signed deliveries; every other status maps to a §7 exit code. `max`, when set, caps the batch via
|
|
212
192
|
* `?max=`. The drain also touches `agent_seen` server-side, so an authenticated poll is itself the
|
|
213
|
-
* presence heartbeat (§15) — nothing extra to send.
|
|
193
|
+
* presence heartbeat (§15) — nothing extra to send.
|
|
194
|
+
*
|
|
195
|
+
* The `{ directives: [...] }` wrapper is this Hub's v0.4 transport shape, parsed here; the
|
|
196
|
+
* unwrapped array goes to the layer's whole-batch shape guard (`validateDrainBatch` — one
|
|
197
|
+
* malformed row refuses the ENTIRE batch, because consuming the well-formed rows of a garbled
|
|
198
|
+
* body would ack mail out of a response the Hub demonstrably mangled). */
|
|
214
199
|
export async function drainInbox(ctx, token, max) {
|
|
215
200
|
const query = max !== undefined ? `?max=${max}` : "";
|
|
216
201
|
const url = `${ctx.config.baseUrl}/v1/inbox${query}`;
|
|
@@ -231,16 +216,15 @@ export async function drainInbox(ctx, token, max) {
|
|
|
231
216
|
throw statusToCliError(res.status, redactToken(message, token), code);
|
|
232
217
|
}
|
|
233
218
|
const body = await readJson(res);
|
|
234
|
-
|
|
235
|
-
//
|
|
236
|
-
//
|
|
237
|
-
//
|
|
238
|
-
//
|
|
239
|
-
|
|
240
|
-
if (!Array.isArray(directives) || !directives.every(isInboundDelivery)) {
|
|
219
|
+
const batch = validateDrainBatch(body.directives);
|
|
220
|
+
// Product guard on top of the layer's wrapper check: this v0.4 drain may only carry `directive`
|
|
221
|
+
// rows, and the human emit path dereferences id/from/title (+ a string priority), so a directive
|
|
222
|
+
// missing them must be rejected at drain as a `server` error — never handed to the loop to crash
|
|
223
|
+
// mid-stream. A malformed body is a Hub/proxy contract violation, not an empty drain.
|
|
224
|
+
if (!batch.valid || !batch.entries.every(isInboundDelivery)) {
|
|
241
225
|
throw new CliError("server", "the Hub returned a malformed inbox drain (expected { directives: [{ directive: { id }, signature }] }).");
|
|
242
226
|
}
|
|
243
|
-
return { directives:
|
|
227
|
+
return { directives: batch.entries };
|
|
244
228
|
}
|
|
245
229
|
/** GET the agent's OWN submitted messages — the submitter-bound self-list (spec §9.1, agent bearer,
|
|
246
230
|
* the #400 primitive paginated by #527). The Hub scopes the result to (accountId, agentId) and
|
|
@@ -342,18 +326,14 @@ export async function ackInbox(ctx, token, ids) {
|
|
|
342
326
|
}
|
|
343
327
|
return { acked: acked };
|
|
344
328
|
}
|
|
345
|
-
/**
|
|
346
|
-
* `title` (and, when present, a string `priority`)
|
|
347
|
-
*
|
|
348
|
-
*
|
|
349
|
-
*
|
|
329
|
+
/** Product guard for one v0.4 drained delivery: an object `directive` carrying string `id` / `from` /
|
|
330
|
+
* `title` (and, when present, a string `priority`). The batch WRAPPER (signature present, exactly
|
|
331
|
+
* one entry kind, object payload) is already the layer's verdict (`validateDrainBatch`); this
|
|
332
|
+
* checks only the fields the CLI's own human emit path dereferences (`sanitizeForTerminal` would
|
|
333
|
+
* throw on a non-string). */
|
|
350
334
|
function isInboundDelivery(value) {
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
const { directive, signature } = value;
|
|
354
|
-
if (typeof signature !== "string")
|
|
355
|
-
return false;
|
|
356
|
-
if (directive === null || typeof directive !== "object")
|
|
335
|
+
const { directive } = value;
|
|
336
|
+
if (directive === null || directive === undefined || typeof directive !== "object")
|
|
357
337
|
return false;
|
|
358
338
|
const d = directive;
|
|
359
339
|
if (typeof d.id !== "string" || typeof d.from !== "string" || typeof d.title !== "string")
|
|
@@ -381,85 +361,73 @@ function toIndexRow(row) {
|
|
|
381
361
|
}
|
|
382
362
|
return rest;
|
|
383
363
|
}
|
|
384
|
-
/**
|
|
385
|
-
*
|
|
386
|
-
*
|
|
387
|
-
*
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
* An addressed notify's lifecycle IS the delivery track, so `status` legitimately reads
|
|
391
|
-
* `queued`/`acknowledged`/`bounced`/`expired` there (spec §5.1). An addressed ASK/TASK keeps the §7
|
|
392
|
-
* resolution machinery at `status` — an undeliverable track terminal auto-resolves it to
|
|
393
|
-
* `cancelled`/`dismissed` — and surfaces the outbound track under `mailbox` instead
|
|
394
|
-
* (v0.5 get-message.schema.json). Admitting the delivery states into the ask/task sets would let a
|
|
395
|
-
* malformed `{type:"ask", status:"bounced"}` through, and `ask await` would then report it as a
|
|
396
|
-
* successful terminal resolution carrying no Response — the exact "status valid globally but
|
|
397
|
-
* impossible for this type" failure this table exists to catch. */
|
|
398
|
-
const STATUSES_BY_TYPE = {
|
|
399
|
-
notify: new Set(["open", "delivered", "queued", "acknowledged", "bounced", "expired"]),
|
|
400
|
-
ask: new Set(["open", "answered", "declined", "cancelled", "expired"]),
|
|
401
|
-
task: new Set(["open", "completed", "dismissed", "expired"]),
|
|
402
|
-
};
|
|
403
|
-
function isValidTypeStatus(type, status) {
|
|
404
|
-
if (typeof type !== "string" || typeof status !== "string")
|
|
405
|
-
return false;
|
|
406
|
-
const allowed = STATUSES_BY_TYPE[type];
|
|
407
|
-
return allowed !== undefined && allowed.has(status);
|
|
408
|
-
}
|
|
409
|
-
/** A `format: date-time` string, checked as far as is useful here: a parseable ISO timestamp. Used
|
|
410
|
-
* for the reachability anchor, where an unparseable value is as unusable as an absent one. */
|
|
411
|
-
function isIsoTimestamp(value) {
|
|
412
|
-
return typeof value === "string" && value.trim() !== "" && !Number.isNaN(Date.parse(value));
|
|
413
|
-
}
|
|
414
|
-
/** The §7 RESOLUTION states per type — the ones whose body MUST embed a terminal Response. A notify
|
|
415
|
-
* has no resolution track at all (its `expired` belongs to the §14.2 delivery track and carries no
|
|
416
|
-
* human answer), which is why this is per-type rather than one flat set: `expired` means two
|
|
417
|
-
* different things depending on which track owns the message. */
|
|
418
|
-
const RESOLUTIONS_BY_TYPE = {
|
|
419
|
-
ask: new Set(["answered", "declined", "cancelled", "expired"]),
|
|
420
|
-
task: new Set(["completed", "dismissed", "expired"]),
|
|
421
|
-
};
|
|
422
|
-
function isResolved(type, status) {
|
|
423
|
-
if (typeof type !== "string" || typeof status !== "string")
|
|
424
|
-
return false;
|
|
425
|
-
return RESOLUTIONS_BY_TYPE[type]?.has(status) === true;
|
|
426
|
-
}
|
|
427
|
-
/** Map a Hub error response to a CliError. The exit code comes from the HTTP status; the stable
|
|
428
|
-
* `error.code` string (§8) prefers the Hub's own `error.code` when it maps to the SAME exit tier
|
|
429
|
-
* — so a documented code like `version_not_supported` survives instead of being flattened to
|
|
430
|
-
* `bad_request` (both exit 9), without letting a Hub-supplied code change the exit semantics. The
|
|
431
|
-
* server message is stripped of terminal control chars (the top-level catch prints it). */
|
|
432
|
-
export function statusToCliError(status, message, hubCode, hint) {
|
|
433
|
-
const base_ = message !== undefined ? sanitizeForTerminal(message) : `Hub returned ${status}.`;
|
|
364
|
+
/** Map a Hub error response to a CliError. The exit code comes from the HTTP status (the §7 exit
|
|
365
|
+
* tiers are CLI product policy); the `error.code` string surfaced in the §8 envelope is read via
|
|
366
|
+
* the vendored §8.5 vocabulary — see `cliErrorCode`. The server message is stripped of terminal
|
|
367
|
+
* control chars (the top-level catch prints it). */
|
|
368
|
+
export function statusToCliError(status, message, hubCode, hint, touchpoint = "presentation") {
|
|
369
|
+
const base = message !== undefined ? sanitizeForTerminal(message) : `Hub returned ${status}.`;
|
|
434
370
|
// The hint is CLI-authored (never Hub-supplied), so it needs no sanitizing — but it is appended
|
|
435
371
|
// AFTER the Hub's own message so the verbatim server text stays the headline.
|
|
436
|
-
const detail = hint !== undefined ? `${
|
|
372
|
+
const detail = hint !== undefined ? `${base} — ${hint}` : base;
|
|
373
|
+
return new CliError(cliErrorCode(status, hubCode, touchpoint), detail);
|
|
374
|
+
}
|
|
375
|
+
/** The stable `error.code` the CLI envelope carries for a Hub refusal (§7/§8), adapted per KTD5:
|
|
376
|
+
* the EXIT TIER always comes from the HTTP status (product contract — a Hub-supplied code must
|
|
377
|
+
* never change the exit semantics), while the code STRING is read through the layered §8.5 rules:
|
|
378
|
+
* 1. a documented CLI §8 code in the same tier survives verbatim (e.g. `version_not_supported`);
|
|
379
|
+
* 2. a code in the Hub's §8.5 vocabulary but not the CLI's table (e.g. `rate_limited`) propagates
|
|
380
|
+
* via the status tier, never surfaced verbatim;
|
|
381
|
+
* 3. a genuinely unrecognized code takes §8.5's unknown-code fallback — the vendored
|
|
382
|
+
* `effectiveCode` — surfaced only when that reading is itself a documented same-tier CLI code. */
|
|
383
|
+
function cliErrorCode(status, hubCode, touchpoint) {
|
|
437
384
|
const base = statusToErrorCode(status);
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
385
|
+
if (hubCode === undefined)
|
|
386
|
+
return base;
|
|
387
|
+
if (isErrorCode(hubCode))
|
|
388
|
+
return exitCodeForError(hubCode) === exitCodeForError(base) ? hubCode : base;
|
|
389
|
+
if (isKnownHubErrorCode(hubCode))
|
|
390
|
+
return base;
|
|
391
|
+
const reading = effectiveCode({ code: hubCode, status }, touchpoint);
|
|
392
|
+
if (reading !== undefined && isErrorCode(reading) && exitCodeForError(reading) === exitCodeForError(base))
|
|
393
|
+
return reading;
|
|
394
|
+
return base;
|
|
445
395
|
}
|
|
446
|
-
/** The
|
|
396
|
+
/** The CLI exit tier for each base code in the protocol's closed vocabulary. The §8.5
|
|
397
|
+
* status-class MEMBERSHIP lives in the layer (`isHubErrorStatus`/`baseCodeForStatus`); this table
|
|
398
|
+
* is only the CLI's tier NAMING over those classes. Two deliberate merges: 410's codes join 404's
|
|
399
|
+
* `not_found` tier (distinguishing them at the EXIT-code level would buy a caller nothing — both
|
|
400
|
+
* mean "re-address"; the Hub's own message carries the distinction), and `rate_limited` stays in
|
|
401
|
+
* the generic `error` tier (CLI product policy: no dedicated rate-limit exit). An annotated full
|
|
402
|
+
* Record, so a widened upstream vocabulary is a compile error here, not a silent hole. */
|
|
403
|
+
const TIER_FOR_BASE = {
|
|
404
|
+
validation_error: "bad_request",
|
|
405
|
+
version_not_supported: "bad_request",
|
|
406
|
+
unauthenticated: "auth",
|
|
407
|
+
agent_id_mismatch: "auth",
|
|
408
|
+
not_authorized: "auth",
|
|
409
|
+
not_found: "not_found",
|
|
410
|
+
idempotency_conflict: "conflict",
|
|
411
|
+
already_terminal: "conflict",
|
|
412
|
+
not_acknowledgeable: "conflict",
|
|
413
|
+
gone: "not_found",
|
|
414
|
+
destination_gone: "not_found",
|
|
415
|
+
session_closed_by_operator: "not_found",
|
|
416
|
+
invalid_field: "validation_error",
|
|
417
|
+
unknown_destination: "validation_error",
|
|
418
|
+
rate_limited: "error",
|
|
419
|
+
};
|
|
420
|
+
/** The §7 exit tier implied by an HTTP status — CLI product policy (docs/specs/cli.md §7). Within
|
|
421
|
+
* §8.5's status classes the class membership and base reading are the layer's (`presentation` is
|
|
422
|
+
* the touchpoint a status-only mapping can assume); outside them (413, 5xx) the tier stays local. */
|
|
447
423
|
function statusToErrorCode(status) {
|
|
448
|
-
if (status
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
if (status === 404 || status === 410)
|
|
454
|
-
return "not_found";
|
|
455
|
-
if (status === 409)
|
|
456
|
-
return "conflict";
|
|
424
|
+
if (isHubErrorStatus(status)) {
|
|
425
|
+
const base = baseCodeForStatus(status, "presentation");
|
|
426
|
+
if (base !== undefined)
|
|
427
|
+
return TIER_FOR_BASE[base];
|
|
428
|
+
}
|
|
457
429
|
if (status === 413)
|
|
458
430
|
return "payload_too_large";
|
|
459
|
-
if (status === 422)
|
|
460
|
-
return "validation_error";
|
|
461
|
-
if (status === 400)
|
|
462
|
-
return "bad_request";
|
|
463
431
|
if (status >= 500)
|
|
464
432
|
return "server";
|
|
465
433
|
return "error";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/commands/messaging/http.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/commands/messaging/http.ts"],"names":[],"mappings":"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"}
|