talon-agent 3.30.0 → 3.31.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/README.md CHANGED
@@ -329,7 +329,7 @@ On first boot Talon creates a venv at `~/.talon/mempalace-venv` and installs the
329
329
  "backend": "mempalace",
330
330
  "mempalace": {
331
331
  "palacePath": "~/.talon/workspace/palace",
332
- "version": "3.8.0",
332
+ "version": "3.9.0",
333
333
  "autoUpdate": true,
334
334
  "autoProvision": true
335
335
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "talon-agent",
3
- "version": "3.30.0",
3
+ "version": "3.31.0",
4
4
  "description": "Multi-frontend AI agent with full tool access, streaming, cron jobs, and plugin system",
5
5
  "author": "Dylan Neve",
6
6
  "license": "MIT",
@@ -106,7 +106,7 @@
106
106
  "@kilocode/sdk": "^7.2.22",
107
107
  "@modelcontextprotocol/sdk": "^1.29.0",
108
108
  "@openai/agents": "^0.17.0",
109
- "@openai/codex-sdk": "^0.149.0",
109
+ "@openai/codex-sdk": "^0.150.1",
110
110
  "@opencode-ai/sdk": "^1.17.4",
111
111
  "@playwright/mcp": "0.0.79",
112
112
  "@types/cross-spawn": "^6.0.6",
@@ -888,7 +888,7 @@ export class MeshService {
888
888
 
889
889
  /**
890
890
  * `update_device`: remote self-update for the companion. Streams a new APK
891
- * to the device, then tells it to silently install (via Shizuku) and
891
+ * to the device, then tells it to silently install (root or Shizuku) and
892
892
  * restart. The mesh foreground service's autoRunOnMyPackageReplaced brings
893
893
  * the connection back on its own — the link drops only for the seconds the
894
894
  * process is swapped, no manual reopen.
@@ -914,7 +914,7 @@ export class MeshService {
914
914
  if (target.capabilities && !target.capabilities.includes("install_apk")) {
915
915
  return {
916
916
  ok: false,
917
- text: `${target.name} can't self-update — it needs a companion build with the install_apk capability and Shizuku enabled (device control on).`,
917
+ text: `${target.name} can't self-update — it needs a companion build with the install_apk capability and root or Shizuku enabled (device control on).`,
918
918
  };
919
919
  }
920
920
 
@@ -85,7 +85,7 @@ export const meshTools: ToolDefinition[] = [
85
85
  {
86
86
  name: "device_exec",
87
87
  description:
88
- "Run a shell command ON a Talon companion device (e.g. the phone) and return its stdout/stderr/exit code. The device executes it in its own sandbox (Android: app UID, or elevated via Shizuku if available). Use for on-device tasks like tidying a folder. Prefer `teleport` for a sustained session. For persistent streams (log tailing, watchers), background with output redirected to a file — `cmd > /tmp/out.log 2>&1 &` returns immediately; poll the file with device_read_file.",
88
+ "Run a shell command ON a Talon companion device (e.g. the phone) and return its stdout/stderr/exit code. The device executes it at the highest privilege it has (Android: root if the device grants it, else Shizuku's shell UID, else the app UID; the result's `via` says which). Use for on-device tasks like tidying a folder. Prefer `teleport` for a sustained session. For persistent streams (log tailing, watchers), background with output redirected to a file — `cmd > /tmp/out.log 2>&1 &` returns immediately; poll the file with device_read_file.",
89
89
  schema: {
90
90
  device: deviceParam,
91
91
  cmd: z.string().describe("The shell command to run on the device."),
@@ -167,7 +167,7 @@ export const meshTools: ToolDefinition[] = [
167
167
  {
168
168
  name: "update_device",
169
169
  description:
170
- "Remotely update a Talon companion (Android): stream a new APK from the daemon to the device and silently reinstall it via Shizuku, keeping app data. The companion's mesh runs in a foreground service that auto-restarts after the package is replaced, so the connection returns on its own within seconds — no manual reopen. The APK is hashed and the device verifies it before installing (a truncated push is refused; a differently-signed APK is refused by Android). Requires the device to have device control on and Shizuku granted. Confirm success with get_device_status afterwards (appVersion should change).",
170
+ "Remotely update a Talon companion (Android): stream a new APK from the daemon to the device and silently reinstall it at an elevated tier (root or Shizuku), keeping app data. The companion's mesh runs in a foreground service that auto-restarts after the package is replaced, so the connection returns on its own within seconds — no manual reopen. The APK is hashed and the device verifies it before installing (a truncated push is refused; a differently-signed APK is refused by Android). Requires the device to have device control on and either root or Shizuku granted. Confirm success with get_device_status afterwards (appVersion should change).",
171
171
  schema: {
172
172
  device: deviceParam,
173
173
  apk_path: z
@@ -47,7 +47,7 @@ import { dirs, files } from "../../util/paths.js";
47
47
  * to. Bump deliberately, with the canary workflow green — see
48
48
  * .github/workflows/native-provision.yml.
49
49
  */
50
- export const MEMPALACE_PINNED_VERSION = "3.8.0";
50
+ export const MEMPALACE_PINNED_VERSION = "3.9.0";
51
51
 
52
52
  /** Minimum python for the managed venv (matches mempalace's supported floor). */
53
53
  const PYTHON_MIN = { major: 3, minor: 10 };