opencode-subagent-magazine 1.7.0 → 1.7.2
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/dist/_version.d.ts +1 -1
- package/dist/core/kv.d.ts +1 -0
- package/dist/core/types.d.ts +8 -0
- package/dist/i18n.d.ts +5 -0
- package/dist/panel/SubAgentPanel.d.ts +1 -0
- package/dist/panel/entry-map.d.ts +1 -0
- package/dist/panel/panel-api.d.ts +16 -0
- package/dist/tui.js +385 -218
- package/dist/v2/db.d.ts +14 -1
- package/dist/v2.js +473 -223
- package/package.json +17 -4
- package/dist/_version.js +0 -2
- package/dist/clipboard.js +0 -85
- package/dist/core/color.js +0 -68
- package/dist/core/format.js +0 -113
- package/dist/core/index.js +0 -6
- package/dist/core/kv.js +0 -63
- package/dist/core/state-machine.js +0 -27
- package/dist/core/types.js +0 -2
- package/dist/core/usage.js +0 -1
- package/dist/i18n.js +0 -333
- package/dist/index.js +0 -511
- package/dist/panel/SubAgentPanel.js +0 -1572
- package/dist/panel/entry-map.js +0 -99
- package/dist/panel/panel-api.js +0 -1
- package/dist/panel/session-routing.js +0 -4
- package/dist/panel/store.js +0 -5
- package/dist/server.js +0 -14
- package/dist/v2/commands.js +0 -420
- package/dist/v2/db.js +0 -267
- package/dist/v2/index.js +0 -83
- package/dist/v2/settings-menu.js +0 -225
- package/dist/v2/theme.js +0 -12
- package/dist/v2/types.js +0 -6
- package/dist/v2/v2-panel-api.js +0 -612
- package/src/_version.ts +0 -2
- package/src/clipboard.ts +0 -134
- package/src/core/color.ts +0 -70
- package/src/core/format.ts +0 -105
- package/src/core/index.ts +0 -6
- package/src/core/kv.ts +0 -77
- package/src/core/state-machine.ts +0 -46
- package/src/core/types.ts +0 -72
- package/src/core/usage.ts +0 -16
- package/src/i18n.ts +0 -345
- package/src/index.tsx +0 -564
- package/src/panel/SubAgentPanel.tsx +0 -1802
- package/src/panel/entry-map.ts +0 -115
- package/src/panel/panel-api.ts +0 -83
- package/src/panel/session-routing.ts +0 -10
- package/src/panel/store.ts +0 -8
- package/src/server.ts +0 -19
- package/src/v2/commands.ts +0 -408
- package/src/v2/db.ts +0 -274
- package/src/v2/index.tsx +0 -144
- package/src/v2/settings-menu.ts +0 -241
- package/src/v2/theme.ts +0 -14
- package/src/v2/types.ts +0 -167
- package/src/v2/v2-panel-api.ts +0 -515
package/dist/v2.js
CHANGED
|
@@ -17,6 +17,7 @@ var SETTING_KEYS = {
|
|
|
17
17
|
showEntryTime: `${KV_PREFIX}.show_entry_time`,
|
|
18
18
|
showEntryTokens: `${KV_PREFIX}.show_entry_tokens`,
|
|
19
19
|
timeFormat: `${KV_PREFIX}.time_format`,
|
|
20
|
+
showOrigin: `${KV_PREFIX}.show_origin`,
|
|
20
21
|
dbSync: `${KV_PREFIX}.db_sync`
|
|
21
22
|
};
|
|
22
23
|
function loadSessionData(kv) {
|
|
@@ -87,8 +88,17 @@ function contextTokens(tokens) {
|
|
|
87
88
|
const sum = (Number(t.input) || 0) + (Number(t.output) || 0) + (Number(t.reasoning) || 0) + (Number(cache.read) || 0) + (Number(cache.write) || 0);
|
|
88
89
|
return sum > 0 ? sum : void 0;
|
|
89
90
|
}
|
|
91
|
+
function isSessionActive(input) {
|
|
92
|
+
const { timeIdle, lastMessageType, lastMessageAt } = input;
|
|
93
|
+
if (lastMessageType === "idle") return false;
|
|
94
|
+
if (lastMessageAt === void 0) return false;
|
|
95
|
+
if (timeIdle === void 0) return true;
|
|
96
|
+
return lastMessageAt > timeIdle;
|
|
97
|
+
}
|
|
90
98
|
function statusOfChild(info) {
|
|
91
|
-
if (!info
|
|
99
|
+
if (!info) return void 0;
|
|
100
|
+
if (info.active === true) return void 0;
|
|
101
|
+
if (info.timeIdle == null) return void 0;
|
|
92
102
|
return info.idleOutcome === "interrupted" ? "cancelled" : "done";
|
|
93
103
|
}
|
|
94
104
|
function findDbPath(env = process.env, home = safeHomedir()) {
|
|
@@ -126,11 +136,19 @@ var LAST_ASSISTANT_SQL = `
|
|
|
126
136
|
FROM session_message
|
|
127
137
|
WHERE session_id = ? AND type = 'assistant' AND json_extract(data, '$.tokens.output') > 0
|
|
128
138
|
ORDER BY seq DESC LIMIT 1`;
|
|
139
|
+
var LAST_MESSAGE_SQL = `
|
|
140
|
+
SELECT type, COALESCE(time_updated, time_created) AS at
|
|
141
|
+
FROM session_message WHERE session_id = ? ORDER BY seq DESC LIMIT 1`;
|
|
129
142
|
var ASSISTANT_COST_SQL = `
|
|
130
143
|
SELECT COUNT(*) AS n, SUM(COALESCE(json_extract(data, '$.cost'), 0)) AS total
|
|
131
144
|
FROM session_message WHERE session_id = ? AND type = 'assistant'`;
|
|
132
145
|
var CHILDREN_SQL = `
|
|
133
|
-
SELECT id, agent,
|
|
146
|
+
SELECT id, agent, title, model, cost,
|
|
147
|
+
tokens_input, tokens_output, tokens_reasoning, tokens_cache_read, tokens_cache_write,
|
|
148
|
+
time_created, time_idle, idle_outcome
|
|
149
|
+
FROM session_v2
|
|
150
|
+
WHERE parent_id = ? AND (fork_session_id IS NULL OR fork_session_id = '')
|
|
151
|
+
ORDER BY time_created`;
|
|
134
152
|
var num = (v) => {
|
|
135
153
|
const n = Number(v);
|
|
136
154
|
return Number.isFinite(n) ? n : void 0;
|
|
@@ -233,6 +251,7 @@ function createSessionDbIndex(enabled) {
|
|
|
233
251
|
const row = db.query(CHILD_INFO_SQL).get(sid);
|
|
234
252
|
if (row) {
|
|
235
253
|
const last = db.query(LAST_ASSISTANT_SQL).get(sid);
|
|
254
|
+
const lastMsg = db.query(LAST_MESSAGE_SQL).get(sid);
|
|
236
255
|
let tokens = contextTokens(last ? {
|
|
237
256
|
input: last.input,
|
|
238
257
|
output: last.output,
|
|
@@ -258,7 +277,12 @@ function createSessionDbIndex(enabled) {
|
|
|
258
277
|
tokens,
|
|
259
278
|
timeCreated: num(row.time_created),
|
|
260
279
|
timeIdle: num(row.time_idle),
|
|
261
|
-
idleOutcome: str(row.idle_outcome)
|
|
280
|
+
idleOutcome: str(row.idle_outcome),
|
|
281
|
+
active: isSessionActive({
|
|
282
|
+
timeIdle: num(row.time_idle),
|
|
283
|
+
lastMessageType: str(lastMsg?.type),
|
|
284
|
+
lastMessageAt: num(lastMsg?.at)
|
|
285
|
+
})
|
|
262
286
|
};
|
|
263
287
|
}
|
|
264
288
|
} catch {
|
|
@@ -267,7 +291,45 @@ function createSessionDbIndex(enabled) {
|
|
|
267
291
|
infos.set(sid, { info: result, at: Date.now() });
|
|
268
292
|
return result;
|
|
269
293
|
};
|
|
270
|
-
|
|
294
|
+
const children = (parentId) => {
|
|
295
|
+
if (!ready() || !parentId) return void 0;
|
|
296
|
+
const now = Date.now();
|
|
297
|
+
let cached = childrenCache.get(parentId);
|
|
298
|
+
if (!cached || now - cached.at > CALL_MAP_TTL_MS) {
|
|
299
|
+
let list = [];
|
|
300
|
+
try {
|
|
301
|
+
list = db.query(CHILDREN_SQL).all(parentId);
|
|
302
|
+
} catch {
|
|
303
|
+
}
|
|
304
|
+
cached = { list, at: now };
|
|
305
|
+
childrenCache.set(parentId, cached);
|
|
306
|
+
}
|
|
307
|
+
const out = [];
|
|
308
|
+
for (const row of cached.list) {
|
|
309
|
+
const sid = str(row.id);
|
|
310
|
+
if (!sid) continue;
|
|
311
|
+
const full = info(sid);
|
|
312
|
+
if (full) {
|
|
313
|
+
out.push(full);
|
|
314
|
+
continue;
|
|
315
|
+
}
|
|
316
|
+
const agg = (num(row.tokens_input) || 0) + (num(row.tokens_output) || 0) + (num(row.tokens_reasoning) || 0) + (num(row.tokens_cache_read) || 0) + (num(row.tokens_cache_write) || 0);
|
|
317
|
+
out.push({
|
|
318
|
+
id: sid,
|
|
319
|
+
parentId,
|
|
320
|
+
agent: str(row.agent),
|
|
321
|
+
title: str(row.title),
|
|
322
|
+
model: modelIdOf(row.model),
|
|
323
|
+
cost: num(row.cost),
|
|
324
|
+
tokens: agg > 0 ? agg : void 0,
|
|
325
|
+
timeCreated: num(row.time_created),
|
|
326
|
+
timeIdle: num(row.time_idle),
|
|
327
|
+
idleOutcome: str(row.idle_outcome)
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
return out;
|
|
331
|
+
};
|
|
332
|
+
return { enabled: ready, resolveCall, matchChild, info, children };
|
|
271
333
|
}
|
|
272
334
|
|
|
273
335
|
// src/v2/v2-panel-api.ts
|
|
@@ -677,7 +739,9 @@ function createPanelApi(context, settings) {
|
|
|
677
739
|
} catch {
|
|
678
740
|
}
|
|
679
741
|
try {
|
|
680
|
-
|
|
742
|
+
const info = dbIndex?.info(sid);
|
|
743
|
+
if (info?.active === true) return { type: "busy" };
|
|
744
|
+
if (statusOfChild(info) !== void 0) return { type: "idle" };
|
|
681
745
|
} catch {
|
|
682
746
|
}
|
|
683
747
|
return void 0;
|
|
@@ -708,6 +772,13 @@ function createPanelApi(context, settings) {
|
|
|
708
772
|
} catch {
|
|
709
773
|
return void 0;
|
|
710
774
|
}
|
|
775
|
+
},
|
|
776
|
+
listChildren: (parentId) => {
|
|
777
|
+
try {
|
|
778
|
+
return dbIndex?.enabled() ? dbIndex.children(parentId) : void 0;
|
|
779
|
+
} catch {
|
|
780
|
+
return void 0;
|
|
781
|
+
}
|
|
711
782
|
}
|
|
712
783
|
},
|
|
713
784
|
event: {
|
|
@@ -862,13 +933,17 @@ function safeErrorMsg(err) {
|
|
|
862
933
|
}
|
|
863
934
|
|
|
864
935
|
// src/_version.ts
|
|
865
|
-
var PLUGIN_VERSION = "1.7.
|
|
936
|
+
var PLUGIN_VERSION = "1.7.2";
|
|
866
937
|
|
|
867
938
|
// src/i18n.ts
|
|
868
939
|
var ZH_T = {
|
|
869
940
|
"panel.title": "\u5B50\u4EE3\u7406",
|
|
870
941
|
"status.none": "\u6682\u65E0\u5B50\u4EE3\u7406",
|
|
871
942
|
"agent.label": "\u4EE3\u7406",
|
|
943
|
+
"origin.label": "\u6765\u6E90",
|
|
944
|
+
"origin.tool": "\u5B50\u4EE3\u7406\u8C03\u7528",
|
|
945
|
+
"origin.sub": "\u884D\u751F\u4F1A\u8BDD",
|
|
946
|
+
"origin.background": "\u540E\u53F0",
|
|
872
947
|
"status.label": "\u72B6\u6001",
|
|
873
948
|
"time.label": "\u8017\u65F6",
|
|
874
949
|
"tokens.label": "\u4E0A\u4E0B\u6587",
|
|
@@ -930,6 +1005,7 @@ var ZH_T = {
|
|
|
930
1005
|
"settings.showEntryTime": "\u5217\u8868\u4E2D\u663E\u793A\u8017\u65F6",
|
|
931
1006
|
"settings.showEntryTokens": "\u5217\u8868\u4E2D\u663E\u793A Token \u6570",
|
|
932
1007
|
"settings.timeFormat": "\u65F6\u95F4\u683C\u5F0F",
|
|
1008
|
+
"settings.showOrigin": "\u5217\u8868\u663E\u793A\u6765\u6E90\u6807\u8BB0",
|
|
933
1009
|
"settings.dbSync": "\u672C\u5730\u6570\u636E\u5E93\u8865\u5168",
|
|
934
1010
|
"settings.on": "\u5F00",
|
|
935
1011
|
"settings.off": "\u5173",
|
|
@@ -941,6 +1017,10 @@ var EN_T = {
|
|
|
941
1017
|
"panel.title": "SubAgent",
|
|
942
1018
|
"status.none": "No sub-agents yet",
|
|
943
1019
|
"agent.label": "agent",
|
|
1020
|
+
"origin.label": "origin",
|
|
1021
|
+
"origin.tool": "sub-agent call",
|
|
1022
|
+
"origin.sub": "spawned session",
|
|
1023
|
+
"origin.background": "background",
|
|
944
1024
|
"status.label": "status",
|
|
945
1025
|
"time.label": "time",
|
|
946
1026
|
"tokens.label": "tokens",
|
|
@@ -1001,6 +1081,7 @@ var EN_T = {
|
|
|
1001
1081
|
"settings.showEntryCost": "Cost per sub-agent",
|
|
1002
1082
|
"settings.showEntryTime": "Elapsed time in list",
|
|
1003
1083
|
"settings.showEntryTokens": "Token count in list",
|
|
1084
|
+
"settings.showOrigin": "Origin indicators in list",
|
|
1004
1085
|
"settings.timeFormat": "Time format",
|
|
1005
1086
|
"settings.dbSync": "Local database enrichment",
|
|
1006
1087
|
"settings.on": "on",
|
|
@@ -1013,6 +1094,10 @@ var JA_T = {
|
|
|
1013
1094
|
"panel.title": "\u30B5\u30D6\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8",
|
|
1014
1095
|
"status.none": "\u30B5\u30D6\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u306A\u3057",
|
|
1015
1096
|
"agent.label": "\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8",
|
|
1097
|
+
"origin.label": "\u767A\u751F\u5143",
|
|
1098
|
+
"origin.tool": "\u30B5\u30D6\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u547C\u3073\u51FA\u3057",
|
|
1099
|
+
"origin.sub": "\u751F\u6210\u3055\u308C\u305F\u30BB\u30C3\u30B7\u30E7\u30F3",
|
|
1100
|
+
"origin.background": "\u30D0\u30C3\u30AF\u30B0\u30E9\u30A6\u30F3\u30C9",
|
|
1016
1101
|
"status.label": "\u72B6\u614B",
|
|
1017
1102
|
"time.label": "\u6642\u9593",
|
|
1018
1103
|
"tokens.label": "\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8",
|
|
@@ -1073,6 +1158,7 @@ var JA_T = {
|
|
|
1073
1158
|
"settings.showEntryCost": "\u30B5\u30D6\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u6BCE\u306E\u8CBB\u7528",
|
|
1074
1159
|
"settings.showEntryTime": "\u4E00\u89A7\u306B\u6240\u8981\u6642\u9593\u3092\u8868\u793A",
|
|
1075
1160
|
"settings.showEntryTokens": "\u4E00\u89A7\u306B\u30C8\u30FC\u30AF\u30F3\u6570\u3092\u8868\u793A",
|
|
1161
|
+
"settings.showOrigin": "\u4E00\u89A7\u306B\u7531\u6765\u30DE\u30FC\u30AF\u3092\u8868\u793A",
|
|
1076
1162
|
"settings.timeFormat": "\u6642\u9593\u5F62\u5F0F",
|
|
1077
1163
|
"settings.dbSync": "\u30ED\u30FC\u30AB\u30EBDB\u88DC\u5B8C",
|
|
1078
1164
|
"settings.on": "\u30AA\u30F3",
|
|
@@ -1085,6 +1171,10 @@ var KO_T = {
|
|
|
1085
1171
|
"panel.title": "\uC11C\uBE0C \uC5D0\uC774\uC804\uD2B8",
|
|
1086
1172
|
"status.none": "\uC11C\uBE0C \uC5D0\uC774\uC804\uD2B8 \uC5C6\uC74C",
|
|
1087
1173
|
"agent.label": "\uC5D0\uC774\uC804\uD2B8",
|
|
1174
|
+
"origin.label": "\uCD9C\uCC98",
|
|
1175
|
+
"origin.tool": "\uD558\uC704 \uC5D0\uC774\uC804\uD2B8 \uD638\uCD9C",
|
|
1176
|
+
"origin.sub": "\uC0DD\uC131\uB41C \uC138\uC158",
|
|
1177
|
+
"origin.background": "\uBC31\uADF8\uB77C\uC6B4\uB4DC",
|
|
1088
1178
|
"status.label": "\uC0C1\uD0DC",
|
|
1089
1179
|
"time.label": "\uC2DC\uAC04",
|
|
1090
1180
|
"tokens.label": "\uCEE8\uD14D\uC2A4\uD2B8",
|
|
@@ -1145,6 +1235,7 @@ var KO_T = {
|
|
|
1145
1235
|
"settings.showEntryCost": "\uD558\uC704 \uC5D0\uC774\uC804\uD2B8\uBCC4 \uBE44\uC6A9",
|
|
1146
1236
|
"settings.showEntryTime": "\uBAA9\uB85D\uC5D0 \uC18C\uC694 \uC2DC\uAC04 \uD45C\uC2DC",
|
|
1147
1237
|
"settings.showEntryTokens": "\uBAA9\uB85D\uC5D0 \uD1A0\uD070 \uC218 \uD45C\uC2DC",
|
|
1238
|
+
"settings.showOrigin": "\uBAA9\uB85D\uC5D0 \uCD9C\uCC98 \uC544\uC774\uCF58 \uD45C\uC2DC",
|
|
1148
1239
|
"settings.timeFormat": "\uC2DC\uAC04 \uD615\uC2DD",
|
|
1149
1240
|
"settings.dbSync": "\uB85C\uCEEC DB \uBCF4\uC644",
|
|
1150
1241
|
"settings.on": "\uCF2C",
|
|
@@ -1207,7 +1298,7 @@ function upsertSubEntry(entries, partial, now = Date.now()) {
|
|
|
1207
1298
|
...partial,
|
|
1208
1299
|
id: existing?.id ?? partial.id,
|
|
1209
1300
|
startedAt: existing?.startedAt || partial.startedAt || now,
|
|
1210
|
-
endedAt: ended ? existing?.endedAt
|
|
1301
|
+
endedAt: ended ? existing?.endedAt ?? partial.endedAt ?? now : void 0
|
|
1211
1302
|
});
|
|
1212
1303
|
return next;
|
|
1213
1304
|
}
|
|
@@ -1300,6 +1391,7 @@ async function runSettingsMenu(context, api, signals) {
|
|
|
1300
1391
|
{ title: t("settings.showEntryTime"), value: "time", description: onOff(signals.showEntryTime()), category },
|
|
1301
1392
|
{ title: t("settings.timeFormat"), value: "timefmt", description: TIME_FORMAT_SAMPLES[signals.timeFormat()], category },
|
|
1302
1393
|
{ title: t("settings.showEntryTokens"), value: "tokens", description: onOff(signals.showEntryTokens()), category },
|
|
1394
|
+
{ title: t("settings.showOrigin"), value: "origin", description: onOff(signals.showOrigin()), category },
|
|
1303
1395
|
{ title: t("settings.dbSync"), value: "dbsync", description: onOff(signals.dbSync()), category },
|
|
1304
1396
|
{ title: t("settings.close"), value: "close" }
|
|
1305
1397
|
]
|
|
@@ -1448,6 +1540,21 @@ async function runSettingsMenu(context, api, signals) {
|
|
|
1448
1540
|
toast(t("settings.showEntryTokens"), onOff(picked));
|
|
1449
1541
|
}
|
|
1450
1542
|
}
|
|
1543
|
+
if (choice === "origin") {
|
|
1544
|
+
const picked = await context.ui.dialog.select({
|
|
1545
|
+
title: t("settings.showOrigin"),
|
|
1546
|
+
options: [
|
|
1547
|
+
{ title: t("settings.on"), value: true },
|
|
1548
|
+
{ title: t("settings.off"), value: false }
|
|
1549
|
+
],
|
|
1550
|
+
current: signals.showOrigin()
|
|
1551
|
+
});
|
|
1552
|
+
if (picked !== void 0) {
|
|
1553
|
+
signals.setShowOrigin(picked);
|
|
1554
|
+
kv.set(SETTING_KEYS.showOrigin, picked);
|
|
1555
|
+
toast(t("settings.showOrigin"), onOff(picked));
|
|
1556
|
+
}
|
|
1557
|
+
}
|
|
1451
1558
|
if (choice === "dbsync") {
|
|
1452
1559
|
const picked = await context.ui.dialog.select({
|
|
1453
1560
|
title: t("settings.dbSync"),
|
|
@@ -1578,6 +1685,7 @@ function makeCommands(context, api, signals) {
|
|
|
1578
1685
|
`${t("settings.showEntryCost")}: ${onOff(signals.showEntryCost())}`,
|
|
1579
1686
|
`${t("settings.showEntryTime")}: ${onOff(signals.showEntryTime())}`,
|
|
1580
1687
|
`${t("settings.showEntryTokens")}: ${onOff(signals.showEntryTokens())}`,
|
|
1688
|
+
`${t("settings.showOrigin")}: ${onOff(signals.showOrigin())}`,
|
|
1581
1689
|
`${t("settings.timeFormat")}: ${TIME_FORMAT_SAMPLES[signals.timeFormat()]}`,
|
|
1582
1690
|
`${t("settings.dbSync")}: ${onOff(signals.dbSync())}`
|
|
1583
1691
|
].join("\n");
|
|
@@ -1651,6 +1759,19 @@ function makeCommands(context, api, signals) {
|
|
|
1651
1759
|
api.ui.toast(`${t("settings.showEntryTokens")}: ${onOff(v)}`);
|
|
1652
1760
|
}
|
|
1653
1761
|
},
|
|
1762
|
+
{
|
|
1763
|
+
id: "opencode-subagent-magazine.subagent.origin",
|
|
1764
|
+
title: "SubAgent Magazine: Toggle Origin Indicators",
|
|
1765
|
+
description: "Show or hide origin markers (\u21E2 background / \u21B3 spawned) in the sidebar list",
|
|
1766
|
+
slash: { name: "subagent-origin" },
|
|
1767
|
+
palette: true,
|
|
1768
|
+
run: () => {
|
|
1769
|
+
const v = !signals.showOrigin();
|
|
1770
|
+
signals.setShowOrigin(v);
|
|
1771
|
+
kv.set(SETTING_KEYS.showOrigin, v);
|
|
1772
|
+
api.ui.toast(`${t("settings.showOrigin")}: ${onOff(v)}`);
|
|
1773
|
+
}
|
|
1774
|
+
},
|
|
1654
1775
|
{
|
|
1655
1776
|
id: "opencode-subagent-magazine.subagent.db",
|
|
1656
1777
|
title: "SubAgent Magazine: Toggle Local DB",
|
|
@@ -1983,6 +2104,11 @@ async function copyText(text) {
|
|
|
1983
2104
|
|
|
1984
2105
|
// src/core/types.ts
|
|
1985
2106
|
var SUBAGENT_TOOLS = /* @__PURE__ */ new Set(["task", "subagent", "delegate", "call_omo_agent"]);
|
|
2107
|
+
function isBackgroundInput(input) {
|
|
2108
|
+
if (!input || typeof input !== "object") return false;
|
|
2109
|
+
const i = input;
|
|
2110
|
+
return i.background === true || i.run_in_background === true;
|
|
2111
|
+
}
|
|
1986
2112
|
|
|
1987
2113
|
// src/core/color.ts
|
|
1988
2114
|
function rgb(raw) {
|
|
@@ -2438,7 +2564,8 @@ function SubAgentPanel(props) {
|
|
|
2438
2564
|
prompt,
|
|
2439
2565
|
sessionId: subSid,
|
|
2440
2566
|
status: "running",
|
|
2441
|
-
model: modelId
|
|
2567
|
+
model: modelId,
|
|
2568
|
+
origin: "sub"
|
|
2442
2569
|
});
|
|
2443
2570
|
}
|
|
2444
2571
|
if (part.type === "tool") {
|
|
@@ -2461,7 +2588,9 @@ function SubAgentPanel(props) {
|
|
|
2461
2588
|
agent: existing.agent,
|
|
2462
2589
|
prompt: existing.prompt,
|
|
2463
2590
|
sessionId: existing.sessionId ?? errorSid,
|
|
2464
|
-
status: "error"
|
|
2591
|
+
status: "error",
|
|
2592
|
+
origin: "tool",
|
|
2593
|
+
background: isBackgroundInput(st?.input)
|
|
2465
2594
|
});
|
|
2466
2595
|
}
|
|
2467
2596
|
return;
|
|
@@ -2469,7 +2598,7 @@ function SubAgentPanel(props) {
|
|
|
2469
2598
|
const input = st?.input;
|
|
2470
2599
|
let status = "running";
|
|
2471
2600
|
if (rawStatus === "completed") status = "done";
|
|
2472
|
-
if ((input
|
|
2601
|
+
if (isBackgroundInput(input) && status === "done") {
|
|
2473
2602
|
const stMetaCheck = partMetadata(part, st);
|
|
2474
2603
|
const hasChild = stMetaCheck?.session_id !== void 0 || stMetaCheck?.sessionId !== void 0;
|
|
2475
2604
|
if (hasChild) status = "running";
|
|
@@ -2487,7 +2616,9 @@ function SubAgentPanel(props) {
|
|
|
2487
2616
|
agent,
|
|
2488
2617
|
prompt,
|
|
2489
2618
|
sessionId: subSid,
|
|
2490
|
-
status
|
|
2619
|
+
status,
|
|
2620
|
+
origin: "tool",
|
|
2621
|
+
background: isBackgroundInput(input)
|
|
2491
2622
|
});
|
|
2492
2623
|
}
|
|
2493
2624
|
};
|
|
@@ -2848,7 +2979,7 @@ function SubAgentPanel(props) {
|
|
|
2848
2979
|
if (settled && !needsRepair) continue;
|
|
2849
2980
|
let status = "running";
|
|
2850
2981
|
if (rawStatus === "completed") status = "done";
|
|
2851
|
-
if ((scanInput
|
|
2982
|
+
if (isBackgroundInput(scanInput) && status === "done") {
|
|
2852
2983
|
if (scanSubSid !== void 0) status = "running";
|
|
2853
2984
|
}
|
|
2854
2985
|
if (status === "done" && scanSubSid) {
|
|
@@ -2897,7 +3028,9 @@ function SubAgentPanel(props) {
|
|
|
2897
3028
|
sessionId: exists?.sessionId ?? scanSubSid,
|
|
2898
3029
|
status,
|
|
2899
3030
|
startedAt: exists?.startedAt || Date.now(),
|
|
2900
|
-
endedAt: exists?.endedAt ?? (status === "done" ? Date.now() : void 0)
|
|
3031
|
+
endedAt: exists?.endedAt ?? (status === "done" ? Date.now() : void 0),
|
|
3032
|
+
origin: "tool",
|
|
3033
|
+
background: isBackgroundInput(scanInput) || exists?.background === true
|
|
2901
3034
|
});
|
|
2902
3035
|
if (entryKey !== id) next.delete(id);
|
|
2903
3036
|
}
|
|
@@ -2939,7 +3072,7 @@ function SubAgentPanel(props) {
|
|
|
2939
3072
|
const entry = key ? map.get(key) : void 0;
|
|
2940
3073
|
if (!entry) return true;
|
|
2941
3074
|
const input = st?.input;
|
|
2942
|
-
const isBackground = input
|
|
3075
|
+
const isBackground = isBackgroundInput(input);
|
|
2943
3076
|
const stillRunning = entry.status === "running" || entry.status === "cancel_requested";
|
|
2944
3077
|
if (rawStatus === "completed" && !isBackground && stillRunning) return true;
|
|
2945
3078
|
}
|
|
@@ -2975,6 +3108,60 @@ function SubAgentPanel(props) {
|
|
|
2975
3108
|
setEntryMapRaw((prev) => {
|
|
2976
3109
|
let changed = false;
|
|
2977
3110
|
const next = new Map(prev);
|
|
3111
|
+
if (tick % 4 === 0) {
|
|
3112
|
+
try {
|
|
3113
|
+
const children = props.api.session.listChildren?.(props.sessionId);
|
|
3114
|
+
if (children) {
|
|
3115
|
+
const linked = /* @__PURE__ */ new Set();
|
|
3116
|
+
for (const e of next.values()) if (e.sessionId) linked.add(e.sessionId);
|
|
3117
|
+
const {
|
|
3118
|
+
parentSid,
|
|
3119
|
+
isChild
|
|
3120
|
+
} = resolveParent(props.sessionId);
|
|
3121
|
+
const rec = loadSessionData2()[parentSid];
|
|
3122
|
+
const cleared = new Set(isChild ? rec?.children?.[props.sessionId]?.clearedIds : rec?.clearedIds);
|
|
3123
|
+
for (const child of children) {
|
|
3124
|
+
if (!child.id || linked.has(child.id)) continue;
|
|
3125
|
+
const id = `sub:${child.id}`;
|
|
3126
|
+
if (cleared.has(id)) continue;
|
|
3127
|
+
const finished = child.timeIdle != null && child.active !== true;
|
|
3128
|
+
const status = finished ? child.idleOutcome === "interrupted" ? "cancelled" : "done" : "running";
|
|
3129
|
+
next.set(id, {
|
|
3130
|
+
id,
|
|
3131
|
+
title: child.title ?? child.agent ?? "",
|
|
3132
|
+
agent: child.agent ?? "?",
|
|
3133
|
+
prompt: "",
|
|
3134
|
+
status,
|
|
3135
|
+
sessionId: child.id,
|
|
3136
|
+
startedAt: child.timeCreated ?? Date.now(),
|
|
3137
|
+
endedAt: finished ? child.timeIdle : void 0,
|
|
3138
|
+
tokens: child.tokens,
|
|
3139
|
+
cost: child.cost,
|
|
3140
|
+
model: child.model,
|
|
3141
|
+
origin: "sub"
|
|
3142
|
+
});
|
|
3143
|
+
changed = true;
|
|
3144
|
+
}
|
|
3145
|
+
}
|
|
3146
|
+
} catch {
|
|
3147
|
+
}
|
|
3148
|
+
for (const [id, entry] of next) {
|
|
3149
|
+
if (entry.status !== "done" && entry.status !== "error") continue;
|
|
3150
|
+
const sid = entry.sessionId;
|
|
3151
|
+
if (!sid) continue;
|
|
3152
|
+
try {
|
|
3153
|
+
if (props.api.session.status(sid)?.type === "busy") {
|
|
3154
|
+
next.set(id, {
|
|
3155
|
+
...entry,
|
|
3156
|
+
status: "running",
|
|
3157
|
+
endedAt: void 0
|
|
3158
|
+
});
|
|
3159
|
+
changed = true;
|
|
3160
|
+
}
|
|
3161
|
+
} catch {
|
|
3162
|
+
}
|
|
3163
|
+
}
|
|
3164
|
+
}
|
|
2978
3165
|
const candidates = [];
|
|
2979
3166
|
for (const [id, entry] of next) {
|
|
2980
3167
|
const running = entry.status === "running" || entry.status === "cancel_requested";
|
|
@@ -3541,6 +3728,12 @@ function SubAgentPanel(props) {
|
|
|
3541
3728
|
const tokenText = () => !isExpanded() && props.showEntryTokens() && entry.tokens !== void 0 && entry.tokens > 0 ? ` ${fmtTokens(entry.tokens)}` : "";
|
|
3542
3729
|
const costText = () => !isExpanded() && props.showEntryCost() && entry.cost !== void 0 && entry.cost > 0 ? ` $${entry.cost.toFixed(4)}` : "";
|
|
3543
3730
|
const timeText = () => !isExpanded() && props.showEntryTime() && (elapsed() >= 2e3 || entry.endedAt !== void 0) ? fmtDuration(elapsed(), isActiveRunning, props.timeFormat()) : "";
|
|
3731
|
+
const originMark = () => {
|
|
3732
|
+
if (!props.showOrigin()) return "";
|
|
3733
|
+
if (entry.origin === "sub") return "\u21B3";
|
|
3734
|
+
return entry.background === true ? "\u21E2" : "";
|
|
3735
|
+
};
|
|
3736
|
+
const originW = () => originMark() ? 2 : 0;
|
|
3544
3737
|
const suffixW = () => {
|
|
3545
3738
|
let w = 0;
|
|
3546
3739
|
const t2 = timeText();
|
|
@@ -3551,7 +3744,7 @@ function SubAgentPanel(props) {
|
|
|
3551
3744
|
if (c) w += visualWidth(c);
|
|
3552
3745
|
return w;
|
|
3553
3746
|
};
|
|
3554
|
-
const labelAvail = () => Math.max(6, panelWidth() - gutter() - LEFT_PAD - suffixW());
|
|
3747
|
+
const labelAvail = () => Math.max(6, panelWidth() - gutter() - LEFT_PAD - originW() - suffixW());
|
|
3555
3748
|
const labelText = () => {
|
|
3556
3749
|
const max2 = labelAvail();
|
|
3557
3750
|
const text = entry.title || entry.agent;
|
|
@@ -3569,38 +3762,49 @@ function SubAgentPanel(props) {
|
|
|
3569
3762
|
_$setProp(_el$25, "onMouseUp", () => toggleExpand(entry.id));
|
|
3570
3763
|
_$insert(_el$26, () => isExpanded() ? "\u25BC" : "\u25B6");
|
|
3571
3764
|
_$insert(_el$28, statusDot);
|
|
3765
|
+
_$insert(_el$25, (() => {
|
|
3766
|
+
var _c$2 = _$memo(() => !!originMark());
|
|
3767
|
+
return () => _c$2() ? (() => {
|
|
3768
|
+
var _el$88 = _$createElement("span");
|
|
3769
|
+
_$insert(_el$88, () => originMark() + " ");
|
|
3770
|
+
_$effect((_$p) => _$setProp(_el$88, "style", {
|
|
3771
|
+
fg: pal().muted
|
|
3772
|
+
}, _$p));
|
|
3773
|
+
return _el$88;
|
|
3774
|
+
})() : null;
|
|
3775
|
+
})(), _el$30);
|
|
3572
3776
|
_$insert(_el$30, labelText);
|
|
3573
3777
|
_$insert(_el$25, (() => {
|
|
3574
|
-
var _c$
|
|
3575
|
-
return () => _c$
|
|
3576
|
-
var _el$
|
|
3577
|
-
_$insert(_el$
|
|
3578
|
-
_$effect((_$p) => _$setProp(_el$
|
|
3778
|
+
var _c$3 = _$memo(() => !!timeText());
|
|
3779
|
+
return () => _c$3() ? [" ", (() => {
|
|
3780
|
+
var _el$89 = _$createElement("span");
|
|
3781
|
+
_$insert(_el$89, timeText);
|
|
3782
|
+
_$effect((_$p) => _$setProp(_el$89, "style", {
|
|
3579
3783
|
fg: timeColor()
|
|
3580
3784
|
}, _$p));
|
|
3581
|
-
return _el$
|
|
3785
|
+
return _el$89;
|
|
3582
3786
|
})()] : null;
|
|
3583
3787
|
})(), null);
|
|
3584
3788
|
_$insert(_el$25, (() => {
|
|
3585
|
-
var _c$
|
|
3586
|
-
return () => _c$
|
|
3587
|
-
var _el$
|
|
3588
|
-
_$insert(_el$
|
|
3589
|
-
_$effect((_$p) => _$setProp(_el$
|
|
3789
|
+
var _c$4 = _$memo(() => !!tokenText());
|
|
3790
|
+
return () => _c$4() ? (() => {
|
|
3791
|
+
var _el$90 = _$createElement("span");
|
|
3792
|
+
_$insert(_el$90, tokenText);
|
|
3793
|
+
_$effect((_$p) => _$setProp(_el$90, "style", {
|
|
3590
3794
|
fg: pal().muted
|
|
3591
3795
|
}, _$p));
|
|
3592
|
-
return _el$
|
|
3796
|
+
return _el$90;
|
|
3593
3797
|
})() : null;
|
|
3594
3798
|
})(), null);
|
|
3595
3799
|
_$insert(_el$25, (() => {
|
|
3596
|
-
var _c$
|
|
3597
|
-
return () => _c$
|
|
3598
|
-
var _el$
|
|
3599
|
-
_$insert(_el$
|
|
3600
|
-
_$effect((_$p) => _$setProp(_el$
|
|
3800
|
+
var _c$5 = _$memo(() => !!costText());
|
|
3801
|
+
return () => _c$5() ? (() => {
|
|
3802
|
+
var _el$91 = _$createElement("span");
|
|
3803
|
+
_$insert(_el$91, costText);
|
|
3804
|
+
_$effect((_$p) => _$setProp(_el$91, "style", {
|
|
3601
3805
|
fg: pal().warning
|
|
3602
3806
|
}, _$p));
|
|
3603
|
-
return _el$
|
|
3807
|
+
return _el$91;
|
|
3604
3808
|
})() : null;
|
|
3605
3809
|
})(), null);
|
|
3606
3810
|
_$effect((_p$) => {
|
|
@@ -3654,70 +3858,77 @@ function SubAgentPanel(props) {
|
|
|
3654
3858
|
a: void 0
|
|
3655
3859
|
});
|
|
3656
3860
|
return _el$31;
|
|
3657
|
-
})(), (() => {
|
|
3658
|
-
var _el$37 = _$createElement("text"), _el$38 = _$createTextNode(` `), _el$39 = _$createElement("span"), _el$40 = _$createTextNode(`: `), _el$41 = _$createElement("span"), _el$42 = _$createElement("span");
|
|
3659
|
-
_$insertNode(_el$37, _el$38);
|
|
3660
|
-
_$insertNode(_el$37, _el$39);
|
|
3661
|
-
_$insertNode(_el$37, _el$41);
|
|
3662
|
-
_$insertNode(_el$37, _el$42);
|
|
3663
|
-
_$insertNode(_el$39, _el$40);
|
|
3664
|
-
_$insert(_el$39, () => t("status.label"), _el$40);
|
|
3665
|
-
_$insert(_el$41, () => " ".repeat(expandedPad(t("status.label"))));
|
|
3666
|
-
_$insert(_el$42, () => isActiveRunning ? t("status.running") : isCancelled ? t("status.cancelled") : isError ? t("status.error") : t("status.done"));
|
|
3667
|
-
_$effect((_p$) => {
|
|
3668
|
-
var _v$9 = {
|
|
3669
|
-
fg: pal().primary
|
|
3670
|
-
}, _v$0 = {
|
|
3671
|
-
fg: pal().muted
|
|
3672
|
-
}, _v$1 = {
|
|
3673
|
-
fg: isActiveRunning ? pal().warning : isCancelled ? pal().muted : isError ? pal().error : pal().success
|
|
3674
|
-
};
|
|
3675
|
-
_v$9 !== _p$.e && (_p$.e = _$setProp(_el$39, "style", _v$9, _p$.e));
|
|
3676
|
-
_v$0 !== _p$.t && (_p$.t = _$setProp(_el$41, "style", _v$0, _p$.t));
|
|
3677
|
-
_v$1 !== _p$.a && (_p$.a = _$setProp(_el$42, "style", _v$1, _p$.a));
|
|
3678
|
-
return _p$;
|
|
3679
|
-
}, {
|
|
3680
|
-
e: void 0,
|
|
3681
|
-
t: void 0,
|
|
3682
|
-
a: void 0
|
|
3683
|
-
});
|
|
3684
|
-
return _el$37;
|
|
3685
3861
|
})(), _$createComponent(Show, {
|
|
3686
3862
|
get when() {
|
|
3687
|
-
return
|
|
3863
|
+
return props.showOrigin();
|
|
3688
3864
|
},
|
|
3689
3865
|
get children() {
|
|
3690
|
-
var _el$
|
|
3691
|
-
_$insertNode(_el$
|
|
3692
|
-
_$insertNode(_el$
|
|
3693
|
-
_$insertNode(_el$
|
|
3694
|
-
_$insertNode(_el$
|
|
3695
|
-
_$insertNode(_el$
|
|
3696
|
-
_$insert(_el$
|
|
3697
|
-
_$insert(_el$
|
|
3698
|
-
_$insert(_el$
|
|
3866
|
+
var _el$37 = _$createElement("text"), _el$38 = _$createTextNode(` `), _el$39 = _$createElement("span"), _el$40 = _$createTextNode(`: `), _el$41 = _$createElement("span"), _el$42 = _$createElement("span");
|
|
3867
|
+
_$insertNode(_el$37, _el$38);
|
|
3868
|
+
_$insertNode(_el$37, _el$39);
|
|
3869
|
+
_$insertNode(_el$37, _el$41);
|
|
3870
|
+
_$insertNode(_el$37, _el$42);
|
|
3871
|
+
_$insertNode(_el$39, _el$40);
|
|
3872
|
+
_$insert(_el$39, () => t("origin.label"), _el$40);
|
|
3873
|
+
_$insert(_el$41, () => " ".repeat(expandedPad(t("origin.label"))));
|
|
3874
|
+
_$insert(_el$42, (() => {
|
|
3875
|
+
var _c$6 = _$memo(() => entry.origin === "sub");
|
|
3876
|
+
return () => _c$6() ? t("origin.sub") : t("origin.tool");
|
|
3877
|
+
})(), null);
|
|
3878
|
+
_$insert(_el$42, (() => {
|
|
3879
|
+
var _c$7 = _$memo(() => entry.background === true);
|
|
3880
|
+
return () => _c$7() ? ` (${t("origin.background")})` : "";
|
|
3881
|
+
})(), null);
|
|
3699
3882
|
_$effect((_p$) => {
|
|
3700
|
-
var _v$
|
|
3883
|
+
var _v$9 = {
|
|
3701
3884
|
fg: pal().primary
|
|
3702
|
-
}, _v$
|
|
3885
|
+
}, _v$0 = {
|
|
3703
3886
|
fg: pal().muted
|
|
3704
|
-
}, _v$
|
|
3887
|
+
}, _v$1 = {
|
|
3705
3888
|
fg: pal().muted
|
|
3706
3889
|
};
|
|
3707
|
-
_v$
|
|
3708
|
-
_v$
|
|
3709
|
-
_v$
|
|
3890
|
+
_v$9 !== _p$.e && (_p$.e = _$setProp(_el$39, "style", _v$9, _p$.e));
|
|
3891
|
+
_v$0 !== _p$.t && (_p$.t = _$setProp(_el$41, "style", _v$0, _p$.t));
|
|
3892
|
+
_v$1 !== _p$.a && (_p$.a = _$setProp(_el$42, "style", _v$1, _p$.a));
|
|
3710
3893
|
return _p$;
|
|
3711
3894
|
}, {
|
|
3712
3895
|
e: void 0,
|
|
3713
3896
|
t: void 0,
|
|
3714
3897
|
a: void 0
|
|
3715
3898
|
});
|
|
3716
|
-
return _el$
|
|
3899
|
+
return _el$37;
|
|
3717
3900
|
}
|
|
3718
|
-
}),
|
|
3901
|
+
}), (() => {
|
|
3902
|
+
var _el$43 = _$createElement("text"), _el$44 = _$createTextNode(` `), _el$45 = _$createElement("span"), _el$46 = _$createTextNode(`: `), _el$47 = _$createElement("span"), _el$48 = _$createElement("span");
|
|
3903
|
+
_$insertNode(_el$43, _el$44);
|
|
3904
|
+
_$insertNode(_el$43, _el$45);
|
|
3905
|
+
_$insertNode(_el$43, _el$47);
|
|
3906
|
+
_$insertNode(_el$43, _el$48);
|
|
3907
|
+
_$insertNode(_el$45, _el$46);
|
|
3908
|
+
_$insert(_el$45, () => t("status.label"), _el$46);
|
|
3909
|
+
_$insert(_el$47, () => " ".repeat(expandedPad(t("status.label"))));
|
|
3910
|
+
_$insert(_el$48, () => isActiveRunning ? t("status.running") : isCancelled ? t("status.cancelled") : isError ? t("status.error") : t("status.done"));
|
|
3911
|
+
_$effect((_p$) => {
|
|
3912
|
+
var _v$10 = {
|
|
3913
|
+
fg: pal().primary
|
|
3914
|
+
}, _v$11 = {
|
|
3915
|
+
fg: pal().muted
|
|
3916
|
+
}, _v$12 = {
|
|
3917
|
+
fg: isActiveRunning ? pal().warning : isCancelled ? pal().muted : isError ? pal().error : pal().success
|
|
3918
|
+
};
|
|
3919
|
+
_v$10 !== _p$.e && (_p$.e = _$setProp(_el$45, "style", _v$10, _p$.e));
|
|
3920
|
+
_v$11 !== _p$.t && (_p$.t = _$setProp(_el$47, "style", _v$11, _p$.t));
|
|
3921
|
+
_v$12 !== _p$.a && (_p$.a = _$setProp(_el$48, "style", _v$12, _p$.a));
|
|
3922
|
+
return _p$;
|
|
3923
|
+
}, {
|
|
3924
|
+
e: void 0,
|
|
3925
|
+
t: void 0,
|
|
3926
|
+
a: void 0
|
|
3927
|
+
});
|
|
3928
|
+
return _el$43;
|
|
3929
|
+
})(), _$createComponent(Show, {
|
|
3719
3930
|
get when() {
|
|
3720
|
-
return entry.
|
|
3931
|
+
return elapsed() >= 2e3 || entry.endedAt !== void 0;
|
|
3721
3932
|
},
|
|
3722
3933
|
get children() {
|
|
3723
3934
|
var _el$49 = _$createElement("text"), _el$50 = _$createTextNode(` `), _el$51 = _$createElement("span"), _el$52 = _$createTextNode(`: `), _el$53 = _$createElement("span"), _el$54 = _$createElement("span");
|
|
@@ -3726,9 +3937,9 @@ function SubAgentPanel(props) {
|
|
|
3726
3937
|
_$insertNode(_el$49, _el$53);
|
|
3727
3938
|
_$insertNode(_el$49, _el$54);
|
|
3728
3939
|
_$insertNode(_el$51, _el$52);
|
|
3729
|
-
_$insert(_el$51, () => t("
|
|
3730
|
-
_$insert(_el$53, () => " ".repeat(expandedPad(t("
|
|
3731
|
-
_$insert(_el$54, () =>
|
|
3940
|
+
_$insert(_el$51, () => t("time.label"), _el$52);
|
|
3941
|
+
_$insert(_el$53, () => " ".repeat(expandedPad(t("time.label"))));
|
|
3942
|
+
_$insert(_el$54, () => fmtDuration(elapsed(), isActiveRunning, props.timeFormat()));
|
|
3732
3943
|
_$effect((_p$) => {
|
|
3733
3944
|
var _v$13 = {
|
|
3734
3945
|
fg: pal().primary
|
|
@@ -3750,7 +3961,7 @@ function SubAgentPanel(props) {
|
|
|
3750
3961
|
}
|
|
3751
3962
|
}), _$createComponent(Show, {
|
|
3752
3963
|
get when() {
|
|
3753
|
-
return entry.
|
|
3964
|
+
return entry.tokens !== void 0;
|
|
3754
3965
|
},
|
|
3755
3966
|
get children() {
|
|
3756
3967
|
var _el$55 = _$createElement("text"), _el$56 = _$createTextNode(` `), _el$57 = _$createElement("span"), _el$58 = _$createTextNode(`: `), _el$59 = _$createElement("span"), _el$60 = _$createElement("span");
|
|
@@ -3759,16 +3970,16 @@ function SubAgentPanel(props) {
|
|
|
3759
3970
|
_$insertNode(_el$55, _el$59);
|
|
3760
3971
|
_$insertNode(_el$55, _el$60);
|
|
3761
3972
|
_$insertNode(_el$57, _el$58);
|
|
3762
|
-
_$insert(_el$57, () => t("
|
|
3763
|
-
_$insert(_el$59, () => " ".repeat(expandedPad(t("
|
|
3764
|
-
_$insert(_el$60, () =>
|
|
3973
|
+
_$insert(_el$57, () => t("tokens.label"), _el$58);
|
|
3974
|
+
_$insert(_el$59, () => " ".repeat(expandedPad(t("tokens.label"))));
|
|
3975
|
+
_$insert(_el$60, () => fmtTokens(entry.tokens));
|
|
3765
3976
|
_$effect((_p$) => {
|
|
3766
3977
|
var _v$16 = {
|
|
3767
|
-
fg: pal().
|
|
3978
|
+
fg: pal().primary
|
|
3768
3979
|
}, _v$17 = {
|
|
3769
3980
|
fg: pal().muted
|
|
3770
3981
|
}, _v$18 = {
|
|
3771
|
-
fg: pal().
|
|
3982
|
+
fg: pal().muted
|
|
3772
3983
|
};
|
|
3773
3984
|
_v$16 !== _p$.e && (_p$.e = _$setProp(_el$57, "style", _v$16, _p$.e));
|
|
3774
3985
|
_v$17 !== _p$.t && (_p$.t = _$setProp(_el$59, "style", _v$17, _p$.t));
|
|
@@ -3781,6 +3992,39 @@ function SubAgentPanel(props) {
|
|
|
3781
3992
|
});
|
|
3782
3993
|
return _el$55;
|
|
3783
3994
|
}
|
|
3995
|
+
}), _$createComponent(Show, {
|
|
3996
|
+
get when() {
|
|
3997
|
+
return entry.error;
|
|
3998
|
+
},
|
|
3999
|
+
get children() {
|
|
4000
|
+
var _el$61 = _$createElement("text"), _el$62 = _$createTextNode(` `), _el$63 = _$createElement("span"), _el$64 = _$createTextNode(`: `), _el$65 = _$createElement("span"), _el$66 = _$createElement("span");
|
|
4001
|
+
_$insertNode(_el$61, _el$62);
|
|
4002
|
+
_$insertNode(_el$61, _el$63);
|
|
4003
|
+
_$insertNode(_el$61, _el$65);
|
|
4004
|
+
_$insertNode(_el$61, _el$66);
|
|
4005
|
+
_$insertNode(_el$63, _el$64);
|
|
4006
|
+
_$insert(_el$63, () => t("error.label"), _el$64);
|
|
4007
|
+
_$insert(_el$65, () => " ".repeat(expandedPad(t("error.label"))));
|
|
4008
|
+
_$insert(_el$66, () => truncate(String(entry.error), expandedValAvail()));
|
|
4009
|
+
_$effect((_p$) => {
|
|
4010
|
+
var _v$19 = {
|
|
4011
|
+
fg: pal().error
|
|
4012
|
+
}, _v$20 = {
|
|
4013
|
+
fg: pal().muted
|
|
4014
|
+
}, _v$21 = {
|
|
4015
|
+
fg: pal().error
|
|
4016
|
+
};
|
|
4017
|
+
_v$19 !== _p$.e && (_p$.e = _$setProp(_el$63, "style", _v$19, _p$.e));
|
|
4018
|
+
_v$20 !== _p$.t && (_p$.t = _$setProp(_el$65, "style", _v$20, _p$.t));
|
|
4019
|
+
_v$21 !== _p$.a && (_p$.a = _$setProp(_el$66, "style", _v$21, _p$.a));
|
|
4020
|
+
return _p$;
|
|
4021
|
+
}, {
|
|
4022
|
+
e: void 0,
|
|
4023
|
+
t: void 0,
|
|
4024
|
+
a: void 0
|
|
4025
|
+
});
|
|
4026
|
+
return _el$61;
|
|
4027
|
+
}
|
|
3784
4028
|
}), _$createComponent(Show, {
|
|
3785
4029
|
get when() {
|
|
3786
4030
|
return entry.cost !== void 0;
|
|
@@ -3789,34 +4033,34 @@ function SubAgentPanel(props) {
|
|
|
3789
4033
|
return (() => {
|
|
3790
4034
|
const cost = entry.cost;
|
|
3791
4035
|
return (() => {
|
|
3792
|
-
var _el$
|
|
3793
|
-
_$insertNode(_el$
|
|
3794
|
-
_$insertNode(_el$
|
|
3795
|
-
_$insertNode(_el$
|
|
3796
|
-
_$insertNode(_el$
|
|
3797
|
-
_$insertNode(_el$
|
|
3798
|
-
_$insert(_el$
|
|
3799
|
-
_$insert(_el$
|
|
3800
|
-
_$insertNode(_el$
|
|
3801
|
-
_$insert(_el$
|
|
4036
|
+
var _el$92 = _$createElement("text"), _el$93 = _$createTextNode(` `), _el$94 = _$createElement("span"), _el$95 = _$createTextNode(`: `), _el$96 = _$createElement("span"), _el$97 = _$createElement("span"), _el$98 = _$createTextNode(`$`);
|
|
4037
|
+
_$insertNode(_el$92, _el$93);
|
|
4038
|
+
_$insertNode(_el$92, _el$94);
|
|
4039
|
+
_$insertNode(_el$92, _el$96);
|
|
4040
|
+
_$insertNode(_el$92, _el$97);
|
|
4041
|
+
_$insertNode(_el$94, _el$95);
|
|
4042
|
+
_$insert(_el$94, () => t("cost.label"), _el$95);
|
|
4043
|
+
_$insert(_el$96, () => " ".repeat(expandedPad(t("cost.label"))));
|
|
4044
|
+
_$insertNode(_el$97, _el$98);
|
|
4045
|
+
_$insert(_el$97, () => cost.toFixed(4), null);
|
|
3802
4046
|
_$effect((_p$) => {
|
|
3803
|
-
var _v$
|
|
4047
|
+
var _v$32 = {
|
|
3804
4048
|
fg: pal().primary
|
|
3805
|
-
}, _v$
|
|
4049
|
+
}, _v$33 = {
|
|
3806
4050
|
fg: pal().muted
|
|
3807
|
-
}, _v$
|
|
4051
|
+
}, _v$34 = {
|
|
3808
4052
|
fg: pal().muted
|
|
3809
4053
|
};
|
|
3810
|
-
_v$
|
|
3811
|
-
_v$
|
|
3812
|
-
_v$
|
|
4054
|
+
_v$32 !== _p$.e && (_p$.e = _$setProp(_el$94, "style", _v$32, _p$.e));
|
|
4055
|
+
_v$33 !== _p$.t && (_p$.t = _$setProp(_el$96, "style", _v$33, _p$.t));
|
|
4056
|
+
_v$34 !== _p$.a && (_p$.a = _$setProp(_el$97, "style", _v$34, _p$.a));
|
|
3813
4057
|
return _p$;
|
|
3814
4058
|
}, {
|
|
3815
4059
|
e: void 0,
|
|
3816
4060
|
t: void 0,
|
|
3817
4061
|
a: void 0
|
|
3818
4062
|
});
|
|
3819
|
-
return _el$
|
|
4063
|
+
return _el$92;
|
|
3820
4064
|
})();
|
|
3821
4065
|
})();
|
|
3822
4066
|
}
|
|
@@ -3825,81 +4069,81 @@ function SubAgentPanel(props) {
|
|
|
3825
4069
|
return _$memo(() => !!validModel(entry.model))() ? entry.model : void 0;
|
|
3826
4070
|
},
|
|
3827
4071
|
get children() {
|
|
3828
|
-
var _el$
|
|
3829
|
-
_$insertNode(_el$
|
|
3830
|
-
_$insertNode(_el$
|
|
3831
|
-
_$insertNode(_el$
|
|
3832
|
-
_$insertNode(_el$
|
|
3833
|
-
_$insertNode(_el$
|
|
3834
|
-
_$insert(_el$
|
|
3835
|
-
_$insert(_el$
|
|
3836
|
-
_$insert(_el$
|
|
4072
|
+
var _el$67 = _$createElement("text"), _el$68 = _$createTextNode(` `), _el$69 = _$createElement("span"), _el$70 = _$createTextNode(`: `), _el$71 = _$createElement("span"), _el$72 = _$createElement("span");
|
|
4073
|
+
_$insertNode(_el$67, _el$68);
|
|
4074
|
+
_$insertNode(_el$67, _el$69);
|
|
4075
|
+
_$insertNode(_el$67, _el$71);
|
|
4076
|
+
_$insertNode(_el$67, _el$72);
|
|
4077
|
+
_$insertNode(_el$69, _el$70);
|
|
4078
|
+
_$insert(_el$69, () => t("model.label"), _el$70);
|
|
4079
|
+
_$insert(_el$71, () => " ".repeat(expandedPad(t("model.label"))));
|
|
4080
|
+
_$insert(_el$72, () => truncate(entry.model, expandedValAvail()));
|
|
3837
4081
|
_$effect((_p$) => {
|
|
3838
|
-
var _v$
|
|
4082
|
+
var _v$22 = {
|
|
3839
4083
|
fg: pal().primary
|
|
3840
|
-
}, _v$
|
|
4084
|
+
}, _v$23 = {
|
|
3841
4085
|
fg: pal().muted
|
|
3842
|
-
}, _v$
|
|
4086
|
+
}, _v$24 = {
|
|
3843
4087
|
fg: pal().muted
|
|
3844
4088
|
};
|
|
3845
|
-
_v$
|
|
3846
|
-
_v$
|
|
3847
|
-
_v$
|
|
4089
|
+
_v$22 !== _p$.e && (_p$.e = _$setProp(_el$69, "style", _v$22, _p$.e));
|
|
4090
|
+
_v$23 !== _p$.t && (_p$.t = _$setProp(_el$71, "style", _v$23, _p$.t));
|
|
4091
|
+
_v$24 !== _p$.a && (_p$.a = _$setProp(_el$72, "style", _v$24, _p$.a));
|
|
3848
4092
|
return _p$;
|
|
3849
4093
|
}, {
|
|
3850
4094
|
e: void 0,
|
|
3851
4095
|
t: void 0,
|
|
3852
4096
|
a: void 0
|
|
3853
4097
|
});
|
|
3854
|
-
return _el$
|
|
4098
|
+
return _el$67;
|
|
3855
4099
|
}
|
|
3856
4100
|
}), _$createComponent(Show, {
|
|
3857
4101
|
get when() {
|
|
3858
4102
|
return entry.todoTotal !== void 0;
|
|
3859
4103
|
},
|
|
3860
4104
|
get children() {
|
|
3861
|
-
var _el$
|
|
3862
|
-
_$insertNode(_el$
|
|
3863
|
-
_$insertNode(_el$
|
|
3864
|
-
_$insertNode(_el$
|
|
3865
|
-
_$insertNode(_el$
|
|
3866
|
-
_$insertNode(_el$
|
|
3867
|
-
_$insert(_el$
|
|
3868
|
-
_$insert(_el$
|
|
3869
|
-
_$insertNode(_el$
|
|
3870
|
-
_$insert(_el$
|
|
3871
|
-
_$insert(_el$
|
|
4105
|
+
var _el$73 = _$createElement("text"), _el$74 = _$createTextNode(` `), _el$75 = _$createElement("span"), _el$76 = _$createTextNode(`: `), _el$77 = _$createElement("span"), _el$78 = _$createElement("span"), _el$79 = _$createTextNode(`/`);
|
|
4106
|
+
_$insertNode(_el$73, _el$74);
|
|
4107
|
+
_$insertNode(_el$73, _el$75);
|
|
4108
|
+
_$insertNode(_el$73, _el$77);
|
|
4109
|
+
_$insertNode(_el$73, _el$78);
|
|
4110
|
+
_$insertNode(_el$75, _el$76);
|
|
4111
|
+
_$insert(_el$75, () => t("todo.label"), _el$76);
|
|
4112
|
+
_$insert(_el$77, () => " ".repeat(expandedPad(t("todo.label"))));
|
|
4113
|
+
_$insertNode(_el$78, _el$79);
|
|
4114
|
+
_$insert(_el$78, () => entry.todoDone, _el$79);
|
|
4115
|
+
_$insert(_el$78, () => entry.todoTotal, null);
|
|
3872
4116
|
_$effect((_p$) => {
|
|
3873
|
-
var _v$
|
|
4117
|
+
var _v$25 = {
|
|
3874
4118
|
fg: pal().primary
|
|
3875
|
-
}, _v$
|
|
4119
|
+
}, _v$26 = {
|
|
3876
4120
|
fg: pal().muted
|
|
3877
|
-
}, _v$
|
|
4121
|
+
}, _v$27 = {
|
|
3878
4122
|
fg: pal().muted
|
|
3879
4123
|
};
|
|
3880
|
-
_v$
|
|
3881
|
-
_v$
|
|
3882
|
-
_v$
|
|
4124
|
+
_v$25 !== _p$.e && (_p$.e = _$setProp(_el$75, "style", _v$25, _p$.e));
|
|
4125
|
+
_v$26 !== _p$.t && (_p$.t = _$setProp(_el$77, "style", _v$26, _p$.t));
|
|
4126
|
+
_v$27 !== _p$.a && (_p$.a = _$setProp(_el$78, "style", _v$27, _p$.a));
|
|
3883
4127
|
return _p$;
|
|
3884
4128
|
}, {
|
|
3885
4129
|
e: void 0,
|
|
3886
4130
|
t: void 0,
|
|
3887
4131
|
a: void 0
|
|
3888
4132
|
});
|
|
3889
|
-
return _el$
|
|
4133
|
+
return _el$73;
|
|
3890
4134
|
}
|
|
3891
4135
|
}), _$createComponent(Show, {
|
|
3892
4136
|
get when() {
|
|
3893
4137
|
return entry.sessionId;
|
|
3894
4138
|
},
|
|
3895
4139
|
get children() {
|
|
3896
|
-
var _el$
|
|
3897
|
-
_$insertNode(_el$
|
|
3898
|
-
_$insertNode(_el$
|
|
3899
|
-
_$insertNode(_el$
|
|
3900
|
-
_$insertNode(_el$
|
|
3901
|
-
_$insertNode(_el$
|
|
3902
|
-
_$setProp(_el$
|
|
4140
|
+
var _el$80 = _$createElement("text"), _el$81 = _$createTextNode(` `), _el$82 = _$createElement("span"), _el$83 = _$createTextNode(`: `), _el$84 = _$createElement("span"), _el$85 = _$createElement("span"), _el$86 = _$createElement("span");
|
|
4141
|
+
_$insertNode(_el$80, _el$81);
|
|
4142
|
+
_$insertNode(_el$80, _el$82);
|
|
4143
|
+
_$insertNode(_el$80, _el$84);
|
|
4144
|
+
_$insertNode(_el$80, _el$85);
|
|
4145
|
+
_$insertNode(_el$80, _el$86);
|
|
4146
|
+
_$setProp(_el$80, "onMouseUp", async () => {
|
|
3903
4147
|
const sessionId = entry.sessionId;
|
|
3904
4148
|
if (!sessionId) return;
|
|
3905
4149
|
const result = await copyText(sessionId);
|
|
@@ -3919,25 +4163,25 @@ ${t("session.toast.copy_failed")}`, {
|
|
|
3919
4163
|
duration: 8e3
|
|
3920
4164
|
});
|
|
3921
4165
|
});
|
|
3922
|
-
_$insertNode(_el$
|
|
3923
|
-
_$insert(_el$
|
|
3924
|
-
_$insert(_el$
|
|
3925
|
-
_$insert(_el$
|
|
3926
|
-
_$insertNode(_el$
|
|
4166
|
+
_$insertNode(_el$82, _el$83);
|
|
4167
|
+
_$insert(_el$82, () => t("session.label"), _el$83);
|
|
4168
|
+
_$insert(_el$84, () => " ".repeat(expandedPad(t("session.label"))));
|
|
4169
|
+
_$insert(_el$85, () => truncate(entry.sessionId, expandedValAvail() - visualWidth(" \u2398")));
|
|
4170
|
+
_$insertNode(_el$86, _$createTextNode(` \u2398`));
|
|
3927
4171
|
_$effect((_p$) => {
|
|
3928
|
-
var _v$
|
|
4172
|
+
var _v$28 = {
|
|
3929
4173
|
fg: pal().primary
|
|
3930
|
-
}, _v$
|
|
4174
|
+
}, _v$29 = {
|
|
3931
4175
|
fg: pal().muted
|
|
3932
|
-
}, _v$
|
|
4176
|
+
}, _v$30 = {
|
|
3933
4177
|
fg: pal().muted
|
|
3934
|
-
}, _v$
|
|
4178
|
+
}, _v$31 = {
|
|
3935
4179
|
fg: pal().warning
|
|
3936
4180
|
};
|
|
3937
|
-
_v$
|
|
3938
|
-
_v$
|
|
3939
|
-
_v$
|
|
3940
|
-
_v$
|
|
4181
|
+
_v$28 !== _p$.e && (_p$.e = _$setProp(_el$82, "style", _v$28, _p$.e));
|
|
4182
|
+
_v$29 !== _p$.t && (_p$.t = _$setProp(_el$84, "style", _v$29, _p$.t));
|
|
4183
|
+
_v$30 !== _p$.a && (_p$.a = _$setProp(_el$85, "style", _v$30, _p$.a));
|
|
4184
|
+
_v$31 !== _p$.o && (_p$.o = _$setProp(_el$86, "style", _v$31, _p$.o));
|
|
3941
4185
|
return _p$;
|
|
3942
4186
|
}, {
|
|
3943
4187
|
e: void 0,
|
|
@@ -3945,7 +4189,7 @@ ${t("session.toast.copy_failed")}`, {
|
|
|
3945
4189
|
a: void 0,
|
|
3946
4190
|
o: void 0
|
|
3947
4191
|
});
|
|
3948
|
-
return _el$
|
|
4192
|
+
return _el$80;
|
|
3949
4193
|
}
|
|
3950
4194
|
}), _$createComponent(Show, {
|
|
3951
4195
|
get when() {
|
|
@@ -3961,68 +4205,68 @@ ${t("session.toast.copy_failed")}`, {
|
|
|
3961
4205
|
const rightW = (isRunning ? visualWidth(dismissLabel()) : 0) + (isRunning && entry.sessionId ? visualWidth(cancelLabel()) : 0);
|
|
3962
4206
|
const spacerW = () => Math.max(1, panelWidth() - gutter() - openW() - rightW - 2);
|
|
3963
4207
|
return (() => {
|
|
3964
|
-
var _el$
|
|
3965
|
-
_$insertNode(_el$
|
|
3966
|
-
_$setProp(_el$
|
|
3967
|
-
_$insert(_el$
|
|
4208
|
+
var _el$99 = _$createElement("box"), _el$103 = _$createElement("text");
|
|
4209
|
+
_$insertNode(_el$99, _el$103);
|
|
4210
|
+
_$setProp(_el$99, "flexDirection", "row");
|
|
4211
|
+
_$insert(_el$99, _$createComponent(Show, {
|
|
3968
4212
|
get when() {
|
|
3969
4213
|
return entry.sessionId;
|
|
3970
4214
|
},
|
|
3971
4215
|
get children() {
|
|
3972
|
-
var _el$
|
|
3973
|
-
_$insertNode(_el$
|
|
3974
|
-
_$insertNode(_el$
|
|
3975
|
-
_$setProp(_el$
|
|
3976
|
-
_$setProp(_el$
|
|
3977
|
-
_$setProp(_el$
|
|
4216
|
+
var _el$100 = _$createElement("text"), _el$101 = _$createElement("span"), _el$102 = _$createElement("span");
|
|
4217
|
+
_$insertNode(_el$100, _el$101);
|
|
4218
|
+
_$insertNode(_el$100, _el$102);
|
|
4219
|
+
_$setProp(_el$100, "onMouseOver", () => setHoveredOpen(entry.id));
|
|
4220
|
+
_$setProp(_el$100, "onMouseOut", () => setHoveredOpen(void 0));
|
|
4221
|
+
_$setProp(_el$100, "onMouseUp", () => {
|
|
3978
4222
|
if (entry.sessionId) {
|
|
3979
4223
|
props.api.route.navigateSession(entry.sessionId);
|
|
3980
4224
|
}
|
|
3981
4225
|
});
|
|
3982
|
-
_$insert(_el$
|
|
3983
|
-
_$insert(_el$
|
|
4226
|
+
_$insert(_el$101, openPrefix);
|
|
4227
|
+
_$insert(_el$102, () => t("open.label"));
|
|
3984
4228
|
_$effect((_p$) => {
|
|
3985
|
-
var _v$
|
|
4229
|
+
var _v$35 = {
|
|
3986
4230
|
fg: hoveredOpen() === entry.id ? pal().warning : pal().primary
|
|
3987
|
-
}, _v$
|
|
4231
|
+
}, _v$36 = {
|
|
3988
4232
|
fg: hoveredOpen() === entry.id ? pal().warning : pal().primary
|
|
3989
4233
|
};
|
|
3990
|
-
_v$
|
|
3991
|
-
_v$
|
|
4234
|
+
_v$35 !== _p$.e && (_p$.e = _$setProp(_el$101, "style", _v$35, _p$.e));
|
|
4235
|
+
_v$36 !== _p$.t && (_p$.t = _$setProp(_el$102, "style", _v$36, _p$.t));
|
|
3992
4236
|
return _p$;
|
|
3993
4237
|
}, {
|
|
3994
4238
|
e: void 0,
|
|
3995
4239
|
t: void 0
|
|
3996
4240
|
});
|
|
3997
|
-
return _el$
|
|
4241
|
+
return _el$100;
|
|
3998
4242
|
}
|
|
3999
|
-
}), _el$
|
|
4000
|
-
_$insert(_el$
|
|
4001
|
-
_$insert(_el$
|
|
4243
|
+
}), _el$103);
|
|
4244
|
+
_$insert(_el$103, () => " ".repeat(spacerW()));
|
|
4245
|
+
_$insert(_el$99, _$createComponent(Show, {
|
|
4002
4246
|
get when() {
|
|
4003
4247
|
return isRunning && entry.sessionId;
|
|
4004
4248
|
},
|
|
4005
4249
|
get children() {
|
|
4006
|
-
var _el$
|
|
4007
|
-
_$insertNode(_el$
|
|
4008
|
-
_$setProp(_el$
|
|
4009
|
-
_$setProp(_el$
|
|
4010
|
-
_$setProp(_el$
|
|
4011
|
-
_$insert(_el$
|
|
4012
|
-
_$effect((_$p) => _$setProp(_el$
|
|
4250
|
+
var _el$104 = _$createElement("text"), _el$105 = _$createElement("span");
|
|
4251
|
+
_$insertNode(_el$104, _el$105);
|
|
4252
|
+
_$setProp(_el$104, "onMouseOver", () => setHoveredCancel(entry.id));
|
|
4253
|
+
_$setProp(_el$104, "onMouseOut", () => setHoveredCancel(void 0));
|
|
4254
|
+
_$setProp(_el$104, "onMouseUp", () => cancelEntry(entry));
|
|
4255
|
+
_$insert(_el$105, cancelLabel);
|
|
4256
|
+
_$effect((_$p) => _$setProp(_el$105, "style", {
|
|
4013
4257
|
fg: hoveredCancel() === entry.id ? pal().warning : pal().error
|
|
4014
4258
|
}, _$p));
|
|
4015
|
-
return _el$
|
|
4259
|
+
return _el$104;
|
|
4016
4260
|
}
|
|
4017
4261
|
}), null);
|
|
4018
|
-
_$insert(_el$
|
|
4262
|
+
_$insert(_el$99, _$createComponent(Show, {
|
|
4019
4263
|
when: isRunning,
|
|
4020
4264
|
get children() {
|
|
4021
|
-
var _el$
|
|
4022
|
-
_$insertNode(_el$
|
|
4023
|
-
_$setProp(_el$
|
|
4024
|
-
_$setProp(_el$
|
|
4025
|
-
_$setProp(_el$
|
|
4265
|
+
var _el$106 = _$createElement("text"), _el$107 = _$createElement("span");
|
|
4266
|
+
_$insertNode(_el$106, _el$107);
|
|
4267
|
+
_$setProp(_el$106, "onMouseOver", () => setHoveredDismiss(entry.id));
|
|
4268
|
+
_$setProp(_el$106, "onMouseOut", () => setHoveredDismiss(void 0));
|
|
4269
|
+
_$setProp(_el$106, "onMouseUp", () => {
|
|
4026
4270
|
upsertEntry({
|
|
4027
4271
|
id: entry.id,
|
|
4028
4272
|
title: entry.title,
|
|
@@ -4031,17 +4275,17 @@ ${t("session.toast.copy_failed")}`, {
|
|
|
4031
4275
|
status: "done"
|
|
4032
4276
|
});
|
|
4033
4277
|
});
|
|
4034
|
-
_$insert(_el$
|
|
4035
|
-
_$effect((_$p) => _$setProp(_el$
|
|
4278
|
+
_$insert(_el$107, dismissLabel);
|
|
4279
|
+
_$effect((_$p) => _$setProp(_el$107, "style", {
|
|
4036
4280
|
fg: hoveredDismiss() === entry.id ? pal().warning : pal().muted
|
|
4037
4281
|
}, _$p));
|
|
4038
|
-
return _el$
|
|
4282
|
+
return _el$106;
|
|
4039
4283
|
}
|
|
4040
4284
|
}), null);
|
|
4041
|
-
_$effect((_$p) => _$setProp(_el$
|
|
4285
|
+
_$effect((_$p) => _$setProp(_el$103, "style", {
|
|
4042
4286
|
fg: pal().muted
|
|
4043
4287
|
}, _$p));
|
|
4044
|
-
return _el$
|
|
4288
|
+
return _el$99;
|
|
4045
4289
|
})();
|
|
4046
4290
|
})();
|
|
4047
4291
|
}
|
|
@@ -4062,13 +4306,13 @@ ${t("session.toast.copy_failed")}`, {
|
|
|
4062
4306
|
const right = props.sortOrder() === "desc" ? `\u2191 ${t("scroll.top")}` : `\u2193 ${t("scroll.bottom")}`;
|
|
4063
4307
|
const pad = showTop ? Math.max(1, panelWidth() - gutter() - visualWidth(left) - visualWidth(right)) : 0;
|
|
4064
4308
|
return (() => {
|
|
4065
|
-
var _el$
|
|
4066
|
-
_$insertNode(_el$
|
|
4067
|
-
_$setProp(_el$
|
|
4068
|
-
_$insertNode(_el$
|
|
4069
|
-
_$setProp(_el$
|
|
4070
|
-
_$setProp(_el$
|
|
4071
|
-
_$setProp(_el$
|
|
4309
|
+
var _el$108 = _$createElement("box"), _el$109 = _$createElement("text"), _el$110 = _$createElement("span");
|
|
4310
|
+
_$insertNode(_el$108, _el$109);
|
|
4311
|
+
_$setProp(_el$108, "flexDirection", "row");
|
|
4312
|
+
_$insertNode(_el$109, _el$110);
|
|
4313
|
+
_$setProp(_el$109, "onMouseOver", () => showMore && setHoveredMoreBelow(true));
|
|
4314
|
+
_$setProp(_el$109, "onMouseOut", () => setHoveredMoreBelow(false));
|
|
4315
|
+
_$setProp(_el$109, "onMouseUp", () => {
|
|
4072
4316
|
if (!showMore) return;
|
|
4073
4317
|
const total = entryList().length;
|
|
4074
4318
|
const m = max();
|
|
@@ -4080,20 +4324,20 @@ ${t("session.toast.copy_failed")}`, {
|
|
|
4080
4324
|
}
|
|
4081
4325
|
setHoveredMoreBelow(false);
|
|
4082
4326
|
});
|
|
4083
|
-
_$insert(_el$
|
|
4084
|
-
_$insert(_el$
|
|
4085
|
-
var _el$
|
|
4086
|
-
_$insert(_el$
|
|
4087
|
-
_$effect((_$p) => _$setProp(_el$
|
|
4327
|
+
_$insert(_el$110, left);
|
|
4328
|
+
_$insert(_el$108, showTop ? [(() => {
|
|
4329
|
+
var _el$111 = _$createElement("text");
|
|
4330
|
+
_$insert(_el$111, () => " ".repeat(pad));
|
|
4331
|
+
_$effect((_$p) => _$setProp(_el$111, "style", {
|
|
4088
4332
|
fg: pal().muted
|
|
4089
4333
|
}, _$p));
|
|
4090
|
-
return _el$
|
|
4334
|
+
return _el$111;
|
|
4091
4335
|
})(), (() => {
|
|
4092
|
-
var _el$
|
|
4093
|
-
_$insertNode(_el$
|
|
4094
|
-
_$setProp(_el$
|
|
4095
|
-
_$setProp(_el$
|
|
4096
|
-
_$setProp(_el$
|
|
4336
|
+
var _el$112 = _$createElement("text"), _el$113 = _$createElement("span");
|
|
4337
|
+
_$insertNode(_el$112, _el$113);
|
|
4338
|
+
_$setProp(_el$112, "onMouseOver", () => setHoveredTop(true));
|
|
4339
|
+
_$setProp(_el$112, "onMouseOut", () => setHoveredTop(false));
|
|
4340
|
+
_$setProp(_el$112, "onMouseUp", () => {
|
|
4097
4341
|
const total = entryList().length;
|
|
4098
4342
|
const m = max();
|
|
4099
4343
|
if (props.sortOrder() === "desc") {
|
|
@@ -4103,16 +4347,16 @@ ${t("session.toast.copy_failed")}`, {
|
|
|
4103
4347
|
}
|
|
4104
4348
|
setHoveredTop(false);
|
|
4105
4349
|
});
|
|
4106
|
-
_$insert(_el$
|
|
4107
|
-
_$effect((_$p) => _$setProp(_el$
|
|
4350
|
+
_$insert(_el$113, right);
|
|
4351
|
+
_$effect((_$p) => _$setProp(_el$113, "style", {
|
|
4108
4352
|
fg: hoveredTop() ? pal().warning : pal().muted
|
|
4109
4353
|
}, _$p));
|
|
4110
|
-
return _el$
|
|
4354
|
+
return _el$112;
|
|
4111
4355
|
})()] : null, null);
|
|
4112
|
-
_$effect((_$p) => _$setProp(_el$
|
|
4356
|
+
_$effect((_$p) => _$setProp(_el$110, "style", {
|
|
4113
4357
|
fg: showMore && hoveredMoreBelow() ? pal().warning : pal().muted
|
|
4114
4358
|
}, _$p));
|
|
4115
|
-
return _el$
|
|
4359
|
+
return _el$108;
|
|
4116
4360
|
})();
|
|
4117
4361
|
})();
|
|
4118
4362
|
}
|
|
@@ -4182,6 +4426,9 @@ function PluginRoot(props) {
|
|
|
4182
4426
|
get timeFormat() {
|
|
4183
4427
|
return props.signals.timeFormat;
|
|
4184
4428
|
},
|
|
4429
|
+
get showOrigin() {
|
|
4430
|
+
return props.signals.showOrigin;
|
|
4431
|
+
},
|
|
4185
4432
|
get sessionId() {
|
|
4186
4433
|
return props.sessionID;
|
|
4187
4434
|
}
|
|
@@ -4212,6 +4459,7 @@ var mod = {
|
|
|
4212
4459
|
const [showEntryTokensSignal, setShowEntryTokens] = createSignal3(api.kv.get(SETTING_KEYS.showEntryTokens, true) !== false);
|
|
4213
4460
|
const storedTimeFormat = String(api.kv.get(SETTING_KEYS.timeFormat, "short"));
|
|
4214
4461
|
const [timeFormatSignal, setTimeFormat] = createSignal3(TIME_FORMATS.includes(storedTimeFormat) ? storedTimeFormat : "short");
|
|
4462
|
+
const [showOriginSignal, setShowOrigin] = createSignal3(api.kv.get(SETTING_KEYS.showOrigin, false) === true);
|
|
4215
4463
|
const [dbSyncSignal, setDbSync] = createSignal3(api.kv.get(SETTING_KEYS.dbSync, true) !== false);
|
|
4216
4464
|
lang = langSignal;
|
|
4217
4465
|
maxEntries = maxSignal;
|
|
@@ -4236,6 +4484,8 @@ var mod = {
|
|
|
4236
4484
|
setShowEntryTokens,
|
|
4237
4485
|
timeFormat: timeFormatSignal,
|
|
4238
4486
|
setTimeFormat,
|
|
4487
|
+
showOrigin: showOriginSignal,
|
|
4488
|
+
setShowOrigin,
|
|
4239
4489
|
dbSync: dbSyncSignal,
|
|
4240
4490
|
setDbSync,
|
|
4241
4491
|
sessionId: ""
|