paean 0.8.4 β†’ 0.8.6

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.
Files changed (70) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +126 -96
  3. package/dist/agent/index.d.ts +1 -1
  4. package/dist/agent/index.d.ts.map +1 -1
  5. package/dist/agent/index.js +1 -1
  6. package/dist/agent/index.js.map +1 -1
  7. package/dist/agent/renderer.d.ts +0 -53
  8. package/dist/agent/renderer.d.ts.map +1 -1
  9. package/dist/agent/renderer.js +2 -111
  10. package/dist/agent/renderer.js.map +1 -1
  11. package/dist/api/worker-api.d.ts +164 -0
  12. package/dist/api/worker-api.d.ts.map +1 -0
  13. package/dist/api/worker-api.js +87 -0
  14. package/dist/api/worker-api.js.map +1 -0
  15. package/dist/mcp/cli-agent-tools.d.ts +21 -0
  16. package/dist/mcp/cli-agent-tools.d.ts.map +1 -0
  17. package/dist/mcp/cli-agent-tools.js +457 -0
  18. package/dist/mcp/cli-agent-tools.js.map +1 -0
  19. package/dist/mcp/tools.d.ts.map +1 -1
  20. package/dist/mcp/tools.js +12 -1
  21. package/dist/mcp/tools.js.map +1 -1
  22. package/dist/ui/components/Header.d.ts.map +1 -1
  23. package/dist/ui/components/Header.js +6 -3
  24. package/dist/ui/components/Header.js.map +1 -1
  25. package/dist/ui/components/InputArea.d.ts.map +1 -1
  26. package/dist/ui/components/InputArea.js +5 -2
  27. package/dist/ui/components/InputArea.js.map +1 -1
  28. package/dist/ui/hooks/index.d.ts +1 -0
  29. package/dist/ui/hooks/index.d.ts.map +1 -1
  30. package/dist/ui/hooks/index.js +1 -0
  31. package/dist/ui/hooks/index.js.map +1 -1
  32. package/dist/ui/hooks/useTerminalSize.d.ts +14 -0
  33. package/dist/ui/hooks/useTerminalSize.d.ts.map +1 -0
  34. package/dist/ui/hooks/useTerminalSize.js +34 -0
  35. package/dist/ui/hooks/useTerminalSize.js.map +1 -0
  36. package/dist/ui/theme/branding.d.ts +0 -4
  37. package/dist/ui/theme/branding.d.ts.map +1 -1
  38. package/dist/ui/theme/branding.js +1 -38
  39. package/dist/ui/theme/branding.js.map +1 -1
  40. package/dist/ui/theme/index.d.ts +0 -1
  41. package/dist/ui/theme/index.d.ts.map +1 -1
  42. package/dist/ui/theme/index.js +0 -1
  43. package/dist/ui/theme/index.js.map +1 -1
  44. package/dist/ui/theme/ink-theme.d.ts +1 -1
  45. package/dist/ui/theme/ink-theme.d.ts.map +1 -1
  46. package/dist/ui/theme/ink-theme.js +15 -10
  47. package/dist/ui/theme/ink-theme.js.map +1 -1
  48. package/dist/utils/config.d.ts +1 -0
  49. package/dist/utils/config.d.ts.map +1 -1
  50. package/dist/utils/config.js.map +1 -1
  51. package/dist/worker/config.d.ts +101 -0
  52. package/dist/worker/config.d.ts.map +1 -0
  53. package/dist/worker/config.js +181 -0
  54. package/dist/worker/config.js.map +1 -0
  55. package/dist/worker/executors/index.d.ts +4 -2
  56. package/dist/worker/executors/index.d.ts.map +1 -1
  57. package/dist/worker/executors/index.js.map +1 -1
  58. package/dist/worker/index.d.ts +2 -1
  59. package/dist/worker/index.d.ts.map +1 -1
  60. package/dist/worker/index.js +4 -0
  61. package/dist/worker/index.js.map +1 -1
  62. package/dist/worker/service.d.ts +56 -1
  63. package/dist/worker/service.d.ts.map +1 -1
  64. package/dist/worker/service.js +241 -19
  65. package/dist/worker/service.js.map +1 -1
  66. package/dist/worker/types.d.ts +42 -0
  67. package/dist/worker/types.d.ts.map +1 -1
  68. package/dist/worker/types.js +31 -13
  69. package/dist/worker/types.js.map +1 -1
  70. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.8.6] - Responsive Terminal Layout (2026-01-26)
