@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
|
@@ -57,20 +57,27 @@ export declare class ReplayGuard {
|
|
|
57
57
|
* permanently suppressed by a reservation that bought nothing. */
|
|
58
58
|
release(ackKey: string): void;
|
|
59
59
|
}
|
|
60
|
-
/** The §8.7.1 ack key per kind
|
|
61
|
-
* `
|
|
62
|
-
*
|
|
63
|
-
export declare
|
|
60
|
+
/** The §8.7.1 ack key per kind — the layer's rule (`ackKeyOf`, client subpath): a directive/message
|
|
61
|
+
* `id`, a response's `resolution_id` (the id of the Response being acknowledged, NOT the message
|
|
62
|
+
* id), a receipt's `id`. Re-exported under the CLI's historical name. */
|
|
63
|
+
export declare const ackKeyOf: (entry: InboxEntryDelivery) => string;
|
|
64
|
+
/** The kind of one delivery — a local one-line dispatch over the layer's `ENTRY_KINDS` taxonomy
|
|
65
|
+
* (defined-value dispatch, matching `ackKeyOf`/`validateDrainBatch`'s rule). */
|
|
64
66
|
export declare function entryKindOf(entry: InboxEntryDelivery): InboxEntryKind;
|
|
65
67
|
/**
|
|
66
68
|
* Structural guard for one §8.7.1 delivery, run at the DRAIN/STREAM boundary before anything else
|
|
67
69
|
* touches it. Fails the whole batch (a `server` error) rather than skipping the bad element: a
|
|
68
70
|
* malformed body is a Hub/proxy contract violation, and silently dropping an element would strand
|
|
69
|
-
* real mail while reporting success.
|
|
71
|
+
* real mail while reporting success. Dispatches over the layer's `ENTRY_KINDS` — the one taxonomy.
|
|
70
72
|
*/
|
|
71
73
|
export declare function isInboxEntryDelivery(value: unknown): value is InboxEntryDelivery;
|
|
72
74
|
/**
|
|
73
|
-
* Run the §13.4 duties for one entry,
|
|
75
|
+
* Run the §13.4 duties for one entry, IN ORDER, and return the verdict.
|
|
76
|
+
*
|
|
77
|
+
* The order is the safety property and stays product code (KTD4 — the layer's helpers are
|
|
78
|
+
* deliberately order-agnostic): parse the signature header → freshness window → jti replay →
|
|
79
|
+
* shape + known-fields → addressee (principal AND session qualifier) → declared sender policy →
|
|
80
|
+
* dedup-reserve. Pinned by test; do not reorder.
|
|
74
81
|
*
|
|
75
82
|
* Throws (fatal, exit 12) on the verification classes; returns `refuse` for the addressee/policy
|
|
76
83
|
* classes. On `accept` the ack key has ALREADY been reserved in `guard` — the caller must emit and
|
|
@@ -1,35 +1,37 @@
|
|
|
1
1
|
// The §13.4 consuming-agent duties, applied to one drained/streamed §8.7.1 entry BEFORE the bridge
|
|
2
|
-
// prints a byte of it (issue #658)
|
|
2
|
+
// prints a byte of it (issue #658) — since #726 an ADAPTER over the vendored layer's KEYLESS
|
|
3
|
+
// primitives (KTD4).
|
|
3
4
|
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
5
|
+
// WHICH LAYER OWNS WHAT. Each duty's RULE comes from `@oh-hai/ma2h-core`: the signature-header
|
|
6
|
+
// grammar (`parseSignatureHeader`, client subpath), the MAC well-formedness rule (`isWellFormedMac`,
|
|
7
|
+
// signing — next to the signer, #711), the entry-kind taxonomy (`ENTRY_KINDS`), the per-kind
|
|
8
|
+
// keep-field vocabulary and its refuse-side comparison (`validateKnownFields`), the §4 address
|
|
9
|
+
// grammar (`splitAddress`), and the per-kind ack keys (`ackKeyOf`). The upstream keyless helpers are
|
|
10
|
+
// deliberately duty-ORDER-agnostic (each documents which prior duties it assumes already ran), so
|
|
11
|
+
// the §13.4 SEQUENCING below — parse → freshness/replay → shape/known-fields → addressee → policy →
|
|
12
|
+
// dedup-reserve — remains product code following the layer's documented order convention, pinned by
|
|
13
|
+
// test. The keyed `Agent` embodiment is deliberately NOT used here: oh-hai's product rule (#719) is
|
|
14
|
+
// that raw signature material never gets a client-side key, so MAC recomputation is impossible on
|
|
15
|
+
// this surface and only well-formedness is checked.
|
|
10
16
|
//
|
|
11
17
|
// WHAT THE CLI CAN AND CANNOT VERIFY — stated plainly, because the gap is a real one.
|
|
12
18
|
//
|
|
13
19
|
// The §9.7/§9.8 `v1=` MAC is keyed with the HUB's signing key. An agent bearer does not hold it, so
|
|
14
20
|
// no CLI process can recompute it; verifying the MAC is the runtime's job, which is why the bridge
|
|
15
21
|
// forwards `{ <kind>, signature }` BYTE-VERBATIM (mutating the entry — even to prettify it — would
|
|
16
|
-
// break the very signature a defense-in-depth runtime verifies).
|
|
17
|
-
//
|
|
22
|
+
// break the very signature a defense-in-depth runtime verifies). Byte-verbatim forwarding is also
|
|
23
|
+
// why this surface uses the layer's REFUSE-side field rule (`validateKnownFields`) and never its
|
|
24
|
+
// sanitizers: stripping an unknown field would rewrite the signed bytes, so an unknown, unsigned
|
|
25
|
+
// field must make the entry REFUSED instead.
|
|
18
26
|
//
|
|
19
|
-
//
|
|
20
|
-
//
|
|
21
|
-
//
|
|
22
|
-
//
|
|
23
|
-
//
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
//
|
|
28
|
-
// FATAL vs. REFUSAL, matching reference/src/agent.ts `runBridgeLoop`. A signature/replay/shape
|
|
29
|
-
// failure is FATAL (exit 12): an entry in the bridge's own mailbox that does not verify means
|
|
30
|
-
// tampering or a broken Hub, never something to skip past. An addressee or policy failure is a
|
|
31
|
-
// REFUSAL: the entry is never emitted and never acked, so it stays queued and the Hub redelivers —
|
|
32
|
-
// which is the honest outcome for mail this bridge is not entitled to consume.
|
|
27
|
+
// FATAL vs. REFUSAL, matching the reference loop. A signature/replay/shape failure is FATAL
|
|
28
|
+
// (exit 12): an entry in the bridge's own mailbox that does not verify means tampering or a broken
|
|
29
|
+
// Hub, never something to skip past. An addressee or policy failure is a REFUSAL: the entry is
|
|
30
|
+
// never emitted and never acked, so it stays queued and the Hub redelivers — which is the honest
|
|
31
|
+
// outcome for mail this bridge is not entitled to consume.
|
|
32
|
+
import { ackKeyOf as coreAckKeyOf, parseSignatureHeader } from "@oh-hai/ma2h-core/client";
|
|
33
|
+
import { isWellFormedMac } from "@oh-hai/ma2h-core/signing";
|
|
34
|
+
import { ENTRY_KINDS, splitAddress, validateKnownFields } from "@oh-hai/ma2h-core/wire";
|
|
33
35
|
import { CliError } from "../../envelope.js";
|
|
34
36
|
/** The §9.7 default freshness window when the Hub advertises no `replay_window_seconds`. Matches the
|
|
35
37
|
* server's own default; a Hub that advertises a different one wins (see `EntryPolicy`). */
|
|
@@ -75,32 +77,20 @@ export class ReplayGuard {
|
|
|
75
77
|
this.#reserved.delete(ackKey);
|
|
76
78
|
}
|
|
77
79
|
}
|
|
78
|
-
/** The §8.7.1 ack key per kind
|
|
79
|
-
* `
|
|
80
|
-
*
|
|
81
|
-
export
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
if ("message" in entry)
|
|
85
|
-
return entry.message.id;
|
|
86
|
-
if ("response" in entry)
|
|
87
|
-
return entry.response.resolution_id;
|
|
88
|
-
return entry.receipt.id;
|
|
89
|
-
}
|
|
80
|
+
/** The §8.7.1 ack key per kind — the layer's rule (`ackKeyOf`, client subpath): a directive/message
|
|
81
|
+
* `id`, a response's `resolution_id` (the id of the Response being acknowledged, NOT the message
|
|
82
|
+
* id), a receipt's `id`. Re-exported under the CLI's historical name. */
|
|
83
|
+
export const ackKeyOf = coreAckKeyOf;
|
|
84
|
+
/** The kind of one delivery — a local one-line dispatch over the layer's `ENTRY_KINDS` taxonomy
|
|
85
|
+
* (defined-value dispatch, matching `ackKeyOf`/`validateDrainBatch`'s rule). */
|
|
90
86
|
export function entryKindOf(entry) {
|
|
91
|
-
|
|
92
|
-
return "directive";
|
|
93
|
-
if ("message" in entry)
|
|
94
|
-
return "message";
|
|
95
|
-
if ("response" in entry)
|
|
96
|
-
return "response";
|
|
97
|
-
return "receipt";
|
|
87
|
+
return ENTRY_KINDS.find((kind) => entry[kind] !== undefined) ?? "receipt";
|
|
98
88
|
}
|
|
99
89
|
/**
|
|
100
90
|
* Structural guard for one §8.7.1 delivery, run at the DRAIN/STREAM boundary before anything else
|
|
101
91
|
* touches it. Fails the whole batch (a `server` error) rather than skipping the bad element: a
|
|
102
92
|
* malformed body is a Hub/proxy contract violation, and silently dropping an element would strand
|
|
103
|
-
* real mail while reporting success.
|
|
93
|
+
* real mail while reporting success. Dispatches over the layer's `ENTRY_KINDS` — the one taxonomy.
|
|
104
94
|
*/
|
|
105
95
|
export function isInboxEntryDelivery(value) {
|
|
106
96
|
if (value === null || typeof value !== "object" || Array.isArray(value))
|
|
@@ -110,43 +100,57 @@ export function isInboxEntryDelivery(value) {
|
|
|
110
100
|
return false;
|
|
111
101
|
// Exactly ONE kind key. A payload carrying two would be ambiguous about which ack key applies —
|
|
112
102
|
// and about which §9.8 signed context the signature is over.
|
|
113
|
-
const kinds =
|
|
103
|
+
const kinds = ENTRY_KINDS.filter((k) => v[k] !== undefined);
|
|
114
104
|
if (kinds.length !== 1)
|
|
115
105
|
return false;
|
|
116
106
|
const payload = v[kinds[0]];
|
|
117
107
|
return payload !== null && typeof payload === "object" && !Array.isArray(payload);
|
|
118
108
|
}
|
|
119
|
-
/** Parse + range-check the detached signature header (§9.7).
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
109
|
+
/** Parse + range-check the detached signature header (§9.7). The GRAMMAR is the layer's
|
|
110
|
+
* (`parseSignatureHeader` — the same parser the keyed reference agent runs); layered on top are
|
|
111
|
+
* the checks this keyless surface still owes: `t` must be numeric (the freshness input), `v1`
|
|
112
|
+
* must be a well-formed MAC (`isWellFormedMac`, the rule vendored next to the signer — #711:
|
|
113
|
+
* a stripped or mangled signature must never look signed to a runtime downstream, even though no
|
|
114
|
+
* client can recompute its value), and the header must be exactly the three signed segments with
|
|
115
|
+
* no repeats. That last check is deliberately STRICTER than the layer: its parser tolerates junk
|
|
116
|
+
* segments and lets a repeated key's last value win, which a KEYED consumer can afford (the MAC
|
|
117
|
+
* binds `t`, so a forged trailing `t=` fails verification) — but this surface never verifies the
|
|
118
|
+
* MAC, so a replayed entry with an appended fresh `t=` would pass the §9.7 freshness window on the
|
|
119
|
+
* forged value. A conformant Hub emits exactly `t=…,jti=…,v1=…`; anything else is refused as
|
|
120
|
+
* unauthenticated. Returns undefined when any of that fails — the caller turns that into the
|
|
121
|
+
* FATAL class, because an entry whose header cannot even be parsed cannot have been
|
|
122
|
+
* authenticated by anyone. */
|
|
123
|
+
function parseHeader(raw) {
|
|
124
|
+
// Keyless strictness pre-check: exactly three `key=value` segments, one each of t/jti/v1.
|
|
125
|
+
// Keys are TRIMMED first — the layer's parser (and the old local one) accept conventional
|
|
126
|
+
// comma whitespace (`t=…, jti=…, v1=…`), and this check refuses repeats/junk, not formatting.
|
|
127
|
+
const keys = raw.split(",").map((segment) => segment.slice(0, segment.indexOf("=")).trim());
|
|
128
|
+
if (keys.length !== 3 || keys.some((k) => k === "") || new Set(keys).size !== 3)
|
|
129
|
+
return undefined;
|
|
130
|
+
if (!keys.every((k) => k === "t" || k === "jti" || k === "v1"))
|
|
131
|
+
return undefined;
|
|
132
|
+
let parsed;
|
|
133
|
+
try {
|
|
134
|
+
parsed = parseSignatureHeader(raw);
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
return undefined;
|
|
133
138
|
}
|
|
134
|
-
|
|
135
|
-
const jti = parts.get("jti");
|
|
136
|
-
const v1 = parts.get("v1");
|
|
137
|
-
if (t === undefined || jti === undefined || v1 === undefined)
|
|
139
|
+
if (!/^\d+$/.test(parsed.t))
|
|
138
140
|
return undefined;
|
|
139
|
-
if (
|
|
141
|
+
if (parsed.jti === "")
|
|
140
142
|
return undefined;
|
|
141
|
-
|
|
142
|
-
// empty or not hex was never produced by a conformant Hub, and admitting it would let a stripped
|
|
143
|
-
// signature look like a signed one to a runtime downstream.
|
|
144
|
-
if (!/^[0-9a-fA-F]+$/.test(v1))
|
|
143
|
+
if (!isWellFormedMac(parsed.v1))
|
|
145
144
|
return undefined;
|
|
146
|
-
return { t: Number(t), jti };
|
|
145
|
+
return { t: Number(parsed.t), jti: parsed.jti };
|
|
147
146
|
}
|
|
148
147
|
/**
|
|
149
|
-
* Run the §13.4 duties for one entry,
|
|
148
|
+
* Run the §13.4 duties for one entry, IN ORDER, and return the verdict.
|
|
149
|
+
*
|
|
150
|
+
* The order is the safety property and stays product code (KTD4 — the layer's helpers are
|
|
151
|
+
* deliberately order-agnostic): parse the signature header → freshness window → jti replay →
|
|
152
|
+
* shape + known-fields → addressee (principal AND session qualifier) → declared sender policy →
|
|
153
|
+
* dedup-reserve. Pinned by test; do not reorder.
|
|
150
154
|
*
|
|
151
155
|
* Throws (fatal, exit 12) on the verification classes; returns `refuse` for the addressee/policy
|
|
152
156
|
* classes. On `accept` the ack key has ALREADY been reserved in `guard` — the caller must emit and
|
|
@@ -155,7 +159,7 @@ function parseSignatureHeader(raw) {
|
|
|
155
159
|
export function verifyEntry(entry, policy, guard, nowMs) {
|
|
156
160
|
const kind = entryKindOf(entry);
|
|
157
161
|
// 1a. The detached signature header — presence, shape, freshness, replay.
|
|
158
|
-
const header =
|
|
162
|
+
const header = parseHeader(entry.signature);
|
|
159
163
|
if (header === undefined) {
|
|
160
164
|
throw signatureFailure(`the ${kind} entry's MA2H-Signature is missing or malformed`);
|
|
161
165
|
}
|
|
@@ -201,22 +205,17 @@ function isNonEmptyString(value) {
|
|
|
201
205
|
return typeof value === "string" && value !== "";
|
|
202
206
|
}
|
|
203
207
|
/**
|
|
204
|
-
* Reject an entry whose payload
|
|
208
|
+
* Reject an entry whose payload is missing a field the loop dereferences, or carries a field its
|
|
209
|
+
* kind must not have.
|
|
205
210
|
*
|
|
206
|
-
* The
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
* delivering a `message
|
|
210
|
-
*
|
|
211
|
+
* The FIELD VOCABULARY is the layer's (`validateKnownFields` over the vendored keep-lists, §10/
|
|
212
|
+
* §13.4): §13.4 step 1 names `request`/`action`/`state` as the cross-type injection an unsigned
|
|
213
|
+
* append can perform on a directive, and §8.7.1 says the Hub STRIPS submitter-side machinery
|
|
214
|
+
* (`state`, `client_ref`, callbacks) before delivering a `message` — all of which sit OUTSIDE the
|
|
215
|
+
* per-kind keep-lists, so the one refuse-side comparison covers them and every other unknown field.
|
|
216
|
+
* The required-string minimums stay local: they are the fields this loop itself dereferences (ack
|
|
217
|
+
* key, addressee, human summary), not a re-derived schema.
|
|
211
218
|
*/
|
|
212
|
-
function forbidden(payload, fields, kind) {
|
|
213
|
-
for (const field of fields) {
|
|
214
|
-
if (payload[field] !== undefined) {
|
|
215
|
-
return `the ${kind} entry carries a forbidden \`${field}\` field, which a conformant Hub strips and the signature does not bind (§13.4 step 1)`;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
return undefined;
|
|
219
|
-
}
|
|
220
219
|
function validateShape(entry) {
|
|
221
220
|
if ("directive" in entry) {
|
|
222
221
|
const d = entry.directive;
|
|
@@ -225,7 +224,7 @@ function validateShape(entry) {
|
|
|
225
224
|
if (!isNonEmptyString(d.id) || !isNonEmptyString(d.from) || !isNonEmptyString(d.to) || !isNonEmptyString(d.title)) {
|
|
226
225
|
return "the directive entry is missing one of the required id/from/to/title strings (inbound-message.schema.json)";
|
|
227
226
|
}
|
|
228
|
-
return
|
|
227
|
+
return knownFieldsProblem(d, "directive");
|
|
229
228
|
}
|
|
230
229
|
if ("message" in entry) {
|
|
231
230
|
const m = entry.message;
|
|
@@ -235,11 +234,7 @@ function validateShape(entry) {
|
|
|
235
234
|
if (!isNonEmptyString(m.id) || !isNonEmptyString(m.from) || !isNonEmptyString(m.to) || !isNonEmptyString(m.title)) {
|
|
236
235
|
return "the message entry is missing one of the required id/from/to/title strings (§8.7.1)";
|
|
237
236
|
}
|
|
238
|
-
|
|
239
|
-
if (m.type === "notify" && (m.request !== undefined || m.action !== undefined)) {
|
|
240
|
-
return "the message entry is a notify carrying a request/action, which is cross-type data the signature does not bind (§13.4 step 1)";
|
|
241
|
-
}
|
|
242
|
-
return forbidden(m, ["state", "client_ref"], "message");
|
|
237
|
+
return knownFieldsProblem(m, m.type);
|
|
243
238
|
}
|
|
244
239
|
if ("response" in entry) {
|
|
245
240
|
const r = entry.response;
|
|
@@ -256,26 +251,20 @@ function validateShape(entry) {
|
|
|
256
251
|
}
|
|
257
252
|
return undefined;
|
|
258
253
|
}
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
*
|
|
262
|
-
function
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
const rest = raw.slice("agent:".length);
|
|
266
|
-
if (rest === "")
|
|
254
|
+
/** The refuse half of the strip-unknown-fields duty, verbatim from the layer: an unknown, UNSIGNED
|
|
255
|
+
* field on a byte-verbatim-forwarded entry must refuse the entry, never be stripped or ride along
|
|
256
|
+
* as trusted-looking input (§10/§13.4 step 1 — a conformant Hub never sent it). */
|
|
257
|
+
function knownFieldsProblem(payload, kind) {
|
|
258
|
+
const result = validateKnownFields(payload, kind);
|
|
259
|
+
if (result.valid)
|
|
267
260
|
return undefined;
|
|
268
|
-
|
|
269
|
-
if (hash < 0)
|
|
270
|
-
return { agentId: rest };
|
|
271
|
-
const agentId = rest.slice(0, hash);
|
|
272
|
-
const session = rest.slice(hash + 1);
|
|
273
|
-
if (agentId === "" || session === "")
|
|
274
|
-
return undefined;
|
|
275
|
-
return { agentId, session };
|
|
261
|
+
return `the ${kind === "directive" ? "directive" : "message"} entry carries unsigned data a conformant Hub never delivers — ${result.errors.join("; ")}`;
|
|
276
262
|
}
|
|
263
|
+
// ---- the §13.4 step-2 addressee check ----
|
|
277
264
|
/**
|
|
278
265
|
* §13.4 step 2 plus the v0.5 amendment. Returns a refusal reason, or undefined when `to` is ours.
|
|
266
|
+
* The §4 address grammar is the layer's `splitAddress` (first-`#` split, `sess_`-anchored session
|
|
267
|
+
* fragment) — the same one definition the version-stamp rule and the keyed reference agent read.
|
|
279
268
|
*
|
|
280
269
|
* The signature BINDS `to`, so a valid signature proves the Hub intended a specific addressee — but
|
|
281
270
|
* only the recipient checking `to` against its own identity stops an entry validly signed for
|
|
@@ -303,9 +292,9 @@ function confirmAddressee(entry, policy) {
|
|
|
303
292
|
if (to === undefined)
|
|
304
293
|
return undefined;
|
|
305
294
|
const parsed = splitAddress(to);
|
|
306
|
-
if (parsed ===
|
|
295
|
+
if (parsed === null)
|
|
307
296
|
return `addressed to ${JSON.stringify(to)}, which is not a §4 agent address`;
|
|
308
|
-
if (parsed.
|
|
297
|
+
if (parsed.principal !== policy.agentId) {
|
|
309
298
|
return `addressed to ${JSON.stringify(to)}, which is not this agent (${policy.agentId})`;
|
|
310
299
|
}
|
|
311
300
|
if (parsed.session !== undefined && parsed.session !== policy.sessionId) {
|
|
@@ -343,13 +332,13 @@ function checkDeclaredPolicy(entry, policy) {
|
|
|
343
332
|
if (policy.allowFrom.includes(ALLOW_ANY_IN_ACCOUNT))
|
|
344
333
|
return undefined;
|
|
345
334
|
const from = splitAddress(message.from);
|
|
346
|
-
if (from ===
|
|
335
|
+
if (from === null)
|
|
347
336
|
return `refusing an addressed ${message.type}: \`from\` (${JSON.stringify(message.from)}) is not a §4 agent address`;
|
|
348
337
|
for (const allowed of policy.allowFrom) {
|
|
349
338
|
const a = splitAddress(allowed);
|
|
350
|
-
if (a ===
|
|
339
|
+
if (a === null)
|
|
351
340
|
continue; // rejected at flag-parse time; belt and braces
|
|
352
|
-
if (a.
|
|
341
|
+
if (a.principal !== from.principal)
|
|
353
342
|
continue;
|
|
354
343
|
// A policy entry with no session qualifier admits every session of that principal; one WITH a
|
|
355
344
|
// qualifier admits only that exact session.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox-entries.js","sourceRoot":"","sources":["../../../src/commands/messaging/inbox-entries.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inbox-entries.js","sourceRoot":"","sources":["../../../src/commands/messaging/inbox-entries.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { CommandContext } from "../context.js";
|
|
2
|
-
import type { HubCapability
|
|
2
|
+
import type { HubCapability } from "./capability.js";
|
|
3
|
+
import type { InboxEntryDelivery } from "./wire.js";
|
|
3
4
|
/** What the stream hands its consumer. `reconnect` is always the LAST event of a hold. */
|
|
4
5
|
export type InboxStreamEvent = {
|
|
5
6
|
type: "open";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox-stream.js","sourceRoot":"","sources":["../../../src/commands/messaging/inbox-stream.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,EAAE;AACF,kGAAkG;AAClG,yBAAyB;AACzB,EAAE;AACF,qGAAqG;AACrG,kGAAkG;AAClG,oGAAoG;AACpG,oGAAoG;AACpG,kGAAkG;AAClG,qGAAqG;AACrG,kGAAkG;AAClG,2FAA2F;AAC3F,EAAE;AACF,gGAAgG;AAChG,oGAAoG;AACpG,gGAAgG;AAEhG,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"inbox-stream.js","sourceRoot":"","sources":["../../../src/commands/messaging/inbox-stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,13 @@ export declare function isRetryable(error: unknown): boolean;
|
|
|
31
31
|
* `GET /v1/inbox?session=…` — the §8.7.1 session-scoped drain. Renews the lease (§16.2) and returns
|
|
32
32
|
* the signed entries.
|
|
33
33
|
*
|
|
34
|
+
* `opts.probe` opts into the Hub's `?scope=session` PROBE drain (issue #693): claim ONLY entries
|
|
35
|
+
* addressed to this session, provisionally — never the principal's first-claim-wins mail, never a
|
|
36
|
+
* delivery stamp. For DIAGNOSTICS (`doctor --self-test`), not bridges: a bridge that scoped its
|
|
37
|
+
* drain would silently stop consuming the principal's mail, which is why the default is unscoped
|
|
38
|
+
* and the bridge call site passes nothing. A Hub predating the scope ignores the unknown param and
|
|
39
|
+
* runs the full drain — the caller's foreign-entry handling remains the fallback for exactly that.
|
|
40
|
+
*
|
|
34
41
|
* The shape guard rejects the WHOLE batch rather than skipping a bad element, mirroring
|
|
35
42
|
* `drainInbox`: a malformed body is a Hub/proxy contract violation, and silently treating garbage as
|
|
36
43
|
* "no entries" would strand real mail while reporting success. Note it also catches the pre-v0.5
|
|
@@ -38,7 +45,10 @@ export declare function isRetryable(error: unknown): boolean;
|
|
|
38
45
|
* `{ directives: … }`, which has no `messages` array — but the gate is what prevents that drain from
|
|
39
46
|
* being issued at all, because by the time this guard fires the claim has already happened.
|
|
40
47
|
*/
|
|
41
|
-
export declare function drainInboxSession(ctx: CommandContext, token: string, session: string,
|
|
48
|
+
export declare function drainInboxSession(ctx: CommandContext, token: string, session: string, opts?: {
|
|
49
|
+
max?: number | undefined;
|
|
50
|
+
probe?: boolean;
|
|
51
|
+
}): Promise<InboxEntryDelivery[]>;
|
|
42
52
|
/**
|
|
43
53
|
* `POST /v1/inbox/ack?session=…` — consume the handed-off entries (§8.7.1 / §14).
|
|
44
54
|
*
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
// session-presenting request client-originated LEASE RENEWAL, and a session-LESS one renews nothing.
|
|
13
13
|
// During a held stream the ack may be the bridge's only client-originated traffic, so an ack that
|
|
14
14
|
// dropped the parameter would quietly stop renewing the very lease the bridge is keeping alive.
|
|
15
|
+
import { classifyHubError, validateDrainBatch } from "@oh-hai/ma2h-core/wire";
|
|
15
16
|
import { CliError } from "../../envelope.js";
|
|
16
17
|
import { throwTransportError } from "../http.js";
|
|
17
18
|
import { redactToken, requestTimeoutMs, statusToCliError } from "./http.js";
|
|
18
|
-
import { isInboxEntryDelivery } from "./inbox-entries.js";
|
|
19
19
|
/**
|
|
20
20
|
* Map a Hub status on a SESSION-PRESENTING call to the bridge's §7 code.
|
|
21
21
|
*
|
|
@@ -47,9 +47,12 @@ export function sessionStatusToCliError(status, message, hubCode, session) {
|
|
|
47
47
|
}
|
|
48
48
|
// Checked BEFORE the generic terminal arm, and on the Hub's own §8 error code rather than on the
|
|
49
49
|
// message text: the code is the machine contract, and a wording change must never silently turn a
|
|
50
|
-
// stop back into a restart.
|
|
51
|
-
//
|
|
52
|
-
|
|
50
|
+
// stop back into a restart. The READING is the vendored §8.5 classifier at the presentation
|
|
51
|
+
// touchpoint (KTD5): a literal `session_closed_by_operator` classifies `operator-close` and never
|
|
52
|
+
// falls back, while a 410 whose code is absent/unrecognized reads as the own-terminal class and
|
|
53
|
+
// falls through to exit 11 — the pre-#683 behaviour, which is the safe default for a client
|
|
54
|
+
// talking to an older Hub.
|
|
55
|
+
if (status === 410 && classifyHubError({ code: hubCode, status }, "presentation").class === "operator-close") {
|
|
53
56
|
return new CliError("session_closed_by_operator", `the session this bridge presents (${session}) was closed by an account human — the §16.4 operator kill-switch. ` +
|
|
54
57
|
"This is a deliberate STOP, not a lapse: do NOT restart, and do NOT register a replacement session. " +
|
|
55
58
|
"Senders waiting on this agent have already been unblocked by the §14.2 bounce. Resume only when a human says so.");
|
|
@@ -73,6 +76,13 @@ export function isRetryable(error) {
|
|
|
73
76
|
* `GET /v1/inbox?session=…` — the §8.7.1 session-scoped drain. Renews the lease (§16.2) and returns
|
|
74
77
|
* the signed entries.
|
|
75
78
|
*
|
|
79
|
+
* `opts.probe` opts into the Hub's `?scope=session` PROBE drain (issue #693): claim ONLY entries
|
|
80
|
+
* addressed to this session, provisionally — never the principal's first-claim-wins mail, never a
|
|
81
|
+
* delivery stamp. For DIAGNOSTICS (`doctor --self-test`), not bridges: a bridge that scoped its
|
|
82
|
+
* drain would silently stop consuming the principal's mail, which is why the default is unscoped
|
|
83
|
+
* and the bridge call site passes nothing. A Hub predating the scope ignores the unknown param and
|
|
84
|
+
* runs the full drain — the caller's foreign-entry handling remains the fallback for exactly that.
|
|
85
|
+
*
|
|
76
86
|
* The shape guard rejects the WHOLE batch rather than skipping a bad element, mirroring
|
|
77
87
|
* `drainInbox`: a malformed body is a Hub/proxy contract violation, and silently treating garbage as
|
|
78
88
|
* "no entries" would strand real mail while reporting success. Note it also catches the pre-v0.5
|
|
@@ -80,10 +90,12 @@ export function isRetryable(error) {
|
|
|
80
90
|
* `{ directives: … }`, which has no `messages` array — but the gate is what prevents that drain from
|
|
81
91
|
* being issued at all, because by the time this guard fires the claim has already happened.
|
|
82
92
|
*/
|
|
83
|
-
export async function drainInboxSession(ctx, token, session,
|
|
93
|
+
export async function drainInboxSession(ctx, token, session, opts = {}) {
|
|
84
94
|
const query = new URLSearchParams({ session });
|
|
85
|
-
if (max !== undefined)
|
|
86
|
-
query.set("max", String(max));
|
|
95
|
+
if (opts.max !== undefined)
|
|
96
|
+
query.set("max", String(opts.max));
|
|
97
|
+
if (opts.probe === true)
|
|
98
|
+
query.set("scope", "session");
|
|
87
99
|
const url = `${ctx.config.baseUrl}/v1/inbox?${query.toString()}`;
|
|
88
100
|
let res;
|
|
89
101
|
try {
|
|
@@ -101,11 +113,17 @@ export async function drainInboxSession(ctx, token, session, max) {
|
|
|
101
113
|
throw sessionStatusToCliError(res.status, redactToken(message, token), code, session);
|
|
102
114
|
}
|
|
103
115
|
const body = await readJson(res);
|
|
104
|
-
|
|
105
|
-
|
|
116
|
+
// The `{ messages: [...] }` wrapper is this Hub's transport shape, parsed here; the unwrapped
|
|
117
|
+
// array goes to the LAYER's whole-batch shape guard (`validateDrainBatch` — signature present,
|
|
118
|
+
// exactly one §8.7.1 entry kind per row, object payloads; one malformed row refuses the whole
|
|
119
|
+
// batch). No per-entry re-check follows: `validateDrainBatch` already proves per row everything
|
|
120
|
+
// `isInboxEntryDelivery` would (that guard stays with the SSE stream, whose pushed frames never
|
|
121
|
+
// pass through the batch validator).
|
|
122
|
+
const batch = validateDrainBatch(body.messages);
|
|
123
|
+
if (!batch.valid) {
|
|
106
124
|
throw new CliError("server", "the Hub returned a malformed session drain (expected { messages: [{ <directive|message|response|receipt>, signature }] }).");
|
|
107
125
|
}
|
|
108
|
-
return
|
|
126
|
+
return batch.entries;
|
|
109
127
|
}
|
|
110
128
|
/**
|
|
111
129
|
* `POST /v1/inbox/ack?session=…` — consume the handed-off entries (§8.7.1 / §14).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-drain.js","sourceRoot":"","sources":["../../../src/commands/messaging/session-drain.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,iCAAiC;AACjC,EAAE;AACF,iGAAiG;AACjG,oGAAoG;AACpG,wGAAwG;AACxG,gGAAgG;AAChG,iGAAiG;AACjG,6FAA6F;AAC7F,EAAE;AACF,iGAAiG;AACjG,qGAAqG;AACrG,kGAAkG;AAClG,gGAAgG;AAEhG,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"session-drain.js","sourceRoot":"","sources":["../../../src/commands/messaging/session-drain.ts"],"names":[],"mappings":"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"}
|