openhorse 0.2.21 → 0.2.23
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/cli.js +25 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +189 -49
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/parser.d.ts.map +1 -1
- package/dist/commands/parser.js +8 -3
- package/dist/commands/parser.js.map +1 -1
- package/dist/commands/types.d.ts +2 -0
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/commands/types.js.map +1 -1
- package/dist/core/cost-tracker.d.ts +45 -5
- package/dist/core/cost-tracker.d.ts.map +1 -1
- package/dist/core/cost-tracker.js +78 -13
- package/dist/core/cost-tracker.js.map +1 -1
- package/dist/framework/index.d.ts +1 -1
- package/dist/framework/index.d.ts.map +1 -1
- package/dist/framework/index.js.map +1 -1
- package/dist/framework/query.d.ts +25 -0
- package/dist/framework/query.d.ts.map +1 -1
- package/dist/framework/query.js +196 -49
- package/dist/framework/query.js.map +1 -1
- package/dist/framework/store.d.ts +6 -1
- package/dist/framework/store.d.ts.map +1 -1
- package/dist/framework/store.js +10 -1
- package/dist/framework/store.js.map +1 -1
- package/dist/harness/capsule.d.ts +1 -0
- package/dist/harness/capsule.d.ts.map +1 -1
- package/dist/harness/capsule.js +38 -9
- package/dist/harness/capsule.js.map +1 -1
- package/dist/harness/contract.d.ts +2 -0
- package/dist/harness/contract.d.ts.map +1 -1
- package/dist/harness/contract.js +78 -14
- package/dist/harness/contract.js.map +1 -1
- package/dist/harness/index.d.ts +2 -2
- package/dist/harness/index.d.ts.map +1 -1
- package/dist/harness/index.js +4 -1
- package/dist/harness/index.js.map +1 -1
- package/dist/harness/ledger.d.ts.map +1 -1
- package/dist/harness/ledger.js +6 -2
- package/dist/harness/ledger.js.map +1 -1
- package/dist/harness/state.d.ts.map +1 -1
- package/dist/harness/state.js +37 -7
- package/dist/harness/state.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/ink-ui/components/StatusLine.d.ts.map +1 -1
- package/dist/ink-ui/components/StatusLine.js +0 -2
- package/dist/ink-ui/components/StatusLine.js.map +1 -1
- package/dist/ink-ui/screens/ReplScreen.d.ts.map +1 -1
- package/dist/ink-ui/screens/ReplScreen.js +12 -5
- package/dist/ink-ui/screens/ReplScreen.js.map +1 -1
- package/dist/runtime/agent-runtime-controller.d.ts.map +1 -1
- package/dist/runtime/agent-runtime-controller.js +11 -1
- package/dist/runtime/agent-runtime-controller.js.map +1 -1
- package/dist/runtime/aggregate-tool-presenter.d.ts +13 -0
- package/dist/runtime/aggregate-tool-presenter.d.ts.map +1 -0
- package/dist/runtime/aggregate-tool-presenter.js +44 -0
- package/dist/runtime/aggregate-tool-presenter.js.map +1 -0
- package/dist/runtime/chat-controller.d.ts +9 -2
- package/dist/runtime/chat-controller.d.ts.map +1 -1
- package/dist/runtime/chat-controller.js +345 -90
- package/dist/runtime/chat-controller.js.map +1 -1
- package/dist/runtime/rich-text/ansi-parser.d.ts +1 -1
- package/dist/runtime/rich-text/ansi-parser.d.ts.map +1 -1
- package/dist/runtime/rich-text/ansi-parser.js +93 -55
- package/dist/runtime/rich-text/ansi-parser.js.map +1 -1
- package/dist/runtime/rich-text/layout.d.ts +2 -11
- package/dist/runtime/rich-text/layout.d.ts.map +1 -1
- package/dist/runtime/rich-text/layout.js +280 -245
- package/dist/runtime/rich-text/layout.js.map +1 -1
- package/dist/runtime/rich-text/markdown-parser.js +31 -24
- package/dist/runtime/rich-text/markdown-parser.js.map +1 -1
- package/dist/runtime/rich-text/types.d.ts +1 -1
- package/dist/runtime/rich-text/types.d.ts.map +1 -1
- package/dist/runtime/subagents/production.d.ts.map +1 -1
- package/dist/runtime/subagents/production.js +28 -3
- package/dist/runtime/subagents/production.js.map +1 -1
- package/dist/runtime/subagents/result-parser.d.ts.map +1 -1
- package/dist/runtime/subagents/result-parser.js +54 -40
- package/dist/runtime/subagents/result-parser.js.map +1 -1
- package/dist/runtime/subagents/types.d.ts +2 -0
- package/dist/runtime/subagents/types.d.ts.map +1 -1
- package/dist/runtime/subagents/types.js +5 -1
- package/dist/runtime/subagents/types.js.map +1 -1
- package/dist/runtime/tool-detail-repository.d.ts +45 -0
- package/dist/runtime/tool-detail-repository.d.ts.map +1 -0
- package/dist/runtime/tool-detail-repository.js +131 -0
- package/dist/runtime/tool-detail-repository.js.map +1 -0
- package/dist/runtime/tool-output-presentation.d.ts +89 -0
- package/dist/runtime/tool-output-presentation.d.ts.map +1 -0
- package/dist/runtime/tool-output-presentation.js +329 -0
- package/dist/runtime/tool-output-presentation.js.map +1 -0
- package/dist/runtime/ui-events.d.ts +17 -0
- package/dist/runtime/ui-events.d.ts.map +1 -1
- package/dist/runtime/ui-events.js.map +1 -1
- package/dist/runtime/ui-view-model.d.ts +9 -0
- package/dist/runtime/ui-view-model.d.ts.map +1 -1
- package/dist/runtime/ui-view-model.js +59 -37
- package/dist/runtime/ui-view-model.js.map +1 -1
- package/dist/services/compact/auto-compact.d.ts +15 -2
- package/dist/services/compact/auto-compact.d.ts.map +1 -1
- package/dist/services/compact/auto-compact.js +56 -24
- package/dist/services/compact/auto-compact.js.map +1 -1
- package/dist/services/compact/compact.d.ts +2 -0
- package/dist/services/compact/compact.d.ts.map +1 -1
- package/dist/services/compact/compact.js +22 -5
- package/dist/services/compact/compact.js.map +1 -1
- package/dist/services/compact/coordinator.d.ts +26 -0
- package/dist/services/compact/coordinator.d.ts.map +1 -0
- package/dist/services/compact/coordinator.js +44 -0
- package/dist/services/compact/coordinator.js.map +1 -0
- package/dist/services/compact/index.d.ts +1 -0
- package/dist/services/compact/index.d.ts.map +1 -1
- package/dist/services/compact/index.js +3 -1
- package/dist/services/compact/index.js.map +1 -1
- package/dist/services/compact/summary-generator.d.ts +6 -2
- package/dist/services/compact/summary-generator.d.ts.map +1 -1
- package/dist/services/compact/summary-generator.js +73 -31
- package/dist/services/compact/summary-generator.js.map +1 -1
- package/dist/services/config-dir.d.ts +11 -1
- package/dist/services/config-dir.d.ts.map +1 -1
- package/dist/services/config-dir.js +19 -2
- package/dist/services/config-dir.js.map +1 -1
- package/dist/services/config.d.ts +4 -2
- package/dist/services/config.d.ts.map +1 -1
- package/dist/services/config.js +40 -0
- package/dist/services/config.js.map +1 -1
- package/dist/services/doctor.d.ts +2 -0
- package/dist/services/doctor.d.ts.map +1 -1
- package/dist/services/doctor.js +8 -1
- package/dist/services/doctor.js.map +1 -1
- package/dist/services/global-config.d.ts +10 -0
- package/dist/services/global-config.d.ts.map +1 -1
- package/dist/services/global-config.js.map +1 -1
- package/dist/services/llm.d.ts +21 -4
- package/dist/services/llm.d.ts.map +1 -1
- package/dist/services/llm.js +66 -8
- package/dist/services/llm.js.map +1 -1
- package/dist/services/model-context.d.ts +36 -0
- package/dist/services/model-context.d.ts.map +1 -1
- package/dist/services/model-context.js +245 -32
- package/dist/services/model-context.js.map +1 -1
- package/dist/services/redaction.js +1 -1
- package/dist/services/redaction.js.map +1 -1
- package/dist/services/session-storage.d.ts +42 -1
- package/dist/services/session-storage.d.ts.map +1 -1
- package/dist/services/session-storage.js +175 -54
- package/dist/services/session-storage.js.map +1 -1
- package/dist/services/storage-maintenance.d.ts.map +1 -1
- package/dist/services/storage-maintenance.js +3 -2
- package/dist/services/storage-maintenance.js.map +1 -1
- package/dist/services/usage-state.d.ts +55 -5
- package/dist/services/usage-state.d.ts.map +1 -1
- package/dist/services/usage-state.js +185 -59
- package/dist/services/usage-state.js.map +1 -1
- package/dist/services/verification-profile.d.ts.map +1 -1
- package/dist/services/verification-profile.js +3 -2
- package/dist/services/verification-profile.js.map +1 -1
- package/dist/services/workspace-diff.d.ts.map +1 -1
- package/dist/services/workspace-diff.js +34 -3
- package/dist/services/workspace-diff.js.map +1 -1
- package/dist/services/yaml-config.js +1 -1
- package/dist/skills/runtime.d.ts +9 -5
- package/dist/skills/runtime.d.ts.map +1 -1
- package/dist/skills/runtime.js +157 -12
- package/dist/skills/runtime.js.map +1 -1
- package/dist/terminal-ui/editor.d.ts.map +1 -1
- package/dist/terminal-ui/editor.js +14 -3
- package/dist/terminal-ui/editor.js.map +1 -1
- package/dist/terminal-ui/launch.d.ts +21 -0
- package/dist/terminal-ui/launch.d.ts.map +1 -1
- package/dist/terminal-ui/launch.js +203 -45
- package/dist/terminal-ui/launch.js.map +1 -1
- package/dist/terminal-ui/output-queue.d.ts +43 -0
- package/dist/terminal-ui/output-queue.d.ts.map +1 -0
- package/dist/terminal-ui/output-queue.js +139 -0
- package/dist/terminal-ui/output-queue.js.map +1 -0
- package/dist/terminal-ui/raw-editor.d.ts +42 -0
- package/dist/terminal-ui/raw-editor.d.ts.map +1 -1
- package/dist/terminal-ui/raw-editor.js +337 -41
- package/dist/terminal-ui/raw-editor.js.map +1 -1
- package/dist/tools/bash_security.d.ts.map +1 -1
- package/dist/tools/bash_security.js +14 -5
- package/dist/tools/bash_security.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +176 -73
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/plan.d.ts.map +1 -1
- package/dist/tools/plan.js +7 -0
- package/dist/tools/plan.js.map +1 -1
- package/dist/tools/web.d.ts +10 -0
- package/dist/tools/web.d.ts.map +1 -1
- package/dist/tools/web.js +81 -1
- package/dist/tools/web.js.map +1 -1
- package/dist/tui-core/input-parser.d.ts +9 -2
- package/dist/tui-core/input-parser.d.ts.map +1 -1
- package/dist/tui-core/input-parser.js +57 -3
- package/dist/tui-core/input-parser.js.map +1 -1
- package/dist/tui-core/style.d.ts +16 -0
- package/dist/tui-core/style.d.ts.map +1 -1
- package/dist/tui-core/style.js +22 -1
- package/dist/tui-core/style.js.map +1 -1
- package/dist/tui-ui/inline-surface.d.ts +69 -12
- package/dist/tui-ui/inline-surface.d.ts.map +1 -1
- package/dist/tui-ui/inline-surface.js +366 -94
- package/dist/tui-ui/inline-surface.js.map +1 -1
- package/dist/tui-ui/input-ownership.d.ts +46 -0
- package/dist/tui-ui/input-ownership.d.ts.map +1 -0
- package/dist/tui-ui/input-ownership.js +74 -0
- package/dist/tui-ui/input-ownership.js.map +1 -0
- package/dist/tui-ui/launch.d.ts +2 -0
- package/dist/tui-ui/launch.d.ts.map +1 -1
- package/dist/tui-ui/launch.js +289 -43
- package/dist/tui-ui/launch.js.map +1 -1
- package/dist/tui-ui/layout.d.ts +52 -2
- package/dist/tui-ui/layout.d.ts.map +1 -1
- package/dist/tui-ui/layout.js +230 -76
- package/dist/tui-ui/layout.js.map +1 -1
- package/dist/tui-ui/runner.d.ts +101 -8
- package/dist/tui-ui/runner.d.ts.map +1 -1
- package/dist/tui-ui/runner.js +843 -51
- package/dist/tui-ui/runner.js.map +1 -1
- package/dist/tui-ui/state.d.ts +70 -4
- package/dist/tui-ui/state.d.ts.map +1 -1
- package/dist/tui-ui/state.js +251 -20
- package/dist/tui-ui/state.js.map +1 -1
- package/dist/tui-ui/theme-profile.d.ts +25 -0
- package/dist/tui-ui/theme-profile.d.ts.map +1 -0
- package/dist/tui-ui/theme-profile.js +130 -0
- package/dist/tui-ui/theme-profile.js.map +1 -0
- package/dist/tui-ui/theme.d.ts +13 -0
- package/dist/tui-ui/theme.d.ts.map +1 -0
- package/dist/tui-ui/theme.js +20 -0
- package/dist/tui-ui/theme.js.map +1 -0
- package/dist/tui-ui/transcript-cache.d.ts +5 -3
- package/dist/tui-ui/transcript-cache.d.ts.map +1 -1
- package/dist/tui-ui/transcript-cache.js +16 -9
- package/dist/tui-ui/transcript-cache.js.map +1 -1
- package/dist/tui-ui/transcript-inspector-layout.d.ts +9 -0
- package/dist/tui-ui/transcript-inspector-layout.d.ts.map +1 -0
- package/dist/tui-ui/transcript-inspector-layout.js +97 -0
- package/dist/tui-ui/transcript-inspector-layout.js.map +1 -0
- package/dist/tui-ui/transcript-inspector-surface.d.ts +18 -0
- package/dist/tui-ui/transcript-inspector-surface.d.ts.map +1 -0
- package/dist/tui-ui/transcript-inspector-surface.js +88 -0
- package/dist/tui-ui/transcript-inspector-surface.js.map +1 -0
- package/dist/tui-ui/transcript-inspector.d.ts +35 -0
- package/dist/tui-ui/transcript-inspector.d.ts.map +1 -0
- package/dist/tui-ui/transcript-inspector.js +128 -0
- package/dist/tui-ui/transcript-inspector.js.map +1 -0
- package/dist/tui-ui/transcript-layout.d.ts +22 -0
- package/dist/tui-ui/transcript-layout.d.ts.map +1 -0
- package/dist/tui-ui/transcript-layout.js +439 -0
- package/dist/tui-ui/transcript-layout.js.map +1 -0
- package/dist/ui/status-bar.d.ts +1 -1
- package/dist/ui/status-bar.d.ts.map +1 -1
- package/dist/ui/status-bar.js +2 -15
- package/dist/ui/status-bar.js.map +1 -1
- package/dist/ui-v2/components/shell.d.ts.map +1 -1
- package/dist/ui-v2/components/shell.js +0 -8
- package/dist/ui-v2/components/shell.js.map +1 -1
- package/package.json +1 -1
package/dist/tui-ui/launch.js
CHANGED
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.launchTuiUI = launchTuiUI;
|
|
4
|
+
exports.parseExternalEditorCommand = parseExternalEditorCommand;
|
|
5
|
+
exports.statusSnapshotString = statusSnapshotString;
|
|
4
6
|
const agent_runtime_controller_1 = require("../runtime/agent-runtime-controller");
|
|
7
|
+
const util_1 = require("util");
|
|
5
8
|
const ui_events_1 = require("../runtime/ui-events");
|
|
6
9
|
const ui_view_model_1 = require("../runtime/ui-view-model");
|
|
7
10
|
const runner_1 = require("./runner");
|
|
8
11
|
const inline_surface_1 = require("./inline-surface");
|
|
9
|
-
const
|
|
12
|
+
const tool_detail_repository_1 = require("../runtime/tool-detail-repository");
|
|
13
|
+
const transcript_inspector_surface_1 = require("./transcript-inspector-surface");
|
|
14
|
+
const child_process_1 = require("child_process");
|
|
10
15
|
const DISABLE_BRACKETED_PASTE = '\x1b[?2004l';
|
|
11
16
|
const SHOW_CURSOR = '\x1b[?25h';
|
|
12
|
-
const HIDE_CURSOR = '\x1b[?25l';
|
|
13
17
|
const ENABLE_AUTOWRAP = '\x1b[?7h';
|
|
18
|
+
const EXIT_ALTERNATE_SCREEN = '\x1b[?1049l';
|
|
14
19
|
async function launchTuiUI(runtime, options = {}) {
|
|
15
20
|
const input = options.input ?? process.stdin;
|
|
16
21
|
const output = options.output ?? process.stdout;
|
|
@@ -20,11 +25,13 @@ async function launchTuiUI(runtime, options = {}) {
|
|
|
20
25
|
let runner;
|
|
21
26
|
let controller;
|
|
22
27
|
let surface;
|
|
28
|
+
let systemId = null;
|
|
23
29
|
let stopping = false;
|
|
24
30
|
let settled = false;
|
|
25
31
|
let resolveLaunch = null;
|
|
26
32
|
// Once guard: shared cleanup promise so concurrent stop calls share one execution.
|
|
27
33
|
let cleanupPromise = null;
|
|
34
|
+
let restoreConsole = null;
|
|
28
35
|
const dimensions = () => {
|
|
29
36
|
const size = readTtyDimensions(output);
|
|
30
37
|
return {
|
|
@@ -49,15 +56,28 @@ async function launchTuiUI(runtime, options = {}) {
|
|
|
49
56
|
input.setRawMode(false);
|
|
50
57
|
}
|
|
51
58
|
}
|
|
52
|
-
catch {
|
|
59
|
+
catch {
|
|
60
|
+
/* best effort */
|
|
61
|
+
}
|
|
53
62
|
try {
|
|
54
63
|
input.pause();
|
|
55
64
|
}
|
|
56
|
-
catch {
|
|
65
|
+
catch {
|
|
66
|
+
/* best effort */
|
|
67
|
+
}
|
|
57
68
|
try {
|
|
58
|
-
output.write(`${SHOW_CURSOR}${ENABLE_AUTOWRAP}${DISABLE_BRACKETED_PASTE}\n`);
|
|
69
|
+
output.write(`${SHOW_CURSOR}${ENABLE_AUTOWRAP}${DISABLE_BRACKETED_PASTE}${EXIT_ALTERNATE_SCREEN}\n`);
|
|
59
70
|
}
|
|
60
|
-
catch {
|
|
71
|
+
catch {
|
|
72
|
+
/* best effort */
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
/** Route process-level rejection feedback through the owned TUI surface. */
|
|
76
|
+
const onUnhandledRejection = (reason) => {
|
|
77
|
+
if (stopping)
|
|
78
|
+
return;
|
|
79
|
+
const message = reason instanceof Error ? reason.message : String(reason);
|
|
80
|
+
runner.dispatch({ type: 'setStatus', message: `Unhandled rejection: ${message}` });
|
|
61
81
|
};
|
|
62
82
|
/**
|
|
63
83
|
* Once-guarded cleanup. Multiple concurrent calls (SIGINT, SIGTERM, runtime
|
|
@@ -77,33 +97,62 @@ async function launchTuiUI(runtime, options = {}) {
|
|
|
77
97
|
try {
|
|
78
98
|
input.off('data', handleData);
|
|
79
99
|
}
|
|
80
|
-
catch {
|
|
100
|
+
catch {
|
|
101
|
+
/* ok */
|
|
102
|
+
}
|
|
81
103
|
try {
|
|
82
104
|
output.off('resize', handleResize);
|
|
83
105
|
}
|
|
84
|
-
catch {
|
|
106
|
+
catch {
|
|
107
|
+
/* ok */
|
|
108
|
+
}
|
|
85
109
|
try {
|
|
86
110
|
process.off('SIGWINCH', handleResize);
|
|
87
111
|
}
|
|
88
|
-
catch {
|
|
112
|
+
catch {
|
|
113
|
+
/* ok */
|
|
114
|
+
}
|
|
89
115
|
try {
|
|
90
116
|
process.off('SIGINT', handleSigint);
|
|
91
117
|
}
|
|
92
|
-
catch {
|
|
118
|
+
catch {
|
|
119
|
+
/* ok */
|
|
120
|
+
}
|
|
93
121
|
try {
|
|
94
122
|
process.off('SIGTERM', handleSigterm);
|
|
95
123
|
}
|
|
96
|
-
catch {
|
|
124
|
+
catch {
|
|
125
|
+
/* ok */
|
|
126
|
+
}
|
|
97
127
|
try {
|
|
98
128
|
process.off('SIGHUP', handleSighup);
|
|
99
129
|
}
|
|
100
|
-
catch {
|
|
130
|
+
catch {
|
|
131
|
+
/* ok */
|
|
132
|
+
}
|
|
133
|
+
try {
|
|
134
|
+
process.off('unhandledRejection', onUnhandledRejection);
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
/* ok */
|
|
138
|
+
}
|
|
101
139
|
// Stop active turn (controller may not exist if init failed).
|
|
102
140
|
if (controller) {
|
|
103
141
|
try {
|
|
104
142
|
await controller.stopActiveTurn();
|
|
105
143
|
}
|
|
106
|
-
catch {
|
|
144
|
+
catch {
|
|
145
|
+
/* best effort — don't block cleanup */
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
if (runner) {
|
|
149
|
+
try {
|
|
150
|
+
await runner.closeModalSurface();
|
|
151
|
+
await runner.flushTranscriptCommits();
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
/* best effort */
|
|
155
|
+
}
|
|
107
156
|
}
|
|
108
157
|
// Restore raw mode.
|
|
109
158
|
try {
|
|
@@ -111,29 +160,59 @@ async function launchTuiUI(runtime, options = {}) {
|
|
|
111
160
|
input.setRawMode(false);
|
|
112
161
|
}
|
|
113
162
|
}
|
|
114
|
-
catch {
|
|
163
|
+
catch {
|
|
164
|
+
/* best effort */
|
|
165
|
+
}
|
|
115
166
|
try {
|
|
116
167
|
input.pause();
|
|
117
168
|
}
|
|
118
|
-
catch {
|
|
169
|
+
catch {
|
|
170
|
+
/* best effort */
|
|
171
|
+
}
|
|
172
|
+
// Stop scheduler before surface cleanup (prevents pending renders).
|
|
173
|
+
if (runner) {
|
|
174
|
+
try {
|
|
175
|
+
runner.getScheduler().stop();
|
|
176
|
+
}
|
|
177
|
+
catch {
|
|
178
|
+
/* best effort */
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
// Flush surface queue to ensure all pending writes complete.
|
|
182
|
+
if (surface) {
|
|
183
|
+
try {
|
|
184
|
+
await surface.flush();
|
|
185
|
+
}
|
|
186
|
+
catch {
|
|
187
|
+
/* best effort */
|
|
188
|
+
}
|
|
189
|
+
}
|
|
119
190
|
// Unmount surface (clears ephemeral live region only).
|
|
120
191
|
if (surface) {
|
|
121
192
|
try {
|
|
122
193
|
await surface.unmount();
|
|
123
194
|
}
|
|
124
|
-
catch {
|
|
195
|
+
catch {
|
|
196
|
+
/* best effort */
|
|
197
|
+
}
|
|
125
198
|
}
|
|
199
|
+
restoreConsole?.();
|
|
200
|
+
restoreConsole = null;
|
|
126
201
|
// Restore terminal state: cursor, autowrap, bracketed paste.
|
|
127
202
|
// NO alternate-screen exit, NO full clear, NO erasing committed scrollback.
|
|
128
203
|
try {
|
|
129
204
|
output.write(`${SHOW_CURSOR}${ENABLE_AUTOWRAP}${DISABLE_BRACKETED_PASTE}`);
|
|
130
205
|
}
|
|
131
|
-
catch {
|
|
206
|
+
catch {
|
|
207
|
+
/* best effort */
|
|
208
|
+
}
|
|
132
209
|
// Runtime shutdown last; preserves original exit code/signal semantics.
|
|
133
210
|
try {
|
|
134
211
|
await runtime.shutdown();
|
|
135
212
|
}
|
|
136
|
-
catch {
|
|
213
|
+
catch {
|
|
214
|
+
/* best effort */
|
|
215
|
+
}
|
|
137
216
|
})();
|
|
138
217
|
return cleanupPromise;
|
|
139
218
|
};
|
|
@@ -170,7 +249,9 @@ async function launchTuiUI(runtime, options = {}) {
|
|
|
170
249
|
const message = error instanceof Error ? error.message : String(error);
|
|
171
250
|
process.stderr.write(`\nTUI renderer error: ${message}\n`);
|
|
172
251
|
}
|
|
173
|
-
catch {
|
|
252
|
+
catch {
|
|
253
|
+
/* best effort */
|
|
254
|
+
}
|
|
174
255
|
// Attempt full cleanup (may partially fail — that's ok).
|
|
175
256
|
// Ensure finishLaunch() runs on both success and rejection so the error
|
|
176
257
|
// path always completes and no unhandled promise rejection escapes.
|
|
@@ -196,7 +277,12 @@ async function launchTuiUI(runtime, options = {}) {
|
|
|
196
277
|
runner.events.append({ role: 'error', content: 'No session selected.' });
|
|
197
278
|
return '';
|
|
198
279
|
}
|
|
199
|
-
return {
|
|
280
|
+
return {
|
|
281
|
+
type: 'select_session',
|
|
282
|
+
sessionId: selected.id,
|
|
283
|
+
allProjects: request.allProjects,
|
|
284
|
+
source: 'picker',
|
|
285
|
+
};
|
|
200
286
|
}
|
|
201
287
|
if (trimmed.startsWith('/'))
|
|
202
288
|
return trimmed;
|
|
@@ -208,11 +294,27 @@ async function launchTuiUI(runtime, options = {}) {
|
|
|
208
294
|
runner.events.append({ role: 'error', content: `No session at index ${numeric[1]}.` });
|
|
209
295
|
return '';
|
|
210
296
|
}
|
|
211
|
-
return {
|
|
297
|
+
return {
|
|
298
|
+
type: 'select_session',
|
|
299
|
+
sessionId: selected.id,
|
|
300
|
+
allProjects: request.allProjects,
|
|
301
|
+
source: 'picker',
|
|
302
|
+
};
|
|
212
303
|
}
|
|
213
|
-
return {
|
|
304
|
+
return {
|
|
305
|
+
type: 'select_session',
|
|
306
|
+
sessionId: trimmed,
|
|
307
|
+
allProjects: request.allProjects,
|
|
308
|
+
source: 'picker',
|
|
309
|
+
};
|
|
214
310
|
};
|
|
215
311
|
const submit = (rawInput) => {
|
|
312
|
+
// Finalize the initial system message so it can be committed to scrollback
|
|
313
|
+
// and the commit boundary can advance past it.
|
|
314
|
+
if (systemId !== null) {
|
|
315
|
+
runner.events.finalize(systemId);
|
|
316
|
+
systemId = null; // Only finalize once.
|
|
317
|
+
}
|
|
216
318
|
const selectedInput = consumeSessionPickerSelection(rawInput);
|
|
217
319
|
const runtimeInput = typeof selectedInput === 'string'
|
|
218
320
|
? { type: 'submit', text: selectedInput.trim(), source: 'composer' }
|
|
@@ -253,6 +355,7 @@ async function launchTuiUI(runtime, options = {}) {
|
|
|
253
355
|
const handleResize = () => {
|
|
254
356
|
if (stopping)
|
|
255
357
|
return;
|
|
358
|
+
runner.beginResize(dimensions().width);
|
|
256
359
|
if (resizeDebounceTimer !== null) {
|
|
257
360
|
clearTimeout(resizeDebounceTimer);
|
|
258
361
|
}
|
|
@@ -278,14 +381,13 @@ async function launchTuiUI(runtime, options = {}) {
|
|
|
278
381
|
// Primary-screen inline surface: no alternate screen (1049).
|
|
279
382
|
const { width, height } = dimensions();
|
|
280
383
|
surface = new inline_surface_1.InlineTerminalSurface({ output });
|
|
281
|
-
|
|
282
|
-
//
|
|
283
|
-
//
|
|
284
|
-
//
|
|
285
|
-
|
|
286
|
-
//
|
|
287
|
-
|
|
288
|
-
output.write(`${ENABLE_BRACKETED_PASTE}${HIDE_CURSOR}`);
|
|
384
|
+
const inspectorSurface = new transcript_inspector_surface_1.TranscriptInspectorSurface(output);
|
|
385
|
+
// Mount enters the same serialized queue as subsequent paints. Start it
|
|
386
|
+
// synchronously so input listeners are installed in this turn; awaiting it
|
|
387
|
+
// here creates a window where early keystrokes are dropped.
|
|
388
|
+
void surface.mount(width, height).catch(error => failRenderer(error));
|
|
389
|
+
// surface.mount() enables bracketed paste and hides cursor; no need for
|
|
390
|
+
// redundant output.write of those sequences.
|
|
289
391
|
runner = new runner_1.TuiRunner({
|
|
290
392
|
output,
|
|
291
393
|
width,
|
|
@@ -301,18 +403,43 @@ async function launchTuiUI(runtime, options = {}) {
|
|
|
301
403
|
source: 'keyboard',
|
|
302
404
|
});
|
|
303
405
|
},
|
|
406
|
+
surface,
|
|
407
|
+
onSurfaceError: failRenderer,
|
|
408
|
+
detailRepository: new tool_detail_repository_1.FileToolDetailRepository(),
|
|
409
|
+
inspectorSurface,
|
|
410
|
+
onOpenExternalEditor: async (filePath) => {
|
|
411
|
+
await surface.suspend();
|
|
412
|
+
input.off('data', handleData);
|
|
413
|
+
try {
|
|
414
|
+
if (typeof input.setRawMode === 'function')
|
|
415
|
+
input.setRawMode(false);
|
|
416
|
+
input.pause();
|
|
417
|
+
await launchExternalEditor(filePath);
|
|
418
|
+
}
|
|
419
|
+
finally {
|
|
420
|
+
if (!stopping) {
|
|
421
|
+
input.resume();
|
|
422
|
+
if (typeof input.setRawMode === 'function')
|
|
423
|
+
input.setRawMode(true);
|
|
424
|
+
input.on('data', handleData);
|
|
425
|
+
await surface.restore(() => null, dimensions().width, dimensions().height);
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
},
|
|
304
429
|
});
|
|
430
|
+
restoreConsole = installTuiConsoleBridge(runner.events, () => stopping);
|
|
305
431
|
const dispatchStatusSnapshot = (phase) => {
|
|
432
|
+
const runtimeSnapshot = runtime.store.getSnapshot();
|
|
306
433
|
const snapshot = (0, ui_view_model_1.createStatusSnapshot)({
|
|
307
434
|
renderer: 'tui',
|
|
308
|
-
model:
|
|
435
|
+
model: runtimeSnapshot.currentModel || runtime.config.model,
|
|
309
436
|
sessionId: runtime.getSession()?.id,
|
|
310
|
-
|
|
437
|
+
context: runtimeSnapshot.contextUsage ?? undefined,
|
|
311
438
|
runningState: phase,
|
|
312
439
|
tokens: tokensFromRuntime(runtime),
|
|
313
440
|
});
|
|
314
441
|
runner.dispatch({ type: 'setStatusSnapshot', snapshot, phase });
|
|
315
|
-
return statusSnapshotString(runtime
|
|
442
|
+
return statusSnapshotString(runtime);
|
|
316
443
|
};
|
|
317
444
|
controller = new agent_runtime_controller_1.AgentRuntimeController({
|
|
318
445
|
runtime,
|
|
@@ -323,11 +450,15 @@ async function launchTuiUI(runtime, options = {}) {
|
|
|
323
450
|
runningStatus: () => dispatchStatusSnapshot('running'),
|
|
324
451
|
readyStatus: () => dispatchStatusSnapshot('ready'),
|
|
325
452
|
});
|
|
326
|
-
|
|
453
|
+
// The initial system message stays live (not finalized) so it's visible
|
|
454
|
+
// in the live region rather than scrolling off into shell scrollback.
|
|
455
|
+
// It's finalized when the user submits their first input.
|
|
456
|
+
systemId = runner.events.append({
|
|
327
457
|
role: 'system',
|
|
328
|
-
content: `OPENHORSE v${runtime.version}\nProject ${runtime.cwd}\n/ commands @ files ? shortcuts Ctrl+C twice exits`,
|
|
458
|
+
content: `OPENHORSE v${runtime.version}\nProject ${runtime.cwd}\n/ commands @ files ? shortcuts Ctrl+O tools Ctrl+C twice exits`,
|
|
459
|
+
live: true,
|
|
329
460
|
});
|
|
330
|
-
runner.events.setStatus(statusSnapshotString(runtime
|
|
461
|
+
runner.events.setStatus(statusSnapshotString(runtime));
|
|
331
462
|
dispatchStatusSnapshot('ready');
|
|
332
463
|
input.resume();
|
|
333
464
|
if (typeof input.setRawMode === 'function') {
|
|
@@ -339,6 +470,7 @@ async function launchTuiUI(runtime, options = {}) {
|
|
|
339
470
|
process.on('SIGINT', handleSigint);
|
|
340
471
|
process.on('SIGTERM', handleSigterm);
|
|
341
472
|
process.on('SIGHUP', handleSighup);
|
|
473
|
+
process.on('unhandledRejection', onUnhandledRejection);
|
|
342
474
|
await new Promise(resolve => {
|
|
343
475
|
resolveLaunch = resolve;
|
|
344
476
|
});
|
|
@@ -348,20 +480,134 @@ async function launchTuiUI(runtime, options = {}) {
|
|
|
348
480
|
throw error;
|
|
349
481
|
}
|
|
350
482
|
}
|
|
483
|
+
function parseExternalEditorCommand(commandLine) {
|
|
484
|
+
const args = [];
|
|
485
|
+
let current = '';
|
|
486
|
+
let quote = null;
|
|
487
|
+
let escaped = false;
|
|
488
|
+
let started = false;
|
|
489
|
+
for (const character of commandLine.trim()) {
|
|
490
|
+
if (escaped) {
|
|
491
|
+
current += character;
|
|
492
|
+
escaped = false;
|
|
493
|
+
started = true;
|
|
494
|
+
continue;
|
|
495
|
+
}
|
|
496
|
+
if (character === '\\' && quote !== 'single') {
|
|
497
|
+
escaped = true;
|
|
498
|
+
started = true;
|
|
499
|
+
continue;
|
|
500
|
+
}
|
|
501
|
+
if (character === "'" && quote !== 'double') {
|
|
502
|
+
quote = quote === 'single' ? null : 'single';
|
|
503
|
+
started = true;
|
|
504
|
+
continue;
|
|
505
|
+
}
|
|
506
|
+
if (character === '"' && quote !== 'single') {
|
|
507
|
+
quote = quote === 'double' ? null : 'double';
|
|
508
|
+
started = true;
|
|
509
|
+
continue;
|
|
510
|
+
}
|
|
511
|
+
if (/\s/.test(character) && quote === null) {
|
|
512
|
+
if (started) {
|
|
513
|
+
args.push(current);
|
|
514
|
+
current = '';
|
|
515
|
+
started = false;
|
|
516
|
+
}
|
|
517
|
+
continue;
|
|
518
|
+
}
|
|
519
|
+
current += character;
|
|
520
|
+
started = true;
|
|
521
|
+
}
|
|
522
|
+
if (escaped || quote !== null) {
|
|
523
|
+
throw new Error('Invalid $VISUAL/$EDITOR command: unterminated quote or escape');
|
|
524
|
+
}
|
|
525
|
+
if (started)
|
|
526
|
+
args.push(current);
|
|
527
|
+
return args;
|
|
528
|
+
}
|
|
529
|
+
function launchExternalEditor(filePath) {
|
|
530
|
+
const editorCommand = process.env.VISUAL || process.env.EDITOR || 'vi';
|
|
531
|
+
const [editor, ...editorArgs] = parseExternalEditorCommand(editorCommand);
|
|
532
|
+
if (!editor) {
|
|
533
|
+
return Promise.reject(new Error('$VISUAL/$EDITOR does not name an executable'));
|
|
534
|
+
}
|
|
535
|
+
return new Promise((resolve, reject) => {
|
|
536
|
+
const child = (0, child_process_1.spawn)(editor, [...editorArgs, filePath], { stdio: 'inherit' });
|
|
537
|
+
child.once('error', reject);
|
|
538
|
+
child.once('exit', (code, signal) => {
|
|
539
|
+
if (code === 0) {
|
|
540
|
+
resolve();
|
|
541
|
+
return;
|
|
542
|
+
}
|
|
543
|
+
reject(new Error(signal
|
|
544
|
+
? `${editor} exited from signal ${signal}`
|
|
545
|
+
: `${editor} exited with code ${code ?? 'unknown'}`));
|
|
546
|
+
});
|
|
547
|
+
});
|
|
548
|
+
}
|
|
549
|
+
function installTuiConsoleBridge(events, isStopping) {
|
|
550
|
+
const originalLog = console.log;
|
|
551
|
+
const originalInfo = console.info;
|
|
552
|
+
const originalDebug = console.debug;
|
|
553
|
+
const originalWarn = console.warn;
|
|
554
|
+
const originalError = console.error;
|
|
555
|
+
const publish = (role, args) => {
|
|
556
|
+
if (isStopping())
|
|
557
|
+
return;
|
|
558
|
+
const content = stripTerminalControlSequences((0, util_1.format)(...args)).trimEnd();
|
|
559
|
+
if (!content)
|
|
560
|
+
return;
|
|
561
|
+
const id = events.append({ role, content });
|
|
562
|
+
events.finalize(id);
|
|
563
|
+
};
|
|
564
|
+
const log = (...args) => publish('system', args);
|
|
565
|
+
const info = (...args) => publish('system', args);
|
|
566
|
+
const debug = (...args) => publish('system', args);
|
|
567
|
+
const warn = (...args) => publish('system', args);
|
|
568
|
+
const error = (...args) => publish('error', args);
|
|
569
|
+
console.log = log;
|
|
570
|
+
console.info = info;
|
|
571
|
+
console.debug = debug;
|
|
572
|
+
console.warn = warn;
|
|
573
|
+
console.error = error;
|
|
574
|
+
return () => {
|
|
575
|
+
console.log = originalLog;
|
|
576
|
+
console.info = originalInfo;
|
|
577
|
+
console.debug = originalDebug;
|
|
578
|
+
console.warn = originalWarn;
|
|
579
|
+
console.error = originalError;
|
|
580
|
+
};
|
|
581
|
+
}
|
|
582
|
+
function stripTerminalControlSequences(value) {
|
|
583
|
+
return value
|
|
584
|
+
.replace(/\x1b\[[0-?]*[ -/]*[@-~]/g, '')
|
|
585
|
+
.replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f]/g, '');
|
|
586
|
+
}
|
|
351
587
|
function tokensFromRuntime(rt) {
|
|
352
|
-
const
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
588
|
+
const snapshot = rt.store.getSnapshot();
|
|
589
|
+
const usage = snapshot.tokenUsage;
|
|
590
|
+
return {
|
|
591
|
+
input: usage?.promptTokens,
|
|
592
|
+
output: usage?.completionTokens,
|
|
593
|
+
contextPercent: snapshot.contextUsage?.percent,
|
|
594
|
+
};
|
|
356
595
|
}
|
|
357
|
-
function statusSnapshotString(rt
|
|
596
|
+
function statusSnapshotString(rt) {
|
|
358
597
|
const snapshot = rt.store.getSnapshot();
|
|
359
598
|
const session = rt.getSession()?.id.slice(0, 8) ?? 'none';
|
|
360
599
|
const tokens = snapshot.tokenUsage
|
|
361
600
|
? `${((snapshot.tokenUsage.promptTokens + snapshot.tokenUsage.completionTokens) / 1000).toFixed(1)}K`
|
|
362
601
|
: '0.0K';
|
|
363
|
-
const
|
|
364
|
-
return
|
|
602
|
+
const context = (0, ui_view_model_1.contextUsageStatusText)(snapshot.contextUsage);
|
|
603
|
+
return [
|
|
604
|
+
`model=${snapshot.currentModel || rt.config.model}`,
|
|
605
|
+
context,
|
|
606
|
+
`session=${session}`,
|
|
607
|
+
`tokens=${tokens}`,
|
|
608
|
+
]
|
|
609
|
+
.filter(Boolean)
|
|
610
|
+
.join(' ');
|
|
365
611
|
}
|
|
366
612
|
function readTtyDimensions(output) {
|
|
367
613
|
const getWindowSize = output.getWindowSize;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/tui-ui/launch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/tui-ui/launch.ts"],"names":[],"mappings":"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"}
|
package/dist/tui-ui/layout.d.ts
CHANGED
|
@@ -1,9 +1,59 @@
|
|
|
1
1
|
import { type TuiFrame } from '../tui-core/frame';
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import type { StyledRow, TuiTheme } from '../tui-core/style';
|
|
3
|
+
import { type TuiTranscriptRecord, type TuiUiState } from './state';
|
|
4
|
+
export type TranscriptRecordLayout = (entry: TuiTranscriptRecord, width: number) => StyledRow[];
|
|
5
|
+
export interface TuiTranscriptLayoutOptions {
|
|
6
|
+
/** Transcript content width; production uses the surface safe width. */
|
|
7
|
+
transcriptWidth?: number;
|
|
8
|
+
theme?: TuiTheme;
|
|
9
|
+
toolOutputMode?: 'adaptive' | 'collapsed' | 'full';
|
|
10
|
+
/** Runner-provided cached layout. Pure render callers use the shared default. */
|
|
11
|
+
layoutTranscriptRecord?: TranscriptRecordLayout;
|
|
12
|
+
}
|
|
13
|
+
export interface TuiLayoutOptions extends TuiTranscriptLayoutOptions {
|
|
4
14
|
width: number;
|
|
5
15
|
height: number;
|
|
6
16
|
maxTranscriptRows?: number;
|
|
7
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Options for the live-region-only layout (renderTuiLiveFrame).
|
|
20
|
+
* This function produces a frame for the inline surface's live region only,
|
|
21
|
+
* containing: live transcript entries, timeline (if any), overlay, status, and
|
|
22
|
+
* prompt. Committed (static) transcript entries are handled by surface.commit()
|
|
23
|
+
* separately and are NOT included in this frame.
|
|
24
|
+
*/
|
|
25
|
+
export interface TuiLiveLayoutOptions extends TuiTranscriptLayoutOptions {
|
|
26
|
+
width: number;
|
|
27
|
+
/** Height of the live region (the inline surface bottom band). */
|
|
28
|
+
height: number;
|
|
29
|
+
}
|
|
30
|
+
export interface TuiLayoutBudget {
|
|
31
|
+
promptLineCount: number;
|
|
32
|
+
/** Rows consumed by the prompt box (2 borders + N content lines). */
|
|
33
|
+
promptRows: number;
|
|
34
|
+
/** Rows consumed by the timeline strip (0 when there is no activity). */
|
|
35
|
+
timelineRows: number;
|
|
36
|
+
/** Rows available for the (live) transcript region at the top. */
|
|
37
|
+
transcriptRows: number;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Measure the cursor-owned live block. Idle TUI state stays compact like an
|
|
41
|
+
* ordinary shell prompt; streaming transcript and overlays grow the block only
|
|
42
|
+
* as needed, up to the surface's viewport-derived limit.
|
|
43
|
+
*/
|
|
44
|
+
export declare function measureTuiLiveFrameHeight(state: TuiUiState, width: number, maxHeight: number, options?: TuiTranscriptLayoutOptions): number;
|
|
8
45
|
export declare function renderTuiUiFrame(state: TuiUiState, options: TuiLayoutOptions): TuiFrame;
|
|
46
|
+
/**
|
|
47
|
+
* Render the live-region frame for InlineTerminalSurface.
|
|
48
|
+
*
|
|
49
|
+
* This frame contains ONLY the ephemeral content that sits at the bottom of
|
|
50
|
+
* the terminal: live (uncommitted) transcript entries, timeline (if any),
|
|
51
|
+
* overlay (if active), status bar, and prompt. Committed transcript entries are
|
|
52
|
+
* written to scrollback by surface.commit() and are NOT included in this frame.
|
|
53
|
+
*
|
|
54
|
+
* The frame height should be sized to fill the terminal viewport's bottom band
|
|
55
|
+
* (see InlineTerminalSurface.getLiveBandRows); the dynamic budget allocates the
|
|
56
|
+
* band rows between transcript / timeline / status / prompt.
|
|
57
|
+
*/
|
|
58
|
+
export declare function renderTuiLiveFrame(state: TuiUiState, options: TuiLiveLayoutOptions): TuiFrame;
|
|
9
59
|
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/tui-ui/layout.ts"],"names":[],"mappings":"AACA,OAAO,EAAkD,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/tui-ui/layout.ts"],"names":[],"mappings":"AACA,OAAO,EAAkD,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClG,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAM7D,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,UAAU,EAChB,MAAM,SAAS,CAAC;AAGjB,MAAM,MAAM,sBAAsB,GAAG,CACnC,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,MAAM,KACV,SAAS,EAAE,CAAC;AAEjB,MAAM,WAAW,0BAA0B;IACzC,wEAAwE;IACxE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,cAAc,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,CAAC;IACnD,iFAAiF;IACjF,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;CACjD;AAED,MAAM,WAAW,gBAAiB,SAAQ,0BAA0B;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,oBAAqB,SAAQ,0BAA0B;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;CAChB;AAQD,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,cAAc,EAAE,MAAM,CAAC;CACxB;AA2CD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,0BAA+B,GACvC,MAAM,CAkBR;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,GAAG,QAAQ,CAqBvF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,oBAAoB,GAAG,QAAQ,CAiB7F"}
|