4
+
5
+ ### ✨ Features
6
+ - **Responsive Layout**: Added `useTerminalSize` hook for dynamic re-rendering on terminal resize.
7
+ - **Dynamic Separators**: Header and InputArea components now respond to window size changes in real-time.
8
+
9
+ ### πŸ”§ Technical
10
+ - New `useTerminalSize` hook using Ink's `useStdout` for reactive terminal dimensions.
11
+ - Improved UX with separator lines that automatically adjust to terminal width.
12
+
13
+
14
+ ## [0.8.5] - UI Cleanup and UX Enhancements (2026-01-26)
15
+
16
+ ### ✨ Features
17
+ - **CWD Display**: Added current working directory display in the interactive session header for better spatial awareness.
18
+
19
+ ### 🧹 Cleanup & Refactoring
20
+ - **Branding Consolidation**: Removed legacy ASCII logos and assets from `branding.ts`.
21
+ - **Theme Simplification**: Shifted to `ink-theme.ts` as the single source of truth for all UI assets.
22
+ - **Renderer Cleanup**: Removed over 12 unused legacy renderer functions to streamline the codebase and focus exclusively on Ink-based rendering.
23
+ - **Improved Type Safety**: Fixed internal lint errors and refined exports in the agent module.
24
+
25
+
3
26
  ## [0.7.7] - Bug Fixes and UX Improvements (2026-01-22)
4
27
 
5
28
  ### πŸ› Bug Fixes
package/README.md CHANGED
@@ -1,13 +1,17 @@
1
1
  # Paean CLI
2
2
 
3
- > Claude Code-like AI agent with local MCP integration and task management
3
+ > Claude Code-like AI agent with local autonomous workers, MCP integration, and task management
4
4
 
5
- **Paean CLI** is a powerful command-line AI agent that enables:
5
+ **Paean CLI** is a next-generation AI command-line interface designed for autonomous development. It combines interactive chat with powerful background workers and intelligent task routing.
6
6
 
7
- - **πŸ€– Agent Mode**: Interactive AI chat with streaming responses (default)
8
- - **πŸ”— Local MCP Integration**: Connect to local MCP servers for tool calling
9
- - **πŸ“‹ Task Management**: View, create, and manage tasks from the command line
10
- - **πŸ”Œ MCP Server Mode**: Act as an MCP server for AI coding assistants
7
+ ## ✨ Key Features
8
+
9
+ - **πŸ€– Interactive Agent Mode**: Chat with AI that understands your project context
10
+ - **πŸ‘· Autonomous Worker**: Background service for continuous task execution (24/7 operation)
11
+ - **🧠 Planning & Analysis**: Pre-flight project analysis and risk assessment
12
+ - **πŸ”— Local MCP Integration**: Connect any Model Context Protocol server
13
+ - **🚦 Intelligent Routing**: Auto-routes tasks to the best executor (Internal, Claude, Gemini, Cursor)
14
+ - **πŸ“Š Observability**: Full execution tracing and token cost tracking
11
15
 
12
16
  ## Installation
13
17
 
@@ -18,7 +22,7 @@ bun add -g paean
18
22
  # Or use npm
19
23
  npm install -g paean
20
24
 
21
- # Or use directly with npx
25
+ # Or run directly
22
26
  npx paean
23
27
  ```
24
28
 
@@ -30,102 +34,113 @@ npx paean
30
34
  paean login
31
35
  ```
32
36
 
33
- ### 2. Start Agent Mode (Default)
37
+ ### 2. Interactive Agent (Default)
38
+
39
+ The standard mode for day-to-day assistance.
34
40
 
