import { resolveAgentDir, resolveAgentWorkspaceDir } from "../../agents/agent-scope.js" ;
import { DEFAULT_MODEL, DEFAULT_PROVIDER } from "../../agents/defaults.js" ;
import { resolveAgentIdentity } from "../../agents/identity.js" ;
import { resolveThinkingDefault } from "../../agents/model-selection.js" ;
import { resolveAgentTimeoutMs } from "../../agents/timeout.js" ;
import { ensureAgentWorkspace } from "../../agents/workspace.js" ;
import { resolveSessionFilePath, resolveStorePath } from "../../config/sessions/paths.js" ;
import { loadSessionStore, saveSessionStore } from "../../config/sessions/store.js" ;
import { createLazyRuntimeMethod, createLazyRuntimeModule } from "../../shared/lazy-runtime.js" ;
import { defineCachedValue } from "./runtime-cache.js" ;
import type { PluginRuntime } from "./types.js" ;
const loadEmbeddedPiRuntime = createLazyRuntimeModule(
() => import ("./runtime-embedded-pi.runtime.js" ),
);
export function createRuntimeAgent(): PluginRuntime["agent" ] {
const agentRuntime = {
defaults: {
model: DEFAULT_MODEL,
provider: DEFAULT_PROVIDER,
},
resolveAgentDir,
resolveAgentWorkspaceDir,
resolveAgentIdentity,
resolveThinkingDefault,
resolveAgentTimeoutMs,
ensureAgentWorkspace,
} satisfies Omit<PluginRuntime["agent" ], "runEmbeddedAgent" | "runEmbeddedPiAgent" | "session" > &
Partial<Pick<PluginRuntime["agent" ], "runEmbeddedAgent" | "runEmbeddedPiAgent" | "session" >>;
defineCachedValue(agentRuntime, "runEmbeddedAgent" , () =>
createLazyRuntimeMethod(loadEmbeddedPiRuntime, (runtime) => runtime.runEmbeddedAgent),
);
defineCachedValue(agentRuntime, "runEmbeddedPiAgent" , () =>
createLazyRuntimeMethod(loadEmbeddedPiRuntime, (runtime) => runtime.runEmbeddedPiAgent),
);
defineCachedValue(agentRuntime, "session" , () => ({
resolveStorePath,
loadSessionStore,
saveSessionStore,
resolveSessionFilePath,
}));
return agentRuntime as PluginRuntime["agent" ];
}
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-10)
¤
*© Formatika GbR, Deutschland