fix: resolve agent dir in onboarding

This commit is contained in:
Peter Steinberger
2026-01-05 07:12:13 +01:00
parent 17ef7b3b0e
commit 9be1a14a08
5 changed files with 19 additions and 11 deletions

View File

@@ -1,11 +1,9 @@
import fs from "node:fs/promises";
import os from "node:os";
import path from "node:path";
import { describe, expect, it, vi } from "vitest";
import type { Api, Model } from "@mariozechner/pi-ai";
import { discoverAuthStorage } from "@mariozechner/pi-coding-agent";
import { describe, expect, it, vi } from "vitest";
const oauthFixture = {
access: "access-token",
@@ -17,9 +15,7 @@ const oauthFixture = {
describe("getApiKeyForModel", () => {
it("migrates legacy oauth.json into auth.json", async () => {
const previousStateDir = process.env.CLAWDBOT_STATE_DIR;
const tempDir = await fs.mkdtemp(
path.join(os.tmpdir(), "clawdbot-oauth-"),
);
const tempDir = await fs.mkdtemp(path.join(os.tmpdir(), "clawdbot-oauth-"));
try {
process.env.CLAWDBOT_STATE_DIR = tempDir;

View File

@@ -98,9 +98,15 @@ export function ensureOAuthStorage(): void {
importLegacyOAuthIfNeeded(oauthPath);
}
function isValidOAuthCredential(entry: OAuthCredentials | undefined): entry is OAuthCredentials {
function isValidOAuthCredential(
entry: OAuthCredentials | undefined,
): entry is OAuthCredentials {
if (!entry) return false;
return Boolean(entry.access?.trim() && entry.refresh?.trim() && Number.isFinite(entry.expires));
return Boolean(
entry.access?.trim() &&
entry.refresh?.trim() &&
Number.isFinite(entry.expires),
);
}
function migrateOAuthStorageToAuthStorage(

View File

@@ -798,8 +798,11 @@ describe("trigger handling", () => {
workspaceDir: cfg.agent.workspace,
});
expect(sandbox).not.toBeNull();
if (!sandbox) {
throw new Error("Expected sandbox to be set");
}
const stagedFullPath = join(
sandbox!.workspaceDir,
sandbox.workspaceDir,
"media",
"inbound",
basename(mediaPath),

View File

@@ -14,8 +14,8 @@ import {
} from "../agents/usage.js";
import type { ClawdbotConfig } from "../config/config.js";
import {
resolveSessionTranscriptPath,
resolveMainSessionKey,
resolveSessionTranscriptPath,
type SessionEntry,
type SessionScope,
} from "../config/sessions.js";
@@ -167,7 +167,9 @@ export function buildStatusMessage(args: StatusArgs): string {
args.resolvedVerbose ?? args.agent?.verboseDefault ?? "off";
const elevatedLevel =
args.resolvedElevated ??
args.sessionEntry?.elevatedLevel ?? args.agent?.elevatedDefault ?? "on";
args.sessionEntry?.elevatedLevel ??
args.agent?.elevatedDefault ??
"on";
const runtime = (() => {
const sandboxMode = args.agent?.sandbox?.mode ?? "off";

View File

@@ -2,6 +2,7 @@ import path from "node:path";
import { loginAnthropic, type OAuthCredentials } from "@mariozechner/pi-ai";
import { discoverAuthStorage } from "@mariozechner/pi-coding-agent";
import { resolveClawdbotAgentDir } from "../agents/agent-paths.js";
import {
isRemoteEnvironment,
loginAntigravityVpsAware,