35
41
  ```bash
36
- # Just run paean to start interactive AI chat
42
+ # Start interactive chat
37
43
  paean
38
44
 
39
- # Or send a single message
40
- paean -m "What can you help me with?"
45
+ # With planning mode (analyzes project before starting)
46
+ paean --plan
41
47
  ```
42
48
 
43
- ### 3. Use with Local MCP Servers
49
+ ### 3. Autonomous Worker
44
50
 
45
- Configure your MCP servers in `~/.paean/mcp_config.json`:
51
+ Offload long-running or complex tasks to the background worker.
46
52
 
47
- ```json
48
- {
49
- "mcpServers": {
50
- "vibe_kanban": {
51
- "command": "npx",
52
- "args": ["-y", "vibe-kanban@latest", "--mcp"]
53
- }
54
- }
55
- }
53
+ ```bash
54
+ # Execute a task using natural language (auto-detects strategy)
55
+ paean worker prompt "Refactor the authentication module to use JWT"
56
+
57
+ # Start the worker loop to process background tasks
58
+ paean worker start
56
59
  ```
57
60
 
58
- Then the agent can use your local tools:
61
+ ## πŸš€ Intelligent Worker System
62
+
63
+ The new **Paean Worker** allows for autonomous task execution with intelligent routing.
64
+
65
+ ### Quick Prompts (`paean prompt` / `paean worker prompt`)
66
+
67
+ Execute tasks without entering a chat session. The supervisor agent analyzes your request and decides the best execution strategy:
68
+ - **Direct**: Simple tasks executed immediately
69
+ - **Chain**: Sequential dependent steps for complex flows
70
+ - **Batch**: Parallel independent tasks for bulk operations
59
71
 
60
72
  ```bash
61
- paean
62
- You: Create a new task on my kanban board
63
- PΓ¦an: πŸ”— MCP: vibe_kanban β†’ create_task...
64
- βœ“ MCP: vibe_kanban β†’ create_task completed
65
- I've created the task on your kanban board!
73
+ # Simple usage
74
+ paean prompt "Analyze the current project structure"
75
+
76
+ # Force specific executor
77
+ paean prompt "Fix the login bug" --executor cursor
78
+
79
+ # Create a planned chain of tasks
80
+ paean prompt "Refactor utils, then update tests, then run build" --chain
66
81
  ```
67
82
 
68
- ## Agent Mode Options
83
+ ### Continuous Worker Mode
84
+
85
+ Start a persistent worker that polls for and executes tasks 24/7.
69
86
 
70
87
  ```bash
71
- paean # Start interactive mode
72
- paean --no-mcp # Disable local MCP integration
73
- paean -d, --debug # Enable debug logging
74
- paean -m "message" # Send a single message
88
+ paean worker start
75
89
  ```
76
90
 
77
- ## Task Management
91
+ Options:
92
+ - `--interval <ms>`: Polling interval (default: 30000ms)
93
+ - `--max-retries <n>`: Max retry attempts per task
94
+ - `--no-verification`: Disable the post-execution verification step
95
+
96
+ ### Available Executors
97
+
98
+ The supervisor routes tasks to specialized executors:
99
+ - **Internal**: Built-in Paean agent (default)
100
+ - **Claude**: Uses `claude` CLI for complex logic
101
+ - **Cursor**: Uses Cursor Agent for context-aware edits
102
+ - **Gemini**: Specialized for large context analysis
103
+ - **Codex**: Optimized for code generation
104
+
105
+ ## πŸ” Observability & Trace
106
+
107
+ Debug and analyze your agent's performance with the built-in trace system.
78
108
 
79
109
  ```bash
80
- paean tasks # List all tasks
81
- paean tasks --status pending # Filter by status
82
- paean tasks add "Task description" # Create task
83
- paean tasks complete <id> # Complete task
110
+ # View latest execution trace
111
+ paean trace --latest
112
+
113
+ # List all traces
114
+ paean trace
115
+
116
+ # Generate a usage report (success rates, token usage)
117
+ paean trace --report
84
118
  ```
85
119
 
86
- ## MCP Server Mode
120
+ ## πŸ› οΈ Utility Commands
87
121
 
88
- Run Paean as an MCP server for Cursor, Claude Desktop, or other AI assistants:
122
+ ### Context Generation
89
123
 
90
- ### Configure in Cursor
124
+ Generate a comprehensive context file for your AI agents (useful for manual prompt engineering).
91
125
 
92
- Add to `.cursor/mcp.json`:
126
+ ```bash
127
+ # Generate Markdown context
128
+ paean context -o .agent/context.md
93
129
 
