// This is a generated file - do not edit.
//
// Generated from proto/iop/runtime.proto.

// @dart = 3.3

// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names
// ignore_for_file: curly_braces_in_flow_control_structures
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
// ignore_for_file: non_constant_identifier_names, prefer_relative_imports

import 'dart:core' as $core;

import 'package:fixnum/fixnum.dart' as $fixnum;
import 'package:protobuf/protobuf.dart' as $pb;
import 'package:protobuf/well_known_types/google/protobuf/struct.pb.dart' as $0;

import 'runtime.pbenum.dart';

export 'package:protobuf/protobuf.dart' show GeneratedMessageGenericExtensions;

export 'runtime.pbenum.dart';

/// RunRequest initiates an adapter execution on a node.
class RunRequest extends $pb.GeneratedMessage {
  factory RunRequest({
    $core.String? runId,
    $core.String? adapter,
    $core.String? target,
    $core.String? workspace,
    $0.Struct? policy,
    $0.Struct? input,
    $core.int? timeoutSec,
    $core.Iterable<$core.MapEntry<$core.String, $core.String>>? metadata,
    $core.String? sessionId,
    RunSessionMode? sessionMode,
    $core.bool? background,
  }) {
    final result = create();
    if (runId != null) result.runId = runId;
    if (adapter != null) result.adapter = adapter;
    if (target != null) result.target = target;
    if (workspace != null) result.workspace = workspace;
    if (policy != null) result.policy = policy;
    if (input != null) result.input = input;
    if (timeoutSec != null) result.timeoutSec = timeoutSec;
    if (metadata != null) result.metadata.addEntries(metadata);
    if (sessionId != null) result.sessionId = sessionId;
    if (sessionMode != null) result.sessionMode = sessionMode;
    if (background != null) result.background = background;
    return result;
  }

  RunRequest._();

