codemeld 2.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.
Files changed (243) hide show
  1. package/README.md +514 -0
  2. package/bin/cli.js +2 -0
  3. package/dist/ai/agent.d.ts +124 -0
  4. package/dist/ai/agent.d.ts.map +1 -0
  5. package/dist/ai/agent.js +289 -0
  6. package/dist/ai/agent.js.map +1 -0
  7. package/dist/ai/index.d.ts +10 -0
  8. package/dist/ai/index.d.ts.map +1 -0
  9. package/dist/ai/index.js +10 -0
  10. package/dist/ai/index.js.map +1 -0
  11. package/dist/ai/prompts.d.ts +35 -0
  12. package/dist/ai/prompts.d.ts.map +1 -0
  13. package/dist/ai/prompts.js +166 -0
  14. package/dist/ai/prompts.js.map +1 -0
  15. package/dist/ai/refinement-loop.d.ts +29 -0
  16. package/dist/ai/refinement-loop.d.ts.map +1 -0
  17. package/dist/ai/refinement-loop.js +180 -0
  18. package/dist/ai/refinement-loop.js.map +1 -0
  19. package/dist/ai/tools.d.ts +17 -0
  20. package/dist/ai/tools.d.ts.map +1 -0
  21. package/dist/ai/tools.js +353 -0
  22. package/dist/ai/tools.js.map +1 -0
  23. package/dist/ai/visual-compare.d.ts +43 -0
  24. package/dist/ai/visual-compare.d.ts.map +1 -0
  25. package/dist/ai/visual-compare.js +176 -0
  26. package/dist/ai/visual-compare.js.map +1 -0
  27. package/dist/cli.d.ts +3 -0
  28. package/dist/cli.d.ts.map +1 -0
  29. package/dist/cli.js +179 -0
  30. package/dist/cli.js.map +1 -0
  31. package/dist/converter.d.ts +10 -0
  32. package/dist/converter.d.ts.map +1 -0
  33. package/dist/converter.js +836 -0
  34. package/dist/converter.js.map +1 -0
  35. package/dist/deconverter.d.ts +19 -0
  36. package/dist/deconverter.d.ts.map +1 -0
  37. package/dist/deconverter.js +188 -0
  38. package/dist/deconverter.js.map +1 -0
  39. package/dist/frameworks/angular-adapter.d.ts +27 -0
  40. package/dist/frameworks/angular-adapter.d.ts.map +1 -0
  41. package/dist/frameworks/angular-adapter.js +617 -0
  42. package/dist/frameworks/angular-adapter.js.map +1 -0
  43. package/dist/frameworks/index.d.ts +10 -0
  44. package/dist/frameworks/index.d.ts.map +1 -0
  45. package/dist/frameworks/index.js +21 -0
  46. package/dist/frameworks/index.js.map +1 -0
  47. package/dist/frameworks/nextjs-adapter.d.ts +22 -0
  48. package/dist/frameworks/nextjs-adapter.d.ts.map +1 -0
  49. package/dist/frameworks/nextjs-adapter.js +392 -0
  50. package/dist/frameworks/nextjs-adapter.js.map +1 -0
  51. package/dist/frameworks/react-adapter.d.ts +21 -0
  52. package/dist/frameworks/react-adapter.d.ts.map +1 -0
  53. package/dist/frameworks/react-adapter.js +71 -0
  54. package/dist/frameworks/react-adapter.js.map +1 -0
  55. package/dist/frameworks/svelte-adapter.d.ts +27 -0
  56. package/dist/frameworks/svelte-adapter.d.ts.map +1 -0
  57. package/dist/frameworks/svelte-adapter.js +519 -0
  58. package/dist/frameworks/svelte-adapter.js.map +1 -0
  59. package/dist/frameworks/types.d.ts +78 -0
  60. package/dist/frameworks/types.d.ts.map +1 -0
  61. package/dist/frameworks/types.js +2 -0
  62. package/dist/frameworks/types.js.map +1 -0
  63. package/dist/frameworks/vue-adapter.d.ts +34 -0
  64. package/dist/frameworks/vue-adapter.d.ts.map +1 -0
  65. package/dist/frameworks/vue-adapter.js +632 -0
  66. package/dist/frameworks/vue-adapter.js.map +1 -0
  67. package/dist/generators/accessibility-generator.d.ts +43 -0
  68. package/dist/generators/accessibility-generator.d.ts.map +1 -0
  69. package/dist/generators/accessibility-generator.js +507 -0
  70. package/dist/generators/accessibility-generator.js.map +1 -0
  71. package/dist/generators/asset-handler.d.ts +14 -0
  72. package/dist/generators/asset-handler.d.ts.map +1 -0
  73. package/dist/generators/asset-handler.js +79 -0
  74. package/dist/generators/asset-handler.js.map +1 -0
  75. package/dist/generators/build-verifier.d.ts +8 -0
  76. package/dist/generators/build-verifier.d.ts.map +1 -0
  77. package/dist/generators/build-verifier.js +64 -0
  78. package/dist/generators/build-verifier.js.map +1 -0
  79. package/dist/generators/component-extractor.d.ts +25 -0
  80. package/dist/generators/component-extractor.d.ts.map +1 -0
  81. package/dist/generators/component-extractor.js +146 -0
  82. package/dist/generators/component-extractor.js.map +1 -0
  83. package/dist/generators/component-generator.d.ts +12 -0
  84. package/dist/generators/component-generator.d.ts.map +1 -0
  85. package/dist/generators/component-generator.js +724 -0
  86. package/dist/generators/component-generator.js.map +1 -0
  87. package/dist/generators/deploy-generator.d.ts +9 -0
  88. package/dist/generators/deploy-generator.d.ts.map +1 -0
  89. package/dist/generators/deploy-generator.js +409 -0
  90. package/dist/generators/deploy-generator.js.map +1 -0
  91. package/dist/generators/error-boundary.d.ts +5 -0
  92. package/dist/generators/error-boundary.d.ts.map +1 -0
  93. package/dist/generators/error-boundary.js +59 -0
  94. package/dist/generators/error-boundary.js.map +1 -0
  95. package/dist/generators/form-generator.d.ts +42 -0
  96. package/dist/generators/form-generator.d.ts.map +1 -0
  97. package/dist/generators/form-generator.js +662 -0
  98. package/dist/generators/form-generator.js.map +1 -0
  99. package/dist/generators/hooks-generator.d.ts +40 -0
  100. package/dist/generators/hooks-generator.d.ts.map +1 -0
  101. package/dist/generators/hooks-generator.js +297 -0
  102. package/dist/generators/hooks-generator.js.map +1 -0
  103. package/dist/generators/html-generator.d.ts +27 -0
  104. package/dist/generators/html-generator.d.ts.map +1 -0
  105. package/dist/generators/html-generator.js +772 -0
  106. package/dist/generators/html-generator.js.map +1 -0
  107. package/dist/generators/jquery-converter.d.ts +41 -0
  108. package/dist/generators/jquery-converter.d.ts.map +1 -0
  109. package/dist/generators/jquery-converter.js +594 -0
  110. package/dist/generators/jquery-converter.js.map +1 -0
  111. package/dist/generators/pattern-implementer.d.ts +26 -0
  112. package/dist/generators/pattern-implementer.d.ts.map +1 -0
  113. package/dist/generators/pattern-implementer.js +336 -0
  114. package/dist/generators/pattern-implementer.js.map +1 -0
  115. package/dist/generators/performance-generator.d.ts +51 -0
  116. package/dist/generators/performance-generator.d.ts.map +1 -0
  117. package/dist/generators/performance-generator.js +428 -0
  118. package/dist/generators/performance-generator.js.map +1 -0
  119. package/dist/generators/router-generator.d.ts +21 -0
  120. package/dist/generators/router-generator.d.ts.map +1 -0
  121. package/dist/generators/router-generator.js +178 -0
  122. package/dist/generators/router-generator.js.map +1 -0
  123. package/dist/generators/scaffolder.d.ts +28 -0
  124. package/dist/generators/scaffolder.d.ts.map +1 -0
  125. package/dist/generators/scaffolder.js +266 -0
  126. package/dist/generators/scaffolder.js.map +1 -0
  127. package/dist/generators/seo-generator.d.ts +29 -0
  128. package/dist/generators/seo-generator.d.ts.map +1 -0
  129. package/dist/generators/seo-generator.js +223 -0
  130. package/dist/generators/seo-generator.js.map +1 -0
  131. package/dist/generators/test-generator.d.ts +19 -0
  132. package/dist/generators/test-generator.d.ts.map +1 -0
  133. package/dist/generators/test-generator.js +398 -0
  134. package/dist/generators/test-generator.js.map +1 -0
  135. package/dist/generators/type-generator.d.ts +33 -0
  136. package/dist/generators/type-generator.d.ts.map +1 -0
  137. package/dist/generators/type-generator.js +663 -0
  138. package/dist/generators/type-generator.js.map +1 -0
  139. package/dist/index.d.ts +23 -0
  140. package/dist/index.d.ts.map +1 -0
  141. package/dist/index.js +12 -0
  142. package/dist/index.js.map +1 -0
  143. package/dist/parsers/css-processor.d.ts +23 -0
  144. package/dist/parsers/css-processor.d.ts.map +1 -0
  145. package/dist/parsers/css-processor.js +129 -0
  146. package/dist/parsers/css-processor.js.map +1 -0
  147. package/dist/parsers/framework-parser.d.ts +48 -0
  148. package/dist/parsers/framework-parser.d.ts.map +1 -0
  149. package/dist/parsers/framework-parser.js +770 -0
  150. package/dist/parsers/framework-parser.js.map +1 -0
  151. package/dist/parsers/html-parser.d.ts +12 -0
  152. package/dist/parsers/html-parser.d.ts.map +1 -0
  153. package/dist/parsers/html-parser.js +444 -0
  154. package/dist/parsers/html-parser.js.map +1 -0
  155. package/dist/parsers/js-analyzer.d.ts +199 -0
  156. package/dist/parsers/js-analyzer.d.ts.map +1 -0
  157. package/dist/parsers/js-analyzer.js +680 -0
  158. package/dist/parsers/js-analyzer.js.map +1 -0
  159. package/dist/parsers/js-resolver.d.ts +8 -0
  160. package/dist/parsers/js-resolver.d.ts.map +1 -0
  161. package/dist/parsers/js-resolver.js +45 -0
  162. package/dist/parsers/js-resolver.js.map +1 -0
  163. package/dist/parsers/tailwind-detector.d.ts +23 -0
  164. package/dist/parsers/tailwind-detector.d.ts.map +1 -0
  165. package/dist/parsers/tailwind-detector.js +104 -0
  166. package/dist/parsers/tailwind-detector.js.map +1 -0
  167. package/dist/tests/advanced-features.test.d.ts +2 -0
  168. package/dist/tests/advanced-features.test.d.ts.map +1 -0
  169. package/dist/tests/advanced-features.test.js +235 -0
  170. package/dist/tests/advanced-features.test.js.map +1 -0
  171. package/dist/tests/css-modules.test.d.ts +2 -0
  172. package/dist/tests/css-modules.test.d.ts.map +1 -0
  173. package/dist/tests/css-modules.test.js +61 -0
  174. package/dist/tests/css-modules.test.js.map +1 -0
  175. package/dist/tests/css-processor.test.d.ts +2 -0
  176. package/dist/tests/css-processor.test.d.ts.map +1 -0
  177. package/dist/tests/css-processor.test.js +48 -0
  178. package/dist/tests/css-processor.test.js.map +1 -0
  179. package/dist/tests/html-parser.test.d.ts +2 -0
  180. package/dist/tests/html-parser.test.d.ts.map +1 -0
  181. package/dist/tests/html-parser.test.js +78 -0
  182. package/dist/tests/html-parser.test.js.map +1 -0
  183. package/dist/tests/integration.test.d.ts +2 -0
  184. package/dist/tests/integration.test.d.ts.map +1 -0
  185. package/dist/tests/integration.test.js +65 -0
  186. package/dist/tests/integration.test.js.map +1 -0
  187. package/dist/tests/js-analyzer.test.d.ts +2 -0
  188. package/dist/tests/js-analyzer.test.d.ts.map +1 -0
  189. package/dist/tests/js-analyzer.test.js +58 -0
  190. package/dist/tests/js-analyzer.test.js.map +1 -0
  191. package/dist/tests/naming.test.d.ts +2 -0
  192. package/dist/tests/naming.test.d.ts.map +1 -0
  193. package/dist/tests/naming.test.js +43 -0
  194. package/dist/tests/naming.test.js.map +1 -0
  195. package/dist/tests/router-generator.test.d.ts +2 -0
  196. package/dist/tests/router-generator.test.d.ts.map +1 -0
  197. package/dist/tests/router-generator.test.js +60 -0
  198. package/dist/tests/router-generator.test.js.map +1 -0
  199. package/dist/tui/chat.d.ts +13 -0
  200. package/dist/tui/chat.d.ts.map +1 -0
  201. package/dist/tui/chat.js +499 -0
  202. package/dist/tui/chat.js.map +1 -0
  203. package/dist/tui/design-guide.d.ts +41 -0
  204. package/dist/tui/design-guide.d.ts.map +1 -0
  205. package/dist/tui/design-guide.js +184 -0
  206. package/dist/tui/design-guide.js.map +1 -0
  207. package/dist/tui/input.d.ts +30 -0
  208. package/dist/tui/input.d.ts.map +1 -0
  209. package/dist/tui/input.js +239 -0
  210. package/dist/tui/input.js.map +1 -0
  211. package/dist/tui/renderer.d.ts +48 -0
  212. package/dist/tui/renderer.d.ts.map +1 -0
  213. package/dist/tui/renderer.js +212 -0
  214. package/dist/tui/renderer.js.map +1 -0
  215. package/dist/tui/tools.d.ts +14 -0
  216. package/dist/tui/tools.d.ts.map +1 -0
  217. package/dist/tui/tools.js +1370 -0
  218. package/dist/tui/tools.js.map +1 -0
  219. package/dist/types.d.ts +93 -0
  220. package/dist/types.d.ts.map +1 -0
  221. package/dist/types.js +2 -0
  222. package/dist/types.js.map +1 -0
  223. package/dist/utils/config.d.ts +20 -0
  224. package/dist/utils/config.d.ts.map +1 -0
  225. package/dist/utils/config.js +33 -0
  226. package/dist/utils/config.js.map +1 -0
  227. package/dist/utils/formatter.d.ts +5 -0
  228. package/dist/utils/formatter.d.ts.map +1 -0
  229. package/dist/utils/formatter.js +68 -0
  230. package/dist/utils/formatter.js.map +1 -0
  231. package/dist/utils/logger.d.ts +8 -0
  232. package/dist/utils/logger.d.ts.map +1 -0
  233. package/dist/utils/logger.js +19 -0
  234. package/dist/utils/logger.js.map +1 -0
  235. package/dist/utils/naming.d.ts +17 -0
  236. package/dist/utils/naming.d.ts.map +1 -0
  237. package/dist/utils/naming.js +48 -0
  238. package/dist/utils/naming.js.map +1 -0
  239. package/dist/utils/report.d.ts +56 -0
  240. package/dist/utils/report.d.ts.map +1 -0
  241. package/dist/utils/report.js +339 -0
  242. package/dist/utils/report.js.map +1 -0
  243. package/package.json +61 -0
