local-commander-agent 0.3.47 → 0.3.48

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/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Change history
2
2
 
3
+ ## 0.3.48 - 2026-10-22
4
+
5
+ - Fixed: after the screenshot setting was switched (or screenshots were enabled for testing), the agent could not restart or update and stopped with STORE_DIRECTORY_UNKNOWN. Restarts and updates work again with either setting.
6
+ - Includes everything in 0.3.47.
7
+
3
8
  ## 0.3.47 - 2026-10-22
4
9
 
5
10
  - New: screenshots on Linux. Where the screenshot tool is available to your account and the computer has Full Access, it now also works on a Linux desktop (Wayland through the desktop portal or grim, X11 through xwd, import or maim). When capture is not possible the client gets a clear reason, such as no desktop session or no capture tool.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "local-commander-agent",
3
- "version": "0.3.47",
3
+ "version": "0.3.48",
4
4
  "description": "Computer companion for Local Commander: connect AI clients to local files, approved commands and localhost. Requires https://localcmd.app.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -16,9 +16,9 @@
16
16
  "arm64"
17
17
  ],
18
18
  "optionalDependencies": {
19
- "local-commander-agent-darwin-arm64": "0.3.47",
20
- "local-commander-agent-linux-arm64": "0.3.47",
21
- "local-commander-agent-linux-x64": "0.3.47"
19
+ "local-commander-agent-darwin-arm64": "0.3.48",
20
+ "local-commander-agent-linux-arm64": "0.3.48",
21
+ "local-commander-agent-linux-x64": "0.3.48"
22
22
  },
23
23
  "engines": {
24
24
  "node": ">=20.0.0"
Binary file
Binary file
Binary file
package/runtime/agent.mjs CHANGED
@@ -27932,11 +27932,16 @@ var WindowsPrivateStore = class _WindowsPrivateStore {
27932
27932
  if (process.platform !== "win32") for (const name2 of ["owner-key.json", "owner-key.dat", "owner-key.lock"]) approved.add(name2);
27933
27933
  if (names.length && !names.includes(MARKER)) throw fail2("STORE_DIRECTORY_UNKNOWN");
27934
27934
  const memoryFile = (name2) => name2 === "host-memory.json" || /^host-memory\.json\.[1-9][0-9]{0,9}\.tmp$/.test(name2);
27935
- if (names.some((name2) => !approved.has(name2) && !memoryFile(name2))) throw fail2("STORE_DIRECTORY_UNKNOWN");
27935
+ const switchFile = (name2) => name2 === "screenshot-acceptance-enabled" || name2 === "screenshot-disabled-by-owner";
27936
+ if (names.some((name2) => !approved.has(name2) && !memoryFile(name2) && !switchFile(name2))) throw fail2("STORE_DIRECTORY_UNKNOWN");
27936
27937
  for (const name2 of names.filter(memoryFile)) {
27937
27938
  const stat2 = await lstat4(path10.join(absolute2, name2));
27938
27939
  if (!stat2.isFile() || stat2.isSymbolicLink() || stat2.size > 32768) throw fail2("STORE_DIRECTORY_INVALID");
27939
27940
  }
27941
+ for (const name2 of names.filter(switchFile)) {
27942
+ const stat2 = await lstat4(path10.join(absolute2, name2));
27943
+ if (!stat2.isFile() || stat2.isSymbolicLink() || stat2.size > 4096) throw fail2("STORE_DIRECTORY_INVALID");
27944
+ }
27940
27945
  for (const name2 of ["agent-process.json", "optimization", ".local-commander"]) {
27941
27946
  if (!names.includes(name2)) continue;
27942
27947
  const filename = path10.join(absolute2, name2), stat2 = await lstat4(filename);
@@ -50811,7 +50816,7 @@ async function restoreContentAudit(input2, output2, key) {
50811
50816
  }
50812
50817
 
50813
50818
  // agent/src/main.ts
50814
- var AGENT_VERSION2 = true ? "0.3.47" : "0.3.2";
50819
+ var AGENT_VERSION2 = true ? "0.3.48" : "0.3.2";
50815
50820
  var NETWORK_PUBLIC_KEY = true ? "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAvmu+81vWtJBQDZNHcAIW\nzCSxpG+R9RBsum2df5mP2cOW+wyUDTpnYquFge1qgI5YYTF96j0xCyXL8B9FeNWs\n939opWNmv53j+CQlS4cEIQhBbZSCu0eC4icsVEzBhvf68MB+E668SOtZBcVTEnyh\n96PTcupxS10rQJBWDinbKBXRC2gvGYeu01rWa/nsrndy4vAYP5t3yQtdOC8e8mr0\n+2Mg2Qhiq+KiTCtDd+L9oXvoLqqJYbzUIveNGha25AWxF1Weblp0gOM87hell5gV\nK7q4ZLUq/wBRGYNmQRdLyV7/WRE1FFPSW21/SBZQ/5aU4UqJU/MjMcrJUrnRKngz\nYKmo0czkxS3N7Q2KVxomgR1AQSuQFKMrboZYKjShADp9RIYUxzs7cYg51Of5PnHh\n6Ax+VevDGfzjMD+yHuyxYZqCtX4OwgolJxz63UQbzKlris+8xb5lLYTbIuz90Pss\nn6HK/F5May25c6oMmS3nh/NsiZopL1OvdtWKTt1L4WlRAgMBAAE=\n-----END PUBLIC KEY-----\n" : "";
50816
50821
  var AI_CONNECTION_SHIPPED = false;
50817
50822
  function processAlive(pid) {