From 85a49fa3dfa2502502f87cab606decddb1702911 Mon Sep 17 00:00:00 2001 From: leedongmyun Date: Thu, 9 Jul 2026 16:51:06 +0900 Subject: [PATCH] chore: update dev-corp testing files and skill --- .../project/dev-corp-runtime-deploy/SKILL.md | 4 ++-- agent-test/dev-corp/client-smoke.md | 6 +++--- agent-test/dev-corp/edge-smoke.md | 12 ++++++------ agent-test/dev-corp/inventory.yaml | 16 ++++++++-------- agent-test/dev-corp/node-smoke.md | 4 ++-- agent-test/dev-corp/platform-common-smoke.md | 4 ++-- agent-test/dev-corp/rules.md | 8 ++++---- agent-test/dev-corp/testing-smoke.md | 4 ++-- 8 files changed, 29 insertions(+), 29 deletions(-) diff --git a/agent-ops/skills/project/dev-corp-runtime-deploy/SKILL.md b/agent-ops/skills/project/dev-corp-runtime-deploy/SKILL.md index eb0c9cf..3b6873f 100644 --- a/agent-ops/skills/project/dev-corp-runtime-deploy/SKILL.md +++ b/agent-ops/skills/project/dev-corp-runtime-deploy/SKILL.md @@ -28,7 +28,7 @@ dev-corp provider pool을 현재 dev-runtime과 같은 구조로 배포한다. - [ ] `agent-ops/rules/project/domain/testing/rules.md`를 읽고 사용자 실행 파이프라인 검증 기준을 확인한다. - [ ] `agent-test/dev-corp/inventory.yaml`을 먼저 읽는다. 파일이 없으면 `agent-test/dev-corp/rules.md`, `agent-test/dev-corp/edge-smoke.md`, `agent-test/dev-corp/node-smoke.md`로 fallback하고, 구조화 inventory 누락을 보고한다. -- [ ] dev-corp 기본 외부 배포/검증 통로는 `115.21.224.82`이다. `172.24.63.178`은 mac-mini runner와 node-only/internal 경로로만 보고, 사용자가 172 Edge 경로를 명시 요청하지 않으면 Edge 배포, OpenAI-compatible smoke, public endpoint 기본값으로 잡지 않는다. +- [ ] dev-corp 기본 외부 배포/검증 통로는 `digitalplatform-iop.cloud`이다. `172.24.63.178`은 mac-mini runner와 node-only/internal 경로로만 보고, 사용자가 172 Edge 경로를 명시 요청하지 않으면 Edge 배포, OpenAI-compatible smoke, public endpoint 기본값으로 잡지 않는다. - [ ] dev-corp provider pool과 compose/local/dev-runtime profile을 섞지 않는다. dev-corp provider pool은 mac-mini Edge와 dev-corp config를 기준으로 한다. - [ ] mac-mini에 `/Users/fe/agent-work/iop-dev-corp` checkout이 없으면 배포를 시작하지 말고 checkout 생성과 source sync를 setup blocker로 보고한다. - [ ] mac-mini에서 `192.168.2.2:8002`, `192.168.2.4:8004`, `192.168.2.3:8004`의 `/health`와 `/v1/models`가 성공하는지 확인한다. @@ -66,7 +66,7 @@ dev-corp provider pool을 현재 dev-runtime과 같은 구조로 배포한다. 1. **환경 인벤토리 확정** - 배포 대상 runner, repo path, Edge id, Control Plane status URL, OpenAI base URL, Edge admin URL, Node SSH 정보를 `agent-test/dev-corp/inventory.yaml`에서 확정한다. - - public OpenAI/base, bootstrap/artifact, Control Plane/Client 외부 후보는 기본적으로 `115.21.224.82` 경로를 사용한다. `172.24.63.178`로 Edge를 배포하는 것은 기본 금지이며, 사용자가 172 Edge 경로를 명시 요청한 경우에만 진행한다. + - public OpenAI/base, bootstrap/artifact, Control Plane/Client 외부 후보는 기본적으로 `digitalplatform-iop.cloud` 경로를 사용한다. `172.24.63.178`로 Edge를 배포하는 것은 기본 금지이며, 사용자가 172 Edge 경로를 명시 요청한 경우에만 진행한다. - provider pool 대상 model alias와 provider별 capacity target을 확정한다. - 필수 정보가 없거나 서로 충돌하면 배포를 시작하지 말고 누락/충돌 항목을 보고한다. diff --git a/agent-test/dev-corp/client-smoke.md b/agent-test/dev-corp/client-smoke.md index bc328a6..8e061a6 100644 --- a/agent-test/dev-corp/client-smoke.md +++ b/agent-test/dev-corp/client-smoke.md @@ -47,9 +47,9 @@ last_rule_updated_at: 2026-07-08 - package-unit: `cd packages/flutter/iop_console && flutter test` - lint: `cd apps/client && flutter analyze --no-fatal-infos` - smoke: `cd apps/client && flutter test` -- e2e: `IOP_WEB_PORT=13002 IOP_CONTROL_PLANE_HTTP_URL=http://115.21.224.82:18002 IOP_CONTROL_PLANE_WIRE_URL=ws://115.21.224.82:19004/client ./scripts/dev/web.sh` +- e2e: `IOP_WEB_PORT=13002 IOP_CONTROL_PLANE_HTTP_URL=http://digitalplatform-iop.cloud:18002 IOP_CONTROL_PLANE_WIRE_URL=ws://digitalplatform-iop.cloud:19004/client ./scripts/dev/web.sh` - compose-e2e: mac-mini 환경에서 `IOP_EDGE_NODE_TOKEN`을 안전하게 주입한 뒤 `docker compose --env-file .env.dev-corp.example up --build` -- web-build: `make client-build-web IOP_CONTROL_PLANE_HTTP_URL=http://115.21.224.82:18002 IOP_CONTROL_PLANE_WIRE_URL=ws://115.21.224.82:19004/client` +- web-build: `make client-build-web IOP_CONTROL_PLANE_HTTP_URL=http://digitalplatform-iop.cloud:18002 IOP_CONTROL_PLANE_WIRE_URL=ws://digitalplatform-iop.cloud:19004/client` - model: - full-cycle: @@ -58,7 +58,7 @@ last_rule_updated_at: 2026-07-08 - client 또는 `packages/flutter/iop_console` 변경은 최소 `cd apps/client && flutter test`로 확인한다. - `packages/flutter/iop_console` 자체 API나 widget 구조가 바뀌면 `cd packages/flutter/iop_console && flutter test` 실행 가능 여부를 확인한다. - analyzer 영향이 있는 dependency, app shell, generated import 변경이면 `cd apps/client && flutter analyze --no-fatal-infos`를 함께 확인한다. -- Web build/deploy, `apps/client/Dockerfile`, `docker-compose.yml`, `scripts/dev/web.sh`, `Makefile client-build-web` 변경은 mac-mini에서 dev-server 기동 또는 compose build 중 변경 범위에 맞는 경로를 확인하고, 외부 브라우저 확인 URL이 기본 public 경로 `http://115.21.224.82:13002` 계열인지 보고한다. +- Web build/deploy, `apps/client/Dockerfile`, `docker-compose.yml`, `scripts/dev/web.sh`, `Makefile client-build-web` 변경은 mac-mini에서 dev-server 기동 또는 compose build 중 변경 범위에 맞는 경로를 확인하고, 외부 브라우저 확인 URL이 기본 public 경로 `http://digitalplatform-iop.cloud:13002` 계열인지 보고한다. - compose 경로를 확인할 때는 `IOP_EDGE_NODE_TOKEN`을 mac-mini 환경에서 주입하고, token 원문은 tracked 파일에 기록하지 않는다. ## 보조 검증 diff --git a/agent-test/dev-corp/edge-smoke.md b/agent-test/dev-corp/edge-smoke.md index ffcf10b..d679c52 100644 --- a/agent-test/dev-corp/edge-smoke.md +++ b/agent-test/dev-corp/edge-smoke.md @@ -38,8 +38,8 @@ last_rule_updated_at: 2026-07-08 - runtime: Go `1.24` - package manager: Go modules / Makefile - docker: unit/smoke quick check는 Docker를 요구하지 않는다. compose dev-corp 검증은 mac-mini에서 `.env.dev-corp.example` 기준으로 수행한다. -- external service: dev-corp artifact/base URL 기본 후보 `http://115.21.224.82:18085`, dev-corp Edge runtime 기본 후보 `115.21.224.82:18087`; `172.24.63.178:18085/18087`로 Edge를 배포하는 것은 기본 금지이며, 사용자가 172 Edge 경로를 명시 요청한 경우에만 사용한다. -- model endpoint: dev-corp OpenAI-compatible base URL 기본 후보 `http://115.21.224.82:18086/v1` +- external service: dev-corp artifact/base URL 기본 후보 `http://digitalplatform-iop.cloud:18085`, dev-corp Edge runtime 기본 후보 `digitalplatform-iop.cloud:18087`; `172.24.63.178:18085/18087`로 Edge를 배포하는 것은 기본 금지이며, 사용자가 172 Edge 경로를 명시 요청한 경우에만 사용한다. +- model endpoint: dev-corp OpenAI-compatible base URL 기본 후보 `http://digitalplatform-iop.cloud:18086/v1` - credential: token/secret/API key 원문은 문서에 기록하지 않는다. ## dev-corp provider pool 인벤토리 @@ -51,12 +51,12 @@ dev-corp provider pool과 3-node 연결 상태를 점검할 때는 `agent-test/d - Edge id: `dev-corp-edge` - Control Plane HTTP/status 후보: `http://127.0.0.1:18002`, `http://127.0.0.1:18002/edges/dev-corp-edge/status` - Control Plane-Edge wire 후보: `127.0.0.1:19005` -- bootstrap HTTP 기본 후보: `http://115.21.224.82:18085` -- Edge OpenAI-compatible base URL 기본 후보: `http://115.21.224.82:18086/v1` -- Edge-Node TCP transport 기본 후보: `115.21.224.82:18087` +- bootstrap HTTP 기본 후보: `http://digitalplatform-iop.cloud:18085` +- Edge OpenAI-compatible base URL 기본 후보: `http://digitalplatform-iop.cloud:18086/v1` +- Edge-Node TCP transport 기본 후보: `digitalplatform-iop.cloud:18087` - node-only/internal 후보: `172.24.63.178:18085/18086/18087`은 기본 Edge 배포 후보가 아니다. 사용자가 172 Edge 경로를 명시 요청했거나 host별 reverse SSH tunnel이 필요한 경우에만 사용한다. - model alias 후보: `gemma4:26b` -- host Pi dev-corp profile: `agent-test/dev-corp/inventory.yaml`의 `model.pi_agent_profile` 기준. 2026-07-09 현재 이 host의 Pi 기본 provider/model/thinking level은 `dev-corp` / `gemma4:26b` / `high`이며, base URL은 host-local node-internal Edge route `http://172.24.63.178:18086/v1`이다. 기본 public smoke/deploy route는 계속 `http://115.21.224.82:18086/v1`이고, dev `qwen3.6:35b` Pi profile은 `agent-test/dev/inventory.yaml`에서 별도로 관리한다. +- host Pi dev-corp profile: `agent-test/dev-corp/inventory.yaml`의 `model.pi_agent_profile` 기준. 2026-07-09 현재 이 host의 Pi 기본 provider/model/thinking level은 `dev-corp` / `gemma4:26b` / `high`이며, base URL은 host-local node-internal Edge route `http://172.24.63.178:18086/v1`이다. 기본 public smoke/deploy route는 계속 `http://digitalplatform-iop.cloud:18086/v1`이고, dev `qwen3.6:35b` Pi profile은 `agent-test/dev/inventory.yaml`에서 별도로 관리한다. 노드 후보: diff --git a/agent-test/dev-corp/inventory.yaml b/agent-test/dev-corp/inventory.yaml index 80e1346..1b75548 100644 --- a/agent-test/dev-corp/inventory.yaml +++ b/agent-test/dev-corp/inventory.yaml @@ -27,20 +27,20 @@ edge: control_plane_status_url: http://127.0.0.1:18002/edges/dev-corp-edge/status control_plane_client_ws_runner: ws://127.0.0.1:19004/client control_plane_edge_wire_addr_runner: 127.0.0.1:19005 - public_route_policy: default_dev_corp_external_route_uses_115_public_ip + public_route_policy: default_dev_corp_external_route_uses_digitalplatform_iop_cloud edge_deploy_172_policy: explicit_user_request_only - public_route_note: 115.21.224.82 is the default dev-corp Edge deployment and smoke route; Edge deployment to 172.24.63.178 is prohibited by default and allowed only when the user explicitly requests the 172 route. 172.24.63.178 otherwise remains the mac-mini runner and node-only/internal route. - control_plane_http_public: http://115.21.224.82:18002 - control_plane_client_ws_public: ws://115.21.224.82:19004/client - bootstrap_http_public: http://115.21.224.82:18085 + public_route_note: digitalplatform-iop.cloud is the default dev-corp Edge deployment and smoke route; Edge deployment to 172.24.63.178 is prohibited by default and allowed only when the user explicitly requests the 172 route. 172.24.63.178 otherwise remains the mac-mini runner and node-only/internal route. + control_plane_http_public: http://digitalplatform-iop.cloud:18002 + control_plane_client_ws_public: ws://digitalplatform-iop.cloud:19004/client + bootstrap_http_public: http://digitalplatform-iop.cloud:18085 bootstrap_http_node_internal: http://172.24.63.178:18085 - openai_base_url_public: http://115.21.224.82:18086/v1 + openai_base_url_public: http://digitalplatform-iop.cloud:18086/v1 openai_base_url_node_internal: http://172.24.63.178:18086/v1 openai_base_url_runner: http://127.0.0.1:18086/v1 openai_api_key_required_current_runtime: true openai_api_key_secret_path_remote: build/dev-corp-runtime/.secrets/openai_api_key openai_api_key_value_tracked: false - edge_node_tcp_public: 115.21.224.82:18087 + edge_node_tcp_public: digitalplatform-iop.cloud:18087 edge_node_tcp_node_internal: 172.24.63.178:18087 admin_addr_runner: 127.0.0.1:19094 @@ -94,7 +94,7 @@ model: - dev-corp-spark01/** - dev-corp/* api_key_value_tracked: false - route_policy: current host-local Pi default uses the 172.24.63.178 node-internal Edge route because this host can reach the mac-mini directly; this does not replace the default dev-corp public smoke/deploy route 115.21.224.82 + route_policy: current host-local Pi default uses the 172.24.63.178 node-internal Edge route because this host can reach the mac-mini directly; this does not replace the default dev-corp public smoke/deploy route digitalplatform-iop.cloud pi_model_parameters: provider: dev-corp model_id: gemma4:26b diff --git a/agent-test/dev-corp/node-smoke.md b/agent-test/dev-corp/node-smoke.md index 76908b3..faf246f 100644 --- a/agent-test/dev-corp/node-smoke.md +++ b/agent-test/dev-corp/node-smoke.md @@ -37,8 +37,8 @@ last_rule_updated_at: 2026-07-08 - runtime: Go `1.24` - package manager: Go modules / Makefile - docker: unit/smoke quick check는 Docker를 요구하지 않는다. compose dev-corp 검증은 mac-mini에서 수행한다. -- external service: dev-corp node-only/internal Edge runtime 후보 `172.24.63.178:18087`; 기본 외부 dev-corp 배포/검증 경로는 `115.21.224.82`이다. `172.24.63.178`로 Edge 배포는 사용자 명시 요청 전까지 금지한다. -- model endpoint: dev-corp OpenAI-compatible base URL 기본 후보 `http://115.21.224.82:18086/v1` +- external service: dev-corp node-only/internal Edge runtime 후보 `172.24.63.178:18087`; 기본 외부 dev-corp 배포/검증 경로는 `digitalplatform-iop.cloud`이다. `172.24.63.178`로 Edge 배포는 사용자 명시 요청 전까지 금지한다. +- model endpoint: dev-corp OpenAI-compatible base URL 기본 후보 `http://digitalplatform-iop.cloud:18086/v1` - credential: token/secret/API key 원문은 문서에 기록하지 않는다. ## dev-corp Node 접속 기준 diff --git a/agent-test/dev-corp/platform-common-smoke.md b/agent-test/dev-corp/platform-common-smoke.md index 97300b6..f757ceb 100644 --- a/agent-test/dev-corp/platform-common-smoke.md +++ b/agent-test/dev-corp/platform-common-smoke.md @@ -34,8 +34,8 @@ last_rule_updated_at: 2026-07-08 - runtime: Go `1.24` - package manager: Go modules / Makefile - docker: unit/codegen quick check는 Docker를 요구하지 않는다. compose dev-corp 검증은 mac-mini에서 수행한다. -- external service: dev-corp artifact/base URL 기본 후보 `http://115.21.224.82:18085`; `172.24.63.178:18085`는 node-only/internal 경로다. 172 Edge 배포/검증은 사용자 명시 요청 전까지 금지한다. -- model endpoint: dev-corp OpenAI-compatible base URL 기본 후보 `http://115.21.224.82:18086/v1` +- external service: dev-corp artifact/base URL 기본 후보 `http://digitalplatform-iop.cloud:18085`; `172.24.63.178:18085`는 node-only/internal 경로다. 172 Edge 배포/검증은 사용자 명시 요청 전까지 금지한다. +- model endpoint: dev-corp OpenAI-compatible base URL 기본 후보 `http://digitalplatform-iop.cloud:18086/v1` - credential: token/secret/API key 원문은 문서에 기록하지 않는다. ## 명령 diff --git a/agent-test/dev-corp/rules.md b/agent-test/dev-corp/rules.md index 18eb468..24f6525 100644 --- a/agent-test/dev-corp/rules.md +++ b/agent-test/dev-corp/rules.md @@ -21,7 +21,7 @@ last_rule_updated_at: 2026-07-08 ## 기본 배포 통로 -- dev-corp 기본 외부 배포/검증 통로는 `115.21.224.82`이다. Control Plane public 후보, Client WS public 후보, artifact/bootstrap public 후보, Edge OpenAI-compatible public 후보는 이 경로를 우선한다. +- dev-corp 기본 외부 배포/검증 통로는 `digitalplatform-iop.cloud`이다. Control Plane public 후보, Client WS public 후보, artifact/bootstrap public 후보, Edge OpenAI-compatible public 후보는 이 경로를 우선한다. - `172.24.63.178`은 mac-mini SSH runner와 node-only/internal Edge-Node 경로로만 본다. 사용자가 172 경로를 명시적으로 요청하지 않으면 기본 dev-corp 배포 방향이나 OpenAI-compatible smoke 대상에 사용하지 않는다. - `172.24.63.178`로 Edge를 배포하는 것은 기본 금지다. 사용자가 “172로 Edge 배포” 또는 같은 의미의 명시 요청을 한 경우에만 172 Edge 배포/검증을 진행한다. - provider direct 확인은 기존처럼 mac-mini에서 내부 provider endpoint `192.168.2.2:8002`, `192.168.2.4:8004`, `192.168.2.3:8004`를 확인한다. @@ -38,8 +38,8 @@ last_rule_updated_at: 2026-07-08 - runtime: Go quick check는 local toolchain을 우선한다. Docker/Flutter/client/field/bootstrap/provider-pool evidence는 mac-mini와 내부 provider nodes를 사용한다. - package manager: Go modules / Makefile / Flutter pub - docker: 현재 작업 컨테이너에서는 Docker-in-Docker를 사용하지 않는다. Docker compose 검증은 mac-mini checkout에서 수행한다. -- external service: dev-corp Control Plane 후보는 mac-mini local 기준 `http://127.0.0.1:18002`, 기본 외부 후보 `http://115.21.224.82:18002`이다. Client wire 후보는 mac-mini local 기준 `ws://127.0.0.1:19004/client`, 기본 외부 후보 `ws://115.21.224.82:19004/client`이다. -- model endpoint: Edge 배포 후 기본 외부 후보 `http://115.21.224.82:18086/v1`; 직접 provider 확인은 `agent-test/dev-corp/inventory.yaml`의 provider endpoint를 따른다. +- external service: dev-corp Control Plane 후보는 mac-mini local 기준 `http://127.0.0.1:18002`, 기본 외부 후보 `http://digitalplatform-iop.cloud:18002`이다. Client wire 후보는 mac-mini local 기준 `ws://127.0.0.1:19004/client`, 기본 외부 후보 `ws://digitalplatform-iop.cloud:19004/client`이다. +- model endpoint: Edge 배포 후 기본 외부 후보 `http://digitalplatform-iop.cloud:18086/v1`; 직접 provider 확인은 `agent-test/dev-corp/inventory.yaml`의 provider endpoint를 따른다. - credential: secret/token/API key 원문은 문서에 기록하지 않는다. ## 포트 매핑 @@ -65,7 +65,7 @@ dev-corp native/provider-pool profile은 compose Edge-Node TCP `19006`이 아니 - remote runner: dev-corp runtime evidence, Flutter client, Docker compose, field/bootstrap, provider-pool evidence는 `ssh fe@172.24.63.178`의 `/Users/fe/agent-work/iop-dev-corp` 기준으로 수행한다. - compose dev-corp stack: `.env.dev-corp.example`, `COMPOSE_PROJECT_NAME=iop-dev-corp-agent`, `IOP_COMPOSE_NETWORK=iop-dev-corp-agent-net`, Edge-Node TCP `19006`을 사용한다. - Edge direct dev-corp profile: artifact/bootstrap `18085`, OpenAI-compatible `18086`, metrics `19102`, admin `19094`를 사용한다. -- dev-corp provider pool: `/Users/fe/agent-work/iop-dev-corp/build/dev-corp-runtime/edge.yaml`과 기본 public Edge-Node TCP `115.21.224.82:18087`을 기준으로 한다. `172.24.63.178:18087`은 Edge 배포 대상이 아니라 node-only/internal 경로 또는 host별 reverse SSH tunnel이 필요한 경우에만 사용한다. 172 Edge 배포는 사용자 명시 요청 전까지 진행하지 않는다. 3-node/provider 세부는 `agent-test/dev-corp/edge-smoke.md`와 `agent-test/dev-corp/node-smoke.md`를 따른다. +- dev-corp provider pool: `/Users/fe/agent-work/iop-dev-corp/build/dev-corp-runtime/edge.yaml`과 기본 public Edge-Node TCP `digitalplatform-iop.cloud:18087`을 기준으로 한다. `172.24.63.178:18087`은 Edge 배포 대상이 아니라 node-only/internal 경로 또는 host별 reverse SSH tunnel이 필요한 경우에만 사용한다. 172 Edge 배포는 사용자 명시 요청 전까지 진행하지 않는다. 3-node/provider 세부는 `agent-test/dev-corp/edge-smoke.md`와 `agent-test/dev-corp/node-smoke.md`를 따른다. - current native Control Plane: 2026-07-02 기준 provider-pool runtime에서 `build/dev-corp-runtime/bin/control-plane`이 `18002/19004/19005`를 listen하고, Edge id `dev-corp-edge`가 `127.0.0.1:19005`로 연결된다. provider snapshot status 기준은 `http://127.0.0.1:18002/edges/dev-corp-edge/status`다. - external provider field: DGX Spark 01/02와 Mac Studio는 mac-mini에서 내부 SSH로 접속한다. 직접 접속 경로와 provider endpoint는 `agent-test/dev-corp/inventory.yaml`을 따른다. diff --git a/agent-test/dev-corp/testing-smoke.md b/agent-test/dev-corp/testing-smoke.md index 35c1a9a..b97ef4e 100644 --- a/agent-test/dev-corp/testing-smoke.md +++ b/agent-test/dev-corp/testing-smoke.md @@ -37,8 +37,8 @@ last_rule_updated_at: 2026-07-08 - runtime: Go `1.24` - package manager: Go modules / Makefile - docker: quick check는 Docker를 요구하지 않는다. 현재 작업 컨테이너에서는 Docker-in-Docker를 사용하지 않으며, Docker compose 검증은 mac-mini 환경에서 수행한다. -- external service: dev-corp Control Plane 후보는 mac-mini local 기준 `http://127.0.0.1:18002`, 기본 외부 후보 `http://115.21.224.82:18002`이다. Client wire 후보는 mac-mini local 기준 `ws://127.0.0.1:19004/client`, 기본 외부 후보 `ws://115.21.224.82:19004/client`이다. dev-corp Edge runtime 기본 후보는 `115.21.224.82:18087`이며, `172.24.63.178:18087`은 node-only/internal 또는 host별 reverse SSH tunnel 경로다. 172 Edge 배포/검증은 사용자 명시 요청 전까지 금지한다. -- model endpoint: dev-corp OpenAI-compatible base URL 기본 후보 `http://115.21.224.82:18086/v1` +- external service: dev-corp Control Plane 후보는 mac-mini local 기준 `http://127.0.0.1:18002`, 기본 외부 후보 `http://digitalplatform-iop.cloud:18002`이다. Client wire 후보는 mac-mini local 기준 `ws://127.0.0.1:19004/client`, 기본 외부 후보 `ws://digitalplatform-iop.cloud:19004/client`이다. dev-corp Edge runtime 기본 후보는 `digitalplatform-iop.cloud:18087`이며, `172.24.63.178:18087`은 node-only/internal 또는 host별 reverse SSH tunnel 경로다. 172 Edge 배포/검증은 사용자 명시 요청 전까지 금지한다. +- model endpoint: dev-corp OpenAI-compatible base URL 기본 후보 `http://digitalplatform-iop.cloud:18086/v1` - credential: token/secret/API key 원문은 문서에 기록하지 않는다. ## 명령