@letta-ai/letta-code 0.34.11 → 0.34.13

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.
Files changed (70) hide show
  1. package/dist/app-server-client.cjs +2 -2
  2. package/dist/app-server-client.cjs.map +3 -3
  3. package/dist/app-server-client.js +2 -2
  4. package/dist/app-server-client.js.map +3 -3
  5. package/dist/mcp-client.js +2 -2
  6. package/dist/mcp-client.js.map +1 -1
  7. package/dist/mcp-oauth.js +2 -2
  8. package/dist/mcp-oauth.js.map +1 -1
  9. package/dist/types/agent/organization-id.d.ts +33 -0
  10. package/dist/types/agent/organization-id.d.ts.map +1 -0
  11. package/dist/types/agent/skills.d.ts.map +1 -1
  12. package/dist/types/agent/subagent-state.d.ts +4 -0
  13. package/dist/types/agent/subagent-state.d.ts.map +1 -1
  14. package/dist/types/agent/subagents/index.d.ts.map +1 -1
  15. package/dist/types/auth/oauth.d.ts +2 -0
  16. package/dist/types/auth/oauth.d.ts.map +1 -1
  17. package/dist/types/backend/api/environments.d.ts +2 -0
  18. package/dist/types/backend/api/environments.d.ts.map +1 -1
  19. package/dist/types/backend/api/metadata.d.ts +5 -1
  20. package/dist/types/backend/api/metadata.d.ts.map +1 -1
  21. package/dist/types/cli/subcommands/mcp.d.ts +2 -1
  22. package/dist/types/cli/subcommands/mcp.d.ts.map +1 -1
  23. package/dist/types/tools/impl/claude-stream-session.d.ts +3 -0
  24. package/dist/types/tools/impl/claude-stream-session.d.ts.map +1 -1
  25. package/dist/types/tools/impl/codex-app-server.d.ts +6 -0
  26. package/dist/types/tools/impl/codex-app-server.d.ts.map +1 -1
  27. package/dist/types/tools/impl/external-coding-agent-task.d.ts +2 -1
  28. package/dist/types/tools/impl/external-coding-agent-task.d.ts.map +1 -1
  29. package/dist/types/tools/impl/external-coding-agent.d.ts +7 -1
  30. package/dist/types/tools/impl/external-coding-agent.d.ts.map +1 -1
  31. package/dist/types/tools/impl/external-tool-call.d.ts +11 -0
  32. package/dist/types/tools/impl/external-tool-call.d.ts.map +1 -0
  33. package/dist/types/tools/impl/kill-bash.d.ts.map +1 -1
  34. package/dist/types/tools/impl/monitor-backup.d.ts +43 -0
  35. package/dist/types/tools/impl/monitor-backup.d.ts.map +1 -0
  36. package/dist/types/tools/impl/monitor.d.ts +2 -0
  37. package/dist/types/tools/impl/monitor.d.ts.map +1 -1
  38. package/dist/types/tools/impl/opencode-server.d.ts +36 -0
  39. package/dist/types/tools/impl/opencode-server.d.ts.map +1 -0
  40. package/dist/types/tools/impl/opencode-session.d.ts +47 -0
  41. package/dist/types/tools/impl/opencode-session.d.ts.map +1 -0
  42. package/dist/types/tools/impl/remote-external-coding-agent.d.ts +53 -0
  43. package/dist/types/tools/impl/remote-external-coding-agent.d.ts.map +1 -0
  44. package/dist/types/tools/impl/send-agent-message.d.ts.map +1 -1
  45. package/dist/types/tools/impl/shell-env.d.ts.map +1 -1
  46. package/dist/types/tools/impl/task.d.ts +4 -0
  47. package/dist/types/tools/impl/task.d.ts.map +1 -1
  48. package/dist/types/tools/impl/workflow.d.ts +6 -3
  49. package/dist/types/tools/impl/workflow.d.ts.map +1 -1
  50. package/dist/types/tools/workflow/journal.d.ts +1 -1
  51. package/dist/types/tools/workflow/journal.d.ts.map +1 -1
  52. package/dist/types/tools/workflow/types.d.ts +16 -7
  53. package/dist/types/tools/workflow/types.d.ts.map +1 -1
  54. package/dist/types/tools/workflow/workflow-engine.d.ts.map +1 -1
  55. package/dist/types/types/app-server-info.d.ts +4 -0
  56. package/dist/types/types/app-server-info.d.ts.map +1 -1
  57. package/dist/types/types/file-write-protocol.d.ts +41 -0
  58. package/dist/types/types/file-write-protocol.d.ts.map +1 -0
  59. package/dist/types/types/protocol_v2.d.ts +5 -19
  60. package/dist/types/types/protocol_v2.d.ts.map +1 -1
  61. package/dist/types/types/subagent-protocol.d.ts +13 -0
  62. package/dist/types/types/subagent-protocol.d.ts.map +1 -1
  63. package/letta.js +5457 -4088
  64. package/npm-shrinkwrap.json +69 -69
  65. package/package.json +2 -2
  66. package/scripts/source-file-size-baseline.json +2 -2
  67. package/skills/creating-skills/scripts/package-skill.ts +18 -8
  68. package/skills/managing-agent-webhooks/SKILL.md +305 -0
  69. package/skills/managing-agent-webhooks/scripts/manage-agent-webhooks.mjs +1364 -0
  70. package/skills/workflow-authoring/SKILL.md +18 -13
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@letta-ai/letta-code",
3
- "version": "0.34.11",
3
+ "version": "0.34.13",
4
4
  "lockfileVersion": 3,
