@saeeol/sdk 7.3.6 → 7.3.7

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.
@@ -4,6 +4,41 @@ export type ClientOptions = {
4
4
  baseUrl: `${string}://${string}` | (string & {})
5
5
  }
6
6
 
7
+ export type EventServerConnected = {
8
+ type: "server.connected"
9
+ properties: {
10
+ [key: string]: unknown
11
+ }
12
+ }
13
+
14
+ export type EventGlobalDisposed = {
15
+ type: "global.disposed"
16
+ properties: {
17
+ [key: string]: unknown
18
+ }
19
+ }
20
+
21
+ export type EventGlobalConfigUpdated = {
22
+ type: "global.config.updated"
23
+ properties: {
24
+ [key: string]: unknown
25
+ }
26
+ }
27
+
28
+ export type EventInstallationUpdated = {
29
+ type: "installation.updated"
30
+ properties: {
31
+ version: string
32
+ }
33
+ }
34
+
35
+ export type EventInstallationUpdateAvailable = {
36
+ type: "installation.update-available"
37
+ properties: {
38
+ version: string
39
+ }
40
+ }
41
+
7
42
  export type Project = {
8
43
  id: string
9
44
  worktree: string
@@ -40,39 +75,145 @@ export type EventServerInstanceDisposed = {
40
75
  }
41
76
  }
42
77
 
