@opengeni/agent-proto 0.3.0 → 0.5.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/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/gen/opengeni_agent.ts"],"sourcesContent":["// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.11.8\n// protoc v5.28.3\n// source: opengeni_agent.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"opengeni.agent.v1\";\n\nexport enum ErrorCode {\n ERROR_CODE_UNSPECIFIED = 0,\n /** ERROR_CODE_UNSUPPORTED - The requested op is not implemented / not permitted on this platform. */\n ERROR_CODE_UNSUPPORTED = 1,\n /** ERROR_CODE_OS - A filesystem/exec/git op failed at the OS layer (see `detail`). */\n ERROR_CODE_OS = 2,\n /** ERROR_CODE_NOT_FOUND - The path/ref/target referenced by the op does not exist. */\n ERROR_CODE_NOT_FOUND = 3,\n /** ERROR_CODE_CONSENT_REQUIRED - The op was rejected by consent/capability gating (e.g. screen-control off). */\n ERROR_CODE_CONSENT_REQUIRED = 4,\n /** ERROR_CODE_TIMEOUT - The op timed out inside the agent. */\n ERROR_CODE_TIMEOUT = 5,\n /** ERROR_CODE_DRAINING - The agent is shutting down / draining and cannot accept new work. */\n ERROR_CODE_DRAINING = 6,\n /** ERROR_CODE_PROTOCOL - A protocol-level violation (bad envelope, unknown op for this version). */\n ERROR_CODE_PROTOCOL = 7,\n /** ERROR_CODE_STREAM - A required stream channel could not be opened on the relay. */\n ERROR_CODE_STREAM = 8,\n /** ERROR_CODE_AGENT_OFFLINE - The control plane synthesized this because no agent responded (offline). */\n ERROR_CODE_AGENT_OFFLINE = 9,\n /** ERROR_CODE_FENCED - An epoch fence rejected a stale op; caller should re-resolve and retry. */\n ERROR_CODE_FENCED = 10,\n /**\n * ERROR_CODE_PAYLOAD_TOO_LARGE - The op's reply would exceed the transport's negotiated max payload and could\n * not be published (e.g. a full-res screenshot, or an unbounded file read/exec\n * output). The agent's wire-seam backstop synthesizes THIS instead of letting\n * the oversized publish fail silently and the caller time out opaquely.\n * Not retryable — the same op would produce the same oversized reply.\n */\n ERROR_CODE_PAYLOAD_TOO_LARGE = 11,\n}\n\nexport function errorCodeFromJSON(object: any): ErrorCode {\n switch (object) {\n case 0:\n case \"ERROR_CODE_UNSPECIFIED\":\n return ErrorCode.ERROR_CODE_UNSPECIFIED;\n case 1:\n case \"ERROR_CODE_UNSUPPORTED\":\n return ErrorCode.ERROR_CODE_UNSUPPORTED;\n case 2:\n case \"ERROR_CODE_OS\":\n return ErrorCode.ERROR_CODE_OS;\n case 3:\n case \"ERROR_CODE_NOT_FOUND\":\n return ErrorCode.ERROR_CODE_NOT_FOUND;\n case 4:\n case \"ERROR_CODE_CONSENT_REQUIRED\":\n return ErrorCode.ERROR_CODE_CONSENT_REQUIRED;\n case 5:\n case \"ERROR_CODE_TIMEOUT\":\n return ErrorCode.ERROR_CODE_TIMEOUT;\n case 6:\n case \"ERROR_CODE_DRAINING\":\n return ErrorCode.ERROR_CODE_DRAINING;\n case 7:\n case \"ERROR_CODE_PROTOCOL\":\n return ErrorCode.ERROR_CODE_PROTOCOL;\n case 8:\n case \"ERROR_CODE_STREAM\":\n return ErrorCode.ERROR_CODE_STREAM;\n case 9:\n case \"ERROR_CODE_AGENT_OFFLINE\":\n return ErrorCode.ERROR_CODE_AGENT_OFFLINE;\n case 10:\n case \"ERROR_CODE_FENCED\":\n return ErrorCode.ERROR_CODE_FENCED;\n case 11:\n case \"ERROR_CODE_PAYLOAD_TOO_LARGE\":\n return ErrorCode.ERROR_CODE_PAYLOAD_TOO_LARGE;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum ErrorCode\");\n }\n}\n\nexport function errorCodeToJSON(object: ErrorCode): string {\n switch (object) {\n case ErrorCode.ERROR_CODE_UNSPECIFIED:\n return \"ERROR_CODE_UNSPECIFIED\";\n case ErrorCode.ERROR_CODE_UNSUPPORTED:\n return \"ERROR_CODE_UNSUPPORTED\";\n case ErrorCode.ERROR_CODE_OS:\n return \"ERROR_CODE_OS\";\n case ErrorCode.ERROR_CODE_NOT_FOUND:\n return \"ERROR_CODE_NOT_FOUND\";\n case ErrorCode.ERROR_CODE_CONSENT_REQUIRED:\n return \"ERROR_CODE_CONSENT_REQUIRED\";\n case ErrorCode.ERROR_CODE_TIMEOUT:\n return \"ERROR_CODE_TIMEOUT\";\n case ErrorCode.ERROR_CODE_DRAINING:\n return \"ERROR_CODE_DRAINING\";\n case ErrorCode.ERROR_CODE_PROTOCOL:\n return \"ERROR_CODE_PROTOCOL\";\n case ErrorCode.ERROR_CODE_STREAM:\n return \"ERROR_CODE_STREAM\";\n case ErrorCode.ERROR_CODE_AGENT_OFFLINE:\n return \"ERROR_CODE_AGENT_OFFLINE\";\n case ErrorCode.ERROR_CODE_FENCED:\n return \"ERROR_CODE_FENCED\";\n case ErrorCode.ERROR_CODE_PAYLOAD_TOO_LARGE:\n return \"ERROR_CODE_PAYLOAD_TOO_LARGE\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum ErrorCode\");\n }\n}\n\n/** The operating system family the agent runs on. */\nexport enum Os {\n OS_UNSPECIFIED = 0,\n OS_LINUX = 1,\n OS_MACOS = 2,\n OS_WINDOWS = 3,\n}\n\nexport function osFromJSON(object: any): Os {\n switch (object) {\n case 0:\n case \"OS_UNSPECIFIED\":\n return Os.OS_UNSPECIFIED;\n case 1:\n case \"OS_LINUX\":\n return Os.OS_LINUX;\n case 2:\n case \"OS_MACOS\":\n return Os.OS_MACOS;\n case 3:\n case \"OS_WINDOWS\":\n return Os.OS_WINDOWS;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum Os\");\n }\n}\n\nexport function osToJSON(object: Os): string {\n switch (object) {\n case Os.OS_UNSPECIFIED:\n return \"OS_UNSPECIFIED\";\n case Os.OS_LINUX:\n return \"OS_LINUX\";\n case Os.OS_MACOS:\n return \"OS_MACOS\";\n case Os.OS_WINDOWS:\n return \"OS_WINDOWS\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum Os\");\n }\n}\n\n/** CPU architecture. */\nexport enum Arch {\n ARCH_UNSPECIFIED = 0,\n ARCH_X86_64 = 1,\n ARCH_AARCH64 = 2,\n}\n\nexport function archFromJSON(object: any): Arch {\n switch (object) {\n case 0:\n case \"ARCH_UNSPECIFIED\":\n return Arch.ARCH_UNSPECIFIED;\n case 1:\n case \"ARCH_X86_64\":\n return Arch.ARCH_X86_64;\n case 2:\n case \"ARCH_AARCH64\":\n return Arch.ARCH_AARCH64;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum Arch\");\n }\n}\n\nexport function archToJSON(object: Arch): string {\n switch (object) {\n case Arch.ARCH_UNSPECIFIED:\n return \"ARCH_UNSPECIFIED\";\n case Arch.ARCH_X86_64:\n return \"ARCH_X86_64\";\n case Arch.ARCH_AARCH64:\n return \"ARCH_AARCH64\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum Arch\");\n }\n}\n\n/** The kind of byte stream a relay channel carries. */\nexport enum StreamKind {\n STREAM_KIND_UNSPECIFIED = 0,\n /** STREAM_KIND_PTY - An interactive pseudo-terminal (ttyd-equivalent). */\n STREAM_KIND_PTY = 1,\n /** STREAM_KIND_DESKTOP - A desktop framebuffer (noVNC-equivalent) for view + computer-use. */\n STREAM_KIND_DESKTOP = 2,\n}\n\nexport function streamKindFromJSON(object: any): StreamKind {\n switch (object) {\n case 0:\n case \"STREAM_KIND_UNSPECIFIED\":\n return StreamKind.STREAM_KIND_UNSPECIFIED;\n case 1:\n case \"STREAM_KIND_PTY\":\n return StreamKind.STREAM_KIND_PTY;\n case 2:\n case \"STREAM_KIND_DESKTOP\":\n return StreamKind.STREAM_KIND_DESKTOP;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum StreamKind\");\n }\n}\n\nexport function streamKindToJSON(object: StreamKind): string {\n switch (object) {\n case StreamKind.STREAM_KIND_UNSPECIFIED:\n return \"STREAM_KIND_UNSPECIFIED\";\n case StreamKind.STREAM_KIND_PTY:\n return \"STREAM_KIND_PTY\";\n case StreamKind.STREAM_KIND_DESKTOP:\n return \"STREAM_KIND_DESKTOP\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum StreamKind\");\n }\n}\n\nexport enum DeviceAuthState {\n DEVICE_AUTH_STATE_UNSPECIFIED = 0,\n /** DEVICE_AUTH_STATE_PENDING - The user has not yet completed the flow; keep polling. */\n DEVICE_AUTH_STATE_PENDING = 1,\n /** DEVICE_AUTH_STATE_AUTHORIZED - The user authorized; `credentials` are present. */\n DEVICE_AUTH_STATE_AUTHORIZED = 2,\n /** DEVICE_AUTH_STATE_DENIED - The user explicitly denied the request. */\n DEVICE_AUTH_STATE_DENIED = 3,\n /** DEVICE_AUTH_STATE_EXPIRED - The device_code expired before authorization. */\n DEVICE_AUTH_STATE_EXPIRED = 4,\n /** DEVICE_AUTH_STATE_SLOW_DOWN - The agent is polling too fast and must slow down. */\n DEVICE_AUTH_STATE_SLOW_DOWN = 5,\n}\n\nexport function deviceAuthStateFromJSON(object: any): DeviceAuthState {\n switch (object) {\n case 0:\n case \"DEVICE_AUTH_STATE_UNSPECIFIED\":\n return DeviceAuthState.DEVICE_AUTH_STATE_UNSPECIFIED;\n case 1:\n case \"DEVICE_AUTH_STATE_PENDING\":\n return DeviceAuthState.DEVICE_AUTH_STATE_PENDING;\n case 2:\n case \"DEVICE_AUTH_STATE_AUTHORIZED\":\n return DeviceAuthState.DEVICE_AUTH_STATE_AUTHORIZED;\n case 3:\n case \"DEVICE_AUTH_STATE_DENIED\":\n return DeviceAuthState.DEVICE_AUTH_STATE_DENIED;\n case 4:\n case \"DEVICE_AUTH_STATE_EXPIRED\":\n return DeviceAuthState.DEVICE_AUTH_STATE_EXPIRED;\n case 5:\n case \"DEVICE_AUTH_STATE_SLOW_DOWN\":\n return DeviceAuthState.DEVICE_AUTH_STATE_SLOW_DOWN;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum DeviceAuthState\");\n }\n}\n\nexport function deviceAuthStateToJSON(object: DeviceAuthState): string {\n switch (object) {\n case DeviceAuthState.DEVICE_AUTH_STATE_UNSPECIFIED:\n return \"DEVICE_AUTH_STATE_UNSPECIFIED\";\n case DeviceAuthState.DEVICE_AUTH_STATE_PENDING:\n return \"DEVICE_AUTH_STATE_PENDING\";\n case DeviceAuthState.DEVICE_AUTH_STATE_AUTHORIZED:\n return \"DEVICE_AUTH_STATE_AUTHORIZED\";\n case DeviceAuthState.DEVICE_AUTH_STATE_DENIED:\n return \"DEVICE_AUTH_STATE_DENIED\";\n case DeviceAuthState.DEVICE_AUTH_STATE_EXPIRED:\n return \"DEVICE_AUTH_STATE_EXPIRED\";\n case DeviceAuthState.DEVICE_AUTH_STATE_SLOW_DOWN:\n return \"DEVICE_AUTH_STATE_SLOW_DOWN\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum DeviceAuthState\");\n }\n}\n\nexport enum FsEntryKind {\n FS_ENTRY_KIND_UNSPECIFIED = 0,\n FS_ENTRY_KIND_FILE = 1,\n FS_ENTRY_KIND_DIRECTORY = 2,\n FS_ENTRY_KIND_SYMLINK = 3,\n}\n\nexport function fsEntryKindFromJSON(object: any): FsEntryKind {\n switch (object) {\n case 0:\n case \"FS_ENTRY_KIND_UNSPECIFIED\":\n return FsEntryKind.FS_ENTRY_KIND_UNSPECIFIED;\n case 1:\n case \"FS_ENTRY_KIND_FILE\":\n return FsEntryKind.FS_ENTRY_KIND_FILE;\n case 2:\n case \"FS_ENTRY_KIND_DIRECTORY\":\n return FsEntryKind.FS_ENTRY_KIND_DIRECTORY;\n case 3:\n case \"FS_ENTRY_KIND_SYMLINK\":\n return FsEntryKind.FS_ENTRY_KIND_SYMLINK;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum FsEntryKind\");\n }\n}\n\nexport function fsEntryKindToJSON(object: FsEntryKind): string {\n switch (object) {\n case FsEntryKind.FS_ENTRY_KIND_UNSPECIFIED:\n return \"FS_ENTRY_KIND_UNSPECIFIED\";\n case FsEntryKind.FS_ENTRY_KIND_FILE:\n return \"FS_ENTRY_KIND_FILE\";\n case FsEntryKind.FS_ENTRY_KIND_DIRECTORY:\n return \"FS_ENTRY_KIND_DIRECTORY\";\n case FsEntryKind.FS_ENTRY_KIND_SYMLINK:\n return \"FS_ENTRY_KIND_SYMLINK\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum FsEntryKind\");\n }\n}\n\nexport enum GitOp {\n GIT_OP_UNSPECIFIED = 0,\n GIT_OP_STATUS = 1,\n GIT_OP_DIFF = 2,\n GIT_OP_LOG = 3,\n GIT_OP_ADD = 4,\n GIT_OP_COMMIT = 5,\n GIT_OP_BRANCH = 6,\n GIT_OP_CHECKOUT = 7,\n GIT_OP_PULL = 8,\n GIT_OP_PUSH = 9,\n /** GIT_OP_RAW - Any other subcommand, passed through verbatim via `args`. */\n GIT_OP_RAW = 15,\n}\n\nexport function gitOpFromJSON(object: any): GitOp {\n switch (object) {\n case 0:\n case \"GIT_OP_UNSPECIFIED\":\n return GitOp.GIT_OP_UNSPECIFIED;\n case 1:\n case \"GIT_OP_STATUS\":\n return GitOp.GIT_OP_STATUS;\n case 2:\n case \"GIT_OP_DIFF\":\n return GitOp.GIT_OP_DIFF;\n case 3:\n case \"GIT_OP_LOG\":\n return GitOp.GIT_OP_LOG;\n case 4:\n case \"GIT_OP_ADD\":\n return GitOp.GIT_OP_ADD;\n case 5:\n case \"GIT_OP_COMMIT\":\n return GitOp.GIT_OP_COMMIT;\n case 6:\n case \"GIT_OP_BRANCH\":\n return GitOp.GIT_OP_BRANCH;\n case 7:\n case \"GIT_OP_CHECKOUT\":\n return GitOp.GIT_OP_CHECKOUT;\n case 8:\n case \"GIT_OP_PULL\":\n return GitOp.GIT_OP_PULL;\n case 9:\n case \"GIT_OP_PUSH\":\n return GitOp.GIT_OP_PUSH;\n case 15:\n case \"GIT_OP_RAW\":\n return GitOp.GIT_OP_RAW;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum GitOp\");\n }\n}\n\nexport function gitOpToJSON(object: GitOp): string {\n switch (object) {\n case GitOp.GIT_OP_UNSPECIFIED:\n return \"GIT_OP_UNSPECIFIED\";\n case GitOp.GIT_OP_STATUS:\n return \"GIT_OP_STATUS\";\n case GitOp.GIT_OP_DIFF:\n return \"GIT_OP_DIFF\";\n case GitOp.GIT_OP_LOG:\n return \"GIT_OP_LOG\";\n case GitOp.GIT_OP_ADD:\n return \"GIT_OP_ADD\";\n case GitOp.GIT_OP_COMMIT:\n return \"GIT_OP_COMMIT\";\n case GitOp.GIT_OP_BRANCH:\n return \"GIT_OP_BRANCH\";\n case GitOp.GIT_OP_CHECKOUT:\n return \"GIT_OP_CHECKOUT\";\n case GitOp.GIT_OP_PULL:\n return \"GIT_OP_PULL\";\n case GitOp.GIT_OP_PUSH:\n return \"GIT_OP_PUSH\";\n case GitOp.GIT_OP_RAW:\n return \"GIT_OP_RAW\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum GitOp\");\n }\n}\n\nexport enum GoingOfflineReason {\n GOING_OFFLINE_REASON_UNSPECIFIED = 0,\n /** GOING_OFFLINE_REASON_USER_STOP - The user stopped the foreground process. */\n GOING_OFFLINE_REASON_USER_STOP = 1,\n /** GOING_OFFLINE_REASON_UPDATE - The agent is restarting itself for a self-update. */\n GOING_OFFLINE_REASON_UPDATE = 2,\n /** GOING_OFFLINE_REASON_HOST_SHUTDOWN - The host is shutting down / suspending. */\n GOING_OFFLINE_REASON_HOST_SHUTDOWN = 3,\n}\n\nexport function goingOfflineReasonFromJSON(object: any): GoingOfflineReason {\n switch (object) {\n case 0:\n case \"GOING_OFFLINE_REASON_UNSPECIFIED\":\n return GoingOfflineReason.GOING_OFFLINE_REASON_UNSPECIFIED;\n case 1:\n case \"GOING_OFFLINE_REASON_USER_STOP\":\n return GoingOfflineReason.GOING_OFFLINE_REASON_USER_STOP;\n case 2:\n case \"GOING_OFFLINE_REASON_UPDATE\":\n return GoingOfflineReason.GOING_OFFLINE_REASON_UPDATE;\n case 3:\n case \"GOING_OFFLINE_REASON_HOST_SHUTDOWN\":\n return GoingOfflineReason.GOING_OFFLINE_REASON_HOST_SHUTDOWN;\n default:\n throw new globalThis.Error(\n \"Unrecognized enum value \" + object + \" for enum GoingOfflineReason\",\n );\n }\n}\n\nexport function goingOfflineReasonToJSON(object: GoingOfflineReason): string {\n switch (object) {\n case GoingOfflineReason.GOING_OFFLINE_REASON_UNSPECIFIED:\n return \"GOING_OFFLINE_REASON_UNSPECIFIED\";\n case GoingOfflineReason.GOING_OFFLINE_REASON_USER_STOP:\n return \"GOING_OFFLINE_REASON_USER_STOP\";\n case GoingOfflineReason.GOING_OFFLINE_REASON_UPDATE:\n return \"GOING_OFFLINE_REASON_UPDATE\";\n case GoingOfflineReason.GOING_OFFLINE_REASON_HOST_SHUTDOWN:\n return \"GOING_OFFLINE_REASON_HOST_SHUTDOWN\";\n default:\n throw new globalThis.Error(\n \"Unrecognized enum value \" + object + \" for enum GoingOfflineReason\",\n );\n }\n}\n\n/** The logical byte stream an op-frame Data chunk belongs to. */\nexport enum OpChannel {\n OP_CHANNEL_UNSPECIFIED = 0,\n OP_CHANNEL_STDOUT = 1,\n OP_CHANNEL_STDERR = 2,\n /** OP_CHANNEL_CONTENT - Non-exec content (fs_read bodies and similar). */\n OP_CHANNEL_CONTENT = 3,\n}\n\nexport function opChannelFromJSON(object: any): OpChannel {\n switch (object) {\n case 0:\n case \"OP_CHANNEL_UNSPECIFIED\":\n return OpChannel.OP_CHANNEL_UNSPECIFIED;\n case 1:\n case \"OP_CHANNEL_STDOUT\":\n return OpChannel.OP_CHANNEL_STDOUT;\n case 2:\n case \"OP_CHANNEL_STDERR\":\n return OpChannel.OP_CHANNEL_STDERR;\n case 3:\n case \"OP_CHANNEL_CONTENT\":\n return OpChannel.OP_CHANNEL_CONTENT;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum OpChannel\");\n }\n}\n\nexport function opChannelToJSON(object: OpChannel): string {\n switch (object) {\n case OpChannel.OP_CHANNEL_UNSPECIFIED:\n return \"OP_CHANNEL_UNSPECIFIED\";\n case OpChannel.OP_CHANNEL_STDOUT:\n return \"OP_CHANNEL_STDOUT\";\n case OpChannel.OP_CHANNEL_STDERR:\n return \"OP_CHANNEL_STDERR\";\n case OpChannel.OP_CHANNEL_CONTENT:\n return \"OP_CHANNEL_CONTENT\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum OpChannel\");\n }\n}\n\n/**\n * An op's lifecycle state on the runner: accepted → running → complete(retained)\n * → gc; or lost. `lost` is always TYPED (see OpLostReason) — never a silent gap.\n */\nexport enum OpState {\n OP_STATE_UNSPECIFIED = 0,\n OP_STATE_ACCEPTED = 1,\n OP_STATE_RUNNING = 2,\n OP_STATE_COMPLETE = 3,\n OP_STATE_LOST = 4,\n}\n\nexport function opStateFromJSON(object: any): OpState {\n switch (object) {\n case 0:\n case \"OP_STATE_UNSPECIFIED\":\n return OpState.OP_STATE_UNSPECIFIED;\n case 1:\n case \"OP_STATE_ACCEPTED\":\n return OpState.OP_STATE_ACCEPTED;\n case 2:\n case \"OP_STATE_RUNNING\":\n return OpState.OP_STATE_RUNNING;\n case 3:\n case \"OP_STATE_COMPLETE\":\n return OpState.OP_STATE_COMPLETE;\n case 4:\n case \"OP_STATE_LOST\":\n return OpState.OP_STATE_LOST;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum OpState\");\n }\n}\n\nexport function opStateToJSON(object: OpState): string {\n switch (object) {\n case OpState.OP_STATE_UNSPECIFIED:\n return \"OP_STATE_UNSPECIFIED\";\n case OpState.OP_STATE_ACCEPTED:\n return \"OP_STATE_ACCEPTED\";\n case OpState.OP_STATE_RUNNING:\n return \"OP_STATE_RUNNING\";\n case OpState.OP_STATE_COMPLETE:\n return \"OP_STATE_COMPLETE\";\n case OpState.OP_STATE_LOST:\n return \"OP_STATE_LOST\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum OpState\");\n }\n}\n\n/** Why a lost op is lost (present iff OpStatus.state == OP_STATE_LOST). */\nexport enum OpLostReason {\n OP_LOST_REASON_UNSPECIFIED = 0,\n /**\n * OP_LOST_REASON_EVICTED - A completed op's retained result was evicted (bounded LRU registry) before a\n * final ack arrived — a loud, counted event, surfaced honestly on a late query.\n */\n OP_LOST_REASON_EVICTED = 1,\n /**\n * OP_LOST_REASON_AGENT_RESTARTED - The runner process restarted and the op's in-memory scope did not survive\n * (until the journal + scope re-adoption of a later milestone).\n */\n OP_LOST_REASON_AGENT_RESTARTED = 2,\n}\n\nexport function opLostReasonFromJSON(object: any): OpLostReason {\n switch (object) {\n case 0:\n case \"OP_LOST_REASON_UNSPECIFIED\":\n return OpLostReason.OP_LOST_REASON_UNSPECIFIED;\n case 1:\n case \"OP_LOST_REASON_EVICTED\":\n return OpLostReason.OP_LOST_REASON_EVICTED;\n case 2:\n case \"OP_LOST_REASON_AGENT_RESTARTED\":\n return OpLostReason.OP_LOST_REASON_AGENT_RESTARTED;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum OpLostReason\");\n }\n}\n\nexport function opLostReasonToJSON(object: OpLostReason): string {\n switch (object) {\n case OpLostReason.OP_LOST_REASON_UNSPECIFIED:\n return \"OP_LOST_REASON_UNSPECIFIED\";\n case OpLostReason.OP_LOST_REASON_EVICTED:\n return \"OP_LOST_REASON_EVICTED\";\n case OpLostReason.OP_LOST_REASON_AGENT_RESTARTED:\n return \"OP_LOST_REASON_AGENT_RESTARTED\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum OpLostReason\");\n }\n}\n\nexport enum StreamRole {\n STREAM_ROLE_UNSPECIFIED = 0,\n /** STREAM_ROLE_AGENT - The agent producing pty/desktop bytes. */\n STREAM_ROLE_AGENT = 1,\n /** STREAM_ROLE_CLIENT - The viewer/pty client consuming them (and sending input back). */\n STREAM_ROLE_CLIENT = 2,\n}\n\nexport function streamRoleFromJSON(object: any): StreamRole {\n switch (object) {\n case 0:\n case \"STREAM_ROLE_UNSPECIFIED\":\n return StreamRole.STREAM_ROLE_UNSPECIFIED;\n case 1:\n case \"STREAM_ROLE_AGENT\":\n return StreamRole.STREAM_ROLE_AGENT;\n case 2:\n case \"STREAM_ROLE_CLIENT\":\n return StreamRole.STREAM_ROLE_CLIENT;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum StreamRole\");\n }\n}\n\nexport function streamRoleToJSON(object: StreamRole): string {\n switch (object) {\n case StreamRole.STREAM_ROLE_UNSPECIFIED:\n return \"STREAM_ROLE_UNSPECIFIED\";\n case StreamRole.STREAM_ROLE_AGENT:\n return \"STREAM_ROLE_AGENT\";\n case StreamRole.STREAM_ROLE_CLIENT:\n return \"STREAM_ROLE_CLIENT\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum StreamRole\");\n }\n}\n\nexport enum StreamCloseReason {\n STREAM_CLOSE_REASON_UNSPECIFIED = 0,\n /** STREAM_CLOSE_REASON_NORMAL - Normal end (pty exited, viewer left). */\n STREAM_CLOSE_REASON_NORMAL = 1,\n /** STREAM_CLOSE_REASON_PROCESS_EXIT - The producing process ended. */\n STREAM_CLOSE_REASON_PROCESS_EXIT = 2,\n /** STREAM_CLOSE_REASON_FENCED - The epoch fence invalidated the channel (a swap-away). */\n STREAM_CLOSE_REASON_FENCED = 3,\n /** STREAM_CLOSE_REASON_TRANSPORT_ERROR - A relay/transport error (the client should reconnect+resume). */\n STREAM_CLOSE_REASON_TRANSPORT_ERROR = 4,\n /** STREAM_CLOSE_REASON_RATE_LIMITED - Rate-limit / backpressure shed the channel. */\n STREAM_CLOSE_REASON_RATE_LIMITED = 5,\n}\n\nexport function streamCloseReasonFromJSON(object: any): StreamCloseReason {\n switch (object) {\n case 0:\n case \"STREAM_CLOSE_REASON_UNSPECIFIED\":\n return StreamCloseReason.STREAM_CLOSE_REASON_UNSPECIFIED;\n case 1:\n case \"STREAM_CLOSE_REASON_NORMAL\":\n return StreamCloseReason.STREAM_CLOSE_REASON_NORMAL;\n case 2:\n case \"STREAM_CLOSE_REASON_PROCESS_EXIT\":\n return StreamCloseReason.STREAM_CLOSE_REASON_PROCESS_EXIT;\n case 3:\n case \"STREAM_CLOSE_REASON_FENCED\":\n return StreamCloseReason.STREAM_CLOSE_REASON_FENCED;\n case 4:\n case \"STREAM_CLOSE_REASON_TRANSPORT_ERROR\":\n return StreamCloseReason.STREAM_CLOSE_REASON_TRANSPORT_ERROR;\n case 5:\n case \"STREAM_CLOSE_REASON_RATE_LIMITED\":\n return StreamCloseReason.STREAM_CLOSE_REASON_RATE_LIMITED;\n default:\n throw new globalThis.Error(\n \"Unrecognized enum value \" + object + \" for enum StreamCloseReason\",\n );\n }\n}\n\nexport function streamCloseReasonToJSON(object: StreamCloseReason): string {\n switch (object) {\n case StreamCloseReason.STREAM_CLOSE_REASON_UNSPECIFIED:\n return \"STREAM_CLOSE_REASON_UNSPECIFIED\";\n case StreamCloseReason.STREAM_CLOSE_REASON_NORMAL:\n return \"STREAM_CLOSE_REASON_NORMAL\";\n case StreamCloseReason.STREAM_CLOSE_REASON_PROCESS_EXIT:\n return \"STREAM_CLOSE_REASON_PROCESS_EXIT\";\n case StreamCloseReason.STREAM_CLOSE_REASON_FENCED:\n return \"STREAM_CLOSE_REASON_FENCED\";\n case StreamCloseReason.STREAM_CLOSE_REASON_TRANSPORT_ERROR:\n return \"STREAM_CLOSE_REASON_TRANSPORT_ERROR\";\n case StreamCloseReason.STREAM_CLOSE_REASON_RATE_LIMITED:\n return \"STREAM_CLOSE_REASON_RATE_LIMITED\";\n default:\n throw new globalThis.Error(\n \"Unrecognized enum value \" + object + \" for enum StreamCloseReason\",\n );\n }\n}\n\nexport enum PointerAction {\n POINTER_ACTION_UNSPECIFIED = 0,\n POINTER_ACTION_MOVE = 1,\n POINTER_ACTION_DOWN = 2,\n POINTER_ACTION_UP = 3,\n POINTER_ACTION_CLICK = 4,\n POINTER_ACTION_DOUBLE_CLICK = 5,\n}\n\nexport function pointerActionFromJSON(object: any): PointerAction {\n switch (object) {\n case 0:\n case \"POINTER_ACTION_UNSPECIFIED\":\n return PointerAction.POINTER_ACTION_UNSPECIFIED;\n case 1:\n case \"POINTER_ACTION_MOVE\":\n return PointerAction.POINTER_ACTION_MOVE;\n case 2:\n case \"POINTER_ACTION_DOWN\":\n return PointerAction.POINTER_ACTION_DOWN;\n case 3:\n case \"POINTER_ACTION_UP\":\n return PointerAction.POINTER_ACTION_UP;\n case 4:\n case \"POINTER_ACTION_CLICK\":\n return PointerAction.POINTER_ACTION_CLICK;\n case 5:\n case \"POINTER_ACTION_DOUBLE_CLICK\":\n return PointerAction.POINTER_ACTION_DOUBLE_CLICK;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum PointerAction\");\n }\n}\n\nexport function pointerActionToJSON(object: PointerAction): string {\n switch (object) {\n case PointerAction.POINTER_ACTION_UNSPECIFIED:\n return \"POINTER_ACTION_UNSPECIFIED\";\n case PointerAction.POINTER_ACTION_MOVE:\n return \"POINTER_ACTION_MOVE\";\n case PointerAction.POINTER_ACTION_DOWN:\n return \"POINTER_ACTION_DOWN\";\n case PointerAction.POINTER_ACTION_UP:\n return \"POINTER_ACTION_UP\";\n case PointerAction.POINTER_ACTION_CLICK:\n return \"POINTER_ACTION_CLICK\";\n case PointerAction.POINTER_ACTION_DOUBLE_CLICK:\n return \"POINTER_ACTION_DOUBLE_CLICK\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum PointerAction\");\n }\n}\n\nexport enum PointerButton {\n POINTER_BUTTON_UNSPECIFIED = 0,\n POINTER_BUTTON_LEFT = 1,\n POINTER_BUTTON_RIGHT = 2,\n POINTER_BUTTON_MIDDLE = 3,\n}\n\nexport function pointerButtonFromJSON(object: any): PointerButton {\n switch (object) {\n case 0:\n case \"POINTER_BUTTON_UNSPECIFIED\":\n return PointerButton.POINTER_BUTTON_UNSPECIFIED;\n case 1:\n case \"POINTER_BUTTON_LEFT\":\n return PointerButton.POINTER_BUTTON_LEFT;\n case 2:\n case \"POINTER_BUTTON_RIGHT\":\n return PointerButton.POINTER_BUTTON_RIGHT;\n case 3:\n case \"POINTER_BUTTON_MIDDLE\":\n return PointerButton.POINTER_BUTTON_MIDDLE;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum PointerButton\");\n }\n}\n\nexport function pointerButtonToJSON(object: PointerButton): string {\n switch (object) {\n case PointerButton.POINTER_BUTTON_UNSPECIFIED:\n return \"POINTER_BUTTON_UNSPECIFIED\";\n case PointerButton.POINTER_BUTTON_LEFT:\n return \"POINTER_BUTTON_LEFT\";\n case PointerButton.POINTER_BUTTON_RIGHT:\n return \"POINTER_BUTTON_RIGHT\";\n case PointerButton.POINTER_BUTTON_MIDDLE:\n return \"POINTER_BUTTON_MIDDLE\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum PointerButton\");\n }\n}\n\nexport enum KeyAction {\n KEY_ACTION_UNSPECIFIED = 0,\n KEY_ACTION_DOWN = 1,\n KEY_ACTION_UP = 2,\n KEY_ACTION_PRESS = 3,\n}\n\nexport function keyActionFromJSON(object: any): KeyAction {\n switch (object) {\n case 0:\n case \"KEY_ACTION_UNSPECIFIED\":\n return KeyAction.KEY_ACTION_UNSPECIFIED;\n case 1:\n case \"KEY_ACTION_DOWN\":\n return KeyAction.KEY_ACTION_DOWN;\n case 2:\n case \"KEY_ACTION_UP\":\n return KeyAction.KEY_ACTION_UP;\n case 3:\n case \"KEY_ACTION_PRESS\":\n return KeyAction.KEY_ACTION_PRESS;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum KeyAction\");\n }\n}\n\nexport function keyActionToJSON(object: KeyAction): string {\n switch (object) {\n case KeyAction.KEY_ACTION_UNSPECIFIED:\n return \"KEY_ACTION_UNSPECIFIED\";\n case KeyAction.KEY_ACTION_DOWN:\n return \"KEY_ACTION_DOWN\";\n case KeyAction.KEY_ACTION_UP:\n return \"KEY_ACTION_UP\";\n case KeyAction.KEY_ACTION_PRESS:\n return \"KEY_ACTION_PRESS\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum KeyAction\");\n }\n}\n\n/**\n * A typed error returned by the agent (or synthesized by the control plane for\n * a non-responding agent). `code` is a stable machine-readable discriminant;\n * `message` is human-facing; `retryable` lets the turn layer decide whether to\n * pause-and-retry (a reconnect blip) versus surface a hard failure.\n */\nexport interface AgentError {\n code: ErrorCode;\n message: string;\n retryable: boolean;\n /** Optional structured detail (e.g. an OS errno, a git exit code) for logs. */\n detail: { [key: string]: string };\n}\n\nexport interface AgentError_DetailEntry {\n key: string;\n value: string;\n}\n\n/**\n * The agent's self-description, sent on connect (the \"hello\") and refreshed on\n * reconnect. The control plane folds this into the negotiated SessionCapabilities\n * document (every capability cell is available:false+reason, never absent).\n */\nexport interface Hello {\n agentId: string;\n workspaceId: string;\n /** Semantic version of the running agent binary (drives staged self-update). */\n agentVersion: string;\n os: Os;\n arch: Arch;\n /** Human-friendly machine name (hostname by default; user-overridable). */\n machineName: string;\n /** The agent-reported working root the control plane treats as the sandbox cwd. */\n workspaceRoot: string;\n /** Capabilities the agent can serve given its platform + consent grants. */\n capabilities: Capabilities | undefined;\n /** The update channel this agent follows (stable|beta), for fleet-pinning. */\n updateChannel: string;\n /**\n * A resume token minted by a prior connection, echoed so the control plane can\n * recognize a reconnect (vs a fresh enrollment) and fence by epoch. Empty on\n * first connect.\n */\n resumeToken: string;\n}\n\n/**\n * What the agent is able and consented to do. Each bool is a hard capability\n * gate; the control plane maps a false to a CapabilityUnavailableReason.\n */\nexport interface Capabilities {\n /** Channel-A structural surface (always true for a connected agent). */\n exec: boolean;\n filesystem: boolean;\n git: boolean;\n /** An interactive PTY can be opened over the relay. */\n pty: boolean;\n /** A desktop framebuffer is available (a display exists or Xvfb is enabled). */\n desktop: boolean;\n /** The user consented to whole-machine access during enrollment. */\n consentedWholeMachine: boolean;\n /** The user consented to screen capture + synthetic input (computer-use). */\n consentedScreenControl: boolean;\n /** Display detail (absent => headless / no display). */\n display: Display | undefined;\n /**\n * When a display physically EXISTS but the OS withholds the screen-CAPTURE grant\n * (macOS Screen Recording / TCC), `desktop` is reported false and this carries a\n * human, actionable reason (e.g. \"grant Screen Recording in System Settings\").\n * Empty when capture is permitted or the platform has no separate capture grant\n * (Linux/x11). Advertised at Hello so the control plane degrades the desktop cell\n * with a legible hint instead of offering a desktop it cannot capture — the\n * machine that \"claims a display it can't capture\" bug the 0.1.3 incident exposed.\n */\n desktopUnavailableReason: string;\n /**\n * The runner speaks the op-stream protocol (OpStart/OpFrame/OpAck; see the\n * op-stream section below). Advertised at Hello; the server uses the streaming\n * path only when this is true AND its own feature flag is on, else the legacy\n * monolithic ops run exactly as today. Additive — absent (false) on an older\n * runner means \"legacy path\", no version coupling.\n */\n opStream: boolean;\n}\n\n/** Detail about the agent's graphical display, when one is present. */\nexport interface Display {\n /** e.g. \":0\", \":99\" (Xvfb), or a platform handle. */\n id: string;\n width: number;\n height: number;\n /** True when backed by a virtual framebuffer (Xvfb) rather than a real screen. */\n virtual: boolean;\n}\n\n/**\n * The agent begins enrollment by asking the control plane to start a device\n * flow. The control plane returns a user-code + verification URL the user visits\n * to consent (whole-machine + optional screen-control) and authorize.\n */\nexport interface DeviceAuthStartRequest {\n /**\n * The agent's stable install identity (a per-install keypair fingerprint),\n * bound to the enrollment so the issued credentials are non-transferable.\n */\n installFingerprint: string;\n os: Os;\n arch: Arch;\n machineName: string;\n /** The update channel the user selected at install time. */\n updateChannel: string;\n}\n\nexport interface DeviceAuthStartResponse {\n /** Short code the user types at the verification URL. */\n userCode: string;\n /** The opaque device code the agent polls with. */\n deviceCode: string;\n /** Where the user goes to authorize (e.g. https://get.opengeni.ai/device). */\n verificationUri: string;\n /** A pre-filled convenience URL embedding the user_code. */\n verificationUriComplete: string;\n /** Seconds the device_code remains valid. */\n expiresInSeconds: number;\n /** Minimum seconds the agent must wait between polls. */\n pollIntervalSeconds: number;\n}\n\n/** The agent polls until the user authorizes (or it expires / is denied). */\nexport interface DeviceAuthPollRequest {\n deviceCode: string;\n}\n\nexport interface DeviceAuthPollResponse {\n state: DeviceAuthState;\n /** Present only when state == AUTHORIZED. */\n credentials: EnrollmentCredentials | undefined;\n}\n\n/**\n * The scoped credentials persisted (0600) on the machine after enrollment.\n * These are workspace-scoped — they can address only this workspace's agents.\n */\nexport interface EnrollmentCredentials {\n agentId: string;\n workspaceId: string;\n /**\n * The NATS CONNECT AUTH-TOKEN the agent presents (the signed `oge_` enrollment\n * bearer). The server runs with AUTH CALLOUT (dossier §10.1 / M-AUTH): on connect\n * the agent passes this as the auth-token; nats-server issues an authorization\n * request to the control-plane's callout responder, which validates the bearer\n * and returns a SIGNED user JWT scoping the connection to pub/sub ONLY\n * `agent.<ws>.>` (+ `_INBOX.>`). That per-subject scope IS the per-workspace\n * tenancy boundary — there is NO per-machine creds file to ship. (Field name kept\n * for proto stability; it now carries the bearer, not an operator creds-file body.)\n */\n natsCredentials: string;\n /**\n * The NATS server URL(s) to dial. For the control plane these are `wss://` URLs\n * (the relay-symmetric TLS ingress) so the agent rides the same TLS endpoint as\n * the stream relay — no separate public TCP load balancer (dossier M-AUTH).\n */\n natsUrls: string[];\n /** The relay edge base URL for opening stream channels. */\n relayUrl: string;\n /** The minisign public key the agent pins for self-update verification. */\n updatePubkey: string;\n /** Whether the user consented to whole-machine access. */\n consentedWholeMachine: boolean;\n /** Whether the user consented to screen capture + synthetic input. */\n consentedScreenControl: boolean;\n /**\n * The agent's PRODUCER token for the relay edge (dossier §10.5 / the relay-dial\n * protocol). Presented as `StreamOpen.token` when the agent registers a\n * pty/desktop channel (role=AGENT). It is a control-plane-minted, workspace+agent\n * -scoped `ogr_` HMAC token the relay verifies on its own merits — DISTINCT from\n * the viewer's `ogs_` stream token (which the control plane mints per viewer and\n * the relay also verifies). The relay pairs the producer and consumer by the\n * channel key once BOTH tokens pass. Additive proto3 field; empty for an\n * enrollment minted before the relay-token plane is configured (the agent then\n * presents an empty token the relay rejects, surfacing the gap loudly).\n */\n relayToken: string;\n}\n\nexport interface ExecRequest {\n /** argv[0] is the program; the agent does NOT shell-interpret unless `shell`. */\n command: string[];\n /** When true, `command` is joined and run through the platform shell. */\n shell: boolean;\n /** Working directory; defaults to the agent's workspace_root when empty. */\n cwd: string;\n /** Extra environment variables layered over the agent's environment. */\n env: { [key: string]: string };\n /** Optional stdin fed to the process. */\n stdin: Uint8Array;\n /** Hard wall-clock timeout; 0 means the control-plane default. */\n timeoutMs: number;\n}\n\nexport interface ExecRequest_EnvEntry {\n key: string;\n value: string;\n}\n\nexport interface ExecResponse {\n exitCode: number;\n stdout: Uint8Array;\n stderr: Uint8Array;\n /** True when the process was killed by `timeout_ms`. */\n timedOut: boolean;\n /** Wall-clock duration the process ran. */\n durationMs: string;\n}\n\nexport interface FsReadRequest {\n path: string;\n /** Optional byte offset + length for ranged reads (0 length => to EOF). */\n offset: string;\n length: string;\n}\n\nexport interface FsReadResponse {\n content: Uint8Array;\n /** Total size of the file (so a ranged read knows there is more). */\n totalSize: string;\n}\n\nexport interface FsWriteRequest {\n path: string;\n content: Uint8Array;\n /** Create parent directories as needed. */\n createParents: boolean;\n /** Append rather than truncate-and-write. */\n append: boolean;\n /** POSIX mode for a newly created file (e.g. 0644); 0 => platform default. */\n mode: number;\n}\n\nexport interface FsWriteResponse {\n bytesWritten: string;\n}\n\nexport interface FsListRequest {\n path: string;\n /** Recurse into subdirectories. */\n recursive: boolean;\n}\n\nexport interface FsListResponse {\n entries: FsEntry[];\n}\n\nexport interface FsEntry {\n name: string;\n /** Path relative to the listed directory. */\n path: string;\n kind: FsEntryKind;\n size: string;\n /** Last-modified time, unix epoch ms. */\n modifiedMs: string;\n mode: number;\n}\n\nexport interface FsMkdirRequest {\n path: string;\n /** Create intermediate directories (mkdir -p). */\n parents: boolean;\n mode: number;\n}\n\nexport interface FsMkdirResponse {}\n\nexport interface FsMoveRequest {\n from: string;\n to: string;\n /** Overwrite the destination if it exists. */\n overwrite: boolean;\n}\n\nexport interface FsMoveResponse {}\n\nexport interface FsStatRequest {\n path: string;\n}\n\nexport interface FsStatResponse {\n /** Absent when the path does not exist (the op still succeeds; `exists=false`). */\n exists: boolean;\n entry: FsEntry | undefined;\n}\n\nexport interface FsRemoveRequest {\n path: string;\n /** Remove directories recursively. */\n recursive: boolean;\n}\n\nexport interface FsRemoveResponse {}\n\n/**\n * A single git operation. The agent runs git against the repo rooted at `cwd`\n * (or workspace_root) and returns structured results where it can, falling back\n * to raw stdout for pass-through subcommands.\n */\nexport interface GitRequest {\n op: GitOp;\n /** Repo working directory; defaults to workspace_root. */\n cwd: string;\n /** Free-form args for ops that pass through (e.g. log/diff flags). */\n args: string[];\n}\n\nexport interface GitResponse {\n exitCode: number;\n /** Raw stdout/stderr for pass-through fidelity. */\n stdout: Uint8Array;\n stderr: Uint8Array;\n /** Structured status, present for GIT_OP_STATUS. */\n status: GitStatus | undefined;\n}\n\nexport interface GitStatus {\n branch: string;\n /** The upstream tracking branch, if any. */\n upstream: string;\n ahead: number;\n behind: number;\n files: GitFileStatus[];\n clean: boolean;\n}\n\nexport interface GitFileStatus {\n path: string;\n /** Two-letter porcelain code (e.g. \" M\", \"??\", \"A \"). */\n code: string;\n staged: boolean;\n}\n\n/**\n * Open a PTY. The agent allocates a pseudo-terminal, spawns the shell/command,\n * and registers a relay stream channel of kind PTY. The returned `channel`\n * identifies the stream the viewer connects to.\n */\nexport interface PtyOpenRequest {\n /** Shell/command to run; empty => the user's default login shell. */\n command: string[];\n cwd: string;\n env: { [key: string]: string };\n cols: number;\n rows: number;\n /** The TERM value to advertise (e.g. \"xterm-256color\"). */\n term: string;\n}\n\nexport interface PtyOpenRequest_EnvEntry {\n key: string;\n value: string;\n}\n\nexport interface PtyOpenResponse {\n /** A handle for subsequent resize/close control ops. */\n ptyId: string;\n /** The relay stream channel carrying the PTY bytes. */\n channel: StreamChannel | undefined;\n}\n\n/**\n * Write input bytes to a PTY. (Bulk interactive bytes normally ride the stream\n * plane as StreamFrames; this control op exists for programmatic injection.)\n */\nexport interface PtyWriteRequest {\n ptyId: string;\n data: Uint8Array;\n}\n\nexport interface PtyWriteResponse {\n bytesWritten: string;\n}\n\nexport interface PtyResizeRequest {\n ptyId: string;\n cols: number;\n rows: number;\n}\n\nexport interface PtyResizeResponse {}\n\nexport interface PtyCloseRequest {\n ptyId: string;\n}\n\nexport interface PtyCloseResponse {\n /** The exit code of the PTY's root process, if it had exited. */\n exitCode: number;\n}\n\n/**\n * Ensure a desktop framebuffer stream exists, registering a relay channel of\n * kind DESKTOP. Idempotent: repeated calls return the same live channel.\n */\nexport interface DesktopEnsureRequest {\n /** Request a specific geometry (0 => the display's native geometry). */\n width: number;\n height: number;\n}\n\nexport interface DesktopEnsureResponse {\n channel: StreamChannel | undefined;\n display: Display | undefined;\n}\n\n/**\n * Inject one synthetic computer-use input event on the machine's desktop — the\n * CONTROL-PLANE twin of the relay DesktopInput (the agent drives its OWN screen\n * for computer-use; there is no human viewer channel). Reuses the relay\n * DesktopInput event shapes; there is no channel_id (this goes straight to the\n * display, not a relay channel). Injection is gated on consented_screen_control:\n * an ungated call fails with ERROR_CODE_CONSENT_REQUIRED and never touches the OS.\n */\nexport interface DesktopInputRequest {\n event:\n | { $case: \"pointer\"; pointer: PointerEvent }\n | { $case: \"key\"; key: KeyEvent }\n | {\n $case: \"scroll\";\n scroll: ScrollEvent;\n }\n | undefined;\n}\n\nexport interface DesktopInputResponse {}\n\n/**\n * Capture a single screenshot of the machine's desktop as a PNG. A VIEW op: it\n * needs a display, NOT screen-control consent (the view/control decoupling), so\n * it is not consent-gated. Returns the encoded image plus its geometry so the\n * caller can size a canvas without decoding.\n */\nexport interface DesktopScreenshotRequest {}\n\nexport interface DesktopScreenshotResponse {\n png: Uint8Array;\n /**\n * The geometry of the ENCODED image (what a viewer/model actually sees). When\n * the raw capture is too large to fit the control-plane transport's max payload,\n * the agent DOWNSCALES the PNG so the reply publishes (a full-res Retina/busy\n * screen can exceed NATS's 1 MiB default); width/height then describe the\n * downscaled image, and `native_width`/`native_height` below carry the original.\n */\n width: number;\n height: number;\n /**\n * The ORIGINAL (pre-downscale) capture geometry. Equal to width/height when no\n * downscale was needed. The computer-use coordinate mapping scales a model click\n * (expressed in the ENCODED pixel space it saw) back up to this native pixel\n * space before injecting, so clicks land correctly even on a downscaled frame.\n * 0 (unset by an older agent) MUST be read as \"same as width/height\" (no scale).\n */\n nativeWidth: number;\n nativeHeight: number;\n}\n\n/**\n * The agent's periodic liveness ping. Carries a metrics sample so the control\n * plane can upsert the machine's last-sample without a separate RPC. The\n * `seq` increments per heartbeat so the control plane can detect a gap.\n */\nexport interface Heartbeat {\n seq: string;\n /** Agent monotonic uptime in ms. */\n uptimeMs: string;\n /**\n * The number of sessions currently sharing this machine (lease refcount as the\n * agent sees it; the authoritative count lives in Postgres).\n */\n activeSessions: number;\n metrics: MetricsSample | undefined;\n /**\n * True when the agent is draining for a pending self-update (prefer other\n * sandboxes for new work).\n */\n draining: boolean;\n /**\n * The runner's measured host capacity — the upward report the server paces\n * against (LIMITS-DOCTRINE: the runner holds no concurrency policy; the\n * swarm/scheduler reads this and decides how much to throw at the machine).\n */\n capacity: HostCapacitySample | undefined;\n /**\n * Point-in-time op-admission counts (queues only ever fill once a derived\n * pathology breaker saturates — nonzero queued figures are telemetry-worthy).\n */\n admission: AdmissionTelemetry | undefined;\n}\n\n/**\n * A point-in-time host-capacity sample: the impure sampler's reading of\n * MemAvailable, spool-filesystem free space, fd/pid headroom, and CPUs. Every\n * runner-side budget/breaker is a fraction of these (rule R), so this is also\n * how the server understands what the machine can take.\n */\nexport interface HostCapacitySample {\n memAvailableBytes: string;\n diskFreeBytes: string;\n fdHeadroom: string;\n pidHeadroom: string;\n nproc: string;\n}\n\n/** Point-in-time op-admission counts, per class. */\nexport interface AdmissionTelemetry {\n lightRunning: string;\n lightQueued: string;\n heavyRunning: string;\n heavyQueued: string;\n /**\n * Jobs with a live mailbox (running + completed-retained awaiting final\n * ack) — the op-engine's routing-table size.\n */\n liveOps: string;\n /**\n * Op frames dropped by the fire-and-forget publish path (bulk lane down or\n * its channel full). Protocol-healed by replay; recorded so an undersized\n * lane is visible before it matters (monotonic).\n */\n opFramesDroppedTotal: string;\n /**\n * Completed ops evicted before their final ack (dropped results) — the\n * registry's loud counter (monotonic).\n */\n evictedUnackedTotal: string;\n}\n\nexport interface HeartbeatAck {\n /** The control plane may instruct the agent to adjust its heartbeat cadence. */\n nextIntervalMs: number;\n /** The control plane may signal a pending fleet action (e.g. update available). */\n updateAvailable: boolean;\n}\n\n/** On-demand metrics request (the dashboard force-poll path). */\nexport interface MetricsRequest {}\n\n/** A point-in-time machine metrics sample. */\nexport interface MetricsSample {\n /** Unix epoch ms when sampled. */\n sampledAtMs: string;\n /** CPU utilization 0..100 (whole machine). */\n cpuPercent: number;\n /** Load averages. */\n load1: number;\n load5: number;\n load15: number;\n memUsedBytes: string;\n memTotalBytes: string;\n diskUsedBytes: string;\n diskTotalBytes: string;\n /** A contention signal (run-queue length / pressure), if available. */\n runQueue: number;\n /** Per-GPU samples, when GPUs are present. */\n gpus: GpuSample[];\n}\n\nexport interface GpuSample {\n name: string;\n /** Utilization 0..100. */\n utilPercent: number;\n memUsedBytes: string;\n memTotalBytes: string;\n}\n\n/**\n * A cheap liveness probe — the control plane requests it to test that a\n * responder exists on the subject (the NATS \"is there an agent\" check).\n */\nexport interface PingRequest {\n /** Echoed back so the caller can correlate / measure RTT. */\n nonce: string;\n}\n\nexport interface PingResponse {\n nonce: string;\n /** The agent's monotonic clock, for skew estimation. */\n agentMonotonicMs: string;\n}\n\n/**\n * Sent by the agent on a clean stop (SIGINT/SIGTERM) so the lease flips to\n * offline IMMEDIATELY rather than waiting on heartbeat dead-detection.\n */\nexport interface GoingOffline {\n reason: GoingOfflineReason;\n /** Optional human note (e.g. \"user pressed Ctrl-C\"). */\n message: string;\n}\n\n/**\n * On reconnect, the agent presents its resume token; the control plane fences by\n * epoch and either accepts the resume (same machine, new connection generation)\n * or, if the token is unknown/stale, requires a fresh hello.\n */\nexport interface ResumeRequest {\n agentId: string;\n resumeToken: string;\n /** The lease epoch the agent last observed, for the integer fence. */\n lastKnownEpoch: number;\n}\n\nexport interface ResumeResponse {\n accepted: boolean;\n /**\n * The new lease epoch the control plane assigned to this connection. Any op\n * fenced by an older epoch must re-resolve and retry.\n */\n epoch: number;\n /** A fresh resume token for the NEXT reconnect (tokens rotate per generation). */\n resumeToken: string;\n}\n\n/** The agent asks whether a newer build is available for its channel + target. */\nexport interface UpdateCheckRequest {\n currentVersion: string;\n channel: string;\n os: Os;\n arch: Arch;\n}\n\nexport interface UpdateCheckResponse {\n updateAvailable: boolean;\n manifest: UpdateManifest | undefined;\n}\n\n/**\n * A signed channel manifest. It is itself minisign-signed out-of-band; this\n * message is the decoded body the updater reasons over.\n */\nexport interface UpdateManifest {\n channel: string;\n version: string;\n /** The minimum version still permitted (downgrade-attack protection). */\n minSupported: string;\n /** Staged-rollout gate: an agent applies when blake3(agentId+salt)%100 < percent. */\n rolloutPercent: number;\n cohortSalt: string;\n artifacts: UpdateArtifact[];\n notesUrl: string;\n signedAtMs: string;\n /** When true, override drain and update mid-session (security CVE path). */\n force: boolean;\n}\n\nexport interface UpdateArtifact {\n /** Target triple, e.g. \"x86_64-unknown-linux-musl\". */\n target: string;\n url: string;\n size: string;\n sha256: string;\n /** URL of the detached minisign signature for the artifact. */\n minisigUrl: string;\n}\n\n/**\n * Before applying, the updater asks the control plane whether it may proceed\n * (the control plane reads the Postgres lease refcount). The agent drains until\n * the refcount reaches zero or a grace window elapses.\n */\nexport interface UpdateMayProceedRequest {\n agentId: string;\n targetVersion: string;\n}\n\nexport interface UpdateMayProceedResponse {\n mayProceed: boolean;\n /** When false, the number of live sessions blocking the update. */\n activeSessions: number;\n}\n\n/**\n * The terminal outcome of an op — carried in the Exit frame body AND echoed in\n * OpStatus once complete. Digests/totals are keyed by channel name\n * (\"stdout\"/\"stderr\"/\"content\") for a byte-exact assembly proof.\n */\nexport interface OpExit {\n exitCode: number;\n /** Hit the runner-enforced deadline (process-tree killed). */\n timedOut: boolean;\n /** Cancelled via OpCancel. */\n cancelled: boolean;\n durationMs: string;\n /** channel name → blake3 hex digest of the full channel stream. */\n digests: { [key: string]: string };\n /** channel name → total bytes emitted on the channel. */\n totals: { [key: string]: string };\n /**\n * Set iff the RUNNER failed the op with a typed reason (\"OP_OVERFLOW\" /\n * \"OP_SPOOL_IO\" / \"OP_PIPE_IO\"); empty for every child-decided outcome\n * (exit/timeout/cancel). Never an exit-code sentinel — ambiguous renderings\n * are outlawed (FAILURE-VISIBILITY.md).\n */\n failureCode: string;\n /**\n * Structured detail for failure_code (exact counters: retained bytes, the\n * IO error text, captured byte totals) — the out-of-band plane's food.\n */\n failureDetail: { [key: string]: string };\n}\n\nexport interface OpExit_DigestsEntry {\n key: string;\n value: string;\n}\n\nexport interface OpExit_TotalsEntry {\n key: string;\n value: string;\n}\n\nexport interface OpExit_FailureDetailEntry {\n key: string;\n value: string;\n}\n\n/**\n * The op-begin for a STREAMING fs_write (M7): the target is set up here; the bytes\n * arrive as chunked, idempotent WriteChunk request/replies (no reverse streaming).\n */\nexport interface FsWriteBegin {\n path: string;\n /** Create parent directories as needed. */\n createParents: boolean;\n /** POSIX mode for a newly created file (0 => platform default). */\n mode: number;\n /**\n * Editor safety (M6): the expected blake3 hex digest of the file's CURRENT\n * content for a read-modify-write; empty for a plain write. On a re-dispatch a\n * mismatch REFUSES rather than double-applying a diff.\n */\n expectedBaseDigest: string;\n}\n\n/**\n * Start an op (server→runner). IDEMPOTENT by op_id (= ControlRequest.request_id):\n * a known op_id returns its current status and NEVER re-runs — this closes the\n * at-least-once re-run hazard (a re-dispatched turn re-issues OpStart{same id} and\n * attaches).\n */\nexport interface OpStart {\n op:\n | { $case: \"exec\"; exec: ExecRequest }\n | { $case: \"fsRead\"; fsRead: FsReadRequest }\n | { $case: \"fsWrite\"; fsWrite: FsWriteBegin }\n | undefined;\n /** Initial send credit in bytes (0 => the runner default, ~4 MiB). */\n windowBytes: string;\n /**\n * Absolute runner-enforced deadline, unix-epoch ms (0 = none). Runner-side\n * enforcement is authoritative (process-tree kill + Exit{timed_out}); the\n * server wall-clock is advisory.\n */\n deadlineMs: string;\n /** The originating session id, for per-origin fair admission. */\n originId: string;\n}\n\nexport interface OpStarted {\n accepted: boolean;\n status: OpStatus | undefined;\n}\n\n/**\n * Cancel an op (server→runner). Idempotent; triggers the #344 process-tree kill and\n * a terminal frame. Reply is OpStatus.\n */\nexport interface OpCancel {\n opId: string;\n}\n\n/** Query an op's status (server→runner). Reply is OpStatus. */\nexport interface OpQuery {\n opId: string;\n}\n\n/**\n * Re-attach to an op after a reconnect or a missed frame (server→runner): the\n * runner re-publishes frames ≥ from_seq from its ring/spool, then resumes live\n * flow. Reply is OpStatus.\n */\nexport interface OpAttach {\n opId: string;\n /** Resume from this exclusive sequence (the consumer's cumulative-ack floor). */\n fromSeq: string;\n /**\n * Attach generation (B2): monotonic (the consumer's Temporal attempt number).\n * The runner serves replay/credit only for the HIGHEST generation seen; a\n * lower-generation (zombie) consumer's acks are ignored.\n */\n attachGeneration: string;\n /**\n * The fresh send-credit window for the resumed attachment, in bytes\n * (0 => reuse the window granted at OpStart). OpAck's absolute credit_bytes\n * resizes it thereafter.\n */\n windowBytes: string;\n}\n\n/**\n * The current status of an op (server←runner reply to OpCancel/OpQuery/OpAttach,\n * and embedded in OpStarted).\n */\nexport interface OpStatus {\n opId: string;\n state: OpState;\n /**\n * The next sequence number the runner will assign (the high watermark, for gap\n * detection).\n */\n nextSeq: string;\n /** Present iff state == OP_STATE_COMPLETE. */\n exit: OpExit | undefined;\n /** Present iff state == OP_STATE_LOST. */\n lostReason: OpLostReason;\n}\n\n/**\n * One chunk of a streaming upload (server→runner): plain idempotent request/reply\n * per chunk (≤512 KiB). A duplicate (op_id, seq) is acked WITHOUT re-applying.\n */\nexport interface WriteChunk {\n opId: string;\n /** The op-scoped monotonic chunk sequence. */\n seq: string;\n bytes: Uint8Array;\n /** The final chunk: commit = digest-verify then atomic rename (M7). */\n last: boolean;\n /**\n * Byte offset this chunk writes at (M7: writes land in an op-scoped temp file,\n * committed on the last chunk — an aborted transfer leaves no visible file).\n */\n offset: string;\n}\n\nexport interface WriteChunkAck {\n seq: string;\n}\n\n/**\n * A runner→server op frame, published fire-and-forget on the op subject\n * (`agent.<ws>.<id>.op.<op_id>`). `seq` is a SINGLE monotonic sequence per op\n * across ALL body kinds (Progress frames consume sequence numbers too, so gap\n * detection is uniform).\n */\nexport interface OpFrame {\n opId: string;\n seq: string;\n body:\n | { $case: \"data\"; data: OpData }\n | { $case: \"progress\"; progress: OpProgress }\n | { $case: \"exit\"; exit: OpExit }\n | undefined;\n}\n\n/** A chunk of op output on a channel (≤128 KiB per frame). */\nexport interface OpData {\n channel: OpChannel;\n bytes: Uint8Array;\n}\n\n/**\n * A liveness tick: the op is alive but produced no Data. Emitted every 5s while an\n * op is live and quiet; consumes a sequence number like any frame.\n */\nexport interface OpProgress {}\n\n/**\n * A server→runner cumulative ack + credit replenishment, published fire-and-forget\n * on the ack subject (`agent.<ws>.<id>.ack`). Best-effort, healed by repetition.\n */\nexport interface OpAck {\n opId: string;\n /** Cumulative: every frame with seq ≤ acked_seq is acknowledged. */\n ackedSeq: string;\n /** The replenished ABSOLUTE send-credit window in bytes. */\n creditBytes: string;\n /** The server has fully consumed the terminal frame → the runner may GC the op. */\n final: boolean;\n /**\n * The consumer's attach generation (matches OpAttach.attach_generation; the\n * consumer's Temporal attempt number). The runner honors this ack — its floor\n * advance AND its credit grant — ONLY for the HIGHEST generation it has seen for\n * the op; a lower-generation (zombie) ack is ignored. This must ride the wire\n * (not be inferred from monotonic acked_seq alone) because credit_bytes is an\n * ABSOLUTE window REPLACEMENT: a stale consumer's ack could otherwise shrink the\n * live consumer's window (stall) or grant unintended credit (B2).\n */\n attachGeneration: string;\n}\n\n/**\n * Wraps an op-specific request. `request_id` correlates a response to a request\n * even over fan-out; `epoch` carries the lease/active epoch the control plane\n * resolved this op against, so the agent can reject a stale op (ERROR_CODE_FENCED).\n */\nexport interface ControlRequest {\n requestId: string;\n epoch: number;\n op:\n | { $case: \"ping\"; ping: PingRequest }\n | { $case: \"hello\"; hello: Hello }\n | { $case: \"resume\"; resume: ResumeRequest }\n | { $case: \"exec\"; exec: ExecRequest }\n | { $case: \"fsRead\"; fsRead: FsReadRequest }\n | { $case: \"fsWrite\"; fsWrite: FsWriteRequest }\n | { $case: \"fsList\"; fsList: FsListRequest }\n | { $case: \"fsMkdir\"; fsMkdir: FsMkdirRequest }\n | { $case: \"fsMove\"; fsMove: FsMoveRequest }\n | { $case: \"fsStat\"; fsStat: FsStatRequest }\n | { $case: \"fsRemove\"; fsRemove: FsRemoveRequest }\n | { $case: \"git\"; git: GitRequest }\n | { $case: \"ptyOpen\"; ptyOpen: PtyOpenRequest }\n | { $case: \"ptyWrite\"; ptyWrite: PtyWriteRequest }\n | { $case: \"ptyResize\"; ptyResize: PtyResizeRequest }\n | { $case: \"ptyClose\"; ptyClose: PtyCloseRequest }\n | { $case: \"desktopEnsure\"; desktopEnsure: DesktopEnsureRequest }\n | { $case: \"metrics\"; metrics: MetricsRequest }\n | { $case: \"updateMayProceed\"; updateMayProceed: UpdateMayProceedRequest }\n | { $case: \"desktopInput\"; desktopInput: DesktopInputRequest }\n | { $case: \"desktopScreenshot\"; desktopScreenshot: DesktopScreenshotRequest } //\n /**\n * Op-stream (v1.1), additive. All ride the same rpc subject; each has an\n * idempotent, typed reply in ControlResponse.result below.\n */\n | { $case: \"opStart\"; opStart: OpStart }\n | { $case: \"opCancel\"; opCancel: OpCancel }\n | { $case: \"opQuery\"; opQuery: OpQuery }\n | { $case: \"opAttach\"; opAttach: OpAttach }\n | { $case: \"writeChunk\"; writeChunk: WriteChunk }\n | undefined;\n}\n\n/** Wraps an op-specific response, or an error. `request_id` echoes the request. */\nexport interface ControlResponse {\n requestId: string;\n /** Present when the op failed; when set, `result` is empty. */\n error: AgentError | undefined;\n result:\n | { $case: \"ping\"; ping: PingResponse }\n | { $case: \"hello\"; hello: HelloAck }\n | { $case: \"resume\"; resume: ResumeResponse }\n | { $case: \"exec\"; exec: ExecResponse }\n | { $case: \"fsRead\"; fsRead: FsReadResponse }\n | { $case: \"fsWrite\"; fsWrite: FsWriteResponse }\n | { $case: \"fsList\"; fsList: FsListResponse }\n | { $case: \"fsMkdir\"; fsMkdir: FsMkdirResponse }\n | { $case: \"fsMove\"; fsMove: FsMoveResponse }\n | { $case: \"fsStat\"; fsStat: FsStatResponse }\n | { $case: \"fsRemove\"; fsRemove: FsRemoveResponse }\n | { $case: \"git\"; git: GitResponse }\n | { $case: \"ptyOpen\"; ptyOpen: PtyOpenResponse }\n | { $case: \"ptyWrite\"; ptyWrite: PtyWriteResponse }\n | { $case: \"ptyResize\"; ptyResize: PtyResizeResponse }\n | { $case: \"ptyClose\"; ptyClose: PtyCloseResponse }\n | { $case: \"desktopEnsure\"; desktopEnsure: DesktopEnsureResponse }\n | { $case: \"metrics\"; metrics: MetricsSample }\n | { $case: \"updateMayProceed\"; updateMayProceed: UpdateMayProceedResponse }\n | { $case: \"desktopInput\"; desktopInput: DesktopInputResponse }\n | { $case: \"desktopScreenshot\"; desktopScreenshot: DesktopScreenshotResponse } //\n /**\n * Op-stream (v1.1) replies, additive. OpStart → OpStarted; OpCancel / OpQuery /\n * OpAttach all reply OpStatus (op_status); WriteChunk → WriteChunkAck.\n */\n | { $case: \"opStart\"; opStart: OpStarted }\n | { $case: \"opStatus\"; opStatus: OpStatus }\n | { $case: \"writeChunk\"; writeChunk: WriteChunkAck }\n | undefined;\n}\n\n/**\n * The control plane's acknowledgement of a Hello, carrying the epoch it assigned\n * and a resume token for the next reconnect.\n */\nexport interface HelloAck {\n epoch: number;\n resumeToken: string;\n /** The heartbeat interval the agent should use. */\n heartbeatIntervalMs: number;\n}\n\n/**\n * Wraps a message the AGENT originates (not a reply to a ControlRequest):\n * heartbeats, the clean going-offline signal. These are published on the agent's\n * outbound subject; the control plane folds them into lease/metrics state.\n */\nexport interface AgentEvent {\n agentId: string;\n event:\n | { $case: \"heartbeat\"; heartbeat: Heartbeat }\n | { $case: \"goingOffline\"; goingOffline: GoingOffline }\n | undefined;\n}\n\n/** The control plane's ack of an AgentEvent (e.g. a HeartbeatAck). */\nexport interface AgentEventAck {\n ack: { $case: \"heartbeat\"; heartbeat: HeartbeatAck } | undefined;\n}\n\n/**\n * Identifies a relay stream channel. The viewer/pty client connects to the\n * relay with this channel's coordinates plus a scoped `ogs_` token; the agent\n * dials out and registers the same channel. `{workspace_id, agent_id, port}`\n * is the routing key.\n */\nexport interface StreamChannel {\n channelId: string;\n workspaceId: string;\n agentId: string;\n kind: StreamKind;\n /** The logical port the channel maps to (so resolveExposedPort can address it). */\n port: number;\n}\n\n/**\n * Open a stream channel on the relay. Sent by both ends (agent registers; client\n * attaches) as the first frame of a relay connection.\n */\nexport interface StreamOpen {\n channel: StreamChannel | undefined;\n /**\n * The scoped stream token (`ogs_` envelope) authorizing this channel; the\n * relay validates authenticity + the lease/active-epoch fence.\n */\n token: string;\n /** Whether the sender is the producing agent or the consuming viewer. */\n role: StreamRole;\n /**\n * For resume: the last frame sequence the sender successfully processed, so\n * the peer can replay from there after a reconnect blip.\n */\n resumeFromSeq: string;\n}\n\n/** The relay's acknowledgement of a StreamOpen. */\nexport interface StreamOpenAck {\n accepted: boolean;\n error: AgentError | undefined;\n /** The sequence the peer will resume sending from. */\n resumeFromSeq: string;\n}\n\n/**\n * A data frame carrying raw stream bytes in either direction. `seq` is a\n * monotonic per-channel-per-direction counter enabling resume-from-seq. For a\n * DESKTOP channel `data` is an encoded framebuffer chunk; for PTY it is raw tty\n * bytes. Input (client→agent) for desktop computer-use rides DesktopInput\n * instead so synthetic events are typed, not opaque bytes.\n */\nexport interface StreamFrame {\n channelId: string;\n seq: string;\n data: Uint8Array;\n /** Unix epoch ms the frame was produced (for latency/lag metrics). */\n producedAtMs: string;\n}\n\n/**\n * Close a stream channel. Either end may send it; the relay tears down the\n * channel and notifies the peer.\n */\nexport interface StreamClose {\n channelId: string;\n reason: StreamCloseReason;\n message: string;\n}\n\n/**\n * Typed computer-use input from a client to a desktop channel (client→agent).\n * Synthetic input is gated on consented_screen_control; an ungated input op\n * fails with ERROR_CODE_CONSENT_REQUIRED.\n */\nexport interface DesktopInput {\n channelId: string;\n event:\n | { $case: \"pointer\"; pointer: PointerEvent }\n | { $case: \"key\"; key: KeyEvent }\n | {\n $case: \"scroll\";\n scroll: ScrollEvent;\n }\n | undefined;\n}\n\nexport interface PointerEvent {\n x: number;\n y: number;\n action: PointerAction;\n button: PointerButton;\n}\n\nexport interface KeyEvent {\n /** A platform-independent key name (e.g. \"Enter\", \"a\", \"ctrl+c\") OR text to type. */\n key: string;\n isText: boolean;\n action: KeyAction;\n}\n\nexport interface ScrollEvent {\n x: number;\n y: number;\n deltaX: number;\n deltaY: number;\n}\n\nfunction createBaseAgentError(): AgentError {\n return { code: 0, message: \"\", retryable: false, detail: {} };\n}\n\nexport const AgentError: MessageFns<AgentError> = {\n encode(message: AgentError, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.code !== 0) {\n writer.uint32(8).int32(message.code);\n }\n if (message.message !== \"\") {\n writer.uint32(18).string(message.message);\n }\n if (message.retryable !== false) {\n writer.uint32(24).bool(message.retryable);\n }\n globalThis.Object.entries(message.detail).forEach(([key, value]: [string, string]) => {\n AgentError_DetailEntry.encode({ key: key as any, value }, writer.uint32(34).fork()).join();\n });\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): AgentError {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAgentError();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.code = reader.int32() as any;\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.message = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.retryable = reader.bool();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n const entry4 = AgentError_DetailEntry.decode(reader, reader.uint32());\n if (entry4.value !== undefined) {\n message.detail[entry4.key] = entry4.value;\n }\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): AgentError {\n return {\n code: isSet(object.code) ? errorCodeFromJSON(object.code) : 0,\n message: isSet(object.message) ? globalThis.String(object.message) : \"\",\n retryable: isSet(object.retryable) ? globalThis.Boolean(object.retryable) : false,\n detail: isObject(object.detail)\n ? (globalThis.Object.entries(object.detail) as [string, any][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, any]) => {\n acc[key] = globalThis.String(value);\n return acc;\n },\n {},\n )\n : {},\n };\n },\n\n toJSON(message: AgentError): unknown {\n const obj: any = {};\n if (message.code !== 0) {\n obj.code = errorCodeToJSON(message.code);\n }\n if (message.message !== \"\") {\n obj.message = message.message;\n }\n if (message.retryable !== false) {\n obj.retryable = message.retryable;\n }\n if (message.detail) {\n const entries = globalThis.Object.entries(message.detail) as [string, string][];\n if (entries.length > 0) {\n obj.detail = {};\n entries.forEach(([k, v]) => {\n obj.detail[k] = v;\n });\n }\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<AgentError>, I>>(base?: I): AgentError {\n return AgentError.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<AgentError>, I>>(object: I): AgentError {\n const message = createBaseAgentError();\n message.code = object.code ?? 0;\n message.message = object.message ?? \"\";\n message.retryable = object.retryable ?? false;\n message.detail = (globalThis.Object.entries(object.detail ?? {}) as [string, string][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, string]) => {\n if (value !== undefined) {\n acc[key] = globalThis.String(value);\n }\n return acc;\n },\n {},\n );\n return message;\n },\n};\n\nfunction createBaseAgentError_DetailEntry(): AgentError_DetailEntry {\n return { key: \"\", value: \"\" };\n}\n\nexport const AgentError_DetailEntry: MessageFns<AgentError_DetailEntry> = {\n encode(message: AgentError_DetailEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): AgentError_DetailEntry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAgentError_DetailEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.value = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): AgentError_DetailEntry {\n return {\n key: isSet(object.key) ? globalThis.String(object.key) : \"\",\n value: isSet(object.value) ? globalThis.String(object.value) : \"\",\n };\n },\n\n toJSON(message: AgentError_DetailEntry): unknown {\n const obj: any = {};\n if (message.key !== \"\") {\n obj.key = message.key;\n }\n if (message.value !== \"\") {\n obj.value = message.value;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<AgentError_DetailEntry>, I>>(\n base?: I,\n ): AgentError_DetailEntry {\n return AgentError_DetailEntry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<AgentError_DetailEntry>, I>>(\n object: I,\n ): AgentError_DetailEntry {\n const message = createBaseAgentError_DetailEntry();\n message.key = object.key ?? \"\";\n message.value = object.value ?? \"\";\n return message;\n },\n};\n\nfunction createBaseHello(): Hello {\n return {\n agentId: \"\",\n workspaceId: \"\",\n agentVersion: \"\",\n os: 0,\n arch: 0,\n machineName: \"\",\n workspaceRoot: \"\",\n capabilities: undefined,\n updateChannel: \"\",\n resumeToken: \"\",\n };\n}\n\nexport const Hello: MessageFns<Hello> = {\n encode(message: Hello, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.agentId !== \"\") {\n writer.uint32(10).string(message.agentId);\n }\n if (message.workspaceId !== \"\") {\n writer.uint32(18).string(message.workspaceId);\n }\n if (message.agentVersion !== \"\") {\n writer.uint32(26).string(message.agentVersion);\n }\n if (message.os !== 0) {\n writer.uint32(32).int32(message.os);\n }\n if (message.arch !== 0) {\n writer.uint32(40).int32(message.arch);\n }\n if (message.machineName !== \"\") {\n writer.uint32(50).string(message.machineName);\n }\n if (message.workspaceRoot !== \"\") {\n writer.uint32(58).string(message.workspaceRoot);\n }\n if (message.capabilities !== undefined) {\n Capabilities.encode(message.capabilities, writer.uint32(66).fork()).join();\n }\n if (message.updateChannel !== \"\") {\n writer.uint32(74).string(message.updateChannel);\n }\n if (message.resumeToken !== \"\") {\n writer.uint32(82).string(message.resumeToken);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Hello {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHello();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.agentId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.workspaceId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.agentVersion = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.os = reader.int32() as any;\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.arch = reader.int32() as any;\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.machineName = reader.string();\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.workspaceRoot = reader.string();\n continue;\n }\n case 8: {\n if (tag !== 66) {\n break;\n }\n\n message.capabilities = Capabilities.decode(reader, reader.uint32());\n continue;\n }\n case 9: {\n if (tag !== 74) {\n break;\n }\n\n message.updateChannel = reader.string();\n continue;\n }\n case 10: {\n if (tag !== 82) {\n break;\n }\n\n message.resumeToken = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Hello {\n return {\n agentId: isSet(object.agentId)\n ? globalThis.String(object.agentId)\n : isSet(object.agent_id)\n ? globalThis.String(object.agent_id)\n : \"\",\n workspaceId: isSet(object.workspaceId)\n ? globalThis.String(object.workspaceId)\n : isSet(object.workspace_id)\n ? globalThis.String(object.workspace_id)\n : \"\",\n agentVersion: isSet(object.agentVersion)\n ? globalThis.String(object.agentVersion)\n : isSet(object.agent_version)\n ? globalThis.String(object.agent_version)\n : \"\",\n os: isSet(object.os) ? osFromJSON(object.os) : 0,\n arch: isSet(object.arch) ? archFromJSON(object.arch) : 0,\n machineName: isSet(object.machineName)\n ? globalThis.String(object.machineName)\n : isSet(object.machine_name)\n ? globalThis.String(object.machine_name)\n : \"\",\n workspaceRoot: isSet(object.workspaceRoot)\n ? globalThis.String(object.workspaceRoot)\n : isSet(object.workspace_root)\n ? globalThis.String(object.workspace_root)\n : \"\",\n capabilities: isSet(object.capabilities)\n ? Capabilities.fromJSON(object.capabilities)\n : undefined,\n updateChannel: isSet(object.updateChannel)\n ? globalThis.String(object.updateChannel)\n : isSet(object.update_channel)\n ? globalThis.String(object.update_channel)\n : \"\",\n resumeToken: isSet(object.resumeToken)\n ? globalThis.String(object.resumeToken)\n : isSet(object.resume_token)\n ? globalThis.String(object.resume_token)\n : \"\",\n };\n },\n\n toJSON(message: Hello): unknown {\n const obj: any = {};\n if (message.agentId !== \"\") {\n obj.agentId = message.agentId;\n }\n if (message.workspaceId !== \"\") {\n obj.workspaceId = message.workspaceId;\n }\n if (message.agentVersion !== \"\") {\n obj.agentVersion = message.agentVersion;\n }\n if (message.os !== 0) {\n obj.os = osToJSON(message.os);\n }\n if (message.arch !== 0) {\n obj.arch = archToJSON(message.arch);\n }\n if (message.machineName !== \"\") {\n obj.machineName = message.machineName;\n }\n if (message.workspaceRoot !== \"\") {\n obj.workspaceRoot = message.workspaceRoot;\n }\n if (message.capabilities !== undefined) {\n obj.capabilities = Capabilities.toJSON(message.capabilities);\n }\n if (message.updateChannel !== \"\") {\n obj.updateChannel = message.updateChannel;\n }\n if (message.resumeToken !== \"\") {\n obj.resumeToken = message.resumeToken;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<Hello>, I>>(base?: I): Hello {\n return Hello.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Hello>, I>>(object: I): Hello {\n const message = createBaseHello();\n message.agentId = object.agentId ?? \"\";\n message.workspaceId = object.workspaceId ?? \"\";\n message.agentVersion = object.agentVersion ?? \"\";\n message.os = object.os ?? 0;\n message.arch = object.arch ?? 0;\n message.machineName = object.machineName ?? \"\";\n message.workspaceRoot = object.workspaceRoot ?? \"\";\n message.capabilities =\n object.capabilities !== undefined && object.capabilities !== null\n ? Capabilities.fromPartial(object.capabilities)\n : undefined;\n message.updateChannel = object.updateChannel ?? \"\";\n message.resumeToken = object.resumeToken ?? \"\";\n return message;\n },\n};\n\nfunction createBaseCapabilities(): Capabilities {\n return {\n exec: false,\n filesystem: false,\n git: false,\n pty: false,\n desktop: false,\n consentedWholeMachine: false,\n consentedScreenControl: false,\n display: undefined,\n desktopUnavailableReason: \"\",\n opStream: false,\n };\n}\n\nexport const Capabilities: MessageFns<Capabilities> = {\n encode(message: Capabilities, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.exec !== false) {\n writer.uint32(8).bool(message.exec);\n }\n if (message.filesystem !== false) {\n writer.uint32(16).bool(message.filesystem);\n }\n if (message.git !== false) {\n writer.uint32(24).bool(message.git);\n }\n if (message.pty !== false) {\n writer.uint32(32).bool(message.pty);\n }\n if (message.desktop !== false) {\n writer.uint32(40).bool(message.desktop);\n }\n if (message.consentedWholeMachine !== false) {\n writer.uint32(48).bool(message.consentedWholeMachine);\n }\n if (message.consentedScreenControl !== false) {\n writer.uint32(56).bool(message.consentedScreenControl);\n }\n if (message.display !== undefined) {\n Display.encode(message.display, writer.uint32(66).fork()).join();\n }\n if (message.desktopUnavailableReason !== \"\") {\n writer.uint32(74).string(message.desktopUnavailableReason);\n }\n if (message.opStream !== false) {\n writer.uint32(80).bool(message.opStream);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Capabilities {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCapabilities();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.exec = reader.bool();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.filesystem = reader.bool();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.git = reader.bool();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.pty = reader.bool();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.desktop = reader.bool();\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.consentedWholeMachine = reader.bool();\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.consentedScreenControl = reader.bool();\n continue;\n }\n case 8: {\n if (tag !== 66) {\n break;\n }\n\n message.display = Display.decode(reader, reader.uint32());\n continue;\n }\n case 9: {\n if (tag !== 74) {\n break;\n }\n\n message.desktopUnavailableReason = reader.string();\n continue;\n }\n case 10: {\n if (tag !== 80) {\n break;\n }\n\n message.opStream = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Capabilities {\n return {\n exec: isSet(object.exec) ? globalThis.Boolean(object.exec) : false,\n filesystem: isSet(object.filesystem) ? globalThis.Boolean(object.filesystem) : false,\n git: isSet(object.git) ? globalThis.Boolean(object.git) : false,\n pty: isSet(object.pty) ? globalThis.Boolean(object.pty) : false,\n desktop: isSet(object.desktop) ? globalThis.Boolean(object.desktop) : false,\n consentedWholeMachine: isSet(object.consentedWholeMachine)\n ? globalThis.Boolean(object.consentedWholeMachine)\n : isSet(object.consented_whole_machine)\n ? globalThis.Boolean(object.consented_whole_machine)\n : false,\n consentedScreenControl: isSet(object.consentedScreenControl)\n ? globalThis.Boolean(object.consentedScreenControl)\n : isSet(object.consented_screen_control)\n ? globalThis.Boolean(object.consented_screen_control)\n : false,\n display: isSet(object.display) ? Display.fromJSON(object.display) : undefined,\n desktopUnavailableReason: isSet(object.desktopUnavailableReason)\n ? globalThis.String(object.desktopUnavailableReason)\n : isSet(object.desktop_unavailable_reason)\n ? globalThis.String(object.desktop_unavailable_reason)\n : \"\",\n opStream: isSet(object.opStream)\n ? globalThis.Boolean(object.opStream)\n : isSet(object.op_stream)\n ? globalThis.Boolean(object.op_stream)\n : false,\n };\n },\n\n toJSON(message: Capabilities): unknown {\n const obj: any = {};\n if (message.exec !== false) {\n obj.exec = message.exec;\n }\n if (message.filesystem !== false) {\n obj.filesystem = message.filesystem;\n }\n if (message.git !== false) {\n obj.git = message.git;\n }\n if (message.pty !== false) {\n obj.pty = message.pty;\n }\n if (message.desktop !== false) {\n obj.desktop = message.desktop;\n }\n if (message.consentedWholeMachine !== false) {\n obj.consentedWholeMachine = message.consentedWholeMachine;\n }\n if (message.consentedScreenControl !== false) {\n obj.consentedScreenControl = message.consentedScreenControl;\n }\n if (message.display !== undefined) {\n obj.display = Display.toJSON(message.display);\n }\n if (message.desktopUnavailableReason !== \"\") {\n obj.desktopUnavailableReason = message.desktopUnavailableReason;\n }\n if (message.opStream !== false) {\n obj.opStream = message.opStream;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<Capabilities>, I>>(base?: I): Capabilities {\n return Capabilities.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Capabilities>, I>>(object: I): Capabilities {\n const message = createBaseCapabilities();\n message.exec = object.exec ?? false;\n message.filesystem = object.filesystem ?? false;\n message.git = object.git ?? false;\n message.pty = object.pty ?? false;\n message.desktop = object.desktop ?? false;\n message.consentedWholeMachine = object.consentedWholeMachine ?? false;\n message.consentedScreenControl = object.consentedScreenControl ?? false;\n message.display =\n object.display !== undefined && object.display !== null\n ? Display.fromPartial(object.display)\n : undefined;\n message.desktopUnavailableReason = object.desktopUnavailableReason ?? \"\";\n message.opStream = object.opStream ?? false;\n return message;\n },\n};\n\nfunction createBaseDisplay(): Display {\n return { id: \"\", width: 0, height: 0, virtual: false };\n}\n\nexport const Display: MessageFns<Display> = {\n encode(message: Display, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.width !== 0) {\n writer.uint32(16).uint32(message.width);\n }\n if (message.height !== 0) {\n writer.uint32(24).uint32(message.height);\n }\n if (message.virtual !== false) {\n writer.uint32(32).bool(message.virtual);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Display {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDisplay();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.width = reader.uint32();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.height = reader.uint32();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.virtual = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Display {\n return {\n id: isSet(object.id) ? globalThis.String(object.id) : \"\",\n width: isSet(object.width) ? globalThis.Number(object.width) : 0,\n height: isSet(object.height) ? globalThis.Number(object.height) : 0,\n virtual: isSet(object.virtual) ? globalThis.Boolean(object.virtual) : false,\n };\n },\n\n toJSON(message: Display): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n if (message.width !== 0) {\n obj.width = Math.round(message.width);\n }\n if (message.height !== 0) {\n obj.height = Math.round(message.height);\n }\n if (message.virtual !== false) {\n obj.virtual = message.virtual;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<Display>, I>>(base?: I): Display {\n return Display.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Display>, I>>(object: I): Display {\n const message = createBaseDisplay();\n message.id = object.id ?? \"\";\n message.width = object.width ?? 0;\n message.height = object.height ?? 0;\n message.virtual = object.virtual ?? false;\n return message;\n },\n};\n\nfunction createBaseDeviceAuthStartRequest(): DeviceAuthStartRequest {\n return { installFingerprint: \"\", os: 0, arch: 0, machineName: \"\", updateChannel: \"\" };\n}\n\nexport const DeviceAuthStartRequest: MessageFns<DeviceAuthStartRequest> = {\n encode(message: DeviceAuthStartRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.installFingerprint !== \"\") {\n writer.uint32(10).string(message.installFingerprint);\n }\n if (message.os !== 0) {\n writer.uint32(16).int32(message.os);\n }\n if (message.arch !== 0) {\n writer.uint32(24).int32(message.arch);\n }\n if (message.machineName !== \"\") {\n writer.uint32(34).string(message.machineName);\n }\n if (message.updateChannel !== \"\") {\n writer.uint32(42).string(message.updateChannel);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DeviceAuthStartRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDeviceAuthStartRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.installFingerprint = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.os = reader.int32() as any;\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.arch = reader.int32() as any;\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.machineName = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.updateChannel = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): DeviceAuthStartRequest {\n return {\n installFingerprint: isSet(object.installFingerprint)\n ? globalThis.String(object.installFingerprint)\n : isSet(object.install_fingerprint)\n ? globalThis.String(object.install_fingerprint)\n : \"\",\n os: isSet(object.os) ? osFromJSON(object.os) : 0,\n arch: isSet(object.arch) ? archFromJSON(object.arch) : 0,\n machineName: isSet(object.machineName)\n ? globalThis.String(object.machineName)\n : isSet(object.machine_name)\n ? globalThis.String(object.machine_name)\n : \"\",\n updateChannel: isSet(object.updateChannel)\n ? globalThis.String(object.updateChannel)\n : isSet(object.update_channel)\n ? globalThis.String(object.update_channel)\n : \"\",\n };\n },\n\n toJSON(message: DeviceAuthStartRequest): unknown {\n const obj: any = {};\n if (message.installFingerprint !== \"\") {\n obj.installFingerprint = message.installFingerprint;\n }\n if (message.os !== 0) {\n obj.os = osToJSON(message.os);\n }\n if (message.arch !== 0) {\n obj.arch = archToJSON(message.arch);\n }\n if (message.machineName !== \"\") {\n obj.machineName = message.machineName;\n }\n if (message.updateChannel !== \"\") {\n obj.updateChannel = message.updateChannel;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<DeviceAuthStartRequest>, I>>(\n base?: I,\n ): DeviceAuthStartRequest {\n return DeviceAuthStartRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<DeviceAuthStartRequest>, I>>(\n object: I,\n ): DeviceAuthStartRequest {\n const message = createBaseDeviceAuthStartRequest();\n message.installFingerprint = object.installFingerprint ?? \"\";\n message.os = object.os ?? 0;\n message.arch = object.arch ?? 0;\n message.machineName = object.machineName ?? \"\";\n message.updateChannel = object.updateChannel ?? \"\";\n return message;\n },\n};\n\nfunction createBaseDeviceAuthStartResponse(): DeviceAuthStartResponse {\n return {\n userCode: \"\",\n deviceCode: \"\",\n verificationUri: \"\",\n verificationUriComplete: \"\",\n expiresInSeconds: 0,\n pollIntervalSeconds: 0,\n };\n}\n\nexport const DeviceAuthStartResponse: MessageFns<DeviceAuthStartResponse> = {\n encode(\n message: DeviceAuthStartResponse,\n writer: BinaryWriter = new BinaryWriter(),\n ): BinaryWriter {\n if (message.userCode !== \"\") {\n writer.uint32(10).string(message.userCode);\n }\n if (message.deviceCode !== \"\") {\n writer.uint32(18).string(message.deviceCode);\n }\n if (message.verificationUri !== \"\") {\n writer.uint32(26).string(message.verificationUri);\n }\n if (message.verificationUriComplete !== \"\") {\n writer.uint32(34).string(message.verificationUriComplete);\n }\n if (message.expiresInSeconds !== 0) {\n writer.uint32(40).uint32(message.expiresInSeconds);\n }\n if (message.pollIntervalSeconds !== 0) {\n writer.uint32(48).uint32(message.pollIntervalSeconds);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DeviceAuthStartResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDeviceAuthStartResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.userCode = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.deviceCode = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.verificationUri = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.verificationUriComplete = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.expiresInSeconds = reader.uint32();\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.pollIntervalSeconds = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): DeviceAuthStartResponse {\n return {\n userCode: isSet(object.userCode)\n ? globalThis.String(object.userCode)\n : isSet(object.user_code)\n ? globalThis.String(object.user_code)\n : \"\",\n deviceCode: isSet(object.deviceCode)\n ? globalThis.String(object.deviceCode)\n : isSet(object.device_code)\n ? globalThis.String(object.device_code)\n : \"\",\n verificationUri: isSet(object.verificationUri)\n ? globalThis.String(object.verificationUri)\n : isSet(object.verification_uri)\n ? globalThis.String(object.verification_uri)\n : \"\",\n verificationUriComplete: isSet(object.verificationUriComplete)\n ? globalThis.String(object.verificationUriComplete)\n : isSet(object.verification_uri_complete)\n ? globalThis.String(object.verification_uri_complete)\n : \"\",\n expiresInSeconds: isSet(object.expiresInSeconds)\n ? globalThis.Number(object.expiresInSeconds)\n : isSet(object.expires_in_seconds)\n ? globalThis.Number(object.expires_in_seconds)\n : 0,\n pollIntervalSeconds: isSet(object.pollIntervalSeconds)\n ? globalThis.Number(object.pollIntervalSeconds)\n : isSet(object.poll_interval_seconds)\n ? globalThis.Number(object.poll_interval_seconds)\n : 0,\n };\n },\n\n toJSON(message: DeviceAuthStartResponse): unknown {\n const obj: any = {};\n if (message.userCode !== \"\") {\n obj.userCode = message.userCode;\n }\n if (message.deviceCode !== \"\") {\n obj.deviceCode = message.deviceCode;\n }\n if (message.verificationUri !== \"\") {\n obj.verificationUri = message.verificationUri;\n }\n if (message.verificationUriComplete !== \"\") {\n obj.verificationUriComplete = message.verificationUriComplete;\n }\n if (message.expiresInSeconds !== 0) {\n obj.expiresInSeconds = Math.round(message.expiresInSeconds);\n }\n if (message.pollIntervalSeconds !== 0) {\n obj.pollIntervalSeconds = Math.round(message.pollIntervalSeconds);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<DeviceAuthStartResponse>, I>>(\n base?: I,\n ): DeviceAuthStartResponse {\n return DeviceAuthStartResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<DeviceAuthStartResponse>, I>>(\n object: I,\n ): DeviceAuthStartResponse {\n const message = createBaseDeviceAuthStartResponse();\n message.userCode = object.userCode ?? \"\";\n message.deviceCode = object.deviceCode ?? \"\";\n message.verificationUri = object.verificationUri ?? \"\";\n message.verificationUriComplete = object.verificationUriComplete ?? \"\";\n message.expiresInSeconds = object.expiresInSeconds ?? 0;\n message.pollIntervalSeconds = object.pollIntervalSeconds ?? 0;\n return message;\n },\n};\n\nfunction createBaseDeviceAuthPollRequest(): DeviceAuthPollRequest {\n return { deviceCode: \"\" };\n}\n\nexport const DeviceAuthPollRequest: MessageFns<DeviceAuthPollRequest> = {\n encode(message: DeviceAuthPollRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.deviceCode !== \"\") {\n writer.uint32(10).string(message.deviceCode);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DeviceAuthPollRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDeviceAuthPollRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.deviceCode = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): DeviceAuthPollRequest {\n return {\n deviceCode: isSet(object.deviceCode)\n ? globalThis.String(object.deviceCode)\n : isSet(object.device_code)\n ? globalThis.String(object.device_code)\n : \"\",\n };\n },\n\n toJSON(message: DeviceAuthPollRequest): unknown {\n const obj: any = {};\n if (message.deviceCode !== \"\") {\n obj.deviceCode = message.deviceCode;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<DeviceAuthPollRequest>, I>>(base?: I): DeviceAuthPollRequest {\n return DeviceAuthPollRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<DeviceAuthPollRequest>, I>>(\n object: I,\n ): DeviceAuthPollRequest {\n const message = createBaseDeviceAuthPollRequest();\n message.deviceCode = object.deviceCode ?? \"\";\n return message;\n },\n};\n\nfunction createBaseDeviceAuthPollResponse(): DeviceAuthPollResponse {\n return { state: 0, credentials: undefined };\n}\n\nexport const DeviceAuthPollResponse: MessageFns<DeviceAuthPollResponse> = {\n encode(message: DeviceAuthPollResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.state !== 0) {\n writer.uint32(8).int32(message.state);\n }\n if (message.credentials !== undefined) {\n EnrollmentCredentials.encode(message.credentials, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DeviceAuthPollResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDeviceAuthPollResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.state = reader.int32() as any;\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.credentials = EnrollmentCredentials.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): DeviceAuthPollResponse {\n return {\n state: isSet(object.state) ? deviceAuthStateFromJSON(object.state) : 0,\n credentials: isSet(object.credentials)\n ? EnrollmentCredentials.fromJSON(object.credentials)\n : undefined,\n };\n },\n\n toJSON(message: DeviceAuthPollResponse): unknown {\n const obj: any = {};\n if (message.state !== 0) {\n obj.state = deviceAuthStateToJSON(message.state);\n }\n if (message.credentials !== undefined) {\n obj.credentials = EnrollmentCredentials.toJSON(message.credentials);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<DeviceAuthPollResponse>, I>>(\n base?: I,\n ): DeviceAuthPollResponse {\n return DeviceAuthPollResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<DeviceAuthPollResponse>, I>>(\n object: I,\n ): DeviceAuthPollResponse {\n const message = createBaseDeviceAuthPollResponse();\n message.state = object.state ?? 0;\n message.credentials =\n object.credentials !== undefined && object.credentials !== null\n ? EnrollmentCredentials.fromPartial(object.credentials)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEnrollmentCredentials(): EnrollmentCredentials {\n return {\n agentId: \"\",\n workspaceId: \"\",\n natsCredentials: \"\",\n natsUrls: [],\n relayUrl: \"\",\n updatePubkey: \"\",\n consentedWholeMachine: false,\n consentedScreenControl: false,\n relayToken: \"\",\n };\n}\n\nexport const EnrollmentCredentials: MessageFns<EnrollmentCredentials> = {\n encode(message: EnrollmentCredentials, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.agentId !== \"\") {\n writer.uint32(10).string(message.agentId);\n }\n if (message.workspaceId !== \"\") {\n writer.uint32(18).string(message.workspaceId);\n }\n if (message.natsCredentials !== \"\") {\n writer.uint32(26).string(message.natsCredentials);\n }\n for (const v of message.natsUrls) {\n writer.uint32(34).string(v!);\n }\n if (message.relayUrl !== \"\") {\n writer.uint32(42).string(message.relayUrl);\n }\n if (message.updatePubkey !== \"\") {\n writer.uint32(50).string(message.updatePubkey);\n }\n if (message.consentedWholeMachine !== false) {\n writer.uint32(56).bool(message.consentedWholeMachine);\n }\n if (message.consentedScreenControl !== false) {\n writer.uint32(64).bool(message.consentedScreenControl);\n }\n if (message.relayToken !== \"\") {\n writer.uint32(74).string(message.relayToken);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EnrollmentCredentials {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEnrollmentCredentials();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.agentId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.workspaceId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.natsCredentials = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.natsUrls.push(reader.string());\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.relayUrl = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.updatePubkey = reader.string();\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.consentedWholeMachine = reader.bool();\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.consentedScreenControl = reader.bool();\n continue;\n }\n case 9: {\n if (tag !== 74) {\n break;\n }\n\n message.relayToken = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EnrollmentCredentials {\n return {\n agentId: isSet(object.agentId)\n ? globalThis.String(object.agentId)\n : isSet(object.agent_id)\n ? globalThis.String(object.agent_id)\n : \"\",\n workspaceId: isSet(object.workspaceId)\n ? globalThis.String(object.workspaceId)\n : isSet(object.workspace_id)\n ? globalThis.String(object.workspace_id)\n : \"\",\n natsCredentials: isSet(object.natsCredentials)\n ? globalThis.String(object.natsCredentials)\n : isSet(object.nats_credentials)\n ? globalThis.String(object.nats_credentials)\n : \"\",\n natsUrls: globalThis.Array.isArray(object?.natsUrls)\n ? object.natsUrls.map((e: any) => globalThis.String(e))\n : globalThis.Array.isArray(object?.nats_urls)\n ? object.nats_urls.map((e: any) => globalThis.String(e))\n : [],\n relayUrl: isSet(object.relayUrl)\n ? globalThis.String(object.relayUrl)\n : isSet(object.relay_url)\n ? globalThis.String(object.relay_url)\n : \"\",\n updatePubkey: isSet(object.updatePubkey)\n ? globalThis.String(object.updatePubkey)\n : isSet(object.update_pubkey)\n ? globalThis.String(object.update_pubkey)\n : \"\",\n consentedWholeMachine: isSet(object.consentedWholeMachine)\n ? globalThis.Boolean(object.consentedWholeMachine)\n : isSet(object.consented_whole_machine)\n ? globalThis.Boolean(object.consented_whole_machine)\n : false,\n consentedScreenControl: isSet(object.consentedScreenControl)\n ? globalThis.Boolean(object.consentedScreenControl)\n : isSet(object.consented_screen_control)\n ? globalThis.Boolean(object.consented_screen_control)\n : false,\n relayToken: isSet(object.relayToken)\n ? globalThis.String(object.relayToken)\n : isSet(object.relay_token)\n ? globalThis.String(object.relay_token)\n : \"\",\n };\n },\n\n toJSON(message: EnrollmentCredentials): unknown {\n const obj: any = {};\n if (message.agentId !== \"\") {\n obj.agentId = message.agentId;\n }\n if (message.workspaceId !== \"\") {\n obj.workspaceId = message.workspaceId;\n }\n if (message.natsCredentials !== \"\") {\n obj.natsCredentials = message.natsCredentials;\n }\n if (message.natsUrls?.length) {\n obj.natsUrls = message.natsUrls;\n }\n if (message.relayUrl !== \"\") {\n obj.relayUrl = message.relayUrl;\n }\n if (message.updatePubkey !== \"\") {\n obj.updatePubkey = message.updatePubkey;\n }\n if (message.consentedWholeMachine !== false) {\n obj.consentedWholeMachine = message.consentedWholeMachine;\n }\n if (message.consentedScreenControl !== false) {\n obj.consentedScreenControl = message.consentedScreenControl;\n }\n if (message.relayToken !== \"\") {\n obj.relayToken = message.relayToken;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<EnrollmentCredentials>, I>>(base?: I): EnrollmentCredentials {\n return EnrollmentCredentials.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<EnrollmentCredentials>, I>>(\n object: I,\n ): EnrollmentCredentials {\n const message = createBaseEnrollmentCredentials();\n message.agentId = object.agentId ?? \"\";\n message.workspaceId = object.workspaceId ?? \"\";\n message.natsCredentials = object.natsCredentials ?? \"\";\n message.natsUrls = object.natsUrls?.map((e) => e) || [];\n message.relayUrl = object.relayUrl ?? \"\";\n message.updatePubkey = object.updatePubkey ?? \"\";\n message.consentedWholeMachine = object.consentedWholeMachine ?? false;\n message.consentedScreenControl = object.consentedScreenControl ?? false;\n message.relayToken = object.relayToken ?? \"\";\n return message;\n },\n};\n\nfunction createBaseExecRequest(): ExecRequest {\n return { command: [], shell: false, cwd: \"\", env: {}, stdin: new Uint8Array(0), timeoutMs: 0 };\n}\n\nexport const ExecRequest: MessageFns<ExecRequest> = {\n encode(message: ExecRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.command) {\n writer.uint32(10).string(v!);\n }\n if (message.shell !== false) {\n writer.uint32(16).bool(message.shell);\n }\n if (message.cwd !== \"\") {\n writer.uint32(26).string(message.cwd);\n }\n globalThis.Object.entries(message.env).forEach(([key, value]: [string, string]) => {\n ExecRequest_EnvEntry.encode({ key: key as any, value }, writer.uint32(34).fork()).join();\n });\n if (message.stdin.length !== 0) {\n writer.uint32(42).bytes(message.stdin);\n }\n if (message.timeoutMs !== 0) {\n writer.uint32(48).uint32(message.timeoutMs);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): ExecRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseExecRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.command.push(reader.string());\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.shell = reader.bool();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.cwd = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n const entry4 = ExecRequest_EnvEntry.decode(reader, reader.uint32());\n if (entry4.value !== undefined) {\n message.env[entry4.key] = entry4.value;\n }\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.stdin = reader.bytes();\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.timeoutMs = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): ExecRequest {\n return {\n command: globalThis.Array.isArray(object?.command)\n ? object.command.map((e: any) => globalThis.String(e))\n : [],\n shell: isSet(object.shell) ? globalThis.Boolean(object.shell) : false,\n cwd: isSet(object.cwd) ? globalThis.String(object.cwd) : \"\",\n env: isObject(object.env)\n ? (globalThis.Object.entries(object.env) as [string, any][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, any]) => {\n acc[key] = globalThis.String(value);\n return acc;\n },\n {},\n )\n : {},\n stdin: isSet(object.stdin) ? bytesFromBase64(object.stdin) : new Uint8Array(0),\n timeoutMs: isSet(object.timeoutMs)\n ? globalThis.Number(object.timeoutMs)\n : isSet(object.timeout_ms)\n ? globalThis.Number(object.timeout_ms)\n : 0,\n };\n },\n\n toJSON(message: ExecRequest): unknown {\n const obj: any = {};\n if (message.command?.length) {\n obj.command = message.command;\n }\n if (message.shell !== false) {\n obj.shell = message.shell;\n }\n if (message.cwd !== \"\") {\n obj.cwd = message.cwd;\n }\n if (message.env) {\n const entries = globalThis.Object.entries(message.env) as [string, string][];\n if (entries.length > 0) {\n obj.env = {};\n entries.forEach(([k, v]) => {\n obj.env[k] = v;\n });\n }\n }\n if (message.stdin.length !== 0) {\n obj.stdin = base64FromBytes(message.stdin);\n }\n if (message.timeoutMs !== 0) {\n obj.timeoutMs = Math.round(message.timeoutMs);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<ExecRequest>, I>>(base?: I): ExecRequest {\n return ExecRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<ExecRequest>, I>>(object: I): ExecRequest {\n const message = createBaseExecRequest();\n message.command = object.command?.map((e) => e) || [];\n message.shell = object.shell ?? false;\n message.cwd = object.cwd ?? \"\";\n message.env = (globalThis.Object.entries(object.env ?? {}) as [string, string][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, string]) => {\n if (value !== undefined) {\n acc[key] = globalThis.String(value);\n }\n return acc;\n },\n {},\n );\n message.stdin = object.stdin ?? new Uint8Array(0);\n message.timeoutMs = object.timeoutMs ?? 0;\n return message;\n },\n};\n\nfunction createBaseExecRequest_EnvEntry(): ExecRequest_EnvEntry {\n return { key: \"\", value: \"\" };\n}\n\nexport const ExecRequest_EnvEntry: MessageFns<ExecRequest_EnvEntry> = {\n encode(message: ExecRequest_EnvEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): ExecRequest_EnvEntry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseExecRequest_EnvEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.value = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): ExecRequest_EnvEntry {\n return {\n key: isSet(object.key) ? globalThis.String(object.key) : \"\",\n value: isSet(object.value) ? globalThis.String(object.value) : \"\",\n };\n },\n\n toJSON(message: ExecRequest_EnvEntry): unknown {\n const obj: any = {};\n if (message.key !== \"\") {\n obj.key = message.key;\n }\n if (message.value !== \"\") {\n obj.value = message.value;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<ExecRequest_EnvEntry>, I>>(base?: I): ExecRequest_EnvEntry {\n return ExecRequest_EnvEntry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<ExecRequest_EnvEntry>, I>>(\n object: I,\n ): ExecRequest_EnvEntry {\n const message = createBaseExecRequest_EnvEntry();\n message.key = object.key ?? \"\";\n message.value = object.value ?? \"\";\n return message;\n },\n};\n\nfunction createBaseExecResponse(): ExecResponse {\n return {\n exitCode: 0,\n stdout: new Uint8Array(0),\n stderr: new Uint8Array(0),\n timedOut: false,\n durationMs: \"0\",\n };\n}\n\nexport const ExecResponse: MessageFns<ExecResponse> = {\n encode(message: ExecResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.exitCode !== 0) {\n writer.uint32(8).int32(message.exitCode);\n }\n if (message.stdout.length !== 0) {\n writer.uint32(18).bytes(message.stdout);\n }\n if (message.stderr.length !== 0) {\n writer.uint32(26).bytes(message.stderr);\n }\n if (message.timedOut !== false) {\n writer.uint32(32).bool(message.timedOut);\n }\n if (message.durationMs !== \"0\") {\n writer.uint32(40).uint64(message.durationMs);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): ExecResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseExecResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.exitCode = reader.int32();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.stdout = reader.bytes();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.stderr = reader.bytes();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.timedOut = reader.bool();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.durationMs = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): ExecResponse {\n return {\n exitCode: isSet(object.exitCode)\n ? globalThis.Number(object.exitCode)\n : isSet(object.exit_code)\n ? globalThis.Number(object.exit_code)\n : 0,\n stdout: isSet(object.stdout) ? bytesFromBase64(object.stdout) : new Uint8Array(0),\n stderr: isSet(object.stderr) ? bytesFromBase64(object.stderr) : new Uint8Array(0),\n timedOut: isSet(object.timedOut)\n ? globalThis.Boolean(object.timedOut)\n : isSet(object.timed_out)\n ? globalThis.Boolean(object.timed_out)\n : false,\n durationMs: isSet(object.durationMs)\n ? globalThis.String(object.durationMs)\n : isSet(object.duration_ms)\n ? globalThis.String(object.duration_ms)\n : \"0\",\n };\n },\n\n toJSON(message: ExecResponse): unknown {\n const obj: any = {};\n if (message.exitCode !== 0) {\n obj.exitCode = Math.round(message.exitCode);\n }\n if (message.stdout.length !== 0) {\n obj.stdout = base64FromBytes(message.stdout);\n }\n if (message.stderr.length !== 0) {\n obj.stderr = base64FromBytes(message.stderr);\n }\n if (message.timedOut !== false) {\n obj.timedOut = message.timedOut;\n }\n if (message.durationMs !== \"0\") {\n obj.durationMs = message.durationMs;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<ExecResponse>, I>>(base?: I): ExecResponse {\n return ExecResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<ExecResponse>, I>>(object: I): ExecResponse {\n const message = createBaseExecResponse();\n message.exitCode = object.exitCode ?? 0;\n message.stdout = object.stdout ?? new Uint8Array(0);\n message.stderr = object.stderr ?? new Uint8Array(0);\n message.timedOut = object.timedOut ?? false;\n message.durationMs = object.durationMs ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseFsReadRequest(): FsReadRequest {\n return { path: \"\", offset: \"0\", length: \"0\" };\n}\n\nexport const FsReadRequest: MessageFns<FsReadRequest> = {\n encode(message: FsReadRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.path !== \"\") {\n writer.uint32(10).string(message.path);\n }\n if (message.offset !== \"0\") {\n writer.uint32(16).uint64(message.offset);\n }\n if (message.length !== \"0\") {\n writer.uint32(24).uint64(message.length);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsReadRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsReadRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.path = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.offset = reader.uint64().toString();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.length = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsReadRequest {\n return {\n path: isSet(object.path) ? globalThis.String(object.path) : \"\",\n offset: isSet(object.offset) ? globalThis.String(object.offset) : \"0\",\n length: isSet(object.length) ? globalThis.String(object.length) : \"0\",\n };\n },\n\n toJSON(message: FsReadRequest): unknown {\n const obj: any = {};\n if (message.path !== \"\") {\n obj.path = message.path;\n }\n if (message.offset !== \"0\") {\n obj.offset = message.offset;\n }\n if (message.length !== \"0\") {\n obj.length = message.length;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsReadRequest>, I>>(base?: I): FsReadRequest {\n return FsReadRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsReadRequest>, I>>(object: I): FsReadRequest {\n const message = createBaseFsReadRequest();\n message.path = object.path ?? \"\";\n message.offset = object.offset ?? \"0\";\n message.length = object.length ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseFsReadResponse(): FsReadResponse {\n return { content: new Uint8Array(0), totalSize: \"0\" };\n}\n\nexport const FsReadResponse: MessageFns<FsReadResponse> = {\n encode(message: FsReadResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.content.length !== 0) {\n writer.uint32(10).bytes(message.content);\n }\n if (message.totalSize !== \"0\") {\n writer.uint32(16).uint64(message.totalSize);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsReadResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsReadResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.content = reader.bytes();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.totalSize = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsReadResponse {\n return {\n content: isSet(object.content) ? bytesFromBase64(object.content) : new Uint8Array(0),\n totalSize: isSet(object.totalSize)\n ? globalThis.String(object.totalSize)\n : isSet(object.total_size)\n ? globalThis.String(object.total_size)\n : \"0\",\n };\n },\n\n toJSON(message: FsReadResponse): unknown {\n const obj: any = {};\n if (message.content.length !== 0) {\n obj.content = base64FromBytes(message.content);\n }\n if (message.totalSize !== \"0\") {\n obj.totalSize = message.totalSize;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsReadResponse>, I>>(base?: I): FsReadResponse {\n return FsReadResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsReadResponse>, I>>(object: I): FsReadResponse {\n const message = createBaseFsReadResponse();\n message.content = object.content ?? new Uint8Array(0);\n message.totalSize = object.totalSize ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseFsWriteRequest(): FsWriteRequest {\n return { path: \"\", content: new Uint8Array(0), createParents: false, append: false, mode: 0 };\n}\n\nexport const FsWriteRequest: MessageFns<FsWriteRequest> = {\n encode(message: FsWriteRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.path !== \"\") {\n writer.uint32(10).string(message.path);\n }\n if (message.content.length !== 0) {\n writer.uint32(18).bytes(message.content);\n }\n if (message.createParents !== false) {\n writer.uint32(24).bool(message.createParents);\n }\n if (message.append !== false) {\n writer.uint32(32).bool(message.append);\n }\n if (message.mode !== 0) {\n writer.uint32(40).uint32(message.mode);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsWriteRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsWriteRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.path = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.content = reader.bytes();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.createParents = reader.bool();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.append = reader.bool();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.mode = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsWriteRequest {\n return {\n path: isSet(object.path) ? globalThis.String(object.path) : \"\",\n content: isSet(object.content) ? bytesFromBase64(object.content) : new Uint8Array(0),\n createParents: isSet(object.createParents)\n ? globalThis.Boolean(object.createParents)\n : isSet(object.create_parents)\n ? globalThis.Boolean(object.create_parents)\n : false,\n append: isSet(object.append) ? globalThis.Boolean(object.append) : false,\n mode: isSet(object.mode) ? globalThis.Number(object.mode) : 0,\n };\n },\n\n toJSON(message: FsWriteRequest): unknown {\n const obj: any = {};\n if (message.path !== \"\") {\n obj.path = message.path;\n }\n if (message.content.length !== 0) {\n obj.content = base64FromBytes(message.content);\n }\n if (message.createParents !== false) {\n obj.createParents = message.createParents;\n }\n if (message.append !== false) {\n obj.append = message.append;\n }\n if (message.mode !== 0) {\n obj.mode = Math.round(message.mode);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsWriteRequest>, I>>(base?: I): FsWriteRequest {\n return FsWriteRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsWriteRequest>, I>>(object: I): FsWriteRequest {\n const message = createBaseFsWriteRequest();\n message.path = object.path ?? \"\";\n message.content = object.content ?? new Uint8Array(0);\n message.createParents = object.createParents ?? false;\n message.append = object.append ?? false;\n message.mode = object.mode ?? 0;\n return message;\n },\n};\n\nfunction createBaseFsWriteResponse(): FsWriteResponse {\n return { bytesWritten: \"0\" };\n}\n\nexport const FsWriteResponse: MessageFns<FsWriteResponse> = {\n encode(message: FsWriteResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.bytesWritten !== \"0\") {\n writer.uint32(8).uint64(message.bytesWritten);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsWriteResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsWriteResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.bytesWritten = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsWriteResponse {\n return {\n bytesWritten: isSet(object.bytesWritten)\n ? globalThis.String(object.bytesWritten)\n : isSet(object.bytes_written)\n ? globalThis.String(object.bytes_written)\n : \"0\",\n };\n },\n\n toJSON(message: FsWriteResponse): unknown {\n const obj: any = {};\n if (message.bytesWritten !== \"0\") {\n obj.bytesWritten = message.bytesWritten;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsWriteResponse>, I>>(base?: I): FsWriteResponse {\n return FsWriteResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsWriteResponse>, I>>(object: I): FsWriteResponse {\n const message = createBaseFsWriteResponse();\n message.bytesWritten = object.bytesWritten ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseFsListRequest(): FsListRequest {\n return { path: \"\", recursive: false };\n}\n\nexport const FsListRequest: MessageFns<FsListRequest> = {\n encode(message: FsListRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.path !== \"\") {\n writer.uint32(10).string(message.path);\n }\n if (message.recursive !== false) {\n writer.uint32(16).bool(message.recursive);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsListRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsListRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.path = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.recursive = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsListRequest {\n return {\n path: isSet(object.path) ? globalThis.String(object.path) : \"\",\n recursive: isSet(object.recursive) ? globalThis.Boolean(object.recursive) : false,\n };\n },\n\n toJSON(message: FsListRequest): unknown {\n const obj: any = {};\n if (message.path !== \"\") {\n obj.path = message.path;\n }\n if (message.recursive !== false) {\n obj.recursive = message.recursive;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsListRequest>, I>>(base?: I): FsListRequest {\n return FsListRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsListRequest>, I>>(object: I): FsListRequest {\n const message = createBaseFsListRequest();\n message.path = object.path ?? \"\";\n message.recursive = object.recursive ?? false;\n return message;\n },\n};\n\nfunction createBaseFsListResponse(): FsListResponse {\n return { entries: [] };\n}\n\nexport const FsListResponse: MessageFns<FsListResponse> = {\n encode(message: FsListResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.entries) {\n FsEntry.encode(v!, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsListResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsListResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.entries.push(FsEntry.decode(reader, reader.uint32()));\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsListResponse {\n return {\n entries: globalThis.Array.isArray(object?.entries)\n ? object.entries.map((e: any) => FsEntry.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: FsListResponse): unknown {\n const obj: any = {};\n if (message.entries?.length) {\n obj.entries = message.entries.map((e) => FsEntry.toJSON(e));\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsListResponse>, I>>(base?: I): FsListResponse {\n return FsListResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsListResponse>, I>>(object: I): FsListResponse {\n const message = createBaseFsListResponse();\n message.entries = object.entries?.map((e) => FsEntry.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseFsEntry(): FsEntry {\n return { name: \"\", path: \"\", kind: 0, size: \"0\", modifiedMs: \"0\", mode: 0 };\n}\n\nexport const FsEntry: MessageFns<FsEntry> = {\n encode(message: FsEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.name !== \"\") {\n writer.uint32(10).string(message.name);\n }\n if (message.path !== \"\") {\n writer.uint32(18).string(message.path);\n }\n if (message.kind !== 0) {\n writer.uint32(24).int32(message.kind);\n }\n if (message.size !== \"0\") {\n writer.uint32(32).uint64(message.size);\n }\n if (message.modifiedMs !== \"0\") {\n writer.uint32(40).int64(message.modifiedMs);\n }\n if (message.mode !== 0) {\n writer.uint32(48).uint32(message.mode);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsEntry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.name = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.path = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.kind = reader.int32() as any;\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.size = reader.uint64().toString();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.modifiedMs = reader.int64().toString();\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.mode = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsEntry {\n return {\n name: isSet(object.name) ? globalThis.String(object.name) : \"\",\n path: isSet(object.path) ? globalThis.String(object.path) : \"\",\n kind: isSet(object.kind) ? fsEntryKindFromJSON(object.kind) : 0,\n size: isSet(object.size) ? globalThis.String(object.size) : \"0\",\n modifiedMs: isSet(object.modifiedMs)\n ? globalThis.String(object.modifiedMs)\n : isSet(object.modified_ms)\n ? globalThis.String(object.modified_ms)\n : \"0\",\n mode: isSet(object.mode) ? globalThis.Number(object.mode) : 0,\n };\n },\n\n toJSON(message: FsEntry): unknown {\n const obj: any = {};\n if (message.name !== \"\") {\n obj.name = message.name;\n }\n if (message.path !== \"\") {\n obj.path = message.path;\n }\n if (message.kind !== 0) {\n obj.kind = fsEntryKindToJSON(message.kind);\n }\n if (message.size !== \"0\") {\n obj.size = message.size;\n }\n if (message.modifiedMs !== \"0\") {\n obj.modifiedMs = message.modifiedMs;\n }\n if (message.mode !== 0) {\n obj.mode = Math.round(message.mode);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsEntry>, I>>(base?: I): FsEntry {\n return FsEntry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsEntry>, I>>(object: I): FsEntry {\n const message = createBaseFsEntry();\n message.name = object.name ?? \"\";\n message.path = object.path ?? \"\";\n message.kind = object.kind ?? 0;\n message.size = object.size ?? \"0\";\n message.modifiedMs = object.modifiedMs ?? \"0\";\n message.mode = object.mode ?? 0;\n return message;\n },\n};\n\nfunction createBaseFsMkdirRequest(): FsMkdirRequest {\n return { path: \"\", parents: false, mode: 0 };\n}\n\nexport const FsMkdirRequest: MessageFns<FsMkdirRequest> = {\n encode(message: FsMkdirRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.path !== \"\") {\n writer.uint32(10).string(message.path);\n }\n if (message.parents !== false) {\n writer.uint32(16).bool(message.parents);\n }\n if (message.mode !== 0) {\n writer.uint32(24).uint32(message.mode);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsMkdirRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsMkdirRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.path = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.parents = reader.bool();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.mode = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsMkdirRequest {\n return {\n path: isSet(object.path) ? globalThis.String(object.path) : \"\",\n parents: isSet(object.parents) ? globalThis.Boolean(object.parents) : false,\n mode: isSet(object.mode) ? globalThis.Number(object.mode) : 0,\n };\n },\n\n toJSON(message: FsMkdirRequest): unknown {\n const obj: any = {};\n if (message.path !== \"\") {\n obj.path = message.path;\n }\n if (message.parents !== false) {\n obj.parents = message.parents;\n }\n if (message.mode !== 0) {\n obj.mode = Math.round(message.mode);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsMkdirRequest>, I>>(base?: I): FsMkdirRequest {\n return FsMkdirRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsMkdirRequest>, I>>(object: I): FsMkdirRequest {\n const message = createBaseFsMkdirRequest();\n message.path = object.path ?? \"\";\n message.parents = object.parents ?? false;\n message.mode = object.mode ?? 0;\n return message;\n },\n};\n\nfunction createBaseFsMkdirResponse(): FsMkdirResponse {\n return {};\n}\n\nexport const FsMkdirResponse: MessageFns<FsMkdirResponse> = {\n encode(_: FsMkdirResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsMkdirResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsMkdirResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): FsMkdirResponse {\n return {};\n },\n\n toJSON(_: FsMkdirResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsMkdirResponse>, I>>(base?: I): FsMkdirResponse {\n return FsMkdirResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsMkdirResponse>, I>>(_: I): FsMkdirResponse {\n const message = createBaseFsMkdirResponse();\n return message;\n },\n};\n\nfunction createBaseFsMoveRequest(): FsMoveRequest {\n return { from: \"\", to: \"\", overwrite: false };\n}\n\nexport const FsMoveRequest: MessageFns<FsMoveRequest> = {\n encode(message: FsMoveRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.from !== \"\") {\n writer.uint32(10).string(message.from);\n }\n if (message.to !== \"\") {\n writer.uint32(18).string(message.to);\n }\n if (message.overwrite !== false) {\n writer.uint32(24).bool(message.overwrite);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsMoveRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsMoveRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.from = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.to = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.overwrite = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsMoveRequest {\n return {\n from: isSet(object.from) ? globalThis.String(object.from) : \"\",\n to: isSet(object.to) ? globalThis.String(object.to) : \"\",\n overwrite: isSet(object.overwrite) ? globalThis.Boolean(object.overwrite) : false,\n };\n },\n\n toJSON(message: FsMoveRequest): unknown {\n const obj: any = {};\n if (message.from !== \"\") {\n obj.from = message.from;\n }\n if (message.to !== \"\") {\n obj.to = message.to;\n }\n if (message.overwrite !== false) {\n obj.overwrite = message.overwrite;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsMoveRequest>, I>>(base?: I): FsMoveRequest {\n return FsMoveRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsMoveRequest>, I>>(object: I): FsMoveRequest {\n const message = createBaseFsMoveRequest();\n message.from = object.from ?? \"\";\n message.to = object.to ?? \"\";\n message.overwrite = object.overwrite ?? false;\n return message;\n },\n};\n\nfunction createBaseFsMoveResponse(): FsMoveResponse {\n return {};\n}\n\nexport const FsMoveResponse: MessageFns<FsMoveResponse> = {\n encode(_: FsMoveResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsMoveResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsMoveResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): FsMoveResponse {\n return {};\n },\n\n toJSON(_: FsMoveResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsMoveResponse>, I>>(base?: I): FsMoveResponse {\n return FsMoveResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsMoveResponse>, I>>(_: I): FsMoveResponse {\n const message = createBaseFsMoveResponse();\n return message;\n },\n};\n\nfunction createBaseFsStatRequest(): FsStatRequest {\n return { path: \"\" };\n}\n\nexport const FsStatRequest: MessageFns<FsStatRequest> = {\n encode(message: FsStatRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.path !== \"\") {\n writer.uint32(10).string(message.path);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsStatRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsStatRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.path = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsStatRequest {\n return { path: isSet(object.path) ? globalThis.String(object.path) : \"\" };\n },\n\n toJSON(message: FsStatRequest): unknown {\n const obj: any = {};\n if (message.path !== \"\") {\n obj.path = message.path;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsStatRequest>, I>>(base?: I): FsStatRequest {\n return FsStatRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsStatRequest>, I>>(object: I): FsStatRequest {\n const message = createBaseFsStatRequest();\n message.path = object.path ?? \"\";\n return message;\n },\n};\n\nfunction createBaseFsStatResponse(): FsStatResponse {\n return { exists: false, entry: undefined };\n}\n\nexport const FsStatResponse: MessageFns<FsStatResponse> = {\n encode(message: FsStatResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.exists !== false) {\n writer.uint32(8).bool(message.exists);\n }\n if (message.entry !== undefined) {\n FsEntry.encode(message.entry, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsStatResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsStatResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.exists = reader.bool();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.entry = FsEntry.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsStatResponse {\n return {\n exists: isSet(object.exists) ? globalThis.Boolean(object.exists) : false,\n entry: isSet(object.entry) ? FsEntry.fromJSON(object.entry) : undefined,\n };\n },\n\n toJSON(message: FsStatResponse): unknown {\n const obj: any = {};\n if (message.exists !== false) {\n obj.exists = message.exists;\n }\n if (message.entry !== undefined) {\n obj.entry = FsEntry.toJSON(message.entry);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsStatResponse>, I>>(base?: I): FsStatResponse {\n return FsStatResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsStatResponse>, I>>(object: I): FsStatResponse {\n const message = createBaseFsStatResponse();\n message.exists = object.exists ?? false;\n message.entry =\n object.entry !== undefined && object.entry !== null\n ? FsEntry.fromPartial(object.entry)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseFsRemoveRequest(): FsRemoveRequest {\n return { path: \"\", recursive: false };\n}\n\nexport const FsRemoveRequest: MessageFns<FsRemoveRequest> = {\n encode(message: FsRemoveRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.path !== \"\") {\n writer.uint32(10).string(message.path);\n }\n if (message.recursive !== false) {\n writer.uint32(16).bool(message.recursive);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsRemoveRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsRemoveRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.path = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.recursive = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsRemoveRequest {\n return {\n path: isSet(object.path) ? globalThis.String(object.path) : \"\",\n recursive: isSet(object.recursive) ? globalThis.Boolean(object.recursive) : false,\n };\n },\n\n toJSON(message: FsRemoveRequest): unknown {\n const obj: any = {};\n if (message.path !== \"\") {\n obj.path = message.path;\n }\n if (message.recursive !== false) {\n obj.recursive = message.recursive;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsRemoveRequest>, I>>(base?: I): FsRemoveRequest {\n return FsRemoveRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsRemoveRequest>, I>>(object: I): FsRemoveRequest {\n const message = createBaseFsRemoveRequest();\n message.path = object.path ?? \"\";\n message.recursive = object.recursive ?? false;\n return message;\n },\n};\n\nfunction createBaseFsRemoveResponse(): FsRemoveResponse {\n return {};\n}\n\nexport const FsRemoveResponse: MessageFns<FsRemoveResponse> = {\n encode(_: FsRemoveResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsRemoveResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsRemoveResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): FsRemoveResponse {\n return {};\n },\n\n toJSON(_: FsRemoveResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsRemoveResponse>, I>>(base?: I): FsRemoveResponse {\n return FsRemoveResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsRemoveResponse>, I>>(_: I): FsRemoveResponse {\n const message = createBaseFsRemoveResponse();\n return message;\n },\n};\n\nfunction createBaseGitRequest(): GitRequest {\n return { op: 0, cwd: \"\", args: [] };\n}\n\nexport const GitRequest: MessageFns<GitRequest> = {\n encode(message: GitRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.op !== 0) {\n writer.uint32(8).int32(message.op);\n }\n if (message.cwd !== \"\") {\n writer.uint32(18).string(message.cwd);\n }\n for (const v of message.args) {\n writer.uint32(26).string(v!);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): GitRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGitRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.op = reader.int32() as any;\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.cwd = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.args.push(reader.string());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): GitRequest {\n return {\n op: isSet(object.op) ? gitOpFromJSON(object.op) : 0,\n cwd: isSet(object.cwd) ? globalThis.String(object.cwd) : \"\",\n args: globalThis.Array.isArray(object?.args)\n ? object.args.map((e: any) => globalThis.String(e))\n : [],\n };\n },\n\n toJSON(message: GitRequest): unknown {\n const obj: any = {};\n if (message.op !== 0) {\n obj.op = gitOpToJSON(message.op);\n }\n if (message.cwd !== \"\") {\n obj.cwd = message.cwd;\n }\n if (message.args?.length) {\n obj.args = message.args;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<GitRequest>, I>>(base?: I): GitRequest {\n return GitRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<GitRequest>, I>>(object: I): GitRequest {\n const message = createBaseGitRequest();\n message.op = object.op ?? 0;\n message.cwd = object.cwd ?? \"\";\n message.args = object.args?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseGitResponse(): GitResponse {\n return { exitCode: 0, stdout: new Uint8Array(0), stderr: new Uint8Array(0), status: undefined };\n}\n\nexport const GitResponse: MessageFns<GitResponse> = {\n encode(message: GitResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.exitCode !== 0) {\n writer.uint32(8).int32(message.exitCode);\n }\n if (message.stdout.length !== 0) {\n writer.uint32(18).bytes(message.stdout);\n }\n if (message.stderr.length !== 0) {\n writer.uint32(26).bytes(message.stderr);\n }\n if (message.status !== undefined) {\n GitStatus.encode(message.status, writer.uint32(34).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): GitResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGitResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.exitCode = reader.int32();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.stdout = reader.bytes();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.stderr = reader.bytes();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.status = GitStatus.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): GitResponse {\n return {\n exitCode: isSet(object.exitCode)\n ? globalThis.Number(object.exitCode)\n : isSet(object.exit_code)\n ? globalThis.Number(object.exit_code)\n : 0,\n stdout: isSet(object.stdout) ? bytesFromBase64(object.stdout) : new Uint8Array(0),\n stderr: isSet(object.stderr) ? bytesFromBase64(object.stderr) : new Uint8Array(0),\n status: isSet(object.status) ? GitStatus.fromJSON(object.status) : undefined,\n };\n },\n\n toJSON(message: GitResponse): unknown {\n const obj: any = {};\n if (message.exitCode !== 0) {\n obj.exitCode = Math.round(message.exitCode);\n }\n if (message.stdout.length !== 0) {\n obj.stdout = base64FromBytes(message.stdout);\n }\n if (message.stderr.length !== 0) {\n obj.stderr = base64FromBytes(message.stderr);\n }\n if (message.status !== undefined) {\n obj.status = GitStatus.toJSON(message.status);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<GitResponse>, I>>(base?: I): GitResponse {\n return GitResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<GitResponse>, I>>(object: I): GitResponse {\n const message = createBaseGitResponse();\n message.exitCode = object.exitCode ?? 0;\n message.stdout = object.stdout ?? new Uint8Array(0);\n message.stderr = object.stderr ?? new Uint8Array(0);\n message.status =\n object.status !== undefined && object.status !== null\n ? GitStatus.fromPartial(object.status)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseGitStatus(): GitStatus {\n return { branch: \"\", upstream: \"\", ahead: 0, behind: 0, files: [], clean: false };\n}\n\nexport const GitStatus: MessageFns<GitStatus> = {\n encode(message: GitStatus, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.branch !== \"\") {\n writer.uint32(10).string(message.branch);\n }\n if (message.upstream !== \"\") {\n writer.uint32(18).string(message.upstream);\n }\n if (message.ahead !== 0) {\n writer.uint32(24).int32(message.ahead);\n }\n if (message.behind !== 0) {\n writer.uint32(32).int32(message.behind);\n }\n for (const v of message.files) {\n GitFileStatus.encode(v!, writer.uint32(42).fork()).join();\n }\n if (message.clean !== false) {\n writer.uint32(48).bool(message.clean);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): GitStatus {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGitStatus();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.branch = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.upstream = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.ahead = reader.int32();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.behind = reader.int32();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.files.push(GitFileStatus.decode(reader, reader.uint32()));\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.clean = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): GitStatus {\n return {\n branch: isSet(object.branch) ? globalThis.String(object.branch) : \"\",\n upstream: isSet(object.upstream) ? globalThis.String(object.upstream) : \"\",\n ahead: isSet(object.ahead) ? globalThis.Number(object.ahead) : 0,\n behind: isSet(object.behind) ? globalThis.Number(object.behind) : 0,\n files: globalThis.Array.isArray(object?.files)\n ? object.files.map((e: any) => GitFileStatus.fromJSON(e))\n : [],\n clean: isSet(object.clean) ? globalThis.Boolean(object.clean) : false,\n };\n },\n\n toJSON(message: GitStatus): unknown {\n const obj: any = {};\n if (message.branch !== \"\") {\n obj.branch = message.branch;\n }\n if (message.upstream !== \"\") {\n obj.upstream = message.upstream;\n }\n if (message.ahead !== 0) {\n obj.ahead = Math.round(message.ahead);\n }\n if (message.behind !== 0) {\n obj.behind = Math.round(message.behind);\n }\n if (message.files?.length) {\n obj.files = message.files.map((e) => GitFileStatus.toJSON(e));\n }\n if (message.clean !== false) {\n obj.clean = message.clean;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<GitStatus>, I>>(base?: I): GitStatus {\n return GitStatus.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<GitStatus>, I>>(object: I): GitStatus {\n const message = createBaseGitStatus();\n message.branch = object.branch ?? \"\";\n message.upstream = object.upstream ?? \"\";\n message.ahead = object.ahead ?? 0;\n message.behind = object.behind ?? 0;\n message.files = object.files?.map((e) => GitFileStatus.fromPartial(e)) || [];\n message.clean = object.clean ?? false;\n return message;\n },\n};\n\nfunction createBaseGitFileStatus(): GitFileStatus {\n return { path: \"\", code: \"\", staged: false };\n}\n\nexport const GitFileStatus: MessageFns<GitFileStatus> = {\n encode(message: GitFileStatus, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.path !== \"\") {\n writer.uint32(10).string(message.path);\n }\n if (message.code !== \"\") {\n writer.uint32(18).string(message.code);\n }\n if (message.staged !== false) {\n writer.uint32(24).bool(message.staged);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): GitFileStatus {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGitFileStatus();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.path = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.code = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.staged = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): GitFileStatus {\n return {\n path: isSet(object.path) ? globalThis.String(object.path) : \"\",\n code: isSet(object.code) ? globalThis.String(object.code) : \"\",\n staged: isSet(object.staged) ? globalThis.Boolean(object.staged) : false,\n };\n },\n\n toJSON(message: GitFileStatus): unknown {\n const obj: any = {};\n if (message.path !== \"\") {\n obj.path = message.path;\n }\n if (message.code !== \"\") {\n obj.code = message.code;\n }\n if (message.staged !== false) {\n obj.staged = message.staged;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<GitFileStatus>, I>>(base?: I): GitFileStatus {\n return GitFileStatus.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<GitFileStatus>, I>>(object: I): GitFileStatus {\n const message = createBaseGitFileStatus();\n message.path = object.path ?? \"\";\n message.code = object.code ?? \"\";\n message.staged = object.staged ?? false;\n return message;\n },\n};\n\nfunction createBasePtyOpenRequest(): PtyOpenRequest {\n return { command: [], cwd: \"\", env: {}, cols: 0, rows: 0, term: \"\" };\n}\n\nexport const PtyOpenRequest: MessageFns<PtyOpenRequest> = {\n encode(message: PtyOpenRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.command) {\n writer.uint32(10).string(v!);\n }\n if (message.cwd !== \"\") {\n writer.uint32(18).string(message.cwd);\n }\n globalThis.Object.entries(message.env).forEach(([key, value]: [string, string]) => {\n PtyOpenRequest_EnvEntry.encode({ key: key as any, value }, writer.uint32(26).fork()).join();\n });\n if (message.cols !== 0) {\n writer.uint32(32).uint32(message.cols);\n }\n if (message.rows !== 0) {\n writer.uint32(40).uint32(message.rows);\n }\n if (message.term !== \"\") {\n writer.uint32(50).string(message.term);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PtyOpenRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePtyOpenRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.command.push(reader.string());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.cwd = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n const entry3 = PtyOpenRequest_EnvEntry.decode(reader, reader.uint32());\n if (entry3.value !== undefined) {\n message.env[entry3.key] = entry3.value;\n }\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.cols = reader.uint32();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.rows = reader.uint32();\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.term = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PtyOpenRequest {\n return {\n command: globalThis.Array.isArray(object?.command)\n ? object.command.map((e: any) => globalThis.String(e))\n : [],\n cwd: isSet(object.cwd) ? globalThis.String(object.cwd) : \"\",\n env: isObject(object.env)\n ? (globalThis.Object.entries(object.env) as [string, any][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, any]) => {\n acc[key] = globalThis.String(value);\n return acc;\n },\n {},\n )\n : {},\n cols: isSet(object.cols) ? globalThis.Number(object.cols) : 0,\n rows: isSet(object.rows) ? globalThis.Number(object.rows) : 0,\n term: isSet(object.term) ? globalThis.String(object.term) : \"\",\n };\n },\n\n toJSON(message: PtyOpenRequest): unknown {\n const obj: any = {};\n if (message.command?.length) {\n obj.command = message.command;\n }\n if (message.cwd !== \"\") {\n obj.cwd = message.cwd;\n }\n if (message.env) {\n const entries = globalThis.Object.entries(message.env) as [string, string][];\n if (entries.length > 0) {\n obj.env = {};\n entries.forEach(([k, v]) => {\n obj.env[k] = v;\n });\n }\n }\n if (message.cols !== 0) {\n obj.cols = Math.round(message.cols);\n }\n if (message.rows !== 0) {\n obj.rows = Math.round(message.rows);\n }\n if (message.term !== \"\") {\n obj.term = message.term;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PtyOpenRequest>, I>>(base?: I): PtyOpenRequest {\n return PtyOpenRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PtyOpenRequest>, I>>(object: I): PtyOpenRequest {\n const message = createBasePtyOpenRequest();\n message.command = object.command?.map((e) => e) || [];\n message.cwd = object.cwd ?? \"\";\n message.env = (globalThis.Object.entries(object.env ?? {}) as [string, string][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, string]) => {\n if (value !== undefined) {\n acc[key] = globalThis.String(value);\n }\n return acc;\n },\n {},\n );\n message.cols = object.cols ?? 0;\n message.rows = object.rows ?? 0;\n message.term = object.term ?? \"\";\n return message;\n },\n};\n\nfunction createBasePtyOpenRequest_EnvEntry(): PtyOpenRequest_EnvEntry {\n return { key: \"\", value: \"\" };\n}\n\nexport const PtyOpenRequest_EnvEntry: MessageFns<PtyOpenRequest_EnvEntry> = {\n encode(\n message: PtyOpenRequest_EnvEntry,\n writer: BinaryWriter = new BinaryWriter(),\n ): BinaryWriter {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PtyOpenRequest_EnvEntry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePtyOpenRequest_EnvEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.value = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PtyOpenRequest_EnvEntry {\n return {\n key: isSet(object.key) ? globalThis.String(object.key) : \"\",\n value: isSet(object.value) ? globalThis.String(object.value) : \"\",\n };\n },\n\n toJSON(message: PtyOpenRequest_EnvEntry): unknown {\n const obj: any = {};\n if (message.key !== \"\") {\n obj.key = message.key;\n }\n if (message.value !== \"\") {\n obj.value = message.value;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PtyOpenRequest_EnvEntry>, I>>(\n base?: I,\n ): PtyOpenRequest_EnvEntry {\n return PtyOpenRequest_EnvEntry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PtyOpenRequest_EnvEntry>, I>>(\n object: I,\n ): PtyOpenRequest_EnvEntry {\n const message = createBasePtyOpenRequest_EnvEntry();\n message.key = object.key ?? \"\";\n message.value = object.value ?? \"\";\n return message;\n },\n};\n\nfunction createBasePtyOpenResponse(): PtyOpenResponse {\n return { ptyId: \"\", channel: undefined };\n}\n\nexport const PtyOpenResponse: MessageFns<PtyOpenResponse> = {\n encode(message: PtyOpenResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.ptyId !== \"\") {\n writer.uint32(10).string(message.ptyId);\n }\n if (message.channel !== undefined) {\n StreamChannel.encode(message.channel, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PtyOpenResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePtyOpenResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.ptyId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.channel = StreamChannel.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PtyOpenResponse {\n return {\n ptyId: isSet(object.ptyId)\n ? globalThis.String(object.ptyId)\n : isSet(object.pty_id)\n ? globalThis.String(object.pty_id)\n : \"\",\n channel: isSet(object.channel) ? StreamChannel.fromJSON(object.channel) : undefined,\n };\n },\n\n toJSON(message: PtyOpenResponse): unknown {\n const obj: any = {};\n if (message.ptyId !== \"\") {\n obj.ptyId = message.ptyId;\n }\n if (message.channel !== undefined) {\n obj.channel = StreamChannel.toJSON(message.channel);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PtyOpenResponse>, I>>(base?: I): PtyOpenResponse {\n return PtyOpenResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PtyOpenResponse>, I>>(object: I): PtyOpenResponse {\n const message = createBasePtyOpenResponse();\n message.ptyId = object.ptyId ?? \"\";\n message.channel =\n object.channel !== undefined && object.channel !== null\n ? StreamChannel.fromPartial(object.channel)\n : undefined;\n return message;\n },\n};\n\nfunction createBasePtyWriteRequest(): PtyWriteRequest {\n return { ptyId: \"\", data: new Uint8Array(0) };\n}\n\nexport const PtyWriteRequest: MessageFns<PtyWriteRequest> = {\n encode(message: PtyWriteRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.ptyId !== \"\") {\n writer.uint32(10).string(message.ptyId);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PtyWriteRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePtyWriteRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.ptyId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.data = reader.bytes();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PtyWriteRequest {\n return {\n ptyId: isSet(object.ptyId)\n ? globalThis.String(object.ptyId)\n : isSet(object.pty_id)\n ? globalThis.String(object.pty_id)\n : \"\",\n data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array(0),\n };\n },\n\n toJSON(message: PtyWriteRequest): unknown {\n const obj: any = {};\n if (message.ptyId !== \"\") {\n obj.ptyId = message.ptyId;\n }\n if (message.data.length !== 0) {\n obj.data = base64FromBytes(message.data);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PtyWriteRequest>, I>>(base?: I): PtyWriteRequest {\n return PtyWriteRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PtyWriteRequest>, I>>(object: I): PtyWriteRequest {\n const message = createBasePtyWriteRequest();\n message.ptyId = object.ptyId ?? \"\";\n message.data = object.data ?? new Uint8Array(0);\n return message;\n },\n};\n\nfunction createBasePtyWriteResponse(): PtyWriteResponse {\n return { bytesWritten: \"0\" };\n}\n\nexport const PtyWriteResponse: MessageFns<PtyWriteResponse> = {\n encode(message: PtyWriteResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.bytesWritten !== \"0\") {\n writer.uint32(8).uint64(message.bytesWritten);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PtyWriteResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePtyWriteResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.bytesWritten = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PtyWriteResponse {\n return {\n bytesWritten: isSet(object.bytesWritten)\n ? globalThis.String(object.bytesWritten)\n : isSet(object.bytes_written)\n ? globalThis.String(object.bytes_written)\n : \"0\",\n };\n },\n\n toJSON(message: PtyWriteResponse): unknown {\n const obj: any = {};\n if (message.bytesWritten !== \"0\") {\n obj.bytesWritten = message.bytesWritten;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PtyWriteResponse>, I>>(base?: I): PtyWriteResponse {\n return PtyWriteResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PtyWriteResponse>, I>>(object: I): PtyWriteResponse {\n const message = createBasePtyWriteResponse();\n message.bytesWritten = object.bytesWritten ?? \"0\";\n return message;\n },\n};\n\nfunction createBasePtyResizeRequest(): PtyResizeRequest {\n return { ptyId: \"\", cols: 0, rows: 0 };\n}\n\nexport const PtyResizeRequest: MessageFns<PtyResizeRequest> = {\n encode(message: PtyResizeRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.ptyId !== \"\") {\n writer.uint32(10).string(message.ptyId);\n }\n if (message.cols !== 0) {\n writer.uint32(16).uint32(message.cols);\n }\n if (message.rows !== 0) {\n writer.uint32(24).uint32(message.rows);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PtyResizeRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePtyResizeRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.ptyId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.cols = reader.uint32();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.rows = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PtyResizeRequest {\n return {\n ptyId: isSet(object.ptyId)\n ? globalThis.String(object.ptyId)\n : isSet(object.pty_id)\n ? globalThis.String(object.pty_id)\n : \"\",\n cols: isSet(object.cols) ? globalThis.Number(object.cols) : 0,\n rows: isSet(object.rows) ? globalThis.Number(object.rows) : 0,\n };\n },\n\n toJSON(message: PtyResizeRequest): unknown {\n const obj: any = {};\n if (message.ptyId !== \"\") {\n obj.ptyId = message.ptyId;\n }\n if (message.cols !== 0) {\n obj.cols = Math.round(message.cols);\n }\n if (message.rows !== 0) {\n obj.rows = Math.round(message.rows);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PtyResizeRequest>, I>>(base?: I): PtyResizeRequest {\n return PtyResizeRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PtyResizeRequest>, I>>(object: I): PtyResizeRequest {\n const message = createBasePtyResizeRequest();\n message.ptyId = object.ptyId ?? \"\";\n message.cols = object.cols ?? 0;\n message.rows = object.rows ?? 0;\n return message;\n },\n};\n\nfunction createBasePtyResizeResponse(): PtyResizeResponse {\n return {};\n}\n\nexport const PtyResizeResponse: MessageFns<PtyResizeResponse> = {\n encode(_: PtyResizeResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PtyResizeResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePtyResizeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): PtyResizeResponse {\n return {};\n },\n\n toJSON(_: PtyResizeResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PtyResizeResponse>, I>>(base?: I): PtyResizeResponse {\n return PtyResizeResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PtyResizeResponse>, I>>(_: I): PtyResizeResponse {\n const message = createBasePtyResizeResponse();\n return message;\n },\n};\n\nfunction createBasePtyCloseRequest(): PtyCloseRequest {\n return { ptyId: \"\" };\n}\n\nexport const PtyCloseRequest: MessageFns<PtyCloseRequest> = {\n encode(message: PtyCloseRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.ptyId !== \"\") {\n writer.uint32(10).string(message.ptyId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PtyCloseRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePtyCloseRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.ptyId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PtyCloseRequest {\n return {\n ptyId: isSet(object.ptyId)\n ? globalThis.String(object.ptyId)\n : isSet(object.pty_id)\n ? globalThis.String(object.pty_id)\n : \"\",\n };\n },\n\n toJSON(message: PtyCloseRequest): unknown {\n const obj: any = {};\n if (message.ptyId !== \"\") {\n obj.ptyId = message.ptyId;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PtyCloseRequest>, I>>(base?: I): PtyCloseRequest {\n return PtyCloseRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PtyCloseRequest>, I>>(object: I): PtyCloseRequest {\n const message = createBasePtyCloseRequest();\n message.ptyId = object.ptyId ?? \"\";\n return message;\n },\n};\n\nfunction createBasePtyCloseResponse(): PtyCloseResponse {\n return { exitCode: 0 };\n}\n\nexport const PtyCloseResponse: MessageFns<PtyCloseResponse> = {\n encode(message: PtyCloseResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.exitCode !== 0) {\n writer.uint32(8).int32(message.exitCode);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PtyCloseResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePtyCloseResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.exitCode = reader.int32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PtyCloseResponse {\n return {\n exitCode: isSet(object.exitCode)\n ? globalThis.Number(object.exitCode)\n : isSet(object.exit_code)\n ? globalThis.Number(object.exit_code)\n : 0,\n };\n },\n\n toJSON(message: PtyCloseResponse): unknown {\n const obj: any = {};\n if (message.exitCode !== 0) {\n obj.exitCode = Math.round(message.exitCode);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PtyCloseResponse>, I>>(base?: I): PtyCloseResponse {\n return PtyCloseResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PtyCloseResponse>, I>>(object: I): PtyCloseResponse {\n const message = createBasePtyCloseResponse();\n message.exitCode = object.exitCode ?? 0;\n return message;\n },\n};\n\nfunction createBaseDesktopEnsureRequest(): DesktopEnsureRequest {\n return { width: 0, height: 0 };\n}\n\nexport const DesktopEnsureRequest: MessageFns<DesktopEnsureRequest> = {\n encode(message: DesktopEnsureRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.width !== 0) {\n writer.uint32(8).uint32(message.width);\n }\n if (message.height !== 0) {\n writer.uint32(16).uint32(message.height);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DesktopEnsureRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDesktopEnsureRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.width = reader.uint32();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.height = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): DesktopEnsureRequest {\n return {\n width: isSet(object.width) ? globalThis.Number(object.width) : 0,\n height: isSet(object.height) ? globalThis.Number(object.height) : 0,\n };\n },\n\n toJSON(message: DesktopEnsureRequest): unknown {\n const obj: any = {};\n if (message.width !== 0) {\n obj.width = Math.round(message.width);\n }\n if (message.height !== 0) {\n obj.height = Math.round(message.height);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<DesktopEnsureRequest>, I>>(base?: I): DesktopEnsureRequest {\n return DesktopEnsureRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<DesktopEnsureRequest>, I>>(\n object: I,\n ): DesktopEnsureRequest {\n const message = createBaseDesktopEnsureRequest();\n message.width = object.width ?? 0;\n message.height = object.height ?? 0;\n return message;\n },\n};\n\nfunction createBaseDesktopEnsureResponse(): DesktopEnsureResponse {\n return { channel: undefined, display: undefined };\n}\n\nexport const DesktopEnsureResponse: MessageFns<DesktopEnsureResponse> = {\n encode(message: DesktopEnsureResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.channel !== undefined) {\n StreamChannel.encode(message.channel, writer.uint32(10).fork()).join();\n }\n if (message.display !== undefined) {\n Display.encode(message.display, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DesktopEnsureResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDesktopEnsureResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.channel = StreamChannel.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.display = Display.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): DesktopEnsureResponse {\n return {\n channel: isSet(object.channel) ? StreamChannel.fromJSON(object.channel) : undefined,\n display: isSet(object.display) ? Display.fromJSON(object.display) : undefined,\n };\n },\n\n toJSON(message: DesktopEnsureResponse): unknown {\n const obj: any = {};\n if (message.channel !== undefined) {\n obj.channel = StreamChannel.toJSON(message.channel);\n }\n if (message.display !== undefined) {\n obj.display = Display.toJSON(message.display);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<DesktopEnsureResponse>, I>>(base?: I): DesktopEnsureResponse {\n return DesktopEnsureResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<DesktopEnsureResponse>, I>>(\n object: I,\n ): DesktopEnsureResponse {\n const message = createBaseDesktopEnsureResponse();\n message.channel =\n object.channel !== undefined && object.channel !== null\n ? StreamChannel.fromPartial(object.channel)\n : undefined;\n message.display =\n object.display !== undefined && object.display !== null\n ? Display.fromPartial(object.display)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseDesktopInputRequest(): DesktopInputRequest {\n return { event: undefined };\n}\n\nexport const DesktopInputRequest: MessageFns<DesktopInputRequest> = {\n encode(message: DesktopInputRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n switch (message.event?.$case) {\n case \"pointer\":\n PointerEvent.encode(message.event.pointer, writer.uint32(10).fork()).join();\n break;\n case \"key\":\n KeyEvent.encode(message.event.key, writer.uint32(18).fork()).join();\n break;\n case \"scroll\":\n ScrollEvent.encode(message.event.scroll, writer.uint32(26).fork()).join();\n break;\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DesktopInputRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDesktopInputRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.event = {\n $case: \"pointer\",\n pointer: PointerEvent.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.event = { $case: \"key\", key: KeyEvent.decode(reader, reader.uint32()) };\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.event = { $case: \"scroll\", scroll: ScrollEvent.decode(reader, reader.uint32()) };\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): DesktopInputRequest {\n return {\n event: isSet(object.pointer)\n ? { $case: \"pointer\", pointer: PointerEvent.fromJSON(object.pointer) }\n : isSet(object.key)\n ? { $case: \"key\", key: KeyEvent.fromJSON(object.key) }\n : isSet(object.scroll)\n ? { $case: \"scroll\", scroll: ScrollEvent.fromJSON(object.scroll) }\n : undefined,\n };\n },\n\n toJSON(message: DesktopInputRequest): unknown {\n const obj: any = {};\n if (message.event?.$case === \"pointer\") {\n obj.pointer = PointerEvent.toJSON(message.event.pointer);\n } else if (message.event?.$case === \"key\") {\n obj.key = KeyEvent.toJSON(message.event.key);\n } else if (message.event?.$case === \"scroll\") {\n obj.scroll = ScrollEvent.toJSON(message.event.scroll);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<DesktopInputRequest>, I>>(base?: I): DesktopInputRequest {\n return DesktopInputRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<DesktopInputRequest>, I>>(\n object: I,\n ): DesktopInputRequest {\n const message = createBaseDesktopInputRequest();\n switch (object.event?.$case) {\n case \"pointer\": {\n if (object.event?.pointer !== undefined && object.event?.pointer !== null) {\n message.event = {\n $case: \"pointer\",\n pointer: PointerEvent.fromPartial(object.event.pointer),\n };\n }\n break;\n }\n case \"key\": {\n if (object.event?.key !== undefined && object.event?.key !== null) {\n message.event = { $case: \"key\", key: KeyEvent.fromPartial(object.event.key) };\n }\n break;\n }\n case \"scroll\": {\n if (object.event?.scroll !== undefined && object.event?.scroll !== null) {\n message.event = { $case: \"scroll\", scroll: ScrollEvent.fromPartial(object.event.scroll) };\n }\n break;\n }\n }\n return message;\n },\n};\n\nfunction createBaseDesktopInputResponse(): DesktopInputResponse {\n return {};\n}\n\nexport const DesktopInputResponse: MessageFns<DesktopInputResponse> = {\n encode(_: DesktopInputResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DesktopInputResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDesktopInputResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DesktopInputResponse {\n return {};\n },\n\n toJSON(_: DesktopInputResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create<I extends Exact<DeepPartial<DesktopInputResponse>, I>>(base?: I): DesktopInputResponse {\n return DesktopInputResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<DesktopInputResponse>, I>>(_: I): DesktopInputResponse {\n const message = createBaseDesktopInputResponse();\n return message;\n },\n};\n\nfunction createBaseDesktopScreenshotRequest(): DesktopScreenshotRequest {\n return {};\n}\n\nexport const DesktopScreenshotRequest: MessageFns<DesktopScreenshotRequest> = {\n encode(_: DesktopScreenshotRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DesktopScreenshotRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDesktopScreenshotRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DesktopScreenshotRequest {\n return {};\n },\n\n toJSON(_: DesktopScreenshotRequest): unknown {\n const obj: any = {};\n return obj;\n },\n\n create<I extends Exact<DeepPartial<DesktopScreenshotRequest>, I>>(\n base?: I,\n ): DesktopScreenshotRequest {\n return DesktopScreenshotRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<DesktopScreenshotRequest>, I>>(\n _: I,\n ): DesktopScreenshotRequest {\n const message = createBaseDesktopScreenshotRequest();\n return message;\n },\n};\n\nfunction createBaseDesktopScreenshotResponse(): DesktopScreenshotResponse {\n return { png: new Uint8Array(0), width: 0, height: 0, nativeWidth: 0, nativeHeight: 0 };\n}\n\nexport const DesktopScreenshotResponse: MessageFns<DesktopScreenshotResponse> = {\n encode(\n message: DesktopScreenshotResponse,\n writer: BinaryWriter = new BinaryWriter(),\n ): BinaryWriter {\n if (message.png.length !== 0) {\n writer.uint32(10).bytes(message.png);\n }\n if (message.width !== 0) {\n writer.uint32(16).uint32(message.width);\n }\n if (message.height !== 0) {\n writer.uint32(24).uint32(message.height);\n }\n if (message.nativeWidth !== 0) {\n writer.uint32(32).uint32(message.nativeWidth);\n }\n if (message.nativeHeight !== 0) {\n writer.uint32(40).uint32(message.nativeHeight);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DesktopScreenshotResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDesktopScreenshotResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.png = reader.bytes();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.width = reader.uint32();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.height = reader.uint32();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.nativeWidth = reader.uint32();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.nativeHeight = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): DesktopScreenshotResponse {\n return {\n png: isSet(object.png) ? bytesFromBase64(object.png) : new Uint8Array(0),\n width: isSet(object.width) ? globalThis.Number(object.width) : 0,\n height: isSet(object.height) ? globalThis.Number(object.height) : 0,\n nativeWidth: isSet(object.nativeWidth)\n ? globalThis.Number(object.nativeWidth)\n : isSet(object.native_width)\n ? globalThis.Number(object.native_width)\n : 0,\n nativeHeight: isSet(object.nativeHeight)\n ? globalThis.Number(object.nativeHeight)\n : isSet(object.native_height)\n ? globalThis.Number(object.native_height)\n : 0,\n };\n },\n\n toJSON(message: DesktopScreenshotResponse): unknown {\n const obj: any = {};\n if (message.png.length !== 0) {\n obj.png = base64FromBytes(message.png);\n }\n if (message.width !== 0) {\n obj.width = Math.round(message.width);\n }\n if (message.height !== 0) {\n obj.height = Math.round(message.height);\n }\n if (message.nativeWidth !== 0) {\n obj.nativeWidth = Math.round(message.nativeWidth);\n }\n if (message.nativeHeight !== 0) {\n obj.nativeHeight = Math.round(message.nativeHeight);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<DesktopScreenshotResponse>, I>>(\n base?: I,\n ): DesktopScreenshotResponse {\n return DesktopScreenshotResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<DesktopScreenshotResponse>, I>>(\n object: I,\n ): DesktopScreenshotResponse {\n const message = createBaseDesktopScreenshotResponse();\n message.png = object.png ?? new Uint8Array(0);\n message.width = object.width ?? 0;\n message.height = object.height ?? 0;\n message.nativeWidth = object.nativeWidth ?? 0;\n message.nativeHeight = object.nativeHeight ?? 0;\n return message;\n },\n};\n\nfunction createBaseHeartbeat(): Heartbeat {\n return {\n seq: \"0\",\n uptimeMs: \"0\",\n activeSessions: 0,\n metrics: undefined,\n draining: false,\n capacity: undefined,\n admission: undefined,\n };\n}\n\nexport const Heartbeat: MessageFns<Heartbeat> = {\n encode(message: Heartbeat, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.seq !== \"0\") {\n writer.uint32(8).uint64(message.seq);\n }\n if (message.uptimeMs !== \"0\") {\n writer.uint32(16).uint64(message.uptimeMs);\n }\n if (message.activeSessions !== 0) {\n writer.uint32(24).uint32(message.activeSessions);\n }\n if (message.metrics !== undefined) {\n MetricsSample.encode(message.metrics, writer.uint32(34).fork()).join();\n }\n if (message.draining !== false) {\n writer.uint32(40).bool(message.draining);\n }\n if (message.capacity !== undefined) {\n HostCapacitySample.encode(message.capacity, writer.uint32(50).fork()).join();\n }\n if (message.admission !== undefined) {\n AdmissionTelemetry.encode(message.admission, writer.uint32(58).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Heartbeat {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHeartbeat();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.seq = reader.uint64().toString();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.uptimeMs = reader.uint64().toString();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.activeSessions = reader.uint32();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.metrics = MetricsSample.decode(reader, reader.uint32());\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.draining = reader.bool();\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.capacity = HostCapacitySample.decode(reader, reader.uint32());\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.admission = AdmissionTelemetry.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Heartbeat {\n return {\n seq: isSet(object.seq) ? globalThis.String(object.seq) : \"0\",\n uptimeMs: isSet(object.uptimeMs)\n ? globalThis.String(object.uptimeMs)\n : isSet(object.uptime_ms)\n ? globalThis.String(object.uptime_ms)\n : \"0\",\n activeSessions: isSet(object.activeSessions)\n ? globalThis.Number(object.activeSessions)\n : isSet(object.active_sessions)\n ? globalThis.Number(object.active_sessions)\n : 0,\n metrics: isSet(object.metrics) ? MetricsSample.fromJSON(object.metrics) : undefined,\n draining: isSet(object.draining) ? globalThis.Boolean(object.draining) : false,\n capacity: isSet(object.capacity) ? HostCapacitySample.fromJSON(object.capacity) : undefined,\n admission: isSet(object.admission)\n ? AdmissionTelemetry.fromJSON(object.admission)\n : undefined,\n };\n },\n\n toJSON(message: Heartbeat): unknown {\n const obj: any = {};\n if (message.seq !== \"0\") {\n obj.seq = message.seq;\n }\n if (message.uptimeMs !== \"0\") {\n obj.uptimeMs = message.uptimeMs;\n }\n if (message.activeSessions !== 0) {\n obj.activeSessions = Math.round(message.activeSessions);\n }\n if (message.metrics !== undefined) {\n obj.metrics = MetricsSample.toJSON(message.metrics);\n }\n if (message.draining !== false) {\n obj.draining = message.draining;\n }\n if (message.capacity !== undefined) {\n obj.capacity = HostCapacitySample.toJSON(message.capacity);\n }\n if (message.admission !== undefined) {\n obj.admission = AdmissionTelemetry.toJSON(message.admission);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<Heartbeat>, I>>(base?: I): Heartbeat {\n return Heartbeat.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Heartbeat>, I>>(object: I): Heartbeat {\n const message = createBaseHeartbeat();\n message.seq = object.seq ?? \"0\";\n message.uptimeMs = object.uptimeMs ?? \"0\";\n message.activeSessions = object.activeSessions ?? 0;\n message.metrics =\n object.metrics !== undefined && object.metrics !== null\n ? MetricsSample.fromPartial(object.metrics)\n : undefined;\n message.draining = object.draining ?? false;\n message.capacity =\n object.capacity !== undefined && object.capacity !== null\n ? HostCapacitySample.fromPartial(object.capacity)\n : undefined;\n message.admission =\n object.admission !== undefined && object.admission !== null\n ? AdmissionTelemetry.fromPartial(object.admission)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseHostCapacitySample(): HostCapacitySample {\n return {\n memAvailableBytes: \"0\",\n diskFreeBytes: \"0\",\n fdHeadroom: \"0\",\n pidHeadroom: \"0\",\n nproc: \"0\",\n };\n}\n\nexport const HostCapacitySample: MessageFns<HostCapacitySample> = {\n encode(message: HostCapacitySample, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.memAvailableBytes !== \"0\") {\n writer.uint32(8).uint64(message.memAvailableBytes);\n }\n if (message.diskFreeBytes !== \"0\") {\n writer.uint32(16).uint64(message.diskFreeBytes);\n }\n if (message.fdHeadroom !== \"0\") {\n writer.uint32(24).uint64(message.fdHeadroom);\n }\n if (message.pidHeadroom !== \"0\") {\n writer.uint32(32).uint64(message.pidHeadroom);\n }\n if (message.nproc !== \"0\") {\n writer.uint32(40).uint64(message.nproc);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): HostCapacitySample {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHostCapacitySample();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.memAvailableBytes = reader.uint64().toString();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.diskFreeBytes = reader.uint64().toString();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.fdHeadroom = reader.uint64().toString();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.pidHeadroom = reader.uint64().toString();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.nproc = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): HostCapacitySample {\n return {\n memAvailableBytes: isSet(object.memAvailableBytes)\n ? globalThis.String(object.memAvailableBytes)\n : isSet(object.mem_available_bytes)\n ? globalThis.String(object.mem_available_bytes)\n : \"0\",\n diskFreeBytes: isSet(object.diskFreeBytes)\n ? globalThis.String(object.diskFreeBytes)\n : isSet(object.disk_free_bytes)\n ? globalThis.String(object.disk_free_bytes)\n : \"0\",\n fdHeadroom: isSet(object.fdHeadroom)\n ? globalThis.String(object.fdHeadroom)\n : isSet(object.fd_headroom)\n ? globalThis.String(object.fd_headroom)\n : \"0\",\n pidHeadroom: isSet(object.pidHeadroom)\n ? globalThis.String(object.pidHeadroom)\n : isSet(object.pid_headroom)\n ? globalThis.String(object.pid_headroom)\n : \"0\",\n nproc: isSet(object.nproc) ? globalThis.String(object.nproc) : \"0\",\n };\n },\n\n toJSON(message: HostCapacitySample): unknown {\n const obj: any = {};\n if (message.memAvailableBytes !== \"0\") {\n obj.memAvailableBytes = message.memAvailableBytes;\n }\n if (message.diskFreeBytes !== \"0\") {\n obj.diskFreeBytes = message.diskFreeBytes;\n }\n if (message.fdHeadroom !== \"0\") {\n obj.fdHeadroom = message.fdHeadroom;\n }\n if (message.pidHeadroom !== \"0\") {\n obj.pidHeadroom = message.pidHeadroom;\n }\n if (message.nproc !== \"0\") {\n obj.nproc = message.nproc;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<HostCapacitySample>, I>>(base?: I): HostCapacitySample {\n return HostCapacitySample.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<HostCapacitySample>, I>>(object: I): HostCapacitySample {\n const message = createBaseHostCapacitySample();\n message.memAvailableBytes = object.memAvailableBytes ?? \"0\";\n message.diskFreeBytes = object.diskFreeBytes ?? \"0\";\n message.fdHeadroom = object.fdHeadroom ?? \"0\";\n message.pidHeadroom = object.pidHeadroom ?? \"0\";\n message.nproc = object.nproc ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseAdmissionTelemetry(): AdmissionTelemetry {\n return {\n lightRunning: \"0\",\n lightQueued: \"0\",\n heavyRunning: \"0\",\n heavyQueued: \"0\",\n liveOps: \"0\",\n opFramesDroppedTotal: \"0\",\n evictedUnackedTotal: \"0\",\n };\n}\n\nexport const AdmissionTelemetry: MessageFns<AdmissionTelemetry> = {\n encode(message: AdmissionTelemetry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.lightRunning !== \"0\") {\n writer.uint32(8).uint64(message.lightRunning);\n }\n if (message.lightQueued !== \"0\") {\n writer.uint32(16).uint64(message.lightQueued);\n }\n if (message.heavyRunning !== \"0\") {\n writer.uint32(24).uint64(message.heavyRunning);\n }\n if (message.heavyQueued !== \"0\") {\n writer.uint32(32).uint64(message.heavyQueued);\n }\n if (message.liveOps !== \"0\") {\n writer.uint32(40).uint64(message.liveOps);\n }\n if (message.opFramesDroppedTotal !== \"0\") {\n writer.uint32(48).uint64(message.opFramesDroppedTotal);\n }\n if (message.evictedUnackedTotal !== \"0\") {\n writer.uint32(56).uint64(message.evictedUnackedTotal);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): AdmissionTelemetry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAdmissionTelemetry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.lightRunning = reader.uint64().toString();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.lightQueued = reader.uint64().toString();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.heavyRunning = reader.uint64().toString();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.heavyQueued = reader.uint64().toString();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.liveOps = reader.uint64().toString();\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.opFramesDroppedTotal = reader.uint64().toString();\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.evictedUnackedTotal = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): AdmissionTelemetry {\n return {\n lightRunning: isSet(object.lightRunning)\n ? globalThis.String(object.lightRunning)\n : isSet(object.light_running)\n ? globalThis.String(object.light_running)\n : \"0\",\n lightQueued: isSet(object.lightQueued)\n ? globalThis.String(object.lightQueued)\n : isSet(object.light_queued)\n ? globalThis.String(object.light_queued)\n : \"0\",\n heavyRunning: isSet(object.heavyRunning)\n ? globalThis.String(object.heavyRunning)\n : isSet(object.heavy_running)\n ? globalThis.String(object.heavy_running)\n : \"0\",\n heavyQueued: isSet(object.heavyQueued)\n ? globalThis.String(object.heavyQueued)\n : isSet(object.heavy_queued)\n ? globalThis.String(object.heavy_queued)\n : \"0\",\n liveOps: isSet(object.liveOps)\n ? globalThis.String(object.liveOps)\n : isSet(object.live_ops)\n ? globalThis.String(object.live_ops)\n : \"0\",\n opFramesDroppedTotal: isSet(object.opFramesDroppedTotal)\n ? globalThis.String(object.opFramesDroppedTotal)\n : isSet(object.op_frames_dropped_total)\n ? globalThis.String(object.op_frames_dropped_total)\n : \"0\",\n evictedUnackedTotal: isSet(object.evictedUnackedTotal)\n ? globalThis.String(object.evictedUnackedTotal)\n : isSet(object.evicted_unacked_total)\n ? globalThis.String(object.evicted_unacked_total)\n : \"0\",\n };\n },\n\n toJSON(message: AdmissionTelemetry): unknown {\n const obj: any = {};\n if (message.lightRunning !== \"0\") {\n obj.lightRunning = message.lightRunning;\n }\n if (message.lightQueued !== \"0\") {\n obj.lightQueued = message.lightQueued;\n }\n if (message.heavyRunning !== \"0\") {\n obj.heavyRunning = message.heavyRunning;\n }\n if (message.heavyQueued !== \"0\") {\n obj.heavyQueued = message.heavyQueued;\n }\n if (message.liveOps !== \"0\") {\n obj.liveOps = message.liveOps;\n }\n if (message.opFramesDroppedTotal !== \"0\") {\n obj.opFramesDroppedTotal = message.opFramesDroppedTotal;\n }\n if (message.evictedUnackedTotal !== \"0\") {\n obj.evictedUnackedTotal = message.evictedUnackedTotal;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<AdmissionTelemetry>, I>>(base?: I): AdmissionTelemetry {\n return AdmissionTelemetry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<AdmissionTelemetry>, I>>(object: I): AdmissionTelemetry {\n const message = createBaseAdmissionTelemetry();\n message.lightRunning = object.lightRunning ?? \"0\";\n message.lightQueued = object.lightQueued ?? \"0\";\n message.heavyRunning = object.heavyRunning ?? \"0\";\n message.heavyQueued = object.heavyQueued ?? \"0\";\n message.liveOps = object.liveOps ?? \"0\";\n message.opFramesDroppedTotal = object.opFramesDroppedTotal ?? \"0\";\n message.evictedUnackedTotal = object.evictedUnackedTotal ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseHeartbeatAck(): HeartbeatAck {\n return { nextIntervalMs: 0, updateAvailable: false };\n}\n\nexport const HeartbeatAck: MessageFns<HeartbeatAck> = {\n encode(message: HeartbeatAck, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.nextIntervalMs !== 0) {\n writer.uint32(8).uint32(message.nextIntervalMs);\n }\n if (message.updateAvailable !== false) {\n writer.uint32(16).bool(message.updateAvailable);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): HeartbeatAck {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHeartbeatAck();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.nextIntervalMs = reader.uint32();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.updateAvailable = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): HeartbeatAck {\n return {\n nextIntervalMs: isSet(object.nextIntervalMs)\n ? globalThis.Number(object.nextIntervalMs)\n : isSet(object.next_interval_ms)\n ? globalThis.Number(object.next_interval_ms)\n : 0,\n updateAvailable: isSet(object.updateAvailable)\n ? globalThis.Boolean(object.updateAvailable)\n : isSet(object.update_available)\n ? globalThis.Boolean(object.update_available)\n : false,\n };\n },\n\n toJSON(message: HeartbeatAck): unknown {\n const obj: any = {};\n if (message.nextIntervalMs !== 0) {\n obj.nextIntervalMs = Math.round(message.nextIntervalMs);\n }\n if (message.updateAvailable !== false) {\n obj.updateAvailable = message.updateAvailable;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<HeartbeatAck>, I>>(base?: I): HeartbeatAck {\n return HeartbeatAck.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<HeartbeatAck>, I>>(object: I): HeartbeatAck {\n const message = createBaseHeartbeatAck();\n message.nextIntervalMs = object.nextIntervalMs ?? 0;\n message.updateAvailable = object.updateAvailable ?? false;\n return message;\n },\n};\n\nfunction createBaseMetricsRequest(): MetricsRequest {\n return {};\n}\n\nexport const MetricsRequest: MessageFns<MetricsRequest> = {\n encode(_: MetricsRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MetricsRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMetricsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MetricsRequest {\n return {};\n },\n\n toJSON(_: MetricsRequest): unknown {\n const obj: any = {};\n return obj;\n },\n\n create<I extends Exact<DeepPartial<MetricsRequest>, I>>(base?: I): MetricsRequest {\n return MetricsRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<MetricsRequest>, I>>(_: I): MetricsRequest {\n const message = createBaseMetricsRequest();\n return message;\n },\n};\n\nfunction createBaseMetricsSample(): MetricsSample {\n return {\n sampledAtMs: \"0\",\n cpuPercent: 0,\n load1: 0,\n load5: 0,\n load15: 0,\n memUsedBytes: \"0\",\n memTotalBytes: \"0\",\n diskUsedBytes: \"0\",\n diskTotalBytes: \"0\",\n runQueue: 0,\n gpus: [],\n };\n}\n\nexport const MetricsSample: MessageFns<MetricsSample> = {\n encode(message: MetricsSample, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.sampledAtMs !== \"0\") {\n writer.uint32(8).int64(message.sampledAtMs);\n }\n if (message.cpuPercent !== 0) {\n writer.uint32(17).double(message.cpuPercent);\n }\n if (message.load1 !== 0) {\n writer.uint32(25).double(message.load1);\n }\n if (message.load5 !== 0) {\n writer.uint32(33).double(message.load5);\n }\n if (message.load15 !== 0) {\n writer.uint32(41).double(message.load15);\n }\n if (message.memUsedBytes !== \"0\") {\n writer.uint32(48).uint64(message.memUsedBytes);\n }\n if (message.memTotalBytes !== \"0\") {\n writer.uint32(56).uint64(message.memTotalBytes);\n }\n if (message.diskUsedBytes !== \"0\") {\n writer.uint32(64).uint64(message.diskUsedBytes);\n }\n if (message.diskTotalBytes !== \"0\") {\n writer.uint32(72).uint64(message.diskTotalBytes);\n }\n if (message.runQueue !== 0) {\n writer.uint32(81).double(message.runQueue);\n }\n for (const v of message.gpus) {\n GpuSample.encode(v!, writer.uint32(90).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MetricsSample {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMetricsSample();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.sampledAtMs = reader.int64().toString();\n continue;\n }\n case 2: {\n if (tag !== 17) {\n break;\n }\n\n message.cpuPercent = reader.double();\n continue;\n }\n case 3: {\n if (tag !== 25) {\n break;\n }\n\n message.load1 = reader.double();\n continue;\n }\n case 4: {\n if (tag !== 33) {\n break;\n }\n\n message.load5 = reader.double();\n continue;\n }\n case 5: {\n if (tag !== 41) {\n break;\n }\n\n message.load15 = reader.double();\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.memUsedBytes = reader.uint64().toString();\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.memTotalBytes = reader.uint64().toString();\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.diskUsedBytes = reader.uint64().toString();\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.diskTotalBytes = reader.uint64().toString();\n continue;\n }\n case 10: {\n if (tag !== 81) {\n break;\n }\n\n message.runQueue = reader.double();\n continue;\n }\n case 11: {\n if (tag !== 90) {\n break;\n }\n\n message.gpus.push(GpuSample.decode(reader, reader.uint32()));\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MetricsSample {\n return {\n sampledAtMs: isSet(object.sampledAtMs)\n ? globalThis.String(object.sampledAtMs)\n : isSet(object.sampled_at_ms)\n ? globalThis.String(object.sampled_at_ms)\n : \"0\",\n cpuPercent: isSet(object.cpuPercent)\n ? globalThis.Number(object.cpuPercent)\n : isSet(object.cpu_percent)\n ? globalThis.Number(object.cpu_percent)\n : 0,\n load1: isSet(object.load1) ? globalThis.Number(object.load1) : 0,\n load5: isSet(object.load5) ? globalThis.Number(object.load5) : 0,\n load15: isSet(object.load15) ? globalThis.Number(object.load15) : 0,\n memUsedBytes: isSet(object.memUsedBytes)\n ? globalThis.String(object.memUsedBytes)\n : isSet(object.mem_used_bytes)\n ? globalThis.String(object.mem_used_bytes)\n : \"0\",\n memTotalBytes: isSet(object.memTotalBytes)\n ? globalThis.String(object.memTotalBytes)\n : isSet(object.mem_total_bytes)\n ? globalThis.String(object.mem_total_bytes)\n : \"0\",\n diskUsedBytes: isSet(object.diskUsedBytes)\n ? globalThis.String(object.diskUsedBytes)\n : isSet(object.disk_used_bytes)\n ? globalThis.String(object.disk_used_bytes)\n : \"0\",\n diskTotalBytes: isSet(object.diskTotalBytes)\n ? globalThis.String(object.diskTotalBytes)\n : isSet(object.disk_total_bytes)\n ? globalThis.String(object.disk_total_bytes)\n : \"0\",\n runQueue: isSet(object.runQueue)\n ? globalThis.Number(object.runQueue)\n : isSet(object.run_queue)\n ? globalThis.Number(object.run_queue)\n : 0,\n gpus: globalThis.Array.isArray(object?.gpus)\n ? object.gpus.map((e: any) => GpuSample.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: MetricsSample): unknown {\n const obj: any = {};\n if (message.sampledAtMs !== \"0\") {\n obj.sampledAtMs = message.sampledAtMs;\n }\n if (message.cpuPercent !== 0) {\n obj.cpuPercent = message.cpuPercent;\n }\n if (message.load1 !== 0) {\n obj.load1 = message.load1;\n }\n if (message.load5 !== 0) {\n obj.load5 = message.load5;\n }\n if (message.load15 !== 0) {\n obj.load15 = message.load15;\n }\n if (message.memUsedBytes !== \"0\") {\n obj.memUsedBytes = message.memUsedBytes;\n }\n if (message.memTotalBytes !== \"0\") {\n obj.memTotalBytes = message.memTotalBytes;\n }\n if (message.diskUsedBytes !== \"0\") {\n obj.diskUsedBytes = message.diskUsedBytes;\n }\n if (message.diskTotalBytes !== \"0\") {\n obj.diskTotalBytes = message.diskTotalBytes;\n }\n if (message.runQueue !== 0) {\n obj.runQueue = message.runQueue;\n }\n if (message.gpus?.length) {\n obj.gpus = message.gpus.map((e) => GpuSample.toJSON(e));\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<MetricsSample>, I>>(base?: I): MetricsSample {\n return MetricsSample.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<MetricsSample>, I>>(object: I): MetricsSample {\n const message = createBaseMetricsSample();\n message.sampledAtMs = object.sampledAtMs ?? \"0\";\n message.cpuPercent = object.cpuPercent ?? 0;\n message.load1 = object.load1 ?? 0;\n message.load5 = object.load5 ?? 0;\n message.load15 = object.load15 ?? 0;\n message.memUsedBytes = object.memUsedBytes ?? \"0\";\n message.memTotalBytes = object.memTotalBytes ?? \"0\";\n message.diskUsedBytes = object.diskUsedBytes ?? \"0\";\n message.diskTotalBytes = object.diskTotalBytes ?? \"0\";\n message.runQueue = object.runQueue ?? 0;\n message.gpus = object.gpus?.map((e) => GpuSample.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseGpuSample(): GpuSample {\n return { name: \"\", utilPercent: 0, memUsedBytes: \"0\", memTotalBytes: \"0\" };\n}\n\nexport const GpuSample: MessageFns<GpuSample> = {\n encode(message: GpuSample, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.name !== \"\") {\n writer.uint32(10).string(message.name);\n }\n if (message.utilPercent !== 0) {\n writer.uint32(17).double(message.utilPercent);\n }\n if (message.memUsedBytes !== \"0\") {\n writer.uint32(24).uint64(message.memUsedBytes);\n }\n if (message.memTotalBytes !== \"0\") {\n writer.uint32(32).uint64(message.memTotalBytes);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): GpuSample {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGpuSample();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.name = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 17) {\n break;\n }\n\n message.utilPercent = reader.double();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.memUsedBytes = reader.uint64().toString();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.memTotalBytes = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): GpuSample {\n return {\n name: isSet(object.name) ? globalThis.String(object.name) : \"\",\n utilPercent: isSet(object.utilPercent)\n ? globalThis.Number(object.utilPercent)\n : isSet(object.util_percent)\n ? globalThis.Number(object.util_percent)\n : 0,\n memUsedBytes: isSet(object.memUsedBytes)\n ? globalThis.String(object.memUsedBytes)\n : isSet(object.mem_used_bytes)\n ? globalThis.String(object.mem_used_bytes)\n : \"0\",\n memTotalBytes: isSet(object.memTotalBytes)\n ? globalThis.String(object.memTotalBytes)\n : isSet(object.mem_total_bytes)\n ? globalThis.String(object.mem_total_bytes)\n : \"0\",\n };\n },\n\n toJSON(message: GpuSample): unknown {\n const obj: any = {};\n if (message.name !== \"\") {\n obj.name = message.name;\n }\n if (message.utilPercent !== 0) {\n obj.utilPercent = message.utilPercent;\n }\n if (message.memUsedBytes !== \"0\") {\n obj.memUsedBytes = message.memUsedBytes;\n }\n if (message.memTotalBytes !== \"0\") {\n obj.memTotalBytes = message.memTotalBytes;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<GpuSample>, I>>(base?: I): GpuSample {\n return GpuSample.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<GpuSample>, I>>(object: I): GpuSample {\n const message = createBaseGpuSample();\n message.name = object.name ?? \"\";\n message.utilPercent = object.utilPercent ?? 0;\n message.memUsedBytes = object.memUsedBytes ?? \"0\";\n message.memTotalBytes = object.memTotalBytes ?? \"0\";\n return message;\n },\n};\n\nfunction createBasePingRequest(): PingRequest {\n return { nonce: \"0\" };\n}\n\nexport const PingRequest: MessageFns<PingRequest> = {\n encode(message: PingRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.nonce !== \"0\") {\n writer.uint32(8).uint64(message.nonce);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PingRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePingRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.nonce = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PingRequest {\n return { nonce: isSet(object.nonce) ? globalThis.String(object.nonce) : \"0\" };\n },\n\n toJSON(message: PingRequest): unknown {\n const obj: any = {};\n if (message.nonce !== \"0\") {\n obj.nonce = message.nonce;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PingRequest>, I>>(base?: I): PingRequest {\n return PingRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PingRequest>, I>>(object: I): PingRequest {\n const message = createBasePingRequest();\n message.nonce = object.nonce ?? \"0\";\n return message;\n },\n};\n\nfunction createBasePingResponse(): PingResponse {\n return { nonce: \"0\", agentMonotonicMs: \"0\" };\n}\n\nexport const PingResponse: MessageFns<PingResponse> = {\n encode(message: PingResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.nonce !== \"0\") {\n writer.uint32(8).uint64(message.nonce);\n }\n if (message.agentMonotonicMs !== \"0\") {\n writer.uint32(16).uint64(message.agentMonotonicMs);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PingResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePingResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.nonce = reader.uint64().toString();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.agentMonotonicMs = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PingResponse {\n return {\n nonce: isSet(object.nonce) ? globalThis.String(object.nonce) : \"0\",\n agentMonotonicMs: isSet(object.agentMonotonicMs)\n ? globalThis.String(object.agentMonotonicMs)\n : isSet(object.agent_monotonic_ms)\n ? globalThis.String(object.agent_monotonic_ms)\n : \"0\",\n };\n },\n\n toJSON(message: PingResponse): unknown {\n const obj: any = {};\n if (message.nonce !== \"0\") {\n obj.nonce = message.nonce;\n }\n if (message.agentMonotonicMs !== \"0\") {\n obj.agentMonotonicMs = message.agentMonotonicMs;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PingResponse>, I>>(base?: I): PingResponse {\n return PingResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PingResponse>, I>>(object: I): PingResponse {\n const message = createBasePingResponse();\n message.nonce = object.nonce ?? \"0\";\n message.agentMonotonicMs = object.agentMonotonicMs ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseGoingOffline(): GoingOffline {\n return { reason: 0, message: \"\" };\n}\n\nexport const GoingOffline: MessageFns<GoingOffline> = {\n encode(message: GoingOffline, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.reason !== 0) {\n writer.uint32(8).int32(message.reason);\n }\n if (message.message !== \"\") {\n writer.uint32(18).string(message.message);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): GoingOffline {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGoingOffline();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.reason = reader.int32() as any;\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.message = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): GoingOffline {\n return {\n reason: isSet(object.reason) ? goingOfflineReasonFromJSON(object.reason) : 0,\n message: isSet(object.message) ? globalThis.String(object.message) : \"\",\n };\n },\n\n toJSON(message: GoingOffline): unknown {\n const obj: any = {};\n if (message.reason !== 0) {\n obj.reason = goingOfflineReasonToJSON(message.reason);\n }\n if (message.message !== \"\") {\n obj.message = message.message;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<GoingOffline>, I>>(base?: I): GoingOffline {\n return GoingOffline.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<GoingOffline>, I>>(object: I): GoingOffline {\n const message = createBaseGoingOffline();\n message.reason = object.reason ?? 0;\n message.message = object.message ?? \"\";\n return message;\n },\n};\n\nfunction createBaseResumeRequest(): ResumeRequest {\n return { agentId: \"\", resumeToken: \"\", lastKnownEpoch: 0 };\n}\n\nexport const ResumeRequest: MessageFns<ResumeRequest> = {\n encode(message: ResumeRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.agentId !== \"\") {\n writer.uint32(10).string(message.agentId);\n }\n if (message.resumeToken !== \"\") {\n writer.uint32(18).string(message.resumeToken);\n }\n if (message.lastKnownEpoch !== 0) {\n writer.uint32(24).uint32(message.lastKnownEpoch);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): ResumeRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResumeRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.agentId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.resumeToken = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.lastKnownEpoch = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): ResumeRequest {\n return {\n agentId: isSet(object.agentId)\n ? globalThis.String(object.agentId)\n : isSet(object.agent_id)\n ? globalThis.String(object.agent_id)\n : \"\",\n resumeToken: isSet(object.resumeToken)\n ? globalThis.String(object.resumeToken)\n : isSet(object.resume_token)\n ? globalThis.String(object.resume_token)\n : \"\",\n lastKnownEpoch: isSet(object.lastKnownEpoch)\n ? globalThis.Number(object.lastKnownEpoch)\n : isSet(object.last_known_epoch)\n ? globalThis.Number(object.last_known_epoch)\n : 0,\n };\n },\n\n toJSON(message: ResumeRequest): unknown {\n const obj: any = {};\n if (message.agentId !== \"\") {\n obj.agentId = message.agentId;\n }\n if (message.resumeToken !== \"\") {\n obj.resumeToken = message.resumeToken;\n }\n if (message.lastKnownEpoch !== 0) {\n obj.lastKnownEpoch = Math.round(message.lastKnownEpoch);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<ResumeRequest>, I>>(base?: I): ResumeRequest {\n return ResumeRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<ResumeRequest>, I>>(object: I): ResumeRequest {\n const message = createBaseResumeRequest();\n message.agentId = object.agentId ?? \"\";\n message.resumeToken = object.resumeToken ?? \"\";\n message.lastKnownEpoch = object.lastKnownEpoch ?? 0;\n return message;\n },\n};\n\nfunction createBaseResumeResponse(): ResumeResponse {\n return { accepted: false, epoch: 0, resumeToken: \"\" };\n}\n\nexport const ResumeResponse: MessageFns<ResumeResponse> = {\n encode(message: ResumeResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.accepted !== false) {\n writer.uint32(8).bool(message.accepted);\n }\n if (message.epoch !== 0) {\n writer.uint32(16).uint32(message.epoch);\n }\n if (message.resumeToken !== \"\") {\n writer.uint32(26).string(message.resumeToken);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): ResumeResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResumeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.accepted = reader.bool();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.epoch = reader.uint32();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.resumeToken = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): ResumeResponse {\n return {\n accepted: isSet(object.accepted) ? globalThis.Boolean(object.accepted) : false,\n epoch: isSet(object.epoch) ? globalThis.Number(object.epoch) : 0,\n resumeToken: isSet(object.resumeToken)\n ? globalThis.String(object.resumeToken)\n : isSet(object.resume_token)\n ? globalThis.String(object.resume_token)\n : \"\",\n };\n },\n\n toJSON(message: ResumeResponse): unknown {\n const obj: any = {};\n if (message.accepted !== false) {\n obj.accepted = message.accepted;\n }\n if (message.epoch !== 0) {\n obj.epoch = Math.round(message.epoch);\n }\n if (message.resumeToken !== \"\") {\n obj.resumeToken = message.resumeToken;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<ResumeResponse>, I>>(base?: I): ResumeResponse {\n return ResumeResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<ResumeResponse>, I>>(object: I): ResumeResponse {\n const message = createBaseResumeResponse();\n message.accepted = object.accepted ?? false;\n message.epoch = object.epoch ?? 0;\n message.resumeToken = object.resumeToken ?? \"\";\n return message;\n },\n};\n\nfunction createBaseUpdateCheckRequest(): UpdateCheckRequest {\n return { currentVersion: \"\", channel: \"\", os: 0, arch: 0 };\n}\n\nexport const UpdateCheckRequest: MessageFns<UpdateCheckRequest> = {\n encode(message: UpdateCheckRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.currentVersion !== \"\") {\n writer.uint32(10).string(message.currentVersion);\n }\n if (message.channel !== \"\") {\n writer.uint32(18).string(message.channel);\n }\n if (message.os !== 0) {\n writer.uint32(24).int32(message.os);\n }\n if (message.arch !== 0) {\n writer.uint32(32).int32(message.arch);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): UpdateCheckRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseUpdateCheckRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.currentVersion = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.channel = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.os = reader.int32() as any;\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.arch = reader.int32() as any;\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): UpdateCheckRequest {\n return {\n currentVersion: isSet(object.currentVersion)\n ? globalThis.String(object.currentVersion)\n : isSet(object.current_version)\n ? globalThis.String(object.current_version)\n : \"\",\n channel: isSet(object.channel) ? globalThis.String(object.channel) : \"\",\n os: isSet(object.os) ? osFromJSON(object.os) : 0,\n arch: isSet(object.arch) ? archFromJSON(object.arch) : 0,\n };\n },\n\n toJSON(message: UpdateCheckRequest): unknown {\n const obj: any = {};\n if (message.currentVersion !== \"\") {\n obj.currentVersion = message.currentVersion;\n }\n if (message.channel !== \"\") {\n obj.channel = message.channel;\n }\n if (message.os !== 0) {\n obj.os = osToJSON(message.os);\n }\n if (message.arch !== 0) {\n obj.arch = archToJSON(message.arch);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<UpdateCheckRequest>, I>>(base?: I): UpdateCheckRequest {\n return UpdateCheckRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<UpdateCheckRequest>, I>>(object: I): UpdateCheckRequest {\n const message = createBaseUpdateCheckRequest();\n message.currentVersion = object.currentVersion ?? \"\";\n message.channel = object.channel ?? \"\";\n message.os = object.os ?? 0;\n message.arch = object.arch ?? 0;\n return message;\n },\n};\n\nfunction createBaseUpdateCheckResponse(): UpdateCheckResponse {\n return { updateAvailable: false, manifest: undefined };\n}\n\nexport const UpdateCheckResponse: MessageFns<UpdateCheckResponse> = {\n encode(message: UpdateCheckResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.updateAvailable !== false) {\n writer.uint32(8).bool(message.updateAvailable);\n }\n if (message.manifest !== undefined) {\n UpdateManifest.encode(message.manifest, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): UpdateCheckResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseUpdateCheckResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.updateAvailable = reader.bool();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.manifest = UpdateManifest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): UpdateCheckResponse {\n return {\n updateAvailable: isSet(object.updateAvailable)\n ? globalThis.Boolean(object.updateAvailable)\n : isSet(object.update_available)\n ? globalThis.Boolean(object.update_available)\n : false,\n manifest: isSet(object.manifest) ? UpdateManifest.fromJSON(object.manifest) : undefined,\n };\n },\n\n toJSON(message: UpdateCheckResponse): unknown {\n const obj: any = {};\n if (message.updateAvailable !== false) {\n obj.updateAvailable = message.updateAvailable;\n }\n if (message.manifest !== undefined) {\n obj.manifest = UpdateManifest.toJSON(message.manifest);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<UpdateCheckResponse>, I>>(base?: I): UpdateCheckResponse {\n return UpdateCheckResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<UpdateCheckResponse>, I>>(\n object: I,\n ): UpdateCheckResponse {\n const message = createBaseUpdateCheckResponse();\n message.updateAvailable = object.updateAvailable ?? false;\n message.manifest =\n object.manifest !== undefined && object.manifest !== null\n ? UpdateManifest.fromPartial(object.manifest)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseUpdateManifest(): UpdateManifest {\n return {\n channel: \"\",\n version: \"\",\n minSupported: \"\",\n rolloutPercent: 0,\n cohortSalt: \"\",\n artifacts: [],\n notesUrl: \"\",\n signedAtMs: \"0\",\n force: false,\n };\n}\n\nexport const UpdateManifest: MessageFns<UpdateManifest> = {\n encode(message: UpdateManifest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.channel !== \"\") {\n writer.uint32(10).string(message.channel);\n }\n if (message.version !== \"\") {\n writer.uint32(18).string(message.version);\n }\n if (message.minSupported !== \"\") {\n writer.uint32(26).string(message.minSupported);\n }\n if (message.rolloutPercent !== 0) {\n writer.uint32(32).uint32(message.rolloutPercent);\n }\n if (message.cohortSalt !== \"\") {\n writer.uint32(42).string(message.cohortSalt);\n }\n for (const v of message.artifacts) {\n UpdateArtifact.encode(v!, writer.uint32(50).fork()).join();\n }\n if (message.notesUrl !== \"\") {\n writer.uint32(58).string(message.notesUrl);\n }\n if (message.signedAtMs !== \"0\") {\n writer.uint32(64).int64(message.signedAtMs);\n }\n if (message.force !== false) {\n writer.uint32(72).bool(message.force);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): UpdateManifest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseUpdateManifest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.channel = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.version = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.minSupported = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.rolloutPercent = reader.uint32();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.cohortSalt = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.artifacts.push(UpdateArtifact.decode(reader, reader.uint32()));\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.notesUrl = reader.string();\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.signedAtMs = reader.int64().toString();\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.force = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): UpdateManifest {\n return {\n channel: isSet(object.channel) ? globalThis.String(object.channel) : \"\",\n version: isSet(object.version) ? globalThis.String(object.version) : \"\",\n minSupported: isSet(object.minSupported)\n ? globalThis.String(object.minSupported)\n : isSet(object.min_supported)\n ? globalThis.String(object.min_supported)\n : \"\",\n rolloutPercent: isSet(object.rolloutPercent)\n ? globalThis.Number(object.rolloutPercent)\n : isSet(object.rollout_percent)\n ? globalThis.Number(object.rollout_percent)\n : 0,\n cohortSalt: isSet(object.cohortSalt)\n ? globalThis.String(object.cohortSalt)\n : isSet(object.cohort_salt)\n ? globalThis.String(object.cohort_salt)\n : \"\",\n artifacts: globalThis.Array.isArray(object?.artifacts)\n ? object.artifacts.map((e: any) => UpdateArtifact.fromJSON(e))\n : [],\n notesUrl: isSet(object.notesUrl)\n ? globalThis.String(object.notesUrl)\n : isSet(object.notes_url)\n ? globalThis.String(object.notes_url)\n : \"\",\n signedAtMs: isSet(object.signedAtMs)\n ? globalThis.String(object.signedAtMs)\n : isSet(object.signed_at_ms)\n ? globalThis.String(object.signed_at_ms)\n : \"0\",\n force: isSet(object.force) ? globalThis.Boolean(object.force) : false,\n };\n },\n\n toJSON(message: UpdateManifest): unknown {\n const obj: any = {};\n if (message.channel !== \"\") {\n obj.channel = message.channel;\n }\n if (message.version !== \"\") {\n obj.version = message.version;\n }\n if (message.minSupported !== \"\") {\n obj.minSupported = message.minSupported;\n }\n if (message.rolloutPercent !== 0) {\n obj.rolloutPercent = Math.round(message.rolloutPercent);\n }\n if (message.cohortSalt !== \"\") {\n obj.cohortSalt = message.cohortSalt;\n }\n if (message.artifacts?.length) {\n obj.artifacts = message.artifacts.map((e) => UpdateArtifact.toJSON(e));\n }\n if (message.notesUrl !== \"\") {\n obj.notesUrl = message.notesUrl;\n }\n if (message.signedAtMs !== \"0\") {\n obj.signedAtMs = message.signedAtMs;\n }\n if (message.force !== false) {\n obj.force = message.force;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<UpdateManifest>, I>>(base?: I): UpdateManifest {\n return UpdateManifest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<UpdateManifest>, I>>(object: I): UpdateManifest {\n const message = createBaseUpdateManifest();\n message.channel = object.channel ?? \"\";\n message.version = object.version ?? \"\";\n message.minSupported = object.minSupported ?? \"\";\n message.rolloutPercent = object.rolloutPercent ?? 0;\n message.cohortSalt = object.cohortSalt ?? \"\";\n message.artifacts = object.artifacts?.map((e) => UpdateArtifact.fromPartial(e)) || [];\n message.notesUrl = object.notesUrl ?? \"\";\n message.signedAtMs = object.signedAtMs ?? \"0\";\n message.force = object.force ?? false;\n return message;\n },\n};\n\nfunction createBaseUpdateArtifact(): UpdateArtifact {\n return { target: \"\", url: \"\", size: \"0\", sha256: \"\", minisigUrl: \"\" };\n}\n\nexport const UpdateArtifact: MessageFns<UpdateArtifact> = {\n encode(message: UpdateArtifact, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.target !== \"\") {\n writer.uint32(10).string(message.target);\n }\n if (message.url !== \"\") {\n writer.uint32(18).string(message.url);\n }\n if (message.size !== \"0\") {\n writer.uint32(24).uint64(message.size);\n }\n if (message.sha256 !== \"\") {\n writer.uint32(34).string(message.sha256);\n }\n if (message.minisigUrl !== \"\") {\n writer.uint32(42).string(message.minisigUrl);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): UpdateArtifact {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseUpdateArtifact();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.target = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.url = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.size = reader.uint64().toString();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.sha256 = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.minisigUrl = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): UpdateArtifact {\n return {\n target: isSet(object.target) ? globalThis.String(object.target) : \"\",\n url: isSet(object.url) ? globalThis.String(object.url) : \"\",\n size: isSet(object.size) ? globalThis.String(object.size) : \"0\",\n sha256: isSet(object.sha256) ? globalThis.String(object.sha256) : \"\",\n minisigUrl: isSet(object.minisigUrl)\n ? globalThis.String(object.minisigUrl)\n : isSet(object.minisig_url)\n ? globalThis.String(object.minisig_url)\n : \"\",\n };\n },\n\n toJSON(message: UpdateArtifact): unknown {\n const obj: any = {};\n if (message.target !== \"\") {\n obj.target = message.target;\n }\n if (message.url !== \"\") {\n obj.url = message.url;\n }\n if (message.size !== \"0\") {\n obj.size = message.size;\n }\n if (message.sha256 !== \"\") {\n obj.sha256 = message.sha256;\n }\n if (message.minisigUrl !== \"\") {\n obj.minisigUrl = message.minisigUrl;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<UpdateArtifact>, I>>(base?: I): UpdateArtifact {\n return UpdateArtifact.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<UpdateArtifact>, I>>(object: I): UpdateArtifact {\n const message = createBaseUpdateArtifact();\n message.target = object.target ?? \"\";\n message.url = object.url ?? \"\";\n message.size = object.size ?? \"0\";\n message.sha256 = object.sha256 ?? \"\";\n message.minisigUrl = object.minisigUrl ?? \"\";\n return message;\n },\n};\n\nfunction createBaseUpdateMayProceedRequest(): UpdateMayProceedRequest {\n return { agentId: \"\", targetVersion: \"\" };\n}\n\nexport const UpdateMayProceedRequest: MessageFns<UpdateMayProceedRequest> = {\n encode(\n message: UpdateMayProceedRequest,\n writer: BinaryWriter = new BinaryWriter(),\n ): BinaryWriter {\n if (message.agentId !== \"\") {\n writer.uint32(10).string(message.agentId);\n }\n if (message.targetVersion !== \"\") {\n writer.uint32(18).string(message.targetVersion);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): UpdateMayProceedRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseUpdateMayProceedRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.agentId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.targetVersion = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): UpdateMayProceedRequest {\n return {\n agentId: isSet(object.agentId)\n ? globalThis.String(object.agentId)\n : isSet(object.agent_id)\n ? globalThis.String(object.agent_id)\n : \"\",\n targetVersion: isSet(object.targetVersion)\n ? globalThis.String(object.targetVersion)\n : isSet(object.target_version)\n ? globalThis.String(object.target_version)\n : \"\",\n };\n },\n\n toJSON(message: UpdateMayProceedRequest): unknown {\n const obj: any = {};\n if (message.agentId !== \"\") {\n obj.agentId = message.agentId;\n }\n if (message.targetVersion !== \"\") {\n obj.targetVersion = message.targetVersion;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<UpdateMayProceedRequest>, I>>(\n base?: I,\n ): UpdateMayProceedRequest {\n return UpdateMayProceedRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<UpdateMayProceedRequest>, I>>(\n object: I,\n ): UpdateMayProceedRequest {\n const message = createBaseUpdateMayProceedRequest();\n message.agentId = object.agentId ?? \"\";\n message.targetVersion = object.targetVersion ?? \"\";\n return message;\n },\n};\n\nfunction createBaseUpdateMayProceedResponse(): UpdateMayProceedResponse {\n return { mayProceed: false, activeSessions: 0 };\n}\n\nexport const UpdateMayProceedResponse: MessageFns<UpdateMayProceedResponse> = {\n encode(\n message: UpdateMayProceedResponse,\n writer: BinaryWriter = new BinaryWriter(),\n ): BinaryWriter {\n if (message.mayProceed !== false) {\n writer.uint32(8).bool(message.mayProceed);\n }\n if (message.activeSessions !== 0) {\n writer.uint32(16).uint32(message.activeSessions);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): UpdateMayProceedResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseUpdateMayProceedResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.mayProceed = reader.bool();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.activeSessions = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): UpdateMayProceedResponse {\n return {\n mayProceed: isSet(object.mayProceed)\n ? globalThis.Boolean(object.mayProceed)\n : isSet(object.may_proceed)\n ? globalThis.Boolean(object.may_proceed)\n : false,\n activeSessions: isSet(object.activeSessions)\n ? globalThis.Number(object.activeSessions)\n : isSet(object.active_sessions)\n ? globalThis.Number(object.active_sessions)\n : 0,\n };\n },\n\n toJSON(message: UpdateMayProceedResponse): unknown {\n const obj: any = {};\n if (message.mayProceed !== false) {\n obj.mayProceed = message.mayProceed;\n }\n if (message.activeSessions !== 0) {\n obj.activeSessions = Math.round(message.activeSessions);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<UpdateMayProceedResponse>, I>>(\n base?: I,\n ): UpdateMayProceedResponse {\n return UpdateMayProceedResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<UpdateMayProceedResponse>, I>>(\n object: I,\n ): UpdateMayProceedResponse {\n const message = createBaseUpdateMayProceedResponse();\n message.mayProceed = object.mayProceed ?? false;\n message.activeSessions = object.activeSessions ?? 0;\n return message;\n },\n};\n\nfunction createBaseOpExit(): OpExit {\n return {\n exitCode: 0,\n timedOut: false,\n cancelled: false,\n durationMs: \"0\",\n digests: {},\n totals: {},\n failureCode: \"\",\n failureDetail: {},\n };\n}\n\nexport const OpExit: MessageFns<OpExit> = {\n encode(message: OpExit, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.exitCode !== 0) {\n writer.uint32(8).int32(message.exitCode);\n }\n if (message.timedOut !== false) {\n writer.uint32(16).bool(message.timedOut);\n }\n if (message.cancelled !== false) {\n writer.uint32(24).bool(message.cancelled);\n }\n if (message.durationMs !== \"0\") {\n writer.uint32(32).uint64(message.durationMs);\n }\n globalThis.Object.entries(message.digests).forEach(([key, value]: [string, string]) => {\n OpExit_DigestsEntry.encode({ key: key as any, value }, writer.uint32(42).fork()).join();\n });\n globalThis.Object.entries(message.totals).forEach(([key, value]: [string, string]) => {\n OpExit_TotalsEntry.encode({ key: key as any, value }, writer.uint32(50).fork()).join();\n });\n if (message.failureCode !== \"\") {\n writer.uint32(58).string(message.failureCode);\n }\n globalThis.Object.entries(message.failureDetail).forEach(([key, value]: [string, string]) => {\n OpExit_FailureDetailEntry.encode({ key: key as any, value }, writer.uint32(66).fork()).join();\n });\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpExit {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpExit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.exitCode = reader.int32();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.timedOut = reader.bool();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.cancelled = reader.bool();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.durationMs = reader.uint64().toString();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n const entry5 = OpExit_DigestsEntry.decode(reader, reader.uint32());\n if (entry5.value !== undefined) {\n message.digests[entry5.key] = entry5.value;\n }\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n const entry6 = OpExit_TotalsEntry.decode(reader, reader.uint32());\n if (entry6.value !== undefined) {\n message.totals[entry6.key] = entry6.value;\n }\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.failureCode = reader.string();\n continue;\n }\n case 8: {\n if (tag !== 66) {\n break;\n }\n\n const entry8 = OpExit_FailureDetailEntry.decode(reader, reader.uint32());\n if (entry8.value !== undefined) {\n message.failureDetail[entry8.key] = entry8.value;\n }\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpExit {\n return {\n exitCode: isSet(object.exitCode)\n ? globalThis.Number(object.exitCode)\n : isSet(object.exit_code)\n ? globalThis.Number(object.exit_code)\n : 0,\n timedOut: isSet(object.timedOut)\n ? globalThis.Boolean(object.timedOut)\n : isSet(object.timed_out)\n ? globalThis.Boolean(object.timed_out)\n : false,\n cancelled: isSet(object.cancelled) ? globalThis.Boolean(object.cancelled) : false,\n durationMs: isSet(object.durationMs)\n ? globalThis.String(object.durationMs)\n : isSet(object.duration_ms)\n ? globalThis.String(object.duration_ms)\n : \"0\",\n digests: isObject(object.digests)\n ? (globalThis.Object.entries(object.digests) as [string, any][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, any]) => {\n acc[key] = globalThis.String(value);\n return acc;\n },\n {},\n )\n : {},\n totals: isObject(object.totals)\n ? (globalThis.Object.entries(object.totals) as [string, any][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, any]) => {\n acc[key] = globalThis.String(value);\n return acc;\n },\n {},\n )\n : {},\n failureCode: isSet(object.failureCode)\n ? globalThis.String(object.failureCode)\n : isSet(object.failure_code)\n ? globalThis.String(object.failure_code)\n : \"\",\n failureDetail: isObject(object.failureDetail)\n ? (globalThis.Object.entries(object.failureDetail) as [string, any][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, any]) => {\n acc[key] = globalThis.String(value);\n return acc;\n },\n {},\n )\n : isObject(object.failure_detail)\n ? (globalThis.Object.entries(object.failure_detail) as [string, any][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, any]) => {\n acc[key] = globalThis.String(value);\n return acc;\n },\n {},\n )\n : {},\n };\n },\n\n toJSON(message: OpExit): unknown {\n const obj: any = {};\n if (message.exitCode !== 0) {\n obj.exitCode = Math.round(message.exitCode);\n }\n if (message.timedOut !== false) {\n obj.timedOut = message.timedOut;\n }\n if (message.cancelled !== false) {\n obj.cancelled = message.cancelled;\n }\n if (message.durationMs !== \"0\") {\n obj.durationMs = message.durationMs;\n }\n if (message.digests) {\n const entries = globalThis.Object.entries(message.digests) as [string, string][];\n if (entries.length > 0) {\n obj.digests = {};\n entries.forEach(([k, v]) => {\n obj.digests[k] = v;\n });\n }\n }\n if (message.totals) {\n const entries = globalThis.Object.entries(message.totals) as [string, string][];\n if (entries.length > 0) {\n obj.totals = {};\n entries.forEach(([k, v]) => {\n obj.totals[k] = v;\n });\n }\n }\n if (message.failureCode !== \"\") {\n obj.failureCode = message.failureCode;\n }\n if (message.failureDetail) {\n const entries = globalThis.Object.entries(message.failureDetail) as [string, string][];\n if (entries.length > 0) {\n obj.failureDetail = {};\n entries.forEach(([k, v]) => {\n obj.failureDetail[k] = v;\n });\n }\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpExit>, I>>(base?: I): OpExit {\n return OpExit.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpExit>, I>>(object: I): OpExit {\n const message = createBaseOpExit();\n message.exitCode = object.exitCode ?? 0;\n message.timedOut = object.timedOut ?? false;\n message.cancelled = object.cancelled ?? false;\n message.durationMs = object.durationMs ?? \"0\";\n message.digests = (\n globalThis.Object.entries(object.digests ?? {}) as [string, string][]\n ).reduce((acc: { [key: string]: string }, [key, value]: [string, string]) => {\n if (value !== undefined) {\n acc[key] = globalThis.String(value);\n }\n return acc;\n }, {});\n message.totals = (globalThis.Object.entries(object.totals ?? {}) as [string, string][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, string]) => {\n if (value !== undefined) {\n acc[key] = globalThis.String(value);\n }\n return acc;\n },\n {},\n );\n message.failureCode = object.failureCode ?? \"\";\n message.failureDetail = (\n globalThis.Object.entries(object.failureDetail ?? {}) as [string, string][]\n ).reduce((acc: { [key: string]: string }, [key, value]: [string, string]) => {\n if (value !== undefined) {\n acc[key] = globalThis.String(value);\n }\n return acc;\n }, {});\n return message;\n },\n};\n\nfunction createBaseOpExit_DigestsEntry(): OpExit_DigestsEntry {\n return { key: \"\", value: \"\" };\n}\n\nexport const OpExit_DigestsEntry: MessageFns<OpExit_DigestsEntry> = {\n encode(message: OpExit_DigestsEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpExit_DigestsEntry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpExit_DigestsEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.value = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpExit_DigestsEntry {\n return {\n key: isSet(object.key) ? globalThis.String(object.key) : \"\",\n value: isSet(object.value) ? globalThis.String(object.value) : \"\",\n };\n },\n\n toJSON(message: OpExit_DigestsEntry): unknown {\n const obj: any = {};\n if (message.key !== \"\") {\n obj.key = message.key;\n }\n if (message.value !== \"\") {\n obj.value = message.value;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpExit_DigestsEntry>, I>>(base?: I): OpExit_DigestsEntry {\n return OpExit_DigestsEntry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpExit_DigestsEntry>, I>>(\n object: I,\n ): OpExit_DigestsEntry {\n const message = createBaseOpExit_DigestsEntry();\n message.key = object.key ?? \"\";\n message.value = object.value ?? \"\";\n return message;\n },\n};\n\nfunction createBaseOpExit_TotalsEntry(): OpExit_TotalsEntry {\n return { key: \"\", value: \"0\" };\n}\n\nexport const OpExit_TotalsEntry: MessageFns<OpExit_TotalsEntry> = {\n encode(message: OpExit_TotalsEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"0\") {\n writer.uint32(16).uint64(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpExit_TotalsEntry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpExit_TotalsEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.value = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpExit_TotalsEntry {\n return {\n key: isSet(object.key) ? globalThis.String(object.key) : \"\",\n value: isSet(object.value) ? globalThis.String(object.value) : \"0\",\n };\n },\n\n toJSON(message: OpExit_TotalsEntry): unknown {\n const obj: any = {};\n if (message.key !== \"\") {\n obj.key = message.key;\n }\n if (message.value !== \"0\") {\n obj.value = message.value;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpExit_TotalsEntry>, I>>(base?: I): OpExit_TotalsEntry {\n return OpExit_TotalsEntry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpExit_TotalsEntry>, I>>(object: I): OpExit_TotalsEntry {\n const message = createBaseOpExit_TotalsEntry();\n message.key = object.key ?? \"\";\n message.value = object.value ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseOpExit_FailureDetailEntry(): OpExit_FailureDetailEntry {\n return { key: \"\", value: \"\" };\n}\n\nexport const OpExit_FailureDetailEntry: MessageFns<OpExit_FailureDetailEntry> = {\n encode(\n message: OpExit_FailureDetailEntry,\n writer: BinaryWriter = new BinaryWriter(),\n ): BinaryWriter {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpExit_FailureDetailEntry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpExit_FailureDetailEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.value = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpExit_FailureDetailEntry {\n return {\n key: isSet(object.key) ? globalThis.String(object.key) : \"\",\n value: isSet(object.value) ? globalThis.String(object.value) : \"\",\n };\n },\n\n toJSON(message: OpExit_FailureDetailEntry): unknown {\n const obj: any = {};\n if (message.key !== \"\") {\n obj.key = message.key;\n }\n if (message.value !== \"\") {\n obj.value = message.value;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpExit_FailureDetailEntry>, I>>(\n base?: I,\n ): OpExit_FailureDetailEntry {\n return OpExit_FailureDetailEntry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpExit_FailureDetailEntry>, I>>(\n object: I,\n ): OpExit_FailureDetailEntry {\n const message = createBaseOpExit_FailureDetailEntry();\n message.key = object.key ?? \"\";\n message.value = object.value ?? \"\";\n return message;\n },\n};\n\nfunction createBaseFsWriteBegin(): FsWriteBegin {\n return { path: \"\", createParents: false, mode: 0, expectedBaseDigest: \"\" };\n}\n\nexport const FsWriteBegin: MessageFns<FsWriteBegin> = {\n encode(message: FsWriteBegin, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.path !== \"\") {\n writer.uint32(10).string(message.path);\n }\n if (message.createParents !== false) {\n writer.uint32(16).bool(message.createParents);\n }\n if (message.mode !== 0) {\n writer.uint32(24).uint32(message.mode);\n }\n if (message.expectedBaseDigest !== \"\") {\n writer.uint32(34).string(message.expectedBaseDigest);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsWriteBegin {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsWriteBegin();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.path = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.createParents = reader.bool();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.mode = reader.uint32();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.expectedBaseDigest = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsWriteBegin {\n return {\n path: isSet(object.path) ? globalThis.String(object.path) : \"\",\n createParents: isSet(object.createParents)\n ? globalThis.Boolean(object.createParents)\n : isSet(object.create_parents)\n ? globalThis.Boolean(object.create_parents)\n : false,\n mode: isSet(object.mode) ? globalThis.Number(object.mode) : 0,\n expectedBaseDigest: isSet(object.expectedBaseDigest)\n ? globalThis.String(object.expectedBaseDigest)\n : isSet(object.expected_base_digest)\n ? globalThis.String(object.expected_base_digest)\n : \"\",\n };\n },\n\n toJSON(message: FsWriteBegin): unknown {\n const obj: any = {};\n if (message.path !== \"\") {\n obj.path = message.path;\n }\n if (message.createParents !== false) {\n obj.createParents = message.createParents;\n }\n if (message.mode !== 0) {\n obj.mode = Math.round(message.mode);\n }\n if (message.expectedBaseDigest !== \"\") {\n obj.expectedBaseDigest = message.expectedBaseDigest;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsWriteBegin>, I>>(base?: I): FsWriteBegin {\n return FsWriteBegin.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsWriteBegin>, I>>(object: I): FsWriteBegin {\n const message = createBaseFsWriteBegin();\n message.path = object.path ?? \"\";\n message.createParents = object.createParents ?? false;\n message.mode = object.mode ?? 0;\n message.expectedBaseDigest = object.expectedBaseDigest ?? \"\";\n return message;\n },\n};\n\nfunction createBaseOpStart(): OpStart {\n return { op: undefined, windowBytes: \"0\", deadlineMs: \"0\", originId: \"\" };\n}\n\nexport const OpStart: MessageFns<OpStart> = {\n encode(message: OpStart, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n switch (message.op?.$case) {\n case \"exec\":\n ExecRequest.encode(message.op.exec, writer.uint32(10).fork()).join();\n break;\n case \"fsRead\":\n FsReadRequest.encode(message.op.fsRead, writer.uint32(18).fork()).join();\n break;\n case \"fsWrite\":\n FsWriteBegin.encode(message.op.fsWrite, writer.uint32(26).fork()).join();\n break;\n }\n if (message.windowBytes !== \"0\") {\n writer.uint32(80).uint64(message.windowBytes);\n }\n if (message.deadlineMs !== \"0\") {\n writer.uint32(88).int64(message.deadlineMs);\n }\n if (message.originId !== \"\") {\n writer.uint32(98).string(message.originId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpStart {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpStart();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.op = { $case: \"exec\", exec: ExecRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.op = { $case: \"fsRead\", fsRead: FsReadRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.op = { $case: \"fsWrite\", fsWrite: FsWriteBegin.decode(reader, reader.uint32()) };\n continue;\n }\n case 10: {\n if (tag !== 80) {\n break;\n }\n\n message.windowBytes = reader.uint64().toString();\n continue;\n }\n case 11: {\n if (tag !== 88) {\n break;\n }\n\n message.deadlineMs = reader.int64().toString();\n continue;\n }\n case 12: {\n if (tag !== 98) {\n break;\n }\n\n message.originId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpStart {\n return {\n op: isSet(object.exec)\n ? { $case: \"exec\", exec: ExecRequest.fromJSON(object.exec) }\n : isSet(object.fsRead)\n ? { $case: \"fsRead\", fsRead: FsReadRequest.fromJSON(object.fsRead) }\n : isSet(object.fs_read)\n ? { $case: \"fsRead\", fsRead: FsReadRequest.fromJSON(object.fs_read) }\n : isSet(object.fsWrite)\n ? { $case: \"fsWrite\", fsWrite: FsWriteBegin.fromJSON(object.fsWrite) }\n : isSet(object.fs_write)\n ? { $case: \"fsWrite\", fsWrite: FsWriteBegin.fromJSON(object.fs_write) }\n : undefined,\n windowBytes: isSet(object.windowBytes)\n ? globalThis.String(object.windowBytes)\n : isSet(object.window_bytes)\n ? globalThis.String(object.window_bytes)\n : \"0\",\n deadlineMs: isSet(object.deadlineMs)\n ? globalThis.String(object.deadlineMs)\n : isSet(object.deadline_ms)\n ? globalThis.String(object.deadline_ms)\n : \"0\",\n originId: isSet(object.originId)\n ? globalThis.String(object.originId)\n : isSet(object.origin_id)\n ? globalThis.String(object.origin_id)\n : \"\",\n };\n },\n\n toJSON(message: OpStart): unknown {\n const obj: any = {};\n if (message.op?.$case === \"exec\") {\n obj.exec = ExecRequest.toJSON(message.op.exec);\n } else if (message.op?.$case === \"fsRead\") {\n obj.fsRead = FsReadRequest.toJSON(message.op.fsRead);\n } else if (message.op?.$case === \"fsWrite\") {\n obj.fsWrite = FsWriteBegin.toJSON(message.op.fsWrite);\n }\n if (message.windowBytes !== \"0\") {\n obj.windowBytes = message.windowBytes;\n }\n if (message.deadlineMs !== \"0\") {\n obj.deadlineMs = message.deadlineMs;\n }\n if (message.originId !== \"\") {\n obj.originId = message.originId;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpStart>, I>>(base?: I): OpStart {\n return OpStart.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpStart>, I>>(object: I): OpStart {\n const message = createBaseOpStart();\n switch (object.op?.$case) {\n case \"exec\": {\n if (object.op?.exec !== undefined && object.op?.exec !== null) {\n message.op = { $case: \"exec\", exec: ExecRequest.fromPartial(object.op.exec) };\n }\n break;\n }\n case \"fsRead\": {\n if (object.op?.fsRead !== undefined && object.op?.fsRead !== null) {\n message.op = { $case: \"fsRead\", fsRead: FsReadRequest.fromPartial(object.op.fsRead) };\n }\n break;\n }\n case \"fsWrite\": {\n if (object.op?.fsWrite !== undefined && object.op?.fsWrite !== null) {\n message.op = { $case: \"fsWrite\", fsWrite: FsWriteBegin.fromPartial(object.op.fsWrite) };\n }\n break;\n }\n }\n message.windowBytes = object.windowBytes ?? \"0\";\n message.deadlineMs = object.deadlineMs ?? \"0\";\n message.originId = object.originId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseOpStarted(): OpStarted {\n return { accepted: false, status: undefined };\n}\n\nexport const OpStarted: MessageFns<OpStarted> = {\n encode(message: OpStarted, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.accepted !== false) {\n writer.uint32(8).bool(message.accepted);\n }\n if (message.status !== undefined) {\n OpStatus.encode(message.status, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpStarted {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpStarted();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.accepted = reader.bool();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.status = OpStatus.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpStarted {\n return {\n accepted: isSet(object.accepted) ? globalThis.Boolean(object.accepted) : false,\n status: isSet(object.status) ? OpStatus.fromJSON(object.status) : undefined,\n };\n },\n\n toJSON(message: OpStarted): unknown {\n const obj: any = {};\n if (message.accepted !== false) {\n obj.accepted = message.accepted;\n }\n if (message.status !== undefined) {\n obj.status = OpStatus.toJSON(message.status);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpStarted>, I>>(base?: I): OpStarted {\n return OpStarted.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpStarted>, I>>(object: I): OpStarted {\n const message = createBaseOpStarted();\n message.accepted = object.accepted ?? false;\n message.status =\n object.status !== undefined && object.status !== null\n ? OpStatus.fromPartial(object.status)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseOpCancel(): OpCancel {\n return { opId: \"\" };\n}\n\nexport const OpCancel: MessageFns<OpCancel> = {\n encode(message: OpCancel, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.opId !== \"\") {\n writer.uint32(10).string(message.opId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpCancel {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpCancel();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.opId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpCancel {\n return {\n opId: isSet(object.opId)\n ? globalThis.String(object.opId)\n : isSet(object.op_id)\n ? globalThis.String(object.op_id)\n : \"\",\n };\n },\n\n toJSON(message: OpCancel): unknown {\n const obj: any = {};\n if (message.opId !== \"\") {\n obj.opId = message.opId;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpCancel>, I>>(base?: I): OpCancel {\n return OpCancel.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpCancel>, I>>(object: I): OpCancel {\n const message = createBaseOpCancel();\n message.opId = object.opId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseOpQuery(): OpQuery {\n return { opId: \"\" };\n}\n\nexport const OpQuery: MessageFns<OpQuery> = {\n encode(message: OpQuery, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.opId !== \"\") {\n writer.uint32(10).string(message.opId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpQuery {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpQuery();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.opId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpQuery {\n return {\n opId: isSet(object.opId)\n ? globalThis.String(object.opId)\n : isSet(object.op_id)\n ? globalThis.String(object.op_id)\n : \"\",\n };\n },\n\n toJSON(message: OpQuery): unknown {\n const obj: any = {};\n if (message.opId !== \"\") {\n obj.opId = message.opId;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpQuery>, I>>(base?: I): OpQuery {\n return OpQuery.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpQuery>, I>>(object: I): OpQuery {\n const message = createBaseOpQuery();\n message.opId = object.opId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseOpAttach(): OpAttach {\n return { opId: \"\", fromSeq: \"0\", attachGeneration: \"0\", windowBytes: \"0\" };\n}\n\nexport const OpAttach: MessageFns<OpAttach> = {\n encode(message: OpAttach, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.opId !== \"\") {\n writer.uint32(10).string(message.opId);\n }\n if (message.fromSeq !== \"0\") {\n writer.uint32(16).uint64(message.fromSeq);\n }\n if (message.attachGeneration !== \"0\") {\n writer.uint32(24).uint64(message.attachGeneration);\n }\n if (message.windowBytes !== \"0\") {\n writer.uint32(32).uint64(message.windowBytes);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpAttach {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpAttach();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.opId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.fromSeq = reader.uint64().toString();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.attachGeneration = reader.uint64().toString();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.windowBytes = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpAttach {\n return {\n opId: isSet(object.opId)\n ? globalThis.String(object.opId)\n : isSet(object.op_id)\n ? globalThis.String(object.op_id)\n : \"\",\n fromSeq: isSet(object.fromSeq)\n ? globalThis.String(object.fromSeq)\n : isSet(object.from_seq)\n ? globalThis.String(object.from_seq)\n : \"0\",\n attachGeneration: isSet(object.attachGeneration)\n ? globalThis.String(object.attachGeneration)\n : isSet(object.attach_generation)\n ? globalThis.String(object.attach_generation)\n : \"0\",\n windowBytes: isSet(object.windowBytes)\n ? globalThis.String(object.windowBytes)\n : isSet(object.window_bytes)\n ? globalThis.String(object.window_bytes)\n : \"0\",\n };\n },\n\n toJSON(message: OpAttach): unknown {\n const obj: any = {};\n if (message.opId !== \"\") {\n obj.opId = message.opId;\n }\n if (message.fromSeq !== \"0\") {\n obj.fromSeq = message.fromSeq;\n }\n if (message.attachGeneration !== \"0\") {\n obj.attachGeneration = message.attachGeneration;\n }\n if (message.windowBytes !== \"0\") {\n obj.windowBytes = message.windowBytes;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpAttach>, I>>(base?: I): OpAttach {\n return OpAttach.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpAttach>, I>>(object: I): OpAttach {\n const message = createBaseOpAttach();\n message.opId = object.opId ?? \"\";\n message.fromSeq = object.fromSeq ?? \"0\";\n message.attachGeneration = object.attachGeneration ?? \"0\";\n message.windowBytes = object.windowBytes ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseOpStatus(): OpStatus {\n return { opId: \"\", state: 0, nextSeq: \"0\", exit: undefined, lostReason: 0 };\n}\n\nexport const OpStatus: MessageFns<OpStatus> = {\n encode(message: OpStatus, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.opId !== \"\") {\n writer.uint32(10).string(message.opId);\n }\n if (message.state !== 0) {\n writer.uint32(16).int32(message.state);\n }\n if (message.nextSeq !== \"0\") {\n writer.uint32(24).uint64(message.nextSeq);\n }\n if (message.exit !== undefined) {\n OpExit.encode(message.exit, writer.uint32(34).fork()).join();\n }\n if (message.lostReason !== 0) {\n writer.uint32(40).int32(message.lostReason);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpStatus {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpStatus();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.opId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.state = reader.int32() as any;\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.nextSeq = reader.uint64().toString();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.exit = OpExit.decode(reader, reader.uint32());\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.lostReason = reader.int32() as any;\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpStatus {\n return {\n opId: isSet(object.opId)\n ? globalThis.String(object.opId)\n : isSet(object.op_id)\n ? globalThis.String(object.op_id)\n : \"\",\n state: isSet(object.state) ? opStateFromJSON(object.state) : 0,\n nextSeq: isSet(object.nextSeq)\n ? globalThis.String(object.nextSeq)\n : isSet(object.next_seq)\n ? globalThis.String(object.next_seq)\n : \"0\",\n exit: isSet(object.exit) ? OpExit.fromJSON(object.exit) : undefined,\n lostReason: isSet(object.lostReason)\n ? opLostReasonFromJSON(object.lostReason)\n : isSet(object.lost_reason)\n ? opLostReasonFromJSON(object.lost_reason)\n : 0,\n };\n },\n\n toJSON(message: OpStatus): unknown {\n const obj: any = {};\n if (message.opId !== \"\") {\n obj.opId = message.opId;\n }\n if (message.state !== 0) {\n obj.state = opStateToJSON(message.state);\n }\n if (message.nextSeq !== \"0\") {\n obj.nextSeq = message.nextSeq;\n }\n if (message.exit !== undefined) {\n obj.exit = OpExit.toJSON(message.exit);\n }\n if (message.lostReason !== 0) {\n obj.lostReason = opLostReasonToJSON(message.lostReason);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpStatus>, I>>(base?: I): OpStatus {\n return OpStatus.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpStatus>, I>>(object: I): OpStatus {\n const message = createBaseOpStatus();\n message.opId = object.opId ?? \"\";\n message.state = object.state ?? 0;\n message.nextSeq = object.nextSeq ?? \"0\";\n message.exit =\n object.exit !== undefined && object.exit !== null\n ? OpExit.fromPartial(object.exit)\n : undefined;\n message.lostReason = object.lostReason ?? 0;\n return message;\n },\n};\n\nfunction createBaseWriteChunk(): WriteChunk {\n return { opId: \"\", seq: \"0\", bytes: new Uint8Array(0), last: false, offset: \"0\" };\n}\n\nexport const WriteChunk: MessageFns<WriteChunk> = {\n encode(message: WriteChunk, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.opId !== \"\") {\n writer.uint32(10).string(message.opId);\n }\n if (message.seq !== \"0\") {\n writer.uint32(16).uint64(message.seq);\n }\n if (message.bytes.length !== 0) {\n writer.uint32(26).bytes(message.bytes);\n }\n if (message.last !== false) {\n writer.uint32(32).bool(message.last);\n }\n if (message.offset !== \"0\") {\n writer.uint32(40).uint64(message.offset);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): WriteChunk {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseWriteChunk();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.opId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.seq = reader.uint64().toString();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.bytes = reader.bytes();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.last = reader.bool();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.offset = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): WriteChunk {\n return {\n opId: isSet(object.opId)\n ? globalThis.String(object.opId)\n : isSet(object.op_id)\n ? globalThis.String(object.op_id)\n : \"\",\n seq: isSet(object.seq) ? globalThis.String(object.seq) : \"0\",\n bytes: isSet(object.bytes) ? bytesFromBase64(object.bytes) : new Uint8Array(0),\n last: isSet(object.last) ? globalThis.Boolean(object.last) : false,\n offset: isSet(object.offset) ? globalThis.String(object.offset) : \"0\",\n };\n },\n\n toJSON(message: WriteChunk): unknown {\n const obj: any = {};\n if (message.opId !== \"\") {\n obj.opId = message.opId;\n }\n if (message.seq !== \"0\") {\n obj.seq = message.seq;\n }\n if (message.bytes.length !== 0) {\n obj.bytes = base64FromBytes(message.bytes);\n }\n if (message.last !== false) {\n obj.last = message.last;\n }\n if (message.offset !== \"0\") {\n obj.offset = message.offset;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<WriteChunk>, I>>(base?: I): WriteChunk {\n return WriteChunk.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<WriteChunk>, I>>(object: I): WriteChunk {\n const message = createBaseWriteChunk();\n message.opId = object.opId ?? \"\";\n message.seq = object.seq ?? \"0\";\n message.bytes = object.bytes ?? new Uint8Array(0);\n message.last = object.last ?? false;\n message.offset = object.offset ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseWriteChunkAck(): WriteChunkAck {\n return { seq: \"0\" };\n}\n\nexport const WriteChunkAck: MessageFns<WriteChunkAck> = {\n encode(message: WriteChunkAck, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.seq !== \"0\") {\n writer.uint32(8).uint64(message.seq);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): WriteChunkAck {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseWriteChunkAck();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.seq = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): WriteChunkAck {\n return { seq: isSet(object.seq) ? globalThis.String(object.seq) : \"0\" };\n },\n\n toJSON(message: WriteChunkAck): unknown {\n const obj: any = {};\n if (message.seq !== \"0\") {\n obj.seq = message.seq;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<WriteChunkAck>, I>>(base?: I): WriteChunkAck {\n return WriteChunkAck.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<WriteChunkAck>, I>>(object: I): WriteChunkAck {\n const message = createBaseWriteChunkAck();\n message.seq = object.seq ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseOpFrame(): OpFrame {\n return { opId: \"\", seq: \"0\", body: undefined };\n}\n\nexport const OpFrame: MessageFns<OpFrame> = {\n encode(message: OpFrame, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.opId !== \"\") {\n writer.uint32(10).string(message.opId);\n }\n if (message.seq !== \"0\") {\n writer.uint32(16).uint64(message.seq);\n }\n switch (message.body?.$case) {\n case \"data\":\n OpData.encode(message.body.data, writer.uint32(82).fork()).join();\n break;\n case \"progress\":\n OpProgress.encode(message.body.progress, writer.uint32(90).fork()).join();\n break;\n case \"exit\":\n OpExit.encode(message.body.exit, writer.uint32(98).fork()).join();\n break;\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpFrame {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpFrame();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.opId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.seq = reader.uint64().toString();\n continue;\n }\n case 10: {\n if (tag !== 82) {\n break;\n }\n\n message.body = { $case: \"data\", data: OpData.decode(reader, reader.uint32()) };\n continue;\n }\n case 11: {\n if (tag !== 90) {\n break;\n }\n\n message.body = {\n $case: \"progress\",\n progress: OpProgress.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 12: {\n if (tag !== 98) {\n break;\n }\n\n message.body = { $case: \"exit\", exit: OpExit.decode(reader, reader.uint32()) };\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpFrame {\n return {\n opId: isSet(object.opId)\n ? globalThis.String(object.opId)\n : isSet(object.op_id)\n ? globalThis.String(object.op_id)\n : \"\",\n seq: isSet(object.seq) ? globalThis.String(object.seq) : \"0\",\n body: isSet(object.data)\n ? { $case: \"data\", data: OpData.fromJSON(object.data) }\n : isSet(object.progress)\n ? { $case: \"progress\", progress: OpProgress.fromJSON(object.progress) }\n : isSet(object.exit)\n ? { $case: \"exit\", exit: OpExit.fromJSON(object.exit) }\n : undefined,\n };\n },\n\n toJSON(message: OpFrame): unknown {\n const obj: any = {};\n if (message.opId !== \"\") {\n obj.opId = message.opId;\n }\n if (message.seq !== \"0\") {\n obj.seq = message.seq;\n }\n if (message.body?.$case === \"data\") {\n obj.data = OpData.toJSON(message.body.data);\n } else if (message.body?.$case === \"progress\") {\n obj.progress = OpProgress.toJSON(message.body.progress);\n } else if (message.body?.$case === \"exit\") {\n obj.exit = OpExit.toJSON(message.body.exit);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpFrame>, I>>(base?: I): OpFrame {\n return OpFrame.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpFrame>, I>>(object: I): OpFrame {\n const message = createBaseOpFrame();\n message.opId = object.opId ?? \"\";\n message.seq = object.seq ?? \"0\";\n switch (object.body?.$case) {\n case \"data\": {\n if (object.body?.data !== undefined && object.body?.data !== null) {\n message.body = { $case: \"data\", data: OpData.fromPartial(object.body.data) };\n }\n break;\n }\n case \"progress\": {\n if (object.body?.progress !== undefined && object.body?.progress !== null) {\n message.body = {\n $case: \"progress\",\n progress: OpProgress.fromPartial(object.body.progress),\n };\n }\n break;\n }\n case \"exit\": {\n if (object.body?.exit !== undefined && object.body?.exit !== null) {\n message.body = { $case: \"exit\", exit: OpExit.fromPartial(object.body.exit) };\n }\n break;\n }\n }\n return message;\n },\n};\n\nfunction createBaseOpData(): OpData {\n return { channel: 0, bytes: new Uint8Array(0) };\n}\n\nexport const OpData: MessageFns<OpData> = {\n encode(message: OpData, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.channel !== 0) {\n writer.uint32(8).int32(message.channel);\n }\n if (message.bytes.length !== 0) {\n writer.uint32(18).bytes(message.bytes);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpData {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpData();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.channel = reader.int32() as any;\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.bytes = reader.bytes();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpData {\n return {\n channel: isSet(object.channel) ? opChannelFromJSON(object.channel) : 0,\n bytes: isSet(object.bytes) ? bytesFromBase64(object.bytes) : new Uint8Array(0),\n };\n },\n\n toJSON(message: OpData): unknown {\n const obj: any = {};\n if (message.channel !== 0) {\n obj.channel = opChannelToJSON(message.channel);\n }\n if (message.bytes.length !== 0) {\n obj.bytes = base64FromBytes(message.bytes);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpData>, I>>(base?: I): OpData {\n return OpData.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpData>, I>>(object: I): OpData {\n const message = createBaseOpData();\n message.channel = object.channel ?? 0;\n message.bytes = object.bytes ?? new Uint8Array(0);\n return message;\n },\n};\n\nfunction createBaseOpProgress(): OpProgress {\n return {};\n}\n\nexport const OpProgress: MessageFns<OpProgress> = {\n encode(_: OpProgress, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpProgress {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpProgress();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): OpProgress {\n return {};\n },\n\n toJSON(_: OpProgress): unknown {\n const obj: any = {};\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpProgress>, I>>(base?: I): OpProgress {\n return OpProgress.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpProgress>, I>>(_: I): OpProgress {\n const message = createBaseOpProgress();\n return message;\n },\n};\n\nfunction createBaseOpAck(): OpAck {\n return { opId: \"\", ackedSeq: \"0\", creditBytes: \"0\", final: false, attachGeneration: \"0\" };\n}\n\nexport const OpAck: MessageFns<OpAck> = {\n encode(message: OpAck, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.opId !== \"\") {\n writer.uint32(10).string(message.opId);\n }\n if (message.ackedSeq !== \"0\") {\n writer.uint32(16).uint64(message.ackedSeq);\n }\n if (message.creditBytes !== \"0\") {\n writer.uint32(24).uint64(message.creditBytes);\n }\n if (message.final !== false) {\n writer.uint32(32).bool(message.final);\n }\n if (message.attachGeneration !== \"0\") {\n writer.uint32(40).uint64(message.attachGeneration);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpAck {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpAck();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.opId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.ackedSeq = reader.uint64().toString();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.creditBytes = reader.uint64().toString();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.final = reader.bool();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.attachGeneration = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpAck {\n return {\n opId: isSet(object.opId)\n ? globalThis.String(object.opId)\n : isSet(object.op_id)\n ? globalThis.String(object.op_id)\n : \"\",\n ackedSeq: isSet(object.ackedSeq)\n ? globalThis.String(object.ackedSeq)\n : isSet(object.acked_seq)\n ? globalThis.String(object.acked_seq)\n : \"0\",\n creditBytes: isSet(object.creditBytes)\n ? globalThis.String(object.creditBytes)\n : isSet(object.credit_bytes)\n ? globalThis.String(object.credit_bytes)\n : \"0\",\n final: isSet(object.final) ? globalThis.Boolean(object.final) : false,\n attachGeneration: isSet(object.attachGeneration)\n ? globalThis.String(object.attachGeneration)\n : isSet(object.attach_generation)\n ? globalThis.String(object.attach_generation)\n : \"0\",\n };\n },\n\n toJSON(message: OpAck): unknown {\n const obj: any = {};\n if (message.opId !== \"\") {\n obj.opId = message.opId;\n }\n if (message.ackedSeq !== \"0\") {\n obj.ackedSeq = message.ackedSeq;\n }\n if (message.creditBytes !== \"0\") {\n obj.creditBytes = message.creditBytes;\n }\n if (message.final !== false) {\n obj.final = message.final;\n }\n if (message.attachGeneration !== \"0\") {\n obj.attachGeneration = message.attachGeneration;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpAck>, I>>(base?: I): OpAck {\n return OpAck.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpAck>, I>>(object: I): OpAck {\n const message = createBaseOpAck();\n message.opId = object.opId ?? \"\";\n message.ackedSeq = object.ackedSeq ?? \"0\";\n message.creditBytes = object.creditBytes ?? \"0\";\n message.final = object.final ?? false;\n message.attachGeneration = object.attachGeneration ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseControlRequest(): ControlRequest {\n return { requestId: \"\", epoch: 0, op: undefined };\n}\n\nexport const ControlRequest: MessageFns<ControlRequest> = {\n encode(message: ControlRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.requestId !== \"\") {\n writer.uint32(10).string(message.requestId);\n }\n if (message.epoch !== 0) {\n writer.uint32(16).uint32(message.epoch);\n }\n switch (message.op?.$case) {\n case \"ping\":\n PingRequest.encode(message.op.ping, writer.uint32(82).fork()).join();\n break;\n case \"hello\":\n Hello.encode(message.op.hello, writer.uint32(90).fork()).join();\n break;\n case \"resume\":\n ResumeRequest.encode(message.op.resume, writer.uint32(98).fork()).join();\n break;\n case \"exec\":\n ExecRequest.encode(message.op.exec, writer.uint32(106).fork()).join();\n break;\n case \"fsRead\":\n FsReadRequest.encode(message.op.fsRead, writer.uint32(114).fork()).join();\n break;\n case \"fsWrite\":\n FsWriteRequest.encode(message.op.fsWrite, writer.uint32(122).fork()).join();\n break;\n case \"fsList\":\n FsListRequest.encode(message.op.fsList, writer.uint32(130).fork()).join();\n break;\n case \"fsMkdir\":\n FsMkdirRequest.encode(message.op.fsMkdir, writer.uint32(138).fork()).join();\n break;\n case \"fsMove\":\n FsMoveRequest.encode(message.op.fsMove, writer.uint32(146).fork()).join();\n break;\n case \"fsStat\":\n FsStatRequest.encode(message.op.fsStat, writer.uint32(154).fork()).join();\n break;\n case \"fsRemove\":\n FsRemoveRequest.encode(message.op.fsRemove, writer.uint32(162).fork()).join();\n break;\n case \"git\":\n GitRequest.encode(message.op.git, writer.uint32(170).fork()).join();\n break;\n case \"ptyOpen\":\n PtyOpenRequest.encode(message.op.ptyOpen, writer.uint32(178).fork()).join();\n break;\n case \"ptyWrite\":\n PtyWriteRequest.encode(message.op.ptyWrite, writer.uint32(186).fork()).join();\n break;\n case \"ptyResize\":\n PtyResizeRequest.encode(message.op.ptyResize, writer.uint32(194).fork()).join();\n break;\n case \"ptyClose\":\n PtyCloseRequest.encode(message.op.ptyClose, writer.uint32(202).fork()).join();\n break;\n case \"desktopEnsure\":\n DesktopEnsureRequest.encode(message.op.desktopEnsure, writer.uint32(210).fork()).join();\n break;\n case \"metrics\":\n MetricsRequest.encode(message.op.metrics, writer.uint32(218).fork()).join();\n break;\n case \"updateMayProceed\":\n UpdateMayProceedRequest.encode(\n message.op.updateMayProceed,\n writer.uint32(226).fork(),\n ).join();\n break;\n case \"desktopInput\":\n DesktopInputRequest.encode(message.op.desktopInput, writer.uint32(234).fork()).join();\n break;\n case \"desktopScreenshot\":\n DesktopScreenshotRequest.encode(\n message.op.desktopScreenshot,\n writer.uint32(242).fork(),\n ).join();\n break;\n case \"opStart\":\n OpStart.encode(message.op.opStart, writer.uint32(250).fork()).join();\n break;\n case \"opCancel\":\n OpCancel.encode(message.op.opCancel, writer.uint32(258).fork()).join();\n break;\n case \"opQuery\":\n OpQuery.encode(message.op.opQuery, writer.uint32(266).fork()).join();\n break;\n case \"opAttach\":\n OpAttach.encode(message.op.opAttach, writer.uint32(274).fork()).join();\n break;\n case \"writeChunk\":\n WriteChunk.encode(message.op.writeChunk, writer.uint32(282).fork()).join();\n break;\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): ControlRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseControlRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.requestId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.epoch = reader.uint32();\n continue;\n }\n case 10: {\n if (tag !== 82) {\n break;\n }\n\n message.op = { $case: \"ping\", ping: PingRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 11: {\n if (tag !== 90) {\n break;\n }\n\n message.op = { $case: \"hello\", hello: Hello.decode(reader, reader.uint32()) };\n continue;\n }\n case 12: {\n if (tag !== 98) {\n break;\n }\n\n message.op = { $case: \"resume\", resume: ResumeRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 13: {\n if (tag !== 106) {\n break;\n }\n\n message.op = { $case: \"exec\", exec: ExecRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 14: {\n if (tag !== 114) {\n break;\n }\n\n message.op = { $case: \"fsRead\", fsRead: FsReadRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 15: {\n if (tag !== 122) {\n break;\n }\n\n message.op = {\n $case: \"fsWrite\",\n fsWrite: FsWriteRequest.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 16: {\n if (tag !== 130) {\n break;\n }\n\n message.op = { $case: \"fsList\", fsList: FsListRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 17: {\n if (tag !== 138) {\n break;\n }\n\n message.op = {\n $case: \"fsMkdir\",\n fsMkdir: FsMkdirRequest.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 18: {\n if (tag !== 146) {\n break;\n }\n\n message.op = { $case: \"fsMove\", fsMove: FsMoveRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 19: {\n if (tag !== 154) {\n break;\n }\n\n message.op = { $case: \"fsStat\", fsStat: FsStatRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 20: {\n if (tag !== 162) {\n break;\n }\n\n message.op = {\n $case: \"fsRemove\",\n fsRemove: FsRemoveRequest.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 21: {\n if (tag !== 170) {\n break;\n }\n\n message.op = { $case: \"git\", git: GitRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 22: {\n if (tag !== 178) {\n break;\n }\n\n message.op = {\n $case: \"ptyOpen\",\n ptyOpen: PtyOpenRequest.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 23: {\n if (tag !== 186) {\n break;\n }\n\n message.op = {\n $case: \"ptyWrite\",\n ptyWrite: PtyWriteRequest.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 24: {\n if (tag !== 194) {\n break;\n }\n\n message.op = {\n $case: \"ptyResize\",\n ptyResize: PtyResizeRequest.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 25: {\n if (tag !== 202) {\n break;\n }\n\n message.op = {\n $case: \"ptyClose\",\n ptyClose: PtyCloseRequest.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 26: {\n if (tag !== 210) {\n break;\n }\n\n message.op = {\n $case: \"desktopEnsure\",\n desktopEnsure: DesktopEnsureRequest.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 27: {\n if (tag !== 218) {\n break;\n }\n\n message.op = {\n $case: \"metrics\",\n metrics: MetricsRequest.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 28: {\n if (tag !== 226) {\n break;\n }\n\n message.op = {\n $case: \"updateMayProceed\",\n updateMayProceed: UpdateMayProceedRequest.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 29: {\n if (tag !== 234) {\n break;\n }\n\n message.op = {\n $case: \"desktopInput\",\n desktopInput: DesktopInputRequest.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 30: {\n if (tag !== 242) {\n break;\n }\n\n message.op = {\n $case: \"desktopScreenshot\",\n desktopScreenshot: DesktopScreenshotRequest.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 31: {\n if (tag !== 250) {\n break;\n }\n\n message.op = { $case: \"opStart\", opStart: OpStart.decode(reader, reader.uint32()) };\n continue;\n }\n case 32: {\n if (tag !== 258) {\n break;\n }\n\n message.op = { $case: \"opCancel\", opCancel: OpCancel.decode(reader, reader.uint32()) };\n continue;\n }\n case 33: {\n if (tag !== 266) {\n break;\n }\n\n message.op = { $case: \"opQuery\", opQuery: OpQuery.decode(reader, reader.uint32()) };\n continue;\n }\n case 34: {\n if (tag !== 274) {\n break;\n }\n\n message.op = { $case: \"opAttach\", opAttach: OpAttach.decode(reader, reader.uint32()) };\n continue;\n }\n case 35: {\n if (tag !== 282) {\n break;\n }\n\n message.op = {\n $case: \"writeChunk\",\n writeChunk: WriteChunk.decode(reader, reader.uint32()),\n };\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): ControlRequest {\n return {\n requestId: isSet(object.requestId)\n ? globalThis.String(object.requestId)\n : isSet(object.request_id)\n ? globalThis.String(object.request_id)\n : \"\",\n epoch: isSet(object.epoch) ? globalThis.Number(object.epoch) : 0,\n op: isSet(object.ping)\n ? { $case: \"ping\", ping: PingRequest.fromJSON(object.ping) }\n : isSet(object.hello)\n ? { $case: \"hello\", hello: Hello.fromJSON(object.hello) }\n : isSet(object.resume)\n ? { $case: \"resume\", resume: ResumeRequest.fromJSON(object.resume) }\n : isSet(object.exec)\n ? { $case: \"exec\", exec: ExecRequest.fromJSON(object.exec) }\n : isSet(object.fsRead)\n ? { $case: \"fsRead\", fsRead: FsReadRequest.fromJSON(object.fsRead) }\n : isSet(object.fs_read)\n ? { $case: \"fsRead\", fsRead: FsReadRequest.fromJSON(object.fs_read) }\n : isSet(object.fsWrite)\n ? { $case: \"fsWrite\", fsWrite: FsWriteRequest.fromJSON(object.fsWrite) }\n : isSet(object.fs_write)\n ? { $case: \"fsWrite\", fsWrite: FsWriteRequest.fromJSON(object.fs_write) }\n : isSet(object.fsList)\n ? { $case: \"fsList\", fsList: FsListRequest.fromJSON(object.fsList) }\n : isSet(object.fs_list)\n ? { $case: \"fsList\", fsList: FsListRequest.fromJSON(object.fs_list) }\n : isSet(object.fsMkdir)\n ? { $case: \"fsMkdir\", fsMkdir: FsMkdirRequest.fromJSON(object.fsMkdir) }\n : isSet(object.fs_mkdir)\n ? {\n $case: \"fsMkdir\",\n fsMkdir: FsMkdirRequest.fromJSON(object.fs_mkdir),\n }\n : isSet(object.fsMove)\n ? { $case: \"fsMove\", fsMove: FsMoveRequest.fromJSON(object.fsMove) }\n : isSet(object.fs_move)\n ? {\n $case: \"fsMove\",\n fsMove: FsMoveRequest.fromJSON(object.fs_move),\n }\n : isSet(object.fsStat)\n ? {\n $case: \"fsStat\",\n fsStat: FsStatRequest.fromJSON(object.fsStat),\n }\n : isSet(object.fs_stat)\n ? {\n $case: \"fsStat\",\n fsStat: FsStatRequest.fromJSON(object.fs_stat),\n }\n : isSet(object.fsRemove)\n ? {\n $case: \"fsRemove\",\n fsRemove: FsRemoveRequest.fromJSON(object.fsRemove),\n }\n : isSet(object.fs_remove)\n ? {\n $case: \"fsRemove\",\n fsRemove: FsRemoveRequest.fromJSON(object.fs_remove),\n }\n : isSet(object.git)\n ? { $case: \"git\", git: GitRequest.fromJSON(object.git) }\n : isSet(object.ptyOpen)\n ? {\n $case: \"ptyOpen\",\n ptyOpen: PtyOpenRequest.fromJSON(object.ptyOpen),\n }\n : isSet(object.pty_open)\n ? {\n $case: \"ptyOpen\",\n ptyOpen: PtyOpenRequest.fromJSON(\n object.pty_open,\n ),\n }\n : isSet(object.ptyWrite)\n ? {\n $case: \"ptyWrite\",\n ptyWrite: PtyWriteRequest.fromJSON(\n object.ptyWrite,\n ),\n }\n : isSet(object.pty_write)\n ? {\n $case: \"ptyWrite\",\n ptyWrite: PtyWriteRequest.fromJSON(\n object.pty_write,\n ),\n }\n : isSet(object.ptyResize)\n ? {\n $case: \"ptyResize\",\n ptyResize: PtyResizeRequest.fromJSON(\n object.ptyResize,\n ),\n }\n : isSet(object.pty_resize)\n ? {\n $case: \"ptyResize\",\n ptyResize: PtyResizeRequest.fromJSON(\n object.pty_resize,\n ),\n }\n : isSet(object.ptyClose)\n ? {\n $case: \"ptyClose\",\n ptyClose: PtyCloseRequest.fromJSON(\n object.ptyClose,\n ),\n }\n : isSet(object.pty_close)\n ? {\n $case: \"ptyClose\",\n ptyClose: PtyCloseRequest.fromJSON(\n object.pty_close,\n ),\n }\n : isSet(object.desktopEnsure)\n ? {\n $case: \"desktopEnsure\",\n desktopEnsure:\n DesktopEnsureRequest.fromJSON(\n object.desktopEnsure,\n ),\n }\n : isSet(object.desktop_ensure)\n ? {\n $case: \"desktopEnsure\",\n desktopEnsure:\n DesktopEnsureRequest.fromJSON(\n object.desktop_ensure,\n ),\n }\n : isSet(object.metrics)\n ? {\n $case: \"metrics\",\n metrics:\n MetricsRequest.fromJSON(\n object.metrics,\n ),\n }\n : isSet(object.updateMayProceed)\n ? {\n $case: \"updateMayProceed\",\n updateMayProceed:\n UpdateMayProceedRequest.fromJSON(\n object.updateMayProceed,\n ),\n }\n : isSet(\n object.update_may_proceed,\n )\n ? {\n $case: \"updateMayProceed\",\n updateMayProceed:\n UpdateMayProceedRequest.fromJSON(\n object.update_may_proceed,\n ),\n }\n : isSet(object.desktopInput)\n ? {\n $case: \"desktopInput\",\n desktopInput:\n DesktopInputRequest.fromJSON(\n object.desktopInput,\n ),\n }\n : isSet(\n object.desktop_input,\n )\n ? {\n $case: \"desktopInput\",\n desktopInput:\n DesktopInputRequest.fromJSON(\n object.desktop_input,\n ),\n }\n : isSet(\n object.desktopScreenshot,\n )\n ? {\n $case:\n \"desktopScreenshot\",\n desktopScreenshot:\n DesktopScreenshotRequest.fromJSON(\n object.desktopScreenshot,\n ),\n }\n : isSet(\n object.desktop_screenshot,\n )\n ? {\n $case:\n \"desktopScreenshot\",\n desktopScreenshot:\n DesktopScreenshotRequest.fromJSON(\n object.desktop_screenshot,\n ),\n }\n : isSet(\n object.opStart,\n )\n ? {\n $case:\n \"opStart\",\n opStart:\n OpStart.fromJSON(\n object.opStart,\n ),\n }\n : isSet(\n object.op_start,\n )\n ? {\n $case:\n \"opStart\",\n opStart:\n OpStart.fromJSON(\n object.op_start,\n ),\n }\n : isSet(\n object.opCancel,\n )\n ? {\n $case:\n \"opCancel\",\n opCancel:\n OpCancel.fromJSON(\n object.opCancel,\n ),\n }\n : isSet(\n object.op_cancel,\n )\n ? {\n $case:\n \"opCancel\",\n opCancel:\n OpCancel.fromJSON(\n object.op_cancel,\n ),\n }\n : isSet(\n object.opQuery,\n )\n ? {\n $case:\n \"opQuery\",\n opQuery:\n OpQuery.fromJSON(\n object.opQuery,\n ),\n }\n : isSet(\n object.op_query,\n )\n ? {\n $case:\n \"opQuery\",\n opQuery:\n OpQuery.fromJSON(\n object.op_query,\n ),\n }\n : isSet(\n object.opAttach,\n )\n ? {\n $case:\n \"opAttach\",\n opAttach:\n OpAttach.fromJSON(\n object.opAttach,\n ),\n }\n : isSet(\n object.op_attach,\n )\n ? {\n $case:\n \"opAttach\",\n opAttach:\n OpAttach.fromJSON(\n object.op_attach,\n ),\n }\n : isSet(\n object.writeChunk,\n )\n ? {\n $case:\n \"writeChunk\",\n writeChunk:\n WriteChunk.fromJSON(\n object.writeChunk,\n ),\n }\n : isSet(\n object.write_chunk,\n )\n ? {\n $case:\n \"writeChunk\",\n writeChunk:\n WriteChunk.fromJSON(\n object.write_chunk,\n ),\n }\n : undefined,\n };\n },\n\n toJSON(message: ControlRequest): unknown {\n const obj: any = {};\n if (message.requestId !== \"\") {\n obj.requestId = message.requestId;\n }\n if (message.epoch !== 0) {\n obj.epoch = Math.round(message.epoch);\n }\n if (message.op?.$case === \"ping\") {\n obj.ping = PingRequest.toJSON(message.op.ping);\n } else if (message.op?.$case === \"hello\") {\n obj.hello = Hello.toJSON(message.op.hello);\n } else if (message.op?.$case === \"resume\") {\n obj.resume = ResumeRequest.toJSON(message.op.resume);\n } else if (message.op?.$case === \"exec\") {\n obj.exec = ExecRequest.toJSON(message.op.exec);\n } else if (message.op?.$case === \"fsRead\") {\n obj.fsRead = FsReadRequest.toJSON(message.op.fsRead);\n } else if (message.op?.$case === \"fsWrite\") {\n obj.fsWrite = FsWriteRequest.toJSON(message.op.fsWrite);\n } else if (message.op?.$case === \"fsList\") {\n obj.fsList = FsListRequest.toJSON(message.op.fsList);\n } else if (message.op?.$case === \"fsMkdir\") {\n obj.fsMkdir = FsMkdirRequest.toJSON(message.op.fsMkdir);\n } else if (message.op?.$case === \"fsMove\") {\n obj.fsMove = FsMoveRequest.toJSON(message.op.fsMove);\n } else if (message.op?.$case === \"fsStat\") {\n obj.fsStat = FsStatRequest.toJSON(message.op.fsStat);\n } else if (message.op?.$case === \"fsRemove\") {\n obj.fsRemove = FsRemoveRequest.toJSON(message.op.fsRemove);\n } else if (message.op?.$case === \"git\") {\n obj.git = GitRequest.toJSON(message.op.git);\n } else if (message.op?.$case === \"ptyOpen\") {\n obj.ptyOpen = PtyOpenRequest.toJSON(message.op.ptyOpen);\n } else if (message.op?.$case === \"ptyWrite\") {\n obj.ptyWrite = PtyWriteRequest.toJSON(message.op.ptyWrite);\n } else if (message.op?.$case === \"ptyResize\") {\n obj.ptyResize = PtyResizeRequest.toJSON(message.op.ptyResize);\n } else if (message.op?.$case === \"ptyClose\") {\n obj.ptyClose = PtyCloseRequest.toJSON(message.op.ptyClose);\n } else if (message.op?.$case === \"desktopEnsure\") {\n obj.desktopEnsure = DesktopEnsureRequest.toJSON(message.op.desktopEnsure);\n } else if (message.op?.$case === \"metrics\") {\n obj.metrics = MetricsRequest.toJSON(message.op.metrics);\n } else if (message.op?.$case === \"updateMayProceed\") {\n obj.updateMayProceed = UpdateMayProceedRequest.toJSON(message.op.updateMayProceed);\n } else if (message.op?.$case === \"desktopInput\") {\n obj.desktopInput = DesktopInputRequest.toJSON(message.op.desktopInput);\n } else if (message.op?.$case === \"desktopScreenshot\") {\n obj.desktopScreenshot = DesktopScreenshotRequest.toJSON(message.op.desktopScreenshot);\n } else if (message.op?.$case === \"opStart\") {\n obj.opStart = OpStart.toJSON(message.op.opStart);\n } else if (message.op?.$case === \"opCancel\") {\n obj.opCancel = OpCancel.toJSON(message.op.opCancel);\n } else if (message.op?.$case === \"opQuery\") {\n obj.opQuery = OpQuery.toJSON(message.op.opQuery);\n } else if (message.op?.$case === \"opAttach\") {\n obj.opAttach = OpAttach.toJSON(message.op.opAttach);\n } else if (message.op?.$case === \"writeChunk\") {\n obj.writeChunk = WriteChunk.toJSON(message.op.writeChunk);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<ControlRequest>, I>>(base?: I): ControlRequest {\n return ControlRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<ControlRequest>, I>>(object: I): ControlRequest {\n const message = createBaseControlRequest();\n message.requestId = object.requestId ?? \"\";\n message.epoch = object.epoch ?? 0;\n switch (object.op?.$case) {\n case \"ping\": {\n if (object.op?.ping !== undefined && object.op?.ping !== null) {\n message.op = { $case: \"ping\", ping: PingRequest.fromPartial(object.op.ping) };\n }\n break;\n }\n case \"hello\": {\n if (object.op?.hello !== undefined && object.op?.hello !== null) {\n message.op = { $case: \"hello\", hello: Hello.fromPartial(object.op.hello) };\n }\n break;\n }\n case \"resume\": {\n if (object.op?.resume !== undefined && object.op?.resume !== null) {\n message.op = { $case: \"resume\", resume: ResumeRequest.fromPartial(object.op.resume) };\n }\n break;\n }\n case \"exec\": {\n if (object.op?.exec !== undefined && object.op?.exec !== null) {\n message.op = { $case: \"exec\", exec: ExecRequest.fromPartial(object.op.exec) };\n }\n break;\n }\n case \"fsRead\": {\n if (object.op?.fsRead !== undefined && object.op?.fsRead !== null) {\n message.op = { $case: \"fsRead\", fsRead: FsReadRequest.fromPartial(object.op.fsRead) };\n }\n break;\n }\n case \"fsWrite\": {\n if (object.op?.fsWrite !== undefined && object.op?.fsWrite !== null) {\n message.op = { $case: \"fsWrite\", fsWrite: FsWriteRequest.fromPartial(object.op.fsWrite) };\n }\n break;\n }\n case \"fsList\": {\n if (object.op?.fsList !== undefined && object.op?.fsList !== null) {\n message.op = { $case: \"fsList\", fsList: FsListRequest.fromPartial(object.op.fsList) };\n }\n break;\n }\n case \"fsMkdir\": {\n if (object.op?.fsMkdir !== undefined && object.op?.fsMkdir !== null) {\n message.op = { $case: \"fsMkdir\", fsMkdir: FsMkdirRequest.fromPartial(object.op.fsMkdir) };\n }\n break;\n }\n case \"fsMove\": {\n if (object.op?.fsMove !== undefined && object.op?.fsMove !== null) {\n message.op = { $case: \"fsMove\", fsMove: FsMoveRequest.fromPartial(object.op.fsMove) };\n }\n break;\n }\n case \"fsStat\": {\n if (object.op?.fsStat !== undefined && object.op?.fsStat !== null) {\n message.op = { $case: \"fsStat\", fsStat: FsStatRequest.fromPartial(object.op.fsStat) };\n }\n break;\n }\n case \"fsRemove\": {\n if (object.op?.fsRemove !== undefined && object.op?.fsRemove !== null) {\n message.op = {\n $case: \"fsRemove\",\n fsRemove: FsRemoveRequest.fromPartial(object.op.fsRemove),\n };\n }\n break;\n }\n case \"git\": {\n if (object.op?.git !== undefined && object.op?.git !== null) {\n message.op = { $case: \"git\", git: GitRequest.fromPartial(object.op.git) };\n }\n break;\n }\n case \"ptyOpen\": {\n if (object.op?.ptyOpen !== undefined && object.op?.ptyOpen !== null) {\n message.op = { $case: \"ptyOpen\", ptyOpen: PtyOpenRequest.fromPartial(object.op.ptyOpen) };\n }\n break;\n }\n case \"ptyWrite\": {\n if (object.op?.ptyWrite !== undefined && object.op?.ptyWrite !== null) {\n message.op = {\n $case: \"ptyWrite\",\n ptyWrite: PtyWriteRequest.fromPartial(object.op.ptyWrite),\n };\n }\n break;\n }\n case \"ptyResize\": {\n if (object.op?.ptyResize !== undefined && object.op?.ptyResize !== null) {\n message.op = {\n $case: \"ptyResize\",\n ptyResize: PtyResizeRequest.fromPartial(object.op.ptyResize),\n };\n }\n break;\n }\n case \"ptyClose\": {\n if (object.op?.ptyClose !== undefined && object.op?.ptyClose !== null) {\n message.op = {\n $case: \"ptyClose\",\n ptyClose: PtyCloseRequest.fromPartial(object.op.ptyClose),\n };\n }\n break;\n }\n case \"desktopEnsure\": {\n if (object.op?.desktopEnsure !== undefined && object.op?.desktopEnsure !== null) {\n message.op = {\n $case: \"desktopEnsure\",\n desktopEnsure: DesktopEnsureRequest.fromPartial(object.op.desktopEnsure),\n };\n }\n break;\n }\n case \"metrics\": {\n if (object.op?.metrics !== undefined && object.op?.metrics !== null) {\n message.op = { $case: \"metrics\", metrics: MetricsRequest.fromPartial(object.op.metrics) };\n }\n break;\n }\n case \"updateMayProceed\": {\n if (object.op?.updateMayProceed !== undefined && object.op?.updateMayProceed !== null) {\n message.op = {\n $case: \"updateMayProceed\",\n updateMayProceed: UpdateMayProceedRequest.fromPartial(object.op.updateMayProceed),\n };\n }\n break;\n }\n case \"desktopInput\": {\n if (object.op?.desktopInput !== undefined && object.op?.desktopInput !== null) {\n message.op = {\n $case: \"desktopInput\",\n desktopInput: DesktopInputRequest.fromPartial(object.op.desktopInput),\n };\n }\n break;\n }\n case \"desktopScreenshot\": {\n if (object.op?.desktopScreenshot !== undefined && object.op?.desktopScreenshot !== null) {\n message.op = {\n $case: \"desktopScreenshot\",\n desktopScreenshot: DesktopScreenshotRequest.fromPartial(object.op.desktopScreenshot),\n };\n }\n break;\n }\n case \"opStart\": {\n if (object.op?.opStart !== undefined && object.op?.opStart !== null) {\n message.op = { $case: \"opStart\", opStart: OpStart.fromPartial(object.op.opStart) };\n }\n break;\n }\n case \"opCancel\": {\n if (object.op?.opCancel !== undefined && object.op?.opCancel !== null) {\n message.op = { $case: \"opCancel\", opCancel: OpCancel.fromPartial(object.op.opCancel) };\n }\n break;\n }\n case \"opQuery\": {\n if (object.op?.opQuery !== undefined && object.op?.opQuery !== null) {\n message.op = { $case: \"opQuery\", opQuery: OpQuery.fromPartial(object.op.opQuery) };\n }\n break;\n }\n case \"opAttach\": {\n if (object.op?.opAttach !== undefined && object.op?.opAttach !== null) {\n message.op = { $case: \"opAttach\", opAttach: OpAttach.fromPartial(object.op.opAttach) };\n }\n break;\n }\n case \"writeChunk\": {\n if (object.op?.writeChunk !== undefined && object.op?.writeChunk !== null) {\n message.op = {\n $case: \"writeChunk\",\n writeChunk: WriteChunk.fromPartial(object.op.writeChunk),\n };\n }\n break;\n }\n }\n return message;\n },\n};\n\nfunction createBaseControlResponse(): ControlResponse {\n return { requestId: \"\", error: undefined, result: undefined };\n}\n\nexport const ControlResponse: MessageFns<ControlResponse> = {\n encode(message: ControlResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.requestId !== \"\") {\n writer.uint32(10).string(message.requestId);\n }\n if (message.error !== undefined) {\n AgentError.encode(message.error, writer.uint32(18).fork()).join();\n }\n switch (message.result?.$case) {\n case \"ping\":\n PingResponse.encode(message.result.ping, writer.uint32(82).fork()).join();\n break;\n case \"hello\":\n HelloAck.encode(message.result.hello, writer.uint32(90).fork()).join();\n break;\n case \"resume\":\n ResumeResponse.encode(message.result.resume, writer.uint32(98).fork()).join();\n break;\n case \"exec\":\n ExecResponse.encode(message.result.exec, writer.uint32(106).fork()).join();\n break;\n case \"fsRead\":\n FsReadResponse.encode(message.result.fsRead, writer.uint32(114).fork()).join();\n break;\n case \"fsWrite\":\n FsWriteResponse.encode(message.result.fsWrite, writer.uint32(122).fork()).join();\n break;\n case \"fsList\":\n FsListResponse.encode(message.result.fsList, writer.uint32(130).fork()).join();\n break;\n case \"fsMkdir\":\n FsMkdirResponse.encode(message.result.fsMkdir, writer.uint32(138).fork()).join();\n break;\n case \"fsMove\":\n FsMoveResponse.encode(message.result.fsMove, writer.uint32(146).fork()).join();\n break;\n case \"fsStat\":\n FsStatResponse.encode(message.result.fsStat, writer.uint32(154).fork()).join();\n break;\n case \"fsRemove\":\n FsRemoveResponse.encode(message.result.fsRemove, writer.uint32(162).fork()).join();\n break;\n case \"git\":\n GitResponse.encode(message.result.git, writer.uint32(170).fork()).join();\n break;\n case \"ptyOpen\":\n PtyOpenResponse.encode(message.result.ptyOpen, writer.uint32(178).fork()).join();\n break;\n case \"ptyWrite\":\n PtyWriteResponse.encode(message.result.ptyWrite, writer.uint32(186).fork()).join();\n break;\n case \"ptyResize\":\n PtyResizeResponse.encode(message.result.ptyResize, writer.uint32(194).fork()).join();\n break;\n case \"ptyClose\":\n PtyCloseResponse.encode(message.result.ptyClose, writer.uint32(202).fork()).join();\n break;\n case \"desktopEnsure\":\n DesktopEnsureResponse.encode(\n message.result.desktopEnsure,\n writer.uint32(210).fork(),\n ).join();\n break;\n case \"metrics\":\n MetricsSample.encode(message.result.metrics, writer.uint32(218).fork()).join();\n break;\n case \"updateMayProceed\":\n UpdateMayProceedResponse.encode(\n message.result.updateMayProceed,\n writer.uint32(226).fork(),\n ).join();\n break;\n case \"desktopInput\":\n DesktopInputResponse.encode(message.result.desktopInput, writer.uint32(234).fork()).join();\n break;\n case \"desktopScreenshot\":\n DesktopScreenshotResponse.encode(\n message.result.desktopScreenshot,\n writer.uint32(242).fork(),\n ).join();\n break;\n case \"opStart\":\n OpStarted.encode(message.result.opStart, writer.uint32(250).fork()).join();\n break;\n case \"opStatus\":\n OpStatus.encode(message.result.opStatus, writer.uint32(258).fork()).join();\n break;\n case \"writeChunk\":\n WriteChunkAck.encode(message.result.writeChunk, writer.uint32(282).fork()).join();\n break;\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): ControlResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseControlResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.requestId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.error = AgentError.decode(reader, reader.uint32());\n continue;\n }\n case 10: {\n if (tag !== 82) {\n break;\n }\n\n message.result = { $case: \"ping\", ping: PingResponse.decode(reader, reader.uint32()) };\n continue;\n }\n case 11: {\n if (tag !== 90) {\n break;\n }\n\n message.result = { $case: \"hello\", hello: HelloAck.decode(reader, reader.uint32()) };\n continue;\n }\n case 12: {\n if (tag !== 98) {\n break;\n }\n\n message.result = {\n $case: \"resume\",\n resume: ResumeResponse.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 13: {\n if (tag !== 106) {\n break;\n }\n\n message.result = { $case: \"exec\", exec: ExecResponse.decode(reader, reader.uint32()) };\n continue;\n }\n case 14: {\n if (tag !== 114) {\n break;\n }\n\n message.result = {\n $case: \"fsRead\",\n fsRead: FsReadResponse.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 15: {\n if (tag !== 122) {\n break;\n }\n\n message.result = {\n $case: \"fsWrite\",\n fsWrite: FsWriteResponse.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 16: {\n if (tag !== 130) {\n break;\n }\n\n message.result = {\n $case: \"fsList\",\n fsList: FsListResponse.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 17: {\n if (tag !== 138) {\n break;\n }\n\n message.result = {\n $case: \"fsMkdir\",\n fsMkdir: FsMkdirResponse.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 18: {\n if (tag !== 146) {\n break;\n }\n\n message.result = {\n $case: \"fsMove\",\n fsMove: FsMoveResponse.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 19: {\n if (tag !== 154) {\n break;\n }\n\n message.result = {\n $case: \"fsStat\",\n fsStat: FsStatResponse.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 20: {\n if (tag !== 162) {\n break;\n }\n\n message.result = {\n $case: \"fsRemove\",\n fsRemove: FsRemoveResponse.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 21: {\n if (tag !== 170) {\n break;\n }\n\n message.result = { $case: \"git\", git: GitResponse.decode(reader, reader.uint32()) };\n continue;\n }\n case 22: {\n if (tag !== 178) {\n break;\n }\n\n message.result = {\n $case: \"ptyOpen\",\n ptyOpen: PtyOpenResponse.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 23: {\n if (tag !== 186) {\n break;\n }\n\n message.result = {\n $case: \"ptyWrite\",\n ptyWrite: PtyWriteResponse.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 24: {\n if (tag !== 194) {\n break;\n }\n\n message.result = {\n $case: \"ptyResize\",\n ptyResize: PtyResizeResponse.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 25: {\n if (tag !== 202) {\n break;\n }\n\n message.result = {\n $case: \"ptyClose\",\n ptyClose: PtyCloseResponse.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 26: {\n if (tag !== 210) {\n break;\n }\n\n message.result = {\n $case: \"desktopEnsure\",\n desktopEnsure: DesktopEnsureResponse.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 27: {\n if (tag !== 218) {\n break;\n }\n\n message.result = {\n $case: \"metrics\",\n metrics: MetricsSample.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 28: {\n if (tag !== 226) {\n break;\n }\n\n message.result = {\n $case: \"updateMayProceed\",\n updateMayProceed: UpdateMayProceedResponse.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 29: {\n if (tag !== 234) {\n break;\n }\n\n message.result = {\n $case: \"desktopInput\",\n desktopInput: DesktopInputResponse.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 30: {\n if (tag !== 242) {\n break;\n }\n\n message.result = {\n $case: \"desktopScreenshot\",\n desktopScreenshot: DesktopScreenshotResponse.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 31: {\n if (tag !== 250) {\n break;\n }\n\n message.result = { $case: \"opStart\", opStart: OpStarted.decode(reader, reader.uint32()) };\n continue;\n }\n case 32: {\n if (tag !== 258) {\n break;\n }\n\n message.result = {\n $case: \"opStatus\",\n opStatus: OpStatus.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 35: {\n if (tag !== 282) {\n break;\n }\n\n message.result = {\n $case: \"writeChunk\",\n writeChunk: WriteChunkAck.decode(reader, reader.uint32()),\n };\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): ControlResponse {\n return {\n requestId: isSet(object.requestId)\n ? globalThis.String(object.requestId)\n : isSet(object.request_id)\n ? globalThis.String(object.request_id)\n : \"\",\n error: isSet(object.error) ? AgentError.fromJSON(object.error) : undefined,\n result: isSet(object.ping)\n ? { $case: \"ping\", ping: PingResponse.fromJSON(object.ping) }\n : isSet(object.hello)\n ? { $case: \"hello\", hello: HelloAck.fromJSON(object.hello) }\n : isSet(object.resume)\n ? { $case: \"resume\", resume: ResumeResponse.fromJSON(object.resume) }\n : isSet(object.exec)\n ? { $case: \"exec\", exec: ExecResponse.fromJSON(object.exec) }\n : isSet(object.fsRead)\n ? { $case: \"fsRead\", fsRead: FsReadResponse.fromJSON(object.fsRead) }\n : isSet(object.fs_read)\n ? { $case: \"fsRead\", fsRead: FsReadResponse.fromJSON(object.fs_read) }\n : isSet(object.fsWrite)\n ? { $case: \"fsWrite\", fsWrite: FsWriteResponse.fromJSON(object.fsWrite) }\n : isSet(object.fs_write)\n ? { $case: \"fsWrite\", fsWrite: FsWriteResponse.fromJSON(object.fs_write) }\n : isSet(object.fsList)\n ? { $case: \"fsList\", fsList: FsListResponse.fromJSON(object.fsList) }\n : isSet(object.fs_list)\n ? { $case: \"fsList\", fsList: FsListResponse.fromJSON(object.fs_list) }\n : isSet(object.fsMkdir)\n ? {\n $case: \"fsMkdir\",\n fsMkdir: FsMkdirResponse.fromJSON(object.fsMkdir),\n }\n : isSet(object.fs_mkdir)\n ? {\n $case: \"fsMkdir\",\n fsMkdir: FsMkdirResponse.fromJSON(object.fs_mkdir),\n }\n : isSet(object.fsMove)\n ? {\n $case: \"fsMove\",\n fsMove: FsMoveResponse.fromJSON(object.fsMove),\n }\n : isSet(object.fs_move)\n ? {\n $case: \"fsMove\",\n fsMove: FsMoveResponse.fromJSON(object.fs_move),\n }\n : isSet(object.fsStat)\n ? {\n $case: \"fsStat\",\n fsStat: FsStatResponse.fromJSON(object.fsStat),\n }\n : isSet(object.fs_stat)\n ? {\n $case: \"fsStat\",\n fsStat: FsStatResponse.fromJSON(object.fs_stat),\n }\n : isSet(object.fsRemove)\n ? {\n $case: \"fsRemove\",\n fsRemove: FsRemoveResponse.fromJSON(object.fsRemove),\n }\n : isSet(object.fs_remove)\n ? {\n $case: \"fsRemove\",\n fsRemove: FsRemoveResponse.fromJSON(object.fs_remove),\n }\n : isSet(object.git)\n ? {\n $case: \"git\",\n git: GitResponse.fromJSON(object.git),\n }\n : isSet(object.ptyOpen)\n ? {\n $case: \"ptyOpen\",\n ptyOpen: PtyOpenResponse.fromJSON(object.ptyOpen),\n }\n : isSet(object.pty_open)\n ? {\n $case: \"ptyOpen\",\n ptyOpen: PtyOpenResponse.fromJSON(\n object.pty_open,\n ),\n }\n : isSet(object.ptyWrite)\n ? {\n $case: \"ptyWrite\",\n ptyWrite: PtyWriteResponse.fromJSON(\n object.ptyWrite,\n ),\n }\n : isSet(object.pty_write)\n ? {\n $case: \"ptyWrite\",\n ptyWrite: PtyWriteResponse.fromJSON(\n object.pty_write,\n ),\n }\n : isSet(object.ptyResize)\n ? {\n $case: \"ptyResize\",\n ptyResize: PtyResizeResponse.fromJSON(\n object.ptyResize,\n ),\n }\n : isSet(object.pty_resize)\n ? {\n $case: \"ptyResize\",\n ptyResize: PtyResizeResponse.fromJSON(\n object.pty_resize,\n ),\n }\n : isSet(object.ptyClose)\n ? {\n $case: \"ptyClose\",\n ptyClose: PtyCloseResponse.fromJSON(\n object.ptyClose,\n ),\n }\n : isSet(object.pty_close)\n ? {\n $case: \"ptyClose\",\n ptyClose: PtyCloseResponse.fromJSON(\n object.pty_close,\n ),\n }\n : isSet(object.desktopEnsure)\n ? {\n $case: \"desktopEnsure\",\n desktopEnsure:\n DesktopEnsureResponse.fromJSON(\n object.desktopEnsure,\n ),\n }\n : isSet(object.desktop_ensure)\n ? {\n $case: \"desktopEnsure\",\n desktopEnsure:\n DesktopEnsureResponse.fromJSON(\n object.desktop_ensure,\n ),\n }\n : isSet(object.metrics)\n ? {\n $case: \"metrics\",\n metrics:\n MetricsSample.fromJSON(\n object.metrics,\n ),\n }\n : isSet(object.updateMayProceed)\n ? {\n $case: \"updateMayProceed\",\n updateMayProceed:\n UpdateMayProceedResponse.fromJSON(\n object.updateMayProceed,\n ),\n }\n : isSet(\n object.update_may_proceed,\n )\n ? {\n $case: \"updateMayProceed\",\n updateMayProceed:\n UpdateMayProceedResponse.fromJSON(\n object.update_may_proceed,\n ),\n }\n : isSet(object.desktopInput)\n ? {\n $case: \"desktopInput\",\n desktopInput:\n DesktopInputResponse.fromJSON(\n object.desktopInput,\n ),\n }\n : isSet(\n object.desktop_input,\n )\n ? {\n $case: \"desktopInput\",\n desktopInput:\n DesktopInputResponse.fromJSON(\n object.desktop_input,\n ),\n }\n : isSet(\n object.desktopScreenshot,\n )\n ? {\n $case:\n \"desktopScreenshot\",\n desktopScreenshot:\n DesktopScreenshotResponse.fromJSON(\n object.desktopScreenshot,\n ),\n }\n : isSet(\n object.desktop_screenshot,\n )\n ? {\n $case:\n \"desktopScreenshot\",\n desktopScreenshot:\n DesktopScreenshotResponse.fromJSON(\n object.desktop_screenshot,\n ),\n }\n : isSet(\n object.opStart,\n )\n ? {\n $case:\n \"opStart\",\n opStart:\n OpStarted.fromJSON(\n object.opStart,\n ),\n }\n : isSet(\n object.op_start,\n )\n ? {\n $case:\n \"opStart\",\n opStart:\n OpStarted.fromJSON(\n object.op_start,\n ),\n }\n : isSet(\n object.opStatus,\n )\n ? {\n $case:\n \"opStatus\",\n opStatus:\n OpStatus.fromJSON(\n object.opStatus,\n ),\n }\n : isSet(\n object.op_status,\n )\n ? {\n $case:\n \"opStatus\",\n opStatus:\n OpStatus.fromJSON(\n object.op_status,\n ),\n }\n : isSet(\n object.writeChunk,\n )\n ? {\n $case:\n \"writeChunk\",\n writeChunk:\n WriteChunkAck.fromJSON(\n object.writeChunk,\n ),\n }\n : isSet(\n object.write_chunk,\n )\n ? {\n $case:\n \"writeChunk\",\n writeChunk:\n WriteChunkAck.fromJSON(\n object.write_chunk,\n ),\n }\n : undefined,\n };\n },\n\n toJSON(message: ControlResponse): unknown {\n const obj: any = {};\n if (message.requestId !== \"\") {\n obj.requestId = message.requestId;\n }\n if (message.error !== undefined) {\n obj.error = AgentError.toJSON(message.error);\n }\n if (message.result?.$case === \"ping\") {\n obj.ping = PingResponse.toJSON(message.result.ping);\n } else if (message.result?.$case === \"hello\") {\n obj.hello = HelloAck.toJSON(message.result.hello);\n } else if (message.result?.$case === \"resume\") {\n obj.resume = ResumeResponse.toJSON(message.result.resume);\n } else if (message.result?.$case === \"exec\") {\n obj.exec = ExecResponse.toJSON(message.result.exec);\n } else if (message.result?.$case === \"fsRead\") {\n obj.fsRead = FsReadResponse.toJSON(message.result.fsRead);\n } else if (message.result?.$case === \"fsWrite\") {\n obj.fsWrite = FsWriteResponse.toJSON(message.result.fsWrite);\n } else if (message.result?.$case === \"fsList\") {\n obj.fsList = FsListResponse.toJSON(message.result.fsList);\n } else if (message.result?.$case === \"fsMkdir\") {\n obj.fsMkdir = FsMkdirResponse.toJSON(message.result.fsMkdir);\n } else if (message.result?.$case === \"fsMove\") {\n obj.fsMove = FsMoveResponse.toJSON(message.result.fsMove);\n } else if (message.result?.$case === \"fsStat\") {\n obj.fsStat = FsStatResponse.toJSON(message.result.fsStat);\n } else if (message.result?.$case === \"fsRemove\") {\n obj.fsRemove = FsRemoveResponse.toJSON(message.result.fsRemove);\n } else if (message.result?.$case === \"git\") {\n obj.git = GitResponse.toJSON(message.result.git);\n } else if (message.result?.$case === \"ptyOpen\") {\n obj.ptyOpen = PtyOpenResponse.toJSON(message.result.ptyOpen);\n } else if (message.result?.$case === \"ptyWrite\") {\n obj.ptyWrite = PtyWriteResponse.toJSON(message.result.ptyWrite);\n } else if (message.result?.$case === \"ptyResize\") {\n obj.ptyResize = PtyResizeResponse.toJSON(message.result.ptyResize);\n } else if (message.result?.$case === \"ptyClose\") {\n obj.ptyClose = PtyCloseResponse.toJSON(message.result.ptyClose);\n } else if (message.result?.$case === \"desktopEnsure\") {\n obj.desktopEnsure = DesktopEnsureResponse.toJSON(message.result.desktopEnsure);\n } else if (message.result?.$case === \"metrics\") {\n obj.metrics = MetricsSample.toJSON(message.result.metrics);\n } else if (message.result?.$case === \"updateMayProceed\") {\n obj.updateMayProceed = UpdateMayProceedResponse.toJSON(message.result.updateMayProceed);\n } else if (message.result?.$case === \"desktopInput\") {\n obj.desktopInput = DesktopInputResponse.toJSON(message.result.desktopInput);\n } else if (message.result?.$case === \"desktopScreenshot\") {\n obj.desktopScreenshot = DesktopScreenshotResponse.toJSON(message.result.desktopScreenshot);\n } else if (message.result?.$case === \"opStart\") {\n obj.opStart = OpStarted.toJSON(message.result.opStart);\n } else if (message.result?.$case === \"opStatus\") {\n obj.opStatus = OpStatus.toJSON(message.result.opStatus);\n } else if (message.result?.$case === \"writeChunk\") {\n obj.writeChunk = WriteChunkAck.toJSON(message.result.writeChunk);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<ControlResponse>, I>>(base?: I): ControlResponse {\n return ControlResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<ControlResponse>, I>>(object: I): ControlResponse {\n const message = createBaseControlResponse();\n message.requestId = object.requestId ?? \"\";\n message.error =\n object.error !== undefined && object.error !== null\n ? AgentError.fromPartial(object.error)\n : undefined;\n switch (object.result?.$case) {\n case \"ping\": {\n if (object.result?.ping !== undefined && object.result?.ping !== null) {\n message.result = { $case: \"ping\", ping: PingResponse.fromPartial(object.result.ping) };\n }\n break;\n }\n case \"hello\": {\n if (object.result?.hello !== undefined && object.result?.hello !== null) {\n message.result = { $case: \"hello\", hello: HelloAck.fromPartial(object.result.hello) };\n }\n break;\n }\n case \"resume\": {\n if (object.result?.resume !== undefined && object.result?.resume !== null) {\n message.result = {\n $case: \"resume\",\n resume: ResumeResponse.fromPartial(object.result.resume),\n };\n }\n break;\n }\n case \"exec\": {\n if (object.result?.exec !== undefined && object.result?.exec !== null) {\n message.result = { $case: \"exec\", exec: ExecResponse.fromPartial(object.result.exec) };\n }\n break;\n }\n case \"fsRead\": {\n if (object.result?.fsRead !== undefined && object.result?.fsRead !== null) {\n message.result = {\n $case: \"fsRead\",\n fsRead: FsReadResponse.fromPartial(object.result.fsRead),\n };\n }\n break;\n }\n case \"fsWrite\": {\n if (object.result?.fsWrite !== undefined && object.result?.fsWrite !== null) {\n message.result = {\n $case: \"fsWrite\",\n fsWrite: FsWriteResponse.fromPartial(object.result.fsWrite),\n };\n }\n break;\n }\n case \"fsList\": {\n if (object.result?.fsList !== undefined && object.result?.fsList !== null) {\n message.result = {\n $case: \"fsList\",\n fsList: FsListResponse.fromPartial(object.result.fsList),\n };\n }\n break;\n }\n case \"fsMkdir\": {\n if (object.result?.fsMkdir !== undefined && object.result?.fsMkdir !== null) {\n message.result = {\n $case: \"fsMkdir\",\n fsMkdir: FsMkdirResponse.fromPartial(object.result.fsMkdir),\n };\n }\n break;\n }\n case \"fsMove\": {\n if (object.result?.fsMove !== undefined && object.result?.fsMove !== null) {\n message.result = {\n $case: \"fsMove\",\n fsMove: FsMoveResponse.fromPartial(object.result.fsMove),\n };\n }\n break;\n }\n case \"fsStat\": {\n if (object.result?.fsStat !== undefined && object.result?.fsStat !== null) {\n message.result = {\n $case: \"fsStat\",\n fsStat: FsStatResponse.fromPartial(object.result.fsStat),\n };\n }\n break;\n }\n case \"fsRemove\": {\n if (object.result?.fsRemove !== undefined && object.result?.fsRemove !== null) {\n message.result = {\n $case: \"fsRemove\",\n fsRemove: FsRemoveResponse.fromPartial(object.result.fsRemove),\n };\n }\n break;\n }\n case \"git\": {\n if (object.result?.git !== undefined && object.result?.git !== null) {\n message.result = { $case: \"git\", git: GitResponse.fromPartial(object.result.git) };\n }\n break;\n }\n case \"ptyOpen\": {\n if (object.result?.ptyOpen !== undefined && object.result?.ptyOpen !== null) {\n message.result = {\n $case: \"ptyOpen\",\n ptyOpen: PtyOpenResponse.fromPartial(object.result.ptyOpen),\n };\n }\n break;\n }\n case \"ptyWrite\": {\n if (object.result?.ptyWrite !== undefined && object.result?.ptyWrite !== null) {\n message.result = {\n $case: \"ptyWrite\",\n ptyWrite: PtyWriteResponse.fromPartial(object.result.ptyWrite),\n };\n }\n break;\n }\n case \"ptyResize\": {\n if (object.result?.ptyResize !== undefined && object.result?.ptyResize !== null) {\n message.result = {\n $case: \"ptyResize\",\n ptyResize: PtyResizeResponse.fromPartial(object.result.ptyResize),\n };\n }\n break;\n }\n case \"ptyClose\": {\n if (object.result?.ptyClose !== undefined && object.result?.ptyClose !== null) {\n message.result = {\n $case: \"ptyClose\",\n ptyClose: PtyCloseResponse.fromPartial(object.result.ptyClose),\n };\n }\n break;\n }\n case \"desktopEnsure\": {\n if (object.result?.desktopEnsure !== undefined && object.result?.desktopEnsure !== null) {\n message.result = {\n $case: \"desktopEnsure\",\n desktopEnsure: DesktopEnsureResponse.fromPartial(object.result.desktopEnsure),\n };\n }\n break;\n }\n case \"metrics\": {\n if (object.result?.metrics !== undefined && object.result?.metrics !== null) {\n message.result = {\n $case: \"metrics\",\n metrics: MetricsSample.fromPartial(object.result.metrics),\n };\n }\n break;\n }\n case \"updateMayProceed\": {\n if (\n object.result?.updateMayProceed !== undefined &&\n object.result?.updateMayProceed !== null\n ) {\n message.result = {\n $case: \"updateMayProceed\",\n updateMayProceed: UpdateMayProceedResponse.fromPartial(object.result.updateMayProceed),\n };\n }\n break;\n }\n case \"desktopInput\": {\n if (object.result?.desktopInput !== undefined && object.result?.desktopInput !== null) {\n message.result = {\n $case: \"desktopInput\",\n desktopInput: DesktopInputResponse.fromPartial(object.result.desktopInput),\n };\n }\n break;\n }\n case \"desktopScreenshot\": {\n if (\n object.result?.desktopScreenshot !== undefined &&\n object.result?.desktopScreenshot !== null\n ) {\n message.result = {\n $case: \"desktopScreenshot\",\n desktopScreenshot: DesktopScreenshotResponse.fromPartial(\n object.result.desktopScreenshot,\n ),\n };\n }\n break;\n }\n case \"opStart\": {\n if (object.result?.opStart !== undefined && object.result?.opStart !== null) {\n message.result = {\n $case: \"opStart\",\n opStart: OpStarted.fromPartial(object.result.opStart),\n };\n }\n break;\n }\n case \"opStatus\": {\n if (object.result?.opStatus !== undefined && object.result?.opStatus !== null) {\n message.result = {\n $case: \"opStatus\",\n opStatus: OpStatus.fromPartial(object.result.opStatus),\n };\n }\n break;\n }\n case \"writeChunk\": {\n if (object.result?.writeChunk !== undefined && object.result?.writeChunk !== null) {\n message.result = {\n $case: \"writeChunk\",\n writeChunk: WriteChunkAck.fromPartial(object.result.writeChunk),\n };\n }\n break;\n }\n }\n return message;\n },\n};\n\nfunction createBaseHelloAck(): HelloAck {\n return { epoch: 0, resumeToken: \"\", heartbeatIntervalMs: 0 };\n}\n\nexport const HelloAck: MessageFns<HelloAck> = {\n encode(message: HelloAck, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.epoch !== 0) {\n writer.uint32(8).uint32(message.epoch);\n }\n if (message.resumeToken !== \"\") {\n writer.uint32(18).string(message.resumeToken);\n }\n if (message.heartbeatIntervalMs !== 0) {\n writer.uint32(24).uint32(message.heartbeatIntervalMs);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): HelloAck {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHelloAck();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.epoch = reader.uint32();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.resumeToken = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.heartbeatIntervalMs = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): HelloAck {\n return {\n epoch: isSet(object.epoch) ? globalThis.Number(object.epoch) : 0,\n resumeToken: isSet(object.resumeToken)\n ? globalThis.String(object.resumeToken)\n : isSet(object.resume_token)\n ? globalThis.String(object.resume_token)\n : \"\",\n heartbeatIntervalMs: isSet(object.heartbeatIntervalMs)\n ? globalThis.Number(object.heartbeatIntervalMs)\n : isSet(object.heartbeat_interval_ms)\n ? globalThis.Number(object.heartbeat_interval_ms)\n : 0,\n };\n },\n\n toJSON(message: HelloAck): unknown {\n const obj: any = {};\n if (message.epoch !== 0) {\n obj.epoch = Math.round(message.epoch);\n }\n if (message.resumeToken !== \"\") {\n obj.resumeToken = message.resumeToken;\n }\n if (message.heartbeatIntervalMs !== 0) {\n obj.heartbeatIntervalMs = Math.round(message.heartbeatIntervalMs);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<HelloAck>, I>>(base?: I): HelloAck {\n return HelloAck.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<HelloAck>, I>>(object: I): HelloAck {\n const message = createBaseHelloAck();\n message.epoch = object.epoch ?? 0;\n message.resumeToken = object.resumeToken ?? \"\";\n message.heartbeatIntervalMs = object.heartbeatIntervalMs ?? 0;\n return message;\n },\n};\n\nfunction createBaseAgentEvent(): AgentEvent {\n return { agentId: \"\", event: undefined };\n}\n\nexport const AgentEvent: MessageFns<AgentEvent> = {\n encode(message: AgentEvent, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.agentId !== \"\") {\n writer.uint32(10).string(message.agentId);\n }\n switch (message.event?.$case) {\n case \"heartbeat\":\n Heartbeat.encode(message.event.heartbeat, writer.uint32(82).fork()).join();\n break;\n case \"goingOffline\":\n GoingOffline.encode(message.event.goingOffline, writer.uint32(90).fork()).join();\n break;\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): AgentEvent {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAgentEvent();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.agentId = reader.string();\n continue;\n }\n case 10: {\n if (tag !== 82) {\n break;\n }\n\n message.event = {\n $case: \"heartbeat\",\n heartbeat: Heartbeat.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 11: {\n if (tag !== 90) {\n break;\n }\n\n message.event = {\n $case: \"goingOffline\",\n goingOffline: GoingOffline.decode(reader, reader.uint32()),\n };\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): AgentEvent {\n return {\n agentId: isSet(object.agentId)\n ? globalThis.String(object.agentId)\n : isSet(object.agent_id)\n ? globalThis.String(object.agent_id)\n : \"\",\n event: isSet(object.heartbeat)\n ? { $case: \"heartbeat\", heartbeat: Heartbeat.fromJSON(object.heartbeat) }\n : isSet(object.goingOffline)\n ? { $case: \"goingOffline\", goingOffline: GoingOffline.fromJSON(object.goingOffline) }\n : isSet(object.going_offline)\n ? { $case: \"goingOffline\", goingOffline: GoingOffline.fromJSON(object.going_offline) }\n : undefined,\n };\n },\n\n toJSON(message: AgentEvent): unknown {\n const obj: any = {};\n if (message.agentId !== \"\") {\n obj.agentId = message.agentId;\n }\n if (message.event?.$case === \"heartbeat\") {\n obj.heartbeat = Heartbeat.toJSON(message.event.heartbeat);\n } else if (message.event?.$case === \"goingOffline\") {\n obj.goingOffline = GoingOffline.toJSON(message.event.goingOffline);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<AgentEvent>, I>>(base?: I): AgentEvent {\n return AgentEvent.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<AgentEvent>, I>>(object: I): AgentEvent {\n const message = createBaseAgentEvent();\n message.agentId = object.agentId ?? \"\";\n switch (object.event?.$case) {\n case \"heartbeat\": {\n if (object.event?.heartbeat !== undefined && object.event?.heartbeat !== null) {\n message.event = {\n $case: \"heartbeat\",\n heartbeat: Heartbeat.fromPartial(object.event.heartbeat),\n };\n }\n break;\n }\n case \"goingOffline\": {\n if (object.event?.goingOffline !== undefined && object.event?.goingOffline !== null) {\n message.event = {\n $case: \"goingOffline\",\n goingOffline: GoingOffline.fromPartial(object.event.goingOffline),\n };\n }\n break;\n }\n }\n return message;\n },\n};\n\nfunction createBaseAgentEventAck(): AgentEventAck {\n return { ack: undefined };\n}\n\nexport const AgentEventAck: MessageFns<AgentEventAck> = {\n encode(message: AgentEventAck, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n switch (message.ack?.$case) {\n case \"heartbeat\":\n HeartbeatAck.encode(message.ack.heartbeat, writer.uint32(82).fork()).join();\n break;\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): AgentEventAck {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAgentEventAck();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 10: {\n if (tag !== 82) {\n break;\n }\n\n message.ack = {\n $case: \"heartbeat\",\n heartbeat: HeartbeatAck.decode(reader, reader.uint32()),\n };\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): AgentEventAck {\n return {\n ack: isSet(object.heartbeat)\n ? { $case: \"heartbeat\", heartbeat: HeartbeatAck.fromJSON(object.heartbeat) }\n : undefined,\n };\n },\n\n toJSON(message: AgentEventAck): unknown {\n const obj: any = {};\n if (message.ack?.$case === \"heartbeat\") {\n obj.heartbeat = HeartbeatAck.toJSON(message.ack.heartbeat);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<AgentEventAck>, I>>(base?: I): AgentEventAck {\n return AgentEventAck.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<AgentEventAck>, I>>(object: I): AgentEventAck {\n const message = createBaseAgentEventAck();\n switch (object.ack?.$case) {\n case \"heartbeat\": {\n if (object.ack?.heartbeat !== undefined && object.ack?.heartbeat !== null) {\n message.ack = {\n $case: \"heartbeat\",\n heartbeat: HeartbeatAck.fromPartial(object.ack.heartbeat),\n };\n }\n break;\n }\n }\n return message;\n },\n};\n\nfunction createBaseStreamChannel(): StreamChannel {\n return { channelId: \"\", workspaceId: \"\", agentId: \"\", kind: 0, port: 0 };\n}\n\nexport const StreamChannel: MessageFns<StreamChannel> = {\n encode(message: StreamChannel, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.channelId !== \"\") {\n writer.uint32(10).string(message.channelId);\n }\n if (message.workspaceId !== \"\") {\n writer.uint32(18).string(message.workspaceId);\n }\n if (message.agentId !== \"\") {\n writer.uint32(26).string(message.agentId);\n }\n if (message.kind !== 0) {\n writer.uint32(32).int32(message.kind);\n }\n if (message.port !== 0) {\n writer.uint32(40).uint32(message.port);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): StreamChannel {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStreamChannel();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.channelId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.workspaceId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.agentId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.kind = reader.int32() as any;\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.port = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): StreamChannel {\n return {\n channelId: isSet(object.channelId)\n ? globalThis.String(object.channelId)\n : isSet(object.channel_id)\n ? globalThis.String(object.channel_id)\n : \"\",\n workspaceId: isSet(object.workspaceId)\n ? globalThis.String(object.workspaceId)\n : isSet(object.workspace_id)\n ? globalThis.String(object.workspace_id)\n : \"\",\n agentId: isSet(object.agentId)\n ? globalThis.String(object.agentId)\n : isSet(object.agent_id)\n ? globalThis.String(object.agent_id)\n : \"\",\n kind: isSet(object.kind) ? streamKindFromJSON(object.kind) : 0,\n port: isSet(object.port) ? globalThis.Number(object.port) : 0,\n };\n },\n\n toJSON(message: StreamChannel): unknown {\n const obj: any = {};\n if (message.channelId !== \"\") {\n obj.channelId = message.channelId;\n }\n if (message.workspaceId !== \"\") {\n obj.workspaceId = message.workspaceId;\n }\n if (message.agentId !== \"\") {\n obj.agentId = message.agentId;\n }\n if (message.kind !== 0) {\n obj.kind = streamKindToJSON(message.kind);\n }\n if (message.port !== 0) {\n obj.port = Math.round(message.port);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<StreamChannel>, I>>(base?: I): StreamChannel {\n return StreamChannel.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<StreamChannel>, I>>(object: I): StreamChannel {\n const message = createBaseStreamChannel();\n message.channelId = object.channelId ?? \"\";\n message.workspaceId = object.workspaceId ?? \"\";\n message.agentId = object.agentId ?? \"\";\n message.kind = object.kind ?? 0;\n message.port = object.port ?? 0;\n return message;\n },\n};\n\nfunction createBaseStreamOpen(): StreamOpen {\n return { channel: undefined, token: \"\", role: 0, resumeFromSeq: \"0\" };\n}\n\nexport const StreamOpen: MessageFns<StreamOpen> = {\n encode(message: StreamOpen, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.channel !== undefined) {\n StreamChannel.encode(message.channel, writer.uint32(10).fork()).join();\n }\n if (message.token !== \"\") {\n writer.uint32(18).string(message.token);\n }\n if (message.role !== 0) {\n writer.uint32(24).int32(message.role);\n }\n if (message.resumeFromSeq !== \"0\") {\n writer.uint32(32).uint64(message.resumeFromSeq);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): StreamOpen {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStreamOpen();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.channel = StreamChannel.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.token = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.role = reader.int32() as any;\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.resumeFromSeq = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): StreamOpen {\n return {\n channel: isSet(object.channel) ? StreamChannel.fromJSON(object.channel) : undefined,\n token: isSet(object.token) ? globalThis.String(object.token) : \"\",\n role: isSet(object.role) ? streamRoleFromJSON(object.role) : 0,\n resumeFromSeq: isSet(object.resumeFromSeq)\n ? globalThis.String(object.resumeFromSeq)\n : isSet(object.resume_from_seq)\n ? globalThis.String(object.resume_from_seq)\n : \"0\",\n };\n },\n\n toJSON(message: StreamOpen): unknown {\n const obj: any = {};\n if (message.channel !== undefined) {\n obj.channel = StreamChannel.toJSON(message.channel);\n }\n if (message.token !== \"\") {\n obj.token = message.token;\n }\n if (message.role !== 0) {\n obj.role = streamRoleToJSON(message.role);\n }\n if (message.resumeFromSeq !== \"0\") {\n obj.resumeFromSeq = message.resumeFromSeq;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<StreamOpen>, I>>(base?: I): StreamOpen {\n return StreamOpen.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<StreamOpen>, I>>(object: I): StreamOpen {\n const message = createBaseStreamOpen();\n message.channel =\n object.channel !== undefined && object.channel !== null\n ? StreamChannel.fromPartial(object.channel)\n : undefined;\n message.token = object.token ?? \"\";\n message.role = object.role ?? 0;\n message.resumeFromSeq = object.resumeFromSeq ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseStreamOpenAck(): StreamOpenAck {\n return { accepted: false, error: undefined, resumeFromSeq: \"0\" };\n}\n\nexport const StreamOpenAck: MessageFns<StreamOpenAck> = {\n encode(message: StreamOpenAck, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.accepted !== false) {\n writer.uint32(8).bool(message.accepted);\n }\n if (message.error !== undefined) {\n AgentError.encode(message.error, writer.uint32(18).fork()).join();\n }\n if (message.resumeFromSeq !== \"0\") {\n writer.uint32(24).uint64(message.resumeFromSeq);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): StreamOpenAck {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStreamOpenAck();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.accepted = reader.bool();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.error = AgentError.decode(reader, reader.uint32());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.resumeFromSeq = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): StreamOpenAck {\n return {\n accepted: isSet(object.accepted) ? globalThis.Boolean(object.accepted) : false,\n error: isSet(object.error) ? AgentError.fromJSON(object.error) : undefined,\n resumeFromSeq: isSet(object.resumeFromSeq)\n ? globalThis.String(object.resumeFromSeq)\n : isSet(object.resume_from_seq)\n ? globalThis.String(object.resume_from_seq)\n : \"0\",\n };\n },\n\n toJSON(message: StreamOpenAck): unknown {\n const obj: any = {};\n if (message.accepted !== false) {\n obj.accepted = message.accepted;\n }\n if (message.error !== undefined) {\n obj.error = AgentError.toJSON(message.error);\n }\n if (message.resumeFromSeq !== \"0\") {\n obj.resumeFromSeq = message.resumeFromSeq;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<StreamOpenAck>, I>>(base?: I): StreamOpenAck {\n return StreamOpenAck.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<StreamOpenAck>, I>>(object: I): StreamOpenAck {\n const message = createBaseStreamOpenAck();\n message.accepted = object.accepted ?? false;\n message.error =\n object.error !== undefined && object.error !== null\n ? AgentError.fromPartial(object.error)\n : undefined;\n message.resumeFromSeq = object.resumeFromSeq ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseStreamFrame(): StreamFrame {\n return { channelId: \"\", seq: \"0\", data: new Uint8Array(0), producedAtMs: \"0\" };\n}\n\nexport const StreamFrame: MessageFns<StreamFrame> = {\n encode(message: StreamFrame, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.channelId !== \"\") {\n writer.uint32(10).string(message.channelId);\n }\n if (message.seq !== \"0\") {\n writer.uint32(16).uint64(message.seq);\n }\n if (message.data.length !== 0) {\n writer.uint32(26).bytes(message.data);\n }\n if (message.producedAtMs !== \"0\") {\n writer.uint32(32).int64(message.producedAtMs);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): StreamFrame {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStreamFrame();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.channelId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.seq = reader.uint64().toString();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.data = reader.bytes();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.producedAtMs = reader.int64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): StreamFrame {\n return {\n channelId: isSet(object.channelId)\n ? globalThis.String(object.channelId)\n : isSet(object.channel_id)\n ? globalThis.String(object.channel_id)\n : \"\",\n seq: isSet(object.seq) ? globalThis.String(object.seq) : \"0\",\n data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array(0),\n producedAtMs: isSet(object.producedAtMs)\n ? globalThis.String(object.producedAtMs)\n : isSet(object.produced_at_ms)\n ? globalThis.String(object.produced_at_ms)\n : \"0\",\n };\n },\n\n toJSON(message: StreamFrame): unknown {\n const obj: any = {};\n if (message.channelId !== \"\") {\n obj.channelId = message.channelId;\n }\n if (message.seq !== \"0\") {\n obj.seq = message.seq;\n }\n if (message.data.length !== 0) {\n obj.data = base64FromBytes(message.data);\n }\n if (message.producedAtMs !== \"0\") {\n obj.producedAtMs = message.producedAtMs;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<StreamFrame>, I>>(base?: I): StreamFrame {\n return StreamFrame.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<StreamFrame>, I>>(object: I): StreamFrame {\n const message = createBaseStreamFrame();\n message.channelId = object.channelId ?? \"\";\n message.seq = object.seq ?? \"0\";\n message.data = object.data ?? new Uint8Array(0);\n message.producedAtMs = object.producedAtMs ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseStreamClose(): StreamClose {\n return { channelId: \"\", reason: 0, message: \"\" };\n}\n\nexport const StreamClose: MessageFns<StreamClose> = {\n encode(message: StreamClose, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.channelId !== \"\") {\n writer.uint32(10).string(message.channelId);\n }\n if (message.reason !== 0) {\n writer.uint32(16).int32(message.reason);\n }\n if (message.message !== \"\") {\n writer.uint32(26).string(message.message);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): StreamClose {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStreamClose();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.channelId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.reason = reader.int32() as any;\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.message = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): StreamClose {\n return {\n channelId: isSet(object.channelId)\n ? globalThis.String(object.channelId)\n : isSet(object.channel_id)\n ? globalThis.String(object.channel_id)\n : \"\",\n reason: isSet(object.reason) ? streamCloseReasonFromJSON(object.reason) : 0,\n message: isSet(object.message) ? globalThis.String(object.message) : \"\",\n };\n },\n\n toJSON(message: StreamClose): unknown {\n const obj: any = {};\n if (message.channelId !== \"\") {\n obj.channelId = message.channelId;\n }\n if (message.reason !== 0) {\n obj.reason = streamCloseReasonToJSON(message.reason);\n }\n if (message.message !== \"\") {\n obj.message = message.message;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<StreamClose>, I>>(base?: I): StreamClose {\n return StreamClose.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<StreamClose>, I>>(object: I): StreamClose {\n const message = createBaseStreamClose();\n message.channelId = object.channelId ?? \"\";\n message.reason = object.reason ?? 0;\n message.message = object.message ?? \"\";\n return message;\n },\n};\n\nfunction createBaseDesktopInput(): DesktopInput {\n return { channelId: \"\", event: undefined };\n}\n\nexport const DesktopInput: MessageFns<DesktopInput> = {\n encode(message: DesktopInput, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.channelId !== \"\") {\n writer.uint32(10).string(message.channelId);\n }\n switch (message.event?.$case) {\n case \"pointer\":\n PointerEvent.encode(message.event.pointer, writer.uint32(18).fork()).join();\n break;\n case \"key\":\n KeyEvent.encode(message.event.key, writer.uint32(26).fork()).join();\n break;\n case \"scroll\":\n ScrollEvent.encode(message.event.scroll, writer.uint32(34).fork()).join();\n break;\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DesktopInput {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDesktopInput();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.channelId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.event = {\n $case: \"pointer\",\n pointer: PointerEvent.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.event = { $case: \"key\", key: KeyEvent.decode(reader, reader.uint32()) };\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.event = { $case: \"scroll\", scroll: ScrollEvent.decode(reader, reader.uint32()) };\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): DesktopInput {\n return {\n channelId: isSet(object.channelId)\n ? globalThis.String(object.channelId)\n : isSet(object.channel_id)\n ? globalThis.String(object.channel_id)\n : \"\",\n event: isSet(object.pointer)\n ? { $case: \"pointer\", pointer: PointerEvent.fromJSON(object.pointer) }\n : isSet(object.key)\n ? { $case: \"key\", key: KeyEvent.fromJSON(object.key) }\n : isSet(object.scroll)\n ? { $case: \"scroll\", scroll: ScrollEvent.fromJSON(object.scroll) }\n : undefined,\n };\n },\n\n toJSON(message: DesktopInput): unknown {\n const obj: any = {};\n if (message.channelId !== \"\") {\n obj.channelId = message.channelId;\n }\n if (message.event?.$case === \"pointer\") {\n obj.pointer = PointerEvent.toJSON(message.event.pointer);\n } else if (message.event?.$case === \"key\") {\n obj.key = KeyEvent.toJSON(message.event.key);\n } else if (message.event?.$case === \"scroll\") {\n obj.scroll = ScrollEvent.toJSON(message.event.scroll);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<DesktopInput>, I>>(base?: I): DesktopInput {\n return DesktopInput.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<DesktopInput>, I>>(object: I): DesktopInput {\n const message = createBaseDesktopInput();\n message.channelId = object.channelId ?? \"\";\n switch (object.event?.$case) {\n case \"pointer\": {\n if (object.event?.pointer !== undefined && object.event?.pointer !== null) {\n message.event = {\n $case: \"pointer\",\n pointer: PointerEvent.fromPartial(object.event.pointer),\n };\n }\n break;\n }\n case \"key\": {\n if (object.event?.key !== undefined && object.event?.key !== null) {\n message.event = { $case: \"key\", key: KeyEvent.fromPartial(object.event.key) };\n }\n break;\n }\n case \"scroll\": {\n if (object.event?.scroll !== undefined && object.event?.scroll !== null) {\n message.event = { $case: \"scroll\", scroll: ScrollEvent.fromPartial(object.event.scroll) };\n }\n break;\n }\n }\n return message;\n },\n};\n\nfunction createBasePointerEvent(): PointerEvent {\n return { x: 0, y: 0, action: 0, button: 0 };\n}\n\nexport const PointerEvent: MessageFns<PointerEvent> = {\n encode(message: PointerEvent, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.x !== 0) {\n writer.uint32(8).int32(message.x);\n }\n if (message.y !== 0) {\n writer.uint32(16).int32(message.y);\n }\n if (message.action !== 0) {\n writer.uint32(24).int32(message.action);\n }\n if (message.button !== 0) {\n writer.uint32(32).int32(message.button);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PointerEvent {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePointerEvent();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.x = reader.int32();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.y = reader.int32();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.action = reader.int32() as any;\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.button = reader.int32() as any;\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PointerEvent {\n return {\n x: isSet(object.x) ? globalThis.Number(object.x) : 0,\n y: isSet(object.y) ? globalThis.Number(object.y) : 0,\n action: isSet(object.action) ? pointerActionFromJSON(object.action) : 0,\n button: isSet(object.button) ? pointerButtonFromJSON(object.button) : 0,\n };\n },\n\n toJSON(message: PointerEvent): unknown {\n const obj: any = {};\n if (message.x !== 0) {\n obj.x = Math.round(message.x);\n }\n if (message.y !== 0) {\n obj.y = Math.round(message.y);\n }\n if (message.action !== 0) {\n obj.action = pointerActionToJSON(message.action);\n }\n if (message.button !== 0) {\n obj.button = pointerButtonToJSON(message.button);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PointerEvent>, I>>(base?: I): PointerEvent {\n return PointerEvent.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PointerEvent>, I>>(object: I): PointerEvent {\n const message = createBasePointerEvent();\n message.x = object.x ?? 0;\n message.y = object.y ?? 0;\n message.action = object.action ?? 0;\n message.button = object.button ?? 0;\n return message;\n },\n};\n\nfunction createBaseKeyEvent(): KeyEvent {\n return { key: \"\", isText: false, action: 0 };\n}\n\nexport const KeyEvent: MessageFns<KeyEvent> = {\n encode(message: KeyEvent, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.isText !== false) {\n writer.uint32(16).bool(message.isText);\n }\n if (message.action !== 0) {\n writer.uint32(24).int32(message.action);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): KeyEvent {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseKeyEvent();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.isText = reader.bool();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.action = reader.int32() as any;\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): KeyEvent {\n return {\n key: isSet(object.key) ? globalThis.String(object.key) : \"\",\n isText: isSet(object.isText)\n ? globalThis.Boolean(object.isText)\n : isSet(object.is_text)\n ? globalThis.Boolean(object.is_text)\n : false,\n action: isSet(object.action) ? keyActionFromJSON(object.action) : 0,\n };\n },\n\n toJSON(message: KeyEvent): unknown {\n const obj: any = {};\n if (message.key !== \"\") {\n obj.key = message.key;\n }\n if (message.isText !== false) {\n obj.isText = message.isText;\n }\n if (message.action !== 0) {\n obj.action = keyActionToJSON(message.action);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<KeyEvent>, I>>(base?: I): KeyEvent {\n return KeyEvent.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<KeyEvent>, I>>(object: I): KeyEvent {\n const message = createBaseKeyEvent();\n message.key = object.key ?? \"\";\n message.isText = object.isText ?? false;\n message.action = object.action ?? 0;\n return message;\n },\n};\n\nfunction createBaseScrollEvent(): ScrollEvent {\n return { x: 0, y: 0, deltaX: 0, deltaY: 0 };\n}\n\nexport const ScrollEvent: MessageFns<ScrollEvent> = {\n encode(message: ScrollEvent, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.x !== 0) {\n writer.uint32(8).int32(message.x);\n }\n if (message.y !== 0) {\n writer.uint32(16).int32(message.y);\n }\n if (message.deltaX !== 0) {\n writer.uint32(24).int32(message.deltaX);\n }\n if (message.deltaY !== 0) {\n writer.uint32(32).int32(message.deltaY);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): ScrollEvent {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseScrollEvent();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.x = reader.int32();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.y = reader.int32();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.deltaX = reader.int32();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.deltaY = reader.int32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): ScrollEvent {\n return {\n x: isSet(object.x) ? globalThis.Number(object.x) : 0,\n y: isSet(object.y) ? globalThis.Number(object.y) : 0,\n deltaX: isSet(object.deltaX)\n ? globalThis.Number(object.deltaX)\n : isSet(object.delta_x)\n ? globalThis.Number(object.delta_x)\n : 0,\n deltaY: isSet(object.deltaY)\n ? globalThis.Number(object.deltaY)\n : isSet(object.delta_y)\n ? globalThis.Number(object.delta_y)\n : 0,\n };\n },\n\n toJSON(message: ScrollEvent): unknown {\n const obj: any = {};\n if (message.x !== 0) {\n obj.x = Math.round(message.x);\n }\n if (message.y !== 0) {\n obj.y = Math.round(message.y);\n }\n if (message.deltaX !== 0) {\n obj.deltaX = Math.round(message.deltaX);\n }\n if (message.deltaY !== 0) {\n obj.deltaY = Math.round(message.deltaY);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<ScrollEvent>, I>>(base?: I): ScrollEvent {\n return ScrollEvent.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<ScrollEvent>, I>>(object: I): ScrollEvent {\n const message = createBaseScrollEvent();\n message.x = object.x ?? 0;\n message.y = object.y ?? 0;\n message.deltaX = object.deltaX ?? 0;\n message.deltaY = object.deltaY ?? 0;\n return message;\n },\n};\n\nfunction bytesFromBase64(b64: string): Uint8Array {\n if ((globalThis as any).Buffer) {\n return Uint8Array.from((globalThis as any).Buffer.from(b64, \"base64\"));\n } else {\n const bin = globalThis.atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n }\n}\n\nfunction base64FromBytes(arr: Uint8Array): string {\n if ((globalThis as any).Buffer) {\n return (globalThis as any).Buffer.from(arr).toString(\"base64\");\n } else {\n const bin: string[] = [];\n arr.forEach((byte) => {\n bin.push(globalThis.String.fromCharCode(byte));\n });\n return globalThis.btoa(bin.join(\"\"));\n }\n}\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial<T> = T extends Builtin\n ? T\n : T extends globalThis.Array<infer U>\n ? globalThis.Array<DeepPartial<U>>\n : T extends ReadonlyArray<infer U>\n ? ReadonlyArray<DeepPartial<U>>\n : T extends { $case: string }\n ? { [K in keyof Omit<T, \"$case\">]?: DeepPartial<T[K]> } & { $case: T[\"$case\"] }\n : T extends {}\n ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\ntype KeysOfUnion<T> = T extends T ? keyof T : never;\nexport type Exact<P, I extends P> = P extends Builtin\n ? P\n : P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };\n\nfunction isObject(value: any): boolean {\n return typeof value === \"object\" && value !== null;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns<T> {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;\n fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;\n}\n"],"mappings":"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","names":["ErrorCode","Os","Arch","StreamKind","DeviceAuthState","FsEntryKind","GitOp","GoingOfflineReason","OpChannel","OpState","OpLostReason","StreamRole","StreamCloseReason","PointerAction","PointerButton","KeyAction"]}
1
+ {"version":3,"sources":["../src/gen/opengeni_agent.ts"],"sourcesContent":["// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.12.0\n// protoc v7.35.1\n// source: opengeni_agent.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"opengeni.agent.v1\";\n\nexport enum ErrorCode {\n ERROR_CODE_UNSPECIFIED = 0,\n /** ERROR_CODE_UNSUPPORTED - The requested op is not implemented / not permitted on this platform. */\n ERROR_CODE_UNSUPPORTED = 1,\n /** ERROR_CODE_OS - A filesystem/exec/git op failed at the OS layer (see `detail`). */\n ERROR_CODE_OS = 2,\n /** ERROR_CODE_NOT_FOUND - The path/ref/target referenced by the op does not exist. */\n ERROR_CODE_NOT_FOUND = 3,\n /** ERROR_CODE_CONSENT_REQUIRED - The op was rejected by consent/capability gating (e.g. screen-control off). */\n ERROR_CODE_CONSENT_REQUIRED = 4,\n /** ERROR_CODE_TIMEOUT - The op timed out inside the agent. */\n ERROR_CODE_TIMEOUT = 5,\n /** ERROR_CODE_DRAINING - The agent is shutting down / draining and cannot accept new work. */\n ERROR_CODE_DRAINING = 6,\n /** ERROR_CODE_PROTOCOL - A protocol-level violation (bad envelope, unknown op for this version). */\n ERROR_CODE_PROTOCOL = 7,\n /** ERROR_CODE_STREAM - A required stream channel could not be opened on the relay. */\n ERROR_CODE_STREAM = 8,\n /** ERROR_CODE_AGENT_OFFLINE - The control plane synthesized this because no agent responded (offline). */\n ERROR_CODE_AGENT_OFFLINE = 9,\n /** ERROR_CODE_FENCED - An epoch fence rejected a stale op; caller should re-resolve and retry. */\n ERROR_CODE_FENCED = 10,\n /**\n * ERROR_CODE_PAYLOAD_TOO_LARGE - The op's reply would exceed the transport's negotiated max payload and could\n * not be published (e.g. a full-res screenshot, or an unbounded file read/exec\n * output). The agent's wire-seam backstop synthesizes THIS instead of letting\n * the oversized publish fail silently and the caller time out opaquely.\n * Not retryable — the same op would produce the same oversized reply.\n */\n ERROR_CODE_PAYLOAD_TOO_LARGE = 11,\n}\n\nexport function errorCodeFromJSON(object: any): ErrorCode {\n switch (object) {\n case 0:\n case \"ERROR_CODE_UNSPECIFIED\":\n return ErrorCode.ERROR_CODE_UNSPECIFIED;\n case 1:\n case \"ERROR_CODE_UNSUPPORTED\":\n return ErrorCode.ERROR_CODE_UNSUPPORTED;\n case 2:\n case \"ERROR_CODE_OS\":\n return ErrorCode.ERROR_CODE_OS;\n case 3:\n case \"ERROR_CODE_NOT_FOUND\":\n return ErrorCode.ERROR_CODE_NOT_FOUND;\n case 4:\n case \"ERROR_CODE_CONSENT_REQUIRED\":\n return ErrorCode.ERROR_CODE_CONSENT_REQUIRED;\n case 5:\n case \"ERROR_CODE_TIMEOUT\":\n return ErrorCode.ERROR_CODE_TIMEOUT;\n case 6:\n case \"ERROR_CODE_DRAINING\":\n return ErrorCode.ERROR_CODE_DRAINING;\n case 7:\n case \"ERROR_CODE_PROTOCOL\":\n return ErrorCode.ERROR_CODE_PROTOCOL;\n case 8:\n case \"ERROR_CODE_STREAM\":\n return ErrorCode.ERROR_CODE_STREAM;\n case 9:\n case \"ERROR_CODE_AGENT_OFFLINE\":\n return ErrorCode.ERROR_CODE_AGENT_OFFLINE;\n case 10:\n case \"ERROR_CODE_FENCED\":\n return ErrorCode.ERROR_CODE_FENCED;\n case 11:\n case \"ERROR_CODE_PAYLOAD_TOO_LARGE\":\n return ErrorCode.ERROR_CODE_PAYLOAD_TOO_LARGE;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum ErrorCode\");\n }\n}\n\nexport function errorCodeToJSON(object: ErrorCode): string {\n switch (object) {\n case ErrorCode.ERROR_CODE_UNSPECIFIED:\n return \"ERROR_CODE_UNSPECIFIED\";\n case ErrorCode.ERROR_CODE_UNSUPPORTED:\n return \"ERROR_CODE_UNSUPPORTED\";\n case ErrorCode.ERROR_CODE_OS:\n return \"ERROR_CODE_OS\";\n case ErrorCode.ERROR_CODE_NOT_FOUND:\n return \"ERROR_CODE_NOT_FOUND\";\n case ErrorCode.ERROR_CODE_CONSENT_REQUIRED:\n return \"ERROR_CODE_CONSENT_REQUIRED\";\n case ErrorCode.ERROR_CODE_TIMEOUT:\n return \"ERROR_CODE_TIMEOUT\";\n case ErrorCode.ERROR_CODE_DRAINING:\n return \"ERROR_CODE_DRAINING\";\n case ErrorCode.ERROR_CODE_PROTOCOL:\n return \"ERROR_CODE_PROTOCOL\";\n case ErrorCode.ERROR_CODE_STREAM:\n return \"ERROR_CODE_STREAM\";\n case ErrorCode.ERROR_CODE_AGENT_OFFLINE:\n return \"ERROR_CODE_AGENT_OFFLINE\";\n case ErrorCode.ERROR_CODE_FENCED:\n return \"ERROR_CODE_FENCED\";\n case ErrorCode.ERROR_CODE_PAYLOAD_TOO_LARGE:\n return \"ERROR_CODE_PAYLOAD_TOO_LARGE\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum ErrorCode\");\n }\n}\n\n/** The operating system family the agent runs on. */\nexport enum Os {\n OS_UNSPECIFIED = 0,\n OS_LINUX = 1,\n OS_MACOS = 2,\n OS_WINDOWS = 3,\n}\n\nexport function osFromJSON(object: any): Os {\n switch (object) {\n case 0:\n case \"OS_UNSPECIFIED\":\n return Os.OS_UNSPECIFIED;\n case 1:\n case \"OS_LINUX\":\n return Os.OS_LINUX;\n case 2:\n case \"OS_MACOS\":\n return Os.OS_MACOS;\n case 3:\n case \"OS_WINDOWS\":\n return Os.OS_WINDOWS;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum Os\");\n }\n}\n\nexport function osToJSON(object: Os): string {\n switch (object) {\n case Os.OS_UNSPECIFIED:\n return \"OS_UNSPECIFIED\";\n case Os.OS_LINUX:\n return \"OS_LINUX\";\n case Os.OS_MACOS:\n return \"OS_MACOS\";\n case Os.OS_WINDOWS:\n return \"OS_WINDOWS\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum Os\");\n }\n}\n\n/** CPU architecture. */\nexport enum Arch {\n ARCH_UNSPECIFIED = 0,\n ARCH_X86_64 = 1,\n ARCH_AARCH64 = 2,\n}\n\nexport function archFromJSON(object: any): Arch {\n switch (object) {\n case 0:\n case \"ARCH_UNSPECIFIED\":\n return Arch.ARCH_UNSPECIFIED;\n case 1:\n case \"ARCH_X86_64\":\n return Arch.ARCH_X86_64;\n case 2:\n case \"ARCH_AARCH64\":\n return Arch.ARCH_AARCH64;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum Arch\");\n }\n}\n\nexport function archToJSON(object: Arch): string {\n switch (object) {\n case Arch.ARCH_UNSPECIFIED:\n return \"ARCH_UNSPECIFIED\";\n case Arch.ARCH_X86_64:\n return \"ARCH_X86_64\";\n case Arch.ARCH_AARCH64:\n return \"ARCH_AARCH64\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum Arch\");\n }\n}\n\n/** The kind of byte stream a relay channel carries. */\nexport enum StreamKind {\n STREAM_KIND_UNSPECIFIED = 0,\n /** STREAM_KIND_PTY - An interactive pseudo-terminal (ttyd-equivalent). */\n STREAM_KIND_PTY = 1,\n /** STREAM_KIND_DESKTOP - A desktop framebuffer (noVNC-equivalent) for view + computer-use. */\n STREAM_KIND_DESKTOP = 2,\n /**\n * STREAM_KIND_BROWSER - Browser-native encoded frames from one BrowserSession target. The payload is\n * the canonical OpenGeni browser-frame message, not a desktop capture.\n */\n STREAM_KIND_BROWSER = 3,\n /**\n * STREAM_KIND_COMPUTER - Native app/window/screen frames from one ComputerSession target. Browser and\n * Computer frames share the relay transport, but never the resource label.\n */\n STREAM_KIND_COMPUTER = 4,\n}\n\nexport function streamKindFromJSON(object: any): StreamKind {\n switch (object) {\n case 0:\n case \"STREAM_KIND_UNSPECIFIED\":\n return StreamKind.STREAM_KIND_UNSPECIFIED;\n case 1:\n case \"STREAM_KIND_PTY\":\n return StreamKind.STREAM_KIND_PTY;\n case 2:\n case \"STREAM_KIND_DESKTOP\":\n return StreamKind.STREAM_KIND_DESKTOP;\n case 3:\n case \"STREAM_KIND_BROWSER\":\n return StreamKind.STREAM_KIND_BROWSER;\n case 4:\n case \"STREAM_KIND_COMPUTER\":\n return StreamKind.STREAM_KIND_COMPUTER;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum StreamKind\");\n }\n}\n\nexport function streamKindToJSON(object: StreamKind): string {\n switch (object) {\n case StreamKind.STREAM_KIND_UNSPECIFIED:\n return \"STREAM_KIND_UNSPECIFIED\";\n case StreamKind.STREAM_KIND_PTY:\n return \"STREAM_KIND_PTY\";\n case StreamKind.STREAM_KIND_DESKTOP:\n return \"STREAM_KIND_DESKTOP\";\n case StreamKind.STREAM_KIND_BROWSER:\n return \"STREAM_KIND_BROWSER\";\n case StreamKind.STREAM_KIND_COMPUTER:\n return \"STREAM_KIND_COMPUTER\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum StreamKind\");\n }\n}\n\nexport enum DeviceAuthState {\n DEVICE_AUTH_STATE_UNSPECIFIED = 0,\n /** DEVICE_AUTH_STATE_PENDING - The user has not yet completed the flow; keep polling. */\n DEVICE_AUTH_STATE_PENDING = 1,\n /** DEVICE_AUTH_STATE_AUTHORIZED - The user authorized; `credentials` are present. */\n DEVICE_AUTH_STATE_AUTHORIZED = 2,\n /** DEVICE_AUTH_STATE_DENIED - The user explicitly denied the request. */\n DEVICE_AUTH_STATE_DENIED = 3,\n /** DEVICE_AUTH_STATE_EXPIRED - The device_code expired before authorization. */\n DEVICE_AUTH_STATE_EXPIRED = 4,\n /** DEVICE_AUTH_STATE_SLOW_DOWN - The agent is polling too fast and must slow down. */\n DEVICE_AUTH_STATE_SLOW_DOWN = 5,\n}\n\nexport function deviceAuthStateFromJSON(object: any): DeviceAuthState {\n switch (object) {\n case 0:\n case \"DEVICE_AUTH_STATE_UNSPECIFIED\":\n return DeviceAuthState.DEVICE_AUTH_STATE_UNSPECIFIED;\n case 1:\n case \"DEVICE_AUTH_STATE_PENDING\":\n return DeviceAuthState.DEVICE_AUTH_STATE_PENDING;\n case 2:\n case \"DEVICE_AUTH_STATE_AUTHORIZED\":\n return DeviceAuthState.DEVICE_AUTH_STATE_AUTHORIZED;\n case 3:\n case \"DEVICE_AUTH_STATE_DENIED\":\n return DeviceAuthState.DEVICE_AUTH_STATE_DENIED;\n case 4:\n case \"DEVICE_AUTH_STATE_EXPIRED\":\n return DeviceAuthState.DEVICE_AUTH_STATE_EXPIRED;\n case 5:\n case \"DEVICE_AUTH_STATE_SLOW_DOWN\":\n return DeviceAuthState.DEVICE_AUTH_STATE_SLOW_DOWN;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum DeviceAuthState\");\n }\n}\n\nexport function deviceAuthStateToJSON(object: DeviceAuthState): string {\n switch (object) {\n case DeviceAuthState.DEVICE_AUTH_STATE_UNSPECIFIED:\n return \"DEVICE_AUTH_STATE_UNSPECIFIED\";\n case DeviceAuthState.DEVICE_AUTH_STATE_PENDING:\n return \"DEVICE_AUTH_STATE_PENDING\";\n case DeviceAuthState.DEVICE_AUTH_STATE_AUTHORIZED:\n return \"DEVICE_AUTH_STATE_AUTHORIZED\";\n case DeviceAuthState.DEVICE_AUTH_STATE_DENIED:\n return \"DEVICE_AUTH_STATE_DENIED\";\n case DeviceAuthState.DEVICE_AUTH_STATE_EXPIRED:\n return \"DEVICE_AUTH_STATE_EXPIRED\";\n case DeviceAuthState.DEVICE_AUTH_STATE_SLOW_DOWN:\n return \"DEVICE_AUTH_STATE_SLOW_DOWN\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum DeviceAuthState\");\n }\n}\n\nexport enum FsEntryKind {\n FS_ENTRY_KIND_UNSPECIFIED = 0,\n FS_ENTRY_KIND_FILE = 1,\n FS_ENTRY_KIND_DIRECTORY = 2,\n FS_ENTRY_KIND_SYMLINK = 3,\n}\n\nexport function fsEntryKindFromJSON(object: any): FsEntryKind {\n switch (object) {\n case 0:\n case \"FS_ENTRY_KIND_UNSPECIFIED\":\n return FsEntryKind.FS_ENTRY_KIND_UNSPECIFIED;\n case 1:\n case \"FS_ENTRY_KIND_FILE\":\n return FsEntryKind.FS_ENTRY_KIND_FILE;\n case 2:\n case \"FS_ENTRY_KIND_DIRECTORY\":\n return FsEntryKind.FS_ENTRY_KIND_DIRECTORY;\n case 3:\n case \"FS_ENTRY_KIND_SYMLINK\":\n return FsEntryKind.FS_ENTRY_KIND_SYMLINK;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum FsEntryKind\");\n }\n}\n\nexport function fsEntryKindToJSON(object: FsEntryKind): string {\n switch (object) {\n case FsEntryKind.FS_ENTRY_KIND_UNSPECIFIED:\n return \"FS_ENTRY_KIND_UNSPECIFIED\";\n case FsEntryKind.FS_ENTRY_KIND_FILE:\n return \"FS_ENTRY_KIND_FILE\";\n case FsEntryKind.FS_ENTRY_KIND_DIRECTORY:\n return \"FS_ENTRY_KIND_DIRECTORY\";\n case FsEntryKind.FS_ENTRY_KIND_SYMLINK:\n return \"FS_ENTRY_KIND_SYMLINK\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum FsEntryKind\");\n }\n}\n\nexport enum GitOp {\n GIT_OP_UNSPECIFIED = 0,\n GIT_OP_STATUS = 1,\n GIT_OP_DIFF = 2,\n GIT_OP_LOG = 3,\n GIT_OP_ADD = 4,\n GIT_OP_COMMIT = 5,\n GIT_OP_BRANCH = 6,\n GIT_OP_CHECKOUT = 7,\n GIT_OP_PULL = 8,\n GIT_OP_PUSH = 9,\n /** GIT_OP_RAW - Any other subcommand, passed through verbatim via `args`. */\n GIT_OP_RAW = 15,\n}\n\nexport function gitOpFromJSON(object: any): GitOp {\n switch (object) {\n case 0:\n case \"GIT_OP_UNSPECIFIED\":\n return GitOp.GIT_OP_UNSPECIFIED;\n case 1:\n case \"GIT_OP_STATUS\":\n return GitOp.GIT_OP_STATUS;\n case 2:\n case \"GIT_OP_DIFF\":\n return GitOp.GIT_OP_DIFF;\n case 3:\n case \"GIT_OP_LOG\":\n return GitOp.GIT_OP_LOG;\n case 4:\n case \"GIT_OP_ADD\":\n return GitOp.GIT_OP_ADD;\n case 5:\n case \"GIT_OP_COMMIT\":\n return GitOp.GIT_OP_COMMIT;\n case 6:\n case \"GIT_OP_BRANCH\":\n return GitOp.GIT_OP_BRANCH;\n case 7:\n case \"GIT_OP_CHECKOUT\":\n return GitOp.GIT_OP_CHECKOUT;\n case 8:\n case \"GIT_OP_PULL\":\n return GitOp.GIT_OP_PULL;\n case 9:\n case \"GIT_OP_PUSH\":\n return GitOp.GIT_OP_PUSH;\n case 15:\n case \"GIT_OP_RAW\":\n return GitOp.GIT_OP_RAW;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum GitOp\");\n }\n}\n\nexport function gitOpToJSON(object: GitOp): string {\n switch (object) {\n case GitOp.GIT_OP_UNSPECIFIED:\n return \"GIT_OP_UNSPECIFIED\";\n case GitOp.GIT_OP_STATUS:\n return \"GIT_OP_STATUS\";\n case GitOp.GIT_OP_DIFF:\n return \"GIT_OP_DIFF\";\n case GitOp.GIT_OP_LOG:\n return \"GIT_OP_LOG\";\n case GitOp.GIT_OP_ADD:\n return \"GIT_OP_ADD\";\n case GitOp.GIT_OP_COMMIT:\n return \"GIT_OP_COMMIT\";\n case GitOp.GIT_OP_BRANCH:\n return \"GIT_OP_BRANCH\";\n case GitOp.GIT_OP_CHECKOUT:\n return \"GIT_OP_CHECKOUT\";\n case GitOp.GIT_OP_PULL:\n return \"GIT_OP_PULL\";\n case GitOp.GIT_OP_PUSH:\n return \"GIT_OP_PUSH\";\n case GitOp.GIT_OP_RAW:\n return \"GIT_OP_RAW\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum GitOp\");\n }\n}\n\nexport enum GoingOfflineReason {\n GOING_OFFLINE_REASON_UNSPECIFIED = 0,\n /** GOING_OFFLINE_REASON_USER_STOP - The user stopped the foreground process. */\n GOING_OFFLINE_REASON_USER_STOP = 1,\n /** GOING_OFFLINE_REASON_UPDATE - The agent is restarting itself for a self-update. */\n GOING_OFFLINE_REASON_UPDATE = 2,\n /** GOING_OFFLINE_REASON_HOST_SHUTDOWN - The host is shutting down / suspending. */\n GOING_OFFLINE_REASON_HOST_SHUTDOWN = 3,\n}\n\nexport function goingOfflineReasonFromJSON(object: any): GoingOfflineReason {\n switch (object) {\n case 0:\n case \"GOING_OFFLINE_REASON_UNSPECIFIED\":\n return GoingOfflineReason.GOING_OFFLINE_REASON_UNSPECIFIED;\n case 1:\n case \"GOING_OFFLINE_REASON_USER_STOP\":\n return GoingOfflineReason.GOING_OFFLINE_REASON_USER_STOP;\n case 2:\n case \"GOING_OFFLINE_REASON_UPDATE\":\n return GoingOfflineReason.GOING_OFFLINE_REASON_UPDATE;\n case 3:\n case \"GOING_OFFLINE_REASON_HOST_SHUTDOWN\":\n return GoingOfflineReason.GOING_OFFLINE_REASON_HOST_SHUTDOWN;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum GoingOfflineReason\");\n }\n}\n\nexport function goingOfflineReasonToJSON(object: GoingOfflineReason): string {\n switch (object) {\n case GoingOfflineReason.GOING_OFFLINE_REASON_UNSPECIFIED:\n return \"GOING_OFFLINE_REASON_UNSPECIFIED\";\n case GoingOfflineReason.GOING_OFFLINE_REASON_USER_STOP:\n return \"GOING_OFFLINE_REASON_USER_STOP\";\n case GoingOfflineReason.GOING_OFFLINE_REASON_UPDATE:\n return \"GOING_OFFLINE_REASON_UPDATE\";\n case GoingOfflineReason.GOING_OFFLINE_REASON_HOST_SHUTDOWN:\n return \"GOING_OFFLINE_REASON_HOST_SHUTDOWN\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum GoingOfflineReason\");\n }\n}\n\n/** The logical byte stream an op-frame Data chunk belongs to. */\nexport enum OpChannel {\n OP_CHANNEL_UNSPECIFIED = 0,\n OP_CHANNEL_STDOUT = 1,\n OP_CHANNEL_STDERR = 2,\n /** OP_CHANNEL_CONTENT - Non-exec content (fs_read bodies and similar). */\n OP_CHANNEL_CONTENT = 3,\n}\n\nexport function opChannelFromJSON(object: any): OpChannel {\n switch (object) {\n case 0:\n case \"OP_CHANNEL_UNSPECIFIED\":\n return OpChannel.OP_CHANNEL_UNSPECIFIED;\n case 1:\n case \"OP_CHANNEL_STDOUT\":\n return OpChannel.OP_CHANNEL_STDOUT;\n case 2:\n case \"OP_CHANNEL_STDERR\":\n return OpChannel.OP_CHANNEL_STDERR;\n case 3:\n case \"OP_CHANNEL_CONTENT\":\n return OpChannel.OP_CHANNEL_CONTENT;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum OpChannel\");\n }\n}\n\nexport function opChannelToJSON(object: OpChannel): string {\n switch (object) {\n case OpChannel.OP_CHANNEL_UNSPECIFIED:\n return \"OP_CHANNEL_UNSPECIFIED\";\n case OpChannel.OP_CHANNEL_STDOUT:\n return \"OP_CHANNEL_STDOUT\";\n case OpChannel.OP_CHANNEL_STDERR:\n return \"OP_CHANNEL_STDERR\";\n case OpChannel.OP_CHANNEL_CONTENT:\n return \"OP_CHANNEL_CONTENT\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum OpChannel\");\n }\n}\n\n/**\n * An op's lifecycle state on the runner: accepted → running → complete(retained)\n * → gc; or lost. `lost` is always TYPED (see OpLostReason) — never a silent gap.\n */\nexport enum OpState {\n OP_STATE_UNSPECIFIED = 0,\n OP_STATE_ACCEPTED = 1,\n OP_STATE_RUNNING = 2,\n OP_STATE_COMPLETE = 3,\n OP_STATE_LOST = 4,\n}\n\nexport function opStateFromJSON(object: any): OpState {\n switch (object) {\n case 0:\n case \"OP_STATE_UNSPECIFIED\":\n return OpState.OP_STATE_UNSPECIFIED;\n case 1:\n case \"OP_STATE_ACCEPTED\":\n return OpState.OP_STATE_ACCEPTED;\n case 2:\n case \"OP_STATE_RUNNING\":\n return OpState.OP_STATE_RUNNING;\n case 3:\n case \"OP_STATE_COMPLETE\":\n return OpState.OP_STATE_COMPLETE;\n case 4:\n case \"OP_STATE_LOST\":\n return OpState.OP_STATE_LOST;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum OpState\");\n }\n}\n\nexport function opStateToJSON(object: OpState): string {\n switch (object) {\n case OpState.OP_STATE_UNSPECIFIED:\n return \"OP_STATE_UNSPECIFIED\";\n case OpState.OP_STATE_ACCEPTED:\n return \"OP_STATE_ACCEPTED\";\n case OpState.OP_STATE_RUNNING:\n return \"OP_STATE_RUNNING\";\n case OpState.OP_STATE_COMPLETE:\n return \"OP_STATE_COMPLETE\";\n case OpState.OP_STATE_LOST:\n return \"OP_STATE_LOST\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum OpState\");\n }\n}\n\n/** Why a lost op is lost (present iff OpStatus.state == OP_STATE_LOST). */\nexport enum OpLostReason {\n OP_LOST_REASON_UNSPECIFIED = 0,\n /**\n * OP_LOST_REASON_EVICTED - A completed op's retained result was evicted (bounded LRU registry) before a\n * final ack arrived — a loud, counted event, surfaced honestly on a late query.\n */\n OP_LOST_REASON_EVICTED = 1,\n /**\n * OP_LOST_REASON_AGENT_RESTARTED - The runner process restarted and the op's in-memory scope did not survive\n * (until the journal + scope re-adoption of a later milestone).\n */\n OP_LOST_REASON_AGENT_RESTARTED = 2,\n}\n\nexport function opLostReasonFromJSON(object: any): OpLostReason {\n switch (object) {\n case 0:\n case \"OP_LOST_REASON_UNSPECIFIED\":\n return OpLostReason.OP_LOST_REASON_UNSPECIFIED;\n case 1:\n case \"OP_LOST_REASON_EVICTED\":\n return OpLostReason.OP_LOST_REASON_EVICTED;\n case 2:\n case \"OP_LOST_REASON_AGENT_RESTARTED\":\n return OpLostReason.OP_LOST_REASON_AGENT_RESTARTED;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum OpLostReason\");\n }\n}\n\nexport function opLostReasonToJSON(object: OpLostReason): string {\n switch (object) {\n case OpLostReason.OP_LOST_REASON_UNSPECIFIED:\n return \"OP_LOST_REASON_UNSPECIFIED\";\n case OpLostReason.OP_LOST_REASON_EVICTED:\n return \"OP_LOST_REASON_EVICTED\";\n case OpLostReason.OP_LOST_REASON_AGENT_RESTARTED:\n return \"OP_LOST_REASON_AGENT_RESTARTED\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum OpLostReason\");\n }\n}\n\nexport enum StreamRole {\n STREAM_ROLE_UNSPECIFIED = 0,\n /** STREAM_ROLE_AGENT - The agent producing pty/desktop bytes. */\n STREAM_ROLE_AGENT = 1,\n /** STREAM_ROLE_CLIENT - The viewer/pty client consuming them (and sending input back). */\n STREAM_ROLE_CLIENT = 2,\n}\n\nexport function streamRoleFromJSON(object: any): StreamRole {\n switch (object) {\n case 0:\n case \"STREAM_ROLE_UNSPECIFIED\":\n return StreamRole.STREAM_ROLE_UNSPECIFIED;\n case 1:\n case \"STREAM_ROLE_AGENT\":\n return StreamRole.STREAM_ROLE_AGENT;\n case 2:\n case \"STREAM_ROLE_CLIENT\":\n return StreamRole.STREAM_ROLE_CLIENT;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum StreamRole\");\n }\n}\n\nexport function streamRoleToJSON(object: StreamRole): string {\n switch (object) {\n case StreamRole.STREAM_ROLE_UNSPECIFIED:\n return \"STREAM_ROLE_UNSPECIFIED\";\n case StreamRole.STREAM_ROLE_AGENT:\n return \"STREAM_ROLE_AGENT\";\n case StreamRole.STREAM_ROLE_CLIENT:\n return \"STREAM_ROLE_CLIENT\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum StreamRole\");\n }\n}\n\nexport enum StreamCloseReason {\n STREAM_CLOSE_REASON_UNSPECIFIED = 0,\n /** STREAM_CLOSE_REASON_NORMAL - Normal end (pty exited, viewer left). */\n STREAM_CLOSE_REASON_NORMAL = 1,\n /** STREAM_CLOSE_REASON_PROCESS_EXIT - The producing process ended. */\n STREAM_CLOSE_REASON_PROCESS_EXIT = 2,\n /** STREAM_CLOSE_REASON_FENCED - The epoch fence invalidated the channel (a swap-away). */\n STREAM_CLOSE_REASON_FENCED = 3,\n /** STREAM_CLOSE_REASON_TRANSPORT_ERROR - A relay/transport error (the client should reconnect+resume). */\n STREAM_CLOSE_REASON_TRANSPORT_ERROR = 4,\n /** STREAM_CLOSE_REASON_RATE_LIMITED - Rate-limit / backpressure shed the channel. */\n STREAM_CLOSE_REASON_RATE_LIMITED = 5,\n}\n\nexport function streamCloseReasonFromJSON(object: any): StreamCloseReason {\n switch (object) {\n case 0:\n case \"STREAM_CLOSE_REASON_UNSPECIFIED\":\n return StreamCloseReason.STREAM_CLOSE_REASON_UNSPECIFIED;\n case 1:\n case \"STREAM_CLOSE_REASON_NORMAL\":\n return StreamCloseReason.STREAM_CLOSE_REASON_NORMAL;\n case 2:\n case \"STREAM_CLOSE_REASON_PROCESS_EXIT\":\n return StreamCloseReason.STREAM_CLOSE_REASON_PROCESS_EXIT;\n case 3:\n case \"STREAM_CLOSE_REASON_FENCED\":\n return StreamCloseReason.STREAM_CLOSE_REASON_FENCED;\n case 4:\n case \"STREAM_CLOSE_REASON_TRANSPORT_ERROR\":\n return StreamCloseReason.STREAM_CLOSE_REASON_TRANSPORT_ERROR;\n case 5:\n case \"STREAM_CLOSE_REASON_RATE_LIMITED\":\n return StreamCloseReason.STREAM_CLOSE_REASON_RATE_LIMITED;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum StreamCloseReason\");\n }\n}\n\nexport function streamCloseReasonToJSON(object: StreamCloseReason): string {\n switch (object) {\n case StreamCloseReason.STREAM_CLOSE_REASON_UNSPECIFIED:\n return \"STREAM_CLOSE_REASON_UNSPECIFIED\";\n case StreamCloseReason.STREAM_CLOSE_REASON_NORMAL:\n return \"STREAM_CLOSE_REASON_NORMAL\";\n case StreamCloseReason.STREAM_CLOSE_REASON_PROCESS_EXIT:\n return \"STREAM_CLOSE_REASON_PROCESS_EXIT\";\n case StreamCloseReason.STREAM_CLOSE_REASON_FENCED:\n return \"STREAM_CLOSE_REASON_FENCED\";\n case StreamCloseReason.STREAM_CLOSE_REASON_TRANSPORT_ERROR:\n return \"STREAM_CLOSE_REASON_TRANSPORT_ERROR\";\n case StreamCloseReason.STREAM_CLOSE_REASON_RATE_LIMITED:\n return \"STREAM_CLOSE_REASON_RATE_LIMITED\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum StreamCloseReason\");\n }\n}\n\nexport enum PointerAction {\n POINTER_ACTION_UNSPECIFIED = 0,\n POINTER_ACTION_MOVE = 1,\n POINTER_ACTION_DOWN = 2,\n POINTER_ACTION_UP = 3,\n POINTER_ACTION_CLICK = 4,\n POINTER_ACTION_DOUBLE_CLICK = 5,\n}\n\nexport function pointerActionFromJSON(object: any): PointerAction {\n switch (object) {\n case 0:\n case \"POINTER_ACTION_UNSPECIFIED\":\n return PointerAction.POINTER_ACTION_UNSPECIFIED;\n case 1:\n case \"POINTER_ACTION_MOVE\":\n return PointerAction.POINTER_ACTION_MOVE;\n case 2:\n case \"POINTER_ACTION_DOWN\":\n return PointerAction.POINTER_ACTION_DOWN;\n case 3:\n case \"POINTER_ACTION_UP\":\n return PointerAction.POINTER_ACTION_UP;\n case 4:\n case \"POINTER_ACTION_CLICK\":\n return PointerAction.POINTER_ACTION_CLICK;\n case 5:\n case \"POINTER_ACTION_DOUBLE_CLICK\":\n return PointerAction.POINTER_ACTION_DOUBLE_CLICK;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum PointerAction\");\n }\n}\n\nexport function pointerActionToJSON(object: PointerAction): string {\n switch (object) {\n case PointerAction.POINTER_ACTION_UNSPECIFIED:\n return \"POINTER_ACTION_UNSPECIFIED\";\n case PointerAction.POINTER_ACTION_MOVE:\n return \"POINTER_ACTION_MOVE\";\n case PointerAction.POINTER_ACTION_DOWN:\n return \"POINTER_ACTION_DOWN\";\n case PointerAction.POINTER_ACTION_UP:\n return \"POINTER_ACTION_UP\";\n case PointerAction.POINTER_ACTION_CLICK:\n return \"POINTER_ACTION_CLICK\";\n case PointerAction.POINTER_ACTION_DOUBLE_CLICK:\n return \"POINTER_ACTION_DOUBLE_CLICK\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum PointerAction\");\n }\n}\n\nexport enum PointerButton {\n POINTER_BUTTON_UNSPECIFIED = 0,\n POINTER_BUTTON_LEFT = 1,\n POINTER_BUTTON_RIGHT = 2,\n POINTER_BUTTON_MIDDLE = 3,\n}\n\nexport function pointerButtonFromJSON(object: any): PointerButton {\n switch (object) {\n case 0:\n case \"POINTER_BUTTON_UNSPECIFIED\":\n return PointerButton.POINTER_BUTTON_UNSPECIFIED;\n case 1:\n case \"POINTER_BUTTON_LEFT\":\n return PointerButton.POINTER_BUTTON_LEFT;\n case 2:\n case \"POINTER_BUTTON_RIGHT\":\n return PointerButton.POINTER_BUTTON_RIGHT;\n case 3:\n case \"POINTER_BUTTON_MIDDLE\":\n return PointerButton.POINTER_BUTTON_MIDDLE;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum PointerButton\");\n }\n}\n\nexport function pointerButtonToJSON(object: PointerButton): string {\n switch (object) {\n case PointerButton.POINTER_BUTTON_UNSPECIFIED:\n return \"POINTER_BUTTON_UNSPECIFIED\";\n case PointerButton.POINTER_BUTTON_LEFT:\n return \"POINTER_BUTTON_LEFT\";\n case PointerButton.POINTER_BUTTON_RIGHT:\n return \"POINTER_BUTTON_RIGHT\";\n case PointerButton.POINTER_BUTTON_MIDDLE:\n return \"POINTER_BUTTON_MIDDLE\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum PointerButton\");\n }\n}\n\nexport enum KeyAction {\n KEY_ACTION_UNSPECIFIED = 0,\n KEY_ACTION_DOWN = 1,\n KEY_ACTION_UP = 2,\n KEY_ACTION_PRESS = 3,\n}\n\nexport function keyActionFromJSON(object: any): KeyAction {\n switch (object) {\n case 0:\n case \"KEY_ACTION_UNSPECIFIED\":\n return KeyAction.KEY_ACTION_UNSPECIFIED;\n case 1:\n case \"KEY_ACTION_DOWN\":\n return KeyAction.KEY_ACTION_DOWN;\n case 2:\n case \"KEY_ACTION_UP\":\n return KeyAction.KEY_ACTION_UP;\n case 3:\n case \"KEY_ACTION_PRESS\":\n return KeyAction.KEY_ACTION_PRESS;\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum KeyAction\");\n }\n}\n\nexport function keyActionToJSON(object: KeyAction): string {\n switch (object) {\n case KeyAction.KEY_ACTION_UNSPECIFIED:\n return \"KEY_ACTION_UNSPECIFIED\";\n case KeyAction.KEY_ACTION_DOWN:\n return \"KEY_ACTION_DOWN\";\n case KeyAction.KEY_ACTION_UP:\n return \"KEY_ACTION_UP\";\n case KeyAction.KEY_ACTION_PRESS:\n return \"KEY_ACTION_PRESS\";\n default:\n throw new globalThis.Error(\"Unrecognized enum value \" + object + \" for enum KeyAction\");\n }\n}\n\n/**\n * A typed error returned by the agent (or synthesized by the control plane for\n * a non-responding agent). `code` is a stable machine-readable discriminant;\n * `message` is human-facing; `retryable` lets the turn layer decide whether to\n * pause-and-retry (a reconnect blip) versus surface a hard failure.\n */\nexport interface AgentError {\n code: ErrorCode;\n message: string;\n retryable: boolean;\n /** Optional structured detail (e.g. an OS errno, a git exit code) for logs. */\n detail: { [key: string]: string };\n}\n\nexport interface AgentError_DetailEntry {\n key: string;\n value: string;\n}\n\n/**\n * The agent's self-description, sent on connect (the \"hello\") and refreshed on\n * reconnect. The control plane folds this into the negotiated SessionCapabilities\n * document (every capability cell is available:false+reason, never absent).\n */\nexport interface Hello {\n agentId: string;\n workspaceId: string;\n /** Semantic version of the running agent binary (drives staged self-update). */\n agentVersion: string;\n os: Os;\n arch: Arch;\n /** Human-friendly machine name (hostname by default; user-overridable). */\n machineName: string;\n /** The agent-reported working root the control plane treats as the sandbox cwd. */\n workspaceRoot: string;\n /** Capabilities the agent can serve given its platform + consent grants. */\n capabilities:\n | Capabilities\n | undefined;\n /** The update channel this agent follows (stable|beta), for fleet-pinning. */\n updateChannel: string;\n /**\n * A resume token minted by a prior connection, echoed so the control plane can\n * recognize a reconnect (vs a fresh enrollment) and fence by epoch. Empty on\n * first connect.\n */\n resumeToken: string;\n}\n\n/**\n * What the agent is able and consented to do. Each bool is a hard capability\n * gate; the control plane maps a false to a CapabilityUnavailableReason.\n */\nexport interface Capabilities {\n /** Channel-A structural surface (always true for a connected agent). */\n exec: boolean;\n filesystem: boolean;\n git: boolean;\n /** An interactive PTY can be opened over the relay. */\n pty: boolean;\n /** A desktop framebuffer is available (a display exists or Xvfb is enabled). */\n desktop: boolean;\n /** The user consented to whole-machine access during enrollment. */\n consentedWholeMachine: boolean;\n /** The user consented to screen capture + synthetic input (computer-use). */\n consentedScreenControl: boolean;\n /** Display detail (absent => headless / no display). */\n display:\n | Display\n | undefined;\n /**\n * When a display physically EXISTS but the OS withholds the screen-CAPTURE grant\n * (macOS Screen Recording / TCC), `desktop` is reported false and this carries a\n * human, actionable reason (e.g. \"grant Screen Recording in System Settings\").\n * Empty when capture is permitted or the platform has no separate capture grant\n * (Linux/x11). Advertised at Hello so the control plane degrades the desktop cell\n * with a legible hint instead of offering a desktop it cannot capture — the\n * machine that \"claims a display it can't capture\" bug the 0.1.3 incident exposed.\n */\n desktopUnavailableReason: string;\n /**\n * The runner speaks the op-stream protocol (OpStart/OpFrame/OpAck; see the\n * op-stream section below). Advertised at Hello; the server uses the streaming\n * path only when this is true AND its own feature flag is on, else the legacy\n * monolithic ops run exactly as today. Additive — absent (false) on an older\n * runner means \"legacy path\", no version coupling.\n */\n opStream: boolean;\n /**\n * A local attached-browser bridge is available. The bridge inventories live\n * browser-profile endpoints separately from this machine enrollment because\n * one machine may host multiple Chrome profiles.\n */\n browserBridge: boolean;\n}\n\n/**\n * Capabilities of one live browser-profile bridge endpoint. This describes the\n * transport endpoint only; reusable login/profile state is a separate control-\n * plane BrowserIdentity resource.\n */\nexport interface AttachedBrowserDeviceCapabilities {\n tabInventory: boolean;\n debuggerAttachment: boolean;\n semanticObservation: boolean;\n screenshots: boolean;\n liveFrames: boolean;\n humanInput: boolean;\n diagnostics: boolean;\n rawCdp: boolean;\n linkedComputer: boolean;\n}\n\nexport interface AttachedBrowserDeviceAnnouncement {\n id: string;\n name: string;\n /** Empty means Chrome did not expose a profile label. */\n profileLabel: string;\n browserName: string;\n browserVersion: string;\n extensionVersion: string;\n platform: Os;\n arch: Arch;\n /** Changes whenever this extension/native-host connection restarts. */\n connectionGeneration: string;\n inventoryRevision: string;\n tabCount: number;\n capabilities: AttachedBrowserDeviceCapabilities | undefined;\n}\n\n/**\n * One complete, monotonically-versioned snapshot from the machine's browser\n * bridge. Presence on a heartbeat makes the list authoritative, including an\n * empty list; absence means an older/no-bridge agent and changes nothing.\n */\nexport interface AttachedBrowserInventorySnapshot {\n bridgeGeneration: string;\n revision: string;\n devices: AttachedBrowserDeviceAnnouncement[];\n}\n\n/** Detail about the agent's graphical display, when one is present. */\nexport interface Display {\n /** e.g. \":0\", \":99\" (Xvfb), or a platform handle. */\n id: string;\n width: number;\n height: number;\n /** True when backed by a virtual framebuffer (Xvfb) rather than a real screen. */\n virtual: boolean;\n}\n\n/**\n * The agent begins enrollment by asking the control plane to start a device\n * flow. The control plane returns a user-code + verification URL the user visits\n * to consent (whole-machine + optional screen-control) and authorize.\n */\nexport interface DeviceAuthStartRequest {\n /**\n * The agent's stable install identity (a per-install keypair fingerprint),\n * bound to the enrollment so the issued credentials are non-transferable.\n */\n installFingerprint: string;\n os: Os;\n arch: Arch;\n machineName: string;\n /** The update channel the user selected at install time. */\n updateChannel: string;\n}\n\nexport interface DeviceAuthStartResponse {\n /** Short code the user types at the verification URL. */\n userCode: string;\n /** The opaque device code the agent polls with. */\n deviceCode: string;\n /** Where the user goes to authorize (e.g. https://get.opengeni.ai/device). */\n verificationUri: string;\n /** A pre-filled convenience URL embedding the user_code. */\n verificationUriComplete: string;\n /** Seconds the device_code remains valid. */\n expiresInSeconds: number;\n /** Minimum seconds the agent must wait between polls. */\n pollIntervalSeconds: number;\n}\n\n/** The agent polls until the user authorizes (or it expires / is denied). */\nexport interface DeviceAuthPollRequest {\n deviceCode: string;\n}\n\nexport interface DeviceAuthPollResponse {\n state: DeviceAuthState;\n /** Present only when state == AUTHORIZED. */\n credentials: EnrollmentCredentials | undefined;\n}\n\n/**\n * The scoped credentials persisted (0600) on the machine after enrollment.\n * These are workspace-scoped — they can address only this workspace's agents.\n */\nexport interface EnrollmentCredentials {\n agentId: string;\n workspaceId: string;\n /**\n * The NATS CONNECT AUTH-TOKEN the agent presents (the signed `oge_` enrollment\n * bearer). The server runs with AUTH CALLOUT (M-AUTH): on connect\n * the agent passes this as the auth-token; nats-server issues an authorization\n * request to the control-plane's callout responder, which validates the bearer\n * and returns a SIGNED user JWT scoping the connection to pub/sub ONLY\n * `agent.<ws>.>` (+ `_INBOX.>`). That per-subject scope IS the per-workspace\n * tenancy boundary — there is NO per-machine creds file to ship. (Field name kept\n * for proto stability; it now carries the bearer, not an operator creds-file body.)\n */\n natsCredentials: string;\n /**\n * The NATS server URL(s) to dial. For the control plane these are `wss://` URLs\n * (the relay-symmetric TLS ingress) so the agent rides the same TLS endpoint as\n * the stream relay — no separate public TCP load balancer.\n */\n natsUrls: string[];\n /** The relay edge base URL for opening stream channels. */\n relayUrl: string;\n /** The minisign public key the agent pins for self-update verification. */\n updatePubkey: string;\n /** Whether the user consented to whole-machine access. */\n consentedWholeMachine: boolean;\n /** Whether the user consented to screen capture + synthetic input. */\n consentedScreenControl: boolean;\n /**\n * The agent's PRODUCER token for the relay edge (the relay-dial\n * protocol). Presented as `StreamOpen.token` when the agent registers a\n * pty/desktop channel (role=AGENT). It is a control-plane-minted, workspace+agent\n * -scoped `ogr_` HMAC token the relay verifies on its own merits — DISTINCT from\n * the viewer's `ogs_` stream token (which the control plane mints per viewer and\n * the relay also verifies). The relay pairs the producer and consumer by the\n * channel key once BOTH tokens pass. Additive proto3 field; empty for an\n * enrollment minted before the relay-token plane is configured (the agent then\n * presents an empty token the relay rejects, surfacing the gap loudly).\n */\n relayToken: string;\n}\n\nexport interface ExecRequest {\n /** argv[0] is the program; the agent does NOT shell-interpret unless `shell`. */\n command: string[];\n /** When true, `command` is joined and run through the platform shell. */\n shell: boolean;\n /** Working directory; defaults to the agent's workspace_root when empty. */\n cwd: string;\n /** Extra environment variables layered over the agent's environment. */\n env: { [key: string]: string };\n /** Optional stdin fed to the process. */\n stdin: Uint8Array;\n /** Optional hard wall-clock timeout; 0 means no process deadline. */\n timeoutMs: number;\n}\n\nexport interface ExecRequest_EnvEntry {\n key: string;\n value: string;\n}\n\nexport interface ExecResponse {\n exitCode: number;\n stdout: Uint8Array;\n stderr: Uint8Array;\n /** True when the process was killed by `timeout_ms`. */\n timedOut: boolean;\n /** Wall-clock duration the process ran. */\n durationMs: string;\n}\n\nexport interface FsReadRequest {\n path: string;\n /** Optional byte offset + length for ranged reads (0 length => to EOF). */\n offset: string;\n length: string;\n}\n\nexport interface FsReadResponse {\n content: Uint8Array;\n /** Total size of the file (so a ranged read knows there is more). */\n totalSize: string;\n}\n\nexport interface FsWriteRequest {\n path: string;\n content: Uint8Array;\n /** Create parent directories as needed. */\n createParents: boolean;\n /** Append rather than truncate-and-write. */\n append: boolean;\n /** POSIX mode for a newly created file (e.g. 0644); 0 => platform default. */\n mode: number;\n}\n\nexport interface FsWriteResponse {\n bytesWritten: string;\n}\n\nexport interface FsListRequest {\n path: string;\n /** Recurse into subdirectories. */\n recursive: boolean;\n}\n\nexport interface FsListResponse {\n entries: FsEntry[];\n}\n\nexport interface FsEntry {\n name: string;\n /** Path relative to the listed directory. */\n path: string;\n kind: FsEntryKind;\n size: string;\n /** Last-modified time, unix epoch ms. */\n modifiedMs: string;\n mode: number;\n}\n\nexport interface FsMkdirRequest {\n path: string;\n /** Create intermediate directories (mkdir -p). */\n parents: boolean;\n mode: number;\n}\n\nexport interface FsMkdirResponse {\n}\n\nexport interface FsMoveRequest {\n from: string;\n to: string;\n /** Overwrite the destination if it exists. */\n overwrite: boolean;\n}\n\nexport interface FsMoveResponse {\n}\n\nexport interface FsStatRequest {\n path: string;\n}\n\nexport interface FsStatResponse {\n /** Absent when the path does not exist (the op still succeeds; `exists=false`). */\n exists: boolean;\n entry: FsEntry | undefined;\n}\n\nexport interface FsRemoveRequest {\n path: string;\n /** Remove directories recursively. */\n recursive: boolean;\n}\n\nexport interface FsRemoveResponse {\n}\n\n/**\n * A single git operation. The agent runs git against the repo rooted at `cwd`\n * (or workspace_root) and returns structured results where it can, falling back\n * to raw stdout for pass-through subcommands.\n */\nexport interface GitRequest {\n op: GitOp;\n /** Repo working directory; defaults to workspace_root. */\n cwd: string;\n /** Free-form args for ops that pass through (e.g. log/diff flags). */\n args: string[];\n}\n\nexport interface GitResponse {\n exitCode: number;\n /** Raw stdout/stderr for pass-through fidelity. */\n stdout: Uint8Array;\n stderr: Uint8Array;\n /** Structured status, present for GIT_OP_STATUS. */\n status: GitStatus | undefined;\n}\n\nexport interface GitStatus {\n branch: string;\n /** The upstream tracking branch, if any. */\n upstream: string;\n ahead: number;\n behind: number;\n files: GitFileStatus[];\n clean: boolean;\n}\n\nexport interface GitFileStatus {\n path: string;\n /** Two-letter porcelain code (e.g. \" M\", \"??\", \"A \"). */\n code: string;\n staged: boolean;\n}\n\n/**\n * Open a PTY. The agent allocates a pseudo-terminal, spawns the shell/command,\n * and registers a relay stream channel of kind PTY. The returned `channel`\n * identifies the stream the viewer connects to.\n */\nexport interface PtyOpenRequest {\n /** Shell/command to run; empty => the user's default login shell. */\n command: string[];\n cwd: string;\n env: { [key: string]: string };\n cols: number;\n rows: number;\n /** The TERM value to advertise (e.g. \"xterm-256color\"). */\n term: string;\n /**\n * Stable caller-owned identity for an idempotent terminal. Repeating pty_open\n * with the same non-empty scope_id returns the existing live PTY/channel rather\n * than spawning another shell. Empty preserves the explicit \"open a new PTY\"\n * behavior. The control plane uses the durable OpenGeni session id here so\n * capability/token refreshes reattach the same terminal while separate sessions\n * on one machine remain isolated.\n */\n scopeId: string;\n}\n\nexport interface PtyOpenRequest_EnvEntry {\n key: string;\n value: string;\n}\n\nexport interface PtyOpenResponse {\n /** A handle for subsequent resize/close control ops. */\n ptyId: string;\n /** The relay stream channel carrying the PTY bytes. */\n channel: StreamChannel | undefined;\n}\n\n/**\n * Write input bytes to a PTY. (Bulk interactive bytes normally ride the stream\n * plane as StreamFrames; this control op exists for programmatic injection.)\n */\nexport interface PtyWriteRequest {\n ptyId: string;\n data: Uint8Array;\n}\n\nexport interface PtyWriteResponse {\n bytesWritten: string;\n}\n\nexport interface PtyResizeRequest {\n ptyId: string;\n cols: number;\n rows: number;\n}\n\nexport interface PtyResizeResponse {\n}\n\nexport interface PtyCloseRequest {\n ptyId: string;\n}\n\nexport interface PtyCloseResponse {\n /** The exit code of the PTY's root process, if it had exited. */\n exitCode: number;\n}\n\n/**\n * Ensure a desktop framebuffer stream exists, registering a relay channel of\n * kind DESKTOP. Idempotent: repeated calls return the same live channel.\n */\nexport interface DesktopEnsureRequest {\n /** Request a specific geometry (0 => the display's native geometry). */\n width: number;\n height: number;\n}\n\nexport interface DesktopEnsureResponse {\n channel: StreamChannel | undefined;\n display: Display | undefined;\n}\n\n/**\n * Inject one synthetic computer-use input event on the machine's desktop — the\n * CONTROL-PLANE twin of the relay DesktopInput (the agent drives its OWN screen\n * for computer-use; there is no human viewer channel). Reuses the relay\n * DesktopInput event shapes; there is no channel_id (this goes straight to the\n * display, not a relay channel). Injection is gated on consented_screen_control:\n * an ungated call fails with ERROR_CODE_CONSENT_REQUIRED and never touches the OS.\n */\nexport interface DesktopInputRequest {\n event: { $case: \"pointer\"; pointer: PointerEvent } | { $case: \"key\"; key: KeyEvent } | {\n $case: \"scroll\";\n scroll: ScrollEvent;\n } | undefined;\n}\n\nexport interface DesktopInputResponse {\n}\n\n/**\n * Capture a single screenshot of the machine's desktop as a PNG. A VIEW op: it\n * needs a display, NOT screen-control consent (the view/control decoupling), so\n * it is not consent-gated. Returns the encoded image plus its geometry so the\n * caller can size a canvas without decoding.\n */\nexport interface DesktopScreenshotRequest {\n}\n\nexport interface DesktopScreenshotResponse {\n png: Uint8Array;\n /**\n * The geometry of the ENCODED image (what a viewer/model actually sees). When\n * the raw capture is too large to fit the control-plane transport's max payload,\n * the agent DOWNSCALES the PNG so the reply publishes (a full-res Retina/busy\n * screen can exceed NATS's 1 MiB default); width/height then describe the\n * downscaled image, and `native_width`/`native_height` below carry the original.\n */\n width: number;\n height: number;\n /**\n * The ORIGINAL (pre-downscale) capture geometry. Equal to width/height when no\n * downscale was needed. The computer-use coordinate mapping scales a model click\n * (expressed in the ENCODED pixel space it saw) back up to this native pixel\n * space before injecting, so clicks land correctly even on a downscaled frame.\n * 0 (unset by an older agent) MUST be read as \"same as width/height\" (no scale).\n */\n nativeWidth: number;\n nativeHeight: number;\n}\n\n/**\n * Ensure the agent-owned browserd sidecar for one physical attached-browser\n * generation. The authenticated control plane supplies the placement-scoped\n * authority; the runner writes it owner-only and never places it in argv/logs.\n */\nexport interface BrowserControlEnsureRequest {\n scopeId: string;\n scopeGeneration: string;\n adminToken: string;\n allowedOrigins: string[];\n}\n\nexport interface BrowserControlEnsureResponse {\n port: number;\n sidecarGeneration: string;\n}\n\n/**\n * Open one browserd frame subscription and relay its canonical binary browser\n * frame messages over a fresh STREAM_KIND_BROWSER channel. browserd remains\n * loopback-only; only the short-lived view grant crosses this local boundary.\n */\nexport interface BrowserFramesOpenRequest {\n scopeId: string;\n scopeGeneration: string;\n browserSessionId: string;\n controllerGeneration: string;\n targetId: string;\n viewToken: string;\n expiresAtMs: string;\n format: string;\n quality: number;\n maxWidth: number;\n maxHeight: number;\n everyNthFrame: number;\n}\n\nexport interface BrowserFramesOpenResponse {\n channel: StreamChannel | undefined;\n}\n\n/**\n * ComputerSession equivalent of BrowserFramesOpen. The relay carries the same\n * canonical binary frame envelope, while the distinct resource id keeps\n * controller authorization and URL routing unambiguous.\n */\nexport interface ComputerFramesOpenRequest {\n scopeId: string;\n scopeGeneration: string;\n computerSessionId: string;\n controllerGeneration: string;\n targetId: string;\n viewToken: string;\n expiresAtMs: string;\n format: string;\n quality: number;\n maxWidth: number;\n maxHeight: number;\n everyNthFrame: number;\n}\n\nexport interface ComputerFramesOpenResponse {\n channel: StreamChannel | undefined;\n}\n\n/**\n * The agent's periodic liveness ping. Carries a metrics sample so the control\n * plane can upsert the machine's last-sample without a separate RPC. The\n * `seq` increments per heartbeat so the control plane can detect a gap.\n */\nexport interface Heartbeat {\n seq: string;\n /** Agent monotonic uptime in ms. */\n uptimeMs: string;\n /**\n * The number of sessions currently sharing this machine (lease refcount as the\n * agent sees it; the authoritative count lives in Postgres).\n */\n activeSessions: number;\n metrics:\n | MetricsSample\n | undefined;\n /**\n * True when the agent is draining for a pending self-update (prefer other\n * sandboxes for new work).\n */\n draining: boolean;\n /**\n * The runner's measured host capacity — the upward report the server paces\n * against (LIMITS-DOCTRINE: the runner holds no concurrency policy; the\n * swarm/scheduler reads this and decides how much to throw at the machine).\n */\n capacity:\n | HostCapacitySample\n | undefined;\n /**\n * Point-in-time op-admission counts (queues only ever fill once a derived\n * pathology breaker saturates — nonzero queued figures are telemetry-worthy).\n */\n admission:\n | AdmissionTelemetry\n | undefined;\n /** Full live browser-profile inventory, when this runner has a browser bridge. */\n attachedBrowserInventory: AttachedBrowserInventorySnapshot | undefined;\n}\n\n/**\n * A point-in-time host-capacity sample: the impure sampler's reading of\n * MemAvailable, spool-filesystem free space, fd/pid headroom, and CPUs. Every\n * runner-side budget/breaker is a fraction of these (rule R), so this is also\n * how the server understands what the machine can take.\n */\nexport interface HostCapacitySample {\n memAvailableBytes: string;\n diskFreeBytes: string;\n fdHeadroom: string;\n pidHeadroom: string;\n nproc: string;\n}\n\n/** Point-in-time op-admission counts, per class. */\nexport interface AdmissionTelemetry {\n lightRunning: string;\n lightQueued: string;\n heavyRunning: string;\n heavyQueued: string;\n /**\n * Jobs with a live mailbox (running + completed-retained awaiting final\n * ack) — the op-engine's routing-table size.\n */\n liveOps: string;\n /**\n * Op frames dropped by the fire-and-forget publish path (bulk lane down or\n * its channel full). Protocol-healed by replay; recorded so an undersized\n * lane is visible before it matters (monotonic).\n */\n opFramesDroppedTotal: string;\n /**\n * Completed ops evicted before their final ack (dropped results) — the\n * registry's loud counter (monotonic).\n */\n evictedUnackedTotal: string;\n}\n\nexport interface HeartbeatAck {\n /** The control plane may instruct the agent to adjust its heartbeat cadence. */\n nextIntervalMs: number;\n /** The control plane may signal a pending fleet action (e.g. update available). */\n updateAvailable: boolean;\n}\n\n/** On-demand metrics request (the dashboard force-poll path). */\nexport interface MetricsRequest {\n}\n\n/** A point-in-time machine metrics sample. */\nexport interface MetricsSample {\n /** Unix epoch ms when sampled. */\n sampledAtMs: string;\n /** CPU utilization 0..100 (whole machine). */\n cpuPercent: number;\n /** Load averages. */\n load1: number;\n load5: number;\n load15: number;\n memUsedBytes: string;\n memTotalBytes: string;\n diskUsedBytes: string;\n diskTotalBytes: string;\n /** A contention signal (run-queue length / pressure), if available. */\n runQueue: number;\n /** Per-GPU samples, when GPUs are present. */\n gpus: GpuSample[];\n}\n\nexport interface GpuSample {\n name: string;\n /** Utilization 0..100. */\n utilPercent: number;\n memUsedBytes: string;\n memTotalBytes: string;\n}\n\n/**\n * A cheap liveness probe — the control plane requests it to test that a\n * responder exists on the subject (the NATS \"is there an agent\" check).\n */\nexport interface PingRequest {\n /** Echoed back so the caller can correlate / measure RTT. */\n nonce: string;\n}\n\nexport interface PingResponse {\n nonce: string;\n /** The agent's monotonic clock, for skew estimation. */\n agentMonotonicMs: string;\n}\n\n/**\n * Sent by the agent on a clean stop (SIGINT/SIGTERM) so the lease flips to\n * offline IMMEDIATELY rather than waiting on heartbeat dead-detection.\n */\nexport interface GoingOffline {\n reason: GoingOfflineReason;\n /** Optional human note (e.g. \"user pressed Ctrl-C\"). */\n message: string;\n}\n\n/**\n * On reconnect, the agent presents its resume token; the control plane fences by\n * epoch and either accepts the resume (same machine, new connection generation)\n * or, if the token is unknown/stale, requires a fresh hello.\n */\nexport interface ResumeRequest {\n agentId: string;\n resumeToken: string;\n /** The lease epoch the agent last observed, for the integer fence. */\n lastKnownEpoch: number;\n}\n\nexport interface ResumeResponse {\n accepted: boolean;\n /**\n * The new lease epoch the control plane assigned to this connection. Any op\n * fenced by an older epoch must re-resolve and retry.\n */\n epoch: number;\n /** A fresh resume token for the NEXT reconnect (tokens rotate per generation). */\n resumeToken: string;\n}\n\n/** The agent asks whether a newer build is available for its channel + target. */\nexport interface UpdateCheckRequest {\n currentVersion: string;\n channel: string;\n os: Os;\n arch: Arch;\n}\n\nexport interface UpdateCheckResponse {\n updateAvailable: boolean;\n manifest: UpdateManifest | undefined;\n}\n\n/**\n * A signed channel manifest. It is itself minisign-signed out-of-band; this\n * message is the decoded body the updater reasons over.\n */\nexport interface UpdateManifest {\n channel: string;\n version: string;\n /** The minimum version still permitted (downgrade-attack protection). */\n minSupported: string;\n /** Staged-rollout gate: an agent applies when blake3(agentId+salt)%100 < percent. */\n rolloutPercent: number;\n cohortSalt: string;\n artifacts: UpdateArtifact[];\n notesUrl: string;\n signedAtMs: string;\n /** When true, override drain and update mid-session (security CVE path). */\n force: boolean;\n}\n\nexport interface UpdateArtifact {\n /** Target triple, e.g. \"x86_64-unknown-linux-musl\". */\n target: string;\n url: string;\n size: string;\n sha256: string;\n /** URL of the detached minisign signature for the artifact. */\n minisigUrl: string;\n}\n\n/**\n * Before applying, the updater asks the control plane whether it may proceed\n * (the control plane reads the Postgres lease refcount). The agent drains until\n * the refcount reaches zero or a grace window elapses.\n */\nexport interface UpdateMayProceedRequest {\n agentId: string;\n targetVersion: string;\n}\n\nexport interface UpdateMayProceedResponse {\n mayProceed: boolean;\n /** When false, the number of live sessions blocking the update. */\n activeSessions: number;\n}\n\n/**\n * The terminal outcome of an op — carried in the Exit frame body AND echoed in\n * OpStatus once complete. Digests/totals are keyed by channel name\n * (\"stdout\"/\"stderr\"/\"content\") for a byte-exact assembly proof.\n */\nexport interface OpExit {\n exitCode: number;\n /** Hit the runner-enforced deadline (process-tree killed). */\n timedOut: boolean;\n /** Cancelled via OpCancel. */\n cancelled: boolean;\n durationMs: string;\n /** channel name → blake3 hex digest of the full channel stream. */\n digests: { [key: string]: string };\n /** channel name → total bytes emitted on the channel. */\n totals: { [key: string]: string };\n /**\n * Set iff the RUNNER failed the op with a typed reason (\"OP_OVERFLOW\" /\n * \"OP_SPOOL_IO\" / \"OP_PIPE_IO\"); empty for every child-decided outcome\n * (exit/timeout/cancel). Never an exit-code sentinel — ambiguous renderings\n * are outlawed (FAILURE-VISIBILITY.md).\n */\n failureCode: string;\n /**\n * Structured detail for failure_code (exact counters: retained bytes, the\n * IO error text, captured byte totals) — the out-of-band plane's food.\n */\n failureDetail: { [key: string]: string };\n}\n\nexport interface OpExit_DigestsEntry {\n key: string;\n value: string;\n}\n\nexport interface OpExit_TotalsEntry {\n key: string;\n value: string;\n}\n\nexport interface OpExit_FailureDetailEntry {\n key: string;\n value: string;\n}\n\n/**\n * The op-begin for a STREAMING fs_write (M7): the target is set up here; the bytes\n * arrive as chunked, idempotent WriteChunk request/replies (no reverse streaming).\n */\nexport interface FsWriteBegin {\n path: string;\n /** Create parent directories as needed. */\n createParents: boolean;\n /** POSIX mode for a newly created file (0 => platform default). */\n mode: number;\n /**\n * Editor safety (M6): the expected blake3 hex digest of the file's CURRENT\n * content for a read-modify-write; empty for a plain write. On a re-dispatch a\n * mismatch REFUSES rather than double-applying a diff.\n */\n expectedBaseDigest: string;\n}\n\n/**\n * Start an op (server→runner). IDEMPOTENT by op_id (= ControlRequest.request_id):\n * a known op_id returns its current status and NEVER re-runs — this closes the\n * at-least-once re-run hazard (a re-dispatched turn re-issues OpStart{same id} and\n * attaches).\n */\nexport interface OpStart {\n op:\n | { $case: \"exec\"; exec: ExecRequest }\n | { $case: \"fsRead\"; fsRead: FsReadRequest }\n | { $case: \"fsWrite\"; fsWrite: FsWriteBegin }\n | undefined;\n /** Initial send credit in bytes (0 => the runner default, ~4 MiB). */\n windowBytes: string;\n /**\n * Absolute runner-enforced deadline, unix-epoch ms (0 = none). Runner-side\n * enforcement is authoritative (process-tree kill + Exit{timed_out}); the\n * server wall-clock is advisory.\n */\n deadlineMs: string;\n /** The originating session id, for per-origin fair admission. */\n originId: string;\n}\n\nexport interface OpStarted {\n accepted: boolean;\n status: OpStatus | undefined;\n}\n\n/**\n * Cancel an op (server→runner). Idempotent; triggers the #344 process-tree kill and\n * a terminal frame. Reply is OpStatus.\n */\nexport interface OpCancel {\n opId: string;\n}\n\n/** Query an op's status (server→runner). Reply is OpStatus. */\nexport interface OpQuery {\n opId: string;\n}\n\n/**\n * Re-attach to an op after a reconnect or a missed frame (server→runner): the\n * runner re-publishes frames ≥ from_seq from its ring/spool, then resumes live\n * flow. Reply is OpStatus.\n */\nexport interface OpAttach {\n opId: string;\n /** Resume from this exclusive sequence (the consumer's cumulative-ack floor). */\n fromSeq: string;\n /**\n * Attach generation (B2): monotonic (the consumer's Temporal attempt number).\n * The runner serves replay/credit only for the HIGHEST generation seen; a\n * lower-generation (zombie) consumer's acks are ignored.\n */\n attachGeneration: string;\n /**\n * The fresh send-credit window for the resumed attachment, in bytes\n * (0 => reuse the window granted at OpStart). OpAck's absolute credit_bytes\n * resizes it thereafter.\n */\n windowBytes: string;\n}\n\n/**\n * The current status of an op (server←runner reply to OpCancel/OpQuery/OpAttach,\n * and embedded in OpStarted).\n */\nexport interface OpStatus {\n opId: string;\n state: OpState;\n /**\n * The next sequence number the runner will assign (the high watermark, for gap\n * detection).\n */\n nextSeq: string;\n /** Present iff state == OP_STATE_COMPLETE. */\n exit:\n | OpExit\n | undefined;\n /** Present iff state == OP_STATE_LOST. */\n lostReason: OpLostReason;\n}\n\n/**\n * One chunk of a streaming upload (server→runner): plain idempotent request/reply\n * per chunk (≤512 KiB). A duplicate (op_id, seq) is acked WITHOUT re-applying.\n */\nexport interface WriteChunk {\n opId: string;\n /** The op-scoped monotonic chunk sequence. */\n seq: string;\n bytes: Uint8Array;\n /** The final chunk: commit = digest-verify then atomic rename (M7). */\n last: boolean;\n /**\n * Byte offset this chunk writes at (M7: writes land in an op-scoped temp file,\n * committed on the last chunk — an aborted transfer leaves no visible file).\n */\n offset: string;\n}\n\nexport interface WriteChunkAck {\n seq: string;\n}\n\n/**\n * A runner→server op frame, published fire-and-forget on the op subject\n * (`agent.<ws>.<id>.op.<op_id>`). `seq` is a SINGLE monotonic sequence per op\n * across ALL body kinds (Progress frames consume sequence numbers too, so gap\n * detection is uniform).\n */\nexport interface OpFrame {\n opId: string;\n seq: string;\n body:\n | { $case: \"data\"; data: OpData }\n | { $case: \"progress\"; progress: OpProgress }\n | { $case: \"exit\"; exit: OpExit }\n | undefined;\n}\n\n/** A chunk of op output on a channel (≤128 KiB per frame). */\nexport interface OpData {\n channel: OpChannel;\n bytes: Uint8Array;\n}\n\n/**\n * A liveness tick: the op is alive but produced no Data. Emitted every 5s while an\n * op is live and quiet; consumes a sequence number like any frame.\n */\nexport interface OpProgress {\n}\n\n/**\n * A server→runner cumulative ack + credit replenishment, published fire-and-forget\n * on the ack subject (`agent.<ws>.<id>.ack`). Best-effort, healed by repetition.\n */\nexport interface OpAck {\n opId: string;\n /** Cumulative: every frame with seq ≤ acked_seq is acknowledged. */\n ackedSeq: string;\n /** The replenished ABSOLUTE send-credit window in bytes. */\n creditBytes: string;\n /** The server has fully consumed the terminal frame → the runner may GC the op. */\n final: boolean;\n /**\n * The consumer's attach generation (matches OpAttach.attach_generation; the\n * consumer's Temporal attempt number). The runner honors this ack — its floor\n * advance AND its credit grant — ONLY for the HIGHEST generation it has seen for\n * the op; a lower-generation (zombie) ack is ignored. This must ride the wire\n * (not be inferred from monotonic acked_seq alone) because credit_bytes is an\n * ABSOLUTE window REPLACEMENT: a stale consumer's ack could otherwise shrink the\n * live consumer's window (stall) or grant unintended credit (B2).\n */\n attachGeneration: string;\n}\n\n/**\n * Wraps an op-specific request. `request_id` correlates a response to a request\n * even over fan-out; `epoch` carries the lease/active epoch the control plane\n * resolved this op against, so the agent can reject a stale op (ERROR_CODE_FENCED).\n */\nexport interface ControlRequest {\n requestId: string;\n epoch: number;\n op:\n | { $case: \"ping\"; ping: PingRequest }\n | { $case: \"hello\"; hello: Hello }\n | { $case: \"resume\"; resume: ResumeRequest }\n | { $case: \"exec\"; exec: ExecRequest }\n | { $case: \"fsRead\"; fsRead: FsReadRequest }\n | { $case: \"fsWrite\"; fsWrite: FsWriteRequest }\n | { $case: \"fsList\"; fsList: FsListRequest }\n | { $case: \"fsMkdir\"; fsMkdir: FsMkdirRequest }\n | { $case: \"fsMove\"; fsMove: FsMoveRequest }\n | { $case: \"fsStat\"; fsStat: FsStatRequest }\n | { $case: \"fsRemove\"; fsRemove: FsRemoveRequest }\n | { $case: \"git\"; git: GitRequest }\n | { $case: \"ptyOpen\"; ptyOpen: PtyOpenRequest }\n | { $case: \"ptyWrite\"; ptyWrite: PtyWriteRequest }\n | { $case: \"ptyResize\"; ptyResize: PtyResizeRequest }\n | { $case: \"ptyClose\"; ptyClose: PtyCloseRequest }\n | { $case: \"desktopEnsure\"; desktopEnsure: DesktopEnsureRequest }\n | { $case: \"metrics\"; metrics: MetricsRequest }\n | { $case: \"updateMayProceed\"; updateMayProceed: UpdateMayProceedRequest }\n | { $case: \"desktopInput\"; desktopInput: DesktopInputRequest }\n | { $case: \"desktopScreenshot\"; desktopScreenshot: DesktopScreenshotRequest }\n | //\n /**\n * Op-stream (v1.1), additive. All ride the same rpc subject; each has an\n * idempotent, typed reply in ControlResponse.result below.\n */\n { $case: \"opStart\"; opStart: OpStart }\n | { $case: \"opCancel\"; opCancel: OpCancel }\n | { $case: \"opQuery\"; opQuery: OpQuery }\n | { $case: \"opAttach\"; opAttach: OpAttach }\n | { $case: \"writeChunk\"; writeChunk: WriteChunk }\n | { $case: \"browserControlEnsure\"; browserControlEnsure: BrowserControlEnsureRequest }\n | { $case: \"browserFramesOpen\"; browserFramesOpen: BrowserFramesOpenRequest }\n | { $case: \"computerFramesOpen\"; computerFramesOpen: ComputerFramesOpenRequest }\n | undefined;\n}\n\n/** Wraps an op-specific response, or an error. `request_id` echoes the request. */\nexport interface ControlResponse {\n requestId: string;\n /** Present when the op failed; when set, `result` is empty. */\n error: AgentError | undefined;\n result:\n | { $case: \"ping\"; ping: PingResponse }\n | { $case: \"hello\"; hello: HelloAck }\n | { $case: \"resume\"; resume: ResumeResponse }\n | { $case: \"exec\"; exec: ExecResponse }\n | { $case: \"fsRead\"; fsRead: FsReadResponse }\n | { $case: \"fsWrite\"; fsWrite: FsWriteResponse }\n | { $case: \"fsList\"; fsList: FsListResponse }\n | { $case: \"fsMkdir\"; fsMkdir: FsMkdirResponse }\n | { $case: \"fsMove\"; fsMove: FsMoveResponse }\n | { $case: \"fsStat\"; fsStat: FsStatResponse }\n | { $case: \"fsRemove\"; fsRemove: FsRemoveResponse }\n | { $case: \"git\"; git: GitResponse }\n | { $case: \"ptyOpen\"; ptyOpen: PtyOpenResponse }\n | { $case: \"ptyWrite\"; ptyWrite: PtyWriteResponse }\n | { $case: \"ptyResize\"; ptyResize: PtyResizeResponse }\n | { $case: \"ptyClose\"; ptyClose: PtyCloseResponse }\n | { $case: \"desktopEnsure\"; desktopEnsure: DesktopEnsureResponse }\n | { $case: \"metrics\"; metrics: MetricsSample }\n | { $case: \"updateMayProceed\"; updateMayProceed: UpdateMayProceedResponse }\n | { $case: \"desktopInput\"; desktopInput: DesktopInputResponse }\n | { $case: \"desktopScreenshot\"; desktopScreenshot: DesktopScreenshotResponse }\n | //\n /**\n * Op-stream (v1.1) replies, additive. OpStart → OpStarted; OpCancel / OpQuery /\n * OpAttach all reply OpStatus (op_status); WriteChunk → WriteChunkAck.\n */\n { $case: \"opStart\"; opStart: OpStarted }\n | { $case: \"opStatus\"; opStatus: OpStatus }\n | { $case: \"writeChunk\"; writeChunk: WriteChunkAck }\n | { $case: \"browserControlEnsure\"; browserControlEnsure: BrowserControlEnsureResponse }\n | { $case: \"browserFramesOpen\"; browserFramesOpen: BrowserFramesOpenResponse }\n | { $case: \"computerFramesOpen\"; computerFramesOpen: ComputerFramesOpenResponse }\n | undefined;\n}\n\n/**\n * The control plane's acknowledgement of a Hello, carrying the epoch it assigned\n * and a resume token for the next reconnect.\n */\nexport interface HelloAck {\n epoch: number;\n resumeToken: string;\n /** The heartbeat interval the agent should use. */\n heartbeatIntervalMs: number;\n}\n\n/**\n * Wraps a message the AGENT originates (not a reply to a ControlRequest):\n * heartbeats, the clean going-offline signal. These are published on the agent's\n * outbound subject; the control plane folds them into lease/metrics state.\n */\nexport interface AgentEvent {\n agentId: string;\n event:\n | { $case: \"heartbeat\"; heartbeat: Heartbeat }\n | { $case: \"goingOffline\"; goingOffline: GoingOffline }\n | undefined;\n}\n\n/** The control plane's ack of an AgentEvent (e.g. a HeartbeatAck). */\nexport interface AgentEventAck {\n ack: { $case: \"heartbeat\"; heartbeat: HeartbeatAck } | undefined;\n}\n\n/**\n * Identifies a relay stream channel. The viewer/pty client connects to the\n * relay with this channel's coordinates plus a scoped `ogs_` token; the agent\n * dials out and registers the same channel. `{workspace_id, agent_id, port}`\n * is the routing key.\n */\nexport interface StreamChannel {\n channelId: string;\n workspaceId: string;\n agentId: string;\n kind: StreamKind;\n /** The logical port the channel maps to (so resolveExposedPort can address it). */\n port: number;\n}\n\n/**\n * Open a stream channel on the relay. Sent by both ends (agent registers; client\n * attaches) as the first frame of a relay connection.\n */\nexport interface StreamOpen {\n channel:\n | StreamChannel\n | undefined;\n /**\n * The scoped stream token (`ogs_` envelope) authorizing this channel; the\n * relay validates authenticity + the lease/active-epoch fence.\n */\n token: string;\n /** Whether the sender is the producing agent or the consuming viewer. */\n role: StreamRole;\n /**\n * For resume: the last frame sequence the sender successfully processed, so\n * the peer can replay from there after a reconnect blip.\n */\n resumeFromSeq: string;\n}\n\n/** The relay's acknowledgement of a StreamOpen. */\nexport interface StreamOpenAck {\n accepted: boolean;\n error:\n | AgentError\n | undefined;\n /** The sequence the peer will resume sending from. */\n resumeFromSeq: string;\n}\n\n/**\n * A data frame carrying raw stream bytes in either direction. `seq` is a\n * monotonic per-channel-per-direction counter enabling resume-from-seq. For a\n * DESKTOP channel `data` is an encoded framebuffer chunk; for PTY it is raw tty\n * bytes. Input (client→agent) for desktop computer-use rides DesktopInput\n * instead so synthetic events are typed, not opaque bytes.\n */\nexport interface StreamFrame {\n channelId: string;\n seq: string;\n data: Uint8Array;\n /** Unix epoch ms the frame was produced (for latency/lag metrics). */\n producedAtMs: string;\n}\n\n/**\n * Close a stream channel. Either end may send it; the relay tears down the\n * channel and notifies the peer.\n */\nexport interface StreamClose {\n channelId: string;\n reason: StreamCloseReason;\n message: string;\n}\n\n/**\n * Typed computer-use input from a client to a desktop channel (client→agent).\n * Synthetic input is gated on consented_screen_control; an ungated input op\n * fails with ERROR_CODE_CONSENT_REQUIRED.\n */\nexport interface DesktopInput {\n channelId: string;\n event: { $case: \"pointer\"; pointer: PointerEvent } | { $case: \"key\"; key: KeyEvent } | {\n $case: \"scroll\";\n scroll: ScrollEvent;\n } | undefined;\n}\n\nexport interface PointerEvent {\n x: number;\n y: number;\n action: PointerAction;\n button: PointerButton;\n}\n\nexport interface KeyEvent {\n /** A platform-independent key name (e.g. \"Enter\", \"a\", \"ctrl+c\") OR text to type. */\n key: string;\n isText: boolean;\n action: KeyAction;\n}\n\nexport interface ScrollEvent {\n x: number;\n y: number;\n deltaX: number;\n deltaY: number;\n}\n\nfunction createBaseAgentError(): AgentError {\n return { code: 0, message: \"\", retryable: false, detail: {} };\n}\n\nexport const AgentError: MessageFns<AgentError> = {\n encode(message: AgentError, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.code !== 0) {\n writer.uint32(8).int32(message.code);\n }\n if (message.message !== \"\") {\n writer.uint32(18).string(message.message);\n }\n if (message.retryable !== false) {\n writer.uint32(24).bool(message.retryable);\n }\n globalThis.Object.entries(message.detail).forEach(([key, value]: [string, string]) => {\n AgentError_DetailEntry.encode({ key: key as any, value }, writer.uint32(34).fork()).join();\n });\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): AgentError {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAgentError();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.code = reader.int32() as any;\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.message = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.retryable = reader.bool();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n const entry4 = AgentError_DetailEntry.decode(reader, reader.uint32());\n if (entry4.value !== undefined) {\n message.detail[entry4.key] = entry4.value;\n }\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): AgentError {\n return {\n code: isSet(object.code) ? errorCodeFromJSON(object.code) : 0,\n message: isSet(object.message) ? globalThis.String(object.message) : \"\",\n retryable: isSet(object.retryable) ? globalThis.Boolean(object.retryable) : false,\n detail: isObject(object.detail)\n ? (globalThis.Object.entries(object.detail) as [string, any][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, any]) => {\n acc[key] = globalThis.String(value);\n return acc;\n },\n {},\n )\n : {},\n };\n },\n\n toJSON(message: AgentError): unknown {\n const obj: any = {};\n if (message.code !== 0) {\n obj.code = errorCodeToJSON(message.code);\n }\n if (message.message !== \"\") {\n obj.message = message.message;\n }\n if (message.retryable !== false) {\n obj.retryable = message.retryable;\n }\n if (message.detail) {\n const entries = globalThis.Object.entries(message.detail) as [string, string][];\n if (entries.length > 0) {\n obj.detail = {};\n entries.forEach(([k, v]) => {\n obj.detail[k] = v;\n });\n }\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<AgentError>, I>>(base?: I): AgentError {\n return AgentError.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<AgentError>, I>>(object: I): AgentError {\n const message = createBaseAgentError();\n message.code = object.code ?? 0;\n message.message = object.message ?? \"\";\n message.retryable = object.retryable ?? false;\n message.detail = (globalThis.Object.entries(object.detail ?? {}) as [string, string][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, string]) => {\n if (value !== undefined) {\n acc[key] = globalThis.String(value);\n }\n return acc;\n },\n {},\n );\n return message;\n },\n};\n\nfunction createBaseAgentError_DetailEntry(): AgentError_DetailEntry {\n return { key: \"\", value: \"\" };\n}\n\nexport const AgentError_DetailEntry: MessageFns<AgentError_DetailEntry> = {\n encode(message: AgentError_DetailEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): AgentError_DetailEntry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAgentError_DetailEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.value = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): AgentError_DetailEntry {\n return {\n key: isSet(object.key) ? globalThis.String(object.key) : \"\",\n value: isSet(object.value) ? globalThis.String(object.value) : \"\",\n };\n },\n\n toJSON(message: AgentError_DetailEntry): unknown {\n const obj: any = {};\n if (message.key !== \"\") {\n obj.key = message.key;\n }\n if (message.value !== \"\") {\n obj.value = message.value;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<AgentError_DetailEntry>, I>>(base?: I): AgentError_DetailEntry {\n return AgentError_DetailEntry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<AgentError_DetailEntry>, I>>(object: I): AgentError_DetailEntry {\n const message = createBaseAgentError_DetailEntry();\n message.key = object.key ?? \"\";\n message.value = object.value ?? \"\";\n return message;\n },\n};\n\nfunction createBaseHello(): Hello {\n return {\n agentId: \"\",\n workspaceId: \"\",\n agentVersion: \"\",\n os: 0,\n arch: 0,\n machineName: \"\",\n workspaceRoot: \"\",\n capabilities: undefined,\n updateChannel: \"\",\n resumeToken: \"\",\n };\n}\n\nexport const Hello: MessageFns<Hello> = {\n encode(message: Hello, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.agentId !== \"\") {\n writer.uint32(10).string(message.agentId);\n }\n if (message.workspaceId !== \"\") {\n writer.uint32(18).string(message.workspaceId);\n }\n if (message.agentVersion !== \"\") {\n writer.uint32(26).string(message.agentVersion);\n }\n if (message.os !== 0) {\n writer.uint32(32).int32(message.os);\n }\n if (message.arch !== 0) {\n writer.uint32(40).int32(message.arch);\n }\n if (message.machineName !== \"\") {\n writer.uint32(50).string(message.machineName);\n }\n if (message.workspaceRoot !== \"\") {\n writer.uint32(58).string(message.workspaceRoot);\n }\n if (message.capabilities !== undefined) {\n Capabilities.encode(message.capabilities, writer.uint32(66).fork()).join();\n }\n if (message.updateChannel !== \"\") {\n writer.uint32(74).string(message.updateChannel);\n }\n if (message.resumeToken !== \"\") {\n writer.uint32(82).string(message.resumeToken);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Hello {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHello();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.agentId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.workspaceId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.agentVersion = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.os = reader.int32() as any;\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.arch = reader.int32() as any;\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.machineName = reader.string();\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.workspaceRoot = reader.string();\n continue;\n }\n case 8: {\n if (tag !== 66) {\n break;\n }\n\n message.capabilities = Capabilities.decode(reader, reader.uint32());\n continue;\n }\n case 9: {\n if (tag !== 74) {\n break;\n }\n\n message.updateChannel = reader.string();\n continue;\n }\n case 10: {\n if (tag !== 82) {\n break;\n }\n\n message.resumeToken = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Hello {\n return {\n agentId: isSet(object.agentId)\n ? globalThis.String(object.agentId)\n : isSet(object.agent_id)\n ? globalThis.String(object.agent_id)\n : \"\",\n workspaceId: isSet(object.workspaceId)\n ? globalThis.String(object.workspaceId)\n : isSet(object.workspace_id)\n ? globalThis.String(object.workspace_id)\n : \"\",\n agentVersion: isSet(object.agentVersion)\n ? globalThis.String(object.agentVersion)\n : isSet(object.agent_version)\n ? globalThis.String(object.agent_version)\n : \"\",\n os: isSet(object.os) ? osFromJSON(object.os) : 0,\n arch: isSet(object.arch) ? archFromJSON(object.arch) : 0,\n machineName: isSet(object.machineName)\n ? globalThis.String(object.machineName)\n : isSet(object.machine_name)\n ? globalThis.String(object.machine_name)\n : \"\",\n workspaceRoot: isSet(object.workspaceRoot)\n ? globalThis.String(object.workspaceRoot)\n : isSet(object.workspace_root)\n ? globalThis.String(object.workspace_root)\n : \"\",\n capabilities: isSet(object.capabilities) ? Capabilities.fromJSON(object.capabilities) : undefined,\n updateChannel: isSet(object.updateChannel)\n ? globalThis.String(object.updateChannel)\n : isSet(object.update_channel)\n ? globalThis.String(object.update_channel)\n : \"\",\n resumeToken: isSet(object.resumeToken)\n ? globalThis.String(object.resumeToken)\n : isSet(object.resume_token)\n ? globalThis.String(object.resume_token)\n : \"\",\n };\n },\n\n toJSON(message: Hello): unknown {\n const obj: any = {};\n if (message.agentId !== \"\") {\n obj.agentId = message.agentId;\n }\n if (message.workspaceId !== \"\") {\n obj.workspaceId = message.workspaceId;\n }\n if (message.agentVersion !== \"\") {\n obj.agentVersion = message.agentVersion;\n }\n if (message.os !== 0) {\n obj.os = osToJSON(message.os);\n }\n if (message.arch !== 0) {\n obj.arch = archToJSON(message.arch);\n }\n if (message.machineName !== \"\") {\n obj.machineName = message.machineName;\n }\n if (message.workspaceRoot !== \"\") {\n obj.workspaceRoot = message.workspaceRoot;\n }\n if (message.capabilities !== undefined) {\n obj.capabilities = Capabilities.toJSON(message.capabilities);\n }\n if (message.updateChannel !== \"\") {\n obj.updateChannel = message.updateChannel;\n }\n if (message.resumeToken !== \"\") {\n obj.resumeToken = message.resumeToken;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<Hello>, I>>(base?: I): Hello {\n return Hello.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Hello>, I>>(object: I): Hello {\n const message = createBaseHello();\n message.agentId = object.agentId ?? \"\";\n message.workspaceId = object.workspaceId ?? \"\";\n message.agentVersion = object.agentVersion ?? \"\";\n message.os = object.os ?? 0;\n message.arch = object.arch ?? 0;\n message.machineName = object.machineName ?? \"\";\n message.workspaceRoot = object.workspaceRoot ?? \"\";\n message.capabilities = (object.capabilities !== undefined && object.capabilities !== null)\n ? Capabilities.fromPartial(object.capabilities)\n : undefined;\n message.updateChannel = object.updateChannel ?? \"\";\n message.resumeToken = object.resumeToken ?? \"\";\n return message;\n },\n};\n\nfunction createBaseCapabilities(): Capabilities {\n return {\n exec: false,\n filesystem: false,\n git: false,\n pty: false,\n desktop: false,\n consentedWholeMachine: false,\n consentedScreenControl: false,\n display: undefined,\n desktopUnavailableReason: \"\",\n opStream: false,\n browserBridge: false,\n };\n}\n\nexport const Capabilities: MessageFns<Capabilities> = {\n encode(message: Capabilities, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.exec !== false) {\n writer.uint32(8).bool(message.exec);\n }\n if (message.filesystem !== false) {\n writer.uint32(16).bool(message.filesystem);\n }\n if (message.git !== false) {\n writer.uint32(24).bool(message.git);\n }\n if (message.pty !== false) {\n writer.uint32(32).bool(message.pty);\n }\n if (message.desktop !== false) {\n writer.uint32(40).bool(message.desktop);\n }\n if (message.consentedWholeMachine !== false) {\n writer.uint32(48).bool(message.consentedWholeMachine);\n }\n if (message.consentedScreenControl !== false) {\n writer.uint32(56).bool(message.consentedScreenControl);\n }\n if (message.display !== undefined) {\n Display.encode(message.display, writer.uint32(66).fork()).join();\n }\n if (message.desktopUnavailableReason !== \"\") {\n writer.uint32(74).string(message.desktopUnavailableReason);\n }\n if (message.opStream !== false) {\n writer.uint32(80).bool(message.opStream);\n }\n if (message.browserBridge !== false) {\n writer.uint32(88).bool(message.browserBridge);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Capabilities {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCapabilities();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.exec = reader.bool();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.filesystem = reader.bool();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.git = reader.bool();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.pty = reader.bool();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.desktop = reader.bool();\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.consentedWholeMachine = reader.bool();\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.consentedScreenControl = reader.bool();\n continue;\n }\n case 8: {\n if (tag !== 66) {\n break;\n }\n\n message.display = Display.decode(reader, reader.uint32());\n continue;\n }\n case 9: {\n if (tag !== 74) {\n break;\n }\n\n message.desktopUnavailableReason = reader.string();\n continue;\n }\n case 10: {\n if (tag !== 80) {\n break;\n }\n\n message.opStream = reader.bool();\n continue;\n }\n case 11: {\n if (tag !== 88) {\n break;\n }\n\n message.browserBridge = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Capabilities {\n return {\n exec: isSet(object.exec) ? globalThis.Boolean(object.exec) : false,\n filesystem: isSet(object.filesystem) ? globalThis.Boolean(object.filesystem) : false,\n git: isSet(object.git) ? globalThis.Boolean(object.git) : false,\n pty: isSet(object.pty) ? globalThis.Boolean(object.pty) : false,\n desktop: isSet(object.desktop) ? globalThis.Boolean(object.desktop) : false,\n consentedWholeMachine: isSet(object.consentedWholeMachine)\n ? globalThis.Boolean(object.consentedWholeMachine)\n : isSet(object.consented_whole_machine)\n ? globalThis.Boolean(object.consented_whole_machine)\n : false,\n consentedScreenControl: isSet(object.consentedScreenControl)\n ? globalThis.Boolean(object.consentedScreenControl)\n : isSet(object.consented_screen_control)\n ? globalThis.Boolean(object.consented_screen_control)\n : false,\n display: isSet(object.display) ? Display.fromJSON(object.display) : undefined,\n desktopUnavailableReason: isSet(object.desktopUnavailableReason)\n ? globalThis.String(object.desktopUnavailableReason)\n : isSet(object.desktop_unavailable_reason)\n ? globalThis.String(object.desktop_unavailable_reason)\n : \"\",\n opStream: isSet(object.opStream)\n ? globalThis.Boolean(object.opStream)\n : isSet(object.op_stream)\n ? globalThis.Boolean(object.op_stream)\n : false,\n browserBridge: isSet(object.browserBridge)\n ? globalThis.Boolean(object.browserBridge)\n : isSet(object.browser_bridge)\n ? globalThis.Boolean(object.browser_bridge)\n : false,\n };\n },\n\n toJSON(message: Capabilities): unknown {\n const obj: any = {};\n if (message.exec !== false) {\n obj.exec = message.exec;\n }\n if (message.filesystem !== false) {\n obj.filesystem = message.filesystem;\n }\n if (message.git !== false) {\n obj.git = message.git;\n }\n if (message.pty !== false) {\n obj.pty = message.pty;\n }\n if (message.desktop !== false) {\n obj.desktop = message.desktop;\n }\n if (message.consentedWholeMachine !== false) {\n obj.consentedWholeMachine = message.consentedWholeMachine;\n }\n if (message.consentedScreenControl !== false) {\n obj.consentedScreenControl = message.consentedScreenControl;\n }\n if (message.display !== undefined) {\n obj.display = Display.toJSON(message.display);\n }\n if (message.desktopUnavailableReason !== \"\") {\n obj.desktopUnavailableReason = message.desktopUnavailableReason;\n }\n if (message.opStream !== false) {\n obj.opStream = message.opStream;\n }\n if (message.browserBridge !== false) {\n obj.browserBridge = message.browserBridge;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<Capabilities>, I>>(base?: I): Capabilities {\n return Capabilities.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Capabilities>, I>>(object: I): Capabilities {\n const message = createBaseCapabilities();\n message.exec = object.exec ?? false;\n message.filesystem = object.filesystem ?? false;\n message.git = object.git ?? false;\n message.pty = object.pty ?? false;\n message.desktop = object.desktop ?? false;\n message.consentedWholeMachine = object.consentedWholeMachine ?? false;\n message.consentedScreenControl = object.consentedScreenControl ?? false;\n message.display = (object.display !== undefined && object.display !== null)\n ? Display.fromPartial(object.display)\n : undefined;\n message.desktopUnavailableReason = object.desktopUnavailableReason ?? \"\";\n message.opStream = object.opStream ?? false;\n message.browserBridge = object.browserBridge ?? false;\n return message;\n },\n};\n\nfunction createBaseAttachedBrowserDeviceCapabilities(): AttachedBrowserDeviceCapabilities {\n return {\n tabInventory: false,\n debuggerAttachment: false,\n semanticObservation: false,\n screenshots: false,\n liveFrames: false,\n humanInput: false,\n diagnostics: false,\n rawCdp: false,\n linkedComputer: false,\n };\n}\n\nexport const AttachedBrowserDeviceCapabilities: MessageFns<AttachedBrowserDeviceCapabilities> = {\n encode(message: AttachedBrowserDeviceCapabilities, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.tabInventory !== false) {\n writer.uint32(8).bool(message.tabInventory);\n }\n if (message.debuggerAttachment !== false) {\n writer.uint32(16).bool(message.debuggerAttachment);\n }\n if (message.semanticObservation !== false) {\n writer.uint32(24).bool(message.semanticObservation);\n }\n if (message.screenshots !== false) {\n writer.uint32(32).bool(message.screenshots);\n }\n if (message.liveFrames !== false) {\n writer.uint32(40).bool(message.liveFrames);\n }\n if (message.humanInput !== false) {\n writer.uint32(48).bool(message.humanInput);\n }\n if (message.diagnostics !== false) {\n writer.uint32(56).bool(message.diagnostics);\n }\n if (message.rawCdp !== false) {\n writer.uint32(64).bool(message.rawCdp);\n }\n if (message.linkedComputer !== false) {\n writer.uint32(72).bool(message.linkedComputer);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): AttachedBrowserDeviceCapabilities {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAttachedBrowserDeviceCapabilities();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.tabInventory = reader.bool();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.debuggerAttachment = reader.bool();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.semanticObservation = reader.bool();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.screenshots = reader.bool();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.liveFrames = reader.bool();\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.humanInput = reader.bool();\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.diagnostics = reader.bool();\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.rawCdp = reader.bool();\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.linkedComputer = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): AttachedBrowserDeviceCapabilities {\n return {\n tabInventory: isSet(object.tabInventory)\n ? globalThis.Boolean(object.tabInventory)\n : isSet(object.tab_inventory)\n ? globalThis.Boolean(object.tab_inventory)\n : false,\n debuggerAttachment: isSet(object.debuggerAttachment)\n ? globalThis.Boolean(object.debuggerAttachment)\n : isSet(object.debugger_attachment)\n ? globalThis.Boolean(object.debugger_attachment)\n : false,\n semanticObservation: isSet(object.semanticObservation)\n ? globalThis.Boolean(object.semanticObservation)\n : isSet(object.semantic_observation)\n ? globalThis.Boolean(object.semantic_observation)\n : false,\n screenshots: isSet(object.screenshots) ? globalThis.Boolean(object.screenshots) : false,\n liveFrames: isSet(object.liveFrames)\n ? globalThis.Boolean(object.liveFrames)\n : isSet(object.live_frames)\n ? globalThis.Boolean(object.live_frames)\n : false,\n humanInput: isSet(object.humanInput)\n ? globalThis.Boolean(object.humanInput)\n : isSet(object.human_input)\n ? globalThis.Boolean(object.human_input)\n : false,\n diagnostics: isSet(object.diagnostics) ? globalThis.Boolean(object.diagnostics) : false,\n rawCdp: isSet(object.rawCdp)\n ? globalThis.Boolean(object.rawCdp)\n : isSet(object.raw_cdp)\n ? globalThis.Boolean(object.raw_cdp)\n : false,\n linkedComputer: isSet(object.linkedComputer)\n ? globalThis.Boolean(object.linkedComputer)\n : isSet(object.linked_computer)\n ? globalThis.Boolean(object.linked_computer)\n : false,\n };\n },\n\n toJSON(message: AttachedBrowserDeviceCapabilities): unknown {\n const obj: any = {};\n if (message.tabInventory !== false) {\n obj.tabInventory = message.tabInventory;\n }\n if (message.debuggerAttachment !== false) {\n obj.debuggerAttachment = message.debuggerAttachment;\n }\n if (message.semanticObservation !== false) {\n obj.semanticObservation = message.semanticObservation;\n }\n if (message.screenshots !== false) {\n obj.screenshots = message.screenshots;\n }\n if (message.liveFrames !== false) {\n obj.liveFrames = message.liveFrames;\n }\n if (message.humanInput !== false) {\n obj.humanInput = message.humanInput;\n }\n if (message.diagnostics !== false) {\n obj.diagnostics = message.diagnostics;\n }\n if (message.rawCdp !== false) {\n obj.rawCdp = message.rawCdp;\n }\n if (message.linkedComputer !== false) {\n obj.linkedComputer = message.linkedComputer;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<AttachedBrowserDeviceCapabilities>, I>>(\n base?: I,\n ): AttachedBrowserDeviceCapabilities {\n return AttachedBrowserDeviceCapabilities.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<AttachedBrowserDeviceCapabilities>, I>>(\n object: I,\n ): AttachedBrowserDeviceCapabilities {\n const message = createBaseAttachedBrowserDeviceCapabilities();\n message.tabInventory = object.tabInventory ?? false;\n message.debuggerAttachment = object.debuggerAttachment ?? false;\n message.semanticObservation = object.semanticObservation ?? false;\n message.screenshots = object.screenshots ?? false;\n message.liveFrames = object.liveFrames ?? false;\n message.humanInput = object.humanInput ?? false;\n message.diagnostics = object.diagnostics ?? false;\n message.rawCdp = object.rawCdp ?? false;\n message.linkedComputer = object.linkedComputer ?? false;\n return message;\n },\n};\n\nfunction createBaseAttachedBrowserDeviceAnnouncement(): AttachedBrowserDeviceAnnouncement {\n return {\n id: \"\",\n name: \"\",\n profileLabel: \"\",\n browserName: \"\",\n browserVersion: \"\",\n extensionVersion: \"\",\n platform: 0,\n arch: 0,\n connectionGeneration: \"\",\n inventoryRevision: \"0\",\n tabCount: 0,\n capabilities: undefined,\n };\n}\n\nexport const AttachedBrowserDeviceAnnouncement: MessageFns<AttachedBrowserDeviceAnnouncement> = {\n encode(message: AttachedBrowserDeviceAnnouncement, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.name !== \"\") {\n writer.uint32(18).string(message.name);\n }\n if (message.profileLabel !== \"\") {\n writer.uint32(26).string(message.profileLabel);\n }\n if (message.browserName !== \"\") {\n writer.uint32(34).string(message.browserName);\n }\n if (message.browserVersion !== \"\") {\n writer.uint32(42).string(message.browserVersion);\n }\n if (message.extensionVersion !== \"\") {\n writer.uint32(50).string(message.extensionVersion);\n }\n if (message.platform !== 0) {\n writer.uint32(56).int32(message.platform);\n }\n if (message.arch !== 0) {\n writer.uint32(64).int32(message.arch);\n }\n if (message.connectionGeneration !== \"\") {\n writer.uint32(74).string(message.connectionGeneration);\n }\n if (message.inventoryRevision !== \"0\") {\n writer.uint32(80).uint64(message.inventoryRevision);\n }\n if (message.tabCount !== 0) {\n writer.uint32(88).uint32(message.tabCount);\n }\n if (message.capabilities !== undefined) {\n AttachedBrowserDeviceCapabilities.encode(message.capabilities, writer.uint32(98).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): AttachedBrowserDeviceAnnouncement {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAttachedBrowserDeviceAnnouncement();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.name = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.profileLabel = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.browserName = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.browserVersion = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.extensionVersion = reader.string();\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.platform = reader.int32() as any;\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.arch = reader.int32() as any;\n continue;\n }\n case 9: {\n if (tag !== 74) {\n break;\n }\n\n message.connectionGeneration = reader.string();\n continue;\n }\n case 10: {\n if (tag !== 80) {\n break;\n }\n\n message.inventoryRevision = reader.uint64().toString();\n continue;\n }\n case 11: {\n if (tag !== 88) {\n break;\n }\n\n message.tabCount = reader.uint32();\n continue;\n }\n case 12: {\n if (tag !== 98) {\n break;\n }\n\n message.capabilities = AttachedBrowserDeviceCapabilities.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): AttachedBrowserDeviceAnnouncement {\n return {\n id: isSet(object.id) ? globalThis.String(object.id) : \"\",\n name: isSet(object.name) ? globalThis.String(object.name) : \"\",\n profileLabel: isSet(object.profileLabel)\n ? globalThis.String(object.profileLabel)\n : isSet(object.profile_label)\n ? globalThis.String(object.profile_label)\n : \"\",\n browserName: isSet(object.browserName)\n ? globalThis.String(object.browserName)\n : isSet(object.browser_name)\n ? globalThis.String(object.browser_name)\n : \"\",\n browserVersion: isSet(object.browserVersion)\n ? globalThis.String(object.browserVersion)\n : isSet(object.browser_version)\n ? globalThis.String(object.browser_version)\n : \"\",\n extensionVersion: isSet(object.extensionVersion)\n ? globalThis.String(object.extensionVersion)\n : isSet(object.extension_version)\n ? globalThis.String(object.extension_version)\n : \"\",\n platform: isSet(object.platform) ? osFromJSON(object.platform) : 0,\n arch: isSet(object.arch) ? archFromJSON(object.arch) : 0,\n connectionGeneration: isSet(object.connectionGeneration)\n ? globalThis.String(object.connectionGeneration)\n : isSet(object.connection_generation)\n ? globalThis.String(object.connection_generation)\n : \"\",\n inventoryRevision: isSet(object.inventoryRevision)\n ? globalThis.String(object.inventoryRevision)\n : isSet(object.inventory_revision)\n ? globalThis.String(object.inventory_revision)\n : \"0\",\n tabCount: isSet(object.tabCount)\n ? globalThis.Number(object.tabCount)\n : isSet(object.tab_count)\n ? globalThis.Number(object.tab_count)\n : 0,\n capabilities: isSet(object.capabilities)\n ? AttachedBrowserDeviceCapabilities.fromJSON(object.capabilities)\n : undefined,\n };\n },\n\n toJSON(message: AttachedBrowserDeviceAnnouncement): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n if (message.name !== \"\") {\n obj.name = message.name;\n }\n if (message.profileLabel !== \"\") {\n obj.profileLabel = message.profileLabel;\n }\n if (message.browserName !== \"\") {\n obj.browserName = message.browserName;\n }\n if (message.browserVersion !== \"\") {\n obj.browserVersion = message.browserVersion;\n }\n if (message.extensionVersion !== \"\") {\n obj.extensionVersion = message.extensionVersion;\n }\n if (message.platform !== 0) {\n obj.platform = osToJSON(message.platform);\n }\n if (message.arch !== 0) {\n obj.arch = archToJSON(message.arch);\n }\n if (message.connectionGeneration !== \"\") {\n obj.connectionGeneration = message.connectionGeneration;\n }\n if (message.inventoryRevision !== \"0\") {\n obj.inventoryRevision = message.inventoryRevision;\n }\n if (message.tabCount !== 0) {\n obj.tabCount = Math.round(message.tabCount);\n }\n if (message.capabilities !== undefined) {\n obj.capabilities = AttachedBrowserDeviceCapabilities.toJSON(message.capabilities);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<AttachedBrowserDeviceAnnouncement>, I>>(\n base?: I,\n ): AttachedBrowserDeviceAnnouncement {\n return AttachedBrowserDeviceAnnouncement.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<AttachedBrowserDeviceAnnouncement>, I>>(\n object: I,\n ): AttachedBrowserDeviceAnnouncement {\n const message = createBaseAttachedBrowserDeviceAnnouncement();\n message.id = object.id ?? \"\";\n message.name = object.name ?? \"\";\n message.profileLabel = object.profileLabel ?? \"\";\n message.browserName = object.browserName ?? \"\";\n message.browserVersion = object.browserVersion ?? \"\";\n message.extensionVersion = object.extensionVersion ?? \"\";\n message.platform = object.platform ?? 0;\n message.arch = object.arch ?? 0;\n message.connectionGeneration = object.connectionGeneration ?? \"\";\n message.inventoryRevision = object.inventoryRevision ?? \"0\";\n message.tabCount = object.tabCount ?? 0;\n message.capabilities = (object.capabilities !== undefined && object.capabilities !== null)\n ? AttachedBrowserDeviceCapabilities.fromPartial(object.capabilities)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseAttachedBrowserInventorySnapshot(): AttachedBrowserInventorySnapshot {\n return { bridgeGeneration: \"\", revision: \"0\", devices: [] };\n}\n\nexport const AttachedBrowserInventorySnapshot: MessageFns<AttachedBrowserInventorySnapshot> = {\n encode(message: AttachedBrowserInventorySnapshot, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.bridgeGeneration !== \"\") {\n writer.uint32(10).string(message.bridgeGeneration);\n }\n if (message.revision !== \"0\") {\n writer.uint32(16).uint64(message.revision);\n }\n for (const v of message.devices) {\n AttachedBrowserDeviceAnnouncement.encode(v!, writer.uint32(26).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): AttachedBrowserInventorySnapshot {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAttachedBrowserInventorySnapshot();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.bridgeGeneration = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.revision = reader.uint64().toString();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.devices.push(AttachedBrowserDeviceAnnouncement.decode(reader, reader.uint32()));\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): AttachedBrowserInventorySnapshot {\n return {\n bridgeGeneration: isSet(object.bridgeGeneration)\n ? globalThis.String(object.bridgeGeneration)\n : isSet(object.bridge_generation)\n ? globalThis.String(object.bridge_generation)\n : \"\",\n revision: isSet(object.revision) ? globalThis.String(object.revision) : \"0\",\n devices: globalThis.Array.isArray(object?.devices)\n ? object.devices.map((e: any) => AttachedBrowserDeviceAnnouncement.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: AttachedBrowserInventorySnapshot): unknown {\n const obj: any = {};\n if (message.bridgeGeneration !== \"\") {\n obj.bridgeGeneration = message.bridgeGeneration;\n }\n if (message.revision !== \"0\") {\n obj.revision = message.revision;\n }\n if (message.devices?.length) {\n obj.devices = message.devices.map((e) => AttachedBrowserDeviceAnnouncement.toJSON(e));\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<AttachedBrowserInventorySnapshot>, I>>(\n base?: I,\n ): AttachedBrowserInventorySnapshot {\n return AttachedBrowserInventorySnapshot.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<AttachedBrowserInventorySnapshot>, I>>(\n object: I,\n ): AttachedBrowserInventorySnapshot {\n const message = createBaseAttachedBrowserInventorySnapshot();\n message.bridgeGeneration = object.bridgeGeneration ?? \"\";\n message.revision = object.revision ?? \"0\";\n message.devices = object.devices?.map((e) => AttachedBrowserDeviceAnnouncement.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseDisplay(): Display {\n return { id: \"\", width: 0, height: 0, virtual: false };\n}\n\nexport const Display: MessageFns<Display> = {\n encode(message: Display, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.id !== \"\") {\n writer.uint32(10).string(message.id);\n }\n if (message.width !== 0) {\n writer.uint32(16).uint32(message.width);\n }\n if (message.height !== 0) {\n writer.uint32(24).uint32(message.height);\n }\n if (message.virtual !== false) {\n writer.uint32(32).bool(message.virtual);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Display {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDisplay();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.id = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.width = reader.uint32();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.height = reader.uint32();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.virtual = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Display {\n return {\n id: isSet(object.id) ? globalThis.String(object.id) : \"\",\n width: isSet(object.width) ? globalThis.Number(object.width) : 0,\n height: isSet(object.height) ? globalThis.Number(object.height) : 0,\n virtual: isSet(object.virtual) ? globalThis.Boolean(object.virtual) : false,\n };\n },\n\n toJSON(message: Display): unknown {\n const obj: any = {};\n if (message.id !== \"\") {\n obj.id = message.id;\n }\n if (message.width !== 0) {\n obj.width = Math.round(message.width);\n }\n if (message.height !== 0) {\n obj.height = Math.round(message.height);\n }\n if (message.virtual !== false) {\n obj.virtual = message.virtual;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<Display>, I>>(base?: I): Display {\n return Display.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Display>, I>>(object: I): Display {\n const message = createBaseDisplay();\n message.id = object.id ?? \"\";\n message.width = object.width ?? 0;\n message.height = object.height ?? 0;\n message.virtual = object.virtual ?? false;\n return message;\n },\n};\n\nfunction createBaseDeviceAuthStartRequest(): DeviceAuthStartRequest {\n return { installFingerprint: \"\", os: 0, arch: 0, machineName: \"\", updateChannel: \"\" };\n}\n\nexport const DeviceAuthStartRequest: MessageFns<DeviceAuthStartRequest> = {\n encode(message: DeviceAuthStartRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.installFingerprint !== \"\") {\n writer.uint32(10).string(message.installFingerprint);\n }\n if (message.os !== 0) {\n writer.uint32(16).int32(message.os);\n }\n if (message.arch !== 0) {\n writer.uint32(24).int32(message.arch);\n }\n if (message.machineName !== \"\") {\n writer.uint32(34).string(message.machineName);\n }\n if (message.updateChannel !== \"\") {\n writer.uint32(42).string(message.updateChannel);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DeviceAuthStartRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDeviceAuthStartRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.installFingerprint = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.os = reader.int32() as any;\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.arch = reader.int32() as any;\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.machineName = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.updateChannel = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): DeviceAuthStartRequest {\n return {\n installFingerprint: isSet(object.installFingerprint)\n ? globalThis.String(object.installFingerprint)\n : isSet(object.install_fingerprint)\n ? globalThis.String(object.install_fingerprint)\n : \"\",\n os: isSet(object.os) ? osFromJSON(object.os) : 0,\n arch: isSet(object.arch) ? archFromJSON(object.arch) : 0,\n machineName: isSet(object.machineName)\n ? globalThis.String(object.machineName)\n : isSet(object.machine_name)\n ? globalThis.String(object.machine_name)\n : \"\",\n updateChannel: isSet(object.updateChannel)\n ? globalThis.String(object.updateChannel)\n : isSet(object.update_channel)\n ? globalThis.String(object.update_channel)\n : \"\",\n };\n },\n\n toJSON(message: DeviceAuthStartRequest): unknown {\n const obj: any = {};\n if (message.installFingerprint !== \"\") {\n obj.installFingerprint = message.installFingerprint;\n }\n if (message.os !== 0) {\n obj.os = osToJSON(message.os);\n }\n if (message.arch !== 0) {\n obj.arch = archToJSON(message.arch);\n }\n if (message.machineName !== \"\") {\n obj.machineName = message.machineName;\n }\n if (message.updateChannel !== \"\") {\n obj.updateChannel = message.updateChannel;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<DeviceAuthStartRequest>, I>>(base?: I): DeviceAuthStartRequest {\n return DeviceAuthStartRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<DeviceAuthStartRequest>, I>>(object: I): DeviceAuthStartRequest {\n const message = createBaseDeviceAuthStartRequest();\n message.installFingerprint = object.installFingerprint ?? \"\";\n message.os = object.os ?? 0;\n message.arch = object.arch ?? 0;\n message.machineName = object.machineName ?? \"\";\n message.updateChannel = object.updateChannel ?? \"\";\n return message;\n },\n};\n\nfunction createBaseDeviceAuthStartResponse(): DeviceAuthStartResponse {\n return {\n userCode: \"\",\n deviceCode: \"\",\n verificationUri: \"\",\n verificationUriComplete: \"\",\n expiresInSeconds: 0,\n pollIntervalSeconds: 0,\n };\n}\n\nexport const DeviceAuthStartResponse: MessageFns<DeviceAuthStartResponse> = {\n encode(message: DeviceAuthStartResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.userCode !== \"\") {\n writer.uint32(10).string(message.userCode);\n }\n if (message.deviceCode !== \"\") {\n writer.uint32(18).string(message.deviceCode);\n }\n if (message.verificationUri !== \"\") {\n writer.uint32(26).string(message.verificationUri);\n }\n if (message.verificationUriComplete !== \"\") {\n writer.uint32(34).string(message.verificationUriComplete);\n }\n if (message.expiresInSeconds !== 0) {\n writer.uint32(40).uint32(message.expiresInSeconds);\n }\n if (message.pollIntervalSeconds !== 0) {\n writer.uint32(48).uint32(message.pollIntervalSeconds);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DeviceAuthStartResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDeviceAuthStartResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.userCode = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.deviceCode = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.verificationUri = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.verificationUriComplete = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.expiresInSeconds = reader.uint32();\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.pollIntervalSeconds = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): DeviceAuthStartResponse {\n return {\n userCode: isSet(object.userCode)\n ? globalThis.String(object.userCode)\n : isSet(object.user_code)\n ? globalThis.String(object.user_code)\n : \"\",\n deviceCode: isSet(object.deviceCode)\n ? globalThis.String(object.deviceCode)\n : isSet(object.device_code)\n ? globalThis.String(object.device_code)\n : \"\",\n verificationUri: isSet(object.verificationUri)\n ? globalThis.String(object.verificationUri)\n : isSet(object.verification_uri)\n ? globalThis.String(object.verification_uri)\n : \"\",\n verificationUriComplete: isSet(object.verificationUriComplete)\n ? globalThis.String(object.verificationUriComplete)\n : isSet(object.verification_uri_complete)\n ? globalThis.String(object.verification_uri_complete)\n : \"\",\n expiresInSeconds: isSet(object.expiresInSeconds)\n ? globalThis.Number(object.expiresInSeconds)\n : isSet(object.expires_in_seconds)\n ? globalThis.Number(object.expires_in_seconds)\n : 0,\n pollIntervalSeconds: isSet(object.pollIntervalSeconds)\n ? globalThis.Number(object.pollIntervalSeconds)\n : isSet(object.poll_interval_seconds)\n ? globalThis.Number(object.poll_interval_seconds)\n : 0,\n };\n },\n\n toJSON(message: DeviceAuthStartResponse): unknown {\n const obj: any = {};\n if (message.userCode !== \"\") {\n obj.userCode = message.userCode;\n }\n if (message.deviceCode !== \"\") {\n obj.deviceCode = message.deviceCode;\n }\n if (message.verificationUri !== \"\") {\n obj.verificationUri = message.verificationUri;\n }\n if (message.verificationUriComplete !== \"\") {\n obj.verificationUriComplete = message.verificationUriComplete;\n }\n if (message.expiresInSeconds !== 0) {\n obj.expiresInSeconds = Math.round(message.expiresInSeconds);\n }\n if (message.pollIntervalSeconds !== 0) {\n obj.pollIntervalSeconds = Math.round(message.pollIntervalSeconds);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<DeviceAuthStartResponse>, I>>(base?: I): DeviceAuthStartResponse {\n return DeviceAuthStartResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<DeviceAuthStartResponse>, I>>(object: I): DeviceAuthStartResponse {\n const message = createBaseDeviceAuthStartResponse();\n message.userCode = object.userCode ?? \"\";\n message.deviceCode = object.deviceCode ?? \"\";\n message.verificationUri = object.verificationUri ?? \"\";\n message.verificationUriComplete = object.verificationUriComplete ?? \"\";\n message.expiresInSeconds = object.expiresInSeconds ?? 0;\n message.pollIntervalSeconds = object.pollIntervalSeconds ?? 0;\n return message;\n },\n};\n\nfunction createBaseDeviceAuthPollRequest(): DeviceAuthPollRequest {\n return { deviceCode: \"\" };\n}\n\nexport const DeviceAuthPollRequest: MessageFns<DeviceAuthPollRequest> = {\n encode(message: DeviceAuthPollRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.deviceCode !== \"\") {\n writer.uint32(10).string(message.deviceCode);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DeviceAuthPollRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDeviceAuthPollRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.deviceCode = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): DeviceAuthPollRequest {\n return {\n deviceCode: isSet(object.deviceCode)\n ? globalThis.String(object.deviceCode)\n : isSet(object.device_code)\n ? globalThis.String(object.device_code)\n : \"\",\n };\n },\n\n toJSON(message: DeviceAuthPollRequest): unknown {\n const obj: any = {};\n if (message.deviceCode !== \"\") {\n obj.deviceCode = message.deviceCode;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<DeviceAuthPollRequest>, I>>(base?: I): DeviceAuthPollRequest {\n return DeviceAuthPollRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<DeviceAuthPollRequest>, I>>(object: I): DeviceAuthPollRequest {\n const message = createBaseDeviceAuthPollRequest();\n message.deviceCode = object.deviceCode ?? \"\";\n return message;\n },\n};\n\nfunction createBaseDeviceAuthPollResponse(): DeviceAuthPollResponse {\n return { state: 0, credentials: undefined };\n}\n\nexport const DeviceAuthPollResponse: MessageFns<DeviceAuthPollResponse> = {\n encode(message: DeviceAuthPollResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.state !== 0) {\n writer.uint32(8).int32(message.state);\n }\n if (message.credentials !== undefined) {\n EnrollmentCredentials.encode(message.credentials, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DeviceAuthPollResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDeviceAuthPollResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.state = reader.int32() as any;\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.credentials = EnrollmentCredentials.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): DeviceAuthPollResponse {\n return {\n state: isSet(object.state) ? deviceAuthStateFromJSON(object.state) : 0,\n credentials: isSet(object.credentials) ? EnrollmentCredentials.fromJSON(object.credentials) : undefined,\n };\n },\n\n toJSON(message: DeviceAuthPollResponse): unknown {\n const obj: any = {};\n if (message.state !== 0) {\n obj.state = deviceAuthStateToJSON(message.state);\n }\n if (message.credentials !== undefined) {\n obj.credentials = EnrollmentCredentials.toJSON(message.credentials);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<DeviceAuthPollResponse>, I>>(base?: I): DeviceAuthPollResponse {\n return DeviceAuthPollResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<DeviceAuthPollResponse>, I>>(object: I): DeviceAuthPollResponse {\n const message = createBaseDeviceAuthPollResponse();\n message.state = object.state ?? 0;\n message.credentials = (object.credentials !== undefined && object.credentials !== null)\n ? EnrollmentCredentials.fromPartial(object.credentials)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEnrollmentCredentials(): EnrollmentCredentials {\n return {\n agentId: \"\",\n workspaceId: \"\",\n natsCredentials: \"\",\n natsUrls: [],\n relayUrl: \"\",\n updatePubkey: \"\",\n consentedWholeMachine: false,\n consentedScreenControl: false,\n relayToken: \"\",\n };\n}\n\nexport const EnrollmentCredentials: MessageFns<EnrollmentCredentials> = {\n encode(message: EnrollmentCredentials, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.agentId !== \"\") {\n writer.uint32(10).string(message.agentId);\n }\n if (message.workspaceId !== \"\") {\n writer.uint32(18).string(message.workspaceId);\n }\n if (message.natsCredentials !== \"\") {\n writer.uint32(26).string(message.natsCredentials);\n }\n for (const v of message.natsUrls) {\n writer.uint32(34).string(v!);\n }\n if (message.relayUrl !== \"\") {\n writer.uint32(42).string(message.relayUrl);\n }\n if (message.updatePubkey !== \"\") {\n writer.uint32(50).string(message.updatePubkey);\n }\n if (message.consentedWholeMachine !== false) {\n writer.uint32(56).bool(message.consentedWholeMachine);\n }\n if (message.consentedScreenControl !== false) {\n writer.uint32(64).bool(message.consentedScreenControl);\n }\n if (message.relayToken !== \"\") {\n writer.uint32(74).string(message.relayToken);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): EnrollmentCredentials {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEnrollmentCredentials();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.agentId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.workspaceId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.natsCredentials = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.natsUrls.push(reader.string());\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.relayUrl = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.updatePubkey = reader.string();\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.consentedWholeMachine = reader.bool();\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.consentedScreenControl = reader.bool();\n continue;\n }\n case 9: {\n if (tag !== 74) {\n break;\n }\n\n message.relayToken = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): EnrollmentCredentials {\n return {\n agentId: isSet(object.agentId)\n ? globalThis.String(object.agentId)\n : isSet(object.agent_id)\n ? globalThis.String(object.agent_id)\n : \"\",\n workspaceId: isSet(object.workspaceId)\n ? globalThis.String(object.workspaceId)\n : isSet(object.workspace_id)\n ? globalThis.String(object.workspace_id)\n : \"\",\n natsCredentials: isSet(object.natsCredentials)\n ? globalThis.String(object.natsCredentials)\n : isSet(object.nats_credentials)\n ? globalThis.String(object.nats_credentials)\n : \"\",\n natsUrls: globalThis.Array.isArray(object?.natsUrls)\n ? object.natsUrls.map((e: any) => globalThis.String(e))\n : globalThis.Array.isArray(object?.nats_urls)\n ? object.nats_urls.map((e: any) => globalThis.String(e))\n : [],\n relayUrl: isSet(object.relayUrl)\n ? globalThis.String(object.relayUrl)\n : isSet(object.relay_url)\n ? globalThis.String(object.relay_url)\n : \"\",\n updatePubkey: isSet(object.updatePubkey)\n ? globalThis.String(object.updatePubkey)\n : isSet(object.update_pubkey)\n ? globalThis.String(object.update_pubkey)\n : \"\",\n consentedWholeMachine: isSet(object.consentedWholeMachine)\n ? globalThis.Boolean(object.consentedWholeMachine)\n : isSet(object.consented_whole_machine)\n ? globalThis.Boolean(object.consented_whole_machine)\n : false,\n consentedScreenControl: isSet(object.consentedScreenControl)\n ? globalThis.Boolean(object.consentedScreenControl)\n : isSet(object.consented_screen_control)\n ? globalThis.Boolean(object.consented_screen_control)\n : false,\n relayToken: isSet(object.relayToken)\n ? globalThis.String(object.relayToken)\n : isSet(object.relay_token)\n ? globalThis.String(object.relay_token)\n : \"\",\n };\n },\n\n toJSON(message: EnrollmentCredentials): unknown {\n const obj: any = {};\n if (message.agentId !== \"\") {\n obj.agentId = message.agentId;\n }\n if (message.workspaceId !== \"\") {\n obj.workspaceId = message.workspaceId;\n }\n if (message.natsCredentials !== \"\") {\n obj.natsCredentials = message.natsCredentials;\n }\n if (message.natsUrls?.length) {\n obj.natsUrls = message.natsUrls;\n }\n if (message.relayUrl !== \"\") {\n obj.relayUrl = message.relayUrl;\n }\n if (message.updatePubkey !== \"\") {\n obj.updatePubkey = message.updatePubkey;\n }\n if (message.consentedWholeMachine !== false) {\n obj.consentedWholeMachine = message.consentedWholeMachine;\n }\n if (message.consentedScreenControl !== false) {\n obj.consentedScreenControl = message.consentedScreenControl;\n }\n if (message.relayToken !== \"\") {\n obj.relayToken = message.relayToken;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<EnrollmentCredentials>, I>>(base?: I): EnrollmentCredentials {\n return EnrollmentCredentials.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<EnrollmentCredentials>, I>>(object: I): EnrollmentCredentials {\n const message = createBaseEnrollmentCredentials();\n message.agentId = object.agentId ?? \"\";\n message.workspaceId = object.workspaceId ?? \"\";\n message.natsCredentials = object.natsCredentials ?? \"\";\n message.natsUrls = object.natsUrls?.map((e) => e) || [];\n message.relayUrl = object.relayUrl ?? \"\";\n message.updatePubkey = object.updatePubkey ?? \"\";\n message.consentedWholeMachine = object.consentedWholeMachine ?? false;\n message.consentedScreenControl = object.consentedScreenControl ?? false;\n message.relayToken = object.relayToken ?? \"\";\n return message;\n },\n};\n\nfunction createBaseExecRequest(): ExecRequest {\n return { command: [], shell: false, cwd: \"\", env: {}, stdin: new Uint8Array(0), timeoutMs: 0 };\n}\n\nexport const ExecRequest: MessageFns<ExecRequest> = {\n encode(message: ExecRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.command) {\n writer.uint32(10).string(v!);\n }\n if (message.shell !== false) {\n writer.uint32(16).bool(message.shell);\n }\n if (message.cwd !== \"\") {\n writer.uint32(26).string(message.cwd);\n }\n globalThis.Object.entries(message.env).forEach(([key, value]: [string, string]) => {\n ExecRequest_EnvEntry.encode({ key: key as any, value }, writer.uint32(34).fork()).join();\n });\n if (message.stdin.length !== 0) {\n writer.uint32(42).bytes(message.stdin);\n }\n if (message.timeoutMs !== 0) {\n writer.uint32(48).uint32(message.timeoutMs);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): ExecRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseExecRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.command.push(reader.string());\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.shell = reader.bool();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.cwd = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n const entry4 = ExecRequest_EnvEntry.decode(reader, reader.uint32());\n if (entry4.value !== undefined) {\n message.env[entry4.key] = entry4.value;\n }\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.stdin = reader.bytes();\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.timeoutMs = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): ExecRequest {\n return {\n command: globalThis.Array.isArray(object?.command) ? object.command.map((e: any) => globalThis.String(e)) : [],\n shell: isSet(object.shell) ? globalThis.Boolean(object.shell) : false,\n cwd: isSet(object.cwd) ? globalThis.String(object.cwd) : \"\",\n env: isObject(object.env)\n ? (globalThis.Object.entries(object.env) as [string, any][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, any]) => {\n acc[key] = globalThis.String(value);\n return acc;\n },\n {},\n )\n : {},\n stdin: isSet(object.stdin) ? bytesFromBase64(object.stdin) : new Uint8Array(0),\n timeoutMs: isSet(object.timeoutMs)\n ? globalThis.Number(object.timeoutMs)\n : isSet(object.timeout_ms)\n ? globalThis.Number(object.timeout_ms)\n : 0,\n };\n },\n\n toJSON(message: ExecRequest): unknown {\n const obj: any = {};\n if (message.command?.length) {\n obj.command = message.command;\n }\n if (message.shell !== false) {\n obj.shell = message.shell;\n }\n if (message.cwd !== \"\") {\n obj.cwd = message.cwd;\n }\n if (message.env) {\n const entries = globalThis.Object.entries(message.env) as [string, string][];\n if (entries.length > 0) {\n obj.env = {};\n entries.forEach(([k, v]) => {\n obj.env[k] = v;\n });\n }\n }\n if (message.stdin.length !== 0) {\n obj.stdin = base64FromBytes(message.stdin);\n }\n if (message.timeoutMs !== 0) {\n obj.timeoutMs = Math.round(message.timeoutMs);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<ExecRequest>, I>>(base?: I): ExecRequest {\n return ExecRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<ExecRequest>, I>>(object: I): ExecRequest {\n const message = createBaseExecRequest();\n message.command = object.command?.map((e) => e) || [];\n message.shell = object.shell ?? false;\n message.cwd = object.cwd ?? \"\";\n message.env = (globalThis.Object.entries(object.env ?? {}) as [string, string][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, string]) => {\n if (value !== undefined) {\n acc[key] = globalThis.String(value);\n }\n return acc;\n },\n {},\n );\n message.stdin = object.stdin ?? new Uint8Array(0);\n message.timeoutMs = object.timeoutMs ?? 0;\n return message;\n },\n};\n\nfunction createBaseExecRequest_EnvEntry(): ExecRequest_EnvEntry {\n return { key: \"\", value: \"\" };\n}\n\nexport const ExecRequest_EnvEntry: MessageFns<ExecRequest_EnvEntry> = {\n encode(message: ExecRequest_EnvEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): ExecRequest_EnvEntry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseExecRequest_EnvEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.value = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): ExecRequest_EnvEntry {\n return {\n key: isSet(object.key) ? globalThis.String(object.key) : \"\",\n value: isSet(object.value) ? globalThis.String(object.value) : \"\",\n };\n },\n\n toJSON(message: ExecRequest_EnvEntry): unknown {\n const obj: any = {};\n if (message.key !== \"\") {\n obj.key = message.key;\n }\n if (message.value !== \"\") {\n obj.value = message.value;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<ExecRequest_EnvEntry>, I>>(base?: I): ExecRequest_EnvEntry {\n return ExecRequest_EnvEntry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<ExecRequest_EnvEntry>, I>>(object: I): ExecRequest_EnvEntry {\n const message = createBaseExecRequest_EnvEntry();\n message.key = object.key ?? \"\";\n message.value = object.value ?? \"\";\n return message;\n },\n};\n\nfunction createBaseExecResponse(): ExecResponse {\n return { exitCode: 0, stdout: new Uint8Array(0), stderr: new Uint8Array(0), timedOut: false, durationMs: \"0\" };\n}\n\nexport const ExecResponse: MessageFns<ExecResponse> = {\n encode(message: ExecResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.exitCode !== 0) {\n writer.uint32(8).int32(message.exitCode);\n }\n if (message.stdout.length !== 0) {\n writer.uint32(18).bytes(message.stdout);\n }\n if (message.stderr.length !== 0) {\n writer.uint32(26).bytes(message.stderr);\n }\n if (message.timedOut !== false) {\n writer.uint32(32).bool(message.timedOut);\n }\n if (message.durationMs !== \"0\") {\n writer.uint32(40).uint64(message.durationMs);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): ExecResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseExecResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.exitCode = reader.int32();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.stdout = reader.bytes();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.stderr = reader.bytes();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.timedOut = reader.bool();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.durationMs = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): ExecResponse {\n return {\n exitCode: isSet(object.exitCode)\n ? globalThis.Number(object.exitCode)\n : isSet(object.exit_code)\n ? globalThis.Number(object.exit_code)\n : 0,\n stdout: isSet(object.stdout) ? bytesFromBase64(object.stdout) : new Uint8Array(0),\n stderr: isSet(object.stderr) ? bytesFromBase64(object.stderr) : new Uint8Array(0),\n timedOut: isSet(object.timedOut)\n ? globalThis.Boolean(object.timedOut)\n : isSet(object.timed_out)\n ? globalThis.Boolean(object.timed_out)\n : false,\n durationMs: isSet(object.durationMs)\n ? globalThis.String(object.durationMs)\n : isSet(object.duration_ms)\n ? globalThis.String(object.duration_ms)\n : \"0\",\n };\n },\n\n toJSON(message: ExecResponse): unknown {\n const obj: any = {};\n if (message.exitCode !== 0) {\n obj.exitCode = Math.round(message.exitCode);\n }\n if (message.stdout.length !== 0) {\n obj.stdout = base64FromBytes(message.stdout);\n }\n if (message.stderr.length !== 0) {\n obj.stderr = base64FromBytes(message.stderr);\n }\n if (message.timedOut !== false) {\n obj.timedOut = message.timedOut;\n }\n if (message.durationMs !== \"0\") {\n obj.durationMs = message.durationMs;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<ExecResponse>, I>>(base?: I): ExecResponse {\n return ExecResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<ExecResponse>, I>>(object: I): ExecResponse {\n const message = createBaseExecResponse();\n message.exitCode = object.exitCode ?? 0;\n message.stdout = object.stdout ?? new Uint8Array(0);\n message.stderr = object.stderr ?? new Uint8Array(0);\n message.timedOut = object.timedOut ?? false;\n message.durationMs = object.durationMs ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseFsReadRequest(): FsReadRequest {\n return { path: \"\", offset: \"0\", length: \"0\" };\n}\n\nexport const FsReadRequest: MessageFns<FsReadRequest> = {\n encode(message: FsReadRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.path !== \"\") {\n writer.uint32(10).string(message.path);\n }\n if (message.offset !== \"0\") {\n writer.uint32(16).uint64(message.offset);\n }\n if (message.length !== \"0\") {\n writer.uint32(24).uint64(message.length);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsReadRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsReadRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.path = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.offset = reader.uint64().toString();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.length = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsReadRequest {\n return {\n path: isSet(object.path) ? globalThis.String(object.path) : \"\",\n offset: isSet(object.offset) ? globalThis.String(object.offset) : \"0\",\n length: isSet(object.length) ? globalThis.String(object.length) : \"0\",\n };\n },\n\n toJSON(message: FsReadRequest): unknown {\n const obj: any = {};\n if (message.path !== \"\") {\n obj.path = message.path;\n }\n if (message.offset !== \"0\") {\n obj.offset = message.offset;\n }\n if (message.length !== \"0\") {\n obj.length = message.length;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsReadRequest>, I>>(base?: I): FsReadRequest {\n return FsReadRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsReadRequest>, I>>(object: I): FsReadRequest {\n const message = createBaseFsReadRequest();\n message.path = object.path ?? \"\";\n message.offset = object.offset ?? \"0\";\n message.length = object.length ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseFsReadResponse(): FsReadResponse {\n return { content: new Uint8Array(0), totalSize: \"0\" };\n}\n\nexport const FsReadResponse: MessageFns<FsReadResponse> = {\n encode(message: FsReadResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.content.length !== 0) {\n writer.uint32(10).bytes(message.content);\n }\n if (message.totalSize !== \"0\") {\n writer.uint32(16).uint64(message.totalSize);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsReadResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsReadResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.content = reader.bytes();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.totalSize = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsReadResponse {\n return {\n content: isSet(object.content) ? bytesFromBase64(object.content) : new Uint8Array(0),\n totalSize: isSet(object.totalSize)\n ? globalThis.String(object.totalSize)\n : isSet(object.total_size)\n ? globalThis.String(object.total_size)\n : \"0\",\n };\n },\n\n toJSON(message: FsReadResponse): unknown {\n const obj: any = {};\n if (message.content.length !== 0) {\n obj.content = base64FromBytes(message.content);\n }\n if (message.totalSize !== \"0\") {\n obj.totalSize = message.totalSize;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsReadResponse>, I>>(base?: I): FsReadResponse {\n return FsReadResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsReadResponse>, I>>(object: I): FsReadResponse {\n const message = createBaseFsReadResponse();\n message.content = object.content ?? new Uint8Array(0);\n message.totalSize = object.totalSize ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseFsWriteRequest(): FsWriteRequest {\n return { path: \"\", content: new Uint8Array(0), createParents: false, append: false, mode: 0 };\n}\n\nexport const FsWriteRequest: MessageFns<FsWriteRequest> = {\n encode(message: FsWriteRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.path !== \"\") {\n writer.uint32(10).string(message.path);\n }\n if (message.content.length !== 0) {\n writer.uint32(18).bytes(message.content);\n }\n if (message.createParents !== false) {\n writer.uint32(24).bool(message.createParents);\n }\n if (message.append !== false) {\n writer.uint32(32).bool(message.append);\n }\n if (message.mode !== 0) {\n writer.uint32(40).uint32(message.mode);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsWriteRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsWriteRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.path = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.content = reader.bytes();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.createParents = reader.bool();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.append = reader.bool();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.mode = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsWriteRequest {\n return {\n path: isSet(object.path) ? globalThis.String(object.path) : \"\",\n content: isSet(object.content) ? bytesFromBase64(object.content) : new Uint8Array(0),\n createParents: isSet(object.createParents)\n ? globalThis.Boolean(object.createParents)\n : isSet(object.create_parents)\n ? globalThis.Boolean(object.create_parents)\n : false,\n append: isSet(object.append) ? globalThis.Boolean(object.append) : false,\n mode: isSet(object.mode) ? globalThis.Number(object.mode) : 0,\n };\n },\n\n toJSON(message: FsWriteRequest): unknown {\n const obj: any = {};\n if (message.path !== \"\") {\n obj.path = message.path;\n }\n if (message.content.length !== 0) {\n obj.content = base64FromBytes(message.content);\n }\n if (message.createParents !== false) {\n obj.createParents = message.createParents;\n }\n if (message.append !== false) {\n obj.append = message.append;\n }\n if (message.mode !== 0) {\n obj.mode = Math.round(message.mode);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsWriteRequest>, I>>(base?: I): FsWriteRequest {\n return FsWriteRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsWriteRequest>, I>>(object: I): FsWriteRequest {\n const message = createBaseFsWriteRequest();\n message.path = object.path ?? \"\";\n message.content = object.content ?? new Uint8Array(0);\n message.createParents = object.createParents ?? false;\n message.append = object.append ?? false;\n message.mode = object.mode ?? 0;\n return message;\n },\n};\n\nfunction createBaseFsWriteResponse(): FsWriteResponse {\n return { bytesWritten: \"0\" };\n}\n\nexport const FsWriteResponse: MessageFns<FsWriteResponse> = {\n encode(message: FsWriteResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.bytesWritten !== \"0\") {\n writer.uint32(8).uint64(message.bytesWritten);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsWriteResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsWriteResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.bytesWritten = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsWriteResponse {\n return {\n bytesWritten: isSet(object.bytesWritten)\n ? globalThis.String(object.bytesWritten)\n : isSet(object.bytes_written)\n ? globalThis.String(object.bytes_written)\n : \"0\",\n };\n },\n\n toJSON(message: FsWriteResponse): unknown {\n const obj: any = {};\n if (message.bytesWritten !== \"0\") {\n obj.bytesWritten = message.bytesWritten;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsWriteResponse>, I>>(base?: I): FsWriteResponse {\n return FsWriteResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsWriteResponse>, I>>(object: I): FsWriteResponse {\n const message = createBaseFsWriteResponse();\n message.bytesWritten = object.bytesWritten ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseFsListRequest(): FsListRequest {\n return { path: \"\", recursive: false };\n}\n\nexport const FsListRequest: MessageFns<FsListRequest> = {\n encode(message: FsListRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.path !== \"\") {\n writer.uint32(10).string(message.path);\n }\n if (message.recursive !== false) {\n writer.uint32(16).bool(message.recursive);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsListRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsListRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.path = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.recursive = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsListRequest {\n return {\n path: isSet(object.path) ? globalThis.String(object.path) : \"\",\n recursive: isSet(object.recursive) ? globalThis.Boolean(object.recursive) : false,\n };\n },\n\n toJSON(message: FsListRequest): unknown {\n const obj: any = {};\n if (message.path !== \"\") {\n obj.path = message.path;\n }\n if (message.recursive !== false) {\n obj.recursive = message.recursive;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsListRequest>, I>>(base?: I): FsListRequest {\n return FsListRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsListRequest>, I>>(object: I): FsListRequest {\n const message = createBaseFsListRequest();\n message.path = object.path ?? \"\";\n message.recursive = object.recursive ?? false;\n return message;\n },\n};\n\nfunction createBaseFsListResponse(): FsListResponse {\n return { entries: [] };\n}\n\nexport const FsListResponse: MessageFns<FsListResponse> = {\n encode(message: FsListResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.entries) {\n FsEntry.encode(v!, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsListResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsListResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.entries.push(FsEntry.decode(reader, reader.uint32()));\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsListResponse {\n return {\n entries: globalThis.Array.isArray(object?.entries) ? object.entries.map((e: any) => FsEntry.fromJSON(e)) : [],\n };\n },\n\n toJSON(message: FsListResponse): unknown {\n const obj: any = {};\n if (message.entries?.length) {\n obj.entries = message.entries.map((e) => FsEntry.toJSON(e));\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsListResponse>, I>>(base?: I): FsListResponse {\n return FsListResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsListResponse>, I>>(object: I): FsListResponse {\n const message = createBaseFsListResponse();\n message.entries = object.entries?.map((e) => FsEntry.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseFsEntry(): FsEntry {\n return { name: \"\", path: \"\", kind: 0, size: \"0\", modifiedMs: \"0\", mode: 0 };\n}\n\nexport const FsEntry: MessageFns<FsEntry> = {\n encode(message: FsEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.name !== \"\") {\n writer.uint32(10).string(message.name);\n }\n if (message.path !== \"\") {\n writer.uint32(18).string(message.path);\n }\n if (message.kind !== 0) {\n writer.uint32(24).int32(message.kind);\n }\n if (message.size !== \"0\") {\n writer.uint32(32).uint64(message.size);\n }\n if (message.modifiedMs !== \"0\") {\n writer.uint32(40).int64(message.modifiedMs);\n }\n if (message.mode !== 0) {\n writer.uint32(48).uint32(message.mode);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsEntry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.name = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.path = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.kind = reader.int32() as any;\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.size = reader.uint64().toString();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.modifiedMs = reader.int64().toString();\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.mode = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsEntry {\n return {\n name: isSet(object.name) ? globalThis.String(object.name) : \"\",\n path: isSet(object.path) ? globalThis.String(object.path) : \"\",\n kind: isSet(object.kind) ? fsEntryKindFromJSON(object.kind) : 0,\n size: isSet(object.size) ? globalThis.String(object.size) : \"0\",\n modifiedMs: isSet(object.modifiedMs)\n ? globalThis.String(object.modifiedMs)\n : isSet(object.modified_ms)\n ? globalThis.String(object.modified_ms)\n : \"0\",\n mode: isSet(object.mode) ? globalThis.Number(object.mode) : 0,\n };\n },\n\n toJSON(message: FsEntry): unknown {\n const obj: any = {};\n if (message.name !== \"\") {\n obj.name = message.name;\n }\n if (message.path !== \"\") {\n obj.path = message.path;\n }\n if (message.kind !== 0) {\n obj.kind = fsEntryKindToJSON(message.kind);\n }\n if (message.size !== \"0\") {\n obj.size = message.size;\n }\n if (message.modifiedMs !== \"0\") {\n obj.modifiedMs = message.modifiedMs;\n }\n if (message.mode !== 0) {\n obj.mode = Math.round(message.mode);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsEntry>, I>>(base?: I): FsEntry {\n return FsEntry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsEntry>, I>>(object: I): FsEntry {\n const message = createBaseFsEntry();\n message.name = object.name ?? \"\";\n message.path = object.path ?? \"\";\n message.kind = object.kind ?? 0;\n message.size = object.size ?? \"0\";\n message.modifiedMs = object.modifiedMs ?? \"0\";\n message.mode = object.mode ?? 0;\n return message;\n },\n};\n\nfunction createBaseFsMkdirRequest(): FsMkdirRequest {\n return { path: \"\", parents: false, mode: 0 };\n}\n\nexport const FsMkdirRequest: MessageFns<FsMkdirRequest> = {\n encode(message: FsMkdirRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.path !== \"\") {\n writer.uint32(10).string(message.path);\n }\n if (message.parents !== false) {\n writer.uint32(16).bool(message.parents);\n }\n if (message.mode !== 0) {\n writer.uint32(24).uint32(message.mode);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsMkdirRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsMkdirRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.path = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.parents = reader.bool();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.mode = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsMkdirRequest {\n return {\n path: isSet(object.path) ? globalThis.String(object.path) : \"\",\n parents: isSet(object.parents) ? globalThis.Boolean(object.parents) : false,\n mode: isSet(object.mode) ? globalThis.Number(object.mode) : 0,\n };\n },\n\n toJSON(message: FsMkdirRequest): unknown {\n const obj: any = {};\n if (message.path !== \"\") {\n obj.path = message.path;\n }\n if (message.parents !== false) {\n obj.parents = message.parents;\n }\n if (message.mode !== 0) {\n obj.mode = Math.round(message.mode);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsMkdirRequest>, I>>(base?: I): FsMkdirRequest {\n return FsMkdirRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsMkdirRequest>, I>>(object: I): FsMkdirRequest {\n const message = createBaseFsMkdirRequest();\n message.path = object.path ?? \"\";\n message.parents = object.parents ?? false;\n message.mode = object.mode ?? 0;\n return message;\n },\n};\n\nfunction createBaseFsMkdirResponse(): FsMkdirResponse {\n return {};\n}\n\nexport const FsMkdirResponse: MessageFns<FsMkdirResponse> = {\n encode(_: FsMkdirResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsMkdirResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsMkdirResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): FsMkdirResponse {\n return {};\n },\n\n toJSON(_: FsMkdirResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsMkdirResponse>, I>>(base?: I): FsMkdirResponse {\n return FsMkdirResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsMkdirResponse>, I>>(_: I): FsMkdirResponse {\n const message = createBaseFsMkdirResponse();\n return message;\n },\n};\n\nfunction createBaseFsMoveRequest(): FsMoveRequest {\n return { from: \"\", to: \"\", overwrite: false };\n}\n\nexport const FsMoveRequest: MessageFns<FsMoveRequest> = {\n encode(message: FsMoveRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.from !== \"\") {\n writer.uint32(10).string(message.from);\n }\n if (message.to !== \"\") {\n writer.uint32(18).string(message.to);\n }\n if (message.overwrite !== false) {\n writer.uint32(24).bool(message.overwrite);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsMoveRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsMoveRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.from = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.to = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.overwrite = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsMoveRequest {\n return {\n from: isSet(object.from) ? globalThis.String(object.from) : \"\",\n to: isSet(object.to) ? globalThis.String(object.to) : \"\",\n overwrite: isSet(object.overwrite) ? globalThis.Boolean(object.overwrite) : false,\n };\n },\n\n toJSON(message: FsMoveRequest): unknown {\n const obj: any = {};\n if (message.from !== \"\") {\n obj.from = message.from;\n }\n if (message.to !== \"\") {\n obj.to = message.to;\n }\n if (message.overwrite !== false) {\n obj.overwrite = message.overwrite;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsMoveRequest>, I>>(base?: I): FsMoveRequest {\n return FsMoveRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsMoveRequest>, I>>(object: I): FsMoveRequest {\n const message = createBaseFsMoveRequest();\n message.from = object.from ?? \"\";\n message.to = object.to ?? \"\";\n message.overwrite = object.overwrite ?? false;\n return message;\n },\n};\n\nfunction createBaseFsMoveResponse(): FsMoveResponse {\n return {};\n}\n\nexport const FsMoveResponse: MessageFns<FsMoveResponse> = {\n encode(_: FsMoveResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsMoveResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsMoveResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): FsMoveResponse {\n return {};\n },\n\n toJSON(_: FsMoveResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsMoveResponse>, I>>(base?: I): FsMoveResponse {\n return FsMoveResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsMoveResponse>, I>>(_: I): FsMoveResponse {\n const message = createBaseFsMoveResponse();\n return message;\n },\n};\n\nfunction createBaseFsStatRequest(): FsStatRequest {\n return { path: \"\" };\n}\n\nexport const FsStatRequest: MessageFns<FsStatRequest> = {\n encode(message: FsStatRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.path !== \"\") {\n writer.uint32(10).string(message.path);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsStatRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsStatRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.path = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsStatRequest {\n return { path: isSet(object.path) ? globalThis.String(object.path) : \"\" };\n },\n\n toJSON(message: FsStatRequest): unknown {\n const obj: any = {};\n if (message.path !== \"\") {\n obj.path = message.path;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsStatRequest>, I>>(base?: I): FsStatRequest {\n return FsStatRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsStatRequest>, I>>(object: I): FsStatRequest {\n const message = createBaseFsStatRequest();\n message.path = object.path ?? \"\";\n return message;\n },\n};\n\nfunction createBaseFsStatResponse(): FsStatResponse {\n return { exists: false, entry: undefined };\n}\n\nexport const FsStatResponse: MessageFns<FsStatResponse> = {\n encode(message: FsStatResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.exists !== false) {\n writer.uint32(8).bool(message.exists);\n }\n if (message.entry !== undefined) {\n FsEntry.encode(message.entry, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsStatResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsStatResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.exists = reader.bool();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.entry = FsEntry.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsStatResponse {\n return {\n exists: isSet(object.exists) ? globalThis.Boolean(object.exists) : false,\n entry: isSet(object.entry) ? FsEntry.fromJSON(object.entry) : undefined,\n };\n },\n\n toJSON(message: FsStatResponse): unknown {\n const obj: any = {};\n if (message.exists !== false) {\n obj.exists = message.exists;\n }\n if (message.entry !== undefined) {\n obj.entry = FsEntry.toJSON(message.entry);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsStatResponse>, I>>(base?: I): FsStatResponse {\n return FsStatResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsStatResponse>, I>>(object: I): FsStatResponse {\n const message = createBaseFsStatResponse();\n message.exists = object.exists ?? false;\n message.entry = (object.entry !== undefined && object.entry !== null)\n ? FsEntry.fromPartial(object.entry)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseFsRemoveRequest(): FsRemoveRequest {\n return { path: \"\", recursive: false };\n}\n\nexport const FsRemoveRequest: MessageFns<FsRemoveRequest> = {\n encode(message: FsRemoveRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.path !== \"\") {\n writer.uint32(10).string(message.path);\n }\n if (message.recursive !== false) {\n writer.uint32(16).bool(message.recursive);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsRemoveRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsRemoveRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.path = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.recursive = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsRemoveRequest {\n return {\n path: isSet(object.path) ? globalThis.String(object.path) : \"\",\n recursive: isSet(object.recursive) ? globalThis.Boolean(object.recursive) : false,\n };\n },\n\n toJSON(message: FsRemoveRequest): unknown {\n const obj: any = {};\n if (message.path !== \"\") {\n obj.path = message.path;\n }\n if (message.recursive !== false) {\n obj.recursive = message.recursive;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsRemoveRequest>, I>>(base?: I): FsRemoveRequest {\n return FsRemoveRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsRemoveRequest>, I>>(object: I): FsRemoveRequest {\n const message = createBaseFsRemoveRequest();\n message.path = object.path ?? \"\";\n message.recursive = object.recursive ?? false;\n return message;\n },\n};\n\nfunction createBaseFsRemoveResponse(): FsRemoveResponse {\n return {};\n}\n\nexport const FsRemoveResponse: MessageFns<FsRemoveResponse> = {\n encode(_: FsRemoveResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsRemoveResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsRemoveResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): FsRemoveResponse {\n return {};\n },\n\n toJSON(_: FsRemoveResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsRemoveResponse>, I>>(base?: I): FsRemoveResponse {\n return FsRemoveResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsRemoveResponse>, I>>(_: I): FsRemoveResponse {\n const message = createBaseFsRemoveResponse();\n return message;\n },\n};\n\nfunction createBaseGitRequest(): GitRequest {\n return { op: 0, cwd: \"\", args: [] };\n}\n\nexport const GitRequest: MessageFns<GitRequest> = {\n encode(message: GitRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.op !== 0) {\n writer.uint32(8).int32(message.op);\n }\n if (message.cwd !== \"\") {\n writer.uint32(18).string(message.cwd);\n }\n for (const v of message.args) {\n writer.uint32(26).string(v!);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): GitRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGitRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.op = reader.int32() as any;\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.cwd = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.args.push(reader.string());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): GitRequest {\n return {\n op: isSet(object.op) ? gitOpFromJSON(object.op) : 0,\n cwd: isSet(object.cwd) ? globalThis.String(object.cwd) : \"\",\n args: globalThis.Array.isArray(object?.args) ? object.args.map((e: any) => globalThis.String(e)) : [],\n };\n },\n\n toJSON(message: GitRequest): unknown {\n const obj: any = {};\n if (message.op !== 0) {\n obj.op = gitOpToJSON(message.op);\n }\n if (message.cwd !== \"\") {\n obj.cwd = message.cwd;\n }\n if (message.args?.length) {\n obj.args = message.args;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<GitRequest>, I>>(base?: I): GitRequest {\n return GitRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<GitRequest>, I>>(object: I): GitRequest {\n const message = createBaseGitRequest();\n message.op = object.op ?? 0;\n message.cwd = object.cwd ?? \"\";\n message.args = object.args?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseGitResponse(): GitResponse {\n return { exitCode: 0, stdout: new Uint8Array(0), stderr: new Uint8Array(0), status: undefined };\n}\n\nexport const GitResponse: MessageFns<GitResponse> = {\n encode(message: GitResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.exitCode !== 0) {\n writer.uint32(8).int32(message.exitCode);\n }\n if (message.stdout.length !== 0) {\n writer.uint32(18).bytes(message.stdout);\n }\n if (message.stderr.length !== 0) {\n writer.uint32(26).bytes(message.stderr);\n }\n if (message.status !== undefined) {\n GitStatus.encode(message.status, writer.uint32(34).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): GitResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGitResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.exitCode = reader.int32();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.stdout = reader.bytes();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.stderr = reader.bytes();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.status = GitStatus.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): GitResponse {\n return {\n exitCode: isSet(object.exitCode)\n ? globalThis.Number(object.exitCode)\n : isSet(object.exit_code)\n ? globalThis.Number(object.exit_code)\n : 0,\n stdout: isSet(object.stdout) ? bytesFromBase64(object.stdout) : new Uint8Array(0),\n stderr: isSet(object.stderr) ? bytesFromBase64(object.stderr) : new Uint8Array(0),\n status: isSet(object.status) ? GitStatus.fromJSON(object.status) : undefined,\n };\n },\n\n toJSON(message: GitResponse): unknown {\n const obj: any = {};\n if (message.exitCode !== 0) {\n obj.exitCode = Math.round(message.exitCode);\n }\n if (message.stdout.length !== 0) {\n obj.stdout = base64FromBytes(message.stdout);\n }\n if (message.stderr.length !== 0) {\n obj.stderr = base64FromBytes(message.stderr);\n }\n if (message.status !== undefined) {\n obj.status = GitStatus.toJSON(message.status);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<GitResponse>, I>>(base?: I): GitResponse {\n return GitResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<GitResponse>, I>>(object: I): GitResponse {\n const message = createBaseGitResponse();\n message.exitCode = object.exitCode ?? 0;\n message.stdout = object.stdout ?? new Uint8Array(0);\n message.stderr = object.stderr ?? new Uint8Array(0);\n message.status = (object.status !== undefined && object.status !== null)\n ? GitStatus.fromPartial(object.status)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseGitStatus(): GitStatus {\n return { branch: \"\", upstream: \"\", ahead: 0, behind: 0, files: [], clean: false };\n}\n\nexport const GitStatus: MessageFns<GitStatus> = {\n encode(message: GitStatus, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.branch !== \"\") {\n writer.uint32(10).string(message.branch);\n }\n if (message.upstream !== \"\") {\n writer.uint32(18).string(message.upstream);\n }\n if (message.ahead !== 0) {\n writer.uint32(24).int32(message.ahead);\n }\n if (message.behind !== 0) {\n writer.uint32(32).int32(message.behind);\n }\n for (const v of message.files) {\n GitFileStatus.encode(v!, writer.uint32(42).fork()).join();\n }\n if (message.clean !== false) {\n writer.uint32(48).bool(message.clean);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): GitStatus {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGitStatus();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.branch = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.upstream = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.ahead = reader.int32();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.behind = reader.int32();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.files.push(GitFileStatus.decode(reader, reader.uint32()));\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.clean = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): GitStatus {\n return {\n branch: isSet(object.branch) ? globalThis.String(object.branch) : \"\",\n upstream: isSet(object.upstream) ? globalThis.String(object.upstream) : \"\",\n ahead: isSet(object.ahead) ? globalThis.Number(object.ahead) : 0,\n behind: isSet(object.behind) ? globalThis.Number(object.behind) : 0,\n files: globalThis.Array.isArray(object?.files) ? object.files.map((e: any) => GitFileStatus.fromJSON(e)) : [],\n clean: isSet(object.clean) ? globalThis.Boolean(object.clean) : false,\n };\n },\n\n toJSON(message: GitStatus): unknown {\n const obj: any = {};\n if (message.branch !== \"\") {\n obj.branch = message.branch;\n }\n if (message.upstream !== \"\") {\n obj.upstream = message.upstream;\n }\n if (message.ahead !== 0) {\n obj.ahead = Math.round(message.ahead);\n }\n if (message.behind !== 0) {\n obj.behind = Math.round(message.behind);\n }\n if (message.files?.length) {\n obj.files = message.files.map((e) => GitFileStatus.toJSON(e));\n }\n if (message.clean !== false) {\n obj.clean = message.clean;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<GitStatus>, I>>(base?: I): GitStatus {\n return GitStatus.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<GitStatus>, I>>(object: I): GitStatus {\n const message = createBaseGitStatus();\n message.branch = object.branch ?? \"\";\n message.upstream = object.upstream ?? \"\";\n message.ahead = object.ahead ?? 0;\n message.behind = object.behind ?? 0;\n message.files = object.files?.map((e) => GitFileStatus.fromPartial(e)) || [];\n message.clean = object.clean ?? false;\n return message;\n },\n};\n\nfunction createBaseGitFileStatus(): GitFileStatus {\n return { path: \"\", code: \"\", staged: false };\n}\n\nexport const GitFileStatus: MessageFns<GitFileStatus> = {\n encode(message: GitFileStatus, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.path !== \"\") {\n writer.uint32(10).string(message.path);\n }\n if (message.code !== \"\") {\n writer.uint32(18).string(message.code);\n }\n if (message.staged !== false) {\n writer.uint32(24).bool(message.staged);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): GitFileStatus {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGitFileStatus();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.path = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.code = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.staged = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): GitFileStatus {\n return {\n path: isSet(object.path) ? globalThis.String(object.path) : \"\",\n code: isSet(object.code) ? globalThis.String(object.code) : \"\",\n staged: isSet(object.staged) ? globalThis.Boolean(object.staged) : false,\n };\n },\n\n toJSON(message: GitFileStatus): unknown {\n const obj: any = {};\n if (message.path !== \"\") {\n obj.path = message.path;\n }\n if (message.code !== \"\") {\n obj.code = message.code;\n }\n if (message.staged !== false) {\n obj.staged = message.staged;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<GitFileStatus>, I>>(base?: I): GitFileStatus {\n return GitFileStatus.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<GitFileStatus>, I>>(object: I): GitFileStatus {\n const message = createBaseGitFileStatus();\n message.path = object.path ?? \"\";\n message.code = object.code ?? \"\";\n message.staged = object.staged ?? false;\n return message;\n },\n};\n\nfunction createBasePtyOpenRequest(): PtyOpenRequest {\n return { command: [], cwd: \"\", env: {}, cols: 0, rows: 0, term: \"\", scopeId: \"\" };\n}\n\nexport const PtyOpenRequest: MessageFns<PtyOpenRequest> = {\n encode(message: PtyOpenRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.command) {\n writer.uint32(10).string(v!);\n }\n if (message.cwd !== \"\") {\n writer.uint32(18).string(message.cwd);\n }\n globalThis.Object.entries(message.env).forEach(([key, value]: [string, string]) => {\n PtyOpenRequest_EnvEntry.encode({ key: key as any, value }, writer.uint32(26).fork()).join();\n });\n if (message.cols !== 0) {\n writer.uint32(32).uint32(message.cols);\n }\n if (message.rows !== 0) {\n writer.uint32(40).uint32(message.rows);\n }\n if (message.term !== \"\") {\n writer.uint32(50).string(message.term);\n }\n if (message.scopeId !== \"\") {\n writer.uint32(58).string(message.scopeId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PtyOpenRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePtyOpenRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.command.push(reader.string());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.cwd = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n const entry3 = PtyOpenRequest_EnvEntry.decode(reader, reader.uint32());\n if (entry3.value !== undefined) {\n message.env[entry3.key] = entry3.value;\n }\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.cols = reader.uint32();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.rows = reader.uint32();\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.term = reader.string();\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.scopeId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PtyOpenRequest {\n return {\n command: globalThis.Array.isArray(object?.command) ? object.command.map((e: any) => globalThis.String(e)) : [],\n cwd: isSet(object.cwd) ? globalThis.String(object.cwd) : \"\",\n env: isObject(object.env)\n ? (globalThis.Object.entries(object.env) as [string, any][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, any]) => {\n acc[key] = globalThis.String(value);\n return acc;\n },\n {},\n )\n : {},\n cols: isSet(object.cols) ? globalThis.Number(object.cols) : 0,\n rows: isSet(object.rows) ? globalThis.Number(object.rows) : 0,\n term: isSet(object.term) ? globalThis.String(object.term) : \"\",\n scopeId: isSet(object.scopeId)\n ? globalThis.String(object.scopeId)\n : isSet(object.scope_id)\n ? globalThis.String(object.scope_id)\n : \"\",\n };\n },\n\n toJSON(message: PtyOpenRequest): unknown {\n const obj: any = {};\n if (message.command?.length) {\n obj.command = message.command;\n }\n if (message.cwd !== \"\") {\n obj.cwd = message.cwd;\n }\n if (message.env) {\n const entries = globalThis.Object.entries(message.env) as [string, string][];\n if (entries.length > 0) {\n obj.env = {};\n entries.forEach(([k, v]) => {\n obj.env[k] = v;\n });\n }\n }\n if (message.cols !== 0) {\n obj.cols = Math.round(message.cols);\n }\n if (message.rows !== 0) {\n obj.rows = Math.round(message.rows);\n }\n if (message.term !== \"\") {\n obj.term = message.term;\n }\n if (message.scopeId !== \"\") {\n obj.scopeId = message.scopeId;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PtyOpenRequest>, I>>(base?: I): PtyOpenRequest {\n return PtyOpenRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PtyOpenRequest>, I>>(object: I): PtyOpenRequest {\n const message = createBasePtyOpenRequest();\n message.command = object.command?.map((e) => e) || [];\n message.cwd = object.cwd ?? \"\";\n message.env = (globalThis.Object.entries(object.env ?? {}) as [string, string][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, string]) => {\n if (value !== undefined) {\n acc[key] = globalThis.String(value);\n }\n return acc;\n },\n {},\n );\n message.cols = object.cols ?? 0;\n message.rows = object.rows ?? 0;\n message.term = object.term ?? \"\";\n message.scopeId = object.scopeId ?? \"\";\n return message;\n },\n};\n\nfunction createBasePtyOpenRequest_EnvEntry(): PtyOpenRequest_EnvEntry {\n return { key: \"\", value: \"\" };\n}\n\nexport const PtyOpenRequest_EnvEntry: MessageFns<PtyOpenRequest_EnvEntry> = {\n encode(message: PtyOpenRequest_EnvEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PtyOpenRequest_EnvEntry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePtyOpenRequest_EnvEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.value = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PtyOpenRequest_EnvEntry {\n return {\n key: isSet(object.key) ? globalThis.String(object.key) : \"\",\n value: isSet(object.value) ? globalThis.String(object.value) : \"\",\n };\n },\n\n toJSON(message: PtyOpenRequest_EnvEntry): unknown {\n const obj: any = {};\n if (message.key !== \"\") {\n obj.key = message.key;\n }\n if (message.value !== \"\") {\n obj.value = message.value;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PtyOpenRequest_EnvEntry>, I>>(base?: I): PtyOpenRequest_EnvEntry {\n return PtyOpenRequest_EnvEntry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PtyOpenRequest_EnvEntry>, I>>(object: I): PtyOpenRequest_EnvEntry {\n const message = createBasePtyOpenRequest_EnvEntry();\n message.key = object.key ?? \"\";\n message.value = object.value ?? \"\";\n return message;\n },\n};\n\nfunction createBasePtyOpenResponse(): PtyOpenResponse {\n return { ptyId: \"\", channel: undefined };\n}\n\nexport const PtyOpenResponse: MessageFns<PtyOpenResponse> = {\n encode(message: PtyOpenResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.ptyId !== \"\") {\n writer.uint32(10).string(message.ptyId);\n }\n if (message.channel !== undefined) {\n StreamChannel.encode(message.channel, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PtyOpenResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePtyOpenResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.ptyId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.channel = StreamChannel.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PtyOpenResponse {\n return {\n ptyId: isSet(object.ptyId)\n ? globalThis.String(object.ptyId)\n : isSet(object.pty_id)\n ? globalThis.String(object.pty_id)\n : \"\",\n channel: isSet(object.channel) ? StreamChannel.fromJSON(object.channel) : undefined,\n };\n },\n\n toJSON(message: PtyOpenResponse): unknown {\n const obj: any = {};\n if (message.ptyId !== \"\") {\n obj.ptyId = message.ptyId;\n }\n if (message.channel !== undefined) {\n obj.channel = StreamChannel.toJSON(message.channel);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PtyOpenResponse>, I>>(base?: I): PtyOpenResponse {\n return PtyOpenResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PtyOpenResponse>, I>>(object: I): PtyOpenResponse {\n const message = createBasePtyOpenResponse();\n message.ptyId = object.ptyId ?? \"\";\n message.channel = (object.channel !== undefined && object.channel !== null)\n ? StreamChannel.fromPartial(object.channel)\n : undefined;\n return message;\n },\n};\n\nfunction createBasePtyWriteRequest(): PtyWriteRequest {\n return { ptyId: \"\", data: new Uint8Array(0) };\n}\n\nexport const PtyWriteRequest: MessageFns<PtyWriteRequest> = {\n encode(message: PtyWriteRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.ptyId !== \"\") {\n writer.uint32(10).string(message.ptyId);\n }\n if (message.data.length !== 0) {\n writer.uint32(18).bytes(message.data);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PtyWriteRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePtyWriteRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.ptyId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.data = reader.bytes();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PtyWriteRequest {\n return {\n ptyId: isSet(object.ptyId)\n ? globalThis.String(object.ptyId)\n : isSet(object.pty_id)\n ? globalThis.String(object.pty_id)\n : \"\",\n data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array(0),\n };\n },\n\n toJSON(message: PtyWriteRequest): unknown {\n const obj: any = {};\n if (message.ptyId !== \"\") {\n obj.ptyId = message.ptyId;\n }\n if (message.data.length !== 0) {\n obj.data = base64FromBytes(message.data);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PtyWriteRequest>, I>>(base?: I): PtyWriteRequest {\n return PtyWriteRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PtyWriteRequest>, I>>(object: I): PtyWriteRequest {\n const message = createBasePtyWriteRequest();\n message.ptyId = object.ptyId ?? \"\";\n message.data = object.data ?? new Uint8Array(0);\n return message;\n },\n};\n\nfunction createBasePtyWriteResponse(): PtyWriteResponse {\n return { bytesWritten: \"0\" };\n}\n\nexport const PtyWriteResponse: MessageFns<PtyWriteResponse> = {\n encode(message: PtyWriteResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.bytesWritten !== \"0\") {\n writer.uint32(8).uint64(message.bytesWritten);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PtyWriteResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePtyWriteResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.bytesWritten = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PtyWriteResponse {\n return {\n bytesWritten: isSet(object.bytesWritten)\n ? globalThis.String(object.bytesWritten)\n : isSet(object.bytes_written)\n ? globalThis.String(object.bytes_written)\n : \"0\",\n };\n },\n\n toJSON(message: PtyWriteResponse): unknown {\n const obj: any = {};\n if (message.bytesWritten !== \"0\") {\n obj.bytesWritten = message.bytesWritten;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PtyWriteResponse>, I>>(base?: I): PtyWriteResponse {\n return PtyWriteResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PtyWriteResponse>, I>>(object: I): PtyWriteResponse {\n const message = createBasePtyWriteResponse();\n message.bytesWritten = object.bytesWritten ?? \"0\";\n return message;\n },\n};\n\nfunction createBasePtyResizeRequest(): PtyResizeRequest {\n return { ptyId: \"\", cols: 0, rows: 0 };\n}\n\nexport const PtyResizeRequest: MessageFns<PtyResizeRequest> = {\n encode(message: PtyResizeRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.ptyId !== \"\") {\n writer.uint32(10).string(message.ptyId);\n }\n if (message.cols !== 0) {\n writer.uint32(16).uint32(message.cols);\n }\n if (message.rows !== 0) {\n writer.uint32(24).uint32(message.rows);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PtyResizeRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePtyResizeRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.ptyId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.cols = reader.uint32();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.rows = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PtyResizeRequest {\n return {\n ptyId: isSet(object.ptyId)\n ? globalThis.String(object.ptyId)\n : isSet(object.pty_id)\n ? globalThis.String(object.pty_id)\n : \"\",\n cols: isSet(object.cols) ? globalThis.Number(object.cols) : 0,\n rows: isSet(object.rows) ? globalThis.Number(object.rows) : 0,\n };\n },\n\n toJSON(message: PtyResizeRequest): unknown {\n const obj: any = {};\n if (message.ptyId !== \"\") {\n obj.ptyId = message.ptyId;\n }\n if (message.cols !== 0) {\n obj.cols = Math.round(message.cols);\n }\n if (message.rows !== 0) {\n obj.rows = Math.round(message.rows);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PtyResizeRequest>, I>>(base?: I): PtyResizeRequest {\n return PtyResizeRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PtyResizeRequest>, I>>(object: I): PtyResizeRequest {\n const message = createBasePtyResizeRequest();\n message.ptyId = object.ptyId ?? \"\";\n message.cols = object.cols ?? 0;\n message.rows = object.rows ?? 0;\n return message;\n },\n};\n\nfunction createBasePtyResizeResponse(): PtyResizeResponse {\n return {};\n}\n\nexport const PtyResizeResponse: MessageFns<PtyResizeResponse> = {\n encode(_: PtyResizeResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PtyResizeResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePtyResizeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): PtyResizeResponse {\n return {};\n },\n\n toJSON(_: PtyResizeResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PtyResizeResponse>, I>>(base?: I): PtyResizeResponse {\n return PtyResizeResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PtyResizeResponse>, I>>(_: I): PtyResizeResponse {\n const message = createBasePtyResizeResponse();\n return message;\n },\n};\n\nfunction createBasePtyCloseRequest(): PtyCloseRequest {\n return { ptyId: \"\" };\n}\n\nexport const PtyCloseRequest: MessageFns<PtyCloseRequest> = {\n encode(message: PtyCloseRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.ptyId !== \"\") {\n writer.uint32(10).string(message.ptyId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PtyCloseRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePtyCloseRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.ptyId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PtyCloseRequest {\n return {\n ptyId: isSet(object.ptyId)\n ? globalThis.String(object.ptyId)\n : isSet(object.pty_id)\n ? globalThis.String(object.pty_id)\n : \"\",\n };\n },\n\n toJSON(message: PtyCloseRequest): unknown {\n const obj: any = {};\n if (message.ptyId !== \"\") {\n obj.ptyId = message.ptyId;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PtyCloseRequest>, I>>(base?: I): PtyCloseRequest {\n return PtyCloseRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PtyCloseRequest>, I>>(object: I): PtyCloseRequest {\n const message = createBasePtyCloseRequest();\n message.ptyId = object.ptyId ?? \"\";\n return message;\n },\n};\n\nfunction createBasePtyCloseResponse(): PtyCloseResponse {\n return { exitCode: 0 };\n}\n\nexport const PtyCloseResponse: MessageFns<PtyCloseResponse> = {\n encode(message: PtyCloseResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.exitCode !== 0) {\n writer.uint32(8).int32(message.exitCode);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PtyCloseResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePtyCloseResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.exitCode = reader.int32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PtyCloseResponse {\n return {\n exitCode: isSet(object.exitCode)\n ? globalThis.Number(object.exitCode)\n : isSet(object.exit_code)\n ? globalThis.Number(object.exit_code)\n : 0,\n };\n },\n\n toJSON(message: PtyCloseResponse): unknown {\n const obj: any = {};\n if (message.exitCode !== 0) {\n obj.exitCode = Math.round(message.exitCode);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PtyCloseResponse>, I>>(base?: I): PtyCloseResponse {\n return PtyCloseResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PtyCloseResponse>, I>>(object: I): PtyCloseResponse {\n const message = createBasePtyCloseResponse();\n message.exitCode = object.exitCode ?? 0;\n return message;\n },\n};\n\nfunction createBaseDesktopEnsureRequest(): DesktopEnsureRequest {\n return { width: 0, height: 0 };\n}\n\nexport const DesktopEnsureRequest: MessageFns<DesktopEnsureRequest> = {\n encode(message: DesktopEnsureRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.width !== 0) {\n writer.uint32(8).uint32(message.width);\n }\n if (message.height !== 0) {\n writer.uint32(16).uint32(message.height);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DesktopEnsureRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDesktopEnsureRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.width = reader.uint32();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.height = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): DesktopEnsureRequest {\n return {\n width: isSet(object.width) ? globalThis.Number(object.width) : 0,\n height: isSet(object.height) ? globalThis.Number(object.height) : 0,\n };\n },\n\n toJSON(message: DesktopEnsureRequest): unknown {\n const obj: any = {};\n if (message.width !== 0) {\n obj.width = Math.round(message.width);\n }\n if (message.height !== 0) {\n obj.height = Math.round(message.height);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<DesktopEnsureRequest>, I>>(base?: I): DesktopEnsureRequest {\n return DesktopEnsureRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<DesktopEnsureRequest>, I>>(object: I): DesktopEnsureRequest {\n const message = createBaseDesktopEnsureRequest();\n message.width = object.width ?? 0;\n message.height = object.height ?? 0;\n return message;\n },\n};\n\nfunction createBaseDesktopEnsureResponse(): DesktopEnsureResponse {\n return { channel: undefined, display: undefined };\n}\n\nexport const DesktopEnsureResponse: MessageFns<DesktopEnsureResponse> = {\n encode(message: DesktopEnsureResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.channel !== undefined) {\n StreamChannel.encode(message.channel, writer.uint32(10).fork()).join();\n }\n if (message.display !== undefined) {\n Display.encode(message.display, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DesktopEnsureResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDesktopEnsureResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.channel = StreamChannel.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.display = Display.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): DesktopEnsureResponse {\n return {\n channel: isSet(object.channel) ? StreamChannel.fromJSON(object.channel) : undefined,\n display: isSet(object.display) ? Display.fromJSON(object.display) : undefined,\n };\n },\n\n toJSON(message: DesktopEnsureResponse): unknown {\n const obj: any = {};\n if (message.channel !== undefined) {\n obj.channel = StreamChannel.toJSON(message.channel);\n }\n if (message.display !== undefined) {\n obj.display = Display.toJSON(message.display);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<DesktopEnsureResponse>, I>>(base?: I): DesktopEnsureResponse {\n return DesktopEnsureResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<DesktopEnsureResponse>, I>>(object: I): DesktopEnsureResponse {\n const message = createBaseDesktopEnsureResponse();\n message.channel = (object.channel !== undefined && object.channel !== null)\n ? StreamChannel.fromPartial(object.channel)\n : undefined;\n message.display = (object.display !== undefined && object.display !== null)\n ? Display.fromPartial(object.display)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseDesktopInputRequest(): DesktopInputRequest {\n return { event: undefined };\n}\n\nexport const DesktopInputRequest: MessageFns<DesktopInputRequest> = {\n encode(message: DesktopInputRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n switch (message.event?.$case) {\n case \"pointer\":\n PointerEvent.encode(message.event.pointer, writer.uint32(10).fork()).join();\n break;\n case \"key\":\n KeyEvent.encode(message.event.key, writer.uint32(18).fork()).join();\n break;\n case \"scroll\":\n ScrollEvent.encode(message.event.scroll, writer.uint32(26).fork()).join();\n break;\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DesktopInputRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDesktopInputRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.event = { $case: \"pointer\", pointer: PointerEvent.decode(reader, reader.uint32()) };\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.event = { $case: \"key\", key: KeyEvent.decode(reader, reader.uint32()) };\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.event = { $case: \"scroll\", scroll: ScrollEvent.decode(reader, reader.uint32()) };\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): DesktopInputRequest {\n return {\n event: isSet(object.pointer)\n ? { $case: \"pointer\", pointer: PointerEvent.fromJSON(object.pointer) }\n : isSet(object.key)\n ? { $case: \"key\", key: KeyEvent.fromJSON(object.key) }\n : isSet(object.scroll)\n ? { $case: \"scroll\", scroll: ScrollEvent.fromJSON(object.scroll) }\n : undefined,\n };\n },\n\n toJSON(message: DesktopInputRequest): unknown {\n const obj: any = {};\n if (message.event?.$case === \"pointer\") {\n obj.pointer = PointerEvent.toJSON(message.event.pointer);\n } else if (message.event?.$case === \"key\") {\n obj.key = KeyEvent.toJSON(message.event.key);\n } else if (message.event?.$case === \"scroll\") {\n obj.scroll = ScrollEvent.toJSON(message.event.scroll);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<DesktopInputRequest>, I>>(base?: I): DesktopInputRequest {\n return DesktopInputRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<DesktopInputRequest>, I>>(object: I): DesktopInputRequest {\n const message = createBaseDesktopInputRequest();\n switch (object.event?.$case) {\n case \"pointer\": {\n if (object.event?.pointer !== undefined && object.event?.pointer !== null) {\n message.event = { $case: \"pointer\", pointer: PointerEvent.fromPartial(object.event.pointer) };\n }\n break;\n }\n case \"key\": {\n if (object.event?.key !== undefined && object.event?.key !== null) {\n message.event = { $case: \"key\", key: KeyEvent.fromPartial(object.event.key) };\n }\n break;\n }\n case \"scroll\": {\n if (object.event?.scroll !== undefined && object.event?.scroll !== null) {\n message.event = { $case: \"scroll\", scroll: ScrollEvent.fromPartial(object.event.scroll) };\n }\n break;\n }\n }\n return message;\n },\n};\n\nfunction createBaseDesktopInputResponse(): DesktopInputResponse {\n return {};\n}\n\nexport const DesktopInputResponse: MessageFns<DesktopInputResponse> = {\n encode(_: DesktopInputResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DesktopInputResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDesktopInputResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DesktopInputResponse {\n return {};\n },\n\n toJSON(_: DesktopInputResponse): unknown {\n const obj: any = {};\n return obj;\n },\n\n create<I extends Exact<DeepPartial<DesktopInputResponse>, I>>(base?: I): DesktopInputResponse {\n return DesktopInputResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<DesktopInputResponse>, I>>(_: I): DesktopInputResponse {\n const message = createBaseDesktopInputResponse();\n return message;\n },\n};\n\nfunction createBaseDesktopScreenshotRequest(): DesktopScreenshotRequest {\n return {};\n}\n\nexport const DesktopScreenshotRequest: MessageFns<DesktopScreenshotRequest> = {\n encode(_: DesktopScreenshotRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DesktopScreenshotRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDesktopScreenshotRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DesktopScreenshotRequest {\n return {};\n },\n\n toJSON(_: DesktopScreenshotRequest): unknown {\n const obj: any = {};\n return obj;\n },\n\n create<I extends Exact<DeepPartial<DesktopScreenshotRequest>, I>>(base?: I): DesktopScreenshotRequest {\n return DesktopScreenshotRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<DesktopScreenshotRequest>, I>>(_: I): DesktopScreenshotRequest {\n const message = createBaseDesktopScreenshotRequest();\n return message;\n },\n};\n\nfunction createBaseDesktopScreenshotResponse(): DesktopScreenshotResponse {\n return { png: new Uint8Array(0), width: 0, height: 0, nativeWidth: 0, nativeHeight: 0 };\n}\n\nexport const DesktopScreenshotResponse: MessageFns<DesktopScreenshotResponse> = {\n encode(message: DesktopScreenshotResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.png.length !== 0) {\n writer.uint32(10).bytes(message.png);\n }\n if (message.width !== 0) {\n writer.uint32(16).uint32(message.width);\n }\n if (message.height !== 0) {\n writer.uint32(24).uint32(message.height);\n }\n if (message.nativeWidth !== 0) {\n writer.uint32(32).uint32(message.nativeWidth);\n }\n if (message.nativeHeight !== 0) {\n writer.uint32(40).uint32(message.nativeHeight);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DesktopScreenshotResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDesktopScreenshotResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.png = reader.bytes();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.width = reader.uint32();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.height = reader.uint32();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.nativeWidth = reader.uint32();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.nativeHeight = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): DesktopScreenshotResponse {\n return {\n png: isSet(object.png) ? bytesFromBase64(object.png) : new Uint8Array(0),\n width: isSet(object.width) ? globalThis.Number(object.width) : 0,\n height: isSet(object.height) ? globalThis.Number(object.height) : 0,\n nativeWidth: isSet(object.nativeWidth)\n ? globalThis.Number(object.nativeWidth)\n : isSet(object.native_width)\n ? globalThis.Number(object.native_width)\n : 0,\n nativeHeight: isSet(object.nativeHeight)\n ? globalThis.Number(object.nativeHeight)\n : isSet(object.native_height)\n ? globalThis.Number(object.native_height)\n : 0,\n };\n },\n\n toJSON(message: DesktopScreenshotResponse): unknown {\n const obj: any = {};\n if (message.png.length !== 0) {\n obj.png = base64FromBytes(message.png);\n }\n if (message.width !== 0) {\n obj.width = Math.round(message.width);\n }\n if (message.height !== 0) {\n obj.height = Math.round(message.height);\n }\n if (message.nativeWidth !== 0) {\n obj.nativeWidth = Math.round(message.nativeWidth);\n }\n if (message.nativeHeight !== 0) {\n obj.nativeHeight = Math.round(message.nativeHeight);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<DesktopScreenshotResponse>, I>>(base?: I): DesktopScreenshotResponse {\n return DesktopScreenshotResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<DesktopScreenshotResponse>, I>>(object: I): DesktopScreenshotResponse {\n const message = createBaseDesktopScreenshotResponse();\n message.png = object.png ?? new Uint8Array(0);\n message.width = object.width ?? 0;\n message.height = object.height ?? 0;\n message.nativeWidth = object.nativeWidth ?? 0;\n message.nativeHeight = object.nativeHeight ?? 0;\n return message;\n },\n};\n\nfunction createBaseBrowserControlEnsureRequest(): BrowserControlEnsureRequest {\n return { scopeId: \"\", scopeGeneration: \"\", adminToken: \"\", allowedOrigins: [] };\n}\n\nexport const BrowserControlEnsureRequest: MessageFns<BrowserControlEnsureRequest> = {\n encode(message: BrowserControlEnsureRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.scopeId !== \"\") {\n writer.uint32(10).string(message.scopeId);\n }\n if (message.scopeGeneration !== \"\") {\n writer.uint32(18).string(message.scopeGeneration);\n }\n if (message.adminToken !== \"\") {\n writer.uint32(26).string(message.adminToken);\n }\n for (const v of message.allowedOrigins) {\n writer.uint32(34).string(v!);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): BrowserControlEnsureRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBrowserControlEnsureRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.scopeId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.scopeGeneration = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.adminToken = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.allowedOrigins.push(reader.string());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): BrowserControlEnsureRequest {\n return {\n scopeId: isSet(object.scopeId)\n ? globalThis.String(object.scopeId)\n : isSet(object.scope_id)\n ? globalThis.String(object.scope_id)\n : \"\",\n scopeGeneration: isSet(object.scopeGeneration)\n ? globalThis.String(object.scopeGeneration)\n : isSet(object.scope_generation)\n ? globalThis.String(object.scope_generation)\n : \"\",\n adminToken: isSet(object.adminToken)\n ? globalThis.String(object.adminToken)\n : isSet(object.admin_token)\n ? globalThis.String(object.admin_token)\n : \"\",\n allowedOrigins: globalThis.Array.isArray(object?.allowedOrigins)\n ? object.allowedOrigins.map((e: any) => globalThis.String(e))\n : globalThis.Array.isArray(object?.allowed_origins)\n ? object.allowed_origins.map((e: any) => globalThis.String(e))\n : [],\n };\n },\n\n toJSON(message: BrowserControlEnsureRequest): unknown {\n const obj: any = {};\n if (message.scopeId !== \"\") {\n obj.scopeId = message.scopeId;\n }\n if (message.scopeGeneration !== \"\") {\n obj.scopeGeneration = message.scopeGeneration;\n }\n if (message.adminToken !== \"\") {\n obj.adminToken = message.adminToken;\n }\n if (message.allowedOrigins?.length) {\n obj.allowedOrigins = message.allowedOrigins;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<BrowserControlEnsureRequest>, I>>(base?: I): BrowserControlEnsureRequest {\n return BrowserControlEnsureRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<BrowserControlEnsureRequest>, I>>(object: I): BrowserControlEnsureRequest {\n const message = createBaseBrowserControlEnsureRequest();\n message.scopeId = object.scopeId ?? \"\";\n message.scopeGeneration = object.scopeGeneration ?? \"\";\n message.adminToken = object.adminToken ?? \"\";\n message.allowedOrigins = object.allowedOrigins?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseBrowserControlEnsureResponse(): BrowserControlEnsureResponse {\n return { port: 0, sidecarGeneration: \"\" };\n}\n\nexport const BrowserControlEnsureResponse: MessageFns<BrowserControlEnsureResponse> = {\n encode(message: BrowserControlEnsureResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.port !== 0) {\n writer.uint32(8).uint32(message.port);\n }\n if (message.sidecarGeneration !== \"\") {\n writer.uint32(18).string(message.sidecarGeneration);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): BrowserControlEnsureResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBrowserControlEnsureResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.port = reader.uint32();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.sidecarGeneration = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): BrowserControlEnsureResponse {\n return {\n port: isSet(object.port) ? globalThis.Number(object.port) : 0,\n sidecarGeneration: isSet(object.sidecarGeneration)\n ? globalThis.String(object.sidecarGeneration)\n : isSet(object.sidecar_generation)\n ? globalThis.String(object.sidecar_generation)\n : \"\",\n };\n },\n\n toJSON(message: BrowserControlEnsureResponse): unknown {\n const obj: any = {};\n if (message.port !== 0) {\n obj.port = Math.round(message.port);\n }\n if (message.sidecarGeneration !== \"\") {\n obj.sidecarGeneration = message.sidecarGeneration;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<BrowserControlEnsureResponse>, I>>(base?: I): BrowserControlEnsureResponse {\n return BrowserControlEnsureResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<BrowserControlEnsureResponse>, I>>(object: I): BrowserControlEnsureResponse {\n const message = createBaseBrowserControlEnsureResponse();\n message.port = object.port ?? 0;\n message.sidecarGeneration = object.sidecarGeneration ?? \"\";\n return message;\n },\n};\n\nfunction createBaseBrowserFramesOpenRequest(): BrowserFramesOpenRequest {\n return {\n scopeId: \"\",\n scopeGeneration: \"\",\n browserSessionId: \"\",\n controllerGeneration: \"\",\n targetId: \"\",\n viewToken: \"\",\n expiresAtMs: \"0\",\n format: \"\",\n quality: 0,\n maxWidth: 0,\n maxHeight: 0,\n everyNthFrame: 0,\n };\n}\n\nexport const BrowserFramesOpenRequest: MessageFns<BrowserFramesOpenRequest> = {\n encode(message: BrowserFramesOpenRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.scopeId !== \"\") {\n writer.uint32(10).string(message.scopeId);\n }\n if (message.scopeGeneration !== \"\") {\n writer.uint32(18).string(message.scopeGeneration);\n }\n if (message.browserSessionId !== \"\") {\n writer.uint32(26).string(message.browserSessionId);\n }\n if (message.controllerGeneration !== \"\") {\n writer.uint32(34).string(message.controllerGeneration);\n }\n if (message.targetId !== \"\") {\n writer.uint32(42).string(message.targetId);\n }\n if (message.viewToken !== \"\") {\n writer.uint32(50).string(message.viewToken);\n }\n if (message.expiresAtMs !== \"0\") {\n writer.uint32(56).int64(message.expiresAtMs);\n }\n if (message.format !== \"\") {\n writer.uint32(66).string(message.format);\n }\n if (message.quality !== 0) {\n writer.uint32(72).uint32(message.quality);\n }\n if (message.maxWidth !== 0) {\n writer.uint32(80).uint32(message.maxWidth);\n }\n if (message.maxHeight !== 0) {\n writer.uint32(88).uint32(message.maxHeight);\n }\n if (message.everyNthFrame !== 0) {\n writer.uint32(96).uint32(message.everyNthFrame);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): BrowserFramesOpenRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBrowserFramesOpenRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.scopeId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.scopeGeneration = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.browserSessionId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.controllerGeneration = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.targetId = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.viewToken = reader.string();\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.expiresAtMs = reader.int64().toString();\n continue;\n }\n case 8: {\n if (tag !== 66) {\n break;\n }\n\n message.format = reader.string();\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.quality = reader.uint32();\n continue;\n }\n case 10: {\n if (tag !== 80) {\n break;\n }\n\n message.maxWidth = reader.uint32();\n continue;\n }\n case 11: {\n if (tag !== 88) {\n break;\n }\n\n message.maxHeight = reader.uint32();\n continue;\n }\n case 12: {\n if (tag !== 96) {\n break;\n }\n\n message.everyNthFrame = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): BrowserFramesOpenRequest {\n return {\n scopeId: isSet(object.scopeId)\n ? globalThis.String(object.scopeId)\n : isSet(object.scope_id)\n ? globalThis.String(object.scope_id)\n : \"\",\n scopeGeneration: isSet(object.scopeGeneration)\n ? globalThis.String(object.scopeGeneration)\n : isSet(object.scope_generation)\n ? globalThis.String(object.scope_generation)\n : \"\",\n browserSessionId: isSet(object.browserSessionId)\n ? globalThis.String(object.browserSessionId)\n : isSet(object.browser_session_id)\n ? globalThis.String(object.browser_session_id)\n : \"\",\n controllerGeneration: isSet(object.controllerGeneration)\n ? globalThis.String(object.controllerGeneration)\n : isSet(object.controller_generation)\n ? globalThis.String(object.controller_generation)\n : \"\",\n targetId: isSet(object.targetId)\n ? globalThis.String(object.targetId)\n : isSet(object.target_id)\n ? globalThis.String(object.target_id)\n : \"\",\n viewToken: isSet(object.viewToken)\n ? globalThis.String(object.viewToken)\n : isSet(object.view_token)\n ? globalThis.String(object.view_token)\n : \"\",\n expiresAtMs: isSet(object.expiresAtMs)\n ? globalThis.String(object.expiresAtMs)\n : isSet(object.expires_at_ms)\n ? globalThis.String(object.expires_at_ms)\n : \"0\",\n format: isSet(object.format) ? globalThis.String(object.format) : \"\",\n quality: isSet(object.quality) ? globalThis.Number(object.quality) : 0,\n maxWidth: isSet(object.maxWidth)\n ? globalThis.Number(object.maxWidth)\n : isSet(object.max_width)\n ? globalThis.Number(object.max_width)\n : 0,\n maxHeight: isSet(object.maxHeight)\n ? globalThis.Number(object.maxHeight)\n : isSet(object.max_height)\n ? globalThis.Number(object.max_height)\n : 0,\n everyNthFrame: isSet(object.everyNthFrame)\n ? globalThis.Number(object.everyNthFrame)\n : isSet(object.every_nth_frame)\n ? globalThis.Number(object.every_nth_frame)\n : 0,\n };\n },\n\n toJSON(message: BrowserFramesOpenRequest): unknown {\n const obj: any = {};\n if (message.scopeId !== \"\") {\n obj.scopeId = message.scopeId;\n }\n if (message.scopeGeneration !== \"\") {\n obj.scopeGeneration = message.scopeGeneration;\n }\n if (message.browserSessionId !== \"\") {\n obj.browserSessionId = message.browserSessionId;\n }\n if (message.controllerGeneration !== \"\") {\n obj.controllerGeneration = message.controllerGeneration;\n }\n if (message.targetId !== \"\") {\n obj.targetId = message.targetId;\n }\n if (message.viewToken !== \"\") {\n obj.viewToken = message.viewToken;\n }\n if (message.expiresAtMs !== \"0\") {\n obj.expiresAtMs = message.expiresAtMs;\n }\n if (message.format !== \"\") {\n obj.format = message.format;\n }\n if (message.quality !== 0) {\n obj.quality = Math.round(message.quality);\n }\n if (message.maxWidth !== 0) {\n obj.maxWidth = Math.round(message.maxWidth);\n }\n if (message.maxHeight !== 0) {\n obj.maxHeight = Math.round(message.maxHeight);\n }\n if (message.everyNthFrame !== 0) {\n obj.everyNthFrame = Math.round(message.everyNthFrame);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<BrowserFramesOpenRequest>, I>>(base?: I): BrowserFramesOpenRequest {\n return BrowserFramesOpenRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<BrowserFramesOpenRequest>, I>>(object: I): BrowserFramesOpenRequest {\n const message = createBaseBrowserFramesOpenRequest();\n message.scopeId = object.scopeId ?? \"\";\n message.scopeGeneration = object.scopeGeneration ?? \"\";\n message.browserSessionId = object.browserSessionId ?? \"\";\n message.controllerGeneration = object.controllerGeneration ?? \"\";\n message.targetId = object.targetId ?? \"\";\n message.viewToken = object.viewToken ?? \"\";\n message.expiresAtMs = object.expiresAtMs ?? \"0\";\n message.format = object.format ?? \"\";\n message.quality = object.quality ?? 0;\n message.maxWidth = object.maxWidth ?? 0;\n message.maxHeight = object.maxHeight ?? 0;\n message.everyNthFrame = object.everyNthFrame ?? 0;\n return message;\n },\n};\n\nfunction createBaseBrowserFramesOpenResponse(): BrowserFramesOpenResponse {\n return { channel: undefined };\n}\n\nexport const BrowserFramesOpenResponse: MessageFns<BrowserFramesOpenResponse> = {\n encode(message: BrowserFramesOpenResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.channel !== undefined) {\n StreamChannel.encode(message.channel, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): BrowserFramesOpenResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBrowserFramesOpenResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.channel = StreamChannel.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): BrowserFramesOpenResponse {\n return { channel: isSet(object.channel) ? StreamChannel.fromJSON(object.channel) : undefined };\n },\n\n toJSON(message: BrowserFramesOpenResponse): unknown {\n const obj: any = {};\n if (message.channel !== undefined) {\n obj.channel = StreamChannel.toJSON(message.channel);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<BrowserFramesOpenResponse>, I>>(base?: I): BrowserFramesOpenResponse {\n return BrowserFramesOpenResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<BrowserFramesOpenResponse>, I>>(object: I): BrowserFramesOpenResponse {\n const message = createBaseBrowserFramesOpenResponse();\n message.channel = (object.channel !== undefined && object.channel !== null)\n ? StreamChannel.fromPartial(object.channel)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseComputerFramesOpenRequest(): ComputerFramesOpenRequest {\n return {\n scopeId: \"\",\n scopeGeneration: \"\",\n computerSessionId: \"\",\n controllerGeneration: \"\",\n targetId: \"\",\n viewToken: \"\",\n expiresAtMs: \"0\",\n format: \"\",\n quality: 0,\n maxWidth: 0,\n maxHeight: 0,\n everyNthFrame: 0,\n };\n}\n\nexport const ComputerFramesOpenRequest: MessageFns<ComputerFramesOpenRequest> = {\n encode(message: ComputerFramesOpenRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.scopeId !== \"\") {\n writer.uint32(10).string(message.scopeId);\n }\n if (message.scopeGeneration !== \"\") {\n writer.uint32(18).string(message.scopeGeneration);\n }\n if (message.computerSessionId !== \"\") {\n writer.uint32(26).string(message.computerSessionId);\n }\n if (message.controllerGeneration !== \"\") {\n writer.uint32(34).string(message.controllerGeneration);\n }\n if (message.targetId !== \"\") {\n writer.uint32(42).string(message.targetId);\n }\n if (message.viewToken !== \"\") {\n writer.uint32(50).string(message.viewToken);\n }\n if (message.expiresAtMs !== \"0\") {\n writer.uint32(56).int64(message.expiresAtMs);\n }\n if (message.format !== \"\") {\n writer.uint32(66).string(message.format);\n }\n if (message.quality !== 0) {\n writer.uint32(72).uint32(message.quality);\n }\n if (message.maxWidth !== 0) {\n writer.uint32(80).uint32(message.maxWidth);\n }\n if (message.maxHeight !== 0) {\n writer.uint32(88).uint32(message.maxHeight);\n }\n if (message.everyNthFrame !== 0) {\n writer.uint32(96).uint32(message.everyNthFrame);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): ComputerFramesOpenRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseComputerFramesOpenRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.scopeId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.scopeGeneration = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.computerSessionId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.controllerGeneration = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.targetId = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.viewToken = reader.string();\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.expiresAtMs = reader.int64().toString();\n continue;\n }\n case 8: {\n if (tag !== 66) {\n break;\n }\n\n message.format = reader.string();\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.quality = reader.uint32();\n continue;\n }\n case 10: {\n if (tag !== 80) {\n break;\n }\n\n message.maxWidth = reader.uint32();\n continue;\n }\n case 11: {\n if (tag !== 88) {\n break;\n }\n\n message.maxHeight = reader.uint32();\n continue;\n }\n case 12: {\n if (tag !== 96) {\n break;\n }\n\n message.everyNthFrame = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): ComputerFramesOpenRequest {\n return {\n scopeId: isSet(object.scopeId)\n ? globalThis.String(object.scopeId)\n : isSet(object.scope_id)\n ? globalThis.String(object.scope_id)\n : \"\",\n scopeGeneration: isSet(object.scopeGeneration)\n ? globalThis.String(object.scopeGeneration)\n : isSet(object.scope_generation)\n ? globalThis.String(object.scope_generation)\n : \"\",\n computerSessionId: isSet(object.computerSessionId)\n ? globalThis.String(object.computerSessionId)\n : isSet(object.computer_session_id)\n ? globalThis.String(object.computer_session_id)\n : \"\",\n controllerGeneration: isSet(object.controllerGeneration)\n ? globalThis.String(object.controllerGeneration)\n : isSet(object.controller_generation)\n ? globalThis.String(object.controller_generation)\n : \"\",\n targetId: isSet(object.targetId)\n ? globalThis.String(object.targetId)\n : isSet(object.target_id)\n ? globalThis.String(object.target_id)\n : \"\",\n viewToken: isSet(object.viewToken)\n ? globalThis.String(object.viewToken)\n : isSet(object.view_token)\n ? globalThis.String(object.view_token)\n : \"\",\n expiresAtMs: isSet(object.expiresAtMs)\n ? globalThis.String(object.expiresAtMs)\n : isSet(object.expires_at_ms)\n ? globalThis.String(object.expires_at_ms)\n : \"0\",\n format: isSet(object.format) ? globalThis.String(object.format) : \"\",\n quality: isSet(object.quality) ? globalThis.Number(object.quality) : 0,\n maxWidth: isSet(object.maxWidth)\n ? globalThis.Number(object.maxWidth)\n : isSet(object.max_width)\n ? globalThis.Number(object.max_width)\n : 0,\n maxHeight: isSet(object.maxHeight)\n ? globalThis.Number(object.maxHeight)\n : isSet(object.max_height)\n ? globalThis.Number(object.max_height)\n : 0,\n everyNthFrame: isSet(object.everyNthFrame)\n ? globalThis.Number(object.everyNthFrame)\n : isSet(object.every_nth_frame)\n ? globalThis.Number(object.every_nth_frame)\n : 0,\n };\n },\n\n toJSON(message: ComputerFramesOpenRequest): unknown {\n const obj: any = {};\n if (message.scopeId !== \"\") {\n obj.scopeId = message.scopeId;\n }\n if (message.scopeGeneration !== \"\") {\n obj.scopeGeneration = message.scopeGeneration;\n }\n if (message.computerSessionId !== \"\") {\n obj.computerSessionId = message.computerSessionId;\n }\n if (message.controllerGeneration !== \"\") {\n obj.controllerGeneration = message.controllerGeneration;\n }\n if (message.targetId !== \"\") {\n obj.targetId = message.targetId;\n }\n if (message.viewToken !== \"\") {\n obj.viewToken = message.viewToken;\n }\n if (message.expiresAtMs !== \"0\") {\n obj.expiresAtMs = message.expiresAtMs;\n }\n if (message.format !== \"\") {\n obj.format = message.format;\n }\n if (message.quality !== 0) {\n obj.quality = Math.round(message.quality);\n }\n if (message.maxWidth !== 0) {\n obj.maxWidth = Math.round(message.maxWidth);\n }\n if (message.maxHeight !== 0) {\n obj.maxHeight = Math.round(message.maxHeight);\n }\n if (message.everyNthFrame !== 0) {\n obj.everyNthFrame = Math.round(message.everyNthFrame);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<ComputerFramesOpenRequest>, I>>(base?: I): ComputerFramesOpenRequest {\n return ComputerFramesOpenRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<ComputerFramesOpenRequest>, I>>(object: I): ComputerFramesOpenRequest {\n const message = createBaseComputerFramesOpenRequest();\n message.scopeId = object.scopeId ?? \"\";\n message.scopeGeneration = object.scopeGeneration ?? \"\";\n message.computerSessionId = object.computerSessionId ?? \"\";\n message.controllerGeneration = object.controllerGeneration ?? \"\";\n message.targetId = object.targetId ?? \"\";\n message.viewToken = object.viewToken ?? \"\";\n message.expiresAtMs = object.expiresAtMs ?? \"0\";\n message.format = object.format ?? \"\";\n message.quality = object.quality ?? 0;\n message.maxWidth = object.maxWidth ?? 0;\n message.maxHeight = object.maxHeight ?? 0;\n message.everyNthFrame = object.everyNthFrame ?? 0;\n return message;\n },\n};\n\nfunction createBaseComputerFramesOpenResponse(): ComputerFramesOpenResponse {\n return { channel: undefined };\n}\n\nexport const ComputerFramesOpenResponse: MessageFns<ComputerFramesOpenResponse> = {\n encode(message: ComputerFramesOpenResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.channel !== undefined) {\n StreamChannel.encode(message.channel, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): ComputerFramesOpenResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseComputerFramesOpenResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.channel = StreamChannel.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): ComputerFramesOpenResponse {\n return { channel: isSet(object.channel) ? StreamChannel.fromJSON(object.channel) : undefined };\n },\n\n toJSON(message: ComputerFramesOpenResponse): unknown {\n const obj: any = {};\n if (message.channel !== undefined) {\n obj.channel = StreamChannel.toJSON(message.channel);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<ComputerFramesOpenResponse>, I>>(base?: I): ComputerFramesOpenResponse {\n return ComputerFramesOpenResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<ComputerFramesOpenResponse>, I>>(object: I): ComputerFramesOpenResponse {\n const message = createBaseComputerFramesOpenResponse();\n message.channel = (object.channel !== undefined && object.channel !== null)\n ? StreamChannel.fromPartial(object.channel)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseHeartbeat(): Heartbeat {\n return {\n seq: \"0\",\n uptimeMs: \"0\",\n activeSessions: 0,\n metrics: undefined,\n draining: false,\n capacity: undefined,\n admission: undefined,\n attachedBrowserInventory: undefined,\n };\n}\n\nexport const Heartbeat: MessageFns<Heartbeat> = {\n encode(message: Heartbeat, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.seq !== \"0\") {\n writer.uint32(8).uint64(message.seq);\n }\n if (message.uptimeMs !== \"0\") {\n writer.uint32(16).uint64(message.uptimeMs);\n }\n if (message.activeSessions !== 0) {\n writer.uint32(24).uint32(message.activeSessions);\n }\n if (message.metrics !== undefined) {\n MetricsSample.encode(message.metrics, writer.uint32(34).fork()).join();\n }\n if (message.draining !== false) {\n writer.uint32(40).bool(message.draining);\n }\n if (message.capacity !== undefined) {\n HostCapacitySample.encode(message.capacity, writer.uint32(50).fork()).join();\n }\n if (message.admission !== undefined) {\n AdmissionTelemetry.encode(message.admission, writer.uint32(58).fork()).join();\n }\n if (message.attachedBrowserInventory !== undefined) {\n AttachedBrowserInventorySnapshot.encode(message.attachedBrowserInventory, writer.uint32(66).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Heartbeat {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHeartbeat();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.seq = reader.uint64().toString();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.uptimeMs = reader.uint64().toString();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.activeSessions = reader.uint32();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.metrics = MetricsSample.decode(reader, reader.uint32());\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.draining = reader.bool();\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.capacity = HostCapacitySample.decode(reader, reader.uint32());\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.admission = AdmissionTelemetry.decode(reader, reader.uint32());\n continue;\n }\n case 8: {\n if (tag !== 66) {\n break;\n }\n\n message.attachedBrowserInventory = AttachedBrowserInventorySnapshot.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Heartbeat {\n return {\n seq: isSet(object.seq) ? globalThis.String(object.seq) : \"0\",\n uptimeMs: isSet(object.uptimeMs)\n ? globalThis.String(object.uptimeMs)\n : isSet(object.uptime_ms)\n ? globalThis.String(object.uptime_ms)\n : \"0\",\n activeSessions: isSet(object.activeSessions)\n ? globalThis.Number(object.activeSessions)\n : isSet(object.active_sessions)\n ? globalThis.Number(object.active_sessions)\n : 0,\n metrics: isSet(object.metrics) ? MetricsSample.fromJSON(object.metrics) : undefined,\n draining: isSet(object.draining) ? globalThis.Boolean(object.draining) : false,\n capacity: isSet(object.capacity) ? HostCapacitySample.fromJSON(object.capacity) : undefined,\n admission: isSet(object.admission) ? AdmissionTelemetry.fromJSON(object.admission) : undefined,\n attachedBrowserInventory: isSet(object.attachedBrowserInventory)\n ? AttachedBrowserInventorySnapshot.fromJSON(object.attachedBrowserInventory)\n : isSet(object.attached_browser_inventory)\n ? AttachedBrowserInventorySnapshot.fromJSON(object.attached_browser_inventory)\n : undefined,\n };\n },\n\n toJSON(message: Heartbeat): unknown {\n const obj: any = {};\n if (message.seq !== \"0\") {\n obj.seq = message.seq;\n }\n if (message.uptimeMs !== \"0\") {\n obj.uptimeMs = message.uptimeMs;\n }\n if (message.activeSessions !== 0) {\n obj.activeSessions = Math.round(message.activeSessions);\n }\n if (message.metrics !== undefined) {\n obj.metrics = MetricsSample.toJSON(message.metrics);\n }\n if (message.draining !== false) {\n obj.draining = message.draining;\n }\n if (message.capacity !== undefined) {\n obj.capacity = HostCapacitySample.toJSON(message.capacity);\n }\n if (message.admission !== undefined) {\n obj.admission = AdmissionTelemetry.toJSON(message.admission);\n }\n if (message.attachedBrowserInventory !== undefined) {\n obj.attachedBrowserInventory = AttachedBrowserInventorySnapshot.toJSON(message.attachedBrowserInventory);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<Heartbeat>, I>>(base?: I): Heartbeat {\n return Heartbeat.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Heartbeat>, I>>(object: I): Heartbeat {\n const message = createBaseHeartbeat();\n message.seq = object.seq ?? \"0\";\n message.uptimeMs = object.uptimeMs ?? \"0\";\n message.activeSessions = object.activeSessions ?? 0;\n message.metrics = (object.metrics !== undefined && object.metrics !== null)\n ? MetricsSample.fromPartial(object.metrics)\n : undefined;\n message.draining = object.draining ?? false;\n message.capacity = (object.capacity !== undefined && object.capacity !== null)\n ? HostCapacitySample.fromPartial(object.capacity)\n : undefined;\n message.admission = (object.admission !== undefined && object.admission !== null)\n ? AdmissionTelemetry.fromPartial(object.admission)\n : undefined;\n message.attachedBrowserInventory =\n (object.attachedBrowserInventory !== undefined && object.attachedBrowserInventory !== null)\n ? AttachedBrowserInventorySnapshot.fromPartial(object.attachedBrowserInventory)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseHostCapacitySample(): HostCapacitySample {\n return { memAvailableBytes: \"0\", diskFreeBytes: \"0\", fdHeadroom: \"0\", pidHeadroom: \"0\", nproc: \"0\" };\n}\n\nexport const HostCapacitySample: MessageFns<HostCapacitySample> = {\n encode(message: HostCapacitySample, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.memAvailableBytes !== \"0\") {\n writer.uint32(8).uint64(message.memAvailableBytes);\n }\n if (message.diskFreeBytes !== \"0\") {\n writer.uint32(16).uint64(message.diskFreeBytes);\n }\n if (message.fdHeadroom !== \"0\") {\n writer.uint32(24).uint64(message.fdHeadroom);\n }\n if (message.pidHeadroom !== \"0\") {\n writer.uint32(32).uint64(message.pidHeadroom);\n }\n if (message.nproc !== \"0\") {\n writer.uint32(40).uint64(message.nproc);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): HostCapacitySample {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHostCapacitySample();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.memAvailableBytes = reader.uint64().toString();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.diskFreeBytes = reader.uint64().toString();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.fdHeadroom = reader.uint64().toString();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.pidHeadroom = reader.uint64().toString();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.nproc = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): HostCapacitySample {\n return {\n memAvailableBytes: isSet(object.memAvailableBytes)\n ? globalThis.String(object.memAvailableBytes)\n : isSet(object.mem_available_bytes)\n ? globalThis.String(object.mem_available_bytes)\n : \"0\",\n diskFreeBytes: isSet(object.diskFreeBytes)\n ? globalThis.String(object.diskFreeBytes)\n : isSet(object.disk_free_bytes)\n ? globalThis.String(object.disk_free_bytes)\n : \"0\",\n fdHeadroom: isSet(object.fdHeadroom)\n ? globalThis.String(object.fdHeadroom)\n : isSet(object.fd_headroom)\n ? globalThis.String(object.fd_headroom)\n : \"0\",\n pidHeadroom: isSet(object.pidHeadroom)\n ? globalThis.String(object.pidHeadroom)\n : isSet(object.pid_headroom)\n ? globalThis.String(object.pid_headroom)\n : \"0\",\n nproc: isSet(object.nproc) ? globalThis.String(object.nproc) : \"0\",\n };\n },\n\n toJSON(message: HostCapacitySample): unknown {\n const obj: any = {};\n if (message.memAvailableBytes !== \"0\") {\n obj.memAvailableBytes = message.memAvailableBytes;\n }\n if (message.diskFreeBytes !== \"0\") {\n obj.diskFreeBytes = message.diskFreeBytes;\n }\n if (message.fdHeadroom !== \"0\") {\n obj.fdHeadroom = message.fdHeadroom;\n }\n if (message.pidHeadroom !== \"0\") {\n obj.pidHeadroom = message.pidHeadroom;\n }\n if (message.nproc !== \"0\") {\n obj.nproc = message.nproc;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<HostCapacitySample>, I>>(base?: I): HostCapacitySample {\n return HostCapacitySample.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<HostCapacitySample>, I>>(object: I): HostCapacitySample {\n const message = createBaseHostCapacitySample();\n message.memAvailableBytes = object.memAvailableBytes ?? \"0\";\n message.diskFreeBytes = object.diskFreeBytes ?? \"0\";\n message.fdHeadroom = object.fdHeadroom ?? \"0\";\n message.pidHeadroom = object.pidHeadroom ?? \"0\";\n message.nproc = object.nproc ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseAdmissionTelemetry(): AdmissionTelemetry {\n return {\n lightRunning: \"0\",\n lightQueued: \"0\",\n heavyRunning: \"0\",\n heavyQueued: \"0\",\n liveOps: \"0\",\n opFramesDroppedTotal: \"0\",\n evictedUnackedTotal: \"0\",\n };\n}\n\nexport const AdmissionTelemetry: MessageFns<AdmissionTelemetry> = {\n encode(message: AdmissionTelemetry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.lightRunning !== \"0\") {\n writer.uint32(8).uint64(message.lightRunning);\n }\n if (message.lightQueued !== \"0\") {\n writer.uint32(16).uint64(message.lightQueued);\n }\n if (message.heavyRunning !== \"0\") {\n writer.uint32(24).uint64(message.heavyRunning);\n }\n if (message.heavyQueued !== \"0\") {\n writer.uint32(32).uint64(message.heavyQueued);\n }\n if (message.liveOps !== \"0\") {\n writer.uint32(40).uint64(message.liveOps);\n }\n if (message.opFramesDroppedTotal !== \"0\") {\n writer.uint32(48).uint64(message.opFramesDroppedTotal);\n }\n if (message.evictedUnackedTotal !== \"0\") {\n writer.uint32(56).uint64(message.evictedUnackedTotal);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): AdmissionTelemetry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAdmissionTelemetry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.lightRunning = reader.uint64().toString();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.lightQueued = reader.uint64().toString();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.heavyRunning = reader.uint64().toString();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.heavyQueued = reader.uint64().toString();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.liveOps = reader.uint64().toString();\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.opFramesDroppedTotal = reader.uint64().toString();\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.evictedUnackedTotal = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): AdmissionTelemetry {\n return {\n lightRunning: isSet(object.lightRunning)\n ? globalThis.String(object.lightRunning)\n : isSet(object.light_running)\n ? globalThis.String(object.light_running)\n : \"0\",\n lightQueued: isSet(object.lightQueued)\n ? globalThis.String(object.lightQueued)\n : isSet(object.light_queued)\n ? globalThis.String(object.light_queued)\n : \"0\",\n heavyRunning: isSet(object.heavyRunning)\n ? globalThis.String(object.heavyRunning)\n : isSet(object.heavy_running)\n ? globalThis.String(object.heavy_running)\n : \"0\",\n heavyQueued: isSet(object.heavyQueued)\n ? globalThis.String(object.heavyQueued)\n : isSet(object.heavy_queued)\n ? globalThis.String(object.heavy_queued)\n : \"0\",\n liveOps: isSet(object.liveOps)\n ? globalThis.String(object.liveOps)\n : isSet(object.live_ops)\n ? globalThis.String(object.live_ops)\n : \"0\",\n opFramesDroppedTotal: isSet(object.opFramesDroppedTotal)\n ? globalThis.String(object.opFramesDroppedTotal)\n : isSet(object.op_frames_dropped_total)\n ? globalThis.String(object.op_frames_dropped_total)\n : \"0\",\n evictedUnackedTotal: isSet(object.evictedUnackedTotal)\n ? globalThis.String(object.evictedUnackedTotal)\n : isSet(object.evicted_unacked_total)\n ? globalThis.String(object.evicted_unacked_total)\n : \"0\",\n };\n },\n\n toJSON(message: AdmissionTelemetry): unknown {\n const obj: any = {};\n if (message.lightRunning !== \"0\") {\n obj.lightRunning = message.lightRunning;\n }\n if (message.lightQueued !== \"0\") {\n obj.lightQueued = message.lightQueued;\n }\n if (message.heavyRunning !== \"0\") {\n obj.heavyRunning = message.heavyRunning;\n }\n if (message.heavyQueued !== \"0\") {\n obj.heavyQueued = message.heavyQueued;\n }\n if (message.liveOps !== \"0\") {\n obj.liveOps = message.liveOps;\n }\n if (message.opFramesDroppedTotal !== \"0\") {\n obj.opFramesDroppedTotal = message.opFramesDroppedTotal;\n }\n if (message.evictedUnackedTotal !== \"0\") {\n obj.evictedUnackedTotal = message.evictedUnackedTotal;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<AdmissionTelemetry>, I>>(base?: I): AdmissionTelemetry {\n return AdmissionTelemetry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<AdmissionTelemetry>, I>>(object: I): AdmissionTelemetry {\n const message = createBaseAdmissionTelemetry();\n message.lightRunning = object.lightRunning ?? \"0\";\n message.lightQueued = object.lightQueued ?? \"0\";\n message.heavyRunning = object.heavyRunning ?? \"0\";\n message.heavyQueued = object.heavyQueued ?? \"0\";\n message.liveOps = object.liveOps ?? \"0\";\n message.opFramesDroppedTotal = object.opFramesDroppedTotal ?? \"0\";\n message.evictedUnackedTotal = object.evictedUnackedTotal ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseHeartbeatAck(): HeartbeatAck {\n return { nextIntervalMs: 0, updateAvailable: false };\n}\n\nexport const HeartbeatAck: MessageFns<HeartbeatAck> = {\n encode(message: HeartbeatAck, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.nextIntervalMs !== 0) {\n writer.uint32(8).uint32(message.nextIntervalMs);\n }\n if (message.updateAvailable !== false) {\n writer.uint32(16).bool(message.updateAvailable);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): HeartbeatAck {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHeartbeatAck();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.nextIntervalMs = reader.uint32();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.updateAvailable = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): HeartbeatAck {\n return {\n nextIntervalMs: isSet(object.nextIntervalMs)\n ? globalThis.Number(object.nextIntervalMs)\n : isSet(object.next_interval_ms)\n ? globalThis.Number(object.next_interval_ms)\n : 0,\n updateAvailable: isSet(object.updateAvailable)\n ? globalThis.Boolean(object.updateAvailable)\n : isSet(object.update_available)\n ? globalThis.Boolean(object.update_available)\n : false,\n };\n },\n\n toJSON(message: HeartbeatAck): unknown {\n const obj: any = {};\n if (message.nextIntervalMs !== 0) {\n obj.nextIntervalMs = Math.round(message.nextIntervalMs);\n }\n if (message.updateAvailable !== false) {\n obj.updateAvailable = message.updateAvailable;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<HeartbeatAck>, I>>(base?: I): HeartbeatAck {\n return HeartbeatAck.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<HeartbeatAck>, I>>(object: I): HeartbeatAck {\n const message = createBaseHeartbeatAck();\n message.nextIntervalMs = object.nextIntervalMs ?? 0;\n message.updateAvailable = object.updateAvailable ?? false;\n return message;\n },\n};\n\nfunction createBaseMetricsRequest(): MetricsRequest {\n return {};\n}\n\nexport const MetricsRequest: MessageFns<MetricsRequest> = {\n encode(_: MetricsRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MetricsRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMetricsRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): MetricsRequest {\n return {};\n },\n\n toJSON(_: MetricsRequest): unknown {\n const obj: any = {};\n return obj;\n },\n\n create<I extends Exact<DeepPartial<MetricsRequest>, I>>(base?: I): MetricsRequest {\n return MetricsRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<MetricsRequest>, I>>(_: I): MetricsRequest {\n const message = createBaseMetricsRequest();\n return message;\n },\n};\n\nfunction createBaseMetricsSample(): MetricsSample {\n return {\n sampledAtMs: \"0\",\n cpuPercent: 0,\n load1: 0,\n load5: 0,\n load15: 0,\n memUsedBytes: \"0\",\n memTotalBytes: \"0\",\n diskUsedBytes: \"0\",\n diskTotalBytes: \"0\",\n runQueue: 0,\n gpus: [],\n };\n}\n\nexport const MetricsSample: MessageFns<MetricsSample> = {\n encode(message: MetricsSample, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.sampledAtMs !== \"0\") {\n writer.uint32(8).int64(message.sampledAtMs);\n }\n if (message.cpuPercent !== 0) {\n writer.uint32(17).double(message.cpuPercent);\n }\n if (message.load1 !== 0) {\n writer.uint32(25).double(message.load1);\n }\n if (message.load5 !== 0) {\n writer.uint32(33).double(message.load5);\n }\n if (message.load15 !== 0) {\n writer.uint32(41).double(message.load15);\n }\n if (message.memUsedBytes !== \"0\") {\n writer.uint32(48).uint64(message.memUsedBytes);\n }\n if (message.memTotalBytes !== \"0\") {\n writer.uint32(56).uint64(message.memTotalBytes);\n }\n if (message.diskUsedBytes !== \"0\") {\n writer.uint32(64).uint64(message.diskUsedBytes);\n }\n if (message.diskTotalBytes !== \"0\") {\n writer.uint32(72).uint64(message.diskTotalBytes);\n }\n if (message.runQueue !== 0) {\n writer.uint32(81).double(message.runQueue);\n }\n for (const v of message.gpus) {\n GpuSample.encode(v!, writer.uint32(90).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): MetricsSample {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMetricsSample();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.sampledAtMs = reader.int64().toString();\n continue;\n }\n case 2: {\n if (tag !== 17) {\n break;\n }\n\n message.cpuPercent = reader.double();\n continue;\n }\n case 3: {\n if (tag !== 25) {\n break;\n }\n\n message.load1 = reader.double();\n continue;\n }\n case 4: {\n if (tag !== 33) {\n break;\n }\n\n message.load5 = reader.double();\n continue;\n }\n case 5: {\n if (tag !== 41) {\n break;\n }\n\n message.load15 = reader.double();\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.memUsedBytes = reader.uint64().toString();\n continue;\n }\n case 7: {\n if (tag !== 56) {\n break;\n }\n\n message.memTotalBytes = reader.uint64().toString();\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.diskUsedBytes = reader.uint64().toString();\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.diskTotalBytes = reader.uint64().toString();\n continue;\n }\n case 10: {\n if (tag !== 81) {\n break;\n }\n\n message.runQueue = reader.double();\n continue;\n }\n case 11: {\n if (tag !== 90) {\n break;\n }\n\n message.gpus.push(GpuSample.decode(reader, reader.uint32()));\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): MetricsSample {\n return {\n sampledAtMs: isSet(object.sampledAtMs)\n ? globalThis.String(object.sampledAtMs)\n : isSet(object.sampled_at_ms)\n ? globalThis.String(object.sampled_at_ms)\n : \"0\",\n cpuPercent: isSet(object.cpuPercent)\n ? globalThis.Number(object.cpuPercent)\n : isSet(object.cpu_percent)\n ? globalThis.Number(object.cpu_percent)\n : 0,\n load1: isSet(object.load1) ? globalThis.Number(object.load1) : 0,\n load5: isSet(object.load5) ? globalThis.Number(object.load5) : 0,\n load15: isSet(object.load15) ? globalThis.Number(object.load15) : 0,\n memUsedBytes: isSet(object.memUsedBytes)\n ? globalThis.String(object.memUsedBytes)\n : isSet(object.mem_used_bytes)\n ? globalThis.String(object.mem_used_bytes)\n : \"0\",\n memTotalBytes: isSet(object.memTotalBytes)\n ? globalThis.String(object.memTotalBytes)\n : isSet(object.mem_total_bytes)\n ? globalThis.String(object.mem_total_bytes)\n : \"0\",\n diskUsedBytes: isSet(object.diskUsedBytes)\n ? globalThis.String(object.diskUsedBytes)\n : isSet(object.disk_used_bytes)\n ? globalThis.String(object.disk_used_bytes)\n : \"0\",\n diskTotalBytes: isSet(object.diskTotalBytes)\n ? globalThis.String(object.diskTotalBytes)\n : isSet(object.disk_total_bytes)\n ? globalThis.String(object.disk_total_bytes)\n : \"0\",\n runQueue: isSet(object.runQueue)\n ? globalThis.Number(object.runQueue)\n : isSet(object.run_queue)\n ? globalThis.Number(object.run_queue)\n : 0,\n gpus: globalThis.Array.isArray(object?.gpus)\n ? object.gpus.map((e: any) => GpuSample.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: MetricsSample): unknown {\n const obj: any = {};\n if (message.sampledAtMs !== \"0\") {\n obj.sampledAtMs = message.sampledAtMs;\n }\n if (message.cpuPercent !== 0) {\n obj.cpuPercent = message.cpuPercent;\n }\n if (message.load1 !== 0) {\n obj.load1 = message.load1;\n }\n if (message.load5 !== 0) {\n obj.load5 = message.load5;\n }\n if (message.load15 !== 0) {\n obj.load15 = message.load15;\n }\n if (message.memUsedBytes !== \"0\") {\n obj.memUsedBytes = message.memUsedBytes;\n }\n if (message.memTotalBytes !== \"0\") {\n obj.memTotalBytes = message.memTotalBytes;\n }\n if (message.diskUsedBytes !== \"0\") {\n obj.diskUsedBytes = message.diskUsedBytes;\n }\n if (message.diskTotalBytes !== \"0\") {\n obj.diskTotalBytes = message.diskTotalBytes;\n }\n if (message.runQueue !== 0) {\n obj.runQueue = message.runQueue;\n }\n if (message.gpus?.length) {\n obj.gpus = message.gpus.map((e) => GpuSample.toJSON(e));\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<MetricsSample>, I>>(base?: I): MetricsSample {\n return MetricsSample.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<MetricsSample>, I>>(object: I): MetricsSample {\n const message = createBaseMetricsSample();\n message.sampledAtMs = object.sampledAtMs ?? \"0\";\n message.cpuPercent = object.cpuPercent ?? 0;\n message.load1 = object.load1 ?? 0;\n message.load5 = object.load5 ?? 0;\n message.load15 = object.load15 ?? 0;\n message.memUsedBytes = object.memUsedBytes ?? \"0\";\n message.memTotalBytes = object.memTotalBytes ?? \"0\";\n message.diskUsedBytes = object.diskUsedBytes ?? \"0\";\n message.diskTotalBytes = object.diskTotalBytes ?? \"0\";\n message.runQueue = object.runQueue ?? 0;\n message.gpus = object.gpus?.map((e) => GpuSample.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseGpuSample(): GpuSample {\n return { name: \"\", utilPercent: 0, memUsedBytes: \"0\", memTotalBytes: \"0\" };\n}\n\nexport const GpuSample: MessageFns<GpuSample> = {\n encode(message: GpuSample, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.name !== \"\") {\n writer.uint32(10).string(message.name);\n }\n if (message.utilPercent !== 0) {\n writer.uint32(17).double(message.utilPercent);\n }\n if (message.memUsedBytes !== \"0\") {\n writer.uint32(24).uint64(message.memUsedBytes);\n }\n if (message.memTotalBytes !== \"0\") {\n writer.uint32(32).uint64(message.memTotalBytes);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): GpuSample {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGpuSample();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.name = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 17) {\n break;\n }\n\n message.utilPercent = reader.double();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.memUsedBytes = reader.uint64().toString();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.memTotalBytes = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): GpuSample {\n return {\n name: isSet(object.name) ? globalThis.String(object.name) : \"\",\n utilPercent: isSet(object.utilPercent)\n ? globalThis.Number(object.utilPercent)\n : isSet(object.util_percent)\n ? globalThis.Number(object.util_percent)\n : 0,\n memUsedBytes: isSet(object.memUsedBytes)\n ? globalThis.String(object.memUsedBytes)\n : isSet(object.mem_used_bytes)\n ? globalThis.String(object.mem_used_bytes)\n : \"0\",\n memTotalBytes: isSet(object.memTotalBytes)\n ? globalThis.String(object.memTotalBytes)\n : isSet(object.mem_total_bytes)\n ? globalThis.String(object.mem_total_bytes)\n : \"0\",\n };\n },\n\n toJSON(message: GpuSample): unknown {\n const obj: any = {};\n if (message.name !== \"\") {\n obj.name = message.name;\n }\n if (message.utilPercent !== 0) {\n obj.utilPercent = message.utilPercent;\n }\n if (message.memUsedBytes !== \"0\") {\n obj.memUsedBytes = message.memUsedBytes;\n }\n if (message.memTotalBytes !== \"0\") {\n obj.memTotalBytes = message.memTotalBytes;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<GpuSample>, I>>(base?: I): GpuSample {\n return GpuSample.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<GpuSample>, I>>(object: I): GpuSample {\n const message = createBaseGpuSample();\n message.name = object.name ?? \"\";\n message.utilPercent = object.utilPercent ?? 0;\n message.memUsedBytes = object.memUsedBytes ?? \"0\";\n message.memTotalBytes = object.memTotalBytes ?? \"0\";\n return message;\n },\n};\n\nfunction createBasePingRequest(): PingRequest {\n return { nonce: \"0\" };\n}\n\nexport const PingRequest: MessageFns<PingRequest> = {\n encode(message: PingRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.nonce !== \"0\") {\n writer.uint32(8).uint64(message.nonce);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PingRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePingRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.nonce = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PingRequest {\n return { nonce: isSet(object.nonce) ? globalThis.String(object.nonce) : \"0\" };\n },\n\n toJSON(message: PingRequest): unknown {\n const obj: any = {};\n if (message.nonce !== \"0\") {\n obj.nonce = message.nonce;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PingRequest>, I>>(base?: I): PingRequest {\n return PingRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PingRequest>, I>>(object: I): PingRequest {\n const message = createBasePingRequest();\n message.nonce = object.nonce ?? \"0\";\n return message;\n },\n};\n\nfunction createBasePingResponse(): PingResponse {\n return { nonce: \"0\", agentMonotonicMs: \"0\" };\n}\n\nexport const PingResponse: MessageFns<PingResponse> = {\n encode(message: PingResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.nonce !== \"0\") {\n writer.uint32(8).uint64(message.nonce);\n }\n if (message.agentMonotonicMs !== \"0\") {\n writer.uint32(16).uint64(message.agentMonotonicMs);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PingResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePingResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.nonce = reader.uint64().toString();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.agentMonotonicMs = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PingResponse {\n return {\n nonce: isSet(object.nonce) ? globalThis.String(object.nonce) : \"0\",\n agentMonotonicMs: isSet(object.agentMonotonicMs)\n ? globalThis.String(object.agentMonotonicMs)\n : isSet(object.agent_monotonic_ms)\n ? globalThis.String(object.agent_monotonic_ms)\n : \"0\",\n };\n },\n\n toJSON(message: PingResponse): unknown {\n const obj: any = {};\n if (message.nonce !== \"0\") {\n obj.nonce = message.nonce;\n }\n if (message.agentMonotonicMs !== \"0\") {\n obj.agentMonotonicMs = message.agentMonotonicMs;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PingResponse>, I>>(base?: I): PingResponse {\n return PingResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PingResponse>, I>>(object: I): PingResponse {\n const message = createBasePingResponse();\n message.nonce = object.nonce ?? \"0\";\n message.agentMonotonicMs = object.agentMonotonicMs ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseGoingOffline(): GoingOffline {\n return { reason: 0, message: \"\" };\n}\n\nexport const GoingOffline: MessageFns<GoingOffline> = {\n encode(message: GoingOffline, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.reason !== 0) {\n writer.uint32(8).int32(message.reason);\n }\n if (message.message !== \"\") {\n writer.uint32(18).string(message.message);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): GoingOffline {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseGoingOffline();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.reason = reader.int32() as any;\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.message = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): GoingOffline {\n return {\n reason: isSet(object.reason) ? goingOfflineReasonFromJSON(object.reason) : 0,\n message: isSet(object.message) ? globalThis.String(object.message) : \"\",\n };\n },\n\n toJSON(message: GoingOffline): unknown {\n const obj: any = {};\n if (message.reason !== 0) {\n obj.reason = goingOfflineReasonToJSON(message.reason);\n }\n if (message.message !== \"\") {\n obj.message = message.message;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<GoingOffline>, I>>(base?: I): GoingOffline {\n return GoingOffline.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<GoingOffline>, I>>(object: I): GoingOffline {\n const message = createBaseGoingOffline();\n message.reason = object.reason ?? 0;\n message.message = object.message ?? \"\";\n return message;\n },\n};\n\nfunction createBaseResumeRequest(): ResumeRequest {\n return { agentId: \"\", resumeToken: \"\", lastKnownEpoch: 0 };\n}\n\nexport const ResumeRequest: MessageFns<ResumeRequest> = {\n encode(message: ResumeRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.agentId !== \"\") {\n writer.uint32(10).string(message.agentId);\n }\n if (message.resumeToken !== \"\") {\n writer.uint32(18).string(message.resumeToken);\n }\n if (message.lastKnownEpoch !== 0) {\n writer.uint32(24).uint32(message.lastKnownEpoch);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): ResumeRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResumeRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.agentId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.resumeToken = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.lastKnownEpoch = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): ResumeRequest {\n return {\n agentId: isSet(object.agentId)\n ? globalThis.String(object.agentId)\n : isSet(object.agent_id)\n ? globalThis.String(object.agent_id)\n : \"\",\n resumeToken: isSet(object.resumeToken)\n ? globalThis.String(object.resumeToken)\n : isSet(object.resume_token)\n ? globalThis.String(object.resume_token)\n : \"\",\n lastKnownEpoch: isSet(object.lastKnownEpoch)\n ? globalThis.Number(object.lastKnownEpoch)\n : isSet(object.last_known_epoch)\n ? globalThis.Number(object.last_known_epoch)\n : 0,\n };\n },\n\n toJSON(message: ResumeRequest): unknown {\n const obj: any = {};\n if (message.agentId !== \"\") {\n obj.agentId = message.agentId;\n }\n if (message.resumeToken !== \"\") {\n obj.resumeToken = message.resumeToken;\n }\n if (message.lastKnownEpoch !== 0) {\n obj.lastKnownEpoch = Math.round(message.lastKnownEpoch);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<ResumeRequest>, I>>(base?: I): ResumeRequest {\n return ResumeRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<ResumeRequest>, I>>(object: I): ResumeRequest {\n const message = createBaseResumeRequest();\n message.agentId = object.agentId ?? \"\";\n message.resumeToken = object.resumeToken ?? \"\";\n message.lastKnownEpoch = object.lastKnownEpoch ?? 0;\n return message;\n },\n};\n\nfunction createBaseResumeResponse(): ResumeResponse {\n return { accepted: false, epoch: 0, resumeToken: \"\" };\n}\n\nexport const ResumeResponse: MessageFns<ResumeResponse> = {\n encode(message: ResumeResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.accepted !== false) {\n writer.uint32(8).bool(message.accepted);\n }\n if (message.epoch !== 0) {\n writer.uint32(16).uint32(message.epoch);\n }\n if (message.resumeToken !== \"\") {\n writer.uint32(26).string(message.resumeToken);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): ResumeResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseResumeResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.accepted = reader.bool();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.epoch = reader.uint32();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.resumeToken = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): ResumeResponse {\n return {\n accepted: isSet(object.accepted) ? globalThis.Boolean(object.accepted) : false,\n epoch: isSet(object.epoch) ? globalThis.Number(object.epoch) : 0,\n resumeToken: isSet(object.resumeToken)\n ? globalThis.String(object.resumeToken)\n : isSet(object.resume_token)\n ? globalThis.String(object.resume_token)\n : \"\",\n };\n },\n\n toJSON(message: ResumeResponse): unknown {\n const obj: any = {};\n if (message.accepted !== false) {\n obj.accepted = message.accepted;\n }\n if (message.epoch !== 0) {\n obj.epoch = Math.round(message.epoch);\n }\n if (message.resumeToken !== \"\") {\n obj.resumeToken = message.resumeToken;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<ResumeResponse>, I>>(base?: I): ResumeResponse {\n return ResumeResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<ResumeResponse>, I>>(object: I): ResumeResponse {\n const message = createBaseResumeResponse();\n message.accepted = object.accepted ?? false;\n message.epoch = object.epoch ?? 0;\n message.resumeToken = object.resumeToken ?? \"\";\n return message;\n },\n};\n\nfunction createBaseUpdateCheckRequest(): UpdateCheckRequest {\n return { currentVersion: \"\", channel: \"\", os: 0, arch: 0 };\n}\n\nexport const UpdateCheckRequest: MessageFns<UpdateCheckRequest> = {\n encode(message: UpdateCheckRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.currentVersion !== \"\") {\n writer.uint32(10).string(message.currentVersion);\n }\n if (message.channel !== \"\") {\n writer.uint32(18).string(message.channel);\n }\n if (message.os !== 0) {\n writer.uint32(24).int32(message.os);\n }\n if (message.arch !== 0) {\n writer.uint32(32).int32(message.arch);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): UpdateCheckRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseUpdateCheckRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.currentVersion = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.channel = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.os = reader.int32() as any;\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.arch = reader.int32() as any;\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): UpdateCheckRequest {\n return {\n currentVersion: isSet(object.currentVersion)\n ? globalThis.String(object.currentVersion)\n : isSet(object.current_version)\n ? globalThis.String(object.current_version)\n : \"\",\n channel: isSet(object.channel) ? globalThis.String(object.channel) : \"\",\n os: isSet(object.os) ? osFromJSON(object.os) : 0,\n arch: isSet(object.arch) ? archFromJSON(object.arch) : 0,\n };\n },\n\n toJSON(message: UpdateCheckRequest): unknown {\n const obj: any = {};\n if (message.currentVersion !== \"\") {\n obj.currentVersion = message.currentVersion;\n }\n if (message.channel !== \"\") {\n obj.channel = message.channel;\n }\n if (message.os !== 0) {\n obj.os = osToJSON(message.os);\n }\n if (message.arch !== 0) {\n obj.arch = archToJSON(message.arch);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<UpdateCheckRequest>, I>>(base?: I): UpdateCheckRequest {\n return UpdateCheckRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<UpdateCheckRequest>, I>>(object: I): UpdateCheckRequest {\n const message = createBaseUpdateCheckRequest();\n message.currentVersion = object.currentVersion ?? \"\";\n message.channel = object.channel ?? \"\";\n message.os = object.os ?? 0;\n message.arch = object.arch ?? 0;\n return message;\n },\n};\n\nfunction createBaseUpdateCheckResponse(): UpdateCheckResponse {\n return { updateAvailable: false, manifest: undefined };\n}\n\nexport const UpdateCheckResponse: MessageFns<UpdateCheckResponse> = {\n encode(message: UpdateCheckResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.updateAvailable !== false) {\n writer.uint32(8).bool(message.updateAvailable);\n }\n if (message.manifest !== undefined) {\n UpdateManifest.encode(message.manifest, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): UpdateCheckResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseUpdateCheckResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.updateAvailable = reader.bool();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.manifest = UpdateManifest.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): UpdateCheckResponse {\n return {\n updateAvailable: isSet(object.updateAvailable)\n ? globalThis.Boolean(object.updateAvailable)\n : isSet(object.update_available)\n ? globalThis.Boolean(object.update_available)\n : false,\n manifest: isSet(object.manifest) ? UpdateManifest.fromJSON(object.manifest) : undefined,\n };\n },\n\n toJSON(message: UpdateCheckResponse): unknown {\n const obj: any = {};\n if (message.updateAvailable !== false) {\n obj.updateAvailable = message.updateAvailable;\n }\n if (message.manifest !== undefined) {\n obj.manifest = UpdateManifest.toJSON(message.manifest);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<UpdateCheckResponse>, I>>(base?: I): UpdateCheckResponse {\n return UpdateCheckResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<UpdateCheckResponse>, I>>(object: I): UpdateCheckResponse {\n const message = createBaseUpdateCheckResponse();\n message.updateAvailable = object.updateAvailable ?? false;\n message.manifest = (object.manifest !== undefined && object.manifest !== null)\n ? UpdateManifest.fromPartial(object.manifest)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseUpdateManifest(): UpdateManifest {\n return {\n channel: \"\",\n version: \"\",\n minSupported: \"\",\n rolloutPercent: 0,\n cohortSalt: \"\",\n artifacts: [],\n notesUrl: \"\",\n signedAtMs: \"0\",\n force: false,\n };\n}\n\nexport const UpdateManifest: MessageFns<UpdateManifest> = {\n encode(message: UpdateManifest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.channel !== \"\") {\n writer.uint32(10).string(message.channel);\n }\n if (message.version !== \"\") {\n writer.uint32(18).string(message.version);\n }\n if (message.minSupported !== \"\") {\n writer.uint32(26).string(message.minSupported);\n }\n if (message.rolloutPercent !== 0) {\n writer.uint32(32).uint32(message.rolloutPercent);\n }\n if (message.cohortSalt !== \"\") {\n writer.uint32(42).string(message.cohortSalt);\n }\n for (const v of message.artifacts) {\n UpdateArtifact.encode(v!, writer.uint32(50).fork()).join();\n }\n if (message.notesUrl !== \"\") {\n writer.uint32(58).string(message.notesUrl);\n }\n if (message.signedAtMs !== \"0\") {\n writer.uint32(64).int64(message.signedAtMs);\n }\n if (message.force !== false) {\n writer.uint32(72).bool(message.force);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): UpdateManifest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseUpdateManifest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.channel = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.version = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.minSupported = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.rolloutPercent = reader.uint32();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.cohortSalt = reader.string();\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.artifacts.push(UpdateArtifact.decode(reader, reader.uint32()));\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.notesUrl = reader.string();\n continue;\n }\n case 8: {\n if (tag !== 64) {\n break;\n }\n\n message.signedAtMs = reader.int64().toString();\n continue;\n }\n case 9: {\n if (tag !== 72) {\n break;\n }\n\n message.force = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): UpdateManifest {\n return {\n channel: isSet(object.channel) ? globalThis.String(object.channel) : \"\",\n version: isSet(object.version) ? globalThis.String(object.version) : \"\",\n minSupported: isSet(object.minSupported)\n ? globalThis.String(object.minSupported)\n : isSet(object.min_supported)\n ? globalThis.String(object.min_supported)\n : \"\",\n rolloutPercent: isSet(object.rolloutPercent)\n ? globalThis.Number(object.rolloutPercent)\n : isSet(object.rollout_percent)\n ? globalThis.Number(object.rollout_percent)\n : 0,\n cohortSalt: isSet(object.cohortSalt)\n ? globalThis.String(object.cohortSalt)\n : isSet(object.cohort_salt)\n ? globalThis.String(object.cohort_salt)\n : \"\",\n artifacts: globalThis.Array.isArray(object?.artifacts)\n ? object.artifacts.map((e: any) => UpdateArtifact.fromJSON(e))\n : [],\n notesUrl: isSet(object.notesUrl)\n ? globalThis.String(object.notesUrl)\n : isSet(object.notes_url)\n ? globalThis.String(object.notes_url)\n : \"\",\n signedAtMs: isSet(object.signedAtMs)\n ? globalThis.String(object.signedAtMs)\n : isSet(object.signed_at_ms)\n ? globalThis.String(object.signed_at_ms)\n : \"0\",\n force: isSet(object.force) ? globalThis.Boolean(object.force) : false,\n };\n },\n\n toJSON(message: UpdateManifest): unknown {\n const obj: any = {};\n if (message.channel !== \"\") {\n obj.channel = message.channel;\n }\n if (message.version !== \"\") {\n obj.version = message.version;\n }\n if (message.minSupported !== \"\") {\n obj.minSupported = message.minSupported;\n }\n if (message.rolloutPercent !== 0) {\n obj.rolloutPercent = Math.round(message.rolloutPercent);\n }\n if (message.cohortSalt !== \"\") {\n obj.cohortSalt = message.cohortSalt;\n }\n if (message.artifacts?.length) {\n obj.artifacts = message.artifacts.map((e) => UpdateArtifact.toJSON(e));\n }\n if (message.notesUrl !== \"\") {\n obj.notesUrl = message.notesUrl;\n }\n if (message.signedAtMs !== \"0\") {\n obj.signedAtMs = message.signedAtMs;\n }\n if (message.force !== false) {\n obj.force = message.force;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<UpdateManifest>, I>>(base?: I): UpdateManifest {\n return UpdateManifest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<UpdateManifest>, I>>(object: I): UpdateManifest {\n const message = createBaseUpdateManifest();\n message.channel = object.channel ?? \"\";\n message.version = object.version ?? \"\";\n message.minSupported = object.minSupported ?? \"\";\n message.rolloutPercent = object.rolloutPercent ?? 0;\n message.cohortSalt = object.cohortSalt ?? \"\";\n message.artifacts = object.artifacts?.map((e) => UpdateArtifact.fromPartial(e)) || [];\n message.notesUrl = object.notesUrl ?? \"\";\n message.signedAtMs = object.signedAtMs ?? \"0\";\n message.force = object.force ?? false;\n return message;\n },\n};\n\nfunction createBaseUpdateArtifact(): UpdateArtifact {\n return { target: \"\", url: \"\", size: \"0\", sha256: \"\", minisigUrl: \"\" };\n}\n\nexport const UpdateArtifact: MessageFns<UpdateArtifact> = {\n encode(message: UpdateArtifact, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.target !== \"\") {\n writer.uint32(10).string(message.target);\n }\n if (message.url !== \"\") {\n writer.uint32(18).string(message.url);\n }\n if (message.size !== \"0\") {\n writer.uint32(24).uint64(message.size);\n }\n if (message.sha256 !== \"\") {\n writer.uint32(34).string(message.sha256);\n }\n if (message.minisigUrl !== \"\") {\n writer.uint32(42).string(message.minisigUrl);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): UpdateArtifact {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseUpdateArtifact();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.target = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.url = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.size = reader.uint64().toString();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.sha256 = reader.string();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n message.minisigUrl = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): UpdateArtifact {\n return {\n target: isSet(object.target) ? globalThis.String(object.target) : \"\",\n url: isSet(object.url) ? globalThis.String(object.url) : \"\",\n size: isSet(object.size) ? globalThis.String(object.size) : \"0\",\n sha256: isSet(object.sha256) ? globalThis.String(object.sha256) : \"\",\n minisigUrl: isSet(object.minisigUrl)\n ? globalThis.String(object.minisigUrl)\n : isSet(object.minisig_url)\n ? globalThis.String(object.minisig_url)\n : \"\",\n };\n },\n\n toJSON(message: UpdateArtifact): unknown {\n const obj: any = {};\n if (message.target !== \"\") {\n obj.target = message.target;\n }\n if (message.url !== \"\") {\n obj.url = message.url;\n }\n if (message.size !== \"0\") {\n obj.size = message.size;\n }\n if (message.sha256 !== \"\") {\n obj.sha256 = message.sha256;\n }\n if (message.minisigUrl !== \"\") {\n obj.minisigUrl = message.minisigUrl;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<UpdateArtifact>, I>>(base?: I): UpdateArtifact {\n return UpdateArtifact.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<UpdateArtifact>, I>>(object: I): UpdateArtifact {\n const message = createBaseUpdateArtifact();\n message.target = object.target ?? \"\";\n message.url = object.url ?? \"\";\n message.size = object.size ?? \"0\";\n message.sha256 = object.sha256 ?? \"\";\n message.minisigUrl = object.minisigUrl ?? \"\";\n return message;\n },\n};\n\nfunction createBaseUpdateMayProceedRequest(): UpdateMayProceedRequest {\n return { agentId: \"\", targetVersion: \"\" };\n}\n\nexport const UpdateMayProceedRequest: MessageFns<UpdateMayProceedRequest> = {\n encode(message: UpdateMayProceedRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.agentId !== \"\") {\n writer.uint32(10).string(message.agentId);\n }\n if (message.targetVersion !== \"\") {\n writer.uint32(18).string(message.targetVersion);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): UpdateMayProceedRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseUpdateMayProceedRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.agentId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.targetVersion = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): UpdateMayProceedRequest {\n return {\n agentId: isSet(object.agentId)\n ? globalThis.String(object.agentId)\n : isSet(object.agent_id)\n ? globalThis.String(object.agent_id)\n : \"\",\n targetVersion: isSet(object.targetVersion)\n ? globalThis.String(object.targetVersion)\n : isSet(object.target_version)\n ? globalThis.String(object.target_version)\n : \"\",\n };\n },\n\n toJSON(message: UpdateMayProceedRequest): unknown {\n const obj: any = {};\n if (message.agentId !== \"\") {\n obj.agentId = message.agentId;\n }\n if (message.targetVersion !== \"\") {\n obj.targetVersion = message.targetVersion;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<UpdateMayProceedRequest>, I>>(base?: I): UpdateMayProceedRequest {\n return UpdateMayProceedRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<UpdateMayProceedRequest>, I>>(object: I): UpdateMayProceedRequest {\n const message = createBaseUpdateMayProceedRequest();\n message.agentId = object.agentId ?? \"\";\n message.targetVersion = object.targetVersion ?? \"\";\n return message;\n },\n};\n\nfunction createBaseUpdateMayProceedResponse(): UpdateMayProceedResponse {\n return { mayProceed: false, activeSessions: 0 };\n}\n\nexport const UpdateMayProceedResponse: MessageFns<UpdateMayProceedResponse> = {\n encode(message: UpdateMayProceedResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.mayProceed !== false) {\n writer.uint32(8).bool(message.mayProceed);\n }\n if (message.activeSessions !== 0) {\n writer.uint32(16).uint32(message.activeSessions);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): UpdateMayProceedResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseUpdateMayProceedResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.mayProceed = reader.bool();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.activeSessions = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): UpdateMayProceedResponse {\n return {\n mayProceed: isSet(object.mayProceed)\n ? globalThis.Boolean(object.mayProceed)\n : isSet(object.may_proceed)\n ? globalThis.Boolean(object.may_proceed)\n : false,\n activeSessions: isSet(object.activeSessions)\n ? globalThis.Number(object.activeSessions)\n : isSet(object.active_sessions)\n ? globalThis.Number(object.active_sessions)\n : 0,\n };\n },\n\n toJSON(message: UpdateMayProceedResponse): unknown {\n const obj: any = {};\n if (message.mayProceed !== false) {\n obj.mayProceed = message.mayProceed;\n }\n if (message.activeSessions !== 0) {\n obj.activeSessions = Math.round(message.activeSessions);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<UpdateMayProceedResponse>, I>>(base?: I): UpdateMayProceedResponse {\n return UpdateMayProceedResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<UpdateMayProceedResponse>, I>>(object: I): UpdateMayProceedResponse {\n const message = createBaseUpdateMayProceedResponse();\n message.mayProceed = object.mayProceed ?? false;\n message.activeSessions = object.activeSessions ?? 0;\n return message;\n },\n};\n\nfunction createBaseOpExit(): OpExit {\n return {\n exitCode: 0,\n timedOut: false,\n cancelled: false,\n durationMs: \"0\",\n digests: {},\n totals: {},\n failureCode: \"\",\n failureDetail: {},\n };\n}\n\nexport const OpExit: MessageFns<OpExit> = {\n encode(message: OpExit, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.exitCode !== 0) {\n writer.uint32(8).int32(message.exitCode);\n }\n if (message.timedOut !== false) {\n writer.uint32(16).bool(message.timedOut);\n }\n if (message.cancelled !== false) {\n writer.uint32(24).bool(message.cancelled);\n }\n if (message.durationMs !== \"0\") {\n writer.uint32(32).uint64(message.durationMs);\n }\n globalThis.Object.entries(message.digests).forEach(([key, value]: [string, string]) => {\n OpExit_DigestsEntry.encode({ key: key as any, value }, writer.uint32(42).fork()).join();\n });\n globalThis.Object.entries(message.totals).forEach(([key, value]: [string, string]) => {\n OpExit_TotalsEntry.encode({ key: key as any, value }, writer.uint32(50).fork()).join();\n });\n if (message.failureCode !== \"\") {\n writer.uint32(58).string(message.failureCode);\n }\n globalThis.Object.entries(message.failureDetail).forEach(([key, value]: [string, string]) => {\n OpExit_FailureDetailEntry.encode({ key: key as any, value }, writer.uint32(66).fork()).join();\n });\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpExit {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpExit();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.exitCode = reader.int32();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.timedOut = reader.bool();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.cancelled = reader.bool();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.durationMs = reader.uint64().toString();\n continue;\n }\n case 5: {\n if (tag !== 42) {\n break;\n }\n\n const entry5 = OpExit_DigestsEntry.decode(reader, reader.uint32());\n if (entry5.value !== undefined) {\n message.digests[entry5.key] = entry5.value;\n }\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n const entry6 = OpExit_TotalsEntry.decode(reader, reader.uint32());\n if (entry6.value !== undefined) {\n message.totals[entry6.key] = entry6.value;\n }\n continue;\n }\n case 7: {\n if (tag !== 58) {\n break;\n }\n\n message.failureCode = reader.string();\n continue;\n }\n case 8: {\n if (tag !== 66) {\n break;\n }\n\n const entry8 = OpExit_FailureDetailEntry.decode(reader, reader.uint32());\n if (entry8.value !== undefined) {\n message.failureDetail[entry8.key] = entry8.value;\n }\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpExit {\n return {\n exitCode: isSet(object.exitCode)\n ? globalThis.Number(object.exitCode)\n : isSet(object.exit_code)\n ? globalThis.Number(object.exit_code)\n : 0,\n timedOut: isSet(object.timedOut)\n ? globalThis.Boolean(object.timedOut)\n : isSet(object.timed_out)\n ? globalThis.Boolean(object.timed_out)\n : false,\n cancelled: isSet(object.cancelled) ? globalThis.Boolean(object.cancelled) : false,\n durationMs: isSet(object.durationMs)\n ? globalThis.String(object.durationMs)\n : isSet(object.duration_ms)\n ? globalThis.String(object.duration_ms)\n : \"0\",\n digests: isObject(object.digests)\n ? (globalThis.Object.entries(object.digests) as [string, any][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, any]) => {\n acc[key] = globalThis.String(value);\n return acc;\n },\n {},\n )\n : {},\n totals: isObject(object.totals)\n ? (globalThis.Object.entries(object.totals) as [string, any][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, any]) => {\n acc[key] = globalThis.String(value);\n return acc;\n },\n {},\n )\n : {},\n failureCode: isSet(object.failureCode)\n ? globalThis.String(object.failureCode)\n : isSet(object.failure_code)\n ? globalThis.String(object.failure_code)\n : \"\",\n failureDetail: isObject(object.failureDetail)\n ? (globalThis.Object.entries(object.failureDetail) as [string, any][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, any]) => {\n acc[key] = globalThis.String(value);\n return acc;\n },\n {},\n )\n : isObject(object.failure_detail)\n ? (globalThis.Object.entries(object.failure_detail) as [string, any][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, any]) => {\n acc[key] = globalThis.String(value);\n return acc;\n },\n {},\n )\n : {},\n };\n },\n\n toJSON(message: OpExit): unknown {\n const obj: any = {};\n if (message.exitCode !== 0) {\n obj.exitCode = Math.round(message.exitCode);\n }\n if (message.timedOut !== false) {\n obj.timedOut = message.timedOut;\n }\n if (message.cancelled !== false) {\n obj.cancelled = message.cancelled;\n }\n if (message.durationMs !== \"0\") {\n obj.durationMs = message.durationMs;\n }\n if (message.digests) {\n const entries = globalThis.Object.entries(message.digests) as [string, string][];\n if (entries.length > 0) {\n obj.digests = {};\n entries.forEach(([k, v]) => {\n obj.digests[k] = v;\n });\n }\n }\n if (message.totals) {\n const entries = globalThis.Object.entries(message.totals) as [string, string][];\n if (entries.length > 0) {\n obj.totals = {};\n entries.forEach(([k, v]) => {\n obj.totals[k] = v;\n });\n }\n }\n if (message.failureCode !== \"\") {\n obj.failureCode = message.failureCode;\n }\n if (message.failureDetail) {\n const entries = globalThis.Object.entries(message.failureDetail) as [string, string][];\n if (entries.length > 0) {\n obj.failureDetail = {};\n entries.forEach(([k, v]) => {\n obj.failureDetail[k] = v;\n });\n }\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpExit>, I>>(base?: I): OpExit {\n return OpExit.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpExit>, I>>(object: I): OpExit {\n const message = createBaseOpExit();\n message.exitCode = object.exitCode ?? 0;\n message.timedOut = object.timedOut ?? false;\n message.cancelled = object.cancelled ?? false;\n message.durationMs = object.durationMs ?? \"0\";\n message.digests = (globalThis.Object.entries(object.digests ?? {}) as [string, string][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, string]) => {\n if (value !== undefined) {\n acc[key] = globalThis.String(value);\n }\n return acc;\n },\n {},\n );\n message.totals = (globalThis.Object.entries(object.totals ?? {}) as [string, string][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, string]) => {\n if (value !== undefined) {\n acc[key] = globalThis.String(value);\n }\n return acc;\n },\n {},\n );\n message.failureCode = object.failureCode ?? \"\";\n message.failureDetail = (globalThis.Object.entries(object.failureDetail ?? {}) as [string, string][]).reduce(\n (acc: { [key: string]: string }, [key, value]: [string, string]) => {\n if (value !== undefined) {\n acc[key] = globalThis.String(value);\n }\n return acc;\n },\n {},\n );\n return message;\n },\n};\n\nfunction createBaseOpExit_DigestsEntry(): OpExit_DigestsEntry {\n return { key: \"\", value: \"\" };\n}\n\nexport const OpExit_DigestsEntry: MessageFns<OpExit_DigestsEntry> = {\n encode(message: OpExit_DigestsEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpExit_DigestsEntry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpExit_DigestsEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.value = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpExit_DigestsEntry {\n return {\n key: isSet(object.key) ? globalThis.String(object.key) : \"\",\n value: isSet(object.value) ? globalThis.String(object.value) : \"\",\n };\n },\n\n toJSON(message: OpExit_DigestsEntry): unknown {\n const obj: any = {};\n if (message.key !== \"\") {\n obj.key = message.key;\n }\n if (message.value !== \"\") {\n obj.value = message.value;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpExit_DigestsEntry>, I>>(base?: I): OpExit_DigestsEntry {\n return OpExit_DigestsEntry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpExit_DigestsEntry>, I>>(object: I): OpExit_DigestsEntry {\n const message = createBaseOpExit_DigestsEntry();\n message.key = object.key ?? \"\";\n message.value = object.value ?? \"\";\n return message;\n },\n};\n\nfunction createBaseOpExit_TotalsEntry(): OpExit_TotalsEntry {\n return { key: \"\", value: \"0\" };\n}\n\nexport const OpExit_TotalsEntry: MessageFns<OpExit_TotalsEntry> = {\n encode(message: OpExit_TotalsEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"0\") {\n writer.uint32(16).uint64(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpExit_TotalsEntry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpExit_TotalsEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.value = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpExit_TotalsEntry {\n return {\n key: isSet(object.key) ? globalThis.String(object.key) : \"\",\n value: isSet(object.value) ? globalThis.String(object.value) : \"0\",\n };\n },\n\n toJSON(message: OpExit_TotalsEntry): unknown {\n const obj: any = {};\n if (message.key !== \"\") {\n obj.key = message.key;\n }\n if (message.value !== \"0\") {\n obj.value = message.value;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpExit_TotalsEntry>, I>>(base?: I): OpExit_TotalsEntry {\n return OpExit_TotalsEntry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpExit_TotalsEntry>, I>>(object: I): OpExit_TotalsEntry {\n const message = createBaseOpExit_TotalsEntry();\n message.key = object.key ?? \"\";\n message.value = object.value ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseOpExit_FailureDetailEntry(): OpExit_FailureDetailEntry {\n return { key: \"\", value: \"\" };\n}\n\nexport const OpExit_FailureDetailEntry: MessageFns<OpExit_FailureDetailEntry> = {\n encode(message: OpExit_FailureDetailEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpExit_FailureDetailEntry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpExit_FailureDetailEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.value = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpExit_FailureDetailEntry {\n return {\n key: isSet(object.key) ? globalThis.String(object.key) : \"\",\n value: isSet(object.value) ? globalThis.String(object.value) : \"\",\n };\n },\n\n toJSON(message: OpExit_FailureDetailEntry): unknown {\n const obj: any = {};\n if (message.key !== \"\") {\n obj.key = message.key;\n }\n if (message.value !== \"\") {\n obj.value = message.value;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpExit_FailureDetailEntry>, I>>(base?: I): OpExit_FailureDetailEntry {\n return OpExit_FailureDetailEntry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpExit_FailureDetailEntry>, I>>(object: I): OpExit_FailureDetailEntry {\n const message = createBaseOpExit_FailureDetailEntry();\n message.key = object.key ?? \"\";\n message.value = object.value ?? \"\";\n return message;\n },\n};\n\nfunction createBaseFsWriteBegin(): FsWriteBegin {\n return { path: \"\", createParents: false, mode: 0, expectedBaseDigest: \"\" };\n}\n\nexport const FsWriteBegin: MessageFns<FsWriteBegin> = {\n encode(message: FsWriteBegin, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.path !== \"\") {\n writer.uint32(10).string(message.path);\n }\n if (message.createParents !== false) {\n writer.uint32(16).bool(message.createParents);\n }\n if (message.mode !== 0) {\n writer.uint32(24).uint32(message.mode);\n }\n if (message.expectedBaseDigest !== \"\") {\n writer.uint32(34).string(message.expectedBaseDigest);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): FsWriteBegin {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFsWriteBegin();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.path = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.createParents = reader.bool();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.mode = reader.uint32();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.expectedBaseDigest = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): FsWriteBegin {\n return {\n path: isSet(object.path) ? globalThis.String(object.path) : \"\",\n createParents: isSet(object.createParents)\n ? globalThis.Boolean(object.createParents)\n : isSet(object.create_parents)\n ? globalThis.Boolean(object.create_parents)\n : false,\n mode: isSet(object.mode) ? globalThis.Number(object.mode) : 0,\n expectedBaseDigest: isSet(object.expectedBaseDigest)\n ? globalThis.String(object.expectedBaseDigest)\n : isSet(object.expected_base_digest)\n ? globalThis.String(object.expected_base_digest)\n : \"\",\n };\n },\n\n toJSON(message: FsWriteBegin): unknown {\n const obj: any = {};\n if (message.path !== \"\") {\n obj.path = message.path;\n }\n if (message.createParents !== false) {\n obj.createParents = message.createParents;\n }\n if (message.mode !== 0) {\n obj.mode = Math.round(message.mode);\n }\n if (message.expectedBaseDigest !== \"\") {\n obj.expectedBaseDigest = message.expectedBaseDigest;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<FsWriteBegin>, I>>(base?: I): FsWriteBegin {\n return FsWriteBegin.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<FsWriteBegin>, I>>(object: I): FsWriteBegin {\n const message = createBaseFsWriteBegin();\n message.path = object.path ?? \"\";\n message.createParents = object.createParents ?? false;\n message.mode = object.mode ?? 0;\n message.expectedBaseDigest = object.expectedBaseDigest ?? \"\";\n return message;\n },\n};\n\nfunction createBaseOpStart(): OpStart {\n return { op: undefined, windowBytes: \"0\", deadlineMs: \"0\", originId: \"\" };\n}\n\nexport const OpStart: MessageFns<OpStart> = {\n encode(message: OpStart, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n switch (message.op?.$case) {\n case \"exec\":\n ExecRequest.encode(message.op.exec, writer.uint32(10).fork()).join();\n break;\n case \"fsRead\":\n FsReadRequest.encode(message.op.fsRead, writer.uint32(18).fork()).join();\n break;\n case \"fsWrite\":\n FsWriteBegin.encode(message.op.fsWrite, writer.uint32(26).fork()).join();\n break;\n }\n if (message.windowBytes !== \"0\") {\n writer.uint32(80).uint64(message.windowBytes);\n }\n if (message.deadlineMs !== \"0\") {\n writer.uint32(88).int64(message.deadlineMs);\n }\n if (message.originId !== \"\") {\n writer.uint32(98).string(message.originId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpStart {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpStart();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.op = { $case: \"exec\", exec: ExecRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.op = { $case: \"fsRead\", fsRead: FsReadRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.op = { $case: \"fsWrite\", fsWrite: FsWriteBegin.decode(reader, reader.uint32()) };\n continue;\n }\n case 10: {\n if (tag !== 80) {\n break;\n }\n\n message.windowBytes = reader.uint64().toString();\n continue;\n }\n case 11: {\n if (tag !== 88) {\n break;\n }\n\n message.deadlineMs = reader.int64().toString();\n continue;\n }\n case 12: {\n if (tag !== 98) {\n break;\n }\n\n message.originId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpStart {\n return {\n op: isSet(object.exec)\n ? { $case: \"exec\", exec: ExecRequest.fromJSON(object.exec) }\n : isSet(object.fsRead)\n ? { $case: \"fsRead\", fsRead: FsReadRequest.fromJSON(object.fsRead) }\n : isSet(object.fs_read)\n ? { $case: \"fsRead\", fsRead: FsReadRequest.fromJSON(object.fs_read) }\n : isSet(object.fsWrite)\n ? { $case: \"fsWrite\", fsWrite: FsWriteBegin.fromJSON(object.fsWrite) }\n : isSet(object.fs_write)\n ? { $case: \"fsWrite\", fsWrite: FsWriteBegin.fromJSON(object.fs_write) }\n : undefined,\n windowBytes: isSet(object.windowBytes)\n ? globalThis.String(object.windowBytes)\n : isSet(object.window_bytes)\n ? globalThis.String(object.window_bytes)\n : \"0\",\n deadlineMs: isSet(object.deadlineMs)\n ? globalThis.String(object.deadlineMs)\n : isSet(object.deadline_ms)\n ? globalThis.String(object.deadline_ms)\n : \"0\",\n originId: isSet(object.originId)\n ? globalThis.String(object.originId)\n : isSet(object.origin_id)\n ? globalThis.String(object.origin_id)\n : \"\",\n };\n },\n\n toJSON(message: OpStart): unknown {\n const obj: any = {};\n if (message.op?.$case === \"exec\") {\n obj.exec = ExecRequest.toJSON(message.op.exec);\n } else if (message.op?.$case === \"fsRead\") {\n obj.fsRead = FsReadRequest.toJSON(message.op.fsRead);\n } else if (message.op?.$case === \"fsWrite\") {\n obj.fsWrite = FsWriteBegin.toJSON(message.op.fsWrite);\n }\n if (message.windowBytes !== \"0\") {\n obj.windowBytes = message.windowBytes;\n }\n if (message.deadlineMs !== \"0\") {\n obj.deadlineMs = message.deadlineMs;\n }\n if (message.originId !== \"\") {\n obj.originId = message.originId;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpStart>, I>>(base?: I): OpStart {\n return OpStart.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpStart>, I>>(object: I): OpStart {\n const message = createBaseOpStart();\n switch (object.op?.$case) {\n case \"exec\": {\n if (object.op?.exec !== undefined && object.op?.exec !== null) {\n message.op = { $case: \"exec\", exec: ExecRequest.fromPartial(object.op.exec) };\n }\n break;\n }\n case \"fsRead\": {\n if (object.op?.fsRead !== undefined && object.op?.fsRead !== null) {\n message.op = { $case: \"fsRead\", fsRead: FsReadRequest.fromPartial(object.op.fsRead) };\n }\n break;\n }\n case \"fsWrite\": {\n if (object.op?.fsWrite !== undefined && object.op?.fsWrite !== null) {\n message.op = { $case: \"fsWrite\", fsWrite: FsWriteBegin.fromPartial(object.op.fsWrite) };\n }\n break;\n }\n }\n message.windowBytes = object.windowBytes ?? \"0\";\n message.deadlineMs = object.deadlineMs ?? \"0\";\n message.originId = object.originId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseOpStarted(): OpStarted {\n return { accepted: false, status: undefined };\n}\n\nexport const OpStarted: MessageFns<OpStarted> = {\n encode(message: OpStarted, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.accepted !== false) {\n writer.uint32(8).bool(message.accepted);\n }\n if (message.status !== undefined) {\n OpStatus.encode(message.status, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpStarted {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpStarted();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.accepted = reader.bool();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.status = OpStatus.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpStarted {\n return {\n accepted: isSet(object.accepted) ? globalThis.Boolean(object.accepted) : false,\n status: isSet(object.status) ? OpStatus.fromJSON(object.status) : undefined,\n };\n },\n\n toJSON(message: OpStarted): unknown {\n const obj: any = {};\n if (message.accepted !== false) {\n obj.accepted = message.accepted;\n }\n if (message.status !== undefined) {\n obj.status = OpStatus.toJSON(message.status);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpStarted>, I>>(base?: I): OpStarted {\n return OpStarted.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpStarted>, I>>(object: I): OpStarted {\n const message = createBaseOpStarted();\n message.accepted = object.accepted ?? false;\n message.status = (object.status !== undefined && object.status !== null)\n ? OpStatus.fromPartial(object.status)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseOpCancel(): OpCancel {\n return { opId: \"\" };\n}\n\nexport const OpCancel: MessageFns<OpCancel> = {\n encode(message: OpCancel, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.opId !== \"\") {\n writer.uint32(10).string(message.opId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpCancel {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpCancel();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.opId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpCancel {\n return {\n opId: isSet(object.opId)\n ? globalThis.String(object.opId)\n : isSet(object.op_id)\n ? globalThis.String(object.op_id)\n : \"\",\n };\n },\n\n toJSON(message: OpCancel): unknown {\n const obj: any = {};\n if (message.opId !== \"\") {\n obj.opId = message.opId;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpCancel>, I>>(base?: I): OpCancel {\n return OpCancel.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpCancel>, I>>(object: I): OpCancel {\n const message = createBaseOpCancel();\n message.opId = object.opId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseOpQuery(): OpQuery {\n return { opId: \"\" };\n}\n\nexport const OpQuery: MessageFns<OpQuery> = {\n encode(message: OpQuery, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.opId !== \"\") {\n writer.uint32(10).string(message.opId);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpQuery {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpQuery();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.opId = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpQuery {\n return {\n opId: isSet(object.opId)\n ? globalThis.String(object.opId)\n : isSet(object.op_id)\n ? globalThis.String(object.op_id)\n : \"\",\n };\n },\n\n toJSON(message: OpQuery): unknown {\n const obj: any = {};\n if (message.opId !== \"\") {\n obj.opId = message.opId;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpQuery>, I>>(base?: I): OpQuery {\n return OpQuery.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpQuery>, I>>(object: I): OpQuery {\n const message = createBaseOpQuery();\n message.opId = object.opId ?? \"\";\n return message;\n },\n};\n\nfunction createBaseOpAttach(): OpAttach {\n return { opId: \"\", fromSeq: \"0\", attachGeneration: \"0\", windowBytes: \"0\" };\n}\n\nexport const OpAttach: MessageFns<OpAttach> = {\n encode(message: OpAttach, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.opId !== \"\") {\n writer.uint32(10).string(message.opId);\n }\n if (message.fromSeq !== \"0\") {\n writer.uint32(16).uint64(message.fromSeq);\n }\n if (message.attachGeneration !== \"0\") {\n writer.uint32(24).uint64(message.attachGeneration);\n }\n if (message.windowBytes !== \"0\") {\n writer.uint32(32).uint64(message.windowBytes);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpAttach {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpAttach();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.opId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.fromSeq = reader.uint64().toString();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.attachGeneration = reader.uint64().toString();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.windowBytes = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpAttach {\n return {\n opId: isSet(object.opId)\n ? globalThis.String(object.opId)\n : isSet(object.op_id)\n ? globalThis.String(object.op_id)\n : \"\",\n fromSeq: isSet(object.fromSeq)\n ? globalThis.String(object.fromSeq)\n : isSet(object.from_seq)\n ? globalThis.String(object.from_seq)\n : \"0\",\n attachGeneration: isSet(object.attachGeneration)\n ? globalThis.String(object.attachGeneration)\n : isSet(object.attach_generation)\n ? globalThis.String(object.attach_generation)\n : \"0\",\n windowBytes: isSet(object.windowBytes)\n ? globalThis.String(object.windowBytes)\n : isSet(object.window_bytes)\n ? globalThis.String(object.window_bytes)\n : \"0\",\n };\n },\n\n toJSON(message: OpAttach): unknown {\n const obj: any = {};\n if (message.opId !== \"\") {\n obj.opId = message.opId;\n }\n if (message.fromSeq !== \"0\") {\n obj.fromSeq = message.fromSeq;\n }\n if (message.attachGeneration !== \"0\") {\n obj.attachGeneration = message.attachGeneration;\n }\n if (message.windowBytes !== \"0\") {\n obj.windowBytes = message.windowBytes;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpAttach>, I>>(base?: I): OpAttach {\n return OpAttach.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpAttach>, I>>(object: I): OpAttach {\n const message = createBaseOpAttach();\n message.opId = object.opId ?? \"\";\n message.fromSeq = object.fromSeq ?? \"0\";\n message.attachGeneration = object.attachGeneration ?? \"0\";\n message.windowBytes = object.windowBytes ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseOpStatus(): OpStatus {\n return { opId: \"\", state: 0, nextSeq: \"0\", exit: undefined, lostReason: 0 };\n}\n\nexport const OpStatus: MessageFns<OpStatus> = {\n encode(message: OpStatus, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.opId !== \"\") {\n writer.uint32(10).string(message.opId);\n }\n if (message.state !== 0) {\n writer.uint32(16).int32(message.state);\n }\n if (message.nextSeq !== \"0\") {\n writer.uint32(24).uint64(message.nextSeq);\n }\n if (message.exit !== undefined) {\n OpExit.encode(message.exit, writer.uint32(34).fork()).join();\n }\n if (message.lostReason !== 0) {\n writer.uint32(40).int32(message.lostReason);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpStatus {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpStatus();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.opId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.state = reader.int32() as any;\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.nextSeq = reader.uint64().toString();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.exit = OpExit.decode(reader, reader.uint32());\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.lostReason = reader.int32() as any;\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpStatus {\n return {\n opId: isSet(object.opId)\n ? globalThis.String(object.opId)\n : isSet(object.op_id)\n ? globalThis.String(object.op_id)\n : \"\",\n state: isSet(object.state) ? opStateFromJSON(object.state) : 0,\n nextSeq: isSet(object.nextSeq)\n ? globalThis.String(object.nextSeq)\n : isSet(object.next_seq)\n ? globalThis.String(object.next_seq)\n : \"0\",\n exit: isSet(object.exit) ? OpExit.fromJSON(object.exit) : undefined,\n lostReason: isSet(object.lostReason)\n ? opLostReasonFromJSON(object.lostReason)\n : isSet(object.lost_reason)\n ? opLostReasonFromJSON(object.lost_reason)\n : 0,\n };\n },\n\n toJSON(message: OpStatus): unknown {\n const obj: any = {};\n if (message.opId !== \"\") {\n obj.opId = message.opId;\n }\n if (message.state !== 0) {\n obj.state = opStateToJSON(message.state);\n }\n if (message.nextSeq !== \"0\") {\n obj.nextSeq = message.nextSeq;\n }\n if (message.exit !== undefined) {\n obj.exit = OpExit.toJSON(message.exit);\n }\n if (message.lostReason !== 0) {\n obj.lostReason = opLostReasonToJSON(message.lostReason);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpStatus>, I>>(base?: I): OpStatus {\n return OpStatus.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpStatus>, I>>(object: I): OpStatus {\n const message = createBaseOpStatus();\n message.opId = object.opId ?? \"\";\n message.state = object.state ?? 0;\n message.nextSeq = object.nextSeq ?? \"0\";\n message.exit = (object.exit !== undefined && object.exit !== null) ? OpExit.fromPartial(object.exit) : undefined;\n message.lostReason = object.lostReason ?? 0;\n return message;\n },\n};\n\nfunction createBaseWriteChunk(): WriteChunk {\n return { opId: \"\", seq: \"0\", bytes: new Uint8Array(0), last: false, offset: \"0\" };\n}\n\nexport const WriteChunk: MessageFns<WriteChunk> = {\n encode(message: WriteChunk, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.opId !== \"\") {\n writer.uint32(10).string(message.opId);\n }\n if (message.seq !== \"0\") {\n writer.uint32(16).uint64(message.seq);\n }\n if (message.bytes.length !== 0) {\n writer.uint32(26).bytes(message.bytes);\n }\n if (message.last !== false) {\n writer.uint32(32).bool(message.last);\n }\n if (message.offset !== \"0\") {\n writer.uint32(40).uint64(message.offset);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): WriteChunk {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseWriteChunk();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.opId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.seq = reader.uint64().toString();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.bytes = reader.bytes();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.last = reader.bool();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.offset = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): WriteChunk {\n return {\n opId: isSet(object.opId)\n ? globalThis.String(object.opId)\n : isSet(object.op_id)\n ? globalThis.String(object.op_id)\n : \"\",\n seq: isSet(object.seq) ? globalThis.String(object.seq) : \"0\",\n bytes: isSet(object.bytes) ? bytesFromBase64(object.bytes) : new Uint8Array(0),\n last: isSet(object.last) ? globalThis.Boolean(object.last) : false,\n offset: isSet(object.offset) ? globalThis.String(object.offset) : \"0\",\n };\n },\n\n toJSON(message: WriteChunk): unknown {\n const obj: any = {};\n if (message.opId !== \"\") {\n obj.opId = message.opId;\n }\n if (message.seq !== \"0\") {\n obj.seq = message.seq;\n }\n if (message.bytes.length !== 0) {\n obj.bytes = base64FromBytes(message.bytes);\n }\n if (message.last !== false) {\n obj.last = message.last;\n }\n if (message.offset !== \"0\") {\n obj.offset = message.offset;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<WriteChunk>, I>>(base?: I): WriteChunk {\n return WriteChunk.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<WriteChunk>, I>>(object: I): WriteChunk {\n const message = createBaseWriteChunk();\n message.opId = object.opId ?? \"\";\n message.seq = object.seq ?? \"0\";\n message.bytes = object.bytes ?? new Uint8Array(0);\n message.last = object.last ?? false;\n message.offset = object.offset ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseWriteChunkAck(): WriteChunkAck {\n return { seq: \"0\" };\n}\n\nexport const WriteChunkAck: MessageFns<WriteChunkAck> = {\n encode(message: WriteChunkAck, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.seq !== \"0\") {\n writer.uint32(8).uint64(message.seq);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): WriteChunkAck {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseWriteChunkAck();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.seq = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): WriteChunkAck {\n return { seq: isSet(object.seq) ? globalThis.String(object.seq) : \"0\" };\n },\n\n toJSON(message: WriteChunkAck): unknown {\n const obj: any = {};\n if (message.seq !== \"0\") {\n obj.seq = message.seq;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<WriteChunkAck>, I>>(base?: I): WriteChunkAck {\n return WriteChunkAck.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<WriteChunkAck>, I>>(object: I): WriteChunkAck {\n const message = createBaseWriteChunkAck();\n message.seq = object.seq ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseOpFrame(): OpFrame {\n return { opId: \"\", seq: \"0\", body: undefined };\n}\n\nexport const OpFrame: MessageFns<OpFrame> = {\n encode(message: OpFrame, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.opId !== \"\") {\n writer.uint32(10).string(message.opId);\n }\n if (message.seq !== \"0\") {\n writer.uint32(16).uint64(message.seq);\n }\n switch (message.body?.$case) {\n case \"data\":\n OpData.encode(message.body.data, writer.uint32(82).fork()).join();\n break;\n case \"progress\":\n OpProgress.encode(message.body.progress, writer.uint32(90).fork()).join();\n break;\n case \"exit\":\n OpExit.encode(message.body.exit, writer.uint32(98).fork()).join();\n break;\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpFrame {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpFrame();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.opId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.seq = reader.uint64().toString();\n continue;\n }\n case 10: {\n if (tag !== 82) {\n break;\n }\n\n message.body = { $case: \"data\", data: OpData.decode(reader, reader.uint32()) };\n continue;\n }\n case 11: {\n if (tag !== 90) {\n break;\n }\n\n message.body = { $case: \"progress\", progress: OpProgress.decode(reader, reader.uint32()) };\n continue;\n }\n case 12: {\n if (tag !== 98) {\n break;\n }\n\n message.body = { $case: \"exit\", exit: OpExit.decode(reader, reader.uint32()) };\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpFrame {\n return {\n opId: isSet(object.opId)\n ? globalThis.String(object.opId)\n : isSet(object.op_id)\n ? globalThis.String(object.op_id)\n : \"\",\n seq: isSet(object.seq) ? globalThis.String(object.seq) : \"0\",\n body: isSet(object.data)\n ? { $case: \"data\", data: OpData.fromJSON(object.data) }\n : isSet(object.progress)\n ? { $case: \"progress\", progress: OpProgress.fromJSON(object.progress) }\n : isSet(object.exit)\n ? { $case: \"exit\", exit: OpExit.fromJSON(object.exit) }\n : undefined,\n };\n },\n\n toJSON(message: OpFrame): unknown {\n const obj: any = {};\n if (message.opId !== \"\") {\n obj.opId = message.opId;\n }\n if (message.seq !== \"0\") {\n obj.seq = message.seq;\n }\n if (message.body?.$case === \"data\") {\n obj.data = OpData.toJSON(message.body.data);\n } else if (message.body?.$case === \"progress\") {\n obj.progress = OpProgress.toJSON(message.body.progress);\n } else if (message.body?.$case === \"exit\") {\n obj.exit = OpExit.toJSON(message.body.exit);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpFrame>, I>>(base?: I): OpFrame {\n return OpFrame.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpFrame>, I>>(object: I): OpFrame {\n const message = createBaseOpFrame();\n message.opId = object.opId ?? \"\";\n message.seq = object.seq ?? \"0\";\n switch (object.body?.$case) {\n case \"data\": {\n if (object.body?.data !== undefined && object.body?.data !== null) {\n message.body = { $case: \"data\", data: OpData.fromPartial(object.body.data) };\n }\n break;\n }\n case \"progress\": {\n if (object.body?.progress !== undefined && object.body?.progress !== null) {\n message.body = { $case: \"progress\", progress: OpProgress.fromPartial(object.body.progress) };\n }\n break;\n }\n case \"exit\": {\n if (object.body?.exit !== undefined && object.body?.exit !== null) {\n message.body = { $case: \"exit\", exit: OpExit.fromPartial(object.body.exit) };\n }\n break;\n }\n }\n return message;\n },\n};\n\nfunction createBaseOpData(): OpData {\n return { channel: 0, bytes: new Uint8Array(0) };\n}\n\nexport const OpData: MessageFns<OpData> = {\n encode(message: OpData, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.channel !== 0) {\n writer.uint32(8).int32(message.channel);\n }\n if (message.bytes.length !== 0) {\n writer.uint32(18).bytes(message.bytes);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpData {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpData();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.channel = reader.int32() as any;\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.bytes = reader.bytes();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpData {\n return {\n channel: isSet(object.channel) ? opChannelFromJSON(object.channel) : 0,\n bytes: isSet(object.bytes) ? bytesFromBase64(object.bytes) : new Uint8Array(0),\n };\n },\n\n toJSON(message: OpData): unknown {\n const obj: any = {};\n if (message.channel !== 0) {\n obj.channel = opChannelToJSON(message.channel);\n }\n if (message.bytes.length !== 0) {\n obj.bytes = base64FromBytes(message.bytes);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpData>, I>>(base?: I): OpData {\n return OpData.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpData>, I>>(object: I): OpData {\n const message = createBaseOpData();\n message.channel = object.channel ?? 0;\n message.bytes = object.bytes ?? new Uint8Array(0);\n return message;\n },\n};\n\nfunction createBaseOpProgress(): OpProgress {\n return {};\n}\n\nexport const OpProgress: MessageFns<OpProgress> = {\n encode(_: OpProgress, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpProgress {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpProgress();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): OpProgress {\n return {};\n },\n\n toJSON(_: OpProgress): unknown {\n const obj: any = {};\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpProgress>, I>>(base?: I): OpProgress {\n return OpProgress.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpProgress>, I>>(_: I): OpProgress {\n const message = createBaseOpProgress();\n return message;\n },\n};\n\nfunction createBaseOpAck(): OpAck {\n return { opId: \"\", ackedSeq: \"0\", creditBytes: \"0\", final: false, attachGeneration: \"0\" };\n}\n\nexport const OpAck: MessageFns<OpAck> = {\n encode(message: OpAck, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.opId !== \"\") {\n writer.uint32(10).string(message.opId);\n }\n if (message.ackedSeq !== \"0\") {\n writer.uint32(16).uint64(message.ackedSeq);\n }\n if (message.creditBytes !== \"0\") {\n writer.uint32(24).uint64(message.creditBytes);\n }\n if (message.final !== false) {\n writer.uint32(32).bool(message.final);\n }\n if (message.attachGeneration !== \"0\") {\n writer.uint32(40).uint64(message.attachGeneration);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): OpAck {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOpAck();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.opId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.ackedSeq = reader.uint64().toString();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.creditBytes = reader.uint64().toString();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.final = reader.bool();\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.attachGeneration = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): OpAck {\n return {\n opId: isSet(object.opId)\n ? globalThis.String(object.opId)\n : isSet(object.op_id)\n ? globalThis.String(object.op_id)\n : \"\",\n ackedSeq: isSet(object.ackedSeq)\n ? globalThis.String(object.ackedSeq)\n : isSet(object.acked_seq)\n ? globalThis.String(object.acked_seq)\n : \"0\",\n creditBytes: isSet(object.creditBytes)\n ? globalThis.String(object.creditBytes)\n : isSet(object.credit_bytes)\n ? globalThis.String(object.credit_bytes)\n : \"0\",\n final: isSet(object.final) ? globalThis.Boolean(object.final) : false,\n attachGeneration: isSet(object.attachGeneration)\n ? globalThis.String(object.attachGeneration)\n : isSet(object.attach_generation)\n ? globalThis.String(object.attach_generation)\n : \"0\",\n };\n },\n\n toJSON(message: OpAck): unknown {\n const obj: any = {};\n if (message.opId !== \"\") {\n obj.opId = message.opId;\n }\n if (message.ackedSeq !== \"0\") {\n obj.ackedSeq = message.ackedSeq;\n }\n if (message.creditBytes !== \"0\") {\n obj.creditBytes = message.creditBytes;\n }\n if (message.final !== false) {\n obj.final = message.final;\n }\n if (message.attachGeneration !== \"0\") {\n obj.attachGeneration = message.attachGeneration;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<OpAck>, I>>(base?: I): OpAck {\n return OpAck.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<OpAck>, I>>(object: I): OpAck {\n const message = createBaseOpAck();\n message.opId = object.opId ?? \"\";\n message.ackedSeq = object.ackedSeq ?? \"0\";\n message.creditBytes = object.creditBytes ?? \"0\";\n message.final = object.final ?? false;\n message.attachGeneration = object.attachGeneration ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseControlRequest(): ControlRequest {\n return { requestId: \"\", epoch: 0, op: undefined };\n}\n\nexport const ControlRequest: MessageFns<ControlRequest> = {\n encode(message: ControlRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.requestId !== \"\") {\n writer.uint32(10).string(message.requestId);\n }\n if (message.epoch !== 0) {\n writer.uint32(16).uint32(message.epoch);\n }\n switch (message.op?.$case) {\n case \"ping\":\n PingRequest.encode(message.op.ping, writer.uint32(82).fork()).join();\n break;\n case \"hello\":\n Hello.encode(message.op.hello, writer.uint32(90).fork()).join();\n break;\n case \"resume\":\n ResumeRequest.encode(message.op.resume, writer.uint32(98).fork()).join();\n break;\n case \"exec\":\n ExecRequest.encode(message.op.exec, writer.uint32(106).fork()).join();\n break;\n case \"fsRead\":\n FsReadRequest.encode(message.op.fsRead, writer.uint32(114).fork()).join();\n break;\n case \"fsWrite\":\n FsWriteRequest.encode(message.op.fsWrite, writer.uint32(122).fork()).join();\n break;\n case \"fsList\":\n FsListRequest.encode(message.op.fsList, writer.uint32(130).fork()).join();\n break;\n case \"fsMkdir\":\n FsMkdirRequest.encode(message.op.fsMkdir, writer.uint32(138).fork()).join();\n break;\n case \"fsMove\":\n FsMoveRequest.encode(message.op.fsMove, writer.uint32(146).fork()).join();\n break;\n case \"fsStat\":\n FsStatRequest.encode(message.op.fsStat, writer.uint32(154).fork()).join();\n break;\n case \"fsRemove\":\n FsRemoveRequest.encode(message.op.fsRemove, writer.uint32(162).fork()).join();\n break;\n case \"git\":\n GitRequest.encode(message.op.git, writer.uint32(170).fork()).join();\n break;\n case \"ptyOpen\":\n PtyOpenRequest.encode(message.op.ptyOpen, writer.uint32(178).fork()).join();\n break;\n case \"ptyWrite\":\n PtyWriteRequest.encode(message.op.ptyWrite, writer.uint32(186).fork()).join();\n break;\n case \"ptyResize\":\n PtyResizeRequest.encode(message.op.ptyResize, writer.uint32(194).fork()).join();\n break;\n case \"ptyClose\":\n PtyCloseRequest.encode(message.op.ptyClose, writer.uint32(202).fork()).join();\n break;\n case \"desktopEnsure\":\n DesktopEnsureRequest.encode(message.op.desktopEnsure, writer.uint32(210).fork()).join();\n break;\n case \"metrics\":\n MetricsRequest.encode(message.op.metrics, writer.uint32(218).fork()).join();\n break;\n case \"updateMayProceed\":\n UpdateMayProceedRequest.encode(message.op.updateMayProceed, writer.uint32(226).fork()).join();\n break;\n case \"desktopInput\":\n DesktopInputRequest.encode(message.op.desktopInput, writer.uint32(234).fork()).join();\n break;\n case \"desktopScreenshot\":\n DesktopScreenshotRequest.encode(message.op.desktopScreenshot, writer.uint32(242).fork()).join();\n break;\n case \"opStart\":\n OpStart.encode(message.op.opStart, writer.uint32(250).fork()).join();\n break;\n case \"opCancel\":\n OpCancel.encode(message.op.opCancel, writer.uint32(258).fork()).join();\n break;\n case \"opQuery\":\n OpQuery.encode(message.op.opQuery, writer.uint32(266).fork()).join();\n break;\n case \"opAttach\":\n OpAttach.encode(message.op.opAttach, writer.uint32(274).fork()).join();\n break;\n case \"writeChunk\":\n WriteChunk.encode(message.op.writeChunk, writer.uint32(282).fork()).join();\n break;\n case \"browserControlEnsure\":\n BrowserControlEnsureRequest.encode(message.op.browserControlEnsure, writer.uint32(290).fork()).join();\n break;\n case \"browserFramesOpen\":\n BrowserFramesOpenRequest.encode(message.op.browserFramesOpen, writer.uint32(298).fork()).join();\n break;\n case \"computerFramesOpen\":\n ComputerFramesOpenRequest.encode(message.op.computerFramesOpen, writer.uint32(306).fork()).join();\n break;\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): ControlRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseControlRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.requestId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.epoch = reader.uint32();\n continue;\n }\n case 10: {\n if (tag !== 82) {\n break;\n }\n\n message.op = { $case: \"ping\", ping: PingRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 11: {\n if (tag !== 90) {\n break;\n }\n\n message.op = { $case: \"hello\", hello: Hello.decode(reader, reader.uint32()) };\n continue;\n }\n case 12: {\n if (tag !== 98) {\n break;\n }\n\n message.op = { $case: \"resume\", resume: ResumeRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 13: {\n if (tag !== 106) {\n break;\n }\n\n message.op = { $case: \"exec\", exec: ExecRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 14: {\n if (tag !== 114) {\n break;\n }\n\n message.op = { $case: \"fsRead\", fsRead: FsReadRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 15: {\n if (tag !== 122) {\n break;\n }\n\n message.op = { $case: \"fsWrite\", fsWrite: FsWriteRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 16: {\n if (tag !== 130) {\n break;\n }\n\n message.op = { $case: \"fsList\", fsList: FsListRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 17: {\n if (tag !== 138) {\n break;\n }\n\n message.op = { $case: \"fsMkdir\", fsMkdir: FsMkdirRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 18: {\n if (tag !== 146) {\n break;\n }\n\n message.op = { $case: \"fsMove\", fsMove: FsMoveRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 19: {\n if (tag !== 154) {\n break;\n }\n\n message.op = { $case: \"fsStat\", fsStat: FsStatRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 20: {\n if (tag !== 162) {\n break;\n }\n\n message.op = { $case: \"fsRemove\", fsRemove: FsRemoveRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 21: {\n if (tag !== 170) {\n break;\n }\n\n message.op = { $case: \"git\", git: GitRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 22: {\n if (tag !== 178) {\n break;\n }\n\n message.op = { $case: \"ptyOpen\", ptyOpen: PtyOpenRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 23: {\n if (tag !== 186) {\n break;\n }\n\n message.op = { $case: \"ptyWrite\", ptyWrite: PtyWriteRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 24: {\n if (tag !== 194) {\n break;\n }\n\n message.op = { $case: \"ptyResize\", ptyResize: PtyResizeRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 25: {\n if (tag !== 202) {\n break;\n }\n\n message.op = { $case: \"ptyClose\", ptyClose: PtyCloseRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 26: {\n if (tag !== 210) {\n break;\n }\n\n message.op = { $case: \"desktopEnsure\", desktopEnsure: DesktopEnsureRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 27: {\n if (tag !== 218) {\n break;\n }\n\n message.op = { $case: \"metrics\", metrics: MetricsRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 28: {\n if (tag !== 226) {\n break;\n }\n\n message.op = {\n $case: \"updateMayProceed\",\n updateMayProceed: UpdateMayProceedRequest.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 29: {\n if (tag !== 234) {\n break;\n }\n\n message.op = { $case: \"desktopInput\", desktopInput: DesktopInputRequest.decode(reader, reader.uint32()) };\n continue;\n }\n case 30: {\n if (tag !== 242) {\n break;\n }\n\n message.op = {\n $case: \"desktopScreenshot\",\n desktopScreenshot: DesktopScreenshotRequest.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 31: {\n if (tag !== 250) {\n break;\n }\n\n message.op = { $case: \"opStart\", opStart: OpStart.decode(reader, reader.uint32()) };\n continue;\n }\n case 32: {\n if (tag !== 258) {\n break;\n }\n\n message.op = { $case: \"opCancel\", opCancel: OpCancel.decode(reader, reader.uint32()) };\n continue;\n }\n case 33: {\n if (tag !== 266) {\n break;\n }\n\n message.op = { $case: \"opQuery\", opQuery: OpQuery.decode(reader, reader.uint32()) };\n continue;\n }\n case 34: {\n if (tag !== 274) {\n break;\n }\n\n message.op = { $case: \"opAttach\", opAttach: OpAttach.decode(reader, reader.uint32()) };\n continue;\n }\n case 35: {\n if (tag !== 282) {\n break;\n }\n\n message.op = { $case: \"writeChunk\", writeChunk: WriteChunk.decode(reader, reader.uint32()) };\n continue;\n }\n case 36: {\n if (tag !== 290) {\n break;\n }\n\n message.op = {\n $case: \"browserControlEnsure\",\n browserControlEnsure: BrowserControlEnsureRequest.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 37: {\n if (tag !== 298) {\n break;\n }\n\n message.op = {\n $case: \"browserFramesOpen\",\n browserFramesOpen: BrowserFramesOpenRequest.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 38: {\n if (tag !== 306) {\n break;\n }\n\n message.op = {\n $case: \"computerFramesOpen\",\n computerFramesOpen: ComputerFramesOpenRequest.decode(reader, reader.uint32()),\n };\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): ControlRequest {\n return {\n requestId: isSet(object.requestId)\n ? globalThis.String(object.requestId)\n : isSet(object.request_id)\n ? globalThis.String(object.request_id)\n : \"\",\n epoch: isSet(object.epoch) ? globalThis.Number(object.epoch) : 0,\n op: isSet(object.ping)\n ? { $case: \"ping\", ping: PingRequest.fromJSON(object.ping) }\n : isSet(object.hello)\n ? { $case: \"hello\", hello: Hello.fromJSON(object.hello) }\n : isSet(object.resume)\n ? { $case: \"resume\", resume: ResumeRequest.fromJSON(object.resume) }\n : isSet(object.exec)\n ? { $case: \"exec\", exec: ExecRequest.fromJSON(object.exec) }\n : isSet(object.fsRead)\n ? { $case: \"fsRead\", fsRead: FsReadRequest.fromJSON(object.fsRead) }\n : isSet(object.fs_read)\n ? { $case: \"fsRead\", fsRead: FsReadRequest.fromJSON(object.fs_read) }\n : isSet(object.fsWrite)\n ? { $case: \"fsWrite\", fsWrite: FsWriteRequest.fromJSON(object.fsWrite) }\n : isSet(object.fs_write)\n ? { $case: \"fsWrite\", fsWrite: FsWriteRequest.fromJSON(object.fs_write) }\n : isSet(object.fsList)\n ? { $case: \"fsList\", fsList: FsListRequest.fromJSON(object.fsList) }\n : isSet(object.fs_list)\n ? { $case: \"fsList\", fsList: FsListRequest.fromJSON(object.fs_list) }\n : isSet(object.fsMkdir)\n ? { $case: \"fsMkdir\", fsMkdir: FsMkdirRequest.fromJSON(object.fsMkdir) }\n : isSet(object.fs_mkdir)\n ? { $case: \"fsMkdir\", fsMkdir: FsMkdirRequest.fromJSON(object.fs_mkdir) }\n : isSet(object.fsMove)\n ? { $case: \"fsMove\", fsMove: FsMoveRequest.fromJSON(object.fsMove) }\n : isSet(object.fs_move)\n ? { $case: \"fsMove\", fsMove: FsMoveRequest.fromJSON(object.fs_move) }\n : isSet(object.fsStat)\n ? { $case: \"fsStat\", fsStat: FsStatRequest.fromJSON(object.fsStat) }\n : isSet(object.fs_stat)\n ? { $case: \"fsStat\", fsStat: FsStatRequest.fromJSON(object.fs_stat) }\n : isSet(object.fsRemove)\n ? { $case: \"fsRemove\", fsRemove: FsRemoveRequest.fromJSON(object.fsRemove) }\n : isSet(object.fs_remove)\n ? { $case: \"fsRemove\", fsRemove: FsRemoveRequest.fromJSON(object.fs_remove) }\n : isSet(object.git)\n ? { $case: \"git\", git: GitRequest.fromJSON(object.git) }\n : isSet(object.ptyOpen)\n ? { $case: \"ptyOpen\", ptyOpen: PtyOpenRequest.fromJSON(object.ptyOpen) }\n : isSet(object.pty_open)\n ? { $case: \"ptyOpen\", ptyOpen: PtyOpenRequest.fromJSON(object.pty_open) }\n : isSet(object.ptyWrite)\n ? { $case: \"ptyWrite\", ptyWrite: PtyWriteRequest.fromJSON(object.ptyWrite) }\n : isSet(object.pty_write)\n ? { $case: \"ptyWrite\", ptyWrite: PtyWriteRequest.fromJSON(object.pty_write) }\n : isSet(object.ptyResize)\n ? { $case: \"ptyResize\", ptyResize: PtyResizeRequest.fromJSON(object.ptyResize) }\n : isSet(object.pty_resize)\n ? { $case: \"ptyResize\", ptyResize: PtyResizeRequest.fromJSON(object.pty_resize) }\n : isSet(object.ptyClose)\n ? { $case: \"ptyClose\", ptyClose: PtyCloseRequest.fromJSON(object.ptyClose) }\n : isSet(object.pty_close)\n ? { $case: \"ptyClose\", ptyClose: PtyCloseRequest.fromJSON(object.pty_close) }\n : isSet(object.desktopEnsure)\n ? { $case: \"desktopEnsure\", desktopEnsure: DesktopEnsureRequest.fromJSON(object.desktopEnsure) }\n : isSet(object.desktop_ensure)\n ? { $case: \"desktopEnsure\", desktopEnsure: DesktopEnsureRequest.fromJSON(object.desktop_ensure) }\n : isSet(object.metrics)\n ? { $case: \"metrics\", metrics: MetricsRequest.fromJSON(object.metrics) }\n : isSet(object.updateMayProceed)\n ? { $case: \"updateMayProceed\", updateMayProceed: UpdateMayProceedRequest.fromJSON(object.updateMayProceed) }\n : isSet(object.update_may_proceed)\n ? { $case: \"updateMayProceed\", updateMayProceed: UpdateMayProceedRequest.fromJSON(object.update_may_proceed) }\n : isSet(object.desktopInput)\n ? { $case: \"desktopInput\", desktopInput: DesktopInputRequest.fromJSON(object.desktopInput) }\n : isSet(object.desktop_input)\n ? { $case: \"desktopInput\", desktopInput: DesktopInputRequest.fromJSON(object.desktop_input) }\n : isSet(object.desktopScreenshot)\n ? { $case: \"desktopScreenshot\", desktopScreenshot: DesktopScreenshotRequest.fromJSON(object.desktopScreenshot) }\n : isSet(object.desktop_screenshot)\n ? {\n $case: \"desktopScreenshot\",\n desktopScreenshot: DesktopScreenshotRequest.fromJSON(object.desktop_screenshot),\n }\n : isSet(object.opStart)\n ? { $case: \"opStart\", opStart: OpStart.fromJSON(object.opStart) }\n : isSet(object.op_start)\n ? { $case: \"opStart\", opStart: OpStart.fromJSON(object.op_start) }\n : isSet(object.opCancel)\n ? { $case: \"opCancel\", opCancel: OpCancel.fromJSON(object.opCancel) }\n : isSet(object.op_cancel)\n ? { $case: \"opCancel\", opCancel: OpCancel.fromJSON(object.op_cancel) }\n : isSet(object.opQuery)\n ? { $case: \"opQuery\", opQuery: OpQuery.fromJSON(object.opQuery) }\n : isSet(object.op_query)\n ? { $case: \"opQuery\", opQuery: OpQuery.fromJSON(object.op_query) }\n : isSet(object.opAttach)\n ? { $case: \"opAttach\", opAttach: OpAttach.fromJSON(object.opAttach) }\n : isSet(object.op_attach)\n ? { $case: \"opAttach\", opAttach: OpAttach.fromJSON(object.op_attach) }\n : isSet(object.writeChunk)\n ? { $case: \"writeChunk\", writeChunk: WriteChunk.fromJSON(object.writeChunk) }\n : isSet(object.write_chunk)\n ? { $case: \"writeChunk\", writeChunk: WriteChunk.fromJSON(object.write_chunk) }\n : isSet(object.browserControlEnsure)\n ? {\n $case: \"browserControlEnsure\",\n browserControlEnsure: BrowserControlEnsureRequest.fromJSON(object.browserControlEnsure),\n }\n : isSet(object.browser_control_ensure)\n ? {\n $case: \"browserControlEnsure\",\n browserControlEnsure: BrowserControlEnsureRequest.fromJSON(object.browser_control_ensure),\n }\n : isSet(object.browserFramesOpen)\n ? { $case: \"browserFramesOpen\", browserFramesOpen: BrowserFramesOpenRequest.fromJSON(object.browserFramesOpen) }\n : isSet(object.browser_frames_open)\n ? {\n $case: \"browserFramesOpen\",\n browserFramesOpen: BrowserFramesOpenRequest.fromJSON(object.browser_frames_open),\n }\n : isSet(object.computerFramesOpen)\n ? {\n $case: \"computerFramesOpen\",\n computerFramesOpen: ComputerFramesOpenRequest.fromJSON(object.computerFramesOpen),\n }\n : isSet(object.computer_frames_open)\n ? {\n $case: \"computerFramesOpen\",\n computerFramesOpen: ComputerFramesOpenRequest.fromJSON(object.computer_frames_open),\n }\n : undefined,\n };\n },\n\n toJSON(message: ControlRequest): unknown {\n const obj: any = {};\n if (message.requestId !== \"\") {\n obj.requestId = message.requestId;\n }\n if (message.epoch !== 0) {\n obj.epoch = Math.round(message.epoch);\n }\n if (message.op?.$case === \"ping\") {\n obj.ping = PingRequest.toJSON(message.op.ping);\n } else if (message.op?.$case === \"hello\") {\n obj.hello = Hello.toJSON(message.op.hello);\n } else if (message.op?.$case === \"resume\") {\n obj.resume = ResumeRequest.toJSON(message.op.resume);\n } else if (message.op?.$case === \"exec\") {\n obj.exec = ExecRequest.toJSON(message.op.exec);\n } else if (message.op?.$case === \"fsRead\") {\n obj.fsRead = FsReadRequest.toJSON(message.op.fsRead);\n } else if (message.op?.$case === \"fsWrite\") {\n obj.fsWrite = FsWriteRequest.toJSON(message.op.fsWrite);\n } else if (message.op?.$case === \"fsList\") {\n obj.fsList = FsListRequest.toJSON(message.op.fsList);\n } else if (message.op?.$case === \"fsMkdir\") {\n obj.fsMkdir = FsMkdirRequest.toJSON(message.op.fsMkdir);\n } else if (message.op?.$case === \"fsMove\") {\n obj.fsMove = FsMoveRequest.toJSON(message.op.fsMove);\n } else if (message.op?.$case === \"fsStat\") {\n obj.fsStat = FsStatRequest.toJSON(message.op.fsStat);\n } else if (message.op?.$case === \"fsRemove\") {\n obj.fsRemove = FsRemoveRequest.toJSON(message.op.fsRemove);\n } else if (message.op?.$case === \"git\") {\n obj.git = GitRequest.toJSON(message.op.git);\n } else if (message.op?.$case === \"ptyOpen\") {\n obj.ptyOpen = PtyOpenRequest.toJSON(message.op.ptyOpen);\n } else if (message.op?.$case === \"ptyWrite\") {\n obj.ptyWrite = PtyWriteRequest.toJSON(message.op.ptyWrite);\n } else if (message.op?.$case === \"ptyResize\") {\n obj.ptyResize = PtyResizeRequest.toJSON(message.op.ptyResize);\n } else if (message.op?.$case === \"ptyClose\") {\n obj.ptyClose = PtyCloseRequest.toJSON(message.op.ptyClose);\n } else if (message.op?.$case === \"desktopEnsure\") {\n obj.desktopEnsure = DesktopEnsureRequest.toJSON(message.op.desktopEnsure);\n } else if (message.op?.$case === \"metrics\") {\n obj.metrics = MetricsRequest.toJSON(message.op.metrics);\n } else if (message.op?.$case === \"updateMayProceed\") {\n obj.updateMayProceed = UpdateMayProceedRequest.toJSON(message.op.updateMayProceed);\n } else if (message.op?.$case === \"desktopInput\") {\n obj.desktopInput = DesktopInputRequest.toJSON(message.op.desktopInput);\n } else if (message.op?.$case === \"desktopScreenshot\") {\n obj.desktopScreenshot = DesktopScreenshotRequest.toJSON(message.op.desktopScreenshot);\n } else if (message.op?.$case === \"opStart\") {\n obj.opStart = OpStart.toJSON(message.op.opStart);\n } else if (message.op?.$case === \"opCancel\") {\n obj.opCancel = OpCancel.toJSON(message.op.opCancel);\n } else if (message.op?.$case === \"opQuery\") {\n obj.opQuery = OpQuery.toJSON(message.op.opQuery);\n } else if (message.op?.$case === \"opAttach\") {\n obj.opAttach = OpAttach.toJSON(message.op.opAttach);\n } else if (message.op?.$case === \"writeChunk\") {\n obj.writeChunk = WriteChunk.toJSON(message.op.writeChunk);\n } else if (message.op?.$case === \"browserControlEnsure\") {\n obj.browserControlEnsure = BrowserControlEnsureRequest.toJSON(message.op.browserControlEnsure);\n } else if (message.op?.$case === \"browserFramesOpen\") {\n obj.browserFramesOpen = BrowserFramesOpenRequest.toJSON(message.op.browserFramesOpen);\n } else if (message.op?.$case === \"computerFramesOpen\") {\n obj.computerFramesOpen = ComputerFramesOpenRequest.toJSON(message.op.computerFramesOpen);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<ControlRequest>, I>>(base?: I): ControlRequest {\n return ControlRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<ControlRequest>, I>>(object: I): ControlRequest {\n const message = createBaseControlRequest();\n message.requestId = object.requestId ?? \"\";\n message.epoch = object.epoch ?? 0;\n switch (object.op?.$case) {\n case \"ping\": {\n if (object.op?.ping !== undefined && object.op?.ping !== null) {\n message.op = { $case: \"ping\", ping: PingRequest.fromPartial(object.op.ping) };\n }\n break;\n }\n case \"hello\": {\n if (object.op?.hello !== undefined && object.op?.hello !== null) {\n message.op = { $case: \"hello\", hello: Hello.fromPartial(object.op.hello) };\n }\n break;\n }\n case \"resume\": {\n if (object.op?.resume !== undefined && object.op?.resume !== null) {\n message.op = { $case: \"resume\", resume: ResumeRequest.fromPartial(object.op.resume) };\n }\n break;\n }\n case \"exec\": {\n if (object.op?.exec !== undefined && object.op?.exec !== null) {\n message.op = { $case: \"exec\", exec: ExecRequest.fromPartial(object.op.exec) };\n }\n break;\n }\n case \"fsRead\": {\n if (object.op?.fsRead !== undefined && object.op?.fsRead !== null) {\n message.op = { $case: \"fsRead\", fsRead: FsReadRequest.fromPartial(object.op.fsRead) };\n }\n break;\n }\n case \"fsWrite\": {\n if (object.op?.fsWrite !== undefined && object.op?.fsWrite !== null) {\n message.op = { $case: \"fsWrite\", fsWrite: FsWriteRequest.fromPartial(object.op.fsWrite) };\n }\n break;\n }\n case \"fsList\": {\n if (object.op?.fsList !== undefined && object.op?.fsList !== null) {\n message.op = { $case: \"fsList\", fsList: FsListRequest.fromPartial(object.op.fsList) };\n }\n break;\n }\n case \"fsMkdir\": {\n if (object.op?.fsMkdir !== undefined && object.op?.fsMkdir !== null) {\n message.op = { $case: \"fsMkdir\", fsMkdir: FsMkdirRequest.fromPartial(object.op.fsMkdir) };\n }\n break;\n }\n case \"fsMove\": {\n if (object.op?.fsMove !== undefined && object.op?.fsMove !== null) {\n message.op = { $case: \"fsMove\", fsMove: FsMoveRequest.fromPartial(object.op.fsMove) };\n }\n break;\n }\n case \"fsStat\": {\n if (object.op?.fsStat !== undefined && object.op?.fsStat !== null) {\n message.op = { $case: \"fsStat\", fsStat: FsStatRequest.fromPartial(object.op.fsStat) };\n }\n break;\n }\n case \"fsRemove\": {\n if (object.op?.fsRemove !== undefined && object.op?.fsRemove !== null) {\n message.op = { $case: \"fsRemove\", fsRemove: FsRemoveRequest.fromPartial(object.op.fsRemove) };\n }\n break;\n }\n case \"git\": {\n if (object.op?.git !== undefined && object.op?.git !== null) {\n message.op = { $case: \"git\", git: GitRequest.fromPartial(object.op.git) };\n }\n break;\n }\n case \"ptyOpen\": {\n if (object.op?.ptyOpen !== undefined && object.op?.ptyOpen !== null) {\n message.op = { $case: \"ptyOpen\", ptyOpen: PtyOpenRequest.fromPartial(object.op.ptyOpen) };\n }\n break;\n }\n case \"ptyWrite\": {\n if (object.op?.ptyWrite !== undefined && object.op?.ptyWrite !== null) {\n message.op = { $case: \"ptyWrite\", ptyWrite: PtyWriteRequest.fromPartial(object.op.ptyWrite) };\n }\n break;\n }\n case \"ptyResize\": {\n if (object.op?.ptyResize !== undefined && object.op?.ptyResize !== null) {\n message.op = { $case: \"ptyResize\", ptyResize: PtyResizeRequest.fromPartial(object.op.ptyResize) };\n }\n break;\n }\n case \"ptyClose\": {\n if (object.op?.ptyClose !== undefined && object.op?.ptyClose !== null) {\n message.op = { $case: \"ptyClose\", ptyClose: PtyCloseRequest.fromPartial(object.op.ptyClose) };\n }\n break;\n }\n case \"desktopEnsure\": {\n if (object.op?.desktopEnsure !== undefined && object.op?.desktopEnsure !== null) {\n message.op = {\n $case: \"desktopEnsure\",\n desktopEnsure: DesktopEnsureRequest.fromPartial(object.op.desktopEnsure),\n };\n }\n break;\n }\n case \"metrics\": {\n if (object.op?.metrics !== undefined && object.op?.metrics !== null) {\n message.op = { $case: \"metrics\", metrics: MetricsRequest.fromPartial(object.op.metrics) };\n }\n break;\n }\n case \"updateMayProceed\": {\n if (object.op?.updateMayProceed !== undefined && object.op?.updateMayProceed !== null) {\n message.op = {\n $case: \"updateMayProceed\",\n updateMayProceed: UpdateMayProceedRequest.fromPartial(object.op.updateMayProceed),\n };\n }\n break;\n }\n case \"desktopInput\": {\n if (object.op?.desktopInput !== undefined && object.op?.desktopInput !== null) {\n message.op = { $case: \"desktopInput\", desktopInput: DesktopInputRequest.fromPartial(object.op.desktopInput) };\n }\n break;\n }\n case \"desktopScreenshot\": {\n if (object.op?.desktopScreenshot !== undefined && object.op?.desktopScreenshot !== null) {\n message.op = {\n $case: \"desktopScreenshot\",\n desktopScreenshot: DesktopScreenshotRequest.fromPartial(object.op.desktopScreenshot),\n };\n }\n break;\n }\n case \"opStart\": {\n if (object.op?.opStart !== undefined && object.op?.opStart !== null) {\n message.op = { $case: \"opStart\", opStart: OpStart.fromPartial(object.op.opStart) };\n }\n break;\n }\n case \"opCancel\": {\n if (object.op?.opCancel !== undefined && object.op?.opCancel !== null) {\n message.op = { $case: \"opCancel\", opCancel: OpCancel.fromPartial(object.op.opCancel) };\n }\n break;\n }\n case \"opQuery\": {\n if (object.op?.opQuery !== undefined && object.op?.opQuery !== null) {\n message.op = { $case: \"opQuery\", opQuery: OpQuery.fromPartial(object.op.opQuery) };\n }\n break;\n }\n case \"opAttach\": {\n if (object.op?.opAttach !== undefined && object.op?.opAttach !== null) {\n message.op = { $case: \"opAttach\", opAttach: OpAttach.fromPartial(object.op.opAttach) };\n }\n break;\n }\n case \"writeChunk\": {\n if (object.op?.writeChunk !== undefined && object.op?.writeChunk !== null) {\n message.op = { $case: \"writeChunk\", writeChunk: WriteChunk.fromPartial(object.op.writeChunk) };\n }\n break;\n }\n case \"browserControlEnsure\": {\n if (object.op?.browserControlEnsure !== undefined && object.op?.browserControlEnsure !== null) {\n message.op = {\n $case: \"browserControlEnsure\",\n browserControlEnsure: BrowserControlEnsureRequest.fromPartial(object.op.browserControlEnsure),\n };\n }\n break;\n }\n case \"browserFramesOpen\": {\n if (object.op?.browserFramesOpen !== undefined && object.op?.browserFramesOpen !== null) {\n message.op = {\n $case: \"browserFramesOpen\",\n browserFramesOpen: BrowserFramesOpenRequest.fromPartial(object.op.browserFramesOpen),\n };\n }\n break;\n }\n case \"computerFramesOpen\": {\n if (object.op?.computerFramesOpen !== undefined && object.op?.computerFramesOpen !== null) {\n message.op = {\n $case: \"computerFramesOpen\",\n computerFramesOpen: ComputerFramesOpenRequest.fromPartial(object.op.computerFramesOpen),\n };\n }\n break;\n }\n }\n return message;\n },\n};\n\nfunction createBaseControlResponse(): ControlResponse {\n return { requestId: \"\", error: undefined, result: undefined };\n}\n\nexport const ControlResponse: MessageFns<ControlResponse> = {\n encode(message: ControlResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.requestId !== \"\") {\n writer.uint32(10).string(message.requestId);\n }\n if (message.error !== undefined) {\n AgentError.encode(message.error, writer.uint32(18).fork()).join();\n }\n switch (message.result?.$case) {\n case \"ping\":\n PingResponse.encode(message.result.ping, writer.uint32(82).fork()).join();\n break;\n case \"hello\":\n HelloAck.encode(message.result.hello, writer.uint32(90).fork()).join();\n break;\n case \"resume\":\n ResumeResponse.encode(message.result.resume, writer.uint32(98).fork()).join();\n break;\n case \"exec\":\n ExecResponse.encode(message.result.exec, writer.uint32(106).fork()).join();\n break;\n case \"fsRead\":\n FsReadResponse.encode(message.result.fsRead, writer.uint32(114).fork()).join();\n break;\n case \"fsWrite\":\n FsWriteResponse.encode(message.result.fsWrite, writer.uint32(122).fork()).join();\n break;\n case \"fsList\":\n FsListResponse.encode(message.result.fsList, writer.uint32(130).fork()).join();\n break;\n case \"fsMkdir\":\n FsMkdirResponse.encode(message.result.fsMkdir, writer.uint32(138).fork()).join();\n break;\n case \"fsMove\":\n FsMoveResponse.encode(message.result.fsMove, writer.uint32(146).fork()).join();\n break;\n case \"fsStat\":\n FsStatResponse.encode(message.result.fsStat, writer.uint32(154).fork()).join();\n break;\n case \"fsRemove\":\n FsRemoveResponse.encode(message.result.fsRemove, writer.uint32(162).fork()).join();\n break;\n case \"git\":\n GitResponse.encode(message.result.git, writer.uint32(170).fork()).join();\n break;\n case \"ptyOpen\":\n PtyOpenResponse.encode(message.result.ptyOpen, writer.uint32(178).fork()).join();\n break;\n case \"ptyWrite\":\n PtyWriteResponse.encode(message.result.ptyWrite, writer.uint32(186).fork()).join();\n break;\n case \"ptyResize\":\n PtyResizeResponse.encode(message.result.ptyResize, writer.uint32(194).fork()).join();\n break;\n case \"ptyClose\":\n PtyCloseResponse.encode(message.result.ptyClose, writer.uint32(202).fork()).join();\n break;\n case \"desktopEnsure\":\n DesktopEnsureResponse.encode(message.result.desktopEnsure, writer.uint32(210).fork()).join();\n break;\n case \"metrics\":\n MetricsSample.encode(message.result.metrics, writer.uint32(218).fork()).join();\n break;\n case \"updateMayProceed\":\n UpdateMayProceedResponse.encode(message.result.updateMayProceed, writer.uint32(226).fork()).join();\n break;\n case \"desktopInput\":\n DesktopInputResponse.encode(message.result.desktopInput, writer.uint32(234).fork()).join();\n break;\n case \"desktopScreenshot\":\n DesktopScreenshotResponse.encode(message.result.desktopScreenshot, writer.uint32(242).fork()).join();\n break;\n case \"opStart\":\n OpStarted.encode(message.result.opStart, writer.uint32(250).fork()).join();\n break;\n case \"opStatus\":\n OpStatus.encode(message.result.opStatus, writer.uint32(258).fork()).join();\n break;\n case \"writeChunk\":\n WriteChunkAck.encode(message.result.writeChunk, writer.uint32(282).fork()).join();\n break;\n case \"browserControlEnsure\":\n BrowserControlEnsureResponse.encode(message.result.browserControlEnsure, writer.uint32(290).fork()).join();\n break;\n case \"browserFramesOpen\":\n BrowserFramesOpenResponse.encode(message.result.browserFramesOpen, writer.uint32(298).fork()).join();\n break;\n case \"computerFramesOpen\":\n ComputerFramesOpenResponse.encode(message.result.computerFramesOpen, writer.uint32(306).fork()).join();\n break;\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): ControlResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseControlResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.requestId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.error = AgentError.decode(reader, reader.uint32());\n continue;\n }\n case 10: {\n if (tag !== 82) {\n break;\n }\n\n message.result = { $case: \"ping\", ping: PingResponse.decode(reader, reader.uint32()) };\n continue;\n }\n case 11: {\n if (tag !== 90) {\n break;\n }\n\n message.result = { $case: \"hello\", hello: HelloAck.decode(reader, reader.uint32()) };\n continue;\n }\n case 12: {\n if (tag !== 98) {\n break;\n }\n\n message.result = { $case: \"resume\", resume: ResumeResponse.decode(reader, reader.uint32()) };\n continue;\n }\n case 13: {\n if (tag !== 106) {\n break;\n }\n\n message.result = { $case: \"exec\", exec: ExecResponse.decode(reader, reader.uint32()) };\n continue;\n }\n case 14: {\n if (tag !== 114) {\n break;\n }\n\n message.result = { $case: \"fsRead\", fsRead: FsReadResponse.decode(reader, reader.uint32()) };\n continue;\n }\n case 15: {\n if (tag !== 122) {\n break;\n }\n\n message.result = { $case: \"fsWrite\", fsWrite: FsWriteResponse.decode(reader, reader.uint32()) };\n continue;\n }\n case 16: {\n if (tag !== 130) {\n break;\n }\n\n message.result = { $case: \"fsList\", fsList: FsListResponse.decode(reader, reader.uint32()) };\n continue;\n }\n case 17: {\n if (tag !== 138) {\n break;\n }\n\n message.result = { $case: \"fsMkdir\", fsMkdir: FsMkdirResponse.decode(reader, reader.uint32()) };\n continue;\n }\n case 18: {\n if (tag !== 146) {\n break;\n }\n\n message.result = { $case: \"fsMove\", fsMove: FsMoveResponse.decode(reader, reader.uint32()) };\n continue;\n }\n case 19: {\n if (tag !== 154) {\n break;\n }\n\n message.result = { $case: \"fsStat\", fsStat: FsStatResponse.decode(reader, reader.uint32()) };\n continue;\n }\n case 20: {\n if (tag !== 162) {\n break;\n }\n\n message.result = { $case: \"fsRemove\", fsRemove: FsRemoveResponse.decode(reader, reader.uint32()) };\n continue;\n }\n case 21: {\n if (tag !== 170) {\n break;\n }\n\n message.result = { $case: \"git\", git: GitResponse.decode(reader, reader.uint32()) };\n continue;\n }\n case 22: {\n if (tag !== 178) {\n break;\n }\n\n message.result = { $case: \"ptyOpen\", ptyOpen: PtyOpenResponse.decode(reader, reader.uint32()) };\n continue;\n }\n case 23: {\n if (tag !== 186) {\n break;\n }\n\n message.result = { $case: \"ptyWrite\", ptyWrite: PtyWriteResponse.decode(reader, reader.uint32()) };\n continue;\n }\n case 24: {\n if (tag !== 194) {\n break;\n }\n\n message.result = { $case: \"ptyResize\", ptyResize: PtyResizeResponse.decode(reader, reader.uint32()) };\n continue;\n }\n case 25: {\n if (tag !== 202) {\n break;\n }\n\n message.result = { $case: \"ptyClose\", ptyClose: PtyCloseResponse.decode(reader, reader.uint32()) };\n continue;\n }\n case 26: {\n if (tag !== 210) {\n break;\n }\n\n message.result = {\n $case: \"desktopEnsure\",\n desktopEnsure: DesktopEnsureResponse.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 27: {\n if (tag !== 218) {\n break;\n }\n\n message.result = { $case: \"metrics\", metrics: MetricsSample.decode(reader, reader.uint32()) };\n continue;\n }\n case 28: {\n if (tag !== 226) {\n break;\n }\n\n message.result = {\n $case: \"updateMayProceed\",\n updateMayProceed: UpdateMayProceedResponse.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 29: {\n if (tag !== 234) {\n break;\n }\n\n message.result = {\n $case: \"desktopInput\",\n desktopInput: DesktopInputResponse.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 30: {\n if (tag !== 242) {\n break;\n }\n\n message.result = {\n $case: \"desktopScreenshot\",\n desktopScreenshot: DesktopScreenshotResponse.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 31: {\n if (tag !== 250) {\n break;\n }\n\n message.result = { $case: \"opStart\", opStart: OpStarted.decode(reader, reader.uint32()) };\n continue;\n }\n case 32: {\n if (tag !== 258) {\n break;\n }\n\n message.result = { $case: \"opStatus\", opStatus: OpStatus.decode(reader, reader.uint32()) };\n continue;\n }\n case 35: {\n if (tag !== 282) {\n break;\n }\n\n message.result = { $case: \"writeChunk\", writeChunk: WriteChunkAck.decode(reader, reader.uint32()) };\n continue;\n }\n case 36: {\n if (tag !== 290) {\n break;\n }\n\n message.result = {\n $case: \"browserControlEnsure\",\n browserControlEnsure: BrowserControlEnsureResponse.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 37: {\n if (tag !== 298) {\n break;\n }\n\n message.result = {\n $case: \"browserFramesOpen\",\n browserFramesOpen: BrowserFramesOpenResponse.decode(reader, reader.uint32()),\n };\n continue;\n }\n case 38: {\n if (tag !== 306) {\n break;\n }\n\n message.result = {\n $case: \"computerFramesOpen\",\n computerFramesOpen: ComputerFramesOpenResponse.decode(reader, reader.uint32()),\n };\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): ControlResponse {\n return {\n requestId: isSet(object.requestId)\n ? globalThis.String(object.requestId)\n : isSet(object.request_id)\n ? globalThis.String(object.request_id)\n : \"\",\n error: isSet(object.error) ? AgentError.fromJSON(object.error) : undefined,\n result: isSet(object.ping)\n ? { $case: \"ping\", ping: PingResponse.fromJSON(object.ping) }\n : isSet(object.hello)\n ? { $case: \"hello\", hello: HelloAck.fromJSON(object.hello) }\n : isSet(object.resume)\n ? { $case: \"resume\", resume: ResumeResponse.fromJSON(object.resume) }\n : isSet(object.exec)\n ? { $case: \"exec\", exec: ExecResponse.fromJSON(object.exec) }\n : isSet(object.fsRead)\n ? { $case: \"fsRead\", fsRead: FsReadResponse.fromJSON(object.fsRead) }\n : isSet(object.fs_read)\n ? { $case: \"fsRead\", fsRead: FsReadResponse.fromJSON(object.fs_read) }\n : isSet(object.fsWrite)\n ? { $case: \"fsWrite\", fsWrite: FsWriteResponse.fromJSON(object.fsWrite) }\n : isSet(object.fs_write)\n ? { $case: \"fsWrite\", fsWrite: FsWriteResponse.fromJSON(object.fs_write) }\n : isSet(object.fsList)\n ? { $case: \"fsList\", fsList: FsListResponse.fromJSON(object.fsList) }\n : isSet(object.fs_list)\n ? { $case: \"fsList\", fsList: FsListResponse.fromJSON(object.fs_list) }\n : isSet(object.fsMkdir)\n ? { $case: \"fsMkdir\", fsMkdir: FsMkdirResponse.fromJSON(object.fsMkdir) }\n : isSet(object.fs_mkdir)\n ? { $case: \"fsMkdir\", fsMkdir: FsMkdirResponse.fromJSON(object.fs_mkdir) }\n : isSet(object.fsMove)\n ? { $case: \"fsMove\", fsMove: FsMoveResponse.fromJSON(object.fsMove) }\n : isSet(object.fs_move)\n ? { $case: \"fsMove\", fsMove: FsMoveResponse.fromJSON(object.fs_move) }\n : isSet(object.fsStat)\n ? { $case: \"fsStat\", fsStat: FsStatResponse.fromJSON(object.fsStat) }\n : isSet(object.fs_stat)\n ? { $case: \"fsStat\", fsStat: FsStatResponse.fromJSON(object.fs_stat) }\n : isSet(object.fsRemove)\n ? { $case: \"fsRemove\", fsRemove: FsRemoveResponse.fromJSON(object.fsRemove) }\n : isSet(object.fs_remove)\n ? { $case: \"fsRemove\", fsRemove: FsRemoveResponse.fromJSON(object.fs_remove) }\n : isSet(object.git)\n ? { $case: \"git\", git: GitResponse.fromJSON(object.git) }\n : isSet(object.ptyOpen)\n ? { $case: \"ptyOpen\", ptyOpen: PtyOpenResponse.fromJSON(object.ptyOpen) }\n : isSet(object.pty_open)\n ? { $case: \"ptyOpen\", ptyOpen: PtyOpenResponse.fromJSON(object.pty_open) }\n : isSet(object.ptyWrite)\n ? { $case: \"ptyWrite\", ptyWrite: PtyWriteResponse.fromJSON(object.ptyWrite) }\n : isSet(object.pty_write)\n ? { $case: \"ptyWrite\", ptyWrite: PtyWriteResponse.fromJSON(object.pty_write) }\n : isSet(object.ptyResize)\n ? { $case: \"ptyResize\", ptyResize: PtyResizeResponse.fromJSON(object.ptyResize) }\n : isSet(object.pty_resize)\n ? { $case: \"ptyResize\", ptyResize: PtyResizeResponse.fromJSON(object.pty_resize) }\n : isSet(object.ptyClose)\n ? { $case: \"ptyClose\", ptyClose: PtyCloseResponse.fromJSON(object.ptyClose) }\n : isSet(object.pty_close)\n ? { $case: \"ptyClose\", ptyClose: PtyCloseResponse.fromJSON(object.pty_close) }\n : isSet(object.desktopEnsure)\n ? { $case: \"desktopEnsure\", desktopEnsure: DesktopEnsureResponse.fromJSON(object.desktopEnsure) }\n : isSet(object.desktop_ensure)\n ? { $case: \"desktopEnsure\", desktopEnsure: DesktopEnsureResponse.fromJSON(object.desktop_ensure) }\n : isSet(object.metrics)\n ? { $case: \"metrics\", metrics: MetricsSample.fromJSON(object.metrics) }\n : isSet(object.updateMayProceed)\n ? { $case: \"updateMayProceed\", updateMayProceed: UpdateMayProceedResponse.fromJSON(object.updateMayProceed) }\n : isSet(object.update_may_proceed)\n ? { $case: \"updateMayProceed\", updateMayProceed: UpdateMayProceedResponse.fromJSON(object.update_may_proceed) }\n : isSet(object.desktopInput)\n ? { $case: \"desktopInput\", desktopInput: DesktopInputResponse.fromJSON(object.desktopInput) }\n : isSet(object.desktop_input)\n ? { $case: \"desktopInput\", desktopInput: DesktopInputResponse.fromJSON(object.desktop_input) }\n : isSet(object.desktopScreenshot)\n ? {\n $case: \"desktopScreenshot\",\n desktopScreenshot: DesktopScreenshotResponse.fromJSON(object.desktopScreenshot),\n }\n : isSet(object.desktop_screenshot)\n ? {\n $case: \"desktopScreenshot\",\n desktopScreenshot: DesktopScreenshotResponse.fromJSON(object.desktop_screenshot),\n }\n : isSet(object.opStart)\n ? { $case: \"opStart\", opStart: OpStarted.fromJSON(object.opStart) }\n : isSet(object.op_start)\n ? { $case: \"opStart\", opStart: OpStarted.fromJSON(object.op_start) }\n : isSet(object.opStatus)\n ? { $case: \"opStatus\", opStatus: OpStatus.fromJSON(object.opStatus) }\n : isSet(object.op_status)\n ? { $case: \"opStatus\", opStatus: OpStatus.fromJSON(object.op_status) }\n : isSet(object.writeChunk)\n ? { $case: \"writeChunk\", writeChunk: WriteChunkAck.fromJSON(object.writeChunk) }\n : isSet(object.write_chunk)\n ? { $case: \"writeChunk\", writeChunk: WriteChunkAck.fromJSON(object.write_chunk) }\n : isSet(object.browserControlEnsure)\n ? {\n $case: \"browserControlEnsure\",\n browserControlEnsure: BrowserControlEnsureResponse.fromJSON(object.browserControlEnsure),\n }\n : isSet(object.browser_control_ensure)\n ? {\n $case: \"browserControlEnsure\",\n browserControlEnsure: BrowserControlEnsureResponse.fromJSON(object.browser_control_ensure),\n }\n : isSet(object.browserFramesOpen)\n ? {\n $case: \"browserFramesOpen\",\n browserFramesOpen: BrowserFramesOpenResponse.fromJSON(object.browserFramesOpen),\n }\n : isSet(object.browser_frames_open)\n ? {\n $case: \"browserFramesOpen\",\n browserFramesOpen: BrowserFramesOpenResponse.fromJSON(object.browser_frames_open),\n }\n : isSet(object.computerFramesOpen)\n ? {\n $case: \"computerFramesOpen\",\n computerFramesOpen: ComputerFramesOpenResponse.fromJSON(object.computerFramesOpen),\n }\n : isSet(object.computer_frames_open)\n ? {\n $case: \"computerFramesOpen\",\n computerFramesOpen: ComputerFramesOpenResponse.fromJSON(object.computer_frames_open),\n }\n : undefined,\n };\n },\n\n toJSON(message: ControlResponse): unknown {\n const obj: any = {};\n if (message.requestId !== \"\") {\n obj.requestId = message.requestId;\n }\n if (message.error !== undefined) {\n obj.error = AgentError.toJSON(message.error);\n }\n if (message.result?.$case === \"ping\") {\n obj.ping = PingResponse.toJSON(message.result.ping);\n } else if (message.result?.$case === \"hello\") {\n obj.hello = HelloAck.toJSON(message.result.hello);\n } else if (message.result?.$case === \"resume\") {\n obj.resume = ResumeResponse.toJSON(message.result.resume);\n } else if (message.result?.$case === \"exec\") {\n obj.exec = ExecResponse.toJSON(message.result.exec);\n } else if (message.result?.$case === \"fsRead\") {\n obj.fsRead = FsReadResponse.toJSON(message.result.fsRead);\n } else if (message.result?.$case === \"fsWrite\") {\n obj.fsWrite = FsWriteResponse.toJSON(message.result.fsWrite);\n } else if (message.result?.$case === \"fsList\") {\n obj.fsList = FsListResponse.toJSON(message.result.fsList);\n } else if (message.result?.$case === \"fsMkdir\") {\n obj.fsMkdir = FsMkdirResponse.toJSON(message.result.fsMkdir);\n } else if (message.result?.$case === \"fsMove\") {\n obj.fsMove = FsMoveResponse.toJSON(message.result.fsMove);\n } else if (message.result?.$case === \"fsStat\") {\n obj.fsStat = FsStatResponse.toJSON(message.result.fsStat);\n } else if (message.result?.$case === \"fsRemove\") {\n obj.fsRemove = FsRemoveResponse.toJSON(message.result.fsRemove);\n } else if (message.result?.$case === \"git\") {\n obj.git = GitResponse.toJSON(message.result.git);\n } else if (message.result?.$case === \"ptyOpen\") {\n obj.ptyOpen = PtyOpenResponse.toJSON(message.result.ptyOpen);\n } else if (message.result?.$case === \"ptyWrite\") {\n obj.ptyWrite = PtyWriteResponse.toJSON(message.result.ptyWrite);\n } else if (message.result?.$case === \"ptyResize\") {\n obj.ptyResize = PtyResizeResponse.toJSON(message.result.ptyResize);\n } else if (message.result?.$case === \"ptyClose\") {\n obj.ptyClose = PtyCloseResponse.toJSON(message.result.ptyClose);\n } else if (message.result?.$case === \"desktopEnsure\") {\n obj.desktopEnsure = DesktopEnsureResponse.toJSON(message.result.desktopEnsure);\n } else if (message.result?.$case === \"metrics\") {\n obj.metrics = MetricsSample.toJSON(message.result.metrics);\n } else if (message.result?.$case === \"updateMayProceed\") {\n obj.updateMayProceed = UpdateMayProceedResponse.toJSON(message.result.updateMayProceed);\n } else if (message.result?.$case === \"desktopInput\") {\n obj.desktopInput = DesktopInputResponse.toJSON(message.result.desktopInput);\n } else if (message.result?.$case === \"desktopScreenshot\") {\n obj.desktopScreenshot = DesktopScreenshotResponse.toJSON(message.result.desktopScreenshot);\n } else if (message.result?.$case === \"opStart\") {\n obj.opStart = OpStarted.toJSON(message.result.opStart);\n } else if (message.result?.$case === \"opStatus\") {\n obj.opStatus = OpStatus.toJSON(message.result.opStatus);\n } else if (message.result?.$case === \"writeChunk\") {\n obj.writeChunk = WriteChunkAck.toJSON(message.result.writeChunk);\n } else if (message.result?.$case === \"browserControlEnsure\") {\n obj.browserControlEnsure = BrowserControlEnsureResponse.toJSON(message.result.browserControlEnsure);\n } else if (message.result?.$case === \"browserFramesOpen\") {\n obj.browserFramesOpen = BrowserFramesOpenResponse.toJSON(message.result.browserFramesOpen);\n } else if (message.result?.$case === \"computerFramesOpen\") {\n obj.computerFramesOpen = ComputerFramesOpenResponse.toJSON(message.result.computerFramesOpen);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<ControlResponse>, I>>(base?: I): ControlResponse {\n return ControlResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<ControlResponse>, I>>(object: I): ControlResponse {\n const message = createBaseControlResponse();\n message.requestId = object.requestId ?? \"\";\n message.error = (object.error !== undefined && object.error !== null)\n ? AgentError.fromPartial(object.error)\n : undefined;\n switch (object.result?.$case) {\n case \"ping\": {\n if (object.result?.ping !== undefined && object.result?.ping !== null) {\n message.result = { $case: \"ping\", ping: PingResponse.fromPartial(object.result.ping) };\n }\n break;\n }\n case \"hello\": {\n if (object.result?.hello !== undefined && object.result?.hello !== null) {\n message.result = { $case: \"hello\", hello: HelloAck.fromPartial(object.result.hello) };\n }\n break;\n }\n case \"resume\": {\n if (object.result?.resume !== undefined && object.result?.resume !== null) {\n message.result = { $case: \"resume\", resume: ResumeResponse.fromPartial(object.result.resume) };\n }\n break;\n }\n case \"exec\": {\n if (object.result?.exec !== undefined && object.result?.exec !== null) {\n message.result = { $case: \"exec\", exec: ExecResponse.fromPartial(object.result.exec) };\n }\n break;\n }\n case \"fsRead\": {\n if (object.result?.fsRead !== undefined && object.result?.fsRead !== null) {\n message.result = { $case: \"fsRead\", fsRead: FsReadResponse.fromPartial(object.result.fsRead) };\n }\n break;\n }\n case \"fsWrite\": {\n if (object.result?.fsWrite !== undefined && object.result?.fsWrite !== null) {\n message.result = { $case: \"fsWrite\", fsWrite: FsWriteResponse.fromPartial(object.result.fsWrite) };\n }\n break;\n }\n case \"fsList\": {\n if (object.result?.fsList !== undefined && object.result?.fsList !== null) {\n message.result = { $case: \"fsList\", fsList: FsListResponse.fromPartial(object.result.fsList) };\n }\n break;\n }\n case \"fsMkdir\": {\n if (object.result?.fsMkdir !== undefined && object.result?.fsMkdir !== null) {\n message.result = { $case: \"fsMkdir\", fsMkdir: FsMkdirResponse.fromPartial(object.result.fsMkdir) };\n }\n break;\n }\n case \"fsMove\": {\n if (object.result?.fsMove !== undefined && object.result?.fsMove !== null) {\n message.result = { $case: \"fsMove\", fsMove: FsMoveResponse.fromPartial(object.result.fsMove) };\n }\n break;\n }\n case \"fsStat\": {\n if (object.result?.fsStat !== undefined && object.result?.fsStat !== null) {\n message.result = { $case: \"fsStat\", fsStat: FsStatResponse.fromPartial(object.result.fsStat) };\n }\n break;\n }\n case \"fsRemove\": {\n if (object.result?.fsRemove !== undefined && object.result?.fsRemove !== null) {\n message.result = { $case: \"fsRemove\", fsRemove: FsRemoveResponse.fromPartial(object.result.fsRemove) };\n }\n break;\n }\n case \"git\": {\n if (object.result?.git !== undefined && object.result?.git !== null) {\n message.result = { $case: \"git\", git: GitResponse.fromPartial(object.result.git) };\n }\n break;\n }\n case \"ptyOpen\": {\n if (object.result?.ptyOpen !== undefined && object.result?.ptyOpen !== null) {\n message.result = { $case: \"ptyOpen\", ptyOpen: PtyOpenResponse.fromPartial(object.result.ptyOpen) };\n }\n break;\n }\n case \"ptyWrite\": {\n if (object.result?.ptyWrite !== undefined && object.result?.ptyWrite !== null) {\n message.result = { $case: \"ptyWrite\", ptyWrite: PtyWriteResponse.fromPartial(object.result.ptyWrite) };\n }\n break;\n }\n case \"ptyResize\": {\n if (object.result?.ptyResize !== undefined && object.result?.ptyResize !== null) {\n message.result = { $case: \"ptyResize\", ptyResize: PtyResizeResponse.fromPartial(object.result.ptyResize) };\n }\n break;\n }\n case \"ptyClose\": {\n if (object.result?.ptyClose !== undefined && object.result?.ptyClose !== null) {\n message.result = { $case: \"ptyClose\", ptyClose: PtyCloseResponse.fromPartial(object.result.ptyClose) };\n }\n break;\n }\n case \"desktopEnsure\": {\n if (object.result?.desktopEnsure !== undefined && object.result?.desktopEnsure !== null) {\n message.result = {\n $case: \"desktopEnsure\",\n desktopEnsure: DesktopEnsureResponse.fromPartial(object.result.desktopEnsure),\n };\n }\n break;\n }\n case \"metrics\": {\n if (object.result?.metrics !== undefined && object.result?.metrics !== null) {\n message.result = { $case: \"metrics\", metrics: MetricsSample.fromPartial(object.result.metrics) };\n }\n break;\n }\n case \"updateMayProceed\": {\n if (object.result?.updateMayProceed !== undefined && object.result?.updateMayProceed !== null) {\n message.result = {\n $case: \"updateMayProceed\",\n updateMayProceed: UpdateMayProceedResponse.fromPartial(object.result.updateMayProceed),\n };\n }\n break;\n }\n case \"desktopInput\": {\n if (object.result?.desktopInput !== undefined && object.result?.desktopInput !== null) {\n message.result = {\n $case: \"desktopInput\",\n desktopInput: DesktopInputResponse.fromPartial(object.result.desktopInput),\n };\n }\n break;\n }\n case \"desktopScreenshot\": {\n if (object.result?.desktopScreenshot !== undefined && object.result?.desktopScreenshot !== null) {\n message.result = {\n $case: \"desktopScreenshot\",\n desktopScreenshot: DesktopScreenshotResponse.fromPartial(object.result.desktopScreenshot),\n };\n }\n break;\n }\n case \"opStart\": {\n if (object.result?.opStart !== undefined && object.result?.opStart !== null) {\n message.result = { $case: \"opStart\", opStart: OpStarted.fromPartial(object.result.opStart) };\n }\n break;\n }\n case \"opStatus\": {\n if (object.result?.opStatus !== undefined && object.result?.opStatus !== null) {\n message.result = { $case: \"opStatus\", opStatus: OpStatus.fromPartial(object.result.opStatus) };\n }\n break;\n }\n case \"writeChunk\": {\n if (object.result?.writeChunk !== undefined && object.result?.writeChunk !== null) {\n message.result = { $case: \"writeChunk\", writeChunk: WriteChunkAck.fromPartial(object.result.writeChunk) };\n }\n break;\n }\n case \"browserControlEnsure\": {\n if (object.result?.browserControlEnsure !== undefined && object.result?.browserControlEnsure !== null) {\n message.result = {\n $case: \"browserControlEnsure\",\n browserControlEnsure: BrowserControlEnsureResponse.fromPartial(object.result.browserControlEnsure),\n };\n }\n break;\n }\n case \"browserFramesOpen\": {\n if (object.result?.browserFramesOpen !== undefined && object.result?.browserFramesOpen !== null) {\n message.result = {\n $case: \"browserFramesOpen\",\n browserFramesOpen: BrowserFramesOpenResponse.fromPartial(object.result.browserFramesOpen),\n };\n }\n break;\n }\n case \"computerFramesOpen\": {\n if (object.result?.computerFramesOpen !== undefined && object.result?.computerFramesOpen !== null) {\n message.result = {\n $case: \"computerFramesOpen\",\n computerFramesOpen: ComputerFramesOpenResponse.fromPartial(object.result.computerFramesOpen),\n };\n }\n break;\n }\n }\n return message;\n },\n};\n\nfunction createBaseHelloAck(): HelloAck {\n return { epoch: 0, resumeToken: \"\", heartbeatIntervalMs: 0 };\n}\n\nexport const HelloAck: MessageFns<HelloAck> = {\n encode(message: HelloAck, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.epoch !== 0) {\n writer.uint32(8).uint32(message.epoch);\n }\n if (message.resumeToken !== \"\") {\n writer.uint32(18).string(message.resumeToken);\n }\n if (message.heartbeatIntervalMs !== 0) {\n writer.uint32(24).uint32(message.heartbeatIntervalMs);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): HelloAck {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHelloAck();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.epoch = reader.uint32();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.resumeToken = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.heartbeatIntervalMs = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): HelloAck {\n return {\n epoch: isSet(object.epoch) ? globalThis.Number(object.epoch) : 0,\n resumeToken: isSet(object.resumeToken)\n ? globalThis.String(object.resumeToken)\n : isSet(object.resume_token)\n ? globalThis.String(object.resume_token)\n : \"\",\n heartbeatIntervalMs: isSet(object.heartbeatIntervalMs)\n ? globalThis.Number(object.heartbeatIntervalMs)\n : isSet(object.heartbeat_interval_ms)\n ? globalThis.Number(object.heartbeat_interval_ms)\n : 0,\n };\n },\n\n toJSON(message: HelloAck): unknown {\n const obj: any = {};\n if (message.epoch !== 0) {\n obj.epoch = Math.round(message.epoch);\n }\n if (message.resumeToken !== \"\") {\n obj.resumeToken = message.resumeToken;\n }\n if (message.heartbeatIntervalMs !== 0) {\n obj.heartbeatIntervalMs = Math.round(message.heartbeatIntervalMs);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<HelloAck>, I>>(base?: I): HelloAck {\n return HelloAck.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<HelloAck>, I>>(object: I): HelloAck {\n const message = createBaseHelloAck();\n message.epoch = object.epoch ?? 0;\n message.resumeToken = object.resumeToken ?? \"\";\n message.heartbeatIntervalMs = object.heartbeatIntervalMs ?? 0;\n return message;\n },\n};\n\nfunction createBaseAgentEvent(): AgentEvent {\n return { agentId: \"\", event: undefined };\n}\n\nexport const AgentEvent: MessageFns<AgentEvent> = {\n encode(message: AgentEvent, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.agentId !== \"\") {\n writer.uint32(10).string(message.agentId);\n }\n switch (message.event?.$case) {\n case \"heartbeat\":\n Heartbeat.encode(message.event.heartbeat, writer.uint32(82).fork()).join();\n break;\n case \"goingOffline\":\n GoingOffline.encode(message.event.goingOffline, writer.uint32(90).fork()).join();\n break;\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): AgentEvent {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAgentEvent();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.agentId = reader.string();\n continue;\n }\n case 10: {\n if (tag !== 82) {\n break;\n }\n\n message.event = { $case: \"heartbeat\", heartbeat: Heartbeat.decode(reader, reader.uint32()) };\n continue;\n }\n case 11: {\n if (tag !== 90) {\n break;\n }\n\n message.event = { $case: \"goingOffline\", goingOffline: GoingOffline.decode(reader, reader.uint32()) };\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): AgentEvent {\n return {\n agentId: isSet(object.agentId)\n ? globalThis.String(object.agentId)\n : isSet(object.agent_id)\n ? globalThis.String(object.agent_id)\n : \"\",\n event: isSet(object.heartbeat)\n ? { $case: \"heartbeat\", heartbeat: Heartbeat.fromJSON(object.heartbeat) }\n : isSet(object.goingOffline)\n ? { $case: \"goingOffline\", goingOffline: GoingOffline.fromJSON(object.goingOffline) }\n : isSet(object.going_offline)\n ? { $case: \"goingOffline\", goingOffline: GoingOffline.fromJSON(object.going_offline) }\n : undefined,\n };\n },\n\n toJSON(message: AgentEvent): unknown {\n const obj: any = {};\n if (message.agentId !== \"\") {\n obj.agentId = message.agentId;\n }\n if (message.event?.$case === \"heartbeat\") {\n obj.heartbeat = Heartbeat.toJSON(message.event.heartbeat);\n } else if (message.event?.$case === \"goingOffline\") {\n obj.goingOffline = GoingOffline.toJSON(message.event.goingOffline);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<AgentEvent>, I>>(base?: I): AgentEvent {\n return AgentEvent.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<AgentEvent>, I>>(object: I): AgentEvent {\n const message = createBaseAgentEvent();\n message.agentId = object.agentId ?? \"\";\n switch (object.event?.$case) {\n case \"heartbeat\": {\n if (object.event?.heartbeat !== undefined && object.event?.heartbeat !== null) {\n message.event = { $case: \"heartbeat\", heartbeat: Heartbeat.fromPartial(object.event.heartbeat) };\n }\n break;\n }\n case \"goingOffline\": {\n if (object.event?.goingOffline !== undefined && object.event?.goingOffline !== null) {\n message.event = { $case: \"goingOffline\", goingOffline: GoingOffline.fromPartial(object.event.goingOffline) };\n }\n break;\n }\n }\n return message;\n },\n};\n\nfunction createBaseAgentEventAck(): AgentEventAck {\n return { ack: undefined };\n}\n\nexport const AgentEventAck: MessageFns<AgentEventAck> = {\n encode(message: AgentEventAck, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n switch (message.ack?.$case) {\n case \"heartbeat\":\n HeartbeatAck.encode(message.ack.heartbeat, writer.uint32(82).fork()).join();\n break;\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): AgentEventAck {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAgentEventAck();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 10: {\n if (tag !== 82) {\n break;\n }\n\n message.ack = { $case: \"heartbeat\", heartbeat: HeartbeatAck.decode(reader, reader.uint32()) };\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): AgentEventAck {\n return {\n ack: isSet(object.heartbeat)\n ? { $case: \"heartbeat\", heartbeat: HeartbeatAck.fromJSON(object.heartbeat) }\n : undefined,\n };\n },\n\n toJSON(message: AgentEventAck): unknown {\n const obj: any = {};\n if (message.ack?.$case === \"heartbeat\") {\n obj.heartbeat = HeartbeatAck.toJSON(message.ack.heartbeat);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<AgentEventAck>, I>>(base?: I): AgentEventAck {\n return AgentEventAck.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<AgentEventAck>, I>>(object: I): AgentEventAck {\n const message = createBaseAgentEventAck();\n switch (object.ack?.$case) {\n case \"heartbeat\": {\n if (object.ack?.heartbeat !== undefined && object.ack?.heartbeat !== null) {\n message.ack = { $case: \"heartbeat\", heartbeat: HeartbeatAck.fromPartial(object.ack.heartbeat) };\n }\n break;\n }\n }\n return message;\n },\n};\n\nfunction createBaseStreamChannel(): StreamChannel {\n return { channelId: \"\", workspaceId: \"\", agentId: \"\", kind: 0, port: 0 };\n}\n\nexport const StreamChannel: MessageFns<StreamChannel> = {\n encode(message: StreamChannel, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.channelId !== \"\") {\n writer.uint32(10).string(message.channelId);\n }\n if (message.workspaceId !== \"\") {\n writer.uint32(18).string(message.workspaceId);\n }\n if (message.agentId !== \"\") {\n writer.uint32(26).string(message.agentId);\n }\n if (message.kind !== 0) {\n writer.uint32(32).int32(message.kind);\n }\n if (message.port !== 0) {\n writer.uint32(40).uint32(message.port);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): StreamChannel {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStreamChannel();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.channelId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.workspaceId = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.agentId = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.kind = reader.int32() as any;\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.port = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): StreamChannel {\n return {\n channelId: isSet(object.channelId)\n ? globalThis.String(object.channelId)\n : isSet(object.channel_id)\n ? globalThis.String(object.channel_id)\n : \"\",\n workspaceId: isSet(object.workspaceId)\n ? globalThis.String(object.workspaceId)\n : isSet(object.workspace_id)\n ? globalThis.String(object.workspace_id)\n : \"\",\n agentId: isSet(object.agentId)\n ? globalThis.String(object.agentId)\n : isSet(object.agent_id)\n ? globalThis.String(object.agent_id)\n : \"\",\n kind: isSet(object.kind) ? streamKindFromJSON(object.kind) : 0,\n port: isSet(object.port) ? globalThis.Number(object.port) : 0,\n };\n },\n\n toJSON(message: StreamChannel): unknown {\n const obj: any = {};\n if (message.channelId !== \"\") {\n obj.channelId = message.channelId;\n }\n if (message.workspaceId !== \"\") {\n obj.workspaceId = message.workspaceId;\n }\n if (message.agentId !== \"\") {\n obj.agentId = message.agentId;\n }\n if (message.kind !== 0) {\n obj.kind = streamKindToJSON(message.kind);\n }\n if (message.port !== 0) {\n obj.port = Math.round(message.port);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<StreamChannel>, I>>(base?: I): StreamChannel {\n return StreamChannel.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<StreamChannel>, I>>(object: I): StreamChannel {\n const message = createBaseStreamChannel();\n message.channelId = object.channelId ?? \"\";\n message.workspaceId = object.workspaceId ?? \"\";\n message.agentId = object.agentId ?? \"\";\n message.kind = object.kind ?? 0;\n message.port = object.port ?? 0;\n return message;\n },\n};\n\nfunction createBaseStreamOpen(): StreamOpen {\n return { channel: undefined, token: \"\", role: 0, resumeFromSeq: \"0\" };\n}\n\nexport const StreamOpen: MessageFns<StreamOpen> = {\n encode(message: StreamOpen, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.channel !== undefined) {\n StreamChannel.encode(message.channel, writer.uint32(10).fork()).join();\n }\n if (message.token !== \"\") {\n writer.uint32(18).string(message.token);\n }\n if (message.role !== 0) {\n writer.uint32(24).int32(message.role);\n }\n if (message.resumeFromSeq !== \"0\") {\n writer.uint32(32).uint64(message.resumeFromSeq);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): StreamOpen {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStreamOpen();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.channel = StreamChannel.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.token = reader.string();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.role = reader.int32() as any;\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.resumeFromSeq = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): StreamOpen {\n return {\n channel: isSet(object.channel) ? StreamChannel.fromJSON(object.channel) : undefined,\n token: isSet(object.token) ? globalThis.String(object.token) : \"\",\n role: isSet(object.role) ? streamRoleFromJSON(object.role) : 0,\n resumeFromSeq: isSet(object.resumeFromSeq)\n ? globalThis.String(object.resumeFromSeq)\n : isSet(object.resume_from_seq)\n ? globalThis.String(object.resume_from_seq)\n : \"0\",\n };\n },\n\n toJSON(message: StreamOpen): unknown {\n const obj: any = {};\n if (message.channel !== undefined) {\n obj.channel = StreamChannel.toJSON(message.channel);\n }\n if (message.token !== \"\") {\n obj.token = message.token;\n }\n if (message.role !== 0) {\n obj.role = streamRoleToJSON(message.role);\n }\n if (message.resumeFromSeq !== \"0\") {\n obj.resumeFromSeq = message.resumeFromSeq;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<StreamOpen>, I>>(base?: I): StreamOpen {\n return StreamOpen.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<StreamOpen>, I>>(object: I): StreamOpen {\n const message = createBaseStreamOpen();\n message.channel = (object.channel !== undefined && object.channel !== null)\n ? StreamChannel.fromPartial(object.channel)\n : undefined;\n message.token = object.token ?? \"\";\n message.role = object.role ?? 0;\n message.resumeFromSeq = object.resumeFromSeq ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseStreamOpenAck(): StreamOpenAck {\n return { accepted: false, error: undefined, resumeFromSeq: \"0\" };\n}\n\nexport const StreamOpenAck: MessageFns<StreamOpenAck> = {\n encode(message: StreamOpenAck, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.accepted !== false) {\n writer.uint32(8).bool(message.accepted);\n }\n if (message.error !== undefined) {\n AgentError.encode(message.error, writer.uint32(18).fork()).join();\n }\n if (message.resumeFromSeq !== \"0\") {\n writer.uint32(24).uint64(message.resumeFromSeq);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): StreamOpenAck {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStreamOpenAck();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.accepted = reader.bool();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.error = AgentError.decode(reader, reader.uint32());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.resumeFromSeq = reader.uint64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): StreamOpenAck {\n return {\n accepted: isSet(object.accepted) ? globalThis.Boolean(object.accepted) : false,\n error: isSet(object.error) ? AgentError.fromJSON(object.error) : undefined,\n resumeFromSeq: isSet(object.resumeFromSeq)\n ? globalThis.String(object.resumeFromSeq)\n : isSet(object.resume_from_seq)\n ? globalThis.String(object.resume_from_seq)\n : \"0\",\n };\n },\n\n toJSON(message: StreamOpenAck): unknown {\n const obj: any = {};\n if (message.accepted !== false) {\n obj.accepted = message.accepted;\n }\n if (message.error !== undefined) {\n obj.error = AgentError.toJSON(message.error);\n }\n if (message.resumeFromSeq !== \"0\") {\n obj.resumeFromSeq = message.resumeFromSeq;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<StreamOpenAck>, I>>(base?: I): StreamOpenAck {\n return StreamOpenAck.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<StreamOpenAck>, I>>(object: I): StreamOpenAck {\n const message = createBaseStreamOpenAck();\n message.accepted = object.accepted ?? false;\n message.error = (object.error !== undefined && object.error !== null)\n ? AgentError.fromPartial(object.error)\n : undefined;\n message.resumeFromSeq = object.resumeFromSeq ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseStreamFrame(): StreamFrame {\n return { channelId: \"\", seq: \"0\", data: new Uint8Array(0), producedAtMs: \"0\" };\n}\n\nexport const StreamFrame: MessageFns<StreamFrame> = {\n encode(message: StreamFrame, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.channelId !== \"\") {\n writer.uint32(10).string(message.channelId);\n }\n if (message.seq !== \"0\") {\n writer.uint32(16).uint64(message.seq);\n }\n if (message.data.length !== 0) {\n writer.uint32(26).bytes(message.data);\n }\n if (message.producedAtMs !== \"0\") {\n writer.uint32(32).int64(message.producedAtMs);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): StreamFrame {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStreamFrame();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.channelId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.seq = reader.uint64().toString();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.data = reader.bytes();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.producedAtMs = reader.int64().toString();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): StreamFrame {\n return {\n channelId: isSet(object.channelId)\n ? globalThis.String(object.channelId)\n : isSet(object.channel_id)\n ? globalThis.String(object.channel_id)\n : \"\",\n seq: isSet(object.seq) ? globalThis.String(object.seq) : \"0\",\n data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array(0),\n producedAtMs: isSet(object.producedAtMs)\n ? globalThis.String(object.producedAtMs)\n : isSet(object.produced_at_ms)\n ? globalThis.String(object.produced_at_ms)\n : \"0\",\n };\n },\n\n toJSON(message: StreamFrame): unknown {\n const obj: any = {};\n if (message.channelId !== \"\") {\n obj.channelId = message.channelId;\n }\n if (message.seq !== \"0\") {\n obj.seq = message.seq;\n }\n if (message.data.length !== 0) {\n obj.data = base64FromBytes(message.data);\n }\n if (message.producedAtMs !== \"0\") {\n obj.producedAtMs = message.producedAtMs;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<StreamFrame>, I>>(base?: I): StreamFrame {\n return StreamFrame.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<StreamFrame>, I>>(object: I): StreamFrame {\n const message = createBaseStreamFrame();\n message.channelId = object.channelId ?? \"\";\n message.seq = object.seq ?? \"0\";\n message.data = object.data ?? new Uint8Array(0);\n message.producedAtMs = object.producedAtMs ?? \"0\";\n return message;\n },\n};\n\nfunction createBaseStreamClose(): StreamClose {\n return { channelId: \"\", reason: 0, message: \"\" };\n}\n\nexport const StreamClose: MessageFns<StreamClose> = {\n encode(message: StreamClose, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.channelId !== \"\") {\n writer.uint32(10).string(message.channelId);\n }\n if (message.reason !== 0) {\n writer.uint32(16).int32(message.reason);\n }\n if (message.message !== \"\") {\n writer.uint32(26).string(message.message);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): StreamClose {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStreamClose();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.channelId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.reason = reader.int32() as any;\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.message = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): StreamClose {\n return {\n channelId: isSet(object.channelId)\n ? globalThis.String(object.channelId)\n : isSet(object.channel_id)\n ? globalThis.String(object.channel_id)\n : \"\",\n reason: isSet(object.reason) ? streamCloseReasonFromJSON(object.reason) : 0,\n message: isSet(object.message) ? globalThis.String(object.message) : \"\",\n };\n },\n\n toJSON(message: StreamClose): unknown {\n const obj: any = {};\n if (message.channelId !== \"\") {\n obj.channelId = message.channelId;\n }\n if (message.reason !== 0) {\n obj.reason = streamCloseReasonToJSON(message.reason);\n }\n if (message.message !== \"\") {\n obj.message = message.message;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<StreamClose>, I>>(base?: I): StreamClose {\n return StreamClose.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<StreamClose>, I>>(object: I): StreamClose {\n const message = createBaseStreamClose();\n message.channelId = object.channelId ?? \"\";\n message.reason = object.reason ?? 0;\n message.message = object.message ?? \"\";\n return message;\n },\n};\n\nfunction createBaseDesktopInput(): DesktopInput {\n return { channelId: \"\", event: undefined };\n}\n\nexport const DesktopInput: MessageFns<DesktopInput> = {\n encode(message: DesktopInput, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.channelId !== \"\") {\n writer.uint32(10).string(message.channelId);\n }\n switch (message.event?.$case) {\n case \"pointer\":\n PointerEvent.encode(message.event.pointer, writer.uint32(18).fork()).join();\n break;\n case \"key\":\n KeyEvent.encode(message.event.key, writer.uint32(26).fork()).join();\n break;\n case \"scroll\":\n ScrollEvent.encode(message.event.scroll, writer.uint32(34).fork()).join();\n break;\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): DesktopInput {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseDesktopInput();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.channelId = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.event = { $case: \"pointer\", pointer: PointerEvent.decode(reader, reader.uint32()) };\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.event = { $case: \"key\", key: KeyEvent.decode(reader, reader.uint32()) };\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.event = { $case: \"scroll\", scroll: ScrollEvent.decode(reader, reader.uint32()) };\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): DesktopInput {\n return {\n channelId: isSet(object.channelId)\n ? globalThis.String(object.channelId)\n : isSet(object.channel_id)\n ? globalThis.String(object.channel_id)\n : \"\",\n event: isSet(object.pointer)\n ? { $case: \"pointer\", pointer: PointerEvent.fromJSON(object.pointer) }\n : isSet(object.key)\n ? { $case: \"key\", key: KeyEvent.fromJSON(object.key) }\n : isSet(object.scroll)\n ? { $case: \"scroll\", scroll: ScrollEvent.fromJSON(object.scroll) }\n : undefined,\n };\n },\n\n toJSON(message: DesktopInput): unknown {\n const obj: any = {};\n if (message.channelId !== \"\") {\n obj.channelId = message.channelId;\n }\n if (message.event?.$case === \"pointer\") {\n obj.pointer = PointerEvent.toJSON(message.event.pointer);\n } else if (message.event?.$case === \"key\") {\n obj.key = KeyEvent.toJSON(message.event.key);\n } else if (message.event?.$case === \"scroll\") {\n obj.scroll = ScrollEvent.toJSON(message.event.scroll);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<DesktopInput>, I>>(base?: I): DesktopInput {\n return DesktopInput.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<DesktopInput>, I>>(object: I): DesktopInput {\n const message = createBaseDesktopInput();\n message.channelId = object.channelId ?? \"\";\n switch (object.event?.$case) {\n case \"pointer\": {\n if (object.event?.pointer !== undefined && object.event?.pointer !== null) {\n message.event = { $case: \"pointer\", pointer: PointerEvent.fromPartial(object.event.pointer) };\n }\n break;\n }\n case \"key\": {\n if (object.event?.key !== undefined && object.event?.key !== null) {\n message.event = { $case: \"key\", key: KeyEvent.fromPartial(object.event.key) };\n }\n break;\n }\n case \"scroll\": {\n if (object.event?.scroll !== undefined && object.event?.scroll !== null) {\n message.event = { $case: \"scroll\", scroll: ScrollEvent.fromPartial(object.event.scroll) };\n }\n break;\n }\n }\n return message;\n },\n};\n\nfunction createBasePointerEvent(): PointerEvent {\n return { x: 0, y: 0, action: 0, button: 0 };\n}\n\nexport const PointerEvent: MessageFns<PointerEvent> = {\n encode(message: PointerEvent, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.x !== 0) {\n writer.uint32(8).int32(message.x);\n }\n if (message.y !== 0) {\n writer.uint32(16).int32(message.y);\n }\n if (message.action !== 0) {\n writer.uint32(24).int32(message.action);\n }\n if (message.button !== 0) {\n writer.uint32(32).int32(message.button);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): PointerEvent {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePointerEvent();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.x = reader.int32();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.y = reader.int32();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.action = reader.int32() as any;\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.button = reader.int32() as any;\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): PointerEvent {\n return {\n x: isSet(object.x) ? globalThis.Number(object.x) : 0,\n y: isSet(object.y) ? globalThis.Number(object.y) : 0,\n action: isSet(object.action) ? pointerActionFromJSON(object.action) : 0,\n button: isSet(object.button) ? pointerButtonFromJSON(object.button) : 0,\n };\n },\n\n toJSON(message: PointerEvent): unknown {\n const obj: any = {};\n if (message.x !== 0) {\n obj.x = Math.round(message.x);\n }\n if (message.y !== 0) {\n obj.y = Math.round(message.y);\n }\n if (message.action !== 0) {\n obj.action = pointerActionToJSON(message.action);\n }\n if (message.button !== 0) {\n obj.button = pointerButtonToJSON(message.button);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<PointerEvent>, I>>(base?: I): PointerEvent {\n return PointerEvent.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<PointerEvent>, I>>(object: I): PointerEvent {\n const message = createBasePointerEvent();\n message.x = object.x ?? 0;\n message.y = object.y ?? 0;\n message.action = object.action ?? 0;\n message.button = object.button ?? 0;\n return message;\n },\n};\n\nfunction createBaseKeyEvent(): KeyEvent {\n return { key: \"\", isText: false, action: 0 };\n}\n\nexport const KeyEvent: MessageFns<KeyEvent> = {\n encode(message: KeyEvent, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.isText !== false) {\n writer.uint32(16).bool(message.isText);\n }\n if (message.action !== 0) {\n writer.uint32(24).int32(message.action);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): KeyEvent {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseKeyEvent();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.isText = reader.bool();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.action = reader.int32() as any;\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): KeyEvent {\n return {\n key: isSet(object.key) ? globalThis.String(object.key) : \"\",\n isText: isSet(object.isText)\n ? globalThis.Boolean(object.isText)\n : isSet(object.is_text)\n ? globalThis.Boolean(object.is_text)\n : false,\n action: isSet(object.action) ? keyActionFromJSON(object.action) : 0,\n };\n },\n\n toJSON(message: KeyEvent): unknown {\n const obj: any = {};\n if (message.key !== \"\") {\n obj.key = message.key;\n }\n if (message.isText !== false) {\n obj.isText = message.isText;\n }\n if (message.action !== 0) {\n obj.action = keyActionToJSON(message.action);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<KeyEvent>, I>>(base?: I): KeyEvent {\n return KeyEvent.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<KeyEvent>, I>>(object: I): KeyEvent {\n const message = createBaseKeyEvent();\n message.key = object.key ?? \"\";\n message.isText = object.isText ?? false;\n message.action = object.action ?? 0;\n return message;\n },\n};\n\nfunction createBaseScrollEvent(): ScrollEvent {\n return { x: 0, y: 0, deltaX: 0, deltaY: 0 };\n}\n\nexport const ScrollEvent: MessageFns<ScrollEvent> = {\n encode(message: ScrollEvent, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.x !== 0) {\n writer.uint32(8).int32(message.x);\n }\n if (message.y !== 0) {\n writer.uint32(16).int32(message.y);\n }\n if (message.deltaX !== 0) {\n writer.uint32(24).int32(message.deltaX);\n }\n if (message.deltaY !== 0) {\n writer.uint32(32).int32(message.deltaY);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): ScrollEvent {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n const end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseScrollEvent();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.x = reader.int32();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.y = reader.int32();\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.deltaX = reader.int32();\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.deltaY = reader.int32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): ScrollEvent {\n return {\n x: isSet(object.x) ? globalThis.Number(object.x) : 0,\n y: isSet(object.y) ? globalThis.Number(object.y) : 0,\n deltaX: isSet(object.deltaX)\n ? globalThis.Number(object.deltaX)\n : isSet(object.delta_x)\n ? globalThis.Number(object.delta_x)\n : 0,\n deltaY: isSet(object.deltaY)\n ? globalThis.Number(object.deltaY)\n : isSet(object.delta_y)\n ? globalThis.Number(object.delta_y)\n : 0,\n };\n },\n\n toJSON(message: ScrollEvent): unknown {\n const obj: any = {};\n if (message.x !== 0) {\n obj.x = Math.round(message.x);\n }\n if (message.y !== 0) {\n obj.y = Math.round(message.y);\n }\n if (message.deltaX !== 0) {\n obj.deltaX = Math.round(message.deltaX);\n }\n if (message.deltaY !== 0) {\n obj.deltaY = Math.round(message.deltaY);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<ScrollEvent>, I>>(base?: I): ScrollEvent {\n return ScrollEvent.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<ScrollEvent>, I>>(object: I): ScrollEvent {\n const message = createBaseScrollEvent();\n message.x = object.x ?? 0;\n message.y = object.y ?? 0;\n message.deltaX = object.deltaX ?? 0;\n message.deltaY = object.deltaY ?? 0;\n return message;\n },\n};\n\nfunction bytesFromBase64(b64: string): Uint8Array {\n if ((globalThis as any).Buffer) {\n return Uint8Array.from((globalThis as any).Buffer.from(b64, \"base64\"));\n } else {\n const bin = globalThis.atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n }\n}\n\nfunction base64FromBytes(arr: Uint8Array): string {\n if ((globalThis as any).Buffer) {\n return (globalThis as any).Buffer.from(arr).toString(\"base64\");\n } else {\n const bin: string[] = [];\n arr.forEach((byte) => {\n bin.push(globalThis.String.fromCharCode(byte));\n });\n return globalThis.btoa(bin.join(\"\"));\n }\n}\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial<T> = T extends Builtin ? T\n : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>\n : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>\n : T extends { $case: string } ? { [K in keyof Omit<T, \"$case\">]?: DeepPartial<T[K]> } & { $case: T[\"$case\"] }\n : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\ntype KeysOfUnion<T> = T extends T ? keyof T : never;\nexport type Exact<P, I extends P> = P extends Builtin ? P\n : P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };\n\nfunction isObject(value: any): boolean {\n return typeof value === \"object\" && value !== null;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns<T> {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;\n fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;\n}\n"],"mappings":"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","names":["ErrorCode","Os","Arch","StreamKind","DeviceAuthState","FsEntryKind","GitOp","GoingOfflineReason","OpChannel","OpState","OpLostReason","StreamRole","StreamCloseReason","PointerAction","PointerButton","KeyAction"]}