5
5
  "packages": {
6
6
  "node_modules/@alcalzone/ansi-tokenize": {
@@ -61,9 +61,9 @@
61
61
  }
62
62
  },
63
63
  "node_modules/@aws-sdk/core": {
64
- "version": "3.978.2",
65
- "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.978.2.tgz",
66
- "integrity": "sha512-ViOBLuGSSyPAmkKGJ6KJXtVN7MOEp3rnI7uH+kWxnHccvo8C9cvunEAnN5/oaZH1laQfsTBw7IOnmNkWlFZl2A==",
64
+ "version": "3.978.3",
65
+ "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.978.3.tgz",
66
+ "integrity": "sha512-nslpzUCTI9b2IQMWSd6mSAXldBexPc8rr0d3dXUutXYFLFaTdsHa2GD7sJdsn3PhyjK0O5K8ypd6zi+RXXPVlg==",
67
67
  "license": "Apache-2.0",
68
68
  "dependencies": {
69
69
  "@aws-sdk/types": "^3.974.6",
@@ -80,12 +80,12 @@
80
80
  }
81
81
  },
82
82
  "node_modules/@aws-sdk/credential-provider-env": {
83
- "version": "3.972.73",
84
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.73.tgz",
85
- "integrity": "sha512-PxlFZiF5IPUsPnuVSqjM9jlmRwZhL0xx40ccWfZiLQS8TRnHQpegpK1uAidatWuEqbJtbbY97A2Sezikz2AMUw==",
83
+ "version": "3.972.74",
84
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.74.tgz",
85
+ "integrity": "sha512-rsRJcW2iFUhCgclyD6OSbMEaPl8Eu0qSeRZb2uuCK1ViZ66hl5wOe/p6Vr6MO3b+ydyKgFeqza2p6tZThvILlw==",
86
86
  "license": "Apache-2.0",
87
87
  "dependencies": {
88
- "@aws-sdk/core": "^3.978.2",
88
+ "@aws-sdk/core": "^3.978.3",
89
89
  "@aws-sdk/types": "^3.974.6",
90
90
  "@smithy/core": "^3.35.2",
91
91
  "@smithy/types": "^4.19.0",
@@ -96,12 +96,12 @@
96
96
  }
97
97
  },
98
98
  "node_modules/@aws-sdk/credential-provider-http": {
99
- "version": "3.972.75",
100
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.75.tgz",
101
- "integrity": "sha512-Q/uIDy8eAVN7JgSKDg16F/f+hmNJj/ZyLJN8AkW2ofVdDgJVh8fO/A26iZ7YsvM2/k76hsf/u2lLAtyXsK8Ziw==",
99
+ "version": "3.972.76",
100
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.76.tgz",
101
+ "integrity": "sha512-pnKdh0Br7OJPj+7qKjzgTfDTFW0RhEMKXNDR2jv9CAM4oHuG/4z3hRh8KtutLfpmItuRtDbKBmwWkDqHwwAWXw==",
102
102
  "license": "Apache-2.0",
103
103
  "dependencies": {
104
- "@aws-sdk/core": "^3.978.2",
104
+ "@aws-sdk/core": "^3.978.3",
105
105
  "@aws-sdk/types": "^3.974.6",
106
106
  "@smithy/core": "^3.35.2",
107
107
  "@smithy/fetch-http-handler": "^5.8.0",
@@ -114,19 +114,19 @@
114
114
  }
115
115
  },