43
- export type EventServerConnected = {
44
- type: "server.connected"
78
+ export type EventTuiPromptAppend = {
79
+ type: "tui.prompt.append"
45
80
  properties: {
46
- [key: string]: unknown
81
+ text: string
47
82
  }
48
83
  }
49
84
 
50
- export type EventGlobalDisposed = {
51
- type: "global.disposed"
85
+ export type EventTuiCommandExecute = {
86
+ type: "tui.command.execute"
52
87
  properties: {
53
- [key: string]: unknown
88
+ command:
89
+ | "session.list"
90
+ | "session.new"
91
+ | "session.share"
92
+ | "session.interrupt"
93
+ | "session.compact"
94
+ | "session.page.up"
95
+ | "session.page.down"
96
+ | "session.line.up"
97
+ | "session.line.down"
98
+ | "session.half.page.up"
99
+ | "session.half.page.down"
100
+ | "session.first"
101
+ | "session.last"
102
+ | "prompt.clear"
103
+ | "prompt.submit"
104
+ | "agent.cycle"
105
+ | string
54
106
  }
55
107
  }
56
108
 
57
- export type EventGlobalConfigUpdated = {
58
- type: "global.config.updated"
109
+ export type EventTuiToastShow = {
110
+ type: "tui.toast.show"
59
111
  properties: {
60
- [key: string]: unknown
112
+ title?: string
113
+ message: string
114
+ variant: "info" | "success" | "warning" | "error"
115
+ /**
116
+ * Duration in milliseconds
117
+ */
118
+ duration?: number
61
119
  }
62
120
  }
63
121
 
64
- export type EventFileEdited = {
65
- type: "file.edited"
122
+ export type EventTuiSessionSelect = {
123
+ type: "tui.session.select"
66
124
  properties: {
67
- file: string
125
+ /**
126
+ * Session ID to navigate to
127
+ */
128
+ sessionID: string
68
129
  }
69
130
  }
70
131
 
71
- export type EventFileWatcherUpdated = {
72
- type: "file.watcher.updated"
132
+ export type IndexingStatusState = "Disabled" | "In Progress" | "Complete" | "Error" | "Standby"
133
+
134
+ export type IndexingStatus = {
135
+ state: IndexingStatusState
136
+ message: string
137
+ processedFiles: number
138
+ totalFiles: number
139
+ percent: number
140
+ }
141
+
142
+ export type EventIndexingStatus = {
143
+ type: "indexing.status"
73
144
  properties: {
74
- file: string
75
- event: "add" | "change" | "unlink"
145
+ status: IndexingStatus
146
+ }
147
+ }
148
+
149
+ export type EventMcpToolsChanged = {
150
+ type: "mcp.tools.changed"
151
+ properties: {
152
+ server: string
153
+ }
154
+ }
155
+
156
+ export type EventMcpBrowserOpenFailed = {
157
+ type: "mcp.browser.open.failed"
158
+ properties: {
159
+ mcpName: string
160
+ url: string
161
+ }
162
+ }
163
+
164
+ export type SessionNetworkWait = {
165
+ id: string
166
+ sessionID: string
167
+ message: string
168
+ restored: boolean
169
+ time: {
170
+ created: number
171
+ restored?: number
172
+ }
173
+ }
174
+
175
+ export type EventSessionNetworkAsked = {
176
+ type: "session.network.asked"
177
+ properties: SessionNetworkWait
178
+ }
179
+
180
+ export type EventSessionNetworkReplied = {
181
+ type: "session.network.replied"
182
+ properties: {
183
+ sessionID: string
184
+ requestID: string
185
+ }
186
+ }
187
+
188
+ export type EventSessionNetworkRejected = {
189
+ type: "session.network.rejected"
190
+ properties: {
191
+ sessionID: string
192
+ requestID: string
193
+ }
194
+ }
195
+
196
+ export type EventSessionNetworkRestored = {
197
+ type: "session.network.restored"
198
+ properties: {
199
+ sessionID: string
200
+ requestID: string
201
+ time: number
202
+ }
203
+ }
204
+
205
+ export type EventLspClientDiagnostics = {
206
+ type: "lsp.client.diagnostics"
207
+ properties: {
208
+ serverID: string
209
+ path: string
210
+ }
211
+ }
212
+
213
+ export type EventLspUpdated = {
214
+ type: "lsp.updated"
215
+ properties: {
216
+ [key: string]: unknown
76
217
  }
77
218
  }
78
219
 
@@ -177,139 +318,39 @@ export type EventQuestionRejected = {
177
318
  properties: QuestionRejected
178
319
  }
179
320
 
180
- export type EventLspClientDiagnostics = {
181
- type: "lsp.client.diagnostics"
182
- properties: {
183
- serverID: string
184
- path: string
185
- }
186
- }
187
-
188
- export type EventLspUpdated = {
189
- type: "lsp.updated"
190
- properties: {
191
- [key: string]: unknown
192
- }
193
- }
194
-
195
- export type EventTuiPromptAppend = {
196
- type: "tui.prompt.append"
197
- properties: {
198
- text: string
199
- }
200
- }
201
-
202
- export type EventTuiCommandExecute = {
203
- type: "tui.command.execute"
204
- properties: {
205
- command:
206
- | "session.list"
207
- | "session.new"
208
- | "session.share"
209
- | "session.interrupt"
210
- | "session.compact"
211
- | "session.page.up"
212
- | "session.page.down"
213
- | "session.line.up"
214
- | "session.line.down"
215
- | "session.half.page.up"
216
- | "session.half.page.down"
217
- | "session.first"
218
- | "session.last"
219
- | "prompt.clear"
220
- | "prompt.submit"
221
- | "agent.cycle"
222
- | string
223
- }
224
- }
225
-
226
- export type EventTuiToastShow = {
227
- type: "tui.toast.show"
228
- properties: {
229
- title?: string
230
- message: string
231
- variant: "info" | "success" | "warning" | "error"
232
- /**
233
- * Duration in milliseconds
234
- */
235
- duration?: number
236
- }
237
- }
238
-
239
- export type EventTuiSessionSelect = {
240
- type: "tui.session.select"
241
- properties: {
242
- /**
243
- * Session ID to navigate to
244
- */
245
- sessionID: string
246
- }
247
- }
248
-
249
- export type EventMcpToolsChanged = {
250
- type: "mcp.tools.changed"
251
- properties: {
252
- server: string
253
- }
254
- }
255
-
256
- export type EventMcpBrowserOpenFailed = {
257
- type: "mcp.browser.open.failed"
258
- properties: {
259
- mcpName: string
260
- url: string
261
- }
262
- }
263
-
264
- export type SessionNetworkWait = {
265
- id: string
266
- sessionID: string
267
- message: string
268
- restored: boolean
269
- time: {
270
- created: number
271
- restored?: number
272
- }
273
- }
274
-
275
- export type EventSessionNetworkAsked = {
276
- type: "session.network.asked"
277
- properties: SessionNetworkWait
278
- }
279
-
280
- export type EventSessionNetworkReplied = {
281
- type: "session.network.replied"
321
+ export type EventMessagePartDelta = {
322
+ type: "message.part.delta"
282
323
  properties: {
283
324
  sessionID: string
284
- requestID: string
325
+ messageID: string
326
+ partID: string
327
+ field: string
328
+ delta: string
285
329
  }
286
330
  }
287
331
 
288
- export type EventSessionNetworkRejected = {
289
- type: "session.network.rejected"
332
+ export type EventProviderInstallStarted = {
333
+ type: "provider.install.started"
290
334
  properties: {
291
- sessionID: string
292
- requestID: string
335
+ providerID: string
336
+ pkg: string
293
337
  }
294
338
  }
295
339
 
296
- export type EventSessionNetworkRestored = {
297
- type: "session.network.restored"
340
+ export type EventProviderInstallCompleted = {
341
+ type: "provider.install.completed"
298
342
  properties: {
299
- sessionID: string
300
- requestID: string
301
- time: number
343
+ providerID: string
344
+ pkg: string
302
345
  }
303
346
  }
304
347
 
305
- export type EventMessagePartDelta = {
306
- type: "message.part.delta"
348
+ export type EventProviderInstallFailed = {
349
+ type: "provider.install.failed"
307
350
  properties: {
308
- sessionID: string
309
- messageID: string
310
- partID: string
311
- field: string
312
- delta: string
351
+ providerID: string
352
+ pkg: string
353
+ error: string
313
354
  }
314
355
  }
315
356
 
@@ -449,17 +490,18 @@ export type EventSessionError = {
449
490
  }
450
491
  }
451
492
 
452
- export type EventInstallationUpdated = {
453
- type: "installation.updated"
493
+ export type EventFileEdited = {
494
+ type: "file.edited"
454
495
  properties: {
455
- version: string
496
+ file: string
456
497
  }
457
498
  }
458
499
 
459
- export type EventInstallationUpdateAvailable = {
460
- type: "installation.update-available"
500
+ export type EventFileWatcherUpdated = {
501
+ type: "file.watcher.updated"
461
502
  properties: {
462
- version: string
503
+ file: string
504
+ event: "add" | "change" | "unlink"
463
505
  }
464
506
  }
465
507
 
@@ -620,6 +662,50 @@ export type EventSaeeolAgentManagerStart = {
620
662
  }
621
663
  }
622
664
 
665
+ export type EventLtmMemoryStored = {
666
+ type: "ltm.memory.stored"
667
+ properties: {
668
+ id: string
669
+ type: string
670
+ source: string
671
+ }
672
+ }
673
+
674
+ export type EventLtmMemoryPruned = {
675
+ type: "ltm.memory.pruned"
676
+ properties: {
677
+ count: number
678
+ type?: string
679
+ }
680
+ }
681
+
682
+ export type EventLtmIndexingProgress = {
683
+ type: "ltm.indexing.progress"
684
+ properties: {
685
+ processed: number
686
+ total: number
687
+ type: string
688
+ }
689
+ }
690
+
691
+ export type EventLtmEmbedderStatus = {
692
+ type: "ltm.embedder.status"
693
+ properties: {
694
+ status: string
695
+ model?: string
696
+ }
697
+ }
698
+
699
+ export type EventLtmHardwareProfiled = {
700
+ type: "ltm.hardware.profiled"
701
+ properties: {
702
+ gpuCount: number
703
+ totalVRAMMB: number
704
+ totalRAMMB: number
705
+ cpuCores: number
706
+ }
707
+ }
708
+
623
709
  export type EventVcsBranchUpdated = {
624
710
  type: "vcs.branch.updated"
625
711
  properties: {
@@ -627,8 +713,8 @@ export type EventVcsBranchUpdated = {
627
713
  }
628
714
  }
629
715
 
630
- export type EventSaeeolSessionsRemoteStatusChanged = {
631
- type: "saeeol-sessions.remote-status-changed"
716
+ export type EventSessionsRemoteStatusChanged = {
717
+ type: "sessions.remote-status-changed"
632
718
  properties: {
633
719
  enabled: boolean
634
720
  connected: boolean
@@ -1103,68 +1189,66 @@ export type EventMessagePartUpdated = {
1103
1189
  export type EventMessagePartRemoved = {
1104
1190
  type: "message.part.removed"
1105
1191
  properties: {
1106
- sessionID: string
1107
- messageID: string
1108
- partID: string
1109
- }
1110
- }
1111
-
1112
- export type SnapshotSummaryFileDiff = {
1113
- file: string
1114
- additions: number
1115
- deletions: number
1116
- status?: "added" | "deleted" | "modified"
1117
- }
1118
-
1119
- export type PermissionAction = "allow" | "deny" | "ask"
1120
-
1121
- export type PermissionRule = {
1122
- permission: string
1123
- pattern: string
1124
- action: PermissionAction
1125
- }
1126
-
1127
- export type PermissionRuleset = Array<PermissionRule>
1128
-
1129
- export type Session = {
1130
- id: string
1131
- slug: string
1132
- projectID: string
1133
- workspaceID?: string
1134
- directory: string
1135
- path?: string
1136
- parentID?: string
1137
- summary?: {
1138
- additions: number
1139
- deletions: number
1140
- files: number
1141
- diffs?: Array<SnapshotSummaryFileDiff>
1142
- }
1143
- share?: {
1144
- url: string
1145
- }
1146
- title: string
1147
- version: string
1148
- time: {
1149
- created: number
1150
- updated: number
1151
- compacting?: number
1152
- archived?: number
1153
- }
1154
- permission?: PermissionRuleset
1155
- revert?: {
1192
+ sessionID: string
1156
1193
  messageID: string
1157
- partID?: string
1158
- snapshot?: string
1159
- diff?: string
1194
+ partID: string
1160
1195
  }
1161
1196
  }
1162
1197
 
1198
+ export type SnapshotSummaryFileDiff = {
1199
+ file: string
1200
+ additions: number
1201
+ deletions: number
1202
+ status?: "added" | "deleted" | "modified"
1203
+ }
1204
+
1205
+ export type PermissionAction = "allow" | "deny" | "ask"
1206
+
1207
+ export type PermissionRule = {
1208
+ permission: string
1209
+ pattern: string
1210
+ action: PermissionAction
1211
+ }
1212
+
1213
+ export type PermissionRuleset = Array<PermissionRule>
1214
+
1163
1215
  export type EventSessionCreated = {
1164
1216
  type: "session.created"
1165
1217
  properties: {
1166
1218
  sessionID: string
1167
- info: Session
1219
+ info: {
1220
+ id: string
1221
+ slug: string
1222
+ projectID: string
1223
+ workspaceID?: string
1224
+ directory: string
1225
+ path?: string
1226
+ parentID?: string
1227
+ summary?: {
1228
+ additions: number
1229
+ deletions: number
1230
+ files: number
1231
+ diffs?: Array<SnapshotSummaryFileDiff>
1232
+ }
1233
+ share?: {
1234
+ url: string
1235
+ }
1236
+ title: string
1237
+ version: string
1238
+ time: {
1239
+ created: number
1240
+ updated: number
1241
+ compacting?: number
1242
+ archived?: number
1243
+ }
1244
+ permission?: PermissionRuleset
1245
+ revert?: {
1246
+ messageID: string
1247
+ partID?: string
1248
+ snapshot?: string
1249
+ diff?: string
1250
+ }
1251
+ }
1168
1252
  }
1169
1253
  }
1170
1254
 
@@ -1172,7 +1256,39 @@ export type EventSessionUpdated = {
1172
1256
  type: "session.updated"
1173
1257
  properties: {
1174
1258
  sessionID: string
1175
- info: Session
1259
+ info: {
1260
+ id: string
1261
+ slug: string
1262
+ projectID: string
1263
+ workspaceID?: string
1264
+ directory: string
1265
+ path?: string
1266
+ parentID?: string
1267
+ summary?: {
1268
+ additions: number
1269
+ deletions: number
1270
+ files: number
1271
+ diffs?: Array<SnapshotSummaryFileDiff>
1272
+ }
1273
+ share?: {
1274
+ url: string
1275
+ }
1276
+ title: string
1277
+ version: string
1278
+ time: {
1279
+ created: number
1280
+ updated: number
1281
+ compacting?: number
1282
+ archived?: number
1283
+ }
1284
+ permission?: PermissionRuleset
1285
+ revert?: {
1286
+ messageID: string
1287
+ partID?: string
1288
+ snapshot?: string
1289
+ diff?: string
1290
+ }
1291
+ }
1176
1292
  }
1177
1293
  }
1178
1294
 
@@ -1180,24 +1296,39 @@ export type EventSessionDeleted = {
1180
1296
  type: "session.deleted"
1181
1297
  properties: {
1182
1298
  sessionID: string
1183
- info: Session
1184
- }
1185
- }
1186
-
1187
- export type IndexingStatusState = "Disabled" | "In Progress" | "Complete" | "Error" | "Standby"
1188
-
1189
- export type IndexingStatus = {
1190
- state: IndexingStatusState
1191
- message: string
1192
- processedFiles: number
1193
- totalFiles: number
1194
- percent: number
1195
- }
1196
-
1197
- export type EventIndexingStatus = {
1198
- type: "indexing.status"
1199
- properties: {
1200
- status: IndexingStatus
1299
+ info: {
1300
+ id: string
1301
+ slug: string
1302
+ projectID: string
1303
+ workspaceID?: string
1304
+ directory: string
1305
+ path?: string
1306
+ parentID?: string
1307
+ summary?: {
1308
+ additions: number
1309
+ deletions: number
1310
+ files: number
1311
+ diffs?: Array<SnapshotSummaryFileDiff>
1312
+ }
1313
+ share?: {
1314
+ url: string
1315
+ }
1316
+ title: string
1317
+ version: string
1318
+ time: {
1319
+ created: number
1320
+ updated: number
1321
+ compacting?: number
1322
+ archived?: number
1323
+ }
1324
+ permission?: PermissionRuleset
1325
+ revert?: {
1326
+ messageID: string
1327
+ partID?: string
1328
+ snapshot?: string
1329
+ diff?: string
1330
+ }
1331
+ }
1201
1332
  }
1202
1333
  }
1203
1334
 
@@ -1259,7 +1390,39 @@ export type SyncEventSessionCreated = {
1259
1390
  aggregateID: "sessionID"
1260
1391
  data: {
1261
1392
  sessionID: string
1262
- info: Session
1393
+ info: {
1394
+ id: string
1395
+ slug: string
1396
+ projectID: string
1397
+ workspaceID?: string
1398
+ directory: string
1399
+ path?: string
1400
+ parentID?: string
1401
+ summary?: {
1402
+ additions: number
1403
+ deletions: number
1404
+ files: number
1405
+ diffs?: Array<SnapshotSummaryFileDiff>
1406
+ }
1407
+ share?: {
1408
+ url: string
1409
+ }
1410
+ title: string
1411
+ version: string
1412
+ time: {
1413
+ created: number
1414
+ updated: number
1415
+ compacting?: number
1416
+ archived?: number
1417
+ }
1418
+ permission?: PermissionRuleset
1419
+ revert?: {
1420
+ messageID: string
1421
+ partID?: string
1422
+ snapshot?: string
1423
+ diff?: string
1424
+ }
1425
+ }
1263
1426
  }
1264
1427
  }
1265
1428
 
@@ -1315,7 +1478,39 @@ export type SyncEventSessionDeleted = {
1315
1478
  aggregateID: "sessionID"
1316
1479
  data: {
1317
1480
  sessionID: string
1318
- info: Session
1481
+ info: {
1482
+ id: string
1483
+ slug: string
1484
+ projectID: string
1485
+ workspaceID?: string
1486
+ directory: string
1487
+ path?: string
1488
+ parentID?: string
1489
+ summary?: {
1490
+ additions: number
1491
+ deletions: number
1492
+ files: number
1493
+ diffs?: Array<SnapshotSummaryFileDiff>
1494
+ }
1495
+ share?: {
1496
+ url: string
1497
+ }
1498
+ title: string
1499
+ version: string
1500
+ time: {
1501
+ created: number
1502
+ updated: number
1503
+ compacting?: number
1504
+ archived?: number
1505
+ }
1506
+ permission?: PermissionRuleset
1507
+ revert?: {
1508
+ messageID: string
1509
+ partID?: string
1510
+ snapshot?: string
1511
+ diff?: string
1512
+ }
1513
+ }
1319
1514
  }
1320
1515
  }
1321
1516
 
@@ -1324,37 +1519,41 @@ export type GlobalEvent = {
1324
1519
  project?: string
1325
1520
  workspace?: string
1326
1521
  payload:
1327
- | EventProjectUpdated
1328
- | EventServerInstanceDisposed
1329
1522
  | EventServerConnected
1330
1523
  | EventGlobalDisposed
1331
1524
  | EventGlobalConfigUpdated
1332
- | EventFileEdited
1333
- | EventFileWatcherUpdated
1334
- | EventQuestionAsked
1335
- | EventQuestionReplied
1336
- | EventQuestionRejected
1337
- | EventLspClientDiagnostics
1338
- | EventLspUpdated
1525
+ | EventInstallationUpdated
1526
+ | EventInstallationUpdateAvailable
1527
+ | EventProjectUpdated
1528
+ | EventServerInstanceDisposed
1339
1529
  | EventTuiPromptAppend
1340
1530
  | EventTuiCommandExecute
1341
1531
  | EventTuiToastShow
1342
1532
  | EventTuiSessionSelect
1533
+ | EventIndexingStatus
1343
1534
  | EventMcpToolsChanged
1344
1535
  | EventMcpBrowserOpenFailed
1345
1536
  | EventSessionNetworkAsked
1346
1537
  | EventSessionNetworkReplied
1347
1538
  | EventSessionNetworkRejected
1348
1539
  | EventSessionNetworkRestored
1540
+ | EventLspClientDiagnostics
1541
+ | EventLspUpdated
1542
+ | EventQuestionAsked
1543
+ | EventQuestionReplied
1544
+ | EventQuestionRejected
1349
1545
  | EventMessagePartDelta
1546
+ | EventProviderInstallStarted
1547
+ | EventProviderInstallCompleted
1548
+ | EventProviderInstallFailed
1350
1549
  | EventPermissionAsked
1351
1550
  | EventPermissionReplied
1352
1551
  | EventSessionTurnOpen
1353
1552
  | EventSessionTurnClose
1354
1553
  | EventSessionDiff
1355
1554
  | EventSessionError
1356
- | EventInstallationUpdated
1357
- | EventInstallationUpdateAvailable
1555
+ | EventFileEdited
1556
+ | EventFileWatcherUpdated
1358
1557
  | EventTodoUpdated
1359
1558
  | EventSessionStatus
1360
1559
  | EventSessionIdle
@@ -1364,8 +1563,13 @@ export type GlobalEvent = {
1364
1563
  | EventSessionCompacted
1365
1564
  | EventCommandExecuted
1366
1565
  | EventSaeeolAgentManagerStart
1566
+ | EventLtmMemoryStored
1567
+ | EventLtmMemoryPruned
1568
+ | EventLtmIndexingProgress
1569
+ | EventLtmEmbedderStatus
1570
+ | EventLtmHardwareProfiled
1367
1571
  | EventVcsBranchUpdated
1368
- | EventSaeeolSessionsRemoteStatusChanged
1572
+ | EventSessionsRemoteStatusChanged
1369
1573
  | EventWorkspaceReady
1370
1574
  | EventWorkspaceFailed
1371
1575
  | EventWorkspaceRestore
@@ -1383,7 +1587,6 @@ export type GlobalEvent = {
1383
1587
  | EventSessionCreated
1384
1588
  | EventSessionUpdated
1385
1589
  | EventSessionDeleted
1386
- | EventIndexingStatus
1387
1590
  | SyncEventMessageUpdated
1388
1591
  | SyncEventMessageRemoved
1389
1592
  | SyncEventMessagePartUpdated
@@ -2070,6 +2273,22 @@ export type Config = {
2070
2273
  * Token buffer for compaction. Leaves enough window to avoid overflow during compaction.
2071
2274
  */
2072
2275
  reserved?: number
2276
+ /**
2277
+ * Number of messages per batch during /compact (default: 10)
2278
+ */
2279
+ batch_size?: number
2280
+ /**
2281
+ * Number of oldest batches to summarize during auto-compaction (default: 5)
2282
+ */
2283
+ auto_batches?: number
2284
+ /**
2285
+ * Messages to preserve at the start of each batch during /compact (default: 2)
2286
+ */
2287
+ keep_head?: number
2288
+ /**
2289
+ * Messages to preserve at the end of each batch during /compact (default: 2)
2290
+ */
2291
+ keep_tail?: number
2073
2292
  }
2074
2293
  experimental?: {
2075
2294
  disable_paste_summary?: boolean
@@ -2106,6 +2325,75 @@ export type Config = {
2106
2325
  */
2107
2326
  mcp_timeout?: number
2108
2327
  }
2328
+ /**
2329
+ * Long-term memory configuration with local embedding model
2330
+ */
2331
+ ltm?: {
2332
+ /**
2333
+ * Enable long-term memory with local embedding (default: false)
2334
+ */
2335
+ enabled?: boolean
2336
+ /**
2337
+ * Embedding model ID or 'auto' for VRAM-based selection (default: auto)
2338
+ */
2339
+ embedding_model?: string
2340
+ /**
2341
+ * Vector store backend (default: filesystem)
2342
+ */
2343
+ vector_store?: "filesystem" | "qdrant" | "chroma"
2344
+ /**
2345
+ * Maximum number of memories to retain (default: 10000)
2346
+ */
2347
+ max_memories?: number
2348
+ episodic?: {
2349
+ /**
2350
+ * Enable episodic (conversation) memory
2351
+ */
2352
+ enabled?: boolean
2353
+ /**
2354
+ * Summarize every N turns (default: 10)
2355
+ */
2356
+ summary_interval?: number
2357
+ /**
2358
+ * Days to retain episodic memories (default: 90)
2359
+ */
2360
+ retain_days?: number
2361
+ }
2362
+ semantic?: {
2363
+ /**
2364
+ * Enable semantic (code) memory
2365
+ */
2366
+ enabled?: boolean
2367
+ /**
2368
+ * Auto-index on file change (default: true)
2369
+ */
2370
+ index_on_file_change?: boolean
2371
+ }
2372
+ procedural?: {
2373
+ /**
2374
+ * Enable procedural (preference) memory
2375
+ */
2376
+ enabled?: boolean
2377
+ /**
2378
+ * Track coding style preferences (default: true)
2379
+ */
2380
+ track_preferences?: boolean
2381
+ }
2382
+ retrieval?: {
2383
+ /**
2384
+ * Number of memories to retrieve (default: 5)
2385
+ */
2386
+ top_k?: number
2387
+ /**
2388
+ * Minimum similarity score 0-1 (default: 0.7)
2389
+ */
2390
+ min_score?: number
2391
+ /**
2392
+ * Max tokens to inject into prompt (default: 2000)
2393
+ */
2394
+ max_tokens?: number
2395
+ }
2396
+ }
2109
2397
  }
2110
2398
 
2111
2399
  export type BadRequestError = {
@@ -2227,15 +2515,12 @@ export type Model = {
2227
2515
  [key: string]: unknown
2228
2516
  }
2229
2517
  }
2230
- recommendedIndex?: number
2231
- prompt?: "codex" | "gemini" | "beast" | "anthropic" | "trinity" | "anthropic_without_todo" | "ling" | "gpt55"
2232
- isFree?: boolean
2233
- ai_sdk_provider?: "alibaba" | "anthropic" | "openai" | "openai-compatible" | "openrouter"
2234
2518
  }
2235
2519
 
2236
2520
  export type Provider = {
2237
2521
  id: string
2238
2522
  name: string
2523
+ category: "local" | "custom" | "cloud"
2239
2524
  source: "env" | "config" | "custom" | "api"
2240
2525
  env: Array<string>
2241
2526
  key?: string
@@ -2253,16 +2538,6 @@ export type ConsoleState = {
2253
2538
  switchableOrgCount: number
2254
2539
  }
2255
2540
 
2256
- export type ToolIds = Array<string>
2257
-
2258
- export type ToolListItem = {
2259
- id: string
2260
- description: string
2261
- parameters: unknown
2262
- }
2263
-
2264
- export type ToolList = Array<ToolListItem>
2265
-
2266
2541
  export type Worktree = {
2267
2542
  name: string
2268
2543
  branch: string
@@ -2299,13 +2574,67 @@ export type WorktreeDiffItem = {
2299
2574
  stamp: string
2300
2575
  }
2301
2576
 
2302
- export type ProjectSummary = {
2303
- id: string
2304
- name?: string
2305
- worktree: string
2577
+ export type ToolIds = Array<string>
2578
+
2579
+ export type ToolListItem = {
2580
+ id: string
2581
+ description: string
2582
+ parameters: unknown
2583
+ }
2584
+
2585
+ export type ToolList = Array<ToolListItem>
2586
+
2587
+ export type ProjectSummary = {
2588
+ id: string
2589
+ name?: string
2590
+ worktree: string
2591
+ }
2592
+
2593
+ export type GlobalSession = {
2594
+ id: string
2595
+ slug: string
2596
+ projectID: string
2597
+ workspaceID?: string
2598
+ directory: string
2599
+ path?: string
2600
+ parentID?: string
2601
+ summary?: {
2602
+ additions: number
2603
+ deletions: number
2604
+ files: number
2605
+ diffs?: Array<SnapshotSummaryFileDiff>
2606
+ }
2607
+ share?: {
2608
+ url: string
2609
+ }
2610
+ title: string
2611
+ version: string
2612
+ time: {
2613
+ created: number
2614
+ updated: number
2615
+ compacting?: number
2616
+ archived?: number
2617
+ }
2618
+ permission?: PermissionRuleset
2619
+ revert?: {
2620
+ messageID: string
2621
+ partID?: string
2622
+ snapshot?: string
2623
+ diff?: string
2624
+ }
2625
+ project: ProjectSummary | null
2626
+ worktreeName?: string
2627
+ }
2628
+
2629
+ export type McpResource = {
2630
+ name: string
2631
+ uri: string
2632
+ description?: string
2633
+ mimeType?: string
2634
+ client: string
2306
2635
  }
2307
2636
 
2308
- export type GlobalSession = {
2637
+ export type Session = {
2309
2638
  id: string
2310
2639
  slug: string
2311
2640
  projectID: string
@@ -2337,16 +2666,6 @@ export type GlobalSession = {
2337
2666
  snapshot?: string
2338
2667
  diff?: string
2339
2668
  }
2340
- project: ProjectSummary | null
2341
- worktreeName?: string
2342
- }
2343
-
2344
- export type McpResource = {
2345
- name: string
2346
- uri: string
2347
- description?: string
2348
- mimeType?: string
2349
- client: string
2350
2669
  }
2351
2670
 
2352
2671
  export type TextPartInput = {
@@ -2483,37 +2802,41 @@ export type File = {
2483
2802
  }
2484
2803
 
2485
2804
  export type Event =
2486
- | EventProjectUpdated
2487
- | EventServerInstanceDisposed
2488
2805
  | EventServerConnected
2489
2806
  | EventGlobalDisposed
2490
2807
  | EventGlobalConfigUpdated
2491
- | EventFileEdited
2492
- | EventFileWatcherUpdated
2493
- | EventQuestionAsked
2494
- | EventQuestionReplied
2495
- | EventQuestionRejected
2496
- | EventLspClientDiagnostics
2497
- | EventLspUpdated
2808
+ | EventInstallationUpdated
2809
+ | EventInstallationUpdateAvailable
2810
+ | EventProjectUpdated
2811
+ | EventServerInstanceDisposed
2498
2812
  | EventTuiPromptAppend
2499
2813
  | EventTuiCommandExecute
2500
2814
  | EventTuiToastShow
2501
2815
  | EventTuiSessionSelect
2816
+ | EventIndexingStatus
2502
2817
  | EventMcpToolsChanged
2503
2818
  | EventMcpBrowserOpenFailed
2504
2819
  | EventSessionNetworkAsked
2505
2820
  | EventSessionNetworkReplied
2506
2821
  | EventSessionNetworkRejected
2507
2822
  | EventSessionNetworkRestored
2823
+ | EventLspClientDiagnostics
2824
+ | EventLspUpdated
2825
+ | EventQuestionAsked
2826
+ | EventQuestionReplied
2827
+ | EventQuestionRejected
2508
2828
  | EventMessagePartDelta
2829
+ | EventProviderInstallStarted
2830
+ | EventProviderInstallCompleted
2831
+ | EventProviderInstallFailed
2509
2832
  | EventPermissionAsked
2510
2833
  | EventPermissionReplied
2511
2834
  | EventSessionTurnOpen
2512
2835
  | EventSessionTurnClose
2513
2836
  | EventSessionDiff
2514
2837
  | EventSessionError
2515
- | EventInstallationUpdated
2516
- | EventInstallationUpdateAvailable
2838
+ | EventFileEdited
2839
+ | EventFileWatcherUpdated
2517
2840
  | EventTodoUpdated
2518
2841
  | EventSessionStatus
2519
2842
  | EventSessionIdle
@@ -2523,8 +2846,13 @@ export type Event =
2523
2846
  | EventSessionCompacted
2524
2847
  | EventCommandExecuted
2525
2848
  | EventSaeeolAgentManagerStart
2849
+ | EventLtmMemoryStored
2850
+ | EventLtmMemoryPruned
2851
+ | EventLtmIndexingProgress
2852
+ | EventLtmEmbedderStatus
2853
+ | EventLtmHardwareProfiled
2526
2854
  | EventVcsBranchUpdated
2527
- | EventSaeeolSessionsRemoteStatusChanged
2855
+ | EventSessionsRemoteStatusChanged
2528
2856
  | EventWorkspaceReady
2529
2857
  | EventWorkspaceFailed
2530
2858
  | EventWorkspaceRestore
@@ -2542,7 +2870,6 @@ export type Event =
2542
2870
  | EventSessionCreated
2543
2871
  | EventSessionUpdated
2544
2872
  | EventSessionDeleted
2545
- | EventIndexingStatus
2546
2873
 
2547
2874
  export type McpStatusConnected = {
2548
2875
  status: "connected"
@@ -3553,64 +3880,6 @@ export type ExperimentalConsoleSwitchOrgResponses = {
3553
3880
  export type ExperimentalConsoleSwitchOrgResponse =
3554
3881
  ExperimentalConsoleSwitchOrgResponses[keyof ExperimentalConsoleSwitchOrgResponses]
3555
3882
 
3556
- export type ToolIdsData = {
3557
- body?: never
3558
- path?: never
3559
- query?: {
3560
- directory?: string
3561
- workspace?: string
3562
- }
3563
- url: "/experimental/tool/ids"
3564
- }
3565
-
3566
- export type ToolIdsErrors = {
3567
- /**
3568
- * Bad request
3569
- */
3570
- 400: BadRequestError
3571
- }
3572
-
3573
- export type ToolIdsError = ToolIdsErrors[keyof ToolIdsErrors]
3574
-
3575
- export type ToolIdsResponses = {
3576
- /**
3577
- * Tool IDs
3578
- */
3579
- 200: ToolIds
3580
- }
3581
-
3582
- export type ToolIdsResponse = ToolIdsResponses[keyof ToolIdsResponses]
3583
-
3584
- export type ToolListData = {
3585
- body?: never
3586
- path?: never
3587
- query: {
3588
- directory?: string
3589
- workspace?: string
3590
- provider: string
3591
- model: string
3592
- }
3593
- url: "/experimental/tool"
3594
- }
3595
-
3596
- export type ToolListErrors = {
3597
- /**
3598
- * Bad request
3599
- */
3600
- 400: BadRequestError
3601
- }
3602
-
3603
- export type ToolListError = ToolListErrors[keyof ToolListErrors]
3604
-
3605
- export type ToolListResponses = {
3606
- /**
3607
- * Tools
3608
- */
3609
- 200: ToolList
3610
- }
3611
-
3612
- export type ToolListResponse = ToolListResponses[keyof ToolListResponses]
3613
-
3614
3883
  export type WorktreeRemoveData = {
3615
3884
  body?: WorktreeRemoveInput
3616
3885
  path?: never
@@ -3814,6 +4083,64 @@ export type WorktreeDiffFileResponses = {
3814
4083
 
3815
4084
  export type WorktreeDiffFileResponse = WorktreeDiffFileResponses[keyof WorktreeDiffFileResponses]
3816
4085
 
4086
+ export type ToolIdsData = {
4087
+ body?: never
4088
+ path?: never
4089
+ query?: {
4090
+ directory?: string
4091
+ workspace?: string
4092
+ }
4093
+ url: "/experimental/tool/ids"
4094
+ }
4095
+
4096
+ export type ToolIdsErrors = {
4097
+ /**
4098
+ * Bad request
4099
+ */
4100
+ 400: BadRequestError
4101
+ }
4102
+
4103
+ export type ToolIdsError = ToolIdsErrors[keyof ToolIdsErrors]
4104
+
4105
+ export type ToolIdsResponses = {
4106
+ /**
4107
+ * Tool IDs
4108
+ */
4109
+ 200: ToolIds
4110
+ }
4111
+
4112
+ export type ToolIdsResponse = ToolIdsResponses[keyof ToolIdsResponses]
4113
+
4114
+ export type ToolListData = {
4115
+ body?: never
4116
+ path?: never
4117
+ query: {
4118
+ directory?: string
4119
+ workspace?: string
4120
+ provider: string
4121
+ model: string
4122
+ }
4123
+ url: "/experimental/tool"
4124
+ }
4125
+
4126
+ export type ToolListErrors = {
4127
+ /**
4128
+ * Bad request
4129
+ */
4130
+ 400: BadRequestError
4131
+ }
4132
+
4133
+ export type ToolListError = ToolListErrors[keyof ToolListErrors]
4134
+
4135
+ export type ToolListResponses = {
4136
+ /**
4137
+ * Tools
4138
+ */
4139
+ 200: ToolList
4140
+ }
4141
+
4142
+ export type ToolListResponse = ToolListResponses[keyof ToolListResponses]
4143
+
3817
4144
  export type ExperimentalSessionListData = {
3818
4145
  body?: never
3819
4146
  path?: never
@@ -4228,6 +4555,19 @@ export type SessionForkData = {
4228
4555
  url: "/session/{sessionID}/fork"
4229
4556
  }
4230
4557
 
4558
+ export type SessionForkErrors = {
4559
+ /**
4560
+ * Bad request
4561
+ */
4562
+ 400: BadRequestError
4563
+ /**
4564
+ * Not found
4565
+ */
4566
+ 404: NotFoundError
4567
+ }
4568
+
4569
+ export type SessionForkError = SessionForkErrors[keyof SessionForkErrors]
4570
+
4231
4571
  export type SessionForkResponses = {
4232
4572
  /**
4233
4573
  * 200
@@ -4361,44 +4701,6 @@ export type SessionDiffResponses = {
4361
4701
 
4362
4702
  export type SessionDiffResponse = SessionDiffResponses[keyof SessionDiffResponses]
4363
4703
 
4364
- export type SessionSummarizeData = {
4365
- body?: {
4366
- providerID: string
4367
- modelID: string
4368
- auto?: boolean
4369
- }
4370
- path: {
4371
- sessionID: string
4372
- }
4373
- query?: {
4374
- directory?: string
4375
- workspace?: string
4376
- }
4377
- url: "/session/{sessionID}/summarize"
4378
- }
4379
-
4380
- export type SessionSummarizeErrors = {
4381
- /**
4382
- * Bad request
4383
- */
4384
- 400: BadRequestError
4385
- /**
4386
- * Not found
4387
- */
4388
- 404: NotFoundError
4389
- }
4390
-
4391
- export type SessionSummarizeError = SessionSummarizeErrors[keyof SessionSummarizeErrors]
4392
-
4393
- export type SessionSummarizeResponses = {
4394
- /**
4395
- * Summarized session
4396
- */
4397
- 200: boolean
4398
- }
4399
-
4400
- export type SessionSummarizeResponse = SessionSummarizeResponses[keyof SessionSummarizeResponses]
4401
-
4402
4704
  export type SessionMessagesData = {
4403
4705
  body?: never
4404
4706
  path: {
@@ -4802,6 +5104,44 @@ export type SessionShellResponses = {
4802
5104
 
4803
5105
  export type SessionShellResponse = SessionShellResponses[keyof SessionShellResponses]
4804
5106
 
5107
+ export type SessionSummarizeData = {
5108
+ body?: {
5109
+ providerID: string
5110
+ modelID: string
5111
+ auto?: boolean
5112
+ }
5113
+ path: {
5114
+ sessionID: string
5115
+ }
5116
+ query?: {
5117
+ directory?: string
5118
+ workspace?: string
5119
+ }
5120
+ url: "/session/{sessionID}/summarize"
5121
+ }
5122
+
5123
+ export type SessionSummarizeErrors = {
5124
+ /**
5125
+ * Bad request
5126
+ */
5127
+ 400: BadRequestError
5128
+ /**
5129
+ * Not found
5130
+ */
5131
+ 404: NotFoundError
5132
+ }
5133
+
5134
+ export type SessionSummarizeError = SessionSummarizeErrors[keyof SessionSummarizeErrors]
5135
+
5136
+ export type SessionSummarizeResponses = {
5137
+ /**
5138
+ * Summarized session
5139
+ */
5140
+ 200: boolean
5141
+ }
5142
+
5143
+ export type SessionSummarizeResponse = SessionSummarizeResponses[keyof SessionSummarizeResponses]
5144
+
4805
5145
  export type SessionRevertData = {
4806
5146
  body?: {
4807
5147
  messageID: string
@@ -6709,8 +7049,7 @@ export type SaeeolSessionImportProjectErrors = {
6709
7049
  400: BadRequestError
6710
7050
  }
6711
7051
 
6712
- export type SaeeolSessionImportProjectError =
6713
- SaeeolSessionImportProjectErrors[keyof SaeeolSessionImportProjectErrors]
7052
+ export type SaeeolSessionImportProjectError = SaeeolSessionImportProjectErrors[keyof SaeeolSessionImportProjectErrors]
6714
7053
 
6715
7054
  export type SaeeolSessionImportProjectResponses = {
6716
7055
  /**
@@ -6775,8 +7114,7 @@ export type SaeeolSessionImportSessionErrors = {
6775
7114
  400: BadRequestError
6776
7115
  }
6777
7116
 
6778
- export type SaeeolSessionImportSessionError =
6779
- SaeeolSessionImportSessionErrors[keyof SaeeolSessionImportSessionErrors]
7117
+ export type SaeeolSessionImportSessionError = SaeeolSessionImportSessionErrors[keyof SaeeolSessionImportSessionErrors]
6780
7118
 
6781
7119
  export type SaeeolSessionImportSessionResponses = {
6782
7120
  /**
@@ -6859,8 +7197,7 @@ export type SaeeolSessionImportMessageErrors = {
6859
7197
  400: BadRequestError
6860
7198
  }
6861
7199
 
6862
- export type SaeeolSessionImportMessageError =
6863
- SaeeolSessionImportMessageErrors[keyof SaeeolSessionImportMessageErrors]
7200
+ export type SaeeolSessionImportMessageError = SaeeolSessionImportMessageErrors[keyof SaeeolSessionImportMessageErrors]
6864
7201
 
6865
7202
  export type SaeeolSessionImportMessageResponses = {
6866
7203
  /**
@@ -6995,8 +7332,7 @@ export type SaeeolSessionImportPartResponses = {
6995
7332
  }
6996
7333
  }
6997
7334
 
6998
- export type SaeeolSessionImportPartResponse =
6999
- SaeeolSessionImportPartResponses[keyof SaeeolSessionImportPartResponses]
7335
+ export type SaeeolSessionImportPartResponse = SaeeolSessionImportPartResponses[keyof SaeeolSessionImportPartResponses]
7000
7336
 
7001
7337
  export type SaeeolHeapSnapshotData = {
7002
7338
  body?: never
@@ -7287,7 +7623,8 @@ export type SaeeolAudioTranscriptionsResponses = {
7287
7623
  }
7288
7624
  }
7289
7625
 
7290
- export type SaeeolAudioTranscriptionsResponse = SaeeolAudioTranscriptionsResponses[keyof SaeeolAudioTranscriptionsResponses]
7626
+ export type SaeeolAudioTranscriptionsResponse =
7627
+ SaeeolAudioTranscriptionsResponses[keyof SaeeolAudioTranscriptionsResponses]
7291
7628
 
7292
7629
  export type SaeeolNotificationsData = {
7293
7630
  body?: never
@@ -7452,7 +7789,8 @@ export type SaeeolClawChatCredentialsResponses = {
7452
7789
  } | null
7453
7790
  }
7454
7791
 
7455
- export type SaeeolClawChatCredentialsResponse = SaeeolClawChatCredentialsResponses[keyof SaeeolClawChatCredentialsResponses]
7792
+ export type SaeeolClawChatCredentialsResponse =
7793
+ SaeeolClawChatCredentialsResponses[keyof SaeeolClawChatCredentialsResponses]
7456
7794
 
7457
7795
  export type SaeeolCloudSessionsData = {
7458
7796
  body?: never