laohuang 0.3.2 → 0.4.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.
Files changed (86) hide show
  1. package/README.md +142 -16
  2. package/dist/agent.d.ts +166 -0
  3. package/dist/agent.js +858 -0
  4. package/dist/agent.js.map +1 -0
  5. package/dist/bash-runner.d.ts +79 -0
  6. package/dist/bash-runner.js +464 -0
  7. package/dist/bash-runner.js.map +1 -0
  8. package/dist/cancellation.d.ts +36 -0
  9. package/dist/cancellation.js +123 -0
  10. package/dist/cancellation.js.map +1 -0
  11. package/dist/cli.d.ts +117 -0
  12. package/dist/cli.js +1307 -0
  13. package/dist/cli.js.map +1 -0
  14. package/dist/client.d.ts +21 -0
  15. package/dist/client.js +17 -0
  16. package/dist/client.js.map +1 -0
  17. package/dist/commands.d.ts +123 -0
  18. package/dist/commands.js +660 -0
  19. package/dist/commands.js.map +1 -0
  20. package/dist/config.d.ts +51 -0
  21. package/dist/config.js +183 -0
  22. package/dist/config.js.map +1 -0
  23. package/dist/credentials.d.ts +12 -0
  24. package/dist/credentials.js +102 -0
  25. package/dist/credentials.js.map +1 -0
  26. package/dist/events.d.ts +288 -0
  27. package/dist/events.js +838 -0
  28. package/dist/events.js.map +1 -0
  29. package/dist/model-adapter.d.ts +138 -0
  30. package/dist/model-adapter.js +244 -0
  31. package/dist/model-adapter.js.map +1 -0
  32. package/dist/model-selection.d.ts +67 -0
  33. package/dist/model-selection.js +148 -0
  34. package/dist/model-selection.js.map +1 -0
  35. package/dist/model-stream.d.ts +128 -0
  36. package/dist/model-stream.js +582 -0
  37. package/dist/model-stream.js.map +1 -0
  38. package/dist/project-instructions.d.ts +99 -0
  39. package/dist/project-instructions.js +348 -0
  40. package/dist/project-instructions.js.map +1 -0
  41. package/dist/providers.d.ts +9 -0
  42. package/dist/providers.js +26 -0
  43. package/dist/providers.js.map +1 -0
  44. package/dist/routing.d.ts +170 -0
  45. package/dist/routing.js +669 -0
  46. package/dist/routing.js.map +1 -0
  47. package/dist/semantic-classifier.d.ts +66 -0
  48. package/dist/semantic-classifier.js +86 -0
  49. package/dist/semantic-classifier.js.map +1 -0
  50. package/dist/session.d.ts +162 -0
  51. package/dist/session.js +871 -0
  52. package/dist/session.js.map +1 -0
  53. package/dist/system-prompt.d.ts +16 -0
  54. package/dist/system-prompt.js +42 -0
  55. package/dist/system-prompt.js.map +1 -0
  56. package/dist/terminal/editor.d.ts +161 -0
  57. package/dist/terminal/editor.js +1060 -0
  58. package/dist/terminal/editor.js.map +1 -0
  59. package/dist/terminal/input.d.ts +61 -0
  60. package/dist/terminal/input.js +276 -0
  61. package/dist/terminal/input.js.map +1 -0
  62. package/dist/terminal/markdown.d.ts +20 -0
  63. package/dist/terminal/markdown.js +621 -0
  64. package/dist/terminal/markdown.js.map +1 -0
  65. package/dist/terminal/screen.d.ts +66 -0
  66. package/dist/terminal/screen.js +624 -0
  67. package/dist/terminal/screen.js.map +1 -0
  68. package/dist/terminal/theme.d.ts +23 -0
  69. package/dist/terminal/theme.js +101 -0
  70. package/dist/terminal/theme.js.map +1 -0
  71. package/dist/terminal/ui.d.ts +285 -0
  72. package/dist/terminal/ui.js +1815 -0
  73. package/dist/terminal/ui.js.map +1 -0
  74. package/dist/tools.d.ts +95 -0
  75. package/dist/tools.js +444 -0
  76. package/dist/tools.js.map +1 -0
  77. package/dist/ui-state.d.ts +51 -0
  78. package/dist/ui-state.js +194 -0
  79. package/dist/ui-state.js.map +1 -0
  80. package/dist/web.d.ts +56 -0
  81. package/dist/web.js +247 -0
  82. package/dist/web.js.map +1 -0
  83. package/package.json +24 -21
  84. package/bin/laohuang.js +0 -10
  85. package/lib/launcher.js +0 -133
  86. package/vendor/laohuangcode-0.3.2-py3-none-any.whl +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Streaming, cancellable execution for the Bash tool.
