MCPcopy Create free account
hub / github.com/MoonshotAI/kimi-code / createDefaultExportDeps

Function createDefaultExportDeps

apps/kimi-code/src/cli/sub/export.ts:131–201  ·  view source on GitHub ↗
(overrides: Partial<ExportDeps> = {})

Source from the content-addressed store, hash-verified

129}
130
131function createDefaultExportDeps(overrides: Partial<ExportDeps> = {}): ExportDeps {
132 let harness: KimiHarness | undefined;
133 let telemetryBootstrap: ReturnType<typeof createCliTelemetryBootstrap> | undefined;
134 let telemetryInitialized = false;
135 let telemetryShutdown = false;
136 const identity = createKimiCodeHostIdentity();
137 const telemetryClient: TelemetryClient = {
138 track,
139 withContext: withTelemetryContext,
140 setContext: setTelemetryContext,
141 };
142 const getTelemetryBootstrap = (): ReturnType<typeof createCliTelemetryBootstrap> => {
143 telemetryBootstrap ??= createCliTelemetryBootstrap();
144 return telemetryBootstrap;
145 };
146 const getHarness = (): KimiHarness => {
147 const currentTelemetryBootstrap = getTelemetryBootstrap();
148 harness ??= createKimiHarness({
149 homeDir: currentTelemetryBootstrap.homeDir,
150 identity,
151 telemetry: telemetryClient,
152 });
153 return harness;
154 };
155 const initializeDefaultTelemetry = async (): Promise<void> => {
156 if (telemetryInitialized) return;
157 const currentTelemetryBootstrap = getTelemetryBootstrap();
158 const currentHarness = getHarness();
159 await currentHarness.ensureConfigFile();
160 const config = await currentHarness.getConfig();
161 initializeCliTelemetry({
162 harness: currentHarness,
163 bootstrap: currentTelemetryBootstrap,
164 config,
165 version: identity.version,
166 uiMode: CLI_UI_MODE,
167 });
168 telemetryInitialized = true;
169 };
170 const shutdownDefaultTelemetry = async (): Promise<void> => {
171 if (!telemetryInitialized || telemetryShutdown) return;
172 telemetryShutdown = true;
173 await shutdownTelemetry({ timeoutMs: CLI_SHUTDOWN_TIMEOUT_MS });
174 };
175 return {
176 listSessions:
177 overrides.listSessions ??
178 ((workDir: string) =>
179 getHarness().listSessions({
180 workDir,
181 })),
182 exportSession:
183 overrides.exportSession ??
184 (async (input: ExportSessionInput) => {
185 await initializeDefaultTelemetry();
186 try {
187 return await getHarness().exportSession(input);
188 } finally {

Callers 1

registerExportCommandFunction · 0.85

Calls 9

detectInstallSourceFunction · 0.90
getHarnessFunction · 0.85
shutdownDefaultTelemetryFunction · 0.85
cwdMethod · 0.80
listSessionsMethod · 0.65
exitMethod · 0.65
exportSessionMethod · 0.45

Tested by

no test coverage detected