37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
import { assertSupportedRuntime } from "../infra/runtime-guard.js";
|
|
import type { RuntimeEnv } from "../runtime.js";
|
|
import { defaultRuntime } from "../runtime.js";
|
|
import { runInteractiveOnboarding } from "./onboard-interactive.js";
|
|
import { runNonInteractiveOnboarding } from "./onboard-non-interactive.js";
|
|
import type { OnboardOptions } from "./onboard-types.js";
|
|
|
|
export async function onboardCommand(
|
|
opts: OnboardOptions,
|
|
runtime: RuntimeEnv = defaultRuntime,
|
|
) {
|
|
assertSupportedRuntime(runtime);
|
|
const authChoice =
|
|
opts.authChoice === "oauth" ? ("setup-token" as const) : opts.authChoice;
|
|
const normalizedOpts =
|
|
authChoice === opts.authChoice ? opts : { ...opts, authChoice };
|
|
|
|
if (process.platform === "win32") {
|
|
runtime.log(
|
|
[
|
|
"Windows detected.",
|
|
"WSL2 is strongly recommended; native Windows is untested and more problematic.",
|
|
"Guide: https://docs.clawd.bot/windows",
|
|
].join("\n"),
|
|
);
|
|
}
|
|
|
|
if (normalizedOpts.nonInteractive) {
|
|
await runNonInteractiveOnboarding(normalizedOpts, runtime);
|
|
return;
|
|
}
|
|
|
|
await runInteractiveOnboarding(normalizedOpts, runtime);
|
|
}
|
|
|
|
export type { OnboardOptions } from "./onboard-types.js";
|