@oharness/server 0.9.3 → 0.11.0
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/analytics.d.ts +32 -29
- package/dist/analytics.js +225 -278
- package/dist/analytics.js.map +1 -1
- package/dist/i18n.js +500 -64
- package/dist/i18n.js.map +1 -1
- package/dist/icons.js +1 -0
- package/dist/icons.js.map +1 -1
- package/dist/main.js +4 -0
- package/dist/main.js.map +1 -1
- package/dist/model-order.js +1 -0
- package/dist/model-order.js.map +1 -1
- package/dist/page/client/account.js +570 -27
- package/dist/page/client/account.js.map +1 -1
- package/dist/page/client/base.js +55 -12
- package/dist/page/client/base.js.map +1 -1
- package/dist/page/client/browser.js +1 -1
- package/dist/page/client/composer.js +802 -59
- package/dist/page/client/composer.js.map +1 -1
- package/dist/page/client/computer.d.ts +27 -0
- package/dist/page/client/computer.js +358 -0
- package/dist/page/client/computer.js.map +1 -0
- package/dist/page/client/dialogs.js +168 -6
- package/dist/page/client/dialogs.js.map +1 -1
- package/dist/page/client/events.js +119 -9
- package/dist/page/client/events.js.map +1 -1
- package/dist/page/client/files.js +86 -1
- package/dist/page/client/files.js.map +1 -1
- package/dist/page/client/index.js +8 -0
- package/dist/page/client/index.js.map +1 -1
- package/dist/page/client/panels.js +14 -10
- package/dist/page/client/panels.js.map +1 -1
- package/dist/page/client/ripple.d.ts +13 -0
- package/dist/page/client/ripple.js +247 -0
- package/dist/page/client/ripple.js.map +1 -0
- package/dist/page/client/routines.js +432 -45
- package/dist/page/client/routines.js.map +1 -1
- package/dist/page/client/shell.js +386 -104
- package/dist/page/client/shell.js.map +1 -1
- package/dist/page/client/state.js +278 -19
- package/dist/page/client/state.js.map +1 -1
- package/dist/page/client/tasks.d.ts +8 -0
- package/dist/page/client/tasks.js +293 -0
- package/dist/page/client/tasks.js.map +1 -0
- package/dist/page/client/terminal.js +34 -7
- package/dist/page/client/terminal.js.map +1 -1
- package/dist/page/client/theme.d.ts +17 -0
- package/dist/page/client/theme.js +365 -0
- package/dist/page/client/theme.js.map +1 -0
- package/dist/page/client/transcript.js +196 -8
- package/dist/page/client/transcript.js.map +1 -1
- package/dist/page/client/usage.js +1 -11
- package/dist/page/client/usage.js.map +1 -1
- package/dist/page/style.js +745 -76
- package/dist/page/style.js.map +1 -1
- package/dist/page.js +94 -16
- package/dist/page.js.map +1 -1
- package/dist/prefs.d.ts +31 -0
- package/dist/prefs.js +13 -1
- package/dist/prefs.js.map +1 -1
- package/dist/remote-crypto.d.ts +78 -0
- package/dist/remote-crypto.js +216 -0
- package/dist/remote-crypto.js.map +1 -0
- package/dist/remote.d.ts +103 -0
- package/dist/remote.js +498 -0
- package/dist/remote.js.map +1 -0
- package/dist/server.d.ts +70 -0
- package/dist/server.js +1738 -73
- package/dist/server.js.map +1 -1
- package/dist/starters.d.ts +92 -0
- package/dist/starters.js +213 -0
- package/dist/starters.js.map +1 -0
- package/dist/suggest.d.ts +42 -0
- package/dist/suggest.js +215 -0
- package/dist/suggest.js.map +1 -0
- package/dist/terminal.d.ts +28 -2
- package/dist/terminal.js +45 -3
- package/dist/terminal.js.map +1 -1
- package/dist/theme-assets.d.ts +39 -0
- package/dist/theme-assets.js +109 -0
- package/dist/theme-assets.js.map +1 -0
- package/dist/theme-store.d.ts +50 -0
- package/dist/theme-store.js +124 -0
- package/dist/theme-store.js.map +1 -0
- package/dist/theme-tools.d.ts +25 -0
- package/dist/theme-tools.js +243 -0
- package/dist/theme-tools.js.map +1 -0
- package/dist/turn-shots.d.ts +43 -0
- package/dist/turn-shots.js +80 -0
- package/dist/turn-shots.js.map +1 -0
- package/dist/user-theme.d.ts +143 -0
- package/dist/user-theme.js +510 -0
- package/dist/user-theme.js.map +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/page/client/account.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/page/client/account.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA63EhC,CAAC"}
|
package/dist/page/client/base.js
CHANGED
|
@@ -68,6 +68,8 @@ const ICON_PATHS = {
|
|
|
68
68
|
// The audio card's button. Drawn in outline like the rest and filled by the
|
|
69
69
|
// card's CSS, so the triangle keeps the set's rounded joins.
|
|
70
70
|
play: ["M5.5 3.9v8.2a.6.6 0 0 0 .92.5l6.3-4.1a.6.6 0 0 0 0-1L6.42 3.4a.6.6 0 0 0-.92.5z"],
|
|
71
|
+
// The composer's send arrow, for the boxes that send somewhere else.
|
|
72
|
+
send: ["M8 13V3.4M3.6 7.8 8 3.2l4.4 4.6"],
|
|
71
73
|
pause: ["M5.25 3.75v8.5", "M10.75 3.75v8.5"],
|
|
72
74
|
// A padlock: the shackle as a path, the body as a rect.
|
|
73
75
|
lock: ["M5.33 7.33V5.33a2.67 2.67 0 0 1 5.34 0v2"],
|
|
@@ -89,6 +91,10 @@ const ICON_PATHS = {
|
|
|
89
91
|
"M3.33 3h2.87a1.33 1.33 0 0 1 1.09.57l.85 1.22a1.33 1.33 0 0 0 1.09.57H12.67" +
|
|
90
92
|
"A1.33 1.33 0 0 1 14 6.7v4.97A1.33 1.33 0 0 1 12.67 13H3.33" +
|
|
91
93
|
"A1.33 1.33 0 0 1 2 11.67V4.33A1.33 1.33 0 0 1 3.33 3Z",
|
|
94
|
+
// The back panel's edge, carried across the front: what makes this a
|
|
95
|
+
// closed folder rather than a tabbed card, and the line the open one
|
|
96
|
+
// tips forward from.
|
|
97
|
+
"M2 7h12",
|
|
92
98
|
],
|
|
93
99
|
folderOpen: [
|
|
94
100
|
"M4.4 10.3l.87-1.71a1.33 1.33 0 0 1 1.19-.72H12.8a1.33 1.33 0 0 1 1.2 1.6" +
|
|
@@ -111,23 +117,35 @@ const ICON_PATHS = {
|
|
|
111
117
|
themeDark: ["M13.2 9.6A5.6 5.6 0 0 1 6.4 2.8a5.6 5.6 0 1 0 6.8 6.8Z"],
|
|
112
118
|
themeSystemRects: [[1.8, 2.6, 12.4, 8.6, 1.6]],
|
|
113
119
|
themeLightCircles: [[8, 8, 3.1]],
|
|
120
|
+
// The add menu's marks all sit on one keyline, 2–14, the box the folder was
|
|
121
|
+
// redrawn onto: anything that runs out to 1.33 is the heaviest mark in the
|
|
122
|
+
// column, and anything drawn in 4.5–11.5 is the faintest.
|
|
123
|
+
//
|
|
114
124
|
// A page with its corner turned back, which is the one mark that reads as
|
|
115
125
|
// "file" at thirteen pixels without any lines of text inside it.
|
|
116
126
|
file: [
|
|
117
|
-
"M9.
|
|
118
|
-
"
|
|
119
|
-
"M9.
|
|
127
|
+
"M9.5 2H4.33A1.33 1.33 0 0 0 3 3.33v9.34A1.33 1.33 0 0 0 4.33 14h7.34" +
|
|
128
|
+
"A1.33 1.33 0 0 0 13 12.67V5.5Z",
|
|
129
|
+
"M9.5 2v3.5H13",
|
|
130
|
+
],
|
|
131
|
+
// A paperclip, for the menu row that attaches files or photos: the mark that
|
|
132
|
+
// row carries everywhere else, and one that covers a photo as well as a
|
|
133
|
+
// document. The chip an attachment becomes keeps the page above, since by
|
|
134
|
+
// then it is a file rather than the act of attaching one.
|
|
135
|
+
attach: [
|
|
136
|
+
"M10.4 4.4 5.35 9.55a1.2 1.2 0 0 0 1.7 1.7l5.05-5.15a2.4 2.4 0 1 0-3.4-3.4" +
|
|
137
|
+
"L3.67 7.83a3.6 3.6 0 1 0 5.1 5.1l5.03-5.13",
|
|
120
138
|
],
|
|
121
139
|
// Two pins and a body: a connector is the thing something else plugs into.
|
|
122
|
-
plug: ["M6
|
|
140
|
+
plug: ["M6 2v3", "M10 2v3", "M3.5 5h9v2.5a4.5 4.5 0 0 1-9 0Z", "M8 12v2"],
|
|
123
141
|
// Stacked plates, because a plugin arrives as a bundle of contributions
|
|
124
142
|
// rather than as one thing.
|
|
125
|
-
plugin: ["M8
|
|
143
|
+
plugin: ["M8 2 2 5l6 3 6-3Z", "M2 11l6 3 6-3", "M2 8l6 3 6-3"],
|
|
126
144
|
/* A bookmark: one path, and the only shape in this menu that is neither a
|
|
127
145
|
sheet nor a folder. The open book it replaced was two mirrored paths
|
|
128
146
|
meeting at a spine, which at the 13px these rows use closed into a blob —
|
|
129
147
|
two strokes a pixel apart read as one thick one. */
|
|
130
|
-
skill: ["
|
|
148
|
+
skill: ["M5.33 2h5.34A1.33 1.33 0 0 1 12 3.33V14l-4-3-4 3V3.33A1.33 1.33 0 0 1 5.33 2Z"],
|
|
131
149
|
/* A prompt caret: what a command line looks like anywhere else. */
|
|
132
150
|
command: ["M4 5.5 6.5 8 4 10.5", "M8.5 10.5H12"],
|
|
133
151
|
/* A bare chevron. The other back arrow has a shaft, which is right on a
|
|
@@ -138,6 +156,12 @@ const ICON_PATHS = {
|
|
|
138
156
|
close: ["M4.5 4.5l7 7", "M11.5 4.5l-7 7"],
|
|
139
157
|
/* Its counterpart, for adding one. */
|
|
140
158
|
plus: ["M8 3.5v9", "M3.5 8h9"],
|
|
159
|
+
check: ["M3.5 8.5l3 3 6-7"],
|
|
160
|
+
/* A picture: a frame, a hill and a sun — what "attach an image" looks like
|
|
161
|
+
everywhere else. */
|
|
162
|
+
image: ["M2.5 11.5 6 8l3 3 1.5-1.5 3 3"],
|
|
163
|
+
imageRects: [[2, 2.5, 12, 11, 2]],
|
|
164
|
+
imageCircles: [[10.5, 6, 1.2]],
|
|
141
165
|
search: ["M11.5 11.5 14 14"],
|
|
142
166
|
searchCircles: [[7.3, 7.3, 4.6]],
|
|
143
167
|
// A shopfront: an awning over a counter, for the list of what is on offer.
|
|
@@ -150,6 +174,11 @@ const ICON_PATHS = {
|
|
|
150
174
|
// transcript: the arc lands on the new node rather than crossing it.
|
|
151
175
|
fork: ["M5 2.6v7.7", "M11 6a5.7 5.7 0 0 1-4.3 6"],
|
|
152
176
|
forkCircles: [[11, 4.3], [5, 12]],
|
|
177
|
+
// A trunk and the branch that leaves it for a tree of its own. Three nodes
|
|
178
|
+
// where the fork has two: the trunk carries on past the point the branch
|
|
179
|
+
// left it, because a worktree is a second checkout, not a turn that moved.
|
|
180
|
+
worktree: ["M4.5 5.1v5.8", "M11.5 6.1a6.4 6.4 0 0 1-5.4 6.4"],
|
|
181
|
+
worktreeCircles: [[4.5, 3.5, 1.6], [4.5, 12.5, 1.6], [11.5, 4.5, 1.6]],
|
|
153
182
|
copy: [
|
|
154
183
|
"M6.67 5.33h6.66a1.33 1.33 0 0 1 1.34 1.34v6.66a1.33 1.33 0 0 1-1.34 1.34" +
|
|
155
184
|
"H6.67a1.33 1.33 0 0 1-1.34-1.34V6.67a1.33 1.33 0 0 1 1.34-1.34Z",
|
|
@@ -191,8 +220,8 @@ const ICON_PATHS = {
|
|
|
191
220
|
// Accept edits lets the pencil through.
|
|
192
221
|
modeEdits: ["M11.3 2.7 13.3 4.7 5.3 12.7H3.3v-2Z", "M9.8 4.2l2 2"],
|
|
193
222
|
// Plan is read-only: an eye, which looks and does not touch.
|
|
194
|
-
modePlan: ["
|
|
195
|
-
modePlanCircles: [[8, 8, 2.
|
|
223
|
+
modePlan: ["M2 8s2.3-4.8 6-4.8S14 8 14 8s-2.3 4.8-6 4.8S2 8 2 8Z"],
|
|
224
|
+
modePlanCircles: [[8, 8, 2.2]],
|
|
196
225
|
// Auto waves the routine through: a bolt.
|
|
197
226
|
modeAuto: ["M8.8 1.6 3.6 9h4l-.7 5.4L12.4 7h-4Z"],
|
|
198
227
|
// Bypass leaves the gate open: a padlock with its shackle swung clear.
|
|
@@ -202,6 +231,19 @@ const ICON_PATHS = {
|
|
|
202
231
|
// picker draws, because it is the same control.
|
|
203
232
|
calendar: ["M2 6.5h12M5.5 1.5v3M10.5 1.5v3"],
|
|
204
233
|
calendarRects: [[2, 3, 12, 11, 2.5]],
|
|
234
|
+
// Goal mode: a target, rings closing on the point being aimed at.
|
|
235
|
+
goal: ["M8 8h.01"],
|
|
236
|
+
goalCircles: [[8, 8, 6], [8, 8, 3]],
|
|
237
|
+
// Computer use: a screen on its stand, and the pointer that drives it. The
|
|
238
|
+
// pointer used to sit inside the screen at three and a half units, where it
|
|
239
|
+
// closed into a triangle and the whole mark read as a video's play button.
|
|
240
|
+
// Now it is full size and breaks out over the screen's corner, and the frame
|
|
241
|
+
// stops short of it so the two outlines never cross.
|
|
242
|
+
computer: [
|
|
243
|
+
"M8.5 10.5h-5A1.5 1.5 0 0 1 2 9V4A1.5 1.5 0 0 1 3.5 2.5h7A1.5 1.5 0 0 1 12 4v3",
|
|
244
|
+
"M7 10.5V13M5 13h4",
|
|
245
|
+
"M9.5 8.5l4.5 1.9-2 .6-.6 2Z",
|
|
246
|
+
],
|
|
205
247
|
chevronLeft: ["M10 3.5 5.5 8l4.5 4.5"],
|
|
206
248
|
chevronRight: ["M6 3.5 10.5 8 6 12.5"],
|
|
207
249
|
};
|
|
@@ -368,9 +410,10 @@ const api = (path, body, timeoutMs) =>
|
|
|
368
410
|
/**
|
|
369
411
|
* Record that a feature was used. Does nothing unless analytics are on.
|
|
370
412
|
*
|
|
371
|
-
* window.__TRACK
|
|
372
|
-
* see analytics.ts — so the calls
|
|
373
|
-
* has to remember which branch they
|
|
413
|
+
* window.__TRACK forwards to this server's /track once it has said analytics
|
|
414
|
+
* are on, and drops everything otherwise — see analytics.ts — so the calls
|
|
415
|
+
* below read the same either way and nobody has to remember which branch they
|
|
416
|
+
* are writing in. The server checks what arrives before anything leaves.
|
|
374
417
|
*
|
|
375
418
|
* There is deliberately no way to send text through here: every caller passes
|
|
376
419
|
* an event name and a handful of enumerable properties — which panel, whether
|
|
@@ -391,7 +434,7 @@ const jumpBtn = document.getElementById("jump");
|
|
|
391
434
|
const metaEl = document.getElementById("cost");
|
|
392
435
|
const tokensEl = document.getElementById("tokens");
|
|
393
436
|
const cacheEl = document.getElementById("cache");
|
|
394
|
-
const
|
|
437
|
+
const ctxRing = document.getElementById("ctx");
|
|
395
438
|
const ctxText = document.getElementById("ctxtext");
|
|
396
439
|
const sessionList = document.getElementById("sessions");
|
|
397
440
|
const sidebarEl = document.querySelector("body > aside");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/page/client/base.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/page/client/base.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsb7B,CAAC"}
|
|
@@ -578,7 +578,7 @@ async function browserReload() {
|
|
|
578
578
|
|
|
579
579
|
async function browserStop() {
|
|
580
580
|
if (!activeId || !browserView(activeId).running) return;
|
|
581
|
-
if (!
|
|
581
|
+
if (!(await askConfirm({ body: t("browser.stopConfirm"), ok: t("dialog.stop"), danger: true }))) return;
|
|
582
582
|
browserStopBtn.disabled = true;
|
|
583
583
|
const result = await api("/browser/close", { session: activeId });
|
|
584
584
|
if (result.error) {
|