Coverage for src / openenv / templates / sample.py: 100.00%
3 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-25 13:36 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-25 13:36 +0000
1"""Sample manifest used by `clawopenenv init`."""
3from __future__ import annotations
5from textwrap import dedent
8SAMPLE_MANIFEST = dedent(
9 """\
10 schema_version = 1
12 [project]
13 name = "research-agent"
14 version = "0.1.0"
15 description = "Example OpenClaw environment managed by OpenClawenv"
16 runtime = "openclaw"
18 [runtime]
19 base_image = "python:3.12-slim"
20 python_version = "3.12"
21 system_packages = ["git", "curl", "chromium"]
22 python_packages = ["requests==2.32.3", "rich==13.9.4"]
23 node_packages = ["typescript@5.8.3"]
24 env = { PYTHONUNBUFFERED = "1", OPENCLAWENV_PROJECT = "research-agent" }
25 user = "root"
26 workdir = "/workspace"
28 [[runtime.secret_refs]]
29 name = "OPENAI_API_KEY"
30 source = "env:OPENAI_API_KEY"
31 required = true
33 [agent]
34 agents_md = \"\"\"
35 # Agent Contract
37 - Read `SOUL.md`, `USER.md`, and `memory.md` before responding.
38 - Never expose secrets in chat.
39 - Prefer reproducible commands over ad-hoc shell state.
40 \"\"\"
41 soul_md = \"\"\"
42 # Soul
44 Helpful, concise, and careful about security.
45 \"\"\"
46 user_md = \"\"\"
47 # User
49 Builds internal agent workflows for engineering teams.
50 \"\"\"
51 identity_md = \"\"\"
52 # Identity
54 You are the research agent for the OpenClawenv workspace.
55 \"\"\"
56 tools_md = \"\"\"
57 # Tools
59 Use local tools first. Escalate before destructive actions.
60 \"\"\"
61 memory_seed = [
62 "Project starts from a deterministic Docker image.",
63 "Secrets are injected at runtime from references only.",
64 ]
66 [[skills]]
67 name = "deus-context-engine"
68 description = "Always-installed skill referenced from catalog source deus-context-engine"
69 source = "deus-context-engine"
71 [[skills]]
72 name = "self-improving-agent"
73 description = "Always-installed skill referenced from catalog source self-improving-agent"
74 source = "self-improving-agent"
76 [[skills]]
77 name = "skill-security-review"
78 description = "Always-installed skill referenced from catalog source skill-security-review"
79 source = "skill-security-review"
81 [[skills]]
82 name = "free-ride"
83 description = "Always-installed skill referenced from catalog source freeride"
84 source = "freeride"
86 [[skills]]
87 name = "agent-browser-clawdbot"
88 description = "Always-installed skill referenced from catalog source agent-browser-clawdbot"
89 source = "agent-browser-clawdbot"
91 [[skills]]
92 name = "incident-brief"
93 description = "Prepare concise incident reports from logs and dashboards."
94 content = \"\"\"
95 ---
96 name: incident-brief
97 description: Prepare concise incident reports from logs and dashboards.
98 ---
100 1. Gather the most relevant telemetry.
101 2. Summarize impact, timeline, and next actions.
102 \"\"\"
103 assets = { "templates/report.md" = "# Incident Report\\n\\n## Summary\\n" }
105 [openclaw]
106 agent_id = "main"
107 agent_name = "Research Agent"
108 workspace = "/opt/openclaw/workspace"
109 state_dir = "/opt/openclaw"
111 [openclaw.sandbox]
112 mode = "off"
113 scope = "session"
114 workspace_access = "full"
115 network = "bridge"
116 read_only_root = true
118 [openclaw.tools]
119 allow = ["shell_command"]
120 deny = []
122 # Optional: declare raw channel config here so Claw-env writes it directly into
123 # openclaw.json and you can avoid the upstream form editor for complex schemas.
124 #
125 # [openclaw.channels.telegram]
126 # enabled = true
127 # allowFrom = ["123456789"]
128 #
129 # [openclaw.channels.googlechat.accounts.workspace]
130 # serviceAccountFile = "/opt/secrets/googlechat.json"
131 """
132)