@letta-ai/letta-code 0.31.2 → 0.31.4
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/mcp-client.js +2 -2
- package/dist/mcp-client.js.map +1 -1
- package/dist/types/agent/memory-format.d.ts +7 -0
- package/dist/types/agent/memory-format.d.ts.map +1 -0
- package/dist/types/agent/memory-git-hooks.d.ts +2 -2
- package/dist/types/agent/memory-git-hooks.d.ts.map +1 -1
- package/dist/types/agent/memory-git.d.ts +0 -1
- package/dist/types/agent/memory-git.d.ts.map +1 -1
- package/dist/types/agent/memory-markdown.d.ts +25 -0
- package/dist/types/agent/memory-markdown.d.ts.map +1 -0
- package/dist/types/agent/skills.d.ts.map +1 -1
- package/dist/types/agent/subagents/index.d.ts +2 -0
- package/dist/types/agent/subagents/index.d.ts.map +1 -1
- package/dist/types/agent/subagents/manager.d.ts.map +1 -1
- package/dist/types/telemetry/agent-origin.d.ts +3 -0
- package/dist/types/telemetry/agent-origin.d.ts.map +1 -0
- package/dist/types/telemetry/index.d.ts +6 -0
- package/dist/types/telemetry/index.d.ts.map +1 -1
- package/dist/types/tools/impl/memory-apply-patch.d.ts.map +1 -1
- package/dist/types/tools/impl/memory.d.ts.map +1 -1
- package/dist/types/tools/manager.d.ts.map +1 -1
- package/dist/types/tools/memory-tool-assets.d.ts +6 -0
- package/dist/types/tools/memory-tool-assets.d.ts.map +1 -0
- package/dist/types/tools/tool-definitions.d.ts +77 -0
- package/dist/types/tools/tool-definitions.d.ts.map +1 -1
- package/letta.js +3024 -1585
- package/package.json +1 -1
- package/scripts/source-file-size-baseline.json +2 -2
- package/skills/editing-letta-code-desktop-preferences/SKILL.md +13 -3
- package/skills/finding-agents/SKILL.md +3 -5
- package/skills/messaging-agents/SKILL.md +2 -3
- package/skills/self-configuration/SKILL.md +5 -1
- package/skills/using-cloud-mcp/SKILL.md +37 -0
- package/skills/using-server-mcp/SKILL.md +0 -36
package/package.json
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"src/cli/components/ProviderSelector.tsx": 1692,
|
|
18
18
|
"src/cli/components/ToolCallMessageRich.tsx": 1109,
|
|
19
19
|
"src/cli/helpers/accumulator.ts": 1592,
|
|
20
|
-
"src/cli/helpers/reflection-transcript.ts":
|
|
20
|
+
"src/cli/helpers/reflection-transcript.ts": 1929,
|
|
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,
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"src/providers/chatgpt-usage-service.ts": 1112,
|
|
36
36
|
"src/settings-manager.test.ts": 1635,
|
|
37
37
|
"src/settings-manager.ts": 2102,
|
|
38
|
-
"src/tools/manager.ts":
|
|
38
|
+
"src/tools/manager.ts": 2969,
|
|
39
39
|
"src/tools/tool-execution-context.test.ts": 1138,
|
|
40
40
|
"src/types/protocol_v2.ts": 2666,
|
|
41
41
|
"src/websocket/listen-client-concurrency.test.ts": 2686,
|
|
@@ -15,12 +15,22 @@ The Desktop preferences file is:
|
|
|
15
15
|
~/.letta/desktop_preferences.json
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
User-editable preference keys:
|
|
19
19
|
|
|
20
20
|
- `defaultWorkingDirectory`: default folder for new local sessions.
|
|
21
21
|
- `theme`: `auto`, `light`, or `dark`.
|
|
22
22
|
- `allowRemoteAccess`: boolean for whether remote access should be enabled in preferences.
|
|
23
|
-
- `
|
|
23
|
+
- `runInBackground`: boolean for whether Desktop stays alive in tray/menu bar when all windows close.
|
|
24
|
+
- `startAtLogin`: boolean for whether Desktop starts hidden at login.
|
|
25
|
+
- `remoteEnvName`: environment name shown in the Letta Cloud environment picker for the cloud listener.
|
|
26
|
+
- `localBackendDirectory`: directory containing local backend agents, conversations, and memory.
|
|
27
|
+
- `allowLocalAgentsWhenSignedIn`: boolean for whether signed-in Desktop sessions can see local/offline agents.
|
|
28
|
+
|
|
29
|
+
System-managed keys (do not edit directly):
|
|
30
|
+
- `artifactsByAgent`: per-agent artifacts panel state, written by Desktop UI.
|
|
31
|
+
- `debugPanelEnabled`: developer debug panel, controlled via app menus.
|
|
32
|
+
- `remoteAppServerEnabled`: Remote App Server toggle, applied at startup.
|
|
33
|
+
- `remoteAppServerUrl`: Remote App Server URL, configured via preferences UI.
|
|
24
34
|
|
|
25
35
|
## Workflow
|
|
26
36
|
|
|
@@ -29,7 +39,7 @@ Known preference keys:
|
|
|
29
39
|
3. Merge only the requested preference updates.
|
|
30
40
|
4. Write pretty JSON with a trailing newline.
|
|
31
41
|
5. Do not edit token, provider, secret, agent, conversation, memory, or unrelated state files.
|
|
32
|
-
6.
|
|
42
|
+
6. Changes apply live within ~100ms via Desktop's file watcher; if Desktop is not running, changes take effect on next startup.
|
|
33
43
|
|
|
34
44
|
## Safe edit command
|
|
35
45
|
|
|
@@ -96,19 +96,17 @@ Returns the raw API response with full agent details. Key fields:
|
|
|
96
96
|
## Related Skills
|
|
97
97
|
|
|
98
98
|
- **migrating-memory** - Once you find an agent, use this skill to copy/share memory blocks
|
|
99
|
-
- **searching-messages** - Search messages across all agents to find which agent discussed a topic. Use `--all-agents` to get `agent_id` values, then use this skill to get full agent details.
|
|
100
99
|
|
|
101
100
|
### Finding Agents by Topic
|
|
102
101
|
|
|
103
102
|
If you need to find which agent worked on a specific topic:
|
|
104
103
|
|
|
105
|
-
1.
|
|
106
|
-
2. Search messages across all agents:
|
|
104
|
+
1. Search messages across all agents:
|
|
107
105
|
```bash
|
|
108
106
|
letta messages search --query "topic" --all-agents --limit 10
|
|
109
107
|
```
|
|
110
|
-
|
|
111
|
-
|
|
108
|
+
2. Note the `agent_id` values from matching messages
|
|
109
|
+
3. Get agent details:
|
|
112
110
|
```bash
|
|
113
111
|
letta agents list --query "partial-name"
|
|
114
112
|
```
|
|
@@ -52,7 +52,7 @@ letta agents list --tags "origin:letta-code"
|
|
|
52
52
|
```
|
|
53
53
|
|
|
54
54
|
### By Topic They Discussed
|
|
55
|
-
|
|
55
|
+
Search messages across all agents to find which agent worked on something:
|
|
56
56
|
```bash
|
|
57
57
|
letta messages search --query "topic" --all-agents
|
|
58
58
|
```
|
|
@@ -157,7 +157,7 @@ letta -p --from-agent $LETTA_AGENT_ID \
|
|
|
157
157
|
- Text-mode scripts return only the **final assistant message** (not tool calls, reasoning, or metadata)
|
|
158
158
|
- JSON and stream-json responses include `agent_id`, `conversation_id`, and `environment.source` so you can continue the same conversation/runtime. Environment-routed turns also include `environment.id`, `connection_id`, `device_id`, and `name`.
|
|
159
159
|
- The target agent may use tools, think, and reason - but you only see their final response
|
|
160
|
-
- To see the full conversation transcript (including tool calls), use
|
|
160
|
+
- To see the full conversation transcript (including tool calls), use `letta messages list --agent <id>` targeting the other agent
|
|
161
161
|
|
|
162
162
|
## How It Works
|
|
163
163
|
|
|
@@ -186,4 +186,3 @@ Continuing a hidden conversation with `--conversation <id>` keeps it hidden —
|
|
|
186
186
|
## Related Skills
|
|
187
187
|
|
|
188
188
|
- **finding-agents**: Find agents by name, tags, or fuzzy search
|
|
189
|
-
- **searching-messages**: Search past messages across agents, or view full conversation transcripts
|
|
@@ -257,7 +257,11 @@ Selected global settings keys:
|
|
|
257
257
|
| `preferredBackendMode` | Startup backend preference, `api` or `local` |
|
|
258
258
|
| `channelCredentialsStore` | Channel token storage, `file`, `keyring`, or `auto` |
|
|
259
259
|
| `reflectionTrigger` / `reflectionStepCount` | Default reflection cadence |
|
|
260
|
+
| `reflectionMerge` / `reflectionMergeInstructions` | Reflection change integration policy |
|
|
260
261
|
| `reflectionSettingsByAgent` | Per-agent reflection cadence |
|
|
262
|
+
| `conversationSwitchAlertEnabled` | Send system-reminder when switching conversations/agents |
|
|
263
|
+
| `createDefaultAgents` | Create Memo/Incognito default agents on startup (default: true) |
|
|
264
|
+
| `windowTitle` | Configurable terminal window title fields |
|
|
261
265
|
| `permissions` | Allow/deny/ask/alwaysAsk rules |
|
|
262
266
|
| `env` | User-wide environment variables for Letta Code |
|
|
263
267
|
| `experiments` | Feature flags |
|
|
@@ -271,7 +275,7 @@ Toolset values currently include `auto`, `default`, `codex`, `codex_snake`, `gem
|
|
|
271
275
|
|
|
272
276
|
## Permissions
|
|
273
277
|
|
|
274
|
-
Permissions decide whether tool calls are allowed, denied, or require approval. User/global permission rules affect all agents using that settings file: `allow` can weaken review, while `deny` and `alwaysAsk` can brick workflows. Valid modes are `standard`, `acceptEdits`, and `
|
|
278
|
+
Permissions decide whether tool calls are allowed, denied, or require approval. User/global permission rules affect all agents using that settings file: `allow` can weaken review, while `deny` and `alwaysAsk` can brick workflows. Valid modes are `standard`, `acceptEdits`, `unrestricted`, and `strict`; legacy `default` maps to `standard`, while `bypassPermissions` and `fullAccess` map to `unrestricted`. The default mode is `unrestricted` unless startup flags or settings override it.
|
|
275
279
|
|
|
276
280
|
The removed `memory` mode is invalid; memory access is governed by normal tool permissions plus the server/filesystem checks on the path used. These helper guardrails do not restrict raw Bash/API access. `permissions.mode` supplies a persisted startup default, rule lists still take precedence, and channel accounts have their own `defaultPermissionMode`. Inspect all three when channel approvals differ from the interactive CLI.
|
|
277
281
|
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: using-cloud-mcp
|
|
3
|
+
description: Uses MCP servers connected to the current Letta Cloud agent (cloud MCP). Load when the user asks to use a connected MCP server, list the agent's MCP servers or MCP tools, run an MCP tool connected in ADE/chat, or mentions cloud MCP, server-side MCP, agent MCP, or `letta cloud-mcp`.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Using Cloud MCP
|
|
7
|
+
|
|
8
|
+
Letta Cloud stores MCP server connections per agent. The `letta cloud-mcp` CLI lists and runs those servers' tools through the Letta API, so it works from any surface where the agent runs: cloud sandboxes (chat.letta.com), Letta Desktop, and terminals.
|
|
9
|
+
|
|
10
|
+
## Workflow
|
|
11
|
+
|
|
12
|
+
1. List MCP servers connected to this agent:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
letta cloud-mcp list
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
2. Pick the relevant `id` from the JSON output, then list its tools:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
letta cloud-mcp tools <mcp-server-id>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
3. Pick a tool `id`, inspect its name and description, and run it with a JSON object:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
letta cloud-mcp run <mcp-server-id> <tool-id> --args '{"key":"value"}'
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Rules
|
|
31
|
+
|
|
32
|
+
- Do not ask for an agent ID unless the user wants another agent. The CLI reads `LETTA_AGENT_ID`/`AGENT_ID` from the environment.
|
|
33
|
+
- Treat command output as JSON. Summarize relevant results instead of pasting large raw payloads.
|
|
34
|
+
- If `list` is empty, ask the user to connect an MCP server to the agent on the MCP servers page.
|
|
35
|
+
- If `tools` is empty for a connected server, the server's tools were never synced. Ask the user to resync the server from the MCP servers page; the CLI has no refresh action.
|
|
36
|
+
- If a connected server has type `stdio`, its tools cannot run on hosted Letta Cloud. Tell the user instead of retrying.
|
|
37
|
+
- This requires a signed-in Letta Cloud agent. MCP servers configured locally in the terminal (`/mcp`) are unrelated to this CLI.
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: using-server-mcp
|
|
3
|
-
description: Uses MCP servers that are already connected to the current Letta Cloud agent through server-side MCP associations. Load when the user asks to use an associated MCP server, list an agent's MCP servers or MCP tools, run an MCP tool connected in ADE/chat, or mentions server-side MCP, agent MCP, or `letta server-mcp`.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Using Server-Side MCP
|
|
7
|
-
|
|
8
|
-
Use this skill when the current Letta Cloud agent has MCP servers connected in Letta and you need to discover or run their tools.
|
|
9
|
-
|
|
10
|
-
## Workflow
|
|
11
|
-
|
|
12
|
-
1. List connected MCP servers:
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
letta server-mcp list
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
2. Pick the relevant `id` from the JSON output, then list its tools:
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
letta server-mcp tools <mcp-server-id>
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
3. Pick a tool `id`, inspect the tool name/description, and run it with a JSON object:
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
letta server-mcp run <mcp-server-id> <tool-id> --args '{"key":"value"}'
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## Rules
|
|
31
|
-
|
|
32
|
-
- Prefer the `letta server-mcp ...` CLI over model-facing MCP tools. There is no dedicated `agent_mcp` tool.
|
|
33
|
-
- Do not ask for an agent ID unless the user wants another agent. In normal Letta Code sessions the CLI reads `LETTA_AGENT_ID`/`AGENT_ID` from the environment.
|
|
34
|
-
- Treat command output as JSON. Summarize relevant results instead of pasting large raw payloads.
|
|
35
|
-
- If no servers are listed, tell the user to connect an MCP server to the agent in the MCP servers page first.
|
|
36
|
-
- This only works for signed-in Letta Cloud agents with server-side MCP support. It is separate from local MCP transport testing or converting arbitrary MCP servers into skills.
|