refactor: rename 'tier' to 'level' across the codebase

- Updated WorkerState type to use 'level' instead of 'tier'.
- Modified functions related to worker state management, including parseWorkerState, emptyWorkerState, getSessionForLevel, activateWorker, and deactivateWorker to reflect the new terminology.
- Adjusted health check logic to utilize 'level' instead of 'tier'.
- Refactored tick and setup tools to accommodate the change from 'tier' to 'level', including model configuration and workspace scaffolding.
- Updated tests to ensure consistency with the new 'level' terminology.
- Revised documentation and comments to reflect the changes in terminology from 'tier' to 'level'.
This commit is contained in:
Lauren ten Hoor
2026-02-11 03:04:17 +08:00
parent 1f95ad4518
commit 5df4b912c9
18 changed files with 296 additions and 278 deletions

View File

@@ -1,36 +1,20 @@
/**
* setup/config.ts — Plugin config writer (openclaw.json).
*
* Handles: model tier config, devClawAgentIds, tool restrictions, subagent cleanup.
* Handles: model level config, devClawAgentIds, tool restrictions, subagent cleanup.
*/
import fs from "node:fs/promises";
import path from "node:path";
import { DEV_TIERS, QA_TIERS, tierName, type Tier } from "../tiers.js";
import { HEARTBEAT_DEFAULTS } from "../services/heartbeat.js";
type ModelConfig = { dev: Record<string, string>; qa: Record<string, string> };
function openclawConfigPath(): string {
return path.join(process.env.HOME ?? "/home/lauren", ".openclaw", "openclaw.json");
}
/**
* Convert flat tier map to nested role-tier structure.
*/
function buildRoleTierModels(models: Record<Tier, string>): { dev: Record<string, string>; qa: Record<string, string> } {
const dev: Record<string, string> = {};
const qa: Record<string, string> = {};
for (const tier of DEV_TIERS) {
dev[tierName(tier)] = models[tier];
}
for (const tier of QA_TIERS) {
qa[tierName(tier)] = models[tier];
}
return { dev, qa };
}
/**
* Write DevClaw model tier config and devClawAgentIds to openclaw.json plugins section.
* Write DevClaw model level config and devClawAgentIds to openclaw.json plugins section.
*
* Also configures:
* - Tool restrictions (deny sessions_spawn, sessions_send) for DevClaw agents
@@ -39,7 +23,7 @@ function buildRoleTierModels(models: Record<Tier, string>): { dev: Record<string
* Read-modify-write to preserve existing config.
*/
export async function writePluginConfig(
models: Record<Tier, string>,
models: ModelConfig,
agentId?: string,
projectExecution?: "parallel" | "sequential",
): Promise<void> {
@@ -47,7 +31,7 @@ export async function writePluginConfig(
const config = JSON.parse(await fs.readFile(configPath, "utf-8"));
ensurePluginStructure(config);
config.plugins.entries.devclaw.config.models = buildRoleTierModels(models);
config.plugins.entries.devclaw.config.models = models;
if (projectExecution) {
config.plugins.entries.devclaw.config.projectExecution = projectExecution;