94
- ```json
95
- {
96
- "mcpServers": {
97
- "paean": {
98
- "command": "npx",
99
- "args": ["paean", "serve"]
100
- }
101
- }
102
- }
130
+ # Generate JSON for tools
131
+ paean context --json
103
132
  ```
104
133
 
105
- ### Available MCP Tools
134
+ ### Task Validation
106
135
 
107
- | Tool | Description |
108
- | --------------------- | ------------------------------- |
109
- | `paean_list_tasks` | List tasks with filters |
110
- | `paean_create_task` | Create a new task |
111
- | `paean_complete_task` | Mark a task as completed |
112
- | `paean_update_task` | Update task status/priority |
113
- | `paean_add_subtask` | Add a subtask to an existing |
136
+ Verify if pending tasks have been completed by recent changes.
114
137
 
115
- ## Architecture
138
+ ```bash
139
+ # Check status
140
+ paean validate
116
141
 
117
- ```
118
- β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
119
- β”‚ You (CLI) │────▢│ Paean Cloud │────▢│ PΓ¦an Agent β”‚
120
- β”‚ (Agent Mode) β”‚ β”‚ (zero-api) β”‚ β”‚ (ADK) β”‚
121
- β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
122
- β”‚ β”‚ β”‚
123
- β”‚ β”‚ SSE: mcp_tool_call β”‚
124
- β–Ό β–Ό β”‚
125
- β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β—€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
126
- β”‚ Local MCP β”‚
127
- β”‚ (vibe-kanban) β”‚ ← Executes locally, returns result
128
- β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
142
+ # Check and auto-complete valid tasks
143
+ paean validate --auto-complete
129
144
  ```
130
145
 
131
146
  ## Configuration
@@ -134,17 +149,49 @@ Config stored in `~/.paean/`:
134
149
 
135
150
  - `config.json` - Auth and preferences
136
151
  - `mcp_config.json` - MCP server configuration
152
+ - `traces/` - Execution logs and debug data
137
153
 
138
- ## Programmatic Usage
154
+ ### MCP Configuration
139
155
 
140
- ```typescript
141
- import { agentService, startChat, McpClient } from 'paean';
156
+ Add servers to `~/.paean/mcp_config.json`:
142
157
 
143
- // Start interactive chat
144
- await startChat({ mcpState });
158
+ ```json
159
+ {
160
+ "mcpServers": {
161
+ "git": {
162
+ "command": "npx",
163
+ "args": ["-y", "@modelcontextprotocol/server-git"]
164
+ }
165
+ }
166
+ }
167
+ ```
168
+
169
+ ## Architecture
145
170
 
146
- // Or send a single message
147
- const response = await sendMessage("Hello");
171
+ ```
172
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
173
+ β”‚ Interactive β”‚ β”‚ Autonomous β”‚
174
+ β”‚ Agent UI β”‚ β”‚ Worker β”‚
175
+ β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
176
+ β”‚ β”‚
177
+ β–Ό β–Ό
178
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
179
+ β”‚ Supervisor Agent β”‚
180
+ β”‚ (Grooming, Routing, Verification) β”‚
181
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
182
+ β”‚
183
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
184
+ β–Ό β–Ό
185
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
186
+ β”‚ Internal β”‚ β”‚ External β”‚
187
+ β”‚ Executor β”‚ β”‚ Executor β”‚
188
+ β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜
189
+ β”‚ β”‚
190
+ β–Ό β–Ό
191
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
192
+ β”‚ Local MCP β”‚ β”‚ 3rd Party β”‚
193
+ β”‚ Servers β”‚ β”‚ CLI Tools β”‚
194
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
148
195
  ```
149
196
 
150
197
  ## Requirements
