feat: add IOP connection smoke test and update roadmap docs
- Add IOP connection smoke test (test/oto_iop_connection_smoke_test.dart) - Add protobuf support files for IOP runtime and Google struct - Update ROADMAP.md and milestone docs - Update project rules and pubspec.yaml
This commit is contained in:
parent
837af8a080
commit
59a334e088
13 changed files with 3345 additions and 24 deletions
|
|
@ -21,7 +21,7 @@ OTO는 YAML 기반 빌드/배포 파이프라인을 실행하는 Dart CLI에서
|
|||
|
||||
### Edge 직접 연결 기반 `oto-agent`
|
||||
|
||||
- [OTO-iop proto-socket 통신 기반](milestones/oto-iop-proto-socket-foundation.md) - 상태: 계획; 목표: iop Edge-Node 연결 구조와 proto-socket Dart 구현을 기준으로 OTO가 Edge에 직접 붙기 위한 최소 transport/handshake 기반을 정리한다.
|
||||
- [OTO-iop proto-socket 통신 기반](milestones/oto-iop-proto-socket-foundation.md) - 상태: 진행 중; 목표: iop Edge-Node 연결 구조와 proto-socket Dart 구현을 기준으로 OTO가 Edge에 직접 붙기 위한 최소 transport/handshake 기반을 정리한다.
|
||||
- [Edge bootstrap 계약](milestones/edge-bootstrap-contract.md) - 상태: 보류; 목표: Jenkins node 연결식 UX를 Edge bootstrap 설치/등록 계약으로 정리한다. OTO-iop proto-socket 통신 기반과 iop의 Agent Bootstrap과 OTO 등록 기준 정리를 기다린다.
|
||||
- [`oto-agent` 등록 흐름](milestones/oto-agent-registration.md) - 상태: 계획; 목표: `oto-agent` 설치 후 Edge 직접 outbound 등록 흐름을 구현 가능한 단위로 정리한다.
|
||||
|
||||
|
|
@ -30,16 +30,24 @@ OTO는 YAML 기반 빌드/배포 파이프라인을 실행하는 Dart CLI에서
|
|||
- [agent 메시지 프로토콜](milestones/agent-message-protocol.md) - 상태: 계획; 목표: agent register, capabilities, run request 등 기본 메시지 프로토콜을 정의한다.
|
||||
- [원격 실행 생명주기](milestones/remote-run-lifecycle.md) - 상태: 계획; 목표: 원격 실행, 로그, artifact, cancel, status, self-update 생명주기를 완성한다.
|
||||
|
||||
## 아카이브 Milestone 요약
|
||||
|
||||
- 없음
|
||||
|
||||
## 로딩 정책
|
||||
|
||||
- 일반 작업에서는 `agent-ops/roadmap/ROADMAP.md`를 매번 읽지 않는다.
|
||||
- 기능 추가, 구조 변경, 스킬 추가/수정, 문서 구조 변경 작업을 수행할 때는 `agent-ops/roadmap/current.md`를 먼저 읽는다.
|
||||
- `current.md`는 현재 작업 위치가 아니라 활성 Milestone 후보 목록이다.
|
||||
- `current.md`에는 개인별 현재 작업 위치나 완료 상태를 기록하지 않는다.
|
||||
- `current.md`의 활성 Milestone은 `agent-ops/roadmap/milestones/` 하위 문서만 가리키며, `agent-ops/roadmap/archive/**`는 포함하지 않는다.
|
||||
- 요청 내용, 현재 브랜치, 변경 파일, 관련 코드 경로를 보고 가장 관련 있는 활성 Milestone 문서를 같은 세션에서 1회 읽는다.
|
||||
- 활성 Milestone 둘 이상에 걸치면 필요한 Milestone 문서를 모두 읽고 작업 범위를 좁힌다.
|
||||
- 활성 Milestone 밖의 작업이면 이 문서의 Milestone 목록을 확인하고 사용자에게 진행 또는 전환 여부를 확인한다.
|
||||
- 이 문서는 로드맵 생성/갱신, Phase 전환, Milestone 추가/수정 요청이 있을 때만 읽는다.
|
||||
- 상세 작업과 완료 기준은 각 Milestone 문서의 체크리스트로 관리한다.
|
||||
- 완료 또는 폐기되어 아카이브된 Milestone은 이 문서의 `아카이브 Milestone 요약`에 당시 요약만 남기고, 아카이브 문서 링크나 상세 경로는 남기지 않는다.
|
||||
- 상세 문서가 있는 `agent-ops/roadmap/archive/**`는 사용자가 명시적으로 요청한 경우에만 읽는다.
|
||||
- 아카이브된 Milestone 문서는 최신 템플릿이나 스킬 규약에 맞춰 재포맷하지 않는다.
|
||||
- 선택된 Milestone의 `구현 잠금` 섹션이 없거나 상태가 `잠금`이면 코드 구현, `agent-task` 구현 계획 생성, 세부 API/파일 구조 확정을 시작하지 않는다.
|
||||
- `구현 잠금`이 없거나 잠긴 Milestone은 사용자가 "진행"을 요청해도 우회하지 않고, 먼저 Milestone 문서의 구현 구체화와 잠금 해제를 사용자에게 요청한다.
|
||||
|
|
|
|||
|
|
@ -11,20 +11,20 @@ Edge 직접 연결 기반 `oto-agent`
|
|||
|
||||
## 상태
|
||||
|
||||
계획
|
||||
진행 중
|
||||
|
||||
## 구현 잠금
|
||||
|
||||
- 상태: 잠금
|
||||
- 이유: iop Edge-Node 연결 구조와 proto-socket Dart SDK 호환성을 바탕으로 OTO 쪽 최소 통신 경계를 정리하는 선행 Milestone이며, 아직 구현 가능한 API/파일 구조가 확정되지 않았다.
|
||||
- 상태: 해제
|
||||
- 이유: iop Edge-Node 연결 흐름은 기존 node transport/API 구조를 기본 재사용하는 방향으로 정리되었고, `proto_socket` Dart path dependency 및 iop Edge register handshake smoke가 통과했다. 실제 OTO 통신 모듈 구현 전 경계는 transport/handshake/session/smoke 기준까지 문서화된 상태다.
|
||||
- 해제 조건:
|
||||
- [ ] iop의 Edge-Node proto-socket 연결 흐름과 OTO specialized agent가 공유하거나 분리할 메시지 경계가 문서화됨
|
||||
- [ ] OTO의 Dart SDK 범위와 `proto_socket` Dart 패키지 SDK 요구사항의 호환성 처리 방향이 정리됨
|
||||
- [ ] 최소 연결 검증 기준이 정의되고 사용자가 이 Milestone의 구현 구체화와 잠금 해제를 명시적으로 승인함
|
||||
- 잠금 중 금지:
|
||||
- 코드 구현 또는 `agent-task` 구현 계획 생성
|
||||
- proto 파일, 생성 코드, package 구조, 연결 API를 추측해 확정
|
||||
- Edge bootstrap command나 credential schema를 이 Milestone에서 선확정
|
||||
- [x] iop의 Edge-Node proto-socket 연결 흐름과 OTO specialized agent가 공유하거나 분리할 메시지 경계가 문서화됨
|
||||
- [x] OTO의 Dart SDK 범위와 `proto_socket` Dart 패키지 SDK 요구사항의 호환성 처리 방향이 정리됨
|
||||
- [x] 최소 연결 검증 기준이 정의되고 사용자가 이 Milestone의 구현 구체화와 잠금 해제를 명시적으로 승인함
|
||||
- 해제 후 주의:
|
||||
- 실제 구현은 기존 iop node transport/API 계약을 우선 재사용한다.
|
||||
- Edge bootstrap command, registry 저장 모델, credential schema는 후속 Milestone에서 확정한다.
|
||||
- build/deploy run request, artifact, log stream 전체 메시지 프로토콜은 후속 agent 메시지 프로토콜에서 확정한다.
|
||||
|
||||
## 범위
|
||||
|
||||
|
|
@ -35,18 +35,18 @@ Edge 직접 연결 기반 `oto-agent`
|
|||
|
||||
## 필수 기능
|
||||
|
||||
- [ ] [iop-flow-map] iop Edge-Node 연결 흐름의 register, config, run/event, command, heartbeat 책임이 OTO 관점에서 매핑되어 있다.
|
||||
- [ ] [proto-socket-dart] 상위 `proto-socket` Dart 구현의 사용 가능 범위와 OTO SDK/dependency 호환성 이슈가 정리되어 있다.
|
||||
- [ ] [handshake-scope] OTO agent 최소 handshake가 기존 `RegisterRequest/RegisterResponse`를 재사용할지 specialized agent 메시지로 분리할지 판단 기준이 정의되어 있다.
|
||||
- [ ] [session-lifecycle] 연결, heartbeat, disconnect, reconnect, parser map 구성의 최소 세션 생명주기가 문서화되어 있다.
|
||||
- [ ] [smoke-criteria] OTO에서 실제 구현 전 확인할 최소 통신 smoke 기준이 정의되어 있다.
|
||||
- [x] [iop-flow-map] iop Edge-Node 연결 흐름의 register, config, run/event, command, heartbeat 책임이 OTO 관점에서 매핑되어 있다.
|
||||
- [x] [proto-socket-dart] 상위 `proto-socket` Dart 구현의 사용 가능 범위와 OTO SDK/dependency 호환성 이슈가 정리되어 있다.
|
||||
- [x] [handshake-scope] OTO agent 최소 handshake가 기존 `RegisterRequest/RegisterResponse`를 재사용할지 specialized agent 메시지로 분리할지 판단 기준이 정의되어 있다.
|
||||
- [x] [session-lifecycle] 연결, heartbeat, disconnect, reconnect, parser map 구성의 최소 세션 생명주기가 문서화되어 있다.
|
||||
- [x] [smoke-criteria] OTO에서 실제 구현 전 확인할 최소 통신 smoke 기준이 정의되어 있다.
|
||||
|
||||
## 완료 기준
|
||||
|
||||
- [ ] Edge bootstrap 계약이 통신 기반 없이 bootstrap UX를 선확정하지 않도록 선행 조건이 명확하다.
|
||||
- [ ] OTO와 iop 구현자가 같은 transport/handshake 경계를 보고 병렬로 후속 작업을 시작할 수 있다.
|
||||
- [ ] OTO의 Dart SDK와 `proto_socket` Dart 패키지 호환성 처리 방향이 결정 후보로 남아 있다.
|
||||
- [ ] 최소 통신 smoke가 코드 구현 전 검증 기준으로 설명되어 있다.
|
||||
- [x] Edge bootstrap 계약이 통신 기반 없이 bootstrap UX를 선확정하지 않도록 선행 조건이 명확하다.
|
||||
- [x] OTO와 iop 구현자가 같은 transport/handshake 경계를 보고 병렬로 후속 작업을 시작할 수 있다.
|
||||
- [x] OTO의 Dart SDK와 `proto_socket` Dart 패키지 호환성 처리 방향이 정리되어 있다.
|
||||
- [x] 최소 통신 smoke가 코드 구현 전 검증 기준으로 설명되어 있다.
|
||||
|
||||
## 범위 제외
|
||||
|
||||
|
|
@ -62,4 +62,39 @@ Edge 직접 연결 기반 `oto-agent`
|
|||
- 관련 OTO 경로: `pubspec.yaml`, 향후 agent/transport 모듈 후보
|
||||
- 선행 작업: CLI 자동화 표면 정리 완료
|
||||
- 후속 작업: Edge bootstrap 계약, `oto-agent` 등록 흐름, agent 메시지 프로토콜
|
||||
- 확인 필요: OTO SDK를 `proto_socket` Dart 패키지 요구사항에 맞춰 올릴지, `proto_socket` Dart SDK 범위를 낮출지, 별도 compatibility shim을 둘지 결정해야 한다.
|
||||
- handshake-scope 정리:
|
||||
- OTO agent의 최소 register handshake는 기존 iop `RegisterRequest(token)` / `RegisterResponse(accepted, node_id, alias, config)`를 재사용한다.
|
||||
- OTO 전용 specialized register 메시지는 현 단계에서 만들지 않는다. token 발급, credential schema, registry 저장 모델은 Edge bootstrap/registration Milestone에서 결정한다.
|
||||
- `RegisterResponse.config` 전달 패턴은 재사용하되, build/deploy 전용 설정 payload가 필요한지는 OTO config 설계 시 별도 판단한다.
|
||||
- session-lifecycle 정리:
|
||||
- OTO agent는 iop node와 같이 Edge로 outbound TCP 연결을 열고, proto-socket heartbeat를 통해 생존성을 확인한다.
|
||||
- 기본 heartbeat 후보는 iop node와 같은 30초 interval, 45초 wait window다.
|
||||
- parser map의 기본 수신 대상은 `RegisterResponse`, `RunRequest`, `CancelRequest`, `NodeCommandRequest`, `EdgeNodeEvent`다.
|
||||
- disconnect listener는 local shutdown, transport close, heartbeat timeout을 구분할 수 있어야 한다.
|
||||
- reconnect/backoff 정책은 최소 smoke 범위 밖이며 `oto-agent` 등록 흐름 또는 원격 실행 생명주기에서 구현 기준을 정한다.
|
||||
- smoke-criteria 정리:
|
||||
- OTO Dart client가 `proto_socket` path dependency를 사용해 실제 iop Edge `serve` 프로세스에 TCP 연결한다.
|
||||
- OTO Dart client가 `RegisterRequest(token)`을 보내고 `RegisterResponse(accepted=true, node_id, alias, config.runtime)`를 받는다.
|
||||
- smoke는 제품 통신 모듈 구현 없이 테스트 전용 iop runtime proto 생성물과 임시 Edge config를 사용한다.
|
||||
- 검증 명령: `dart test test/oto_iop_connection_smoke_test.dart -r expanded`
|
||||
- 확인 결과: iop Edge serve 프로세스와 OTO Dart proto-socket client의 register handshake 통과.
|
||||
- proto-socket-dart 정리:
|
||||
- OTO SDK 하한을 `>=3.2.3 <4.0.0`로 올리고 `proto_socket`을 `../proto-socket/dart` path dependency로 연결했다.
|
||||
- `../proto-socket/dart/pubspec.yaml`은 SDK `>=3.2.3 <4.0.0`, `protobuf: ^3.1.0`, `meta: ^1.9.0`을 요구한다.
|
||||
- Dart 구현은 `ProtobufClient`, `ProtobufServer`, `Communicator`, `BaseClient`, WebSocket transport, request-response, listener, heartbeat, disconnect listener를 export한다.
|
||||
- iop package-qualified protobuf typeName(`iop.RegisterResponse` 등)을 처리하기 위해 `../proto-socket/dart/lib/src/communicator.dart`의 listener/request/response 매칭을 일반화했다.
|
||||
- OTO 쪽 최초 세팅 검증은 `dart pub get`과 `dart analyze` 통과를 기준으로 확인했다.
|
||||
- 실제 OTO agent transport class와 generated proto import 구조는 후속 구현에서 확정한다.
|
||||
- iop-flow-map 정리:
|
||||
- transport: 기존 iop node는 Edge에 outbound TCP 연결을 열고 proto-socket heartbeat를 사용하는 단일 persistent session으로 동작한다. OTO agent도 이 transport 방향을 기본 재사용하는 후보로 둔다.
|
||||
- register: node는 연결 직후 `RegisterRequest(token)`을 보내고 Edge는 token 기반 `NodeStore` 조회, 중복 연결 거부, config 생성 뒤 `RegisterResponse(accepted, node_id, alias, config)`를 돌려준다. OTO도 token 기반 등록 handshake는 재사용 후보로 두되, token 발급과 registry/credential schema는 Edge bootstrap/registration Milestone에서 확정한다.
|
||||
- config: iop의 `NodeConfigPayload`는 `AdapterConfig`와 `NodeRuntimeConfig`를 담고, 현재 adapter config는 `mock`, `ollama`, `vllm`, `cli` 중심이다. OTO는 response 안의 config 전달 패턴은 재사용 가능하지만, build/deploy agent 설정 payload는 OTO 전용 config 또는 `adapter=oto` 계열 확장이 필요할 수 있다.
|
||||
- run/event: Edge는 `RunRequest`를 node에 전송하고 node는 runtime 실행 결과를 `RunEvent(start, delta, complete, error, cancelled)`로 돌려준다. OTO는 이 실행 요청/이벤트 envelope를 재사용하는 후보로 두고, `adapter`는 `oto` 또는 `pipeline` 계열, `target`은 pipeline/profile 식별자, `input`/`metadata`는 YAML 경로, 파라미터, build metadata를 담는 후보로 둔다.
|
||||
- cancel: `CancelRequest`는 run 취소와 logical session 종료를 구분한다. OTO는 run 취소는 재사용 후보로 두되, 장수 logical session 종료 의미가 필요한지는 `session-lifecycle`에서 판단한다.
|
||||
- command: `NodeCommandRequest/Response`의 `CAPABILITIES`와 `TRANSPORT_STATUS`는 OTO agent에도 재사용 가치가 높다. `USAGE_STATUS`, `SESSION_LIST`는 기존 CLI adapter 의미가 강하므로 OTO에서 그대로 노출할지, build/deploy 전용 command를 추가할지는 후속 메시지 프로토콜에서 판단한다.
|
||||
- heartbeat: heartbeat는 domain message가 아니라 proto-socket transport 생존성 책임이다. iop는 30초 interval, 45초 wait window를 사용하므로 OTO도 같은 기본값을 후보로 두고 Dart SDK 지원 여부를 확인한다.
|
||||
- parser map: node side는 `RunRequest`, `EdgeNodeEvent`, `CancelRequest`, `NodeCommandRequest`, `RegisterResponse`를 파싱하고, edge side는 `RunEvent`, `EdgeNodeEvent`, `RegisterRequest`, `NodeCommandResponse`를 파싱한다. OTO agent는 node-side parser map을 기본형으로 삼고 OTO 전용 메시지가 생길 때만 추가한다.
|
||||
- 공유 후보: `RegisterRequest/RegisterResponse`, `RunRequest/RunEvent`, `CancelRequest`, `NodeCommandRequest/Response`의 capabilities/transport status, `EdgeNodeEvent`, heartbeat/transport session.
|
||||
- OTO 특화 후보: config payload 구조, build/deploy run input schema, artifact/log event 의미, OTO capability 결과 키, pipeline/profile target naming.
|
||||
- 보류: Edge bootstrap command, agent registry 저장 모델, credential schema, durable history/audit, 전체 build/deploy proto 메시지 세트.
|
||||
- 확인 필요: 후속 구현에서 OTO build/deploy run input schema, artifact/log event 의미, reconnect/backoff 정책을 확정해야 한다.
|
||||
|
|
|
|||
|
|
@ -37,8 +37,8 @@ lib/
|
|||
|
||||
## 기술 스택
|
||||
|
||||
- 언어: Dart (SDK >=2.18.6 <4.0.0)
|
||||
- 의존성: dart_framework (커스텀), http, json_annotation, cron, xml
|
||||
- 언어: Dart (SDK >=3.2.3 <4.0.0)
|
||||
- 의존성: dart_framework (커스텀), proto_socket (상위 `../proto-socket/dart` path dependency), http, json_annotation, cron, xml
|
||||
- 코드 생성: json_serializable + build_runner (`dart run build_runner build`)
|
||||
|
||||
## BuildType
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ publish_to: none
|
|||
repository: https://git.toki-labs.com/toki/oto.git
|
||||
|
||||
environment:
|
||||
sdk: '>=2.18.6 <4.0.0'
|
||||
sdk: '>=3.2.3 <4.0.0'
|
||||
|
||||
# Add regular dependencies here.
|
||||
dependencies:
|
||||
|
|
@ -20,12 +20,16 @@ dependencies:
|
|||
xml: ^6.6.1
|
||||
archive: ^3.3.5
|
||||
ftpconnect: ^2.0.10
|
||||
proto_socket:
|
||||
path: ../proto-socket/dart
|
||||
dart_framework:
|
||||
git:
|
||||
url: https://git.toki-labs.com/toki/dart-app-core.git
|
||||
ref: master
|
||||
|
||||
dev_dependencies:
|
||||
fixnum: ^1.1.1
|
||||
protobuf: ^3.1.0
|
||||
lints: ^6.0.0
|
||||
test: ^1.24.9
|
||||
build_runner: ^2.1.4
|
||||
|
|
|
|||
183
test/oto_iop_connection_smoke_test.dart
Normal file
183
test/oto_iop_connection_smoke_test.dart
Normal file
|
|
@ -0,0 +1,183 @@
|
|||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:proto_socket/proto_socket.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
import 'support/iop/runtime.pb.dart' as iop;
|
||||
|
||||
const _host = '127.0.0.1';
|
||||
const _token = 'oto-smoke-token';
|
||||
const _nodeId = 'oto-smoke-node';
|
||||
const _nodeAlias = 'oto-smoke';
|
||||
|
||||
class _OtoIopSmokeClient extends ProtobufClient {
|
||||
_OtoIopSmokeClient(Socket socket)
|
||||
: super(socket, 30, 45, {
|
||||
iop.RegisterResponse.getDefault().info_.qualifiedMessageName:
|
||||
iop.RegisterResponse.fromBuffer,
|
||||
iop.RunRequest.getDefault().info_.qualifiedMessageName:
|
||||
iop.RunRequest.fromBuffer,
|
||||
iop.CancelRequest.getDefault().info_.qualifiedMessageName:
|
||||
iop.CancelRequest.fromBuffer,
|
||||
iop.NodeCommandRequest.getDefault().info_.qualifiedMessageName:
|
||||
iop.NodeCommandRequest.fromBuffer,
|
||||
iop.EdgeNodeEvent.getDefault().info_.qualifiedMessageName:
|
||||
iop.EdgeNodeEvent.fromBuffer,
|
||||
});
|
||||
}
|
||||
|
||||
void main() {
|
||||
test('OTO Dart proto-socket client registers with iop Edge', () async {
|
||||
final edgePort = await _freePort();
|
||||
final metricsPort = await _freePort();
|
||||
final workDir = await Directory.systemTemp.createTemp('oto-iop-smoke-');
|
||||
final config = File('${workDir.path}/edge.yaml');
|
||||
await config
|
||||
.writeAsString(_edgeConfig(edgePort, metricsPort, workDir.path));
|
||||
|
||||
final edge = await Process.start(
|
||||
'go',
|
||||
[
|
||||
'run',
|
||||
'./apps/edge/cmd/edge',
|
||||
'serve',
|
||||
'--config',
|
||||
config.path,
|
||||
],
|
||||
workingDirectory: '../iop',
|
||||
environment: {
|
||||
'GOCACHE': '${workDir.path}/gocache',
|
||||
},
|
||||
);
|
||||
|
||||
final output = StringBuffer();
|
||||
final stdoutSub = edge.stdout
|
||||
.transform(systemEncoding.decoder)
|
||||
.listen(output.write, onError: output.write);
|
||||
final stderrSub = edge.stderr
|
||||
.transform(systemEncoding.decoder)
|
||||
.listen(output.write, onError: output.write);
|
||||
|
||||
_OtoIopSmokeClient? client;
|
||||
try {
|
||||
await _waitForPort(_host, edgePort, edge, output);
|
||||
final socket = await ProtobufClient.connect(_host, edgePort);
|
||||
client = _OtoIopSmokeClient(socket);
|
||||
|
||||
final response =
|
||||
await client.sendRequest<iop.RegisterRequest, iop.RegisterResponse>(
|
||||
iop.RegisterRequest()..token = _token,
|
||||
timeout: const Duration(seconds: 5),
|
||||
);
|
||||
|
||||
expect(response.accepted, isTrue);
|
||||
expect(response.nodeId, _nodeId);
|
||||
expect(response.alias, _nodeAlias);
|
||||
expect(response.config.runtime.concurrency, 1);
|
||||
expect(
|
||||
response.config.runtime.workspaceRoot, '${workDir.path}/workspace');
|
||||
} finally {
|
||||
await client?.close();
|
||||
edge.kill(ProcessSignal.sigterm);
|
||||
await edge.exitCode.timeout(
|
||||
const Duration(seconds: 5),
|
||||
onTimeout: () {
|
||||
edge.kill(ProcessSignal.sigkill);
|
||||
return edge.exitCode;
|
||||
},
|
||||
);
|
||||
await stdoutSub.cancel();
|
||||
await stderrSub.cancel();
|
||||
await workDir.delete(recursive: true);
|
||||
}
|
||||
}, timeout: const Timeout(Duration(seconds: 45)));
|
||||
}
|
||||
|
||||
Future<int> _freePort() async {
|
||||
final socket = await ServerSocket.bind(InternetAddress.loopbackIPv4, 0);
|
||||
final port = socket.port;
|
||||
await socket.close();
|
||||
return port;
|
||||
}
|
||||
|
||||
Future<void> _waitForPort(
|
||||
String host,
|
||||
int port,
|
||||
Process process,
|
||||
StringBuffer output,
|
||||
) async {
|
||||
final deadline = DateTime.now().add(const Duration(seconds: 20));
|
||||
while (DateTime.now().isBefore(deadline)) {
|
||||
final exit = await _tryExitCode(process);
|
||||
if (exit != null) {
|
||||
fail('iop Edge exited before listening (code $exit):\n$output');
|
||||
}
|
||||
try {
|
||||
final socket = await Socket.connect(
|
||||
host,
|
||||
port,
|
||||
timeout: const Duration(milliseconds: 200),
|
||||
);
|
||||
await socket.close();
|
||||
return;
|
||||
} catch (_) {
|
||||
await Future<void>.delayed(const Duration(milliseconds: 100));
|
||||
}
|
||||
}
|
||||
fail('timed out waiting for iop Edge on $host:$port:\n$output');
|
||||
}
|
||||
|
||||
Future<int?> _tryExitCode(Process process) {
|
||||
return process.exitCode
|
||||
.timeout(
|
||||
Duration.zero,
|
||||
onTimeout: () => -1,
|
||||
)
|
||||
.then((code) => code == -1 ? null : code);
|
||||
}
|
||||
|
||||
String _edgeConfig(int edgePort, int metricsPort, String root) {
|
||||
return '''
|
||||
edge:
|
||||
id: "oto-smoke-edge"
|
||||
name: "OTO Smoke Edge"
|
||||
|
||||
server:
|
||||
listen: "$_host:$edgePort"
|
||||
|
||||
tls:
|
||||
enabled: false
|
||||
|
||||
logging:
|
||||
level: "error"
|
||||
pretty: false
|
||||
|
||||
metrics:
|
||||
port: $metricsPort
|
||||
|
||||
openai:
|
||||
enabled: false
|
||||
|
||||
a2a:
|
||||
enabled: false
|
||||
|
||||
console:
|
||||
adapter: "oto"
|
||||
target: "pipeline"
|
||||
session_id: "default"
|
||||
background: false
|
||||
timeout_sec: 30
|
||||
|
||||
nodes:
|
||||
- id: "$_nodeId"
|
||||
alias: "$_nodeAlias"
|
||||
token: "$_token"
|
||||
adapters:
|
||||
cli:
|
||||
enabled: false
|
||||
runtime:
|
||||
concurrency: 1
|
||||
workspace_root: "$root/workspace"
|
||||
''';
|
||||
}
|
||||
283
test/support/google/protobuf/struct.pb.dart
Normal file
283
test/support/google/protobuf/struct.pb.dart
Normal file
|
|
@ -0,0 +1,283 @@
|
|||
//
|
||||
// Generated code. Do not modify.
|
||||
// source: google/protobuf/struct.proto
|
||||
//
|
||||
// @dart = 2.12
|
||||
|
||||
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||
// ignore_for_file: constant_identifier_names, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_final_fields
|
||||
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
import 'package:protobuf/protobuf.dart' as $pb;
|
||||
import 'package:protobuf/src/protobuf/mixins/well_known.dart' as $mixin;
|
||||
|
||||
import 'struct.pbenum.dart';
|
||||
|
||||
export 'struct.pbenum.dart';
|
||||
|
||||
/// `Struct` represents a structured data value, consisting of fields
|
||||
/// which map to dynamically typed values. In some languages, `Struct`
|
||||
/// might be supported by a native representation. For example, in
|
||||
/// scripting languages like JS a struct is represented as an
|
||||
/// object. The details of that representation are described together
|
||||
/// with the proto support for the language.
|
||||
///
|
||||
/// The JSON representation for `Struct` is JSON object.
|
||||
class Struct extends $pb.GeneratedMessage with $mixin.StructMixin {
|
||||
factory Struct({
|
||||
$core.Map<$core.String, Value>? fields,
|
||||
}) {
|
||||
final $result = create();
|
||||
if (fields != null) {
|
||||
$result.fields.addAll(fields);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
Struct._() : super();
|
||||
factory Struct.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
||||
factory Struct.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'Struct', package: const $pb.PackageName(_omitMessageNames ? '' : 'google.protobuf'), createEmptyInstance: create, toProto3Json: $mixin.StructMixin.toProto3JsonHelper, fromProto3Json: $mixin.StructMixin.fromProto3JsonHelper)
|
||||
..m<$core.String, Value>(1, _omitFieldNames ? '' : 'fields', entryClassName: 'Struct.FieldsEntry', keyFieldType: $pb.PbFieldType.OS, valueFieldType: $pb.PbFieldType.OM, valueCreator: Value.create, valueDefaultOrMaker: Value.getDefault, packageName: const $pb.PackageName('google.protobuf'))
|
||||
..hasRequiredFields = false
|
||||
;
|
||||
|
||||
@$core.Deprecated(
|
||||
'Using this can add significant overhead to your binary. '
|
||||
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
|
||||
'Will be removed in next major version')
|
||||
Struct clone() => Struct()..mergeFromMessage(this);
|
||||
@$core.Deprecated(
|
||||
'Using this can add significant overhead to your binary. '
|
||||
'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
|
||||
'Will be removed in next major version')
|
||||
Struct copyWith(void Function(Struct) updates) => super.copyWith((message) => updates(message as Struct)) as Struct;
|
||||
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Struct create() => Struct._();
|
||||
Struct createEmptyInstance() => create();
|
||||
static $pb.PbList<Struct> createRepeated() => $pb.PbList<Struct>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Struct getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Struct>(create);
|
||||
static Struct? _defaultInstance;
|
||||
|
||||
/// Unordered map of dynamically typed values.
|
||||
@$pb.TagNumber(1)
|
||||
$core.Map<$core.String, Value> get fields => $_getMap(0);
|
||||
}
|
||||
|
||||
enum Value_Kind {
|
||||
nullValue,
|
||||
numberValue,
|
||||
stringValue,
|
||||
boolValue,
|
||||
structValue,
|
||||
listValue,
|
||||
notSet
|
||||
}
|
||||
|
||||
/// `Value` represents a dynamically typed value which can be either
|
||||
/// null, a number, a string, a boolean, a recursive struct value, or a
|
||||
/// list of values. A producer of value is expected to set one of these
|
||||
/// variants. Absence of any variant indicates an error.
|
||||
///
|
||||
/// The JSON representation for `Value` is JSON value.
|
||||
class Value extends $pb.GeneratedMessage with $mixin.ValueMixin {
|
||||
factory Value({
|
||||
NullValue? nullValue,
|
||||
$core.double? numberValue,
|
||||
$core.String? stringValue,
|
||||
$core.bool? boolValue,
|
||||
Struct? structValue,
|
||||
ListValue? listValue,
|
||||
}) {
|
||||
final $result = create();
|
||||
if (nullValue != null) {
|
||||
$result.nullValue = nullValue;
|
||||
}
|
||||
if (numberValue != null) {
|
||||
$result.numberValue = numberValue;
|
||||
}
|
||||
if (stringValue != null) {
|
||||
$result.stringValue = stringValue;
|
||||
}
|
||||
if (boolValue != null) {
|
||||
$result.boolValue = boolValue;
|
||||
}
|
||||
if (structValue != null) {
|
||||
$result.structValue = structValue;
|
||||
}
|
||||
if (listValue != null) {
|
||||
$result.listValue = listValue;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
Value._() : super();
|
||||
factory Value.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
||||
factory Value.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
||||
|
||||
static const $core.Map<$core.int, Value_Kind> _Value_KindByTag = {
|
||||
1 : Value_Kind.nullValue,
|
||||
2 : Value_Kind.numberValue,
|
||||
3 : Value_Kind.stringValue,
|
||||
4 : Value_Kind.boolValue,
|
||||
5 : Value_Kind.structValue,
|
||||
6 : Value_Kind.listValue,
|
||||
0 : Value_Kind.notSet
|
||||
};
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'Value', package: const $pb.PackageName(_omitMessageNames ? '' : 'google.protobuf'), createEmptyInstance: create, toProto3Json: $mixin.ValueMixin.toProto3JsonHelper, fromProto3Json: $mixin.ValueMixin.fromProto3JsonHelper)
|
||||
..oo(0, [1, 2, 3, 4, 5, 6])
|
||||
..e<NullValue>(1, _omitFieldNames ? '' : 'nullValue', $pb.PbFieldType.OE, defaultOrMaker: NullValue.NULL_VALUE, valueOf: NullValue.valueOf, enumValues: NullValue.values)
|
||||
..a<$core.double>(2, _omitFieldNames ? '' : 'numberValue', $pb.PbFieldType.OD)
|
||||
..aOS(3, _omitFieldNames ? '' : 'stringValue')
|
||||
..aOB(4, _omitFieldNames ? '' : 'boolValue')
|
||||
..aOM<Struct>(5, _omitFieldNames ? '' : 'structValue', subBuilder: Struct.create)
|
||||
..aOM<ListValue>(6, _omitFieldNames ? '' : 'listValue', subBuilder: ListValue.create)
|
||||
..hasRequiredFields = false
|
||||
;
|
||||
|
||||
@$core.Deprecated(
|
||||
'Using this can add significant overhead to your binary. '
|
||||
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
|
||||
'Will be removed in next major version')
|
||||
Value clone() => Value()..mergeFromMessage(this);
|
||||
@$core.Deprecated(
|
||||
'Using this can add significant overhead to your binary. '
|
||||
'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
|
||||
'Will be removed in next major version')
|
||||
Value copyWith(void Function(Value) updates) => super.copyWith((message) => updates(message as Value)) as Value;
|
||||
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Value create() => Value._();
|
||||
Value createEmptyInstance() => create();
|
||||
static $pb.PbList<Value> createRepeated() => $pb.PbList<Value>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static Value getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Value>(create);
|
||||
static Value? _defaultInstance;
|
||||
|
||||
Value_Kind whichKind() => _Value_KindByTag[$_whichOneof(0)]!;
|
||||
void clearKind() => clearField($_whichOneof(0));
|
||||
|
||||
/// Represents a null value.
|
||||
@$pb.TagNumber(1)
|
||||
NullValue get nullValue => $_getN(0);
|
||||
@$pb.TagNumber(1)
|
||||
set nullValue(NullValue v) { setField(1, v); }
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasNullValue() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearNullValue() => clearField(1);
|
||||
|
||||
/// Represents a double value.
|
||||
@$pb.TagNumber(2)
|
||||
$core.double get numberValue => $_getN(1);
|
||||
@$pb.TagNumber(2)
|
||||
set numberValue($core.double v) { $_setDouble(1, v); }
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasNumberValue() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearNumberValue() => clearField(2);
|
||||
|
||||
/// Represents a string value.
|
||||
@$pb.TagNumber(3)
|
||||
$core.String get stringValue => $_getSZ(2);
|
||||
@$pb.TagNumber(3)
|
||||
set stringValue($core.String v) { $_setString(2, v); }
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasStringValue() => $_has(2);
|
||||
@$pb.TagNumber(3)
|
||||
void clearStringValue() => clearField(3);
|
||||
|
||||
/// Represents a boolean value.
|
||||
@$pb.TagNumber(4)
|
||||
$core.bool get boolValue => $_getBF(3);
|
||||
@$pb.TagNumber(4)
|
||||
set boolValue($core.bool v) { $_setBool(3, v); }
|
||||
@$pb.TagNumber(4)
|
||||
$core.bool hasBoolValue() => $_has(3);
|
||||
@$pb.TagNumber(4)
|
||||
void clearBoolValue() => clearField(4);
|
||||
|
||||
/// Represents a structured value.
|
||||
@$pb.TagNumber(5)
|
||||
Struct get structValue => $_getN(4);
|
||||
@$pb.TagNumber(5)
|
||||
set structValue(Struct v) { setField(5, v); }
|
||||
@$pb.TagNumber(5)
|
||||
$core.bool hasStructValue() => $_has(4);
|
||||
@$pb.TagNumber(5)
|
||||
void clearStructValue() => clearField(5);
|
||||
@$pb.TagNumber(5)
|
||||
Struct ensureStructValue() => $_ensure(4);
|
||||
|
||||
/// Represents a repeated `Value`.
|
||||
@$pb.TagNumber(6)
|
||||
ListValue get listValue => $_getN(5);
|
||||
@$pb.TagNumber(6)
|
||||
set listValue(ListValue v) { setField(6, v); }
|
||||
@$pb.TagNumber(6)
|
||||
$core.bool hasListValue() => $_has(5);
|
||||
@$pb.TagNumber(6)
|
||||
void clearListValue() => clearField(6);
|
||||
@$pb.TagNumber(6)
|
||||
ListValue ensureListValue() => $_ensure(5);
|
||||
}
|
||||
|
||||
/// `ListValue` is a wrapper around a repeated field of values.
|
||||
///
|
||||
/// The JSON representation for `ListValue` is JSON array.
|
||||
class ListValue extends $pb.GeneratedMessage with $mixin.ListValueMixin {
|
||||
factory ListValue({
|
||||
$core.Iterable<Value>? values,
|
||||
}) {
|
||||
final $result = create();
|
||||
if (values != null) {
|
||||
$result.values.addAll(values);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
ListValue._() : super();
|
||||
factory ListValue.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
||||
factory ListValue.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
||||
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'ListValue', package: const $pb.PackageName(_omitMessageNames ? '' : 'google.protobuf'), createEmptyInstance: create, toProto3Json: $mixin.ListValueMixin.toProto3JsonHelper, fromProto3Json: $mixin.ListValueMixin.fromProto3JsonHelper)
|
||||
..pc<Value>(1, _omitFieldNames ? '' : 'values', $pb.PbFieldType.PM, subBuilder: Value.create)
|
||||
..hasRequiredFields = false
|
||||
;
|
||||
|
||||
@$core.Deprecated(
|
||||
'Using this can add significant overhead to your binary. '
|
||||
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
|
||||
'Will be removed in next major version')
|
||||
ListValue clone() => ListValue()..mergeFromMessage(this);
|
||||
@$core.Deprecated(
|
||||
'Using this can add significant overhead to your binary. '
|
||||
'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
|
||||
'Will be removed in next major version')
|
||||
ListValue copyWith(void Function(ListValue) updates) => super.copyWith((message) => updates(message as ListValue)) as ListValue;
|
||||
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ListValue create() => ListValue._();
|
||||
ListValue createEmptyInstance() => create();
|
||||
static $pb.PbList<ListValue> createRepeated() => $pb.PbList<ListValue>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static ListValue getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<ListValue>(create);
|
||||
static ListValue? _defaultInstance;
|
||||
|
||||
/// Repeated field of dynamically typed values.
|
||||
@$pb.TagNumber(1)
|
||||
$core.List<Value> get values => $_getList(0);
|
||||
}
|
||||
|
||||
|
||||
const _omitFieldNames = $core.bool.fromEnvironment('protobuf.omit_field_names');
|
||||
const _omitMessageNames = $core.bool.fromEnvironment('protobuf.omit_message_names');
|
||||
34
test/support/google/protobuf/struct.pbenum.dart
Normal file
34
test/support/google/protobuf/struct.pbenum.dart
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
//
|
||||
// Generated code. Do not modify.
|
||||
// source: google/protobuf/struct.proto
|
||||
//
|
||||
// @dart = 2.12
|
||||
|
||||
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||
// ignore_for_file: constant_identifier_names, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_final_fields
|
||||
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
import 'package:protobuf/protobuf.dart' as $pb;
|
||||
|
||||
/// `NullValue` is a singleton enumeration to represent the null value for the
|
||||
/// `Value` type union.
|
||||
///
|
||||
/// The JSON representation for `NullValue` is JSON `null`.
|
||||
class NullValue extends $pb.ProtobufEnum {
|
||||
static const NullValue NULL_VALUE = NullValue._(0, _omitEnumNames ? '' : 'NULL_VALUE');
|
||||
|
||||
static const $core.List<NullValue> values = <NullValue> [
|
||||
NULL_VALUE,
|
||||
];
|
||||
|
||||
static final $core.Map<$core.int, NullValue> _byValue = $pb.ProtobufEnum.initByValue(values);
|
||||
static NullValue? valueOf($core.int value) => _byValue[value];
|
||||
|
||||
const NullValue._($core.int v, $core.String n) : super(v, n);
|
||||
}
|
||||
|
||||
|
||||
const _omitEnumNames = $core.bool.fromEnvironment('protobuf.omit_enum_names');
|
||||
90
test/support/google/protobuf/struct.pbjson.dart
Normal file
90
test/support/google/protobuf/struct.pbjson.dart
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
//
|
||||
// Generated code. Do not modify.
|
||||
// source: google/protobuf/struct.proto
|
||||
//
|
||||
// @dart = 2.12
|
||||
|
||||
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||
// ignore_for_file: constant_identifier_names, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_final_fields
|
||||
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import
|
||||
|
||||
import 'dart:convert' as $convert;
|
||||
import 'dart:core' as $core;
|
||||
import 'dart:typed_data' as $typed_data;
|
||||
|
||||
@$core.Deprecated('Use nullValueDescriptor instead')
|
||||
const NullValue$json = {
|
||||
'1': 'NullValue',
|
||||
'2': [
|
||||
{'1': 'NULL_VALUE', '2': 0},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `NullValue`. Decode as a `google.protobuf.EnumDescriptorProto`.
|
||||
final $typed_data.Uint8List nullValueDescriptor = $convert.base64Decode(
|
||||
'CglOdWxsVmFsdWUSDgoKTlVMTF9WQUxVRRAA');
|
||||
|
||||
@$core.Deprecated('Use structDescriptor instead')
|
||||
const Struct$json = {
|
||||
'1': 'Struct',
|
||||
'2': [
|
||||
{'1': 'fields', '3': 1, '4': 3, '5': 11, '6': '.google.protobuf.Struct.FieldsEntry', '10': 'fields'},
|
||||
],
|
||||
'3': [Struct_FieldsEntry$json],
|
||||
};
|
||||
|
||||
@$core.Deprecated('Use structDescriptor instead')
|
||||
const Struct_FieldsEntry$json = {
|
||||
'1': 'FieldsEntry',
|
||||
'2': [
|
||||
{'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'},
|
||||
{'1': 'value', '3': 2, '4': 1, '5': 11, '6': '.google.protobuf.Value', '10': 'value'},
|
||||
],
|
||||
'7': {'7': true},
|
||||
};
|
||||
|
||||
/// Descriptor for `Struct`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List structDescriptor = $convert.base64Decode(
|
||||
'CgZTdHJ1Y3QSOwoGZmllbGRzGAEgAygLMiMuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdC5GaWVsZH'
|
||||
'NFbnRyeVIGZmllbGRzGlEKC0ZpZWxkc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EiwKBXZhbHVl'
|
||||
'GAIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUgV2YWx1ZToCOAE=');
|
||||
|
||||
@$core.Deprecated('Use valueDescriptor instead')
|
||||
const Value$json = {
|
||||
'1': 'Value',
|
||||
'2': [
|
||||
{'1': 'null_value', '3': 1, '4': 1, '5': 14, '6': '.google.protobuf.NullValue', '9': 0, '10': 'nullValue'},
|
||||
{'1': 'number_value', '3': 2, '4': 1, '5': 1, '9': 0, '10': 'numberValue'},
|
||||
{'1': 'string_value', '3': 3, '4': 1, '5': 9, '9': 0, '10': 'stringValue'},
|
||||
{'1': 'bool_value', '3': 4, '4': 1, '5': 8, '9': 0, '10': 'boolValue'},
|
||||
{'1': 'struct_value', '3': 5, '4': 1, '5': 11, '6': '.google.protobuf.Struct', '9': 0, '10': 'structValue'},
|
||||
{'1': 'list_value', '3': 6, '4': 1, '5': 11, '6': '.google.protobuf.ListValue', '9': 0, '10': 'listValue'},
|
||||
],
|
||||
'8': [
|
||||
{'1': 'kind'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `Value`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List valueDescriptor = $convert.base64Decode(
|
||||
'CgVWYWx1ZRI7CgpudWxsX3ZhbHVlGAEgASgOMhouZ29vZ2xlLnByb3RvYnVmLk51bGxWYWx1ZU'
|
||||
'gAUgludWxsVmFsdWUSIwoMbnVtYmVyX3ZhbHVlGAIgASgBSABSC251bWJlclZhbHVlEiMKDHN0'
|
||||
'cmluZ192YWx1ZRgDIAEoCUgAUgtzdHJpbmdWYWx1ZRIfCgpib29sX3ZhbHVlGAQgASgISABSCW'
|
||||
'Jvb2xWYWx1ZRI8CgxzdHJ1Y3RfdmFsdWUYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0'
|
||||
'SABSC3N0cnVjdFZhbHVlEjsKCmxpc3RfdmFsdWUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuTG'
|
||||
'lzdFZhbHVlSABSCWxpc3RWYWx1ZUIGCgRraW5k');
|
||||
|
||||
@$core.Deprecated('Use listValueDescriptor instead')
|
||||
const ListValue$json = {
|
||||
'1': 'ListValue',
|
||||
'2': [
|
||||
{'1': 'values', '3': 1, '4': 3, '5': 11, '6': '.google.protobuf.Value', '10': 'values'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `ListValue`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List listValueDescriptor = $convert.base64Decode(
|
||||
'CglMaXN0VmFsdWUSLgoGdmFsdWVzGAEgAygLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUgZ2YW'
|
||||
'x1ZXM=');
|
||||
|
||||
14
test/support/google/protobuf/struct.pbserver.dart
Normal file
14
test/support/google/protobuf/struct.pbserver.dart
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
//
|
||||
// Generated code. Do not modify.
|
||||
// source: google/protobuf/struct.proto
|
||||
//
|
||||
// @dart = 2.12
|
||||
|
||||
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_final_fields
|
||||
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import
|
||||
|
||||
export 'struct.pb.dart';
|
||||
|
||||
2062
test/support/iop/runtime.pb.dart
Normal file
2062
test/support/iop/runtime.pb.dart
Normal file
File diff suppressed because it is too large
Load diff
72
test/support/iop/runtime.pbenum.dart
Normal file
72
test/support/iop/runtime.pbenum.dart
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
//
|
||||
// Generated code. Do not modify.
|
||||
// source: iop/runtime.proto
|
||||
//
|
||||
// @dart = 2.12
|
||||
|
||||
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||
// ignore_for_file: constant_identifier_names, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_final_fields
|
||||
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import
|
||||
|
||||
import 'dart:core' as $core;
|
||||
|
||||
import 'package:protobuf/protobuf.dart' as $pb;
|
||||
|
||||
class RunSessionMode extends $pb.ProtobufEnum {
|
||||
static const RunSessionMode RUN_SESSION_MODE_UNSPECIFIED = RunSessionMode._(0, _omitEnumNames ? '' : 'RUN_SESSION_MODE_UNSPECIFIED');
|
||||
static const RunSessionMode RUN_SESSION_MODE_CREATE_IF_MISSING = RunSessionMode._(1, _omitEnumNames ? '' : 'RUN_SESSION_MODE_CREATE_IF_MISSING');
|
||||
static const RunSessionMode RUN_SESSION_MODE_REQUIRE_EXISTING = RunSessionMode._(2, _omitEnumNames ? '' : 'RUN_SESSION_MODE_REQUIRE_EXISTING');
|
||||
|
||||
static const $core.List<RunSessionMode> values = <RunSessionMode> [
|
||||
RUN_SESSION_MODE_UNSPECIFIED,
|
||||
RUN_SESSION_MODE_CREATE_IF_MISSING,
|
||||
RUN_SESSION_MODE_REQUIRE_EXISTING,
|
||||
];
|
||||
|
||||
static final $core.Map<$core.int, RunSessionMode> _byValue = $pb.ProtobufEnum.initByValue(values);
|
||||
static RunSessionMode? valueOf($core.int value) => _byValue[value];
|
||||
|
||||
const RunSessionMode._($core.int v, $core.String n) : super(v, n);
|
||||
}
|
||||
|
||||
class CancelAction extends $pb.ProtobufEnum {
|
||||
static const CancelAction CANCEL_ACTION_UNSPECIFIED = CancelAction._(0, _omitEnumNames ? '' : 'CANCEL_ACTION_UNSPECIFIED');
|
||||
static const CancelAction CANCEL_ACTION_CANCEL_RUN = CancelAction._(1, _omitEnumNames ? '' : 'CANCEL_ACTION_CANCEL_RUN');
|
||||
static const CancelAction CANCEL_ACTION_TERMINATE_SESSION = CancelAction._(2, _omitEnumNames ? '' : 'CANCEL_ACTION_TERMINATE_SESSION');
|
||||
|
||||
static const $core.List<CancelAction> values = <CancelAction> [
|
||||
CANCEL_ACTION_UNSPECIFIED,
|
||||
CANCEL_ACTION_CANCEL_RUN,
|
||||
CANCEL_ACTION_TERMINATE_SESSION,
|
||||
];
|
||||
|
||||
static final $core.Map<$core.int, CancelAction> _byValue = $pb.ProtobufEnum.initByValue(values);
|
||||
static CancelAction? valueOf($core.int value) => _byValue[value];
|
||||
|
||||
const CancelAction._($core.int v, $core.String n) : super(v, n);
|
||||
}
|
||||
|
||||
class NodeCommandType extends $pb.ProtobufEnum {
|
||||
static const NodeCommandType NODE_COMMAND_TYPE_UNSPECIFIED = NodeCommandType._(0, _omitEnumNames ? '' : 'NODE_COMMAND_TYPE_UNSPECIFIED');
|
||||
static const NodeCommandType NODE_COMMAND_TYPE_USAGE_STATUS = NodeCommandType._(1, _omitEnumNames ? '' : 'NODE_COMMAND_TYPE_USAGE_STATUS');
|
||||
static const NodeCommandType NODE_COMMAND_TYPE_CAPABILITIES = NodeCommandType._(2, _omitEnumNames ? '' : 'NODE_COMMAND_TYPE_CAPABILITIES');
|
||||
static const NodeCommandType NODE_COMMAND_TYPE_SESSION_LIST = NodeCommandType._(3, _omitEnumNames ? '' : 'NODE_COMMAND_TYPE_SESSION_LIST');
|
||||
static const NodeCommandType NODE_COMMAND_TYPE_TRANSPORT_STATUS = NodeCommandType._(4, _omitEnumNames ? '' : 'NODE_COMMAND_TYPE_TRANSPORT_STATUS');
|
||||
|
||||
static const $core.List<NodeCommandType> values = <NodeCommandType> [
|
||||
NODE_COMMAND_TYPE_UNSPECIFIED,
|
||||
NODE_COMMAND_TYPE_USAGE_STATUS,
|
||||
NODE_COMMAND_TYPE_CAPABILITIES,
|
||||
NODE_COMMAND_TYPE_SESSION_LIST,
|
||||
NODE_COMMAND_TYPE_TRANSPORT_STATUS,
|
||||
];
|
||||
|
||||
static final $core.Map<$core.int, NodeCommandType> _byValue = $pb.ProtobufEnum.initByValue(values);
|
||||
static NodeCommandType? valueOf($core.int value) => _byValue[value];
|
||||
|
||||
const NodeCommandType._($core.int v, $core.String n) : super(v, n);
|
||||
}
|
||||
|
||||
|
||||
const _omitEnumNames = $core.bool.fromEnvironment('protobuf.omit_enum_names');
|
||||
522
test/support/iop/runtime.pbjson.dart
Normal file
522
test/support/iop/runtime.pbjson.dart
Normal file
|
|
@ -0,0 +1,522 @@
|
|||
//
|
||||
// Generated code. Do not modify.
|
||||
// source: iop/runtime.proto
|
||||
//
|
||||
// @dart = 2.12
|
||||
|
||||
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||
// ignore_for_file: constant_identifier_names, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_final_fields
|
||||
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import
|
||||
|
||||
import 'dart:convert' as $convert;
|
||||
import 'dart:core' as $core;
|
||||
import 'dart:typed_data' as $typed_data;
|
||||
|
||||
@$core.Deprecated('Use runSessionModeDescriptor instead')
|
||||
const RunSessionMode$json = {
|
||||
'1': 'RunSessionMode',
|
||||
'2': [
|
||||
{'1': 'RUN_SESSION_MODE_UNSPECIFIED', '2': 0},
|
||||
{'1': 'RUN_SESSION_MODE_CREATE_IF_MISSING', '2': 1},
|
||||
{'1': 'RUN_SESSION_MODE_REQUIRE_EXISTING', '2': 2},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `RunSessionMode`. Decode as a `google.protobuf.EnumDescriptorProto`.
|
||||
final $typed_data.Uint8List runSessionModeDescriptor = $convert.base64Decode(
|
||||
'Cg5SdW5TZXNzaW9uTW9kZRIgChxSVU5fU0VTU0lPTl9NT0RFX1VOU1BFQ0lGSUVEEAASJgoiUl'
|
||||
'VOX1NFU1NJT05fTU9ERV9DUkVBVEVfSUZfTUlTU0lORxABEiUKIVJVTl9TRVNTSU9OX01PREVf'
|
||||
'UkVRVUlSRV9FWElTVElORxAC');
|
||||
|
||||
@$core.Deprecated('Use cancelActionDescriptor instead')
|
||||
const CancelAction$json = {
|
||||
'1': 'CancelAction',
|
||||
'2': [
|
||||
{'1': 'CANCEL_ACTION_UNSPECIFIED', '2': 0},
|
||||
{'1': 'CANCEL_ACTION_CANCEL_RUN', '2': 1},
|
||||
{'1': 'CANCEL_ACTION_TERMINATE_SESSION', '2': 2},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `CancelAction`. Decode as a `google.protobuf.EnumDescriptorProto`.
|
||||
final $typed_data.Uint8List cancelActionDescriptor = $convert.base64Decode(
|
||||
'CgxDYW5jZWxBY3Rpb24SHQoZQ0FOQ0VMX0FDVElPTl9VTlNQRUNJRklFRBAAEhwKGENBTkNFTF'
|
||||
'9BQ1RJT05fQ0FOQ0VMX1JVThABEiMKH0NBTkNFTF9BQ1RJT05fVEVSTUlOQVRFX1NFU1NJT04Q'
|
||||
'Ag==');
|
||||
|
||||
@$core.Deprecated('Use nodeCommandTypeDescriptor instead')
|
||||
const NodeCommandType$json = {
|
||||
'1': 'NodeCommandType',
|
||||
'2': [
|
||||
{'1': 'NODE_COMMAND_TYPE_UNSPECIFIED', '2': 0},
|
||||
{'1': 'NODE_COMMAND_TYPE_USAGE_STATUS', '2': 1},
|
||||
{'1': 'NODE_COMMAND_TYPE_CAPABILITIES', '2': 2},
|
||||
{'1': 'NODE_COMMAND_TYPE_SESSION_LIST', '2': 3},
|
||||
{'1': 'NODE_COMMAND_TYPE_TRANSPORT_STATUS', '2': 4},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `NodeCommandType`. Decode as a `google.protobuf.EnumDescriptorProto`.
|
||||
final $typed_data.Uint8List nodeCommandTypeDescriptor = $convert.base64Decode(
|
||||
'Cg9Ob2RlQ29tbWFuZFR5cGUSIQodTk9ERV9DT01NQU5EX1RZUEVfVU5TUEVDSUZJRUQQABIiCh'
|
||||
'5OT0RFX0NPTU1BTkRfVFlQRV9VU0FHRV9TVEFUVVMQARIiCh5OT0RFX0NPTU1BTkRfVFlQRV9D'
|
||||
'QVBBQklMSVRJRVMQAhIiCh5OT0RFX0NPTU1BTkRfVFlQRV9TRVNTSU9OX0xJU1QQAxImCiJOT0'
|
||||
'RFX0NPTU1BTkRfVFlQRV9UUkFOU1BPUlRfU1RBVFVTEAQ=');
|
||||
|
||||
@$core.Deprecated('Use runRequestDescriptor instead')
|
||||
const RunRequest$json = {
|
||||
'1': 'RunRequest',
|
||||
'2': [
|
||||
{'1': 'run_id', '3': 1, '4': 1, '5': 9, '10': 'runId'},
|
||||
{'1': 'adapter', '3': 2, '4': 1, '5': 9, '10': 'adapter'},
|
||||
{'1': 'target', '3': 3, '4': 1, '5': 9, '10': 'target'},
|
||||
{'1': 'workspace', '3': 4, '4': 1, '5': 9, '10': 'workspace'},
|
||||
{'1': 'policy', '3': 5, '4': 1, '5': 11, '6': '.google.protobuf.Struct', '10': 'policy'},
|
||||
{'1': 'input', '3': 6, '4': 1, '5': 11, '6': '.google.protobuf.Struct', '10': 'input'},
|
||||
{'1': 'timeout_sec', '3': 7, '4': 1, '5': 5, '10': 'timeoutSec'},
|
||||
{'1': 'metadata', '3': 8, '4': 3, '5': 11, '6': '.iop.RunRequest.MetadataEntry', '10': 'metadata'},
|
||||
{'1': 'session_id', '3': 9, '4': 1, '5': 9, '10': 'sessionId'},
|
||||
{'1': 'session_mode', '3': 10, '4': 1, '5': 14, '6': '.iop.RunSessionMode', '10': 'sessionMode'},
|
||||
{'1': 'background', '3': 11, '4': 1, '5': 8, '10': 'background'},
|
||||
],
|
||||
'3': [RunRequest_MetadataEntry$json],
|
||||
};
|
||||
|
||||
@$core.Deprecated('Use runRequestDescriptor instead')
|
||||
const RunRequest_MetadataEntry$json = {
|
||||
'1': 'MetadataEntry',
|
||||
'2': [
|
||||
{'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'},
|
||||
{'1': 'value', '3': 2, '4': 1, '5': 9, '10': 'value'},
|
||||
],
|
||||
'7': {'7': true},
|
||||
};
|
||||
|
||||
/// Descriptor for `RunRequest`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List runRequestDescriptor = $convert.base64Decode(
|
||||
'CgpSdW5SZXF1ZXN0EhUKBnJ1bl9pZBgBIAEoCVIFcnVuSWQSGAoHYWRhcHRlchgCIAEoCVIHYW'
|
||||
'RhcHRlchIWCgZ0YXJnZXQYAyABKAlSBnRhcmdldBIcCgl3b3Jrc3BhY2UYBCABKAlSCXdvcmtz'
|
||||
'cGFjZRIvCgZwb2xpY3kYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0UgZwb2xpY3kSLQ'
|
||||
'oFaW5wdXQYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0UgVpbnB1dBIfCgt0aW1lb3V0'
|
||||
'X3NlYxgHIAEoBVIKdGltZW91dFNlYxI5CghtZXRhZGF0YRgIIAMoCzIdLmlvcC5SdW5SZXF1ZX'
|
||||
'N0Lk1ldGFkYXRhRW50cnlSCG1ldGFkYXRhEh0KCnNlc3Npb25faWQYCSABKAlSCXNlc3Npb25J'
|
||||
'ZBI2CgxzZXNzaW9uX21vZGUYCiABKA4yEy5pb3AuUnVuU2Vzc2lvbk1vZGVSC3Nlc3Npb25Nb2'
|
||||
'RlEh4KCmJhY2tncm91bmQYCyABKAhSCmJhY2tncm91bmQaOwoNTWV0YWRhdGFFbnRyeRIQCgNr'
|
||||
'ZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgB');
|
||||
|
||||
@$core.Deprecated('Use runEventDescriptor instead')
|
||||
const RunEvent$json = {
|
||||
'1': 'RunEvent',
|
||||
'2': [
|
||||
{'1': 'run_id', '3': 1, '4': 1, '5': 9, '10': 'runId'},
|
||||
{'1': 'type', '3': 2, '4': 1, '5': 9, '10': 'type'},
|
||||
{'1': 'delta', '3': 3, '4': 1, '5': 9, '10': 'delta'},
|
||||
{'1': 'message', '3': 4, '4': 1, '5': 9, '10': 'message'},
|
||||
{'1': 'error', '3': 5, '4': 1, '5': 9, '10': 'error'},
|
||||
{'1': 'usage', '3': 6, '4': 1, '5': 11, '6': '.iop.Usage', '10': 'usage'},
|
||||
{'1': 'metadata', '3': 7, '4': 3, '5': 11, '6': '.iop.RunEvent.MetadataEntry', '10': 'metadata'},
|
||||
{'1': 'timestamp', '3': 8, '4': 1, '5': 3, '10': 'timestamp'},
|
||||
{'1': 'session_id', '3': 9, '4': 1, '5': 9, '10': 'sessionId'},
|
||||
{'1': 'background', '3': 10, '4': 1, '5': 8, '10': 'background'},
|
||||
{'1': 'node_id', '3': 11, '4': 1, '5': 9, '10': 'nodeId'},
|
||||
{'1': 'node_alias', '3': 12, '4': 1, '5': 9, '10': 'nodeAlias'},
|
||||
],
|
||||
'3': [RunEvent_MetadataEntry$json],
|
||||
};
|
||||
|
||||
@$core.Deprecated('Use runEventDescriptor instead')
|
||||
const RunEvent_MetadataEntry$json = {
|
||||
'1': 'MetadataEntry',
|
||||
'2': [
|
||||
{'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'},
|
||||
{'1': 'value', '3': 2, '4': 1, '5': 9, '10': 'value'},
|
||||
],
|
||||
'7': {'7': true},
|
||||
};
|
||||
|
||||
/// Descriptor for `RunEvent`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List runEventDescriptor = $convert.base64Decode(
|
||||
'CghSdW5FdmVudBIVCgZydW5faWQYASABKAlSBXJ1bklkEhIKBHR5cGUYAiABKAlSBHR5cGUSFA'
|
||||
'oFZGVsdGEYAyABKAlSBWRlbHRhEhgKB21lc3NhZ2UYBCABKAlSB21lc3NhZ2USFAoFZXJyb3IY'
|
||||
'BSABKAlSBWVycm9yEiAKBXVzYWdlGAYgASgLMgouaW9wLlVzYWdlUgV1c2FnZRI3CghtZXRhZG'
|
||||
'F0YRgHIAMoCzIbLmlvcC5SdW5FdmVudC5NZXRhZGF0YUVudHJ5UghtZXRhZGF0YRIcCgl0aW1l'
|
||||
'c3RhbXAYCCABKANSCXRpbWVzdGFtcBIdCgpzZXNzaW9uX2lkGAkgASgJUglzZXNzaW9uSWQSHg'
|
||||
'oKYmFja2dyb3VuZBgKIAEoCFIKYmFja2dyb3VuZBIXCgdub2RlX2lkGAsgASgJUgZub2RlSWQS'
|
||||
'HQoKbm9kZV9hbGlhcxgMIAEoCVIJbm9kZUFsaWFzGjsKDU1ldGFkYXRhRW50cnkSEAoDa2V5GA'
|
||||
'EgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4AQ==');
|
||||
|
||||
@$core.Deprecated('Use edgeNodeEventDescriptor instead')
|
||||
const EdgeNodeEvent$json = {
|
||||
'1': 'EdgeNodeEvent',
|
||||
'2': [
|
||||
{'1': 'event_id', '3': 1, '4': 1, '5': 9, '10': 'eventId'},
|
||||
{'1': 'type', '3': 2, '4': 1, '5': 9, '10': 'type'},
|
||||
{'1': 'source', '3': 3, '4': 1, '5': 9, '10': 'source'},
|
||||
{'1': 'node_id', '3': 4, '4': 1, '5': 9, '10': 'nodeId'},
|
||||
{'1': 'alias', '3': 5, '4': 1, '5': 9, '10': 'alias'},
|
||||
{'1': 'reason', '3': 6, '4': 1, '5': 9, '10': 'reason'},
|
||||
{'1': 'metadata', '3': 7, '4': 3, '5': 11, '6': '.iop.EdgeNodeEvent.MetadataEntry', '10': 'metadata'},
|
||||
{'1': 'timestamp', '3': 8, '4': 1, '5': 3, '10': 'timestamp'},
|
||||
],
|
||||
'3': [EdgeNodeEvent_MetadataEntry$json],
|
||||
};
|
||||
|
||||
@$core.Deprecated('Use edgeNodeEventDescriptor instead')
|
||||
const EdgeNodeEvent_MetadataEntry$json = {
|
||||
'1': 'MetadataEntry',
|
||||
'2': [
|
||||
{'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'},
|
||||
{'1': 'value', '3': 2, '4': 1, '5': 9, '10': 'value'},
|
||||
],
|
||||
'7': {'7': true},
|
||||
};
|
||||
|
||||
/// Descriptor for `EdgeNodeEvent`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List edgeNodeEventDescriptor = $convert.base64Decode(
|
||||
'Cg1FZGdlTm9kZUV2ZW50EhkKCGV2ZW50X2lkGAEgASgJUgdldmVudElkEhIKBHR5cGUYAiABKA'
|
||||
'lSBHR5cGUSFgoGc291cmNlGAMgASgJUgZzb3VyY2USFwoHbm9kZV9pZBgEIAEoCVIGbm9kZUlk'
|
||||
'EhQKBWFsaWFzGAUgASgJUgVhbGlhcxIWCgZyZWFzb24YBiABKAlSBnJlYXNvbhI8CghtZXRhZG'
|
||||
'F0YRgHIAMoCzIgLmlvcC5FZGdlTm9kZUV2ZW50Lk1ldGFkYXRhRW50cnlSCG1ldGFkYXRhEhwK'
|
||||
'CXRpbWVzdGFtcBgIIAEoA1IJdGltZXN0YW1wGjsKDU1ldGFkYXRhRW50cnkSEAoDa2V5GAEgAS'
|
||||
'gJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4AQ==');
|
||||
|
||||
@$core.Deprecated('Use usageDescriptor instead')
|
||||
const Usage$json = {
|
||||
'1': 'Usage',
|
||||
'2': [
|
||||
{'1': 'input_tokens', '3': 1, '4': 1, '5': 5, '10': 'inputTokens'},
|
||||
{'1': 'output_tokens', '3': 2, '4': 1, '5': 5, '10': 'outputTokens'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `Usage`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List usageDescriptor = $convert.base64Decode(
|
||||
'CgVVc2FnZRIhCgxpbnB1dF90b2tlbnMYASABKAVSC2lucHV0VG9rZW5zEiMKDW91dHB1dF90b2'
|
||||
'tlbnMYAiABKAVSDG91dHB1dFRva2Vucw==');
|
||||
|
||||
@$core.Deprecated('Use heartbeatDescriptor instead')
|
||||
const Heartbeat$json = {
|
||||
'1': 'Heartbeat',
|
||||
'2': [
|
||||
{'1': 'timestamp', '3': 1, '4': 1, '5': 3, '10': 'timestamp'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `Heartbeat`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List heartbeatDescriptor = $convert.base64Decode(
|
||||
'CglIZWFydGJlYXQSHAoJdGltZXN0YW1wGAEgASgDUgl0aW1lc3RhbXA=');
|
||||
|
||||
@$core.Deprecated('Use cancelRequestDescriptor instead')
|
||||
const CancelRequest$json = {
|
||||
'1': 'CancelRequest',
|
||||
'2': [
|
||||
{'1': 'run_id', '3': 1, '4': 1, '5': 9, '10': 'runId'},
|
||||
{'1': 'adapter', '3': 2, '4': 1, '5': 9, '10': 'adapter'},
|
||||
{'1': 'target', '3': 3, '4': 1, '5': 9, '10': 'target'},
|
||||
{'1': 'session_id', '3': 4, '4': 1, '5': 9, '10': 'sessionId'},
|
||||
{'1': 'action', '3': 5, '4': 1, '5': 14, '6': '.iop.CancelAction', '10': 'action'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `CancelRequest`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List cancelRequestDescriptor = $convert.base64Decode(
|
||||
'Cg1DYW5jZWxSZXF1ZXN0EhUKBnJ1bl9pZBgBIAEoCVIFcnVuSWQSGAoHYWRhcHRlchgCIAEoCV'
|
||||
'IHYWRhcHRlchIWCgZ0YXJnZXQYAyABKAlSBnRhcmdldBIdCgpzZXNzaW9uX2lkGAQgASgJUglz'
|
||||
'ZXNzaW9uSWQSKQoGYWN0aW9uGAUgASgOMhEuaW9wLkNhbmNlbEFjdGlvblIGYWN0aW9u');
|
||||
|
||||
@$core.Deprecated('Use nodeCommandRequestDescriptor instead')
|
||||
const NodeCommandRequest$json = {
|
||||
'1': 'NodeCommandRequest',
|
||||
'2': [
|
||||
{'1': 'request_id', '3': 1, '4': 1, '5': 9, '10': 'requestId'},
|
||||
{'1': 'type', '3': 2, '4': 1, '5': 14, '6': '.iop.NodeCommandType', '10': 'type'},
|
||||
{'1': 'adapter', '3': 3, '4': 1, '5': 9, '10': 'adapter'},
|
||||
{'1': 'target', '3': 4, '4': 1, '5': 9, '10': 'target'},
|
||||
{'1': 'session_id', '3': 5, '4': 1, '5': 9, '10': 'sessionId'},
|
||||
{'1': 'timeout_sec', '3': 6, '4': 1, '5': 5, '10': 'timeoutSec'},
|
||||
{'1': 'metadata', '3': 7, '4': 3, '5': 11, '6': '.iop.NodeCommandRequest.MetadataEntry', '10': 'metadata'},
|
||||
],
|
||||
'3': [NodeCommandRequest_MetadataEntry$json],
|
||||
};
|
||||
|
||||
@$core.Deprecated('Use nodeCommandRequestDescriptor instead')
|
||||
const NodeCommandRequest_MetadataEntry$json = {
|
||||
'1': 'MetadataEntry',
|
||||
'2': [
|
||||
{'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'},
|
||||
{'1': 'value', '3': 2, '4': 1, '5': 9, '10': 'value'},
|
||||
],
|
||||
'7': {'7': true},
|
||||
};
|
||||
|
||||
/// Descriptor for `NodeCommandRequest`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List nodeCommandRequestDescriptor = $convert.base64Decode(
|
||||
'ChJOb2RlQ29tbWFuZFJlcXVlc3QSHQoKcmVxdWVzdF9pZBgBIAEoCVIJcmVxdWVzdElkEigKBH'
|
||||
'R5cGUYAiABKA4yFC5pb3AuTm9kZUNvbW1hbmRUeXBlUgR0eXBlEhgKB2FkYXB0ZXIYAyABKAlS'
|
||||
'B2FkYXB0ZXISFgoGdGFyZ2V0GAQgASgJUgZ0YXJnZXQSHQoKc2Vzc2lvbl9pZBgFIAEoCVIJc2'
|
||||
'Vzc2lvbklkEh8KC3RpbWVvdXRfc2VjGAYgASgFUgp0aW1lb3V0U2VjEkEKCG1ldGFkYXRhGAcg'
|
||||
'AygLMiUuaW9wLk5vZGVDb21tYW5kUmVxdWVzdC5NZXRhZGF0YUVudHJ5UghtZXRhZGF0YRo7Cg'
|
||||
'1NZXRhZGF0YUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToC'
|
||||
'OAE=');
|
||||
|
||||
@$core.Deprecated('Use nodeCommandResponseDescriptor instead')
|
||||
const NodeCommandResponse$json = {
|
||||
'1': 'NodeCommandResponse',
|
||||
'2': [
|
||||
{'1': 'request_id', '3': 1, '4': 1, '5': 9, '10': 'requestId'},
|
||||
{'1': 'type', '3': 2, '4': 1, '5': 14, '6': '.iop.NodeCommandType', '10': 'type'},
|
||||
{'1': 'adapter', '3': 3, '4': 1, '5': 9, '10': 'adapter'},
|
||||
{'1': 'target', '3': 4, '4': 1, '5': 9, '10': 'target'},
|
||||
{'1': 'session_id', '3': 5, '4': 1, '5': 9, '10': 'sessionId'},
|
||||
{'1': 'usage_status', '3': 6, '4': 1, '5': 11, '6': '.iop.AgentUsageStatus', '10': 'usageStatus'},
|
||||
{'1': 'error', '3': 7, '4': 1, '5': 9, '10': 'error'},
|
||||
{'1': 'result', '3': 8, '4': 3, '5': 11, '6': '.iop.NodeCommandResponse.ResultEntry', '10': 'result'},
|
||||
],
|
||||
'3': [NodeCommandResponse_ResultEntry$json],
|
||||
};
|
||||
|
||||
@$core.Deprecated('Use nodeCommandResponseDescriptor instead')
|
||||
const NodeCommandResponse_ResultEntry$json = {
|
||||
'1': 'ResultEntry',
|
||||
'2': [
|
||||
{'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'},
|
||||
{'1': 'value', '3': 2, '4': 1, '5': 9, '10': 'value'},
|
||||
],
|
||||
'7': {'7': true},
|
||||
};
|
||||
|
||||
/// Descriptor for `NodeCommandResponse`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List nodeCommandResponseDescriptor = $convert.base64Decode(
|
||||
'ChNOb2RlQ29tbWFuZFJlc3BvbnNlEh0KCnJlcXVlc3RfaWQYASABKAlSCXJlcXVlc3RJZBIoCg'
|
||||
'R0eXBlGAIgASgOMhQuaW9wLk5vZGVDb21tYW5kVHlwZVIEdHlwZRIYCgdhZGFwdGVyGAMgASgJ'
|
||||
'UgdhZGFwdGVyEhYKBnRhcmdldBgEIAEoCVIGdGFyZ2V0Eh0KCnNlc3Npb25faWQYBSABKAlSCX'
|
||||
'Nlc3Npb25JZBI4Cgx1c2FnZV9zdGF0dXMYBiABKAsyFS5pb3AuQWdlbnRVc2FnZVN0YXR1c1IL'
|
||||
'dXNhZ2VTdGF0dXMSFAoFZXJyb3IYByABKAlSBWVycm9yEjwKBnJlc3VsdBgIIAMoCzIkLmlvcC'
|
||||
'5Ob2RlQ29tbWFuZFJlc3BvbnNlLlJlc3VsdEVudHJ5UgZyZXN1bHQaOQoLUmVzdWx0RW50cnkS'
|
||||
'EAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4AQ==');
|
||||
|
||||
@$core.Deprecated('Use agentUsageStatusDescriptor instead')
|
||||
const AgentUsageStatus$json = {
|
||||
'1': 'AgentUsageStatus',
|
||||
'2': [
|
||||
{'1': 'raw_output', '3': 1, '4': 1, '5': 9, '10': 'rawOutput'},
|
||||
{'1': 'daily_limit', '3': 2, '4': 1, '5': 9, '10': 'dailyLimit'},
|
||||
{'1': 'daily_reset_time', '3': 3, '4': 1, '5': 9, '10': 'dailyResetTime'},
|
||||
{'1': 'weekly_limit', '3': 4, '4': 1, '5': 9, '10': 'weeklyLimit'},
|
||||
{'1': 'weekly_reset_time', '3': 5, '4': 1, '5': 9, '10': 'weeklyResetTime'},
|
||||
{'1': 'metadata', '3': 6, '4': 3, '5': 11, '6': '.iop.AgentUsageStatus.MetadataEntry', '10': 'metadata'},
|
||||
],
|
||||
'3': [AgentUsageStatus_MetadataEntry$json],
|
||||
};
|
||||
|
||||
@$core.Deprecated('Use agentUsageStatusDescriptor instead')
|
||||
const AgentUsageStatus_MetadataEntry$json = {
|
||||
'1': 'MetadataEntry',
|
||||
'2': [
|
||||
{'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'},
|
||||
{'1': 'value', '3': 2, '4': 1, '5': 9, '10': 'value'},
|
||||
],
|
||||
'7': {'7': true},
|
||||
};
|
||||
|
||||
/// Descriptor for `AgentUsageStatus`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List agentUsageStatusDescriptor = $convert.base64Decode(
|
||||
'ChBBZ2VudFVzYWdlU3RhdHVzEh0KCnJhd19vdXRwdXQYASABKAlSCXJhd091dHB1dBIfCgtkYW'
|
||||
'lseV9saW1pdBgCIAEoCVIKZGFpbHlMaW1pdBIoChBkYWlseV9yZXNldF90aW1lGAMgASgJUg5k'
|
||||
'YWlseVJlc2V0VGltZRIhCgx3ZWVrbHlfbGltaXQYBCABKAlSC3dlZWtseUxpbWl0EioKEXdlZW'
|
||||
'tseV9yZXNldF90aW1lGAUgASgJUg93ZWVrbHlSZXNldFRpbWUSPwoIbWV0YWRhdGEYBiADKAsy'
|
||||
'Iy5pb3AuQWdlbnRVc2FnZVN0YXR1cy5NZXRhZGF0YUVudHJ5UghtZXRhZGF0YRo7Cg1NZXRhZG'
|
||||
'F0YUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAE=');
|
||||
|
||||
@$core.Deprecated('Use errorDescriptor instead')
|
||||
const Error$json = {
|
||||
'1': 'Error',
|
||||
'2': [
|
||||
{'1': 'code', '3': 1, '4': 1, '5': 9, '10': 'code'},
|
||||
{'1': 'message', '3': 2, '4': 1, '5': 9, '10': 'message'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `Error`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List errorDescriptor = $convert.base64Decode(
|
||||
'CgVFcnJvchISCgRjb2RlGAEgASgJUgRjb2RlEhgKB21lc3NhZ2UYAiABKAlSB21lc3NhZ2U=');
|
||||
|
||||
@$core.Deprecated('Use registerRequestDescriptor instead')
|
||||
const RegisterRequest$json = {
|
||||
'1': 'RegisterRequest',
|
||||
'2': [
|
||||
{'1': 'token', '3': 1, '4': 1, '5': 9, '10': 'token'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `RegisterRequest`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List registerRequestDescriptor = $convert.base64Decode(
|
||||
'Cg9SZWdpc3RlclJlcXVlc3QSFAoFdG9rZW4YASABKAlSBXRva2Vu');
|
||||
|
||||
@$core.Deprecated('Use registerResponseDescriptor instead')
|
||||
const RegisterResponse$json = {
|
||||
'1': 'RegisterResponse',
|
||||
'2': [
|
||||
{'1': 'accepted', '3': 1, '4': 1, '5': 8, '10': 'accepted'},
|
||||
{'1': 'node_id', '3': 2, '4': 1, '5': 9, '10': 'nodeId'},
|
||||
{'1': 'alias', '3': 3, '4': 1, '5': 9, '10': 'alias'},
|
||||
{'1': 'reason', '3': 4, '4': 1, '5': 9, '10': 'reason'},
|
||||
{'1': 'config', '3': 5, '4': 1, '5': 11, '6': '.iop.NodeConfigPayload', '10': 'config'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `RegisterResponse`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List registerResponseDescriptor = $convert.base64Decode(
|
||||
'ChBSZWdpc3RlclJlc3BvbnNlEhoKCGFjY2VwdGVkGAEgASgIUghhY2NlcHRlZBIXCgdub2RlX2'
|
||||
'lkGAIgASgJUgZub2RlSWQSFAoFYWxpYXMYAyABKAlSBWFsaWFzEhYKBnJlYXNvbhgEIAEoCVIG'
|
||||
'cmVhc29uEi4KBmNvbmZpZxgFIAEoCzIWLmlvcC5Ob2RlQ29uZmlnUGF5bG9hZFIGY29uZmln');
|
||||
|
||||
@$core.Deprecated('Use nodeConfigPayloadDescriptor instead')
|
||||
const NodeConfigPayload$json = {
|
||||
'1': 'NodeConfigPayload',
|
||||
'2': [
|
||||
{'1': 'adapters', '3': 1, '4': 3, '5': 11, '6': '.iop.AdapterConfig', '10': 'adapters'},
|
||||
{'1': 'runtime', '3': 2, '4': 1, '5': 11, '6': '.iop.NodeRuntimeConfig', '10': 'runtime'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `NodeConfigPayload`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List nodeConfigPayloadDescriptor = $convert.base64Decode(
|
||||
'ChFOb2RlQ29uZmlnUGF5bG9hZBIuCghhZGFwdGVycxgBIAMoCzISLmlvcC5BZGFwdGVyQ29uZm'
|
||||
'lnUghhZGFwdGVycxIwCgdydW50aW1lGAIgASgLMhYuaW9wLk5vZGVSdW50aW1lQ29uZmlnUgdy'
|
||||
'dW50aW1l');
|
||||
|
||||
@$core.Deprecated('Use adapterConfigDescriptor instead')
|
||||
const AdapterConfig$json = {
|
||||
'1': 'AdapterConfig',
|
||||
'2': [
|
||||
{'1': 'type', '3': 1, '4': 1, '5': 9, '10': 'type'},
|
||||
{'1': 'enabled', '3': 2, '4': 1, '5': 8, '10': 'enabled'},
|
||||
{'1': 'settings', '3': 3, '4': 1, '5': 11, '6': '.google.protobuf.Struct', '10': 'settings'},
|
||||
{'1': 'cli', '3': 4, '4': 1, '5': 11, '6': '.iop.CLIAdapterConfig', '9': 0, '10': 'cli'},
|
||||
{'1': 'ollama', '3': 5, '4': 1, '5': 11, '6': '.iop.OllamaAdapterConfig', '9': 0, '10': 'ollama'},
|
||||
{'1': 'vllm', '3': 6, '4': 1, '5': 11, '6': '.iop.VllmAdapterConfig', '9': 0, '10': 'vllm'},
|
||||
],
|
||||
'8': [
|
||||
{'1': 'config'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `AdapterConfig`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List adapterConfigDescriptor = $convert.base64Decode(
|
||||
'Cg1BZGFwdGVyQ29uZmlnEhIKBHR5cGUYASABKAlSBHR5cGUSGAoHZW5hYmxlZBgCIAEoCFIHZW'
|
||||
'5hYmxlZBIzCghzZXR0aW5ncxgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RSCHNldHRp'
|
||||
'bmdzEikKA2NsaRgEIAEoCzIVLmlvcC5DTElBZGFwdGVyQ29uZmlnSABSA2NsaRIyCgZvbGxhbW'
|
||||
'EYBSABKAsyGC5pb3AuT2xsYW1hQWRhcHRlckNvbmZpZ0gAUgZvbGxhbWESLAoEdmxsbRgGIAEo'
|
||||
'CzIWLmlvcC5WbGxtQWRhcHRlckNvbmZpZ0gAUgR2bGxtQggKBmNvbmZpZw==');
|
||||
|
||||
@$core.Deprecated('Use cLIAdapterConfigDescriptor instead')
|
||||
const CLIAdapterConfig$json = {
|
||||
'1': 'CLIAdapterConfig',
|
||||
'2': [
|
||||
{'1': 'profiles', '3': 1, '4': 3, '5': 11, '6': '.iop.CLIAdapterConfig.ProfilesEntry', '10': 'profiles'},
|
||||
],
|
||||
'3': [CLIAdapterConfig_ProfilesEntry$json],
|
||||
};
|
||||
|
||||
@$core.Deprecated('Use cLIAdapterConfigDescriptor instead')
|
||||
const CLIAdapterConfig_ProfilesEntry$json = {
|
||||
'1': 'ProfilesEntry',
|
||||
'2': [
|
||||
{'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'},
|
||||
{'1': 'value', '3': 2, '4': 1, '5': 11, '6': '.iop.CLIProfileConfig', '10': 'value'},
|
||||
],
|
||||
'7': {'7': true},
|
||||
};
|
||||
|
||||
/// Descriptor for `CLIAdapterConfig`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List cLIAdapterConfigDescriptor = $convert.base64Decode(
|
||||
'ChBDTElBZGFwdGVyQ29uZmlnEj8KCHByb2ZpbGVzGAEgAygLMiMuaW9wLkNMSUFkYXB0ZXJDb2'
|
||||
'5maWcuUHJvZmlsZXNFbnRyeVIIcHJvZmlsZXMaUgoNUHJvZmlsZXNFbnRyeRIQCgNrZXkYASAB'
|
||||
'KAlSA2tleRIrCgV2YWx1ZRgCIAEoCzIVLmlvcC5DTElQcm9maWxlQ29uZmlnUgV2YWx1ZToCOA'
|
||||
'E=');
|
||||
|
||||
@$core.Deprecated('Use cLIProfileConfigDescriptor instead')
|
||||
const CLIProfileConfig$json = {
|
||||
'1': 'CLIProfileConfig',
|
||||
'2': [
|
||||
{'1': 'command', '3': 1, '4': 1, '5': 9, '10': 'command'},
|
||||
{'1': 'args', '3': 2, '4': 3, '5': 9, '10': 'args'},
|
||||
{'1': 'env', '3': 3, '4': 3, '5': 9, '10': 'env'},
|
||||
{'1': 'persistent', '3': 4, '4': 1, '5': 8, '10': 'persistent'},
|
||||
{'1': 'terminal', '3': 5, '4': 1, '5': 8, '10': 'terminal'},
|
||||
{'1': 'response_idle_timeout_ms', '3': 6, '4': 1, '5': 5, '10': 'responseIdleTimeoutMs'},
|
||||
{'1': 'startup_idle_timeout_ms', '3': 7, '4': 1, '5': 5, '10': 'startupIdleTimeoutMs'},
|
||||
{'1': 'output_format', '3': 8, '4': 1, '5': 9, '10': 'outputFormat'},
|
||||
{'1': 'completion_marker', '3': 9, '4': 1, '5': 11, '6': '.iop.CLICompletionMarker', '10': 'completionMarker'},
|
||||
{'1': 'mode', '3': 10, '4': 1, '5': 9, '10': 'mode'},
|
||||
{'1': 'resume_args', '3': 11, '4': 3, '5': 9, '10': 'resumeArgs'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `CLIProfileConfig`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List cLIProfileConfigDescriptor = $convert.base64Decode(
|
||||
'ChBDTElQcm9maWxlQ29uZmlnEhgKB2NvbW1hbmQYASABKAlSB2NvbW1hbmQSEgoEYXJncxgCIA'
|
||||
'MoCVIEYXJncxIQCgNlbnYYAyADKAlSA2VudhIeCgpwZXJzaXN0ZW50GAQgASgIUgpwZXJzaXN0'
|
||||
'ZW50EhoKCHRlcm1pbmFsGAUgASgIUgh0ZXJtaW5hbBI3ChhyZXNwb25zZV9pZGxlX3RpbWVvdX'
|
||||
'RfbXMYBiABKAVSFXJlc3BvbnNlSWRsZVRpbWVvdXRNcxI1ChdzdGFydHVwX2lkbGVfdGltZW91'
|
||||
'dF9tcxgHIAEoBVIUc3RhcnR1cElkbGVUaW1lb3V0TXMSIwoNb3V0cHV0X2Zvcm1hdBgIIAEoCV'
|
||||
'IMb3V0cHV0Rm9ybWF0EkUKEWNvbXBsZXRpb25fbWFya2VyGAkgASgLMhguaW9wLkNMSUNvbXBs'
|
||||
'ZXRpb25NYXJrZXJSEGNvbXBsZXRpb25NYXJrZXISEgoEbW9kZRgKIAEoCVIEbW9kZRIfCgtyZX'
|
||||
'N1bWVfYXJncxgLIAMoCVIKcmVzdW1lQXJncw==');
|
||||
|
||||
@$core.Deprecated('Use cLICompletionMarkerDescriptor instead')
|
||||
const CLICompletionMarker$json = {
|
||||
'1': 'CLICompletionMarker',
|
||||
'2': [
|
||||
{'1': 'line', '3': 1, '4': 1, '5': 9, '10': 'line'},
|
||||
{'1': 'regex', '3': 2, '4': 1, '5': 9, '10': 'regex'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `CLICompletionMarker`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List cLICompletionMarkerDescriptor = $convert.base64Decode(
|
||||
'ChNDTElDb21wbGV0aW9uTWFya2VyEhIKBGxpbmUYASABKAlSBGxpbmUSFAoFcmVnZXgYAiABKA'
|
||||
'lSBXJlZ2V4');
|
||||
|
||||
@$core.Deprecated('Use ollamaAdapterConfigDescriptor instead')
|
||||
const OllamaAdapterConfig$json = {
|
||||
'1': 'OllamaAdapterConfig',
|
||||
'2': [
|
||||
{'1': 'base_url', '3': 1, '4': 1, '5': 9, '10': 'baseUrl'},
|
||||
{'1': 'context_size', '3': 2, '4': 1, '5': 5, '10': 'contextSize'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `OllamaAdapterConfig`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List ollamaAdapterConfigDescriptor = $convert.base64Decode(
|
||||
'ChNPbGxhbWFBZGFwdGVyQ29uZmlnEhkKCGJhc2VfdXJsGAEgASgJUgdiYXNlVXJsEiEKDGNvbn'
|
||||
'RleHRfc2l6ZRgCIAEoBVILY29udGV4dFNpemU=');
|
||||
|
||||
@$core.Deprecated('Use vllmAdapterConfigDescriptor instead')
|
||||
const VllmAdapterConfig$json = {
|
||||
'1': 'VllmAdapterConfig',
|
||||
'2': [
|
||||
{'1': 'endpoint', '3': 1, '4': 1, '5': 9, '10': 'endpoint'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `VllmAdapterConfig`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List vllmAdapterConfigDescriptor = $convert.base64Decode(
|
||||
'ChFWbGxtQWRhcHRlckNvbmZpZxIaCghlbmRwb2ludBgBIAEoCVIIZW5kcG9pbnQ=');
|
||||
|
||||
@$core.Deprecated('Use nodeRuntimeConfigDescriptor instead')
|
||||
const NodeRuntimeConfig$json = {
|
||||
'1': 'NodeRuntimeConfig',
|
||||
'2': [
|
||||
{'1': 'concurrency', '3': 1, '4': 1, '5': 5, '10': 'concurrency'},
|
||||
{'1': 'workspace_root', '3': 2, '4': 1, '5': 9, '10': 'workspaceRoot'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `NodeRuntimeConfig`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List nodeRuntimeConfigDescriptor = $convert.base64Decode(
|
||||
'ChFOb2RlUnVudGltZUNvbmZpZxIgCgtjb25jdXJyZW5jeRgBIAEoBVILY29uY3VycmVuY3kSJQ'
|
||||
'oOd29ya3NwYWNlX3Jvb3QYAiABKAlSDXdvcmtzcGFjZVJvb3Q=');
|
||||
|
||||
14
test/support/iop/runtime.pbserver.dart
Normal file
14
test/support/iop/runtime.pbserver.dart
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
//
|
||||
// Generated code. Do not modify.
|
||||
// source: iop/runtime.proto
|
||||
//
|
||||
// @dart = 2.12
|
||||
|
||||
// ignore_for_file: annotate_overrides, camel_case_types, comment_references
|
||||
// ignore_for_file: constant_identifier_names
|
||||
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
|
||||
// ignore_for_file: non_constant_identifier_names, prefer_final_fields
|
||||
// ignore_for_file: unnecessary_import, unnecessary_this, unused_import
|
||||
|
||||
export 'runtime.pb.dart';
|
||||
|
||||
Loading…
Reference in a new issue