fix: align embedded session setup with sdk

This commit is contained in:
Peter Steinberger 2026-01-31 06:22:19 +00:00
parent ded95d5c70
commit d2a852b982
3 changed files with 16 additions and 33 deletions

View file

@ -3,7 +3,6 @@ import os from "node:os";
import { import {
createAgentSession, createAgentSession,
DefaultResourceLoader,
estimateTokens, estimateTokens,
SessionManager, SessionManager,
SettingsManager, SettingsManager,
@ -384,19 +383,7 @@ export async function compactEmbeddedPiSessionDirect(
sandboxEnabled: !!sandbox?.enabled, sandboxEnabled: !!sandbox?.enabled,
}); });
let session: Awaited<ReturnType<typeof createAgentSession>>["session"]; const { session } = await createAgentSession({
const resourceLoader = new DefaultResourceLoader({
cwd: resolvedWorkspace,
agentDir,
settingsManager,
additionalExtensionPaths,
noSkills: true,
systemPromptOverride: systemPrompt,
agentsFilesOverride: () => ({ agentsFiles: [] }),
});
await resourceLoader.reload();
({ session } = await createAgentSession({
cwd: resolvedWorkspace, cwd: resolvedWorkspace,
agentDir, agentDir,
authStorage, authStorage,
@ -407,8 +394,11 @@ export async function compactEmbeddedPiSessionDirect(
customTools, customTools,
sessionManager, sessionManager,
settingsManager, settingsManager,
resourceLoader, additionalExtensionPaths,
})); skills: [],
contextFiles: [],
systemPrompt,
});
try { try {
const prior = await sanitizeSessionHistory({ const prior = await sanitizeSessionHistory({

View file

@ -4,12 +4,7 @@ import os from "node:os";
import type { AgentMessage } from "@mariozechner/pi-agent-core"; import type { AgentMessage } from "@mariozechner/pi-agent-core";
import type { AssistantMessage, ImageContent } from "@mariozechner/pi-ai"; import type { AssistantMessage, ImageContent } from "@mariozechner/pi-ai";
import { streamSimple } from "@mariozechner/pi-ai"; import { streamSimple } from "@mariozechner/pi-ai";
import { import { createAgentSession, SessionManager, SettingsManager } from "@mariozechner/pi-coding-agent";
createAgentSession,
DefaultResourceLoader,
SessionManager,
SettingsManager,
} from "@mariozechner/pi-coding-agent";
import { resolveHeartbeatPrompt } from "../../../auto-reply/heartbeat.js"; import { resolveHeartbeatPrompt } from "../../../auto-reply/heartbeat.js";
import { import {
@ -452,16 +447,6 @@ export async function runEmbeddedAttempt(
const allCustomTools = [...customTools, ...clientToolDefs]; const allCustomTools = [...customTools, ...clientToolDefs];
const resourceLoader = new DefaultResourceLoader({
cwd: resolvedWorkspace,
agentDir,
settingsManager,
additionalExtensionPaths,
noSkills: true,
systemPromptOverride: systemPrompt,
agentsFilesOverride: () => ({ agentsFiles: [] }),
});
await resourceLoader.reload();
({ session } = await createAgentSession({ ({ session } = await createAgentSession({
cwd: resolvedWorkspace, cwd: resolvedWorkspace,
agentDir, agentDir,
@ -473,7 +458,10 @@ export async function runEmbeddedAttempt(
customTools: allCustomTools, customTools: allCustomTools,
sessionManager, sessionManager,
settingsManager, settingsManager,
resourceLoader, additionalExtensionPaths,
skills: [],
contextFiles: [],
systemPrompt,
})); }));
if (!session) { if (!session) {
throw new Error("Embedded agent session missing"); throw new Error("Embedded agent session missing");

View file

@ -17,6 +17,11 @@ const modelRegistryState = {
models: [] as Array<Record<string, unknown>>, models: [] as Array<Record<string, unknown>>,
available: [] as Array<Record<string, unknown>>, available: [] as Array<Record<string, unknown>>,
}; };
const discoverAuthStorage = vi.fn().mockReturnValue({});
const discoverModels = vi.fn().mockReturnValue({
getAll: () => modelRegistryState.models,
getAvailable: () => modelRegistryState.available,
});
vi.mock("../config/config.js", () => ({ vi.mock("../config/config.js", () => ({
CONFIG_PATH: "/tmp/openclaw.json", CONFIG_PATH: "/tmp/openclaw.json",