@chaaskit/client 0.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 (135) hide show
  1. package/dist/favicon.svg +11 -0
  2. package/dist/index.html +17 -0
  3. package/dist/lib/LoadingSkeletons-IcIC2JPq.js +132 -0
  4. package/dist/lib/LoadingSkeletons-IcIC2JPq.js.map +1 -0
  5. package/dist/lib/ServerThemeProvider-DNF0LAyk.js +42 -0
  6. package/dist/lib/ServerThemeProvider-DNF0LAyk.js.map +1 -0
  7. package/dist/lib/extensions.js +10 -0
  8. package/dist/lib/extensions.js.map +1 -0
  9. package/dist/lib/favicon.svg +11 -0
  10. package/dist/lib/index.js +74126 -0
  11. package/dist/lib/index.js.map +1 -0
  12. package/dist/lib/logo.svg +12 -0
  13. package/dist/lib/routes/AcceptInviteRoute.js +19 -0
  14. package/dist/lib/routes/AcceptInviteRoute.js.map +1 -0
  15. package/dist/lib/routes/AdminDashboardRoute.js +19 -0
  16. package/dist/lib/routes/AdminDashboardRoute.js.map +1 -0
  17. package/dist/lib/routes/AdminTeamRoute.js +19 -0
  18. package/dist/lib/routes/AdminTeamRoute.js.map +1 -0
  19. package/dist/lib/routes/AdminTeamsRoute.js +19 -0
  20. package/dist/lib/routes/AdminTeamsRoute.js.map +1 -0
  21. package/dist/lib/routes/AdminUsersRoute.js +19 -0
  22. package/dist/lib/routes/AdminUsersRoute.js.map +1 -0
  23. package/dist/lib/routes/ApiKeysRoute.js +19 -0
  24. package/dist/lib/routes/ApiKeysRoute.js.map +1 -0
  25. package/dist/lib/routes/AutomationsRoute.js +19 -0
  26. package/dist/lib/routes/AutomationsRoute.js.map +1 -0
  27. package/dist/lib/routes/ChatRoute.js +19 -0
  28. package/dist/lib/routes/ChatRoute.js.map +1 -0
  29. package/dist/lib/routes/DocumentsRoute.js +19 -0
  30. package/dist/lib/routes/DocumentsRoute.js.map +1 -0
  31. package/dist/lib/routes/OAuthConsentRoute.js +19 -0
  32. package/dist/lib/routes/OAuthConsentRoute.js.map +1 -0
  33. package/dist/lib/routes/PricingRoute.js +19 -0
  34. package/dist/lib/routes/PricingRoute.js.map +1 -0
  35. package/dist/lib/routes/PrivacyRoute.js +19 -0
  36. package/dist/lib/routes/PrivacyRoute.js.map +1 -0
  37. package/dist/lib/routes/TeamSettingsRoute.js +19 -0
  38. package/dist/lib/routes/TeamSettingsRoute.js.map +1 -0
  39. package/dist/lib/routes/TermsRoute.js +19 -0
  40. package/dist/lib/routes/TermsRoute.js.map +1 -0
  41. package/dist/lib/routes/VerifyEmailRoute.js +19 -0
  42. package/dist/lib/routes/VerifyEmailRoute.js.map +1 -0
  43. package/dist/lib/routes.js +79 -0
  44. package/dist/lib/routes.js.map +1 -0
  45. package/dist/lib/ssr-utils.js +29 -0
  46. package/dist/lib/ssr-utils.js.map +1 -0
  47. package/dist/lib/ssr.js +60 -0
  48. package/dist/lib/ssr.js.map +1 -0
  49. package/dist/lib/styles.css +2410 -0
  50. package/dist/lib/useExtensions-B5nX_8XD.js +155 -0
  51. package/dist/lib/useExtensions-B5nX_8XD.js.map +1 -0
  52. package/dist/logo.svg +12 -0
  53. package/package.json +84 -0
  54. package/src/components/AgentSelector.tsx +90 -0
  55. package/src/components/BranchModal.tsx +129 -0
  56. package/src/components/ClientOnly.tsx +27 -0
  57. package/src/components/ExportMenu.tsx +122 -0
  58. package/src/components/LoadingSkeletons.tsx +110 -0
  59. package/src/components/MCPCredentialsSection.tsx +309 -0
  60. package/src/components/MentionChip.tsx +149 -0
  61. package/src/components/MentionDropdown.tsx +175 -0
  62. package/src/components/MentionInput.tsx +293 -0
  63. package/src/components/MessageItem.tsx +300 -0
  64. package/src/components/MessageList.tsx +159 -0
  65. package/src/components/OAuthAppsSection.tsx +124 -0
  66. package/src/components/ProjectFolder.tsx +141 -0
  67. package/src/components/ProjectModal.tsx +296 -0
  68. package/src/components/SSRMessageList.tsx +153 -0
  69. package/src/components/SearchModal.tsx +173 -0
  70. package/src/components/SettingsModal.tsx +412 -0
  71. package/src/components/ShareModal.tsx +280 -0
  72. package/src/components/Sidebar.tsx +491 -0
  73. package/src/components/TeamSwitcher.tsx +273 -0
  74. package/src/components/ToolCallDisplay.tsx +473 -0
  75. package/src/components/ToolConfirmationModal.tsx +130 -0
  76. package/src/components/UsageChart.tsx +177 -0
  77. package/src/components/content/CodeBlock.tsx +69 -0
  78. package/src/components/content/MarkdownRenderer.tsx +64 -0
  79. package/src/components/content/SSRMarkdownRenderer.tsx +158 -0
  80. package/src/contexts/AuthContext.tsx +119 -0
  81. package/src/contexts/ConfigContext.tsx +214 -0
  82. package/src/contexts/ProjectContext.tsx +167 -0
  83. package/src/contexts/ServerConfigProvider.tsx +41 -0
  84. package/src/contexts/ServerThemeProvider.tsx +47 -0
  85. package/src/contexts/TeamContext.tsx +255 -0
  86. package/src/contexts/ThemeContext.tsx +113 -0
  87. package/src/extensions/index.ts +15 -0
  88. package/src/extensions/registry.ts +187 -0
  89. package/src/extensions/useExtensions.ts +52 -0
  90. package/src/hooks/useAppPath.ts +34 -0
  91. package/src/hooks/useBasePath.ts +13 -0
  92. package/src/hooks/useKeyboardShortcuts.ts +50 -0
  93. package/src/hooks/useMentionSearch.ts +106 -0
  94. package/src/index.tsx +116 -0
  95. package/src/layouts/MainLayout.tsx +98 -0
  96. package/src/pages/AcceptInvitePage.tsx +175 -0
  97. package/src/pages/AdminDashboardPage.tsx +362 -0
  98. package/src/pages/AdminTeamPage.tsx +304 -0
  99. package/src/pages/AdminTeamsPage.tsx +242 -0
  100. package/src/pages/AdminUsersPage.tsx +385 -0
  101. package/src/pages/ApiKeysPage.tsx +449 -0
  102. package/src/pages/ChatPage.tsx +310 -0
  103. package/src/pages/DocumentsPage.tsx +577 -0
  104. package/src/pages/LoginPage.tsx +232 -0
  105. package/src/pages/OAuthConsentPage.tsx +234 -0
  106. package/src/pages/PricingPage.tsx +314 -0
  107. package/src/pages/PrivacyPage.tsx +65 -0
  108. package/src/pages/RegisterPage.tsx +153 -0
  109. package/src/pages/ScheduledPromptsPage.tsx +702 -0
  110. package/src/pages/SharedThreadPage.tsx +116 -0
  111. package/src/pages/TeamSettingsPage.tsx +1085 -0
  112. package/src/pages/TermsPage.tsx +82 -0
  113. package/src/pages/VerifyEmailPage.tsx +202 -0
  114. package/src/routes/AcceptInviteRoute.tsx +24 -0
  115. package/src/routes/AdminDashboardRoute.tsx +24 -0
  116. package/src/routes/AdminTeamRoute.tsx +24 -0
  117. package/src/routes/AdminTeamsRoute.tsx +24 -0
  118. package/src/routes/AdminUsersRoute.tsx +24 -0
  119. package/src/routes/ApiKeysRoute.tsx +24 -0
  120. package/src/routes/AutomationsRoute.tsx +24 -0
  121. package/src/routes/ChatRoute.tsx +28 -0
  122. package/src/routes/DocumentsRoute.tsx +24 -0
  123. package/src/routes/OAuthConsentRoute.tsx +24 -0
  124. package/src/routes/PricingRoute.tsx +24 -0
  125. package/src/routes/PrivacyRoute.tsx +24 -0
  126. package/src/routes/TeamSettingsRoute.tsx +24 -0
  127. package/src/routes/TermsRoute.tsx +24 -0
  128. package/src/routes/VerifyEmailRoute.tsx +24 -0
  129. package/src/routes/index.ts +57 -0
  130. package/src/ssr-utils.tsx +84 -0
  131. package/src/ssr.ts +123 -0
  132. package/src/stores/chatStore.ts +670 -0
  133. package/src/styles/index.css +254 -0
  134. package/src/utils/api.ts +78 -0
  135. package/src/vite-env.d.ts +13 -0
