chore: update molt.bot domains
This commit is contained in:
@@ -83,6 +83,26 @@ describe("lobster plugin tool", () => {
|
||||
expect(res.details).toMatchObject({ ok: true, status: "ok" });
|
||||
});
|
||||
|
||||
it("tolerates noisy stdout before the JSON envelope", async () => {
|
||||
const payload = { ok: true, status: "ok", output: [], requiresApproval: null };
|
||||
const { binPath } = await writeFakeLobsterScript(
|
||||
`const payload = ${JSON.stringify(payload)};\n` +
|
||||
`console.log("noise before json");\n` +
|
||||
`process.stdout.write(JSON.stringify(payload));\n`,
|
||||
"clawdbot-lobster-plugin-noisy-",
|
||||
);
|
||||
|
||||
const tool = createLobsterTool(fakeApi());
|
||||
const res = await tool.execute("call-noisy", {
|
||||
action: "run",
|
||||
pipeline: "noop",
|
||||
lobsterPath: binPath,
|
||||
timeoutMs: 1000,
|
||||
});
|
||||
|
||||
expect(res.details).toMatchObject({ ok: true, status: "ok" });
|
||||
});
|
||||
|
||||
it("requires absolute lobsterPath when provided", async () => {
|
||||
const tool = createLobsterTool(fakeApi());
|
||||
await expect(
|
||||
|
||||
@@ -131,10 +131,28 @@ async function runLobsterSubprocess(params: {
|
||||
}
|
||||
|
||||
function parseEnvelope(stdout: string): LobsterEnvelope {
|
||||
let parsed: unknown;
|
||||
try {
|
||||
parsed = JSON.parse(stdout);
|
||||
} catch {
|
||||
const trimmed = stdout.trim();
|
||||
|
||||
const tryParse = (input: string) => {
|
||||
try {
|
||||
return JSON.parse(input) as unknown;
|
||||
} catch {
|
||||
return undefined;
|
||||
}
|
||||
};
|
||||
|
||||
let parsed: unknown = tryParse(trimmed);
|
||||
|
||||
// Some environments can leak extra stdout (e.g. warnings/logs) before the
|
||||
// final JSON envelope. Be tolerant and parse the last JSON-looking suffix.
|
||||
if (parsed === undefined) {
|
||||
const suffixMatch = trimmed.match(/({[\s\S]*}|\[[\s\S]*])\s*$/);
|
||||
if (suffixMatch?.[1]) {
|
||||
parsed = tryParse(suffixMatch[1]);
|
||||
}
|
||||
}
|
||||
|
||||
if (parsed === undefined) {
|
||||
throw new Error("lobster returned invalid JSON");
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ async function noteMattermostSetup(prompter: WizardPrompter): Promise<void> {
|
||||
"2) Create a bot + copy its token",
|
||||
"3) Use your server base URL (e.g., https://chat.example.com)",
|
||||
"Tip: the bot must be a member of any channel you want it to monitor.",
|
||||
"Docs: https://docs.clawd.bot/channels/mattermost",
|
||||
"Docs: https://docs.molt.bot/channels/mattermost",
|
||||
].join("\n"),
|
||||
"Mattermost bot token",
|
||||
);
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
|
||||
Tlon/Urbit channel plugin for Clawdbot. Supports DMs, group mentions, and thread replies.
|
||||
|
||||
Docs: https://docs.clawd.bot/channels/tlon
|
||||
Docs: https://docs.molt.bot/channels/tlon
|
||||
|
||||
@@ -80,7 +80,7 @@ Multi-account config (advanced):
|
||||
|
||||
## Full documentation
|
||||
|
||||
See https://docs.clawd.bot/channels/twitch for:
|
||||
See https://docs.molt.bot/channels/twitch for:
|
||||
|
||||
- Token refresh setup
|
||||
- Access control patterns
|
||||
|
||||
@@ -8,8 +8,8 @@ Providers:
|
||||
- **Plivo** (Voice API + XML transfer + GetInput speech)
|
||||
- **Mock** (dev/no network)
|
||||
|
||||
Docs: `https://docs.clawd.bot/plugins/voice-call`
|
||||
Plugin system: `https://docs.clawd.bot/plugin`
|
||||
Docs: `https://docs.molt.bot/plugins/voice-call`
|
||||
Plugin system: `https://docs.molt.bot/plugin`
|
||||
|
||||
## Install (local dev)
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ export function registerVoiceCallCli(params: {
|
||||
const root = program
|
||||
.command("voicecall")
|
||||
.description("Voice call utilities")
|
||||
.addHelpText("after", () => `\nDocs: https://docs.clawd.bot/cli/voicecall\n`);
|
||||
.addHelpText("after", () => `\nDocs: https://docs.molt.bot/cli/voicecall\n`);
|
||||
|
||||
root
|
||||
.command("call")
|
||||
|
||||
@@ -88,7 +88,7 @@ function findPackageRoot(startDir: string, name: string): string | null {
|
||||
|
||||
function resolveClawdbotRoot(): string {
|
||||
if (coreRootCache) return coreRootCache;
|
||||
const override = process.env.CLAWDBOT_ROOT?.trim();
|
||||
const override = process.env.MOLTBOT_ROOT?.trim() || process.env.CLAWDBOT_ROOT?.trim();
|
||||
if (override) {
|
||||
coreRootCache = override;
|
||||
return override;
|
||||
@@ -107,15 +107,17 @@ function resolveClawdbotRoot(): string {
|
||||
}
|
||||
|
||||
for (const start of candidates) {
|
||||
const found = findPackageRoot(start, "clawdbot");
|
||||
if (found) {
|
||||
coreRootCache = found;
|
||||
return found;
|
||||
for (const name of ["moltbot", "clawdbot"]) {
|
||||
const found = findPackageRoot(start, name);
|
||||
if (found) {
|
||||
coreRootCache = found;
|
||||
return found;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
throw new Error(
|
||||
"Unable to resolve Clawdbot root. Set CLAWDBOT_ROOT to the package root.",
|
||||
"Unable to resolve core root. Set MOLTBOT_ROOT (or legacy CLAWDBOT_ROOT) to the package root.",
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -132,7 +132,7 @@ async function noteZaloTokenHelp(prompter: WizardPrompter): Promise<void> {
|
||||
"2) Create a bot and get the token",
|
||||
"3) Token looks like 12345689:abc-xyz",
|
||||
"Tip: you can also set ZALO_BOT_TOKEN in your env.",
|
||||
"Docs: https://docs.clawd.bot/channels/zalo",
|
||||
"Docs: https://docs.molt.bot/channels/zalo",
|
||||
].join("\n"),
|
||||
"Zalo bot token",
|
||||
);
|
||||
|
||||
@@ -471,7 +471,7 @@ export const zalouserPlugin: ChannelPlugin<ResolvedZalouserAccount> = {
|
||||
const ok = await checkZcaInstalled();
|
||||
if (!ok) {
|
||||
throw new Error(
|
||||
"Missing dependency: `zca` not found in PATH. See docs.clawd.bot/channels/zalouser",
|
||||
"Missing dependency: `zca` not found in PATH. See docs.molt.bot/channels/zalouser",
|
||||
);
|
||||
}
|
||||
runtime.log(
|
||||
|
||||
@@ -53,7 +53,7 @@ async function noteZalouserHelp(prompter: WizardPrompter): Promise<void> {
|
||||
"1) Install zca-cli",
|
||||
"2) You'll scan a QR code with your Zalo app",
|
||||
"",
|
||||
"Docs: https://docs.clawd.bot/channels/zalouser",
|
||||
"Docs: https://docs.molt.bot/channels/zalouser",
|
||||
].join("\n"),
|
||||
"Zalo Personal Setup",
|
||||
);
|
||||
@@ -316,7 +316,7 @@ export const zalouserOnboardingAdapter: ChannelOnboardingAdapter = {
|
||||
"The `zca` binary was not found in PATH.",
|
||||
"",
|
||||
"Install zca-cli, then re-run onboarding:",
|
||||
"Docs: https://docs.clawd.bot/channels/zalouser",
|
||||
"Docs: https://docs.molt.bot/channels/zalouser",
|
||||
].join("\n"),
|
||||
"Missing Dependency",
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user