feat: expose web observe wrapper contract (#894)

Co-authored-by: Codex <codex@noreply.local>
This commit is contained in:
Lyon
2026-06-25 21:45:24 +08:00
committed by GitHub
parent 07fda94925
commit fd874ceef5
5 changed files with 300 additions and 0 deletions
@@ -1,6 +1,8 @@
// SPEC: PJ2026-01040111 long-running Workbench observation.
// SPEC: PJ2026-01060508 Web哨兵 draft-2026-06-25-p0-web-probe-sentinel.
// Responsibility: CLI text rendering for hwlab nodes web-probe observe status/command/collect.
import type { RenderedCliResult } from "./output";
import { renderWebObserveWrapperContract } from "./hwlab-node-web-observe-wrapper-render";
export function withWebObserveStatusRendered(value: Record<string, unknown>): RenderedCliResult {
return {
@@ -63,6 +65,7 @@ function renderWebObserveStatusTable(value: Record<string, unknown>): string {
const lines = [
`hwlab nodes web-probe observe status (${webObserveText(value.status)})`,
"",
...renderWebObserveWrapperContract(value),
webObserveTable(["ID", "NODE", "LANE", "LIVENESS", "ALIVE", "PID", "SAMPLE", "CMD_SEQ", "HB_AGE_S", "STALE", "UPDATED", "TARGET"], [[
value.id,
value.node,
@@ -189,6 +192,7 @@ function renderWebObserveCommandTable(value: Record<string, unknown>): string {
const lines = [
`hwlab nodes web-probe observe command (${webObserveText(value.status)})`,
"",
...renderWebObserveWrapperContract(value),
webObserveTable(["OBSERVER", "COMMAND", "TYPE", "STATUS", "TEXT_BYTES", "TEXT_HASH", "DETAIL"], [[
id,
value.commandId,
@@ -223,6 +227,7 @@ function renderWebObserveCollectTable(value: Record<string, unknown>): string {
return [
`hwlab nodes web-probe observe collect (${webObserveText(value.status)})`,
"",
...renderWebObserveWrapperContract(value),
collect.renderedText,
"",
"Source:",
@@ -254,6 +259,7 @@ function renderWebObserveCollectTable(value: Record<string, unknown>): string {
const lines = [
`hwlab nodes web-probe observe collect (${webObserveText(value.status)})`,
"",
...renderWebObserveWrapperContract(value),
webObserveTable(["ID", "NODE", "LANE", "MODE", "STATE_DIR"], [[
value.id,
value.node,