create-theokit 1.15.1 → 1.16.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-theokit",
3
- "version": "1.15.1",
3
+ "version": "1.16.0",
4
4
  "type": "module",
5
5
  "description": "Scaffold a new TheoKit project",
6
6
  "license": "Apache-2.0",
@@ -26,17 +26,27 @@ import { AGENT } from '../shared/agent.js'
26
26
  /** Shown in the status bar (from `shared/agent.ts`). */
27
27
  const MODEL = AGENT.model
28
28
  const CWD = process.cwd()
29
-
30
- /** The agent's opening line — the shared greeting plus TUI key hints, so the conversation starts warm. */
29
+ /** Claude Code's warm accent (truecolor; degrades gracefully on 256-color terminals). */
30
+ const ACCENT = '#d97757'
31
+ /** Whimsical status words cycled while the agent thinks (Claude Code idiom — the ✻ spinner rotates these). */
32
+ const THINKING_PHRASES = [
33
+ 'Thinking',
34
+ 'Pondering',
35
+ 'Noodling',
36
+ 'Percolating',
37
+ 'Baking',
38
+ 'Brewing',
39
+ 'Simmering',
40
+ 'Conjuring',
41
+ 'Musing',
42
+ 'Marinating',
43
+ ] as const
44
+
45
+ /** The agent's opening line — a short warm intro; the banner already carries the how-to tips. */
31
46
  const GREETING: UIMessageLike = {
32
47
  id: 'greeting',
33
48
  role: 'assistant',
34
- parts: [
35
- {
36
- type: 'text',
37
- text: `${AGENT.greeting} Type below and press Enter · / for commands · @ to mention a file · ? for help.`,
38
- },
39
- ],
49
+ parts: [{ type: 'text', text: AGENT.greeting }],
40
50
  }
41
51
 
42
52
  /** Resolve the provider key from the environment (OpenRouter / Anthropic / OpenAI). */
@@ -130,22 +140,28 @@ export function App(): ReactElement {
130
140
  }
131
141
 
132
142
  return (
133
- <TheoTUIProvider theme={{ base: 'dark', override: { accent: 'cyan' } }}>
143
+ <TheoTUIProvider theme={{ base: 'dark', override: { accent: ACCENT } }}>
134
144
  {/* InkInputProvider bridges Ink's stdin to @theokit/tui's interactive surfaces (ApprovalPrompt's
135
145
  choice bar) so they receive keys under plain Ink — the ChatComposer keeps using Ink's own hooks. */}
136
146
  <InkInputProvider>
137
147
  <Box flexDirection="column">
138
148
  <WelcomeBanner
139
- name="{{name}}"
140
- tagline="Your agent, in the terminal built with TheoKit."
141
- hints={['Enter sends · Alt+Enter for a newline', '/ commands · @ files · ? help · ctrl+c quits']}
149
+ name="✻ Welcome to {{name}}"
150
+ hints={['/help for help · /clear to reset', 'Enter sends · @ mentions a file · esc interrupts']}
142
151
  >
143
152
  <Text dimColor>cwd: {CWD}</Text>
144
153
  </WelcomeBanner>
145
154
 
146
155
  <AgentTimeline events={events} />
147
156
 
148
- {streaming ? <AgentStreaming thought="Thinking…" elapsedSeconds={elapsed} showCancelHint /> : null}
157
+ {streaming ? (
158
+ <AgentStreaming
159
+ phrases={THINKING_PHRASES}
160
+ shimmer
161
+ elapsedSeconds={elapsed}
162
+ showCancelHint
163
+ />
164
+ ) : null}
149
165
  {agent.error ? <Text color="red">⚠ {agent.error.message}</Text> : null}
150
166
 
151
167
  {showHelp ? <KeyboardHelp shortcuts={DEFAULT_COMPOSER_SHORTCUTS} /> : null}
@@ -163,13 +179,9 @@ export function App(): ReactElement {
163
179
  </ApprovalPrompt>
164
180
  ) : (
165
181
  <ChatComposer
166
- placeholder="Ask your agent (Enter sends · / commands · @ files · ? help)"
182
+ placeholder="Ask {{name}} anything…"
167
183
  bordered
168
- hint={
169
- exitArmed
170
- ? 'Press Ctrl+C again to quit'
171
- : 'Enter sends · Alt+Enter newline · / commands · @ files · ? help · esc cancels'
172
- }
184
+ hint={exitArmed ? 'Press Ctrl+C again to quit' : '? for shortcuts'}
173
185
  commands={[
174
186
  { name: 'clear', description: 'clear the conversation' },
175
187
  { name: 'help', description: 'toggle the keyboard shortcuts panel' },