@letta-ai/letta-code 0.25.11 → 0.26.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/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "@letta-ai/letta-code",
3
- "version": "0.25.11",
3
+ "version": "0.26.0",
4
4
  "description": "Letta Code is a CLI tool for interacting with stateful Letta agents from the terminal.",
5
5
  "type": "module",
6
+ "packageManager": "bun@1.3.0",
6
7
  "bin": {
7
8
  "letta": "letta.js"
8
9
  },
@@ -13,7 +14,8 @@
13
14
  "scripts",
14
15
  "skills",
15
16
  "vendor",
16
- "dist/types"
17
+ "dist/types",
18
+ "docs"
17
19
  ],
18
20
  "exports": {
19
21
  ".": "./letta.js",
@@ -3,9 +3,11 @@
3
3
  * Enforces architectural import boundaries between top-level modules.
4
4
  *
5
5
  * Rules:
6
- * tools/ must not import from cli/
7
- * backend/ must not import from cli/ or websocket/
8
- * providers/ must not import from agent/ or cli/
6
+ * tools/ must not import from cli/
7
+ * backend/ must not import from cli/ or websocket/
8
+ * providers/ must not import from agent/ or cli/
9
+ * websocket/listener/ must not import from backend/api/client or backend/api/conversations
10
+ * telemetry/ must not import from cli/ agent/ websocket/ or tools/
9
11
  *
10
12
  * These are currently violation-free. Adding a rule here means you must
11
13
  * also ensure no existing code violates it.
@@ -43,6 +45,24 @@ const RULES = [
43
45
  description:
44
46
  "providers/ are pure LLM adapters — they must not import from agent/ or cli/",
45
47
  },
48
+ {
49
+ layer: "websocket/listener",
50
+ forbidden: ["backend/api/client", "backend/api/conversations"],
51
+ description:
52
+ "websocket/listener/ uses the getBackend() abstraction — it must not import the raw API client or conversations module directly",
53
+ },
54
+ {
55
+ layer: "cli/app",
56
+ forbidden: ["backend/api/conversations"],
57
+ description:
58
+ "cli/app/ uses the getBackend() abstraction for conversation operations — it must not import the raw conversations module directly",
59
+ },
60
+ {
61
+ layer: "telemetry",
62
+ forbidden: ["cli", "agent", "websocket", "tools"],
63
+ description:
64
+ "telemetry/ is a leaf observer — it must not import from cli/, agent/, websocket/, or tools/ (only backend/api/ for submitting data is permitted)",
65
+ },
46
66
  ];
47
67
 
48
68
  // Matches: import ... from "@/forbidden/..." (static imports only)
@@ -18,7 +18,6 @@ const dirs = [
18
18
  "src/permissions",
19
19
  "src/providers",
20
20
  "src/queue",
21
- "src/ralph",
22
21
  "src/reminders",
23
22
  "src/skills",
24
23
  "src/telemetry",
@@ -50,7 +50,7 @@ You should determine what the users goals and motivations are, to help yourself
50
50
  Understanding the user's personality and other attributes about them will help contextualize their interactions and allow you to engage with them more effectively. Can you pattern match them to common personas? Do they have unique attributes, quirks, or linguistic patterns? How would you describe them as a person?
51
51
 
52
52
  **Understanding their preferences**:
53
- You should learn how the user wants work to be done, and how they want to collaborate with AIs like yourself. Examples of this can include coding preferences (e.g. "Prefer functional components over class components", "Use early returns instead of nested conditionals"), but also higher-level preferences such as when to use plan mode, the scope of changes, how to communicate in different scenarios, etc.
53
+ You should learn how the user wants work to be done, and how they want to collaborate with AIs like yourself. Examples of this can include coding preferences (e.g. "Prefer functional components over class components", "Use early returns instead of nested conditionals"), but also higher-level preferences such as when to ask before planning or implementing, the scope of changes, how to communicate in different scenarios, etc.
54
54
 
55
55
  ### Understanding the codebase and existing work
56
56
  You should also learn as much as possible about the existing codebase and work. Think of this as your onboarding period - an opportunity to maximize your performance for future tasks. Learn things like:
@@ -718,4 +718,3 @@ git push
718
718
  **Write findings to memory as you go** — don't wait until the end.
719
719
  **Edit memory files directly via the filesystem** — memory is projected to `$MEMORY_DIR` specifically for ease of bulk modification. Use standard file tools (Read, Write, Edit) and git to manage changes during initialization.
720
720
 
721
-