54 lines
1.6 KiB
TypeScript
54 lines
1.6 KiB
TypeScript
import type { ClawdbotConfig } from "../../config/config.js";
|
|
import { writeConfigFile } from "../../config/config.js";
|
|
import { logConfigUpdated } from "../../config/logging.js";
|
|
import type { RuntimeEnv } from "../../runtime.js";
|
|
import { formatCliCommand } from "../../cli/command-format.js";
|
|
import { applyWizardMetadata } from "../onboard-helpers.js";
|
|
import type { OnboardOptions } from "../onboard-types.js";
|
|
|
|
export async function runNonInteractiveOnboardingRemote(params: {
|
|
opts: OnboardOptions;
|
|
runtime: RuntimeEnv;
|
|
baseConfig: ClawdbotConfig;
|
|
}) {
|
|
const { opts, runtime, baseConfig } = params;
|
|
const mode = "remote" as const;
|
|
|
|
const remoteUrl = opts.remoteUrl?.trim();
|
|
if (!remoteUrl) {
|
|
runtime.error("Missing --remote-url for remote mode.");
|
|
runtime.exit(1);
|
|
return;
|
|
}
|
|
|
|
let nextConfig: ClawdbotConfig = {
|
|
...baseConfig,
|
|
gateway: {
|
|
...baseConfig.gateway,
|
|
mode: "remote",
|
|
remote: {
|
|
url: remoteUrl,
|
|
token: opts.remoteToken?.trim() || undefined,
|
|
},
|
|
},
|
|
};
|
|
nextConfig = applyWizardMetadata(nextConfig, { command: "onboard", mode });
|
|
await writeConfigFile(nextConfig);
|
|
logConfigUpdated(runtime);
|
|
|
|
const payload = {
|
|
mode,
|
|
remoteUrl,
|
|
auth: opts.remoteToken ? "token" : "none",
|
|
};
|
|
if (opts.json) {
|
|
runtime.log(JSON.stringify(payload, null, 2));
|
|
} else {
|
|
runtime.log(`Remote gateway: ${remoteUrl}`);
|
|
runtime.log(`Auth: ${payload.auth}`);
|
|
runtime.log(
|
|
`Tip: run \`${formatCliCommand("clawdbot configure --section web")}\` to store your Brave API key for web_search. Docs: https://docs.clawd.bot/tools/web`,
|
|
);
|
|
}
|
|
}
|