@launchchair/agent 0.4.5 → 0.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AGENTS.md CHANGED
@@ -111,8 +111,8 @@ The build folder can be an empty scratch folder until Stack Setup creates or rec
111
111
 
112
112
  ```toml
113
113
  [mcp_servers.launchchair]
114
- command = "launchchair"
115
- args = ["mcp-server"]
114
+ command = "/absolute/path/to/node"
115
+ args = ["/absolute/path/to/launchchair-cli.mjs", "mcp-server"]
116
116
  required = false
117
117
  startup_timeout_sec = 20
118
118
  tool_timeout_sec = 3600
@@ -129,7 +129,7 @@ LC_AGENT_CODEX_CWD = "/absolute/path/to/the-folder-codex-should-build-into"
129
129
  # LAUNCHCHAIR_AGENT_TOKEN = "<full lc_at token from Settings API Access>"
130
130
  ```
131
131
 
132
- If the desktop app cannot find `launchchair`, run `which launchchair` in Terminal and use that absolute path as the MCP command.
132
+ Prefer `launchchair setup codex --cwd /absolute/path/to/build-folder --write-config` or `launchchair mcp-config codex --ui-fields` so the CLI prints exact local command and argument paths for this machine.
133
133
 
134
134
  ## What To Do First In A Fresh Chat
135
135
 
package/README.md CHANGED
@@ -145,9 +145,9 @@ Print a Claude Desktop MCP config example:
145
145
  launchchair mcp-config claude
146
146
  ```
147
147
 
148
- The recommended config launches `launchchair mcp-server`. That process reads the token saved by `launchchair login`, so Codex and Claude users do not need to paste tokens into MCP config after browser login.
148
+ The recommended config launches the MCP server through the exact Node executable and CLI file path generated by `launchchair setup` or `launchchair mcp-config`. That process reads the token saved by `launchchair login`, so Codex and Claude users do not need to paste tokens into MCP config after browser login.
149
149
 
150
- Use `LAUNCHCHAIR_AGENT_TOKEN` only as a manual fallback when you skip `launchchair login`, need a per-client token override, or your desktop app cannot read the saved CLI config. If a desktop app cannot find `launchchair`, run `which launchchair` and use that absolute path as the MCP command.
150
+ Use `LAUNCHCHAIR_AGENT_TOKEN` only as a manual fallback when you skip `launchchair login`, need a per-client token override, or your desktop app cannot read the saved CLI config. If you use a desktop custom MCP form, run `launchchair mcp-config codex --ui-fields` or `launchchair mcp-config claude --ui-fields` and paste the printed command, each argument, env vars, and working directory exactly as shown.
151
151
 
152
152
  ## Local Bridge
153
153
 
@@ -15,7 +15,7 @@ import path from "node:path";
15
15
  import process from "node:process";
16
16
  import { fileURLToPath } from "node:url";
17
17
 
18
- const VERSION = "0.4.4";
18
+ const VERSION = "0.4.6";
19
19
  const SCRIPT_DIR = path.dirname(fileURLToPath(import.meta.url));
20
20
  const DEFAULT_BASE_URL = "https://www.launchchair.io";
21
21
  const CONFIG_DIR = process.env.LAUNCHCHAIR_CONFIG_DIR?.trim()
@@ -858,9 +858,10 @@ function mcpEnvForTarget(target, options = {}) {
858
858
  }
859
859
 
860
860
  function mcpServerConfig(target, options = {}) {
861
+ const cliPath = path.join(SCRIPT_DIR, "launchchair-cli.mjs");
861
862
  return {
862
- command: "launchchair",
863
- args: ["mcp-server"],
863
+ command: process.execPath,
864
+ args: [cliPath, "mcp-server"],
864
865
  env: mcpEnvForTarget(target, options),
865
866
  };
866
867
  }
@@ -882,9 +883,10 @@ function renderMcpConfig(target, options = {}) {
882
883
  const envLines = Object.entries(server.env)
883
884
  .map(([key, value]) => `${key} = ${tomlString(value)}`)
884
885
  .join("\n");
886
+ const argsLine = server.args.map(tomlString).join(", ");
885
887
  return `[mcp_servers.launchchair]
886
- command = "launchchair"
887
- args = ["mcp-server"]
888
+ command = ${tomlString(server.command)}
889
+ args = [${argsLine}]
888
890
  required = false
889
891
  startup_timeout_sec = 20
890
892
  tool_timeout_sec = 3600
@@ -913,7 +915,7 @@ Command to launch
913
915
  ${server.command}
914
916
 
915
917
  Arguments
916
- ${server.args.join(" ")}
918
+ ${server.args.map((arg) => ` ${arg}`).join("\n")}
917
919
 
918
920
  Environment variables
919
921
  ${envLines}
@@ -1219,7 +1221,7 @@ async function setup(args) {
1219
1221
  print(`1. Paste the MCP config above into ${details.label}.`);
1220
1222
  print(`2. Restart or reload ${details.label} so the MCP server is exposed to fresh chats.`);
1221
1223
  }
1222
- print("3. If the desktop app cannot find launchchair, run `which launchchair` and use that absolute path as the command.");
1224
+ print("3. Use the generated command and argument fields exactly as printed; setup resolves the local Node and CLI paths for this machine.");
1223
1225
  print("4. Keep this bridge running when you want LaunchChair's Run with agent button to work:");
1224
1226
  print(` ${paint("launchchair bridge", "cyan")}`);
1225
1227
  print("5. Start a fresh agent chat. The agent should discover the LaunchChair skill and MCP server instructions automatically.");
package/local-bridge.mjs CHANGED
@@ -17,7 +17,7 @@ import process from "node:process";
17
17
  import { fileURLToPath } from "node:url";
18
18
  import { buildRunnerCommand, parseRunnerCommand } from "./runner-command.mjs";
19
19
 
20
- const VERSION = "0.4.4";
20
+ const VERSION = "0.4.6";
21
21
  const CLIENT_TYPES = ["codex", "chatgpt", "claude", "claude_code", "other"];
22
22
  const AGENT_SCRIPT_DIR = path.dirname(fileURLToPath(import.meta.url));
23
23
  const CONFIG_DIR = process.env.LAUNCHCHAIR_CONFIG_DIR?.trim()
@@ -19,7 +19,7 @@ import process from "node:process";
19
19
  import { fileURLToPath } from "node:url";
20
20
  import { buildRunnerCommand, parseRunnerCommand } from "./runner-command.mjs";
21
21
 
22
- const VERSION = "0.4.4";
22
+ const VERSION = "0.4.6";
23
23
  const SERVER_NAME = "launchchair-agent-mcp";
24
24
  const AGENT_SCRIPT_DIR = path.dirname(fileURLToPath(import.meta.url));
25
25
  const CONFIG_DIR = process.env.LAUNCHCHAIR_CONFIG_DIR?.trim()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@launchchair/agent",
3
- "version": "0.4.5",
3
+ "version": "0.4.6",
4
4
  "description": "LaunchChair Agent CLI, MCP bridge, local bridge, and runners for Codex, Claude Code, ChatGPT, Claude, and Hermes workflows.",
5
5
  "type": "module",
6
6
  "bin": {