@clowder-ai/plugin-contract 0.1.0-beta.2 → 0.1.0-beta.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.
- package/dist/conformance/index.d.ts +1 -0
- package/dist/conformance/index.d.ts.map +1 -1
- package/dist/conformance/index.js +1 -0
- package/dist/conformance/index.js.map +1 -1
- package/dist/conformance/stdio-harness/child-process-harness.d.ts +59 -0
- package/dist/conformance/stdio-harness/child-process-harness.d.ts.map +1 -0
- package/dist/conformance/stdio-harness/child-process-harness.js +279 -0
- package/dist/conformance/stdio-harness/child-process-harness.js.map +1 -0
- package/dist/conformance/stdio-harness/dual-transport-oracle.d.ts +26 -0
- package/dist/conformance/stdio-harness/dual-transport-oracle.d.ts.map +1 -0
- package/dist/conformance/stdio-harness/dual-transport-oracle.js +32 -0
- package/dist/conformance/stdio-harness/dual-transport-oracle.js.map +1 -0
- package/dist/conformance/stdio-harness/harness-process-spawn.d.ts +27 -0
- package/dist/conformance/stdio-harness/harness-process-spawn.d.ts.map +1 -0
- package/dist/conformance/stdio-harness/harness-process-spawn.js +43 -0
- package/dist/conformance/stdio-harness/harness-process-spawn.js.map +1 -0
- package/dist/conformance/stdio-harness/index.d.ts +5 -0
- package/dist/conformance/stdio-harness/index.d.ts.map +1 -0
- package/dist/conformance/stdio-harness/index.js +4 -0
- package/dist/conformance/stdio-harness/index.js.map +1 -0
- package/dist/conformance/stdio-harness/ndjson-frame.d.ts +26 -0
- package/dist/conformance/stdio-harness/ndjson-frame.d.ts.map +1 -0
- package/dist/conformance/stdio-harness/ndjson-frame.js +119 -0
- package/dist/conformance/stdio-harness/ndjson-frame.js.map +1 -0
- package/dist/conformance/stdio-harness/node-process-tree-runtime.d.ts +15 -0
- package/dist/conformance/stdio-harness/node-process-tree-runtime.d.ts.map +1 -0
- package/dist/conformance/stdio-harness/node-process-tree-runtime.js +78 -0
- package/dist/conformance/stdio-harness/node-process-tree-runtime.js.map +1 -0
- package/dist/conformance/stdio-harness/process-tree-controller.d.ts +51 -0
- package/dist/conformance/stdio-harness/process-tree-controller.d.ts.map +1 -0
- package/dist/conformance/stdio-harness/process-tree-controller.js +162 -0
- package/dist/conformance/stdio-harness/process-tree-controller.js.map +1 -0
- package/dist/conformance/stdio-harness/windows-sentinel.d.ts +15 -0
- package/dist/conformance/stdio-harness/windows-sentinel.d.ts.map +1 -0
- package/dist/conformance/stdio-harness/windows-sentinel.js +160 -0
- package/dist/conformance/stdio-harness/windows-sentinel.js.map +1 -0
- package/dist/conformance/stdio-harness/wire-shape.d.ts +18 -0
- package/dist/conformance/stdio-harness/wire-shape.d.ts.map +1 -0
- package/dist/conformance/stdio-harness/wire-shape.js +2 -0
- package/dist/conformance/stdio-harness/wire-shape.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/wire/constants.d.ts +36 -0
- package/dist/wire/constants.d.ts.map +1 -0
- package/dist/wire/constants.js +36 -0
- package/dist/wire/constants.js.map +1 -0
- package/dist/wire/disposition-fixtures.d.ts +99 -0
- package/dist/wire/disposition-fixtures.d.ts.map +1 -0
- package/dist/wire/disposition-fixtures.js +623 -0
- package/dist/wire/disposition-fixtures.js.map +1 -0
- package/dist/wire/disposition.d.ts +100 -0
- package/dist/wire/disposition.d.ts.map +1 -0
- package/dist/wire/disposition.js +205 -0
- package/dist/wire/disposition.js.map +1 -0
- package/dist/wire/envelope.d.ts +253 -0
- package/dist/wire/envelope.d.ts.map +1 -0
- package/dist/wire/envelope.js +19 -0
- package/dist/wire/envelope.js.map +1 -0
- package/dist/wire/errors.d.ts +222 -0
- package/dist/wire/errors.d.ts.map +1 -0
- package/dist/wire/errors.js +153 -0
- package/dist/wire/errors.js.map +1 -0
- package/dist/wire/grants.d.ts +57 -0
- package/dist/wire/grants.d.ts.map +1 -0
- package/dist/wire/grants.js +59 -0
- package/dist/wire/grants.js.map +1 -0
- package/dist/wire/handshake.d.ts +100 -0
- package/dist/wire/handshake.d.ts.map +1 -0
- package/dist/wire/handshake.js +70 -0
- package/dist/wire/handshake.js.map +1 -0
- package/dist/wire/index.d.ts +26 -0
- package/dist/wire/index.d.ts.map +1 -0
- package/dist/wire/index.js +45 -0
- package/dist/wire/index.js.map +1 -0
- package/dist/wire/registry.d.ts +90 -0
- package/dist/wire/registry.d.ts.map +1 -0
- package/dist/wire/registry.js +232 -0
- package/dist/wire/registry.js.map +1 -0
- package/dist/wire/request-id.d.ts +34 -0
- package/dist/wire/request-id.d.ts.map +1 -0
- package/dist/wire/request-id.js +40 -0
- package/dist/wire/request-id.js.map +1 -0
- package/dist/wire/row-shapes.d.ts +212 -0
- package/dist/wire/row-shapes.d.ts.map +1 -0
- package/dist/wire/row-shapes.js +59 -0
- package/dist/wire/row-shapes.js.map +1 -0
- package/dist/wire/wire-uint53.d.ts +26 -0
- package/dist/wire/wire-uint53.d.ts.map +1 -0
- package/dist/wire/wire-uint53.js +32 -0
- package/dist/wire/wire-uint53.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,623 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Disposition conformance fixture vectors — machine-readable test data
|
|
3
|
+
* for the pre-dispatch disposition table (T-A through T-L).
|
|
4
|
+
*
|
|
5
|
+
* Mechanized VERBATIM from §3.8-1 of the #1165 frozen plan (rev11,
|
|
6
|
+
* SHA 7e26e5af). Each vector carries:
|
|
7
|
+
* - A raw frame (the input to a pre-dispatch classifier)
|
|
8
|
+
* - Machine-readable pre-state with correlation records + cross-frame oracle
|
|
9
|
+
* - The expected unique T-class assignment
|
|
10
|
+
* - For respond classes: a type-checked closed-arm error envelope
|
|
11
|
+
* - For close/accept classes: null response markers
|
|
12
|
+
*
|
|
13
|
+
* These are DATA — they do not classify. A future classifier
|
|
14
|
+
* implementation would be tested against these vectors.
|
|
15
|
+
*
|
|
16
|
+
* Coverage per §3.8-1 (frozen enumerations, not arbitrary counts):
|
|
17
|
+
* - 9 response-candidate sub-cases (RESPONSE_CANDIDATE_CASES)
|
|
18
|
+
* "your R9 correction #5's five required cases plus four controls"
|
|
19
|
+
* - 7 notification-partition sub-cases (NOTIFICATION_PARTITION_CASES)
|
|
20
|
+
* "your correction #4's five, the idless-envelope fixture,
|
|
21
|
+
* and the R8 row-10 value-failure fixture"
|
|
22
|
+
* - All 12 T-classes have ≥1 vector
|
|
23
|
+
* - Pre-state mutual-exclusivity proof pairs:
|
|
24
|
+
* ping nonce (T-H-3 / T-L-2), row-9 deliveryId (T-H-9 / T-L-4)
|
|
25
|
+
*
|
|
26
|
+
* Response frames are DERIVED from type-checked ClosedWireErrorResponse
|
|
27
|
+
* objects, not hand-written strings.
|
|
28
|
+
*
|
|
29
|
+
* Partition records carry {vectorId, expectedClass} per case (FC-70-4).
|
|
30
|
+
* Tests verify both existence AND class correctness per key.
|
|
31
|
+
*/
|
|
32
|
+
import { PARSE_ERROR_CODE, PARSE_ERROR_MESSAGE, INVALID_REQUEST_CODE, INVALID_REQUEST_MESSAGE, METHOD_NOT_FOUND_CODE, METHOD_NOT_FOUND_MESSAGE, INVALID_PARAMS_CODE, INVALID_PARAMS_MESSAGE, } from './errors.js';
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
// Closed error arm names — the 11 concrete envelope types from envelope.ts
|
|
35
|
+
// ---------------------------------------------------------------------------
|
|
36
|
+
export const CLOSED_ERROR_ARM_NAMES = [
|
|
37
|
+
'ParseErrorEnvelope',
|
|
38
|
+
'InvalidRequestNullIdEnvelope',
|
|
39
|
+
'InvalidRequestValidIdEnvelope',
|
|
40
|
+
'MethodNotFoundEnvelope',
|
|
41
|
+
'InvalidParamsEnvelope',
|
|
42
|
+
'InternalErrorEnvelope',
|
|
43
|
+
'HandshakeRejectedEnvelope',
|
|
44
|
+
'DeliveryRejectedEnvelope',
|
|
45
|
+
'DomainErrorEnvelope',
|
|
46
|
+
'DeadlineExpiredEnvelope',
|
|
47
|
+
'SnapshotUnavailableEnvelope',
|
|
48
|
+
];
|
|
49
|
+
// ---------------------------------------------------------------------------
|
|
50
|
+
// Type-checked response envelopes
|
|
51
|
+
// ---------------------------------------------------------------------------
|
|
52
|
+
const RESPONSE_PARSE_ERROR = {
|
|
53
|
+
jsonrpc: '2.0',
|
|
54
|
+
id: null,
|
|
55
|
+
error: { code: PARSE_ERROR_CODE, message: PARSE_ERROR_MESSAGE },
|
|
56
|
+
};
|
|
57
|
+
const RESPONSE_INVALID_REQUEST_NULL = {
|
|
58
|
+
jsonrpc: '2.0',
|
|
59
|
+
id: null,
|
|
60
|
+
error: { code: INVALID_REQUEST_CODE, message: INVALID_REQUEST_MESSAGE },
|
|
61
|
+
};
|
|
62
|
+
const RESPONSE_INVALID_REQUEST_A = {
|
|
63
|
+
jsonrpc: '2.0',
|
|
64
|
+
id: 'a',
|
|
65
|
+
error: { code: INVALID_REQUEST_CODE, message: INVALID_REQUEST_MESSAGE },
|
|
66
|
+
};
|
|
67
|
+
const RESPONSE_METHOD_NOT_FOUND_A = {
|
|
68
|
+
jsonrpc: '2.0',
|
|
69
|
+
id: 'a',
|
|
70
|
+
error: { code: METHOD_NOT_FOUND_CODE, message: METHOD_NOT_FOUND_MESSAGE },
|
|
71
|
+
};
|
|
72
|
+
const RESPONSE_INVALID_PARAMS_A = {
|
|
73
|
+
jsonrpc: '2.0',
|
|
74
|
+
id: 'a',
|
|
75
|
+
error: { code: INVALID_PARAMS_CODE, message: INVALID_PARAMS_MESSAGE },
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* 9 response-candidate sub-cases per §3.8-1:
|
|
79
|
+
* "your R9 correction #5's five required cases plus four controls"
|
|
80
|
+
*
|
|
81
|
+
* A "response candidate" enters the response lane: no method + at least
|
|
82
|
+
* one of result/error. Controls prove the boundary: frames with method
|
|
83
|
+
* that exit to T-F/T-K/T-D despite carrying result/error.
|
|
84
|
+
*/
|
|
85
|
+
export const RESPONSE_CANDIDATE_CASES = {
|
|
86
|
+
/** §3.8-1 RC required #1: missing-id success shape → T-H close */
|
|
87
|
+
'rc-1-missing-id-success': { vectorId: 'T-H-7', expectedClass: 'T-H' },
|
|
88
|
+
/** §3.8-1 RC required #2: missing-id error shape → T-H close */
|
|
89
|
+
'rc-2-missing-id-error': { vectorId: 'T-H-8', expectedClass: 'T-H' },
|
|
90
|
+
/** §3.8-1 RC required #3: invalid/malformed-id → T-H close */
|
|
91
|
+
'rc-3-invalid-id': { vectorId: 'T-H-6', expectedClass: 'T-H' },
|
|
92
|
+
/** §3.8-1 RC required #4: schema-valid correlated WireSuccessResponse → T-L */
|
|
93
|
+
'rc-4-settled-valid': { vectorId: 'T-L-1', expectedClass: 'T-L' },
|
|
94
|
+
/** §3.8-1 RC required #5: row-9 ack wrong deliveryId → T-H, never T-L */
|
|
95
|
+
'rc-5-row9-wrong-deliveryid': { vectorId: 'T-H-9', expectedClass: 'T-H' },
|
|
96
|
+
/** §3.8-1 RC control #6: method-bearing Request + extra result → T-F */
|
|
97
|
+
'rc-6-request-extra-result': { vectorId: 'T-F-4', expectedClass: 'T-F' },
|
|
98
|
+
/** §3.8-1 RC control #7: idless Notification + extra error → T-K */
|
|
99
|
+
'rc-7-notification-extra-error': { vectorId: 'T-K-4', expectedClass: 'T-K' },
|
|
100
|
+
/** §3.8-1 RC control #8: structurally-invalid method:0+result → T-D */
|
|
101
|
+
'rc-8-invalid-method-result': { vectorId: 'T-D-3', expectedClass: 'T-D' },
|
|
102
|
+
/** §3.8-1 RC control #9: idless {"jsonrpc":"1.0","method":"x"} → T-D */
|
|
103
|
+
'rc-9-idless-version-control': { vectorId: 'T-D-5', expectedClass: 'T-D' },
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* 7 notification-partition sub-cases per §3.8-1:
|
|
107
|
+
* "your correction #4's five, the idless-envelope fixture,
|
|
108
|
+
* and the R8 row-10 value-failure fixture"
|
|
109
|
+
*/
|
|
110
|
+
export const NOTIFICATION_PARTITION_CASES = {
|
|
111
|
+
/** §3.8-1 NT #1: legal row-10 notification → T-J accept */
|
|
112
|
+
'nt-1-legal-row10': { vectorId: 'T-J-1', expectedClass: 'T-J' },
|
|
113
|
+
/** §3.8-1 NT #2: request-only method without id → T-K close */
|
|
114
|
+
'nt-2-request-method': { vectorId: 'T-K-1', expectedClass: 'T-K' },
|
|
115
|
+
/** §3.8-1 NT #3: unknown method without id → T-K close */
|
|
116
|
+
'nt-3-unknown-method': { vectorId: 'T-K-3', expectedClass: 'T-K' },
|
|
117
|
+
/** §3.8-1 NT #4: structurally valid notification, invalid params → T-K */
|
|
118
|
+
'nt-4-invalid-params': { vectorId: 'T-K-6', expectedClass: 'T-K' },
|
|
119
|
+
/** §3.8-1 NT #5: idless notification extra/missing envelope member → T-K */
|
|
120
|
+
'nt-5-envelope-violation': { vectorId: 'T-K-5', expectedClass: 'T-K' },
|
|
121
|
+
/** §3.8-1 NT #6: row-10 deadlineUnixMs:0 value failure (H7/H8) → T-K */
|
|
122
|
+
'nt-6-value-failure': { vectorId: 'T-K-7', expectedClass: 'T-K' },
|
|
123
|
+
/** §3.8-1 NT #7: structurally invalid idless object → T-D respond */
|
|
124
|
+
'nt-7-structurally-invalid': { vectorId: 'T-D-1', expectedClass: 'T-D' },
|
|
125
|
+
};
|
|
126
|
+
// ---------------------------------------------------------------------------
|
|
127
|
+
// The fixture vectors (35 total)
|
|
128
|
+
// ---------------------------------------------------------------------------
|
|
129
|
+
export const DISPOSITION_FIXTURE_VECTORS = [
|
|
130
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
131
|
+
// PRE-STRUCTURAL (T-A, T-B, T-C)
|
|
132
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
133
|
+
{
|
|
134
|
+
id: 'T-A-1',
|
|
135
|
+
rawFrame: 'ff',
|
|
136
|
+
rawFrameEncoding: 'hex',
|
|
137
|
+
preState: { inFlightRequests: [] },
|
|
138
|
+
expectedClass: 'T-A',
|
|
139
|
+
expectedOutcome: 'close',
|
|
140
|
+
expectedErrorArm: null,
|
|
141
|
+
expectedErrorCode: null,
|
|
142
|
+
expectedResponseFrame: null,
|
|
143
|
+
description: 'transport/framing failure: invalid UTF-8 byte 0xFF',
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
id: 'T-B-1',
|
|
147
|
+
rawFrame: '{invalid json',
|
|
148
|
+
rawFrameEncoding: 'utf8',
|
|
149
|
+
preState: { inFlightRequests: [] },
|
|
150
|
+
expectedClass: 'T-B',
|
|
151
|
+
expectedOutcome: 'respond',
|
|
152
|
+
expectedErrorArm: 'ParseErrorEnvelope',
|
|
153
|
+
expectedErrorCode: -32700,
|
|
154
|
+
expectedResponseFrame: JSON.stringify(RESPONSE_PARSE_ERROR),
|
|
155
|
+
description: 'JSON parse error: malformed JSON input',
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
id: 'T-C-1',
|
|
159
|
+
rawFrame: '{ "jsonrpc":"2.0" }',
|
|
160
|
+
rawFrameEncoding: 'utf8',
|
|
161
|
+
preState: { inFlightRequests: [] },
|
|
162
|
+
expectedClass: 'T-C',
|
|
163
|
+
expectedOutcome: 'close',
|
|
164
|
+
expectedErrorArm: null,
|
|
165
|
+
expectedErrorCode: null,
|
|
166
|
+
expectedResponseFrame: null,
|
|
167
|
+
description: 'frame-canonicality failure: whitespace in compact JSON',
|
|
168
|
+
},
|
|
169
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
170
|
+
// T-D: canonical idless NON-response-candidate, NOT a valid Request
|
|
171
|
+
// object (missing/non-string jsonrpc/method)
|
|
172
|
+
//
|
|
173
|
+
// §3.8-1: "not a valid JSON-RPC Request object at all"
|
|
174
|
+
// Frozen vectors: NT-7 (T-D-1), RC-8 (T-D-3), RC-9 (T-D-5)
|
|
175
|
+
// Additional: T-D-2 (wrong jsonrpc version variant)
|
|
176
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
177
|
+
{
|
|
178
|
+
id: 'T-D-1',
|
|
179
|
+
rawFrame: '{"jsonrpc":"2.0","method":0}',
|
|
180
|
+
rawFrameEncoding: 'utf8',
|
|
181
|
+
preState: { inFlightRequests: [] },
|
|
182
|
+
expectedClass: 'T-D',
|
|
183
|
+
expectedOutcome: 'respond',
|
|
184
|
+
expectedErrorArm: 'InvalidRequestNullIdEnvelope',
|
|
185
|
+
expectedErrorCode: -32600,
|
|
186
|
+
expectedResponseFrame: JSON.stringify(RESPONSE_INVALID_REQUEST_NULL),
|
|
187
|
+
description: '[NT-7] structurally invalid: method is number, not string',
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
id: 'T-D-2',
|
|
191
|
+
rawFrame: '{"jsonrpc":"1.0","method":"broker.hello","params":{"meta":{"deadlineUnixMs":1},"input":{}}}',
|
|
192
|
+
rawFrameEncoding: 'utf8',
|
|
193
|
+
preState: { inFlightRequests: [] },
|
|
194
|
+
expectedClass: 'T-D',
|
|
195
|
+
expectedOutcome: 'respond',
|
|
196
|
+
expectedErrorArm: 'InvalidRequestNullIdEnvelope',
|
|
197
|
+
expectedErrorCode: -32600,
|
|
198
|
+
expectedResponseFrame: JSON.stringify(RESPONSE_INVALID_REQUEST_NULL),
|
|
199
|
+
description: 'structurally invalid: wrong jsonrpc version "1.0" (additional NT-7 variant)',
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
id: 'T-D-3',
|
|
203
|
+
rawFrame: '{"jsonrpc":"2.0","method":0,"result":null}',
|
|
204
|
+
rawFrameEncoding: 'utf8',
|
|
205
|
+
preState: { inFlightRequests: [] },
|
|
206
|
+
expectedClass: 'T-D',
|
|
207
|
+
expectedOutcome: 'respond',
|
|
208
|
+
expectedErrorArm: 'InvalidRequestNullIdEnvelope',
|
|
209
|
+
expectedErrorCode: -32600,
|
|
210
|
+
expectedResponseFrame: JSON.stringify(RESPONSE_INVALID_REQUEST_NULL),
|
|
211
|
+
description: '[RC-8] response-candidate boundary: method:0+result, method routes to T-D',
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
id: 'T-D-5',
|
|
215
|
+
rawFrame: '{"jsonrpc":"1.0","method":"x"}',
|
|
216
|
+
rawFrameEncoding: 'utf8',
|
|
217
|
+
preState: { inFlightRequests: [] },
|
|
218
|
+
expectedClass: 'T-D',
|
|
219
|
+
expectedOutcome: 'respond',
|
|
220
|
+
expectedErrorArm: 'InvalidRequestNullIdEnvelope',
|
|
221
|
+
expectedErrorCode: -32600,
|
|
222
|
+
expectedResponseFrame: JSON.stringify(RESPONSE_INVALID_REQUEST_NULL),
|
|
223
|
+
description: '[RC-9] response-candidate control: idless {"jsonrpc":"1.0","method":"x"} → T-D (not a response candidate)',
|
|
224
|
+
},
|
|
225
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
226
|
+
// T-E: profile-invalid id on request/notification path
|
|
227
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
228
|
+
{
|
|
229
|
+
id: 'T-E-1',
|
|
230
|
+
rawFrame: '{"jsonrpc":"2.0","id":"","method":"broker.hello","params":{"meta":{"deadlineUnixMs":1},"input":{}}}',
|
|
231
|
+
rawFrameEncoding: 'utf8',
|
|
232
|
+
preState: { inFlightRequests: [] },
|
|
233
|
+
expectedClass: 'T-E',
|
|
234
|
+
expectedOutcome: 'close',
|
|
235
|
+
expectedErrorArm: null,
|
|
236
|
+
expectedErrorCode: null,
|
|
237
|
+
expectedResponseFrame: null,
|
|
238
|
+
description: 'profile-invalid id on request: empty string violates min length 1',
|
|
239
|
+
},
|
|
240
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
241
|
+
// T-F: envelope violation (valid id, structural problem)
|
|
242
|
+
// Frozen: RC-6 (T-F-4). Additional: T-F-1, T-F-2, T-F-3.
|
|
243
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
244
|
+
{
|
|
245
|
+
id: 'T-F-1',
|
|
246
|
+
rawFrame: '{"jsonrpc":"2.0","id":"a","method":"broker.hello"}',
|
|
247
|
+
rawFrameEncoding: 'utf8',
|
|
248
|
+
preState: { inFlightRequests: [] },
|
|
249
|
+
expectedClass: 'T-F',
|
|
250
|
+
expectedOutcome: 'respond',
|
|
251
|
+
expectedErrorArm: 'InvalidRequestValidIdEnvelope',
|
|
252
|
+
expectedErrorCode: -32600,
|
|
253
|
+
expectedResponseFrame: JSON.stringify(RESPONSE_INVALID_REQUEST_A),
|
|
254
|
+
description: 'envelope violation: missing required params field',
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
id: 'T-F-2',
|
|
258
|
+
rawFrame: '{"jsonrpc":"2.0","id":"a","method":"unknown.method","params":{"meta":{"deadlineUnixMs":1},"input":{}}}',
|
|
259
|
+
rawFrameEncoding: 'utf8',
|
|
260
|
+
preState: { inFlightRequests: [] },
|
|
261
|
+
expectedClass: 'T-F',
|
|
262
|
+
expectedOutcome: 'respond',
|
|
263
|
+
expectedErrorArm: 'MethodNotFoundEnvelope',
|
|
264
|
+
expectedErrorCode: -32601,
|
|
265
|
+
expectedResponseFrame: JSON.stringify(RESPONSE_METHOD_NOT_FOUND_A),
|
|
266
|
+
description: 'envelope violation: unknown method not in 12-row registry',
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
id: 'T-F-3',
|
|
270
|
+
rawFrame: '{"jsonrpc":"2.0","id":"a","method":"broker.hello","params":[]}',
|
|
271
|
+
rawFrameEncoding: 'utf8',
|
|
272
|
+
preState: { inFlightRequests: [] },
|
|
273
|
+
expectedClass: 'T-F',
|
|
274
|
+
expectedOutcome: 'respond',
|
|
275
|
+
expectedErrorArm: 'InvalidParamsEnvelope',
|
|
276
|
+
expectedErrorCode: -32602,
|
|
277
|
+
expectedResponseFrame: JSON.stringify(RESPONSE_INVALID_PARAMS_A),
|
|
278
|
+
description: 'envelope violation: params is array, must be object',
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
id: 'T-F-4',
|
|
282
|
+
rawFrame: '{"jsonrpc":"2.0","id":"a","method":"broker.hello","params":{"meta":{"deadlineUnixMs":1},"input":{}},"result":null}',
|
|
283
|
+
rawFrameEncoding: 'utf8',
|
|
284
|
+
preState: { inFlightRequests: [] },
|
|
285
|
+
expectedClass: 'T-F',
|
|
286
|
+
expectedOutcome: 'respond',
|
|
287
|
+
expectedErrorArm: 'InvalidRequestValidIdEnvelope',
|
|
288
|
+
expectedErrorCode: -32600,
|
|
289
|
+
expectedResponseFrame: JSON.stringify(RESPONSE_INVALID_REQUEST_A),
|
|
290
|
+
description: '[RC-6] response-candidate control: Request with extra result member → T-F',
|
|
291
|
+
},
|
|
292
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
293
|
+
// T-G: value violation (valid envelope, bad params values)
|
|
294
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
295
|
+
{
|
|
296
|
+
id: 'T-G-1',
|
|
297
|
+
rawFrame: '{"jsonrpc":"2.0","id":"a","method":"host.lifecycle.ping","params":{"meta":{"deadlineUnixMs":1},"input":{"nonce":""}}}',
|
|
298
|
+
rawFrameEncoding: 'utf8',
|
|
299
|
+
preState: { inFlightRequests: [] },
|
|
300
|
+
expectedClass: 'T-G',
|
|
301
|
+
expectedOutcome: 'respond',
|
|
302
|
+
expectedErrorArm: 'InvalidParamsEnvelope',
|
|
303
|
+
expectedErrorCode: -32602,
|
|
304
|
+
expectedResponseFrame: JSON.stringify(RESPONSE_INVALID_PARAMS_A),
|
|
305
|
+
description: 'value violation: nonce empty string violates minLength 1',
|
|
306
|
+
},
|
|
307
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
308
|
+
// T-I: in-flight id collision
|
|
309
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
310
|
+
{
|
|
311
|
+
id: 'T-I-1',
|
|
312
|
+
rawFrame: '{"jsonrpc":"2.0","id":"dup","method":"broker.hello","params":{"meta":{"deadlineUnixMs":1},"input":{}}}',
|
|
313
|
+
rawFrameEncoding: 'utf8',
|
|
314
|
+
preState: { inFlightRequests: [{ id: 'dup', method: 'broker.hello' }] },
|
|
315
|
+
expectedClass: 'T-I',
|
|
316
|
+
expectedOutcome: 'close',
|
|
317
|
+
expectedErrorArm: null,
|
|
318
|
+
expectedErrorCode: null,
|
|
319
|
+
expectedResponseFrame: null,
|
|
320
|
+
description: 'in-flight id collision: id "dup" already in preState',
|
|
321
|
+
},
|
|
322
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
323
|
+
// NOTIFICATION PARTITION — frozen 7 cases + additional coverage
|
|
324
|
+
//
|
|
325
|
+
// §3.8-1: "once a canonical object is classified as a Notification,
|
|
326
|
+
// no JSON-RPC Response is emitted for any downstream method/params/
|
|
327
|
+
// profile rejection."
|
|
328
|
+
//
|
|
329
|
+
// Frozen cases: T-J-1 (NT-1), T-K-1 (NT-2), T-K-3 (NT-3),
|
|
330
|
+
// T-K-6 (NT-4), T-K-5 (NT-5), T-K-7 (NT-6), T-D-1 (NT-7).
|
|
331
|
+
// Additional: T-J-2, T-K-2.
|
|
332
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
333
|
+
{
|
|
334
|
+
id: 'T-J-1',
|
|
335
|
+
rawFrame: '{"jsonrpc":"2.0","method":"host.grants.changed","params":{"meta":{"deadlineUnixMs":1},"input":{"grantRevision":0,"effectiveGrants":[]}}}',
|
|
336
|
+
rawFrameEncoding: 'utf8',
|
|
337
|
+
preState: { inFlightRequests: [] },
|
|
338
|
+
expectedClass: 'T-J',
|
|
339
|
+
expectedOutcome: 'accept',
|
|
340
|
+
expectedErrorArm: null,
|
|
341
|
+
expectedErrorCode: null,
|
|
342
|
+
expectedResponseFrame: null,
|
|
343
|
+
description: '[NT-1] legal row-10 grants.changed notification, empty grants',
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
id: 'T-J-2',
|
|
347
|
+
rawFrame: '{"jsonrpc":"2.0","method":"host.grants.changed","params":{"meta":{"deadlineUnixMs":1},"input":{"grantRevision":1,"effectiveGrants":["message.event.subscribe"]}}}',
|
|
348
|
+
rawFrameEncoding: 'utf8',
|
|
349
|
+
preState: { inFlightRequests: [] },
|
|
350
|
+
expectedClass: 'T-J',
|
|
351
|
+
expectedOutcome: 'accept',
|
|
352
|
+
expectedErrorArm: null,
|
|
353
|
+
expectedErrorCode: null,
|
|
354
|
+
expectedResponseFrame: null,
|
|
355
|
+
description: 'legal row-10 grants.changed, non-empty grants (additional NT-1 variant)',
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
id: 'T-K-1',
|
|
359
|
+
rawFrame: '{"jsonrpc":"2.0","method":"host.lifecycle.ping","params":{"meta":{"deadlineUnixMs":1},"input":{"nonce":"x"}}}',
|
|
360
|
+
rawFrameEncoding: 'utf8',
|
|
361
|
+
preState: { inFlightRequests: [] },
|
|
362
|
+
expectedClass: 'T-K',
|
|
363
|
+
expectedOutcome: 'close',
|
|
364
|
+
expectedErrorArm: null,
|
|
365
|
+
expectedErrorCode: null,
|
|
366
|
+
expectedResponseFrame: null,
|
|
367
|
+
description: '[NT-2] request-only method (ping, row 11) as notification → v0 violation',
|
|
368
|
+
},
|
|
369
|
+
{
|
|
370
|
+
id: 'T-K-2',
|
|
371
|
+
rawFrame: '{"jsonrpc":"2.0","method":"broker.hello","params":{"meta":{"deadlineUnixMs":1},"input":{}}}',
|
|
372
|
+
rawFrameEncoding: 'utf8',
|
|
373
|
+
preState: { inFlightRequests: [] },
|
|
374
|
+
expectedClass: 'T-K',
|
|
375
|
+
expectedOutcome: 'close',
|
|
376
|
+
expectedErrorArm: null,
|
|
377
|
+
expectedErrorCode: null,
|
|
378
|
+
expectedResponseFrame: null,
|
|
379
|
+
description: 'request-only method (hello, row 1) as notification (additional NT-2 variant)',
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
id: 'T-K-3',
|
|
383
|
+
rawFrame: '{"jsonrpc":"2.0","method":"unknown.rpc","params":{"meta":{"deadlineUnixMs":1},"input":{}}}',
|
|
384
|
+
rawFrameEncoding: 'utf8',
|
|
385
|
+
preState: { inFlightRequests: [] },
|
|
386
|
+
expectedClass: 'T-K',
|
|
387
|
+
expectedOutcome: 'close',
|
|
388
|
+
expectedErrorArm: null,
|
|
389
|
+
expectedErrorCode: null,
|
|
390
|
+
expectedResponseFrame: null,
|
|
391
|
+
description: '[NT-3] unknown method as notification → v0 violation',
|
|
392
|
+
},
|
|
393
|
+
{
|
|
394
|
+
id: 'T-K-4',
|
|
395
|
+
rawFrame: '{"jsonrpc":"2.0","method":"host.grants.changed","params":{"meta":{"deadlineUnixMs":1},"input":{"grantRevision":0,"effectiveGrants":[]}},"error":{"code":-32600,"message":"Invalid Request"}}',
|
|
396
|
+
rawFrameEncoding: 'utf8',
|
|
397
|
+
preState: { inFlightRequests: [] },
|
|
398
|
+
expectedClass: 'T-K',
|
|
399
|
+
expectedOutcome: 'close',
|
|
400
|
+
expectedErrorArm: null,
|
|
401
|
+
expectedErrorCode: null,
|
|
402
|
+
expectedResponseFrame: null,
|
|
403
|
+
description: '[RC-7 / NT-5 variant] Notification with extra error member → T-K close',
|
|
404
|
+
},
|
|
405
|
+
{
|
|
406
|
+
id: 'T-K-5',
|
|
407
|
+
rawFrame: '{"jsonrpc":"2.0","method":"host.grants.changed"}',
|
|
408
|
+
rawFrameEncoding: 'utf8',
|
|
409
|
+
preState: { inFlightRequests: [] },
|
|
410
|
+
expectedClass: 'T-K',
|
|
411
|
+
expectedOutcome: 'close',
|
|
412
|
+
expectedErrorArm: null,
|
|
413
|
+
expectedErrorCode: null,
|
|
414
|
+
expectedResponseFrame: null,
|
|
415
|
+
description: '[NT-5] Notification missing params → idless envelope violation → T-K close',
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
id: 'T-K-6',
|
|
419
|
+
rawFrame: '{"jsonrpc":"2.0","method":"host.grants.changed","params":{"meta":{"deadlineUnixMs":1},"input":{"grantRevision":"not-a-number","effectiveGrants":[]}}}',
|
|
420
|
+
rawFrameEncoding: 'utf8',
|
|
421
|
+
preState: { inFlightRequests: [] },
|
|
422
|
+
expectedClass: 'T-K',
|
|
423
|
+
expectedOutcome: 'close',
|
|
424
|
+
expectedErrorArm: null,
|
|
425
|
+
expectedErrorCode: null,
|
|
426
|
+
expectedResponseFrame: null,
|
|
427
|
+
description: '[NT-4] structurally valid Notification, invocation-level invalid params (grantRevision wrong type)',
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
id: 'T-K-7',
|
|
431
|
+
rawFrame: '{"jsonrpc":"2.0","method":"host.grants.changed","params":{"meta":{"deadlineUnixMs":0},"input":{"grantRevision":0,"effectiveGrants":[]}}}',
|
|
432
|
+
rawFrameEncoding: 'utf8',
|
|
433
|
+
preState: { inFlightRequests: [] },
|
|
434
|
+
expectedClass: 'T-K',
|
|
435
|
+
expectedOutcome: 'close',
|
|
436
|
+
expectedErrorArm: null,
|
|
437
|
+
expectedErrorCode: null,
|
|
438
|
+
expectedResponseFrame: null,
|
|
439
|
+
description: '[NT-6] row-10 notification with deadlineUnixMs:0 → value failure (H7), T-K close',
|
|
440
|
+
},
|
|
441
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
442
|
+
// RESPONSE-CANDIDATE PARTITION — frozen 9 cases + additional coverage
|
|
443
|
+
//
|
|
444
|
+
// §3.8-1: "an object with no method and at least one of result/error
|
|
445
|
+
// is a response candidate and enters the response lane BEFORE any
|
|
446
|
+
// Request/Notification or ID-profile routing"
|
|
447
|
+
//
|
|
448
|
+
// Frozen cases: T-H-7 (RC-1), T-H-8 (RC-2), T-H-6 (RC-3),
|
|
449
|
+
// T-L-1 (RC-4), T-H-9 (RC-5), T-F-4 (RC-6), T-K-4 (RC-7),
|
|
450
|
+
// T-D-3 (RC-8), T-D-5 (RC-9).
|
|
451
|
+
// Additional coverage: T-H-1..T-H-5, T-L-2..T-L-4 (proof pairs + extras)
|
|
452
|
+
// ═════════════════════════════════════════════════════════════════════════
|
|
453
|
+
// ── T-H: response-candidate validation/correlation failure ────────────
|
|
454
|
+
{
|
|
455
|
+
id: 'T-H-1',
|
|
456
|
+
rawFrame: '{"jsonrpc":"2.0","id":"phantom","result":null}',
|
|
457
|
+
rawFrameEncoding: 'utf8',
|
|
458
|
+
preState: { inFlightRequests: [] },
|
|
459
|
+
expectedClass: 'T-H',
|
|
460
|
+
expectedOutcome: 'close',
|
|
461
|
+
expectedErrorArm: null,
|
|
462
|
+
expectedErrorCode: null,
|
|
463
|
+
expectedResponseFrame: null,
|
|
464
|
+
description: 'response-candidate: phantom id, uncorrelated (additional coverage)',
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
id: 'T-H-2',
|
|
468
|
+
rawFrame: '{"jsonrpc":"2.0","id":"x","result":null,"error":{"code":-32603,"message":"Internal error"}}',
|
|
469
|
+
rawFrameEncoding: 'utf8',
|
|
470
|
+
preState: { inFlightRequests: [{ id: 'x', method: 'messaging.subscribe' }] },
|
|
471
|
+
expectedClass: 'T-H',
|
|
472
|
+
expectedOutcome: 'close',
|
|
473
|
+
expectedErrorArm: null,
|
|
474
|
+
expectedErrorCode: null,
|
|
475
|
+
expectedResponseFrame: null,
|
|
476
|
+
description: 'response-candidate: both result AND error present (additional coverage)',
|
|
477
|
+
},
|
|
478
|
+
// ── MUTUAL-EXCLUSIVITY PROOF PAIR ─────────────────────────────────────
|
|
479
|
+
// T-H-3 and T-L-2 share IDENTICAL rawFrame with schema-valid ping
|
|
480
|
+
// result. Only preState differs. FC-70-3 fix: rawFrame now has valid
|
|
481
|
+
// PingResult {nonce:"x"} instead of null.
|
|
482
|
+
{
|
|
483
|
+
id: 'T-H-3',
|
|
484
|
+
rawFrame: '{"jsonrpc":"2.0","id":"corr-test","result":{"nonce":"x"}}',
|
|
485
|
+
rawFrameEncoding: 'utf8',
|
|
486
|
+
preState: { inFlightRequests: [] },
|
|
487
|
+
expectedClass: 'T-H',
|
|
488
|
+
expectedOutcome: 'close',
|
|
489
|
+
expectedErrorArm: null,
|
|
490
|
+
expectedErrorCode: null,
|
|
491
|
+
expectedResponseFrame: null,
|
|
492
|
+
description: 'proof pair: "corr-test" NOT in-flight → T-H (see T-L-2)',
|
|
493
|
+
},
|
|
494
|
+
{
|
|
495
|
+
id: 'T-H-4',
|
|
496
|
+
rawFrame: '{"jsonrpc":"2.0","id":"lost-req","error":{"code":-32602,"message":"Invalid params"}}',
|
|
497
|
+
rawFrameEncoding: 'utf8',
|
|
498
|
+
preState: { inFlightRequests: [] },
|
|
499
|
+
expectedClass: 'T-H',
|
|
500
|
+
expectedOutcome: 'close',
|
|
501
|
+
expectedErrorArm: null,
|
|
502
|
+
expectedErrorCode: null,
|
|
503
|
+
expectedResponseFrame: null,
|
|
504
|
+
description: 'response-candidate: uncorrelated error (additional coverage)',
|
|
505
|
+
},
|
|
506
|
+
{
|
|
507
|
+
id: 'T-H-5',
|
|
508
|
+
rawFrame: '{"jsonrpc":"2.0","id":"r1","error":"not an object"}',
|
|
509
|
+
rawFrameEncoding: 'utf8',
|
|
510
|
+
preState: { inFlightRequests: [{ id: 'r1', method: 'messaging.subscribe' }] },
|
|
511
|
+
expectedClass: 'T-H',
|
|
512
|
+
expectedOutcome: 'close',
|
|
513
|
+
expectedErrorArm: null,
|
|
514
|
+
expectedErrorCode: null,
|
|
515
|
+
expectedResponseFrame: null,
|
|
516
|
+
description: 'response-candidate: error body is string not object (additional coverage)',
|
|
517
|
+
},
|
|
518
|
+
{
|
|
519
|
+
id: 'T-H-6',
|
|
520
|
+
rawFrame: '{"jsonrpc":"2.0","id":42,"result":null}',
|
|
521
|
+
rawFrameEncoding: 'utf8',
|
|
522
|
+
preState: { inFlightRequests: [] },
|
|
523
|
+
expectedClass: 'T-H',
|
|
524
|
+
expectedOutcome: 'close',
|
|
525
|
+
expectedErrorArm: null,
|
|
526
|
+
expectedErrorCode: null,
|
|
527
|
+
expectedResponseFrame: null,
|
|
528
|
+
description: '[RC-3] invalid/malformed-id response candidate: numeric id → T-H',
|
|
529
|
+
},
|
|
530
|
+
{
|
|
531
|
+
id: 'T-H-7',
|
|
532
|
+
rawFrame: '{"jsonrpc":"2.0","result":null}',
|
|
533
|
+
rawFrameEncoding: 'utf8',
|
|
534
|
+
preState: { inFlightRequests: [] },
|
|
535
|
+
expectedClass: 'T-H',
|
|
536
|
+
expectedOutcome: 'close',
|
|
537
|
+
expectedErrorArm: null,
|
|
538
|
+
expectedErrorCode: null,
|
|
539
|
+
expectedResponseFrame: null,
|
|
540
|
+
description: '[RC-1] missing-id success shape: result present, no id → T-H',
|
|
541
|
+
},
|
|
542
|
+
{
|
|
543
|
+
id: 'T-H-8',
|
|
544
|
+
rawFrame: '{"jsonrpc":"2.0","error":{"code":-32602,"message":"Invalid params"}}',
|
|
545
|
+
rawFrameEncoding: 'utf8',
|
|
546
|
+
preState: { inFlightRequests: [] },
|
|
547
|
+
expectedClass: 'T-H',
|
|
548
|
+
expectedOutcome: 'close',
|
|
549
|
+
expectedErrorArm: null,
|
|
550
|
+
expectedErrorCode: null,
|
|
551
|
+
expectedResponseFrame: null,
|
|
552
|
+
description: '[RC-2] missing-id error shape: error present, no id → T-H',
|
|
553
|
+
},
|
|
554
|
+
{
|
|
555
|
+
id: 'T-H-9',
|
|
556
|
+
rawFrame: '{"jsonrpc":"2.0","id":"del-1","result":{"deliveryId":"wrong-id"}}',
|
|
557
|
+
rawFrameEncoding: 'utf8',
|
|
558
|
+
preState: { inFlightRequests: [{ id: 'del-1', method: 'host.messaging.deliver', requestSnapshot: { deliveryId: 'correct-id' } }] },
|
|
559
|
+
expectedClass: 'T-H',
|
|
560
|
+
expectedOutcome: 'close',
|
|
561
|
+
expectedErrorArm: null,
|
|
562
|
+
expectedErrorCode: null,
|
|
563
|
+
expectedResponseFrame: null,
|
|
564
|
+
description: '[RC-5] row-9 ack with wrong deliveryId: byte-equality fails → T-H, never T-L',
|
|
565
|
+
},
|
|
566
|
+
// ── T-L: valid correlated response (settlement) ──────────────────────
|
|
567
|
+
{
|
|
568
|
+
id: 'T-L-1',
|
|
569
|
+
rawFrame: '{"jsonrpc":"2.0","id":"req-1","result":{"nonce":"x"}}',
|
|
570
|
+
rawFrameEncoding: 'utf8',
|
|
571
|
+
preState: { inFlightRequests: [{ id: 'req-1', method: 'host.lifecycle.ping', requestSnapshot: { nonce: 'x' } }] },
|
|
572
|
+
expectedClass: 'T-L',
|
|
573
|
+
expectedOutcome: 'accept',
|
|
574
|
+
expectedErrorArm: null,
|
|
575
|
+
expectedErrorCode: null,
|
|
576
|
+
expectedResponseFrame: null,
|
|
577
|
+
description: '[RC-4] schema-valid correlated WireSuccessResponse: ping nonce echoed byte-equal',
|
|
578
|
+
},
|
|
579
|
+
// ── PAIR with T-H-3 ──────────────────────────────────────────────────
|
|
580
|
+
{
|
|
581
|
+
id: 'T-L-2',
|
|
582
|
+
rawFrame: '{"jsonrpc":"2.0","id":"corr-test","result":{"nonce":"x"}}',
|
|
583
|
+
rawFrameEncoding: 'utf8',
|
|
584
|
+
preState: { inFlightRequests: [{ id: 'corr-test', method: 'host.lifecycle.ping', requestSnapshot: { nonce: 'x' } }] },
|
|
585
|
+
expectedClass: 'T-L',
|
|
586
|
+
expectedOutcome: 'accept',
|
|
587
|
+
expectedErrorArm: null,
|
|
588
|
+
expectedErrorCode: null,
|
|
589
|
+
expectedResponseFrame: null,
|
|
590
|
+
description: 'proof pair: "corr-test" IS in-flight (ping), nonce matches → T-L (see T-H-3)',
|
|
591
|
+
},
|
|
592
|
+
{
|
|
593
|
+
id: 'T-L-3',
|
|
594
|
+
rawFrame: '{"jsonrpc":"2.0","id":"req-err","error":{"code":-32602,"message":"Invalid params"}}',
|
|
595
|
+
rawFrameEncoding: 'utf8',
|
|
596
|
+
preState: { inFlightRequests: [{ id: 'req-err', method: 'host.lifecycle.ping' }] },
|
|
597
|
+
expectedClass: 'T-L',
|
|
598
|
+
expectedOutcome: 'accept',
|
|
599
|
+
expectedErrorArm: null,
|
|
600
|
+
expectedErrorCode: null,
|
|
601
|
+
expectedResponseFrame: null,
|
|
602
|
+
description: 'correlated error settlement: valid WireErrorResponse (additional coverage)',
|
|
603
|
+
},
|
|
604
|
+
// ── ROW-9 DELIVERYID EXCLUSIVE PAIR (R47) ────────────────────────────
|
|
605
|
+
// T-H-9 and T-L-4 share the same method/preState structure for
|
|
606
|
+
// host.messaging.deliver. Only the result.deliveryId differs:
|
|
607
|
+
// T-H-9: result.deliveryId="wrong-id" ≠ snapshot.deliveryId="correct-id" → T-H
|
|
608
|
+
// T-L-4: result.deliveryId="correct-id" = snapshot.deliveryId="correct-id" → T-L
|
|
609
|
+
// This locks the byte-equality oracle's success AND failure sides.
|
|
610
|
+
{
|
|
611
|
+
id: 'T-L-4',
|
|
612
|
+
rawFrame: '{"jsonrpc":"2.0","id":"del-1","result":{"deliveryId":"correct-id"}}',
|
|
613
|
+
rawFrameEncoding: 'utf8',
|
|
614
|
+
preState: { inFlightRequests: [{ id: 'del-1', method: 'host.messaging.deliver', requestSnapshot: { deliveryId: 'correct-id' } }] },
|
|
615
|
+
expectedClass: 'T-L',
|
|
616
|
+
expectedOutcome: 'accept',
|
|
617
|
+
expectedErrorArm: null,
|
|
618
|
+
expectedErrorCode: null,
|
|
619
|
+
expectedResponseFrame: null,
|
|
620
|
+
description: '[R47 pair] row-9 ack with correct deliveryId: byte-equality passes → T-L (see T-H-9)',
|
|
621
|
+
},
|
|
622
|
+
];
|
|
623
|
+
//# sourceMappingURL=disposition-fixtures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disposition-fixtures.js","sourceRoot":"","sources":["../../src/wire/disposition-fixtures.ts"],"names":[],"mappings":"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"}
|