Spaces:
Paused
Paused
| import type { OpenClawConfig } from "../config/config.js"; | |
| import type { EmbeddedContextFile } from "./pi-embedded-helpers.js"; | |
| import { applyBootstrapHookOverrides } from "./bootstrap-hooks.js"; | |
| import { buildBootstrapContextFiles, resolveBootstrapMaxChars } from "./pi-embedded-helpers.js"; | |
| import { | |
| filterBootstrapFilesForSession, | |
| loadWorkspaceBootstrapFiles, | |
| type WorkspaceBootstrapFile, | |
| } from "./workspace.js"; | |
| export function makeBootstrapWarn(params: { | |
| sessionLabel: string; | |
| warn?: (message: string) => void; | |
| }): ((message: string) => void) | undefined { | |
| if (!params.warn) { | |
| return undefined; | |
| } | |
| return (message: string) => params.warn?.(`${message} (sessionKey=${params.sessionLabel})`); | |
| } | |
| export async function resolveBootstrapFilesForRun(params: { | |
| workspaceDir: string; | |
| config?: OpenClawConfig; | |
| sessionKey?: string; | |
| sessionId?: string; | |
| agentId?: string; | |
| }): Promise<WorkspaceBootstrapFile[]> { | |
| const sessionKey = params.sessionKey ?? params.sessionId; | |
| const bootstrapFiles = filterBootstrapFilesForSession( | |
| await loadWorkspaceBootstrapFiles(params.workspaceDir), | |
| sessionKey, | |
| ); | |
| return applyBootstrapHookOverrides({ | |
| files: bootstrapFiles, | |
| workspaceDir: params.workspaceDir, | |
| config: params.config, | |
| sessionKey: params.sessionKey, | |
| sessionId: params.sessionId, | |
| agentId: params.agentId, | |
| }); | |
| } | |
| export async function resolveBootstrapContextForRun(params: { | |
| workspaceDir: string; | |
| config?: OpenClawConfig; | |
| sessionKey?: string; | |
| sessionId?: string; | |
| agentId?: string; | |
| warn?: (message: string) => void; | |
| }): Promise<{ | |
| bootstrapFiles: WorkspaceBootstrapFile[]; | |
| contextFiles: EmbeddedContextFile[]; | |
| }> { | |
| const bootstrapFiles = await resolveBootstrapFilesForRun(params); | |
| const contextFiles = buildBootstrapContextFiles(bootstrapFiles, { | |
| maxChars: resolveBootstrapMaxChars(params.config), | |
| warn: params.warn, | |
| }); | |
| return { bootstrapFiles, contextFiles }; | |
| } | |