@letta-ai/letta-code 0.31.11 → 0.31.12

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@letta-ai/letta-code",
3
- "version": "0.31.11",
3
+ "version": "0.31.12",
4
4
  "description": "Letta Code is a CLI tool for interacting with stateful Letta agents from the terminal.",
5
5
  "type": "module",
6
6
  "packageManager": "bun@1.3.10",
@@ -21,7 +21,7 @@
21
21
  "src/cli/mods/local-mod-loader.test.ts": 1043,
22
22
  "src/cli/reflection-transcript.test.ts": 1084,
23
23
  "src/cli/subcommands/skills.ts": 1264,
24
- "src/headless.ts": 4994,
24
+ "src/headless.ts": 4986,
25
25
  "src/hooks/integration.test.ts": 1147,
26
26
  "src/index.ts": 2773,
27
27
  "src/mods/learning-harness.ts": 2434,
@@ -19,66 +19,30 @@ Protocol reference: https://chromedevtools.github.io/devtools-protocol/.
19
19
  The running browser's exact schema is at `http://127.0.0.1:<port>/json/protocol`;
20
20
  tip-of-tree docs can differ from the installed version.
21
21
 
22
- ## Managed cloud sandbox default: visible browser
23
-
24
- When running in a cloud sandbox, default every browser task to the visible
25
- managed desktop, even when the user did not explicitly ask to watch. Most
26
- browser tasks exist because plain HTTP is not enough; a headless browser is
27
- more likely to trigger bot protection and gives the user no way to observe or
28
- take over. This matters especially for clicking or typing, forms, sign-in,
29
- checkout/payment, CAPTCHAs or bot protection, and user handoff.
30
-
31
- For the first managed-sandbox browser window, use the skill's launcher instead
32
- of assembling Chrome, DISPLAY, or Xvfb commands yourself:
33
-
34
- ```bash
35
- /root/.letta/cloud-skills/browser-use/scripts/open-visible-browser.sh 'https://example.com'
36
- ```
37
-
38
- It starts the managed desktop and launches Chrome through the persistent Cua
39
- Driver with its required root flag. Then load `computer-use` for visible
40
- interaction. If protocol-level control is necessary, use Cua Driver's explicit
41
- `browser_prepare` flow after binding the exact visible window; do not pass
42
- remote-debugging flags through `launch_app`. The launcher exits zero only
43
- after Cua Driver reports an on-screen browser window. If it exits nonzero, stop
44
- and report the launch failure instead of claiming the browser opened.
22
+ ## Visible by default when a display exists
23
+
24
+ When the computer has a display, prefer a visible (headful) browser for any
25
+ task the user might watch or take over: clicking or typing, forms, sign-in,
26
+ checkout/payment, CAPTCHAs or bot protection, and user handoff. Most browser
27
+ tasks exist because plain HTTP is not enough; a headless browser is more
28
+ likely to trigger bot protection and gives the user no way to observe or step
29
+ in. Visible does not mean pixel-driven: keep operating the page over CDP, and
30
+ the user sees every action in the window.
31
+
32
+ Use headless mode only for work the user explicitly wants in the background
33
+ and that cannot require interaction or handoff, such as read-only scraping,
34
+ CI, or screenshot/PDF generation, or when no display exists. A headless page
35
+ does not satisfy a request to open or reopen a site in a browser the user can
36
+ see.
45
37
 
46
38
  When the user asks to review, watch, or take over, leave that browser window
47
39
  open after the task. Do not kill or close it before replying.
48
40
 
49
- 1. Run `start-letta-desktop` and use its exit status as the result. Warnings
50
- from optional services do not mean startup failed when the command exits 0.
51
- If it exits nonzero, stop and report that the managed desktop is
52
- unavailable. Never create another Xvfb, VNC server, or private display: the
53
- Computer viewer only shows the managed desktop.
54
- 2. Load `computer-use`, inspect the managed desktop, and use Cua Driver to
55
- operate an existing Chrome window or launch Chrome there. When launching,
56
- round-trip Chrome's `launch_path` from `cua-driver call list_apps '{}'
57
- instead of rebuilding it; the managed launch path carries required flags.
58
- For forms, sign-in, checkout, CAPTCHA, and bot-protected pages, keep using
59
- Cua Driver so the interaction remains visible and available for user
60
- takeover.
61
- 3. Use CDP only when protocol-level inspection or deterministic automation is
62
- needed. Bind the exact visible browser window with Cua Driver, then use its
63
- explicit `browser_prepare` flow. Do not pass remote-debugging flags
64
- through `launch_app`. Include `--no-sandbox` when running Chrome as
65
- root. Do not add `--headless` or override `DISPLAY`.
66
- 4. Use headless mode only for work the user explicitly wants in the background
67
- and that cannot require interaction or handoff, such as read-only scraping,
68
- CI, or screenshot/PDF generation.
69
- 5. Verify the result through the managed desktop window (Cua Driver window
70
- state or screenshot), not only through DOM output or a screenshot from a
71
- separate process.
72
-
73
- A headless page does not satisfy a request to open or reopen a site in the
74
- user-visible browser.
75
-
76
41
  ## Workflow
