Транспорт и envelope
Форматы запроса и ответа Compute Contract, backend-выбор и обработка отказов.
Native-процесс запускается как compute_contract_cli –session. После handshake транспорт принимает один JSON ComputeRequest на строку и возвращает один ComputeResultEnvelope на строку. WASM использует тот же JSON через WasmComputeSession.dispatch().
./target/release/compute_contract_cli --sessionОбщие поля запроса
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| operation | ComputeRequest[“operation”] | да | Дискриминатор операции. |
| requestedBackend | “wasm” | “native-desktop” | “service-host” | null | нет | Запрошенный backend. |
| requestId | string | нет | Транспортная корреляция; echo в envelope. |
ComputeSuccessEnvelope
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| ok | true | да | Успех. |
| requestId | string | нет | Echo requestId. |
| requestedBackend | ComputeBackendKind | да | |
| backendUsed | ComputeBackendKind | да | |
| fallbackUsed | boolean | да | |
| warnings | ComputeWarning[] | да | |
| responsiveRecalc | ContractResponsiveRecalcSnapshot | null | нет | |
| payload | ComputeResponsePayload | да | Success payload конкретной операции. |
ComputeErrorEnvelope
| Поле | Тип TypeScript | Обяз. | Примечание из контракта |
|---|---|---|---|
| ok | false | да | Отказ. |
| requestId | string | нет | Echo requestId. |
| requestedBackend | ComputeBackendKind | да | |
| backendUsed | ComputeBackendKind | да | |
| fallbackUsed | boolean | да | |
| warnings | ComputeWarning[] | да | |
| code | string | да | Typed refusal/error code. |
| message | string | да | |
| details | string | null | нет | |
| dataValidationSource | ContractDataValidationSourceValidation | null | нет | |
| calculationStatus | ContractCalculationStatus | null | нет |