zerg-ztc 0.1.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 +361 -0
- package/dist/App.d.ts +4 -0
- package/dist/App.d.ts.map +1 -0
- package/dist/App.js +499 -0
- package/dist/App.js.map +1 -0
- package/dist/agent/agent.d.ts +54 -0
- package/dist/agent/agent.d.ts.map +1 -0
- package/dist/agent/agent.js +347 -0
- package/dist/agent/agent.js.map +1 -0
- package/dist/agent/backends/anthropic.d.ts +13 -0
- package/dist/agent/backends/anthropic.d.ts.map +1 -0
- package/dist/agent/backends/anthropic.js +54 -0
- package/dist/agent/backends/anthropic.js.map +1 -0
- package/dist/agent/backends/gemini.d.ts +13 -0
- package/dist/agent/backends/gemini.d.ts.map +1 -0
- package/dist/agent/backends/gemini.js +71 -0
- package/dist/agent/backends/gemini.js.map +1 -0
- package/dist/agent/backends/inception.d.ts +12 -0
- package/dist/agent/backends/inception.d.ts.map +1 -0
- package/dist/agent/backends/inception.js +15 -0
- package/dist/agent/backends/inception.js.map +1 -0
- package/dist/agent/backends/index.d.ts +7 -0
- package/dist/agent/backends/index.d.ts.map +1 -0
- package/dist/agent/backends/index.js +6 -0
- package/dist/agent/backends/index.js.map +1 -0
- package/dist/agent/backends/openai.d.ts +12 -0
- package/dist/agent/backends/openai.d.ts.map +1 -0
- package/dist/agent/backends/openai.js +15 -0
- package/dist/agent/backends/openai.js.map +1 -0
- package/dist/agent/backends/openai_compatible.d.ts +17 -0
- package/dist/agent/backends/openai_compatible.d.ts.map +1 -0
- package/dist/agent/backends/openai_compatible.js +95 -0
- package/dist/agent/backends/openai_compatible.js.map +1 -0
- package/dist/agent/backends/types.d.ts +49 -0
- package/dist/agent/backends/types.d.ts.map +1 -0
- package/dist/agent/backends/types.js +2 -0
- package/dist/agent/backends/types.js.map +1 -0
- package/dist/agent/commands/clipboard.d.ts +3 -0
- package/dist/agent/commands/clipboard.d.ts.map +1 -0
- package/dist/agent/commands/clipboard.js +72 -0
- package/dist/agent/commands/clipboard.js.map +1 -0
- package/dist/agent/commands/config.d.ts +3 -0
- package/dist/agent/commands/config.d.ts.map +1 -0
- package/dist/agent/commands/config.js +120 -0
- package/dist/agent/commands/config.js.map +1 -0
- package/dist/agent/commands/debug.d.ts +3 -0
- package/dist/agent/commands/debug.d.ts.map +1 -0
- package/dist/agent/commands/debug.js +23 -0
- package/dist/agent/commands/debug.js.map +1 -0
- package/dist/agent/commands/emulation.d.ts +3 -0
- package/dist/agent/commands/emulation.d.ts.map +1 -0
- package/dist/agent/commands/emulation.js +78 -0
- package/dist/agent/commands/emulation.js.map +1 -0
- package/dist/agent/commands/execution.d.ts +3 -0
- package/dist/agent/commands/execution.d.ts.map +1 -0
- package/dist/agent/commands/execution.js +8 -0
- package/dist/agent/commands/execution.js.map +1 -0
- package/dist/agent/commands/help.d.ts +3 -0
- package/dist/agent/commands/help.d.ts.map +1 -0
- package/dist/agent/commands/help.js +19 -0
- package/dist/agent/commands/help.js.map +1 -0
- package/dist/agent/commands/history.d.ts +3 -0
- package/dist/agent/commands/history.d.ts.map +1 -0
- package/dist/agent/commands/history.js +12 -0
- package/dist/agent/commands/history.js.map +1 -0
- package/dist/agent/commands/index.d.ts +4 -0
- package/dist/agent/commands/index.d.ts.map +1 -0
- package/dist/agent/commands/index.js +19 -0
- package/dist/agent/commands/index.js.map +1 -0
- package/dist/agent/commands/model.d.ts +3 -0
- package/dist/agent/commands/model.d.ts.map +1 -0
- package/dist/agent/commands/model.js +10 -0
- package/dist/agent/commands/model.js.map +1 -0
- package/dist/agent/commands/models.d.ts +3 -0
- package/dist/agent/commands/models.d.ts.map +1 -0
- package/dist/agent/commands/models.js +110 -0
- package/dist/agent/commands/models.js.map +1 -0
- package/dist/agent/commands/permissions.d.ts +3 -0
- package/dist/agent/commands/permissions.d.ts.map +1 -0
- package/dist/agent/commands/permissions.js +58 -0
- package/dist/agent/commands/permissions.js.map +1 -0
- package/dist/agent/commands/retry.d.ts +3 -0
- package/dist/agent/commands/retry.d.ts.map +1 -0
- package/dist/agent/commands/retry.js +8 -0
- package/dist/agent/commands/retry.js.map +1 -0
- package/dist/agent/commands/shell.d.ts +4 -0
- package/dist/agent/commands/shell.d.ts.map +1 -0
- package/dist/agent/commands/shell.js +66 -0
- package/dist/agent/commands/shell.js.map +1 -0
- package/dist/agent/commands/skills.d.ts +3 -0
- package/dist/agent/commands/skills.d.ts.map +1 -0
- package/dist/agent/commands/skills.js +50 -0
- package/dist/agent/commands/skills.js.map +1 -0
- package/dist/agent/commands/status.d.ts +3 -0
- package/dist/agent/commands/status.d.ts.map +1 -0
- package/dist/agent/commands/status.js +18 -0
- package/dist/agent/commands/status.js.map +1 -0
- package/dist/agent/commands/types.d.ts +70 -0
- package/dist/agent/commands/types.d.ts.map +1 -0
- package/dist/agent/commands/types.js +2 -0
- package/dist/agent/commands/types.js.map +1 -0
- package/dist/agent/factory.d.ts +13 -0
- package/dist/agent/factory.d.ts.map +1 -0
- package/dist/agent/factory.js +46 -0
- package/dist/agent/factory.js.map +1 -0
- package/dist/agent/index.d.ts +14 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +10 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/runtime/capabilities.d.ts +7 -0
- package/dist/agent/runtime/capabilities.d.ts.map +1 -0
- package/dist/agent/runtime/capabilities.js +8 -0
- package/dist/agent/runtime/capabilities.js.map +1 -0
- package/dist/agent/runtime/memory.d.ts +13 -0
- package/dist/agent/runtime/memory.d.ts.map +1 -0
- package/dist/agent/runtime/memory.js +13 -0
- package/dist/agent/runtime/memory.js.map +1 -0
- package/dist/agent/runtime/policy.d.ts +22 -0
- package/dist/agent/runtime/policy.d.ts.map +1 -0
- package/dist/agent/runtime/policy.js +29 -0
- package/dist/agent/runtime/policy.js.map +1 -0
- package/dist/agent/runtime/session.d.ts +11 -0
- package/dist/agent/runtime/session.d.ts.map +1 -0
- package/dist/agent/runtime/session.js +10 -0
- package/dist/agent/runtime/session.js.map +1 -0
- package/dist/agent/runtime/tracing.d.ts +13 -0
- package/dist/agent/runtime/tracing.d.ts.map +1 -0
- package/dist/agent/runtime/tracing.js +6 -0
- package/dist/agent/runtime/tracing.js.map +1 -0
- package/dist/agent/tools/file.d.ts +5 -0
- package/dist/agent/tools/file.d.ts.map +1 -0
- package/dist/agent/tools/file.js +162 -0
- package/dist/agent/tools/file.js.map +1 -0
- package/dist/agent/tools/index.d.ts +13 -0
- package/dist/agent/tools/index.d.ts.map +1 -0
- package/dist/agent/tools/index.js +34 -0
- package/dist/agent/tools/index.js.map +1 -0
- package/dist/agent/tools/search.d.ts +3 -0
- package/dist/agent/tools/search.d.ts.map +1 -0
- package/dist/agent/tools/search.js +124 -0
- package/dist/agent/tools/search.js.map +1 -0
- package/dist/agent/tools/shell.d.ts +3 -0
- package/dist/agent/tools/shell.d.ts.map +1 -0
- package/dist/agent/tools/shell.js +60 -0
- package/dist/agent/tools/shell.js.map +1 -0
- package/dist/agent/tools/skills.d.ts +3 -0
- package/dist/agent/tools/skills.d.ts.map +1 -0
- package/dist/agent/tools/skills.js +27 -0
- package/dist/agent/tools/skills.js.map +1 -0
- package/dist/agent/tools/types.d.ts +8 -0
- package/dist/agent/tools/types.d.ts.map +1 -0
- package/dist/agent/tools/types.js +2 -0
- package/dist/agent/tools/types.js.map +1 -0
- package/dist/agent/tools/zerg.d.ts +3 -0
- package/dist/agent/tools/zerg.d.ts.map +1 -0
- package/dist/agent/tools/zerg.js +47 -0
- package/dist/agent/tools/zerg.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +75 -0
- package/dist/cli.js.map +1 -0
- package/dist/components/FullScreen.d.ts +28 -0
- package/dist/components/FullScreen.d.ts.map +1 -0
- package/dist/components/FullScreen.js +40 -0
- package/dist/components/FullScreen.js.map +1 -0
- package/dist/components/Header.d.ts +10 -0
- package/dist/components/Header.d.ts.map +1 -0
- package/dist/components/Header.js +14 -0
- package/dist/components/Header.js.map +1 -0
- package/dist/components/InputArea.d.ts +24 -0
- package/dist/components/InputArea.d.ts.map +1 -0
- package/dist/components/InputArea.js +476 -0
- package/dist/components/InputArea.js.map +1 -0
- package/dist/components/MessageList.d.ts +12 -0
- package/dist/components/MessageList.d.ts.map +1 -0
- package/dist/components/MessageList.js +9 -0
- package/dist/components/MessageList.js.map +1 -0
- package/dist/components/StatusBar.d.ts +18 -0
- package/dist/components/StatusBar.d.ts.map +1 -0
- package/dist/components/StatusBar.js +21 -0
- package/dist/components/StatusBar.js.map +1 -0
- package/dist/components/index.d.ts +6 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +7 -0
- package/dist/components/index.js.map +1 -0
- package/dist/config/types.d.ts +12 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config.d.ts +28 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +155 -0
- package/dist/config.js.map +1 -0
- package/dist/debug/logger.d.ts +2 -0
- package/dist/debug/logger.d.ts.map +1 -0
- package/dist/debug/logger.js +15 -0
- package/dist/debug/logger.js.map +1 -0
- package/dist/emulation/catalog.d.ts +4 -0
- package/dist/emulation/catalog.d.ts.map +1 -0
- package/dist/emulation/catalog.js +68 -0
- package/dist/emulation/catalog.js.map +1 -0
- package/dist/emulation/trace_style.d.ts +3 -0
- package/dist/emulation/trace_style.d.ts.map +1 -0
- package/dist/emulation/trace_style.js +10 -0
- package/dist/emulation/trace_style.js.map +1 -0
- package/dist/emulation/types.d.ts +8 -0
- package/dist/emulation/types.d.ts.map +1 -0
- package/dist/emulation/types.js +2 -0
- package/dist/emulation/types.js.map +1 -0
- package/dist/skills/index.d.ts +5 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +36 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/loader.d.ts +3 -0
- package/dist/skills/loader.d.ts.map +1 -0
- package/dist/skills/loader.js +137 -0
- package/dist/skills/loader.js.map +1 -0
- package/dist/skills/registry.d.ts +3 -0
- package/dist/skills/registry.d.ts.map +1 -0
- package/dist/skills/registry.js +5 -0
- package/dist/skills/registry.js.map +1 -0
- package/dist/skills/types.d.ts +11 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +2 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/types.d.ts +93 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/core/factory.d.ts +4 -0
- package/dist/ui/core/factory.d.ts.map +1 -0
- package/dist/ui/core/factory.js +7 -0
- package/dist/ui/core/factory.js.map +1 -0
- package/dist/ui/core/index.d.ts +5 -0
- package/dist/ui/core/index.d.ts.map +1 -0
- package/dist/ui/core/index.js +4 -0
- package/dist/ui/core/index.js.map +1 -0
- package/dist/ui/core/input.d.ts +22 -0
- package/dist/ui/core/input.d.ts.map +1 -0
- package/dist/ui/core/input.js +15 -0
- package/dist/ui/core/input.js.map +1 -0
- package/dist/ui/core/input_segments.d.ts +19 -0
- package/dist/ui/core/input_segments.d.ts.map +1 -0
- package/dist/ui/core/input_segments.js +367 -0
- package/dist/ui/core/input_segments.js.map +1 -0
- package/dist/ui/core/input_state.d.ts +24 -0
- package/dist/ui/core/input_state.d.ts.map +1 -0
- package/dist/ui/core/input_state.js +2 -0
- package/dist/ui/core/input_state.js.map +1 -0
- package/dist/ui/core/layout_yoga.d.ts +11 -0
- package/dist/ui/core/layout_yoga.d.ts.map +1 -0
- package/dist/ui/core/layout_yoga.js +102 -0
- package/dist/ui/core/layout_yoga.js.map +1 -0
- package/dist/ui/core/style.d.ts +3 -0
- package/dist/ui/core/style.d.ts.map +1 -0
- package/dist/ui/core/style.js +37 -0
- package/dist/ui/core/style.js.map +1 -0
- package/dist/ui/core/types.d.ts +50 -0
- package/dist/ui/core/types.d.ts.map +1 -0
- package/dist/ui/core/types.js +2 -0
- package/dist/ui/core/types.js.map +1 -0
- package/dist/ui/ink/index.d.ts +2 -0
- package/dist/ui/ink/index.d.ts.map +1 -0
- package/dist/ui/ink/index.js +2 -0
- package/dist/ui/ink/index.js.map +1 -0
- package/dist/ui/ink/render.d.ts +6 -0
- package/dist/ui/ink/render.d.ts.map +1 -0
- package/dist/ui/ink/render.js +14 -0
- package/dist/ui/ink/render.js.map +1 -0
- package/dist/ui/views/app.d.ts +28 -0
- package/dist/ui/views/app.d.ts.map +1 -0
- package/dist/ui/views/app.js +59 -0
- package/dist/ui/views/app.js.map +1 -0
- package/dist/ui/views/header.d.ts +11 -0
- package/dist/ui/views/header.d.ts.map +1 -0
- package/dist/ui/views/header.js +28 -0
- package/dist/ui/views/header.js.map +1 -0
- package/dist/ui/views/input_area.d.ts +45 -0
- package/dist/ui/views/input_area.d.ts.map +1 -0
- package/dist/ui/views/input_area.js +183 -0
- package/dist/ui/views/input_area.js.map +1 -0
- package/dist/ui/views/message_list.d.ts +12 -0
- package/dist/ui/views/message_list.d.ts.map +1 -0
- package/dist/ui/views/message_list.js +381 -0
- package/dist/ui/views/message_list.js.map +1 -0
- package/dist/ui/views/status_bar.d.ts +18 -0
- package/dist/ui/views/status_bar.d.ts.map +1 -0
- package/dist/ui/views/status_bar.js +72 -0
- package/dist/ui/views/status_bar.js.map +1 -0
- package/dist/ui/vue/index.d.ts +5 -0
- package/dist/ui/vue/index.d.ts.map +1 -0
- package/dist/ui/vue/index.js +50 -0
- package/dist/ui/vue/index.js.map +1 -0
- package/dist/utils/clipboard.d.ts +2 -0
- package/dist/utils/clipboard.d.ts.map +1 -0
- package/dist/utils/clipboard.js +39 -0
- package/dist/utils/clipboard.js.map +1 -0
- package/dist/utils/clipboard_image.d.ts +2 -0
- package/dist/utils/clipboard_image.d.ts.map +1 -0
- package/dist/utils/clipboard_image.js +37 -0
- package/dist/utils/clipboard_image.js.map +1 -0
- package/dist/utils/diff.d.ts +2 -0
- package/dist/utils/diff.d.ts.map +1 -0
- package/dist/utils/diff.js +49 -0
- package/dist/utils/diff.js.map +1 -0
- package/dist/utils/image_preview.d.ts +2 -0
- package/dist/utils/image_preview.d.ts.map +1 -0
- package/dist/utils/image_preview.js +37 -0
- package/dist/utils/image_preview.js.map +1 -0
- package/dist/utils/models.d.ts +8 -0
- package/dist/utils/models.d.ts.map +1 -0
- package/dist/utils/models.js +85 -0
- package/dist/utils/models.js.map +1 -0
- package/dist/utils/shell.d.ts +4 -0
- package/dist/utils/shell.d.ts.map +1 -0
- package/dist/utils/shell.js +57 -0
- package/dist/utils/shell.js.map +1 -0
- package/dist/utils/tool_summary.d.ts +3 -0
- package/dist/utils/tool_summary.d.ts.map +1 -0
- package/dist/utils/tool_summary.js +54 -0
- package/dist/utils/tool_summary.js.map +1 -0
- package/dist/utils/tool_trace.d.ts +9 -0
- package/dist/utils/tool_trace.d.ts.map +1 -0
- package/dist/utils/tool_trace.js +183 -0
- package/dist/utils/tool_trace.js.map +1 -0
- package/package.json +41 -0
- package/src/App.tsx +576 -0
- package/src/agent/agent.ts +407 -0
- package/src/agent/backends/anthropic.ts +76 -0
- package/src/agent/backends/gemini.ts +107 -0
- package/src/agent/backends/inception.ts +23 -0
- package/src/agent/backends/index.ts +16 -0
- package/src/agent/backends/openai.ts +23 -0
- package/src/agent/backends/openai_compatible.ts +131 -0
- package/src/agent/backends/types.ts +59 -0
- package/src/agent/commands/clipboard.ts +77 -0
- package/src/agent/commands/config.ts +130 -0
- package/src/agent/commands/debug.ts +23 -0
- package/src/agent/commands/emulation.ts +80 -0
- package/src/agent/commands/execution.ts +9 -0
- package/src/agent/commands/help.ts +20 -0
- package/src/agent/commands/history.ts +13 -0
- package/src/agent/commands/index.ts +40 -0
- package/src/agent/commands/model.ts +11 -0
- package/src/agent/commands/models.ts +116 -0
- package/src/agent/commands/permissions.ts +64 -0
- package/src/agent/commands/retry.ts +9 -0
- package/src/agent/commands/shell.ts +68 -0
- package/src/agent/commands/skills.ts +54 -0
- package/src/agent/commands/status.ts +19 -0
- package/src/agent/commands/types.ts +78 -0
- package/src/agent/factory.ts +60 -0
- package/src/agent/index.ts +20 -0
- package/src/agent/runtime/capabilities.ts +6 -0
- package/src/agent/runtime/memory.ts +23 -0
- package/src/agent/runtime/policy.ts +48 -0
- package/src/agent/runtime/session.ts +18 -0
- package/src/agent/runtime/tracing.ts +23 -0
- package/src/agent/tools/file.ts +173 -0
- package/src/agent/tools/index.ts +46 -0
- package/src/agent/tools/search.ts +137 -0
- package/src/agent/tools/shell.ts +65 -0
- package/src/agent/tools/skills.ts +28 -0
- package/src/agent/tools/types.ts +10 -0
- package/src/agent/tools/zerg.ts +50 -0
- package/src/cli.tsx +80 -0
- package/src/components/FullScreen.tsx +73 -0
- package/src/components/Header.tsx +27 -0
- package/src/components/InputArea.tsx +551 -0
- package/src/components/MessageList.tsx +25 -0
- package/src/components/StatusBar.tsx +49 -0
- package/src/components/index.tsx +6 -0
- package/src/config/types.ts +11 -0
- package/src/config.ts +178 -0
- package/src/debug/logger.ts +14 -0
- package/src/emulation/README.md +24 -0
- package/src/emulation/catalog.ts +82 -0
- package/src/emulation/trace_style.ts +8 -0
- package/src/emulation/types.ts +7 -0
- package/src/skills/index.ts +36 -0
- package/src/skills/loader.ts +135 -0
- package/src/skills/registry.ts +6 -0
- package/src/skills/types.ts +10 -0
- package/src/types.ts +83 -0
- package/src/ui/README.md +44 -0
- package/src/ui/core/factory.ts +9 -0
- package/src/ui/core/index.ts +4 -0
- package/src/ui/core/input.ts +38 -0
- package/src/ui/core/input_segments.ts +375 -0
- package/src/ui/core/input_state.ts +17 -0
- package/src/ui/core/layout_yoga.ts +122 -0
- package/src/ui/core/style.ts +38 -0
- package/src/ui/core/types.ts +53 -0
- package/src/ui/ink/index.tsx +1 -0
- package/src/ui/ink/render.tsx +49 -0
- package/src/ui/views/app.ts +99 -0
- package/src/ui/views/header.ts +42 -0
- package/src/ui/views/input_area.ts +244 -0
- package/src/ui/views/message_list.ts +427 -0
- package/src/ui/views/status_bar.ts +104 -0
- package/src/ui/vue/index.ts +53 -0
- package/src/utils/clipboard.ts +39 -0
- package/src/utils/clipboard_image.ts +40 -0
- package/src/utils/diff.ts +52 -0
- package/src/utils/image_preview.ts +36 -0
- package/src/utils/models.ts +98 -0
- package/src/utils/shell.ts +63 -0
- package/src/utils/tool_summary.ts +56 -0
- package/src/utils/tool_trace.ts +206 -0
- package/tsconfig.json +22 -0
- package/vite.config.ts +363 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { LayoutNode } from './types.js';
|
|
2
|
+
export interface LayoutFrame {
|
|
3
|
+
node: LayoutNode;
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
width: number;
|
|
7
|
+
height: number;
|
|
8
|
+
children: LayoutFrame[];
|
|
9
|
+
}
|
|
10
|
+
export declare function computeLayout(root: LayoutNode, width: number, height: number): LayoutFrame;
|
|
11
|
+
//# sourceMappingURL=layout_yoga.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout_yoga.d.ts","sourceRoot":"","sources":["../../../src/ui/core/layout_yoga.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAmB,MAAM,YAAY,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAsGD,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAS1F"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import Yoga from 'yoga-layout';
|
|
2
|
+
function applyStyle(node, style) {
|
|
3
|
+
if (!style)
|
|
4
|
+
return;
|
|
5
|
+
if (style.flexDirection) {
|
|
6
|
+
node.setFlexDirection(style.flexDirection === 'row' ? Yoga.FLEX_DIRECTION_ROW : Yoga.FLEX_DIRECTION_COLUMN);
|
|
7
|
+
}
|
|
8
|
+
if (style.flexGrow !== undefined)
|
|
9
|
+
node.setFlexGrow(style.flexGrow);
|
|
10
|
+
if (style.flexShrink !== undefined)
|
|
11
|
+
node.setFlexShrink(style.flexShrink);
|
|
12
|
+
if (style.width !== undefined)
|
|
13
|
+
node.setWidth(style.width);
|
|
14
|
+
if (style.height !== undefined)
|
|
15
|
+
node.setHeight(style.height);
|
|
16
|
+
if (style.alignItems) {
|
|
17
|
+
const map = {
|
|
18
|
+
'flex-start': Yoga.ALIGN_FLEX_START,
|
|
19
|
+
'center': Yoga.ALIGN_CENTER,
|
|
20
|
+
'flex-end': Yoga.ALIGN_FLEX_END,
|
|
21
|
+
'stretch': Yoga.ALIGN_STRETCH
|
|
22
|
+
};
|
|
23
|
+
node.setAlignItems(map[style.alignItems]);
|
|
24
|
+
}
|
|
25
|
+
if (style.justifyContent) {
|
|
26
|
+
const map = {
|
|
27
|
+
'flex-start': Yoga.JUSTIFY_FLEX_START,
|
|
28
|
+
'center': Yoga.JUSTIFY_CENTER,
|
|
29
|
+
'flex-end': Yoga.JUSTIFY_FLEX_END,
|
|
30
|
+
'space-between': Yoga.JUSTIFY_SPACE_BETWEEN
|
|
31
|
+
};
|
|
32
|
+
node.setJustifyContent(map[style.justifyContent]);
|
|
33
|
+
}
|
|
34
|
+
const paddingX = style.paddingX ?? style.padding ?? 0;
|
|
35
|
+
const paddingY = style.paddingY ?? style.padding ?? 0;
|
|
36
|
+
const marginX = style.marginX ?? style.margin ?? 0;
|
|
37
|
+
const marginY = style.marginY ?? style.margin ?? 0;
|
|
38
|
+
node.setPadding(Yoga.EDGE_LEFT, style.paddingLeft ?? paddingX);
|
|
39
|
+
node.setPadding(Yoga.EDGE_RIGHT, style.paddingRight ?? paddingX);
|
|
40
|
+
node.setPadding(Yoga.EDGE_TOP, style.paddingTop ?? paddingY);
|
|
41
|
+
node.setPadding(Yoga.EDGE_BOTTOM, style.paddingBottom ?? paddingY);
|
|
42
|
+
node.setMargin(Yoga.EDGE_LEFT, style.marginLeft ?? marginX);
|
|
43
|
+
node.setMargin(Yoga.EDGE_RIGHT, style.marginRight ?? marginX);
|
|
44
|
+
node.setMargin(Yoga.EDGE_TOP, style.marginTop ?? marginY);
|
|
45
|
+
node.setMargin(Yoga.EDGE_BOTTOM, style.marginBottom ?? marginY);
|
|
46
|
+
}
|
|
47
|
+
function measureText(node, width) {
|
|
48
|
+
const text = node.text || '';
|
|
49
|
+
const wrap = node.style?.wrap ?? 'wrap';
|
|
50
|
+
if (!width || width <= 0) {
|
|
51
|
+
return { width: text.length, height: 1 };
|
|
52
|
+
}
|
|
53
|
+
if (wrap === 'truncate-end') {
|
|
54
|
+
return { width: Math.min(text.length, width), height: 1 };
|
|
55
|
+
}
|
|
56
|
+
const lines = Math.max(1, Math.ceil(text.length / width));
|
|
57
|
+
const lineWidth = Math.min(text.length, width);
|
|
58
|
+
return { width: lineWidth, height: lines };
|
|
59
|
+
}
|
|
60
|
+
function buildYogaTree(node) {
|
|
61
|
+
const yogaNode = Yoga.Node.create();
|
|
62
|
+
applyStyle(yogaNode, node.type === 'box' ? node.style : undefined);
|
|
63
|
+
if (node.type === 'text') {
|
|
64
|
+
yogaNode.setMeasureFunc((width, widthMode) => {
|
|
65
|
+
const availableWidth = widthMode === Yoga.MEASURE_MODE_UNDEFINED ? undefined : width;
|
|
66
|
+
const measured = measureText(node, availableWidth);
|
|
67
|
+
return { width: measured.width, height: measured.height };
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
for (const child of node.children) {
|
|
72
|
+
yogaNode.insertChild(buildYogaTree(child), yogaNode.getChildCount());
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return yogaNode;
|
|
76
|
+
}
|
|
77
|
+
function buildFrameTree(node, yogaNode) {
|
|
78
|
+
const children = [];
|
|
79
|
+
if (node.type === 'box') {
|
|
80
|
+
for (let i = 0; i < node.children.length; i += 1) {
|
|
81
|
+
children.push(buildFrameTree(node.children[i], yogaNode.getChild(i)));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
node,
|
|
86
|
+
x: yogaNode.getComputedLeft(),
|
|
87
|
+
y: yogaNode.getComputedTop(),
|
|
88
|
+
width: yogaNode.getComputedWidth(),
|
|
89
|
+
height: yogaNode.getComputedHeight(),
|
|
90
|
+
children
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
export function computeLayout(root, width, height) {
|
|
94
|
+
const yogaRoot = buildYogaTree(root);
|
|
95
|
+
yogaRoot.setWidth(width);
|
|
96
|
+
yogaRoot.setHeight(height);
|
|
97
|
+
yogaRoot.calculateLayout(width, height, Yoga.DIRECTION_LTR);
|
|
98
|
+
const frame = buildFrameTree(root, yogaRoot);
|
|
99
|
+
yogaRoot.freeRecursive();
|
|
100
|
+
return frame;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=layout_yoga.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout_yoga.js","sourceRoot":"","sources":["../../../src/ui/core/layout_yoga.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../../src/ui/core/style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,wBAAgB,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAmCzE"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export function toCssStyle(style) {
|
|
2
|
+
if (!style)
|
|
3
|
+
return {};
|
|
4
|
+
const paddingX = style.paddingX ?? style.padding ?? 0;
|
|
5
|
+
const paddingY = style.paddingY ?? style.padding ?? 0;
|
|
6
|
+
const marginX = style.marginX ?? style.margin ?? 0;
|
|
7
|
+
const marginY = style.marginY ?? style.margin ?? 0;
|
|
8
|
+
const css = {
|
|
9
|
+
display: 'flex',
|
|
10
|
+
flexDirection: style.flexDirection || 'column',
|
|
11
|
+
flexGrow: style.flexGrow ?? 0,
|
|
12
|
+
flexShrink: style.flexShrink ?? 0,
|
|
13
|
+
paddingLeft: style.paddingLeft ?? paddingX,
|
|
14
|
+
paddingRight: style.paddingRight ?? paddingX,
|
|
15
|
+
paddingTop: style.paddingTop ?? paddingY,
|
|
16
|
+
paddingBottom: style.paddingBottom ?? paddingY,
|
|
17
|
+
marginLeft: style.marginLeft ?? marginX,
|
|
18
|
+
marginRight: style.marginRight ?? marginX,
|
|
19
|
+
marginTop: style.marginTop ?? marginY,
|
|
20
|
+
marginBottom: style.marginBottom ?? marginY
|
|
21
|
+
};
|
|
22
|
+
if (style.alignItems)
|
|
23
|
+
css.alignItems = style.alignItems;
|
|
24
|
+
if (style.justifyContent)
|
|
25
|
+
css.justifyContent = style.justifyContent;
|
|
26
|
+
if (style.width !== undefined)
|
|
27
|
+
css.width = style.width;
|
|
28
|
+
if (style.height !== undefined)
|
|
29
|
+
css.height = style.height;
|
|
30
|
+
if (style.borderStyle) {
|
|
31
|
+
css.borderStyle = style.borderStyle;
|
|
32
|
+
css.borderWidth = 1;
|
|
33
|
+
css.borderColor = style.borderColor || 'currentColor';
|
|
34
|
+
}
|
|
35
|
+
return css;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=style.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.js","sourceRoot":"","sources":["../../../src/ui/core/style.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IAEtB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IAEnD,MAAM,GAAG,GAAoC;QAC3C,OAAO,EAAE,MAAM;QACf,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,QAAQ;QAC9C,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC;QAC7B,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,CAAC;QACjC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,QAAQ;QAC1C,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,QAAQ;QAC5C,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,QAAQ;QACxC,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,QAAQ;QAC9C,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,OAAO;QACvC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,OAAO;QACzC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,OAAO;QACrC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,OAAO;KAC5C,CAAC;IAEF,IAAI,KAAK,CAAC,UAAU;QAAE,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACxD,IAAI,KAAK,CAAC,cAAc;QAAE,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;IAEpE,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IACvD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;QAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC1D,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACpC,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC;QACpB,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,cAAc,CAAC;IACxD,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export type LayoutNode = BoxNode | TextNode;
|
|
2
|
+
export interface Style {
|
|
3
|
+
flexDirection?: 'row' | 'column';
|
|
4
|
+
flexGrow?: number;
|
|
5
|
+
flexShrink?: number;
|
|
6
|
+
width?: number;
|
|
7
|
+
height?: number;
|
|
8
|
+
padding?: number;
|
|
9
|
+
paddingX?: number;
|
|
10
|
+
paddingY?: number;
|
|
11
|
+
paddingLeft?: number;
|
|
12
|
+
paddingRight?: number;
|
|
13
|
+
paddingTop?: number;
|
|
14
|
+
paddingBottom?: number;
|
|
15
|
+
margin?: number;
|
|
16
|
+
marginX?: number;
|
|
17
|
+
marginY?: number;
|
|
18
|
+
marginLeft?: number;
|
|
19
|
+
marginRight?: number;
|
|
20
|
+
marginTop?: number;
|
|
21
|
+
marginBottom?: number;
|
|
22
|
+
alignItems?: 'flex-start' | 'center' | 'flex-end' | 'stretch';
|
|
23
|
+
justifyContent?: 'flex-start' | 'center' | 'flex-end' | 'space-between';
|
|
24
|
+
borderStyle?: string;
|
|
25
|
+
borderColor?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface TextStyle {
|
|
28
|
+
color?: string;
|
|
29
|
+
dimColor?: boolean;
|
|
30
|
+
bold?: boolean;
|
|
31
|
+
inverse?: boolean;
|
|
32
|
+
wrap?: 'wrap' | 'truncate-end';
|
|
33
|
+
badge?: {
|
|
34
|
+
type: 'paste' | 'file' | 'image';
|
|
35
|
+
preview: string;
|
|
36
|
+
full: string;
|
|
37
|
+
path?: string;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export interface BoxNode {
|
|
41
|
+
type: 'box';
|
|
42
|
+
style?: Style;
|
|
43
|
+
children: LayoutNode[];
|
|
44
|
+
}
|
|
45
|
+
export interface TextNode {
|
|
46
|
+
type: 'text';
|
|
47
|
+
text: string;
|
|
48
|
+
style?: TextStyle;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ui/core/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE5C,MAAM,WAAW,KAAK;IACpB,aAAa,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IAC9D,cAAc,CAAC,EAAE,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,eAAe,CAAC;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;IAC/B,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/ui/core/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/ink/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/ink/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/ui/ink/render.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAY,MAAM,kBAAkB,CAAC;AAiBxD,wBAAgB,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG,KAAK,CAAC,YAAY,CA6B1E"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
function renderText(node) {
|
|
4
|
+
const style = node.style || {};
|
|
5
|
+
return (_jsx(Text, { color: style.color, dimColor: style.dimColor, bold: style.bold, inverse: style.inverse, wrap: style.wrap, children: node.text }));
|
|
6
|
+
}
|
|
7
|
+
export function InkNode({ node }) {
|
|
8
|
+
if (node.type === 'text') {
|
|
9
|
+
return renderText(node);
|
|
10
|
+
}
|
|
11
|
+
const style = node.style || {};
|
|
12
|
+
return (_jsx(Box, { flexDirection: style.flexDirection, flexGrow: style.flexGrow, flexShrink: style.flexShrink, width: style.width, height: style.height, padding: style.padding, paddingX: style.paddingX, paddingY: style.paddingY, margin: style.margin, marginX: style.marginX, marginY: style.marginY, alignItems: style.alignItems, justifyContent: style.justifyContent, borderStyle: style.borderStyle, borderColor: style.borderColor, children: node.children.map((child, index) => (_jsx(InkNode, { node: child }, `${child.type}-${index}`))) }));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/ui/ink/render.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAiB,MAAM,KAAK,CAAC;AAG/C,SAAS,UAAU,CAAC,IAAc;IAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC/B,OAAO,CACL,KAAC,IAAI,IACH,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,IAAI,EAAE,KAAK,CAAC,IAAI,YAEf,IAAI,CAAC,IAAI,GACL,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,EAAE,IAAI,EAAwB;IACpD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC/B,OAAO,CACL,KAAC,GAAG,IACF,aAAa,EAAE,KAAK,CAAC,aAAa,EAClC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,cAAc,EAAE,KAAK,CAAC,cAAc,EACpC,WAAW,EAAE,KAAK,CAAC,WAAsC,EACzD,WAAW,EAAE,KAAK,CAAC,WAAW,YAE7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CACnC,KAAC,OAAO,IAAgC,IAAI,EAAE,KAAK,IAArC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,CAAiB,CACxD,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Message, AgentState } from '../../types.js';
|
|
2
|
+
import { InputState } from '../core/input_state.js';
|
|
3
|
+
import { LayoutNode } from '../core/index.js';
|
|
4
|
+
interface AppViewProps {
|
|
5
|
+
messages: Message[];
|
|
6
|
+
agentState: AgentState;
|
|
7
|
+
inputState: InputState;
|
|
8
|
+
sessionId: string;
|
|
9
|
+
cols: number;
|
|
10
|
+
rows: number;
|
|
11
|
+
commands: Array<{
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
usage?: string;
|
|
15
|
+
}>;
|
|
16
|
+
hasApiKey: boolean;
|
|
17
|
+
contextLength?: number;
|
|
18
|
+
contextEstimated?: boolean;
|
|
19
|
+
provider?: string;
|
|
20
|
+
model?: string;
|
|
21
|
+
emulationId?: string;
|
|
22
|
+
toast?: string | null;
|
|
23
|
+
debug?: boolean;
|
|
24
|
+
expandToolOutputs?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export declare function buildAppView({ messages, agentState, inputState, sessionId, cols, rows, commands, hasApiKey, contextLength, contextEstimated, provider, model, emulationId, toast, debug, expandToolOutputs }: AppViewProps): LayoutNode;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/ui/views/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAO,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAMnD,UAAU,YAAY;IACpB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvE,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAeD,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,KAAK,EACL,WAAW,EACX,KAAK,EACL,KAAa,EACb,iBAAyB,EAC1B,EAAE,YAAY,GAAG,UAAU,CAyC3B"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { box } from '../core/index.js';
|
|
2
|
+
import { buildHeaderView } from './header.js';
|
|
3
|
+
import { buildMessageListView } from './message_list.js';
|
|
4
|
+
import { buildInputAreaView, estimateInputLines } from './input_area.js';
|
|
5
|
+
import { buildStatusBarView } from './status_bar.js';
|
|
6
|
+
function estimateBadgePreviewLines(state) {
|
|
7
|
+
const segment = state.segments[state.cursor.index];
|
|
8
|
+
if (!segment || segment.type === 'text')
|
|
9
|
+
return 0;
|
|
10
|
+
if (segment.type === 'paste') {
|
|
11
|
+
const lines = segment.text.split('\n');
|
|
12
|
+
return Math.min(3, lines.length) + (lines.length > 3 ? 1 : 0);
|
|
13
|
+
}
|
|
14
|
+
if (segment.type === 'image') {
|
|
15
|
+
return 16;
|
|
16
|
+
}
|
|
17
|
+
return 1;
|
|
18
|
+
}
|
|
19
|
+
export function buildAppView({ messages, agentState, inputState, sessionId, cols, rows, commands, hasApiKey, contextLength, contextEstimated, provider, model, emulationId, toast, debug = false, expandToolOutputs = false }) {
|
|
20
|
+
const suggestionLines = 4;
|
|
21
|
+
const headerHeight = 6; // logo row + meta row + padding
|
|
22
|
+
const statusHeight = 1;
|
|
23
|
+
const inputLineCount = estimateInputLines(inputState.segments, cols);
|
|
24
|
+
const previewLines = estimateBadgePreviewLines(inputState);
|
|
25
|
+
const maxInputLines = Math.max(1, rows - (headerHeight + statusHeight + suggestionLines + 5));
|
|
26
|
+
const inputHeight = Math.min(Math.max(1, inputLineCount + previewLines), maxInputLines) + suggestionLines;
|
|
27
|
+
const contentHeight = Math.max(rows - (headerHeight + inputHeight + statusHeight), 5);
|
|
28
|
+
const placeholder = !hasApiKey ? 'Set API key with /config key <key>' :
|
|
29
|
+
agentState.status === 'thinking' ? 'Thinking...' :
|
|
30
|
+
agentState.status === 'tool_use' ? `Running ${agentState.currentTool}...` :
|
|
31
|
+
agentState.status === 'streaming' ? 'Streaming response...' :
|
|
32
|
+
'Type a message or /help for commands...';
|
|
33
|
+
return box([
|
|
34
|
+
buildHeaderView({ version: '0.1.0', debug }),
|
|
35
|
+
buildMessageListView({ messages, height: contentHeight, debug, expandToolOutputs }),
|
|
36
|
+
buildStatusBarView({
|
|
37
|
+
state: agentState,
|
|
38
|
+
sessionId,
|
|
39
|
+
version: '0.1.0',
|
|
40
|
+
connectionStatus: hasApiKey ? 'connected' : 'disconnected',
|
|
41
|
+
contextLength,
|
|
42
|
+
contextEstimated,
|
|
43
|
+
provider,
|
|
44
|
+
model,
|
|
45
|
+
emulationId,
|
|
46
|
+
toast,
|
|
47
|
+
debug
|
|
48
|
+
}),
|
|
49
|
+
buildInputAreaView({
|
|
50
|
+
state: inputState,
|
|
51
|
+
placeholder,
|
|
52
|
+
disabled: agentState.status !== 'idle' && agentState.status !== 'error',
|
|
53
|
+
commands,
|
|
54
|
+
cols,
|
|
55
|
+
debug
|
|
56
|
+
})
|
|
57
|
+
], { flexDirection: 'column' });
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/ui/views/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { LayoutNode } from '../core/index.js';
|
|
2
|
+
interface HeaderProps {
|
|
3
|
+
title?: string;
|
|
4
|
+
version?: string;
|
|
5
|
+
dateLabel?: string;
|
|
6
|
+
showHelp?: boolean;
|
|
7
|
+
debug?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function buildHeaderView({ title, version, dateLabel, showHelp, debug }: HeaderProps): LayoutNode;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../src/ui/views/header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEzD,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,eAAe,CAAC,EAC9B,KAA8B,EAC9B,OAAiB,EACjB,SAAS,EACT,QAAe,EACf,KAAa,EACd,EAAE,WAAW,GAAG,UAAU,CAyB1B"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { box, text } from '../core/index.js';
|
|
2
|
+
export function buildHeaderView({ title = 'Zerg Terminal Client', version = '0.1.0', dateLabel, showHelp = true, debug = false }) {
|
|
3
|
+
return box([
|
|
4
|
+
box([
|
|
5
|
+
text(title, { bold: true }),
|
|
6
|
+
text('ZTC', { color: 'gray', dimColor: true })
|
|
7
|
+
], {
|
|
8
|
+
flexDirection: 'column'
|
|
9
|
+
}),
|
|
10
|
+
showHelp
|
|
11
|
+
? box([
|
|
12
|
+
dateLabel ? text(dateLabel, { color: 'gray', dimColor: true }) : text('', {}),
|
|
13
|
+
dateLabel ? text(' • ', { color: 'gray', dimColor: true }) : text('', {}),
|
|
14
|
+
text(`v${version}`, { color: 'gray', dimColor: true }),
|
|
15
|
+
text(' • ', { color: 'gray', dimColor: true }),
|
|
16
|
+
text('Ctrl+C exit', { color: 'gray', dimColor: true }),
|
|
17
|
+
text(' • ', { color: 'gray', dimColor: true }),
|
|
18
|
+
text('/help', { color: 'gray', dimColor: true })
|
|
19
|
+
], { flexDirection: 'row' })
|
|
20
|
+
: box([], { flexDirection: 'row' })
|
|
21
|
+
], {
|
|
22
|
+
flexDirection: 'column',
|
|
23
|
+
justifyContent: 'space-between',
|
|
24
|
+
paddingX: 1,
|
|
25
|
+
paddingY: 1
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header.js","sourceRoot":"","sources":["../../../src/ui/views/header.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAc,MAAM,kBAAkB,CAAC;AAUzD,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,GAAG,sBAAsB,EAC9B,OAAO,GAAG,OAAO,EACjB,SAAS,EACT,QAAQ,GAAG,IAAI,EACf,KAAK,GAAG,KAAK,EACD;IACZ,OAAO,GAAG,CAAC;QACT,GAAG,CAAC;YACF,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SAC/C,EAAE;YACD,aAAa,EAAE,QAAQ;SACxB,CAAC;QACF,QAAQ;YACN,CAAC,CAAC,GAAG,CAAC;gBACF,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;gBAC7E,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;gBACzE,IAAI,CAAC,IAAI,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACtD,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAC9C,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACtD,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAC9C,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;aACjD,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;YAC9B,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;KACtC,EAAE;QACD,aAAa,EAAE,QAAQ;QACvB,cAAc,EAAE,eAAe;QAC/B,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;KACZ,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { InputState, InputSegment } from '../core/input_state.js';
|
|
2
|
+
import { LayoutNode } from '../core/index.js';
|
|
3
|
+
interface InputAreaViewProps {
|
|
4
|
+
state: InputState;
|
|
5
|
+
placeholder: string;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
commands?: Array<{
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
usage?: string;
|
|
11
|
+
}>;
|
|
12
|
+
cols?: number;
|
|
13
|
+
badgePreview?: string[] | null;
|
|
14
|
+
showBadgePreview?: boolean;
|
|
15
|
+
debug?: boolean;
|
|
16
|
+
renderContent?: boolean;
|
|
17
|
+
}
|
|
18
|
+
interface RenderToken {
|
|
19
|
+
text: string;
|
|
20
|
+
style?: {
|
|
21
|
+
color?: string;
|
|
22
|
+
dimColor?: boolean;
|
|
23
|
+
bold?: boolean;
|
|
24
|
+
inverse?: boolean;
|
|
25
|
+
badge?: {
|
|
26
|
+
type: 'paste' | 'file' | 'image';
|
|
27
|
+
preview: string;
|
|
28
|
+
full: string;
|
|
29
|
+
path?: string;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export declare function buildRenderTokens(segments: InputSegment[]): RenderToken[];
|
|
34
|
+
export declare function wrapInputSegments(segments: InputSegment[], cursor: {
|
|
35
|
+
index: number;
|
|
36
|
+
offset: number;
|
|
37
|
+
}, cols: number, prefixWidth?: number): {
|
|
38
|
+
lines: RenderToken[][];
|
|
39
|
+
cursorLine: number;
|
|
40
|
+
cursorCol: number;
|
|
41
|
+
};
|
|
42
|
+
export declare function estimateInputLines(segments: InputSegment[], cols: number): number;
|
|
43
|
+
export declare function buildInputAreaView({ state, placeholder, disabled, commands, cols, badgePreview, showBadgePreview, debug, renderContent }: InputAreaViewProps): LayoutNode;
|
|
44
|
+
export {};
|
|
45
|
+
//# sourceMappingURL=input_area.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input_area.d.ts","sourceRoot":"","sources":["../../../src/ui/views/input_area.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAa,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEzD,UAAU,kBAAkB;IAC1B,KAAK,EAAE,UAAU,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAMD,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE;YACvF,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;YACjC,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,CAAA;KAAE,CAAC;CACL;AAkCD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CAQzE;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,YAAY,EAAE,EACxB,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACzC,IAAI,EAAE,MAAM,EACZ,WAAW,SAAc,GACxB;IAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CA4DnE;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,WAAW,EACX,QAAgB,EAChB,QAAa,EACb,IAAS,EACT,YAAY,EACZ,gBAAwB,EACxB,KAAa,EACb,aAAoB,EACrB,EAAE,kBAAkB,GAAG,UAAU,CAuFjC"}
|