@@ -152,23 +199,6 @@ const response = await sendMessage("Hello");
152
199
  - Node.js 18+ or Bun
153
200
  - Paean AI account
154
201
 
155
- ## Development
156
-
157
- ### Running Locally
158
-
159
- For development and debugging, **use npm/node instead of bun** to run the interactive agent mode. The [Ink](https://github.com/vadimdemedes/ink) library (React for CLI) has compatibility issues with Bun's runtime:
160
-
161
- ```bash
162
- # Recommended: Use npm for development
163
- npm run dev:node
164
-
165
- # Or run directly with node
166
- node --import tsx src/cli.ts
167
-
168
- # Bun works for building but may have Ink rendering issues
169
- bun run dev # Not recommended for interactive mode
170
- ```
171
-
172
202
  ## Links
173
203
 
174
204
  - **Website**: https://paean.ai
@@ -4,7 +4,7 @@
4
4
  */
5
5
  export { AgentService, agentService } from './service.js';
6
6
  export { startChat, sendMessage } from './chat.ink.js';
7
- export { renderMarkdown, renderToolCall, renderToolResult, renderMcpToolCall, renderMcpToolResult, renderError, renderSuccess, renderPrompt, renderAgentLabel, renderWelcome, renderGoodbye, renderThinking, } from './renderer.js';
7
+ export { renderMarkdown, renderError, renderSuccess, getTerminalWidth, renderSparkletCreated, renderMediaGenerated, } from './renderer.js';
8
8
  export { createThinkingSpinner, createToolCallSpinner, createMcpSpinner, createLoadingSpinner, } from './spinner.js';
9
9
  export type { SpinnerController, SpinnerType } from './spinner.js';
10
10
  export { commandCompleter, renderCommandHelp, COMMANDS, getAllCommandNames, isCommand, getCommandDef, } from './completer.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EACH,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,cAAc,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EACH,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,GACvB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,kBAAkB,EAClB,SAAS,EACT,aAAa,GAChB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EACH,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,GACrB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,YAAY,EACR,gBAAgB,EAChB,oBAAoB,EACpB,QAAQ,EACR,aAAa,EACb,cAAc,EACd,eAAe,EACf,WAAW,GACd,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EACH,cAAc,EACd,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACH,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,GACvB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,kBAAkB,EAClB,SAAS,EACT,aAAa,GAChB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EACH,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,GACrB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,YAAY,EACR,gBAAgB,EAChB,oBAAoB,EACpB,QAAQ,EACR,aAAa,EACb,cAAc,EACd,eAAe,EACf,WAAW,GACd,MAAM,YAAY,CAAC"}
@@ -4,7 +4,7 @@
4
4
  */
5
5
  export { AgentService, agentService } from './service.js';
6
6
  export { startChat, sendMessage } from './chat.ink.js';
7
- export { renderMarkdown, renderToolCall, renderToolResult, renderMcpToolCall, renderMcpToolResult, renderError, renderSuccess, renderPrompt, renderAgentLabel, renderWelcome, renderGoodbye, renderThinking, } from './renderer.js';
7
+ export { renderMarkdown, renderError, renderSuccess, getTerminalWidth, renderSparkletCreated, renderMediaGenerated, } from './renderer.js';
8
8
  export { createThinkingSpinner, createToolCallSpinner, createMcpSpinner, createLoadingSpinner, } from './spinner.js';
9
9
  export { commandCompleter, renderCommandHelp, COMMANDS, getAllCommandNames, isCommand, getCommandDef, } from './completer.js';
10
10
  export { CLI_MODE_PROMPT, DEFAULT_CLI_MODE, createCliModeConfig, isCliModeActive, isRawStreamEnabled, } from './cli-mode.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EACH,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,cAAc,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EACH,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,GACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,kBAAkB,EAClB,SAAS,EACT,aAAa,GAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACH,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,GACrB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EACH,cAAc,EACd,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACH,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,GACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,kBAAkB,EAClB,SAAS,EACT,aAAa,GAChB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACH,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,GACrB,MAAM,eAAe,CAAC"}
@@ -7,22 +7,6 @@
7
7
  * Uses synchronous parsing to ensure consistent results
8
8
  */
9
9
  export declare function renderMarkdown(text: string): string;
10
- /**
11
- * Render a tool call indicator
12
- */
13
- export declare function renderToolCall(name: string): string;
14
- /**
15
- * Render a tool result indicator
16
- */
17
- export declare function renderToolResult(name: string, success?: boolean): string;
18
- /**
19
- * Render MCP tool call indicator
20
- */
21
- export declare function renderMcpToolCall(serverName: string, toolName: string): string;
22
- /**
23
- * Render MCP tool result indicator
24
- */
25
- export declare function renderMcpToolResult(serverName: string, toolName: string, success?: boolean): string;
26
10
  /**
27
11
  * Render an error message
28
12
  */
@@ -35,43 +19,6 @@ export declare function renderSuccess(message: string): string;
35
19
  * Get current terminal width
36
20
  */
37
21
  export declare function getTerminalWidth(): number;
38
- /**
39
- * Render the input separator line (top) - simple horizontal line
40
- */
41
- export declare function renderInputBoxTop(): string;
42
- /**
43
- * Render the input separator line (bottom)
44
- */
45
- export declare function renderInputBoxBottom(): string;
46
- /**
47
- * Render the agent prompt
48
- */
49
- export declare function renderPrompt(): string;
50
- /**
51
- * Render simple prompt (without box)
52
- */
53
- export declare function renderSimplePrompt(): string;
54
- /**
55
- * Render the agent label
56
- */
57
- export declare function renderAgentLabel(): string;
58
- /**
59
- * Render welcome message with clean styling
60
- */
61
- export declare function renderWelcome(mcpToolCount?: number): string;
62
- /**
63
- * Render goodbye message
64
- */
65
- export declare function renderGoodbye(): string;
66
- /**
67
- * Render thinking indicator
68
- */
69
- export declare function renderThinking(): string;
70
- /**
71
- * Indent multiline text for consistent display
72
- * Adds prefix to continuation lines after the first
73
- */
74
- export declare function indentMultilineResponse(text: string, indentSize?: number): string;
75
22
  /**
76
23
  * Render sparklet created indicator
77
24
  */
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/agent/renderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwDH;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAwBnD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,OAAc,GAAG,MAAM,CAG9E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC7B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACjB,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,OAAc,GACxB,MAAM,CAKR;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAI1C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAI7C;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAqB3D;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,MAAU,GAAG,MAAM,CAUpF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAChC,SAAS,EAAE,OAAO,GAAG,OAAO,EAC5B,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GACnB,MAAM,CAKR"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/agent/renderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkDH;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAwBnD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAChC,SAAS,EAAE,OAAO,GAAG,OAAO,EAC5B,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GACnB,MAAM,CAKR"}
@@ -5,7 +5,7 @@
5
5
  import { Marked } from 'marked';
