nitrostack 1.0.71 → 1.0.72
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 +1 -1
- package/src/studio/app/api/chat/route.ts +3 -1
- package/src/studio/app/auth/callback/page.tsx +6 -6
- package/src/studio/app/chat/page.tsx +1099 -408
- package/src/studio/app/chat/page.tsx.backup +1046 -187
- package/src/studio/app/globals.css +361 -191
- package/src/studio/app/health/page.tsx +72 -76
- package/src/studio/app/layout.tsx +9 -11
- package/src/studio/app/logs/page.tsx +29 -30
- package/src/studio/app/page.tsx +134 -230
- package/src/studio/app/prompts/page.tsx +115 -97
- package/src/studio/app/resources/page.tsx +115 -124
- package/src/studio/app/settings/page.tsx +1080 -125
- package/src/studio/app/tools/page.tsx +343 -0
- package/src/studio/components/EnlargeModal.tsx +76 -65
- package/src/studio/components/LogMessage.tsx +5 -5
- package/src/studio/components/MarkdownRenderer.tsx +4 -4
- package/src/studio/components/Sidebar.tsx +150 -210
- package/src/studio/components/SplashScreen.tsx +109 -0
- package/src/studio/components/ToolCard.tsx +50 -41
- package/src/studio/components/VoiceOrbOverlay.tsx +469 -0
- package/src/studio/components/WidgetRenderer.tsx +8 -3
- package/src/studio/components/tools/ToolsCanvas.tsx +327 -0
- package/src/studio/lib/store.ts +15 -0
- package/src/studio/package-lock.json +3303 -0
- package/src/studio/package.json +3 -1
- package/src/studio/public/NitroStudio Isotype Color.png +0 -0
- package/src/studio/tailwind.config.ts +63 -17
- package/src/studio/app/auth/page.tsx +0 -560
- package/src/studio/app/ping/page.tsx +0 -209
package/package.json
CHANGED
|
@@ -113,6 +113,8 @@ export async function POST(request: NextRequest) {
|
|
|
113
113
|
});
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
+
|
|
117
|
+
|
|
116
118
|
const tools = [...mcpTools, ...syntheticTools];
|
|
117
119
|
|
|
118
120
|
// Call LLM
|
|
@@ -157,7 +159,7 @@ export async function POST(request: NextRequest) {
|
|
|
157
159
|
} else if (toolCall.name === 'read_resource') {
|
|
158
160
|
const resource = await client.readResource(toolCall.arguments.uri);
|
|
159
161
|
// Extract the actual content from the resource
|
|
160
|
-
let resourceContent = resource;
|
|
162
|
+
let resourceContent: any = resource;
|
|
161
163
|
if (resource.contents && Array.isArray(resource.contents)) {
|
|
162
164
|
// If it's an array of contents, extract text from each
|
|
163
165
|
resourceContent = resource.contents.map((c: any) => {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { useEffect, useState, Suspense } from 'react';
|
|
4
4
|
import { useRouter, useSearchParams } from 'next/navigation';
|
|
5
5
|
import { useStudioStore } from '@/lib/store';
|
|
6
|
-
import {
|
|
6
|
+
import { ArrowPathIcon, CheckCircleIcon, XCircleIcon } from '@heroicons/react/24/outline';
|
|
7
7
|
|
|
8
8
|
function OAuthCallback() {
|
|
9
9
|
const router = useRouter();
|
|
@@ -95,7 +95,7 @@ function OAuthCallback() {
|
|
|
95
95
|
// Store access token as JWT token
|
|
96
96
|
if (tokens.access_token) {
|
|
97
97
|
setJwtToken(tokens.access_token);
|
|
98
|
-
|
|
98
|
+
|
|
99
99
|
// Clean up session storage
|
|
100
100
|
sessionStorage.removeItem('oauth_code_verifier');
|
|
101
101
|
sessionStorage.removeItem('oauth_state');
|
|
@@ -126,7 +126,7 @@ function OAuthCallback() {
|
|
|
126
126
|
<div className="card p-8 max-w-md w-full text-center">
|
|
127
127
|
{status === 'processing' && (
|
|
128
128
|
<>
|
|
129
|
-
<
|
|
129
|
+
<ArrowPathIcon className="w-16 h-16 text-primary mx-auto mb-4 animate-spin" />
|
|
130
130
|
<h1 className="text-2xl font-bold text-foreground mb-2">Processing...</h1>
|
|
131
131
|
<p className="text-muted-foreground">{message}</p>
|
|
132
132
|
</>
|
|
@@ -134,7 +134,7 @@ function OAuthCallback() {
|
|
|
134
134
|
|
|
135
135
|
{status === 'success' && (
|
|
136
136
|
<>
|
|
137
|
-
<
|
|
137
|
+
<CheckCircleIcon className="w-16 h-16 text-emerald-500 mx-auto mb-4" />
|
|
138
138
|
<h1 className="text-2xl font-bold text-foreground mb-2">Success!</h1>
|
|
139
139
|
<p className="text-muted-foreground">{message}</p>
|
|
140
140
|
</>
|
|
@@ -142,7 +142,7 @@ function OAuthCallback() {
|
|
|
142
142
|
|
|
143
143
|
{status === 'error' && (
|
|
144
144
|
<>
|
|
145
|
-
<
|
|
145
|
+
<XCircleIcon className="w-16 h-16 text-red-500 mx-auto mb-4" />
|
|
146
146
|
<h1 className="text-2xl font-bold text-foreground mb-2">Authorization Failed</h1>
|
|
147
147
|
<p className="text-muted-foreground mb-4">{message}</p>
|
|
148
148
|
<button
|
|
@@ -163,7 +163,7 @@ export default function AuthCallbackPage() {
|
|
|
163
163
|
<Suspense fallback={
|
|
164
164
|
<div className="fixed inset-0 flex items-center justify-center bg-background">
|
|
165
165
|
<div className="text-center">
|
|
166
|
-
<
|
|
166
|
+
<ArrowPathIcon className="w-8 h-8 text-primary animate-spin mx-auto mb-4" />
|
|
167
167
|
<p className="text-muted-foreground">Loading...</p>
|
|
168
168
|
</div>
|
|
169
169
|
</div>
|