Update project files and clean up temp_verif directory
This commit is contained in:
parent
63d69f2957
commit
86311b2d54
11 changed files with 112 additions and 342 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
|
@ -7,8 +7,13 @@ agent-ops/rules/private/
|
|||
/*.log
|
||||
/dist/
|
||||
/.env
|
||||
/temp_verif/
|
||||
/bin/control-plane
|
||||
/bin/edge
|
||||
/bin/iop-control-plane
|
||||
/bin/iop-edge
|
||||
/bin/iop-node
|
||||
/bin/iop-worker
|
||||
/bin/node
|
||||
/bin/worker
|
||||
|
||||
|
|
|
|||
18
Makefile
18
Makefile
|
|
@ -1,14 +1,19 @@
|
|||
.PHONY: all build tidy test test-e2e test-openai-ollama proto proto-dart portal-test portal-build-web clean
|
||||
.PHONY: all build build-edge build-node tidy test test-e2e test-openai-ollama proto proto-dart portal-test portal-build-web clean
|
||||
|
||||
GOFLAGS ?= -trimpath
|
||||
BUILD_APPS ?= edge node
|
||||
LOCAL_BIN_DIR ?= bin
|
||||
|
||||
all: build
|
||||
|
||||
build:
|
||||
go build $(GOFLAGS) -o bin/node ./apps/node/cmd/node
|
||||
go build $(GOFLAGS) -o bin/edge ./apps/edge/cmd/edge
|
||||
go build $(GOFLAGS) -o bin/control-plane ./apps/control-plane/cmd/control-plane
|
||||
go build $(GOFLAGS) -o bin/worker ./apps/worker/cmd/worker
|
||||
APPS="$(BUILD_APPS)" LOCAL_BIN_DIR="$(LOCAL_BIN_DIR)" GOFLAGS="$(GOFLAGS)" bin/build/field-binaries.sh
|
||||
|
||||
build-edge:
|
||||
$(MAKE) build BUILD_APPS=edge
|
||||
|
||||
build-node:
|
||||
$(MAKE) build BUILD_APPS=node
|
||||
|
||||
tidy:
|
||||
go mod tidy
|
||||
|
|
@ -71,4 +76,7 @@ portal-build-web:
|
|||
--dart-define=IOP_CONTROL_PLANE_WIRE_URL=ws://localhost:19080/portal
|
||||
|
||||
clean:
|
||||
rm -f bin/iop-edge bin/iop-node bin/iop-control-plane bin/iop-worker
|
||||
rm -f bin/node bin/edge bin/control-plane bin/worker
|
||||
rm -rf dist
|
||||
rm -f iop.db
|
||||
|
|
|
|||
|
|
@ -30,10 +30,10 @@ Edge가 제시한 bootstrap 명령 한 줄을 실행하면 Node binary 다운로
|
|||
|
||||
```bash
|
||||
# 빌드
|
||||
go build -o bin/node ./apps/node/cmd/node
|
||||
make build-node
|
||||
|
||||
# 버전 확인
|
||||
./bin/node version
|
||||
./bin/iop-node version
|
||||
|
||||
# 저수준 직접 실행은 내부 진단에서만 사용한다.
|
||||
```
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|||
DIST_DIR="${DIST_DIR:-"$ROOT_DIR/dist/field"}"
|
||||
TARGETS="${TARGETS:-}"
|
||||
APPS="${APPS:-"edge node"}"
|
||||
LOCAL_BIN_DIR="${LOCAL_BIN_DIR:-}"
|
||||
CGO_ENABLED="${CGO_ENABLED:-0}"
|
||||
GOFLAGS="${GOFLAGS:-"-trimpath"}"
|
||||
|
||||
|
|
@ -13,18 +14,23 @@ if [[ "${1:-}" == "-h" || "${1:-}" == "--help" ]]; then
|
|||
Build field-deployable IOP edge/node binaries.
|
||||
|
||||
Usage:
|
||||
bin/build/field-binaries.sh
|
||||
make build
|
||||
make build-edge
|
||||
make build-node
|
||||
|
||||
This script is the build engine behind the Makefile targets.
|
||||
|
||||
Environment:
|
||||
APPS="edge node" apps to build
|
||||
TARGETS="linux/amd64 linux/arm64" GOOS/GOARCH target list
|
||||
DIST_DIR=dist/field output directory
|
||||
LOCAL_BIN_DIR=bin copy host-target binaries for local use
|
||||
VERSION=<value> release version label
|
||||
COMMIT=<value> commit label
|
||||
BUILD_DATE=<value> build date label
|
||||
ARTIFACT_BASE_URL=<url> default bootstrap artifact base URL
|
||||
BOOTSTRAP_EDGE_ADDR=<host:port> default Edge address written to node.yaml
|
||||
BOOTSTRAP_NODE_TOKEN=<token> optional fallback token baked into bootstrap script
|
||||
ARTIFACT_BASE_URL=<url> default bootstrap artifact base URL
|
||||
BOOTSTRAP_EDGE_ADDR=<host:port> default Edge address written to node.yaml
|
||||
BOOTSTRAP_NODE_TOKEN=<token> optional fallback token baked into bootstrap script
|
||||
CGO_ENABLED=0 Go CGO setting
|
||||
GOFLAGS="-trimpath" extra go build flags
|
||||
LDFLAGS="-s -w" linker flags
|
||||
|
|
@ -40,6 +46,11 @@ LDFLAGS="${LDFLAGS:-"-s -w"}"
|
|||
if [[ -z "$TARGETS" ]]; then
|
||||
TARGETS="$(go env GOOS)/$(go env GOARCH)"
|
||||
fi
|
||||
HOST_TARGET="$(go env GOOS)/$(go env GOARCH)"
|
||||
|
||||
if [[ -n "$LOCAL_BIN_DIR" && "$LOCAL_BIN_DIR" != /* ]]; then
|
||||
LOCAL_BIN_DIR="$ROOT_DIR/$LOCAL_BIN_DIR"
|
||||
fi
|
||||
|
||||
checksum() {
|
||||
if command -v sha256sum >/dev/null 2>&1; then
|
||||
|
|
@ -163,6 +174,21 @@ EOF
|
|||
chmod +x "$script"
|
||||
}
|
||||
|
||||
sync_local_bin() {
|
||||
local app="$1"
|
||||
local goos="$2"
|
||||
local goarch="$3"
|
||||
local output_dir="$DIST_DIR/$VERSION/$goos-$goarch"
|
||||
|
||||
if [[ -z "$LOCAL_BIN_DIR" || "$goos/$goarch" != "$HOST_TARGET" ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
mkdir -p "$LOCAL_BIN_DIR"
|
||||
cp "$output_dir/iop-$app" "$LOCAL_BIN_DIR/iop-$app"
|
||||
chmod +x "$LOCAL_BIN_DIR/iop-$app"
|
||||
}
|
||||
|
||||
for target in $TARGETS; do
|
||||
IFS=/ read -r goos goarch extra <<< "$target"
|
||||
if [[ -z "${goos:-}" || -z "${goarch:-}" || -n "${extra:-}" ]]; then
|
||||
|
|
@ -172,7 +198,10 @@ for target in $TARGETS; do
|
|||
|
||||
for app in $APPS; do
|
||||
case "$app" in
|
||||
edge|node) build_one "$app" "$goos" "$goarch" ;;
|
||||
edge|node)
|
||||
build_one "$app" "$goos" "$goarch"
|
||||
sync_local_bin "$app" "$goos" "$goarch"
|
||||
;;
|
||||
*)
|
||||
echo "unsupported app '$app'; expected edge or node" >&2
|
||||
exit 1
|
||||
|
|
@ -181,12 +210,19 @@ for target in $TARGETS; do
|
|||
done
|
||||
|
||||
output_dir="$DIST_DIR/$VERSION/$goos-$goarch"
|
||||
present_apps=()
|
||||
for app in edge node; do
|
||||
if [[ -f "$output_dir/iop-$app" ]]; then
|
||||
present_apps+=("$app")
|
||||
fi
|
||||
done
|
||||
{
|
||||
echo "version=$VERSION"
|
||||
echo "commit=$COMMIT"
|
||||
echo "build_date=$BUILD_DATE"
|
||||
echo "target=$goos/$goarch"
|
||||
echo "apps=$APPS"
|
||||
echo "apps=${present_apps[*]:-}"
|
||||
echo "updated_apps=$APPS"
|
||||
} > "$output_dir/manifest.env"
|
||||
(
|
||||
cd "$output_dir"
|
||||
|
|
@ -198,3 +234,6 @@ for target in $TARGETS; do
|
|||
done
|
||||
|
||||
echo "field binaries written to $DIST_DIR/$VERSION"
|
||||
if [[ -n "$LOCAL_BIN_DIR" ]]; then
|
||||
echo "local host binaries synced to $LOCAL_BIN_DIR"
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -8,9 +8,34 @@
|
|||
- `node.yaml` 생성, 편집, 확인
|
||||
- `edge.yaml`의 `nodes[]` 수동 작성
|
||||
- `iop-node serve --config ...` 직접 실행
|
||||
- `bin/*` helper나 별도 dev deploy 바이너리를 공식 경로로 사용
|
||||
- `bin/*.sh` helper나 별도 dev deploy 바이너리를 공식 경로로 사용
|
||||
|
||||
## 1. Bundle 디렉터리 준비
|
||||
## 1. 빌드
|
||||
|
||||
공식 빌드 진입점은 `make build` 하나로 둔다.
|
||||
이 명령은 Edge와 Node를 함께 빌드하고, 현재 host에서 바로 쓸 수 있는 바이너리를 `bin/`에 맞춰 둔다.
|
||||
|
||||
```bash
|
||||
make build
|
||||
```
|
||||
|
||||
Edge 또는 Node만 갱신할 때도 같은 빌드 통로를 사용한다.
|
||||
|
||||
```bash
|
||||
make build-edge
|
||||
make build-node
|
||||
```
|
||||
|
||||
산출물:
|
||||
|
||||
```text
|
||||
bin/iop-edge
|
||||
bin/iop-node
|
||||
dist/field/<version>/<goos>-<goarch>/iop-edge
|
||||
dist/field/<version>/<goos>-<goarch>/iop-node
|
||||
```
|
||||
|
||||
## 2. Bundle 디렉터리 준비
|
||||
|
||||
하나의 디렉터리에 `iop-edge`와 `iop-node` 바이너리가 함께 있다고 가정한다.
|
||||
|
||||
|
|
@ -20,13 +45,21 @@
|
|||
iop-node
|
||||
```
|
||||
|
||||
이후 명령은 해당 디렉터리에서 실행한다.
|
||||
repo-local 테스트는 `bin/`을 그대로 bundle 디렉터리로 사용할 수 있다.
|
||||
|
||||
```bash
|
||||
cd bin
|
||||
```
|
||||
|
||||
별도 디렉터리에서 테스트할 때는 repo root에서 빌드된 바이너리만 옮긴 뒤 그 디렉터리에서 실행한다.
|
||||
|
||||
```bash
|
||||
mkdir -p /opt/iop-dev
|
||||
cp bin/iop-edge bin/iop-node /opt/iop-dev/
|
||||
cd /opt/iop-dev
|
||||
```
|
||||
|
||||
## 2. Edge config 생성
|
||||
## 3. Edge config 생성
|
||||
|
||||
```bash
|
||||
./iop-edge config init
|
||||
|
|
@ -35,13 +68,13 @@ cd /opt/iop-dev
|
|||
기대 결과:
|
||||
|
||||
```text
|
||||
/opt/iop-dev/edge.yaml
|
||||
<bundle-dir>/edge.yaml
|
||||
```
|
||||
|
||||
`edge.yaml`은 Control Plane이 없는 동안 테스트용 source of truth다.
|
||||
처음부터 직접 작성하지 않고 `iop-edge`가 생성한 템플릿에서 시작한다.
|
||||
|
||||
## 3. 현재 환경 확인
|
||||
## 4. 현재 환경 확인
|
||||
|
||||
```bash
|
||||
./iop-edge env
|
||||
|
|
@ -67,10 +100,10 @@ connected nodes
|
|||
로그 기본 위치는 바이너리 디렉터리 아래다.
|
||||
|
||||
```text
|
||||
/opt/iop-dev/logs/
|
||||
<bundle-dir>/logs/
|
||||
```
|
||||
|
||||
## 4. Node 등록과 bootstrap 출력
|
||||
## 5. Node 등록과 bootstrap 출력
|
||||
|
||||
Node 정의는 `edge.yaml`을 직접 편집하지 않고 `iop-edge node register`로 만든다.
|
||||
|
||||
|
|
@ -99,7 +132,7 @@ curl -fsSL <bootstrap-url> | bash -s <generated-token>
|
|||
사용자는 이 한 줄만 Node host에서 실행한다.
|
||||
전달받은 명령에 `IOP_ARTIFACT_BASE_URL=`, `IOP_EDGE_ADDR=`, `IOP_NODE_TOKEN=` 같은 named parameter가 있으면 기본 경로가 아니다.
|
||||
|
||||
## 5. Config 검증
|
||||
## 6. Config 검증
|
||||
|
||||
```bash
|
||||
./iop-edge config check
|
||||
|
|
@ -107,7 +140,7 @@ curl -fsSL <bootstrap-url> | bash -s <generated-token>
|
|||
|
||||
이 단계에서 `nodes[]` token/id/alias 충돌, adapter/runtime 설정 오류가 잡혀야 한다.
|
||||
|
||||
## 6. Edge 실행
|
||||
## 7. Edge 실행
|
||||
|
||||
개발 중 foreground 실행:
|
||||
|
||||
|
|
@ -127,7 +160,7 @@ sudo ./iop-edge setup --enable --start
|
|||
tail -f logs/edge.log
|
||||
```
|
||||
|
||||
## 7. Node host에서 bootstrap 실행
|
||||
## 8. Node host에서 bootstrap 실행
|
||||
|
||||
`iop-edge node register ...`가 출력한 한 줄을 Node host에서 그대로 실행한다.
|
||||
|
||||
|
|
@ -138,7 +171,7 @@ curl -fsSL <bootstrap-url> | bash -s <generated-token>
|
|||
Node host 사용자는 `node.yaml`을 만들거나 편집하지 않는다.
|
||||
Node 프로세스 실행 방식은 bootstrap 내부 구현 세부다.
|
||||
|
||||
## 8. 연결 확인
|
||||
## 9. 연결 확인
|
||||
|
||||
Edge host에서 확인한다.
|
||||
|
||||
|
|
@ -152,7 +185,7 @@ OpenAI-compatible smoke:
|
|||
./iop-edge smoke openai --model gemma4:26b
|
||||
```
|
||||
|
||||
## 9. Cline 접속 정보 확인
|
||||
## 10. Cline 접속 정보 확인
|
||||
|
||||
```bash
|
||||
./iop-edge env
|
||||
|
|
@ -168,7 +201,7 @@ API Key: ASCII 값
|
|||
|
||||
API Key에는 한글이나 non-ASCII 문자를 넣지 않는다.
|
||||
|
||||
## 10. 문제 발생 시 공유할 것
|
||||
## 11. 문제 발생 시 공유할 것
|
||||
|
||||
```bash
|
||||
./iop-edge env
|
||||
|
|
|
|||
|
|
@ -1,45 +0,0 @@
|
|||
edge:
|
||||
id: "edge-verif"
|
||||
name: "Verification Edge"
|
||||
|
||||
server:
|
||||
listen: "127.0.0.1:39090"
|
||||
|
||||
tls:
|
||||
enabled: false
|
||||
|
||||
logging:
|
||||
level: "info"
|
||||
pretty: true
|
||||
|
||||
metrics:
|
||||
port: 39092
|
||||
|
||||
console:
|
||||
adapter: "cli"
|
||||
target: "antigravity"
|
||||
session_id: "default"
|
||||
background: false
|
||||
timeout_sec: 300
|
||||
|
||||
nodes:
|
||||
- id: "node-verif"
|
||||
alias: "verif-node"
|
||||
token: "changeme"
|
||||
adapters:
|
||||
cli:
|
||||
enabled: true
|
||||
profiles:
|
||||
antigravity:
|
||||
command: "agy"
|
||||
args:
|
||||
- "--dangerously-skip-permissions"
|
||||
- "--print-timeout"
|
||||
- "10m"
|
||||
- "--print"
|
||||
env: []
|
||||
persistent: false
|
||||
terminal: false
|
||||
runtime:
|
||||
concurrency: 4
|
||||
workspace_root: "./temp_verif/workspace"
|
||||
|
|
@ -1,77 +0,0 @@
|
|||
[edge] config=temp_verif/edge.yaml
|
||||
{
|
||||
"level": "info",
|
||||
"ts": 1779366535.3162963,
|
||||
"caller": "transport/server.go:83",
|
||||
"msg": "edge listening for nodes",
|
||||
"addr": "127.0.0.1:39090"
|
||||
}
|
||||
IOP Edge console listening on 127.0.0.1:39090
|
||||
Console target node= adapter=cli target=antigravity session=default background=false
|
||||
Start node.sh on another host, then type a message here.
|
||||
Commands: /nodes, /node <id|alias>, /session <id>, /background on|off, /terminate-session, /status, /capabilities, /sessions, /transport, /exit
|
||||
edge> {
|
||||
"level": "info",
|
||||
"ts": 1779366536.616124,
|
||||
"caller": "transport/server.go:117",
|
||||
"msg": "node connection established"
|
||||
}
|
||||
{
|
||||
"level": "info",
|
||||
"ts": 1779366537.118941,
|
||||
"caller": "transport/server.go:117",
|
||||
"msg": "node connection established"
|
||||
}
|
||||
{
|
||||
"level": "info",
|
||||
"ts": 1779366537.1195345,
|
||||
"caller": "transport/server.go:192",
|
||||
"msg": "node registered",
|
||||
"node_id": "node-verif",
|
||||
"alias": "verif-node"
|
||||
}
|
||||
[node0-evt] connected reason="registered"
|
||||
node0 = node-verif (verif-node)
|
||||
edge> [edge] sent run_id=manual-1779366543589159719 node=node0 adapter=cli target=antigravity session=default background=false
|
||||
[node0-evt] start run_id=manual-1779366543589159719
|
||||
[node0-msg] Authentication required. Please visit the URL to log in:
|
||||
[node0-msg] https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com&code_challenge=C8VcdSBSP64hQeGimRuJ-VH34YdAP7mMZlKiQ5-TrBg&code_challenge_method=S256&prompt=consent&redirect_uri=https%3A%2F%2Fantigravity.google%2Foauth-callback&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcclog+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fexperimentsandconfigs+openid&state=ZTE7OrbNMGVnaPXAzzOcJQ
|
||||
[node0-msg]
|
||||
[node0-msg] Waiting for authentication (timeout 30s)...
|
||||
[node0-msg] Or, paste the authorization code here and press Enter:
|
||||
[node0-msg] Error: authentication timed out.
|
||||
[node0-evt] complete run_id=manual-1779366543589159719 detail="cli execution complete"
|
||||
edge> [edge] sent run_id=manual-1779366578590797138 node=node0 adapter=cli target=antigravity session=default background=false
|
||||
[node0-evt] start run_id=manual-1779366578590797138
|
||||
[node0-msg] Authentication required. Please visit the URL to log in:
|
||||
[node0-msg] https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com&code_challenge=0hmWMghcYF6wt8MhvqSHjUO0gadA8BHNjhbN9rQtZ-E&code_challenge_method=S256&prompt=consent&redirect_uri=https%3A%2F%2Fantigravity.google%2Foauth-callback&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcclog+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fexperimentsandconfigs+openid&state=XFuTWUDeErVPLFR1pWaO5g
|
||||
[node0-msg]
|
||||
[node0-msg] Waiting for authentication (timeout 30s)...
|
||||
[node0-msg] Or, paste the authorization code here and press Enter:
|
||||
[node0-msg] Error: authentication timed out.
|
||||
[node0-evt] complete run_id=manual-1779366578590797138 detail="cli execution complete"
|
||||
edge> [node0-capabilities] target=antigravity session=default
|
||||
adapter = cli
|
||||
max_concurrency = 4
|
||||
targets = antigravity
|
||||
edge> [node0-transport] target=antigravity session=default
|
||||
adapter = cli
|
||||
connected = true
|
||||
node_id = node-verif
|
||||
session_id = default
|
||||
target = antigravity
|
||||
edge> [node0-sessions] target=antigravity session=default
|
||||
count = 0
|
||||
sessions =
|
||||
edge> [edge] sent command=status node=node0 adapter=cli target=antigravity session=default
|
||||
error: node reported error: antigravity startup failed: timeout waiting for for shortcuts|Type your message
|
||||
edge> bye
|
||||
{
|
||||
"level": "info",
|
||||
"ts": 1779366639.6197438,
|
||||
"caller": "transport/server.go:176",
|
||||
"msg": "node unregistered",
|
||||
"node_id": "node-verif",
|
||||
"transport_close_reason": "local_close",
|
||||
"transport_close_error": "read tcp 127.0.0.1:39090->127.0.0.1:57026: use of closed network connection"
|
||||
}
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
transport:
|
||||
edge_addr: "127.0.0.1:39090"
|
||||
token: "changeme"
|
||||
|
||||
logging:
|
||||
level: "info"
|
||||
pretty: true
|
||||
|
||||
metrics:
|
||||
port: 39091
|
||||
|
||||
node:
|
||||
id: "node-verif"
|
||||
alias: "verif-node"
|
||||
|
|
@ -1,115 +0,0 @@
|
|||
[node] config=temp_verif/node.yaml
|
||||
[node] waiting for edge at 127.0.0.1:39090 timeout=30s
|
||||
[node] edge is reachable
|
||||
[Fx] PROVIDE fx.Lifecycle <= go.uber.org/fx.New.func1()
|
||||
[Fx] PROVIDE fx.Shutdowner <= go.uber.org/fx.(*App).shutdowner-fm()
|
||||
[Fx] PROVIDE fx.DotGraph <= go.uber.org/fx.(*App).dotGraph-fm()
|
||||
[Fx] PROVIDE *config.NodeConfig <= iop/apps/node/internal/bootstrap.Module.func1()
|
||||
[Fx] PROVIDE *zap.Logger <= iop/apps/node/internal/bootstrap.Module.func2()
|
||||
[Fx] INVOKE iop/apps/node/internal/bootstrap.Module.func3()
|
||||
[Fx] RUN provide: go.uber.org/fx.New.func1()
|
||||
[Fx] RUN provide: iop/apps/node/internal/bootstrap.Module.func1()
|
||||
[Fx] RUN provide: iop/apps/node/internal/bootstrap.Module.func2()
|
||||
[Fx] HOOK OnStart iop/apps/node/internal/bootstrap.Module.func3.1() executing (caller: iop/apps/node/internal/bootstrap.Module.func3)
|
||||
{
|
||||
"level": "info",
|
||||
"ts": 1779366537.1199644,
|
||||
"caller": "transport/client.go:67",
|
||||
"msg": "registered with edge",
|
||||
"node_id": "node-verif",
|
||||
"alias": "verif-node"
|
||||
}
|
||||
{
|
||||
"level": "info",
|
||||
"ts": 1779366537.1240954,
|
||||
"caller": "store/store.go:62",
|
||||
"msg": "store ready",
|
||||
"dsn": "file:temp_verif/workspace/iop.db?cache=shared&mode=rwc"
|
||||
}
|
||||
[Fx] HOOK OnStart iop/apps/node/internal/bootstrap.Module.func3.1() called by iop/apps/node/internal/bootstrap.Module.func3 ran successfully in 5.607916ms
|
||||
[Fx] RUNNING
|
||||
{
|
||||
"level": "info",
|
||||
"ts": 1779366543.5897276,
|
||||
"caller": "node/node.go:61",
|
||||
"msg": "run request received",
|
||||
"run_id": "manual-1779366543589159719",
|
||||
"adapter": "cli",
|
||||
"target": "antigravity"
|
||||
}
|
||||
[edge-message] Convert this token to uppercase and reply with only the converted token: iop_antigravity_one
|
||||
[node-event] start run_id=manual-1779366543589159719
|
||||
[node-message] Authentication required. Please visit the URL to log in:
|
||||
https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com&code_challenge=C8VcdSBSP64hQeGimRuJ-VH34YdAP7mMZlKiQ5-TrBg&code_challenge_method=S256&prompt=consent&redirect_uri=https%3A%2F%2Fantigravity.google%2Foauth-callback&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcclog+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fexperimentsandconfigs+openid&state=ZTE7OrbNMGVnaPXAzzOcJQ
|
||||
|
||||
Waiting for authentication (timeout 30s)...
|
||||
Or, paste the authorization code here and press Enter:
|
||||
Error: authentication timed out.
|
||||
[node-event] complete run_id=manual-1779366543589159719 detail="cli execution complete"
|
||||
{
|
||||
"level": "info",
|
||||
"ts": 1779366578.5910747,
|
||||
"caller": "node/node.go:61",
|
||||
"msg": "run request received",
|
||||
"run_id": "manual-1779366578590797138",
|
||||
"adapter": "cli",
|
||||
"target": "antigravity"
|
||||
}
|
||||
[edge-message] Convert this token to uppercase and reply with only the converted token: iop_antigravity_two
|
||||
[node-event] start run_id=manual-1779366578590797138
|
||||
[node-message] Authentication required. Please visit the URL to log in:
|
||||
https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com&code_challenge=0hmWMghcYF6wt8MhvqSHjUO0gadA8BHNjhbN9rQtZ-E&code_challenge_method=S256&prompt=consent&redirect_uri=https%3A%2F%2Fantigravity.google%2Foauth-callback&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcclog+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fexperimentsandconfigs+openid&state=XFuTWUDeErVPLFR1pWaO5g
|
||||
|
||||
Waiting for authentication (timeout 30s)...
|
||||
Or, paste the authorization code here and press Enter:
|
||||
Error: authentication timed out.
|
||||
[node-event] complete run_id=manual-1779366578590797138 detail="cli execution complete"
|
||||
{
|
||||
"level": "info",
|
||||
"ts": 1779366613.5935256,
|
||||
"caller": "node/node.go:179",
|
||||
"msg": "command request",
|
||||
"request_id": "caps-1779366613593188043",
|
||||
"type": "NODE_COMMAND_TYPE_CAPABILITIES",
|
||||
"adapter": "cli",
|
||||
"target": "antigravity"
|
||||
}
|
||||
{
|
||||
"level": "info",
|
||||
"ts": 1779366615.6012824,
|
||||
"caller": "node/node.go:179",
|
||||
"msg": "command request",
|
||||
"request_id": "transport-1779366615598773752",
|
||||
"type": "NODE_COMMAND_TYPE_TRANSPORT_STATUS",
|
||||
"adapter": "cli",
|
||||
"target": "antigravity"
|
||||
}
|
||||
{
|
||||
"level": "info",
|
||||
"ts": 1779366617.6029432,
|
||||
"caller": "node/node.go:179",
|
||||
"msg": "command request",
|
||||
"request_id": "sessions-1779366617602482794",
|
||||
"type": "NODE_COMMAND_TYPE_SESSION_LIST",
|
||||
"adapter": "cli",
|
||||
"target": "antigravity"
|
||||
}
|
||||
{
|
||||
"level": "info",
|
||||
"ts": 1779366619.6050475,
|
||||
"caller": "node/node.go:179",
|
||||
"msg": "command request",
|
||||
"request_id": "status-1779366619604799045",
|
||||
"type": "NODE_COMMAND_TYPE_USAGE_STATUS",
|
||||
"adapter": "cli",
|
||||
"target": "antigravity"
|
||||
}
|
||||
{
|
||||
"level": "info",
|
||||
"ts": 1779366639.61984,
|
||||
"caller": "transport/session.go:89",
|
||||
"msg": "disconnected from edge",
|
||||
"transport_close_reason": "remote_closed",
|
||||
"transport_close_error": "EOF"
|
||||
}
|
||||
[edge-event] disconnected reason="transport_closed" transport_close_reason="remote_closed" transport_close_error="EOF"
|
||||
|
|
@ -1,64 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
set -x
|
||||
|
||||
mkdir -p temp_verif/workspace
|
||||
rm -f temp_verif/edge_fifo
|
||||
mkfifo temp_verif/edge_fifo
|
||||
|
||||
EDGE_OUT="temp_verif/edge_out"
|
||||
NODE_OUT="temp_verif/node_out"
|
||||
|
||||
# Start edge with FIFO input
|
||||
IOP_EDGE_CONFIG=temp_verif/edge.yaml ./bin/edge.sh < temp_verif/edge_fifo > "$EDGE_OUT" 2>&1 &
|
||||
EDGE_PID=$!
|
||||
exec 3> temp_verif/edge_fifo
|
||||
|
||||
sleep 2
|
||||
|
||||
# Start node
|
||||
IOP_NODE_CONFIG=temp_verif/node.yaml ./bin/node.sh > "$NODE_OUT" 2>&1 &
|
||||
NODE_PID=$!
|
||||
|
||||
sleep 5
|
||||
|
||||
# Send /nodes command
|
||||
echo "/nodes" >&3
|
||||
sleep 2
|
||||
|
||||
# Send first message
|
||||
echo "Convert this token to uppercase and reply with only the converted token: iop_antigravity_one" >&3
|
||||
# Wait for the authentication/login timeout (which is 30s) plus safety margin
|
||||
sleep 35
|
||||
|
||||
# Send second message
|
||||
echo "Convert this token to uppercase and reply with only the converted token: iop_antigravity_two" >&3
|
||||
# Wait for the authentication/login timeout
|
||||
sleep 35
|
||||
|
||||
# Send edge commands
|
||||
echo "/capabilities" >&3
|
||||
sleep 2
|
||||
|
||||
echo "/transport" >&3
|
||||
sleep 2
|
||||
|
||||
echo "/sessions" >&3
|
||||
sleep 2
|
||||
|
||||
echo "/status" >&3
|
||||
sleep 2
|
||||
|
||||
# Exit
|
||||
echo "/exit" >&3
|
||||
sleep 2
|
||||
|
||||
exec 3>&-
|
||||
|
||||
wait $EDGE_PID || true
|
||||
kill $NODE_PID 2>/dev/null || true
|
||||
|
||||
echo "=== EDGE OUTPUT ==="
|
||||
cat "$EDGE_OUT"
|
||||
|
||||
echo "=== NODE OUTPUT ==="
|
||||
cat "$NODE_OUT"
|
||||
Binary file not shown.
Loading…
Reference in a new issue