Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,7 @@ temp/

.direnv/
bin

# Wallet files
**/password.txt
obol-agent
2 changes: 1 addition & 1 deletion cmd/obol/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ COMMANDS:
openclaw token Retrieve gateway token
openclaw list List instances
openclaw delete Remove instance and cluster resources
openclaw skills Manage skills (sync from local dir)
openclaw skills Manage skills

Model Providers:
model setup Configure cloud AI provider in llmspy gateway
Expand Down
21 changes: 10 additions & 11 deletions internal/embed/embed_skills_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package embed
import (
"os"
"path/filepath"
"sort"
"testing"
)

Expand All @@ -13,15 +12,15 @@ func TestGetEmbeddedSkillNames(t *testing.T) {
t.Fatalf("unexpected error: %v", err)
}

want := []string{"distributed-validators", "ethereum-networks", "ethereum-wallet", "obol-stack"}
sort.Strings(names)

if len(names) != len(want) {
t.Fatalf("got %d skills %v, want %d %v", len(names), names, len(want), want)
// Core skills that must always be present
required := []string{"distributed-validators", "ethereum-networks", "local-ethereum-wallet", "obol-stack"}
nameSet := make(map[string]bool, len(names))
for _, n := range names {
nameSet[n] = true
}
for i := range want {
if names[i] != want[i] {
t.Errorf("skill[%d] = %q, want %q", i, names[i], want[i])
for _, r := range required {
if !nameSet[r] {
t.Errorf("required skill %q not found in embedded skills %v", r, names)
}
}
}
Expand All @@ -34,7 +33,7 @@ func TestCopySkills(t *testing.T) {
}

// Every skill must have a SKILL.md
skills := []string{"distributed-validators", "ethereum-networks", "ethereum-wallet", "obol-stack"}
skills := []string{"distributed-validators", "ethereum-networks", "local-ethereum-wallet", "obol-stack"}
for _, skill := range skills {
skillMD := filepath.Join(destDir, skill, "SKILL.md")
info, err := os.Stat(skillMD)
Expand Down Expand Up @@ -73,7 +72,7 @@ func TestCopySkillsSkipsExisting(t *testing.T) {
destDir := t.TempDir()

// Pre-create a skill directory with custom content
customDir := filepath.Join(destDir, "ethereum-wallet")
customDir := filepath.Join(destDir, "local-ethereum-wallet")
if err := os.MkdirAll(customDir, 0755); err != nil {
t.Fatalf("mkdir: %v", err)
}
Expand Down
4 changes: 4 additions & 0 deletions internal/embed/infrastructure/values/erpc.yaml.gotmpl
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@ config: |-
endpoint: https://{{ $erpcGcpAuth }}@erpc.gcp.obol.tech/hoodi/evm/560048
evm:
chainId: 560048
- id: allnodes-rpc-hoodi
endpoint: https://ethereum-hoodi-rpc.publicnode.com
evm:
chainId: 560048
networks:
- architecture: evm
evm:
Expand Down
2 changes: 2 additions & 0 deletions internal/embed/infrastructure/values/monitoring.yaml.gotmpl
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ prometheus:
prometheusOperator:
admissionWebhooks:
enabled: false # Disable webhook pre-install hooks (avoids timeout on fresh k3s)
tls:
enabled: false # Disable TLS secret volume mount (no admission webhook = no cert needed)

grafana:
enabled: false # Enable when we want UI access
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ image:

repository: obolnetwork/obol-stack-front-end
pullPolicy: IfNotPresent
tag: "v0.1.6"
tag: "v0.1.7"

service:
type: ClusterIP
Expand Down
Loading
Loading