116
116
  "node_modules/@aws-sdk/credential-provider-ini": {
117
- "version": "3.973.18",
118
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.973.18.tgz",
119
- "integrity": "sha512-KoyjZ9vdjuxEQ8obAH06xKP8H0WKqGhwUZLMqAOiS7G0xgUAht4X8f0ASLC/vhNLCWGblZOD3VQHWyTROGJHLg==",
117
+ "version": "3.973.19",
118
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.973.19.tgz",
119
+ "integrity": "sha512-kcjvAxqQEV8yuwkX58RelNn3ne65o7JgRWf3Z/gVvbi7Xuw1qSDLJlatrLD76+40cmRxmNkLxBoyp/vAQChQ5g==",
120
120
  "license": "Apache-2.0",
121
121
  "dependencies": {
122
- "@aws-sdk/core": "^3.978.2",
123
- "@aws-sdk/credential-provider-env": "^3.972.73",
124
- "@aws-sdk/credential-provider-http": "^3.972.75",
125
- "@aws-sdk/credential-provider-login": "^3.972.80",
126
- "@aws-sdk/credential-provider-process": "^3.972.73",
127
- "@aws-sdk/credential-provider-sso": "^3.973.17",
128
- "@aws-sdk/credential-provider-web-identity": "^3.972.79",
129
- "@aws-sdk/nested-clients": "^3.997.47",
122
+ "@aws-sdk/core": "^3.978.3",
123
+ "@aws-sdk/credential-provider-env": "^3.972.74",
124
+ "@aws-sdk/credential-provider-http": "^3.972.76",
125
+ "@aws-sdk/credential-provider-login": "^3.972.81",
126
+ "@aws-sdk/credential-provider-process": "^3.972.74",
127
+ "@aws-sdk/credential-provider-sso": "^3.973.18",
128
+ "@aws-sdk/credential-provider-web-identity": "^3.972.80",
129
+ "@aws-sdk/nested-clients": "^3.997.48",
130
130
  "@aws-sdk/types": "^3.974.6",
131
131
  "@smithy/core": "^3.35.2",
132
132
  "@smithy/credential-provider-imds": "^4.5.2",
@@ -138,13 +138,13 @@
138
138
  }
139
139
  },
140
140
  "node_modules/@aws-sdk/credential-provider-login": {
141
- "version": "3.972.80",
142
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.80.tgz",
143
- "integrity": "sha512-xF9A0gaO7k+1dYPFoo69OQatA9Ov0QuDZfqE8H0FLyIoOph+mlEC+I1Qo9UULupGuDfSYh+kVpfcDSxSYf/2fg==",
141
+ "version": "3.972.81",
142
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.81.tgz",
143
+ "integrity": "sha512-CeQHSbE2CnVdaHIJ/NayRaCecIER+Pm9faUPkmRATO54rCoMTEPSbVieGHzEwvm1dZM2HIs6qQZCznhayNTWJQ==",
144
144
  "license": "Apache-2.0",
145
145
  "dependencies": {
146
- "@aws-sdk/core": "^3.978.2",
147
- "@aws-sdk/nested-clients": "^3.997.47",
146
+ "@aws-sdk/core": "^3.978.3",
147
+ "@aws-sdk/nested-clients": "^3.997.48",
148
148
  "@aws-sdk/types": "^3.974.6",
149
149
  "@smithy/core": "^3.35.2",
150
150
  "@smithy/types": "^4.19.0",
@@ -155,17 +155,17 @@
155
155
  }
156
156
  },