  factory RunRequest.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory RunRequest.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'RunRequest',
      package: const $pb.PackageName(_omitMessageNames ? '' : 'iop'),
      createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'runId')
    ..aOS(2, _omitFieldNames ? '' : 'adapter')
    ..aOS(3, _omitFieldNames ? '' : 'target')
    ..aOS(4, _omitFieldNames ? '' : 'workspace')
    ..aOM<$0.Struct>(5, _omitFieldNames ? '' : 'policy',
        subBuilder: $0.Struct.create)
    ..aOM<$0.Struct>(6, _omitFieldNames ? '' : 'input',
        subBuilder: $0.Struct.create)
    ..aI(7, _omitFieldNames ? '' : 'timeoutSec')
    ..m<$core.String, $core.String>(8, _omitFieldNames ? '' : 'metadata',
        entryClassName: 'RunRequest.MetadataEntry',
        keyFieldType: $pb.PbFieldType.OS,
        valueFieldType: $pb.PbFieldType.OS,
        packageName: const $pb.PackageName('iop'))
    ..aOS(9, _omitFieldNames ? '' : 'sessionId')
    ..aE<RunSessionMode>(10, _omitFieldNames ? '' : 'sessionMode',
        enumValues: RunSessionMode.values)
    ..aOB(11, _omitFieldNames ? '' : 'background')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  RunRequest clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  RunRequest copyWith(void Function(RunRequest) updates) =>
      super.copyWith((message) => updates(message as RunRequest)) as RunRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static RunRequest create() => RunRequest._();
  @$core.override
  RunRequest createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static RunRequest getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<RunRequest>(create);
  static RunRequest? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get runId => $_getSZ(0);
  @$pb.TagNumber(1)
  set runId($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasRunId() => $_has(0);
  @$pb.TagNumber(1)
  void clearRunId() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get adapter => $_getSZ(1);
  @$pb.TagNumber(2)
  set adapter($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasAdapter() => $_has(1);
  @$pb.TagNumber(2)
  void clearAdapter() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.String get target => $_getSZ(2);
  @$pb.TagNumber(3)
  set target($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasTarget() => $_has(2);
  @$pb.TagNumber(3)
  void clearTarget() => $_clearField(3);

  @$pb.TagNumber(4)
  $core.String get workspace => $_getSZ(3);
  @$pb.TagNumber(4)
  set workspace($core.String value) => $_setString(3, value);
  @$pb.TagNumber(4)
  $core.bool hasWorkspace() => $_has(3);
  @$pb.TagNumber(4)
  void clearWorkspace() => $_clearField(4);

  @$pb.TagNumber(5)
  $0.Struct get policy => $_getN(4);
  @$pb.TagNumber(5)
  set policy($0.Struct value) => $_setField(5, value);
  @$pb.TagNumber(5)
  $core.bool hasPolicy() => $_has(4);
  @$pb.TagNumber(5)
  void clearPolicy() => $_clearField(5);
  @$pb.TagNumber(5)
  $0.Struct ensurePolicy() => $_ensure(4);

  @$pb.TagNumber(6)
  $0.Struct get input => $_getN(5);
  @$pb.TagNumber(6)
  set input($0.Struct value) => $_setField(6, value);
  @$pb.TagNumber(6)
  $core.bool hasInput() => $_has(5);
  @$pb.TagNumber(6)
  void clearInput() => $_clearField(6);
  @$pb.TagNumber(6)
  $0.Struct ensureInput() => $_ensure(5);

  @$pb.TagNumber(7)
  $core.int get timeoutSec => $_getIZ(6);
  @$pb.TagNumber(7)
  set timeoutSec($core.int value) => $_setSignedInt32(6, value);
  @$pb.TagNumber(7)
  $core.bool hasTimeoutSec() => $_has(6);
  @$pb.TagNumber(7)
  void clearTimeoutSec() => $_clearField(7);

  @$pb.TagNumber(8)
  $pb.PbMap<$core.String, $core.String> get metadata => $_getMap(7);

  @$pb.TagNumber(9)
  $core.String get sessionId => $_getSZ(8);
  @$pb.TagNumber(9)
  set sessionId($core.String value) => $_setString(8, value);
  @$pb.TagNumber(9)
  $core.bool hasSessionId() => $_has(8);
  @$pb.TagNumber(9)
  void clearSessionId() => $_clearField(9);

  @$pb.TagNumber(10)
  RunSessionMode get sessionMode => $_getN(9);
  @$pb.TagNumber(10)
  set sessionMode(RunSessionMode value) => $_setField(10, value);
  @$pb.TagNumber(10)
  $core.bool hasSessionMode() => $_has(9);
  @$pb.TagNumber(10)
  void clearSessionMode() => $_clearField(10);

  @$pb.TagNumber(11)
  $core.bool get background => $_getBF(10);
  @$pb.TagNumber(11)
  set background($core.bool value) => $_setBool(10, value);
  @$pb.TagNumber(11)
  $core.bool hasBackground() => $_has(10);
  @$pb.TagNumber(11)
  void clearBackground() => $_clearField(11);
}

/// RunEvent is a streaming execution event.
class RunEvent extends $pb.GeneratedMessage {
  factory RunEvent({
    $core.String? runId,
    $core.String? type,
    $core.String? delta,
    $core.String? message,
    $core.String? error,
    Usage? usage,
    $core.Iterable<$core.MapEntry<$core.String, $core.String>>? metadata,
    $fixnum.Int64? timestamp,
    $core.String? sessionId,
    $core.bool? background,
    $core.String? nodeId,
    $core.String? nodeAlias,
  }) {
    final result = create();
    if (runId != null) result.runId = runId;
    if (type != null) result.type = type;
    if (delta != null) result.delta = delta;
    if (message != null) result.message = message;
    if (error != null) result.error = error;
    if (usage != null) result.usage = usage;
    if (metadata != null) result.metadata.addEntries(metadata);
    if (timestamp != null) result.timestamp = timestamp;
    if (sessionId != null) result.sessionId = sessionId;
    if (background != null) result.background = background;
    if (nodeId != null) result.nodeId = nodeId;
    if (nodeAlias != null) result.nodeAlias = nodeAlias;
    return result;
  }

  RunEvent._();

  factory RunEvent.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory RunEvent.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'RunEvent',
      package: const $pb.PackageName(_omitMessageNames ? '' : 'iop'),
      createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'runId')
    ..aOS(2, _omitFieldNames ? '' : 'type')
    ..aOS(3, _omitFieldNames ? '' : 'delta')
    ..aOS(4, _omitFieldNames ? '' : 'message')
    ..aOS(5, _omitFieldNames ? '' : 'error')
    ..aOM<Usage>(6, _omitFieldNames ? '' : 'usage', subBuilder: Usage.create)
    ..m<$core.String, $core.String>(7, _omitFieldNames ? '' : 'metadata',
        entryClassName: 'RunEvent.MetadataEntry',
        keyFieldType: $pb.PbFieldType.OS,
        valueFieldType: $pb.PbFieldType.OS,
        packageName: const $pb.PackageName('iop'))
    ..aInt64(8, _omitFieldNames ? '' : 'timestamp')
    ..aOS(9, _omitFieldNames ? '' : 'sessionId')
    ..aOB(10, _omitFieldNames ? '' : 'background')
    ..aOS(11, _omitFieldNames ? '' : 'nodeId')
    ..aOS(12, _omitFieldNames ? '' : 'nodeAlias')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  RunEvent clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  RunEvent copyWith(void Function(RunEvent) updates) =>
      super.copyWith((message) => updates(message as RunEvent)) as RunEvent;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static RunEvent create() => RunEvent._();
  @$core.override
  RunEvent createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static RunEvent getDefault() =>
      _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<RunEvent>(create);
  static RunEvent? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get runId => $_getSZ(0);
  @$pb.TagNumber(1)
  set runId($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasRunId() => $_has(0);
  @$pb.TagNumber(1)
  void clearRunId() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get type => $_getSZ(1);
  @$pb.TagNumber(2)
  set type($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasType() => $_has(1);
  @$pb.TagNumber(2)
  void clearType() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.String get delta => $_getSZ(2);
  @$pb.TagNumber(3)
  set delta($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasDelta() => $_has(2);
  @$pb.TagNumber(3)
  void clearDelta() => $_clearField(3);

  @$pb.TagNumber(4)
  $core.String get message => $_getSZ(3);
  @$pb.TagNumber(4)
  set message($core.String value) => $_setString(3, value);
  @$pb.TagNumber(4)
  $core.bool hasMessage() => $_has(3);
  @$pb.TagNumber(4)
  void clearMessage() => $_clearField(4);

  @$pb.TagNumber(5)
  $core.String get error => $_getSZ(4);
  @$pb.TagNumber(5)
  set error($core.String value) => $_setString(4, value);
  @$pb.TagNumber(5)
  $core.bool hasError() => $_has(4);
  @$pb.TagNumber(5)
  void clearError() => $_clearField(5);

  @$pb.TagNumber(6)
  Usage get usage => $_getN(5);
  @$pb.TagNumber(6)
  set usage(Usage value) => $_setField(6, value);
  @$pb.TagNumber(6)
  $core.bool hasUsage() => $_has(5);
  @$pb.TagNumber(6)
  void clearUsage() => $_clearField(6);
  @$pb.TagNumber(6)
  Usage ensureUsage() => $_ensure(5);

  @$pb.TagNumber(7)
  $pb.PbMap<$core.String, $core.String> get metadata => $_getMap(6);

  @$pb.TagNumber(8)
  $fixnum.Int64 get timestamp => $_getI64(7);
  @$pb.TagNumber(8)
  set timestamp($fixnum.Int64 value) => $_setInt64(7, value);
  @$pb.TagNumber(8)
  $core.bool hasTimestamp() => $_has(7);
  @$pb.TagNumber(8)
  void clearTimestamp() => $_clearField(8);

  @$pb.TagNumber(9)
  $core.String get sessionId => $_getSZ(8);
  @$pb.TagNumber(9)
  set sessionId($core.String value) => $_setString(8, value);
  @$pb.TagNumber(9)
  $core.bool hasSessionId() => $_has(8);
  @$pb.TagNumber(9)
  void clearSessionId() => $_clearField(9);

  @$pb.TagNumber(10)
  $core.bool get background => $_getBF(9);
  @$pb.TagNumber(10)
  set background($core.bool value) => $_setBool(9, value);
  @$pb.TagNumber(10)
  $core.bool hasBackground() => $_has(9);
  @$pb.TagNumber(10)
  void clearBackground() => $_clearField(10);

  @$pb.TagNumber(11)
  $core.String get nodeId => $_getSZ(10);
  @$pb.TagNumber(11)
  set nodeId($core.String value) => $_setString(10, value);
  @$pb.TagNumber(11)
  $core.bool hasNodeId() => $_has(10);
  @$pb.TagNumber(11)
  void clearNodeId() => $_clearField(11);

  @$pb.TagNumber(12)
  $core.String get nodeAlias => $_getSZ(11);
  @$pb.TagNumber(12)
  set nodeAlias($core.String value) => $_setString(11, value);
  @$pb.TagNumber(12)
  $core.bool hasNodeAlias() => $_has(11);
  @$pb.TagNumber(12)
  void clearNodeAlias() => $_clearField(12);
}

/// EdgeNodeEvent is a general edge-node lifecycle/control event envelope.
/// It is separate from RunEvent, which is reserved for adapter execution streams.
class EdgeNodeEvent extends $pb.GeneratedMessage {
  factory EdgeNodeEvent({
    $core.String? eventId,
    $core.String? type,
    $core.String? source,
    $core.String? nodeId,
    $core.String? alias,
    $core.String? reason,
    $core.Iterable<$core.MapEntry<$core.String, $core.String>>? metadata,
    $fixnum.Int64? timestamp,
  }) {
    final result = create();
    if (eventId != null) result.eventId = eventId;
    if (type != null) result.type = type;
    if (source != null) result.source = source;
    if (nodeId != null) result.nodeId = nodeId;
    if (alias != null) result.alias = alias;
    if (reason != null) result.reason = reason;
    if (metadata != null) result.metadata.addEntries(metadata);
    if (timestamp != null) result.timestamp = timestamp;
    return result;
  }

  EdgeNodeEvent._();

  factory EdgeNodeEvent.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory EdgeNodeEvent.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'EdgeNodeEvent',
      package: const $pb.PackageName(_omitMessageNames ? '' : 'iop'),
      createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'eventId')
    ..aOS(2, _omitFieldNames ? '' : 'type')
    ..aOS(3, _omitFieldNames ? '' : 'source')
    ..aOS(4, _omitFieldNames ? '' : 'nodeId')
    ..aOS(5, _omitFieldNames ? '' : 'alias')
    ..aOS(6, _omitFieldNames ? '' : 'reason')
    ..m<$core.String, $core.String>(7, _omitFieldNames ? '' : 'metadata',
        entryClassName: 'EdgeNodeEvent.MetadataEntry',
        keyFieldType: $pb.PbFieldType.OS,
        valueFieldType: $pb.PbFieldType.OS,
        packageName: const $pb.PackageName('iop'))
    ..aInt64(8, _omitFieldNames ? '' : 'timestamp')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EdgeNodeEvent clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  EdgeNodeEvent copyWith(void Function(EdgeNodeEvent) updates) =>
      super.copyWith((message) => updates(message as EdgeNodeEvent))
          as EdgeNodeEvent;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static EdgeNodeEvent create() => EdgeNodeEvent._();
  @$core.override
  EdgeNodeEvent createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static EdgeNodeEvent getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<EdgeNodeEvent>(create);
  static EdgeNodeEvent? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get eventId => $_getSZ(0);
  @$pb.TagNumber(1)
  set eventId($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasEventId() => $_has(0);
  @$pb.TagNumber(1)
  void clearEventId() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get type => $_getSZ(1);
  @$pb.TagNumber(2)
  set type($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasType() => $_has(1);
  @$pb.TagNumber(2)
  void clearType() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.String get source => $_getSZ(2);
  @$pb.TagNumber(3)
  set source($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasSource() => $_has(2);
  @$pb.TagNumber(3)
  void clearSource() => $_clearField(3);

  @$pb.TagNumber(4)
  $core.String get nodeId => $_getSZ(3);
  @$pb.TagNumber(4)
  set nodeId($core.String value) => $_setString(3, value);
  @$pb.TagNumber(4)
  $core.bool hasNodeId() => $_has(3);
  @$pb.TagNumber(4)
  void clearNodeId() => $_clearField(4);

  @$pb.TagNumber(5)
  $core.String get alias => $_getSZ(4);
  @$pb.TagNumber(5)
  set alias($core.String value) => $_setString(4, value);
  @$pb.TagNumber(5)
  $core.bool hasAlias() => $_has(4);
  @$pb.TagNumber(5)
  void clearAlias() => $_clearField(5);

  @$pb.TagNumber(6)
  $core.String get reason => $_getSZ(5);
  @$pb.TagNumber(6)
  set reason($core.String value) => $_setString(5, value);
  @$pb.TagNumber(6)
  $core.bool hasReason() => $_has(5);
  @$pb.TagNumber(6)
  void clearReason() => $_clearField(6);

  @$pb.TagNumber(7)
  $pb.PbMap<$core.String, $core.String> get metadata => $_getMap(6);

  @$pb.TagNumber(8)
  $fixnum.Int64 get timestamp => $_getI64(7);
  @$pb.TagNumber(8)
  set timestamp($fixnum.Int64 value) => $_setInt64(7, value);
  @$pb.TagNumber(8)
  $core.bool hasTimestamp() => $_has(7);
  @$pb.TagNumber(8)
  void clearTimestamp() => $_clearField(8);
}

class Usage extends $pb.GeneratedMessage {
  factory Usage({
    $core.int? inputTokens,
    $core.int? outputTokens,
  }) {
    final result = create();
    if (inputTokens != null) result.inputTokens = inputTokens;
    if (outputTokens != null) result.outputTokens = outputTokens;
    return result;
  }

  Usage._();

  factory Usage.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory Usage.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'Usage',
      package: const $pb.PackageName(_omitMessageNames ? '' : 'iop'),
      createEmptyInstance: create)
    ..aI(1, _omitFieldNames ? '' : 'inputTokens')
    ..aI(2, _omitFieldNames ? '' : 'outputTokens')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  Usage clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  Usage copyWith(void Function(Usage) updates) =>
      super.copyWith((message) => updates(message as Usage)) as Usage;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static Usage create() => Usage._();
  @$core.override
  Usage createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static Usage getDefault() =>
      _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Usage>(create);
  static Usage? _defaultInstance;

  @$pb.TagNumber(1)
  $core.int get inputTokens => $_getIZ(0);
  @$pb.TagNumber(1)
  set inputTokens($core.int value) => $_setSignedInt32(0, value);
  @$pb.TagNumber(1)
  $core.bool hasInputTokens() => $_has(0);
  @$pb.TagNumber(1)
  void clearInputTokens() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.int get outputTokens => $_getIZ(1);
  @$pb.TagNumber(2)
  set outputTokens($core.int value) => $_setSignedInt32(1, value);
  @$pb.TagNumber(2)
  $core.bool hasOutputTokens() => $_has(1);
  @$pb.TagNumber(2)
  void clearOutputTokens() => $_clearField(2);
}

/// Heartbeat is sent by both sides to keep the connection alive.
class Heartbeat extends $pb.GeneratedMessage {
  factory Heartbeat({
    $fixnum.Int64? timestamp,
  }) {
    final result = create();
    if (timestamp != null) result.timestamp = timestamp;
    return result;
  }

  Heartbeat._();

  factory Heartbeat.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory Heartbeat.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'Heartbeat',
      package: const $pb.PackageName(_omitMessageNames ? '' : 'iop'),
      createEmptyInstance: create)
    ..aInt64(1, _omitFieldNames ? '' : 'timestamp')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  Heartbeat clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  Heartbeat copyWith(void Function(Heartbeat) updates) =>
      super.copyWith((message) => updates(message as Heartbeat)) as Heartbeat;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static Heartbeat create() => Heartbeat._();
  @$core.override
  Heartbeat createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static Heartbeat getDefault() =>
      _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Heartbeat>(create);
  static Heartbeat? _defaultInstance;

  @$pb.TagNumber(1)
  $fixnum.Int64 get timestamp => $_getI64(0);
  @$pb.TagNumber(1)
  set timestamp($fixnum.Int64 value) => $_setInt64(0, value);
  @$pb.TagNumber(1)
  $core.bool hasTimestamp() => $_has(0);
  @$pb.TagNumber(1)
  void clearTimestamp() => $_clearField(1);
}

/// CancelRequest asks the node to cancel a running execution.
class CancelRequest extends $pb.GeneratedMessage {
  factory CancelRequest({
    $core.String? runId,
    $core.String? adapter,
    $core.String? target,
    $core.String? sessionId,
    CancelAction? action,
  }) {
    final result = create();
    if (runId != null) result.runId = runId;
    if (adapter != null) result.adapter = adapter;
    if (target != null) result.target = target;
    if (sessionId != null) result.sessionId = sessionId;
    if (action != null) result.action = action;
    return result;
  }

  CancelRequest._();

  factory CancelRequest.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory CancelRequest.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'CancelRequest',
      package: const $pb.PackageName(_omitMessageNames ? '' : 'iop'),
      createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'runId')
    ..aOS(2, _omitFieldNames ? '' : 'adapter')
    ..aOS(3, _omitFieldNames ? '' : 'target')
    ..aOS(4, _omitFieldNames ? '' : 'sessionId')
    ..aE<CancelAction>(5, _omitFieldNames ? '' : 'action',
        enumValues: CancelAction.values)
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CancelRequest clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CancelRequest copyWith(void Function(CancelRequest) updates) =>
      super.copyWith((message) => updates(message as CancelRequest))
          as CancelRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static CancelRequest create() => CancelRequest._();
  @$core.override
  CancelRequest createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static CancelRequest getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<CancelRequest>(create);
  static CancelRequest? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get runId => $_getSZ(0);
  @$pb.TagNumber(1)
  set runId($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasRunId() => $_has(0);
  @$pb.TagNumber(1)
  void clearRunId() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get adapter => $_getSZ(1);
  @$pb.TagNumber(2)
  set adapter($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasAdapter() => $_has(1);
  @$pb.TagNumber(2)
  void clearAdapter() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.String get target => $_getSZ(2);
  @$pb.TagNumber(3)
  set target($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasTarget() => $_has(2);
  @$pb.TagNumber(3)
  void clearTarget() => $_clearField(3);

  @$pb.TagNumber(4)
  $core.String get sessionId => $_getSZ(3);
  @$pb.TagNumber(4)
  set sessionId($core.String value) => $_setString(3, value);
  @$pb.TagNumber(4)
  $core.bool hasSessionId() => $_has(3);
  @$pb.TagNumber(4)
  void clearSessionId() => $_clearField(4);

  @$pb.TagNumber(5)
  CancelAction get action => $_getN(4);
  @$pb.TagNumber(5)
  set action(CancelAction value) => $_setField(5, value);
  @$pb.TagNumber(5)
  $core.bool hasAction() => $_has(4);
  @$pb.TagNumber(5)
  void clearAction() => $_clearField(5);
}

class NodeCommandRequest extends $pb.GeneratedMessage {
  factory NodeCommandRequest({
    $core.String? requestId,
    NodeCommandType? type,
    $core.String? adapter,
    $core.String? target,
    $core.String? sessionId,
    $core.int? timeoutSec,
    $core.Iterable<$core.MapEntry<$core.String, $core.String>>? metadata,
  }) {
    final result = create();
    if (requestId != null) result.requestId = requestId;
    if (type != null) result.type = type;
    if (adapter != null) result.adapter = adapter;
    if (target != null) result.target = target;
    if (sessionId != null) result.sessionId = sessionId;
    if (timeoutSec != null) result.timeoutSec = timeoutSec;
    if (metadata != null) result.metadata.addEntries(metadata);
    return result;
  }

  NodeCommandRequest._();

  factory NodeCommandRequest.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory NodeCommandRequest.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'NodeCommandRequest',
      package: const $pb.PackageName(_omitMessageNames ? '' : 'iop'),
      createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'requestId')
    ..aE<NodeCommandType>(2, _omitFieldNames ? '' : 'type',
        enumValues: NodeCommandType.values)
    ..aOS(3, _omitFieldNames ? '' : 'adapter')
    ..aOS(4, _omitFieldNames ? '' : 'target')
    ..aOS(5, _omitFieldNames ? '' : 'sessionId')
    ..aI(6, _omitFieldNames ? '' : 'timeoutSec')
    ..m<$core.String, $core.String>(7, _omitFieldNames ? '' : 'metadata',
        entryClassName: 'NodeCommandRequest.MetadataEntry',
        keyFieldType: $pb.PbFieldType.OS,
        valueFieldType: $pb.PbFieldType.OS,
        packageName: const $pb.PackageName('iop'))
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  NodeCommandRequest clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  NodeCommandRequest copyWith(void Function(NodeCommandRequest) updates) =>
      super.copyWith((message) => updates(message as NodeCommandRequest))
          as NodeCommandRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static NodeCommandRequest create() => NodeCommandRequest._();
  @$core.override
  NodeCommandRequest createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static NodeCommandRequest getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<NodeCommandRequest>(create);
  static NodeCommandRequest? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get requestId => $_getSZ(0);
  @$pb.TagNumber(1)
  set requestId($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasRequestId() => $_has(0);
  @$pb.TagNumber(1)
  void clearRequestId() => $_clearField(1);

  @$pb.TagNumber(2)
  NodeCommandType get type => $_getN(1);
  @$pb.TagNumber(2)
  set type(NodeCommandType value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasType() => $_has(1);
  @$pb.TagNumber(2)
  void clearType() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.String get adapter => $_getSZ(2);
  @$pb.TagNumber(3)
  set adapter($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasAdapter() => $_has(2);
  @$pb.TagNumber(3)
  void clearAdapter() => $_clearField(3);

  @$pb.TagNumber(4)
  $core.String get target => $_getSZ(3);
  @$pb.TagNumber(4)
  set target($core.String value) => $_setString(3, value);
  @$pb.TagNumber(4)
  $core.bool hasTarget() => $_has(3);
  @$pb.TagNumber(4)
  void clearTarget() => $_clearField(4);

  @$pb.TagNumber(5)
  $core.String get sessionId => $_getSZ(4);
  @$pb.TagNumber(5)
  set sessionId($core.String value) => $_setString(4, value);
  @$pb.TagNumber(5)
  $core.bool hasSessionId() => $_has(4);
  @$pb.TagNumber(5)
  void clearSessionId() => $_clearField(5);

  @$pb.TagNumber(6)
  $core.int get timeoutSec => $_getIZ(5);
  @$pb.TagNumber(6)
  set timeoutSec($core.int value) => $_setSignedInt32(5, value);
  @$pb.TagNumber(6)
  $core.bool hasTimeoutSec() => $_has(5);
  @$pb.TagNumber(6)
  void clearTimeoutSec() => $_clearField(6);

  @$pb.TagNumber(7)
  $pb.PbMap<$core.String, $core.String> get metadata => $_getMap(6);
}

class NodeCommandResponse extends $pb.GeneratedMessage {
  factory NodeCommandResponse({
    $core.String? requestId,
    NodeCommandType? type,
    $core.String? adapter,
    $core.String? target,
    $core.String? sessionId,
    AgentUsageStatus? usageStatus,
    $core.String? error,
    $core.Iterable<$core.MapEntry<$core.String, $core.String>>? result,
  }) {
    final result$ = create();
    if (requestId != null) result$.requestId = requestId;
    if (type != null) result$.type = type;
    if (adapter != null) result$.adapter = adapter;
    if (target != null) result$.target = target;
    if (sessionId != null) result$.sessionId = sessionId;
    if (usageStatus != null) result$.usageStatus = usageStatus;
    if (error != null) result$.error = error;
    if (result != null) result$.result.addEntries(result);
    return result$;
  }

  NodeCommandResponse._();

  factory NodeCommandResponse.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory NodeCommandResponse.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'NodeCommandResponse',
      package: const $pb.PackageName(_omitMessageNames ? '' : 'iop'),
      createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'requestId')
    ..aE<NodeCommandType>(2, _omitFieldNames ? '' : 'type',
        enumValues: NodeCommandType.values)
    ..aOS(3, _omitFieldNames ? '' : 'adapter')
    ..aOS(4, _omitFieldNames ? '' : 'target')
    ..aOS(5, _omitFieldNames ? '' : 'sessionId')
    ..aOM<AgentUsageStatus>(6, _omitFieldNames ? '' : 'usageStatus',
        subBuilder: AgentUsageStatus.create)
    ..aOS(7, _omitFieldNames ? '' : 'error')
    ..m<$core.String, $core.String>(8, _omitFieldNames ? '' : 'result',
        entryClassName: 'NodeCommandResponse.ResultEntry',
        keyFieldType: $pb.PbFieldType.OS,
        valueFieldType: $pb.PbFieldType.OS,
        packageName: const $pb.PackageName('iop'))
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  NodeCommandResponse clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  NodeCommandResponse copyWith(void Function(NodeCommandResponse) updates) =>
      super.copyWith((message) => updates(message as NodeCommandResponse))
          as NodeCommandResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static NodeCommandResponse create() => NodeCommandResponse._();
  @$core.override
  NodeCommandResponse createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static NodeCommandResponse getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<NodeCommandResponse>(create);
  static NodeCommandResponse? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get requestId => $_getSZ(0);
  @$pb.TagNumber(1)
  set requestId($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasRequestId() => $_has(0);
  @$pb.TagNumber(1)
  void clearRequestId() => $_clearField(1);

  @$pb.TagNumber(2)
  NodeCommandType get type => $_getN(1);
  @$pb.TagNumber(2)
  set type(NodeCommandType value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasType() => $_has(1);
  @$pb.TagNumber(2)
  void clearType() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.String get adapter => $_getSZ(2);
  @$pb.TagNumber(3)
  set adapter($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasAdapter() => $_has(2);
  @$pb.TagNumber(3)
  void clearAdapter() => $_clearField(3);

  @$pb.TagNumber(4)
  $core.String get target => $_getSZ(3);
  @$pb.TagNumber(4)
  set target($core.String value) => $_setString(3, value);
  @$pb.TagNumber(4)
  $core.bool hasTarget() => $_has(3);
  @$pb.TagNumber(4)
  void clearTarget() => $_clearField(4);

  @$pb.TagNumber(5)
  $core.String get sessionId => $_getSZ(4);
  @$pb.TagNumber(5)
  set sessionId($core.String value) => $_setString(4, value);
  @$pb.TagNumber(5)
  $core.bool hasSessionId() => $_has(4);
  @$pb.TagNumber(5)
  void clearSessionId() => $_clearField(5);

  @$pb.TagNumber(6)
  AgentUsageStatus get usageStatus => $_getN(5);
  @$pb.TagNumber(6)
  set usageStatus(AgentUsageStatus value) => $_setField(6, value);
  @$pb.TagNumber(6)
  $core.bool hasUsageStatus() => $_has(5);
  @$pb.TagNumber(6)
  void clearUsageStatus() => $_clearField(6);
  @$pb.TagNumber(6)
  AgentUsageStatus ensureUsageStatus() => $_ensure(5);

  @$pb.TagNumber(7)
  $core.String get error => $_getSZ(6);
  @$pb.TagNumber(7)
  set error($core.String value) => $_setString(6, value);
  @$pb.TagNumber(7)
  $core.bool hasError() => $_has(6);
  @$pb.TagNumber(7)
  void clearError() => $_clearField(7);

  /// result carries free-form key/value data for non-usage-status command types
  /// (capabilities, session_list, transport_status). usage_status keeps its
  /// dedicated typed payload.
  @$pb.TagNumber(8)
  $pb.PbMap<$core.String, $core.String> get result => $_getMap(7);
}

class AgentUsageStatus extends $pb.GeneratedMessage {
  factory AgentUsageStatus({
    $core.String? rawOutput,
    $core.String? dailyLimit,
    $core.String? dailyResetTime,
    $core.String? weeklyLimit,
    $core.String? weeklyResetTime,
    $core.Iterable<$core.MapEntry<$core.String, $core.String>>? metadata,
  }) {
    final result = create();
    if (rawOutput != null) result.rawOutput = rawOutput;
    if (dailyLimit != null) result.dailyLimit = dailyLimit;
    if (dailyResetTime != null) result.dailyResetTime = dailyResetTime;
    if (weeklyLimit != null) result.weeklyLimit = weeklyLimit;
    if (weeklyResetTime != null) result.weeklyResetTime = weeklyResetTime;
    if (metadata != null) result.metadata.addEntries(metadata);
    return result;
  }

  AgentUsageStatus._();

  factory AgentUsageStatus.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory AgentUsageStatus.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'AgentUsageStatus',
      package: const $pb.PackageName(_omitMessageNames ? '' : 'iop'),
      createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'rawOutput')
    ..aOS(2, _omitFieldNames ? '' : 'dailyLimit')
    ..aOS(3, _omitFieldNames ? '' : 'dailyResetTime')
    ..aOS(4, _omitFieldNames ? '' : 'weeklyLimit')
    ..aOS(5, _omitFieldNames ? '' : 'weeklyResetTime')
    ..m<$core.String, $core.String>(6, _omitFieldNames ? '' : 'metadata',
        entryClassName: 'AgentUsageStatus.MetadataEntry',
        keyFieldType: $pb.PbFieldType.OS,
        valueFieldType: $pb.PbFieldType.OS,
        packageName: const $pb.PackageName('iop'))
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  AgentUsageStatus clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  AgentUsageStatus copyWith(void Function(AgentUsageStatus) updates) =>
      super.copyWith((message) => updates(message as AgentUsageStatus))
          as AgentUsageStatus;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static AgentUsageStatus create() => AgentUsageStatus._();
  @$core.override
  AgentUsageStatus createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static AgentUsageStatus getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<AgentUsageStatus>(create);
  static AgentUsageStatus? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get rawOutput => $_getSZ(0);
  @$pb.TagNumber(1)
  set rawOutput($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasRawOutput() => $_has(0);
  @$pb.TagNumber(1)
  void clearRawOutput() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get dailyLimit => $_getSZ(1);
  @$pb.TagNumber(2)
  set dailyLimit($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasDailyLimit() => $_has(1);
  @$pb.TagNumber(2)
  void clearDailyLimit() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.String get dailyResetTime => $_getSZ(2);
  @$pb.TagNumber(3)
  set dailyResetTime($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasDailyResetTime() => $_has(2);
  @$pb.TagNumber(3)
  void clearDailyResetTime() => $_clearField(3);

  @$pb.TagNumber(4)
  $core.String get weeklyLimit => $_getSZ(3);
  @$pb.TagNumber(4)
  set weeklyLimit($core.String value) => $_setString(3, value);
  @$pb.TagNumber(4)
  $core.bool hasWeeklyLimit() => $_has(3);
  @$pb.TagNumber(4)
  void clearWeeklyLimit() => $_clearField(4);

  @$pb.TagNumber(5)
  $core.String get weeklyResetTime => $_getSZ(4);
  @$pb.TagNumber(5)
  set weeklyResetTime($core.String value) => $_setString(4, value);
  @$pb.TagNumber(5)
  $core.bool hasWeeklyResetTime() => $_has(4);
  @$pb.TagNumber(5)
  void clearWeeklyResetTime() => $_clearField(5);

  @$pb.TagNumber(6)
  $pb.PbMap<$core.String, $core.String> get metadata => $_getMap(5);
}

/// Error is returned when a request fails at the transport layer.
class Error extends $pb.GeneratedMessage {
  factory Error({
    $core.String? code,
    $core.String? message,
  }) {
    final result = create();
    if (code != null) result.code = code;
    if (message != null) result.message = message;
    return result;
  }

  Error._();

  factory Error.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory Error.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'Error',
      package: const $pb.PackageName(_omitMessageNames ? '' : 'iop'),
      createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'code')
    ..aOS(2, _omitFieldNames ? '' : 'message')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  Error clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  Error copyWith(void Function(Error) updates) =>
      super.copyWith((message) => updates(message as Error)) as Error;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static Error create() => Error._();
  @$core.override
  Error createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static Error getDefault() =>
      _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Error>(create);
  static Error? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get code => $_getSZ(0);
  @$pb.TagNumber(1)
  set code($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasCode() => $_has(0);
  @$pb.TagNumber(1)
  void clearCode() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get message => $_getSZ(1);
  @$pb.TagNumber(2)
  set message($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasMessage() => $_has(1);
  @$pb.TagNumber(2)
  void clearMessage() => $_clearField(2);
}

/// RegisterRequest is sent by node to edge immediately on connect.
class RegisterRequest extends $pb.GeneratedMessage {
  factory RegisterRequest({
    $core.String? token,
  }) {
    final result = create();
    if (token != null) result.token = token;
    return result;
  }

  RegisterRequest._();

  factory RegisterRequest.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory RegisterRequest.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'RegisterRequest',
      package: const $pb.PackageName(_omitMessageNames ? '' : 'iop'),
      createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'token')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  RegisterRequest clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  RegisterRequest copyWith(void Function(RegisterRequest) updates) =>
      super.copyWith((message) => updates(message as RegisterRequest))
          as RegisterRequest;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static RegisterRequest create() => RegisterRequest._();
  @$core.override
  RegisterRequest createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static RegisterRequest getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<RegisterRequest>(create);
  static RegisterRequest? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get token => $_getSZ(0);
  @$pb.TagNumber(1)
  set token($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasToken() => $_has(0);
  @$pb.TagNumber(1)
  void clearToken() => $_clearField(1);
}

/// RegisterResponse is sent by edge to node in response to RegisterRequest.
class RegisterResponse extends $pb.GeneratedMessage {
  factory RegisterResponse({
    $core.bool? accepted,
    $core.String? nodeId,
    $core.String? alias,
    $core.String? reason,
    NodeConfigPayload? config,
  }) {
    final result = create();
    if (accepted != null) result.accepted = accepted;
    if (nodeId != null) result.nodeId = nodeId;
    if (alias != null) result.alias = alias;
    if (reason != null) result.reason = reason;
    if (config != null) result.config = config;
    return result;
  }

  RegisterResponse._();

  factory RegisterResponse.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory RegisterResponse.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'RegisterResponse',
      package: const $pb.PackageName(_omitMessageNames ? '' : 'iop'),
      createEmptyInstance: create)
    ..aOB(1, _omitFieldNames ? '' : 'accepted')
    ..aOS(2, _omitFieldNames ? '' : 'nodeId')
    ..aOS(3, _omitFieldNames ? '' : 'alias')
    ..aOS(4, _omitFieldNames ? '' : 'reason')
    ..aOM<NodeConfigPayload>(5, _omitFieldNames ? '' : 'config',
        subBuilder: NodeConfigPayload.create)
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  RegisterResponse clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  RegisterResponse copyWith(void Function(RegisterResponse) updates) =>
      super.copyWith((message) => updates(message as RegisterResponse))
          as RegisterResponse;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static RegisterResponse create() => RegisterResponse._();
  @$core.override
  RegisterResponse createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static RegisterResponse getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<RegisterResponse>(create);
  static RegisterResponse? _defaultInstance;

  @$pb.TagNumber(1)
  $core.bool get accepted => $_getBF(0);
  @$pb.TagNumber(1)
  set accepted($core.bool value) => $_setBool(0, value);
  @$pb.TagNumber(1)
  $core.bool hasAccepted() => $_has(0);
  @$pb.TagNumber(1)
  void clearAccepted() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get nodeId => $_getSZ(1);
  @$pb.TagNumber(2)
  set nodeId($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasNodeId() => $_has(1);
  @$pb.TagNumber(2)
  void clearNodeId() => $_clearField(2);

  @$pb.TagNumber(3)
  $core.String get alias => $_getSZ(2);
  @$pb.TagNumber(3)
  set alias($core.String value) => $_setString(2, value);
  @$pb.TagNumber(3)
  $core.bool hasAlias() => $_has(2);
  @$pb.TagNumber(3)
  void clearAlias() => $_clearField(3);

  @$pb.TagNumber(4)
  $core.String get reason => $_getSZ(3);
  @$pb.TagNumber(4)
  set reason($core.String value) => $_setString(3, value);
  @$pb.TagNumber(4)
  $core.bool hasReason() => $_has(3);
  @$pb.TagNumber(4)
  void clearReason() => $_clearField(4);

  @$pb.TagNumber(5)
  NodeConfigPayload get config => $_getN(4);
  @$pb.TagNumber(5)
  set config(NodeConfigPayload value) => $_setField(5, value);
  @$pb.TagNumber(5)
  $core.bool hasConfig() => $_has(4);
  @$pb.TagNumber(5)
  void clearConfig() => $_clearField(5);
  @$pb.TagNumber(5)
  NodeConfigPayload ensureConfig() => $_ensure(4);
}

/// NodeConfigPayload carries all configuration edge pushes to the node.
class NodeConfigPayload extends $pb.GeneratedMessage {
  factory NodeConfigPayload({
    $core.Iterable<AdapterConfig>? adapters,
    NodeRuntimeConfig? runtime,
  }) {
    final result = create();
    if (adapters != null) result.adapters.addAll(adapters);
    if (runtime != null) result.runtime = runtime;
    return result;
  }

  NodeConfigPayload._();

  factory NodeConfigPayload.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory NodeConfigPayload.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'NodeConfigPayload',
      package: const $pb.PackageName(_omitMessageNames ? '' : 'iop'),
      createEmptyInstance: create)
    ..pPM<AdapterConfig>(1, _omitFieldNames ? '' : 'adapters',
        subBuilder: AdapterConfig.create)
    ..aOM<NodeRuntimeConfig>(2, _omitFieldNames ? '' : 'runtime',
        subBuilder: NodeRuntimeConfig.create)
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  NodeConfigPayload clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  NodeConfigPayload copyWith(void Function(NodeConfigPayload) updates) =>
      super.copyWith((message) => updates(message as NodeConfigPayload))
          as NodeConfigPayload;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static NodeConfigPayload create() => NodeConfigPayload._();
  @$core.override
  NodeConfigPayload createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static NodeConfigPayload getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<NodeConfigPayload>(create);
  static NodeConfigPayload? _defaultInstance;

  @$pb.TagNumber(1)
  $pb.PbList<AdapterConfig> get adapters => $_getList(0);

  @$pb.TagNumber(2)
  NodeRuntimeConfig get runtime => $_getN(1);
  @$pb.TagNumber(2)
  set runtime(NodeRuntimeConfig value) => $_setField(2, value);
  @$pb.TagNumber(2)
  $core.bool hasRuntime() => $_has(1);
  @$pb.TagNumber(2)
  void clearRuntime() => $_clearField(2);
  @$pb.TagNumber(2)
  NodeRuntimeConfig ensureRuntime() => $_ensure(1);
}

enum AdapterConfig_Config { cli, ollama, vllm, mock, notSet }

/// AdapterConfig describes one adapter to enable on the node.
class AdapterConfig extends $pb.GeneratedMessage {
  factory AdapterConfig({
    $core.String? type,
    $core.bool? enabled,
    $0.Struct? settings,
    CLIAdapterConfig? cli,
    OllamaAdapterConfig? ollama,
    VllmAdapterConfig? vllm,
    MockAdapterConfig? mock,
  }) {
    final result = create();
    if (type != null) result.type = type;
    if (enabled != null) result.enabled = enabled;
    if (settings != null) result.settings = settings;
    if (cli != null) result.cli = cli;
    if (ollama != null) result.ollama = ollama;
    if (vllm != null) result.vllm = vllm;
    if (mock != null) result.mock = mock;
    return result;
  }

  AdapterConfig._();

  factory AdapterConfig.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory AdapterConfig.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static const $core.Map<$core.int, AdapterConfig_Config>
      _AdapterConfig_ConfigByTag = {
    4: AdapterConfig_Config.cli,
    5: AdapterConfig_Config.ollama,
    6: AdapterConfig_Config.vllm,
    7: AdapterConfig_Config.mock,
    0: AdapterConfig_Config.notSet
  };
  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'AdapterConfig',
      package: const $pb.PackageName(_omitMessageNames ? '' : 'iop'),
      createEmptyInstance: create)
    ..oo(0, [4, 5, 6, 7])
    ..aOS(1, _omitFieldNames ? '' : 'type')
    ..aOB(2, _omitFieldNames ? '' : 'enabled')
    ..aOM<$0.Struct>(3, _omitFieldNames ? '' : 'settings',
        subBuilder: $0.Struct.create)
    ..aOM<CLIAdapterConfig>(4, _omitFieldNames ? '' : 'cli',
        subBuilder: CLIAdapterConfig.create)
    ..aOM<OllamaAdapterConfig>(5, _omitFieldNames ? '' : 'ollama',
        subBuilder: OllamaAdapterConfig.create)
    ..aOM<VllmAdapterConfig>(6, _omitFieldNames ? '' : 'vllm',
        subBuilder: VllmAdapterConfig.create)
    ..aOM<MockAdapterConfig>(7, _omitFieldNames ? '' : 'mock',
        subBuilder: MockAdapterConfig.create)
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  AdapterConfig clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  AdapterConfig copyWith(void Function(AdapterConfig) updates) =>
      super.copyWith((message) => updates(message as AdapterConfig))
          as AdapterConfig;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static AdapterConfig create() => AdapterConfig._();
  @$core.override
  AdapterConfig createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static AdapterConfig getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<AdapterConfig>(create);
  static AdapterConfig? _defaultInstance;

  @$pb.TagNumber(4)
  @$pb.TagNumber(5)
  @$pb.TagNumber(6)
  @$pb.TagNumber(7)
  AdapterConfig_Config whichConfig() =>
      _AdapterConfig_ConfigByTag[$_whichOneof(0)]!;
  @$pb.TagNumber(4)
  @$pb.TagNumber(5)
  @$pb.TagNumber(6)
  @$pb.TagNumber(7)
  void clearConfig() => $_clearField($_whichOneof(0));

  @$pb.TagNumber(1)
  $core.String get type => $_getSZ(0);
  @$pb.TagNumber(1)
  set type($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasType() => $_has(0);
  @$pb.TagNumber(1)
  void clearType() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.bool get enabled => $_getBF(1);
  @$pb.TagNumber(2)
  set enabled($core.bool value) => $_setBool(1, value);
  @$pb.TagNumber(2)
  $core.bool hasEnabled() => $_has(1);
  @$pb.TagNumber(2)
  void clearEnabled() => $_clearField(2);

  @$pb.TagNumber(3)
  $0.Struct get settings => $_getN(2);
  @$pb.TagNumber(3)
  set settings($0.Struct value) => $_setField(3, value);
  @$pb.TagNumber(3)
  $core.bool hasSettings() => $_has(2);
  @$pb.TagNumber(3)
  void clearSettings() => $_clearField(3);
  @$pb.TagNumber(3)
  $0.Struct ensureSettings() => $_ensure(2);

  @$pb.TagNumber(4)
  CLIAdapterConfig get cli => $_getN(3);
  @$pb.TagNumber(4)
  set cli(CLIAdapterConfig value) => $_setField(4, value);
  @$pb.TagNumber(4)
  $core.bool hasCli() => $_has(3);
  @$pb.TagNumber(4)
  void clearCli() => $_clearField(4);
  @$pb.TagNumber(4)
  CLIAdapterConfig ensureCli() => $_ensure(3);

  @$pb.TagNumber(5)
  OllamaAdapterConfig get ollama => $_getN(4);
  @$pb.TagNumber(5)
  set ollama(OllamaAdapterConfig value) => $_setField(5, value);
  @$pb.TagNumber(5)
  $core.bool hasOllama() => $_has(4);
  @$pb.TagNumber(5)
  void clearOllama() => $_clearField(5);
  @$pb.TagNumber(5)
  OllamaAdapterConfig ensureOllama() => $_ensure(4);

  @$pb.TagNumber(6)
  VllmAdapterConfig get vllm => $_getN(5);
  @$pb.TagNumber(6)
  set vllm(VllmAdapterConfig value) => $_setField(6, value);
  @$pb.TagNumber(6)
  $core.bool hasVllm() => $_has(5);
  @$pb.TagNumber(6)
  void clearVllm() => $_clearField(6);
  @$pb.TagNumber(6)
  VllmAdapterConfig ensureVllm() => $_ensure(5);

  @$pb.TagNumber(7)
  MockAdapterConfig get mock => $_getN(6);
  @$pb.TagNumber(7)
  set mock(MockAdapterConfig value) => $_setField(7, value);
  @$pb.TagNumber(7)
  $core.bool hasMock() => $_has(6);
  @$pb.TagNumber(7)
  void clearMock() => $_clearField(7);
  @$pb.TagNumber(7)
  MockAdapterConfig ensureMock() => $_ensure(6);
}

class MockAdapterConfig extends $pb.GeneratedMessage {
  factory MockAdapterConfig() => create();

  MockAdapterConfig._();

  factory MockAdapterConfig.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory MockAdapterConfig.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'MockAdapterConfig',
      package: const $pb.PackageName(_omitMessageNames ? '' : 'iop'),
      createEmptyInstance: create)
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  MockAdapterConfig clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  MockAdapterConfig copyWith(void Function(MockAdapterConfig) updates) =>
      super.copyWith((message) => updates(message as MockAdapterConfig))
          as MockAdapterConfig;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static MockAdapterConfig create() => MockAdapterConfig._();
  @$core.override
  MockAdapterConfig createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static MockAdapterConfig getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<MockAdapterConfig>(create);
  static MockAdapterConfig? _defaultInstance;
}

class CLIAdapterConfig extends $pb.GeneratedMessage {
  factory CLIAdapterConfig({
    $core.Iterable<$core.MapEntry<$core.String, CLIProfileConfig>>? profiles,
  }) {
    final result = create();
    if (profiles != null) result.profiles.addEntries(profiles);
    return result;
  }

  CLIAdapterConfig._();

  factory CLIAdapterConfig.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory CLIAdapterConfig.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'CLIAdapterConfig',
      package: const $pb.PackageName(_omitMessageNames ? '' : 'iop'),
      createEmptyInstance: create)
    ..m<$core.String, CLIProfileConfig>(1, _omitFieldNames ? '' : 'profiles',
        entryClassName: 'CLIAdapterConfig.ProfilesEntry',
        keyFieldType: $pb.PbFieldType.OS,
        valueFieldType: $pb.PbFieldType.OM,
        valueCreator: CLIProfileConfig.create,
        valueDefaultOrMaker: CLIProfileConfig.getDefault,
        packageName: const $pb.PackageName('iop'))
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CLIAdapterConfig clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CLIAdapterConfig copyWith(void Function(CLIAdapterConfig) updates) =>
      super.copyWith((message) => updates(message as CLIAdapterConfig))
          as CLIAdapterConfig;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static CLIAdapterConfig create() => CLIAdapterConfig._();
  @$core.override
  CLIAdapterConfig createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static CLIAdapterConfig getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<CLIAdapterConfig>(create);
  static CLIAdapterConfig? _defaultInstance;

  @$pb.TagNumber(1)
  $pb.PbMap<$core.String, CLIProfileConfig> get profiles => $_getMap(0);
}

class CLIProfileConfig extends $pb.GeneratedMessage {
  factory CLIProfileConfig({
    $core.String? command,
    $core.Iterable<$core.String>? args,
    $core.Iterable<$core.String>? env,
    $core.bool? persistent,
    $core.bool? terminal,
    $core.int? responseIdleTimeoutMs,
    $core.int? startupIdleTimeoutMs,
    $core.String? outputFormat,
    CLICompletionMarker? completionMarker,
    $core.String? mode,
    $core.Iterable<$core.String>? resumeArgs,
  }) {
    final result = create();
    if (command != null) result.command = command;
    if (args != null) result.args.addAll(args);
    if (env != null) result.env.addAll(env);
    if (persistent != null) result.persistent = persistent;
    if (terminal != null) result.terminal = terminal;
    if (responseIdleTimeoutMs != null)
      result.responseIdleTimeoutMs = responseIdleTimeoutMs;
    if (startupIdleTimeoutMs != null)
      result.startupIdleTimeoutMs = startupIdleTimeoutMs;
    if (outputFormat != null) result.outputFormat = outputFormat;
    if (completionMarker != null) result.completionMarker = completionMarker;
    if (mode != null) result.mode = mode;
    if (resumeArgs != null) result.resumeArgs.addAll(resumeArgs);
    return result;
  }

  CLIProfileConfig._();

  factory CLIProfileConfig.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory CLIProfileConfig.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'CLIProfileConfig',
      package: const $pb.PackageName(_omitMessageNames ? '' : 'iop'),
      createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'command')
    ..pPS(2, _omitFieldNames ? '' : 'args')
    ..pPS(3, _omitFieldNames ? '' : 'env')
    ..aOB(4, _omitFieldNames ? '' : 'persistent')
    ..aOB(5, _omitFieldNames ? '' : 'terminal')
    ..aI(6, _omitFieldNames ? '' : 'responseIdleTimeoutMs')
    ..aI(7, _omitFieldNames ? '' : 'startupIdleTimeoutMs')
    ..aOS(8, _omitFieldNames ? '' : 'outputFormat')
    ..aOM<CLICompletionMarker>(9, _omitFieldNames ? '' : 'completionMarker',
        subBuilder: CLICompletionMarker.create)
    ..aOS(10, _omitFieldNames ? '' : 'mode')
    ..pPS(11, _omitFieldNames ? '' : 'resumeArgs')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CLIProfileConfig clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CLIProfileConfig copyWith(void Function(CLIProfileConfig) updates) =>
      super.copyWith((message) => updates(message as CLIProfileConfig))
          as CLIProfileConfig;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static CLIProfileConfig create() => CLIProfileConfig._();
  @$core.override
  CLIProfileConfig createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static CLIProfileConfig getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<CLIProfileConfig>(create);
  static CLIProfileConfig? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get command => $_getSZ(0);
  @$pb.TagNumber(1)
  set command($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasCommand() => $_has(0);
  @$pb.TagNumber(1)
  void clearCommand() => $_clearField(1);

  @$pb.TagNumber(2)
  $pb.PbList<$core.String> get args => $_getList(1);

  @$pb.TagNumber(3)
  $pb.PbList<$core.String> get env => $_getList(2);

  @$pb.TagNumber(4)
  $core.bool get persistent => $_getBF(3);
  @$pb.TagNumber(4)
  set persistent($core.bool value) => $_setBool(3, value);
  @$pb.TagNumber(4)
  $core.bool hasPersistent() => $_has(3);
  @$pb.TagNumber(4)
  void clearPersistent() => $_clearField(4);

  @$pb.TagNumber(5)
  $core.bool get terminal => $_getBF(4);
  @$pb.TagNumber(5)
  set terminal($core.bool value) => $_setBool(4, value);
  @$pb.TagNumber(5)
  $core.bool hasTerminal() => $_has(4);
  @$pb.TagNumber(5)
  void clearTerminal() => $_clearField(5);

  @$pb.TagNumber(6)
  $core.int get responseIdleTimeoutMs => $_getIZ(5);
  @$pb.TagNumber(6)
  set responseIdleTimeoutMs($core.int value) => $_setSignedInt32(5, value);
  @$pb.TagNumber(6)
  $core.bool hasResponseIdleTimeoutMs() => $_has(5);
  @$pb.TagNumber(6)
  void clearResponseIdleTimeoutMs() => $_clearField(6);

  @$pb.TagNumber(7)
  $core.int get startupIdleTimeoutMs => $_getIZ(6);
  @$pb.TagNumber(7)
  set startupIdleTimeoutMs($core.int value) => $_setSignedInt32(6, value);
  @$pb.TagNumber(7)
  $core.bool hasStartupIdleTimeoutMs() => $_has(6);
  @$pb.TagNumber(7)
  void clearStartupIdleTimeoutMs() => $_clearField(7);

  @$pb.TagNumber(8)
  $core.String get outputFormat => $_getSZ(7);
  @$pb.TagNumber(8)
  set outputFormat($core.String value) => $_setString(7, value);
  @$pb.TagNumber(8)
  $core.bool hasOutputFormat() => $_has(7);
  @$pb.TagNumber(8)
  void clearOutputFormat() => $_clearField(8);

  @$pb.TagNumber(9)
  CLICompletionMarker get completionMarker => $_getN(8);
  @$pb.TagNumber(9)
  set completionMarker(CLICompletionMarker value) => $_setField(9, value);
  @$pb.TagNumber(9)
  $core.bool hasCompletionMarker() => $_has(8);
  @$pb.TagNumber(9)
  void clearCompletionMarker() => $_clearField(9);
  @$pb.TagNumber(9)
  CLICompletionMarker ensureCompletionMarker() => $_ensure(8);

  @$pb.TagNumber(10)
  $core.String get mode => $_getSZ(9);
  @$pb.TagNumber(10)
  set mode($core.String value) => $_setString(9, value);
  @$pb.TagNumber(10)
  $core.bool hasMode() => $_has(9);
  @$pb.TagNumber(10)
  void clearMode() => $_clearField(10);

  @$pb.TagNumber(11)
  $pb.PbList<$core.String> get resumeArgs => $_getList(10);
}

class CLICompletionMarker extends $pb.GeneratedMessage {
  factory CLICompletionMarker({
    $core.String? line,
    $core.String? regex,
  }) {
    final result = create();
    if (line != null) result.line = line;
    if (regex != null) result.regex = regex;
    return result;
  }

  CLICompletionMarker._();

  factory CLICompletionMarker.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory CLICompletionMarker.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'CLICompletionMarker',
      package: const $pb.PackageName(_omitMessageNames ? '' : 'iop'),
      createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'line')
    ..aOS(2, _omitFieldNames ? '' : 'regex')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CLICompletionMarker clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  CLICompletionMarker copyWith(void Function(CLICompletionMarker) updates) =>
      super.copyWith((message) => updates(message as CLICompletionMarker))
          as CLICompletionMarker;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static CLICompletionMarker create() => CLICompletionMarker._();
  @$core.override
  CLICompletionMarker createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static CLICompletionMarker getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<CLICompletionMarker>(create);
  static CLICompletionMarker? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get line => $_getSZ(0);
  @$pb.TagNumber(1)
  set line($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasLine() => $_has(0);
  @$pb.TagNumber(1)
  void clearLine() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get regex => $_getSZ(1);
  @$pb.TagNumber(2)
  set regex($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasRegex() => $_has(1);
  @$pb.TagNumber(2)
  void clearRegex() => $_clearField(2);
}

class OllamaAdapterConfig extends $pb.GeneratedMessage {
  factory OllamaAdapterConfig({
    $core.String? baseUrl,
    $core.int? contextSize,
  }) {
    final result = create();
    if (baseUrl != null) result.baseUrl = baseUrl;
    if (contextSize != null) result.contextSize = contextSize;
    return result;
  }

  OllamaAdapterConfig._();

  factory OllamaAdapterConfig.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory OllamaAdapterConfig.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'OllamaAdapterConfig',
      package: const $pb.PackageName(_omitMessageNames ? '' : 'iop'),
      createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'baseUrl')
    ..aI(2, _omitFieldNames ? '' : 'contextSize')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  OllamaAdapterConfig clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  OllamaAdapterConfig copyWith(void Function(OllamaAdapterConfig) updates) =>
      super.copyWith((message) => updates(message as OllamaAdapterConfig))
          as OllamaAdapterConfig;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static OllamaAdapterConfig create() => OllamaAdapterConfig._();
  @$core.override
  OllamaAdapterConfig createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static OllamaAdapterConfig getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<OllamaAdapterConfig>(create);
  static OllamaAdapterConfig? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get baseUrl => $_getSZ(0);
  @$pb.TagNumber(1)
  set baseUrl($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasBaseUrl() => $_has(0);
  @$pb.TagNumber(1)
  void clearBaseUrl() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.int get contextSize => $_getIZ(1);
  @$pb.TagNumber(2)
  set contextSize($core.int value) => $_setSignedInt32(1, value);
  @$pb.TagNumber(2)
  $core.bool hasContextSize() => $_has(1);
  @$pb.TagNumber(2)
  void clearContextSize() => $_clearField(2);
}

class VllmAdapterConfig extends $pb.GeneratedMessage {
  factory VllmAdapterConfig({
    $core.String? endpoint,
  }) {
    final result = create();
    if (endpoint != null) result.endpoint = endpoint;
    return result;
  }

  VllmAdapterConfig._();

  factory VllmAdapterConfig.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory VllmAdapterConfig.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'VllmAdapterConfig',
      package: const $pb.PackageName(_omitMessageNames ? '' : 'iop'),
      createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'endpoint')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  VllmAdapterConfig clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  VllmAdapterConfig copyWith(void Function(VllmAdapterConfig) updates) =>
      super.copyWith((message) => updates(message as VllmAdapterConfig))
          as VllmAdapterConfig;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static VllmAdapterConfig create() => VllmAdapterConfig._();
  @$core.override
  VllmAdapterConfig createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static VllmAdapterConfig getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<VllmAdapterConfig>(create);
  static VllmAdapterConfig? _defaultInstance;

  @$pb.TagNumber(1)
  $core.String get endpoint => $_getSZ(0);
  @$pb.TagNumber(1)
  set endpoint($core.String value) => $_setString(0, value);
  @$pb.TagNumber(1)
  $core.bool hasEndpoint() => $_has(0);
  @$pb.TagNumber(1)
  void clearEndpoint() => $_clearField(1);
}

/// NodeRuntimeConfig is the runtime tuning pushed to the node.
class NodeRuntimeConfig extends $pb.GeneratedMessage {
  factory NodeRuntimeConfig({
    $core.int? concurrency,
    $core.String? workspaceRoot,
  }) {
    final result = create();
    if (concurrency != null) result.concurrency = concurrency;
    if (workspaceRoot != null) result.workspaceRoot = workspaceRoot;
    return result;
  }

  NodeRuntimeConfig._();

  factory NodeRuntimeConfig.fromBuffer($core.List<$core.int> data,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(data, registry);
  factory NodeRuntimeConfig.fromJson($core.String json,
          [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(json, registry);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'NodeRuntimeConfig',
      package: const $pb.PackageName(_omitMessageNames ? '' : 'iop'),
      createEmptyInstance: create)
    ..aI(1, _omitFieldNames ? '' : 'concurrency')
    ..aOS(2, _omitFieldNames ? '' : 'workspaceRoot')
    ..hasRequiredFields = false;

  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  NodeRuntimeConfig clone() => deepCopy();
  @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.')
  NodeRuntimeConfig copyWith(void Function(NodeRuntimeConfig) updates) =>
      super.copyWith((message) => updates(message as NodeRuntimeConfig))
          as NodeRuntimeConfig;

  @$core.override
  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static NodeRuntimeConfig create() => NodeRuntimeConfig._();
  @$core.override
  NodeRuntimeConfig createEmptyInstance() => create();
  @$core.pragma('dart2js:noInline')
  static NodeRuntimeConfig getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<NodeRuntimeConfig>(create);
  static NodeRuntimeConfig? _defaultInstance;

  @$pb.TagNumber(1)
  $core.int get concurrency => $_getIZ(0);
  @$pb.TagNumber(1)
  set concurrency($core.int value) => $_setSignedInt32(0, value);
  @$pb.TagNumber(1)
  $core.bool hasConcurrency() => $_has(0);
  @$pb.TagNumber(1)
  void clearConcurrency() => $_clearField(1);

  @$pb.TagNumber(2)
  $core.String get workspaceRoot => $_getSZ(1);
  @$pb.TagNumber(2)
  set workspaceRoot($core.String value) => $_setString(1, value);
  @$pb.TagNumber(2)
  $core.bool hasWorkspaceRoot() => $_has(1);
  @$pb.TagNumber(2)
  void clearWorkspaceRoot() => $_clearField(2);
}

const $core.bool _omitFieldNames =
    $core.bool.fromEnvironment('protobuf.omit_field_names');
const $core.bool _omitMessageNames =
    $core.bool.fromEnvironment('protobuf.omit_message_names');
