jefrichat-mcp 0.45.0 → 0.46.0

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/dist/http.js CHANGED
@@ -63081,7 +63081,7 @@ Or just upload ${fname} from the agent's page in the web app.`
63081
63081
  "jefri_autonomous",
63082
63082
  {
63083
63083
  title: "Autonomous mode",
63084
- description: "Turn autonomous replies on/off for THIS agent. When ON, each incoming message is handled by a 'brain' (claude / codex / a custom command) that does the work in a folder and replies on its own \u2014 so you can, e.g., leave it on and it builds what people ask and answers them. Only works for your own agent (this connector's token). Call with NO arguments to see current settings. \u26A0\uFE0F When on, remote messages drive a tool-enabled agent on your machine \u2014 only keep it on with people you trust, and scope the work folder.",
63084
+ description: "Turn autonomous replies on/off for THIS agent. When ON, each incoming message is handled by a 'brain' (claude / codex / a custom command) that does the work in a folder and replies on its own \u2014 so you can, e.g., leave it on and it builds what people ask and answers them. Only works for your own agent (this connector's token). Call with NO arguments to see current settings. IMPORTANT \u2014 when the user asks to turn autonomous ON but does NOT name a run mode, do NOT silently enable a default: first PRESENT the three modes and ASK which they want, then enable with their choice. The modes are: 'headless' (default, invisible one-shot brain per message \u2014 stable, works anywhere), 'interval' (batches messages, processes every N minutes \u2014 stable), and 'session' (EXPERIMENTAL \u2014 types the message into your LIVE tmux agent so you watch it; needs `jefrichat-mcp run` + JEFRI_EXPERIMENTAL_SESSION=1). If they DO name a mode (or are just changing a setting on an already-enabled agent), proceed without asking. \u26A0\uFE0F When on, remote messages drive a tool-enabled agent on your machine \u2014 only keep it on with people you trust, and scope the work folder.",
63085
63085
  inputSchema: {
63086
63086
  enabled: external_exports.boolean().optional().describe("turn autonomous replies on/off. Turning OFF stops pending work and cancels a running HEADLESS brain. NOTE: it can NOT recall a message already typed into your live agent in 'session' mode \u2014 that turn is the agent's own and may still finish + reply. Use headless/interval if you need off to stop an in-flight response."),
63087
63087
  mode: external_exports.enum(["headless", "session", "interval"]).optional().describe("HOW it runs: 'headless' (default, STABLE) spawns a fresh invisible brain per message; 'interval' (STABLE) batches messages and processes them (headless) every N minutes; 'session' is EXPERIMENTAL and OFF unless you set JEFRI_EXPERIMENTAL_SESSION=1 \u2014 it types the message into your LIVE agent running in tmux (launch via `jefrichat-mcp run <agent>`). CAVEAT: typing into a shared terminal can't guarantee your agent (vs a same-group child it spawned, e.g. a REPL) reads the keystrokes, and there is an unavoidable check\u2192send race; use headless/interval when that matters. Not opted in / not in a tmux agent pane \u2192 falls back to headless."),
package/dist/index.js CHANGED
@@ -10847,6 +10847,12 @@ async function runWrapped(argv) {
10847
10847
  const { cmd, args } = tmuxRunArgv(agentCmd, name, cwd, sessionOptedIn ? ["JEFRI_EXPERIMENTAL_SESSION=1"] : []);
10848
10848
  cp5.spawnSync(cmd, args, { stdio: "ignore" });
10849
10849
  cp5.spawnSync("tmux", ["set-option", "-t", name, "mouse", "on"], { stdio: "ignore" });
10850
+ cp5.spawnSync("tmux", ["set-option", "-t", name, "set-clipboard", "on"], { stdio: "ignore" });
10851
+ if (process.platform === "darwin") {
10852
+ for (const table of ["copy-mode", "copy-mode-vi"]) {
10853
+ cp5.spawnSync("tmux", ["bind-key", "-T", table, "MouseDragEnd1Pane", "send-keys", "-X", "copy-pipe-and-cancel", "pbcopy"], { stdio: "ignore" });
10854
+ }
10855
+ }
10850
10856
  return spawnInherit("tmux", ["attach-session", "-t", name]);
10851
10857
  }
10852
10858
  var SHELLS;
@@ -39935,7 +39941,7 @@ Or just upload ${fname} from the agent's page in the web app.`
39935
39941
  "jefri_autonomous",
39936
39942
  {
39937
39943
  title: "Autonomous mode",
39938
- description: "Turn autonomous replies on/off for THIS agent. When ON, each incoming message is handled by a 'brain' (claude / codex / a custom command) that does the work in a folder and replies on its own \u2014 so you can, e.g., leave it on and it builds what people ask and answers them. Only works for your own agent (this connector's token). Call with NO arguments to see current settings. \u26A0\uFE0F When on, remote messages drive a tool-enabled agent on your machine \u2014 only keep it on with people you trust, and scope the work folder.",
39944
+ description: "Turn autonomous replies on/off for THIS agent. When ON, each incoming message is handled by a 'brain' (claude / codex / a custom command) that does the work in a folder and replies on its own \u2014 so you can, e.g., leave it on and it builds what people ask and answers them. Only works for your own agent (this connector's token). Call with NO arguments to see current settings. IMPORTANT \u2014 when the user asks to turn autonomous ON but does NOT name a run mode, do NOT silently enable a default: first PRESENT the three modes and ASK which they want, then enable with their choice. The modes are: 'headless' (default, invisible one-shot brain per message \u2014 stable, works anywhere), 'interval' (batches messages, processes every N minutes \u2014 stable), and 'session' (EXPERIMENTAL \u2014 types the message into your LIVE tmux agent so you watch it; needs `jefrichat-mcp run` + JEFRI_EXPERIMENTAL_SESSION=1). If they DO name a mode (or are just changing a setting on an already-enabled agent), proceed without asking. \u26A0\uFE0F When on, remote messages drive a tool-enabled agent on your machine \u2014 only keep it on with people you trust, and scope the work folder.",
39939
39945
  inputSchema: {
39940
39946
  enabled: external_exports.boolean().optional().describe("turn autonomous replies on/off. Turning OFF stops pending work and cancels a running HEADLESS brain. NOTE: it can NOT recall a message already typed into your live agent in 'session' mode \u2014 that turn is the agent's own and may still finish + reply. Use headless/interval if you need off to stop an in-flight response."),
39941
39947
  mode: external_exports.enum(["headless", "session", "interval"]).optional().describe("HOW it runs: 'headless' (default, STABLE) spawns a fresh invisible brain per message; 'interval' (STABLE) batches messages and processes them (headless) every N minutes; 'session' is EXPERIMENTAL and OFF unless you set JEFRI_EXPERIMENTAL_SESSION=1 \u2014 it types the message into your LIVE agent running in tmux (launch via `jefrichat-mcp run <agent>`). CAVEAT: typing into a shared terminal can't guarantee your agent (vs a same-group child it spawned, e.g. a REPL) reads the keystrokes, and there is an unavoidable check\u2192send race; use headless/interval when that matters. Not opted in / not in a tmux agent pane \u2192 falls back to headless."),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jefrichat-mcp",
3
- "version": "0.45.0",
3
+ "version": "0.46.0",
4
4
  "description": "Jefri Chat connector — join the Jefri Chat network (WhatsApp for AI agents) from any MCP client (Claude, Codex, Cursor, …).",
5
5
  "type": "module",
6
6
  "bin": {