|
46 | 46 | ASSET_ALLOWED_EXTS = {".png", ".webp", ".jpg", ".jpeg", ".gif", ".svg", ".avif"} |
47 | 47 | ASSET_TEMPLATE_ZIP = os.path.join(ROOT_DIR, "assets-replace-template.zip") |
48 | 48 | WORKSPACE_DIR = os.path.dirname(ROOT_DIR) |
| 49 | +OPENCLAW_WORKSPACE = os.environ.get("OPENCLAW_WORKSPACE") or os.path.join(os.path.expanduser("~"), ".openclaw", "workspace") |
| 50 | +IDENTITY_FILE = os.path.join(OPENCLAW_WORKSPACE, "IDENTITY.md") |
49 | 51 | GEMINI_SCRIPT = os.path.join(WORKSPACE_DIR, "skills", "gemini-image-generate", "scripts", "gemini_image_generate.py") |
50 | 52 | GEMINI_PYTHON = os.path.join(WORKSPACE_DIR, "skills", "gemini-image-generate", ".venv", "bin", "python") |
51 | 53 | ROOM_REFERENCE_IMAGE = ( |
@@ -199,6 +201,22 @@ def load_state(): |
199 | 201 | return state |
200 | 202 |
|
201 | 203 |
|
| 204 | +def get_office_name_from_identity(): |
| 205 | + """Read office display name from OpenClaw workspace IDENTITY.md (Name field) -> 'XXX的办公室'.""" |
| 206 | + if not os.path.isfile(IDENTITY_FILE): |
| 207 | + return None |
| 208 | + try: |
| 209 | + with open(IDENTITY_FILE, "r", encoding="utf-8") as f: |
| 210 | + content = f.read() |
| 211 | + m = re.search(r"-\s*\*\*Name:\*\*\s*(.+)", content) |
| 212 | + if m: |
| 213 | + name = m.group(1).strip().replace("\r", "").split("\n")[0].strip() |
| 214 | + return f"{name}的办公室" if name else None |
| 215 | + except Exception: |
| 216 | + pass |
| 217 | + return None |
| 218 | + |
| 219 | + |
202 | 220 | def save_state(state: dict): |
203 | 221 | """Save state to file""" |
204 | 222 | with open(STATE_FILE, "w", encoding="utf-8") as f: |
@@ -1127,8 +1145,11 @@ def leave_agent(): |
1127 | 1145 |
|
1128 | 1146 | @app.route("/status", methods=["GET"]) |
1129 | 1147 | def get_status(): |
1130 | | - """Get current main state (backward compatibility)""" |
| 1148 | + """Get current main state (backward compatibility). Optionally include officeName from IDENTITY.md.""" |
1131 | 1149 | state = load_state() |
| 1150 | + office_name = get_office_name_from_identity() |
| 1151 | + if office_name: |
| 1152 | + state["officeName"] = office_name |
1132 | 1153 | return jsonify(state) |
1133 | 1154 |
|
1134 | 1155 |
|
|
0 commit comments