chore(web): upgrade all dependencies to latest stable
- @hookform/resolvers 3.10.0 → 5.2.2 - @tailwindcss/postcss 4.2.1 → 4.3.0 - @types/node 24.12.2 → 25.6.2 - @uiw/codemirror-* 4.25.8 → 4.25.9 - autoprefixer 10.4.27 → 10.5.0 - esbuild 0.27.4 → 0.28.0 - eslint 9.39.4 → 9.x (pinned; eslint 10 incompatible with eslint-config-next) - eslint-config-next 16.2.3 → 16.2.6 - lucide-react 0.564.0 → 1.14.0 - motion 12.36.0 → 12.38.0 - next 16.2.3 → 16.2.6 - postcss 8.5.8 → 8.5.14 - react/react-dom 19.2.4 → 19.2.6 - react-day-picker 9.13.2 → 10.0.0 - react-hook-form 7.71.2 → 7.75.0 - react-resizable-panels 2.1.9 → 4.11.0 - recharts 2.15.0 → 3.8.1 - sonner 1.7.4 → 2.0.7 - tailwindcss 4.2.1 → 4.3.0 - tw-animate-css 1.3.3 → 1.4.0 - typescript 5.7.3 → 6.0.3 - zod 3.25.76 → 4.4.3 Breaking changes fixed: - react-resizable-panels v4: PanelGroup→Group, PanelResizeHandle→Separator - react-day-picker v10: ClassNames.table renamed to month_grid - recharts v3: TooltipContentProps/DefaultLegendContentProps type changes, DataKey type for key prop - shiki: cast createHighlighter promise to local ShikiHighlighter type - voice/route.ts: pass requestUrl through buildDigitsResponse - pty-chat-parser.ts: declare _lastInputAt private field - sf-workspace-store.tsx: fix stale pi-coding-agent import path, add import for locally-used workspace types Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
parent
cab8b5decc
commit
e50d96e1f8
10 changed files with 866 additions and 810 deletions
|
|
@ -127,6 +127,7 @@ function buildMenuResponse(
|
|||
|
||||
function buildDigitsResponse(
|
||||
digits: string | null,
|
||||
requestUrl: string,
|
||||
config: VoiceRoutingConfig,
|
||||
): string {
|
||||
if (digits === "1") {
|
||||
|
|
@ -135,7 +136,7 @@ function buildDigitsResponse(
|
|||
if (digits === "2" && config.aiNumbers.length > 0) {
|
||||
return buildTwiml(buildDialTargets(config.aiNumbers));
|
||||
}
|
||||
return buildMenuResponse(config);
|
||||
return buildMenuResponse(requestUrl, config);
|
||||
}
|
||||
|
||||
async function readDigits(request: Request): Promise<string | null> {
|
||||
|
|
@ -174,7 +175,7 @@ export async function POST(request: Request): Promise<Response> {
|
|||
const responseXml =
|
||||
digits === null
|
||||
? buildMenuResponse(request.url, getRoutingConfig())
|
||||
: buildDigitsResponse(digits, getRoutingConfig());
|
||||
: buildDigitsResponse(digits, request.url, getRoutingConfig());
|
||||
return new Response(responseXml, {
|
||||
headers: noStoreHeaders(),
|
||||
});
|
||||
|
|
|
|||
|
|
@ -536,14 +536,14 @@ function getChatHighlighter(): Promise<ShikiHighlighter> {
|
|||
"ini",
|
||||
"dotenv",
|
||||
],
|
||||
}),
|
||||
}) as Promise<ShikiHighlighter>,
|
||||
)
|
||||
.catch((err) => {
|
||||
chatHighlighterPromise = null;
|
||||
throw err;
|
||||
});
|
||||
}) as Promise<ShikiHighlighter>;
|
||||
}
|
||||
return chatHighlighterPromise;
|
||||
return chatHighlighterPromise!;
|
||||
}
|
||||
|
||||
function HighlightedCode({
|
||||
|
|
|
|||
|
|
@ -163,15 +163,15 @@ async function getHighlighter(): Promise<ShikiHighlighter> {
|
|||
"ini",
|
||||
"dotenv",
|
||||
],
|
||||
}),
|
||||
}) as Promise<ShikiHighlighter>,
|
||||
)
|
||||
.catch((err) => {
|
||||
// Reset so the next call retries instead of returning a rejected promise forever
|
||||
highlighterPromise = null;
|
||||
throw err;
|
||||
});
|
||||
}) as Promise<ShikiHighlighter>;
|
||||
}
|
||||
return highlighterPromise;
|
||||
return highlighterPromise!;
|
||||
}
|
||||
|
||||
function HighlightedCode({
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ function Calendar({
|
|||
: "rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5",
|
||||
defaultClassNames.caption_label,
|
||||
),
|
||||
table: "w-full border-collapse",
|
||||
month_grid: "w-full border-collapse",
|
||||
weekdays: cn("flex", defaultClassNames.weekdays),
|
||||
weekday: cn(
|
||||
"text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none",
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ function ChartTooltipContent({
|
|||
color,
|
||||
nameKey,
|
||||
labelKey,
|
||||
}: React.ComponentProps<typeof RechartsPrimitive.Tooltip> &
|
||||
}: RechartsPrimitive.TooltipContentProps &
|
||||
React.ComponentProps<"div"> & {
|
||||
hideLabel?: boolean;
|
||||
hideIndicator?: boolean;
|
||||
|
|
@ -182,7 +182,7 @@ function ChartTooltipContent({
|
|||
|
||||
return (
|
||||
<div
|
||||
key={item.dataKey}
|
||||
key={String(item.dataKey ?? index)}
|
||||
className={cn(
|
||||
"[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5",
|
||||
indicator === "dot" && "items-center",
|
||||
|
|
@ -253,7 +253,7 @@ function ChartLegendContent({
|
|||
verticalAlign = "bottom",
|
||||
nameKey,
|
||||
}: React.ComponentProps<"div"> &
|
||||
Pick<RechartsPrimitive.LegendProps, "payload" | "verticalAlign"> & {
|
||||
Pick<RechartsPrimitive.DefaultLegendContentProps, "payload" | "verticalAlign"> & {
|
||||
hideIcon?: boolean;
|
||||
nameKey?: string;
|
||||
}) {
|
||||
|
|
|
|||
|
|
@ -1,17 +1,17 @@
|
|||
"use client";
|
||||
|
||||
import { GripVerticalIcon } from "lucide-react";
|
||||
import type * as React from "react";
|
||||
import * as ResizablePrimitive from "react-resizable-panels";
|
||||
import * as React from "react";
|
||||
import { Group, Panel, Separator } from "react-resizable-panels";
|
||||
|
||||
import { cn } from "@/lib/utils";
|
||||
|
||||
function ResizablePanelGroup({
|
||||
className,
|
||||
...props
|
||||
}: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) {
|
||||
}: React.ComponentProps<typeof Group>) {
|
||||
return (
|
||||
<ResizablePrimitive.PanelGroup
|
||||
<Group
|
||||
data-slot="resizable-panel-group"
|
||||
className={cn(
|
||||
"flex h-full w-full data-[panel-group-direction=vertical]:flex-col",
|
||||
|
|
@ -24,19 +24,19 @@ function ResizablePanelGroup({
|
|||
|
||||
function ResizablePanel({
|
||||
...props
|
||||
}: React.ComponentProps<typeof ResizablePrimitive.Panel>) {
|
||||
return <ResizablePrimitive.Panel data-slot="resizable-panel" {...props} />;
|
||||
}: React.ComponentProps<typeof Panel>) {
|
||||
return <Panel data-slot="resizable-panel" {...props} />;
|
||||
}
|
||||
|
||||
function ResizableHandle({
|
||||
withHandle,
|
||||
className,
|
||||
...props
|
||||
}: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {
|
||||
}: React.ComponentProps<typeof Separator> & {
|
||||
withHandle?: boolean;
|
||||
}) {
|
||||
return (
|
||||
<ResizablePrimitive.PanelResizeHandle
|
||||
<Separator
|
||||
data-slot="resizable-handle"
|
||||
className={cn(
|
||||
"bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90",
|
||||
|
|
@ -49,7 +49,7 @@ function ResizableHandle({
|
|||
<GripVerticalIcon className="size-2.5" />
|
||||
</div>
|
||||
)}
|
||||
</ResizablePrimitive.PanelResizeHandle>
|
||||
</Separator>
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -300,6 +300,9 @@ export class PtyChatParser {
|
|||
*/
|
||||
private _completionEmitted = false;
|
||||
|
||||
/** Timestamp of last received input chunk, used for completion debounce */
|
||||
private _lastInputAt = 0;
|
||||
|
||||
/**
|
||||
* True when the parser has seen a prompt boundary and is waiting for user
|
||||
* input. The next non-system, non-prompt, non-TUI content line after the
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import {
|
|||
useState,
|
||||
useSyncExternalStore,
|
||||
} from "react";
|
||||
import { ContextualTips } from "../../packages/pi-coding-agent/src/core/contextual-tips.ts";
|
||||
import { ContextualTips } from "../../packages/coding-agent/src/core/contextual-tips.ts";
|
||||
import { appendAuthParam, authFetch } from "./auth";
|
||||
import {
|
||||
type BrowserSlashCommandDispatchResult,
|
||||
|
|
@ -154,6 +154,11 @@ export interface BridgeRuntimeSnapshot {
|
|||
lastError: BridgeLastError | null;
|
||||
}
|
||||
|
||||
import type {
|
||||
WorkspaceMilestoneTarget,
|
||||
WorkspaceSliceTarget,
|
||||
} from "./workspace-types.js";
|
||||
|
||||
export type {
|
||||
RiskLevel,
|
||||
WorkspaceMilestoneTarget,
|
||||
|
|
|
|||
1575
web/package-lock.json
generated
1575
web/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -14,7 +14,7 @@
|
|||
"lint": "eslint ."
|
||||
},
|
||||
"dependencies": {
|
||||
"@hookform/resolvers": "^3.9.1",
|
||||
"@hookform/resolvers": "^5.2.2",
|
||||
"@lezer/highlight": "^1.2.3",
|
||||
"@mariozechner/jiti": "^2.6.2",
|
||||
"@radix-ui/react-accordion": "1.2.12",
|
||||
|
|
@ -44,49 +44,49 @@
|
|||
"@radix-ui/react-toggle": "1.1.10",
|
||||
"@radix-ui/react-toggle-group": "1.1.11",
|
||||
"@radix-ui/react-tooltip": "1.2.8",
|
||||
"@uiw/codemirror-extensions-langs": "^4.25.8",
|
||||
"@uiw/codemirror-themes": "^4.25.8",
|
||||
"@uiw/react-codemirror": "^4.25.8",
|
||||
"@uiw/codemirror-extensions-langs": "^4.25.9",
|
||||
"@uiw/codemirror-themes": "^4.25.9",
|
||||
"@uiw/react-codemirror": "^4.25.9",
|
||||
"@xterm/addon-fit": "^0.11.0",
|
||||
"@xterm/xterm": "^6.0.0",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"autoprefixer": "^10.5.0",
|
||||
"class-variance-authority": "^0.7.1",
|
||||
"clsx": "^2.1.1",
|
||||
"cmdk": "1.1.1",
|
||||
"date-fns": "4.1.0",
|
||||
"embla-carousel-react": "8.6.0",
|
||||
"input-otp": "1.4.2",
|
||||
"lucide-react": "^0.564.0",
|
||||
"motion": "^12.36.0",
|
||||
"next": "16.2.3",
|
||||
"lucide-react": "^1.14.0",
|
||||
"motion": "^12.38.0",
|
||||
"next": "^16.2.6",
|
||||
"next-themes": "^0.4.6",
|
||||
"node-pty": "^1.1.0",
|
||||
"react": "19.2.4",
|
||||
"react-day-picker": "9.13.2",
|
||||
"react-dom": "19.2.4",
|
||||
"react-hook-form": "^7.54.1",
|
||||
"react": "^19.2.6",
|
||||
"react-day-picker": "^10.0.0",
|
||||
"react-dom": "^19.2.6",
|
||||
"react-hook-form": "^7.75.0",
|
||||
"react-markdown": "^10.1.0",
|
||||
"react-resizable-panels": "^2.1.7",
|
||||
"recharts": "2.15.0",
|
||||
"react-resizable-panels": "^4.11.0",
|
||||
"recharts": "^3.8.1",
|
||||
"remark-gfm": "^4.0.1",
|
||||
"shiki": "^4.0.2",
|
||||
"sonner": "^1.7.1",
|
||||
"sonner": "^2.0.7",
|
||||
"tailwind-merge": "^3.3.1",
|
||||
"vaul": "^1.1.2",
|
||||
"zod": "^3.24.1"
|
||||
"zod": "^4.4.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/eslintrc": "^3.3.1",
|
||||
"@tailwindcss/postcss": "^4.2.0",
|
||||
"@tailwindcss/postcss": "^4.3.0",
|
||||
"@types/node": "^25.6.2",
|
||||
"@types/react": "19.2.14",
|
||||
"@types/react-dom": "19.2.3",
|
||||
"esbuild": "^0.27.4",
|
||||
"eslint": "^9.38.0",
|
||||
"eslint-config-next": "16.2.3",
|
||||
"postcss": "^8.5",
|
||||
"tailwindcss": "^4.2.0",
|
||||
"tw-animate-css": "1.3.3",
|
||||
"typescript": "5.7.3"
|
||||
"esbuild": "^0.28.0",
|
||||
"eslint": "^9.39.4",
|
||||
"eslint-config-next": "^16.2.6",
|
||||
"postcss": "^8.5.14",
|
||||
"tailwindcss": "^4.3.0",
|
||||
"tw-animate-css": "^1.4.0",
|
||||
"typescript": "^6.0.3"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue