@letta-ai/letta-code 0.34.16 → 0.34.18
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 +14 -5
- package/dist/agent-presets.js +5 -1
- package/dist/agent-presets.js.map +2 -2
- package/dist/mcp-client.js +2 -2
- package/dist/mcp-client.js.map +1 -1
- package/dist/mcp-oauth.js +30 -28
- package/dist/mcp-oauth.js.map +4 -4
- package/dist/types/agent/client-skills.d.ts.map +1 -1
- package/dist/types/agent/message.d.ts.map +1 -1
- package/dist/types/agent/model-handles.d.ts.map +1 -1
- package/dist/types/agent/preloaded-skills.d.ts +4 -0
- package/dist/types/agent/preloaded-skills.d.ts.map +1 -0
- package/dist/types/agent/skills.d.ts.map +1 -1
- package/dist/types/agent/subagents/child-send-tracking.d.ts.map +1 -1
- 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/agent/subagents/remote-turn-wait.d.ts.map +1 -1
- package/dist/types/agent/subagents/subagent-stream.d.ts.map +1 -1
- package/dist/types/agent/turn-recovery-policy.d.ts +1 -1
- package/dist/types/agent/turn-recovery-policy.d.ts.map +1 -1
- package/dist/types/auth/oauth.d.ts +8 -1
- package/dist/types/auth/oauth.d.ts.map +1 -1
- package/dist/types/backend/api/conversation-enqueue.d.ts +4 -1
- package/dist/types/backend/api/conversation-enqueue.d.ts.map +1 -1
- package/dist/types/backend/dev/fake-headless-backend.d.ts +9 -2
- package/dist/types/backend/dev/fake-headless-backend.d.ts.map +1 -1
- package/dist/types/backend/local/compaction.d.ts +5 -0
- package/dist/types/backend/local/compaction.d.ts.map +1 -1
- package/dist/types/backend/local/local-backend.d.ts.map +1 -1
- package/dist/types/headless-listener-launch.d.ts +5 -3
- package/dist/types/headless-listener-launch.d.ts.map +1 -1
- package/dist/types/headless-super-run-wait.d.ts +1 -1
- package/dist/types/headless-super-run-wait.d.ts.map +1 -1
- package/dist/types/mcp-oauth-callback.d.ts +5 -1
- package/dist/types/mcp-oauth-callback.d.ts.map +1 -1
- package/dist/types/mcp-oauth.d.ts.map +1 -1
- package/dist/types/tools/impl/code-mode.d.ts +23 -0
- package/dist/types/tools/impl/code-mode.d.ts.map +1 -0
- package/dist/types/tools/impl/process_manager.d.ts +1 -0
- package/dist/types/tools/impl/process_manager.d.ts.map +1 -1
- package/dist/types/tools/impl/remote-external-coding-agent.d.ts +1 -0
- package/dist/types/tools/impl/remote-external-coding-agent.d.ts.map +1 -1
- package/dist/types/tools/impl/task-stop.d.ts.map +1 -1
- package/dist/types/tools/impl/workflow.d.ts +5 -0
- package/dist/types/tools/impl/workflow.d.ts.map +1 -1
- package/dist/types/tools/manager.d.ts.map +1 -1
- package/dist/types/tools/script-tool-scope.d.ts +19 -0
- package/dist/types/tools/script-tool-scope.d.ts.map +1 -0
- package/dist/types/tools/tool-definitions.d.ts +1 -0
- package/dist/types/tools/tool-definitions.d.ts.map +1 -1
- package/dist/types/tools/toolset-catalog.d.ts +1 -1
- package/dist/types/tools/toolset-catalog.d.ts.map +1 -1
- package/dist/types/tools/workflow/sdk-spawner.d.ts.map +1 -1
- package/dist/types/tools/workflow/types.d.ts +2 -0
- package/dist/types/tools/workflow/types.d.ts.map +1 -1
- package/dist/types/tools/workflow/workflow-engine.d.ts +2 -0
- package/dist/types/tools/workflow/workflow-engine.d.ts.map +1 -1
- package/letta.js +13825 -13502
- package/npm-shrinkwrap.json +86 -86
- package/package.json +2 -2
- package/scripts/source-file-size-baseline.json +3 -3
- package/skills/creating-skills/SKILL.md +14 -13
- package/skills/maintaining-core-memory/SKILL.md +101 -0
- package/skills/maintaining-deferred-memory/SKILL.md +84 -0
- package/skills/music-generation/LICENSE +21 -0
- package/skills/music-generation/SKILL.md +164 -0
- package/skills/speech-generation/SKILL.md +15 -36
- package/skills/workflow-authoring/SKILL.md +3 -1
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@letta-ai/letta-code",
|
|
3
|
-
"version": "0.34.
|
|
3
|
+
"version": "0.34.18",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"packages": {
|
|
6
6
|
"node_modules/@alcalzone/ansi-tokenize": {
|
|
@@ -61,15 +61,15 @@
|
|
|
61
61
|
}
|
|
62
62
|
},
|
|
63
63
|
"node_modules/@aws-sdk/core": {
|
|
64
|
-
"version": "3.978.
|
|
65
|
-
"resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.978.
|
|
66
|
-
"integrity": "sha512-
|
|
64
|
+
"version": "3.978.4",
|
|
65
|
+
"resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.978.4.tgz",
|
|
66
|
+
"integrity": "sha512-JvGp6y9sPX8FSs2K/EmFMZcUfdkHxqGE45+oxwGC75OIh50j2e4cbx7zcR3BwNs2DSGqJdBja5h6Vy89iIDmRQ==",
|
|
67
67
|
"license": "Apache-2.0",
|
|
68
68
|
"dependencies": {
|
|
69
69
|
"@aws-sdk/types": "^3.974.6",
|
|
70
70
|
"@aws-sdk/xml-builder": "^3.972.41",
|
|
71
71
|
"@aws/lambda-invoke-store": "^0.3.0",
|
|
72
|
-
"@smithy/core": "^3.
|
|
72
|
+
"@smithy/core": "^3.36.0",
|
|
73
73
|
"@smithy/signature-v4": "^5.7.4",
|
|
74
74
|
"@smithy/types": "^4.19.0",
|
|
75
75
|
"bowser": "^2.11.0",
|
|
@@ -80,14 +80,14 @@
|
|
|
80
80
|
}
|
|
81
81
|
},
|
|
82
82
|
"node_modules/@aws-sdk/credential-provider-env": {
|
|
83
|
-
"version": "3.972.
|
|
84
|
-
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.
|
|
85
|
-
"integrity": "sha512-
|
|
83
|
+
"version": "3.972.75",
|
|
84
|
+
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.75.tgz",
|
|
85
|
+
"integrity": "sha512-nc8Epg98PcYoKNx0VFlwtmZSCP+tuJ1FLWqpslET/gp4h/WYuULSJqtxppM6ywKKDdzNJPvLD7ceRfmxm3Qdxw==",
|
|
86
86
|
"license": "Apache-2.0",
|
|
87
87
|
"dependencies": {
|
|
88
|
-
"@aws-sdk/core": "^3.978.
|
|
88
|
+
"@aws-sdk/core": "^3.978.4",
|
|
89
89
|
"@aws-sdk/types": "^3.974.6",
|
|
90
|
-
"@smithy/core": "^3.
|
|
90
|
+
"@smithy/core": "^3.36.0",
|
|
91
91
|
"@smithy/types": "^4.19.0",
|
|
92
92
|
"tslib": "^2.6.2"
|
|
93
93
|
},
|
|
@@ -96,14 +96,14 @@
|
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"node_modules/@aws-sdk/credential-provider-http": {
|
|
99
|
-
"version": "3.972.
|
|
100
|
-
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.
|
|
101
|
-
"integrity": "sha512-
|
|
99
|
+
"version": "3.972.77",
|
|
100
|
+
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.77.tgz",
|
|
101
|
+
"integrity": "sha512-KkYFdIQwuw9IOHfEzK78slxmVWuhcm1w6YgE3V3WVxAeRRj9q5J9jlwzpY/oszWxd4SD96FTFkDdRGBdMFF2Mw==",
|
|
102
102
|
"license": "Apache-2.0",
|
|
103
103
|
"dependencies": {
|
|
104
|
-
"@aws-sdk/core": "^3.978.
|
|
104
|
+
"@aws-sdk/core": "^3.978.4",
|
|
105
105
|
"@aws-sdk/types": "^3.974.6",
|
|
106
|
-
"@smithy/core": "^3.
|
|
106
|
+
"@smithy/core": "^3.36.0",
|
|
107
107
|
"@smithy/fetch-http-handler": "^5.8.0",
|
|
108
108
|
"@smithy/node-http-handler": "^4.12.1",
|
|
109
109
|
"@smithy/types": "^4.19.0",
|
|
@@ -114,21 +114,21 @@
|
|
|
114
114
|
}
|
|
115
115
|
},
|
|
116
116
|
"node_modules/@aws-sdk/credential-provider-ini": {
|
|
117
|
-
"version": "3.973.
|
|
118
|
-
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.973.
|
|
119
|
-
"integrity": "sha512-
|
|
117
|
+
"version": "3.973.20",
|
|
118
|
+
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.973.20.tgz",
|
|
119
|
+
"integrity": "sha512-OSl2R/0zLkoeKEIy6oP2tu/bsSdY+DGgro2eOffMD2CcP8POv7rS14FY5Jzc5bjnqB1G9wv/aM1akHC2mdlhZw==",
|
|
120
120
|
"license": "Apache-2.0",
|
|
121
121
|
"dependencies": {
|
|
122
|
-
"@aws-sdk/core": "^3.978.
|
|
123
|
-
"@aws-sdk/credential-provider-env": "^3.972.
|
|
124
|
-
"@aws-sdk/credential-provider-http": "^3.972.
|
|
125
|
-
"@aws-sdk/credential-provider-login": "^3.972.
|
|
126
|
-
"@aws-sdk/credential-provider-process": "^3.972.
|
|
127
|
-
"@aws-sdk/credential-provider-sso": "^3.973.
|
|
128
|
-
"@aws-sdk/credential-provider-web-identity": "^3.972.
|
|
129
|
-
"@aws-sdk/nested-clients": "^3.997.
|
|
122
|
+
"@aws-sdk/core": "^3.978.4",
|
|
123
|
+
"@aws-sdk/credential-provider-env": "^3.972.75",
|
|
124
|
+
"@aws-sdk/credential-provider-http": "^3.972.77",
|
|
125
|
+
"@aws-sdk/credential-provider-login": "^3.972.82",
|
|
126
|
+
"@aws-sdk/credential-provider-process": "^3.972.75",
|
|
127
|
+
"@aws-sdk/credential-provider-sso": "^3.973.19",
|
|
128
|
+
"@aws-sdk/credential-provider-web-identity": "^3.972.81",
|
|
129
|
+
"@aws-sdk/nested-clients": "^3.997.49",
|
|
130
130
|
"@aws-sdk/types": "^3.974.6",
|
|
131
|
-
"@smithy/core": "^3.
|
|
131
|
+
"@smithy/core": "^3.36.0",
|
|
132
132
|
"@smithy/credential-provider-imds": "^4.5.2",
|
|
133
133
|
"@smithy/types": "^4.19.0",
|
|
134
134
|
"tslib": "^2.6.2"
|
|
@@ -138,15 +138,15 @@
|
|
|
138
138
|
}
|
|
139
139
|
},
|
|
140
140
|
"node_modules/@aws-sdk/credential-provider-login": {
|
|
141
|
-
"version": "3.972.
|
|
142
|
-
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.
|
|
143
|
-
"integrity": "sha512-
|
|
141
|
+
"version": "3.972.82",
|
|
142
|
+
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.82.tgz",
|
|
143
|
+
"integrity": "sha512-8jyDPtf1WPxeQ/5xlNpyxAD6P7YKwkYeNk8B2vFEDwkPWDvb7c3tQJG5/jbNWbF2yTMIH9tDTueBkdfovYIAPw==",
|
|
144
144
|
"license": "Apache-2.0",
|
|
145
145
|
"dependencies": {
|
|
146
|
-
"@aws-sdk/core": "^3.978.
|
|
147
|
-
"@aws-sdk/nested-clients": "^3.997.
|
|
146
|
+
"@aws-sdk/core": "^3.978.4",
|
|
147
|
+
"@aws-sdk/nested-clients": "^3.997.49",
|
|
148
148
|
"@aws-sdk/types": "^3.974.6",
|
|
149
|
-
"@smithy/core": "^3.
|
|
149
|
+
"@smithy/core": "^3.36.0",
|
|
150
150
|
"@smithy/types": "^4.19.0",
|
|
151
151
|
"tslib": "^2.6.2"
|
|
152
152
|
},
|
|
@@ -155,19 +155,19 @@
|
|
|
155
155
|
}
|
|
156
156
|
},
|
|
157
157
|
"node_modules/@aws-sdk/credential-provider-node": {
|
|
158
|
-
"version": "3.972.
|
|
159
|
-
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.
|
|
160
|
-
"integrity": "sha512-
|
|
158
|
+
"version": "3.972.87",
|
|
159
|
+
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.87.tgz",
|
|
160
|
+
"integrity": "sha512-TKj2C0x4IMPSSOAlmeryX8fCPvvPS2pFJz2ikV9IGqyh6Ehsg4leMalCTVfV2rvMTrlGAe7X7nK0HZ3P0KZR9g==",
|
|
161
161
|
"license": "Apache-2.0",
|
|
162
162
|
"dependencies": {
|
|
163
|
-
"@aws-sdk/credential-provider-env": "^3.972.
|
|
164
|
-
"@aws-sdk/credential-provider-http": "^3.972.
|
|
165
|
-
"@aws-sdk/credential-provider-ini": "^3.973.
|
|
166
|
-
"@aws-sdk/credential-provider-process": "^3.972.
|
|
167
|
-
"@aws-sdk/credential-provider-sso": "^3.973.
|
|
168
|
-
"@aws-sdk/credential-provider-web-identity": "^3.972.
|
|
163
|
+
"@aws-sdk/credential-provider-env": "^3.972.75",
|
|
164
|
+
"@aws-sdk/credential-provider-http": "^3.972.77",
|
|
165
|
+
"@aws-sdk/credential-provider-ini": "^3.973.20",
|
|
166
|
+
"@aws-sdk/credential-provider-process": "^3.972.75",
|
|
167
|
+
"@aws-sdk/credential-provider-sso": "^3.973.19",
|
|
168
|
+
"@aws-sdk/credential-provider-web-identity": "^3.972.81",
|
|
169
169
|
"@aws-sdk/types": "^3.974.6",
|
|
170
|
-
"@smithy/core": "^3.
|
|
170
|
+
"@smithy/core": "^3.36.0",
|
|
171
171
|
"@smithy/credential-provider-imds": "^4.5.2",
|
|
172
172
|
"@smithy/types": "^4.19.0",
|
|
173
173
|
"tslib": "^2.6.2"
|
|
@@ -177,14 +177,14 @@
|
|
|
177
177
|
}
|
|
178
178
|
},
|
|
179
179
|
"node_modules/@aws-sdk/credential-provider-process": {
|
|
180
|
-
"version": "3.972.
|
|
181
|
-
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.
|
|
182
|
-
"integrity": "sha512-
|
|
180
|
+
"version": "3.972.75",
|
|
181
|
+
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.75.tgz",
|
|
182
|
+
"integrity": "sha512-ZNm8T/HJNhpS8MikDVAsym8QyUSUuOUGiCkmI3TTya7G6xhOgfRLd2iK91HhQQyvRM36eo6Xm845hHVyfToA2w==",
|
|
183
183
|
"license": "Apache-2.0",
|
|
184
184
|
"dependencies": {
|
|
185
|
-
"@aws-sdk/core": "^3.978.
|
|
185
|
+
"@aws-sdk/core": "^3.978.4",
|
|
186
186
|
"@aws-sdk/types": "^3.974.6",
|
|
187
|
-
"@smithy/core": "^3.
|
|
187
|
+
"@smithy/core": "^3.36.0",
|
|
188
188
|
"@smithy/types": "^4.19.0",
|
|
189
189
|
"tslib": "^2.6.2"
|
|
190
190
|
},
|
|
@@ -193,16 +193,16 @@
|
|
|
193
193
|
}
|
|
194
194
|
},
|
|
195
195
|
"node_modules/@aws-sdk/credential-provider-sso": {
|
|
196
|
-
"version": "3.973.
|
|
197
|
-
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.973.
|
|
198
|
-
"integrity": "sha512-
|
|
196
|
+
"version": "3.973.19",
|
|
197
|
+
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.973.19.tgz",
|
|
198
|
+
"integrity": "sha512-qHGDAGesyWtRw3BapyFkYSUzVNrC1CWPS6+S2lf/MLMEkWB2gR3Bl6imVHy1nhImXKS+gcuUDzbu39BnsHJc1Q==",
|
|
199
199
|
"license": "Apache-2.0",
|
|
200
200
|
"dependencies": {
|
|
201
|
-
"@aws-sdk/core": "^3.978.
|
|
202
|
-
"@aws-sdk/nested-clients": "^3.997.
|
|
203
|
-
"@aws-sdk/token-providers": "3.
|
|
201
|
+
"@aws-sdk/core": "^3.978.4",
|
|
202
|
+
"@aws-sdk/nested-clients": "^3.997.49",
|
|
203
|
+
"@aws-sdk/token-providers": "3.1153.0",
|
|
204
204
|
"@aws-sdk/types": "^3.974.6",
|
|
205
|
-
"@smithy/core": "^3.
|
|
205
|
+
"@smithy/core": "^3.36.0",
|
|
206
206
|
"@smithy/types": "^4.19.0",
|
|
207
207
|
"tslib": "^2.6.2"
|
|
208
208
|
},
|
|
@@ -211,15 +211,15 @@
|
|
|
211
211
|
}
|
|
212
212
|
},
|
|
213
213
|
"node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers": {
|
|
214
|
-
"version": "3.
|
|
215
|
-
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.
|
|
216
|
-
"integrity": "sha512-
|
|
214
|
+
"version": "3.1153.0",
|
|
215
|
+
"resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1153.0.tgz",
|
|
216
|
+
"integrity": "sha512-6bKJ2OfLboxhzeJ3hBDeB8L6emCYf9DfdrjBAharLrY42J1RV/6jA6G8jvfNghzID8Yb40BdSY7jQMtWx9Ot0Q==",
|
|
217
217
|
"license": "Apache-2.0",
|
|
218
218
|
"dependencies": {
|
|
219
|
-
"@aws-sdk/core": "^3.978.
|
|
220
|
-
"@aws-sdk/nested-clients": "^3.997.
|
|
219
|
+
"@aws-sdk/core": "^3.978.4",
|
|
220
|
+
"@aws-sdk/nested-clients": "^3.997.49",
|
|
221
221
|
"@aws-sdk/types": "^3.974.6",
|
|
222
|
-
"@smithy/core": "^3.
|
|
222
|
+
"@smithy/core": "^3.36.0",
|
|
223
223
|
"@smithy/types": "^4.19.0",
|
|
224
224
|
"tslib": "^2.6.2"
|
|
225
225
|
},
|
|
@@ -228,15 +228,15 @@
|
|
|
228
228
|
}
|
|
229
229
|
},
|
|
230
230
|
"node_modules/@aws-sdk/credential-provider-web-identity": {
|
|
231
|
-
"version": "3.972.
|
|
232
|
-
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.
|
|
233
|
-
"integrity": "sha512-
|
|
231
|
+
"version": "3.972.81",
|
|
232
|
+
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.81.tgz",
|
|
233
|
+
"integrity": "sha512-nHkgkMIC6NHgqfI6UAQq5cCS4bUkNxkT+r9fXCq/X4IKfX/DHGZ8UM3T4b78OXpWK5OlzEzN4kxwyax0W/MUCA==",
|
|
234
234
|
"license": "Apache-2.0",
|
|
235
235
|
"dependencies": {
|
|
236
|
-
"@aws-sdk/core": "^3.978.
|
|
237
|
-
"@aws-sdk/nested-clients": "^3.997.
|
|
236
|
+
"@aws-sdk/core": "^3.978.4",
|
|
237
|
+
"@aws-sdk/nested-clients": "^3.997.49",
|
|
238
238
|
"@aws-sdk/types": "^3.974.6",
|
|
239
|
-
"@smithy/core": "^3.
|
|
239
|
+
"@smithy/core": "^3.36.0",
|
|
240
240
|
"@smithy/types": "^4.19.0",
|
|
241
241
|
"tslib": "^2.6.2"
|
|
242
242
|
},
|
|
@@ -245,13 +245,13 @@
|
|
|
245
245
|
}
|
|
246
246
|
},
|
|
247
247
|
"node_modules/@aws-sdk/eventstream-handler-node": {
|
|
248
|
-
"version": "3.972.
|
|
249
|
-
"resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-handler-node/-/eventstream-handler-node-3.972.
|
|
250
|
-
"integrity": "sha512-
|
|
248
|
+
"version": "3.972.37",
|
|
249
|
+
"resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-handler-node/-/eventstream-handler-node-3.972.37.tgz",
|
|
250
|
+
"integrity": "sha512-vU0v4d6anhLqBCpPq7Q7hD2Av3/5qOR5O30Ze8ALLysgB3iMQTPHQ/P2aTgfrY2ZjnVJUCi7NiTSNqa1mDF+5w==",
|
|
251
251
|
"license": "Apache-2.0",
|
|
252
252
|
"dependencies": {
|
|
253
253
|
"@aws-sdk/types": "^3.974.6",
|
|
254
|
-
"@smithy/core": "^3.
|
|
254
|
+
"@smithy/core": "^3.36.0",
|
|
255
255
|
"@smithy/types": "^4.19.0",
|
|
256
256
|
"tslib": "^2.6.2"
|
|
257
257
|
},
|
|
@@ -260,13 +260,13 @@
|
|
|
260
260
|
}
|
|
261
261
|
},
|
|
262
262
|
"node_modules/@aws-sdk/middleware-eventstream": {
|
|
263
|
-
"version": "3.972.
|
|
264
|
-
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-eventstream/-/middleware-eventstream-3.972.
|
|
265
|
-
"integrity": "sha512-
|
|
263
|
+
"version": "3.972.32",
|
|
264
|
+
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-eventstream/-/middleware-eventstream-3.972.32.tgz",
|
|
265
|
+
"integrity": "sha512-D3ayeW/K2lTQI8+SyzDvAKfM3N4SFJjfgqeHbS3DOZmmQebZyve6WUyJiqOKqeOxmIcFxTzpSdsijnRF035J3g==",
|
|
266
266
|
"license": "Apache-2.0",
|
|
267
267
|
"dependencies": {
|
|
268
268
|
"@aws-sdk/types": "^3.974.6",
|
|
269
|
-
"@smithy/core": "^3.
|
|
269
|
+
"@smithy/core": "^3.36.0",
|
|
270
270
|
"@smithy/types": "^4.19.0",
|
|
271
271
|
"tslib": "^2.6.2"
|
|
272
272
|
},
|
|
@@ -275,14 +275,14 @@
|
|
|
275
275
|
}
|
|
276
276
|
},
|
|
277
277
|
"node_modules/@aws-sdk/middleware-websocket": {
|
|
278
|
-
"version": "3.972.
|
|
279
|
-
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-websocket/-/middleware-websocket-3.972.
|
|
280
|
-
"integrity": "sha512-
|
|
278
|
+
"version": "3.972.57",
|
|
279
|
+
"resolved": "https://registry.npmjs.org/@aws-sdk/middleware-websocket/-/middleware-websocket-3.972.57.tgz",
|
|
280
|
+
"integrity": "sha512-mPNUOedufUwZXISOEySSP7l7owyY0Ypp1ajsd1GsB4E5Vpaf8NtfmmNygyPPeGPsRZ1sOcS90aAhQ03yPy/pFg==",
|
|
281
281
|
"license": "Apache-2.0",
|
|
282
282
|
"dependencies": {
|
|
283
|
-
"@aws-sdk/core": "^3.978.
|
|
283
|
+
"@aws-sdk/core": "^3.978.4",
|
|
284
284
|
"@aws-sdk/types": "^3.974.6",
|
|
285
|
-
"@smithy/core": "^3.
|
|
285
|
+
"@smithy/core": "^3.36.0",
|
|
286
286
|
"@smithy/fetch-http-handler": "^5.8.0",
|
|
287
287
|
"@smithy/signature-v4": "^5.7.4",
|
|
288
288
|
"@smithy/types": "^4.19.0",
|
|
@@ -293,15 +293,15 @@
|
|
|
293
293
|
}
|
|
294
294
|
},
|
|
295
295
|
"node_modules/@aws-sdk/nested-clients": {
|
|
296
|
-
"version": "3.997.
|
|
297
|
-
"resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.
|
|
298
|
-
"integrity": "sha512-
|
|
296
|
+
"version": "3.997.49",
|
|
297
|
+
"resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.49.tgz",
|
|
298
|
+
"integrity": "sha512-zjqIqzTYLRKhT7TPJDUreK9vG9PjhmnfLCaTaqArkRT7j+Ogl0tuXB7MpSd8rlRfRT+xTOeyNFWaOfyNcf51hg==",
|
|
299
299
|
"license": "Apache-2.0",
|
|
300
300
|
"dependencies": {
|
|
301
|
-
"@aws-sdk/core": "^3.978.
|
|
301
|
+
"@aws-sdk/core": "^3.978.4",
|
|
302
302
|
"@aws-sdk/signature-v4-multi-region": "^3.996.48",
|
|
303
303
|
"@aws-sdk/types": "^3.974.6",
|
|
304
|
-
"@smithy/core": "^3.
|
|
304
|
+
"@smithy/core": "^3.36.0",
|
|
305
305
|
"@smithy/fetch-http-handler": "^5.8.0",
|
|
306
306
|
"@smithy/node-http-handler": "^4.12.1",
|
|
307
307
|
"@smithy/types": "^4.19.0",
|
|
@@ -5452,7 +5452,7 @@
|
|
|
5452
5452
|
},
|
|
5453
5453
|
"": {
|
|
5454
5454
|
"name": "@letta-ai/letta-code",
|
|
5455
|
-
"version": "0.34.
|
|
5455
|
+
"version": "0.34.18",
|
|
5456
5456
|
"dependencies": {
|
|
5457
5457
|
"@earendil-works/pi-ai": "^0.99.1",
|
|
5458
5458
|
"@janhapke/sharp-electron": "0.35.3-electron.1",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@letta-ai/letta-code",
|
|
3
|
-
"version": "0.34.
|
|
3
|
+
"version": "0.34.18",
|
|
4
4
|
"lettaStartupLogProtocol": 1,
|
|
5
5
|
"description": "Letta Code is a CLI tool for interacting with stateful Letta agents from the terminal.",
|
|
6
6
|
"type": "module",
|
|
@@ -275,5 +275,5 @@
|
|
|
275
275
|
},
|
|
276
276
|
"lettaLifecycleProtocol": 1,
|
|
277
277
|
"lettaRuntimeGraphProtocol": 1,
|
|
278
|
-
"lettaRuntimeGraphSha512": "sha512-
|
|
278
|
+
"lettaRuntimeGraphSha512": "sha512-cubBaizY8rbgiq9dfHU/uRyZBgkGvLfJc+8+ovpV1raZnQjE+tRsAKFAKP69UHWhNFRE49viVTyqmLIiSK8v8Q=="
|
|
279
279
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"src/agent/client-skills.test.ts":
|
|
2
|
+
"src/agent/client-skills.test.ts": 1132,
|
|
3
3
|
"src/agent/memory-git.ts": 2013,
|
|
4
4
|
"src/backend/local-backend.test.ts": 2472,
|
|
5
5
|
"src/backend/local/local-store.ts": 3261,
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"src/cli/mods/local-mod-loader.test.ts": 1043,
|
|
20
20
|
"src/cli/reflection-transcript.test.ts": 1084,
|
|
21
21
|
"src/cli/subcommands/skills.ts": 1264,
|
|
22
|
-
"src/headless.ts":
|
|
22
|
+
"src/headless.ts": 4771,
|
|
23
23
|
"src/hooks/integration.test.ts": 1147,
|
|
24
24
|
"src/index.ts": 2575,
|
|
25
25
|
"src/mods/learning-harness.ts": 2434,
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"src/providers/chatgpt-usage-service.ts": 1112,
|
|
34
34
|
"src/settings-manager.test.ts": 1635,
|
|
35
35
|
"src/settings-manager.ts": 2092,
|
|
36
|
-
"src/tools/manager.ts":
|
|
36
|
+
"src/tools/manager.ts": 2606,
|
|
37
37
|
"src/tools/tool-execution-context.test.ts": 1092,
|
|
38
38
|
"src/types/protocol_v2.ts": 2532,
|
|
39
39
|
"src/websocket/listener/message-router.ts": 1005,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: creating-skills
|
|
3
|
-
description: Guide for creating effective skills.
|
|
3
|
+
description: Guide for creating effective skills. Use when creating a new skill or updating an existing one that extends Letta Code's capabilities with specialized knowledge, workflows, or tool integrations, whether a user asks for it or a reusable workflow is worth capturing.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Creating Skills
|
|
@@ -206,7 +206,7 @@ Skill creation involves these steps:
|
|
|
206
206
|
2. Plan reusable skill contents (scripts, references, assets)
|
|
207
207
|
3. Initialize the skill (run init-skill.ts)
|
|
208
208
|
4. Edit the skill (implement resources and write SKILL.md)
|
|
209
|
-
5. Package the skill (run package-skill.ts)
|
|
209
|
+
5. Package the skill if it will be distributed (run package-skill.ts)
|
|
210
210
|
6. Iterate based on real usage
|
|
211
211
|
|
|
212
212
|
Follow these steps in order, skipping only if there is a clear reason why they are not applicable.
|
|
@@ -215,16 +215,15 @@ Follow these steps in order, skipping only if there is a clear reason why they a
|
|
|
215
215
|
|
|
216
216
|
Skip this step only when the skill's usage patterns are already clearly understood. It remains valuable even when working with an existing skill.
|
|
217
217
|
|
|
218
|
-
To create an effective skill, clearly understand concrete examples of how the skill will be used.
|
|
218
|
+
To create an effective skill, clearly understand concrete examples of how the skill will be used. Draw them from the material at hand first: the conversation or transcripts that motivated the skill, the commands and tool calls that worked, and the requests that would trigger it.
|
|
219
219
|
|
|
220
|
-
For example, when building an `editing-images` skill,
|
|
220
|
+
For example, when building an `editing-images` skill, establish:
|
|
221
221
|
|
|
222
|
-
-
|
|
223
|
-
-
|
|
224
|
-
-
|
|
225
|
-
- "What would a user say that should trigger this skill?"
|
|
222
|
+
- What functionality the skill should support: editing, rotating, anything else?
|
|
223
|
+
- What concrete requests it should handle, such as "Remove the red-eye from this image" or "Rotate this image"
|
|
224
|
+
- What a user would say that should trigger the skill
|
|
226
225
|
|
|
227
|
-
|
|
226
|
+
If you are working with a user and these remain unclear, ask the most important questions first rather than many at once. If no one is available to ask, such as in a background or automated run, do not wait for answers: scope the skill to what the source material demonstrates and leave out functionality it does not support.
|
|
228
227
|
|
|
229
228
|
Conclude this step when there is a clear sense of the functionality the skill should support.
|
|
230
229
|
|
|
@@ -265,7 +264,7 @@ Usage:
|
|
|
265
264
|
```bash
|
|
266
265
|
npx tsx <SKILL_DIR>/scripts/init-skill.ts <skill-name> --path <output-directory>
|
|
267
266
|
```
|
|
268
|
-
Where `<SKILL_DIR>` is the Skill Directory shown when the skill was loaded (visible in the injection header).
|
|
267
|
+
Where `<SKILL_DIR>` is the Skill Directory shown when the skill was loaded (visible in the injection header). If no Skill Directory is shown, create the skill directory and `SKILL.md` directly instead.
|
|
269
268
|
|
|
270
269
|
The script:
|
|
271
270
|
|
|
@@ -291,7 +290,7 @@ These files contain established best practices for effective skill design.
|
|
|
291
290
|
|
|
292
291
|
#### Start with Reusable Skill Contents
|
|
293
292
|
|
|
294
|
-
To begin implementation, start with the reusable resources identified above: `scripts/`, `references/`, and `assets/` files.
|
|
293
|
+
To begin implementation, start with the reusable resources identified above: `scripts/`, `references/`, and `assets/` files. Some resources come from outside the source material. For example, a `brand-guidelines` skill may need brand assets or templates in `assets/`, or documentation in `references/`. Ask the user for them if you are working with one; otherwise include only what is available and leave out resources you cannot supply.
|
|
295
294
|
|
|
296
295
|
Added scripts must be tested by actually running them to ensure there are no bugs and that the output matches what is expected. If there are many similar scripts, only a representative sample needs to be tested to ensure confidence that they all work while balancing time to completion.
|
|
297
296
|
|
|
@@ -333,7 +332,9 @@ Write instructions for using the skill and its bundled resources.
|
|
|
333
332
|
|
|
334
333
|
### Step 5: Packaging a Skill
|
|
335
334
|
|
|
336
|
-
|
|
335
|
+
Package the skill only when it needs to be distributed as a file, for example when sharing it with a user. Skills maintained in place, such as those under an agent's memory `skills/` directory, are used directly and need no packaging.
|
|
336
|
+
|
|
337
|
+
To package a skill into a distributable .skill file, run the packaging script. The packaging process automatically validates the skill first to ensure it meets all requirements:
|
|
337
338
|
|
|
338
339
|
```bash
|
|
339
340
|
npx tsx <SKILL_DIR>/scripts/package-skill.ts <path/to/skill-folder>
|
|
@@ -360,7 +361,7 @@ If validation fails, the script will report the errors and exit without creating
|
|
|
360
361
|
|
|
361
362
|
### Step 6: Iterate
|
|
362
363
|
|
|
363
|
-
|
|
364
|
+
Improve a skill when real usage shows it falling short, whether through user feedback or sessions where the skill was used. Usage with fresh context of how the skill performed is the best evidence.
|
|
364
365
|
|
|
365
366
|
**Iteration workflow:**
|
|
366
367
|
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: maintaining-core-memory
|
|
3
|
+
description: Maintains an agent's core memory, the editable part of its system prompt. Use to modify the agent's core behavior, embed critical knowledge (needed on every turn), or instruct the agent on how to use deferred memory.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Core memory is the agent's prompt, refined over its lifetime. Treat each change as a revision of that prompt, not an append to a log: the usual edit sharpens, merges, or replaces an existing principle, and a new one earns its place only when no existing one can absorb it.
|
|
7
|
+
|
|
8
|
+
## Prompt format
|
|
9
|
+
|
|
10
|
+
The agent's system prompt is compiled from the Markdown files at the root of `$MEMORY_DIR`. Each root file except `MEMORY.md` becomes a block named after the file, in alphabetical order by filename, followed by the root `MEMORY.md`:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
{{base system prompt}}
|
|
14
|
+
|
|
15
|
+
<human>
|
|
16
|
+
<description>{{description from human.md frontmatter}}</description>
|
|
17
|
+
{{body of human.md}}
|
|
18
|
+
</human>
|
|
19
|
+
|
|
20
|
+
<persona>
|
|
21
|
+
<description>{{description from persona.md frontmatter}}</description>
|
|
22
|
+
{{body of persona.md}}
|
|
23
|
+
</persona>
|
|
24
|
+
|
|
25
|
+
<memory>
|
|
26
|
+
{{body of root MEMORY.md}}
|
|
27
|
+
<deferred-memory>
|
|
28
|
+
<directory path="{{dir}}/" index="{{dir}}/MEMORY.md" />
|
|
29
|
+
</deferred-memory>
|
|
30
|
+
</memory>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Every root file except `MEMORY.md` starts with frontmatter containing exactly two fields:
|
|
34
|
+
|
|
35
|
+
```markdown
|
|
36
|
+
---
|
|
37
|
+
name: human
|
|
38
|
+
description: Who the user is and how they want to work together.
|
|
39
|
+
---
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
- The file name becomes the block name, so `human.md` renders as `<human>`. Choose short, stable names.
|
|
43
|
+
- The `description` is rendered into the prompt. Write it for the agent: one line saying what the block holds.
|
|
44
|
+
- Root `MEMORY.md` has no frontmatter. Its body is the only part of `<memory>` you write.
|
|
45
|
+
- The `<deferred-memory>` list is generated: one entry per top-level directory that has its own `MEMORY.md`, showing only the path. `skills/` is never listed; skills appear separately.
|
|
46
|
+
- Edits take effect only after they are committed, and only in later system prompts. The current conversation keeps the prompt it started with.
|
|
47
|
+
|
|
48
|
+
Read `$MEMORY_DIR/.memfs.config.json` if it exists. The memory repository's pre-commit hook enforces it:
|
|
49
|
+
|
|
50
|
+
- `maxCoreMemoryCharacters` caps the total size of all root Markdown (default 65,536 characters).
|
|
51
|
+
- `maxFileCharacters` caps each memory file, frontmatter included (default 20,000 characters). `fileCharacterLimits` overrides it per glob; the first match wins and `null` removes the cap.
|
|
52
|
+
- `readOnlyFiles` lists globs whose files cannot change. Do not edit them.
|
|
53
|
+
|
|
54
|
+
When the config file is absent, the defaults apply. Treat the limits as a ceiling, not a target: stay well below them. When an edit does not fit, move detail into deferred memory instead of raising a limit; change the config only when the user asks.
|
|
55
|
+
|
|
56
|
+
## Writing prompts
|
|
57
|
+
|
|
58
|
+
Core memory is the agent's working model: who it is, how the user thinks and what they value, and the principles that follow. It is not a list of rules.
|
|
59
|
+
|
|
60
|
+
- Treat a correction or preference as evidence about that model. Find the principle it belongs to and sharpen or rewrite that principle. Add a new one only when the evidence shows something the model was missing.
|
|
61
|
+
- When several rules share a cause, replace them with the one principle that explains them all, and delete the lines it absorbs in the same edit. Adding the principle while keeping the old rules is a log with a summary on top. A healthy file becomes more general over time; a growing count of narrow rules is a sign of failure.
|
|
62
|
+
- State the principle with the reason that makes it generalize: "Verify claims against the running system, because Sarah trusts evidence over plausibility", not three separate rules about tests, logs, and deployments.
|
|
63
|
+
- Write to the agent in the second person or imperative mood: "Lead with the answer", not "The user likes answers first". Say what to do rather than only what to avoid.
|
|
64
|
+
- Leave out provenance: no names, dates, quotes, or stories about the incident. Message history already holds the events, and the commit message records why the line changed. When you edit a section that already contains provenance-laden rules, rewrite them as principles; nothing is lost, because git keeps the old text.
|
|
65
|
+
- Update only from a pattern or an explicit instruction, not a single ambiguous event.
|
|
66
|
+
- Check that a change does not contradict an existing line; resolve the conflict instead of adding both.
|
|
67
|
+
- Write in plain language without all-caps or absolute emphasis. Overstated instructions get overapplied.
|
|
68
|
+
- Leave out content the agent can cheaply rederive: file contents, command lists, current status, and recent activity.
|
|
69
|
+
- Never store secrets. Reference them by name, such as `$SECRET_NAME`.
|
|
70
|
+
|
|
71
|
+
## Teach with examples, not more rules
|
|
72
|
+
|
|
73
|
+
A correction that reveals a gap in a principle calls for sharpening its wording. A correction the principle already covers, such as the user pointing out the same kind of mistake again, means the principle is too abstract to apply: attach a contrastive example to it instead of rewording it again or adding another rule.
|
|
74
|
+
|
|
75
|
+
```markdown
|
|
76
|
+
- Lead with the answer, because the user reads the first line and skims the rest.
|
|
77
|
+
- Not: "I looked at the config, then the logs, and it turns out the timeout is too low." Instead: "The timeout is too low: 5s, and the slow query takes 8s."
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
- Keep at most one or two examples per principle, and make them differ from each other. A new correction replaces the weaker example rather than adding another.
|
|
81
|
+
- Write the example as a generic instance of the behavior, not a record of the incident: no dates, names, or quotes.
|
|
82
|
+
- Keep the bad half short and labeled, and end on the good half. The agent imitates the details of examples, including the ones it should avoid.
|
|
83
|
+
- When a principle or example starts producing the wrong behavior, revise or remove it. A memory edit is a hypothesis about the agent's behavior; later conversations test it.
|
|
84
|
+
|
|
85
|
+
## Design root MEMORY.md so deferred memory gets used
|
|
86
|
+
|
|
87
|
+
The agent consults deferred memory only when something in its prompt tells it to. The generated `<deferred-memory>` list gives directory paths and nothing else, so root `MEMORY.md` decides whether everything outside core memory is ever read. A directory with no useful entry here is effectively lost.
|
|
88
|
+
|
|
89
|
+
- Give each directory a one-line entry saying when to open it, in the words a future request would use: "deployments, rollbacks, on-call runbooks", not "ops notes".
|
|
90
|
+
- Name a specific deeper file when its topic would not be guessable from the directory entry.
|
|
91
|
+
- Say what kinds of questions should send the agent to memory before it answers from assumption, such as an unfamiliar person, project, or system named in the conversation.
|
|
92
|
+
- Do not re-index root files or skills; both are already in the prompt.
|
|
93
|
+
- After adding a directory or file, check that a natural future request would reach it by reading only root `MEMORY.md` and the indexes beneath it.
|
|
94
|
+
|
|
95
|
+
## Shrink before you grow
|
|
96
|
+
|
|
97
|
+
When a root file is long or the total is near its limit:
|
|
98
|
+
|
|
99
|
+
1. Delete stale, duplicated, or rederivable content.
|
|
100
|
+
2. Move subject detail into deferred memory and leave a one-line pointer in root `MEMORY.md`.
|
|
101
|
+
3. Move procedures into skills.
|