77
42
 
78
43
  1. Find a Chromium-based browser (below). If none exists, see "No Chrome installed".
79
- 2. In a managed cloud sandbox, follow the visible-browser default above.
80
- Otherwise, launch with a dedicated profile and remote debugging. Never
81
- attach to the user's normal profile unless explicitly asked.
44
+ 2. Launch with a dedicated profile and remote debugging. Never attach to the
45
+ user's normal profile unless explicitly asked.
82
46
  3. Discover targets via `/json/list`; pick the `"page"` target by URL or title.
83
47
  4. Connect to its `webSocketDebuggerUrl` and enable only the domains you need
84
48
  (usually `Page`, `Runtime`, `DOM`, `Input`; add `Network`, `Log` when debugging).
@@ -124,7 +88,7 @@ Tell the user that browser use requires Chrome or another Chromium-based
124
88
  browser and recommend either:
125
89
 
126
90
  1. Install Chrome on the current computer, then retry the browser task.
127
- 2. Teleport the conversation back to its Cloud sandbox, where the managed
91
+ 2. Teleport the conversation back to its Cloud sandbox, where a
128
92
  browser is already installed.
129
93
 
130
94
  Wait for the user to choose. Do not silently replace the browser task with
@@ -132,9 +96,8 @@ plain HTTP or claim browser automation succeeded.
132
96
 
133
97
  ## Launching
134
98
 
135
- Outside a managed cloud sandbox, use a disposable profile and a fixed port.
136
- Chrome refuses to run as root without `--no-sandbox`, so add that flag when
137
- `id -u` is 0:
99
+ Use a disposable profile and a fixed port. Chrome refuses to run as root
100
+ without `--no-sandbox`, so add that flag when `id -u` is 0:
138
101
 
139
102
  ```bash
140
103
  chrome_args=( \
@@ -149,10 +112,8 @@ chrome_args=( \
149
112
  "$CHROME" "${chrome_args[@]}" https://example.com
150
113
  ```
151
114
 
152
- Outside a managed cloud sandbox, add `--headless=new` only for explicitly
153
- invisible work or when no display exists. In a managed cloud sandbox, follow
154
- the visible-browser rule above and never replace its managed display with a
155
- private one.
115
+ Add `--headless=new` only for explicitly invisible work or when no display
116
+ exists (see "Visible by default" above).
156
117
  With `--remote-debugging-port=0`, read the chosen port from
157
118
  `<user-data-dir>/DevToolsActivePort`. Launch in the background and poll
158
119
  `http://127.0.0.1:9222/json/version` until it responds.
@@ -66,15 +66,15 @@ Results include `agent_id` for each matching message.
66
66
  letta -p --from-agent $LETTA_AGENT_ID --agent <id> "message text"
67
67
  ```
68
68
 
69
- When no `--environment` is specified, the target agent will run in the same
70
- environment as the caller agent.
69
+ When no `--computer` is specified, the target agent will run on the same
70
+ computer as the caller agent.
71
71
 
72
- To route the target agent turn through a specific remote/local environment:
72
+ To route the target agent turn through a specific remote/local computer:
73
73
 
74
74
  ```bash
75
75
  letta -p --from-agent $LETTA_AGENT_ID \
76
76
  --agent <id> \
77
- --environment <name-or-device-id-or-connection-id> \
77
+ --computer <name-or-device-id-or-connection-id> \
78
78
  "message text"
