diff --git a/Packs/pai-browser-skill/src/skills/Browser/tsconfig.json b/Packs/pai-browser-skill/src/skills/Browser/tsconfig.json index 7397b8dcb..2071f9696 100755 --- a/Packs/pai-browser-skill/src/skills/Browser/tsconfig.json +++ b/Packs/pai-browser-skill/src/skills/Browser/tsconfig.json @@ -3,6 +3,8 @@ "target": "ESNext", "module": "ESNext", "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "noEmit": true, "strict": true, "esModuleInterop": true, "skipLibCheck": true, diff --git a/Packs/pai-prompting-skill/src/skills/Prompting/Templates/Tools/RenderTemplate.ts b/Packs/pai-prompting-skill/src/skills/Prompting/Templates/Tools/RenderTemplate.ts index 315da820f..4c0341351 100755 --- a/Packs/pai-prompting-skill/src/skills/Prompting/Templates/Tools/RenderTemplate.ts +++ b/Packs/pai-prompting-skill/src/skills/Prompting/Templates/Tools/RenderTemplate.ts @@ -144,7 +144,7 @@ function resolveTemplatePath(path: string): string { return resolve(templatesDir, path); } -function loadTemplate(templatePath: string): HandlebarsTemplateDelegate { +function loadTemplate(templatePath: string): Handlebars.TemplateDelegate { const fullPath = resolveTemplatePath(templatePath); if (!existsSync(fullPath)) { diff --git a/Packs/pai-prompting-skill/src/skills/Prompting/Templates/Tools/ValidateTemplate.ts b/Packs/pai-prompting-skill/src/skills/Prompting/Templates/Tools/ValidateTemplate.ts index 9c1ba827e..929adae8f 100755 --- a/Packs/pai-prompting-skill/src/skills/Prompting/Templates/Tools/ValidateTemplate.ts +++ b/Packs/pai-prompting-skill/src/skills/Prompting/Templates/Tools/ValidateTemplate.ts @@ -53,13 +53,13 @@ function extractVariables(source: string): string[] { // Match {{variable}} and {{object.property}} const simpleVars = source.matchAll(/\{\{([a-zA-Z_][a-zA-Z0-9_.]*)\}\}/g); for (const match of simpleVars) { - variables.add(match[1]); + if (match[1]) variables.add(match[1]); } // Match {{#each items}} and {{#if condition}} const blockVars = source.matchAll(/\{\{#(?:each|if|unless|with)\s+([a-zA-Z_][a-zA-Z0-9_.]*)/g); for (const match of blockVars) { - variables.add(match[1]); + if (match[1]) variables.add(match[1]); } return Array.from(variables).sort(); @@ -73,7 +73,7 @@ function extractHelpers(source: string): string[] { for (const match of helperCalls) { const name = match[1]; // Filter out built-in block helpers - if (!['if', 'unless', 'each', 'with', 'else'].includes(name)) { + if (name && !['if', 'unless', 'each', 'with', 'else'].includes(name)) { helpers.add(name); } } @@ -87,7 +87,7 @@ function extractPartials(source: string): string[] { // Match {{> partialName}} const partialCalls = source.matchAll(/\{\{>\s*([a-zA-Z_][a-zA-Z0-9_-]*)/g); for (const match of partialCalls) { - partials.add(match[1]); + if (match[1]) partials.add(match[1]); } return Array.from(partials).sort(); @@ -99,19 +99,20 @@ function checkUnbalancedBlocks(source: string): string[] { const lines = source.split('\n'); for (let i = 0; i < lines.length; i++) { - const line = lines[i]; + const line = lines[i]!; const lineNum = i + 1; // Opening blocks const opens = line.matchAll(/\{\{#([a-z]+)/g); for (const match of opens) { - blockStack.push({ name: match[1], line: lineNum }); + if (match[1]) blockStack.push({ name: match[1], line: lineNum }); } // Closing blocks const closes = line.matchAll(/\{\{\/([a-z]+)\}\}/g); for (const match of closes) { const closer = match[1]; + if (!closer) continue; if (blockStack.length === 0) { errors.push(`Line ${lineNum}: Unexpected closing block {{/${closer}}}`); } else { diff --git a/Packs/pai-telos-skill/src/DashboardTemplate/App/add-file/page.tsx b/Packs/pai-telos-skill/src/DashboardTemplate/App/add-file/page.tsx index 5f3ac3ba2..891c7c6a8 100755 --- a/Packs/pai-telos-skill/src/DashboardTemplate/App/add-file/page.tsx +++ b/Packs/pai-telos-skill/src/DashboardTemplate/App/add-file/page.tsx @@ -1,8 +1,8 @@ "use client" import { useState } from "react" -import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" -import { Badge } from "@/components/ui/badge" +import { Card, CardContent, CardHeader, CardTitle } from "@/Components/Ui/card" +import { Badge } from "@/Components/Ui/badge" import { Upload, FileText, Table, CheckCircle, XCircle, Loader2 } from "lucide-react" interface UploadedFile { diff --git a/Packs/pai-telos-skill/src/DashboardTemplate/App/api/chat/route.ts b/Packs/pai-telos-skill/src/DashboardTemplate/App/api/chat/route.ts index 869000f7b..f4f69df07 100755 --- a/Packs/pai-telos-skill/src/DashboardTemplate/App/api/chat/route.ts +++ b/Packs/pai-telos-skill/src/DashboardTemplate/App/api/chat/route.ts @@ -1,5 +1,5 @@ import { NextResponse } from "next/server" -import { getTelosContext } from "@/lib/telos-data" +import { getTelosContext } from "@/Lib/telos-data" export async function POST(request: Request) { try { diff --git a/Packs/pai-telos-skill/src/DashboardTemplate/App/api/file/get/route.ts b/Packs/pai-telos-skill/src/DashboardTemplate/App/api/file/get/route.ts index 9ab4362cc..37864c7fc 100755 --- a/Packs/pai-telos-skill/src/DashboardTemplate/App/api/file/get/route.ts +++ b/Packs/pai-telos-skill/src/DashboardTemplate/App/api/file/get/route.ts @@ -1,5 +1,5 @@ import { NextResponse } from "next/server" -import { getAllTelosData } from "@/lib/telos-data" +import { getAllTelosData } from "@/Lib/telos-data" export const dynamic = 'force-dynamic' diff --git a/Packs/pai-telos-skill/src/DashboardTemplate/App/api/files/count/route.ts b/Packs/pai-telos-skill/src/DashboardTemplate/App/api/files/count/route.ts index 7435b4ee5..bc4471718 100755 --- a/Packs/pai-telos-skill/src/DashboardTemplate/App/api/files/count/route.ts +++ b/Packs/pai-telos-skill/src/DashboardTemplate/App/api/files/count/route.ts @@ -1,5 +1,5 @@ import { NextResponse } from "next/server" -import { getTelosFileCount, getTelosFileList } from "@/lib/telos-data" +import { getTelosFileCount, getTelosFileList } from "@/Lib/telos-data" export const dynamic = 'force-dynamic' diff --git a/Packs/pai-telos-skill/src/DashboardTemplate/App/ask/page.tsx b/Packs/pai-telos-skill/src/DashboardTemplate/App/ask/page.tsx index 0f1d1724a..2a67ebc97 100755 --- a/Packs/pai-telos-skill/src/DashboardTemplate/App/ask/page.tsx +++ b/Packs/pai-telos-skill/src/DashboardTemplate/App/ask/page.tsx @@ -1,8 +1,8 @@ "use client" import { useState } from "react" -import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" -import { Badge } from "@/components/ui/badge" +import { Card, CardContent, CardHeader, CardTitle } from "@/Components/Ui/card" +import { Badge } from "@/Components/Ui/badge" import { MessageSquare, Send, Bot, User } from "lucide-react" interface Message { diff --git a/Packs/pai-telos-skill/src/DashboardTemplate/App/file/[slug]/page.tsx b/Packs/pai-telos-skill/src/DashboardTemplate/App/file/[slug]/page.tsx index 6a83aa88f..bce750f37 100755 --- a/Packs/pai-telos-skill/src/DashboardTemplate/App/file/[slug]/page.tsx +++ b/Packs/pai-telos-skill/src/DashboardTemplate/App/file/[slug]/page.tsx @@ -2,8 +2,8 @@ import { useState, useEffect } from "react" import { useParams, notFound } from "next/navigation" -import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" -import { Button } from "@/components/ui/button" +import { Card, CardContent, CardHeader, CardTitle } from "@/Components/Ui/card" +import { Button } from "@/Components/Ui/button" import { FileText, Table as TableIcon, Edit2, Save, X } from "lucide-react" import ReactMarkdown from "react-markdown" @@ -179,7 +179,7 @@ function CSVTable({ content }: { content: string }) { const lines = content.trim().split('\n') if (lines.length === 0) return

Empty file

- const headers = lines[0].split(',').map(h => h.trim()) + const headers = lines[0]!.split(',').map(h => h.trim()) const rows = lines.slice(1).map(line => line.split(',').map(cell => cell.trim())) return ( diff --git a/Packs/pai-telos-skill/src/DashboardTemplate/App/layout.tsx b/Packs/pai-telos-skill/src/DashboardTemplate/App/layout.tsx index 1f30efdc9..af2489739 100755 --- a/Packs/pai-telos-skill/src/DashboardTemplate/App/layout.tsx +++ b/Packs/pai-telos-skill/src/DashboardTemplate/App/layout.tsx @@ -1,6 +1,6 @@ import type { Metadata } from "next" import "./globals.css" -import { Sidebar } from "../components/sidebar" +import { Sidebar } from "../Components/sidebar" export const metadata: Metadata = { title: "TELOS Dashboard Template", @@ -10,7 +10,7 @@ export const metadata: Metadata = { export default function RootLayout({ children, }: Readonly<{ - children: React.Node + children: React.ReactNode }>) { return ( diff --git a/Packs/pai-telos-skill/src/DashboardTemplate/App/page.tsx b/Packs/pai-telos-skill/src/DashboardTemplate/App/page.tsx index 587edd23e..03fbbee6d 100755 --- a/Packs/pai-telos-skill/src/DashboardTemplate/App/page.tsx +++ b/Packs/pai-telos-skill/src/DashboardTemplate/App/page.tsx @@ -1,4 +1,4 @@ -import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" +import { Card, CardContent, CardHeader, CardTitle } from "@/Components/Ui/card" import { TrendingDown } from "lucide-react" export default function OverviewPage() { diff --git a/Packs/pai-telos-skill/src/DashboardTemplate/App/progress/page.tsx b/Packs/pai-telos-skill/src/DashboardTemplate/App/progress/page.tsx index 3d088721d..90cb0c920 100755 --- a/Packs/pai-telos-skill/src/DashboardTemplate/App/progress/page.tsx +++ b/Packs/pai-telos-skill/src/DashboardTemplate/App/progress/page.tsx @@ -1,5 +1,5 @@ -import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" -import { Progress } from "@/components/ui/progress" +import { Card, CardContent, CardHeader, CardTitle } from "@/Components/Ui/card" +import { Progress } from "@/Components/Ui/progress" import { TrendingUp } from "lucide-react" export default function ProgressPage() { diff --git a/Packs/pai-telos-skill/src/DashboardTemplate/App/teams/page.tsx b/Packs/pai-telos-skill/src/DashboardTemplate/App/teams/page.tsx index 036d8aeb0..b9e374f8d 100755 --- a/Packs/pai-telos-skill/src/DashboardTemplate/App/teams/page.tsx +++ b/Packs/pai-telos-skill/src/DashboardTemplate/App/teams/page.tsx @@ -1,5 +1,5 @@ -import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" -import { Badge } from "@/components/ui/badge" +import { Card, CardContent, CardHeader, CardTitle } from "@/Components/Ui/card" +import { Badge } from "@/Components/Ui/badge" import { Users } from "lucide-react" export default function TeamsPage() { diff --git a/Packs/pai-telos-skill/src/DashboardTemplate/App/vulnerabilities/page.tsx b/Packs/pai-telos-skill/src/DashboardTemplate/App/vulnerabilities/page.tsx index 60b2723e9..423b36d9f 100755 --- a/Packs/pai-telos-skill/src/DashboardTemplate/App/vulnerabilities/page.tsx +++ b/Packs/pai-telos-skill/src/DashboardTemplate/App/vulnerabilities/page.tsx @@ -1,6 +1,6 @@ -import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" -import { Badge } from "@/components/ui/badge" -import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table" +import { Card, CardContent, CardHeader, CardTitle } from "@/Components/Ui/card" +import { Badge } from "@/Components/Ui/badge" +import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/Components/Ui/table" import { Shield, AlertTriangle } from "lucide-react" export default function VulnerabilitiesPage() { diff --git a/Packs/pai-telos-skill/src/DashboardTemplate/Components/Ui/badge.tsx b/Packs/pai-telos-skill/src/DashboardTemplate/Components/Ui/badge.tsx index ab42eb509..9177dd4d3 100755 --- a/Packs/pai-telos-skill/src/DashboardTemplate/Components/Ui/badge.tsx +++ b/Packs/pai-telos-skill/src/DashboardTemplate/Components/Ui/badge.tsx @@ -1,6 +1,6 @@ import * as React from "react" import { cva, type VariantProps } from "class-variance-authority" -import { cn } from "@/lib/utils" +import { cn } from "@/Lib/utils" const badgeVariants = cva( "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2", diff --git a/Packs/pai-telos-skill/src/DashboardTemplate/Components/Ui/button.tsx b/Packs/pai-telos-skill/src/DashboardTemplate/Components/Ui/button.tsx index f30da12e0..7ffffe3c7 100755 --- a/Packs/pai-telos-skill/src/DashboardTemplate/Components/Ui/button.tsx +++ b/Packs/pai-telos-skill/src/DashboardTemplate/Components/Ui/button.tsx @@ -1,7 +1,7 @@ import * as React from "react" import { Slot } from "@radix-ui/react-slot" import { cva, type VariantProps } from "class-variance-authority" -import { cn } from "@/lib/utils" +import { cn } from "@/Lib/utils" const buttonVariants = cva( "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", diff --git a/Packs/pai-telos-skill/src/DashboardTemplate/Components/Ui/card.tsx b/Packs/pai-telos-skill/src/DashboardTemplate/Components/Ui/card.tsx index 205034404..4013aa58d 100755 --- a/Packs/pai-telos-skill/src/DashboardTemplate/Components/Ui/card.tsx +++ b/Packs/pai-telos-skill/src/DashboardTemplate/Components/Ui/card.tsx @@ -1,5 +1,5 @@ import * as React from "react" -import { cn } from "@/lib/utils" +import { cn } from "@/Lib/utils" const Card = React.forwardRef< HTMLDivElement, diff --git a/Packs/pai-telos-skill/src/DashboardTemplate/Components/Ui/progress.tsx b/Packs/pai-telos-skill/src/DashboardTemplate/Components/Ui/progress.tsx index 987405c65..00622096f 100755 --- a/Packs/pai-telos-skill/src/DashboardTemplate/Components/Ui/progress.tsx +++ b/Packs/pai-telos-skill/src/DashboardTemplate/Components/Ui/progress.tsx @@ -1,7 +1,7 @@ "use client" import * as React from "react" -import { cn } from "@/lib/utils" +import { cn } from "@/Lib/utils" interface ProgressProps extends React.HTMLAttributes { value?: number diff --git a/Packs/pai-telos-skill/src/DashboardTemplate/Components/Ui/table.tsx b/Packs/pai-telos-skill/src/DashboardTemplate/Components/Ui/table.tsx index 91d108689..a88c0e507 100755 --- a/Packs/pai-telos-skill/src/DashboardTemplate/Components/Ui/table.tsx +++ b/Packs/pai-telos-skill/src/DashboardTemplate/Components/Ui/table.tsx @@ -1,5 +1,5 @@ import * as React from "react" -import { cn } from "@/lib/utils" +import { cn } from "@/Lib/utils" const Table = React.forwardRef< HTMLTableElement, diff --git a/Packs/pai-telos-skill/src/DashboardTemplate/Components/sidebar.tsx b/Packs/pai-telos-skill/src/DashboardTemplate/Components/sidebar.tsx index be9a6060c..ceffd9ccd 100755 --- a/Packs/pai-telos-skill/src/DashboardTemplate/Components/sidebar.tsx +++ b/Packs/pai-telos-skill/src/DashboardTemplate/Components/sidebar.tsx @@ -3,8 +3,8 @@ import Link from "next/link" import { usePathname } from "next/navigation" import { Home, MessageSquare, Upload, FileText, Table } from "lucide-react" -import { cn } from "@/lib/utils" -import { Badge } from "@/components/ui/badge" +import { cn } from "@/Lib/utils" +import { Badge } from "@/Components/Ui/badge" import { useEffect, useState } from "react" interface FileNav { diff --git a/Packs/pai-telos-skill/src/DashboardTemplate/package.json b/Packs/pai-telos-skill/src/DashboardTemplate/package.json index 9c7c00408..4bdf0e7c9 100755 --- a/Packs/pai-telos-skill/src/DashboardTemplate/package.json +++ b/Packs/pai-telos-skill/src/DashboardTemplate/package.json @@ -22,12 +22,14 @@ "typescript": "^5" }, "dependencies": { + "@radix-ui/react-slot": "^1.2.4", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "lucide-react": "^0.546.0", "next": "^15.5.6", "react": "^19.2.0", "react-dom": "^19.2.0", + "react-markdown": "^10.1.0", "tailwind-merge": "^3.3.1" } } diff --git a/Packs/pai-telos-skill/src/DashboardTemplate/tsconfig.json b/Packs/pai-telos-skill/src/DashboardTemplate/tsconfig.json index 876ef75be..90660fbee 100755 --- a/Packs/pai-telos-skill/src/DashboardTemplate/tsconfig.json +++ b/Packs/pai-telos-skill/src/DashboardTemplate/tsconfig.json @@ -2,7 +2,9 @@ "compilerOptions": { // Environment setup & latest features "lib": [ - "ESNext" + "ESNext", + "DOM", + "DOM.Iterable" ], "target": "ESNext", "module": "Preserve", diff --git a/Packs/pai-telos-skill/src/ReportTemplate/App/page.tsx b/Packs/pai-telos-skill/src/ReportTemplate/App/page.tsx index 286c4b76a..960bb7c89 100755 --- a/Packs/pai-telos-skill/src/ReportTemplate/App/page.tsx +++ b/Packs/pai-telos-skill/src/ReportTemplate/App/page.tsx @@ -1,11 +1,11 @@ -import { CoverPage } from "@/components/cover-page" -import { Section } from "@/components/section" -import { Callout } from "@/components/callout" -import { Exhibit } from "@/components/exhibit" -import { FindingCard } from "@/components/finding-card" -import { RecommendationCard } from "@/components/recommendation-card" -import { Timeline } from "@/components/timeline" -import { reportData } from "@/lib/report-data" +import { CoverPage } from "@/Components/cover-page" +import { Section } from "@/Components/section" +import { Callout } from "@/Components/callout" +import { Exhibit } from "@/Components/exhibit" +import { FindingCard } from "@/Components/finding-card" +import { RecommendationCard } from "@/Components/recommendation-card" +import { Timeline } from "@/Components/timeline" +import { reportData } from "@/Lib/report-data" import { AlertTriangle, Target, Lightbulb, CheckCircle2 } from "lucide-react" export default function ReportPage() { diff --git a/Packs/pai-telos-skill/src/ReportTemplate/Components/finding-card.tsx b/Packs/pai-telos-skill/src/ReportTemplate/Components/finding-card.tsx index f87ea292e..5687f8da7 100755 --- a/Packs/pai-telos-skill/src/ReportTemplate/Components/finding-card.tsx +++ b/Packs/pai-telos-skill/src/ReportTemplate/Components/finding-card.tsx @@ -1,5 +1,5 @@ import { SeverityBadge } from "./severity-badge" -import type { Finding } from "@/lib/report-data" +import type { Finding } from "@/Lib/report-data" interface FindingCardProps { finding: Finding diff --git a/Packs/pai-telos-skill/src/ReportTemplate/Components/recommendation-card.tsx b/Packs/pai-telos-skill/src/ReportTemplate/Components/recommendation-card.tsx index 488f21610..9c6e80f25 100755 --- a/Packs/pai-telos-skill/src/ReportTemplate/Components/recommendation-card.tsx +++ b/Packs/pai-telos-skill/src/ReportTemplate/Components/recommendation-card.tsx @@ -1,5 +1,5 @@ -import { cn } from "@/lib/utils" -import type { Recommendation } from "@/lib/report-data" +import { cn } from "@/Lib/utils" +import type { Recommendation } from "@/Lib/report-data" import { ArrowRight, Clock, Zap } from "lucide-react" interface RecommendationCardProps { diff --git a/Packs/pai-telos-skill/src/ReportTemplate/Components/section.tsx b/Packs/pai-telos-skill/src/ReportTemplate/Components/section.tsx index fe3bc914b..db8daec5b 100755 --- a/Packs/pai-telos-skill/src/ReportTemplate/Components/section.tsx +++ b/Packs/pai-telos-skill/src/ReportTemplate/Components/section.tsx @@ -1,4 +1,4 @@ -import { cn } from "@/lib/utils" +import { cn } from "@/Lib/utils" interface SectionProps { title: string diff --git a/Packs/pai-telos-skill/src/ReportTemplate/Components/severity-badge.tsx b/Packs/pai-telos-skill/src/ReportTemplate/Components/severity-badge.tsx index fa018b278..3ed152823 100755 --- a/Packs/pai-telos-skill/src/ReportTemplate/Components/severity-badge.tsx +++ b/Packs/pai-telos-skill/src/ReportTemplate/Components/severity-badge.tsx @@ -1,4 +1,4 @@ -import { cn } from "@/lib/utils" +import { cn } from "@/Lib/utils" type Severity = "critical" | "high" | "medium" | "low" diff --git a/Packs/pai-telos-skill/src/ReportTemplate/Components/timeline.tsx b/Packs/pai-telos-skill/src/ReportTemplate/Components/timeline.tsx index a8cbe6df2..3b0247e11 100755 --- a/Packs/pai-telos-skill/src/ReportTemplate/Components/timeline.tsx +++ b/Packs/pai-telos-skill/src/ReportTemplate/Components/timeline.tsx @@ -1,4 +1,4 @@ -import type { TimelinePhase } from "@/lib/report-data" +import type { TimelinePhase } from "@/Lib/report-data" interface TimelineProps { phases: TimelinePhase[]