@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,11 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@opentui/react/jsx-runtime";
|
|
2
|
+
import { JsonRows } from "../ui/JsonPane.js";
|
|
2
3
|
import { AMBER, FAINT, TEAL_DIM } from "../theme/tokens.js";
|
|
3
4
|
/**
|
|
4
5
|
* Inspector pane (right, wide terminals): diagnostics for the SELECTED turn —
|
|
5
|
-
* meta always; the trace/debug payload after ^T/^D
|
|
6
|
-
* the keyboard stays on
|
|
6
|
+
* meta always; the trace/debug payload after ^T/^D as a collapsible JSON
|
|
7
|
+
* tree (click rows to expand). Scrolls with the mouse; the keyboard stays on
|
|
8
|
+
* the conversation.
|
|
7
9
|
*/
|
|
8
|
-
export function InspectorPane({ meta, fetched, width, scrollRef, }) {
|
|
10
|
+
export function InspectorPane({ meta, fetched, json, onJsonToggle, width, scrollRef, }) {
|
|
9
11
|
return (_jsxs("box", { title: " inspector ", style: {
|
|
10
12
|
border: true,
|
|
11
13
|
borderStyle: "rounded",
|
|
@@ -16,12 +18,12 @@ export function InspectorPane({ meta, fetched, width, scrollRef, }) {
|
|
|
16
18
|
paddingLeft: 1,
|
|
17
19
|
paddingRight: 1,
|
|
18
20
|
overflow: "hidden",
|
|
19
|
-
}, children: [meta.map((line, i) => (_jsx("text", { fg: FAINT, style: { flexShrink: 0 }, children: line }, `m-${i}`))), fetched ? (_jsxs(_Fragment, { children: [_jsxs("text", { fg: AMBER, style: { flexShrink: 0 }, children: ["\u2014 ", fetched.kind, " \u2014"] }), _jsx("scrollbox", { ref: scrollRef, style: {
|
|
21
|
+
}, children: [meta.map((line, i) => (_jsx("text", { fg: FAINT, style: { flexShrink: 0 }, children: line }, `m-${i}`))), fetched ? (_jsxs(_Fragment, { children: [_jsxs("text", { fg: AMBER, style: { flexShrink: 0 }, children: ["\u2014 ", fetched.kind, " \u2014", json ? _jsx("span", { fg: FAINT, children: " click to expand" }) : null] }), _jsx("scrollbox", { ref: scrollRef, style: {
|
|
20
22
|
flexGrow: 1,
|
|
21
23
|
flexShrink: 1,
|
|
22
24
|
flexBasis: 0,
|
|
23
25
|
minHeight: 2,
|
|
24
26
|
flexDirection: "column",
|
|
25
|
-
}, children: fetched.lines.map((line, i) => (_jsx("text", { fg: FAINT, wrapMode: "word", children: line }, i))) })] })) : null] }));
|
|
27
|
+
}, children: json ? (_jsx(JsonRows, { rows: json, onToggle: onJsonToggle })) : (fetched.lines.map((line, i) => (_jsx("text", { fg: FAINT, wrapMode: "word", children: line }, i)))) })] })) : null] }));
|
|
26
28
|
}
|
|
27
29
|
//# sourceMappingURL=InspectorPane.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InspectorPane.js","sourceRoot":"","sources":["../../../src/talk/InspectorPane.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"InspectorPane.js","sourceRoot":"","sources":["../../../src/talk/InspectorPane.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG5D;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,SAAS,GAUV;IACC,OAAO,CACL,eACE,KAAK,EAAC,aAAa,EACnB,KAAK,EAAE;YACL,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,QAAQ;YACrB,aAAa,EAAE,QAAQ;YACvB,KAAK;YACL,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;YACf,QAAQ,EAAE,QAAQ;SACnB,aAEA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACrB,eAAqB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,YACrD,IAAI,IADI,KAAK,CAAC,EAAE,CAEZ,CACR,CAAC,EACD,OAAO,CAAC,CAAC,CAAC,CACT,8BACE,gBAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,wBACpC,OAAO,CAAC,IAAI,aAAI,IAAI,CAAC,CAAC,CAAC,eAAM,EAAE,EAAE,KAAK,YAAG,kBAAkB,GAAQ,CAAC,CAAC,CAAC,IAAI,IACxE,EACP,oBACE,GAAG,EAAE,SAAS,EACd,KAAK,EAAE;4BACL,QAAQ,EAAE,CAAC;4BACX,UAAU,EAAE,CAAC;4BACb,SAAS,EAAE,CAAC;4BACZ,SAAS,EAAE,CAAC;4BACZ,aAAa,EAAE,QAAQ;yBACxB,YAEA,IAAI,CAAC,CAAC,CAAC,CACN,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,GAAI,CACjD,CAAC,CAAC,CAAC,CACF,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC7B,eAAc,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAC,MAAM,YACrC,IAAI,IADI,CAAC,CAEL,CACR,CAAC,CACH,GACS,IACX,CACJ,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { RefObject } from "react";
|
|
2
|
-
import type { ScrollBoxRenderable } from "@opentui/core";
|
|
2
|
+
import type { Renderable, ScrollBoxRenderable } from "@opentui/core";
|
|
3
|
+
import type { JsonRow } from "../lib/jsonview.js";
|
|
3
4
|
import type { InspectorFetch, TalkLayout, TalkRow, TalkTurn, ThreadSummary } from "./data.js";
|
|
4
5
|
/**
|
|
5
6
|
* Talk workbench (TUI_DESIGN §9): threads | conversation | inspector, panes
|
|
@@ -7,7 +8,7 @@ import type { InspectorFetch, TalkLayout, TalkRow, TalkTurn, ThreadSummary } fro
|
|
|
7
8
|
* a turn, the inspector follows); ←/→ move focus between threads and the
|
|
8
9
|
* conversation while the composer is empty.
|
|
9
10
|
*/
|
|
10
|
-
export declare function TalkView({ chat, rows, cursor, focusPane, layout, threads, threadsLoading, threadCursor, threadId, localMode, trace, vars, inspectorMetaLines, inspectorFetch, paneTitle, paneLines, pageSize, scrollRef, inspectorScrollRef, }: {
|
|
11
|
+
export declare function TalkView({ chat, rows, cursor, focusPane, layout, threads, threadsLoading, threadCursor, threadId, localMode, trace, vars, inspectorMetaLines, inspectorFetch, paneTitle, paneLines, overlayJson, inspectorJson, onJsonToggle, onSelectTurn, onSelectThread, pageSize, scrollRef, inspectorScrollRef, turnRefs, }: {
|
|
11
12
|
chat: TalkTurn[];
|
|
12
13
|
rows: TalkRow[];
|
|
13
14
|
cursor: number;
|
|
@@ -24,7 +25,19 @@ export declare function TalkView({ chat, rows, cursor, focusPane, layout, thread
|
|
|
24
25
|
inspectorFetch: InspectorFetch | undefined;
|
|
25
26
|
paneTitle?: string | undefined;
|
|
26
27
|
paneLines: string[];
|
|
28
|
+
/** JSON tree rows for the inline trace/debug overlay (replaces raw text). */
|
|
29
|
+
overlayJson?: JsonRow[] | undefined;
|
|
30
|
+
/** JSON tree rows for the inspector's fetched trace/debug payload. */
|
|
31
|
+
inspectorJson?: JsonRow[] | undefined;
|
|
32
|
+
onJsonToggle?: ((row: JsonRow) => void) | undefined;
|
|
33
|
+
/** Mouse: click a conversation row to select its turn. */
|
|
34
|
+
onSelectTurn?: ((turn: number) => void) | undefined;
|
|
35
|
+
/** Mouse: click a thread row to open it (index into the rows incl. new). */
|
|
36
|
+
onSelectThread?: ((row: number) => void) | undefined;
|
|
27
37
|
pageSize: number;
|
|
28
38
|
scrollRef?: RefObject<ScrollBoxRenderable | null> | undefined;
|
|
29
39
|
inspectorScrollRef?: RefObject<ScrollBoxRenderable | null> | undefined;
|
|
40
|
+
/** Header renderables by turn index — exact scroll targets even when
|
|
41
|
+
* markdown blocks make row heights unpredictable. */
|
|
42
|
+
turnRefs?: RefObject<Map<number, Renderable | null>> | undefined;
|
|
30
43
|
}): import("react").ReactNode;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } 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, FAINT, FG, TEAL, TEAL_DIM } from "../theme/tokens.js";
|
|
5
|
+
import { JsonRows } from "../ui/JsonPane.js";
|
|
4
6
|
import { InspectorPane } from "./InspectorPane.js";
|
|
5
7
|
import { ThreadsPane } from "./ThreadsPane.js";
|
|
6
8
|
function roleColor(role) {
|
|
@@ -12,11 +14,11 @@ function roleColor(role) {
|
|
|
12
14
|
* a turn, the inspector follows); ←/→ move focus between threads and the
|
|
13
15
|
* conversation while the composer is empty.
|
|
14
16
|
*/
|
|
15
|
-
export function TalkView({ chat, rows, cursor, focusPane, layout, threads, threadsLoading, threadCursor, threadId, localMode, trace, vars, inspectorMetaLines, inspectorFetch, paneTitle, paneLines, pageSize, scrollRef, inspectorScrollRef, }) {
|
|
17
|
+
export function TalkView({ chat, rows, cursor, focusPane, layout, threads, threadsLoading, threadCursor, threadId, localMode, trace, vars, inspectorMetaLines, inspectorFetch, paneTitle, paneLines, overlayJson, inspectorJson, onJsonToggle, onSelectTurn, onSelectThread, pageSize, scrollRef, inspectorScrollRef, turnRefs, }) {
|
|
16
18
|
const replies = chat.filter((t) => t.role === "agent" && !t.pending).length;
|
|
17
19
|
// Inline trace/debug fallback when the inspector pane doesn't fit.
|
|
18
20
|
const inlineOverlay = !layout.inspector &&
|
|
19
|
-
paneLines.length > 0 &&
|
|
21
|
+
(paneLines.length > 0 || overlayJson) &&
|
|
20
22
|
paneTitle &&
|
|
21
23
|
/^(trace|debug)/i.test(paneTitle);
|
|
22
24
|
return (_jsxs("box", { style: { flexDirection: "column", flexGrow: 1, minHeight: 0, width: "100%" }, children: [localMode ? (_jsx("text", { fg: AMBER, style: { flexShrink: 0 }, children: _jsx("b", { children: " TALK \u00B7 LOCAL BUNDLE \u2014 replies run this checkout, not the deployed version " }) })) : null, _jsxs("text", { fg: FAINT, style: { flexShrink: 0 }, children: [" ", "thread ", threadId?.slice(0, 12) ?? "new", " \u00B7 ", replies, " ", replies === 1 ? "reply" : "replies", " \u00B7 trace ", trace ? "on" : "off", vars.length > 0 ? ` · vars ${vars.join(", ")}` : ""] }), _jsxs("box", { style: {
|
|
@@ -26,7 +28,7 @@ export function TalkView({ chat, rows, cursor, focusPane, layout, threads, threa
|
|
|
26
28
|
flexBasis: 0,
|
|
27
29
|
minHeight: 2,
|
|
28
30
|
width: "100%",
|
|
29
|
-
}, children: [layout.threads ? (_jsx(ThreadsPane, { threads: threads, loading: threadsLoading, cursor: threadCursor, activeId: threadId, focused: focusPane === "threads", width: layout.threadsWidth, pageSize: pageSize })) : null, _jsx("box", { style: {
|
|
31
|
+
}, children: [layout.threads ? (_jsx(ThreadsPane, { threads: threads, loading: threadsLoading, cursor: threadCursor, activeId: threadId, focused: focusPane === "threads", width: layout.threadsWidth, pageSize: pageSize, onSelect: onSelectThread })) : null, _jsx("box", { style: {
|
|
30
32
|
border: true,
|
|
31
33
|
borderStyle: "rounded",
|
|
32
34
|
borderColor: focusPane === "chat" ? TEAL : TEAL_DIM,
|
|
@@ -55,7 +57,21 @@ export function TalkView({ chat, rows, cursor, focusPane, layout, threads, threa
|
|
|
55
57
|
if (row.kind === "spacer") {
|
|
56
58
|
return _jsx("text", { children: " " }, i);
|
|
57
59
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
+
const selectTurn = onSelectTurn
|
|
61
|
+
? () => {
|
|
62
|
+
onSelectTurn(row.turn);
|
|
63
|
+
}
|
|
64
|
+
: undefined;
|
|
65
|
+
if (row.kind === "md") {
|
|
66
|
+
// Agent prose as rendered markdown; the selection bar rides
|
|
67
|
+
// the first line, the block indents past the gutter.
|
|
68
|
+
return (_jsxs("box", { style: { flexDirection: "row", width: "100%" }, onMouseDown: selectTurn, children: [_jsx("text", { fg: TEAL, style: { flexShrink: 0 }, children: selected ? G.cursorBar : " " }), _jsx("box", { style: { flexGrow: 1, flexShrink: 1, flexBasis: 0, minWidth: 0 }, children: _jsx("markdown", { content: row.text, syntaxStyle: getSyntaxStyle(), treeSitterClient: getTreeSitter(), style: { width: "100%" } }) })] }, i));
|
|
69
|
+
}
|
|
70
|
+
return (_jsxs("text", { onMouseDown: selectTurn, ref: (row.kind === "header" || row.kind === "pending") && turnRefs
|
|
71
|
+
? (node) => {
|
|
72
|
+
turnRefs.current.set(row.turn, node);
|
|
73
|
+
}
|
|
74
|
+
: undefined, children: [_jsx("span", { fg: TEAL, children: selected ? G.cursorBar : " " }), _jsx("span", { fg: row.kind === "header" ? tone : undefined, children: row.kind === "header" || row.kind === "pending" ? "" : " " }), _jsx("span", { fg: tone, children: row.text })] }, i));
|
|
75
|
+
})), inlineOverlay ? (_jsxs(_Fragment, { children: [_jsx("text", { children: " " }), _jsxs("text", { fg: AMBER, children: ["\u2014 ", paneTitle, " \u2014", overlayJson ? (_jsx("span", { fg: FAINT, children: " click rows to expand/collapse" })) : null] }), overlayJson ? (_jsx(JsonRows, { rows: overlayJson, onToggle: onJsonToggle })) : (paneLines.map((line, i) => (_jsx("text", { fg: FAINT, wrapMode: "word", children: line }, `p-${i}`))))] })) : null] }) }), layout.inspector ? (_jsx(InspectorPane, { meta: inspectorMetaLines, fetched: inspectorFetch, json: inspectorJson, onJsonToggle: onJsonToggle, width: layout.inspectorWidth, scrollRef: inspectorScrollRef })) : null] })] }));
|
|
60
76
|
}
|
|
61
77
|
//# sourceMappingURL=TalkView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TalkView.js","sourceRoot":"","sources":["../../../src/talk/TalkView.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAc,MAAM,oBAAoB,CAAC;AAElF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,SAAS,SAAS,CAAC,IAAsB;IACvC,OAAO,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,EACT,MAAM,EACN,OAAO,EACP,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,KAAK,EACL,IAAI,EACJ,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,kBAAkB,
|
|
1
|
+
{"version":3,"file":"TalkView.js","sourceRoot":"","sources":["../../../src/talk/TalkView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,10 @@ export declare const NEW_THREAD_ROW = 0;
|
|
|
4
4
|
export declare function threadsRowCount(threads: ThreadSummary[] | undefined): number;
|
|
5
5
|
/**
|
|
6
6
|
* Threads pane (left). Cursor-driven: ↑↓ move, Enter opens (or starts a new
|
|
7
|
-
* thread). The pane windows itself around
|
|
7
|
+
* thread); clicking a row opens it directly. The pane windows itself around
|
|
8
|
+
* the cursor like the pickers do.
|
|
8
9
|
*/
|
|
9
|
-
export declare function ThreadsPane({ threads, loading, cursor, activeId, focused, width, pageSize, }: {
|
|
10
|
+
export declare function ThreadsPane({ threads, loading, cursor, activeId, focused, width, pageSize, onSelect, }: {
|
|
10
11
|
threads: ThreadSummary[] | undefined;
|
|
11
12
|
loading: boolean;
|
|
12
13
|
cursor: number;
|
|
@@ -14,4 +15,6 @@ export declare function ThreadsPane({ threads, loading, cursor, activeId, focuse
|
|
|
14
15
|
focused: boolean;
|
|
15
16
|
width: number;
|
|
16
17
|
pageSize: number;
|
|
18
|
+
/** Mouse: click a row to open that thread (or start a new one at row 0). */
|
|
19
|
+
onSelect?: ((row: number) => void) | undefined;
|
|
17
20
|
}): import("react").ReactNode;
|
|
@@ -8,9 +8,10 @@ export function threadsRowCount(threads) {
|
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
10
|
* Threads pane (left). Cursor-driven: ↑↓ move, Enter opens (or starts a new
|
|
11
|
-
* thread). The pane windows itself around
|
|
11
|
+
* thread); clicking a row opens it directly. The pane windows itself around
|
|
12
|
+
* the cursor like the pickers do.
|
|
12
13
|
*/
|
|
13
|
-
export function ThreadsPane({ threads, loading, cursor, activeId, focused, width, pageSize, }) {
|
|
14
|
+
export function ThreadsPane({ threads, loading, cursor, activeId, focused, width, pageSize, onSelect, }) {
|
|
14
15
|
const rows = threads ?? [];
|
|
15
16
|
const total = threadsRowCount(threads);
|
|
16
17
|
const clamped = Math.max(0, Math.min(cursor, total - 1));
|
|
@@ -50,7 +51,11 @@ export function ThreadsPane({ threads, loading, cursor, activeId, focused, width
|
|
|
50
51
|
const labelMax = extra
|
|
51
52
|
? Math.max(6, budget - extra.length - 1)
|
|
52
53
|
: budget;
|
|
53
|
-
return (_jsxs("text", {
|
|
54
|
+
return (_jsxs("text", { onMouseDown: onSelect
|
|
55
|
+
? () => {
|
|
56
|
+
onSelect(index);
|
|
57
|
+
}
|
|
58
|
+
: undefined, children: [_jsx("span", { fg: selected ? TEAL : undefined, children: selected ? `${G.pointer} ` : " " }), _jsx("span", { fg: index === NEW_THREAD_ROW
|
|
54
59
|
? AMBER
|
|
55
60
|
: active
|
|
56
61
|
? TEAL
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadsPane.js","sourceRoot":"","sources":["../../../src/talk/ThreadsPane.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG3E,uEAAuE;AACvE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEhC,MAAM,UAAU,eAAe,CAAC,OAAoC;IAClE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;AACpC,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"ThreadsPane.js","sourceRoot":"","sources":["../../../src/talk/ThreadsPane.tsx"],"names":[],"mappings":"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"}
|
|
@@ -41,15 +41,24 @@ export interface ThreadSummary {
|
|
|
41
41
|
export declare function threadSummaries(threads: Thread[], now?: number): ThreadSummary[];
|
|
42
42
|
/** Map runtime-api messages onto conversation turns (thread resume). */
|
|
43
43
|
export declare function messagesToTurns(messages: Message[]): TalkTurn[];
|
|
44
|
-
export type TalkRowKind = "header" | "body" | "pending" | "spacer";
|
|
44
|
+
export type TalkRowKind = "header" | "body" | "md" | "pending" | "spacer";
|
|
45
45
|
export interface TalkRow {
|
|
46
46
|
kind: TalkRowKind;
|
|
47
47
|
/** Owning turn index; spacers belong to the turn above. */
|
|
48
48
|
turn: number;
|
|
49
|
+
/** For "md" rows: the full markdown source, not a wrapped line. */
|
|
49
50
|
text: string;
|
|
50
51
|
}
|
|
51
|
-
/**
|
|
52
|
-
|
|
52
|
+
/**
|
|
53
|
+
* Flatten the conversation into renderable rows wrapped at `width`.
|
|
54
|
+
* With `markdown` on, settled agent replies collapse to one "md" row whose
|
|
55
|
+
* text is the raw markdown source — the view renders it via `<markdown>`
|
|
56
|
+
* (user prompts stay verbatim text: the composer sends exactly what you
|
|
57
|
+
* typed, so the transcript shows exactly what you typed).
|
|
58
|
+
*/
|
|
59
|
+
export declare function talkRows(chat: TalkTurn[], width: number, now?: number, opts?: {
|
|
60
|
+
markdown?: boolean;
|
|
61
|
+
}): TalkRow[];
|
|
53
62
|
/** First row index of a turn — scroll target when the cursor moves. */
|
|
54
63
|
export declare function turnRowOffset(rows: TalkRow[], turn: number): number;
|
|
55
64
|
/** 1-based position of the turn among agent replies (chatOverlay's index). */
|
|
@@ -61,6 +70,8 @@ export interface InspectorFetch {
|
|
|
61
70
|
turn: number;
|
|
62
71
|
kind: "trace" | "debug";
|
|
63
72
|
lines: string[];
|
|
73
|
+
/** Structured payload — the inspector renders a JSON tree when present. */
|
|
74
|
+
data?: unknown;
|
|
64
75
|
}
|
|
65
76
|
export declare function inspectorMeta(chat: TalkTurn[], turn: number, opts: {
|
|
66
77
|
localMode: boolean;
|
|
@@ -100,8 +100,14 @@ function headerMeta(turn, now) {
|
|
|
100
100
|
}
|
|
101
101
|
return parts.join(" · ");
|
|
102
102
|
}
|
|
103
|
-
/**
|
|
104
|
-
|
|
103
|
+
/**
|
|
104
|
+
* Flatten the conversation into renderable rows wrapped at `width`.
|
|
105
|
+
* With `markdown` on, settled agent replies collapse to one "md" row whose
|
|
106
|
+
* text is the raw markdown source — the view renders it via `<markdown>`
|
|
107
|
+
* (user prompts stay verbatim text: the composer sends exactly what you
|
|
108
|
+
* typed, so the transcript shows exactly what you typed).
|
|
109
|
+
*/
|
|
110
|
+
export function talkRows(chat, width, now = Date.now(), opts = {}) {
|
|
105
111
|
const rows = [];
|
|
106
112
|
chat.forEach((turn, index) => {
|
|
107
113
|
if (index > 0)
|
|
@@ -117,6 +123,10 @@ export function talkRows(chat, width, now = Date.now()) {
|
|
|
117
123
|
turn: index,
|
|
118
124
|
text: meta ? `${turn.role} · ${meta}` : turn.role,
|
|
119
125
|
});
|
|
126
|
+
if (opts.markdown && turn.role === "agent" && turn.text.trim().length > 0) {
|
|
127
|
+
rows.push({ kind: "md", turn: index, text: turn.text });
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
120
130
|
for (const line of turn.text.split("\n")) {
|
|
121
131
|
for (const wrapped of wrapText(line, width)) {
|
|
122
132
|
rows.push({ kind: "body", turn: index, text: wrapped });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/talk/data.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/talk/data.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared SyntaxStyle + tree-sitter client for OpenTUI's rich renderables
|
|
3
|
+
* (`<markdown>`, `<code>`, `<diff>`). One style instance for the whole app —
|
|
4
|
+
* SyntaxStyle allocates native state, and the renderables cache resolved
|
|
5
|
+
* style ids by name.
|
|
6
|
+
*
|
|
7
|
+
* Bun-only module (SyntaxStyle rides bun:ffi): components import it, the
|
|
8
|
+
* vitest-covered data layer must not. Rich rendering is gated on `RICH`
|
|
9
|
+
* (tokens.ts) — under NO_COLOR the plain text paths render instead, so this
|
|
10
|
+
* module is never touched in monochrome runs.
|
|
11
|
+
*
|
|
12
|
+
* Scope names come from OpenTUI's markdown renderer (`markup.*`, `conceal`,
|
|
13
|
+
* `default`) plus common tree-sitter capture names for code. `default` MUST
|
|
14
|
+
* carry an explicit fg: an empty style resolves to transparent and the text
|
|
15
|
+
* becomes invisible.
|
|
16
|
+
*/
|
|
17
|
+
import { SyntaxStyle, type TreeSitterClient } from "@opentui/core";
|
|
18
|
+
export declare function getSyntaxStyle(): SyntaxStyle;
|
|
19
|
+
/** Singleton worker-backed client; parsers load lazily per filetype. */
|
|
20
|
+
export declare function getTreeSitter(): TreeSitterClient;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared SyntaxStyle + tree-sitter client for OpenTUI's rich renderables
|
|
3
|
+
* (`<markdown>`, `<code>`, `<diff>`). One style instance for the whole app —
|
|
4
|
+
* SyntaxStyle allocates native state, and the renderables cache resolved
|
|
5
|
+
* style ids by name.
|
|
6
|
+
*
|
|
7
|
+
* Bun-only module (SyntaxStyle rides bun:ffi): components import it, the
|
|
8
|
+
* vitest-covered data layer must not. Rich rendering is gated on `RICH`
|
|
9
|
+
* (tokens.ts) — under NO_COLOR the plain text paths render instead, so this
|
|
10
|
+
* module is never touched in monochrome runs.
|
|
11
|
+
*
|
|
12
|
+
* Scope names come from OpenTUI's markdown renderer (`markup.*`, `conceal`,
|
|
13
|
+
* `default`) plus common tree-sitter capture names for code. `default` MUST
|
|
14
|
+
* carry an explicit fg: an empty style resolves to transparent and the text
|
|
15
|
+
* becomes invisible.
|
|
16
|
+
*/
|
|
17
|
+
import { getTreeSitterClient, SyntaxStyle, } from "@opentui/core";
|
|
18
|
+
import { AMBER, DIM, FAINT, FG, TEAL, TEAL_DIM } from "./tokens.js";
|
|
19
|
+
let style;
|
|
20
|
+
export function getSyntaxStyle() {
|
|
21
|
+
style ??= SyntaxStyle.fromStyles({
|
|
22
|
+
default: { fg: FG ?? "#D8D8D8" },
|
|
23
|
+
conceal: { fg: FAINT },
|
|
24
|
+
// Markdown (markup.* scopes).
|
|
25
|
+
"markup.heading": { fg: TEAL, bold: true },
|
|
26
|
+
"markup.strong": { fg: FG, bold: true },
|
|
27
|
+
"markup.italic": { fg: FG, italic: true },
|
|
28
|
+
"markup.strikethrough": { fg: DIM, dim: true },
|
|
29
|
+
"markup.raw": { fg: AMBER },
|
|
30
|
+
"markup.raw.block": { fg: FG },
|
|
31
|
+
"markup.link": { fg: TEAL, underline: true },
|
|
32
|
+
"markup.link.label": { fg: TEAL },
|
|
33
|
+
"markup.link.url": { fg: TEAL_DIM, underline: true },
|
|
34
|
+
"markup.list": { fg: TEAL },
|
|
35
|
+
"markup.quote": { fg: DIM, italic: true },
|
|
36
|
+
// Code (tree-sitter capture names; parsers bundled for ts/js/md/zig).
|
|
37
|
+
comment: { fg: FAINT, italic: true },
|
|
38
|
+
string: { fg: TEAL_DIM },
|
|
39
|
+
number: { fg: AMBER },
|
|
40
|
+
keyword: { fg: TEAL },
|
|
41
|
+
function: { fg: FG, bold: true },
|
|
42
|
+
type: { fg: TEAL },
|
|
43
|
+
constant: { fg: AMBER },
|
|
44
|
+
variable: { fg: FG },
|
|
45
|
+
operator: { fg: DIM },
|
|
46
|
+
punctuation: { fg: DIM },
|
|
47
|
+
});
|
|
48
|
+
return style;
|
|
49
|
+
}
|
|
50
|
+
/** Singleton worker-backed client; parsers load lazily per filetype. */
|
|
51
|
+
export function getTreeSitter() {
|
|
52
|
+
return getTreeSitterClient();
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=syntax.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syntax.js","sourceRoot":"","sources":["../../../src/theme/syntax.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EACL,mBAAmB,EACnB,WAAW,GAEZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEpE,IAAI,KAA8B,CAAC;AAEnC,MAAM,UAAU,cAAc;IAC5B,KAAK,KAAK,WAAW,CAAC,UAAU,CAAC;QAC/B,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,SAAS,EAAE;QAChC,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;QACtB,8BAA8B;QAC9B,gBAAgB,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;QAC1C,eAAe,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;QACvC,eAAe,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;QACzC,sBAAsB,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE;QAC9C,YAAY,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;QAC3B,kBAAkB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC9B,aAAa,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;QAC5C,mBAAmB,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;QACjC,iBAAiB,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE;QACpD,aAAa,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;QAC3B,cAAc,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;QACzC,sEAAsE;QACtE,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;QACpC,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;QACxB,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;QACrB,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;QACrB,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;QAChC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;QAClB,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;QACvB,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QACpB,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;QACrB,WAAW,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;KACzB,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,aAAa;IAC3B,OAAO,mBAAmB,EAAE,CAAC;AAC/B,CAAC"}
|
|
@@ -9,6 +9,12 @@
|
|
|
9
9
|
/** A theme color, or terminal default when running monochrome. */
|
|
10
10
|
export type Token = string | undefined;
|
|
11
11
|
export declare const MONO: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Rich renderables (markdown/code/diff) draw through SyntaxStyle, whose
|
|
14
|
+
* styles carry explicit colors — under NO_COLOR the TUI stays on the plain
|
|
15
|
+
* text paths instead, so the no-color guarantee holds end to end.
|
|
16
|
+
*/
|
|
17
|
+
export declare const RICH: boolean;
|
|
12
18
|
/** Pure selector, unit-testable; the constants below are ambient bindings. */
|
|
13
19
|
export declare function palette(mono: boolean): Record<"TEAL" | "TEAL_DIM" | "AMBER" | "RED" | "DIM" | "FAINT" | "FG", Token>;
|
|
14
20
|
export declare const TEAL: Token;
|
|
@@ -7,6 +7,12 @@
|
|
|
7
7
|
* glyphs, labels, and position carry it — so the UI stays fully legible.
|
|
8
8
|
*/
|
|
9
9
|
export const MONO = Boolean(process.env.NO_COLOR && process.env.NO_COLOR !== "");
|
|
10
|
+
/**
|
|
11
|
+
* Rich renderables (markdown/code/diff) draw through SyntaxStyle, whose
|
|
12
|
+
* styles carry explicit colors — under NO_COLOR the TUI stays on the plain
|
|
13
|
+
* text paths instead, so the no-color guarantee holds end to end.
|
|
14
|
+
*/
|
|
15
|
+
export const RICH = !MONO;
|
|
10
16
|
/** Pure selector, unit-testable; the constants below are ambient bindings. */
|
|
11
17
|
export function palette(mono) {
|
|
12
18
|
if (mono) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/theme/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC;AAEjF,8EAA8E;AAC9E,MAAM,UAAU,OAAO,CAAC,IAAa;IAInC,IAAI,IAAI,EAAE,CAAC;QACT,OAAO;YACL,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,SAAS;YACd,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,SAAS;YAChB,EAAE,EAAE,SAAS;SACd,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,SAAS;QAChB,EAAE,EAAE,SAAS;KACd,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAExB,MAAM,CAAC,MAAM,IAAI,GAAU,CAAC,CAAC,IAAI,CAAC;AAClC,MAAM,CAAC,MAAM,QAAQ,GAAU,CAAC,CAAC,QAAQ,CAAC;AAC1C,MAAM,CAAC,MAAM,KAAK,GAAU,CAAC,CAAC,KAAK,CAAC;AACpC,MAAM,CAAC,MAAM,GAAG,GAAU,CAAC,CAAC,GAAG,CAAC;AAChC,MAAM,CAAC,MAAM,GAAG,GAAU,CAAC,CAAC,GAAG,CAAC;AAChC,MAAM,CAAC,MAAM,KAAK,GAAU,CAAC,CAAC,KAAK,CAAC;AACpC,MAAM,CAAC,MAAM,EAAE,GAAU,CAAC,CAAC,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/theme/tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC;AAEjF;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC;AAE1B,8EAA8E;AAC9E,MAAM,UAAU,OAAO,CAAC,IAAa;IAInC,IAAI,IAAI,EAAE,CAAC;QACT,OAAO;YACL,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,SAAS;YACd,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,SAAS;YAChB,EAAE,EAAE,SAAS;SACd,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,SAAS;QAChB,EAAE,EAAE,SAAS;KACd,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAExB,MAAM,CAAC,MAAM,IAAI,GAAU,CAAC,CAAC,IAAI,CAAC;AAClC,MAAM,CAAC,MAAM,QAAQ,GAAU,CAAC,CAAC,QAAQ,CAAC;AAC1C,MAAM,CAAC,MAAM,KAAK,GAAU,CAAC,CAAC,KAAK,CAAC;AACpC,MAAM,CAAC,MAAM,GAAG,GAAU,CAAC,CAAC,GAAG,CAAC;AAChC,MAAM,CAAC,MAAM,GAAG,GAAU,CAAC,CAAC,GAAG,CAAC;AAChC,MAAM,CAAC,MAAM,KAAK,GAAU,CAAC,CAAC,KAAK,CAAC;AACpC,MAAM,CAAC,MAAM,EAAE,GAAU,CAAC,CAAC,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON tree pane — renders jsonview rows with type-coded colors and
|
|
3
|
+
* expand/collapse markers. Mouse-first: click a container row to toggle it
|
|
4
|
+
* (the wheel scrolls the surrounding scrollbox); the keyboard stays wherever
|
|
5
|
+
* it was, matching the inspector's contract.
|
|
6
|
+
*/
|
|
7
|
+
import type { JsonRow } from "../lib/jsonview.js";
|
|
8
|
+
export declare function JsonRows({ rows, onToggle, }: {
|
|
9
|
+
rows: JsonRow[];
|
|
10
|
+
/** Click on an expandable row toggles it. */
|
|
11
|
+
onToggle?: ((row: JsonRow) => void) | undefined;
|
|
12
|
+
}): import("react").ReactNode;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@opentui/react/jsx-runtime";
|
|
2
|
+
import { G } from "../theme/glyphs.js";
|
|
3
|
+
import { AMBER, DIM, FAINT, FG, TEAL, TEAL_DIM } from "../theme/tokens.js";
|
|
4
|
+
const VALUE_COLOR = {
|
|
5
|
+
object: FAINT,
|
|
6
|
+
array: FAINT,
|
|
7
|
+
string: FG,
|
|
8
|
+
number: AMBER,
|
|
9
|
+
boolean: AMBER,
|
|
10
|
+
null: DIM,
|
|
11
|
+
};
|
|
12
|
+
export function JsonRows({ rows, onToggle, }) {
|
|
13
|
+
return (_jsx(_Fragment, { children: rows.map((row) => {
|
|
14
|
+
const marker = row.expandable ? (row.expanded ? G.expanded : G.collapsed) : " ";
|
|
15
|
+
return (_jsxs("text", { wrapMode: "word", onMouseDown: row.expandable && onToggle
|
|
16
|
+
? () => {
|
|
17
|
+
onToggle(row);
|
|
18
|
+
}
|
|
19
|
+
: undefined, children: [_jsx("span", { fg: FAINT, children: " ".repeat(row.depth) }), _jsxs("span", { fg: row.expandable ? TEAL_DIM : FAINT, children: [marker, " "] }), row.key !== undefined ? (_jsx("span", { fg: TEAL, children: row.key })) : (_jsx("span", { fg: TEAL_DIM, children: row.kind === "array" ? "array" : "object" })), _jsx("span", { fg: DIM, children: ": " }), _jsx("span", { fg: VALUE_COLOR[row.kind], children: row.value })] }, row.path));
|
|
20
|
+
}) }));
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=JsonPane.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonPane.js","sourceRoot":"","sources":["../../../src/ui/JsonPane.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAc,MAAM,oBAAoB,CAAC;AAEvF,MAAM,WAAW,GAAmC;IAClD,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,GAAG;CACV,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,EACvB,IAAI,EACJ,QAAQ,GAKT;IACC,OAAO,CACL,4BACG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAChB,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAChF,OAAO,CACL,gBAEE,QAAQ,EAAC,MAAM,EACf,WAAW,EACT,GAAG,CAAC,UAAU,IAAI,QAAQ;oBACxB,CAAC,CAAC,GAAG,EAAE;wBACH,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAChB,CAAC;oBACH,CAAC,CAAC,SAAS,aAGf,eAAM,EAAE,EAAE,KAAK,YAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAQ,EAChD,gBAAM,EAAE,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,aAAG,MAAM,SAAS,EAC5D,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CACvB,eAAM,EAAE,EAAE,IAAI,YAAG,GAAG,CAAC,GAAG,GAAQ,CACjC,CAAC,CAAC,CAAC,CACF,eAAM,EAAE,EAAE,QAAQ,YAAG,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,GAAQ,CACvE,EACD,eAAM,EAAE,EAAE,GAAG,YAAG,IAAI,GAAQ,EAC5B,eAAM,EAAE,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,YAAG,GAAG,CAAC,KAAK,GAAQ,KAlB9C,GAAG,CAAC,IAAI,CAmBR,CACR,CAAC;QACJ,CAAC,CAAC,GACD,CACJ,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type PickerItem } from "../lib/picker.js";
|
|
2
|
-
export declare function PickerPane({ items, cursor, windowStart, total, title, filter, dismissHint, }: {
|
|
2
|
+
export declare function PickerPane({ items, cursor, windowStart, total, title, filter, dismissHint, onPick, }: {
|
|
3
3
|
items: PickerItem[];
|
|
4
4
|
cursor: number;
|
|
5
5
|
windowStart: number;
|
|
@@ -7,4 +7,6 @@ export declare function PickerPane({ items, cursor, windowStart, total, title, f
|
|
|
7
7
|
title: string;
|
|
8
8
|
filter?: string | undefined;
|
|
9
9
|
dismissHint?: string | undefined;
|
|
10
|
+
/** Mouse: click a row to select it (item from the visible window). */
|
|
11
|
+
onPick?: ((item: PickerItem) => void) | undefined;
|
|
10
12
|
}): import("react").ReactNode;
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
|
|
|
2
2
|
import { pickerColumnWidths, truncatePickerText, } from "../lib/picker.js";
|
|
3
3
|
import { G } from "../theme/glyphs.js";
|
|
4
4
|
import { AMBER, FAINT, FG, TEAL, TEAL_DIM } from "../theme/tokens.js";
|
|
5
|
-
export function PickerPane({ items, cursor, windowStart, total, title, filter, dismissHint, }) {
|
|
5
|
+
export function PickerPane({ items, cursor, windowStart, total, title, filter, dismissHint, onPick, }) {
|
|
6
6
|
const { nameWidth, idWidth } = pickerColumnWidths();
|
|
7
7
|
return (_jsxs("box", { title: ` pick ${title}${filter ? ` · “${filter}”` : ""} `, style: {
|
|
8
8
|
border: true,
|
|
@@ -22,7 +22,11 @@ export function PickerPane({ items, cursor, windowStart, total, title, filter, d
|
|
|
22
22
|
const secondary = item.detail && item.detail !== item.label
|
|
23
23
|
? truncatePickerText(item.detail, idWidth)
|
|
24
24
|
: "";
|
|
25
|
-
return (_jsxs("text", { fg: active ? TEAL : FG,
|
|
25
|
+
return (_jsxs("text", { fg: active ? TEAL : FG, onMouseDown: onPick
|
|
26
|
+
? () => {
|
|
27
|
+
onPick(item);
|
|
28
|
+
}
|
|
29
|
+
: undefined, children: [`${marker} ${number} ${name}`, secondary ? (_jsx("span", { fg: FAINT, children: ` ${secondary}` })) : null] }, `${item.id}-${index}`));
|
|
26
30
|
})), _jsxs("text", { fg: FAINT, children: [total > items.length
|
|
27
31
|
? ` ${cursor + 1}/${total} · ↑↓ move · type to filter · Enter`
|
|
28
32
|
: ` ↑↓ move · type to filter · Enter select`, dismissHint ? ` · ${dismissHint}` : ""] })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PickerPane.js","sourceRoot":"","sources":["../../../src/ui/PickerPane.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GAEnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEtE,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,MAAM,EACN,WAAW,EACX,KAAK,EACL,KAAK,EACL,MAAM,EACN,WAAW,
|
|
1
|
+
{"version":3,"file":"PickerPane.js","sourceRoot":"","sources":["../../../src/ui/PickerPane.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GAEnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEtE,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,MAAM,EACN,WAAW,EACX,KAAK,EACL,KAAK,EACL,MAAM,EACN,WAAW,EACX,MAAM,GAWP;IACC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,kBAAkB,EAAE,CAAC;IACpD,OAAO,CACL,eACE,KAAK,EAAE,SAAS,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EACzD,KAAK,EAAE;YACL,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,QAAQ;YACrB,aAAa,EAAE,QAAQ;YACvB,QAAQ,EAAE,CAAC;YACX,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;SAChB,aAEA,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACpB,eAAM,EAAE,EAAE,KAAK,4BAAoB,CACpC,CAAC,CAAC,CAAC,CACF,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;gBACzB,MAAM,KAAK,GAAG,WAAW,GAAG,MAAM,CAAC;gBACnC,MAAM,MAAM,GAAG,KAAK,KAAK,MAAM,CAAC;gBAChC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;gBACxC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC7C,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACzE,MAAM,SAAS,GACb,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK;oBACvC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;oBAC1C,CAAC,CAAC,EAAE,CAAC;gBACT,OAAO,CACL,gBAEE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EACtB,WAAW,EACT,MAAM;wBACJ,CAAC,CAAC,GAAG,EAAE;4BACH,MAAM,CAAC,IAAI,CAAC,CAAC;wBACf,CAAC;wBACH,CAAC,CAAC,SAAS,aAGd,GAAG,MAAM,IAAI,MAAM,KAAK,IAAI,EAAE,EAC9B,SAAS,CAAC,CAAC,CAAC,CACX,eAAM,EAAE,EAAE,KAAK,YAAG,KAAK,SAAS,EAAE,GAAQ,CAC3C,CAAC,CAAC,CAAC,IAAI,KAbH,GAAG,IAAI,CAAC,EAAE,IAAI,KAAK,EAAE,CAcrB,CACR,CAAC;YACJ,CAAC,CAAC,CACH,EACD,gBAAM,EAAE,EAAE,KAAK,aACZ,KAAK,GAAG,KAAK,CAAC,MAAM;wBACnB,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,KAAK,qCAAqC;wBAC9D,CAAC,CAAC,0CAA0C,EAC7C,WAAW,CAAC,CAAC,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,IAClC,IACH,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2018-2024 Max Brunsfeld
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|