@pentoshi/clai 4.14.4 → 4.14.5
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/CONTRIBUTING.md +4 -0
- package/PROVIDERS.md +2 -0
- package/README.md +22 -0
- package/dist/agent/subagents/read-only-tools.js +2 -2
- package/dist/agent/subagents/read-only-tools.js.map +1 -1
- package/dist/app/adapters/current-updates-adapter.d.ts +1 -1
- package/dist/app/adapters/current-updates-adapter.js +4 -13
- package/dist/app/adapters/current-updates-adapter.js.map +1 -1
- package/dist/app/controllers/session-controller.d.ts +5 -0
- package/dist/app/controllers/session-controller.js +54 -7
- package/dist/app/controllers/session-controller.js.map +1 -1
- package/dist/app/ports/updates-port.d.ts +1 -1
- package/dist/classic/app/action-handlers.js +7 -0
- package/dist/classic/app/action-handlers.js.map +1 -1
- package/dist/commands/update/detection.d.ts +20 -0
- package/dist/commands/update/detection.js +207 -0
- package/dist/commands/update/detection.js.map +1 -0
- package/dist/commands/update/download.d.ts +3 -0
- package/dist/commands/update/download.js +63 -0
- package/dist/commands/update/download.js.map +1 -0
- package/dist/commands/update/installers.d.ts +16 -5
- package/dist/commands/update/installers.js +12 -513
- package/dist/commands/update/installers.js.map +1 -1
- package/dist/commands/update/lock.d.ts +6 -0
- package/dist/commands/update/lock.js +86 -0
- package/dist/commands/update/lock.js.map +1 -0
- package/dist/commands/update/metadata.d.ts +6 -0
- package/dist/commands/update/metadata.js +36 -0
- package/dist/commands/update/metadata.js.map +1 -0
- package/dist/commands/update/native.d.ts +3 -0
- package/dist/commands/update/native.js +179 -0
- package/dist/commands/update/native.js.map +1 -0
- package/dist/commands/update/package-managers.d.ts +4 -0
- package/dist/commands/update/package-managers.js +158 -0
- package/dist/commands/update/package-managers.js.map +1 -0
- package/dist/commands/update/process.d.ts +17 -0
- package/dist/commands/update/process.js +114 -0
- package/dist/commands/update/process.js.map +1 -0
- package/dist/commands/update/source-worker.d.ts +2 -0
- package/dist/commands/update/source-worker.js +71 -0
- package/dist/commands/update/source-worker.js.map +1 -0
- package/dist/commands/update/source.d.ts +2 -0
- package/dist/commands/update/source.js +79 -0
- package/dist/commands/update/source.js.map +1 -0
- package/dist/commands/update/verification.d.ts +7 -0
- package/dist/commands/update/verification.js +73 -0
- package/dist/commands/update/verification.js.map +1 -0
- package/dist/commands/update/windows-stage.d.ts +21 -0
- package/dist/commands/update/windows-stage.js +186 -0
- package/dist/commands/update/windows-stage.js.map +1 -0
- package/dist/commands/update-install.d.ts +4 -13
- package/dist/commands/update-install.js +20 -152
- package/dist/commands/update-install.js.map +1 -1
- package/dist/commands/update.d.ts +4 -9
- package/dist/commands/update.js +51 -103
- package/dist/commands/update.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/llm/responses-error.d.ts +3 -0
- package/dist/llm/responses-error.js +37 -0
- package/dist/llm/responses-error.js.map +1 -0
- package/dist/llm/responses-http.js +5 -2
- package/dist/llm/responses-http.js.map +1 -1
- package/dist/llm/responses-replay.d.ts +2 -0
- package/dist/llm/responses-replay.js +37 -1
- package/dist/llm/responses-replay.js.map +1 -1
- package/dist/llm/responses-stream-events.js +3 -20
- package/dist/llm/responses-stream-events.js.map +1 -1
- package/dist/llm/responses-stream.js +2 -0
- package/dist/llm/responses-stream.js.map +1 -1
- package/dist/os/bun-runtime.js +2 -1
- package/dist/os/bun-runtime.js.map +1 -1
- package/dist/os/update-origin.d.ts +7 -0
- package/dist/os/update-origin.js +30 -0
- package/dist/os/update-origin.js.map +1 -0
- package/dist/prompts/embedded.js +2 -2
- package/dist/prompts/embedded.js.map +1 -1
- package/dist/prompts/index.js +2 -2
- package/dist/prompts/system.agent.md +1 -1
- package/dist/prompts/system.ask.md +1 -1
- package/dist/session-runtime/client.js +2 -1
- package/dist/session-runtime/client.js.map +1 -1
- package/dist/store/history/jsonl-lock.js +10 -7
- package/dist/store/history/jsonl-lock.js.map +1 -1
- package/dist/store/history/recovery.js +2 -1
- package/dist/store/history/recovery.js.map +1 -1
- package/dist/store/history.js +4 -2
- package/dist/store/history.js.map +1 -1
- package/dist/tools/definitions/fs-read.js +1 -1
- package/dist/tools/definitions/fs-read.js.map +1 -1
- package/dist/tools/fs/read-input.d.ts +1 -1
- package/dist/tools/fs/read-input.js +2 -2
- package/dist/tools/fs/read-input.js.map +1 -1
- package/dist/tui-v2/app/App.js +13 -5
- package/dist/tui-v2/app/App.js.map +1 -1
- package/dist/tui-v2/components/plan/plan-interaction.d.ts +11 -0
- package/dist/tui-v2/components/plan/plan-interaction.js +56 -0
- package/dist/tui-v2/components/plan/plan-interaction.js.map +1 -0
- package/dist/tui-v2/components/plan/plan-view.d.ts +7 -1
- package/dist/tui-v2/components/plan/plan-view.js +78 -175
- package/dist/tui-v2/components/plan/plan-view.js.map +1 -1
- package/dist/tui-v2/components/plan/task-title.d.ts +9 -0
- package/dist/tui-v2/components/plan/task-title.js +17 -0
- package/dist/tui-v2/components/plan/task-title.js.map +1 -0
- package/dist/tui-v2/components/plan/use-task-disclosure.d.ts +25 -0
- package/dist/tui-v2/components/plan/use-task-disclosure.js +125 -0
- package/dist/tui-v2/components/plan/use-task-disclosure.js.map +1 -0
- package/dist/tui-v2/composer/composer-editor.js +3 -0
- package/dist/tui-v2/composer/composer-editor.js.map +1 -1
- package/dist/ui-core/actions/action-id.d.ts +1 -1
- package/dist/ui-core/actions/action-id.js +7 -0
- package/dist/ui-core/actions/action-id.js.map +1 -1
- package/dist/ui-core/actions/format-shortcuts.js +7 -0
- package/dist/ui-core/actions/format-shortcuts.js.map +1 -1
- package/dist/ui-core/commands/config-commands.js +12 -6
- package/dist/ui-core/commands/config-commands.js.map +1 -1
- package/dist/ui-core/commands/prompt-commands.d.ts +1 -1
- package/dist/ui-core/commands/prompt-commands.js +12 -2
- package/dist/ui-core/commands/prompt-commands.js.map +1 -1
- package/dist/ui-core/controllers/toast-controller.js +4 -4
- package/dist/ui-core/controllers/toast-controller.js.map +1 -1
- package/dist/ui-core/rendering/plan-view.js +24 -12
- package/dist/ui-core/rendering/plan-view.js.map +1 -1
- package/dist/ui-core/rendering/task-disclosure.d.ts +19 -0
- package/dist/ui-core/rendering/task-disclosure.js +70 -0
- package/dist/ui-core/rendering/task-disclosure.js.map +1 -0
- package/dist/version.generated.d.ts +2 -2
- package/dist/version.generated.js +2 -2
- package/package.json +1 -1
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@opentui/react/jsx-runtime";
|
|
2
2
|
/** @jsxImportSource @opentui/react */
|
|
3
|
-
import { memo, useEffect, useRef } from "react";
|
|
3
|
+
import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
4
4
|
import { countRender } from "../../perf/render-counters.js";
|
|
5
5
|
import { TextAttributes } from "@opentui/core";
|
|
6
|
-
import { activeTaskId, cleanTaskTitle, planStatusChip, planStatusColor, progressBar, progressView, taskGlyph, taskRowColor, taskOwnerChip,
|
|
6
|
+
import { activeTaskId, cleanTaskTitle, planStatusChip, planStatusColor, progressBar, progressView, taskGlyph, taskRowColor, taskOwnerChip, wrapPlanText, } from "../../../ui-core/rendering/plan-view.js";
|
|
7
7
|
import { discardPlan, implementPlan } from "../../../ui-core/plan/plan-lifecycle.js";
|
|
8
|
+
import { hasTaskDetails, taskDetailText, wrapTaskDisclosureTitle, TASK_DISCLOSURE_BUTTON_WIDTH } from "../../../ui-core/rendering/task-disclosure.js";
|
|
9
|
+
import { revealTaskHeader, useTaskDisclosure } from "./use-task-disclosure.js";
|
|
10
|
+
import "./task-title.js";
|
|
8
11
|
function tokenFg(theme, token) {
|
|
9
12
|
return theme[token];
|
|
10
13
|
}
|
|
11
14
|
function Chip(props) {
|
|
12
15
|
const { label, fg, bg } = props;
|
|
13
|
-
return (_jsx("text", { content: ` ${label} `, style: {
|
|
16
|
+
return (_jsx("text", { selectable: false, content: ` ${label} `, style: {
|
|
14
17
|
fg,
|
|
15
18
|
bg,
|
|
16
19
|
height: 1,
|
|
@@ -19,12 +22,14 @@ function Chip(props) {
|
|
|
19
22
|
} }));
|
|
20
23
|
}
|
|
21
24
|
function ActionChip(props) {
|
|
22
|
-
const { label, fg, bg, onClick } = props;
|
|
23
|
-
return (_jsx("box", { onMouseDown: (event) => {
|
|
25
|
+
const { id, label, fg, bg, onClick } = props;
|
|
26
|
+
return (_jsx("box", { id: id, onMouseDown: (event) => {
|
|
27
|
+
if (event.button !== 0)
|
|
28
|
+
return;
|
|
24
29
|
event.preventDefault();
|
|
25
30
|
event.stopPropagation();
|
|
26
31
|
onClick();
|
|
27
|
-
}, style: { flexShrink: 0 }, children: _jsx("text", { content: ` ${label} `, style: {
|
|
32
|
+
}, style: { flexShrink: 0 }, children: _jsx("text", { selectable: false, content: ` ${label} `, style: {
|
|
28
33
|
fg,
|
|
29
34
|
bg,
|
|
30
35
|
height: 1,
|
|
@@ -33,189 +38,87 @@ function ActionChip(props) {
|
|
|
33
38
|
}
|
|
34
39
|
function PlanViewImpl(props) {
|
|
35
40
|
countRender("PlanView");
|
|
36
|
-
const { theme, plan, services, width: widthProp } = props;
|
|
41
|
+
const { theme, plan, services, width: widthProp, interactionRef } = props;
|
|
42
|
+
const focused = props.focused ?? services.focus.activeContext() === "plan";
|
|
37
43
|
const scrollRef = useRef(null);
|
|
38
44
|
const activeId = plan ? activeTaskId(plan) : undefined;
|
|
39
|
-
const innerW = Math.max(
|
|
40
|
-
const
|
|
45
|
+
const innerW = Math.max(1, (widthProp ?? 36) - 4);
|
|
46
|
+
const disclosure = useTaskDisclosure(plan, scrollRef, interactionRef, props.disclosureBinding);
|
|
47
|
+
const displayTasks = disclosure.tasks;
|
|
48
|
+
const revealedTaskId = focused ? disclosure.selectedId : activeId;
|
|
41
49
|
useEffect(() => {
|
|
42
|
-
if (
|
|
43
|
-
scrollRef.current
|
|
44
|
-
|
|
45
|
-
|
|
50
|
+
if (revealedTaskId)
|
|
51
|
+
revealTaskHeader(scrollRef.current, revealedTaskId);
|
|
52
|
+
}, [revealedTaskId]);
|
|
53
|
+
const toggleTask = useCallback((id) => {
|
|
54
|
+
if (services.overlay.isOpen())
|
|
55
|
+
return;
|
|
56
|
+
services.focus.focusRegion("plan");
|
|
57
|
+
disclosure.toggleTask(id);
|
|
58
|
+
}, [services.focus, services.overlay, disclosure.toggleTask]);
|
|
59
|
+
function setAllExpanded(expanded) {
|
|
60
|
+
if (services.overlay.isOpen())
|
|
61
|
+
return;
|
|
62
|
+
services.focus.focusRegion("plan");
|
|
63
|
+
disclosure.setAllExpanded(expanded);
|
|
64
|
+
}
|
|
46
65
|
function trapWheel(event) {
|
|
47
66
|
if (!event.scroll)
|
|
48
67
|
return;
|
|
49
68
|
event.stopPropagation();
|
|
69
|
+
disclosure.hideKeyboardFocus();
|
|
50
70
|
services.focus.focusRegion("plan");
|
|
51
71
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
width: "100%",
|
|
57
|
-
height: "100%",
|
|
58
|
-
justifyContent: "center",
|
|
59
|
-
alignItems: "center",
|
|
60
|
-
backgroundColor: theme.statusBackground,
|
|
61
|
-
}, onMouseScroll: trapWheel, onMouseDown: () => services.focus.focusRegion("plan"), children: _jsxs("box", { style: {
|
|
62
|
-
flexDirection: "column",
|
|
63
|
-
alignItems: "center",
|
|
64
|
-
flexShrink: 0,
|
|
65
|
-
paddingLeft: 1,
|
|
66
|
-
paddingRight: 1,
|
|
67
|
-
}, children: [_jsx("text", { content: "\u25C7", style: { fg: theme.magenta, height: 1, attributes: TextAttributes.BOLD } }), _jsx("text", { content: " ", style: { height: 1 } }), _jsx("text", { content: "No tasks yet", style: {
|
|
68
|
-
fg: theme.foreground,
|
|
69
|
-
height: 1,
|
|
70
|
-
attributes: TextAttributes.BOLD,
|
|
71
|
-
} }), _jsx("text", { content: " ", style: { height: 1 } }), _jsx("text", { content: "Plan a multi-step job,", style: { fg: theme.muted, height: 1 } }), _jsx("text", { content: "then /implement.", style: { fg: theme.muted, height: 1 } }), _jsx("text", { content: " ", style: { height: 1 } }), _jsx("text", { content: "Ctrl+H toggle \u00B7 Ctrl+P detail", style: { fg: theme.cyan, height: 1 } })] }) }));
|
|
72
|
-
}
|
|
72
|
+
return (_jsx("box", { id: "plan-pane", style: { flexDirection: "column", flexGrow: 1, width: "100%", height: "100%", backgroundColor: theme.statusBackground }, onMouseDown: (event) => event.preventDefault(), onMouseScroll: trapWheel, children: plan ? (_jsxs(_Fragment, { children: [_jsx(PlanHeader, { theme: theme, plan: plan, services: services, width: innerW, summary: disclosure.summary, onSetAllExpanded: setAllExpanded }), _jsxs("scrollbox", { id: "plan-tasks", ref: scrollRef, stickyScroll: false, viewportCulling: true, scrollY: true, scrollX: false, scrollbarOptions: { visible: false, showArrows: false }, onMouseScroll: trapWheel, style: { flexGrow: 1, flexShrink: 1, width: "100%", minHeight: 1, backgroundColor: theme.statusBackground, paddingLeft: 1, paddingRight: 1 }, children: [displayTasks.map((task, index) => (_jsx(TaskRow, { task: task, theme: theme, width: innerW, active: task.id === activeId, selected: focused && disclosure.keyboardFocusVisible && task.id === disclosure.selectedId, expanded: disclosure.expanded.has(task.id), index: index, onToggle: toggleTask }, task.id))), displayTasks.length === 0 ? _jsx("text", { selectable: false, content: "No tasks yet", style: { fg: theme.muted, height: 1 } }) : null] })] })) : (_jsxs("box", { style: { flexDirection: "column", flexGrow: 1, justifyContent: "center", alignItems: "center", paddingLeft: 1, paddingRight: 1 }, children: [_jsx("text", { selectable: false, content: "\u25C7", style: { fg: theme.magenta, height: 1, attributes: TextAttributes.BOLD } }), _jsx("text", { selectable: false, content: "No tasks yet", style: { fg: theme.foreground, height: 1, attributes: TextAttributes.BOLD, marginTop: 1 } }), _jsx("text", { selectable: false, content: "Plan a multi-step job,", style: { fg: theme.muted, height: 1, marginTop: 1 } }), _jsx("text", { selectable: false, content: "then /implement.", style: { fg: theme.muted, height: 1 } }), _jsx("text", { selectable: false, content: "Ctrl+H toggle \u00B7 Ctrl+P detail", style: { fg: theme.cyan, height: 1, marginTop: 1 } })] })) }));
|
|
73
|
+
}
|
|
74
|
+
function PlanHeader(props) {
|
|
75
|
+
const { theme, plan, services, width, summary, onSetAllExpanded } = props;
|
|
73
76
|
const progress = progressView(plan);
|
|
74
77
|
const statusFg = tokenFg(theme, planStatusColor(plan.status));
|
|
75
|
-
const statusBg = plan.status === "completed"
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
const bar = progressBar(progress.done, progress.total, barWidth);
|
|
85
|
-
const countLabel = progress.total === 0
|
|
86
|
-
? "0 tasks"
|
|
87
|
-
: `${progress.done}/${progress.total}`;
|
|
88
|
-
return (_jsxs("box", { style: {
|
|
89
|
-
flexDirection: "column",
|
|
90
|
-
flexGrow: 1,
|
|
91
|
-
width: "100%",
|
|
92
|
-
height: "100%",
|
|
93
|
-
backgroundColor: theme.statusBackground,
|
|
94
|
-
}, onMouseScroll: trapWheel, onMouseDown: () => services.focus.focusRegion("plan"), children: [_jsxs("box", { style: {
|
|
95
|
-
flexDirection: "column",
|
|
96
|
-
width: "100%",
|
|
97
|
-
flexShrink: 0,
|
|
98
|
-
paddingLeft: 1,
|
|
99
|
-
paddingRight: 1,
|
|
100
|
-
paddingTop: 1,
|
|
101
|
-
backgroundColor: theme.statusBackground,
|
|
102
|
-
}, children: [goalLines.map((line, i) => (_jsx("text", { content: line, style: {
|
|
103
|
-
fg: theme.foreground,
|
|
104
|
-
height: 1,
|
|
105
|
-
attributes: TextAttributes.BOLD,
|
|
106
|
-
} }, `g-${i}`))), _jsx("text", { content: " ", style: { height: 1 } }), _jsxs("box", { style: {
|
|
107
|
-
flexDirection: "row",
|
|
108
|
-
width: "100%",
|
|
109
|
-
height: 1,
|
|
110
|
-
alignItems: "center",
|
|
111
|
-
flexShrink: 0,
|
|
112
|
-
}, children: [_jsx(Chip, { label: planStatusChip(plan.status), fg: theme.white, bg: statusBg, theme: theme }), _jsx("text", { content: " ", style: { height: 1 } }), _jsx("text", { content: plan.kind || "general", style: { fg: theme.muted, height: 1 } })] }), _jsxs("box", { style: {
|
|
113
|
-
flexDirection: "row",
|
|
114
|
-
width: "100%",
|
|
115
|
-
height: 1,
|
|
116
|
-
marginTop: 1,
|
|
117
|
-
alignItems: "center",
|
|
118
|
-
flexShrink: 0,
|
|
119
|
-
}, children: [_jsx("text", { content: bar, style: {
|
|
120
|
-
fg: progress.done === progress.total && progress.total > 0
|
|
121
|
-
? theme.success
|
|
122
|
-
: theme.cyan,
|
|
123
|
-
height: 1,
|
|
124
|
-
flexShrink: 0,
|
|
125
|
-
} }), _jsx("text", { content: " ", style: { height: 1 } }), _jsx("text", { content: countLabel, style: {
|
|
126
|
-
fg: statusFg,
|
|
127
|
-
height: 1,
|
|
128
|
-
attributes: TextAttributes.BOLD,
|
|
129
|
-
} })] }), plan.status === "draft" ? (_jsxs("box", { style: {
|
|
130
|
-
flexDirection: "row",
|
|
131
|
-
width: "100%",
|
|
132
|
-
height: 1,
|
|
133
|
-
marginTop: 1,
|
|
134
|
-
flexShrink: 0,
|
|
135
|
-
alignItems: "center",
|
|
136
|
-
}, children: [_jsx(ActionChip, { label: "Implement", fg: theme.white, bg: theme.success, onClick: () => void implementPlan(services) }), _jsx("text", { content: " ", style: { height: 1 } }), _jsx(ActionChip, { label: "Discard", fg: theme.foreground, bg: theme.chip, onClick: () => void discardPlan(services) })] })) : null, _jsx("text", { content: "─".repeat(Math.max(8, innerW)), style: { fg: theme.border, height: 1, marginTop: 1 } })] }), _jsxs("scrollbox", { ref: scrollRef, stickyScroll: false, viewportCulling: true, scrollY: true, scrollX: false, scrollbarOptions: { visible: false, showArrows: false }, onMouseScroll: trapWheel, style: {
|
|
137
|
-
flexGrow: 1,
|
|
138
|
-
flexShrink: 1,
|
|
139
|
-
width: "100%",
|
|
140
|
-
minHeight: 4,
|
|
141
|
-
backgroundColor: theme.statusBackground,
|
|
142
|
-
paddingLeft: 1,
|
|
143
|
-
paddingRight: 1,
|
|
144
|
-
paddingTop: 0,
|
|
145
|
-
}, children: [displayTasks.map((task, index) => (_jsx(TaskRow, { task: task, theme: theme, width: innerW, active: task.id === activeId, index: index }, task.id))), _jsx("text", { content: " ", style: { height: 1 } })] })] }));
|
|
78
|
+
const statusBg = plan.status === "completed" ? theme.diffAddBg : plan.status === "draft" ? theme.chipTeal : theme.chip;
|
|
79
|
+
const countLabel = progress.total === 0 ? "0 tasks" : `${progress.done}/${progress.total}`;
|
|
80
|
+
const canExpand = summary.expanded < summary.total;
|
|
81
|
+
const canCollapse = summary.expanded > 0;
|
|
82
|
+
const controlsWidth = (canExpand ? 12 : 0) + (canCollapse ? 14 : 0) + (canExpand && canCollapse ? 1 : 0);
|
|
83
|
+
const inline = width >= controlsWidth + countLabel.length + 7;
|
|
84
|
+
const barWidth = Math.max(4, Math.min(14, width - countLabel.length - (inline ? controlsWidth + 3 : 1)));
|
|
85
|
+
const controls = summary.total > 0 ? (_jsxs("box", { style: { flexDirection: width >= controlsWidth ? "row" : "column", flexShrink: 0, gap: width >= controlsWidth ? 1 : 0 }, children: [canExpand ? _jsx(ActionChip, { id: "plan-expand-all", label: "Expand all", fg: theme.foreground, bg: theme.chip, onClick: () => onSetAllExpanded(true) }) : null, canCollapse ? _jsx(ActionChip, { id: "plan-collapse-all", label: "Collapse all", fg: theme.foreground, bg: theme.chip, onClick: () => onSetAllExpanded(false) }) : null] })) : null;
|
|
86
|
+
return (_jsxs("box", { id: "plan-header", style: { flexDirection: "column", width: "100%", flexShrink: 0, paddingLeft: 1, paddingRight: 1, paddingTop: 1 }, children: [wrapPlanText(plan.goal, width).map((line, index) => (_jsx("text", { selectable: false, content: line, style: { fg: theme.foreground, height: 1, attributes: TextAttributes.BOLD } }, `goal-${index}`))), _jsxs("box", { style: { flexDirection: "row", width: "100%", height: 1, marginTop: 1, flexShrink: 0, gap: 1 }, children: [_jsx(Chip, { label: planStatusChip(plan.status), fg: plan.status === "draft" ? theme.white : theme.foreground, bg: statusBg, theme: theme }), _jsx("text", { selectable: false, content: wrapPlanText(plan.kind || "general", Math.max(1, width - planStatusChip(plan.status).length - 3))[0] ?? "", style: { fg: theme.muted, height: 1, flexShrink: 1 } })] }), _jsxs("box", { id: "plan-progress", style: { flexDirection: "row", width: "100%", height: 1, marginTop: 1, alignItems: "center", flexShrink: 0, gap: 1 }, children: [_jsx("text", { selectable: false, content: progressBar(progress.done, progress.total, barWidth), style: { fg: progress.done === progress.total && progress.total > 0 ? theme.success : theme.cyan, height: 1, flexShrink: 0 } }), _jsx("text", { selectable: false, content: countLabel, style: { fg: statusFg, height: 1, flexShrink: 0, attributes: TextAttributes.BOLD } }), inline && controls ? _jsx("box", { style: { flexGrow: 1 } }) : null, inline ? controls : null] }), !inline && controls ? _jsx("box", { style: { flexShrink: 0, marginTop: 1 }, children: controls }) : null, plan.status === "draft" ? (_jsxs("box", { style: { flexDirection: width >= 21 ? "row" : "column", width: "100%", marginTop: 1, flexShrink: 0, gap: width >= 21 ? 1 : 0 }, children: [_jsx(ActionChip, { id: "plan-implement", label: "Implement", fg: theme.foreground, bg: theme.diffAddBg, onClick: () => void implementPlan(services) }), _jsx(ActionChip, { id: "plan-discard", label: "Discard", fg: theme.foreground, bg: theme.chip, onClick: () => void discardPlan(services) })] })) : null, _jsx("text", { selectable: false, content: "─".repeat(width), style: { fg: theme.border, height: 1, marginTop: 1, marginBottom: 1 } })] }));
|
|
146
87
|
}
|
|
147
|
-
function
|
|
148
|
-
const {
|
|
149
|
-
const
|
|
88
|
+
function TaskDisclosureButton(props) {
|
|
89
|
+
const { taskId, theme, bg, selected, expanded, onToggle } = props;
|
|
90
|
+
const [hovered, setHovered] = useState(false);
|
|
91
|
+
const highlighted = selected || hovered;
|
|
92
|
+
const id = `plan-task-${taskId}-disclosure`;
|
|
93
|
+
return (_jsx("box", { id: id, onMouseOver: () => setHovered(true), onMouseOut: () => setHovered(false), onMouseDown: (event) => {
|
|
94
|
+
if (event.button !== 0)
|
|
95
|
+
return;
|
|
96
|
+
event.preventDefault();
|
|
97
|
+
event.stopPropagation();
|
|
98
|
+
onToggle(taskId);
|
|
99
|
+
}, style: { width: TASK_DISCLOSURE_BUTTON_WIDTH, height: 1, flexShrink: 0, justifyContent: "center", alignItems: "center", backgroundColor: bg }, children: _jsx("text", { selectable: false, id: `${id}-label`, wrapMode: "none", content: expanded ? "−" : "+", style: { fg: highlighted ? theme.cyan : theme.foreground, bg, width: 1, height: 1, flexShrink: 0, attributes: TextAttributes.BOLD } }) }));
|
|
100
|
+
}
|
|
101
|
+
const TaskRow = memo(function TaskRow(props) {
|
|
102
|
+
const { task, theme, width, active, selected, expanded, index, onToggle } = props;
|
|
150
103
|
const stateColor = tokenFg(theme, taskRowColor(task));
|
|
151
|
-
const titleColor = state === "pending" || state === "skipped"
|
|
152
|
-
|
|
153
|
-
: stateColor;
|
|
154
|
-
const glyph = taskGlyph(task);
|
|
155
|
-
const bg = active || (state === "in_progress" && !task.responderOwned)
|
|
104
|
+
const titleColor = task.state === "pending" || task.state === "skipped" ? theme.foreground : stateColor;
|
|
105
|
+
const bg = active || (task.state === "in_progress" && !task.responderOwned)
|
|
156
106
|
? theme.rowA
|
|
157
|
-
: index % 2 === 0
|
|
158
|
-
? theme.rowB
|
|
159
|
-
: theme.statusBackground;
|
|
107
|
+
: index % 2 === 0 ? theme.rowB : theme.statusBackground;
|
|
160
108
|
const ownerChip = taskOwnerChip(task);
|
|
161
|
-
const title = `${task.parentTaskId ? "↳ " : ""}`
|
|
162
|
-
|
|
163
|
-
const
|
|
164
|
-
const
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
const
|
|
173
|
-
|
|
174
|
-
? TextAttributes.BOLD
|
|
175
|
-
: TextAttributes.NONE;
|
|
176
|
-
return (_jsxs("box", { id: `plan-task-${task.id}`, style: {
|
|
177
|
-
flexDirection: "column",
|
|
178
|
-
width: "100%",
|
|
179
|
-
flexShrink: 0,
|
|
180
|
-
}, children: [_jsxs("box", { style: {
|
|
181
|
-
flexDirection: "row",
|
|
182
|
-
width: "100%",
|
|
183
|
-
flexShrink: 0,
|
|
184
|
-
alignItems: "stretch",
|
|
185
|
-
backgroundColor: bg,
|
|
186
|
-
}, children: [_jsx("box", { style: {
|
|
187
|
-
width: 1,
|
|
188
|
-
flexShrink: 0,
|
|
189
|
-
alignSelf: "stretch",
|
|
190
|
-
backgroundColor: stateColor,
|
|
191
|
-
minHeight: 1,
|
|
192
|
-
} }), _jsxs("box", { style: {
|
|
193
|
-
flexDirection: "column",
|
|
194
|
-
flexGrow: 1,
|
|
195
|
-
flexShrink: 1,
|
|
196
|
-
minWidth: 0,
|
|
197
|
-
justifyContent: "center",
|
|
198
|
-
paddingLeft: 1,
|
|
199
|
-
paddingRight: 1,
|
|
200
|
-
paddingTop: 1,
|
|
201
|
-
paddingBottom: 1,
|
|
202
|
-
backgroundColor: bg,
|
|
203
|
-
}, children: [_jsx("text", { content: `${glyph} ${firstTitle}`, style: {
|
|
204
|
-
fg: titleColor,
|
|
205
|
-
bg,
|
|
206
|
-
height: 1,
|
|
207
|
-
attributes: titleAttributes,
|
|
208
|
-
} }), titleLines.slice(1).map((line, i) => (_jsx("text", { content: ` ${line}`, style: {
|
|
209
|
-
fg: titleColor,
|
|
210
|
-
bg,
|
|
211
|
-
height: 1,
|
|
212
|
-
attributes: titleAttributes,
|
|
213
|
-
} }, `t-${task.id}-${i}`))), noteLines.map((line, i) => (_jsx("text", { content: line, style: {
|
|
214
|
-
fg: theme.muted,
|
|
215
|
-
bg,
|
|
216
|
-
height: 1,
|
|
217
|
-
attributes: TextAttributes.DIM,
|
|
218
|
-
} }, `n-${task.id}-${i}`)))] })] }), _jsx("text", { content: " ", style: { bg: theme.statusBackground, height: 1, width: "100%" } })] }));
|
|
109
|
+
const title = `${task.parentTaskId ? "↳ " : ""}${ownerChip ? `[${ownerChip}] ` : ""}${cleanTaskTitle(task)}`;
|
|
110
|
+
const expandable = hasTaskDetails(task);
|
|
111
|
+
const titleLines = wrapTaskDisclosureTitle(title, width, expandable);
|
|
112
|
+
const titleAttributes = task.state === "in_progress" || active ? TextAttributes.BOLD : TextAttributes.NONE;
|
|
113
|
+
return (_jsxs("box", { id: `plan-task-${task.id}`, style: { flexDirection: "column", width: "100%", flexShrink: 0 }, children: [_jsxs("box", { style: { flexDirection: "row", width: "100%", flexShrink: 0, alignItems: "stretch", backgroundColor: bg }, children: [_jsx("box", { style: { width: 1, flexShrink: 0, alignSelf: "stretch", backgroundColor: stateColor, minHeight: 1 } }), _jsxs("box", { style: { flexDirection: "column", flexGrow: 1, flexShrink: 1, minWidth: 0, justifyContent: "center", paddingLeft: 1, paddingRight: 1, paddingTop: 1, paddingBottom: 1, backgroundColor: bg }, children: [_jsx("task-title", { id: `plan-task-${task.id}-header`, style: { flexDirection: "column", width: "100%", flexShrink: 0 }, children: titleLines.map((line, lineIndex) => {
|
|
114
|
+
const last = lineIndex === titleLines.length - 1;
|
|
115
|
+
return (_jsxs("box", { style: { flexDirection: "row", flexShrink: 0 }, children: [_jsx("text", { selectable: false, id: `plan-task-${task.id}-title-${last ? "end" : lineIndex}`, wrapMode: "none", content: `${lineIndex === 0 ? taskGlyph(task) : " "} ${line}`, style: { fg: titleColor, bg, height: 1, flexShrink: 0, attributes: titleAttributes } }), last && expandable ? (_jsxs(_Fragment, { children: [_jsx("text", { selectable: false, content: " ", style: { bg, height: 1, flexShrink: 0 } }), _jsx(TaskDisclosureButton, { taskId: task.id, theme: theme, bg: bg, selected: selected, expanded: expanded, onToggle: onToggle })] })) : null] }, `title-${lineIndex}`));
|
|
116
|
+
}) }), expanded && expandable ? _jsx(TaskDetails, { task: task, theme: theme, width: Math.max(1, width - 6), bg: bg }) : null] })] }), _jsx("text", { selectable: false, content: " ", style: { bg: theme.statusBackground, height: 1, width: "100%" } })] }));
|
|
117
|
+
});
|
|
118
|
+
function TaskDetails(props) {
|
|
119
|
+
const { task, theme, width, bg } = props;
|
|
120
|
+
const lines = useMemo(() => wrapPlanText(taskDetailText(task), width), [task, width]);
|
|
121
|
+
return (_jsx("box", { id: `plan-task-${task.id}-details`, style: { flexDirection: "column", flexShrink: 0, width: "100%" }, children: lines.map((line, index) => _jsx("text", { selectable: false, content: line, style: { fg: theme.muted, bg, height: 1, attributes: TextAttributes.DIM } }, `body-${index}`)) }));
|
|
219
122
|
}
|
|
220
123
|
export const PlanView = memo(PlanViewImpl);
|
|
221
124
|
//# sourceMappingURL=plan-view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-view.js","sourceRoot":"","sources":["../../../../src/tui-v2/components/plan/plan-view.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plan-view.js","sourceRoot":"","sources":["../../../../src/tui-v2/components/plan/plan-view.tsx"],"names":[],"mappings":";AAAA,sCAAsC;AAEtC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAA4B,MAAM,OAAO,CAAC;AAC1G,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAA6C,MAAM,eAAe,CAAC;AAI1F,OAAO,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,eAAe,EACf,WAAW,EACX,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,aAAa,EACb,YAAY,GAEb,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AACtJ,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAA8B,MAAM,0BAA0B,CAAC;AAE3G,OAAO,iBAAiB,CAAC;AAYzB,SAAS,OAAO,CAAC,KAAY,EAAE,KAAqB;IAClD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,IAAI,CAAC,KAKb;IACC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;IAChC,OAAO,CACL,eAAM,UAAU,EAAE,KAAK,EACrB,OAAO,EAAE,IAAI,KAAK,GAAG,EACrB,KAAK,EAAE;YACL,EAAE;YACF,EAAE;YACF,MAAM,EAAE,CAAC;YACT,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,cAAc,CAAC,IAAI;SAChC,GACD,CACH,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAMnB;IACC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC7C,OAAO,CACL,cACE,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,CAAC,KAAiB,EAAE,EAAE;YACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAC/B,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC;QACZ,CAAC,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,YAExB,eAAM,UAAU,EAAE,KAAK,EACrB,OAAO,EAAE,IAAI,KAAK,GAAG,EACrB,KAAK,EAAE;gBACL,EAAE;gBACF,EAAE;gBACF,MAAM,EAAE,CAAC;gBACT,UAAU,EAAE,cAAc,CAAC,IAAI;aAChC,GACD,GACE,CACP,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAoB;IACxC,WAAW,CAAC,UAAU,CAAC,CAAC;IACxB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAC1E,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,MAAM,CAAC;IAC3E,MAAM,SAAS,GAAG,MAAM,CAAsB,IAAI,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC/F,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC;IACtC,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;IAElE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,cAAc;YAAE,gBAAgB,CAAC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAC1E,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,EAAU,EAAQ,EAAE;QAClD,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE;YAAE,OAAO;QACtC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACnC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9D,SAAS,cAAc,CAAC,QAAiB;QACvC,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE;YAAE,OAAO;QACtC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACnC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IACD,SAAS,SAAS,CAAC,KAAiB;QAClC,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO;QAC1B,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,UAAU,CAAC,iBAAiB,EAAE,CAAC;QAC/B,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,CACL,cACE,EAAE,EAAC,WAAW,EACd,KAAK,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,gBAAgB,EAAE,EACvH,WAAW,EAAE,CAAC,KAAiB,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,EAC1D,aAAa,EAAE,SAAS,YAEvB,IAAI,CAAC,CAAC,CAAC,CACN,8BACE,KAAC,UAAU,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,gBAAgB,EAAE,cAAc,GAAI,EAC1I,qBACE,EAAE,EAAC,YAAY,EACf,GAAG,EAAE,SAAS,EACd,YAAY,EAAE,KAAK,EACnB,eAAe,QACf,OAAO,QACP,OAAO,EAAE,KAAK,EACd,gBAAgB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,EACvD,aAAa,EAAE,SAAS,EACxB,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,gBAAgB,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,aAE3I,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CACjC,KAAC,OAAO,IAEN,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,QAAQ,EAC5B,QAAQ,EAAE,OAAO,IAAI,UAAU,CAAC,oBAAoB,IAAI,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,UAAU,EACzF,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAC1C,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,UAAU,IARf,IAAI,CAAC,EAAE,CASZ,CACH,CAAC,EACD,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,eAAM,UAAU,EAAE,KAAK,EAAE,OAAO,EAAC,cAAc,EAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,GAAI,CAAC,CAAC,CAAC,IAAI,IACnH,IACX,CACJ,CAAC,CAAC,CAAC,CACF,eAAK,KAAK,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,aACnI,eAAM,UAAU,EAAE,KAAK,EAAE,OAAO,EAAC,QAAG,EAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,IAAI,EAAE,GAAI,EACjH,eAAM,UAAU,EAAE,KAAK,EAAE,OAAO,EAAC,cAAc,EAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,GAAI,EAC7I,eAAM,UAAU,EAAE,KAAK,EAAE,OAAO,EAAC,wBAAwB,EAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,GAAI,EACjH,eAAM,UAAU,EAAE,KAAK,EAAE,OAAO,EAAC,kBAAkB,EAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,GAAI,EAC7F,eAAM,UAAU,EAAE,KAAK,EAAE,OAAO,EAAC,oCAA+B,EAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,GAAI,IACnH,CACP,GACG,CACP,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAOnB;IACC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAC;IAC1E,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IACvH,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC3F,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;IACnD,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACzC,MAAM,aAAa,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzG,MAAM,MAAM,GAAG,KAAK,IAAI,aAAa,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzG,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CACnC,eAAK,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,aACzH,SAAS,CAAC,CAAC,CAAC,KAAC,UAAU,IAAC,EAAE,EAAC,iBAAiB,EAAC,KAAK,EAAC,YAAY,EAAC,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAI,CAAC,CAAC,CAAC,IAAI,EACtJ,WAAW,CAAC,CAAC,CAAC,KAAC,UAAU,IAAC,EAAE,EAAC,mBAAmB,EAAC,KAAK,EAAC,cAAc,EAAC,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAI,CAAC,CAAC,CAAC,IAAI,IAC1J,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;IAET,OAAO,CACL,eAAK,EAAE,EAAC,aAAa,EAAC,KAAK,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,aACnI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CACnD,eAAM,UAAU,EAAE,KAAK,EAAwB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,IAAI,EAAE,IAA3G,QAAQ,KAAK,EAAE,CAAgG,CAC9I,CAAC,EACF,eAAK,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,aACjG,KAAC,IAAI,IAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAI,EACtI,eAAM,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,GAAI,IAClM,EACN,eAAK,EAAE,EAAC,eAAe,EAAC,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,aAC1I,eAAM,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,GAAI,EACxN,eAAM,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,IAAI,EAAE,GAAI,EACnI,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,cAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAI,CAAC,CAAC,CAAC,IAAI,EAC3D,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IACrB,EACL,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,cAAK,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,YAAG,QAAQ,GAAO,CAAC,CAAC,CAAC,IAAI,EAC1F,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CACzB,eAAK,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,aACjI,KAAC,UAAU,IAAC,EAAE,EAAC,gBAAgB,EAAC,KAAK,EAAC,WAAW,EAAC,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,aAAa,CAAC,QAAQ,CAAC,GAAI,EAC5I,KAAC,UAAU,IAAC,EAAE,EAAC,cAAc,EAAC,KAAK,EAAC,SAAS,EAAC,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,WAAW,CAAC,QAAQ,CAAC,GAAI,IAC7H,CACP,CAAC,CAAC,CAAC,IAAI,EACR,eAAM,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,GAAI,IAC1H,CACP,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAO7B;IACC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAClE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,QAAQ,IAAI,OAAO,CAAC;IACxC,MAAM,EAAE,GAAG,aAAa,MAAM,aAAa,CAAC;IAC5C,OAAO,CACL,cACE,EAAE,EAAE,EAAE,EACN,WAAW,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EACnC,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EACnC,WAAW,EAAE,CAAC,KAAiB,EAAE,EAAE;YACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAC/B,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,EAAE,YAE7I,eAAM,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAC,MAAM,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,IAAI,EAAE,GAAI,GAC9N,CACP,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,OAAO,CAAC,KASrC;IACC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAClF,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;IACxG,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,aAAa,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;QACzE,CAAC,CAAC,KAAK,CAAC,IAAI;QACZ,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAC1D,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7G,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACrE,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,KAAK,aAAa,IAAI,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC;IAE3G,OAAO,CACL,eAAK,EAAE,EAAE,aAAa,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,aAC/F,eAAK,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,EAAE,aAC5G,cAAK,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,GAAI,EAC5G,eAAK,KAAK,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,aAC/L,qBACE,EAAE,EAAE,aAAa,IAAI,CAAC,EAAE,SAAS,EACjC,KAAK,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,YAE/D,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;oCAClC,MAAM,IAAI,GAAG,SAAS,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;oCACjD,OAAO,CACL,eAAgC,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,aAC5E,eAAM,UAAU,EAAE,KAAK,EACrB,EAAE,EAAE,aAAa,IAAI,CAAC,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,EAC5D,QAAQ,EAAC,MAAM,EACf,OAAO,EAAE,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,EAC7D,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,GACpF,EACD,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,CACpB,8BACE,eAAM,UAAU,EAAE,KAAK,EAAE,OAAO,EAAC,GAAG,EAAC,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,GAAI,EAChF,KAAC,oBAAoB,IAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAI,IAC1H,CACJ,CAAC,CAAC,CAAC,IAAI,KAZA,SAAS,SAAS,EAAE,CAaxB,CACP,CAAC;gCACJ,CAAC,CAAC,GACS,EACZ,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,KAAC,WAAW,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAAI,CAAC,CAAC,CAAC,IAAI,IAC7G,IACF,EACN,eAAM,UAAU,EAAE,KAAK,EAAE,OAAO,EAAC,GAAG,EAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAI,IACpG,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,SAAS,WAAW,CAAC,KAAkE;IACrF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACtF,OAAO,CACL,cAAK,EAAE,EAAE,aAAa,IAAI,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YACtG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,eAAM,UAAU,EAAE,KAAK,EAAwB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC,GAAG,EAAE,IAAzG,QAAQ,KAAK,EAAE,CAA8F,CAAC,GACpK,CACP,CAAC;AACJ,CAAC;AACD,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BoxRenderable } from "@opentui/core";
|
|
2
|
+
export declare class TaskTitleRenderable extends BoxRenderable {
|
|
3
|
+
protected _getVisibleChildren(): number[];
|
|
4
|
+
}
|
|
5
|
+
declare module "@opentui/react" {
|
|
6
|
+
interface OpenTUIComponents {
|
|
7
|
+
"task-title": typeof TaskTitleRenderable;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BoxRenderable, ScrollBoxRenderable } from "@opentui/core";
|
|
2
|
+
import { extend } from "@opentui/react";
|
|
3
|
+
export class TaskTitleRenderable extends BoxRenderable {
|
|
4
|
+
_getVisibleChildren() {
|
|
5
|
+
let ancestor = this.parent;
|
|
6
|
+
while (ancestor && !(ancestor instanceof ScrollBoxRenderable))
|
|
7
|
+
ancestor = ancestor.parent;
|
|
8
|
+
if (!ancestor)
|
|
9
|
+
return super._getVisibleChildren();
|
|
10
|
+
const viewport = ancestor.viewport;
|
|
11
|
+
const fits = this.height <= viewport.height;
|
|
12
|
+
const clipped = this.y < viewport.y || this.y + this.height > viewport.y + viewport.height;
|
|
13
|
+
return fits && clipped ? [] : super._getVisibleChildren();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
extend({ "task-title": TaskTitleRenderable });
|
|
17
|
+
//# sourceMappingURL=task-title.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-title.js","sourceRoot":"","sources":["../../../../src/tui-v2/components/plan/task-title.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAmB,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IACjC,mBAAmB;QACpC,IAAI,QAAQ,GAAsB,IAAI,CAAC,MAAM,CAAC;QAC9C,OAAO,QAAQ,IAAI,CAAC,CAAC,QAAQ,YAAY,mBAAmB,CAAC;YAAE,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC1F,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC3F,OAAO,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;IAC5D,CAAC;CACF;AAQD,MAAM,CAAC,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type Dispatch, type Ref, type RefObject, type SetStateAction } from "react";
|
|
2
|
+
import type { ScrollBoxRenderable } from "@opentui/core";
|
|
3
|
+
import type { PlanTask, SessionPlan } from "../../../store/plan.js";
|
|
4
|
+
import { type TaskDisclosureState } from "../../../ui-core/rendering/task-disclosure.js";
|
|
5
|
+
import type { PlanInteractionPort } from "./plan-interaction.js";
|
|
6
|
+
export interface TaskDisclosureBinding {
|
|
7
|
+
readonly state: TaskDisclosureState;
|
|
8
|
+
readonly tasks: readonly PlanTask[];
|
|
9
|
+
readonly setState: Dispatch<SetStateAction<TaskDisclosureState>>;
|
|
10
|
+
}
|
|
11
|
+
export declare function useTaskDisclosureBinding(plan: SessionPlan | undefined, inherited?: TaskDisclosureBinding): TaskDisclosureBinding;
|
|
12
|
+
export declare function revealTaskHeader(scroll: ScrollBoxRenderable | null, taskId: string): void;
|
|
13
|
+
export declare function useTaskDisclosure(plan: SessionPlan | undefined, scrollRef: RefObject<ScrollBoxRenderable | null>, interactionRef: Ref<PlanInteractionPort> | undefined, inherited?: TaskDisclosureBinding): {
|
|
14
|
+
tasks: readonly PlanTask[];
|
|
15
|
+
expanded: ReadonlySet<string>;
|
|
16
|
+
selectedId: string | undefined;
|
|
17
|
+
keyboardFocusVisible: boolean;
|
|
18
|
+
summary: {
|
|
19
|
+
readonly total: number;
|
|
20
|
+
readonly expanded: number;
|
|
21
|
+
};
|
|
22
|
+
toggleTask: (id: string) => void;
|
|
23
|
+
setAllExpanded: (expanded: boolean, keyboardFocusVisible?: boolean) => void;
|
|
24
|
+
hideKeyboardFocus: () => void;
|
|
25
|
+
};
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { useCallback, useEffect, useImperativeHandle, useMemo, useState } from "react";
|
|
2
|
+
import { moveTaskSelection, reconcileTaskDisclosure, setAllTaskDisclosure, setTaskDisclosure, taskDisclosureSummary, } from "../../../ui-core/rendering/task-disclosure.js";
|
|
3
|
+
import { orderPlanTasksForDisplay } from "../../../ui-core/rendering/plan-view.js";
|
|
4
|
+
export function useTaskDisclosureBinding(plan, inherited) {
|
|
5
|
+
const tasks = useMemo(() => inherited?.tasks ?? (plan ? orderPlanTasksForDisplay(plan.tasks) : []), [inherited?.tasks, plan?.tasks]);
|
|
6
|
+
const [stored, setStored] = useState(() => reconcileTaskDisclosure({ planKey: "", selectedId: undefined, expanded: new Set() }, plan, tasks));
|
|
7
|
+
const state = inherited?.state ?? reconcileTaskDisclosure(stored, plan, tasks);
|
|
8
|
+
if (!inherited && state !== stored)
|
|
9
|
+
setStored(state);
|
|
10
|
+
const setState = inherited?.setState ?? setStored;
|
|
11
|
+
return useMemo(() => ({ state, tasks, setState }), [state, tasks, setState]);
|
|
12
|
+
}
|
|
13
|
+
function taskHeaderBounds(scroll, taskId) {
|
|
14
|
+
const header = scroll.content.findDescendantById(`plan-task-${taskId}-header`);
|
|
15
|
+
if (!header)
|
|
16
|
+
return undefined;
|
|
17
|
+
let top = 0;
|
|
18
|
+
let current = header;
|
|
19
|
+
while (current && current !== scroll.content) {
|
|
20
|
+
top += current.getLayoutNode().getComputedTop();
|
|
21
|
+
current = current.parent;
|
|
22
|
+
}
|
|
23
|
+
return { top, height: header.getLayoutNode().getComputedHeight() };
|
|
24
|
+
}
|
|
25
|
+
export function revealTaskHeader(scroll, taskId) {
|
|
26
|
+
if (!scroll)
|
|
27
|
+
return;
|
|
28
|
+
const header = taskHeaderBounds(scroll, taskId);
|
|
29
|
+
if (!header)
|
|
30
|
+
return;
|
|
31
|
+
const bottom = header.top + Math.min(header.height, scroll.viewport.height);
|
|
32
|
+
if (header.top < scroll.scrollTop)
|
|
33
|
+
scroll.scrollTo(header.top);
|
|
34
|
+
else if (bottom > scroll.scrollTop + scroll.viewport.height)
|
|
35
|
+
scroll.scrollTo(bottom - scroll.viewport.height);
|
|
36
|
+
}
|
|
37
|
+
export function useTaskDisclosure(plan, scrollRef, interactionRef, inherited) {
|
|
38
|
+
const { state, tasks, setState } = useTaskDisclosureBinding(plan, inherited);
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
const scroll = scrollRef.current;
|
|
41
|
+
if (!scroll || state.expanded.size > 0)
|
|
42
|
+
return;
|
|
43
|
+
let previous = scroll.scrollTop;
|
|
44
|
+
let aligning = false;
|
|
45
|
+
const alignTitle = () => {
|
|
46
|
+
const position = scroll.scrollTop;
|
|
47
|
+
const down = position >= previous;
|
|
48
|
+
previous = position;
|
|
49
|
+
if (aligning || scroll.viewport.height <= 0)
|
|
50
|
+
return;
|
|
51
|
+
const headers = tasks.flatMap((task) => {
|
|
52
|
+
const header = taskHeaderBounds(scroll, task.id);
|
|
53
|
+
return header && header.height > 0 ? [header] : [];
|
|
54
|
+
});
|
|
55
|
+
const bottom = position + scroll.viewport.height;
|
|
56
|
+
if (headers.some((header) => header.height <= scroll.viewport.height
|
|
57
|
+
? header.top >= position && header.top + header.height <= bottom
|
|
58
|
+
: header.top < bottom && header.top + header.height > position))
|
|
59
|
+
return;
|
|
60
|
+
const target = down ? headers.find((header) => header.top >= position) ?? headers.at(-1)
|
|
61
|
+
: [...headers].reverse().find((header) => header.top < position) ?? headers[0];
|
|
62
|
+
if (!target)
|
|
63
|
+
return;
|
|
64
|
+
aligning = true;
|
|
65
|
+
scroll.scrollTo(target.top);
|
|
66
|
+
previous = scroll.scrollTop;
|
|
67
|
+
aligning = false;
|
|
68
|
+
};
|
|
69
|
+
scroll.verticalScrollBar.on("change", alignTitle);
|
|
70
|
+
scroll.viewport.on("resized", alignTitle);
|
|
71
|
+
scroll.content.on("resized", alignTitle);
|
|
72
|
+
alignTitle();
|
|
73
|
+
return () => {
|
|
74
|
+
scroll.verticalScrollBar.off("change", alignTitle);
|
|
75
|
+
scroll.viewport.off("resized", alignTitle);
|
|
76
|
+
scroll.content.off("resized", alignTitle);
|
|
77
|
+
};
|
|
78
|
+
}, [scrollRef, tasks, state.expanded.size]);
|
|
79
|
+
const update = useCallback((operation, keyboardFocusVisible) => {
|
|
80
|
+
setState((current) => {
|
|
81
|
+
const next = operation(reconcileTaskDisclosure(current, plan, tasks));
|
|
82
|
+
return next.keyboardFocusVisible === keyboardFocusVisible ? next : { ...next, keyboardFocusVisible };
|
|
83
|
+
});
|
|
84
|
+
}, [plan, tasks, setState]);
|
|
85
|
+
const toggleTask = useCallback((id) => {
|
|
86
|
+
const task = tasks.find((candidate) => candidate.id === id);
|
|
87
|
+
if (task)
|
|
88
|
+
update((current) => setTaskDisclosure(current, task), false);
|
|
89
|
+
}, [tasks, update]);
|
|
90
|
+
const setAllExpanded = useCallback((expanded, keyboardFocusVisible = false) => {
|
|
91
|
+
update((current) => setAllTaskDisclosure(current, tasks, expanded), keyboardFocusVisible);
|
|
92
|
+
}, [tasks, update]);
|
|
93
|
+
const hideKeyboardFocus = useCallback(() => update((current) => current, false), [update]);
|
|
94
|
+
useImperativeHandle(interactionRef, () => ({
|
|
95
|
+
moveSelection(delta) {
|
|
96
|
+
update((current) => moveTaskSelection(current, tasks, delta), true);
|
|
97
|
+
},
|
|
98
|
+
setSelectedExpanded(expanded) {
|
|
99
|
+
update((current) => {
|
|
100
|
+
const task = tasks.find((candidate) => candidate.id === current.selectedId);
|
|
101
|
+
return task ? setTaskDisclosure(current, task, expanded) : current;
|
|
102
|
+
}, true);
|
|
103
|
+
},
|
|
104
|
+
setAllExpanded(expanded) {
|
|
105
|
+
setAllExpanded(expanded, true);
|
|
106
|
+
},
|
|
107
|
+
page(delta) {
|
|
108
|
+
update((current) => current, true);
|
|
109
|
+
const scroll = scrollRef.current;
|
|
110
|
+
if (scroll)
|
|
111
|
+
scroll.scrollBy(delta * Math.max(1, scroll.viewport.height - 2));
|
|
112
|
+
},
|
|
113
|
+
}), [scrollRef, setAllExpanded, tasks, update]);
|
|
114
|
+
return {
|
|
115
|
+
tasks,
|
|
116
|
+
expanded: state.expanded,
|
|
117
|
+
selectedId: state.selectedId,
|
|
118
|
+
keyboardFocusVisible: state.keyboardFocusVisible === true,
|
|
119
|
+
summary: taskDisclosureSummary(tasks, state.expanded),
|
|
120
|
+
toggleTask,
|
|
121
|
+
setAllExpanded,
|
|
122
|
+
hideKeyboardFocus,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=use-task-disclosure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-task-disclosure.js","sourceRoot":"","sources":["../../../../src/tui-v2/components/plan/use-task-disclosure.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ import { formatAttachmentReference } from "../../ui/mentions.js";
|
|
|
10
10
|
import { getConfig, getProviderModel } from "../../store/config.js";
|
|
11
11
|
import { effectiveThinkingEffort } from "../../llm/capabilities.js";
|
|
12
12
|
import { chordFromKeyEvent } from "../input/chord-from-opentui-key.js";
|
|
13
|
+
import { resolvePlanInteraction } from "../components/plan/plan-interaction.js";
|
|
13
14
|
import { PromptHistory } from "../../ui-core/composer/prompt-history.js";
|
|
14
15
|
import { ARROW_BURST_WINDOW_MS, resolveArrowIntent, } from "../../ui-core/composer/arrow-intent.js";
|
|
15
16
|
import { isLargePaste, pastePlaceholderRanges, PasteRegistry, samePastePlaceholderEntries, } from "../../ui-core/composer/paste-placeholder.js";
|
|
@@ -133,6 +134,8 @@ export const ComposerEditor = memo(function ComposerEditor(props) {
|
|
|
133
134
|
return;
|
|
134
135
|
if (overlay.kind !== "none")
|
|
135
136
|
return;
|
|
137
|
+
if (services.focus.activeContext() === "plan" && resolvePlanInteraction(chord))
|
|
138
|
+
return;
|
|
136
139
|
if (menuKindRef.current !== "none" && !shouldOwnKeyboard) {
|
|
137
140
|
if (chord === "up" ||
|
|
138
141
|
chord === "down" ||
|