diff --git a/agent-ops/rules/project/domain/agent/rules.md b/agent-ops/rules/project/domain/agent/rules.md index b733eae..053415e 100644 --- a/agent-ops/rules/project/domain/agent/rules.md +++ b/agent-ops/rules/project/domain/agent/rules.md @@ -1,7 +1,7 @@ --- domain: agent -last_rule_review_commit: 99cc06767f82a32a9106f3a483bce2b6aeed5872 -last_rule_updated_at: 2026-06-13 +last_rule_review_commit: 810532a097c1309cd28d7130d8a33bcc779c96e4 +last_rule_updated_at: 2026-06-24 --- # agent @@ -16,6 +16,7 @@ OTO Server에 CLI 기반 runner agent를 등록하고, agent config 파싱, prot - `apps/runner/lib/cli/commands/command_agent.dart` — `agent run --config ` CLI 표면과 오류 출력 - `apps/runner/lib/oto/agent/` — agent config, runner, OTO Server 등록/job client, remote run executor, legacy iop Edge compatibility client, generated protobuf 런타임 코드 - `apps/runner/assets/script/shell/oto_agent_bootstrap.sh` — Linux agent 다운로드, server config 생성, background 실행 bootstrap +- `apps/runner/assets/script/powershell/oto_agent_bootstrap.ps1` — Windows agent 다운로드, server config 생성, background 실행 bootstrap ## 제외 경로 @@ -49,7 +50,7 @@ OTO Server에 CLI 기반 runner agent를 등록하고, agent config 파싱, prot - `EdgeEndpoint` / `EdgeRegistrationClient` / `_OtoIopClient` — legacy iop Edge compatibility 경로. 기본 runner 경로에서는 `OtoServerSocketRegistrationClient`를 사용 - `apps/runner/lib/oto/agent/oto/*.pb*.dart` — `proto/oto/runner.proto` generated Dart protobuf 코드 - `apps/runner/lib/oto/agent/iop/*.pb*.dart` — legacy `iop/runtime.proto` generated protobuf 코드 -- `oto_agent_bootstrap.sh` — agent config 파일 생성, 권한 설정, background 실행 bootstrap +- `oto_agent_bootstrap.sh` / `oto_agent_bootstrap.ps1` — agent config 파일 생성, 권한 설정, background 실행 bootstrap ## 유지할 패턴 @@ -65,8 +66,8 @@ OTO Server에 CLI 기반 runner agent를 등록하고, agent config 파싱, prot - `property.artifacts` 선언은 `name`/`path` map list만 허용하고, artifact path도 workspace confinement를 통과해야 한다. - RegisterResponse/JSON 변환은 `RegistrationResult`에 모아 accepted/rejected와 runner id/alias 추출을 한 곳에서 처리한다. - generated protobuf 파일은 직접 수정하지 않고 원본 proto와 생성 절차를 확인해 재생성한다. -- bootstrap 스크립트는 `--server-url`과 optional `--socket-url`을 기본 인자로 사용하고 legacy `--edge-url`도 server URL로 받는다. -- bootstrap 스크립트는 `--release-base-url`에 https만 허용하고, 생성한 config 파일은 `chmod 600`을 유지한다. +- bootstrap 스크립트는 `--server-url`과 optional `--socket-url`을 기본 인자로 사용한다. Linux shell bootstrap은 legacy `--edge-url`도 server URL로 받는다. +- bootstrap 스크립트는 `--release-base-url`에 https만 허용하고, 생성한 config 파일은 Linux에서 `chmod 600`, Windows에서 현재 사용자 ACL 제한을 유지한다. - legacy iop Edge 경로는 `edge_registration_client.dart` 안에 격리하고, 기본 production runner 경로에서 직접 import하지 않는다. - agent 변경 후 `dart analyze`와 agent 관련 테스트(`apps/runner/test/oto_agent_*`, `apps/runner/test/oto_server_connection_smoke_test.dart`, 필요 시 `apps/runner/test/oto_iop_connection_smoke_test.dart`)를 확인한다. diff --git a/agent-ops/rules/project/domain/cli/rules.md b/agent-ops/rules/project/domain/cli/rules.md index 27714fe..0a00274 100644 --- a/agent-ops/rules/project/domain/cli/rules.md +++ b/agent-ops/rules/project/domain/cli/rules.md @@ -1,7 +1,7 @@ --- domain: cli -last_rule_review_commit: 99cc06767f82a32a9106f3a483bce2b6aeed5872 -last_rule_updated_at: 2026-06-13 +last_rule_review_commit: 810532a097c1309cd28d7130d8a33bcc779c96e4 +last_rule_updated_at: 2026-06-24 --- # cli @@ -25,6 +25,7 @@ last_rule_updated_at: 2026-06-13 - `apps/runner/lib/cli/commands/command_catalog.dart` — 등록된 OTO 커맨드 catalog 출력 명령 - `apps/runner/lib/cli/commands/command_validate.dart` — YAML 구조/의미 검증 명령 - `apps/runner/lib/cli/commands/command_template.dart` — 템플릿 출력 +- `apps/runner/lib/cli/commands/command_version.dart` — `--version` / `-v` 버전 출력 명령 - `apps/runner/lib/cli/commands/command_start.dart` — 시작/중지 커맨드 - `apps/runner/lib/cli/commands/command_install.dart` — 설치/제거 명령 - `apps/runner/lib/cli/commands/install/` — PATH 등록 등 설치 보조 로직 @@ -41,7 +42,8 @@ last_rule_updated_at: 2026-06-13 - `apps/runner/lib/cli/commands/scheduler/` — 스케줄러 실행/등록/OS별 백그라운드 처리 (`scheduler` 도메인) - `apps/runner/lib/oto/agent/` — agent 설정, OTO Server 등록/job 통신, legacy iop Edge compatibility (`agent` 도메인) - `apps/runner/lib/oto/core/output_port.dart` — runner 출력 포트 추상화 (`core` 도메인) -- `apps/runner/assets/script/shell/oto_agent_bootstrap.sh` — agent 설치/실행 bootstrap (`agent` 도메인) +- `apps/runner/assets/script/shell/oto_agent_bootstrap.sh` — Linux agent 설치/실행 bootstrap (`agent` 도메인) +- `apps/runner/assets/script/powershell/oto_agent_bootstrap.ps1` — Windows agent 설치/실행 bootstrap (`agent` 도메인) - `apps/runner/assets/template/` — 커맨드 실행 중 사용하는 템플릿 (`command` 도메인) ## 주요 구성 요소 @@ -57,6 +59,7 @@ last_rule_updated_at: 2026-06-13 - `CommandStart` / `CommandStop` — 백그라운드 서비스 시작/중지 명령 표면 - `CommandConstant` — OS별 설치 경로 계산 - `CommandTemplate` — 템플릿 출력 +- `CommandVersion` — `--version` 출력. `CLI.start()`에서 `-v`를 `--version`으로 정규화한다 - `CommandManager` — CLI 커맨드 등록 관리 - `RegistPath` — OS별 PATH 등록/해제 - `CliRunnerOutputPort` / `setCliOutputLogHandler()` — `Application.build()` 출력 포트를 CLI 출력과 log handler에 연결 diff --git a/agent-ops/rules/project/domain/command/rules.md b/agent-ops/rules/project/domain/command/rules.md index 9e31e92..75beb4b 100644 --- a/agent-ops/rules/project/domain/command/rules.md +++ b/agent-ops/rules/project/domain/command/rules.md @@ -1,7 +1,7 @@ --- domain: command -last_rule_review_commit: 99cc06767f82a32a9106f3a483bce2b6aeed5872 -last_rule_updated_at: 2026-06-13 +last_rule_review_commit: 810532a097c1309cd28d7130d8a33bcc779c96e4 +last_rule_updated_at: 2026-06-24 --- # command diff --git a/agent-ops/rules/project/domain/core/rules.md b/agent-ops/rules/project/domain/core/rules.md index fa7e3d9..e853dd6 100644 --- a/agent-ops/rules/project/domain/core/rules.md +++ b/agent-ops/rules/project/domain/core/rules.md @@ -1,7 +1,7 @@ --- domain: core -last_rule_review_commit: 99cc06767f82a32a9106f3a483bce2b6aeed5872 -last_rule_updated_at: 2026-06-13 +last_rule_review_commit: 810532a097c1309cd28d7130d8a33bcc779c96e4 +last_rule_updated_at: 2026-06-24 --- # core diff --git a/agent-ops/rules/project/domain/framework/rules.md b/agent-ops/rules/project/domain/framework/rules.md index 9aee591..e432d0d 100644 --- a/agent-ops/rules/project/domain/framework/rules.md +++ b/agent-ops/rules/project/domain/framework/rules.md @@ -1,7 +1,7 @@ --- domain: framework -last_rule_review_commit: 99cc06767f82a32a9106f3a483bce2b6aeed5872 -last_rule_updated_at: 2026-06-13 +last_rule_review_commit: 810532a097c1309cd28d7130d8a33bcc779c96e4 +last_rule_updated_at: 2026-06-24 --- # framework @@ -22,6 +22,7 @@ last_rule_updated_at: 2026-06-13 - `apps/client/pubspec.lock` — Flutter client dependency resolution snapshot - `apps/client/analysis_options.yaml` — Flutter client analyzer/lint 기준 - `packages/flutter/oto_console/pubspec.yaml` — embeddable console package dependency 선언 +- `packages/flutter/oto_console/pubspec.lock` — console package dependency resolution snapshot - `packages/flutter/oto_console/analysis_options.yaml` — console package analyzer/lint 기준 - `services/core/go.mod` — Go core service dependency 선언 - `services/core/go.sum` — Go core service dependency checksum diff --git a/agent-ops/rules/project/domain/pipeline/rules.md b/agent-ops/rules/project/domain/pipeline/rules.md index ca793be..fc4e2da 100644 --- a/agent-ops/rules/project/domain/pipeline/rules.md +++ b/agent-ops/rules/project/domain/pipeline/rules.md @@ -1,7 +1,7 @@ --- domain: pipeline -last_rule_review_commit: 99cc06767f82a32a9106f3a483bce2b6aeed5872 -last_rule_updated_at: 2026-06-13 +last_rule_review_commit: 810532a097c1309cd28d7130d8a33bcc779c96e4 +last_rule_updated_at: 2026-06-24 --- # pipeline diff --git a/agent-ops/rules/project/domain/sample/rules.md b/agent-ops/rules/project/domain/sample/rules.md index 05bf8e2..8ffba2d 100644 --- a/agent-ops/rules/project/domain/sample/rules.md +++ b/agent-ops/rules/project/domain/sample/rules.md @@ -1,7 +1,7 @@ --- domain: sample -last_rule_review_commit: 99cc06767f82a32a9106f3a483bce2b6aeed5872 -last_rule_updated_at: 2026-06-13 +last_rule_review_commit: 810532a097c1309cd28d7130d8a33bcc779c96e4 +last_rule_updated_at: 2026-06-24 --- # sample diff --git a/agent-ops/rules/project/domain/scheduler/rules.md b/agent-ops/rules/project/domain/scheduler/rules.md index 6fd8a69..0178d60 100644 --- a/agent-ops/rules/project/domain/scheduler/rules.md +++ b/agent-ops/rules/project/domain/scheduler/rules.md @@ -1,7 +1,7 @@ --- domain: scheduler -last_rule_review_commit: 99cc06767f82a32a9106f3a483bce2b6aeed5872 -last_rule_updated_at: 2026-06-13 +last_rule_review_commit: 810532a097c1309cd28d7130d8a33bcc779c96e4 +last_rule_updated_at: 2026-06-24 --- # scheduler diff --git a/agent-ops/rules/project/rules.md b/agent-ops/rules/project/rules.md index 6622605..cda06d6 100644 --- a/agent-ops/rules/project/rules.md +++ b/agent-ops/rules/project/rules.md @@ -151,6 +151,7 @@ proto/ # OTO runner/server protobuf contract | `apps/runner/assets/package/**` | cli | `agent-ops/rules/project/domain/cli/rules.md` | | `apps/runner/assets/bin/**` | cli | `agent-ops/rules/project/domain/cli/rules.md` | | `apps/runner/assets/script/shell/oto_agent_bootstrap.sh` | agent | `agent-ops/rules/project/domain/agent/rules.md` | +| `apps/runner/assets/script/powershell/oto_agent_bootstrap.ps1` | agent | `agent-ops/rules/project/domain/agent/rules.md` | | `apps/runner/assets/script/**` | cli | `agent-ops/rules/project/domain/cli/rules.md` | | `Makefile` | framework | `agent-ops/rules/project/domain/framework/rules.md` | | `apps/runner/pubspec.yaml` | framework | `agent-ops/rules/project/domain/framework/rules.md` | @@ -160,6 +161,7 @@ proto/ # OTO runner/server protobuf contract | `apps/client/pubspec.lock` | framework | `agent-ops/rules/project/domain/framework/rules.md` | | `apps/client/analysis_options.yaml` | framework | `agent-ops/rules/project/domain/framework/rules.md` | | `packages/flutter/oto_console/pubspec.yaml` | framework | `agent-ops/rules/project/domain/framework/rules.md` | +| `packages/flutter/oto_console/pubspec.lock` | framework | `agent-ops/rules/project/domain/framework/rules.md` | | `packages/flutter/oto_console/analysis_options.yaml` | framework | `agent-ops/rules/project/domain/framework/rules.md` | | `services/core/go.mod` | framework | `agent-ops/rules/project/domain/framework/rules.md` | | `services/core/go.sum` | framework | `agent-ops/rules/project/domain/framework/rules.md` |