157
157
  "node_modules/@aws-sdk/credential-provider-node": {
158
- "version": "3.972.85",
159
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.85.tgz",
160
- "integrity": "sha512-CrFcML/xImiSlquH4W3V6Npz3aSkPXHDVciAU1JOBN0vqjmkcz9H9up2sCHQqN76J/WrT+TJ580L8h2joksQrg==",
158
+ "version": "3.972.86",
159
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.86.tgz",
160
+ "integrity": "sha512-WNttSyr6e8innPtBSty//CdnqJcgZN6eAbtw3v/CR2IObz6MYZEo8eusdtuCHJ2ujwFqC2bSPHVyhXGHx8HruQ==",
161
161
  "license": "Apache-2.0",
162
162
  "dependencies": {
163
- "@aws-sdk/credential-provider-env": "^3.972.73",
164
- "@aws-sdk/credential-provider-http": "^3.972.75",
165
- "@aws-sdk/credential-provider-ini": "^3.973.18",
166
- "@aws-sdk/credential-provider-process": "^3.972.73",
167
- "@aws-sdk/credential-provider-sso": "^3.973.17",
168
- "@aws-sdk/credential-provider-web-identity": "^3.972.79",
163
+ "@aws-sdk/credential-provider-env": "^3.972.74",
164
+ "@aws-sdk/credential-provider-http": "^3.972.76",
165
+ "@aws-sdk/credential-provider-ini": "^3.973.19",
166
+ "@aws-sdk/credential-provider-process": "^3.972.74",
167
+ "@aws-sdk/credential-provider-sso": "^3.973.18",
168
+ "@aws-sdk/credential-provider-web-identity": "^3.972.80",
169
169
  "@aws-sdk/types": "^3.974.6",
170
170
  "@smithy/core": "^3.35.2",
171
171
  "@smithy/credential-provider-imds": "^4.5.2",
@@ -177,12 +177,12 @@
177
177
  }
178
178
  },
179
179
  "node_modules/@aws-sdk/credential-provider-process": {
180
- "version": "3.972.73",
181
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.73.tgz",
182
- "integrity": "sha512-tyNnT4aVuOEXmKKKZPExBi828vRd9heshobBsKF0bov5EORHSJc1AGsHOMRP57sDt+dIuVASUOywaixiX26t4g==",
180
+ "version": "3.972.74",
181
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.74.tgz",
182
+ "integrity": "sha512-Yj6kZFJQdbR+PygTkqdVLPHHpdDpOS9GCYVcDCuweCRRig9LF24ELQBMfyUw1vspvrZJUfnOGVyMjhaL094ahw==",
183
183
  "license": "Apache-2.0",
184
184
  "dependencies": {
185
- "@aws-sdk/core": "^3.978.2",
185
+ "@aws-sdk/core": "^3.978.3",
186
186
  "@aws-sdk/types": "^3.974.6",
187
187
  "@smithy/core": "^3.35.2",
188
188
  "@smithy/types": "^4.19.0",
@@ -193,14 +193,14 @@
193
193
  }
194
194
  },
195
195
  "node_modules/@aws-sdk/credential-provider-sso": {
196
- "version": "3.973.17",
197
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.973.17.tgz",
198
- "integrity": "sha512-gxKTWaUk2gSbBOH4m3NPRfEKcGXeDAOgHr7nNG5JktR1xZLo0R+DpMjbcleoHbB0uJREOG7hjIRE635IuBWsRQ==",
196
+ "version": "3.973.18",
197
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.973.18.tgz",
198
+ "integrity": "sha512-FnpPhdY4qUGtX/8X6eKxh+uD+9Y19i9FYibgk4SBe0M935s9vocHkHzaxaMNk+YkHmvzgdu8cHA5SCoeU+kkew==",
199
199
  "license": "Apache-2.0",
200
200
  "dependencies": {
201
- "@aws-sdk/core": "^3.978.2",
202
- "@aws-sdk/nested-clients": "^3.997.47",
203
- "@aws-sdk/token-providers": "3.1149.0",
201
+ "@aws-sdk/core": "^3.978.3",
202
+ "@aws-sdk/nested-clients": "^3.997.48",
203
+ "@aws-sdk/token-providers": "3.1150.0",
204
204
  "@aws-sdk/types": "^3.974.6",
205
205
  "@smithy/core": "^3.35.2",
206
206
  "@smithy/types": "^4.19.0",
@@ -211,13 +211,13 @@
211
211
  }
212
212
  },
