@standardagents/cli 0.10.1-next.bbd142a → 0.11.0-next.ab7e1ea
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/LICENSE.txt +48 -0
- package/chat/next/app/layout.tsx +24 -0
- package/chat/next/app/page.tsx +21 -0
- package/chat/next/next-env.d.ts +6 -0
- package/chat/next/next.config.ts +15 -0
- package/chat/next/postcss.config.mjs +5 -0
- package/chat/next/tsconfig.json +27 -0
- package/chat/package.json +32 -0
- package/chat/src/App.tsx +130 -0
- package/chat/src/components/AgentSelector.tsx +102 -0
- package/chat/src/components/Chat.tsx +134 -0
- package/chat/src/components/EmptyState.tsx +437 -0
- package/chat/src/components/Login.tsx +139 -0
- package/chat/src/components/Logo.tsx +39 -0
- package/chat/src/components/Markdown.tsx +222 -0
- package/chat/src/components/MessageInput.tsx +197 -0
- package/chat/src/components/MessageList.tsx +796 -0
- package/chat/src/components/Sidebar.tsx +253 -0
- package/chat/src/hooks/useAuth.tsx +118 -0
- package/chat/src/hooks/useTheme.tsx +55 -0
- package/chat/src/hooks/useThreads.ts +131 -0
- package/chat/src/index.css +168 -0
- package/chat/tsconfig.json +24 -0
- package/chat/vite/favicon.svg +3 -0
- package/chat/vite/index.html +17 -0
- package/chat/vite/main.tsx +25 -0
- package/chat/vite/vite.config.ts +23 -0
- package/dist/index.js +669 -99
- package/dist/index.js.map +1 -1
- package/package.json +13 -9
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
@import "tailwindcss";
|
|
2
|
+
|
|
3
|
+
@source "./**/*.{ts,tsx}";
|
|
4
|
+
@source "../vite/**/*.{ts,tsx,html}";
|
|
5
|
+
@source "../next/**/*.{ts,tsx}";
|
|
6
|
+
|
|
7
|
+
/* Theme variables */
|
|
8
|
+
:root {
|
|
9
|
+
/* Dark mode (default) */
|
|
10
|
+
--bg-primary: #0a0a0b;
|
|
11
|
+
--bg-secondary: #111113;
|
|
12
|
+
--bg-tertiary: #1a1a1c;
|
|
13
|
+
--bg-elevated: #1f1f23;
|
|
14
|
+
--bg-hover: rgba(63, 63, 70, 0.4);
|
|
15
|
+
--bg-active: rgba(63, 63, 70, 0.8);
|
|
16
|
+
|
|
17
|
+
--border-primary: rgba(63, 63, 70, 0.5);
|
|
18
|
+
--border-secondary: #3f3f46;
|
|
19
|
+
|
|
20
|
+
--text-primary: #fafafa;
|
|
21
|
+
--text-secondary: #a1a1aa;
|
|
22
|
+
--text-tertiary: #71717a;
|
|
23
|
+
--text-muted: #52525b;
|
|
24
|
+
|
|
25
|
+
--scrollbar-thumb: #3f3f46;
|
|
26
|
+
--scrollbar-thumb-hover: #52525b;
|
|
27
|
+
|
|
28
|
+
--code-bg: #1f1f22;
|
|
29
|
+
--shimmer-color: rgba(255, 255, 255, 0.05);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.light {
|
|
33
|
+
--bg-primary: #ffffff;
|
|
34
|
+
--bg-secondary: #f9fafb;
|
|
35
|
+
--bg-tertiary: #f3f4f6;
|
|
36
|
+
--bg-elevated: #ffffff;
|
|
37
|
+
--bg-hover: rgba(0, 0, 0, 0.05);
|
|
38
|
+
--bg-active: rgba(0, 0, 0, 0.1);
|
|
39
|
+
|
|
40
|
+
--border-primary: #e5e7eb;
|
|
41
|
+
--border-secondary: #d1d5db;
|
|
42
|
+
|
|
43
|
+
--text-primary: #111827;
|
|
44
|
+
--text-secondary: #4b5563;
|
|
45
|
+
--text-tertiary: #6b7280;
|
|
46
|
+
--text-muted: #9ca3af;
|
|
47
|
+
|
|
48
|
+
--scrollbar-thumb: #d1d5db;
|
|
49
|
+
--scrollbar-thumb-hover: #9ca3af;
|
|
50
|
+
|
|
51
|
+
--code-bg: #F8F7F7;
|
|
52
|
+
--shimmer-color: rgba(0, 0, 0, 0.05);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/* Custom scrollbar */
|
|
56
|
+
::-webkit-scrollbar {
|
|
57
|
+
width: 6px;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
::-webkit-scrollbar-track {
|
|
61
|
+
background: transparent;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
::-webkit-scrollbar-thumb {
|
|
65
|
+
background: var(--scrollbar-thumb);
|
|
66
|
+
border-radius: 3px;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
::-webkit-scrollbar-thumb:hover {
|
|
70
|
+
background: var(--scrollbar-thumb-hover);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/* Smooth transitions */
|
|
74
|
+
* {
|
|
75
|
+
scroll-behavior: smooth;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/* Input placeholder styling */
|
|
79
|
+
textarea::placeholder {
|
|
80
|
+
color: var(--text-tertiary);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/* Hide scrollbar utility */
|
|
84
|
+
.scrollbar-hide {
|
|
85
|
+
-ms-overflow-style: none;
|
|
86
|
+
scrollbar-width: none;
|
|
87
|
+
}
|
|
88
|
+
.scrollbar-hide::-webkit-scrollbar {
|
|
89
|
+
display: none;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/* Focus ring override */
|
|
93
|
+
*:focus {
|
|
94
|
+
outline: none;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/* Animation keyframes */
|
|
98
|
+
@keyframes fadeIn {
|
|
99
|
+
from { opacity: 0; transform: translateY(4px); }
|
|
100
|
+
to { opacity: 1; transform: translateY(0); }
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
@keyframes pulse {
|
|
104
|
+
0%, 100% { opacity: 1; }
|
|
105
|
+
50% { opacity: 0.5; }
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
@keyframes slideIn {
|
|
109
|
+
from {
|
|
110
|
+
opacity: 0;
|
|
111
|
+
transform: translateX(-8px);
|
|
112
|
+
}
|
|
113
|
+
to {
|
|
114
|
+
opacity: 1;
|
|
115
|
+
transform: translateX(0);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
@keyframes shimmer {
|
|
120
|
+
0% { background-position: -200% 0; }
|
|
121
|
+
100% { background-position: 200% 0; }
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.animate-fade-in {
|
|
125
|
+
animation: fadeIn 0.2s ease-out;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.animate-slide-in {
|
|
129
|
+
animation: slideIn 0.2s ease-out;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.animate-pulse-slow {
|
|
133
|
+
animation: pulse 2s ease-in-out infinite;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/* Workblock loading shimmer */
|
|
137
|
+
.workblock-shimmer {
|
|
138
|
+
background: linear-gradient(
|
|
139
|
+
90deg,
|
|
140
|
+
transparent 0%,
|
|
141
|
+
var(--shimmer-color) 50%,
|
|
142
|
+
transparent 100%
|
|
143
|
+
);
|
|
144
|
+
background-size: 200% 100%;
|
|
145
|
+
animation: shimmer 1.5s infinite;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/* Theme transition and base styles */
|
|
149
|
+
html, body {
|
|
150
|
+
background-color: var(--bg-primary);
|
|
151
|
+
color: var(--text-primary);
|
|
152
|
+
transition: background-color 0.2s ease, color 0.2s ease;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/* Color scheme for light-dark() CSS function */
|
|
156
|
+
:root {
|
|
157
|
+
color-scheme: dark;
|
|
158
|
+
}
|
|
159
|
+
.light {
|
|
160
|
+
color-scheme: light;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/* Override Shiki's inline background color */
|
|
164
|
+
.shiki,
|
|
165
|
+
.shiki pre,
|
|
166
|
+
.shiki code {
|
|
167
|
+
background-color: var(--code-bg) !important;
|
|
168
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2020",
|
|
4
|
+
"useDefineForClassFields": true,
|
|
5
|
+
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
|
6
|
+
"module": "ESNext",
|
|
7
|
+
"skipLibCheck": true,
|
|
8
|
+
"moduleResolution": "bundler",
|
|
9
|
+
"allowImportingTsExtensions": true,
|
|
10
|
+
"resolveJsonModule": true,
|
|
11
|
+
"isolatedModules": true,
|
|
12
|
+
"noEmit": true,
|
|
13
|
+
"jsx": "react-jsx",
|
|
14
|
+
"strict": true,
|
|
15
|
+
"noUnusedLocals": true,
|
|
16
|
+
"noUnusedParameters": true,
|
|
17
|
+
"noFallthroughCasesInSwitch": true,
|
|
18
|
+
"types": ["vite/client"],
|
|
19
|
+
"paths": {
|
|
20
|
+
"@/*": ["./src/*"]
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"include": ["src", "vite"]
|
|
24
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
|
|
2
|
+
<path fill="#000" d="M44.06,0v44.08H0v105.92h105.93v-44.07h44.07V0H44.06ZM19.09,130.91c-16.47-16.47-5.29-54.45,24.96-85.18v60.2h60.23c-30.73,30.27-68.71,41.47-85.2,24.98ZM105.93,104.29v-60.21h-60.21C76.46,13.8,114.42,2.6,130.91,19.09c16.51,16.49,5.31,54.47-24.98,85.2Z"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en" class="dark">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
7
|
+
<title>Chat</title>
|
|
8
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
9
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
10
|
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
|
|
11
|
+
<style>body { font-family: 'Inter', system-ui, -apple-system, sans-serif; }</style>
|
|
12
|
+
</head>
|
|
13
|
+
<body class="bg-[#0a0a0b] text-zinc-100 antialiased">
|
|
14
|
+
<div id="root"></div>
|
|
15
|
+
<script type="module" src="/main.tsx"></script>
|
|
16
|
+
</body>
|
|
17
|
+
</html>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import ReactDOM from 'react-dom/client'
|
|
3
|
+
import { AgentBuilderProvider } from '@standardagents/react'
|
|
4
|
+
import { ThemeProvider } from '../src/hooks/useTheme'
|
|
5
|
+
import { AuthProvider } from '../src/hooks/useAuth'
|
|
6
|
+
import App from '../src/App'
|
|
7
|
+
import '../src/index.css'
|
|
8
|
+
|
|
9
|
+
// Get agentbuilder URL from environment
|
|
10
|
+
const AGENTBUILDER_URL = import.meta.env.VITE_AGENTBUILDER_URL || ''
|
|
11
|
+
|
|
12
|
+
// Append /api to the endpoint for SDK routes
|
|
13
|
+
const SDK_ENDPOINT = AGENTBUILDER_URL ? `${AGENTBUILDER_URL}/api` : '/api'
|
|
14
|
+
|
|
15
|
+
ReactDOM.createRoot(document.getElementById('root')!).render(
|
|
16
|
+
<React.StrictMode>
|
|
17
|
+
<ThemeProvider>
|
|
18
|
+
<AuthProvider>
|
|
19
|
+
<AgentBuilderProvider config={{ endpoint: SDK_ENDPOINT }}>
|
|
20
|
+
<App />
|
|
21
|
+
</AgentBuilderProvider>
|
|
22
|
+
</AuthProvider>
|
|
23
|
+
</ThemeProvider>
|
|
24
|
+
</React.StrictMode>
|
|
25
|
+
)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { defineConfig } from 'vite'
|
|
2
|
+
import react from '@vitejs/plugin-react'
|
|
3
|
+
import tailwindcss from '@tailwindcss/vite'
|
|
4
|
+
import path from 'path'
|
|
5
|
+
|
|
6
|
+
export default defineConfig({
|
|
7
|
+
root: __dirname,
|
|
8
|
+
plugins: [
|
|
9
|
+
react(),
|
|
10
|
+
tailwindcss(),
|
|
11
|
+
],
|
|
12
|
+
resolve: {
|
|
13
|
+
alias: {
|
|
14
|
+
'@': path.resolve(__dirname, '../src'),
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
server: {
|
|
18
|
+
port: 5174,
|
|
19
|
+
},
|
|
20
|
+
build: {
|
|
21
|
+
outDir: '../dist/vite',
|
|
22
|
+
},
|
|
23
|
+
})
|