@aui.io/apollo 0.1.12 → 0.1.13
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/node_modules/@aui.io/apollo-cli/package.json +3 -3
- package/node_modules/@aui.io/apollo-core/package.json +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/actions/ActionPalette.d.ts +3 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/actions/ActionPalette.js +6 -2
- package/node_modules/@aui.io/apollo-tui/dist/src/actions/ActionPalette.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/activity/ActivityDrawer.d.ts +3 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/activity/ActivityDrawer.js +6 -2
- package/node_modules/@aui.io/apollo-tui/dist/src/activity/ActivityDrawer.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/author/AuthorHome.d.ts +12 -4
- package/node_modules/@aui.io/apollo-tui/dist/src/author/AuthorHome.js +64 -7
- package/node_modules/@aui.io/apollo-tui/dist/src/author/AuthorHome.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/author/DiffView.d.ts +7 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/author/DiffView.js +33 -7
- package/node_modules/@aui.io/apollo-tui/dist/src/author/DiffView.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/author/SessionPane.d.ts +9 -2
- package/node_modules/@aui.io/apollo-tui/dist/src/author/SessionPane.js +22 -4
- package/node_modules/@aui.io/apollo-tui/dist/src/author/SessionPane.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/author/data.d.ts +9 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/author/data.js +29 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/author/data.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/author/session.d.ts +10 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/author/session.js +13 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/author/session.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/context/ContextSwitcher.d.ts +3 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/context/ContextSwitcher.js +6 -2
- package/node_modules/@aui.io/apollo-tui/dist/src/context/ContextSwitcher.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/index.d.ts +3 -4
- package/node_modules/@aui.io/apollo-tui/dist/src/index.js +3 -4
- package/node_modules/@aui.io/apollo-tui/dist/src/index.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/actions.d.ts +3 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/actions.js +3 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/actions.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/jsonview.d.ts +31 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/jsonview.js +114 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/jsonview.js.map +1 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/opentui-app.js +193 -88
- package/node_modules/@aui.io/apollo-tui/dist/src/opentui-app.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/shell/Breadcrumb.d.ts +5 -2
- package/node_modules/@aui.io/apollo-tui/dist/src/shell/Breadcrumb.js +10 -4
- package/node_modules/@aui.io/apollo-tui/dist/src/shell/Breadcrumb.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/shell/ModeNav.d.ts +2 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/shell/ModeNav.js +29 -3
- package/node_modules/@aui.io/apollo-tui/dist/src/shell/ModeNav.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/talk/Composer.d.ts +3 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/talk/Composer.js +2 -2
- package/node_modules/@aui.io/apollo-tui/dist/src/talk/Composer.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/talk/InspectorPane.d.ts +8 -3
- package/node_modules/@aui.io/apollo-tui/dist/src/talk/InspectorPane.js +7 -5
- package/node_modules/@aui.io/apollo-tui/dist/src/talk/InspectorPane.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/talk/TalkView.d.ts +15 -2
- package/node_modules/@aui.io/apollo-tui/dist/src/talk/TalkView.js +21 -5
- package/node_modules/@aui.io/apollo-tui/dist/src/talk/TalkView.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/talk/ThreadsPane.d.ts +5 -2
- package/node_modules/@aui.io/apollo-tui/dist/src/talk/ThreadsPane.js +8 -3
- package/node_modules/@aui.io/apollo-tui/dist/src/talk/ThreadsPane.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/talk/data.d.ts +14 -3
- package/node_modules/@aui.io/apollo-tui/dist/src/talk/data.js +12 -2
- package/node_modules/@aui.io/apollo-tui/dist/src/talk/data.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/theme/syntax.d.ts +20 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/theme/syntax.js +54 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/theme/syntax.js.map +1 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/theme/tokens.d.ts +6 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/theme/tokens.js +6 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/theme/tokens.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/ui/JsonPane.d.ts +12 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/ui/JsonPane.js +22 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/ui/JsonPane.js.map +1 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/ui/PickerPane.d.ts +3 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/ui/PickerPane.js +6 -2
- package/node_modules/@aui.io/apollo-tui/dist/src/ui/PickerPane.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/LICENSE +21 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/README.md +269 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/debug/tree-sitter.cjs +4558 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/debug/tree-sitter.cjs.map +7 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/debug/tree-sitter.js +4516 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/debug/tree-sitter.js.map +7 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/debug/tree-sitter.wasm +0 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/debug/tree-sitter.wasm.map +31 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/alloc.c +48 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/alloc.h +41 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/array.h +291 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/atomic.h +68 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/clock.h +146 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/error_costs.h +11 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/get_changed_ranges.c +523 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/get_changed_ranges.h +36 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/host.h +21 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/language.c +293 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/language.h +293 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/length.h +52 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/lexer.c +483 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/lexer.h +54 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/lib.c +12 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/node.c +875 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/parser.c +2297 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/parser.h +286 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/point.h +48 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/query.c +4347 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/reduce_action.h +34 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/reusable_node.h +95 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/stack.c +912 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/stack.h +133 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/subtree.c +1034 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/subtree.h +399 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/tree-sitter.c +987 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/tree-sitter.cjs +2988 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/tree-sitter.wasm +0 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/tree-sitter.wasm.map +1 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/tree.c +170 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/tree.h +31 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/tree_cursor.c +716 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/tree_cursor.h +48 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/ts_assert.h +11 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/unicode.h +75 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/wasm_store.c +1937 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/lib/wasm_store.h +31 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/package.json +98 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/src/bindings.ts +26 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/src/constants.ts +133 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/src/index.ts +31 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/src/language.ts +291 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/src/lookahead_iterator.ts +75 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/src/marshal.ts +176 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/src/node.ts +646 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/src/parser.ts +325 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/src/query.ts +973 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/src/tree.ts +145 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/src/tree_cursor.ts +318 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/tree-sitter.cjs +4031 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/tree-sitter.cjs.map +7 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/tree-sitter.js +3980 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/tree-sitter.js.map +7 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/tree-sitter.wasm +0 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/tree-sitter.wasm.map +30 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/web-tree-sitter.d.ts +1030 -0
- package/node_modules/@aui.io/apollo-tui/node_modules/web-tree-sitter/web-tree-sitter.d.ts.map +56 -0
- package/node_modules/@aui.io/apollo-tui/package.json +5 -3
- package/package.json +7 -5
- package/node_modules/@aui.io/apollo-tui/dist/src/components/glyph.d.ts +0 -19
- package/node_modules/@aui.io/apollo-tui/dist/src/components/glyph.js +0 -41
- package/node_modules/@aui.io/apollo-tui/dist/src/components/glyph.js.map +0 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/attractor.d.ts +0 -82
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/attractor.js +0 -231
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/attractor.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aui.io/apollo-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.13",
|
|
4
4
|
"description": "Command-line client for the Apollo runtime",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -28,12 +28,12 @@
|
|
|
28
28
|
"test": "vitest run"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@aui.io/apollo-core": "0.1.
|
|
31
|
+
"@aui.io/apollo-core": "0.1.13",
|
|
32
32
|
"commander": "^14.0.3",
|
|
33
33
|
"picocolors": "^1.1.1"
|
|
34
34
|
},
|
|
35
35
|
"optionalDependencies": {
|
|
36
|
-
"@aui.io/apollo-tui": "0.1.
|
|
36
|
+
"@aui.io/apollo-tui": "0.1.13"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@eslint/js": "^9.39.5",
|
|
@@ -4,10 +4,12 @@ import type { ApolloAction } from "./registry.js";
|
|
|
4
4
|
* Ctrl+K action palette (TUI_DESIGN §11): fuzzy-searched, grouped, with
|
|
5
5
|
* disabled actions visible and explained, and CLI equivalents shown.
|
|
6
6
|
*/
|
|
7
|
-
export declare function ActionPalettePane({ actions, cursor, query, context, pageSize, }: {
|
|
7
|
+
export declare function ActionPalettePane({ actions, cursor, query, context, pageSize, onPick, }: {
|
|
8
8
|
actions: ApolloAction[];
|
|
9
9
|
cursor: number;
|
|
10
10
|
query: string;
|
|
11
11
|
context: Context;
|
|
12
12
|
pageSize: number;
|
|
13
|
+
/** Mouse: click a row to run that action (index into `actions`). */
|
|
14
|
+
onPick?: ((index: number) => void) | undefined;
|
|
13
15
|
}): import("react").ReactNode;
|
|
@@ -6,7 +6,7 @@ import { AMBER, FAINT, FG, TEAL, TEAL_DIM } from "../theme/tokens.js";
|
|
|
6
6
|
* Ctrl+K action palette (TUI_DESIGN §11): fuzzy-searched, grouped, with
|
|
7
7
|
* disabled actions visible and explained, and CLI equivalents shown.
|
|
8
8
|
*/
|
|
9
|
-
export function ActionPalettePane({ actions, cursor, query, context, pageSize, }) {
|
|
9
|
+
export function ActionPalettePane({ actions, cursor, query, context, pageSize, onPick, }) {
|
|
10
10
|
const windowStart = actions.length <= pageSize
|
|
11
11
|
? 0
|
|
12
12
|
: Math.max(0, Math.min(cursor - Math.floor(pageSize / 3), actions.length - pageSize));
|
|
@@ -40,7 +40,11 @@ export function ActionPalettePane({ actions, cursor, query, context, pageSize, }
|
|
|
40
40
|
const active = index === cursor;
|
|
41
41
|
const reason = action.disabledReason?.(context);
|
|
42
42
|
const title = truncatePickerText(action.title, titleWidth).padEnd(titleWidth);
|
|
43
|
-
return (_jsxs("text", { fg: reason ? FAINT : active ? TEAL : FG,
|
|
43
|
+
return (_jsxs("text", { fg: reason ? FAINT : active ? TEAL : FG, onMouseDown: onPick
|
|
44
|
+
? () => {
|
|
45
|
+
onPick(index);
|
|
46
|
+
}
|
|
47
|
+
: undefined, children: [active ? `${G.pointer} ` : " ", title, reason ? (_jsx("span", { fg: AMBER, children: ` ${reason}` })) : action.cliEquivalent ? (_jsx("span", { fg: FAINT, children: ` ${action.cliEquivalent}` })) : null] }, action.id));
|
|
44
48
|
})), _jsx("text", { fg: FAINT, children: actions.length > visible.length
|
|
45
49
|
? ` ${cursor + 1}/${actions.length} · ↑↓ move · Enter run · Esc close`
|
|
46
50
|
: ` ↑↓ move · Enter run · Esc close` })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionPalette.js","sourceRoot":"","sources":["../../../src/actions/ActionPalette.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEtE;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAChC,OAAO,EACP,MAAM,EACN,KAAK,EACL,OAAO,EACP,QAAQ,
|
|
1
|
+
{"version":3,"file":"ActionPalette.js","sourceRoot":"","sources":["../../../src/actions/ActionPalette.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { type OperationRecord } from "./operationStore.js";
|
|
2
|
-
export declare function ActivityDrawerPane({ operations, cursor, pageSize, now, }: {
|
|
2
|
+
export declare function ActivityDrawerPane({ operations, cursor, pageSize, now, onPick, }: {
|
|
3
3
|
/** Already ordered: running first, newest first. */
|
|
4
4
|
operations: OperationRecord[];
|
|
5
5
|
cursor: number;
|
|
6
6
|
pageSize: number;
|
|
7
7
|
now: number;
|
|
8
|
+
/** Mouse: click selects a row; clicking the selected failed row retries. */
|
|
9
|
+
onPick?: ((index: number) => void) | undefined;
|
|
8
10
|
}): import("react").ReactNode;
|
|
@@ -15,7 +15,7 @@ const STATUS_COLOR = {
|
|
|
15
15
|
failed: RED,
|
|
16
16
|
};
|
|
17
17
|
const OUTPUT_PREVIEW_LINES = 4;
|
|
18
|
-
export function ActivityDrawerPane({ operations, cursor, pageSize, now, }) {
|
|
18
|
+
export function ActivityDrawerPane({ operations, cursor, pageSize, now, onPick, }) {
|
|
19
19
|
const start = operations.length <= pageSize
|
|
20
20
|
? 0
|
|
21
21
|
: Math.max(0, Math.min(cursor - Math.floor(pageSize / 3), operations.length - pageSize));
|
|
@@ -36,7 +36,11 @@ export function ActivityDrawerPane({ operations, cursor, pageSize, now, }) {
|
|
|
36
36
|
const time = op.status === "running"
|
|
37
37
|
? formatElapsed(now - op.startedAt)
|
|
38
38
|
: relativeTime(op.endedAt ?? op.startedAt);
|
|
39
|
-
return (_jsxs("text", { fg: active ? FG : DIM,
|
|
39
|
+
return (_jsxs("text", { fg: active ? FG : DIM, onMouseDown: onPick
|
|
40
|
+
? () => {
|
|
41
|
+
onPick(index);
|
|
42
|
+
}
|
|
43
|
+
: undefined, children: [active ? `${G.pointerBold} ` : " ", _jsx("span", { fg: STATUS_COLOR[op.status], children: OPERATION_GLYPH[op.status] }), " ", op.title.padEnd(28), _jsxs("span", { fg: active ? DIM : FAINT, children: [op.status === "running" ? "running" : op.status, " \u00B7 ", time] })] }, op.id));
|
|
40
44
|
}), start + window.length < operations.length ? (_jsxs("text", { fg: FAINT, children: ["\u2026 ", operations.length - start - window.length, " below"] })) : null, highlighted ? (_jsxs("box", { style: { flexDirection: "column", marginTop: 1 }, children: [highlighted.detail ? (_jsx("text", { fg: STATUS_COLOR[highlighted.status], children: highlighted.detail })) : null, highlighted.output.slice(-OUTPUT_PREVIEW_LINES).map((line, i) => (_jsx("text", { fg: FAINT, children: line || " " }, i))), _jsxs("text", { fg: FAINT, children: [highlighted.status === "failed" && highlighted.retry
|
|
41
45
|
? "r/Enter retry · "
|
|
42
46
|
: "", "c copy output \u00B7 Esc close"] })] })) : null] })) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActivityDrawer.js","sourceRoot":"","sources":["../../../src/activity/ActivityDrawer.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EACL,eAAe,EACf,aAAa,GAEd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EACL,KAAK,EACL,GAAG,EACH,KAAK,EACL,EAAE,EACF,GAAG,EACH,IAAI,EACJ,QAAQ,GAET,MAAM,oBAAoB,CAAC;AAE5B,MAAM,YAAY,GAA6C;IAC7D,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,GAAG;CACZ,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAE/B,MAAM,UAAU,kBAAkB,CAAC,EACjC,UAAU,EACV,MAAM,EACN,QAAQ,EACR,GAAG,
|
|
1
|
+
{"version":3,"file":"ActivityDrawer.js","sourceRoot":"","sources":["../../../src/activity/ActivityDrawer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
import type { RefObject } from "react";
|
|
2
|
-
import type { ScrollBoxRenderable } from "@opentui/core";
|
|
2
|
+
import type { Renderable, ScrollBoxRenderable } from "@opentui/core";
|
|
3
3
|
import { type ScopeStrip } from "../lib/scope.js";
|
|
4
4
|
import type { BackendDetection } from "./backend/types.js";
|
|
5
5
|
import type { AuthorSnapshot, ValidationRecord } from "./data.js";
|
|
6
6
|
import type { SessionRow, SessionState } from "./session.js";
|
|
7
|
+
/** Welcome checklist steps — each maps to the slash command a click runs. */
|
|
8
|
+
export type WelcomeStep = "login" | "workspace" | "project" | "agent";
|
|
7
9
|
/**
|
|
8
10
|
* Author mode home — program cockpit beside the IDE (TUI_DESIGN §8).
|
|
9
11
|
* Local card (baseline, changes, validation health) vs remote target card,
|
|
10
12
|
* plus a changes preview. d/v open the full diff / validation subviews.
|
|
13
|
+
* Without a login or an agent it renders the welcome page instead: a setup
|
|
14
|
+
* checklist (sign in → workspace → project → agent) whose steps are
|
|
15
|
+
* clickable.
|
|
11
16
|
*/
|
|
12
|
-
export declare function AuthorHome({ scope, snapshot, validation,
|
|
17
|
+
export declare function AuthorHome({ scope, snapshot, validation, version, paneTitle, paneLines, session, sessionRows, sessionCursor, sessionScrollRef, sessionUnitRefs, backendLabel, backendDetection, onSelectUnit, onWelcomeStep, }: {
|
|
13
18
|
scope: ScopeStrip;
|
|
14
19
|
snapshot?: AuthorSnapshot | undefined;
|
|
15
20
|
validation?: ValidationRecord | undefined;
|
|
16
|
-
frame: string[];
|
|
17
|
-
working: boolean;
|
|
18
21
|
version: string;
|
|
19
22
|
paneTitle?: string | undefined;
|
|
20
23
|
paneLines: string[];
|
|
@@ -22,6 +25,11 @@ export declare function AuthorHome({ scope, snapshot, validation, frame, working
|
|
|
22
25
|
sessionRows: SessionRow[];
|
|
23
26
|
sessionCursor: number;
|
|
24
27
|
sessionScrollRef: RefObject<ScrollBoxRenderable | null>;
|
|
28
|
+
sessionUnitRefs?: RefObject<Map<number, Renderable | null>> | undefined;
|
|
25
29
|
backendLabel: string;
|
|
26
30
|
backendDetection?: BackendDetection | undefined;
|
|
31
|
+
/** Mouse: click a session row to select its unit (click again to expand). */
|
|
32
|
+
onSelectUnit?: ((unit: number) => void) | undefined;
|
|
33
|
+
/** Mouse: click a welcome checklist step to run it. */
|
|
34
|
+
onWelcomeStep?: ((step: WelcomeStep) => void) | undefined;
|
|
27
35
|
}): import("react").ReactNode;
|
|
@@ -1,11 +1,14 @@
|
|
|
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
|
import { homeishPath } from "../lib/scope.js";
|
|
3
3
|
import { changeEntries, changesSummary, relativeTime } from "./data.js";
|
|
4
4
|
import { OutputPane } from "../ui/OutputPane.js";
|
|
5
5
|
import { SessionPane } from "./SessionPane.js";
|
|
6
|
-
import { G } from "../theme/glyphs.js";
|
|
7
|
-
import { AMBER, DIM, FAINT, FG, RED, TEAL, TEAL_DIM, } from "../theme/tokens.js";
|
|
6
|
+
import { G, unicodeSupported } from "../theme/glyphs.js";
|
|
7
|
+
import { AMBER, DIM, FAINT, FG, RED, RICH, TEAL, TEAL_DIM, } from "../theme/tokens.js";
|
|
8
8
|
const PREVIEW_LIMIT = 6;
|
|
9
|
+
/** The "tiny" figlet face draws with half-block glyphs and a color — only
|
|
10
|
+
* meaningful on unicode terminals with colors enabled. */
|
|
11
|
+
const WORDMARK = unicodeSupported() && RICH;
|
|
9
12
|
const STATUS_COLOR = {
|
|
10
13
|
A: TEAL,
|
|
11
14
|
M: AMBER,
|
|
@@ -15,11 +18,46 @@ const STATUS_COLOR = {
|
|
|
15
18
|
* Author mode home — program cockpit beside the IDE (TUI_DESIGN §8).
|
|
16
19
|
* Local card (baseline, changes, validation health) vs remote target card,
|
|
17
20
|
* plus a changes preview. d/v open the full diff / validation subviews.
|
|
21
|
+
* Without a login or an agent it renders the welcome page instead: a setup
|
|
22
|
+
* checklist (sign in → workspace → project → agent) whose steps are
|
|
23
|
+
* clickable.
|
|
18
24
|
*/
|
|
19
|
-
export function AuthorHome({ scope, snapshot, validation,
|
|
25
|
+
export function AuthorHome({ scope, snapshot, validation, version, paneTitle, paneLines, session, sessionRows, sessionCursor, sessionScrollRef, sessionUnitRefs, backendLabel, backendDetection, onSelectUnit, onWelcomeStep, }) {
|
|
20
26
|
const hasAgent = scope.agent !== "—";
|
|
21
|
-
//
|
|
27
|
+
// Welcome page: the wordmark plus a setup checklist (setup screens are
|
|
28
|
+
// not day-to-day, so they can afford the room).
|
|
22
29
|
if (!scope.loggedIn || !hasAgent) {
|
|
30
|
+
const steps = [
|
|
31
|
+
{
|
|
32
|
+
id: "login",
|
|
33
|
+
label: "sign in",
|
|
34
|
+
done: scope.loggedIn,
|
|
35
|
+
detail: `${scope.profile}@${scope.env}`,
|
|
36
|
+
hint: "browser flow",
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: "workspace",
|
|
40
|
+
label: "workspace",
|
|
41
|
+
done: scope.workspace !== "—",
|
|
42
|
+
detail: scope.workspace,
|
|
43
|
+
hint: "pick or create the folder agent checkouts live in",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
id: "project",
|
|
47
|
+
label: "project",
|
|
48
|
+
done: scope.project !== "—",
|
|
49
|
+
detail: scope.project,
|
|
50
|
+
hint: "scopes which agents you see",
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
id: "agent",
|
|
54
|
+
label: "agent",
|
|
55
|
+
done: hasAgent,
|
|
56
|
+
detail: scope.agent,
|
|
57
|
+
hint: "pick a checkout — or ^K “import” / “create”",
|
|
58
|
+
},
|
|
59
|
+
];
|
|
60
|
+
const next = steps.find((s) => !s.done)?.id;
|
|
23
61
|
return (_jsxs("box", { style: {
|
|
24
62
|
flexDirection: "column",
|
|
25
63
|
alignItems: "center",
|
|
@@ -36,7 +74,26 @@ export function AuthorHome({ scope, snapshot, validation, frame, working, versio
|
|
|
36
74
|
width: 44,
|
|
37
75
|
paddingTop: 1,
|
|
38
76
|
paddingBottom: 1,
|
|
39
|
-
}, children: [
|
|
77
|
+
}, children: [WORDMARK ? (_jsxs(_Fragment, { children: [_jsx("ascii-font", { text: "apollo", font: "tiny", color: TEAL, style: { flexShrink: 0 } }), _jsxs("text", { fg: DIM, children: ["v", version] })] })) : (_jsxs("text", { fg: FG, children: [_jsx("b", { children: "apollo" }), " ", _jsxs("span", { fg: DIM, children: ["v", version] })] })), _jsx("text", { fg: DIM, children: "Author \u00B7 program workbench" })] }), _jsx("text", { children: " " }), _jsxs("box", { title: " get set up ", style: {
|
|
78
|
+
border: true,
|
|
79
|
+
borderStyle: "rounded",
|
|
80
|
+
borderColor: TEAL_DIM,
|
|
81
|
+
flexDirection: "column",
|
|
82
|
+
flexShrink: 0,
|
|
83
|
+
width: "100%",
|
|
84
|
+
maxWidth: 72,
|
|
85
|
+
paddingLeft: 1,
|
|
86
|
+
paddingRight: 1,
|
|
87
|
+
}, children: [steps.map((step) => {
|
|
88
|
+
const isNext = step.id === next;
|
|
89
|
+
const marker = step.done ? G.ok : isNext ? G.pointer : "·";
|
|
90
|
+
const markerColor = step.done ? TEAL : isNext ? AMBER : FAINT;
|
|
91
|
+
return (_jsxs("text", { onMouseDown: onWelcomeStep && !step.done
|
|
92
|
+
? () => {
|
|
93
|
+
onWelcomeStep(step.id);
|
|
94
|
+
}
|
|
95
|
+
: undefined, children: [_jsxs("span", { fg: markerColor, children: [marker, " "] }), _jsx("span", { fg: step.done ? DIM : isNext ? FG : DIM, children: step.label.padEnd(11) }), _jsx("span", { fg: step.done ? FAINT : isNext ? AMBER : FAINT, children: step.done ? step.detail : step.hint })] }, step.id));
|
|
96
|
+
}), _jsx("text", { children: " " }), _jsx("text", { fg: FAINT, wrapMode: "word", children: "click a step to run it \u00B7 ^G context \u00B7 ^K all actions \u00B7 Tab Author/Talk" })] }), _jsx(OutputPane, { paneTitle: paneTitle, paneLines: paneLines })] }));
|
|
40
97
|
}
|
|
41
98
|
const entries = changeEntries(snapshot?.diff);
|
|
42
99
|
const preview = entries.slice(0, PREVIEW_LIMIT);
|
|
@@ -60,7 +117,7 @@ export function AuthorHome({ scope, snapshot, validation, frame, working, versio
|
|
|
60
117
|
paddingRight: 1,
|
|
61
118
|
}, children: [_jsxs("text", { fg: DIM, children: ["project ", _jsx("span", { fg: FG, children: scope.project })] }), scope.org !== "—" && scope.org !== scope.orgId?.slice(0, 12) ? (_jsxs("text", { fg: DIM, children: ["org ", scope.org] })) : null, _jsxs("text", { fg: FAINT, children: ["push \u2192 ", scope.env, scope.version !== "—"
|
|
62
119
|
? ` · draft revision from ${scope.version}`
|
|
63
|
-
: " · creates the first draft"] })] })] }), preview.length > 0 ? (_jsxs("box", { style: { flexDirection: "column", flexShrink: 0, paddingLeft: 1 }, children: [preview.map((entry) => (_jsxs("text", { fg: DIM, children: [" ", _jsx("span", { fg: STATUS_COLOR[entry.status], children: entry.status }), " ", entry.path] }, entry.path))), entries.length > preview.length ? (_jsxs("text", { fg: FAINT, children: [" ", "\u2026 ", entries.length - preview.length, " more \u2014 d for the full diff"] })) : null] })) : null, _jsxs("text", { fg: FG, style: { flexShrink: 0 }, children: [" ", _jsx("span", { fg: TEAL, children: "[v]" }), " validate ", _jsx("span", { fg: TEAL, children: "[d]" }), " diff", " ", _jsx("span", { fg: TEAL, children: "[p]" }), " push ", _jsx("span", { fg: TEAL, children: "[l]" }), " pull", " ", _jsx("span", { fg: TEAL, children: "[r]" }), " versions ", _jsx("span", { fg: TEAL, children: "[o]" }), " IDE"] }), _jsx(CopilotLine, { backendLabel: backendLabel, detection: backendDetection }), paneLines.length === 0 && entries.length === 0 && !session ? (_jsxs("text", { fg: FAINT, style: { flexShrink: 0 }, children: [" ", "edit in your IDE \u2014 changes appear here as you save"] })) : null, session ? (_jsx(SessionPane, { session: session, rows: sessionRows, cursor: sessionCursor, scrollRef: sessionScrollRef })) : (_jsx(OutputPane, { paneTitle: paneTitle, paneLines: paneLines }))] }));
|
|
120
|
+
: " · creates the first draft"] })] })] }), preview.length > 0 ? (_jsxs("box", { style: { flexDirection: "column", flexShrink: 0, paddingLeft: 1 }, children: [preview.map((entry) => (_jsxs("text", { fg: DIM, children: [" ", _jsx("span", { fg: STATUS_COLOR[entry.status], children: entry.status }), " ", entry.path] }, entry.path))), entries.length > preview.length ? (_jsxs("text", { fg: FAINT, children: [" ", "\u2026 ", entries.length - preview.length, " more \u2014 d for the full diff"] })) : null] })) : null, _jsxs("text", { fg: FG, style: { flexShrink: 0 }, children: [" ", _jsx("span", { fg: TEAL, children: "[v]" }), " validate ", _jsx("span", { fg: TEAL, children: "[d]" }), " diff", " ", _jsx("span", { fg: TEAL, children: "[p]" }), " push ", _jsx("span", { fg: TEAL, children: "[l]" }), " pull", " ", _jsx("span", { fg: TEAL, children: "[r]" }), " versions ", _jsx("span", { fg: TEAL, children: "[o]" }), " IDE"] }), _jsx(CopilotLine, { backendLabel: backendLabel, detection: backendDetection }), paneLines.length === 0 && entries.length === 0 && !session ? (_jsxs("text", { fg: FAINT, style: { flexShrink: 0 }, children: [" ", "edit in your IDE \u2014 changes appear here as you save"] })) : null, session ? (_jsx(SessionPane, { session: session, rows: sessionRows, cursor: sessionCursor, scrollRef: sessionScrollRef, unitRefs: sessionUnitRefs, onSelectUnit: onSelectUnit })) : (_jsx(OutputPane, { paneTitle: paneTitle, paneLines: paneLines }))] }));
|
|
64
121
|
}
|
|
65
122
|
/** One honest line about the copilot backend: detected, missing, or probing. */
|
|
66
123
|
function CopilotLine({ backendLabel, detection, }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthorHome.js","sourceRoot":"","sources":["../../../src/author/AuthorHome.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,WAAW,EAAmB,MAAM,iBAAiB,CAAC;AAI/D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"AuthorHome.js","sourceRoot":"","sources":["../../../src/author/AuthorHome.tsx"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,10 @@ export type PreviewModel = {
|
|
|
18
18
|
path: string;
|
|
19
19
|
lines: DiffLine[];
|
|
20
20
|
note?: string;
|
|
21
|
+
/** Remote/local contents — present when the rich <diff> renderable can
|
|
22
|
+
* serialize its own patch; the plain paths render `lines`. */
|
|
23
|
+
before?: string | undefined;
|
|
24
|
+
after?: string | undefined;
|
|
21
25
|
} | {
|
|
22
26
|
kind: "file";
|
|
23
27
|
path: string;
|
|
@@ -31,7 +35,7 @@ export type PreviewModel = {
|
|
|
31
35
|
* at workspace level it browses files read-only. Enter expands the preview
|
|
32
36
|
* full-width; Esc collapses. Panes scroll via the shared ref and mouse.
|
|
33
37
|
*/
|
|
34
|
-
export declare function DiffView({ rows, cursor, treeTitle, preview, style, remoteTag, expanded, sidebarWidth, pageSize, scrollRef, }: {
|
|
38
|
+
export declare function DiffView({ rows, cursor, treeTitle, preview, style, remoteTag, expanded, sidebarWidth, pageSize, scrollRef, onRowClick, }: {
|
|
35
39
|
rows: TreeRow[];
|
|
36
40
|
cursor: number;
|
|
37
41
|
treeTitle: string;
|
|
@@ -43,4 +47,6 @@ export declare function DiffView({ rows, cursor, treeTitle, preview, style, remo
|
|
|
43
47
|
sidebarWidth: number;
|
|
44
48
|
pageSize: number;
|
|
45
49
|
scrollRef: RefObject<ScrollBoxRenderable | null>;
|
|
50
|
+
/** Mouse: click a tree row — toggles dirs, previews files. */
|
|
51
|
+
onRowClick?: ((index: number) => void) | undefined;
|
|
46
52
|
}): import("react").ReactNode;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@opentui/react/jsx-runtime";
|
|
2
2
|
import { memo, useEffect, useMemo } from "react";
|
|
3
|
-
import { splitRows } from "./data.js";
|
|
3
|
+
import { filetypeForPath, splitRows, unifiedPatch, } from "./data.js";
|
|
4
4
|
import { G } from "../theme/glyphs.js";
|
|
5
|
-
import {
|
|
5
|
+
import { getSyntaxStyle, getTreeSitter } from "../theme/syntax.js";
|
|
6
|
+
import { AMBER, DIM, FAINT, FG, RED, RICH, TEAL, TEAL_DIM, } from "../theme/tokens.js";
|
|
6
7
|
const STATUS_COLOR = {
|
|
7
8
|
A: TEAL,
|
|
8
9
|
M: AMBER,
|
|
@@ -18,7 +19,7 @@ const MAX_SPLIT_ROWS = 800;
|
|
|
18
19
|
* at workspace level it browses files read-only. Enter expands the preview
|
|
19
20
|
* full-width; Esc collapses. Panes scroll via the shared ref and mouse.
|
|
20
21
|
*/
|
|
21
|
-
export function DiffView({ rows, cursor, treeTitle, preview, style, remoteTag, expanded, sidebarWidth, pageSize, scrollRef, }) {
|
|
22
|
+
export function DiffView({ rows, cursor, treeTitle, preview, style, remoteTag, expanded, sidebarWidth, pageSize, scrollRef, onRowClick, }) {
|
|
22
23
|
if (expanded) {
|
|
23
24
|
return (_jsx(PreviewPane, { preview: preview, style: style, remoteTag: remoteTag, scrollRef: scrollRef }));
|
|
24
25
|
}
|
|
@@ -27,9 +28,9 @@ export function DiffView({ rows, cursor, treeTitle, preview, style, remoteTag, e
|
|
|
27
28
|
flexShrink: 0,
|
|
28
29
|
minHeight: 0,
|
|
29
30
|
flexDirection: "column",
|
|
30
|
-
}, children: _jsx(TreePane, { rows: rows, cursor: cursor, title: treeTitle, pageSize: pageSize }) }), _jsx(PreviewPane, { preview: preview, style: style, remoteTag: remoteTag, scrollRef: scrollRef })] }));
|
|
31
|
+
}, children: _jsx(TreePane, { rows: rows, cursor: cursor, title: treeTitle, pageSize: pageSize, onRowClick: onRowClick }) }), _jsx(PreviewPane, { preview: preview, style: style, remoteTag: remoteTag, scrollRef: scrollRef })] }));
|
|
31
32
|
}
|
|
32
|
-
const TreePane = memo(function TreePane({ rows, cursor, title, pageSize, }) {
|
|
33
|
+
const TreePane = memo(function TreePane({ rows, cursor, title, pageSize, onRowClick, }) {
|
|
33
34
|
const start = rows.length <= pageSize
|
|
34
35
|
? 0
|
|
35
36
|
: Math.max(0, Math.min(cursor - Math.floor(pageSize / 3), rows.length - pageSize));
|
|
@@ -48,7 +49,11 @@ const TreePane = memo(function TreePane({ rows, cursor, title, pageSize, }) {
|
|
|
48
49
|
const index = start + i;
|
|
49
50
|
const active = index === cursor;
|
|
50
51
|
const indent = " ".repeat(row.depth);
|
|
51
|
-
return (_jsxs("text", { fg: active ? FG : DIM,
|
|
52
|
+
return (_jsxs("text", { fg: active ? FG : DIM, onMouseDown: onRowClick
|
|
53
|
+
? () => {
|
|
54
|
+
onRowClick(index);
|
|
55
|
+
}
|
|
56
|
+
: undefined, children: [active ? `${G.pointerBold} ` : " ", indent, row.kind === "dir" ? (_jsxs("span", { fg: active ? FG : DIM, children: [row.expanded ? `${G.expanded} ` : `${G.collapsed} `, row.label, "/"] })) : (_jsxs(_Fragment, { children: [_jsx("span", { fg: row.status ? STATUS_COLOR[row.status] : FAINT, children: row.status ?? "·" }), " ", row.label] }))] }, `${row.kind}:${row.path}`));
|
|
52
57
|
}), start + window.length < rows.length ? (_jsxs("text", { fg: FAINT, children: ["\u2026 ", rows.length - start - window.length, " below"] })) : null] })) }));
|
|
53
58
|
});
|
|
54
59
|
const PreviewPane = memo(function PreviewPane({ preview, style, remoteTag, scrollRef, }) {
|
|
@@ -70,8 +75,29 @@ const PreviewPane = memo(function PreviewPane({ preview, style, remoteTag, scrol
|
|
|
70
75
|
paddingRight: 1,
|
|
71
76
|
}, children: [_jsxs("text", { fg: DIM, style: { flexShrink: 0 }, children: [preview.kind === "diff"
|
|
72
77
|
? `remote ${remoteTag} → local · ${style}`
|
|
73
|
-
: "read-only", " · ", _jsx("span", { fg: FAINT, children: "\u2191\u2193/PgUp/PgDn or mouse to scroll" })] }), "note" in preview && preview.note ? (_jsx("text", { fg: AMBER, children: preview.note })) : null, preview.kind === "none" ? (_jsx("text", { fg: FAINT, children: preview.hint ?? "(select a file in the tree)" })) : preview.kind === "loading" ? (_jsx("text", { fg: FAINT, children: "loading\u2026" })) : preview.kind === "error" ? (_jsx("text", { fg: AMBER, children: preview.message })) : preview.kind === "diff"
|
|
78
|
+
: "read-only", " · ", _jsx("span", { fg: FAINT, children: "\u2191\u2193/PgUp/PgDn or mouse to scroll" })] }), "note" in preview && preview.note ? (_jsx("text", { fg: AMBER, children: preview.note })) : null, preview.kind === "none" ? (_jsx("text", { fg: FAINT, children: preview.hint ?? "(select a file in the tree)" })) : preview.kind === "loading" ? (_jsx("text", { fg: FAINT, children: "loading\u2026" })) : preview.kind === "error" ? (_jsx("text", { fg: AMBER, children: preview.message })) : preview.kind === "diff" ? (richDiffUsable(preview) ? (_jsx(RichDiffBody, { path: preview.path, before: preview.before, after: preview.after, view: style, scrollRef: scrollRef })) : style === "split" ? (_jsx(SplitBody, { lines: preview.lines, scrollRef: scrollRef })) : (_jsx(UnifiedBody, { lines: preview.lines, scrollRef: scrollRef }))) : RICH && preview.lines.length <= MAX_UNIFIED_LINES ? (_jsx(RichFileBody, { path: preview.path, lines: preview.lines, scrollRef: scrollRef })) : (_jsx(FileBody, { lines: preview.lines, scrollRef: scrollRef }))] }));
|
|
74
79
|
});
|
|
80
|
+
/** Rich <diff> needs both sides, colors on, and a non-degenerate size. */
|
|
81
|
+
function richDiffUsable(preview) {
|
|
82
|
+
return (RICH &&
|
|
83
|
+
(preview.before !== undefined || preview.after !== undefined) &&
|
|
84
|
+
preview.lines.length <= MAX_UNIFIED_LINES);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Content diff on OpenTUI's `<diff>` renderable: line numbers, syntax
|
|
88
|
+
* highlighting, native unified/split layouts (`s` still toggles). The
|
|
89
|
+
* scrollbox wraps it so the shared scroll ref/mouse behavior is unchanged.
|
|
90
|
+
*/
|
|
91
|
+
function RichDiffBody({ path, before, after, view, scrollRef, }) {
|
|
92
|
+
const patch = useMemo(() => unifiedPatch(path, before, after), [path, before, after]);
|
|
93
|
+
return (_jsx("scrollbox", { ref: scrollRef, style: { flexGrow: 1, flexShrink: 1, flexBasis: 0, flexDirection: "column" }, children: _jsx("diff", { diff: patch, view: view, showLineNumbers: true, wrapMode: view === "unified" ? "word" : "none", filetype: filetypeForPath(path), syntaxStyle: getSyntaxStyle(), treeSitterClient: getTreeSitter(), style: { width: "100%" } }) }));
|
|
94
|
+
}
|
|
95
|
+
/** File preview on OpenTUI's `<code>` renderable (tree-sitter highlighting
|
|
96
|
+
* for bundled grammars; plain styled text otherwise). */
|
|
97
|
+
function RichFileBody({ path, lines, scrollRef, }) {
|
|
98
|
+
const content = useMemo(() => lines.join("\n"), [lines]);
|
|
99
|
+
return (_jsx("scrollbox", { ref: scrollRef, style: { flexGrow: 1, flexShrink: 1, flexBasis: 0, flexDirection: "column" }, children: _jsx("code", { content: content, filetype: filetypeForPath(path), drawUnstyledText: true, syntaxStyle: getSyntaxStyle(), treeSitterClient: getTreeSitter(), style: { width: "100%" } }) }));
|
|
100
|
+
}
|
|
75
101
|
function UnifiedBody({ lines, scrollRef, }) {
|
|
76
102
|
const rendered = lines.slice(0, MAX_UNIFIED_LINES);
|
|
77
103
|
return (_jsxs("scrollbox", { ref: scrollRef, style: { flexGrow: 1, flexShrink: 1, flexBasis: 0, flexDirection: "column" }, children: [rendered.map((line, i) => (_jsxs("text", { style: { wrapMode: "word" }, fg: line.tag === "+" ? TEAL : line.tag === "-" ? RED : DIM, children: [line.tag, " ", line.text] }, i))), lines.length > rendered.length ? (_jsxs("text", { fg: FAINT, children: ["\u2026 ", lines.length - rendered.length, " more line(s)"] })) : null] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiffView.js","sourceRoot":"","sources":["../../../src/author/DiffView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAkB,MAAM,OAAO,CAAC;AAGjE,OAAO,
|
|
1
|
+
{"version":3,"file":"DiffView.js","sourceRoot":"","sources":["../../../src/author/DiffView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,13 +3,20 @@
|
|
|
3
3
|
* work units inside a scrollbox. Rows arrive pre-wrapped (`sessionRows`),
|
|
4
4
|
* so heights and scroll offsets are exact; the cursor row carries a ▸
|
|
5
5
|
* gutter, and expanded action units show their input/result body indented.
|
|
6
|
+
* Prose units may arrive as markdown block rows (`row.md`) — rendered via
|
|
7
|
+
* `<markdown>`, streaming while the unit still accumulates deltas.
|
|
6
8
|
*/
|
|
7
9
|
import type { RefObject } from "react";
|
|
8
|
-
import type { ScrollBoxRenderable } from "@opentui/core";
|
|
10
|
+
import type { Renderable, ScrollBoxRenderable } from "@opentui/core";
|
|
9
11
|
import type { SessionRow, SessionState } from "./session.js";
|
|
10
|
-
export declare function SessionPane({ session, rows, cursor, scrollRef, }: {
|
|
12
|
+
export declare function SessionPane({ session, rows, cursor, scrollRef, unitRefs, onSelectUnit, }: {
|
|
11
13
|
session: SessionState;
|
|
12
14
|
rows: SessionRow[];
|
|
13
15
|
cursor: number;
|
|
14
16
|
scrollRef: RefObject<ScrollBoxRenderable | null>;
|
|
17
|
+
/** Label renderables by unit index — exact scroll targets even when
|
|
18
|
+
* markdown blocks make row heights unpredictable. */
|
|
19
|
+
unitRefs?: RefObject<Map<number, Renderable | null>> | undefined;
|
|
20
|
+
/** Mouse: click a row to select its unit (click again to expand). */
|
|
21
|
+
onSelectUnit?: ((unit: number) => void) | undefined;
|
|
15
22
|
}): import("react").ReactNode;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { jsx as _jsx } from "@opentui/react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
|
|
2
2
|
import { G } from "../theme/glyphs.js";
|
|
3
|
+
import { getSyntaxStyle, getTreeSitter } from "../theme/syntax.js";
|
|
3
4
|
import { AMBER, DIM, FAINT, FG, RED, TEAL, TEAL_DIM, } from "../theme/tokens.js";
|
|
4
5
|
const TONE_COLOR = {
|
|
5
6
|
prompt: FG,
|
|
@@ -16,7 +17,7 @@ const TONE_COLOR = {
|
|
|
16
17
|
queued: FAINT,
|
|
17
18
|
spacer: FAINT,
|
|
18
19
|
};
|
|
19
|
-
export function SessionPane({ session, rows, cursor, scrollRef, }) {
|
|
20
|
+
export function SessionPane({ session, rows, cursor, scrollRef, unitRefs, onSelectUnit, }) {
|
|
20
21
|
return (_jsx("box", { title: ` ${session.backend} session · turn ${session.turn}${session.running ? " · running" : ""} `, style: {
|
|
21
22
|
border: true,
|
|
22
23
|
borderStyle: "rounded",
|
|
@@ -31,9 +32,26 @@ export function SessionPane({ session, rows, cursor, scrollRef, }) {
|
|
|
31
32
|
width: "100%",
|
|
32
33
|
paddingLeft: 1,
|
|
33
34
|
paddingRight: 1,
|
|
34
|
-
}, children: _jsx("scrollbox", { ref: scrollRef, style: { flexGrow: 1, flexShrink: 1, flexDirection: "column" }, children: rows.map((row, i) => {
|
|
35
|
+
}, children: _jsx("scrollbox", { ref: scrollRef, style: { flexGrow: 1, flexShrink: 1, flexDirection: "column" }, stickyScroll: true, children: rows.map((row, i) => {
|
|
35
36
|
const selected = row.isLabel && row.unit === cursor;
|
|
36
|
-
|
|
37
|
+
const selectUnit = onSelectUnit && row.unit >= 0
|
|
38
|
+
? () => {
|
|
39
|
+
onSelectUnit(row.unit);
|
|
40
|
+
}
|
|
41
|
+
: undefined;
|
|
42
|
+
if (row.md) {
|
|
43
|
+
const unit = session.units[row.unit];
|
|
44
|
+
return (_jsxs("box", { style: { flexDirection: "row", width: "100%" }, onMouseDown: selectUnit, ref: unitRefs
|
|
45
|
+
? (node) => {
|
|
46
|
+
unitRefs.current.set(row.unit, node);
|
|
47
|
+
}
|
|
48
|
+
: undefined, children: [_jsx("text", { fg: selected ? FG : TONE_COLOR[row.tone], style: { flexShrink: 0 }, children: selected ? `${G.cursor} ` : " " }), _jsx("box", { style: { flexGrow: 1, flexShrink: 1, flexBasis: 0, minWidth: 0 }, children: _jsx("markdown", { content: row.text, streaming: unit?.kind === "text" && unit.streaming === true, syntaxStyle: getSyntaxStyle(), treeSitterClient: getTreeSitter(), style: { width: "100%" } }) })] }, i));
|
|
49
|
+
}
|
|
50
|
+
return (_jsx("text", { fg: selected ? FG : TONE_COLOR[row.tone], onMouseDown: selectUnit, ref: row.isLabel && unitRefs
|
|
51
|
+
? (node) => {
|
|
52
|
+
unitRefs.current.set(row.unit, node);
|
|
53
|
+
}
|
|
54
|
+
: undefined, children: (selected ? `${G.cursor} ` : " ") + (row.text || " ") }, i));
|
|
37
55
|
}) }) }));
|
|
38
56
|
}
|
|
39
57
|
//# sourceMappingURL=SessionPane.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionPane.js","sourceRoot":"","sources":["../../../src/author/SessionPane.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"SessionPane.js","sourceRoot":"","sources":["../../../src/author/SessionPane.tsx"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,15 @@ export interface DiffLine {
|
|
|
39
39
|
}
|
|
40
40
|
/** Content-diff rendering style, like GitHub/Bitbucket's view options. */
|
|
41
41
|
export type DiffStyle = "split" | "unified";
|
|
42
|
+
/** Tree-sitter filetype for a bundle path (undefined → plain rendering). */
|
|
43
|
+
export declare function filetypeForPath(target: string): string | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Unified patch for OpenTUI's `<diff>` renderable — remote (bound tag) as
|
|
46
|
+
* the old side, local checkout as the new. Serialized by the same `diff`
|
|
47
|
+
* package the renderable's parser expects. Undefined sides mean the file
|
|
48
|
+
* only exists on the other side (pure add/remove).
|
|
49
|
+
*/
|
|
50
|
+
export declare function unifiedPatch(target: string, remote: string | undefined, local: string | undefined): string;
|
|
42
51
|
export declare function defaultDiffStyle(width: number): DiffStyle;
|
|
43
52
|
/** Local + remote file contents backing the diff subview's content panes. */
|
|
44
53
|
export type DiffFilesState = {
|