Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions app/actions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -310,8 +310,8 @@ async function submit(formData?: FormData, skip?: boolean) {

if (userInput && (userInput.toLowerCase().trim() === 'what is a planet computer?' || userInput.toLowerCase().trim() === 'what is qcx-terra?' || userInput.toLowerCase().trim() === 'how do i use the computer?')) {
const definition = userInput.toLowerCase().trim() === 'how do i use the computer?' ? 'To use QCX-Terra, start by searching for a location or asking a geospatial question. You can also draw features on the map to focus your analysis. QCX-Terra uses multi-agent automation to streamline exploration and provide precise environmental insights.' : userInput.toLowerCase().trim() === 'what is a planet computer?'
? `A planet computer is a proprietary environment aware system that interoperates weather forecasting, mapping and scheduling using cutting edge multi-agents to streamline automation and exploration on a planet. Available for our Pro and Enterprise customers. [QCX Pricing](https://www.queue.cx/#pricing)`
: `QCX-Terra is a model garden of pixel level precision geospatial foundational models for efficient land feature predictions from satellite imagery. Available for our Pro and Enterprise customers. [QCX Pricing] (https://www.queue.cx/#pricing)`;
? `A planet computer is a proprietary environment aware system that interoperates weather forecasting, mapping and scheduling using cutting edge multi-agents to streamline automation and exploration on a planet. Available for our Go and Enterprise customers. [QCX Pricing](https://www.queue.cx/#pricing)`
: `QCX-Terra is a model garden of pixel level precision geospatial foundational models for efficient land feature predictions from satellite imagery. Available for our Go and Enterprise customers. [QCX Pricing] (https://www.queue.cx/#pricing)`;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Fix the malformed QCX Pricing link.

Line 314 uses [QCX Pricing] (https://...); remove the space so the customer-facing link renders correctly.

Proposed fix
-      : `QCX-Terra ... [QCX Pricing] (https://www.queue.cx/#pricing)`;
+      : `QCX-Terra ... [QCX Pricing](https://www.queue.cx/#pricing)`;
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
: `QCX-Terra is a model garden of pixel level precision geospatial foundational models for efficient land feature predictions from satellite imagery. Available for our Go and Enterprise customers. [QCX Pricing] (https://www.queue.cx/#pricing)`;
: `QCX-Terra is a model garden of pixel level precision geospatial foundational models for efficient land feature predictions from satellite imagery. Available for our Go and Enterprise customers. [QCX Pricing](https://www.queue.cx/#pricing)`;
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/actions.tsx` at line 314, Update the QCX-Terra description string in the
relevant action to remove the space between the Markdown link text and URL,
ensuring the QCX Pricing link renders correctly.


const content = JSON.stringify(Object.fromEntries(formData!));
const type = 'input';
Expand Down
2 changes: 1 addition & 1 deletion components/settings/components/settings-skeleton.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export function SettingsSkeleton() {
<Tabs.Root defaultValue="system-prompt" className="w-full">
<Tabs.List className="grid w-full grid-cols-2 md:grid-cols-4 gap-2">
<Tabs.Trigger value="system-prompt">System</Tabs.Trigger>
<Tabs.Trigger value="tool">Tools</Tabs.Trigger>
<Tabs.Trigger value="tool">Plugins</Tabs.Trigger>
<Tabs.Trigger value="user-management">Users</Tabs.Trigger>
<Tabs.Trigger value="map">Map</Tabs.Trigger>
</Tabs.List>
Expand Down
8 changes: 4 additions & 4 deletions components/settings/components/settings.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ const settingsFormSchema = z.object({
message: "System prompt cannot exceed 2000 characters.",
}),
selectedModel: z.string().refine(value => value.trim() !== '', {
message: "Please select a tool.",
message: "Please select a plugin.",
}),
users: z.array(
z.object({
Expand Down Expand Up @@ -214,7 +214,7 @@ export function Settings({ initialTab = "system-prompt" }: SettingsProps) {
<Tabs.Root value={currentTab} onValueChange={setCurrentTab} className="w-full">
<Tabs.List className="grid w-full grid-cols-2 md:grid-cols-4 gap-2">
<Tabs.Trigger value="system-prompt" className="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2 data-[state=active]:bg-primary/80">System</Tabs.Trigger>
<Tabs.Trigger value="tool" className="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2 data-[state=active]:bg-primary/80">Tools</Tabs.Trigger>
<Tabs.Trigger value="tool" className="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2 data-[state=active]:bg-primary/80">Plugins</Tabs.Trigger>
<Tabs.Trigger value="user-management" className="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2 data-[state=active]:bg-primary/80">Users</Tabs.Trigger>
<Tabs.Trigger value="map" className="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2 data-[state=active]:bg-primary/80">Map</Tabs.Trigger>
{/*
Expand Down Expand Up @@ -252,8 +252,8 @@ export function Settings({ initialTab = "system-prompt" }: SettingsProps) {
<Tabs.Content value="tool" className="mt-6">
<Card>
<CardHeader>
<CardTitle>Tools</CardTitle>
<CardDescription>Choose the tool that powers your planetary copilot</CardDescription>
<CardTitle>Plugins</CardTitle>
<CardDescription>Choose the plugin that powers your planetary copilot</CardDescription>
</CardHeader>
<CardContent>
<ToolSelectionForm form={form} />
Expand Down
8 changes: 4 additions & 4 deletions components/settings/components/tool-selection-form.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -83,12 +83,12 @@ export function ToolSelectionForm({ form }: ToolSelectionFormProps) {
render={({ field }) => (
<FormItem className="space-y-4">
<div className="flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between">
<FormLabel className="text-base font-semibold">Planetary Tool</FormLabel>
<FormLabel className="text-base font-semibold">Planetary Plugin</FormLabel>
<div className="flex items-center gap-2 flex-wrap sm:flex-nowrap">
<span className="text-sm text-muted-foreground whitespace-nowrap">Quick Select:</span>
<Select onValueChange={field.onChange} value={field.value}>
<SelectTrigger className="w-full sm:w-[180px]">
<SelectValue placeholder="Select tool" />
<SelectValue placeholder="Select plugin" />
</SelectTrigger>
<SelectContent>
{tools.map((tool) => {
Expand Down Expand Up @@ -149,8 +149,8 @@ export function ToolSelectionForm({ form }: ToolSelectionFormProps) {
</RadioGroup>
</FormControl>
<FormDescription>
Select the tool that will power your planetary copilot.
Different tools have different capabilities and performance
Select the plugin that will power your planetary copilot.
Different plugins have different capabilities and performance
characteristics.
</FormDescription>
<FormMessage />
Expand Down
2 changes: 1 addition & 1 deletion public/sw.js

Large diffs are not rendered by default.