Yunfei He
6b504d2a36
docs: add early-stage disclaimer to README
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 22:52:09 +08:00
Yunfei He
638dd9fbc7
fix(coding-agent): harden edge cases from codex review
...
- Guard JSON.parse of tool arguments with try-catch
- Robust tool-call accumulation via Map (handles out-of-order deltas)
- Pass real ToolCall to onToolCall/onToolResult (correct ids in scrollback)
- Persist skipped tool calls to Static scrollback
- Flush partial streaming text on network errors
- Ensure empty assistant messages have content: "" (valid schema)
2026-05-24 22:49:57 +08:00
Yunfei He
4ac8a87507
fix(coding-agent): persist user messages and tool results to Static scrollback
2026-05-24 22:40:57 +08:00
Yunfei He
20b412ace1
refactor: convert all SFCs to script setup
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 22:39:11 +08:00
Yunfei He
9f9edcf991
fix(coding-agent): lazy-init OpenAI client to avoid top-level throw
2026-05-24 22:36:38 +08:00
Yunfei He
253fa8bfc6
feat(coding-agent): add API key validation in entry point
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 22:32:55 +08:00
Yunfei He
6a8a365d24
feat(coding-agent): implement App with state machine and Static/Dynamic split
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 22:32:07 +08:00
Yunfei He
b1da92e63c
feat(coding-agent): add MessageList component
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 22:30:48 +08:00
Yunfei He
242fc74b9c
feat(coding-agent): add streaming agent loop with DeepSeek
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 22:29:32 +08:00
Yunfei He
6aec92e16d
feat(coding-agent): add types and bash execution
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 22:27:27 +08:00
Yunfei He
795251a080
feat(examples): scaffold coding-agent example
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 22:26:21 +08:00
Yunfei He
f0443ef90e
docs: move Packages section up and expand descriptions
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 22:20:35 +08:00
Yunfei He
e87274fcda
docs: replace manual install with tiged starter in Getting Started
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 22:13:59 +08:00
Yunfei He
8bda124b9a
docs: polish README with install, examples, API overview, and testing
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 22:07:37 +08:00
Yunfei He
34a73c1b5f
fix: rename start to preview in remaining examples
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 21:48:09 +08:00
Yunfei He
48ff01a0f9
fix: rename flappy-bird package and use preview instead of start
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 21:47:26 +08:00
Yunfei He
abfdf89e3e
docs: update README tagline
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 21:45:29 +08:00
Yunfei He
d98bbb6369
chore: remove unused apps/website and packages/utils
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 21:41:13 +08:00
Yunfei He
625aa138f1
fix(cli): clean terminal output for TUI apps
...
- Silence Vite server logs (logLevel: 'silent')
- Intercept console.log/info/warn/error/debug in child process to
suppress [vite] and [Vue warn] noise from HMR client
- Add 3s startup grace period to ignore initial reload requests
(prevents double-spawn on first WS connection)
- Clear screen before spawning child process
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 21:39:28 +08:00
Yunfei He
d31e8b7a65
fix(cli): clear screen before spawning child process
...
Prevents Vite startup logs and connection messages from mixing
with the TUI app's output.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 21:23:26 +08:00
Yunfei He
020fd0d85a
feat: add basic-jsx and basic-template examples
...
- basic-jsx: Counter + Clock with defineComponent() + JSX
- basic-template: Counter + Clock with .vue SFC + <template>
- Both demonstrate HMR via vue-tui dev
- Fix vite-plugin: strip build.lib and external config for bundledDev,
add node builtins resolveId to prevent browser-external shimming
- Remove old hmr-demo example (superseded by basic-template)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 21:21:08 +08:00
Yunfei He
e8ef31814a
feat: add hmr-demo example with Vue SFC HMR
...
- Counter + Clock components demonstrating component-level HMR
- Fix hmr-loader: use project-root file:// URL prefix so Node's
bare specifier resolution finds node_modules
- Fix hmr-loader: export hooks directly instead of inline data URL
- Fix process-manager: register loader via data URL + register()
pointing to the file (matches spike pattern)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 20:48:52 +08:00
Yunfei He
81a640f3ba
feat(runtime): add HMR event bridge, DevOverlay, and dev mode wiring
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-24 20:01:07 +08:00
Yunfei He
d319e77540
feat(cli): add orchestrator and CLI entry point
...
Create dev.ts orchestrator wiring Vite dev server, bundle extractor, and
process manager together with HMR reload and crash-recovery logic.
Replace index.ts placeholder with full CLI entry supporting `vue-tui dev [entry]`.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-24 19:57:47 +08:00
Yunfei He
2b7d1250f4
feat(cli): scaffold @vue-tui/cli package with all modules
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-24 19:55:46 +08:00
Yunfei He
fda19b926d
docs: README with Ink credits, project website
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 18:14:06 +08:00
Yunfei He
544a826670
feat: flappy-bird and basic examples
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 18:13:57 +08:00
Yunfei He
a7f7d9957d
feat(runtime-tests): integration test suite
...
21 test files covering components, composables, focus, lifecycle,
and scheduler through the public render() API.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 18:13:53 +08:00
Yunfei He
71c517b79f
feat(testing): test harness for @vue-tui/runtime
...
Provides render() for integration testing — async with auto-flush,
trimmed frames, fake terminal with resize(), stdin.write() with
auto-flush, and auto-cleanup via afterEach.
Exports: render, cleanup, RenderResult, RenderOptions, Terminal
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 18:13:47 +08:00
Yunfei He
ff82f6e064
feat(runtime): Vue terminal renderer with Ink-aligned API
...
Custom Vue 3 renderer for terminal UIs, built on yoga-layout for
flexbox and chalk for styling.
Components: Box, Text, Newline, Spacer, Static, Transform
Composables: useExit, useInput, useFocus, useFocusManager,
useStdin, useStdout, useStderr, useTerminalSize
Entry: createApp(root) → app.mount(options) → app.waitUntilExit()
Focus: Ink-aligned Tab/Shift+Tab/Escape with Focusable[] ring
Internal subpath: @vue-tui/runtime/internal (yogaNodeTracker)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 18:13:33 +08:00
Yunfei He
def33588e3
chore: monorepo scaffold and shared config
...
Workspace setup with pnpm, Vite+, and shared TypeScript config.
Includes @vue-tui/utils and AGENTS.md project conventions.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 18:13:22 +08:00