79
79
  ```
80
80
 
@@ -83,7 +83,7 @@ letta -p --from-agent $LETTA_AGENT_ID \
83
83
  |-----|----------|-------------|
84
84
  | `--agent <id>` | Yes | Target agent ID to message |
85
85
  | `--from-agent <id>` | Yes | Sender agent ID (injects agent-to-agent system reminder) |
86
- | `--environment <selector>` | No | Route through an online environment by connection name, device ID, or connection ID |
86
+ | `--computer <selector>` | No | Route through an online computer by connection name, device ID, or connection ID |
87
87
  | `"message text"` | Yes | Message body (positional after flags) |
88
88
 
89
89
  **Example:**
@@ -109,34 +109,34 @@ letta -p --from-agent $LETTA_AGENT_ID \
109
109
  letta -p --from-agent $LETTA_AGENT_ID --conversation <id> "message text"
110
110
  ```
111
111
 
112
- Add `--environment <selector>` to continue the conversation on a specific environment.
112
+ Add `--computer <selector>` to continue the conversation on a specific computer.
113
113
 
114
- ### Discovering Environments
114
+ ### Discovering Computers
115
115
 
116
116
  ```bash
117
- letta environments list --online-only
117
+ letta computers list --online-only
118
118
  # alias:
119
119
  letta envs list --online-only
120
120
  ```
121
121
 
122
122
  Use `connectionName`, `deviceId`, or `connectionId` from the JSON output as the
123
- `--environment` selector. If a name is ambiguous, prefer `deviceId` or
124
- `connectionId`. In `environments list`, the current local runtime is marked with
123
+ `--computer` selector. If a name is ambiguous, prefer `deviceId` or
124
+ `connectionId`. In `computers list`, the current local runtime is marked with
125
125
  `"isCurrent": true`.
126
126
 
127
- To force the target agent onto the current registered Letta Code environment,
128
- resolve the current environment and pass its `connectionId`:
127
+ To force the target agent onto the current registered Letta Code computer,
128
+ resolve the current computer and pass its `connectionId`:
129
129
 
130
130
  ```bash
131
- CURRENT_ENV=$(letta environments current | jq -r .connectionId)
131
+ CURRENT_COMPUTER=$(letta computers current | jq -r .connectionId)
132
132
  letta -p --from-agent $LETTA_AGENT_ID \
133
133
  --agent agent-abc123 \
134
- --environment "$CURRENT_ENV" \
135
- "Run on my same machine/environment."
134
+ --computer "$CURRENT_COMPUTER" \
135
+ "Run on my same computer."
136
136
  ```
137
137
 
138
- Omit `--environment` when you want the target agent to run in the same
139
- environment as the caller agent.
138
+ Omit `--computer` when you want the target agent to run on the same computer as
139
+ the caller agent.
140
140
 
141
141
  **Arguments:**
142
142
  | Arg | Required | Description |
@@ -21,7 +21,7 @@ This skill lets you create, list, and manage scheduled tasks using the `letta cr
21
21
  Pass a flag only when you have a requirement the default can't infer:
22
22
 
23
23
  - **`--runner cloud`** — the schedule must fire no matter which computers are online; execute in the agent's cloud sandbox.
24
- - **`--computer <deviceId>`** — the work needs a specific connected computer (its filesystem, services, or credentials). Get the deviceId from `letta environments list`. If that computer is offline at fire time, execution falls back to the cloud sandbox.
24
+ - **`--computer <deviceId>`** — the work needs a specific connected computer (its filesystem, services, or credentials). Get the deviceId from `letta computers list`. If that computer is offline at fire time, execution falls back to the cloud sandbox.
25
25
  - **`--runner local`** — the work must only ever run on the current computer, even if that means missing fires while no session is running here.
26
26
 
27
27
  The CLI reports its placement in the command output. If it warns that the schedule is local (this happens when the cloud scheduler cannot reach the current computer), the schedule only fires while a Letta session is running here — read the warning and decide whether that's acceptable.
@@ -1,11 +1,13 @@
1
1
  ---
2
2
  name: submitting-feedback
3
- description: Submits user-approved feedback about Letta Code or the current agent to the Letta team. Load when the user is upset, frustrated, dissatisfied, reports poor agent behavior, or asks to send feedback. Works with cloud-hosted and local agents. Ask before submitting unless the user already explicitly requested submission.
3
+ description: Submits user-approved product feedback and bug reports about Letta Code to the Letta team. Load when the user reports a Letta Code bug, requests a product or developer change, or explicitly asks to send feedback. Do not load for corrections to the current agent's behavior or preferences; those are memory edits. Works with cloud-hosted and local agents. Ask before submitting unless the user already explicitly requested submission.
4
4
  ---
5
5
 
6
6
  # Submitting Feedback
7
7
 
8
- When the user appears upset with the agent, acknowledge the problem and ask whether they want you to submit feedback to the Letta team. Do not submit merely because the user expressed frustration.
8
+ Use this skill for product and developer feedback about Letta Code: reproducible bugs, broken features, confusing product behavior, and requested changes to the software or its developer-facing behavior.
9
+
10
+ Do **not** use this skill when the user corrects how the current agent should behave, communicate, remember, or work with them. Treat that as learning: make the appropriate memory edit so the correction changes the agent's future behavior. A user's frustration with the agent is not by itself product feedback and is not a reason to offer feedback submission.
9
11
 
10
12
  If the user says yes, or directly asks you to submit feedback:
11
13
 
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  name: teleporting-between-environments
3
- description: Moves the current agent conversation to Cloud, Desktop Local, or another Cloud-registered environment while coordinating machine-local files and setup. Use when the user says "let's continue this task on cloud", asks to continue or move work on another connected computer, wants to teleport between environments, or needs to upload or download artifacts before a handoff.
3
+ description: Moves the current agent conversation to Cloud, Desktop Local, or another connected computer while coordinating machine-local files and setup. Use when the user says "let's continue this task on cloud", asks to continue or move work on another connected computer, wants to teleport between computers, or needs to upload or download artifacts before a handoff.
4
4
  ---
5
5
 
6
- # Teleporting Between Environments
6
+ # Teleporting Between Computers
7
7
 
8
8
  Teleport the current agent and conversation without losing conversational memory. Prepare machine-local state first, then let the destination continue the same task.
9
9
 
@@ -20,13 +20,13 @@ Teleport the current agent and conversation without losing conversational memory
20
20
  letta teleport list
21
21
  letta teleport cloud
22
22
  letta teleport local
23
- letta teleport <environment>
23
+ letta teleport <computer>
24
24
  ```
