fix(config): add models[] array for canvas model dropdown (#4)
Co-authored-by: Molecule AI Plugin-Dev <plugin-dev@agents.moleculesai.app>
This commit is contained in:
parent
aabe8f433e
commit
62643e2b8f
@ -1,25 +1,47 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Validate a Molecule AI workspace template repo."""
|
||||
import os, sys, yaml
|
||||
|
||||
errors = []
|
||||
|
||||
if not os.path.isfile("config.yaml"):
|
||||
print("::error::config.yaml not found at repo root")
|
||||
sys.exit(1)
|
||||
|
||||
with open("config.yaml") as f:
|
||||
config = yaml.safe_load(f)
|
||||
|
||||
if not config.get("name"):
|
||||
errors.append("Missing required field: name")
|
||||
if not config.get("runtime"):
|
||||
errors.append("Missing required field: runtime")
|
||||
|
||||
known = {"langgraph", "claude-code", "crewai", "autogen", "deepagents", "hermes", "gemini-cli", "openclaw"}
|
||||
runtime = config.get("runtime", "")
|
||||
if runtime and runtime not in known:
|
||||
print(f"::warning::Runtime '{runtime}' is not in the known set. OK for custom runtimes.")
|
||||
|
||||
# Check for legacy imports
|
||||
if os.path.isfile("adapter.py"):
|
||||
with open("adapter.py") as f:
|
||||
content = f.read()
|
||||
if "molecule_runtime" in content:
|
||||
print("::warning::adapter.py imports 'molecule_runtime' — legacy import, use 'molecule_ai' or platform SDK")
|
||||
|
||||
# Check for missing molecule-ai-workspace-runtime dependency hint
|
||||
if os.path.isfile("Dockerfile"):
|
||||
with open("Dockerfile") as f:
|
||||
content = f.read()
|
||||
if "molecule-ai-workspace-runtime" not in content:
|
||||
print("::warning::Dockerfile does not reference 'molecule-ai-workspace-runtime' — may need base runtime package")
|
||||
|
||||
sv = config.get("template_schema_version")
|
||||
if sv is None:
|
||||
errors.append("Missing template_schema_version (add: template_schema_version: 1)")
|
||||
|
||||
if errors:
|
||||
for e in errors:
|
||||
print(f"::error::{e}")
|
||||
sys.exit(1)
|
||||
|
||||
print(f"✓ config.yaml valid: {config['name']} (runtime: {config.get('runtime')})")
|
||||
|
||||
32
config.yaml
32
config.yaml
@ -2,25 +2,33 @@ name: OpenClaw Agent
|
||||
description: OpenClaw framework — multi-file prompt system with SOUL, BOOTSTRAP, AGENTS, TOOLS, and HEARTBEAT modules
|
||||
version: 1.0.0
|
||||
tier: 2
|
||||
|
||||
runtime: openclaw
|
||||
model: openai:gpt-4.1-mini
|
||||
|
||||
prompt_files:
|
||||
- SOUL.md
|
||||
- BOOTSTRAP.md
|
||||
- AGENTS.md
|
||||
- HEARTBEAT.md
|
||||
- TOOLS.md
|
||||
- USER.md
|
||||
|
||||
- SOUL.md
|
||||
- BOOTSTRAP.md
|
||||
- AGENTS.md
|
||||
- HEARTBEAT.md
|
||||
- TOOLS.md
|
||||
- USER.md
|
||||
a2a:
|
||||
port: 8000
|
||||
streaming: true
|
||||
push_notifications: true
|
||||
|
||||
env:
|
||||
required:
|
||||
- OPENAI_API_KEY
|
||||
|
||||
- OPENAI_API_KEY
|
||||
template_schema_version: 1
|
||||
models:
|
||||
- id: openai:gpt-4.1-mini
|
||||
name: GPT-4.1 Mini (OpenAI)
|
||||
required_env:
|
||||
- OPENAI_API_KEY
|
||||
- id: openai:gpt-4o
|
||||
name: GPT-4o (OpenAI)
|
||||
required_env:
|
||||
- OPENAI_API_KEY
|
||||
- id: openai:o4-mini
|
||||
name: o4-Mini (OpenAI)
|
||||
required_env:
|
||||
- OPENAI_API_KEY
|
||||
|
||||
Loading…
Reference in New Issue
Block a user