3
+ *
4
+ * The runner deliberately owns process lifecycle and pipe draining, while
5
+ * callers decide how emitted events are presented. It targets macOS and
6
+ * Linux, where a detached child becomes a process-group leader so that
7
+ * cancellation can terminate the whole command process group.
8
+ */
9
+ export type BashStatus = "completed" | "failed" | "timed_out" | "cancelled" | "spawn_failed";
10
+ export declare const MODEL_API_KEY_ENV_NAMES: readonly ["OPENAI_API_KEY", "DEEPSEEK_API_KEY", "LAOHUANG_API_KEY"];
11
+ /** Structural minimum for the CancelToken owned by cancellation.ts. */
12
+ export interface CancelTokenLike {
13
+ isCancelled?: () => boolean;
14
+ isSet?: () => boolean;
15
+ cancelled?: boolean;
16
+ reason?: unknown;
17
+ }
18
+ /** Structural minimum for the EventBus owned by events.ts. */
19
+ export interface ToolEventPublisher {
20
+ publish(kind: string, options: {
21
+ source: string;
22
+ session_id: string;
23
+ task_id: string | null;
24
+ correlation_id: string | null;
25
+ payload: Record<string, unknown>;
26
+ }): void;
27
+ }
28
+ export type ToolEventSink = ToolEventPublisher | ((kind: string, payload: Record<string, unknown>) => void);
29
+ export interface ToolExecutionContextInit {
30
+ sessionId?: string | null;
31
+ taskId?: string | null;
32
+ toolCallId?: string | null;
33
+ cancelToken?: CancelTokenLike | null;
34
+ eventSink?: ToolEventSink | null;
35
+ }
36
+ /** Runtime metadata and optional cooperative services for a tool call. */
37
+ export declare class ToolExecutionContext {
38
+ sessionId: string | null;
39
+ taskId: string | null;
40
+ toolCallId: string | null;
41
+ cancelToken: CancelTokenLike | null;
42
+ eventSink: ToolEventSink | null;
43
+ constructor(init?: ToolExecutionContextInit);
44
+ isCancelled(): boolean;
45
+ get cancellationReason(): string;
46
+ /** Publish through an EventBus, with a tiny callback fallback for tests. */
47
+ publish(kind: string, payload: Record<string, unknown>): void;
48
+ }
49
+ export interface BashResultInit {
50
+ status: BashStatus;
51
+ stdout?: string;
52
+ stderr?: string;
53
+ exitCode?: number | null;
54
+ error?: string | null;
55
+ durationMs?: number;
56
+ truncated?: boolean;
57
+ }
58
+ export declare class BashResult {
59
+ status: BashStatus;
60
+ stdout: string;
61
+ stderr: string;
62
+ exitCode: number | null;
63
+ error: string | null;
64
+ durationMs: number;
65
+ truncated: boolean;
66
+ constructor(init: BashResultInit);
67
+ get ok(): boolean;
68
+ asDict(): Record<string, unknown>;
69
+ }
70
+ export interface RunBashOptions {
71
+ cwd: string;
72
+ /** Seconds; a negative value disables the timeout. */
73
+ timeout: number;
74
+ maxOutputChars: number;
75
+ context?: ToolExecutionContext | null;
76
+ env?: Record<string, string | undefined> | null;
77
+ }
78
+ /** Run one non-interactive Bash command and emit sanitized output deltas. */
79
+ export declare function runBash(command: string, options: RunBashOptions): Promise<BashResult>;
@@ -0,0 +1,464 @@
1
+ /**
2
+ * Streaming, cancellable execution for the Bash tool.
3
+ *
4
+ * The runner deliberately owns process lifecycle and pipe draining, while
5
+ * callers decide how emitted events are presented. It targets macOS and
6
+ * Linux, where a detached child becomes a process-group leader so that
7
+ * cancellation can terminate the whole command process group.
8
+ */
9
+ import { spawn } from "node:child_process";
10
+ import { constants as osConstants } from "node:os";
11
+ import { StringDecoder } from "node:string_decoder";
12
+ const FLUSH_INTERVAL_MS = 40;
13
+ const FLUSH_CHARS = 4096;
14
+ const TERMINATION_GRACE_MS = 2000;
15
+ const WATCHDOG_INTERVAL_MS = 10;
16
+ export const MODEL_API_KEY_ENV_NAMES = [
17
+ "OPENAI_API_KEY",
18
+ "DEEPSEEK_API_KEY",
19
+ "LAOHUANG_API_KEY",
20
+ ];
21
+ /** Runtime metadata and optional cooperative services for a tool call. */
22
+ export class ToolExecutionContext {
23
+ sessionId;
24
+ taskId;
25
+ toolCallId;
26
+ cancelToken;
27
+ eventSink;
28
+ constructor(init = {}) {
29
+ this.sessionId = init.sessionId ?? null;
30
+ this.taskId = init.taskId ?? null;
31
+ this.toolCallId = init.toolCallId ?? null;
32
+ this.cancelToken = init.cancelToken ?? null;
33
+ this.eventSink = init.eventSink ?? null;
34
+ }
35
+ isCancelled() {
36
+ const token = this.cancelToken;
37
+ if (token == null)
38
+ return false;
39
+ if (typeof token.isCancelled === "function") {
40
+ return Boolean(token.isCancelled.call(token));
41
+ }
42
+ if (typeof token.isSet === "function") {
43
+ return Boolean(token.isSet.call(token));
44
+ }
45
+ return Boolean(token.cancelled);
46
+ }
47
+ get cancellationReason() {
48
+ const reason = this.cancelToken?.reason;
49
+ return reason ? String(reason) : "cancelled";
50
+ }
51
+ /** Publish through an EventBus, with a tiny callback fallback for tests. */
52
+ publish(kind, payload) {
53
+ const sink = this.eventSink;
54
+ if (sink == null)
55
+ return;
56
+ if (typeof sink === "function") {
57
+ sink(kind, payload);
58
+ return;
59
+ }
60
+ if (typeof sink.publish === "function") {
61
+ sink.publish(kind, {
62
+ source: "tool",
63
+ session_id: this.sessionId ?? "local",
64
+ task_id: this.taskId,
65
+ correlation_id: this.toolCallId,
66
+ payload,
67
+ });
68
+ }
69
+ }
70
+ }
71
+ export class BashResult {
72
+ status;
73
+ stdout;
74
+ stderr;
75
+ exitCode;
76
+ error;
77
+ durationMs;
78
+ truncated;
79
+ constructor(init) {
80
+ this.status = init.status;
81
+ this.stdout = init.stdout ?? "";
82
+ this.stderr = init.stderr ?? "";
83
+ this.exitCode = init.exitCode ?? null;
84
+ this.error = init.error ?? null;
85
+ this.durationMs = init.durationMs ?? 0;
86
+ this.truncated = init.truncated ?? false;
87
+ }
88
+ get ok() {
89
+ return this.status === "completed" && this.exitCode === 0;
90
+ }
91
+ asDict() {
92
+ const result = {
93
+ ok: this.ok,
94
+ status: this.status,
95
+ exit_code: this.exitCode,
96
+ stdout: this.stdout,
97
+ stderr: this.stderr,
98
+ duration_ms: this.durationMs,
99
+ truncated: this.truncated,
100
+ };
101
+ if (this.error) {
102
+ result["error"] = this.error;
103
+ }
104
+ return result;
105
+ }
106
+ }
107
+ /** Keep a 40% head and 60% tail without retaining unbounded output. */
108
+ class BoundedOutput {
109
+ limit;
110
+ headLimit;
111
+ tailLimit;
112
+ totalChars = 0;
113
+ whole = "";
114
+ head = "";
115
+ tail = "";
116
+ isTruncated = false;
117
+ constructor(limit) {
118
+ this.limit = Math.max(0, Math.trunc(limit));
119
+ this.headLimit = Math.trunc(this.limit * 0.4);
120
+ this.tailLimit = this.limit - this.headLimit;
121
+ }
122
+ append(text) {
123
+ if (!text)
124
+ return;
125
+ this.totalChars += text.length;
126
+ if (this.limit === 0) {
127
+ this.isTruncated = true;
128
+ return;
129
+ }
130
+ if (!this.isTruncated && this.whole.length + text.length <= this.limit) {
131
+ this.whole += text;
132
+ return;
133
+ }
134
+ if (!this.isTruncated) {
135
+ const combined = this.whole + text;
136
+ this.head = combined.slice(0, this.headLimit);
137
+ this.tail = this.tailLimit > 0 ? combined.slice(-this.tailLimit) : "";
138
+ this.whole = "";
139
+ this.isTruncated = true;
140
+ return;
141
+ }
142
+ if (this.tailLimit > 0) {
143
+ this.tail = (this.tail + text).slice(-this.tailLimit);
144
+ }
145
+ }
146
+ render() {
147
+ if (!this.isTruncated)
148
+ return this.whole;
149
+ const retained = this.head.length + this.tail.length;
150
+ const omitted = Math.max(0, this.totalChars - retained);
151
+ const marker = `\n...[truncated ${omitted} chars]...\n`;
152
+ return this.head + marker + this.tail;
153
+ }
154
+ get truncated() {
155
+ return this.isTruncated;
156
+ }
157
+ }
158
+ /** Incrementally remove terminal control sequences from untrusted output. */
159
+ class TerminalSanitizer {
160
+ state = "normal";
161
+ feed(text) {
162
+ let safe = "";
163
+ for (const character of text) {
164
+ const code = character.codePointAt(0) ?? 0;
165
+ if (this.state === "normal") {
166
+ if (character === "\x1b") {
167
+ this.state = "escape";
168
+ }
169
+ else if (character === "\r") {
170
+ safe += "\n";
171
+ }
172
+ else if (character === "\n" || character === "\t" || code >= 0x20) {
173
+ if (code !== 0x7f)
174
+ safe += character;
175
+ }
176
+ continue;
177
+ }
178
+ if (this.state === "escape") {
179
+ if (character === "[") {
180
+ this.state = "csi";
181
+ }
182
+ else if (character === "P" ||
183
+ character === "X" ||
184
+ character === "^" ||
185
+ character === "_") {
186
+ this.state = "string";
187
+ }
188
+ else if (character === "]") {
189
+ this.state = "osc";
190
+ }
191
+ else {
192
+ this.state = "normal";
193
+ }
194
+ continue;
195
+ }
196
+ if (this.state === "csi") {
197
+ if (code >= 0x40 && code <= 0x7e)
198
+ this.state = "normal";
199
+ continue;
200
+ }
201
+ if (this.state === "osc" || this.state === "string") {
202
+ if (character === "\x07") {
203
+ this.state = "normal";
204
+ }
205
+ else if (character === "\x1b") {
206
+ this.state = "stringEscape";
207
+ }
208
+ continue;
209
+ }
210
+ if (this.state === "stringEscape") {
211
+ if (character === "\\") {
212
+ this.state = "normal";
213
+ }
214
+ else if (character !== "\x1b") {
215
+ this.state = "string";
216
+ }
217
+ }
218
+ }
219
+ return safe;
220
+ }
221
+ }
222
+ function sleep(ms) {
223
+ return new Promise((resolve) => setTimeout(resolve, ms));
224
+ }
225
+ function errnoCode(error) {
226
+ return error?.code;
227
+ }
228
+ /**
229
+ * SIGTERM the whole process group, escalating to SIGKILL after a grace
230
+ * period. Falls back to signalling only the leader when group signalling
231
+ * is not possible.
232
+ */
233
+ async function terminateProcessGroup(child, graceMs = TERMINATION_GRACE_MS) {
234
+ const pid = child.pid;
235
+ if (pid === undefined)
236
+ return;
237
+ try {
238
+ process.kill(-pid, "SIGTERM");
239
+ }
240
+ catch (error) {
241
+ if (errnoCode(error) === "ESRCH")
242
+ return;
243
+ try {
244
+ child.kill("SIGTERM");
245
+ }
246
+ catch {
247
+ // The leader may already be gone; the liveness loop below handles it.
248
+ }
249
+ }
250
+ const deadline = Date.now() + graceMs;
251
+ while (Date.now() < deadline) {
252
+ try {
253
+ process.kill(-pid, 0);
254
+ }
255
+ catch (error) {
256
+ const code = errnoCode(error);
257
+ if (code === "ESRCH")
258
+ return;
259
+ if (code === "EPERM")
260
+ break;
261
+ }
262
+ await sleep(20);
263
+ }
264
+ try {
265
+ process.kill(-pid, "SIGKILL");
266
+ }
267
+ catch (error) {
268
+ if (errnoCode(error) === "ESRCH")
269
+ return;
270
+ try {
271
+ child.kill("SIGKILL");
272
+ }
273
+ catch {
274
+ // Nothing left to kill.
275
+ }
276
+ }
277
+ }
278
+ function cleanEnvironment(environment) {
279
+ const cleaned = { ...environment };
280
+ for (const name of MODEL_API_KEY_ENV_NAMES) {
281
+ delete cleaned[name];
282
+ }
283
+ return cleaned;
284
+ }
285
+ function toExitCode(code, signal) {
286
+ if (code !== null)
287
+ return code;
288
+ if (!signal)
289
+ return null;
290
+ const signalNumber = osConstants.signals[signal];
291
+ return typeof signalNumber === "number" ? -signalNumber : null;
292
+ }
293
+ /** Run one non-interactive Bash command and emit sanitized output deltas. */
294
+ export async function runBash(command, options) {
295
+ const invokedAt = performance.now();
296
+ const execution = options.context ?? new ToolExecutionContext();
297
+ if (execution.isCancelled()) {
298
+ const result = new BashResult({
299
+ status: "cancelled",
300
+ error: execution.cancellationReason,
301
+ durationMs: Math.trunc(performance.now() - invokedAt),
302
+ });
303
+ execution.publish("tool.finished", result.asDict());
304
+ return result;
305
+ }
306
+ const environment = cleanEnvironment(options.env ?? process.env);
307
+ const child = spawn("/bin/bash", ["-lc", command], {
308
+ cwd: options.cwd,
309
+ env: environment,
310
+ stdio: ["ignore", "pipe", "pipe"],
311
+ detached: true,
312
+ });
313
+ const spawnError = await new Promise((resolve) => {
314
+ child.once("spawn", () => resolve(null));
315
+ child.once("error", (error) => resolve(error));
316
+ });
317
+ if (spawnError) {
318
+ const result = new BashResult({
319
+ status: "spawn_failed",
320
+ error: String(spawnError),
321
+ durationMs: Math.trunc(performance.now() - invokedAt),
322
+ });
323
+ execution.publish("tool.finished", result.asDict());
324
+ return result;
325
+ }
326
+ // Later asynchronous kill failures must not surface as unhandled errors.
327
+ child.on("error", () => { });
328
+ execution.publish("tool.started", {
329
+ name: "bash",
330
+ arguments: { command },
331
+ });
332
+ const outputs = {
333
+ stdout: new BoundedOutput(options.maxOutputChars),
334
+ stderr: new BoundedOutput(options.maxOutputChars),
335
+ };
336
+ const pending = { stdout: "", stderr: "" };
337
+ const streamSequence = { stdout: 0, stderr: 0 };
338
+ const flush = (stream) => {
339
+ const text = pending[stream];
340
+ if (!text)
341
+ return;
342
+ pending[stream] = "";
343
+ outputs[stream].append(text);
344
+ streamSequence[stream] += 1;
345
+ execution.publish("tool.output_delta", {
346
+ name: "bash",
347
+ stream,
348
+ text,
349
+ stream_sequence: streamSequence[stream],
350
+ });
351
+ };
352
+ const readPipe = async (stream, pipe) => {
353
+ const decoder = new StringDecoder("utf8");
354
+ const sanitizer = new TerminalSanitizer();
355
+ const ingest = (text) => {
356
+ if (!text)
357
+ return;
358
+ pending[stream] += text;
359
+ if (pending[stream].length >= FLUSH_CHARS)
360
+ flush(stream);
361
+ };
362
+ try {
363
+ for await (const chunk of pipe) {
364
+ ingest(sanitizer.feed(decoder.write(chunk)));
365
+ }
366
+ ingest(sanitizer.feed(decoder.end()));
367
+ }
368
+ catch {
369
+ // Pipes can be torn down by cancellation cleanup while readers are active.
370
+ }
371
+ };
372
+ const stdoutDone = readPipe("stdout", child.stdout);
373
+ const stderrDone = readPipe("stderr", child.stderr);
374
+ const exitInfo = new Promise((resolve) => {
375
+ child.once("exit", (code, signal) => resolve({ code, signal }));
376
+ });
377
+ let terminalStatus = null;
378
+ const startedAt = performance.now();
379
+ let lastFlush = startedAt;
380
+ const timeoutMs = options.timeout * 1000;
381
+ const watchdog = setInterval(() => {
382
+ const now = performance.now();
383
+ if (terminalStatus === null) {
384
+ if (execution.isCancelled()) {
385
+ terminalStatus = "cancelled";
386
+ void terminateProcessGroup(child);
387
+ }
388
+ else if (options.timeout >= 0 && now - startedAt >= timeoutMs) {
389
+ terminalStatus = "timed_out";
390
+ void terminateProcessGroup(child);
391
+ }
392
+ }
393
+ if (now - lastFlush >= FLUSH_INTERVAL_MS) {
394
+ flush("stdout");
395
+ flush("stderr");
396
+ lastFlush = now;
397
+ }
398
+ }, WATCHDOG_INTERVAL_MS);
399
+ watchdog.unref();
400
+ try {
401
+ await Promise.all([stdoutDone, stderrDone, exitInfo]);
402
+ }
403
+ finally {
404
+ clearInterval(watchdog);
405
+ if (child.exitCode === null && child.signalCode === null) {
406
+ await terminateProcessGroup(child);
407
+ }
408
+ }
409
+ flush("stdout");
410
+ flush("stderr");
411
+ const { code, signal } = await exitInfo;
412
+ const exitCode = toExitCode(code, signal);
413
+ const stdout = outputs.stdout.render();
414
+ const stderr = outputs.stderr.render();
415
+ const durationMs = Math.trunc(performance.now() - invokedAt);
416
+ const truncated = outputs.stdout.truncated || outputs.stderr.truncated;
417
+ let result;
418
+ if (terminalStatus === "cancelled") {
419
+ result = new BashResult({
420
+ status: "cancelled",
421
+ stdout,
422
+ stderr,
423
+ exitCode,
424
+ error: execution.cancellationReason,
425
+ durationMs,
426
+ truncated,
427
+ });
428
+ }
429
+ else if (terminalStatus === "timed_out") {
430
+ result = new BashResult({
431
+ status: "timed_out",
432
+ stdout,
433
+ stderr,
434
+ exitCode,
435
+ error: `Bash command timed out after ${options.timeout} seconds`,
436
+ durationMs,
437
+ truncated,
438
+ });
439
+ }
440
+ else if (exitCode === 0) {
441
+ result = new BashResult({
442
+ status: "completed",
443
+ stdout,
444
+ stderr,
445
+ exitCode,
446
+ durationMs,
447
+ truncated,
448
+ });
449
+ }
450
+ else {
451
+ result = new BashResult({
452
+ status: "failed",
453
+ stdout,
454
+ stderr,
455
+ exitCode,
456
+ error: `Bash command exited with code ${exitCode}`,
457
+ durationMs,
458
+ truncated,
459
+ });
460
+ }
461
+ execution.publish("tool.finished", result.asDict());
462
+ return result;
463
+ }
464
+ //# sourceMappingURL=bash-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bash-runner.js","sourceRoot":"","sources":["../src/bash-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /** Cooperative, task-scoped cancellation primitives. */
2
+ /** Raised by {@link CancelToken.throwIfCancelled}. */
3
+ export declare class CancellationError extends Error {
4
+ constructor(message: string);
5
+ }
6
+ export type CancelCallback = (reason: string) => void;
7
+ /**
8
+ * An idempotent, single-threaded cancellation token.
9
+ *
10
+ * Registered callbacks run synchronously in the call stack that wins the
11
+ * first call to {@link cancel}. A callback registered after cancellation
12
+ * runs immediately, before {@link register} returns.
13
+ */
14
+ export declare class CancelToken {
15
+ #private;
16
+ get reason(): string | null;
17
+ /** `performance.now()` timestamp of the first cancel, or null. */
18
+ get requestedAt(): number | null;
19
+ get cancelled(): boolean;
20
+ /** AbortSignal view of the token, for APIs that accept one. */
21
+ get signal(): AbortSignal;
22
+ isCancelled(): boolean;
23
+ /**
24
+ * Request cancellation. Returns true for the first (winning) call and
25
+ * false for every subsequent call.
26
+ */
27
+ cancel(reason?: string): boolean;
28
+ /**
29
+ * Resolve true once the token is cancelled. With `timeoutMs`, resolve
30
+ * false instead when the timeout elapses first.
31
+ */
32
+ wait(timeoutMs?: number): Promise<boolean>;
33
+ throwIfCancelled(): void;
34
+ /** Register a cancellation hook and return an unregister function. */
35
+ register(callback: CancelCallback): () => void;
36
+ }