feat: implement runCommand wrapper and refactor command executions across modules

This commit is contained in:
Lauren ten Hoor
2026-02-13 10:50:35 +08:00
parent e55b7fa555
commit 83f1f1adf0
24 changed files with 209 additions and 178 deletions

View File

@@ -21,7 +21,7 @@ async function getAuthenticatedModels(
api: OpenClawPluginApi,
): Promise<Array<{ model: string; provider: string; authenticated: boolean }>> {
try {
const models = fetchAuthenticatedModels();
const models = await fetchAuthenticatedModels();
// Map to the format expected by assignModels()
return models.map((m) => {

View File

@@ -39,7 +39,7 @@ export function createHealthTool() {
for (const pid of projectIds) {
const project = getProject(data, pid);
if (!project) continue;
const { provider } = resolveProvider(project);
const { provider } = await resolveProvider(project);
for (const role of ["dev", "qa"] as const) {
const fixes = await checkWorkerHealth({

View File

@@ -124,7 +124,7 @@ export function createProjectRegisterTool() {
const repoPath = resolveRepoPath(repo);
// 3. Create provider and verify it works
const { provider, type: providerType } = createProvider({ repo });
const { provider, type: providerType } = await createProvider({ repo });
const healthy = await provider.healthCheck();
if (!healthy) {

View File

@@ -68,7 +68,7 @@ Examples:
}
const { project } = await resolveProject(workspaceDir, groupId);
const { provider, type: providerType } = resolveProvider(project);
const { provider, type: providerType } = await resolveProvider(project);
const issue = await provider.getIssue(issueId);

View File

@@ -70,7 +70,7 @@ Examples:
const workspaceDir = requireWorkspaceDir(ctx);
const { project } = await resolveProject(workspaceDir, groupId);
const { provider, type: providerType } = resolveProvider(project);
const { provider, type: providerType } = await resolveProvider(project);
const issue = await provider.createIssue(title, description, label, assignees);

View File

@@ -60,7 +60,7 @@ Examples:
const workspaceDir = requireWorkspaceDir(ctx);
const { project } = await resolveProject(workspaceDir, groupId);
const { provider, type: providerType } = resolveProvider(project);
const { provider, type: providerType } = await resolveProvider(project);
const issue = await provider.getIssue(issueId);
const currentState = provider.getCurrentStateLabel(issue);

View File

@@ -54,7 +54,7 @@ export function createWorkFinishTool(api: OpenClawPluginApi) {
const issueId = worker.issueId ? Number(worker.issueId.split(",")[0]) : null;
if (!issueId) throw new Error(`No issueId for active ${role.toUpperCase()} on ${project.name}`);
const { provider } = resolveProvider(project);
const { provider } = await resolveProvider(project);
const repoPath = resolveRepoPath(project.repo);
const issue = await provider.getIssue(issueId);

View File

@@ -42,7 +42,7 @@ export function createWorkStartTool(api: OpenClawPluginApi) {
if (!groupId) throw new Error("projectGroupId is required");
const { project } = await resolveProject(workspaceDir, groupId);
const { provider } = resolveProvider(project);
const { provider } = await resolveProvider(project);
// Find issue
let issue: { iid: number; title: string; description: string; labels: string[]; web_url: string; state: string };