213
213
  "node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers": {
214
- "version": "3.1149.0",
215
- "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1149.0.tgz",
216
- "integrity": "sha512-CAwYyA8eVk1w6h8YgLvkjIOakWPwURaUFrP7BRVgkxTFUM+O87thyKsGKJ6rVPbP8eoEV10cBWQ5YfaYl3qSVQ==",
214
+ "version": "3.1150.0",
215
+ "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1150.0.tgz",
216
+ "integrity": "sha512-wDU36ofhabZYu+d2KSriyDbwzxNoaOp+4dG0p3qkabk7HeALR5nIWyQbjoyJZLn3iqWkv/xNdyUfbfevDVDzzg==",
217
217
  "license": "Apache-2.0",
218
218
  "dependencies": {
219
- "@aws-sdk/core": "^3.978.2",
220
- "@aws-sdk/nested-clients": "^3.997.47",
219
+ "@aws-sdk/core": "^3.978.3",
220
+ "@aws-sdk/nested-clients": "^3.997.48",
221
221
  "@aws-sdk/types": "^3.974.6",
222
222
  "@smithy/core": "^3.35.2",
223
223
  "@smithy/types": "^4.19.0",
@@ -228,13 +228,13 @@
228
228
  }
229
229
  },
230
230
  "node_modules/@aws-sdk/credential-provider-web-identity": {
231
- "version": "3.972.79",
232
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.79.tgz",
233
- "integrity": "sha512-/jn0Gs/qm6fs6nTIA5yncHayybz42SATZ3rNxCEBYPJ9v69PLrDRgk07E9xTT2gpRcNmDXXbi27ZbuU06N0Z6Q==",
231
+ "version": "3.972.80",
232
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.80.tgz",
233
+ "integrity": "sha512-TJF25Ndwy2HxcVj6oxMgp8qVlJAawlExHYBXqhuC6Zt2m+A7WpdkjBD6QglNbiArlteYljZHEY3R7KKmno6ISA==",
234
234
  "license": "Apache-2.0",
235
235
  "dependencies": {
236
- "@aws-sdk/core": "^3.978.2",
237
- "@aws-sdk/nested-clients": "^3.997.47",
236
+ "@aws-sdk/core": "^3.978.3",
237
+ "@aws-sdk/nested-clients": "^3.997.48",
238
238
  "@aws-sdk/types": "^3.974.6",
239
239
  "@smithy/core": "^3.35.2",
240
240
  "@smithy/types": "^4.19.0",
@@ -275,12 +275,12 @@
275
275
  }
276
276
  },
277
277
  "node_modules/@aws-sdk/middleware-websocket": {
278
- "version": "3.972.55",
279
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-websocket/-/middleware-websocket-3.972.55.tgz",
280
- "integrity": "sha512-dHlEl3sCn1Cu+qddPoz5RxjgGCXEzs/pbrh/rDRaOeb/Tz//FF59hacDvy7kvUn19mkm2nQRjhpzBnX+Ye37Qw==",
278
+ "version": "3.972.56",
279
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-websocket/-/middleware-websocket-3.972.56.tgz",
280
+ "integrity": "sha512-32d9EnnNM5UMwjVp/qnL0K4XYiZv+YlSbULI3BaoBdJvebAS6cD0bKfPJ7lzovN0qrelvmSh5jo/3tk0KoTuGQ==",
281
281
  "license": "Apache-2.0",
282
282
  "dependencies": {
283
- "@aws-sdk/core": "^3.978.2",
283
+ "@aws-sdk/core": "^3.978.3",
284
284
  "@aws-sdk/types": "^3.974.6",
285
285
  "@smithy/core": "^3.35.2",
286
286
  "@smithy/fetch-http-handler": "^5.8.0",
@@ -293,12 +293,12 @@
293
293
  }
294
294
  },
