@songsid/agend 2.1.4-beta.39 → 2.1.4-beta.40
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/channel/adapters/discord.d.ts +42 -2
- package/dist/channel/adapters/discord.js +405 -52
- package/dist/channel/adapters/discord.js.map +1 -1
- package/dist/channel/types.d.ts +28 -0
- package/dist/daemon.d.ts +6 -4
- package/dist/daemon.js +65 -29
- package/dist/daemon.js.map +1 -1
- package/dist/doctor.d.ts +14 -1
- package/dist/doctor.js +41 -0
- package/dist/doctor.js.map +1 -1
- package/dist/fleet-manager.d.ts +14 -1
- package/dist/fleet-manager.js +164 -92
- package/dist/fleet-manager.js.map +1 -1
- package/dist/instance-lifecycle.d.ts +6 -0
- package/dist/instance-lifecycle.js +25 -1
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/locale.js +29 -7
- package/dist/locale.js.map +1 -1
- package/dist/spawn-gate.d.ts +30 -0
- package/dist/spawn-gate.js +79 -0
- package/dist/spawn-gate.js.map +1 -0
- package/dist/storm-window.d.ts +83 -0
- package/dist/storm-window.js +251 -0
- package/dist/storm-window.js.map +1 -0
- package/dist/tmux-manager.d.ts +3 -0
- package/dist/tmux-manager.js +36 -11
- package/dist/tmux-manager.js.map +1 -1
- package/dist/ui/view.html +5 -5
- package/package.json +1 -1
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { freemem } from "node:os";
|
|
2
|
+
/** Persistent fleet-wide concurrency/workdir gate shared by startup and recovery. */
|
|
3
|
+
export class SpawnGate {
|
|
4
|
+
options;
|
|
5
|
+
queue = [];
|
|
6
|
+
active = 0;
|
|
7
|
+
activeDirectories = new Set();
|
|
8
|
+
activeInstances = new Set();
|
|
9
|
+
lastStartedAt = 0;
|
|
10
|
+
timer = null;
|
|
11
|
+
stopped = false;
|
|
12
|
+
random;
|
|
13
|
+
lowMemoryBytes;
|
|
14
|
+
constructor(options) {
|
|
15
|
+
this.options = options;
|
|
16
|
+
this.random = options.random ?? Math.random;
|
|
17
|
+
this.lowMemoryBytes = options.lowMemoryBytes ?? 300 * 1024 * 1024;
|
|
18
|
+
options.storm.on("recovery_due", () => this.pump());
|
|
19
|
+
options.storm.on("closed", () => this.pump());
|
|
20
|
+
}
|
|
21
|
+
run(task, operation) {
|
|
22
|
+
if (this.stopped)
|
|
23
|
+
return Promise.reject(new Error("Spawn gate is shutting down"));
|
|
24
|
+
// startInstancesWithConcurrency/restartSingleInstance gate the whole
|
|
25
|
+
// lifecycle operation, whose Daemon.trySpawn reaches this same choke point.
|
|
26
|
+
// Treat that nested acquisition as re-entrant for the same instance.
|
|
27
|
+
if (this.activeInstances.has(task.instanceName))
|
|
28
|
+
return operation();
|
|
29
|
+
return new Promise((resolve, reject) => {
|
|
30
|
+
this.queue.push({ task, run: operation, resolve, reject });
|
|
31
|
+
this.pump();
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
shutdown() {
|
|
35
|
+
this.stopped = true;
|
|
36
|
+
if (this.timer)
|
|
37
|
+
clearTimeout(this.timer);
|
|
38
|
+
this.timer = null;
|
|
39
|
+
const err = new Error("Spawn gate shut down before task started");
|
|
40
|
+
for (const item of this.queue.splice(0))
|
|
41
|
+
item.reject(err);
|
|
42
|
+
}
|
|
43
|
+
pump() {
|
|
44
|
+
if (this.stopped || this.timer || this.options.storm.isSpawnBlocked())
|
|
45
|
+
return;
|
|
46
|
+
const configured = Math.max(1, Math.min(20, this.options.concurrency()));
|
|
47
|
+
const limit = this.options.storm.isActive() ? Math.min(4, configured) : configured;
|
|
48
|
+
while (this.active < limit) {
|
|
49
|
+
const index = this.queue.findIndex(item => !this.activeDirectories.has(item.task.workingDirectory));
|
|
50
|
+
if (index < 0)
|
|
51
|
+
return;
|
|
52
|
+
if (this.active > 0 && freemem() < this.lowMemoryBytes) {
|
|
53
|
+
this.timer = setTimeout(() => { this.timer = null; this.pump(); }, 5_000);
|
|
54
|
+
this.timer.unref?.();
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const stagger = Math.max(0, Math.min(30_000, this.options.staggerMs()));
|
|
58
|
+
const jitter = this.options.storm.isActive() ? Math.floor(this.random() * 500) : 0;
|
|
59
|
+
const wait = Math.max(0, this.lastStartedAt + stagger + jitter - Date.now());
|
|
60
|
+
if (wait > 0) {
|
|
61
|
+
this.timer = setTimeout(() => { this.timer = null; this.pump(); }, wait);
|
|
62
|
+
this.timer.unref?.();
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const [item] = this.queue.splice(index, 1);
|
|
66
|
+
this.active++;
|
|
67
|
+
this.activeDirectories.add(item.task.workingDirectory);
|
|
68
|
+
this.activeInstances.add(item.task.instanceName);
|
|
69
|
+
this.lastStartedAt = Date.now();
|
|
70
|
+
void item.run().then(item.resolve, item.reject).finally(() => {
|
|
71
|
+
this.active--;
|
|
72
|
+
this.activeDirectories.delete(item.task.workingDirectory);
|
|
73
|
+
this.activeInstances.delete(item.task.instanceName);
|
|
74
|
+
this.pump();
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=spawn-gate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawn-gate.js","sourceRoot":"","sources":["../src/spawn-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { EventEmitter } from "node:events";
|
|
2
|
+
export type StormPhase = "closed" | "backing_off" | "recovering";
|
|
3
|
+
export interface StormSnapshot {
|
|
4
|
+
phase: StormPhase;
|
|
5
|
+
generation: number;
|
|
6
|
+
crashLevel: number;
|
|
7
|
+
crashCount: number;
|
|
8
|
+
backoffMs: number;
|
|
9
|
+
retryAt: number | null;
|
|
10
|
+
affected: string[];
|
|
11
|
+
recovered: string[];
|
|
12
|
+
suppressed: Record<string, number>;
|
|
13
|
+
serverPid: number | null;
|
|
14
|
+
}
|
|
15
|
+
export interface StormWindowOptions {
|
|
16
|
+
now?: () => number;
|
|
17
|
+
setTimer?: (fn: () => void, ms: number) => ReturnType<typeof setTimeout>;
|
|
18
|
+
clearTimer?: (timer: ReturnType<typeof setTimeout>) => void;
|
|
19
|
+
backoffsMs?: readonly number[];
|
|
20
|
+
stableResetMs?: number;
|
|
21
|
+
recoveryTimeoutMs?: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Fleet-wide tmux-server storm state.
|
|
25
|
+
*
|
|
26
|
+
* A server death is counted on an observed alive -> dead transition, not once
|
|
27
|
+
* per daemon report. Health ticks are deliberately out of phase, so a time
|
|
28
|
+
* window cannot distinguish thirty reports of one death from a real second
|
|
29
|
+
* crash sixteen seconds later.
|
|
30
|
+
*/
|
|
31
|
+
export declare class StormWindow extends EventEmitter {
|
|
32
|
+
private readonly now;
|
|
33
|
+
private readonly setTimer;
|
|
34
|
+
private readonly clearTimer;
|
|
35
|
+
private readonly backoffsMs;
|
|
36
|
+
private readonly stableResetMs;
|
|
37
|
+
private readonly recoveryTimeoutMs;
|
|
38
|
+
private phase;
|
|
39
|
+
private generation;
|
|
40
|
+
private crashLevel;
|
|
41
|
+
private crashCount;
|
|
42
|
+
private backoffMs;
|
|
43
|
+
private retryAt;
|
|
44
|
+
private serverDown;
|
|
45
|
+
private serverPid;
|
|
46
|
+
private affected;
|
|
47
|
+
private recovered;
|
|
48
|
+
private suppressed;
|
|
49
|
+
private backoffTimer;
|
|
50
|
+
private stableTimer;
|
|
51
|
+
private recoveryTimer;
|
|
52
|
+
private spawnWaiters;
|
|
53
|
+
private deliveryWaiters;
|
|
54
|
+
private stopped;
|
|
55
|
+
constructor(options?: StormWindowOptions);
|
|
56
|
+
snapshot(): StormSnapshot;
|
|
57
|
+
isActive(): boolean;
|
|
58
|
+
isStopped(): boolean;
|
|
59
|
+
isSpawnBlocked(): boolean;
|
|
60
|
+
isDeliveryHeld(name?: string): boolean;
|
|
61
|
+
needsRecovery(name: string): boolean;
|
|
62
|
+
/** Record a confirmed tmux-server absence. Returns true for a new transition. */
|
|
63
|
+
recordServerDead(reporter: string, affected: Iterable<string>): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Mark the server alive. A changed PID re-arms the generation latch. If a
|
|
66
|
+
* storm is already open, an unexpected PID swap is itself evidence that a
|
|
67
|
+
* crash/restart transition occurred between probes.
|
|
68
|
+
*/
|
|
69
|
+
observeServerAlive(pid: number | null): boolean;
|
|
70
|
+
addAffected(name: string): void;
|
|
71
|
+
markRecovered(name: string): void;
|
|
72
|
+
shouldSuppress(kind: string): boolean;
|
|
73
|
+
waitForSpawnAllowed(): Promise<void>;
|
|
74
|
+
waitForDeliveryAllowed(name: string): Promise<void>;
|
|
75
|
+
shutdown(): void;
|
|
76
|
+
private recordDistinctCrash;
|
|
77
|
+
private beginRecovery;
|
|
78
|
+
private closeWindow;
|
|
79
|
+
private release;
|
|
80
|
+
private releaseDelivery;
|
|
81
|
+
private releaseAllDelivery;
|
|
82
|
+
private clearAllTimers;
|
|
83
|
+
}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import { EventEmitter } from "node:events";
|
|
2
|
+
const STORM_INCIDENT_KINDS = new Set([
|
|
3
|
+
"crash_respawn",
|
|
4
|
+
"mcp_died",
|
|
5
|
+
"mcp_auto_restart",
|
|
6
|
+
"snapshot_failed",
|
|
7
|
+
"hang",
|
|
8
|
+
"health_check_error",
|
|
9
|
+
]);
|
|
10
|
+
/**
|
|
11
|
+
* Fleet-wide tmux-server storm state.
|
|
12
|
+
*
|
|
13
|
+
* A server death is counted on an observed alive -> dead transition, not once
|
|
14
|
+
* per daemon report. Health ticks are deliberately out of phase, so a time
|
|
15
|
+
* window cannot distinguish thirty reports of one death from a real second
|
|
16
|
+
* crash sixteen seconds later.
|
|
17
|
+
*/
|
|
18
|
+
export class StormWindow extends EventEmitter {
|
|
19
|
+
now;
|
|
20
|
+
setTimer;
|
|
21
|
+
clearTimer;
|
|
22
|
+
backoffsMs;
|
|
23
|
+
stableResetMs;
|
|
24
|
+
recoveryTimeoutMs;
|
|
25
|
+
phase = "closed";
|
|
26
|
+
generation = 0;
|
|
27
|
+
crashLevel = 0;
|
|
28
|
+
crashCount = 0;
|
|
29
|
+
backoffMs = 0;
|
|
30
|
+
retryAt = null;
|
|
31
|
+
serverDown = false;
|
|
32
|
+
serverPid = null;
|
|
33
|
+
affected = new Set();
|
|
34
|
+
recovered = new Set();
|
|
35
|
+
suppressed = new Map();
|
|
36
|
+
backoffTimer = null;
|
|
37
|
+
stableTimer = null;
|
|
38
|
+
recoveryTimer = null;
|
|
39
|
+
spawnWaiters = new Set();
|
|
40
|
+
deliveryWaiters = new Map();
|
|
41
|
+
stopped = false;
|
|
42
|
+
constructor(options = {}) {
|
|
43
|
+
super();
|
|
44
|
+
this.now = options.now ?? Date.now;
|
|
45
|
+
this.setTimer = options.setTimer ?? ((fn, ms) => setTimeout(fn, ms));
|
|
46
|
+
this.clearTimer = options.clearTimer ?? clearTimeout;
|
|
47
|
+
this.backoffsMs = options.backoffsMs ?? [30_000, 2 * 60_000, 10 * 60_000];
|
|
48
|
+
this.stableResetMs = options.stableResetMs ?? 10 * 60_000;
|
|
49
|
+
this.recoveryTimeoutMs = options.recoveryTimeoutMs ?? 10 * 60_000;
|
|
50
|
+
}
|
|
51
|
+
snapshot() {
|
|
52
|
+
return {
|
|
53
|
+
phase: this.phase,
|
|
54
|
+
generation: this.generation,
|
|
55
|
+
crashLevel: this.crashLevel,
|
|
56
|
+
crashCount: this.crashCount,
|
|
57
|
+
backoffMs: this.backoffMs,
|
|
58
|
+
retryAt: this.retryAt,
|
|
59
|
+
affected: [...this.affected],
|
|
60
|
+
recovered: [...this.recovered],
|
|
61
|
+
suppressed: Object.fromEntries(this.suppressed),
|
|
62
|
+
serverPid: this.serverPid,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
isActive() { return this.phase !== "closed"; }
|
|
66
|
+
isStopped() { return this.stopped; }
|
|
67
|
+
isSpawnBlocked() { return !this.stopped && this.phase === "backing_off"; }
|
|
68
|
+
isDeliveryHeld(name) {
|
|
69
|
+
if (this.stopped || this.phase === "closed")
|
|
70
|
+
return false;
|
|
71
|
+
if (this.phase === "backing_off" || name == null)
|
|
72
|
+
return true;
|
|
73
|
+
return this.needsRecovery(name);
|
|
74
|
+
}
|
|
75
|
+
needsRecovery(name) {
|
|
76
|
+
return this.isActive() && this.affected.has(name) && !this.recovered.has(name);
|
|
77
|
+
}
|
|
78
|
+
/** Record a confirmed tmux-server absence. Returns true for a new transition. */
|
|
79
|
+
recordServerDead(reporter, affected) {
|
|
80
|
+
for (const name of affected)
|
|
81
|
+
this.affected.add(name);
|
|
82
|
+
this.affected.add(reporter);
|
|
83
|
+
this.recovered.delete(reporter);
|
|
84
|
+
if (this.serverDown)
|
|
85
|
+
return false;
|
|
86
|
+
this.serverDown = true;
|
|
87
|
+
this.serverPid = null;
|
|
88
|
+
this.recordDistinctCrash();
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Mark the server alive. A changed PID re-arms the generation latch. If a
|
|
93
|
+
* storm is already open, an unexpected PID swap is itself evidence that a
|
|
94
|
+
* crash/restart transition occurred between probes.
|
|
95
|
+
*/
|
|
96
|
+
observeServerAlive(pid) {
|
|
97
|
+
const changed = pid != null && this.serverPid != null && pid !== this.serverPid;
|
|
98
|
+
const wasDown = this.serverDown;
|
|
99
|
+
this.serverDown = false;
|
|
100
|
+
if (pid != null)
|
|
101
|
+
this.serverPid = pid;
|
|
102
|
+
if (changed && !wasDown)
|
|
103
|
+
this.recordDistinctCrash();
|
|
104
|
+
return changed && !wasDown;
|
|
105
|
+
}
|
|
106
|
+
addAffected(name) {
|
|
107
|
+
if (!this.isActive())
|
|
108
|
+
return;
|
|
109
|
+
this.affected.add(name);
|
|
110
|
+
this.recovered.delete(name);
|
|
111
|
+
}
|
|
112
|
+
markRecovered(name) {
|
|
113
|
+
if (!this.isActive() || !this.affected.has(name))
|
|
114
|
+
return;
|
|
115
|
+
this.recovered.add(name);
|
|
116
|
+
this.releaseDelivery(name);
|
|
117
|
+
this.emit("progress", this.snapshot());
|
|
118
|
+
if (this.phase === "recovering" && this.recovered.size >= this.affected.size) {
|
|
119
|
+
this.closeWindow("recovered");
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
shouldSuppress(kind) {
|
|
123
|
+
if (!this.isActive() || !STORM_INCIDENT_KINDS.has(kind))
|
|
124
|
+
return false;
|
|
125
|
+
this.suppressed.set(kind, (this.suppressed.get(kind) ?? 0) + 1);
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
waitForSpawnAllowed() {
|
|
129
|
+
if (!this.isSpawnBlocked())
|
|
130
|
+
return Promise.resolve();
|
|
131
|
+
return new Promise(resolve => this.spawnWaiters.add(resolve));
|
|
132
|
+
}
|
|
133
|
+
waitForDeliveryAllowed(name) {
|
|
134
|
+
if (!this.isDeliveryHeld(name))
|
|
135
|
+
return Promise.resolve();
|
|
136
|
+
return new Promise(resolve => {
|
|
137
|
+
let waiters = this.deliveryWaiters.get(name);
|
|
138
|
+
if (!waiters) {
|
|
139
|
+
waiters = new Set();
|
|
140
|
+
this.deliveryWaiters.set(name, waiters);
|
|
141
|
+
}
|
|
142
|
+
waiters.add(resolve);
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
shutdown() {
|
|
146
|
+
this.stopped = true;
|
|
147
|
+
this.clearAllTimers();
|
|
148
|
+
this.release(this.spawnWaiters);
|
|
149
|
+
this.releaseAllDelivery();
|
|
150
|
+
this.phase = "closed";
|
|
151
|
+
}
|
|
152
|
+
recordDistinctCrash() {
|
|
153
|
+
const now = this.now();
|
|
154
|
+
const wasClosed = this.phase === "closed";
|
|
155
|
+
this.generation++;
|
|
156
|
+
this.crashCount++;
|
|
157
|
+
this.crashLevel = Math.min(this.crashLevel + 1, this.backoffsMs.length);
|
|
158
|
+
this.backoffMs = this.backoffsMs[Math.max(0, this.crashLevel - 1)] ?? this.backoffsMs.at(-1);
|
|
159
|
+
this.retryAt = now + this.backoffMs;
|
|
160
|
+
this.phase = "backing_off";
|
|
161
|
+
this.recovered.clear();
|
|
162
|
+
if (this.backoffTimer)
|
|
163
|
+
this.clearTimer(this.backoffTimer);
|
|
164
|
+
if (this.recoveryTimer) {
|
|
165
|
+
this.clearTimer(this.recoveryTimer);
|
|
166
|
+
this.recoveryTimer = null;
|
|
167
|
+
}
|
|
168
|
+
this.backoffTimer = this.setTimer(() => this.beginRecovery(), this.backoffMs);
|
|
169
|
+
this.backoffTimer?.unref?.();
|
|
170
|
+
// A storm is not stable merely because the current backoff itself lasts ten
|
|
171
|
+
// minutes. The reset clock begins only after recovery closes the window.
|
|
172
|
+
if (this.stableTimer) {
|
|
173
|
+
this.clearTimer(this.stableTimer);
|
|
174
|
+
this.stableTimer = null;
|
|
175
|
+
}
|
|
176
|
+
this.emit(wasClosed ? "opened" : "extended", this.snapshot());
|
|
177
|
+
}
|
|
178
|
+
beginRecovery() {
|
|
179
|
+
this.backoffTimer = null;
|
|
180
|
+
if (this.stopped || this.phase !== "backing_off")
|
|
181
|
+
return;
|
|
182
|
+
this.phase = "recovering";
|
|
183
|
+
this.retryAt = null;
|
|
184
|
+
this.release(this.spawnWaiters);
|
|
185
|
+
// A delivery may have parked during backoff for an instance which was not
|
|
186
|
+
// running (and therefore not in `affected`). Once the server is available,
|
|
187
|
+
// that instance can follow its normal wake path immediately; do not make it
|
|
188
|
+
// wait for unrelated recovery stragglers to close the whole window.
|
|
189
|
+
for (const name of [...this.deliveryWaiters.keys()]) {
|
|
190
|
+
if (!this.isDeliveryHeld(name))
|
|
191
|
+
this.releaseDelivery(name);
|
|
192
|
+
}
|
|
193
|
+
this.emit("recovery_due", this.snapshot());
|
|
194
|
+
this.recoveryTimer = this.setTimer(() => this.closeWindow("timeout"), this.recoveryTimeoutMs);
|
|
195
|
+
this.recoveryTimer?.unref?.();
|
|
196
|
+
}
|
|
197
|
+
closeWindow(reason) {
|
|
198
|
+
if (this.phase === "closed")
|
|
199
|
+
return;
|
|
200
|
+
if (this.backoffTimer) {
|
|
201
|
+
this.clearTimer(this.backoffTimer);
|
|
202
|
+
this.backoffTimer = null;
|
|
203
|
+
}
|
|
204
|
+
if (this.recoveryTimer) {
|
|
205
|
+
this.clearTimer(this.recoveryTimer);
|
|
206
|
+
this.recoveryTimer = null;
|
|
207
|
+
}
|
|
208
|
+
this.phase = "closed";
|
|
209
|
+
this.retryAt = null;
|
|
210
|
+
const snapshot = this.snapshot();
|
|
211
|
+
this.release(this.spawnWaiters);
|
|
212
|
+
this.releaseAllDelivery();
|
|
213
|
+
this.emit("closed", snapshot, reason);
|
|
214
|
+
this.affected.clear();
|
|
215
|
+
this.recovered.clear();
|
|
216
|
+
this.suppressed.clear();
|
|
217
|
+
this.stableTimer = this.setTimer(() => {
|
|
218
|
+
if (this.phase !== "closed")
|
|
219
|
+
return;
|
|
220
|
+
this.crashLevel = 0;
|
|
221
|
+
this.crashCount = 0;
|
|
222
|
+
this.stableTimer = null;
|
|
223
|
+
this.emit("stable", this.snapshot());
|
|
224
|
+
}, this.stableResetMs);
|
|
225
|
+
this.stableTimer?.unref?.();
|
|
226
|
+
}
|
|
227
|
+
release(waiters) {
|
|
228
|
+
for (const resolve of waiters)
|
|
229
|
+
resolve();
|
|
230
|
+
waiters.clear();
|
|
231
|
+
}
|
|
232
|
+
releaseDelivery(name) {
|
|
233
|
+
const waiters = this.deliveryWaiters.get(name);
|
|
234
|
+
if (!waiters)
|
|
235
|
+
return;
|
|
236
|
+
this.release(waiters);
|
|
237
|
+
this.deliveryWaiters.delete(name);
|
|
238
|
+
}
|
|
239
|
+
releaseAllDelivery() {
|
|
240
|
+
for (const name of [...this.deliveryWaiters.keys()])
|
|
241
|
+
this.releaseDelivery(name);
|
|
242
|
+
}
|
|
243
|
+
clearAllTimers() {
|
|
244
|
+
for (const timer of [this.backoffTimer, this.stableTimer, this.recoveryTimer]) {
|
|
245
|
+
if (timer)
|
|
246
|
+
this.clearTimer(timer);
|
|
247
|
+
}
|
|
248
|
+
this.backoffTimer = this.stableTimer = this.recoveryTimer = null;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
//# sourceMappingURL=storm-window.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storm-window.js","sourceRoot":"","sources":["../src/storm-window.ts"],"names":[],"mappings":"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"}
|
package/dist/tmux-manager.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export declare function resolveTmuxLogicalSize(config?: TerminalConfig): TmuxLog
|
|
|
10
10
|
export declare class TmuxManager {
|
|
11
11
|
private sessionName;
|
|
12
12
|
private logicalSize;
|
|
13
|
+
private static ensureSessionInFlight;
|
|
13
14
|
private windowId;
|
|
14
15
|
private lastSendSpecialKeyError;
|
|
15
16
|
private lastPasteError;
|
|
@@ -20,6 +21,8 @@ export declare class TmuxManager {
|
|
|
20
21
|
private static tmuxArgs;
|
|
21
22
|
constructor(sessionName: string, windowId: string, logicalSize?: TmuxLogicalSize);
|
|
22
23
|
static ensureSession(name: string): Promise<void>;
|
|
24
|
+
/** PID identifies a concrete tmux server generation. */
|
|
25
|
+
static getServerPid(sessionName: string): Promise<number | null>;
|
|
23
26
|
static sessionExists(name: string): Promise<boolean>;
|
|
24
27
|
static killSession(name: string): Promise<void>;
|
|
25
28
|
static listWindows(sessionName: string): Promise<Array<{
|
package/dist/tmux-manager.js
CHANGED
|
@@ -46,6 +46,7 @@ export function resolveTmuxLogicalSize(config) {
|
|
|
46
46
|
export class TmuxManager {
|
|
47
47
|
sessionName;
|
|
48
48
|
logicalSize;
|
|
49
|
+
static ensureSessionInFlight = new Map();
|
|
49
50
|
windowId;
|
|
50
51
|
lastSendSpecialKeyError = null;
|
|
51
52
|
lastPasteError = null;
|
|
@@ -69,20 +70,44 @@ export class TmuxManager {
|
|
|
69
70
|
}
|
|
70
71
|
// === Static session-level methods ===
|
|
71
72
|
static async ensureSession(name) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
const existing = TmuxManager.ensureSessionInFlight.get(name);
|
|
74
|
+
if (existing)
|
|
75
|
+
return existing;
|
|
76
|
+
const operation = (async () => {
|
|
77
|
+
if (!(await TmuxManager.sessionExists(name))) {
|
|
78
|
+
try {
|
|
79
|
+
await exec("tmux", TmuxManager.tmuxArgs(["new-session", "-d", "-s", name]));
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
if (!String(err).includes("duplicate session"))
|
|
83
|
+
throw err;
|
|
84
|
+
}
|
|
75
85
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
86
|
+
// This is deliberately a session option, not `set-option -g`: enabling the
|
|
87
|
+
// global default would also change tmux sessions that AgEnD does not own.
|
|
88
|
+
await exec("tmux", TmuxManager.tmuxArgs([
|
|
89
|
+
"set-option", "-t", name, "mouse", "on",
|
|
90
|
+
]));
|
|
91
|
+
})().finally(() => {
|
|
92
|
+
if (TmuxManager.ensureSessionInFlight.get(name) === operation) {
|
|
93
|
+
TmuxManager.ensureSessionInFlight.delete(name);
|
|
79
94
|
}
|
|
95
|
+
});
|
|
96
|
+
TmuxManager.ensureSessionInFlight.set(name, operation);
|
|
97
|
+
return operation;
|
|
98
|
+
}
|
|
99
|
+
/** PID identifies a concrete tmux server generation. */
|
|
100
|
+
static async getServerPid(sessionName) {
|
|
101
|
+
try {
|
|
102
|
+
const { stdout } = await exec("tmux", TmuxManager.tmuxArgs([
|
|
103
|
+
"display-message", "-p", "-t", sessionName, "#{pid}",
|
|
104
|
+
]));
|
|
105
|
+
const pid = Number.parseInt(stdout.trim(), 10);
|
|
106
|
+
return Number.isSafeInteger(pid) && pid > 1 ? pid : null;
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
return null;
|
|
80
110
|
}
|
|
81
|
-
// This is deliberately a session option, not `set-option -g`: enabling the
|
|
82
|
-
// global default would also change tmux sessions that AgEnD does not own.
|
|
83
|
-
await exec("tmux", TmuxManager.tmuxArgs([
|
|
84
|
-
"set-option", "-t", name, "mouse", "on",
|
|
85
|
-
]));
|
|
86
111
|
}
|
|
87
112
|
static async sessionExists(name) {
|
|
88
113
|
try {
|
package/dist/tmux-manager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tmux-manager.js","sourceRoot":"","sources":["../src/tmux-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tmux-manager.js","sourceRoot":"","sources":["../src/tmux-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAEjC,SAAS,eAAe,CAAC,GAAY;IACnC,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,MAAM,CAAE,KAAqC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAClF,MAAM,IAAI,GAAI,KAA4C,CAAC,IAAI,CAAC;IAChE,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxG,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,sFAAsF;AACtF,SAAS,iBAAiB,CAAC,QAAkB,EAAE,KAAa;IAC1D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAClE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3C,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,KAAK,CAAC,OAAO,GAAG,GAAG,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YAC7F,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAClC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC;AAOD,MAAM,CAAC,MAAM,yBAAyB,GAA8B,MAAM,CAAC,MAAM,CAAC;IAChF,OAAO,EAAE,GAAG;IACZ,IAAI,EAAE,EAAE;CACT,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAA8B,MAAM,CAAC,MAAM,CAAC;IAC/E,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,EAAE;CACT,CAAC,CAAC;AAEH,iFAAiF;AACjF,MAAM,UAAU,sBAAsB,CAAC,MAAuB;IAC5D,IAAI,MAAM,EAAE,OAAO,KAAK,KAAK;QAAE,OAAO,EAAE,GAAG,wBAAwB,EAAE,CAAC;IACtE,OAAO;QACL,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,yBAAyB,CAAC,OAAO;QAC7D,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,yBAAyB,CAAC,IAAI;KACrD,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,WAAW;IAsBZ;IAEA;IAvBF,MAAM,CAAC,qBAAqB,GAAG,IAAI,GAAG,EAAyB,CAAC;IAChE,QAAQ,CAAS;IACjB,uBAAuB,GAAkB,IAAI,CAAC;IAC9C,cAAc,GAAkB,IAAI,CAAC;IACrC,2BAA2B,GAAG,KAAK,CAAC;IAE5C,0EAA0E;IAC1E,oEAAoE;IAC5D,MAAM,CAAC,UAAU,GAAkB,IAAI,CAAC;IAEhD,MAAM,CAAC,aAAa,CAAC,IAAmB;QACtC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC;IAChC,CAAC;IAED,gEAAgE;IACxD,MAAM,CAAC,QAAQ,CAAC,IAAc;QACpC,IAAI,CAAC,WAAW,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QACzC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,YACU,WAAmB,EAC3B,QAAgB,EACR,cAA+B,EAAE,GAAG,yBAAyB,EAAE;QAF/D,gBAAW,GAAX,WAAW,CAAQ;QAEnB,gBAAW,GAAX,WAAW,CAAoD;QAEvE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,uCAAuC;IAEvC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAAY;QACrC,MAAM,QAAQ,GAAG,WAAW,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,MAAM,SAAS,GAAG,CAAC,KAAK,IAAI,EAAE;YAC5B,IAAI,CAAC,CAAC,MAAM,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC9E,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;wBAAE,MAAM,GAAG,CAAC;gBAC5D,CAAC;YACH,CAAC;YAED,2EAA2E;YAC3E,0EAA0E;YAC1E,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;gBACtC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI;aACxC,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,WAAW,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9D,WAAW,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjD,CAAC;QACH,CAAC,CAAC,CAAC;QACH,WAAW,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACvD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,wDAAwD;IACxD,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,WAAmB;QAC3C,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;gBACzD,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ;aACrD,CAAC,CAAC,CAAC;YACJ,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/C,OAAO,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAAY;QACrC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAY;QACnC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;QACtC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,WAAmB;QAC1C,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;gBACzD,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,+BAA+B;aACzE,CAAC,CAAC,CAAC;YACJ,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC1D,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACrC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;YACtB,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,EAAE,CAAC;QAAC,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,QAAgB;QAC3D,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;gBACzD,YAAY,EAAE,IAAI,EAAE,GAAG,WAAW,IAAI,QAAQ,EAAE,EAAE,IAAI,EAAE,aAAa;aACtE,CAAC,CAAC,CAAC;YACJ,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACxC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;IAC1B,CAAC;IAED,kCAAkC;IAElC,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,GAAW,EAAE,UAAmB;QAClE,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,CAAC,MAAM,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;iBAC/D,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YAChD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,wEAAwE;gBACxE,wEAAwE;gBACxE,0EAA0E;gBAC1E,sEAAsE;gBACtE,wCAAwC;gBACxC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACrF,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;oBAC7B,IAAI,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE;wBAAE,SAAS;oBACvC,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC;gBACnF,CAAC;gBACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACvC,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;oBACtC,mBAAmB,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjE,cAAc,EAAE,KAAK;iBACtB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACpB,OAAO,IAAI,CAAC,QAAQ,CAAC;YACvB,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACrE,IAAI,UAAU;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,uEAAuE;YACvE,2EAA2E;YAC3E,oEAAoE;YACpE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC9B,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,mBAAmB,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACvJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,uEAAuE;YACvE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,gFAAgF;IAChF,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,GAAW;QAC9C,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACtF,2EAA2E;QAC3E,wEAAwE;QACxE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;YACtC,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE;YACpE,IAAI,EAAE,GAAG,EAAE,OAAO;SACnB,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtD,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;YACtC,eAAe,EAAE,IAAI,EAAE,MAAM;YAC7B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YACtC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;SACpC,CAAC,CAAC,CAAC;QACJ,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;YACtC,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ;SAC3D,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1G,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;QACtC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAChE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC;IAC3B,CAAC;IAED,+EAA+E;IAC/E,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;YACtC,YAAY,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC1D,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAChC,yEAAyE;QACzE,2EAA2E;QAC3E,sEAAsE;QACtE,+CAA+C;QAC/C,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;oBACzD,YAAY,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE;oBAC1D,IAAI,EAAE,kCAAkC;iBACzC,CAAC,CAAC,CAAC;gBACJ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1C,IAAI,CAAC,IAAI;oBAAE,OAAO,IAAI,CAAC;gBACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;oBACjB,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACpC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC3E,CAAC;gBACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,OAAO,KAAK,CAAC;oBAAE,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qFAAqF;IACrF,KAAK,CAAC,iBAAiB;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;YACzD,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM;YACrC,kCAAkC;SACnC,CAAC,CAAC,CAAC;QACJ,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;YACrE,qBAAqB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa;SACzD,CAAC,CAAC,CAAC;QACJ,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,iCAAiC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAClH,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAA0E;QAC7F,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3G,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,IAAI,GAAG;gBAC9D,CAAC,CAAC,MAAM,CAAE,GAA4B,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;gBAC3D,CAAC,CAAC,EAAE,CAAC;YACP,IAAI,CAAC,uBAAuB,GAAG,MAAM,IAAI,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5F,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,0BAA0B;QACxB,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACtC,CAAC;IAED,iFAAiF;IACjF,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,0EAA0E;IAC1E,6BAA6B;QAC3B,OAAO,IAAI,CAAC,2BAA2B,CAAC;IAC1C,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,IAAY;QACrC,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtD,MAAM,OAAO,GAAG,SAAS,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YAC3C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YACpG,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,OAAiC,EAAE;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YACnD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC3C,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/E,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC5C,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YACjF,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YAC3C,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAe;QAC9B,2EAA2E;QAC3E,0EAA0E;QAC1E,uEAAuE;QACvE,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,mDAAmD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChG,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;YACtC,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE;YACzD,WAAW,OAAO,GAAG;SACtB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;YACzD,cAAc,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI;SACnE,CAAC,CAAC,CAAC;QACJ,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,sBAAsB,CAAC,QAAgB,EAAE;QAC7C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;YACzD,cAAc,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC5D,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE;SACxB,CAAC,CAAC,CAAC;QACJ,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CAAC,QAAgB,EAAE;QACxC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;YACzD,cAAc,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC5D,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE;SAC9B,CAAC,CAAC,CAAC;QACJ,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,WAAW,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC"}
|
package/dist/ui/view.html
CHANGED
|
@@ -255,23 +255,23 @@
|
|
|
255
255
|
tooltipBackend: "後端:{value}", tooltipStatus: "狀態:{value}", tooltipContext: "上下文:{value}",
|
|
256
256
|
tooltipUnavailable: "無資料", statusRunning: "運行中", statusPaused: "已暫停",
|
|
257
257
|
statusStopped: "已停止", statusCrashed: "已崩潰", statusUnknown: "未知",
|
|
258
|
-
usageResets: "{t}
|
|
258
|
+
usageResets: "{t}後重置", usageSoon: "即將重置", usageFail: "無法載入用量資料。",
|
|
259
259
|
"usage.title": "AI 訂閱用量", "usage.title_plain": "AI 訂閱用量", "usage.empty_active": "沒有使用中且支援用量追蹤的 Backend",
|
|
260
260
|
"usage.not_logged_in": "未登入", "usage.error_fallback": "錯誤", "usage.no_data": "無資料",
|
|
261
|
-
"usage.reset.in": "{0}
|
|
262
|
-
"usage.duration.days_hours": "{0}
|
|
261
|
+
"usage.reset.in": "{0}後重置", "usage.reset.soon": "即將重置",
|
|
262
|
+
"usage.duration.days_hours": "{0}天{1}小時", "usage.duration.hours_minutes": "{0}小時{1}分鐘", "usage.duration.minutes": "{0}分鐘",
|
|
263
263
|
"usage.metric.session": "Session", "usage.metric.weekly": "每週", "usage.metric.monthly": "每月",
|
|
264
264
|
"usage.metric.days_window": "{0} 天視窗", "usage.metric.named": "{0}",
|
|
265
265
|
"usage.metric.named_session": "{0}(Session)", "usage.metric.named_weekly": "{0}(每週)",
|
|
266
266
|
"usage.metric.named_monthly": "{0}(每月)", "usage.metric.named_days": "{0}({1} 天)",
|
|
267
|
-
"usage.metric.extra_usage": "額外用量", "usage.metric.rate_limit_resets": "
|
|
267
|
+
"usage.metric.extra_usage": "額外用量", "usage.metric.rate_limit_resets": "額度重置券",
|
|
268
268
|
"usage.metric.credits": "額度", "usage.metric.weekly_limit": "每週上限",
|
|
269
269
|
"usage.metric.pay_as_you_go": "隨用隨付", "usage.metric.bonus_credits": "贈送額度",
|
|
270
270
|
"usage.metric.overage_charges": "超額費用", "usage.metric.pay_per_use": "隨用隨付",
|
|
271
271
|
"usage.metric.usage_monthly": "用量(每月)",
|
|
272
272
|
"usage.unit.available": "可用", "usage.unit.credits": "額度",
|
|
273
273
|
"usage.value.disabled": "已停用", "usage.value.cap": "上限 {0}",
|
|
274
|
-
"usage.note.binding": "
|
|
274
|
+
"usage.note.binding": "目前生效", "usage.note.binding_severity": "目前生效 · {0}",
|
|
275
275
|
"usage.note.busiest_model": "{0} 個模型中用量最高者", "usage.note.busiest_models": "{0} 個模型中用量最高者",
|
|
276
276
|
"usage.note.used_limit_unit": "{0} / {1} {2}", "usage.note.bonus_codes": "{0} / {1} {2} · {3} 組代碼",
|
|
277
277
|
"usage.metric.agy_claude_others": "Claude 與其他模型", "usage.metric.agy_claude_others_session": "Claude 與其他模型(Session)",
|