@@ -23,6 +23,7 @@ import { defaultRuntime, type RuntimeEnv } from "../runtime.js";
2323import { applyVerboseOverride } from "../sessions/level-overrides.js" ;
2424import { applyModelOverrideToSessionEntry } from "../sessions/model-overrides.js" ;
2525import { resolveSendPolicy } from "../sessions/send-policy.js" ;
26+ import { createLazyImportLoader } from "../shared/lazy-promise.js" ;
2627import { normalizeOptionalString } from "../shared/string-coerce.js" ;
2728import { sanitizeForLog } from "../terminal/ansi.js" ;
2829import { createTrajectoryRuntimeRecorder } from "../trajectory/runtime.js" ;
@@ -87,95 +88,106 @@ type SkillsFilterRuntime = typeof import("./skills/filter.js");
8788type SkillsRefreshStateRuntime = typeof import ( "./skills/refresh-state.js" ) ;
8889type SkillsRemoteRuntime = typeof import ( "../infra/skills-remote.js" ) ;
8990
90- let attemptExecutionRuntimePromise : Promise < AttemptExecutionRuntime > | undefined ;
91- let acpManagerRuntimePromise : Promise < AcpManagerRuntime > | undefined ;
92- let acpPolicyRuntimePromise : Promise < AcpPolicyRuntime > | undefined ;
93- let acpRuntimeErrorsRuntimePromise : Promise < AcpRuntimeErrorsRuntime > | undefined ;
94- let acpSessionIdentifiersRuntimePromise : Promise < AcpSessionIdentifiersRuntime > | undefined ;
95- let deliveryRuntimePromise : Promise < DeliveryRuntime > | undefined ;
96- let sessionStoreRuntimePromise : Promise < SessionStoreRuntime > | undefined ;
97- let cliCompactionRuntimePromise : Promise < CliCompactionRuntime > | undefined ;
98- let transcriptResolveRuntimePromise : Promise < TranscriptResolveRuntime > | undefined ;
99- let cliDepsRuntimePromise : Promise < CliDepsRuntime > | undefined ;
100- let execDefaultsRuntimePromise : Promise < ExecDefaultsRuntime > | undefined ;
101- let skillsRuntimePromise : Promise < SkillsRuntime > | undefined ;
102- let skillsFilterRuntimePromise : Promise < SkillsFilterRuntime > | undefined ;
103- let skillsRefreshStateRuntimePromise : Promise < SkillsRefreshStateRuntime > | undefined ;
104- let skillsRemoteRuntimePromise : Promise < SkillsRemoteRuntime > | undefined ;
91+ const attemptExecutionRuntimeLoader = createLazyImportLoader < AttemptExecutionRuntime > (
92+ ( ) => import ( "./command/attempt-execution.runtime.js" ) ,
93+ ) ;
94+ const acpManagerRuntimeLoader = createLazyImportLoader < AcpManagerRuntime > (
95+ ( ) => import ( "../acp/control-plane/manager.js" ) ,
96+ ) ;
97+ const acpPolicyRuntimeLoader = createLazyImportLoader < AcpPolicyRuntime > (
98+ ( ) => import ( "../acp/policy.js" ) ,
99+ ) ;
100+ const acpRuntimeErrorsRuntimeLoader = createLazyImportLoader < AcpRuntimeErrorsRuntime > (
101+ ( ) => import ( "../acp/runtime/errors.js" ) ,
102+ ) ;
103+ const acpSessionIdentifiersRuntimeLoader = createLazyImportLoader < AcpSessionIdentifiersRuntime > (
104+ ( ) => import ( "../acp/runtime/session-identifiers.js" ) ,
105+ ) ;
106+ const deliveryRuntimeLoader = createLazyImportLoader < DeliveryRuntime > (
107+ ( ) => import ( "./command/delivery.runtime.js" ) ,
108+ ) ;
109+ const sessionStoreRuntimeLoader = createLazyImportLoader < SessionStoreRuntime > (
110+ ( ) => import ( "./command/session-store.runtime.js" ) ,
111+ ) ;
112+ const cliCompactionRuntimeLoader = createLazyImportLoader < CliCompactionRuntime > (
113+ ( ) => import ( "./command/cli-compaction.js" ) ,
114+ ) ;
115+ const transcriptResolveRuntimeLoader = createLazyImportLoader < TranscriptResolveRuntime > (
116+ ( ) => import ( "../config/sessions/transcript-resolve.runtime.js" ) ,
117+ ) ;
118+ const cliDepsRuntimeLoader = createLazyImportLoader < CliDepsRuntime > ( ( ) => import ( "../cli/deps.js" ) ) ;
119+ const execDefaultsRuntimeLoader = createLazyImportLoader < ExecDefaultsRuntime > (
120+ ( ) => import ( "./exec-defaults.js" ) ,
121+ ) ;
122+ const skillsRuntimeLoader = createLazyImportLoader < SkillsRuntime > ( ( ) => import ( "./skills.js" ) ) ;
123+ const skillsFilterRuntimeLoader = createLazyImportLoader < SkillsFilterRuntime > (
124+ ( ) => import ( "./skills/filter.js" ) ,
125+ ) ;
126+ const skillsRefreshStateRuntimeLoader = createLazyImportLoader < SkillsRefreshStateRuntime > (
127+ ( ) => import ( "./skills/refresh-state.js" ) ,
128+ ) ;
129+ const skillsRemoteRuntimeLoader = createLazyImportLoader < SkillsRemoteRuntime > (
130+ ( ) => import ( "../infra/skills-remote.js" ) ,
131+ ) ;
105132
106133function loadAttemptExecutionRuntime ( ) : Promise < AttemptExecutionRuntime > {
107- attemptExecutionRuntimePromise ??= import ( "./command/attempt-execution.runtime.js" ) ;
108- return attemptExecutionRuntimePromise ;
134+ return attemptExecutionRuntimeLoader . load ( ) ;
109135}
110136
111137function loadAcpManagerRuntime ( ) : Promise < AcpManagerRuntime > {
112- acpManagerRuntimePromise ??= import ( "../acp/control-plane/manager.js" ) ;
113- return acpManagerRuntimePromise ;
138+ return acpManagerRuntimeLoader . load ( ) ;
114139}
115140
116141function loadAcpPolicyRuntime ( ) : Promise < AcpPolicyRuntime > {
117- acpPolicyRuntimePromise ??= import ( "../acp/policy.js" ) ;
118- return acpPolicyRuntimePromise ;
142+ return acpPolicyRuntimeLoader . load ( ) ;
119143}
120144
121145function loadAcpRuntimeErrorsRuntime ( ) : Promise < AcpRuntimeErrorsRuntime > {
122- acpRuntimeErrorsRuntimePromise ??= import ( "../acp/runtime/errors.js" ) ;
123- return acpRuntimeErrorsRuntimePromise ;
146+ return acpRuntimeErrorsRuntimeLoader . load ( ) ;
124147}
125148
126149function loadAcpSessionIdentifiersRuntime ( ) : Promise < AcpSessionIdentifiersRuntime > {
127- acpSessionIdentifiersRuntimePromise ??= import ( "../acp/runtime/session-identifiers.js" ) ;
128- return acpSessionIdentifiersRuntimePromise ;
150+ return acpSessionIdentifiersRuntimeLoader . load ( ) ;
129151}
130152
131153function loadDeliveryRuntime ( ) : Promise < DeliveryRuntime > {
132- deliveryRuntimePromise ??= import ( "./command/delivery.runtime.js" ) ;
133- return deliveryRuntimePromise ;
154+ return deliveryRuntimeLoader . load ( ) ;
134155}
135156
136157function loadSessionStoreRuntime ( ) : Promise < SessionStoreRuntime > {
137- sessionStoreRuntimePromise ??= import ( "./command/session-store.runtime.js" ) ;
138- return sessionStoreRuntimePromise ;
158+ return sessionStoreRuntimeLoader . load ( ) ;
139159}
140160
141161function loadCliCompactionRuntime ( ) : Promise < CliCompactionRuntime > {
142- cliCompactionRuntimePromise ??= import ( "./command/cli-compaction.js" ) ;
143- return cliCompactionRuntimePromise ;
162+ return cliCompactionRuntimeLoader . load ( ) ;
144163}
145164
146165function loadTranscriptResolveRuntime ( ) : Promise < TranscriptResolveRuntime > {
147- transcriptResolveRuntimePromise ??= import ( "../config/sessions/transcript-resolve.runtime.js" ) ;
148- return transcriptResolveRuntimePromise ;
166+ return transcriptResolveRuntimeLoader . load ( ) ;
149167}
150168
151169function loadCliDepsRuntime ( ) : Promise < CliDepsRuntime > {
152- cliDepsRuntimePromise ??= import ( "../cli/deps.js" ) ;
153- return cliDepsRuntimePromise ;
170+ return cliDepsRuntimeLoader . load ( ) ;
154171}
155172
156173function loadExecDefaultsRuntime ( ) : Promise < ExecDefaultsRuntime > {
157- execDefaultsRuntimePromise ??= import ( "./exec-defaults.js" ) ;
158- return execDefaultsRuntimePromise ;
174+ return execDefaultsRuntimeLoader . load ( ) ;
159175}
160176
161177function loadSkillsRuntime ( ) : Promise < SkillsRuntime > {
162- skillsRuntimePromise ??= import ( "./skills.js" ) ;
163- return skillsRuntimePromise ;
178+ return skillsRuntimeLoader . load ( ) ;
164179}
165180
166181function loadSkillsFilterRuntime ( ) : Promise < SkillsFilterRuntime > {
167- skillsFilterRuntimePromise ??= import ( "./skills/filter.js" ) ;
168- return skillsFilterRuntimePromise ;
182+ return skillsFilterRuntimeLoader . load ( ) ;
169183}
170184
171185function loadSkillsRefreshStateRuntime ( ) : Promise < SkillsRefreshStateRuntime > {
172- skillsRefreshStateRuntimePromise ??= import ( "./skills/refresh-state.js" ) ;
173- return skillsRefreshStateRuntimePromise ;
186+ return skillsRefreshStateRuntimeLoader . load ( ) ;
174187}
175188
176189function loadSkillsRemoteRuntime ( ) : Promise < SkillsRemoteRuntime > {
177- skillsRemoteRuntimePromise ??= import ( "../infra/skills-remote.js" ) ;
178- return skillsRemoteRuntimePromise ;
190+ return skillsRemoteRuntimeLoader . load ( ) ;
179191}
180192
181193async function resolveAgentCommandDeps ( deps : CliDeps | undefined ) : Promise < CliDeps > {
0 commit comments