@shipers-dev/multi 0.6.4 → 0.6.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/dist/index.js CHANGED
@@ -5179,10 +5179,11 @@ async function runAcp(opts) {
5179
5179
  cleanEnv[k] = v;
5180
5180
  }
5181
5181
  const argv = Array.isArray(opts.adapterBin) ? opts.adapterBin : [opts.adapterBin];
5182
+ const permMode = process.env.MULTI_CLAUDE_SAFE === "1" ? "default" : "bypassPermissions";
5182
5183
  const child = Bun.spawn(argv, {
5183
5184
  stdio: ["pipe", "pipe", "inherit"],
5184
5185
  cwd: opts.cwd || process.cwd(),
5185
- env: { ...cleanEnv, ACP_PERMISSION_MODE: "default" }
5186
+ env: { ...cleanEnv, ACP_PERMISSION_MODE: permMode }
5186
5187
  });
5187
5188
  const output = new WritableStream({
5188
5189
  write(chunk) {
@@ -5484,7 +5485,7 @@ function parseAcpLine(line, setStop) {
5484
5485
  return [];
5485
5486
  }
5486
5487
  const out = [];
5487
- if (msg.method === "session/update" && msg.params?.sessionUpdate) {
5488
+ if (msg.method === "session/update" && msg.params?.update?.sessionUpdate) {
5488
5489
  return handleSessionUpdate(msg.params);
5489
5490
  }
5490
5491
  if (msg.id && msg.result && typeof msg.result === "object" && "stopReason" in msg.result) {
@@ -5573,7 +5574,7 @@ var LOG_PATH2 = join2(MULTI_DIR, "logs", "agent.log");
5573
5574
  var SKILLS_DIR = join2(MULTI_DIR, "skills");
5574
5575
  var STOP_PATH = join2(MULTI_DIR, "stop.flag");
5575
5576
  var TASKS_DB_PATH = join2(MULTI_DIR, "tasks.db");
5576
- var VERSION = "0.6.4";
5577
+ var VERSION = "0.6.6";
5577
5578
  var COMMANDS = {
5578
5579
  setup: "Register this device with a workspace",
5579
5580
  connect: "Connect device to realtime hub and execute assigned tasks",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shipers-dev/multi",
3
- "version": "0.6.4",
3
+ "version": "0.6.6",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "multi-agent": "./dist/index.js"
package/src/acp-runner.ts CHANGED
@@ -36,10 +36,13 @@ export async function runAcp(opts: AcpRunOpts): Promise<{ stopReason: string; se
36
36
  cleanEnv[k] = v;
37
37
  }
38
38
  const argv = Array.isArray(opts.adapterBin) ? opts.adapterBin : [opts.adapterBin];
39
+ // Daemon has no TTY — default to bypass (claude's --dangerously-skip-permissions equivalent).
40
+ // Set MULTI_CLAUDE_SAFE=1 to restore interactive permission prompts.
41
+ const permMode = process.env.MULTI_CLAUDE_SAFE === '1' ? 'default' : 'bypassPermissions';
39
42
  const child = Bun.spawn(argv, {
40
43
  stdio: ['pipe', 'pipe', 'inherit'],
41
44
  cwd: opts.cwd || process.cwd(),
42
- env: { ...cleanEnv, ACP_PERMISSION_MODE: 'default' },
45
+ env: { ...cleanEnv, ACP_PERMISSION_MODE: permMode },
43
46
  });
44
47
 
45
48
  // Adapter expects plain newline-delimited JSON on stdio. Wrap child streams as Web Streams.
@@ -110,7 +110,7 @@ function parseAcpLine(line: string, setStop: (r: string) => void): AcpEvent[] {
110
110
  const out: AcpEvent[] = [];
111
111
 
112
112
  // session/update notification
113
- if (msg.method === 'session/update' && msg.params?.sessionUpdate) {
113
+ if (msg.method === 'session/update' && msg.params?.update?.sessionUpdate) {
114
114
  return handleSessionUpdate(msg.params);
115
115
  }
116
116
  // prompt result
package/src/index.ts CHANGED
@@ -17,7 +17,7 @@ const LOG_PATH = join(MULTI_DIR, 'logs', 'agent.log');
17
17
  const SKILLS_DIR = join(MULTI_DIR, 'skills');
18
18
  const STOP_PATH = join(MULTI_DIR, 'stop.flag');
19
19
  const TASKS_DB_PATH = join(MULTI_DIR, 'tasks.db');
20
- const VERSION = '0.6.4';
20
+ const VERSION = '0.6.6';
21
21
 
22
22
  const COMMANDS = {
23
23
  setup: 'Register this device with a workspace',