mirror of https://github.com/buster-so/buster.git
Merge branch 'staging' of https://github.com/buster-so/buster into staging
This commit is contained in:
commit
4ae2cb7420
|
@ -71,7 +71,8 @@ jobs:
|
|||
run: |
|
||||
echo "📦 Building standalone CLI binary for ${{ matrix.target }}..."
|
||||
# Note: Bun compiles for the host platform, cross-compilation happens via matrix strategy
|
||||
bun build src/index.tsx --compile --outfile dist/buster-cli
|
||||
# Using --minify for production builds to reduce binary size
|
||||
bun build src/index.tsx --compile --minify --outfile dist/buster-cli
|
||||
|
||||
# Make binary executable on Unix systems
|
||||
if [[ "${{ runner.os }}" != "Windows" ]]; then
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { Box, Text } from 'ink';
|
||||
import BigText from 'ink-big-text';
|
||||
import React from 'react';
|
||||
import { SimpleBigText } from './simple-big-text.js';
|
||||
|
||||
interface BannerProps {
|
||||
showSubtitle?: boolean;
|
||||
|
@ -8,17 +9,16 @@ interface BannerProps {
|
|||
|
||||
/**
|
||||
* Shared Buster banner component for consistent branding across CLI
|
||||
* Uses SimpleBigText to avoid font loading issues in standalone binaries
|
||||
*/
|
||||
export function BusterBanner({ showSubtitle = true, inline = false }: BannerProps = {}) {
|
||||
const content = (
|
||||
<>
|
||||
<Box>
|
||||
<Text color="#7C3AED">
|
||||
<BigText text="BUSTER" font="block" />
|
||||
</Text>
|
||||
<SimpleBigText text="BUSTER" color="#7C3AED" />
|
||||
</Box>
|
||||
{showSubtitle && (
|
||||
<Box>
|
||||
<Box marginTop={1}>
|
||||
<Text bold>Welcome to Buster</Text>
|
||||
</Box>
|
||||
)}
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
import { Text } from 'ink';
|
||||
import React from 'react';
|
||||
|
||||
interface SimpleBigTextProps {
|
||||
text: string;
|
||||
color?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Simple big text renderer that doesn't require external font files
|
||||
* Uses inline ASCII art for each letter
|
||||
*/
|
||||
export function SimpleBigText({ text, color = 'white' }: SimpleBigTextProps) {
|
||||
const letters: Record<string, string[]> = {
|
||||
B: ['██████╗ ', '██╔══██╗', '██████╔╝', '██╔══██╗', '██████╔╝', '╚═════╝ '],
|
||||
U: ['██╗ ██╗', '██║ ██║', '██║ ██║', '██║ ██║', '╚██████╔╝', ' ╚═════╝ '],
|
||||
S: ['███████╗', '██╔════╝', '███████╗', '╚════██║', '███████║', '╚══════╝'],
|
||||
T: ['████████╗', '╚══██╔══╝', ' ██║ ', ' ██║ ', ' ██║ ', ' ╚═╝ '],
|
||||
E: ['███████╗', '██╔════╝', '█████╗ ', '██╔══╝ ', '███████╗', '╚══════╝'],
|
||||
R: ['██████╗ ', '██╔══██╗', '██████╔╝', '██╔══██╗', '██║ ██║', '╚═╝ ╚═╝'],
|
||||
};
|
||||
|
||||
// Convert text to uppercase and get the ASCII art for each letter
|
||||
const upperText = text.toUpperCase();
|
||||
const lines: string[] = ['', '', '', '', '', ''];
|
||||
|
||||
for (const char of upperText) {
|
||||
const letter = letters[char];
|
||||
if (letter) {
|
||||
for (let i = 0; i < 6; i++) {
|
||||
lines[i] += letter[i] + ' ';
|
||||
}
|
||||
} else if (char === ' ') {
|
||||
for (let i = 0; i < 6; i++) {
|
||||
lines[i] += ' ';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return <Text color={color}>{lines.join('\n')}</Text>;
|
||||
}
|
|
@ -10,7 +10,7 @@ import { InitCommand } from './commands/init.js';
|
|||
program
|
||||
.name('buster')
|
||||
.description('Buster CLI - AI-powered data analytics platform')
|
||||
.version('0.1.0');
|
||||
.version('0.3.0');
|
||||
|
||||
// Auth command - authentication management
|
||||
program
|
||||
|
|
|
@ -7,6 +7,10 @@
|
|||
"types": "./dist/index.d.ts",
|
||||
"default": "./dist/index.js"
|
||||
},
|
||||
"./types": {
|
||||
"types": "./dist/types.d.ts",
|
||||
"default": "./dist/types.js"
|
||||
},
|
||||
"./helpers/*": {
|
||||
"types": "./dist/helpers/*/index.d.ts",
|
||||
"default": "./dist/helpers/*/index.js"
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
/**
|
||||
* Type-only exports for message schemas
|
||||
* This file provides types without triggering database connection
|
||||
*/
|
||||
|
||||
// Export message schema types
|
||||
export type {
|
||||
ChatMessageReasoning_status,
|
||||
ChatMessageResponseMessage,
|
||||
ChatMessageReasoningMessage,
|
||||
ChatMessageReasoningMessage_Text,
|
||||
ChatMessageReasoningMessage_Files,
|
||||
ChatMessageReasoningMessage_Pills,
|
||||
ChatMessageReasoningMessage_File,
|
||||
ChatMessageReasoningMessage_Pill,
|
||||
ChatMessageReasoningMessage_PillContainer,
|
||||
ChatMessageResponseMessage_FileMetadata,
|
||||
ChatMessageResponseMessage_Text,
|
||||
ChatMessageResponseMessage_File,
|
||||
ReasoningFileType,
|
||||
ResponseMessageFileType,
|
||||
ReasoingMessage_ThoughtFileType,
|
||||
} from './schemas/message-schemas';
|
||||
|
||||
// Export the schemas themselves (these are just objects, no side effects)
|
||||
export {
|
||||
StatusSchema,
|
||||
ResponseMessageSchema,
|
||||
ReasoningMessageSchema,
|
||||
} from './schemas/message-schemas';
|
|
@ -6,6 +6,7 @@ export * from './requests';
|
|||
export * from './responses';
|
||||
|
||||
// Re-export message schemas from database package to maintain backward compatibility
|
||||
// Using /types entry point to avoid triggering database connection
|
||||
export {
|
||||
StatusSchema,
|
||||
ResponseMessageSchema,
|
||||
|
@ -25,4 +26,4 @@ export {
|
|||
type ReasoningFileType,
|
||||
type ResponseMessageFileType,
|
||||
type ReasoingMessage_ThoughtFileType,
|
||||
} from '@buster/database';
|
||||
} from '@buster/database/types';
|
||||
|
|
Loading…
Reference in New Issue