mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 08:10:44 +00:00
perf(commands): narrow agent config imports
This commit is contained in:
@@ -14,14 +14,11 @@ import { resolveCommandConfigWithSecrets } from "../cli/command-config-resolutio
|
||||
import { formatCliCommand } from "../cli/command-format.js";
|
||||
import { getAgentRuntimeCommandSecretTargetIds } from "../cli/command-secret-targets.js";
|
||||
import { type CliDeps, createDefaultDeps } from "../cli/deps.js";
|
||||
import {
|
||||
loadConfig,
|
||||
readConfigFileSnapshotForWrite,
|
||||
setRuntimeConfigSnapshot,
|
||||
type OpenClawConfig,
|
||||
} from "../config/config.js";
|
||||
import { resolveAgentIdFromSessionKey, type SessionEntry } from "../config/sessions.js";
|
||||
import { loadConfig, readConfigFileSnapshotForWrite } from "../config/io.js";
|
||||
import { setRuntimeConfigSnapshot } from "../config/runtime-snapshot.js";
|
||||
import { resolveSessionTranscriptFile } from "../config/sessions/transcript.js";
|
||||
import type { SessionEntry } from "../config/sessions/types.js";
|
||||
import type { OpenClawConfig } from "../config/types.openclaw.js";
|
||||
import {
|
||||
clearAgentRunContext,
|
||||
emitAgentEvent,
|
||||
@@ -32,6 +29,7 @@ import { buildOutboundSessionContext } from "../infra/outbound/session-context.j
|
||||
import { getRemoteSkillEligibility } from "../infra/skills-remote.js";
|
||||
import { createSubsystemLogger } from "../logging/subsystem.js";
|
||||
import { normalizeAgentId } from "../routing/session-key.js";
|
||||
import { resolveAgentIdFromSessionKey } from "../routing/session-key.js";
|
||||
import { defaultRuntime, type RuntimeEnv } from "../runtime.js";
|
||||
import { applyVerboseOverride } from "../sessions/level-overrides.js";
|
||||
import { applyModelOverrideToSessionEntry } from "../sessions/model-overrides.js";
|
||||
|
||||
@@ -3,9 +3,10 @@ import { __testing as acpManagerTesting } from "../acp/control-plane/manager.js"
|
||||
import { loadModelCatalog } from "../agents/model-catalog.js";
|
||||
import * as modelSelectionModule from "../agents/model-selection.js";
|
||||
import { runEmbeddedPiAgent } from "../agents/pi-embedded.js";
|
||||
import type { OpenClawConfig } from "../config/config.js";
|
||||
import * as configModule from "../config/config.js";
|
||||
import * as configIoModule from "../config/io.js";
|
||||
import * as runtimeSnapshotModule from "../config/runtime-snapshot.js";
|
||||
import { clearSessionStoreCacheForTest } from "../config/sessions/store.js";
|
||||
import type { OpenClawConfig } from "../config/types.openclaw.js";
|
||||
import { resetAgentEventsForTest, resetAgentRunContextForTest } from "../infra/agent-events.js";
|
||||
import { resetPluginRuntimeStateForTest } from "../plugins/runtime.js";
|
||||
import type { RuntimeEnv } from "../runtime.js";
|
||||
@@ -62,7 +63,7 @@ export function mockSharedAgentCommandConfig(
|
||||
}
|
||||
|
||||
export function resetSharedAgentCommandRuntimeState(
|
||||
readConfigFileSnapshotForWriteSpy: typeof configModule.readConfigFileSnapshotForWrite,
|
||||
readConfigFileSnapshotForWriteSpy: typeof configIoModule.readConfigFileSnapshotForWrite,
|
||||
) {
|
||||
vi.clearAllMocks();
|
||||
clearSessionStoreCacheForTest();
|
||||
@@ -70,12 +71,12 @@ export function resetSharedAgentCommandRuntimeState(
|
||||
resetAgentRunContextForTest();
|
||||
resetPluginRuntimeStateForTest();
|
||||
acpManagerTesting.resetAcpSessionManagerForTests();
|
||||
configModule.clearRuntimeConfigSnapshot();
|
||||
runtimeSnapshotModule.clearRuntimeConfigSnapshot();
|
||||
vi.mocked(runEmbeddedPiAgent).mockResolvedValue(createDefaultAgentCommandResult());
|
||||
vi.mocked(loadModelCatalog).mockResolvedValue([]);
|
||||
vi.mocked(modelSelectionModule.isCliProvider).mockImplementation(() => false);
|
||||
vi.mocked(readConfigFileSnapshotForWriteSpy).mockResolvedValue({
|
||||
snapshot: { valid: false, resolved: {} as OpenClawConfig },
|
||||
writeOptions: {},
|
||||
} as Awaited<ReturnType<typeof configModule.readConfigFileSnapshotForWrite>>);
|
||||
} as Awaited<ReturnType<typeof configIoModule.readConfigFileSnapshotForWrite>>);
|
||||
}
|
||||
|
||||
@@ -5,14 +5,14 @@ import { withTempHome as withTempHomeBase } from "../../test/helpers/temp-home.j
|
||||
import * as acpManagerModule from "../acp/control-plane/manager.js";
|
||||
import { AcpRuntimeError } from "../acp/runtime/errors.js";
|
||||
import * as embeddedModule from "../agents/pi-embedded.js";
|
||||
import type { OpenClawConfig } from "../config/config.js";
|
||||
import * as configModule from "../config/config.js";
|
||||
import * as configIoModule from "../config/io.js";
|
||||
import type { OpenClawConfig } from "../config/types.openclaw.js";
|
||||
import { readSessionMessages } from "../gateway/session-utils.fs.js";
|
||||
import { onAgentEvent } from "../infra/agent-events.js";
|
||||
import type { RuntimeEnv } from "../runtime.js";
|
||||
import { agentCommand } from "./agent.js";
|
||||
|
||||
const loadConfigSpy = vi.spyOn(configModule, "loadConfig");
|
||||
const loadConfigSpy = vi.spyOn(configIoModule, "loadConfig");
|
||||
const runEmbeddedPiAgentSpy = vi.spyOn(embeddedModule, "runEmbeddedPiAgent");
|
||||
const getAcpSessionManagerSpy = vi.spyOn(acpManagerModule, "getAcpSessionManager");
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import { FailoverError } from "../agents/failover-error.js";
|
||||
import { loadModelCatalog } from "../agents/model-catalog.js";
|
||||
import * as modelSelectionModule from "../agents/model-selection.js";
|
||||
import { runEmbeddedPiAgent } from "../agents/pi-embedded.js";
|
||||
import * as configModule from "../config/config.js";
|
||||
import * as configIoModule from "../config/io.js";
|
||||
import { createDefaultAgentCommandResult } from "./agent-command.test-support.js";
|
||||
import {
|
||||
mockSharedAgentCommandConfig,
|
||||
@@ -18,8 +18,11 @@ import {
|
||||
} from "./agent-runtime-config.test-support.js";
|
||||
import { agentCommand } from "./agent.js";
|
||||
|
||||
const configSpy = vi.spyOn(configModule, "loadConfig");
|
||||
const readConfigFileSnapshotForWriteSpy = vi.spyOn(configModule, "readConfigFileSnapshotForWrite");
|
||||
const configSpy = vi.spyOn(configIoModule, "loadConfig");
|
||||
const readConfigFileSnapshotForWriteSpy = vi.spyOn(
|
||||
configIoModule,
|
||||
"readConfigFileSnapshotForWrite",
|
||||
);
|
||||
const runCliAgentSpy = vi.spyOn(cliRunnerModule, "runCliAgent");
|
||||
|
||||
async function withTempHome<T>(fn: (home: string) => Promise<T>): Promise<T> {
|
||||
|
||||
@@ -5,8 +5,9 @@ import "../cron/isolated-agent.mocks.js";
|
||||
import { __testing as agentCommandTesting } from "../agents/agent-command.js";
|
||||
import { resolveSession } from "../agents/command/session.js";
|
||||
import * as commandConfigResolutionModule from "../cli/command-config-resolution.js";
|
||||
import type { OpenClawConfig } from "../config/config.js";
|
||||
import * as configModule from "../config/config.js";
|
||||
import * as configIoModule from "../config/io.js";
|
||||
import * as runtimeSnapshotModule from "../config/runtime-snapshot.js";
|
||||
import type { OpenClawConfig } from "../config/types.openclaw.js";
|
||||
import {
|
||||
mockSharedAgentCommandConfig,
|
||||
resetSharedAgentCommandRuntimeState,
|
||||
@@ -20,8 +21,11 @@ vi.mock("../agents/command/session-store.js", () => {
|
||||
};
|
||||
});
|
||||
|
||||
const configSpy = vi.spyOn(configModule, "loadConfig");
|
||||
const readConfigFileSnapshotForWriteSpy = vi.spyOn(configModule, "readConfigFileSnapshotForWrite");
|
||||
const configSpy = vi.spyOn(configIoModule, "loadConfig");
|
||||
const readConfigFileSnapshotForWriteSpy = vi.spyOn(
|
||||
configIoModule,
|
||||
"readConfigFileSnapshotForWrite",
|
||||
);
|
||||
|
||||
async function withTempHome<T>(fn: (home: string) => Promise<T>): Promise<T> {
|
||||
return withSharedAgentCommandTempHome("openclaw-agent-", fn);
|
||||
@@ -42,7 +46,10 @@ beforeEach(() => {
|
||||
describe("agentCommand runtime config", () => {
|
||||
it("sets runtime snapshots from source config before embedded agent run", async () => {
|
||||
await withTempHome(async (home) => {
|
||||
const setRuntimeConfigSnapshotSpy = vi.spyOn(configModule, "setRuntimeConfigSnapshot");
|
||||
const setRuntimeConfigSnapshotSpy = vi.spyOn(
|
||||
runtimeSnapshotModule,
|
||||
"setRuntimeConfigSnapshot",
|
||||
);
|
||||
|
||||
const store = path.join(home, "sessions.json");
|
||||
const loadedConfig = {
|
||||
@@ -93,7 +100,7 @@ describe("agentCommand runtime config", () => {
|
||||
readConfigFileSnapshotForWriteSpy.mockResolvedValue({
|
||||
snapshot: { valid: true, resolved: sourceConfig },
|
||||
writeOptions: {},
|
||||
} as Awaited<ReturnType<typeof configModule.readConfigFileSnapshotForWrite>>);
|
||||
} as Awaited<ReturnType<typeof configIoModule.readConfigFileSnapshotForWrite>>);
|
||||
const resolveConfigWithSecretsSpy = vi
|
||||
.spyOn(commandConfigResolutionModule, "resolveCommandConfigWithSecrets")
|
||||
.mockResolvedValueOnce({
|
||||
|
||||
@@ -12,10 +12,11 @@ import { resolveSession } from "../agents/command/session.js";
|
||||
import { loadModelCatalog } from "../agents/model-catalog.js";
|
||||
import * as modelSelectionModule from "../agents/model-selection.js";
|
||||
import { runEmbeddedPiAgent } from "../agents/pi-embedded.js";
|
||||
import type { OpenClawConfig } from "../config/config.js";
|
||||
import * as configModule from "../config/config.js";
|
||||
import * as configIoModule from "../config/io.js";
|
||||
import * as runtimeSnapshotModule from "../config/runtime-snapshot.js";
|
||||
import * as sessionPathsModule from "../config/sessions/paths.js";
|
||||
import { clearSessionStoreCacheForTest } from "../config/sessions/store.js";
|
||||
import type { OpenClawConfig } from "../config/types.openclaw.js";
|
||||
import {
|
||||
emitAgentEvent,
|
||||
onAgentEvent,
|
||||
@@ -64,8 +65,11 @@ const runtime: RuntimeEnv = {
|
||||
}),
|
||||
};
|
||||
|
||||
const configSpy = vi.spyOn(configModule, "loadConfig");
|
||||
const readConfigFileSnapshotForWriteSpy = vi.spyOn(configModule, "readConfigFileSnapshotForWrite");
|
||||
const configSpy = vi.spyOn(configIoModule, "loadConfig");
|
||||
const readConfigFileSnapshotForWriteSpy = vi.spyOn(
|
||||
configIoModule,
|
||||
"readConfigFileSnapshotForWrite",
|
||||
);
|
||||
|
||||
async function withTempHome<T>(fn: (home: string) => Promise<T>): Promise<T> {
|
||||
return withTempHomeBase(fn, { prefix: "openclaw-agent-" });
|
||||
@@ -267,14 +271,14 @@ beforeEach(() => {
|
||||
resetAgentRunContextForTest();
|
||||
resetPluginRuntimeStateForTest();
|
||||
acpManagerTesting.resetAcpSessionManagerForTests();
|
||||
configModule.clearRuntimeConfigSnapshot();
|
||||
runtimeSnapshotModule.clearRuntimeConfigSnapshot();
|
||||
vi.mocked(runEmbeddedPiAgent).mockResolvedValue(createDefaultAgentResult());
|
||||
vi.mocked(loadModelCatalog).mockResolvedValue([]);
|
||||
vi.mocked(modelSelectionModule.isCliProvider).mockImplementation(() => false);
|
||||
readConfigFileSnapshotForWriteSpy.mockResolvedValue({
|
||||
snapshot: { valid: false, resolved: {} as OpenClawConfig },
|
||||
writeOptions: {},
|
||||
} as Awaited<ReturnType<typeof configModule.readConfigFileSnapshotForWrite>>);
|
||||
} as Awaited<ReturnType<typeof configIoModule.readConfigFileSnapshotForWrite>>);
|
||||
});
|
||||
|
||||
describe("agentCommand", () => {
|
||||
|
||||
Reference in New Issue
Block a user