295
295
  "node_modules/@aws-sdk/nested-clients": {
296
- "version": "3.997.47",
297
- "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.47.tgz",
298
- "integrity": "sha512-bovCKvDsLocNTzaj6VrrMVJ2BGROqO0JlwcGseO67a+I9Bo+08nUJhSQfZUIx4+A4a7I4101GEJd/AYm7dQ68w==",
296
+ "version": "3.997.48",
297
+ "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.48.tgz",
298
+ "integrity": "sha512-B01jdXJtAW/XOiUzGdI2mz67WyEHbGEc9X6Euzw3bjLAa+txTqdZDER4X2FsIEcXzV2ABqudVZ5thali8tCCzQ==",
299
299
  "license": "Apache-2.0",
300
300
  "dependencies": {
301
- "@aws-sdk/core": "^3.978.2",
301
+ "@aws-sdk/core": "^3.978.3",
302
302
  "@aws-sdk/signature-v4-multi-region": "^3.996.48",
303
303
  "@aws-sdk/types": "^3.974.6",
304
304
  "@smithy/core": "^3.35.2",
@@ -5423,9 +5423,9 @@
5423
5423
  "license": "MIT"
5424
5424
  },
5425
5425
  "node_modules/zod": {
5426
- "version": "4.6.6",
5427
- "resolved": "https://registry.npmjs.org/zod/-/zod-4.6.6.tgz",
5428
- "integrity": "sha512-4UmzQUF5fxvfcYHlbjBmejU+w+hbDnWFx4aS8kBx7nPBHcO2SqPbpAG8snbdg+Xse4pRefR98hgjFgIMCI/UhA==",
5426
+ "version": "4.6.7",
5427
+ "resolved": "https://registry.npmjs.org/zod/-/zod-4.6.7.tgz",
5428
+ "integrity": "sha512-g8W2D2kU6a8untc053fX1uVBKzM7yqAxW/3zwk83+6RyF2+SKOuV+c0wBDhUwzV1PaGapmZH+rmcUzPf+3CGwg==",
5429
5429
  "license": "MIT",
5430
5430
  "funding": {
5431
5431
  "url": "https://github.com/sponsors/colinhacks"
@@ -5452,7 +5452,7 @@
5452
5452
  },
5453
5453
  "": {
5454
5454
  "name": "@letta-ai/letta-code",
5455
- "version": "0.34.11",
5455
+ "version": "0.34.13",
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.11",
3
+ "version": "0.34.13",
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-R2czT+w/9GF9edoE5k4YkzYyy9hALZjCA1uusJFAsnBKCQHlzE+5Kv4ZIVrBOA1oHPHcr8c08zc00L4q8oYLjA=="
278
+ "lettaRuntimeGraphSha512": "sha512-e4G3j5ptNvvFrEnNOyxKkZ+xrND+PRBC8uUsUg6KH8ddii955bM5uckdtNUSiGvZARq83+ELyFlMMwh/Ek5UqA=="
279
279
  }
@@ -35,10 +35,10 @@
35
35
  "src/settings-manager.ts": 2092,
36
36
  "src/tools/manager.ts": 2609,
37
37
  "src/tools/tool-execution-context.test.ts": 1092,
38
- "src/types/protocol_v2.ts": 2544,
38
+ "src/types/protocol_v2.ts": 2531,
39
39
  "src/websocket/listen-client-concurrency.test.ts": 2557,
40
40
  "src/websocket/listen-client-protocol.test.ts": 5707,
41
41
  "src/websocket/listener/commands/memory.ts": 1114,
42
- "src/websocket/listener/file-commands.ts": 1053,
42
+ "src/websocket/listener/file-commands.ts": 1045,
43
43
  "src/websocket/listener/protocol-inbound.ts": 2055
44
44
  }
@@ -18,11 +18,11 @@ import {
18
18
  statSync,
19
19
  writeFileSync,
20
20
  } from "node:fs";
21
- import { basename, dirname, join, relative, resolve } from "node:path";
21
+ import { basename, dirname, join, relative, resolve, sep } from "node:path";
22
22
  import { fileURLToPath } from "node:url";
23
23
  // Simple zip implementation using Node.js built-in zlib
24
24
  // For a proper zip file, we'll create the structure manually
25
- import { deflateSync } from "node:zlib";
25
+ import { deflateRawSync } from "node:zlib";
26
26
  import { validateSkill } from "./validate-skill";
27
27
 
28
28
  interface ZipEntry {
@@ -43,7 +43,7 @@ function createZip(entries: ZipEntry[]): Buffer {
43
43
  const pathBuffer = Buffer.from(entry.path, "utf8");
44
44
  const compressedData = entry.isDirectory
45
45
  ? Buffer.alloc(0)
46
- : deflateSync(entry.data);
46
+ : deflateRawSync(entry.data);
47
47
  const uncompressedSize = entry.isDirectory ? 0 : entry.data.length;
48
48
  const compressedSize = compressedData.length;
49
49
 
@@ -54,7 +54,7 @@ function createZip(entries: ZipEntry[]): Buffer {
54
54
  const localHeader = Buffer.alloc(30 + pathBuffer.length);
55
55
  localHeader.writeUInt32LE(0x04034b50, 0); // Local file header signature
56
56
  localHeader.writeUInt16LE(20, 4); // Version needed to extract
57
- localHeader.writeUInt16LE(0, 6); // General purpose bit flag
57
+ localHeader.writeUInt16LE(0x0800, 6); // General purpose bit flag (UTF-8 names)
58
58
  localHeader.writeUInt16LE(entry.isDirectory ? 0 : 8, 8); // Compression method (8 = deflate)
59
59
  localHeader.writeUInt16LE(0, 10); // File last modification time
60
60
  localHeader.writeUInt16LE(0, 12); // File last modification date
@@ -71,9 +71,9 @@ function createZip(entries: ZipEntry[]): Buffer {
71
71
  // Central directory header
72
72
  const centralHeader = Buffer.alloc(46 + pathBuffer.length);
73
73
  centralHeader.writeUInt32LE(0x02014b50, 0); // Central directory signature
74
- centralHeader.writeUInt16LE(20, 4); // Version made by
74
+ centralHeader.writeUInt16LE(0x0314, 4); // Version 2.0, made by Unix
75
75
  centralHeader.writeUInt16LE(20, 6); // Version needed to extract
76
- centralHeader.writeUInt16LE(0, 8); // General purpose bit flag
76
+ centralHeader.writeUInt16LE(0x0800, 8); // General purpose bit flag (UTF-8 names)
77
77
  centralHeader.writeUInt16LE(entry.isDirectory ? 0 : 8, 10); // Compression method
78
78
  centralHeader.writeUInt16LE(0, 12); // File last modification time
79
79
  centralHeader.writeUInt16LE(0, 14); // File last modification date
@@ -85,7 +85,10 @@ function createZip(entries: ZipEntry[]): Buffer {
85
85
  centralHeader.writeUInt16LE(0, 32); // File comment length
86
86
  centralHeader.writeUInt16LE(0, 34); // Disk number start
87
87
  centralHeader.writeUInt16LE(0, 36); // Internal file attributes
88
- centralHeader.writeUInt32LE(entry.isDirectory ? 0x10 : 0, 38); // External file attributes
88
+ const unixMode = entry.isDirectory ? 0o40755 : 0o100644;
89
+ const externalAttributes =
90
+ ((unixMode << 16) | (entry.isDirectory ? 0x10 : 0)) >>> 0;
91
+ centralHeader.writeUInt32LE(externalAttributes, 38); // Unix mode + DOS directory bit
89
92
  centralHeader.writeUInt32LE(offset, 42); // Relative offset of local header
90
93
  pathBuffer.copy(centralHeader, 46);
91
94
 
@@ -145,7 +148,7 @@ function getAllFiles(dir: string, baseDir: string): ZipEntry[] {
145
148
 
146
149
  for (const item of items) {
147
150
  const fullPath = join(dir, item.name);
148
- const relativePath = relative(baseDir, fullPath);
151
+ const relativePath = normalizeZipEntryPath(relative(baseDir, fullPath));
149
152
 
150
153
  if (item.isDirectory()) {
151
154
  entries.push({
@@ -166,6 +169,13 @@ function getAllFiles(dir: string, baseDir: string): ZipEntry[] {
166
169
  return entries;
167
170
  }
168
171
 
172
+ export function normalizeZipEntryPath(
173
+ relativePath: string,
174
+ separator = sep,
175
+ ): string {
176
+ return relativePath.split(separator).join("/");
177
+ }
178
+
169
179
  function packageSkill(skillPath: string, outputDir?: string): string | null {
170
180
  const resolvedPath = resolve(skillPath);
171
181