@timetotest/cli 0.1.10 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +201 -190
- package/dist/bin/ttt.js +4 -2
- package/dist/bin/ttt.js.map +1 -1
- package/dist/package.json +20 -3
- package/dist/src/commands/ask/AskApp.js +121 -0
- package/dist/src/commands/ask/AskApp.js.map +1 -0
- package/dist/src/commands/ask/components/AssistantResponse.js +31 -0
- package/dist/src/commands/ask/components/AssistantResponse.js.map +1 -0
- package/dist/src/commands/ask/components/Banner.js +15 -0
- package/dist/src/commands/ask/components/Banner.js.map +1 -0
- package/dist/src/commands/ask/components/ChatInput.js +93 -0
- package/dist/src/commands/ask/components/ChatInput.js.map +1 -0
- package/dist/src/commands/ask/components/Divider.js +17 -0
- package/dist/src/commands/ask/components/Divider.js.map +1 -0
- package/dist/src/commands/ask/components/IntroTips.js +19 -0
- package/dist/src/commands/ask/components/IntroTips.js.map +1 -0
- package/dist/src/commands/ask/components/MessageBubble.js +47 -0
- package/dist/src/commands/ask/components/MessageBubble.js.map +1 -0
- package/dist/src/commands/ask/components/SessionInfo.js +20 -0
- package/dist/src/commands/ask/components/SessionInfo.js.map +1 -0
- package/dist/src/commands/ask/components/StatusIndicator.js +67 -0
- package/dist/src/commands/ask/components/StatusIndicator.js.map +1 -0
- package/dist/src/commands/ask-ink.js +380 -0
- package/dist/src/commands/ask-ink.js.map +1 -0
- package/dist/src/commands/ask.js +138 -50
- package/dist/src/commands/ask.js.map +1 -1
- package/dist/src/commands/chat/ChatApp.js +125 -0
- package/dist/src/commands/chat/ChatApp.js.map +1 -0
- package/dist/src/commands/chat-ink.js +436 -0
- package/dist/src/commands/chat-ink.js.map +1 -0
- package/dist/src/commands/chat.js +82 -0
- package/dist/src/commands/chat.js.map +1 -0
- package/dist/src/commands/login.js +6 -4
- package/dist/src/commands/login.js.map +1 -1
- package/dist/src/commands/start-test.js +62 -88
- package/dist/src/commands/start-test.js.map +1 -1
- package/dist/src/commands/stream.js +9 -9
- package/dist/src/commands/stream.js.map +1 -1
- package/dist/src/commands/test.js +58 -125
- package/dist/src/commands/test.js.map +1 -1
- package/dist/src/lib/agent-orchestrator.js +546 -0
- package/dist/src/lib/agent-orchestrator.js.map +1 -0
- package/dist/src/lib/cloudinary-service.js +65 -0
- package/dist/src/lib/cloudinary-service.js.map +1 -0
- package/dist/src/lib/config.js +3 -2
- package/dist/src/lib/config.js.map +1 -1
- package/dist/src/lib/events.js +73 -60
- package/dist/src/lib/events.js.map +1 -1
- package/dist/src/lib/http.js +34 -1
- package/dist/src/lib/http.js.map +1 -1
- package/dist/src/lib/legacy-chat-runner.js +37 -0
- package/dist/src/lib/legacy-chat-runner.js.map +1 -0
- package/dist/src/lib/local-tools/api/api-discovery.js +17 -0
- package/dist/src/lib/local-tools/api/api-discovery.js.map +1 -0
- package/dist/src/lib/local-tools/api/build-request.js +20 -0
- package/dist/src/lib/local-tools/api/build-request.js.map +1 -0
- package/dist/src/lib/local-tools/api/extract-response-fields.js +26 -0
- package/dist/src/lib/local-tools/api/extract-response-fields.js.map +1 -0
- package/dist/src/lib/local-tools/api/generate-api-test.js +20 -0
- package/dist/src/lib/local-tools/api/generate-api-test.js.map +1 -0
- package/dist/src/lib/local-tools/api/generate-curl.js +8 -0
- package/dist/src/lib/local-tools/api/generate-curl.js.map +1 -0
- package/dist/src/lib/local-tools/api/get-api-parameters.js +17 -0
- package/dist/src/lib/local-tools/api/get-api-parameters.js.map +1 -0
- package/dist/src/lib/local-tools/api/index.js +10 -0
- package/dist/src/lib/local-tools/api/index.js.map +1 -0
- package/dist/src/lib/local-tools/api/request.js +43 -0
- package/dist/src/lib/local-tools/api/request.js.map +1 -0
- package/dist/src/lib/local-tools/api/set-auth-header.js +8 -0
- package/dist/src/lib/local-tools/api/set-auth-header.js.map +1 -0
- package/dist/src/lib/local-tools/api/types.js +2 -0
- package/dist/src/lib/local-tools/api/types.js.map +1 -0
- package/dist/src/lib/local-tools/api/utils.js +33 -0
- package/dist/src/lib/local-tools/api/utils.js.map +1 -0
- package/dist/src/lib/local-tools/api/validate-response.js +41 -0
- package/dist/src/lib/local-tools/api/validate-response.js.map +1 -0
- package/dist/src/lib/local-tools/file-tools.js +45 -0
- package/dist/src/lib/local-tools/file-tools.js.map +1 -0
- package/dist/src/lib/local-tools/general/discover-local-services.js +95 -0
- package/dist/src/lib/local-tools/general/discover-local-services.js.map +1 -0
- package/dist/src/lib/local-tools/general/index.js +2 -0
- package/dist/src/lib/local-tools/general/index.js.map +1 -0
- package/dist/src/lib/local-tools/ui/click-element.js +105 -0
- package/dist/src/lib/local-tools/ui/click-element.js.map +1 -0
- package/dist/src/lib/local-tools/ui/dom-rag.js +201 -0
- package/dist/src/lib/local-tools/ui/dom-rag.js.map +1 -0
- package/dist/src/lib/local-tools/ui/find-element.js +31 -0
- package/dist/src/lib/local-tools/ui/find-element.js.map +1 -0
- package/dist/src/lib/local-tools/ui/hover-element.js +94 -0
- package/dist/src/lib/local-tools/ui/hover-element.js.map +1 -0
- package/dist/src/lib/local-tools/ui/index.js +3 -0
- package/dist/src/lib/local-tools/ui/index.js.map +1 -0
- package/dist/src/lib/local-tools/ui/manage-tab.js +65 -0
- package/dist/src/lib/local-tools/ui/manage-tab.js.map +1 -0
- package/dist/src/lib/local-tools/ui/navigate.js +35 -0
- package/dist/src/lib/local-tools/ui/navigate.js.map +1 -0
- package/dist/src/lib/local-tools/ui/page-discovery.js +32 -0
- package/dist/src/lib/local-tools/ui/page-discovery.js.map +1 -0
- package/dist/src/lib/local-tools/ui/playwright-mcp.js +217 -0
- package/dist/src/lib/local-tools/ui/playwright-mcp.js.map +1 -0
- package/dist/src/lib/local-tools/ui/screenshot.js +19 -0
- package/dist/src/lib/local-tools/ui/screenshot.js.map +1 -0
- package/dist/src/lib/local-tools/ui/search-interactive-elements.js +18 -0
- package/dist/src/lib/local-tools/ui/search-interactive-elements.js.map +1 -0
- package/dist/src/lib/local-tools/ui/selector-resolver.js +153 -0
- package/dist/src/lib/local-tools/ui/selector-resolver.js.map +1 -0
- package/dist/src/lib/local-tools/ui/snapshot-query.js +129 -0
- package/dist/src/lib/local-tools/ui/snapshot-query.js.map +1 -0
- package/dist/src/lib/local-tools/ui/type-text.js +40 -0
- package/dist/src/lib/local-tools/ui/type-text.js.map +1 -0
- package/dist/src/lib/local-tools/ui/types.js +2 -0
- package/dist/src/lib/local-tools/ui/types.js.map +1 -0
- package/dist/src/lib/local-tools/utility/finish-overall-test.js +12 -0
- package/dist/src/lib/local-tools/utility/finish-overall-test.js.map +1 -0
- package/dist/src/lib/local-tools/utility/index.js +2 -0
- package/dist/src/lib/local-tools/utility/index.js.map +1 -0
- package/dist/src/lib/prompts/builder.js +38 -0
- package/dist/src/lib/prompts/builder.js.map +1 -0
- package/dist/src/lib/prompts/index.js +7 -0
- package/dist/src/lib/prompts/index.js.map +1 -0
- package/dist/src/lib/prompts/templates.js +166 -0
- package/dist/src/lib/prompts/templates.js.map +1 -0
- package/dist/src/lib/session-manager.js +201 -0
- package/dist/src/lib/session-manager.js.map +1 -0
- package/dist/src/lib/socket.js +78 -6
- package/dist/src/lib/socket.js.map +1 -1
- package/dist/src/lib/testing-mode.js +33 -0
- package/dist/src/lib/testing-mode.js.map +1 -0
- package/dist/src/lib/tool-descriptions.js +59 -0
- package/dist/src/lib/tool-descriptions.js.map +1 -0
- package/dist/src/lib/tool-executor.js +537 -0
- package/dist/src/lib/tool-executor.js.map +1 -0
- package/dist/src/lib/tool-registry.js +803 -0
- package/dist/src/lib/tool-registry.js.map +1 -0
- package/dist/src/lib/tool-result-pruner.js +384 -0
- package/dist/src/lib/tool-result-pruner.js.map +1 -0
- package/dist/src/lib/tui/components/AskIntro.js +6 -0
- package/dist/src/lib/tui/components/AskIntro.js.map +1 -0
- package/dist/src/lib/tui/components/Banner.js +15 -0
- package/dist/src/lib/tui/components/Banner.js.map +1 -0
- package/dist/src/lib/tui/components/Divider.js +17 -0
- package/dist/src/lib/tui/components/Divider.js.map +1 -0
- package/dist/src/lib/tui/components/EventLine.js +110 -0
- package/dist/src/lib/tui/components/EventLine.js.map +1 -0
- package/dist/src/lib/tui/components/Header.js +15 -0
- package/dist/src/lib/tui/components/Header.js.map +1 -0
- package/dist/src/lib/tui/components/InputBox.js +9 -0
- package/dist/src/lib/tui/components/InputBox.js.map +1 -0
- package/dist/src/lib/tui/components/Mapping.js +8 -0
- package/dist/src/lib/tui/components/Mapping.js.map +1 -0
- package/dist/src/lib/tui/components/ProjectList.js +6 -0
- package/dist/src/lib/tui/components/ProjectList.js.map +1 -0
- package/dist/src/lib/tui/components/Spinner.js +20 -0
- package/dist/src/lib/tui/components/Spinner.js.map +1 -0
- package/dist/src/lib/tui/components/StatusBanner.js +12 -0
- package/dist/src/lib/tui/components/StatusBanner.js.map +1 -0
- package/dist/src/lib/tui/components/StatusBar.js +11 -0
- package/dist/src/lib/tui/components/StatusBar.js.map +1 -0
- package/dist/src/lib/tui/components/UserBubble.js +6 -0
- package/dist/src/lib/tui/components/UserBubble.js.map +1 -0
- package/dist/src/lib/tui/components/index.js +16 -0
- package/dist/src/lib/tui/components/index.js.map +1 -0
- package/dist/src/lib/tui/events.js +716 -76
- package/dist/src/lib/tui/events.js.map +1 -1
- package/dist/src/lib/tui/icons.js +14 -0
- package/dist/src/lib/tui/icons.js.map +1 -1
- package/dist/src/lib/tui/ink-print.js +41 -0
- package/dist/src/lib/tui/ink-print.js.map +1 -0
- package/dist/src/lib/tui/interactive-chat.js +345 -0
- package/dist/src/lib/tui/interactive-chat.js.map +1 -0
- package/dist/src/lib/tui/print.js +31 -26
- package/dist/src/lib/tui/print.js.map +1 -1
- package/dist/src/lib/tui/prompt.js +21 -18
- package/dist/src/lib/tui/prompt.js.map +1 -1
- package/dist/src/test-agent-flow.js +148 -0
- package/dist/src/test-agent-flow.js.map +1 -0
- package/dist/src/test-browser-session.js +152 -0
- package/dist/src/test-browser-session.js.map +1 -0
- package/dist/src/test-browser-snapshot.js +187 -0
- package/dist/src/test-browser-snapshot.js.map +1 -0
- package/dist/src/test-snapshot-detailed.js +219 -0
- package/dist/src/test-snapshot-detailed.js.map +1 -0
- package/dist/src/test-snapshot-simple.js +85 -0
- package/dist/src/test-snapshot-simple.js.map +1 -0
- package/dist/src/test-snapshot-tabs.js +110 -0
- package/dist/src/test-snapshot-tabs.js.map +1 -0
- package/package.json +20 -3
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
import { stripAnsi } from "../utils.js";
|
|
4
|
+
export function Header({ title, subtitles = [] }) {
|
|
5
|
+
const lines = [title, ...subtitles];
|
|
6
|
+
const maxLen = Math.max(...lines.map((l) => stripAnsi(l).length));
|
|
7
|
+
const width = Math.min(Math.max(maxLen + 4, 28), 80);
|
|
8
|
+
const borderLine = "─".repeat(width - 2);
|
|
9
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: "gray", children: ["\u250C", borderLine, "\u2510"] }), lines.map((line, i) => {
|
|
10
|
+
const pad = width - 2 - stripAnsi(line).length;
|
|
11
|
+
const padding = " ".repeat(Math.max(0, pad - 1));
|
|
12
|
+
return (_jsxs(Text, { children: [_jsx(Text, { color: "gray", children: "\u2502" }), " ", line, padding, _jsx(Text, { color: "gray", children: "\u2502" })] }, i));
|
|
13
|
+
}), _jsxs(Text, { color: "gray", children: ["\u2514", borderLine, "\u2518"] })] }));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=Header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../../../src/lib/tui/components/Header.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,KAAK,CAAC;AAC9B,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAOtC,MAAM,UAAU,MAAM,CAAC,EAAC,KAAK,EAAE,SAAS,GAAG,EAAE,EAAc;IACzD,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,GAAG,SAAS,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAEzC,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,uBAAG,UAAU,cAAS,EACvC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBACrB,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;gBAC/C,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjD,OAAO,CACL,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,uBAAS,EAC1B,GAAG,EACH,IAAI,EACJ,OAAO,EACR,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,uBAAS,KALlB,CAAC,CAML,CACR,CAAC;YACJ,CAAC,CAAC,EACF,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,uBAAG,UAAU,cAAS,IACpC,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
import { stripAnsi } from "../utils.js";
|
|
4
|
+
export function InputBox({ placeholder }) {
|
|
5
|
+
const width = Math.min(Math.max(stripAnsi(placeholder).length + 8, 32), 80);
|
|
6
|
+
const borderLine = "─".repeat(width - 2);
|
|
7
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { color: "gray", children: ["\u250C", borderLine, "\u2510"] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "cyan", children: ">" }), " ", _jsx(Text, { dimColor: true, children: placeholder })] }), _jsxs(Text, { color: "gray", children: ["\u2514", borderLine, "\u2518"] })] }));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=InputBox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputBox.js","sourceRoot":"","sources":["../../../../../src/lib/tui/components/InputBox.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,KAAK,CAAC;AAC9B,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAMtC,MAAM,UAAU,QAAQ,CAAC,EAAC,WAAW,EAAgB;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5E,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAEzC,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,uBAAG,UAAU,cAAS,EACxC,MAAC,IAAI,eACF,IAAI,EACL,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,GAAG,GAAQ,OAAC,KAAC,IAAI,IAAC,QAAQ,kBAAE,WAAW,GAAQ,IAC9D,EACP,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,uBAAG,UAAU,cAAS,IACpC,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Text } from "ink";
|
|
3
|
+
import { icons } from "../icons.js";
|
|
4
|
+
export function Mapping({ title, from, to }) {
|
|
5
|
+
const timestamp = new Date().toISOString().slice(11, 19);
|
|
6
|
+
return (_jsxs(Text, { children: [_jsxs(Text, { dimColor: true, children: ["[", timestamp, "]"] }), " ", icons.tunnel, " ", _jsx(Text, { color: "gray", children: title }), " ", from, " ", _jsx(Text, { color: "gray", children: "\u2192" }), " ", _jsx(Text, { color: "cyan", children: to })] }));
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=Mapping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Mapping.js","sourceRoot":"","sources":["../../../../../src/lib/tui/components/Mapping.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,IAAI,EAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAC;AAQlC,MAAM,UAAU,OAAO,CAAC,EAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAe;IACrD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAEzD,OAAO,CACL,MAAC,IAAI,eACH,MAAC,IAAI,IAAC,QAAQ,wBAAG,SAAS,SAAS,OAAE,KAAK,CAAC,MAAM,OAAE,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,KAAK,GAAQ,EAAC,GAAG,EACvF,IAAI,OAAE,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,uBAAS,OAAC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,EAAE,GAAQ,IAC5D,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
export function ProjectList({ projects }) {
|
|
4
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { bold: true, children: "Available Projects:" }), projects.map((project, idx) => (_jsxs(Text, { children: [idx + 1, ". ", project.name, " ", _jsxs(Text, { dimColor: true, children: ["(ID: ", project.id, ")"] })] }, project.id)))] }));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=ProjectList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectList.js","sourceRoot":"","sources":["../../../../../src/lib/tui/components/ProjectList.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,KAAK,CAAC;AAY9B,MAAM,UAAU,WAAW,CAAC,EAAC,QAAQ,EAAmB;IACtD,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,IAAI,IAAC,IAAI,0CAA2B,EACpC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAC9B,MAAC,IAAI,eACF,GAAG,GAAG,CAAC,QAAI,OAAO,CAAC,IAAI,OAAE,MAAC,IAAI,IAAC,QAAQ,4BAAO,OAAO,CAAC,EAAE,SAAS,KADzD,OAAO,CAAC,EAAE,CAEd,CACR,CAAC,IACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect } from "react";
|
|
3
|
+
import { Box, Text } from "ink";
|
|
4
|
+
const spinnerFrames = {
|
|
5
|
+
dots: ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"],
|
|
6
|
+
line: ["-", "\\", "|", "/"],
|
|
7
|
+
dots2: ["⣾", "⣽", "⣻", "⢿", "⡿", "⣟", "⣯", "⣷"],
|
|
8
|
+
};
|
|
9
|
+
export function Spinner({ text, type = "dots" }) {
|
|
10
|
+
const [frame, setFrame] = useState(0);
|
|
11
|
+
const frames = spinnerFrames[type];
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
const timer = setInterval(() => {
|
|
14
|
+
setFrame((prev) => (prev + 1) % frames.length);
|
|
15
|
+
}, 80);
|
|
16
|
+
return () => clearInterval(timer);
|
|
17
|
+
}, [frames.length]);
|
|
18
|
+
return (_jsxs(Box, { children: [_jsx(Text, { color: "cyan", children: frames[frame] }), text && (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsx(Text, { children: text })] }))] }));
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=Spinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spinner.js","sourceRoot":"","sources":["../../../../../src/lib/tui/components/Spinner.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAC,QAAQ,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AACjD,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,KAAK,CAAC;AAO9B,MAAM,aAAa,GAAG;IACpB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACxD,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC;IAC3B,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;CAChD,CAAC;AAEF,MAAM,UAAU,OAAO,CAAC,EAAC,IAAI,EAAE,IAAI,GAAG,MAAM,EAAe;IACzD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAEnC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC7B,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAEpB,OAAO,CACL,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,MAAM,CAAC,KAAK,CAAC,GAAQ,EACxC,IAAI,IAAI,CACP,8BACE,KAAC,IAAI,oBAAS,EACd,KAAC,IAAI,cAAE,IAAI,GAAQ,IAClB,CACJ,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
export function StatusBanner({ message, tone = "info" }) {
|
|
4
|
+
const palette = {
|
|
5
|
+
info: "cyan",
|
|
6
|
+
success: "green",
|
|
7
|
+
warn: "yellow",
|
|
8
|
+
};
|
|
9
|
+
const color = palette[tone];
|
|
10
|
+
return (_jsx(Box, { flexDirection: "column", marginBottom: 1, children: _jsxs(Text, { children: [_jsx(Text, { color: color, children: "\u25CF" }), " ", message] }) }));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=StatusBanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusBanner.js","sourceRoot":"","sources":["../../../../../src/lib/tui/components/StatusBanner.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,KAAK,CAAC;AAO9B,MAAM,UAAU,YAAY,CAAC,EAAC,OAAO,EAAE,IAAI,GAAG,MAAM,EAAoB;IACtE,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,QAAQ;KACN,CAAC;IAEX,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,YACzC,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,uBAAU,OAAE,OAAO,IAChC,GACH,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { Box, Text } from "ink";
|
|
4
|
+
import { accentText } from "../style.js";
|
|
5
|
+
export function StatusBar({ segments }) {
|
|
6
|
+
return (_jsx(Box, { children: segments.map((seg, i) => (_jsxs(React.Fragment, { children: [i > 0 && _jsx(Text, { color: "gray", children: " \u00B7 " }), _jsx(Text, { color: "gray", children: seg.label }), _jsx(Text, { children: " " }), seg.accent ? (_jsx(Text, { children: accentText(seg.value) })) : (_jsx(Text, { children: seg.value }))] }, i))) }));
|
|
7
|
+
}
|
|
8
|
+
export function StatusSegments({ segments }) {
|
|
9
|
+
return _jsx(StatusBar, { segments: segments });
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=StatusBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../../../src/lib/tui/components/StatusBar.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,KAAK,CAAC;AAC9B,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAYvC,MAAM,UAAU,SAAS,CAAC,EAAC,QAAQ,EAAiB;IAClD,OAAO,CACL,KAAC,GAAG,cACD,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CACxB,MAAC,KAAK,CAAC,QAAQ,eACZ,CAAC,GAAG,CAAC,IAAI,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,yBAAW,EACvC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,GAAG,CAAC,KAAK,GAAQ,EACrC,KAAC,IAAI,oBAAS,EACb,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CACZ,KAAC,IAAI,cAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAQ,CACrC,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,cAAE,GAAG,CAAC,KAAK,GAAQ,CACzB,KARkB,CAAC,CASL,CAClB,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAMD,MAAM,UAAU,cAAc,CAAC,EAAC,QAAQ,EAAsB;IAC5D,OAAO,KAAC,SAAS,IAAC,QAAQ,EAAE,QAAQ,GAAI,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
export function UserBubble({ message }) {
|
|
4
|
+
return (_jsx(Box, { flexDirection: "column", marginBottom: 1, children: _jsxs(Text, { children: [_jsx(Text, { color: "yellow", children: ">" }), " ", _jsx(Text, { color: "gray", children: message })] }) }));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=UserBubble.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserBubble.js","sourceRoot":"","sources":["../../../../../src/lib/tui/components/UserBubble.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,KAAK,CAAC;AAM9B,MAAM,UAAU,UAAU,CAAC,EAAC,OAAO,EAAkB;IACnD,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,YACzC,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,YAAE,GAAG,GAAQ,OAAC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,OAAO,GAAQ,IAChE,GACH,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Core display components
|
|
2
|
+
export { Header } from "./Header.js";
|
|
3
|
+
export { Banner } from "./Banner.js";
|
|
4
|
+
export { Divider } from "./Divider.js";
|
|
5
|
+
export { StatusBanner } from "./StatusBanner.js";
|
|
6
|
+
export { UserBubble } from "./UserBubble.js";
|
|
7
|
+
export { InputBox } from "./InputBox.js";
|
|
8
|
+
export { Mapping } from "./Mapping.js";
|
|
9
|
+
export { AskIntro } from "./AskIntro.js";
|
|
10
|
+
// Interactive components
|
|
11
|
+
export { ProjectList } from "./ProjectList.js";
|
|
12
|
+
export { StatusBar, StatusSegments } from "./StatusBar.js";
|
|
13
|
+
export { Spinner } from "./Spinner.js";
|
|
14
|
+
// Event components
|
|
15
|
+
export { EventLine, formatEventLines } from "./EventLine.js";
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/lib/tui/components/index.tsx"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACnC,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACnC,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AACrC,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AACrC,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAEvC,yBAAyB;AACzB,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,SAAS,EAAE,cAAc,EAAC,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAErC,mBAAmB;AACnB,OAAO,EAAC,SAAS,EAAE,gBAAgB,EAAC,MAAM,gBAAgB,CAAC"}
|