25
25
 
26
26
  - `list`: show accessible online Cloud-registered targets.
27
27
  - `cloud`: create or resume this conversation’s managed Cloud sandbox.
28
- - `local`: target the one online Letta Desktop environment. Desktop Remote Access must be enabled. If several Desktop environments are online, use `list` and target one explicitly.
29
- - `<environment>`: target a listed remote environment by its friendly selector.
28
+ - `local`: target the one online Letta Desktop computer. Desktop Remote Access must be enabled. If several Desktop computers are online, use `list` and target one explicitly.
29
+ - `<computer>`: target a listed remote computer by its friendly selector.
30
30
 
31
31
  Do not run or recommend `letta teleport back`; return to Desktop with `local`.
32
32
 
@@ -79,21 +79,21 @@ If the command reports an offline, stale, unsupported, same-source, or startup e
79
79
 
80
80
  ### Return to Desktop Local
81
81
 
82
- 1. Retain the next local action and any setup the Desktop environment needs.
83
- 2. Confirm Desktop is open with Remote Access enabled. If more than one Desktop environment is online, use `letta teleport list` and choose one explicitly.
82
+ 1. Retain the next local action and any setup the Desktop computer needs.
83
+ 2. Confirm Desktop is open with Remote Access enabled. If more than one Desktop computer is online, use `letta teleport list` and choose one explicitly.
84
84
  3. As the final action, run:
85
85
 
86
86
  ```bash
87
87
  letta teleport local
88
88
  ```
89
89
 
90
- ### Run a separate headless turn on an environment
90
+ ### Run a separate headless turn on a computer
91
91
 
92
- Use `--environment` when a separate headless invocation, rather than the current conversation handoff, should execute on Cloud or another online environment:
92
+ Use `--computer` when a separate headless invocation, rather than the current conversation handoff, should execute on Cloud or another online computer:
93
93
 
94
94
  ```bash
95
- letta -p --conversation <id> --environment cloud "<prompt>"
96
- letta -p --conversation <id> --environment <name|device-id|connection-id> "<prompt>"
95
+ letta -p --conversation <id> --computer cloud "<prompt>"
96
+ letta -p --conversation <id> --computer <name|device-id|connection-id> "<prompt>"
97
97
  ```
98
98
 
99
99
  This routes that headless message only. Use `letta teleport ...` to move the currently executing conversation.
@@ -110,5 +110,5 @@ This routes that headless message only. Use `letta teleport ...` to move the cur
110
110
  3. As the final action, run:
111
111
 
112
112
  ```bash
113
- letta teleport <environment>
113
+ letta teleport <computer>
114
114
  ```