@@ -0,0 +1,82 @@
1
+ import { useConfig } from '../contexts/ConfigContext';
2
+
3
+ export default function TermsPage() {
4
+ const config = useConfig();
5
+
6
+ return (
7
+ <div className="min-h-screen bg-background py-12">
8
+ <div className="mx-auto max-w-3xl px-4">
9
+ <h1 className="mb-8 text-3xl font-bold text-text-primary">
10
+ Terms of Service
11
+ </h1>
12
+
13
+ <div className="prose prose-gray dark:prose-invert">
14
+ <p className="text-text-secondary">
15
+ Last updated: {new Date().toLocaleDateString()}
16
+ </p>
17
+
18
+ <h2 className="mt-8 text-xl font-semibold text-text-primary">
19
+ 1. Acceptance of Terms
20
+ </h2>
21
+ <p className="text-text-secondary">
22
+ By accessing and using {config.app.name}, you accept and agree to be
23
+ bound by the terms and provision of this agreement.
24
+ </p>
25
+
26
+ <h2 className="mt-8 text-xl font-semibold text-text-primary">
27
+ 2. Use of Service
28
+ </h2>
29
+ <p className="text-text-secondary">
30
+ You agree to use the service only for lawful purposes and in
31
+ accordance with these Terms. You agree not to use the service in any
32
+ way that could damage, disable, or impair the service.
33
+ </p>
34
+
35
+ <h2 className="mt-8 text-xl font-semibold text-text-primary">
36
+ 3. User Accounts
37
+ </h2>
38
+ <p className="text-text-secondary">
39
+ When you create an account with us, you must provide accurate,
40
+ complete, and current information. You are responsible for
41
+ safeguarding the password and for all activities that occur under
42
+ your account.
43
+ </p>
44
+
45
+ <h2 className="mt-8 text-xl font-semibold text-text-primary">
46
+ 4. Intellectual Property
47
+ </h2>
48
+ <p className="text-text-secondary">
49
+ The service and its original content, features, and functionality
50
+ are owned by {config.app.name} and are protected by international
51
+ copyright, trademark, and other intellectual property laws.
52
+ </p>
53
+
54
+ <h2 className="mt-8 text-xl font-semibold text-text-primary">
55
+ 5. Limitation of Liability
56
+ </h2>
57
+ <p className="text-text-secondary">
58
+ In no event shall {config.app.name}, nor its directors, employees,
59
+ partners, agents, suppliers, or affiliates, be liable for any
60
+ indirect, incidental, special, consequential, or punitive damages.
61
+ </p>
62
+
63
+ <h2 className="mt-8 text-xl font-semibold text-text-primary">
64
+ 6. Changes to Terms
65
+ </h2>
66
+ <p className="text-text-secondary">
67
+ We reserve the right to modify or replace these Terms at any time.
68
+ If a revision is material, we will try to provide at least 30 days
69
+ notice prior to any new terms taking effect.
70
+ </p>
71
+
72
+ <h2 className="mt-8 text-xl font-semibold text-text-primary">
73
+ 7. Contact Us
74
+ </h2>
75
+ <p className="text-text-secondary">
76
+ If you have any questions about these Terms, please contact us.
77
+ </p>
78
+ </div>
79
+ </div>
80
+ </div>
81
+ );
82
+ }
@@ -0,0 +1,202 @@
1
+ import { useState, useEffect, useRef } from 'react';
2
+ import { useNavigate } from 'react-router';
3
+ import { useAuth } from '../contexts/AuthContext';
4
+ import { useConfig } from '../contexts/ConfigContext';
5
+ import { useTheme } from '../contexts/ThemeContext';
6
+ import { useAppPath } from '../hooks/useAppPath';
7
+
8
+ export default function VerifyEmailPage() {
9
+ const navigate = useNavigate();
10
+ const appPath = useAppPath();
11
+ const { user, verifyEmail, resendVerification, logout } = useAuth();
12
+ const config = useConfig();
13
+ const { theme } = useTheme();
14
+
15
+ const [code, setCode] = useState('');
16
+ const [error, setError] = useState('');
17
+ const [isLoading, setIsLoading] = useState(false);
18
+ const [isResending, setIsResending] = useState(false);
19
+ const [resendCooldown, setResendCooldown] = useState(0);
20
+ const [hasRequestedInitialCode, setHasRequestedInitialCode] = useState(false);
21
+
22
+ const inputRef = useRef<HTMLInputElement>(null);
23
+
24
+ // Focus input on mount
25
+ useEffect(() => {
26
+ inputRef.current?.focus();
27
+ }, []);
28
+
29
+ // Request initial verification code for existing unverified users
30
+ useEffect(() => {
31
+ if (user && !user.emailVerified && !hasRequestedInitialCode) {
32
+ setHasRequestedInitialCode(true);
33
+ // Send initial code on page load
34
+ handleResend(true);
35
+ }
36
+ }, [user, hasRequestedInitialCode]);
37
+
38
+ // Redirect if user is verified or not logged in
39
+ useEffect(() => {
40
+ if (!user) {
41
+ navigate('/login', { replace: true });
42
+ } else if (user.emailVerified) {
43
+ navigate(appPath('/'), { replace: true });
44
+ }
45
+ }, [user, navigate, appPath]);
46
+
47
+ // Countdown timer for resend cooldown
48
+ useEffect(() => {
49
+ if (resendCooldown > 0) {
50
+ const timer = setTimeout(() => setResendCooldown(resendCooldown - 1), 1000);
51
+ return () => clearTimeout(timer);
52
+ }
53
+ }, [resendCooldown]);
54
+
55
+ async function handleSubmit(e: React.FormEvent) {
56
+ e.preventDefault();
57
+ setError('');
58
+
59
+ if (code.length < 6) {
60
+ setError('Please enter the 6-digit code');
61
+ return;
62
+ }
63
+
64
+ setIsLoading(true);
65
+
66
+ try {
67
+ await verifyEmail(code);
68
+ navigate(appPath('/'), { replace: true });
69
+ } catch (err) {
70
+ setError(err instanceof Error ? err.message : 'Verification failed');
71
+ } finally {
72
+ setIsLoading(false);
73
+ }
74
+ }
75
+
76
+ async function handleResend(silent = false) {
77
+ if (resendCooldown > 0) return;
78
+
79
+ if (!silent) {
80
+ setError('');
81
+ setIsResending(true);
82
+ }
83
+
84
+ try {
85
+ await resendVerification();
86
+ setResendCooldown(60); // 60 second cooldown
87
+ if (!silent) {
88
+ setCode(''); // Clear the input for new code
89
+ }
90
+ } catch (err) {
91
+ if (!silent) {
92
+ setError(err instanceof Error ? err.message : 'Failed to resend code');
93
+ }
94
+ } finally {
95
+ if (!silent) {
96
+ setIsResending(false);
97
+ }
98
+ }
99
+ }
100
+
101
+ async function handleLogout() {
102
+ await logout();
103
+ navigate('/login', { replace: true });
104
+ }
105
+
106
+ // Handle input - only allow numeric characters
107
+ function handleCodeChange(e: React.ChangeEvent<HTMLInputElement>) {
108
+ const value = e.target.value.replace(/\D/g, '').slice(0, 6);
109
+ setCode(value);
110
+ }
111
+
112
+ if (!user) {
113
+ return null;
114
+ }
115
+
116
+ return (
117
+ <div className="flex min-h-screen items-center justify-center bg-background p-4">
118
+ <div className="w-full max-w-md">
119
+ <div className="mb-8 text-center">
120
+ {config.ui.logo && (
121
+ <img
122
+ src={typeof config.ui.logo === 'string' ? config.ui.logo : (theme === 'dark' ? config.ui.logo.dark : config.ui.logo.light)}
123
+ alt={config.app.name}
124
+ className="mx-auto mb-4 h-16 w-16 rounded-lg object-contain"
125
+ />
126
+ )}
127
+ <h1 className="text-3xl font-bold text-text-primary">Verify your email</h1>
128
+ <p className="mt-2 text-text-secondary">
129
+ We sent a verification code to
130
+ </p>
131
+ <p className="mt-1 font-medium text-text-primary">{user.email}</p>
132
+ </div>
133
+
134
+ {error && (
135
+ <div className="mb-4 rounded-lg bg-error/10 p-3 text-sm text-error">
136
+ {error}
137
+ </div>
138
+ )}
139
+
140
+ <form onSubmit={handleSubmit} className="space-y-6">
141
+ <div>
142
+ <label
143
+ htmlFor="code"
144
+ className="block text-sm font-medium text-text-primary text-center mb-2"
145
+ >
146
+ Enter 6-digit code
147
+ </label>
148
+ <input
149
+ ref={inputRef}
150
+ type="text"
151
+ id="code"
152
+ value={code}
153
+ onChange={handleCodeChange}
154
+ inputMode="numeric"
155
+ autoComplete="one-time-code"
156
+ placeholder="000000"
157
+ maxLength={6}
158
+ className="w-full rounded-lg border border-input-border bg-input-background px-4 py-4 text-center text-3xl font-bold tracking-[0.5em] text-text-primary focus:border-primary focus:outline-none"
159
+ style={{ letterSpacing: '0.5em' }}
160
+ />
161
+ </div>
162
+
163
+ <button
164
+ type="submit"
165
+ disabled={isLoading || code.length < 6}
166
+ className="w-full rounded-lg bg-primary px-4 py-3 font-medium text-white hover:bg-primary-hover disabled:opacity-50"
167
+ >
168
+ {isLoading ? 'Verifying...' : 'Verify Email'}
169
+ </button>
170
+ </form>
171
+
172
+ <div className="mt-6 text-center">
173
+ <p className="text-sm text-text-secondary">
174
+ Didn't receive the code?{' '}
175
+ {resendCooldown > 0 ? (
176
+ <span className="text-text-muted">
177
+ Resend in {resendCooldown}s
178
+ </span>
179
+ ) : (
180
+ <button
181
+ onClick={() => handleResend()}
182
+ disabled={isResending}
183
+ className="text-primary hover:underline disabled:opacity-50"
184
+ >
185
+ {isResending ? 'Sending...' : 'Resend code'}
186
+ </button>
187
+ )}
188
+ </p>
189
+ </div>
190
+
191
+ <div className="mt-8 text-center">
192
+ <button
193
+ onClick={handleLogout}
194
+ className="text-sm text-text-muted hover:text-text-secondary"
195
+ >
196
+ Sign out and use a different email
197
+ </button>
198
+ </div>
199
+ </div>
200
+ </div>
201
+ );
202
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Accept Invite Route - Team invitation acceptance
3
+ */
4
+ import { ChatProviders } from '../index';
5
+ import AcceptInvitePage from '../pages/AcceptInvitePage';
6
+ import { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';
7
+
8
+ export function meta() {
9
+ return [{ title: 'Accept Invitation' }];
10
+ }
11
+
12
+ export function links() {
13
+ return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];
14
+ }
15
+
16
+ export default function AcceptInviteRoute() {
17
+ return (
18
+ <ChatProviders>
19
+ <AcceptInvitePage />
20
+ </ChatProviders>
21
+ );
22
+ }
23
+
24
+ export { SimpleLoadingSkeleton as LoadingSkeleton };
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Admin Dashboard Route - Admin overview
3
+ */
4
+ import { ChatProviders } from '../index';
5
+ import AdminDashboardPage from '../pages/AdminDashboardPage';
6
+ import { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';
7
+
8
+ export function meta() {
9
+ return [{ title: 'Admin Dashboard' }];
10
+ }
11
+
12
+ export function links() {
13
+ return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];
14
+ }
15
+
16
+ export default function AdminDashboardRoute() {
17
+ return (
18
+ <ChatProviders>
19
+ <AdminDashboardPage />
20
+ </ChatProviders>
21
+ );
22
+ }
23
+
24
+ export { SimpleLoadingSkeleton as LoadingSkeleton };
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Admin Team Route - Single team management
3
+ */
4
+ import { ChatProviders } from '../index';
5
+ import AdminTeamPage from '../pages/AdminTeamPage';
6
+ import { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';
7
+
8
+ export function meta() {
9
+ return [{ title: 'Admin - Team Details' }];
10
+ }
11
+
12
+ export function links() {
13
+ return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];
14
+ }
15
+
16
+ export default function AdminTeamRoute() {
17
+ return (
18
+ <ChatProviders>
19
+ <AdminTeamPage />
20
+ </ChatProviders>
21
+ );
22
+ }
23
+
24
+ export { SimpleLoadingSkeleton as LoadingSkeleton };
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Admin Teams Route - Team list management
3
+ */
4
+ import { ChatProviders } from '../index';
5
+ import AdminTeamsPage from '../pages/AdminTeamsPage';
6
+ import { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';
7
+
8
+ export function meta() {
9
+ return [{ title: 'Admin - Teams' }];
10
+ }
11
+
12
+ export function links() {
13
+ return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];
14
+ }
15
+
16
+ export default function AdminTeamsRoute() {
17
+ return (
18
+ <ChatProviders>
19
+ <AdminTeamsPage />
20
+ </ChatProviders>
21
+ );
22
+ }
23
+
24
+ export { SimpleLoadingSkeleton as LoadingSkeleton };
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Admin Users Route - User management
3
+ */
4
+ import { ChatProviders } from '../index';
5
+ import AdminUsersPage from '../pages/AdminUsersPage';
6
+ import { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';
7
+
8
+ export function meta() {
9
+ return [{ title: 'Admin - Users' }];
10
+ }
11
+
12
+ export function links() {
13
+ return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];
14
+ }
15
+
16
+ export default function AdminUsersRoute() {
17
+ return (
18
+ <ChatProviders>
19
+ <AdminUsersPage />
20
+ </ChatProviders>
21
+ );
22
+ }
23
+
24
+ export { SimpleLoadingSkeleton as LoadingSkeleton };
@@ -0,0 +1,24 @@
1
+ /**
2
+ * API Keys Route - User API key management
3
+ */
4
+ import { ChatProviders } from '../index';
5
+ import ApiKeysPage from '../pages/ApiKeysPage';
6
+ import { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';
7
+
8
+ export function meta() {
9
+ return [{ title: 'API Keys' }];
10
+ }
11
+
12
+ export function links() {
13
+ return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];
14
+ }
15
+
16
+ export default function ApiKeysRoute() {
17
+ return (
18
+ <ChatProviders>
19
+ <ApiKeysPage />
20
+ </ChatProviders>
21
+ );
22
+ }
23
+
24
+ export { SimpleLoadingSkeleton as LoadingSkeleton };
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Automations Route - Scheduled prompts management
3
+ */
4
+ import { ChatProviders } from '../index';
5
+ import ScheduledPromptsPage from '../pages/ScheduledPromptsPage';
6
+ import { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';
7
+
8
+ export function meta() {
9
+ return [{ title: 'Automations' }];
10
+ }
11
+
12
+ export function links() {
13
+ return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];
14
+ }
15
+
16
+ export default function AutomationsRoute() {
17
+ return (
18
+ <ChatProviders>
19
+ <ScheduledPromptsPage />
20
+ </ChatProviders>
21
+ );
22
+ }
23
+
24
+ export { SimpleLoadingSkeleton as LoadingSkeleton };
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Chat Route - Main chat interface with sidebar
3
+ * Wraps ChatPage with ChatProviders and MainLayout
4
+ */
5
+ import { ChatProviders } from '../index';
6
+ import MainLayout from '../layouts/MainLayout';
7
+ import ChatPage from '../pages/ChatPage';
8
+ import { ChatLoadingSkeleton } from '../components/LoadingSkeletons';
9
+
10
+ export function meta() {
11
+ return [{ title: 'Chat' }];
12
+ }
13
+
14
+ export function links() {
15
+ return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];
16
+ }
17
+
18
+ export default function ChatRoute() {
19
+ return (
20
+ <ChatProviders>
21
+ <MainLayout>
22
+ <ChatPage />
23
+ </MainLayout>
24
+ </ChatProviders>
25
+ );
26
+ }
27
+
28
+ export { ChatLoadingSkeleton as LoadingSkeleton };
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Documents Route - Document management
3
+ */
4
+ import { ChatProviders } from '../index';
5
+ import DocumentsPage from '../pages/DocumentsPage';
6
+ import { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';
7
+
8
+ export function meta() {
9
+ return [{ title: 'Documents' }];
10
+ }
11
+
12
+ export function links() {
13
+ return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];
14
+ }
15
+
16
+ export default function DocumentsRoute() {
17
+ return (
18
+ <ChatProviders>
19
+ <DocumentsPage />
20
+ </ChatProviders>
21
+ );
22
+ }
23
+
24
+ export { SimpleLoadingSkeleton as LoadingSkeleton };
@@ -0,0 +1,24 @@
1
+ /**
2
+ * OAuth Consent Route - OAuth authorization consent
3
+ */
4
+ import { ChatProviders } from '../index';
5
+ import OAuthConsentPage from '../pages/OAuthConsentPage';
6
+ import { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';
7
+
8
+ export function meta() {
9
+ return [{ title: 'OAuth Consent' }];
10
+ }
11
+
12
+ export function links() {
13
+ return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];
14
+ }
15
+
16
+ export default function OAuthConsentRoute() {
17
+ return (
18
+ <ChatProviders>
19
+ <OAuthConsentPage />
20
+ </ChatProviders>
21
+ );
22
+ }
23
+
24
+ export { SimpleLoadingSkeleton as LoadingSkeleton };
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Pricing Route - Pricing/plans page
3
+ */
4
+ import { ChatProviders } from '../index';
5
+ import PricingPage from '../pages/PricingPage';
6
+ import { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';
7
+
8
+ export function meta() {
9
+ return [{ title: 'Pricing' }];
10
+ }
11
+
12
+ export function links() {
13
+ return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];
14
+ }
15
+
16
+ export default function PricingRoute() {
17
+ return (
18
+ <ChatProviders>
19
+ <PricingPage />
20
+ </ChatProviders>
21
+ );
22
+ }
23
+
24
+ export { SimpleLoadingSkeleton as LoadingSkeleton };
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Privacy Route - Privacy policy page
3
+ */
4
+ import { ChatProviders } from '../index';
5
+ import PrivacyPage from '../pages/PrivacyPage';
6
+ import { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';
7
+
8
+ export function meta() {
9
+ return [{ title: 'Privacy Policy' }];
10
+ }
11
+
12
+ export function links() {
13
+ return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];
14
+ }
15
+
16
+ export default function PrivacyRoute() {
17
+ return (
18
+ <ChatProviders>
19
+ <PrivacyPage />
20
+ </ChatProviders>
21
+ );
22
+ }
23
+
24
+ export { SimpleLoadingSkeleton as LoadingSkeleton };
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Team Settings Route - Team management
3
+ */
4
+ import { ChatProviders } from '../index';
5
+ import TeamSettingsPage from '../pages/TeamSettingsPage';
6
+ import { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';
7
+
8
+ export function meta() {
9
+ return [{ title: 'Team Settings' }];
10
+ }
11
+
12
+ export function links() {
13
+ return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];
14
+ }
15
+
16
+ export default function TeamSettingsRoute() {
17
+ return (
18
+ <ChatProviders>
19
+ <TeamSettingsPage />
20
+ </ChatProviders>
21
+ );
22
+ }
23
+
24
+ export { SimpleLoadingSkeleton as LoadingSkeleton };
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Terms Route - Terms of service page
3
+ */
4
+ import { ChatProviders } from '../index';
5
+ import TermsPage from '../pages/TermsPage';
6
+ import { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';
7
+
8
+ export function meta() {
9
+ return [{ title: 'Terms of Service' }];
10
+ }
11
+
12
+ export function links() {
13
+ return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];
14
+ }
15
+
16
+ export default function TermsRoute() {
17
+ return (
18
+ <ChatProviders>
19
+ <TermsPage />
20
+ </ChatProviders>
21
+ );
22
+ }
23
+
24
+ export { SimpleLoadingSkeleton as LoadingSkeleton };
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Verify Email Route - Email verification page
3
+ */
4
+ import { ChatProviders } from '../index';
5
+ import VerifyEmailPage from '../pages/VerifyEmailPage';
6
+ import { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';
7
+
8
+ export function meta() {
9
+ return [{ title: 'Verify Email' }];
10
+ }
11
+
12
+ export function links() {
13
+ return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];
14
+ }
15
+
16
+ export default function VerifyEmailRoute() {
17
+ return (
18
+ <ChatProviders>
19
+ <VerifyEmailPage />
20
+ </ChatProviders>
21
+ );
22
+ }
23
+
24
+ export { SimpleLoadingSkeleton as LoadingSkeleton };