@@ -0,0 +1,212 @@
1
+ /**
2
+ * Terminal rendering utilities for the TUI chat.
3
+ * Handles colors, formatting, spinners, and layout.
4
+ */
5
+ import chalk from 'chalk';
6
+ // ─── ANSI helpers ────────────────────────────────────────────────────
7
+ export const COLORS = {
8
+ userLabel: chalk.bold.hex('#6B8AFF'),
9
+ assistantLabel: chalk.bold.hex('#D4A574'),
10
+ toolLabel: chalk.bold.yellow,
11
+ toolSuccess: chalk.green,
12
+ toolError: chalk.red,
13
+ dim: chalk.dim,
14
+ bold: chalk.bold,
15
+ code: chalk.cyan,
16
+ separator: chalk.dim,
17
+ hint: chalk.dim.italic,
18
+ header: chalk.bold.hex('#D4A574'),
19
+ headerAccent: chalk.bold.hex('#6B8AFF'),
20
+ border: chalk.dim.gray,
21
+ inputPrompt: chalk.bold.hex('#6B8AFF'),
22
+ warning: chalk.yellow,
23
+ success: chalk.green,
24
+ error: chalk.red,
25
+ fileAttach: chalk.hex('#8BC34A'),
26
+ tokenInfo: chalk.dim.hex('#888888'),
27
+ };
28
+ const SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
29
+ export class Spinner {
30
+ frameIdx = 0;
31
+ interval = null;
32
+ text;
33
+ constructor(text) {
34
+ this.text = text;
35
+ }
36
+ start() {
37
+ this.frameIdx = 0;
38
+ this.render();
39
+ this.interval = setInterval(() => this.render(), 80);
40
+ }
41
+ render() {
42
+ const frame = COLORS.toolLabel(SPINNER_FRAMES[this.frameIdx % SPINNER_FRAMES.length]);
43
+ process.stderr.write(`\r${frame} ${COLORS.dim(this.text)}`);
44
+ this.frameIdx++;
45
+ }
46
+ update(text) {
47
+ this.text = text;
48
+ }
49
+ stop(finalText) {
50
+ if (this.interval) {
51
+ clearInterval(this.interval);
52
+ this.interval = null;
53
+ }
54
+ process.stderr.write('\r' + ' '.repeat(this.text.length + 4) + '\r');
55
+ if (finalText) {
56
+ process.stderr.write(finalText + '\n');
57
+ }
58
+ }
59
+ }
60
+ // ─── Markdown-lite rendering ─────────────────────────────────────────
61
+ export function renderMarkdown(text) {
62
+ let result = text;
63
+ // Code blocks ```
64
+ result = result.replace(/```(\w*)\n([\s\S]*?)```/g, (_m, lang, code) => {
65
+ const langLabel = lang ? COLORS.dim(` ${lang}`) : '';
66
+ const lines = code.trimEnd().split('\n');
67
+ const rendered = lines.map((l) => ` ${COLORS.code(l)}`).join('\n');
68
+ return `\n${COLORS.border(' ┌──')}${langLabel}\n${rendered}\n${COLORS.border(' └──')}\n`;
69
+ });
70
+ // Inline code `...`
71
+ result = result.replace(/`([^`]+)`/g, (_m, code) => COLORS.code(code));
72
+ // Bold **...**
73
+ result = result.replace(/\*\*([^*]+)\*\*/g, (_m, text) => COLORS.bold(text));
74
+ // Headers # ...
75
+ result = result.replace(/^(#{1,3}) (.+)$/gm, (_m, hashes, text) => {
76
+ const level = hashes.length;
77
+ if (level === 1)
78
+ return COLORS.bold.underline(text);
79
+ return COLORS.bold(text);
80
+ });
81
+ // Bullet points
82
+ result = result.replace(/^(\s*)[-*] (.+)$/gm, (_m, indent, text) => `${indent}${COLORS.dim(' •')} ${text}`);
83
+ // Numbered lists
84
+ result = result.replace(/^(\s*)(\d+)\. (.+)$/gm, (_m, indent, num, text) => `${indent} ${COLORS.dim(num + '.')} ${text}`);
85
+ return result;
86
+ }
87
+ // ─── Layout ──────────────────────────────────────────────────────────
88
+ export function printHeader(projectDir) {
89
+ const width = Math.min(process.stdout.columns || 80, 100);
90
+ console.log('');
91
+ console.log(COLORS.border(' ╭' + '─'.repeat(width - 4) + '╮'));
92
+ const title = ` ${COLORS.headerAccent('⚡')} ${COLORS.header('CodeMeld')} ${COLORS.dim('AI Chat')}`;
93
+ const projLabel = COLORS.dim(projectDir.length > 50 ? '...' + projectDir.slice(-47) : projectDir);
94
+ console.log(` ${COLORS.border('│')} ${title} ${COLORS.border('│')} ${projLabel}`);
95
+ console.log(COLORS.border(' ├' + '─'.repeat(width - 4) + '┤'));
96
+ console.log(` ${COLORS.border('│')} ${COLORS.hint('Type a message, /command, or @file to attach')}${' '.repeat(Math.max(0, width - 52))}${COLORS.border('│')}`);
97
+ console.log(` ${COLORS.border('│')} ${COLORS.hint('Tab: autocomplete • Ctrl+C: cancel • /help for more')}${' '.repeat(Math.max(0, width - 56))}${COLORS.border('│')}`);
98
+ console.log(COLORS.border(' ╰' + '─'.repeat(width - 4) + '╯'));
99
+ console.log('');
100
+ }
101
+ export function printUserMessage(message) {
102
+ const lines = message.split('\n');
103
+ console.log('');
104
+ console.log(` ${COLORS.userLabel('You')}`);
105
+ for (const line of lines) {
106
+ console.log(` ${line}`);
107
+ }
108
+ console.log('');
109
+ }
110
+ export function printAssistantStart() {
111
+ process.stdout.write(` ${COLORS.assistantLabel('Assistant')} `);
112
+ }
113
+ export function printAssistantToken(token) {
114
+ process.stdout.write(token);
115
+ }
116
+ export function printAssistantEnd() {
117
+ console.log('\n');
118
+ }
119
+ export function printAssistantMessage(message) {
120
+ console.log(` ${COLORS.assistantLabel('Assistant')}`);
121
+ const rendered = renderMarkdown(message);
122
+ for (const line of rendered.split('\n')) {
123
+ console.log(` ${line}`);
124
+ }
125
+ console.log('');
126
+ }
127
+ export function printToolCall(name, args) {
128
+ let detail = '';
129
+ if (args?.path)
130
+ detail = ` ${COLORS.dim(String(args.path))}`;
131
+ else if (args?.from)
132
+ detail = ` ${COLORS.dim(String(args.from))} → ${COLORS.dim(String(args.to || '?'))}`;
133
+ else if (args?.pattern)
134
+ detail = ` ${COLORS.dim(String(args.pattern))}`;
135
+ else if (args?.command)
136
+ detail = ` ${COLORS.dim(String(args.command).slice(0, 80))}`;
137
+ else if (args?.message)
138
+ detail = ` ${COLORS.dim(String(args.message).slice(0, 60))}`;
139
+ else if (args?.packages)
140
+ detail = ` ${COLORS.dim(String(args.packages.join(' ')))}`;
141
+ console.log(` ${COLORS.toolLabel('⚡')} ${COLORS.bold(name)}${detail}`);
142
+ }
143
+ export function printToolResult(name, result, success) {
144
+ const icon = success ? COLORS.toolSuccess(' ✓') : COLORS.toolError(' ✗');
145
+ const preview = result.split('\n')[0].slice(0, 80);
146
+ console.log(`${icon} ${COLORS.dim(name + ':')} ${COLORS.dim(preview)}`);
147
+ }
148
+ export function printSeparator() {
149
+ const width = Math.min(process.stdout.columns || 80, 100);
150
+ console.log(COLORS.separator(' ' + '─'.repeat(width - 4)));
151
+ }
152
+ export function printError(message) {
153
+ console.log(`\n ${COLORS.error('✗ Error:')} ${message}\n`);
154
+ }
155
+ export function printHelp() {
156
+ console.log('');
157
+ console.log(COLORS.bold(' Slash Commands'));
158
+ console.log(COLORS.border(' ─────────────────────────────────────────'));
159
+ console.log(` ${COLORS.code('/help')} Show this help`);
160
+ console.log(` ${COLORS.code('/clear')} Clear screen and chat history`);
161
+ console.log(` ${COLORS.code('/build')} Run vite build`);
162
+ console.log(` ${COLORS.code('/typecheck, /tsc')} Run tsc --noEmit`);
163
+ console.log(` ${COLORS.code('/fix')} Auto-fix all build & type errors`);
164
+ console.log(` ${COLORS.code('/files, /tree')} Show project directory tree`);
165
+ console.log(` ${COLORS.code('/overview')} Full project overview`);
166
+ console.log(` ${COLORS.code('/git [cmd]')} Run git command (default: status)`);
167
+ console.log(` ${COLORS.code('/install [pkg]')} npm install packages`);
168
+ console.log(` ${COLORS.code('/design [type]')} Generate unique design system`);
169
+ console.log(` ${COLORS.code('/todos')} View todo list & progress`);
170
+ console.log(` ${COLORS.code('/todo <task>')} Quick-add a todo`);
171
+ console.log(` ${COLORS.code('/todos clear')} Remove completed todos`);
172
+ console.log(` ${COLORS.code('/compact')} Compress chat history`);
173
+ console.log(` ${COLORS.code('/copy')} Copy last response to clipboard`);
174
+ console.log(` ${COLORS.code('/paste')} Paste clipboard as message`);
175
+ console.log(` ${COLORS.code('/quit, /q')} Exit the chat`);
176
+ console.log('');
177
+ console.log(COLORS.bold(' File Attachments'));
178
+ console.log(COLORS.border(' ─────────────────────────────────────────'));
179
+ console.log(` ${COLORS.code('@src/App.tsx')} Attach a file to your message`);
180
+ console.log(` ${COLORS.code('@package.json')} The AI sees the full file content`);
181
+ console.log(' Type @ and press Tab to autocomplete file paths');
182
+ console.log('');
183
+ console.log(COLORS.bold(' Clipboard'));
184
+ console.log(COLORS.border(' ─────────────────────────────────────────'));
185
+ console.log(' Ctrl+V / right-click paste works in most terminals');
186
+ console.log(' Multi-line paste is supported (bracket paste mode)');
187
+ console.log(` ${COLORS.code('/copy')} and ${COLORS.code('/paste')} for explicit clipboard access`);
188
+ console.log('');
189
+ console.log(COLORS.bold(' Keyboard Shortcuts'));
190
+ console.log(COLORS.border(' ─────────────────────────────────────────'));
191
+ console.log(' Tab Autocomplete command or file path');
192
+ console.log(' ↑/↓ Navigate autocomplete suggestions');
193
+ console.log(' Esc Close autocomplete menu');
194
+ console.log(' Ctrl+U Clear input line');
195
+ console.log(' Ctrl+W Delete word');
196
+ console.log(' Ctrl+C Cancel / exit');
197
+ console.log('');
198
+ console.log(COLORS.bold(' AI Tools (28 available)'));
199
+ console.log(COLORS.border(' ─────────────────────────────────────────'));
200
+ console.log(' File I/O: read, write, edit, multi_edit, insert_at_line');
201
+ console.log(' File Ops: delete, move, copy');
202
+ console.log(' Search: glob, grep, list_files, file_info, project_overview');
203
+ console.log(' Build: run_build, run_typecheck, npm_install');
204
+ console.log(' Shell: bash (any command)');
205
+ console.log(' Git: status, diff, log, commit');
206
+ console.log(' Todos: todo_list, todo_add, todo_update, todo_remove, todo_batch');
207
+ console.log(' Design: generate_design_guide (unique fonts, colors, layouts)');
208
+ console.log('');
209
+ console.log(COLORS.dim(' Auto-compact activates when conversation exceeds 30 turns'));
210
+ console.log('');
211
+ }
212
+ //# sourceMappingURL=renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/tui/renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Full-powered tool suite for the TUI chat agent.
3
+ * Mirrors Claude Code's capabilities: file I/O, glob, grep, edit,
4
+ * bash, git, npm, tree, and more.
5
+ */
6
+ import type { ToolDefinition } from '../ai/agent.js';
7
+ export declare const chatToolDefinitions: ToolDefinition[];
8
+ export interface ChatToolContext {
9
+ projectDir: string;
10
+ onToolStart?: (name: string, args: Record<string, unknown>) => void;
11
+ onToolEnd?: (name: string, result: string, success: boolean) => void;
12
+ }
13
+ export declare function createChatToolExecutor(ctx: ChatToolContext): (name: string, args: Record<string, unknown>) => Promise<string>;
14
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tui/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAkIrD,eAAO,MAAM,mBAAmB,EAAE,cAAc,EAmmB/C,CAAC;AAIF,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACpE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACtE;AAwDD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,eAAe,IAGvB,MAAM,MAAM,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC,CAioBhG"}