tabminal 3.0.19 → 3.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/public/styles.css +26 -0
- package/src/acp-manager.mjs +46 -38
package/package.json
CHANGED
package/public/styles.css
CHANGED
|
@@ -2945,6 +2945,28 @@ kbd {
|
|
|
2945
2945
|
color: var(--text-muted);
|
|
2946
2946
|
}
|
|
2947
2947
|
|
|
2948
|
+
.agent-message-body.markdown p,
|
|
2949
|
+
.agent-message-body.markdown li,
|
|
2950
|
+
.agent-message-body.markdown blockquote,
|
|
2951
|
+
.agent-message-body.markdown h1,
|
|
2952
|
+
.agent-message-body.markdown h2,
|
|
2953
|
+
.agent-message-body.markdown h3,
|
|
2954
|
+
.agent-message-body.markdown h4,
|
|
2955
|
+
.agent-message-body.markdown h5,
|
|
2956
|
+
.agent-message-body.markdown h6,
|
|
2957
|
+
.markdown-preview-sheet.markdown-body p,
|
|
2958
|
+
.markdown-preview-sheet.markdown-body li,
|
|
2959
|
+
.markdown-preview-sheet.markdown-body blockquote,
|
|
2960
|
+
.markdown-preview-sheet.markdown-body h1,
|
|
2961
|
+
.markdown-preview-sheet.markdown-body h2,
|
|
2962
|
+
.markdown-preview-sheet.markdown-body h3,
|
|
2963
|
+
.markdown-preview-sheet.markdown-body h4,
|
|
2964
|
+
.markdown-preview-sheet.markdown-body h5,
|
|
2965
|
+
.markdown-preview-sheet.markdown-body h6 {
|
|
2966
|
+
overflow-wrap: anywhere;
|
|
2967
|
+
word-break: break-word;
|
|
2968
|
+
}
|
|
2969
|
+
|
|
2948
2970
|
.agent-message-body.markdown code {
|
|
2949
2971
|
font: inherit;
|
|
2950
2972
|
font-size: 11px;
|
|
@@ -3609,6 +3631,10 @@ kbd {
|
|
|
3609
3631
|
}
|
|
3610
3632
|
|
|
3611
3633
|
@media (max-width: 767px) {
|
|
3634
|
+
.agent-command-menu {
|
|
3635
|
+
max-height: 152px;
|
|
3636
|
+
}
|
|
3637
|
+
|
|
3612
3638
|
.markdown-preview-scroll {
|
|
3613
3639
|
padding: 12px;
|
|
3614
3640
|
}
|
package/src/acp-manager.mjs
CHANGED
|
@@ -4193,46 +4193,52 @@ export class AcpManager {
|
|
|
4193
4193
|
|
|
4194
4194
|
#getSerializedTabs() {
|
|
4195
4195
|
const serializedTabs = Array.from(this.tabs.values()).map((entry) => {
|
|
4196
|
-
|
|
4197
|
-
|
|
4198
|
-
id: tab.id,
|
|
4199
|
-
agentId: tab.agentId,
|
|
4200
|
-
cwd: tab.cwd,
|
|
4201
|
-
acpSessionId: tab.acpSessionId,
|
|
4202
|
-
terminalSessionId: tab.terminalSessionId,
|
|
4203
|
-
createdAt: tab.createdAt,
|
|
4204
|
-
title: tab.title || '',
|
|
4205
|
-
currentModeId: tab.currentModeId || '',
|
|
4206
|
-
availableModes: Array.isArray(tab.availableModes)
|
|
4207
|
-
? cloneSerializable(tab.availableModes, [])
|
|
4208
|
-
: [],
|
|
4209
|
-
availableCommands: Array.isArray(tab.availableCommands)
|
|
4210
|
-
? cloneSerializable(tab.availableCommands, [])
|
|
4211
|
-
: [],
|
|
4212
|
-
configOptions: Array.isArray(tab.configOptions)
|
|
4213
|
-
? cloneSerializable(tab.configOptions, [])
|
|
4214
|
-
: [],
|
|
4215
|
-
messages: Array.isArray(tab.messages)
|
|
4216
|
-
? cloneSerializable(tab.messages, [])
|
|
4217
|
-
: [],
|
|
4218
|
-
toolCalls: Array.isArray(tab.toolCalls)
|
|
4219
|
-
? cloneSerializable(tab.toolCalls, [])
|
|
4220
|
-
: [],
|
|
4221
|
-
permissions: Array.isArray(tab.permissions)
|
|
4222
|
-
? cloneSerializable(tab.permissions, [])
|
|
4223
|
-
: [],
|
|
4224
|
-
plan: Array.isArray(tab.plan)
|
|
4225
|
-
? cloneSerializable(tab.plan, [])
|
|
4226
|
-
: [],
|
|
4227
|
-
usage: tab.usage ? cloneSerializable(tab.usage, null) : null,
|
|
4228
|
-
terminals: Array.isArray(tab.terminals)
|
|
4229
|
-
? cloneSerializable(tab.terminals, [])
|
|
4230
|
-
: []
|
|
4231
|
-
};
|
|
4232
|
-
});
|
|
4196
|
+
return cloneSerializable(entry.serialize(), null);
|
|
4197
|
+
}).filter(Boolean);
|
|
4233
4198
|
return dedupeSerializedTabs(serializedTabs).tabs;
|
|
4234
4199
|
}
|
|
4235
4200
|
|
|
4201
|
+
#serializePersistedTab(tab) {
|
|
4202
|
+
if (!tab || typeof tab !== 'object') {
|
|
4203
|
+
return null;
|
|
4204
|
+
}
|
|
4205
|
+
return {
|
|
4206
|
+
id: tab.id,
|
|
4207
|
+
agentId: tab.agentId,
|
|
4208
|
+
cwd: tab.cwd,
|
|
4209
|
+
acpSessionId: tab.acpSessionId,
|
|
4210
|
+
terminalSessionId: tab.terminalSessionId,
|
|
4211
|
+
createdAt: tab.createdAt,
|
|
4212
|
+
title: tab.title || '',
|
|
4213
|
+
currentModeId: tab.currentModeId || '',
|
|
4214
|
+
availableModes: Array.isArray(tab.availableModes)
|
|
4215
|
+
? cloneSerializable(tab.availableModes, [])
|
|
4216
|
+
: [],
|
|
4217
|
+
availableCommands: Array.isArray(tab.availableCommands)
|
|
4218
|
+
? cloneSerializable(tab.availableCommands, [])
|
|
4219
|
+
: [],
|
|
4220
|
+
configOptions: Array.isArray(tab.configOptions)
|
|
4221
|
+
? cloneSerializable(tab.configOptions, [])
|
|
4222
|
+
: [],
|
|
4223
|
+
messages: Array.isArray(tab.messages)
|
|
4224
|
+
? cloneSerializable(tab.messages, [])
|
|
4225
|
+
: [],
|
|
4226
|
+
toolCalls: Array.isArray(tab.toolCalls)
|
|
4227
|
+
? cloneSerializable(tab.toolCalls, [])
|
|
4228
|
+
: [],
|
|
4229
|
+
permissions: Array.isArray(tab.permissions)
|
|
4230
|
+
? cloneSerializable(tab.permissions, [])
|
|
4231
|
+
: [],
|
|
4232
|
+
plan: Array.isArray(tab.plan)
|
|
4233
|
+
? cloneSerializable(tab.plan, [])
|
|
4234
|
+
: [],
|
|
4235
|
+
usage: tab.usage ? cloneSerializable(tab.usage, null) : null,
|
|
4236
|
+
terminals: Array.isArray(tab.terminals)
|
|
4237
|
+
? cloneSerializable(tab.terminals, [])
|
|
4238
|
+
: []
|
|
4239
|
+
};
|
|
4240
|
+
}
|
|
4241
|
+
|
|
4236
4242
|
#findOpenSerializedTabBySessionId(sessionId) {
|
|
4237
4243
|
const targetSessionId = String(sessionId || '').trim();
|
|
4238
4244
|
if (!targetSessionId) {
|
|
@@ -4244,7 +4250,9 @@ export class AcpManager {
|
|
|
4244
4250
|
}
|
|
4245
4251
|
|
|
4246
4252
|
getPersistedTabs() {
|
|
4247
|
-
return this.#getSerializedTabs()
|
|
4253
|
+
return this.#getSerializedTabs()
|
|
4254
|
+
.map((tab) => this.#serializePersistedTab(tab))
|
|
4255
|
+
.filter(Boolean);
|
|
4248
4256
|
}
|
|
4249
4257
|
|
|
4250
4258
|
persistTabs() {
|