6
6
  import { markedTerminal } from 'marked-terminal';
7
7
  import chalk from 'chalk';
8
- import { primary, primaryBold, secondary, success, warning, error, muted, bold, code as codeStyle, link, toolSymbol, mcpSymbol, symbols, getLogoAscii, } from '../ui/theme/index.js';
8
+ import { primary, primaryBold, success, error, muted, code as codeStyle, link, symbols, } from '../ui/theme/index.js';
9
9
  // Configure marked with terminal renderer
10
10
  // Use synchronous parsing by setting async: false
11
11
  const marked = new Marked();
@@ -64,32 +64,6 @@ export function renderMarkdown(text) {
64
64
  return text;
65
65
  }
66
66
  }
67
- /**
68
- * Render a tool call indicator
69
- */
70
- export function renderToolCall(name) {
71
- return muted(`${toolSymbol()} ${primary(name)}...`);
72
- }
73
- /**
74
- * Render a tool result indicator
75
- */
76
- export function renderToolResult(name, success = true) {
77
- const icon = success ? symbols.success : symbols.error;
78
- return muted(`${icon} Tool ${primary(name)} completed`);
79
- }
80
- /**
81
- * Render MCP tool call indicator
82
- */
83
- export function renderMcpToolCall(serverName, toolName) {
84
- return muted(`${mcpSymbol()} [${warning(serverName)}] ${primary(toolName)}...`);
85
- }
86
- /**
87
- * Render MCP tool result indicator
88
- */
89
- export function renderMcpToolResult(serverName, toolName, success = true) {
90
- const icon = success ? symbols.success : symbols.error;
91
- return muted(`${icon} [${warning(serverName)}] ${primary(toolName)} completed`);
92
- }
93
67
  /**
94
68
  * Render an error message
95
69
  */
