@rethinkingstudio/clawpilot 1.1.14-beta.1 → 1.1.14-beta.2

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.
@@ -1,4 +1,4 @@
1
- import { execSync } from "child_process";
1
+ import { execFileSync, execSync, } from "child_process";
2
2
  import { existsSync } from "fs";
3
3
  import { dirname, join } from "path";
4
4
  import { homedir } from "os";
@@ -86,6 +86,49 @@ export function resolveOpenclawBin(forceRefresh = false) {
86
86
  console.warn("[clawpilot] could not resolve openclaw path, using bare name");
87
87
  return cachedOpenclawBin;
88
88
  }
89
+ function splitShellArgs(input) {
90
+ const args = [];
91
+ let current = "";
92
+ let quote = null;
93
+ let escaping = false;
94
+ for (const ch of input) {
95
+ if (escaping) {
96
+ current += ch;
97
+ escaping = false;
98
+ continue;
99
+ }
100
+ if (ch === "\\") {
101
+ escaping = true;
102
+ continue;
103
+ }
104
+ if (quote) {
105
+ if (ch === quote) {
106
+ quote = null;
107
+ }
108
+ else {
109
+ current += ch;
110
+ }
111
+ continue;
112
+ }
113
+ if (ch === "'" || ch === '"') {
114
+ quote = ch;
115
+ continue;
116
+ }
117
+ if (/\s/.test(ch)) {
118
+ if (current) {
119
+ args.push(current);
120
+ current = "";
121
+ }
122
+ continue;
123
+ }
124
+ current += ch;
125
+ }
126
+ if (escaping)
127
+ current += "\\";
128
+ if (current)
129
+ args.push(current);
130
+ return args;
131
+ }
89
132
  function execErrorOutput(err) {
90
133
  const e = err;
91
134
  const out = e.stdout?.toString() ?? "";
@@ -94,8 +137,9 @@ function execErrorOutput(err) {
94
137
  }
95
138
  export function execOpenclaw(args) {
96
139
  let bin = resolveOpenclawBin();
140
+ const argv = splitShellArgs(args);
97
141
  try {
98
- return execSync(`"${bin}" ${args}`, { stdio: "pipe", env: SUBPROCESS_ENV });
142
+ return execFileSync(bin, argv, { stdio: "pipe", env: SUBPROCESS_ENV });
99
143
  }
100
144
  catch (error) {
101
145
  const output = execErrorOutput(error);
@@ -105,7 +149,7 @@ export function execOpenclaw(args) {
105
149
  throw error;
106
150
  }
107
151
  bin = resolveOpenclawBin(true);
108
- return execSync(`"${bin}" ${args}`, { stdio: "pipe", env: SUBPROCESS_ENV });
152
+ return execFileSync(bin, argv, { stdio: "pipe", env: SUBPROCESS_ENV });
109
153
  }
110
154
  }
111
155
  //# sourceMappingURL=openclaw-cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openclaw-cli.js","sourceRoot":"","sources":["../../src/commands/openclaw-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openclaw-cli.js","sourceRoot":"","sources":["../../src/commands/openclaw-cli.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rethinkingstudio/clawpilot",
3
- "version": "1.1.14-beta.1",
3
+ "version": "1.1.14-beta.2",
4
4
  "description": "ClawAI relay client for Mac mini",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,4 +1,8 @@
1
- import { execSync, type ExecSyncOptionsWithStringEncoding } from "child_process";
1
+ import {
2
+ execFileSync,
3
+ execSync,
4
+ type ExecSyncOptionsWithStringEncoding,
5
+ } from "child_process";
2
6
  import { existsSync } from "fs";
3
7
  import { dirname, join } from "path";
4
8
  import { homedir } from "os";
@@ -96,6 +100,54 @@ export function resolveOpenclawBin(forceRefresh = false): string {
96
100
  return cachedOpenclawBin;
97
101
  }
98
102
 
103
+ function splitShellArgs(input: string): string[] {
104
+ const args: string[] = [];
105
+ let current = "";
106
+ let quote: "'" | '"' | null = null;
107
+ let escaping = false;
108
+
109
+ for (const ch of input) {
110
+ if (escaping) {
111
+ current += ch;
112
+ escaping = false;
113
+ continue;
114
+ }
115
+
116
+ if (ch === "\\") {
117
+ escaping = true;
118
+ continue;
119
+ }
120
+
121
+ if (quote) {
122
+ if (ch === quote) {
123
+ quote = null;
124
+ } else {
125
+ current += ch;
126
+ }
127
+ continue;
128
+ }
129
+
130
+ if (ch === "'" || ch === '"') {
131
+ quote = ch;
132
+ continue;
133
+ }
134
+
135
+ if (/\s/.test(ch)) {
136
+ if (current) {
137
+ args.push(current);
138
+ current = "";
139
+ }
140
+ continue;
141
+ }
142
+
143
+ current += ch;
144
+ }
145
+
146
+ if (escaping) current += "\\";
147
+ if (current) args.push(current);
148
+ return args;
149
+ }
150
+
99
151
  function execErrorOutput(err: unknown): string {
100
152
  const e = err as { stdout?: Buffer | string; stderr?: Buffer | string };
101
153
  const out = e.stdout?.toString() ?? "";
@@ -105,8 +157,9 @@ function execErrorOutput(err: unknown): string {
105
157
 
106
158
  export function execOpenclaw(args: string): Buffer {
107
159
  let bin = resolveOpenclawBin();
160
+ const argv = splitShellArgs(args);
108
161
  try {
109
- return execSync(`"${bin}" ${args}`, { stdio: "pipe", env: SUBPROCESS_ENV });
162
+ return execFileSync(bin, argv, { stdio: "pipe", env: SUBPROCESS_ENV });
110
163
  } catch (error) {
111
164
  const output = execErrorOutput(error);
112
165
  const shouldRetry =
@@ -118,6 +171,6 @@ export function execOpenclaw(args: string): Buffer {
118
171
  }
119
172
 
120
173
  bin = resolveOpenclawBin(true);
121
- return execSync(`"${bin}" ${args}`, { stdio: "pipe", env: SUBPROCESS_ENV });
174
+ return execFileSync(bin, argv, { stdio: "pipe", env: SUBPROCESS_ENV });
122
175
  }
123
176
  }