laohuang 0.4.2 → 0.5.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/README.md +10 -6
- package/dist/agent.d.ts +7 -27
- package/dist/agent.js +53 -567
- package/dist/agent.js.map +1 -1
- package/dist/capabilities.d.ts +19 -0
- package/dist/capabilities.js +29 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/cli.d.ts +9 -6
- package/dist/cli.js +83 -70
- package/dist/cli.js.map +1 -1
- package/dist/commands.d.ts +20 -3
- package/dist/commands.js +39 -38
- package/dist/commands.js.map +1 -1
- package/dist/keybindings/default-keybindings.d.ts +2 -0
- package/dist/keybindings/default-keybindings.js +10 -0
- package/dist/keybindings/default-keybindings.js.map +1 -0
- package/dist/keybindings/hints.d.ts +3 -0
- package/dist/keybindings/hints.js +7 -0
- package/dist/keybindings/hints.js.map +1 -0
- package/dist/keybindings/key-id.d.ts +20 -0
- package/dist/keybindings/key-id.js +11 -0
- package/dist/keybindings/key-id.js.map +1 -0
- package/dist/keybindings/key-parser.d.ts +7 -0
- package/dist/keybindings/key-parser.js +92 -0
- package/dist/keybindings/key-parser.js.map +1 -0
- package/dist/keybindings/keybindings.d.ts +21 -0
- package/dist/keybindings/keybindings.js +65 -0
- package/dist/keybindings/keybindings.js.map +1 -0
- package/dist/routing.d.ts +2 -57
- package/dist/routing.js +3 -161
- package/dist/routing.js.map +1 -1
- package/dist/runtime/agent-step-runner.d.ts +51 -0
- package/dist/runtime/agent-step-runner.js +361 -0
- package/dist/runtime/agent-step-runner.js.map +1 -0
- package/dist/runtime/agent-turn-loop.d.ts +36 -0
- package/dist/runtime/agent-turn-loop.js +71 -0
- package/dist/runtime/agent-turn-loop.js.map +1 -0
- package/dist/runtime/guard-policy.d.ts +21 -0
- package/dist/runtime/guard-policy.js +93 -0
- package/dist/runtime/guard-policy.js.map +1 -0
- package/dist/runtime/history-committer.d.ts +34 -0
- package/dist/runtime/history-committer.js +77 -0
- package/dist/runtime/history-committer.js.map +1 -0
- package/dist/runtime/human-intent-router.d.ts +5 -0
- package/dist/runtime/human-intent-router.js +38 -0
- package/dist/runtime/human-intent-router.js.map +1 -0
- package/dist/runtime/model-runtime.d.ts +33 -0
- package/dist/runtime/model-runtime.js +70 -0
- package/dist/runtime/model-runtime.js.map +1 -0
- package/dist/runtime/queue-bridge.d.ts +11 -0
- package/dist/runtime/queue-bridge.js +2 -0
- package/dist/runtime/queue-bridge.js.map +1 -0
- package/dist/runtime/queue-dispatcher.d.ts +45 -0
- package/dist/runtime/queue-dispatcher.js +120 -0
- package/dist/runtime/queue-dispatcher.js.map +1 -0
- package/dist/runtime/runtime-events.d.ts +26 -0
- package/dist/runtime/runtime-events.js +21 -0
- package/dist/runtime/runtime-events.js.map +1 -0
- package/dist/runtime/session-action-protocol.d.ts +10 -0
- package/dist/runtime/session-action-protocol.js +64 -0
- package/dist/runtime/session-action-protocol.js.map +1 -0
- package/dist/runtime/session-action.d.ts +42 -0
- package/dist/runtime/session-action.js +3 -0
- package/dist/runtime/session-action.js.map +1 -0
- package/dist/runtime/task-lifecycle.d.ts +73 -0
- package/dist/runtime/task-lifecycle.js +267 -0
- package/dist/runtime/task-lifecycle.js.map +1 -0
- package/dist/runtime/tool-runtime.d.ts +33 -0
- package/dist/runtime/tool-runtime.js +89 -0
- package/dist/runtime/tool-runtime.js.map +1 -0
- package/dist/runtime/user-intent.d.ts +48 -0
- package/dist/runtime/user-intent.js +17 -0
- package/dist/runtime/user-intent.js.map +1 -0
- package/dist/session.d.ts +19 -9
- package/dist/session.js +119 -169
- package/dist/session.js.map +1 -1
- package/dist/terminal/editor.d.ts +16 -5
- package/dist/terminal/editor.js +99 -4
- package/dist/terminal/editor.js.map +1 -1
- package/dist/terminal/input.d.ts +2 -0
- package/dist/terminal/input.js +32 -7
- package/dist/terminal/input.js.map +1 -1
- package/dist/terminal/ui.d.ts +32 -21
- package/dist/terminal/ui.js +413 -252
- package/dist/terminal/ui.js.map +1 -1
- package/dist/tools.d.ts +7 -0
- package/dist/tools.js.map +1 -1
- package/dist/tui/components.d.ts +5 -0
- package/dist/tui/components.js +12 -0
- package/dist/tui/components.js.map +1 -0
- package/dist/tui/focus-manager.d.ts +7 -0
- package/dist/tui/focus-manager.js +13 -0
- package/dist/tui/focus-manager.js.map +1 -0
- package/dist/tui/overlay-manager.d.ts +12 -0
- package/dist/tui/overlay-manager.js +27 -0
- package/dist/tui/overlay-manager.js.map +1 -0
- package/dist/ui/display-actions.d.ts +23 -0
- package/dist/ui/display-actions.js +15 -0
- package/dist/ui/display-actions.js.map +1 -0
- package/dist/ui/display-policy.d.ts +38 -0
- package/dist/ui/display-policy.js +97 -0
- package/dist/ui/display-policy.js.map +1 -0
- package/dist/ui/frame-builder.d.ts +39 -0
- package/dist/ui/frame-builder.js +111 -0
- package/dist/ui/frame-builder.js.map +1 -0
- package/dist/ui/transcript-store.d.ts +35 -0
- package/dist/ui/transcript-store.js +172 -0
- package/dist/ui/transcript-store.js.map +1 -0
- package/dist/ui-state.js +6 -6
- package/dist/ui-state.js.map +1 -1
- package/dist/web.js +14 -1
- package/dist/web.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { makeKeyInput } from "./key-id.js";
|
|
2
|
+
const NAMED_KEYS = {
|
|
3
|
+
enter: "enter",
|
|
4
|
+
return: "enter",
|
|
5
|
+
escape: "escape",
|
|
6
|
+
esc: "escape",
|
|
7
|
+
tab: "tab",
|
|
8
|
+
backspace: "backspace",
|
|
9
|
+
delete: "delete",
|
|
10
|
+
up: "up",
|
|
11
|
+
down: "down",
|
|
12
|
+
left: "left",
|
|
13
|
+
right: "right",
|
|
14
|
+
home: "home",
|
|
15
|
+
end: "end",
|
|
16
|
+
page_up: "page_up",
|
|
17
|
+
page_down: "page_down",
|
|
18
|
+
};
|
|
19
|
+
function controlKeyId(character) {
|
|
20
|
+
if (character === "c") {
|
|
21
|
+
return "ctrl_c";
|
|
22
|
+
}
|
|
23
|
+
if (character === "d") {
|
|
24
|
+
return "ctrl_d";
|
|
25
|
+
}
|
|
26
|
+
if (character === "l") {
|
|
27
|
+
return "ctrl_l";
|
|
28
|
+
}
|
|
29
|
+
return "character";
|
|
30
|
+
}
|
|
31
|
+
/** Parse a portable binding string such as `ctrl+o` into a normalized key. */
|
|
32
|
+
export function parseKey(value) {
|
|
33
|
+
const parts = value.toLowerCase().split("+").filter(Boolean);
|
|
34
|
+
if (parts.length === 0) {
|
|
35
|
+
throw new Error("key binding cannot be empty");
|
|
36
|
+
}
|
|
37
|
+
let ctrl = false;
|
|
38
|
+
let alt = false;
|
|
39
|
+
let shift = false;
|
|
40
|
+
const base = [];
|
|
41
|
+
for (const part of parts) {
|
|
42
|
+
if (part === "ctrl" || part === "control") {
|
|
43
|
+
ctrl = true;
|
|
44
|
+
}
|
|
45
|
+
else if (part === "alt" || part === "option") {
|
|
46
|
+
alt = true;
|
|
47
|
+
}
|
|
48
|
+
else if (part === "shift") {
|
|
49
|
+
shift = true;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
base.push(part);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (base.length !== 1) {
|
|
56
|
+
throw new Error(`invalid key binding: ${value}`);
|
|
57
|
+
}
|
|
58
|
+
const name = base[0];
|
|
59
|
+
const named = NAMED_KEYS[name];
|
|
60
|
+
if (named !== undefined) {
|
|
61
|
+
return makeKeyInput(named, { ctrl, alt, shift });
|
|
62
|
+
}
|
|
63
|
+
if ([...name].length !== 1) {
|
|
64
|
+
throw new Error(`unknown key binding: ${value}`);
|
|
65
|
+
}
|
|
66
|
+
const id = ctrl ? controlKeyId(name) : "character";
|
|
67
|
+
return makeKeyInput(id, {
|
|
68
|
+
...(id === "character" ? { text: name } : {}),
|
|
69
|
+
ctrl,
|
|
70
|
+
alt,
|
|
71
|
+
shift,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
/** Stable lookup key for matching normalized input events. */
|
|
75
|
+
export function keySignature(key) {
|
|
76
|
+
return [key.id, key.text ?? "", key.ctrl, key.alt, key.shift].join(":");
|
|
77
|
+
}
|
|
78
|
+
/** Human-readable key label used by contextual hints. */
|
|
79
|
+
export function formatKey(key) {
|
|
80
|
+
const modifiers = [key.ctrl ? "Ctrl" : "", key.alt ? "Alt" : "", key.shift ? "Shift" : ""]
|
|
81
|
+
.filter(Boolean);
|
|
82
|
+
const name = key.id === "character"
|
|
83
|
+
? (key.text ?? "").toUpperCase()
|
|
84
|
+
: key.id === "ctrl_c" ? "C"
|
|
85
|
+
: key.id === "ctrl_d" ? "D"
|
|
86
|
+
: key.id === "ctrl_l" ? "L"
|
|
87
|
+
: key.id === "page_up" ? "PageUp"
|
|
88
|
+
: key.id === "page_down" ? "PageDown"
|
|
89
|
+
: key.id[0].toUpperCase() + key.id.slice(1);
|
|
90
|
+
return [...modifiers, name].join("+");
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=key-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-parser.js","sourceRoot":"","sources":["../../src/keybindings/key-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { KeyInput } from "./key-id.ts";
|
|
2
|
+
export type ActionId = "toggle_tool_output" | "clear_screen" | "editor_newline" | "select_model" | "submit_follow_up" | "dismiss" | "cancel" | "toggle_thinking" | "cycle_thinking";
|
|
3
|
+
export interface Keybinding {
|
|
4
|
+
readonly context: string;
|
|
5
|
+
readonly key: string;
|
|
6
|
+
readonly action: ActionId;
|
|
7
|
+
}
|
|
8
|
+
export type KeybindingOverrides = Partial<Record<ActionId, readonly string[]>>;
|
|
9
|
+
export interface KeybindingConflict {
|
|
10
|
+
readonly context: string;
|
|
11
|
+
readonly key: string;
|
|
12
|
+
readonly actions: readonly ActionId[];
|
|
13
|
+
}
|
|
14
|
+
/** Context-aware bindings with deterministic later-binding override semantics. */
|
|
15
|
+
export declare class KeybindingsManager {
|
|
16
|
+
#private;
|
|
17
|
+
constructor(bindings: readonly Keybinding[], overrides?: KeybindingOverrides);
|
|
18
|
+
resolve(key: KeyInput, contexts: readonly string[]): ActionId | null;
|
|
19
|
+
keysForAction(action: ActionId, contexts: readonly string[]): readonly KeyInput[];
|
|
20
|
+
conflicts(): readonly KeybindingConflict[];
|
|
21
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { keySignature, parseKey } from "./key-parser.js";
|
|
2
|
+
/** Context-aware bindings with deterministic later-binding override semantics. */
|
|
3
|
+
export class KeybindingsManager {
|
|
4
|
+
#bindings;
|
|
5
|
+
#conflicts;
|
|
6
|
+
constructor(bindings, overrides = {}) {
|
|
7
|
+
const disabled = new Set(Object.entries(overrides)
|
|
8
|
+
.filter(([, keys]) => keys !== undefined && keys.length === 0)
|
|
9
|
+
.map(([action]) => action));
|
|
10
|
+
const resolved = bindings
|
|
11
|
+
.filter((binding) => !disabled.has(binding.action))
|
|
12
|
+
.map((binding) => ({ ...binding, input: parseKey(binding.key) }));
|
|
13
|
+
for (const [action, keys] of Object.entries(overrides)) {
|
|
14
|
+
if (keys === undefined || keys.length === 0) {
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
const existing = resolved.find((binding) => binding.action === action);
|
|
18
|
+
if (existing === undefined) {
|
|
19
|
+
throw new Error(`cannot override an unbound action: ${action}`);
|
|
20
|
+
}
|
|
21
|
+
for (const key of keys) {
|
|
22
|
+
resolved.push({ ...existing, key, input: parseKey(key) });
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
this.#bindings = resolved;
|
|
26
|
+
this.#conflicts = this.#findConflicts(resolved);
|
|
27
|
+
}
|
|
28
|
+
resolve(key, contexts) {
|
|
29
|
+
const signature = keySignature(key);
|
|
30
|
+
for (const context of contexts) {
|
|
31
|
+
for (let index = this.#bindings.length - 1; index >= 0; index -= 1) {
|
|
32
|
+
const binding = this.#bindings[index];
|
|
33
|
+
if (binding.context === context && keySignature(binding.input) === signature) {
|
|
34
|
+
return binding.action;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
keysForAction(action, contexts) {
|
|
41
|
+
return this.#bindings
|
|
42
|
+
.filter((binding) => binding.action === action && contexts.includes(binding.context))
|
|
43
|
+
.map((binding) => binding.input);
|
|
44
|
+
}
|
|
45
|
+
conflicts() {
|
|
46
|
+
return this.#conflicts;
|
|
47
|
+
}
|
|
48
|
+
#findConflicts(bindings) {
|
|
49
|
+
const groups = new Map();
|
|
50
|
+
for (const binding of bindings) {
|
|
51
|
+
const group = `${binding.context}:${keySignature(binding.input)}`;
|
|
52
|
+
const values = groups.get(group) ?? [];
|
|
53
|
+
values.push(binding);
|
|
54
|
+
groups.set(group, values);
|
|
55
|
+
}
|
|
56
|
+
return [...groups.values()]
|
|
57
|
+
.filter((group) => new Set(group.map((binding) => binding.action)).size > 1)
|
|
58
|
+
.map((group) => ({
|
|
59
|
+
context: group[0].context,
|
|
60
|
+
key: group[0].key,
|
|
61
|
+
actions: group.map((binding) => binding.action),
|
|
62
|
+
}));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=keybindings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keybindings.js","sourceRoot":"","sources":["../../src/keybindings/keybindings.ts"],"names":[],"mappings":"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"}
|
package/dist/routing.d.ts
CHANGED
|
@@ -1,42 +1,6 @@
|
|
|
1
|
-
/** Deterministic routing
|
|
2
|
-
import { CancelToken } from "./cancellation.ts";
|
|
1
|
+
/** Deterministic routing and runtime input queues. */
|
|
3
2
|
import { type AnyEventEnvelope } from "./events.ts";
|
|
4
|
-
|
|
5
|
-
readonly RunningModel: "running_model";
|
|
6
|
-
readonly RunningTools: "running_tools";
|
|
7
|
-
readonly Cancelling: "cancelling";
|
|
8
|
-
readonly Cancelled: "cancelled";
|
|
9
|
-
readonly Completed: "completed";
|
|
10
|
-
readonly Failed: "failed";
|
|
11
|
-
};
|
|
12
|
-
export type TaskState = (typeof TaskState)[keyof typeof TaskState];
|
|
13
|
-
export interface TaskRecord {
|
|
14
|
-
readonly taskId: string;
|
|
15
|
-
readonly state: TaskState;
|
|
16
|
-
readonly cancelToken: CancelToken;
|
|
17
|
-
readonly result: string | null;
|
|
18
|
-
readonly error: string | null;
|
|
19
|
-
}
|
|
20
|
-
export interface RegisterTaskOptions {
|
|
21
|
-
state?: TaskState;
|
|
22
|
-
cancelToken?: CancelToken;
|
|
23
|
-
activate?: boolean;
|
|
24
|
-
}
|
|
25
|
-
export interface TransitionOptions {
|
|
26
|
-
result?: string;
|
|
27
|
-
error?: string;
|
|
28
|
-
}
|
|
29
|
-
/** Task records with at most one active task. */
|
|
30
|
-
export declare class TaskRegistry {
|
|
31
|
-
private readonly tasks;
|
|
32
|
-
private activeTaskIdValue;
|
|
33
|
-
get activeTaskId(): string | null;
|
|
34
|
-
register(taskId: string, options?: RegisterTaskOptions): TaskRecord;
|
|
35
|
-
get(taskId: string): TaskRecord | null;
|
|
36
|
-
active(): TaskRecord | null;
|
|
37
|
-
transition(taskId: string, state: TaskState, options?: TransitionOptions): TaskRecord;
|
|
38
|
-
records(): TaskRecord[];
|
|
39
|
-
}
|
|
3
|
+
import { type TaskRecord, type TaskRegistry } from "./runtime/task-lifecycle.ts";
|
|
40
4
|
export type RouteStrategy = "execute" | "steer" | "follow_up" | "cancel" | "reject";
|
|
41
5
|
export type RouteDestination = "new_task" | "current_task" | "pending" | "held" | "control" | "drop";
|
|
42
6
|
export type RouteTiming = "immediate" | "safe_point" | "after_cancel";
|
|
@@ -147,24 +111,5 @@ export declare class HeldQueue {
|
|
|
147
111
|
clear(): number;
|
|
148
112
|
get size(): number;
|
|
149
113
|
}
|
|
150
|
-
export interface ScheduleResult {
|
|
151
|
-
readonly immediate: readonly RoutedEvent[];
|
|
152
|
-
readonly queued: boolean;
|
|
153
|
-
readonly rejected: boolean;
|
|
154
|
-
readonly reason: string;
|
|
155
|
-
}
|
|
156
|
-
export interface SchedulerOptions {
|
|
157
|
-
pending?: PendingQueue;
|
|
158
|
-
held?: HeldQueue;
|
|
159
|
-
deadLetters?: DeadLetterQueue;
|
|
160
|
-
}
|
|
161
|
-
export declare class Scheduler {
|
|
162
|
-
readonly pending: PendingQueue;
|
|
163
|
-
readonly held: HeldQueue;
|
|
164
|
-
readonly deadLetters: DeadLetterQueue;
|
|
165
|
-
constructor(options?: SchedulerOptions);
|
|
166
|
-
schedule(event: RoutedEvent): ScheduleResult;
|
|
167
|
-
safePoint(taskId: string): RoutedEvent[];
|
|
168
|
-
}
|
|
169
114
|
/** Combine a pending snapshot into one model input without losing IDs. */
|
|
170
115
|
export declare function combineInput(events: Iterable<RoutedEvent>): string;
|
package/dist/routing.js
CHANGED
|
@@ -1,120 +1,6 @@
|
|
|
1
|
-
/** Deterministic routing
|
|
2
|
-
import { CancelToken } from "./cancellation.js";
|
|
1
|
+
/** Deterministic routing and runtime input queues. */
|
|
3
2
|
import { EventKind, EventSource, } from "./events.js";
|
|
4
|
-
|
|
5
|
-
// Task registry
|
|
6
|
-
// ---------------------------------------------------------------------------
|
|
7
|
-
export const TaskState = {
|
|
8
|
-
RunningModel: "running_model",
|
|
9
|
-
RunningTools: "running_tools",
|
|
10
|
-
Cancelling: "cancelling",
|
|
11
|
-
Cancelled: "cancelled",
|
|
12
|
-
Completed: "completed",
|
|
13
|
-
Failed: "failed",
|
|
14
|
-
};
|
|
15
|
-
const TERMINAL_TASK_STATES = new Set([
|
|
16
|
-
TaskState.Cancelled,
|
|
17
|
-
TaskState.Completed,
|
|
18
|
-
TaskState.Failed,
|
|
19
|
-
]);
|
|
20
|
-
const ALLOWED_TASK_TRANSITIONS = new Map([
|
|
21
|
-
[
|
|
22
|
-
TaskState.RunningModel,
|
|
23
|
-
new Set([
|
|
24
|
-
TaskState.RunningTools,
|
|
25
|
-
TaskState.Cancelling,
|
|
26
|
-
TaskState.Completed,
|
|
27
|
-
TaskState.Failed,
|
|
28
|
-
]),
|
|
29
|
-
],
|
|
30
|
-
[
|
|
31
|
-
TaskState.RunningTools,
|
|
32
|
-
new Set([
|
|
33
|
-
TaskState.RunningModel,
|
|
34
|
-
TaskState.Cancelling,
|
|
35
|
-
TaskState.Completed,
|
|
36
|
-
TaskState.Failed,
|
|
37
|
-
]),
|
|
38
|
-
],
|
|
39
|
-
[TaskState.Cancelling, new Set([TaskState.Cancelled])],
|
|
40
|
-
[TaskState.Cancelled, new Set()],
|
|
41
|
-
[TaskState.Completed, new Set()],
|
|
42
|
-
[TaskState.Failed, new Set()],
|
|
43
|
-
]);
|
|
44
|
-
/** Task records with at most one active task. */
|
|
45
|
-
export class TaskRegistry {
|
|
46
|
-
tasks = new Map();
|
|
47
|
-
activeTaskIdValue = null;
|
|
48
|
-
get activeTaskId() {
|
|
49
|
-
return this.activeTaskIdValue;
|
|
50
|
-
}
|
|
51
|
-
register(taskId, options = {}) {
|
|
52
|
-
const state = options.state ?? TaskState.RunningModel;
|
|
53
|
-
const activate = options.activate ?? true;
|
|
54
|
-
if (this.tasks.has(taskId)) {
|
|
55
|
-
throw new Error(`task already exists: ${taskId}`);
|
|
56
|
-
}
|
|
57
|
-
if (activate && this.activeTaskIdValue !== null) {
|
|
58
|
-
throw new Error("another task is already active");
|
|
59
|
-
}
|
|
60
|
-
const record = {
|
|
61
|
-
taskId,
|
|
62
|
-
state,
|
|
63
|
-
cancelToken: options.cancelToken ?? new CancelToken(),
|
|
64
|
-
result: null,
|
|
65
|
-
error: null,
|
|
66
|
-
};
|
|
67
|
-
this.tasks.set(taskId, record);
|
|
68
|
-
if (activate && !TERMINAL_TASK_STATES.has(state)) {
|
|
69
|
-
this.activeTaskIdValue = taskId;
|
|
70
|
-
}
|
|
71
|
-
return { ...record };
|
|
72
|
-
}
|
|
73
|
-
get(taskId) {
|
|
74
|
-
const record = this.tasks.get(taskId);
|
|
75
|
-
return record === undefined ? null : { ...record };
|
|
76
|
-
}
|
|
77
|
-
active() {
|
|
78
|
-
if (this.activeTaskIdValue === null) {
|
|
79
|
-
return null;
|
|
80
|
-
}
|
|
81
|
-
const record = this.tasks.get(this.activeTaskIdValue);
|
|
82
|
-
return record === undefined ? null : { ...record };
|
|
83
|
-
}
|
|
84
|
-
transition(taskId, state, options = {}) {
|
|
85
|
-
const record = this.tasks.get(taskId);
|
|
86
|
-
if (record === undefined) {
|
|
87
|
-
throw new Error(`unknown task: ${taskId}`);
|
|
88
|
-
}
|
|
89
|
-
if (state !== record.state &&
|
|
90
|
-
!ALLOWED_TASK_TRANSITIONS.get(record.state)?.has(state)) {
|
|
91
|
-
throw new Error(`invalid task transition: ${record.state} -> ${state}`);
|
|
92
|
-
}
|
|
93
|
-
const next = {
|
|
94
|
-
...record,
|
|
95
|
-
state,
|
|
96
|
-
result: options.result !== undefined ? options.result : record.result,
|
|
97
|
-
error: options.error !== undefined ? options.error : record.error,
|
|
98
|
-
};
|
|
99
|
-
if (TERMINAL_TASK_STATES.has(state)) {
|
|
100
|
-
if (this.activeTaskIdValue === taskId) {
|
|
101
|
-
this.activeTaskIdValue = null;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
const active = this.activeTaskIdValue;
|
|
106
|
-
if (active !== null && active !== taskId) {
|
|
107
|
-
throw new Error("another task is already active");
|
|
108
|
-
}
|
|
109
|
-
this.activeTaskIdValue = taskId;
|
|
110
|
-
}
|
|
111
|
-
this.tasks.set(taskId, next);
|
|
112
|
-
return { ...next };
|
|
113
|
-
}
|
|
114
|
-
records() {
|
|
115
|
-
return [...this.tasks.values()].map((record) => ({ ...record }));
|
|
116
|
-
}
|
|
117
|
-
}
|
|
3
|
+
import { TaskState, isTerminalTaskState, } from "./runtime/task-lifecycle.js";
|
|
118
4
|
// ---------------------------------------------------------------------------
|
|
119
5
|
// Token estimates
|
|
120
6
|
// ---------------------------------------------------------------------------
|
|
@@ -207,7 +93,7 @@ export class EventRouter {
|
|
|
207
93
|
if (event.source !== EventSource.User && event.source !== EventSource.Cli) {
|
|
208
94
|
if (active === null ||
|
|
209
95
|
target.taskId !== active.taskId ||
|
|
210
|
-
|
|
96
|
+
isTerminalTaskState(target.state)) {
|
|
211
97
|
return {
|
|
212
98
|
taskId: target.taskId,
|
|
213
99
|
destination: "drop",
|
|
@@ -606,50 +492,6 @@ export class HeldQueue {
|
|
|
606
492
|
return this.items.length;
|
|
607
493
|
}
|
|
608
494
|
}
|
|
609
|
-
export class Scheduler {
|
|
610
|
-
pending;
|
|
611
|
-
held;
|
|
612
|
-
deadLetters;
|
|
613
|
-
constructor(options = {}) {
|
|
614
|
-
this.pending = options.pending ?? new PendingQueue();
|
|
615
|
-
this.held = options.held ?? new HeldQueue();
|
|
616
|
-
this.deadLetters = options.deadLetters ?? new DeadLetterQueue();
|
|
617
|
-
}
|
|
618
|
-
schedule(event) {
|
|
619
|
-
const destination = event.decision.destination;
|
|
620
|
-
try {
|
|
621
|
-
if (destination === "pending") {
|
|
622
|
-
this.pending.put(event);
|
|
623
|
-
return { immediate: [], queued: true, rejected: false, reason: "" };
|
|
624
|
-
}
|
|
625
|
-
if (destination === "held") {
|
|
626
|
-
this.held.put(event);
|
|
627
|
-
return { immediate: [], queued: true, rejected: false, reason: "" };
|
|
628
|
-
}
|
|
629
|
-
}
|
|
630
|
-
catch (error) {
|
|
631
|
-
if (!(error instanceof QueueOverflowError)) {
|
|
632
|
-
throw error;
|
|
633
|
-
}
|
|
634
|
-
const reason = error.message;
|
|
635
|
-
this.deadLetters.put(event.event, reason);
|
|
636
|
-
return { immediate: [], queued: false, rejected: true, reason };
|
|
637
|
-
}
|
|
638
|
-
if (destination === "drop") {
|
|
639
|
-
this.deadLetters.put(event.event, event.decision.reason);
|
|
640
|
-
return {
|
|
641
|
-
immediate: [],
|
|
642
|
-
queued: false,
|
|
643
|
-
rejected: true,
|
|
644
|
-
reason: event.decision.reason,
|
|
645
|
-
};
|
|
646
|
-
}
|
|
647
|
-
return { immediate: [event], queued: false, rejected: false, reason: "" };
|
|
648
|
-
}
|
|
649
|
-
safePoint(taskId) {
|
|
650
|
-
return this.pending.drainCompatible({ taskId });
|
|
651
|
-
}
|
|
652
|
-
}
|
|
653
495
|
/** Combine a pending snapshot into one model input without losing IDs. */
|
|
654
496
|
export function combineInput(events) {
|
|
655
497
|
const parts = [];
|
package/dist/routing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing.js","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,SAAS,EACT,WAAW,GAEZ,MAAM,aAAa,CAAC;AAErB,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,YAAY,EAAE,eAAe;IAC7B,YAAY,EAAE,eAAe;IAC7B,UAAU,EAAE,YAAY;IACxB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;CACR,CAAC;AAIX,MAAM,oBAAoB,GAA2B,IAAI,GAAG,CAAC;IAC3D,SAAS,CAAC,SAAS;IACnB,SAAS,CAAC,SAAS;IACnB,SAAS,CAAC,MAAM;CACjB,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAC5B,IAAI,GAAG,CAAC;IACN;QACE,SAAS,CAAC,YAAY;QACtB,IAAI,GAAG,CAAC;YACN,SAAS,CAAC,YAAY;YACtB,SAAS,CAAC,UAAU;YACpB,SAAS,CAAC,SAAS;YACnB,SAAS,CAAC,MAAM;SACjB,CAAC;KACH;IACD;QACE,SAAS,CAAC,YAAY;QACtB,IAAI,GAAG,CAAC;YACN,SAAS,CAAC,YAAY;YACtB,SAAS,CAAC,UAAU;YACpB,SAAS,CAAC,SAAS;YACnB,SAAS,CAAC,MAAM;SACjB,CAAC;KACH;IACD,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IACtD,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC;IAChC,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC;IAChC,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;CAC9B,CAAC,CAAC;AAqBL,iDAAiD;AACjD,MAAM,OAAO,YAAY;IACN,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC/C,iBAAiB,GAAkB,IAAI,CAAC;IAEhD,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,QAAQ,CAAC,MAAc,EAAE,UAA+B,EAAE;QACxD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC,YAAY,CAAC;QACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;QAC1C,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,QAAQ,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,MAAM,GAAe;YACzB,MAAM;YACN,KAAK;YACL,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI,WAAW,EAAE;YACrD,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;SACZ,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,IAAI,QAAQ,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;QAClC,CAAC;QACD,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,MAAc;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;IACrD,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtD,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;IACrD,CAAC;IAED,UAAU,CACR,MAAc,EACd,KAAgB,EAChB,UAA6B,EAAE;QAE/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,iBAAiB,MAAM,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,IACE,KAAK,KAAK,MAAM,CAAC,KAAK;YACtB,CAAC,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EACvD,CAAC;YACD,MAAM,IAAI,KAAK,CACb,4BAA4B,MAAM,CAAC,KAAK,OAAO,KAAK,EAAE,CACvD,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAe;YACvB,GAAG,MAAM;YACT,KAAK;YACL,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;YACrE,KAAK,EAAE,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK;SAClE,CAAC;QACF,IAAI,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,iBAAiB,KAAK,MAAM,EAAE,CAAC;gBACtC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAChC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACtC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7B,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IACrB,CAAC;IAED,OAAO;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IACnE,CAAC;CACF;AAyCD,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,wEAAwE;AACxE,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,WAAW,CAAC,MAAmB;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChD,OAAO,cAAc,CACnB,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAC9D,CAAC;AACJ,CAAC;AAWD,2EAA2E;AAC3E,MAAM,OAAO,eAAe;IACjB,QAAQ,CAAS;IAClB,KAAK,GAAiB,EAAE,CAAC;IAEjC,YAAY,QAAQ,GAAG,GAAG;QACxB,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,UAAU,CAAC,2BAA2B,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,KAAuB,EAAE,MAAc;QACzC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,KAAK;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,QAAQ;QACN,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;CACF;AAuCD,SAAS,eAAe,CAAC,OAAgB;IACvC,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,CAAC;AACzD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,WAAW;IACb,YAAY,CAAe;IACnB,kBAAkB,CAA4B;IAC9C,YAAY,CAAsB;IAEnD,YAAY,YAA0B,EAAE,UAA8B,EAAE;QACtE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,IAAI,CAAC;QAC7D,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAuB;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAC1C,IAAI,QAAQ,GACV,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC;YACjC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC;YACtC,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClD,WAAW,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7C,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACvD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAEO,aAAa,CACnB,KAAuB,EACvB,MAAyB;QAEzB,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO;gBACL,MAAM,EAAE,KAAK,CAAC,OAAO;gBACrB,WAAW,EAAE,MAAM;gBACnB,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,qCAAqC;gBAC7C,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,GAAG,EAAE,CAAC;YAC1E,IACE,MAAM,KAAK,IAAI;gBACf,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;gBAC/B,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EACtC,CAAC;gBACD,OAAO;oBACL,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,WAAW,EAAE,MAAM;oBACnB,MAAM,EAAE,WAAW;oBACnB,QAAQ,EAAE,QAAQ;oBAClB,UAAU,EAAE,GAAG;oBACf,MAAM,EAAE,mDAAmD;oBAC3D,KAAK,EAAE,CAAC;iBACT,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,WAAW,EAAE,cAAc;gBAC3B,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,SAAS;gBACnB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,yCAAyC;gBACjD,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;YACvD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,UAAU,CAAC;YACnD,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBACtC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY;gBAC5C,QAAQ,EAAE,OAAO;gBACjB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,+CAA+C;gBACvD,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,MAAM;YACnB,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,WAAW;YACrB,UAAU,EAAE,GAAG;YACf,MAAM,EAAE,qCAAqC;YAC7C,KAAK,EAAE,CAAC;SACT,CAAC;IACJ,CAAC;IAEO,kBAAkB,CACxB,KAAuB,EACvB,MAAyB;QAEzB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,IACE,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,oBAAoB;YAC7C,OAAO,KAAK,SAAS,EACrB,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI;gBAC9B,WAAW,EAAE,SAAS;gBACtB,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,sCAAsC;gBAC9C,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,iBAAiB,EAAE,CAAC;YAC/C,OAAO;gBACL,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI;gBAC9B,WAAW,EAAE,SAAS;gBACtB,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,SAAS;gBACnB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,sDAAsD;gBAC9D,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,aAAa,EAAE,CAAC;YAC3C,OAAO;gBACL,MAAM,EAAE,KAAK,CAAC,OAAO,IAAI,MAAM,EAAE,MAAM,IAAI,IAAI;gBAC/C,WAAW,EAAE,cAAc;gBAC3B,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,SAAS;gBACnB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,wDAAwD;gBAChE,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO;gBACL,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,UAAU;gBACvB,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,SAAS;gBACnB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,gBAAgB;gBACxB,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC;YAC1C,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,WAAW,EAAE,MAAM;gBACnB,MAAM,EAAE,cAAc;gBACtB,QAAQ,EAAE,WAAW;gBACrB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,mDAAmD;gBAC3D,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YAC1B,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,WAAW,EAAE,SAAS;gBACtB,MAAM,EAAE,YAAY;gBACpB,QAAQ,EAAE,OAAO;gBACjB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,4BAA4B;gBACpC,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YAC9B,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,WAAW,EAAE,SAAS;gBACtB,MAAM,EAAE,YAAY;gBACpB,QAAQ,EAAE,WAAW;gBACrB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,6BAA6B;gBACrC,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAClC,KAAuB,EACvB,MAAyB;QAEzB,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC3C,MAAM,UAAU,GACd,OAAO,UAAU,KAAK,UAAU;YAC9B,CAAC,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC;YACjC,CAAC,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,YAAY;YACpB,QAAQ;YACR,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,8CAA8C;YACtD,KAAK,EAAE,CAAC;SACT,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,eAAe,CAC5B,KAAuB,EACvB,MAAyB;QAEzB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO;gBACL,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,UAAU;gBACvB,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,SAAS;gBACnB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,yBAAyB;gBACjC,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,YAAY;YACpB,QAAQ,EAAE,WAAW;YACrB,UAAU,EAAE,GAAG;YACf,MAAM,EAAE,8CAA8C;YACtD,KAAK,EAAE,CAAC;SACT,CAAC;IACJ,CAAC;IAEO,aAAa,CACnB,KAAuB,EACvB,MAAyB,EACzB,QAAuB;QAEvB,IAAI,OAAO,GAAG,QAAQ,CAAC;QACvB,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,OAAO,GAAG,OAAO,CAAC;YACpB,CAAC;iBAAM,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;gBAC7B,OAAO,GAAG;oBACR,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,WAAW,EAAE,MAAM;oBACnB,MAAM,EAAE,WAAW;oBACnB,QAAQ,EAAE,QAAQ;oBAClB,UAAU,EAAE,GAAG;oBACf,MAAM,EAAE,yCAAyC;oBACjD,KAAK,EAAE,CAAC;iBACT,CAAC;YACJ,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,wEAAwE;QACxE,QAAQ;QACR,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,oBAAoB,EAAE,CAAC;YAClD,OAAO;gBACL,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI;gBAC9B,WAAW,EAAE,SAAS;gBACtB,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,iDAAiD;gBACzD,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,IACE,OAAO,CAAC,MAAM,KAAK,IAAI;YACvB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI;YAC9C,OAAO,CAAC,WAAW,KAAK,UAAU,EAClC,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,WAAW,EAAE,MAAM;gBACnB,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,yCAAyC;gBACjD,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E,oEAAoE;AACpE,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAMD,SAAS,gBAAgB,CAAC,MAAmB;IAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3E,CAAC;AAQD,yDAAyD;AACzD,MAAM,OAAO,YAAY;IACd,QAAQ,CAAS;IACjB,kBAAkB,CAAS;IAC5B,KAAK,GAAkB,EAAE,CAAC;IAC1B,oBAAoB,GAAG,CAAC,CAAC;IAEjC,YAAY,QAAQ,GAAG,GAAG,EAAE,UAA+B,EAAE;QAC3D,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,KAAK,CAAC;QAC/D,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,UAAU,CAAC,2BAA2B,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,kBAAkB,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,UAAU,CAAC,qCAAqC,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC/C,CAAC;IAED,GAAG,CAAC,KAAkB;QACpB,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,oBAAoB,GAAG,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACjE,MAAM,IAAI,kBAAkB,CAAC,oCAAoC,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,oBAAoB,IAAI,MAAM,CAAC;IACtC,CAAC;IAED,uEAAuE;IACvE,eAAe,CAAC,UAAkC,EAAE;QAClD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;QACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;QAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;QACtC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAC3B,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,CAC7D,CAAC;QACF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC;YAChD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,UAAU,GAAG,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC;YACjE,CAAC;YACD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,UAAU,GAAG,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC;YAC7D,CAAC;YACD,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,EACtC,CAAC,CACF,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,mEAAmE;IACnE,SAAS,CAAC,MAAc;QACtB,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,EACtC,CAAC,CACF,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED,QAAQ;QACN,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,KAAK;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;CACF;AAMD,2DAA2D;AAC3D,MAAM,OAAO,SAAS;IACX,QAAQ,CAAS;IACjB,kBAAkB,CAAS;IAC5B,KAAK,GAAkB,EAAE,CAAC;IAC1B,oBAAoB,GAAG,CAAC,CAAC;IAEjC,YAAY,QAAQ,GAAG,GAAG,EAAE,UAA+B,EAAE;QAC3D,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,KAAK,CAAC;QAC/D,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,UAAU,CAAC,2BAA2B,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,kBAAkB,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,UAAU,CAAC,qCAAqC,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC/C,CAAC;IAED,GAAG,CAAC,KAAkB;QACpB,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,oBAAoB,GAAG,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACjE,MAAM,IAAI,kBAAkB,CAAC,iCAAiC,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,oBAAoB,IAAI,MAAM,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,UAA4B,EAAE;QAClC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;QACtC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,EACtC,CAAC,CACF,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;CACF;AAmBD,MAAM,OAAO,SAAS;IACX,OAAO,CAAe;IACtB,IAAI,CAAY;IAChB,WAAW,CAAkB;IAEtC,YAAY,UAA4B,EAAE;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,YAAY,EAAE,CAAC;QACrD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,eAAe,EAAE,CAAC;IAClE,CAAC;IAED,QAAQ,CAAC,KAAkB;QACzB,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC/C,IAAI,CAAC;YACH,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACxB,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YACtE,CAAC;YACD,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACrB,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YACtE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,kBAAkB,CAAC,EAAE,CAAC;gBAC3C,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;YAC7B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC1C,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAClE,CAAC;QACD,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACzD,OAAO;gBACL,SAAS,EAAE,EAAE;gBACb,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;aAC9B,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC5E,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;CACF;AAED,0EAA0E;AAC1E,MAAM,UAAU,YAAY,CAAC,MAA6B;IACxD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,QAAQ,MAAM,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,CACL,kEAAkE;QAClE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CACnB,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"routing.js","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"AAAA,sDAAsD;AAEtD,OAAO,EACL,SAAS,EACT,WAAW,GAEZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,SAAS,EACT,mBAAmB,GAGpB,MAAM,6BAA6B,CAAC;AAyCrC,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,wEAAwE;AACxE,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,WAAW,CAAC,MAAmB;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChD,OAAO,cAAc,CACnB,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAC9D,CAAC;AACJ,CAAC;AAWD,2EAA2E;AAC3E,MAAM,OAAO,eAAe;IACjB,QAAQ,CAAS;IAClB,KAAK,GAAiB,EAAE,CAAC;IAEjC,YAAY,QAAQ,GAAG,GAAG;QACxB,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,UAAU,CAAC,2BAA2B,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,KAAuB,EAAE,MAAc;QACzC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,KAAK;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,QAAQ;QACN,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;CACF;AAuCD,SAAS,eAAe,CAAC,OAAgB;IACvC,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,CAAC;AACzD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,WAAW;IACb,YAAY,CAAe;IACnB,kBAAkB,CAA4B;IAC9C,YAAY,CAAsB;IAEnD,YAAY,YAA0B,EAAE,UAA8B,EAAE;QACtE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,IAAI,CAAC;QAC7D,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAuB;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAC1C,IAAI,QAAQ,GACV,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC;YACjC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC;YACtC,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClD,WAAW,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7C,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACvD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAEO,aAAa,CACnB,KAAuB,EACvB,MAAyB;QAEzB,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO;gBACL,MAAM,EAAE,KAAK,CAAC,OAAO;gBACrB,WAAW,EAAE,MAAM;gBACnB,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,qCAAqC;gBAC7C,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,GAAG,EAAE,CAAC;YAC1E,IACE,MAAM,KAAK,IAAI;gBACf,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;gBAC/B,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,EACjC,CAAC;gBACD,OAAO;oBACL,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,WAAW,EAAE,MAAM;oBACnB,MAAM,EAAE,WAAW;oBACnB,QAAQ,EAAE,QAAQ;oBAClB,UAAU,EAAE,GAAG;oBACf,MAAM,EAAE,mDAAmD;oBAC3D,KAAK,EAAE,CAAC;iBACT,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,WAAW,EAAE,cAAc;gBAC3B,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,SAAS;gBACnB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,yCAAyC;gBACjD,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;YACvD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,UAAU,CAAC;YACnD,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBACtC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY;gBAC5C,QAAQ,EAAE,OAAO;gBACjB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,+CAA+C;gBACvD,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,MAAM;YACnB,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,WAAW;YACrB,UAAU,EAAE,GAAG;YACf,MAAM,EAAE,qCAAqC;YAC7C,KAAK,EAAE,CAAC;SACT,CAAC;IACJ,CAAC;IAEO,kBAAkB,CACxB,KAAuB,EACvB,MAAyB;QAEzB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,IACE,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,oBAAoB;YAC7C,OAAO,KAAK,SAAS,EACrB,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI;gBAC9B,WAAW,EAAE,SAAS;gBACtB,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,sCAAsC;gBAC9C,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,iBAAiB,EAAE,CAAC;YAC/C,OAAO;gBACL,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI;gBAC9B,WAAW,EAAE,SAAS;gBACtB,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,SAAS;gBACnB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,sDAAsD;gBAC9D,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,aAAa,EAAE,CAAC;YAC3C,OAAO;gBACL,MAAM,EAAE,KAAK,CAAC,OAAO,IAAI,MAAM,EAAE,MAAM,IAAI,IAAI;gBAC/C,WAAW,EAAE,cAAc;gBAC3B,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,SAAS;gBACnB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,wDAAwD;gBAChE,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO;gBACL,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,UAAU;gBACvB,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,SAAS;gBACnB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,gBAAgB;gBACxB,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC;YAC1C,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,WAAW,EAAE,MAAM;gBACnB,MAAM,EAAE,cAAc;gBACtB,QAAQ,EAAE,WAAW;gBACrB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,mDAAmD;gBAC3D,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YAC1B,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,WAAW,EAAE,SAAS;gBACtB,MAAM,EAAE,YAAY;gBACpB,QAAQ,EAAE,OAAO;gBACjB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,4BAA4B;gBACpC,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YAC9B,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,WAAW,EAAE,SAAS;gBACtB,MAAM,EAAE,YAAY;gBACpB,QAAQ,EAAE,WAAW;gBACrB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,6BAA6B;gBACrC,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAClC,KAAuB,EACvB,MAAyB;QAEzB,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC;QAC3C,MAAM,UAAU,GACd,OAAO,UAAU,KAAK,UAAU;YAC9B,CAAC,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC;YACjC,CAAC,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,YAAY;YACpB,QAAQ;YACR,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,8CAA8C;YACtD,KAAK,EAAE,CAAC;SACT,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,eAAe,CAC5B,KAAuB,EACvB,MAAyB;QAEzB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO;gBACL,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,UAAU;gBACvB,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,SAAS;gBACnB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,yBAAyB;gBACjC,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,YAAY;YACpB,QAAQ,EAAE,WAAW;YACrB,UAAU,EAAE,GAAG;YACf,MAAM,EAAE,8CAA8C;YACtD,KAAK,EAAE,CAAC;SACT,CAAC;IACJ,CAAC;IAEO,aAAa,CACnB,KAAuB,EACvB,MAAyB,EACzB,QAAuB;QAEvB,IAAI,OAAO,GAAG,QAAQ,CAAC;QACvB,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,OAAO,GAAG,OAAO,CAAC;YACpB,CAAC;iBAAM,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;gBAC7B,OAAO,GAAG;oBACR,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,WAAW,EAAE,MAAM;oBACnB,MAAM,EAAE,WAAW;oBACnB,QAAQ,EAAE,QAAQ;oBAClB,UAAU,EAAE,GAAG;oBACf,MAAM,EAAE,yCAAyC;oBACjD,KAAK,EAAE,CAAC;iBACT,CAAC;YACJ,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,wEAAwE;QACxE,QAAQ;QACR,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,oBAAoB,EAAE,CAAC;YAClD,OAAO;gBACL,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI;gBAC9B,WAAW,EAAE,SAAS;gBACtB,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,iDAAiD;gBACzD,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,IACE,OAAO,CAAC,MAAM,KAAK,IAAI;YACvB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI;YAC9C,OAAO,CAAC,WAAW,KAAK,UAAU,EAClC,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,WAAW,EAAE,MAAM;gBACnB,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,GAAG;gBACf,MAAM,EAAE,yCAAyC;gBACjD,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E,oEAAoE;AACpE,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAMD,SAAS,gBAAgB,CAAC,MAAmB;IAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3E,CAAC;AAQD,yDAAyD;AACzD,MAAM,OAAO,YAAY;IACd,QAAQ,CAAS;IACjB,kBAAkB,CAAS;IAC5B,KAAK,GAAkB,EAAE,CAAC;IAC1B,oBAAoB,GAAG,CAAC,CAAC;IAEjC,YAAY,QAAQ,GAAG,GAAG,EAAE,UAA+B,EAAE;QAC3D,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,KAAK,CAAC;QAC/D,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,UAAU,CAAC,2BAA2B,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,kBAAkB,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,UAAU,CAAC,qCAAqC,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC/C,CAAC;IAED,GAAG,CAAC,KAAkB;QACpB,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,oBAAoB,GAAG,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACjE,MAAM,IAAI,kBAAkB,CAAC,oCAAoC,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,oBAAoB,IAAI,MAAM,CAAC;IACtC,CAAC;IAED,uEAAuE;IACvE,eAAe,CAAC,UAAkC,EAAE;QAClD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;QACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;QAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;QACtC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAC3B,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,CAC7D,CAAC;QACF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC;YAChD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,UAAU,GAAG,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC;YACjE,CAAC;YACD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,UAAU,GAAG,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC;YAC7D,CAAC;YACD,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,EACtC,CAAC,CACF,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,mEAAmE;IACnE,SAAS,CAAC,MAAc;QACtB,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,EACtC,CAAC,CACF,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED,QAAQ;QACN,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,KAAK;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;CACF;AAMD,2DAA2D;AAC3D,MAAM,OAAO,SAAS;IACX,QAAQ,CAAS;IACjB,kBAAkB,CAAS;IAC5B,KAAK,GAAkB,EAAE,CAAC;IAC1B,oBAAoB,GAAG,CAAC,CAAC;IAEjC,YAAY,QAAQ,GAAG,GAAG,EAAE,UAA+B,EAAE;QAC3D,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,KAAK,CAAC;QAC/D,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,UAAU,CAAC,2BAA2B,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,kBAAkB,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,UAAU,CAAC,qCAAqC,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC/C,CAAC;IAED,GAAG,CAAC,KAAkB;QACpB,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,oBAAoB,GAAG,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACjE,MAAM,IAAI,kBAAkB,CAAC,iCAAiC,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,CAAC,oBAAoB,IAAI,MAAM,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,UAA4B,EAAE;QAClC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;QACtC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,EACtC,CAAC,CACF,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;CACF;AAED,0EAA0E;AAC1E,MAAM,UAAU,YAAY,CAAC,MAA6B;IACxD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,QAAQ,MAAM,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,CACL,kEAAkE;QAClE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CACnB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { CancelToken } from "../cancellation.ts";
|
|
2
|
+
import { type ChatClientLike } from "../model-adapter.ts";
|
|
3
|
+
import type { ToolExecutionMode, ToolResult } from "../tools.ts";
|
|
4
|
+
import { HistoryCommitter, type HistoryCommitContext, type PendingInputBatchLike } from "./history-committer.ts";
|
|
5
|
+
import { GuardPolicy } from "./guard-policy.ts";
|
|
6
|
+
import { ModelRuntime } from "./model-runtime.ts";
|
|
7
|
+
import { ToolRuntime } from "./tool-runtime.ts";
|
|
8
|
+
export declare const FORCED_FINAL_PROMPT = "Tool use has been stopped by the runtime safety guard.\nDo not call any tools. Give the user the best concise answer possible from the\ninformation already available. Clearly state any limitation caused by stopping\ntool use, but do not mention internal implementation details unless useful.";
|
|
9
|
+
export interface AgentStepRunnerContext extends HistoryCommitContext {
|
|
10
|
+
modelStarted?(): boolean | void;
|
|
11
|
+
modelRequestOpened?(): boolean | void;
|
|
12
|
+
toolsStarted?(): void;
|
|
13
|
+
safePoint?(): PendingInputBatchLike | null | undefined;
|
|
14
|
+
}
|
|
15
|
+
export interface AgentStepRunnerOptions {
|
|
16
|
+
client: ChatClientLike;
|
|
17
|
+
model: string;
|
|
18
|
+
provider: string | null;
|
|
19
|
+
modelRuntime: ModelRuntime;
|
|
20
|
+
toolRuntime: ToolRuntime;
|
|
21
|
+
toolDefinitions: Array<Record<string, unknown>>;
|
|
22
|
+
toolExecution: ToolExecutionMode;
|
|
23
|
+
history: HistoryCommitter;
|
|
24
|
+
guardPolicy: GuardPolicy;
|
|
25
|
+
userInput: string;
|
|
26
|
+
context: AgentStepRunnerContext | null;
|
|
27
|
+
cancelToken: CancelToken | null;
|
|
28
|
+
requestId: string | null;
|
|
29
|
+
isRequestActive: (requestId: string) => boolean;
|
|
30
|
+
onRequestId(requestId: string): void;
|
|
31
|
+
emit(eventType: string, payload: Record<string, unknown>): void;
|
|
32
|
+
emitLegacy(eventType: string, payload: Record<string, unknown>): void;
|
|
33
|
+
injectBaselineInstructions(cancelToken: CancelToken | null): void;
|
|
34
|
+
discoverForTouchedPaths(touchedPaths: readonly string[]): void;
|
|
35
|
+
onToolEvent(name: string, args: Record<string, unknown>, result: ToolResult): void;
|
|
36
|
+
createError(message: string, cause?: unknown): Error;
|
|
37
|
+
createCancelled(message: string, cause?: unknown): Error;
|
|
38
|
+
}
|
|
39
|
+
/** Runs the model/tool steps inside one user turn. */
|
|
40
|
+
export declare class AgentStepRunner {
|
|
41
|
+
private readonly options;
|
|
42
|
+
constructor(options: AgentStepRunnerOptions);
|
|
43
|
+
run(): Promise<string>;
|
|
44
|
+
private startToolEvent;
|
|
45
|
+
private completeToolEvent;
|
|
46
|
+
private toolEventContext;
|
|
47
|
+
private guardPayload;
|
|
48
|
+
private emit;
|
|
49
|
+
private isCancelled;
|
|
50
|
+
private raiseIfCancelled;
|
|
51
|
+
}
|