@opengeni/agent-proto 0.1.0 → 0.2.1
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.d.ts +1080 -0
- package/dist/index.js +8286 -0
- package/dist/index.js.map +1 -0
- package/package.json +6 -6
- package/src/gen/opengeni_agent.ts +460 -3
|
@@ -0,0 +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\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 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 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(\"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\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: Display | undefined;\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}\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\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 width: number;\n height: 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:\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\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 * 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 | 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 | 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 };\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 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 }\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 };\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 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 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: \"\" };\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) ? 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 };\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(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 };\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 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 }\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 };\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 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 return message;\n },\n};\n\nfunction createBaseHeartbeat(): Heartbeat {\n return { seq: \"0\", uptimeMs: \"0\", activeSessions: 0, metrics: undefined, draining: false };\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 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 }\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 };\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 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 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 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 }\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 }\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 : 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 }\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 }\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 }\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 }\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 : 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 }\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 }\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","StreamRole","StreamCloseReason","PointerAction","PointerButton","KeyAction"]}
|