@@ -108,94 +82,11 @@ export function renderSuccess(message) {
108
82
  export function getTerminalWidth() {
109
83
  return process.stdout.columns || 80;
110
84
  }
111
- /**
112
- * Render the input separator line (top) - simple horizontal line
113
- */
114
- export function renderInputBoxTop() {
115
- const width = getTerminalWidth();
116
- const line = '─'.repeat(width);
117
- return muted(line);
118
- }
119
- /**
120
- * Render the input separator line (bottom)
121
- */
122
- export function renderInputBoxBottom() {
123
- const width = getTerminalWidth();
124
- const line = '─'.repeat(width);
125
- return muted(line);
126
- }
127
- /**
128
- * Render the agent prompt
129
- */
130
- export function renderPrompt() {
131
- return `${primary('❯')} `;
132
- }
133
- /**
134
- * Render simple prompt (without box)
135
- */
136
- export function renderSimplePrompt() {
137
- return primaryBold('You: ');
138
- }
139
- /**
140
- * Render the agent label
141
- */
142
- export function renderAgentLabel() {
143
- return `${secondary('❯')} ${primaryBold('Pæan: ')}`;
144
- }
145
- /**
146
- * Render welcome message with clean styling
147
- */
148
- export function renderWelcome(mcpToolCount) {
149
- const width = getTerminalWidth();
150
- const line = '─'.repeat(width);
151
- const lines = [
152
- '',
153
- primary(getLogoAscii()),
154
- muted(line),
155
- bold(' Interactive Agent Session'),
156
- ];
157
- if (mcpToolCount !== undefined && mcpToolCount > 0) {
158
- lines.push(` ${mcpSymbol()} MCP: ${success(mcpToolCount.toString())} tools connected`);
159
- }
160
- lines.push(muted(' πŸ’‘ Type your message and press Enter to send'));
161
- lines.push(muted(' ⌨️ Type / then Tab for commands, Ctrl+C to exit'));
162
- lines.push(muted(line));
163
- lines.push('');
164
- return lines.join('\n');
165
- }
166
- /**
167
- * Render goodbye message
168
- */
169
- export function renderGoodbye() {
170
- return bold(primary('\nπŸ‘‹ Goodbye!\n'));
171
- }
172
- /**
173
- * Render thinking indicator
174
- */
175
- export function renderThinking() {
176
- return `${secondary('❯')} ${muted('πŸ’­ Thinking...')}`;
177
- }
178
- /**
179
- * Indent multiline text for consistent display
180
- * Adds prefix to continuation lines after the first
181
- */
182
- export function indentMultilineResponse(text, indentSize = 2) {
183
- const lines = text.split('\n');
184
- if (lines.length <= 1) {
185
- return text;
186
- }
187
- const indent = ' '.repeat(indentSize);
188
- return lines.map((line, index) => {
189
- if (index === 0)
190
- return line;
191
- return indent + line;
192
- }).join('\n');
193
- }
194
85
  /**
195
86
  * Render sparklet created indicator
196
87
  */
197
88
  export function renderSparkletCreated(hashKey, title) {
198
- return success(`\n✨ Sparklet created: ${bold(title)} (${hashKey.slice(0, 8)}...)\n`);
89
+ return success(`\n✨ Sparklet created: ${chalk.bold(title)} (${hashKey.slice(0, 8)}...)\n`);
199
90
  }
200
91
  /**
201
92
  * Render media generated indicator
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/agent/renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/agent/renderer.ts"],"names":[],"mappings":"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"}