<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Rahul</title>
    <description>The latest articles on DEV Community by Rahul (@iamry02).</description>
    <link>https://dev.to/iamry02</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4072808%2Fad338ec6-1472-4250-8e0b-b7691ee44b82.png</url>
      <title>DEV Community: Rahul</title>
      <link>https://dev.to/iamry02</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/iamry02"/>
    <language>en</language>
    <item>
      <title>app&lt;lib&lt;app.ts</title>
      <dc:creator>Rahul</dc:creator>
      <pubDate>Wed, 12 Aug 2026 04:44:32 +0000</pubDate>
      <link>https://dev.to/iamry02/applibappts-5f8j</link>
      <guid>https://dev.to/iamry02/applibappts-5f8j</guid>
      <description>&lt;p&gt;export type JsonObject = Record;&lt;/p&gt;

&lt;p&gt;export type SystemStatus = {&lt;br&gt;
  application: { name: string; environment: string; mode: string };&lt;br&gt;
  metadata_database: { backend: string; available: boolean; path?: string | null };&lt;br&gt;
  oracle: { enabled: boolean; dsn?: string | null; allowed_owners: string[] };&lt;br&gt;
  ollama: {&lt;br&gt;
    available: boolean;&lt;br&gt;
    models?: string[];&lt;br&gt;
    base_url?: string;&lt;br&gt;
    error?: string | null;&lt;br&gt;
  };&lt;br&gt;
  chroma: {&lt;br&gt;
    available: boolean;&lt;br&gt;
    mode?: string;&lt;br&gt;
    path?: string | null;&lt;br&gt;
    collections?: Record;&lt;br&gt;
    error?: string | null;&lt;br&gt;
  };&lt;br&gt;
  models: Record;&lt;br&gt;
  embedding_model: string;&lt;br&gt;
  processing_location: string;&lt;br&gt;
  access: {&lt;br&gt;
    default_role: "analyst";&lt;br&gt;
    admin_enabled: boolean;&lt;br&gt;
  };&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;export type ModelStatus = {&lt;br&gt;
  installed: string[];&lt;br&gt;
  available: boolean;&lt;br&gt;
  error?: string | null;&lt;br&gt;
  configured: Record;&lt;br&gt;
  embedding: string;&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;export type AnalysisOptions = {&lt;br&gt;
  use_stored_knowledge: boolean;&lt;br&gt;
  store_generated_context: boolean;&lt;br&gt;
  include_raw_evidence: boolean;&lt;br&gt;
  retrieval_threshold: number;&lt;br&gt;
  retrieval_depth: number;&lt;br&gt;
  model_overrides: Record;&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;export type AnalysisSubmission = {&lt;br&gt;
  run_id: string;&lt;br&gt;
  status: string;&lt;br&gt;
  persistence: "durable" | "transient";&lt;br&gt;
  result?: JsonObject | null;&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;export type ApiItem = Record;&lt;/p&gt;

&lt;p&gt;const DEFAULT_API_URL =&lt;br&gt;
  import.meta.env.VITE_API_URL?.replace(/\/$/, "") ??&lt;br&gt;
  "&lt;a href="http://127.0.0.1:8000" rel="noopener noreferrer"&gt;http://127.0.0.1:8000&lt;/a&gt;";&lt;br&gt;
const ADMIN_AUTH_HEADER =&lt;br&gt;
  import.meta.env.VITE_ADMIN_AUTH_HEADER ?? "X-Admin-Key";&lt;br&gt;
let adminCredential = "";&lt;/p&gt;

&lt;p&gt;export class APIError extends Error {&lt;br&gt;
  status: number;&lt;/p&gt;

&lt;p&gt;constructor(message: string, status = 0) {&lt;br&gt;
    super(message);&lt;br&gt;
    this.name = "APIError";&lt;br&gt;
    this.status = status;&lt;br&gt;
  }&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;async function request(&lt;br&gt;
  path: string,&lt;br&gt;
  init?: RequestInit,&lt;br&gt;
  privileged = false,&lt;br&gt;
): Promise {&lt;br&gt;
  let response: Response;&lt;br&gt;
  try {&lt;br&gt;
    response = await fetch(&lt;code&gt;${DEFAULT_API_URL}${path}&lt;/code&gt;, {&lt;br&gt;
      ...init,&lt;br&gt;
      headers: {&lt;br&gt;
        ...(init?.body instanceof FormData&lt;br&gt;
          ? {}&lt;br&gt;
          : { "Content-Type": "application/json" }),&lt;br&gt;
        ...(privileged &amp;amp;&amp;amp; adminCredential&lt;br&gt;
          ? { [ADMIN_AUTH_HEADER]: adminCredential }&lt;br&gt;
          : {}),&lt;br&gt;
        ...init?.headers,&lt;br&gt;
      },&lt;br&gt;
      cache: "no-store",&lt;br&gt;
    });&lt;br&gt;
  } catch {&lt;br&gt;
    throw new APIError(&lt;br&gt;
      &lt;code&gt;Backend unavailable at ${DEFAULT_API_URL}. Start FastAPI and try again.&lt;/code&gt;,&lt;br&gt;
    );&lt;br&gt;
  }&lt;/p&gt;

&lt;p&gt;if (!response.ok) {&lt;br&gt;
    let detail = &lt;code&gt;${response.status} ${response.statusText}&lt;/code&gt;;&lt;br&gt;
    try {&lt;br&gt;
      const payload = (await response.json()) as { detail?: string };&lt;br&gt;
      detail = payload.detail ?? detail;&lt;br&gt;
    } catch {&lt;br&gt;
      // Keep the status text when the response is not JSON.&lt;br&gt;
    }&lt;br&gt;
    throw new APIError(detail, response.status);&lt;br&gt;
  }&lt;br&gt;
  return (await response.json()) as T;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;export const api = {&lt;br&gt;
  baseUrl: DEFAULT_API_URL,&lt;/p&gt;

&lt;p&gt;status: () =&amp;gt; request("/api/system/status"),&lt;br&gt;
  models: () =&amp;gt; request("/api/models"),&lt;br&gt;
  authenticateAdmin: async (credential: string) =&amp;gt; {&lt;br&gt;
    const result = await request&amp;lt;{ role: "admin"; status: string }&amp;gt;(&lt;br&gt;
      "/api/auth/admin",&lt;br&gt;
      {&lt;br&gt;
        method: "POST",&lt;br&gt;
        headers: { [ADMIN_AUTH_HEADER]: credential },&lt;br&gt;
      },&lt;br&gt;
    );&lt;br&gt;
    adminCredential = credential;&lt;br&gt;
    return result;&lt;br&gt;
  },&lt;br&gt;
  clearAdminCredential: () =&amp;gt; {&lt;br&gt;
    adminCredential = "";&lt;br&gt;
  },&lt;br&gt;
  role: () =&amp;gt;&lt;br&gt;
    request&amp;lt;{ role: "analyst" | "admin"; admin_enabled: boolean }&amp;gt;(&lt;br&gt;
      "/api/auth/role",&lt;br&gt;
      undefined,&lt;br&gt;
      true,&lt;br&gt;
    ),&lt;/p&gt;

&lt;p&gt;submitText: (&lt;br&gt;
    source: string,&lt;br&gt;
    options: AnalysisOptions,&lt;br&gt;
    owner?: string,&lt;br&gt;
    objectName?: string,&lt;br&gt;
    asAdmin = false,&lt;br&gt;
  ) =&amp;gt;&lt;br&gt;
    request("/api/analysis/text", {&lt;br&gt;
      method: "POST",&lt;br&gt;
      body: JSON.stringify({&lt;br&gt;
        source,&lt;br&gt;
        owner: owner || null,&lt;br&gt;
        object_name: objectName || null,&lt;br&gt;
        source_origin: "PASTED",&lt;br&gt;
        options,&lt;br&gt;
      }),&lt;br&gt;
    }, asAdmin),&lt;/p&gt;

&lt;p&gt;submitUpload: (&lt;br&gt;
    sourceFile: File,&lt;br&gt;
    options: AnalysisOptions,&lt;br&gt;
    supportingDocument?: File | null,&lt;br&gt;
    asAdmin = false,&lt;br&gt;
  ) =&amp;gt; {&lt;br&gt;
    const form = new FormData();&lt;br&gt;
    form.append("source_file", sourceFile);&lt;br&gt;
    form.append("options_json", JSON.stringify(options));&lt;br&gt;
    if (supportingDocument) {&lt;br&gt;
      form.append("supporting_document", supportingDocument);&lt;br&gt;
    }&lt;br&gt;
    return request(&lt;br&gt;
      "/api/analysis/upload",&lt;br&gt;
      {&lt;br&gt;
        method: "POST",&lt;br&gt;
        body: form,&lt;br&gt;
      },&lt;br&gt;
      asAdmin,&lt;br&gt;
    );&lt;br&gt;
  },&lt;/p&gt;

&lt;p&gt;submitOracle: (&lt;br&gt;
    owner: string,&lt;br&gt;
    objectName: string,&lt;br&gt;
    objectType: string,&lt;br&gt;
    options: AnalysisOptions,&lt;br&gt;
  ) =&amp;gt;&lt;br&gt;
    request(&lt;br&gt;
      "/api/analysis/oracle-object",&lt;br&gt;
      {&lt;br&gt;
        method: "POST",&lt;br&gt;
        body: JSON.stringify({&lt;br&gt;
          owner,&lt;br&gt;
          object_name: objectName,&lt;br&gt;
          object_type: objectType,&lt;br&gt;
          options,&lt;br&gt;
        }),&lt;br&gt;
      },&lt;br&gt;
      true,&lt;br&gt;
    ),&lt;/p&gt;

&lt;p&gt;run: (runId: string, privileged = false) =&amp;gt;&lt;br&gt;
    request(&lt;br&gt;
      &lt;code&gt;/api/analysis/${encodeURIComponent(runId)}&lt;/code&gt;,&lt;br&gt;
      undefined,&lt;br&gt;
      privileged,&lt;br&gt;
    ),&lt;br&gt;
  events: (runId: string, afterId = 0, privileged = false) =&amp;gt;&lt;br&gt;
    request&amp;lt;{ events: ApiItem[] }&amp;gt;(&lt;br&gt;
      &lt;code&gt;/api/analysis/${encodeURIComponent(runId)}/events?after_id=${afterId}&lt;/code&gt;,&lt;br&gt;
      undefined,&lt;br&gt;
      privileged,&lt;br&gt;
    ),&lt;br&gt;
  cancelRun: (runId: string, privileged = false) =&amp;gt;&lt;br&gt;
    request(&lt;br&gt;
      &lt;code&gt;/api/analysis/${encodeURIComponent(runId)}/cancel&lt;/code&gt;,&lt;br&gt;
      { method: "POST" },&lt;br&gt;
      privileged,&lt;br&gt;
    ),&lt;/p&gt;

&lt;p&gt;objects: (limit = 100, offset = 0) =&amp;gt;&lt;br&gt;
    request&amp;lt;{ items: ApiItem[] }&amp;gt;(&lt;br&gt;
      &lt;code&gt;/api/objects?limit=${limit}&amp;amp;offset=${offset}&lt;/code&gt;,&lt;br&gt;
      undefined,&lt;br&gt;
      true,&lt;br&gt;
    ),&lt;br&gt;
  oracleObjects: (owner: string, nameFilter = "") =&amp;gt;&lt;br&gt;
    request&amp;lt;{ items: ApiItem[] }&amp;gt;(&lt;br&gt;
      &lt;code&gt;/api/oracle/objects?owner=${encodeURIComponent(owner)}${&lt;br&gt;
        nameFilter ?&lt;/code&gt;&amp;amp;name_filter=${encodeURIComponent(nameFilter)}&lt;code&gt;: ""&lt;br&gt;
      }&lt;/code&gt;,&lt;br&gt;
      undefined,&lt;br&gt;
      true,&lt;br&gt;
    ),&lt;br&gt;
  dependencies: (objectId: string) =&amp;gt;&lt;br&gt;
    request&amp;lt;{ object_id: string; edges: ApiItem[] }&amp;gt;(&lt;br&gt;
      &lt;code&gt;/api/objects/${encodeURIComponent(objectId)}/dependencies&lt;/code&gt;,&lt;br&gt;
      undefined,&lt;br&gt;
      true,&lt;br&gt;
    ),&lt;/p&gt;

&lt;p&gt;contexts: (limit = 100, offset = 0) =&amp;gt;&lt;br&gt;
    request&amp;lt;{ items: ApiItem[] }&amp;gt;(&lt;br&gt;
      &lt;code&gt;/api/contexts?limit=${limit}&amp;amp;offset=${offset}&lt;/code&gt;,&lt;br&gt;
      undefined,&lt;br&gt;
      true,&lt;br&gt;
    ),&lt;br&gt;
  reviewContext: (contextId: string, action: "approve" | "reject") =&amp;gt;&lt;br&gt;
    request(&lt;br&gt;
      &lt;code&gt;/api/context/${encodeURIComponent(contextId)}/${action}&lt;/code&gt;,&lt;br&gt;
      {&lt;br&gt;
        method: "POST",&lt;br&gt;
        body: JSON.stringify({ reviewer: "react-reviewer" }),&lt;br&gt;
      },&lt;br&gt;
      true,&lt;br&gt;
    ),&lt;/p&gt;

&lt;p&gt;tableContext: (owner: string, tableName: string) =&amp;gt;&lt;br&gt;
    request(&lt;br&gt;
      &lt;code&gt;/api/tables/${encodeURIComponent(owner)}/${encodeURIComponent(&lt;br&gt;
        tableName,&lt;br&gt;
      )}/context&lt;/code&gt;,&lt;br&gt;
      undefined,&lt;br&gt;
      true,&lt;br&gt;
    ),&lt;/p&gt;

&lt;p&gt;feedback: (&lt;br&gt;
    runId: string,&lt;br&gt;
    rating: "UP" | "DOWN",&lt;br&gt;
    reason = "",&lt;br&gt;
    resultId?: string,&lt;br&gt;
  ) =&amp;gt;&lt;br&gt;
    request(&lt;br&gt;
      "/api/feedback",&lt;br&gt;
      {&lt;br&gt;
        method: "POST",&lt;br&gt;
        body: JSON.stringify({&lt;br&gt;
          run_id: runId,&lt;br&gt;
          result_id: resultId || null,&lt;br&gt;
          rating,&lt;br&gt;
          reason: reason || null,&lt;br&gt;
        }),&lt;br&gt;
      },&lt;br&gt;
      true,&lt;br&gt;
    ),&lt;/p&gt;

&lt;p&gt;ingestSchema: (owner: string, objectFilter = "") =&amp;gt;&lt;br&gt;
    request&amp;lt;{ run_id: string }&amp;gt;(&lt;br&gt;
      "/api/oracle/ingest-schema",&lt;br&gt;
      {&lt;br&gt;
        method: "POST",&lt;br&gt;
        body: JSON.stringify({&lt;br&gt;
          owner,&lt;br&gt;
          object_filter: objectFilter || null,&lt;br&gt;
        }),&lt;br&gt;
      },&lt;br&gt;
      true,&lt;br&gt;
    ),&lt;/p&gt;

&lt;p&gt;rebuildChroma: () =&amp;gt;&lt;br&gt;
    request(&lt;br&gt;
      "/api/admin/rebuild-chroma",&lt;br&gt;
      { method: "POST" },&lt;br&gt;
      true,&lt;br&gt;
    ),&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;export function field(&lt;br&gt;
  item: ApiItem | undefined | null,&lt;br&gt;
  name: string,&lt;br&gt;
  fallback: string,&lt;br&gt;
): string;&lt;br&gt;
export function field(&lt;br&gt;
  item: ApiItem | undefined | null,&lt;br&gt;
  name: string,&lt;br&gt;
  fallback: T,&lt;br&gt;
): T;&lt;br&gt;
export function field(&lt;br&gt;
  item: ApiItem | undefined | null,&lt;br&gt;
  name: string,&lt;br&gt;
  fallback: T,&lt;br&gt;
): T {&lt;br&gt;
  if (!item) return fallback;&lt;br&gt;
  const value = item[name] ?? item[name.toUpperCase()];&lt;br&gt;
  return (value === undefined || value === null ? fallback : value) as T;&lt;br&gt;
}&lt;/p&gt;

</description>
    </item>
    <item>
      <title>ResultsPanel</title>
      <dc:creator>Rahul</dc:creator>
      <pubDate>Wed, 12 Aug 2026 04:39:15 +0000</pubDate>
      <link>https://dev.to/iamry02/resultspanel-3ed6</link>
      <guid>https://dev.to/iamry02/resultspanel-3ed6</guid>
      <description>&lt;p&gt;import {&lt;br&gt;
  AlertTriangle,&lt;br&gt;
  ArrowDownToLine,&lt;br&gt;
  CheckCircle2,&lt;br&gt;
  ChevronRight,&lt;br&gt;
  Code2,&lt;br&gt;
  Database,&lt;br&gt;
  GitBranch,&lt;br&gt;
  ListTree,&lt;br&gt;
  ShieldCheck,&lt;br&gt;
  Sparkles,&lt;br&gt;
  ThumbsDown,&lt;br&gt;
  ThumbsUp,&lt;br&gt;
} from "lucide-react";&lt;br&gt;
import { useMemo, useState } from "react";&lt;br&gt;
import { api, field, type ApiItem, type JsonObject } from "../lib/api";&lt;/p&gt;

&lt;p&gt;type ResultTab =&lt;br&gt;
  | "overview"&lt;br&gt;
  | "flow"&lt;br&gt;
  | "procedures"&lt;br&gt;
  | "data"&lt;br&gt;
  | "dependencies"&lt;br&gt;
  | "evidence"&lt;br&gt;
  | "raw";&lt;/p&gt;

&lt;p&gt;const tabs: Array&amp;lt;{ id: ResultTab; label: string }&amp;gt; = [&lt;br&gt;
  { id: "overview", label: "Overview" },&lt;br&gt;
  { id: "flow", label: "Execution flow" },&lt;br&gt;
  { id: "procedures", label: "Subprograms" },&lt;br&gt;
  { id: "data", label: "Data operations" },&lt;br&gt;
  { id: "dependencies", label: "Dependencies" },&lt;br&gt;
  { id: "evidence", label: "Evidence" },&lt;br&gt;
  { id: "raw", label: "Raw metadata" },&lt;br&gt;
];&lt;/p&gt;

&lt;p&gt;function asObject(value: unknown): ApiItem {&lt;br&gt;
  return value &amp;amp;&amp;amp; typeof value === "object" &amp;amp;&amp;amp; !Array.isArray(value)&lt;br&gt;
    ? (value as ApiItem)&lt;br&gt;
    : {};&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;function asArray(value: unknown): ApiItem[] {&lt;br&gt;
  return Array.isArray(value) ? value.map(asObject) : [];&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;function asStrings(value: unknown): string[] {&lt;br&gt;
  return Array.isArray(value) ? value.map(String) : [];&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;function download(filename: string, content: string, mime: string) {&lt;br&gt;
  const blob = new Blob([content], { type: mime });&lt;br&gt;
  const url = URL.createObjectURL(blob);&lt;br&gt;
  const anchor = document.createElement("a");&lt;br&gt;
  anchor.href = url;&lt;br&gt;
  anchor.download = filename;&lt;br&gt;
  document.body.appendChild(anchor);&lt;br&gt;
  anchor.click();&lt;br&gt;
  anchor.remove();&lt;br&gt;
  URL.revokeObjectURL(url);&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;function getFinalResult(run: ApiItem | null): JsonObject | null {&lt;br&gt;
  if (!run) return null;&lt;br&gt;
  const direct = run.result ?? run.RESULT;&lt;br&gt;
  if (direct &amp;amp;&amp;amp; typeof direct === "object" &amp;amp;&amp;amp; !Array.isArray(direct)) {&lt;br&gt;
    return direct as JsonObject;&lt;br&gt;
  }&lt;br&gt;
  const results = (run.results ?? run.RESULTS) as unknown;&lt;br&gt;
  if (!Array.isArray(results)) return null;&lt;br&gt;
  for (let index = results.length - 1; index &amp;gt;= 0; index -= 1) {&lt;br&gt;
    const row = asObject(results[index]);&lt;br&gt;
    if (field(row, "RESULT_TYPE", "") === "FINAL") {&lt;br&gt;
      const result = row.RESULT ?? row.result;&lt;br&gt;
      if (result &amp;amp;&amp;amp; typeof result === "object" &amp;amp;&amp;amp; !Array.isArray(result)) {&lt;br&gt;
        return result as JsonObject;&lt;br&gt;
      }&lt;br&gt;
    }&lt;br&gt;
  }&lt;br&gt;
  return null;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;export function ResultsPanel({&lt;br&gt;
  run,&lt;br&gt;
  runId,&lt;br&gt;
  isAdmin,&lt;br&gt;
}: {&lt;br&gt;
  run: ApiItem | null;&lt;br&gt;
  runId: string | null;&lt;br&gt;
  isAdmin: boolean;&lt;br&gt;
}) {&lt;br&gt;
  const [activeTab, setActiveTab] = useState("overview");&lt;br&gt;
  const [feedbackState, setFeedbackState] = useState&amp;lt;&lt;br&gt;
    "idle" | "sending" | "sent"&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;("idle");&lt;br&gt;
  const result = useMemo(() =&amp;gt; getFinalResult(run), [run]);&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;if (!result) return null;&lt;/p&gt;

&lt;p&gt;const source = asObject(result.source);&lt;br&gt;
  const metadata = asObject(result.metadata);&lt;br&gt;
  const packageResult = asObject(result.package);&lt;br&gt;
  const procedures = asArray(result.procedures);&lt;br&gt;
  const objectName = field(&lt;br&gt;
    metadata,&lt;br&gt;
    "object_name",&lt;br&gt;
    field(packageResult, "package_name", "PL/SQL object"),&lt;br&gt;
  );&lt;br&gt;
  const sourceLines = Number(&lt;br&gt;
    field(source, "total_lines", field(metadata, "total_lines", 0)),&lt;br&gt;
  );&lt;br&gt;
  const confidence = Number(field(packageResult, "confidence", 0));&lt;/p&gt;

&lt;p&gt;const sendFeedback = async (rating: "UP" | "DOWN") =&amp;gt; {&lt;br&gt;
    if (!runId || feedbackState !== "idle") return;&lt;br&gt;
    setFeedbackState("sending");&lt;br&gt;
    try {&lt;br&gt;
      await api.feedback(runId, rating);&lt;br&gt;
      setFeedbackState("sent");&lt;br&gt;
    } catch {&lt;br&gt;
      setFeedbackState("idle");&lt;br&gt;
    }&lt;br&gt;
  };&lt;/p&gt;

&lt;p&gt;const exportJson = () =&amp;gt;&lt;br&gt;
    download(&lt;br&gt;
      &lt;code&gt;${objectName || "analysis"}.json&lt;/code&gt;,&lt;br&gt;
      JSON.stringify(result, null, 2),&lt;br&gt;
      "application/json",&lt;br&gt;
    );&lt;/p&gt;

&lt;p&gt;return (&lt;br&gt;
    &lt;/p&gt;
&lt;br&gt;
      &lt;br&gt;
        &lt;br&gt;
          &lt;span&gt;&lt;br&gt;
             Analysis complete&lt;br&gt;
          &lt;/span&gt;&lt;br&gt;
          &lt;h2&gt;{objectName}&lt;/h2&gt;
&lt;br&gt;
          &lt;p&gt;&lt;br&gt;
            Evidence-grounded analysis generated from the current source and&lt;br&gt;
            deterministic metadata.&lt;br&gt;
          &lt;/p&gt;
&lt;br&gt;
        &lt;br&gt;
        &lt;br&gt;
          &lt;br&gt;
          Export JSON&lt;br&gt;
        &lt;br&gt;
      

&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  &amp;lt;div className="metric-grid result-metrics"&amp;gt;
    &amp;lt;article className="metric-card"&amp;gt;
      &amp;lt;span&amp;gt;Object type&amp;lt;/span&amp;gt;
      &amp;lt;strong&amp;gt;{field(metadata, "object_type", "Unknown")}&amp;lt;/strong&amp;gt;
      &amp;lt;Code2 size={18} /&amp;gt;
    &amp;lt;/article&amp;gt;
    &amp;lt;article className="metric-card"&amp;gt;
      &amp;lt;span&amp;gt;Source lines&amp;lt;/span&amp;gt;
      &amp;lt;strong&amp;gt;{sourceLines.toLocaleString()}&amp;lt;/strong&amp;gt;
      &amp;lt;ListTree size={18} /&amp;gt;
    &amp;lt;/article&amp;gt;
    &amp;lt;article className="metric-card"&amp;gt;
      &amp;lt;span&amp;gt;Subprograms&amp;lt;/span&amp;gt;
      &amp;lt;strong&amp;gt;{procedures.length}&amp;lt;/strong&amp;gt;
      &amp;lt;GitBranch size={18} /&amp;gt;
    &amp;lt;/article&amp;gt;
    &amp;lt;article className="metric-card"&amp;gt;
      &amp;lt;span&amp;gt;Confidence&amp;lt;/span&amp;gt;
      &amp;lt;strong&amp;gt;{Math.round(confidence * 100)}%&amp;lt;/strong&amp;gt;
      &amp;lt;ShieldCheck size={18} /&amp;gt;
    &amp;lt;/article&amp;gt;
  &amp;lt;/div&amp;gt;

  &amp;lt;div className="tab-strip" role="tablist" aria-label="Result sections"&amp;gt;
    {tabs.map((tab) =&amp;gt; (
      &amp;lt;button
        key={tab.id}
        role="tab"
        aria-selected={activeTab === tab.id}
        className={activeTab === tab.id ? "active" : ""}
        onClick={() =&amp;gt; setActiveTab(tab.id)}
      &amp;gt;
        {tab.label}
      &amp;lt;/button&amp;gt;
    ))}
  &amp;lt;/div&amp;gt;

  &amp;lt;div className="result-content"&amp;gt;
    {activeTab === "overview" &amp;amp;&amp;amp; (
      &amp;lt;Overview result={result} packageResult={packageResult} /&amp;gt;
    )}
    {activeTab === "flow" &amp;amp;&amp;amp; &amp;lt;Flow packageResult={packageResult} /&amp;gt;}
    {activeTab === "procedures" &amp;amp;&amp;amp; (
      &amp;lt;Procedures procedures={procedures} /&amp;gt;
    )}
    {activeTab === "data" &amp;amp;&amp;amp; (
      &amp;lt;DataOperations metadata={metadata} procedures={procedures} /&amp;gt;
    )}
    {activeTab === "dependencies" &amp;amp;&amp;amp; (
      &amp;lt;Dependencies packageResult={packageResult} /&amp;gt;
    )}
    {activeTab === "evidence" &amp;amp;&amp;amp; (
      &amp;lt;Evidence result={result} source={source} /&amp;gt;
    )}
    {activeTab === "raw" &amp;amp;&amp;amp; (
      &amp;lt;pre className="json-view"&amp;gt;
        &amp;lt;code&amp;gt;{JSON.stringify(metadata, null, 2)}&amp;lt;/code&amp;gt;
      &amp;lt;/pre&amp;gt;
    )}
  &amp;lt;/div&amp;gt;

  {isAdmin ? (
    &amp;lt;footer className="result-footer"&amp;gt;
      &amp;lt;div&amp;gt;
        &amp;lt;strong&amp;gt;Was this analysis useful?&amp;lt;/strong&amp;gt;
        &amp;lt;span&amp;gt;
          Approved feedback improves future retrieval. Negative feedback is
          never promoted.
        &amp;lt;/span&amp;gt;
      &amp;lt;/div&amp;gt;
      &amp;lt;div className="feedback-actions"&amp;gt;
        &amp;lt;button
          className="icon-text-button"
          disabled={!runId || feedbackState !== "idle"}
          onClick={() =&amp;gt; void sendFeedback("UP")}
        &amp;gt;
          &amp;lt;ThumbsUp size={16} /&amp;gt; Useful
        &amp;lt;/button&amp;gt;
        &amp;lt;button
          className="icon-text-button"
          disabled={!runId || feedbackState !== "idle"}
          onClick={() =&amp;gt; void sendFeedback("DOWN")}
        &amp;gt;
          &amp;lt;ThumbsDown size={16} /&amp;gt; Needs work
        &amp;lt;/button&amp;gt;
        {feedbackState === "sent" &amp;amp;&amp;amp; (
          &amp;lt;span className="feedback-sent"&amp;gt;
            &amp;lt;CheckCircle2 size={15} /&amp;gt; Recorded
          &amp;lt;/span&amp;gt;
        )}
      &amp;lt;/div&amp;gt;
    &amp;lt;/footer&amp;gt;
  ) : (
    &amp;lt;footer className="result-footer transient-result-footer"&amp;gt;
      &amp;lt;ShieldCheck size={20} /&amp;gt;
      &amp;lt;div&amp;gt;
        &amp;lt;strong&amp;gt;Private, transient result&amp;lt;/strong&amp;gt;
        &amp;lt;span&amp;gt;
          This analysis was returned to you without changing shared
          database knowledge.
        &amp;lt;/span&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/footer&amp;gt;
  )}
&amp;lt;/section&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;);&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;function Overview({&lt;br&gt;
  result,&lt;br&gt;
  packageResult,&lt;br&gt;
}: {&lt;br&gt;
  result: JsonObject;&lt;br&gt;
  packageResult: ApiItem;&lt;br&gt;
}) {&lt;br&gt;
  const warnings = [&lt;br&gt;
    ...asStrings(result.warnings),&lt;br&gt;
    ...asStrings(packageResult.risks),&lt;br&gt;
    ...asStrings(packageResult.unknowns),&lt;br&gt;
  ];&lt;br&gt;
  const entries = asStrings(packageResult.entry_points);&lt;br&gt;
  return (&lt;br&gt;
    &lt;/p&gt;
&lt;br&gt;
      &lt;br&gt;
        &lt;br&gt;
          &lt;br&gt;
          &lt;h3&gt;Purpose and behavior&lt;/h3&gt;
&lt;br&gt;
        &lt;br&gt;
        &lt;p&gt;&lt;br&gt;
          {field(&lt;br&gt;
            packageResult,&lt;br&gt;
            "purpose",&lt;br&gt;
            field(packageResult, "overview", "No package overview is available."),&lt;br&gt;
          )}&lt;br&gt;
        &lt;/p&gt;
&lt;br&gt;
        {field(packageResult, "functional_summary", "") &amp;amp;&amp;amp; (&lt;br&gt;
          &amp;lt;&amp;gt;&lt;br&gt;
            &lt;h4&gt;Functional summary&lt;/h4&gt;
&lt;br&gt;
            &lt;p&gt;{field(packageResult, "functional_summary", "")}&lt;/p&gt;
&lt;br&gt;
          &amp;lt;/&amp;gt;&lt;br&gt;
        )}&lt;br&gt;
      &lt;br&gt;
      &lt;br&gt;
        &lt;br&gt;
          &lt;br&gt;
          &lt;h3&gt;Entry points&lt;/h3&gt;
&lt;br&gt;
        &lt;br&gt;
        {entries.length ? (&lt;br&gt;
          &lt;ul&gt;

            {entries.map((entry) =&amp;gt; (
              &lt;li&gt;

                
                &lt;code&gt;{entry}&lt;/code&gt;
              &lt;/li&gt;

            ))}
          &lt;/ul&gt;
&lt;br&gt;
        ) : (&lt;br&gt;
          &lt;p&gt;No public entry points were reported.&lt;/p&gt;
&lt;br&gt;
        )}&lt;br&gt;
      &lt;br&gt;
      &lt;br&gt;
        &lt;br&gt;
          &lt;br&gt;
          &lt;h3&gt;Warnings and uncertainty&lt;/h3&gt;
&lt;br&gt;
        &lt;br&gt;
        {warnings.length ? (&lt;br&gt;
          &lt;ul&gt;

            {warnings.map((warning, index) =&amp;gt; (
              &lt;li&gt;{warning}&lt;/li&gt;

            ))}
          &lt;/ul&gt;
&lt;br&gt;
        ) : (&lt;br&gt;
          &lt;br&gt;
            &lt;br&gt;
            No material warnings were reported.&lt;br&gt;
          &lt;br&gt;
        )}&lt;br&gt;
      &lt;br&gt;
    &lt;br&gt;
  );&lt;br&gt;
}

&lt;p&gt;function Flow({ packageResult }: { packageResult: ApiItem }) {&lt;br&gt;
  const workflow = asStrings(packageResult.workflow);&lt;br&gt;
  return workflow.length ? (&lt;br&gt;
    &lt;/p&gt;
&lt;ol&gt;

      {workflow.map((step, index) =&amp;gt; (
        &lt;li&gt;

          &lt;span&gt;{String(index + 1).padStart(2, "0")}&lt;/span&gt;
          
            &lt;strong&gt;{step}&lt;/strong&gt;
          
        &lt;/li&gt;

      ))}
    &lt;/ol&gt;
&lt;br&gt;
  ) : (&lt;br&gt;
    &lt;br&gt;
  );&lt;br&gt;
}

&lt;p&gt;function Procedures({ procedures }: { procedures: ApiItem[] }) {&lt;br&gt;
  if (!procedures.length) {&lt;br&gt;
    return ;&lt;br&gt;
  }&lt;br&gt;
  return (&lt;br&gt;
    &lt;/p&gt;
&lt;br&gt;
      {procedures.map((procedure, index) =&amp;gt; {&lt;br&gt;
        const lineRange = Array.isArray(procedure.line_range)&lt;br&gt;
          ? procedure.line_range&lt;br&gt;
          : [0, 0];&lt;br&gt;
        const audit = field(procedure, "audit_status", "UNKNOWN");&lt;br&gt;
        const confidence = Number(field(procedure, "confidence", 0));&lt;br&gt;
        return (&lt;br&gt;
          &lt;br&gt;
            &lt;br&gt;
              &lt;br&gt;
                &lt;span&gt;&lt;br&gt;
                  &lt;br&gt;
                &lt;/span&gt;&lt;br&gt;
                &lt;br&gt;
                  &lt;strong&gt;&lt;br&gt;
                    {field(procedure, "subprogram_name", &lt;code&gt;Subprogram ${index + 1}&lt;/code&gt;)}&lt;br&gt;
                  &lt;/strong&gt;&lt;br&gt;
                  &lt;span&gt;&lt;br&gt;
                    {field(procedure, "subprogram_type", "PL/SQL")} · lines{" "}&lt;br&gt;
                    {String(lineRange[0])}–{String(lineRange[1])}&lt;br&gt;
                  &lt;/span&gt;&lt;br&gt;
                &lt;br&gt;
              &lt;br&gt;
              &lt;br&gt;
                &lt;span&gt;&lt;br&gt;
                  {audit}&lt;br&gt;
                &lt;/span&gt;&lt;br&gt;
                &lt;span&gt;&lt;br&gt;
                  {Math.round(confidence * 100)}%&lt;br&gt;
                &lt;/span&gt;&lt;br&gt;
              &lt;br&gt;
            &lt;br&gt;
            &lt;br&gt;
              &lt;h4&gt;Purpose&lt;/h4&gt;
&lt;br&gt;
              &lt;p&gt;{field(procedure, "purpose", "No purpose was returned.")}&lt;/p&gt;
&lt;br&gt;
              &lt;h4&gt;Ordered steps&lt;/h4&gt;
&lt;br&gt;
              &lt;ol&gt;

                {asStrings(procedure.ordered_steps).map((step) =&amp;gt; (
                  &lt;li&gt;{step}&lt;/li&gt;

                ))}
              &lt;/ol&gt;
&lt;br&gt;
              &lt;br&gt;
                &lt;br&gt;
                  &lt;h4&gt;Functional summary&lt;/h4&gt;
&lt;br&gt;
                  &lt;p&gt;{field(procedure, "functional_summary", "Not available.")}&lt;/p&gt;
&lt;br&gt;
                &lt;br&gt;
                &lt;br&gt;
                  &lt;h4&gt;Technical summary&lt;/h4&gt;
&lt;br&gt;
                  &lt;p&gt;{field(procedure, "technical_summary", "Not available.")}&lt;/p&gt;
&lt;br&gt;
                &lt;br&gt;
              &lt;br&gt;
            &lt;br&gt;
          &lt;br&gt;
        );&lt;br&gt;
      })}&lt;br&gt;
    &lt;br&gt;
  );&lt;br&gt;
}

&lt;p&gt;function DataOperations({&lt;br&gt;
  metadata,&lt;br&gt;
  procedures,&lt;br&gt;
}: {&lt;br&gt;
  metadata: ApiItem;&lt;br&gt;
  procedures: ApiItem[];&lt;br&gt;
}) {&lt;br&gt;
  const rows: Array = [];&lt;br&gt;
  procedures.forEach((procedure) =&amp;gt; {&lt;br&gt;
    asArray(procedure.tables).forEach((table) =&amp;gt;&lt;br&gt;
      rows.push({&lt;br&gt;
        ...table,&lt;br&gt;
        subprogram: field(procedure, "subprogram_name", "—"),&lt;br&gt;
      }),&lt;br&gt;
    );&lt;br&gt;
  });&lt;br&gt;
  if (!rows.length) {&lt;br&gt;
    asArray(metadata.tables).forEach((table) =&amp;gt; rows.push(table));&lt;br&gt;
  }&lt;br&gt;
  if (!rows.length) {&lt;br&gt;
    return ;&lt;br&gt;
  }&lt;br&gt;
  return (&lt;br&gt;
    &lt;/p&gt;
&lt;br&gt;
      &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;
          {rows.map((row, index) =&amp;gt; {&lt;br&gt;
            const evidence = asArray(row.evidence);&lt;br&gt;
            return (&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;
            );&lt;br&gt;
          })}&lt;br&gt;&lt;br&gt;&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
        &lt;thead&gt;
          &lt;tr&gt;
            &lt;th&gt;Subprogram&lt;/th&gt;
            &lt;th&gt;Object&lt;/th&gt;
            &lt;th&gt;Operation&lt;/th&gt;
            &lt;th&gt;Alias&lt;/th&gt;
            &lt;th&gt;Dynamic SQL&lt;/th&gt;
            &lt;th&gt;Evidence&lt;/th&gt;
          &lt;/tr&gt;
        &lt;/thead&gt;
        &lt;tbody&gt;
              &lt;tr&gt;
                &lt;td&gt;{String(row.subprogram ?? "—")}&lt;/td&gt;
                &lt;td&gt;
&lt;br&gt;
                  &lt;span&gt;&lt;br&gt;
                    &lt;br&gt;
                    {field(row, "owner", "") &amp;amp;&amp;amp;&lt;br&gt;
                      &lt;code&gt;${field(row, "owner", "")}.&lt;/code&gt;}&lt;br&gt;
                    {field(row, "name", "Unknown")}&lt;br&gt;
                  &lt;/span&gt;&lt;br&gt;
                &lt;/td&gt;
                &lt;td&gt;
&lt;br&gt;
                  &lt;span&gt;&lt;br&gt;
                    {field(row, "operation", "READ")}&lt;br&gt;
                  &lt;/span&gt;&lt;br&gt;
                &lt;/td&gt;
                &lt;td&gt;{field(row, "alias", "—")}&lt;/td&gt;
                &lt;td&gt;{field(row, "dynamic_sql", false) ? "Yes" : "No"}&lt;/td&gt;
                &lt;td&gt;
&lt;br&gt;
                  {evidence.length&lt;br&gt;
                    ? &lt;code&gt;Line ${field(evidence[0], "start_line", "—")}&lt;/code&gt;&lt;br&gt;
                    : "—"}&lt;br&gt;
                &lt;/td&gt;
              &lt;/tr&gt;
        &lt;/tbody&gt;
      &lt;/table&gt;&lt;/div&gt;
&lt;br&gt;
    &lt;br&gt;
  );&lt;br&gt;
}

&lt;p&gt;function Dependencies({ packageResult }: { packageResult: ApiItem }) {&lt;br&gt;
  const dependencyFlow = asStrings(packageResult.dependency_flow);&lt;br&gt;
  const relationships = asStrings(packageResult.procedure_relationships);&lt;br&gt;
  const items = [...dependencyFlow, ...relationships];&lt;br&gt;
  return items.length ? (&lt;br&gt;
    &lt;/p&gt;
&lt;br&gt;
      {items.map((item, index) =&amp;gt; (&lt;br&gt;
        &lt;br&gt;
          &lt;span&gt;&lt;br&gt;
            &lt;br&gt;
          &lt;/span&gt;&lt;br&gt;
          &lt;p&gt;{item}&lt;/p&gt;
&lt;br&gt;
        &lt;br&gt;
      ))}&lt;br&gt;
    &lt;br&gt;
  ) : (&lt;br&gt;
    &lt;br&gt;
  );&lt;br&gt;
}

&lt;p&gt;function Evidence({&lt;br&gt;
  result,&lt;br&gt;
  source,&lt;br&gt;
}: {&lt;br&gt;
  result: JsonObject;&lt;br&gt;
  source: ApiItem;&lt;br&gt;
}) {&lt;br&gt;
  const retrieval = asArray(result.retrieval);&lt;br&gt;
  return (&lt;br&gt;
    &lt;/p&gt;
&lt;br&gt;
      &lt;br&gt;
        &lt;br&gt;
          &lt;br&gt;
          &lt;h3&gt;Source integrity&lt;/h3&gt;
&lt;br&gt;
        &lt;br&gt;
        &lt;dl&gt;
&lt;br&gt;
          &lt;br&gt;
            &lt;dt&gt;SHA-256&lt;/dt&gt;
&lt;br&gt;
            &lt;dd&gt;
&lt;br&gt;
              &lt;code&gt;{field(source, "sha256", "Not available")}&lt;/code&gt;&lt;br&gt;
            &lt;/dd&gt;
&lt;br&gt;
          &lt;br&gt;
          &lt;br&gt;
            &lt;dt&gt;Source origin&lt;/dt&gt;
&lt;br&gt;
            &lt;dd&gt;{field(source, "origin", "Current submission")}&lt;/dd&gt;
&lt;br&gt;
          &lt;br&gt;
        &lt;/dl&gt;
&lt;br&gt;
      &lt;br&gt;
      &lt;br&gt;
        &lt;br&gt;
          &lt;br&gt;
          &lt;h3&gt;Retrieved context&lt;/h3&gt;
&lt;br&gt;
        &lt;br&gt;
        {retrieval.length ? (&lt;br&gt;
          &lt;ul&gt;

            {retrieval.map((item, index) =&amp;gt; (
              &lt;li&gt;

                
                  &lt;strong&gt;{field(item, "content_type", "Context")}&lt;/strong&gt;
                  &lt;span&gt;{field(item, "review_status", "UNREVIEWED")}&lt;/span&gt;
                
                &lt;span&gt;&lt;br&gt;
                  {Math.round(Number(field(item, "score", 0)) * 100)}%&lt;br&gt;
                &lt;/span&gt;
              &lt;/li&gt;

            ))}
          &lt;/ul&gt;
&lt;br&gt;
        ) : (&lt;br&gt;
          &lt;p&gt;&lt;br&gt;
            No prior context exceeded the retrieval threshold.&lt;br&gt;
          &lt;/p&gt;
&lt;br&gt;
        )}&lt;br&gt;
      &lt;br&gt;
    &lt;br&gt;
  );&lt;br&gt;
}

&lt;p&gt;function EmptyResult({ text }: { text: string }) {&lt;br&gt;
  return (&lt;br&gt;
    &lt;/p&gt;
&lt;br&gt;
      &lt;br&gt;
      &lt;p&gt;{text}&lt;/p&gt;
&lt;br&gt;
    &lt;br&gt;
  );&lt;br&gt;
}

</description>
      <category>frontend</category>
      <category>javascript</category>
      <category>programming</category>
      <category>react</category>
    </item>
    <item>
      <title>InsightApp</title>
      <dc:creator>Rahul</dc:creator>
      <pubDate>Wed, 12 Aug 2026 04:38:44 +0000</pubDate>
      <link>https://dev.to/iamry02/insightapp-4ic8</link>
      <guid>https://dev.to/iamry02/insightapp-4ic8</guid>
      <description>&lt;p&gt;Liquid syntax error: Variable '{{% raw %}' was not properly terminated with regexp: /\}\}/&lt;/p&gt;
</description>
    </item>
    <item>
      <title>ExplorePages</title>
      <dc:creator>Rahul</dc:creator>
      <pubDate>Wed, 12 Aug 2026 04:32:24 +0000</pubDate>
      <link>https://dev.to/iamry02/explorepages-46l9</link>
      <guid>https://dev.to/iamry02/explorepages-46l9</guid>
      <description>&lt;p&gt;Liquid syntax error: Variable '{{% raw %}' was not properly terminated with regexp: /\}\}/&lt;/p&gt;
</description>
      <category>frontend</category>
      <category>javascript</category>
      <category>react</category>
      <category>software</category>
    </item>
    <item>
      <title>DependencyGraph</title>
      <dc:creator>Rahul</dc:creator>
      <pubDate>Wed, 12 Aug 2026 04:31:50 +0000</pubDate>
      <link>https://dev.to/iamry02/dependencygraph-nhc</link>
      <guid>https://dev.to/iamry02/dependencygraph-nhc</guid>
      <description>&lt;p&gt;import dagre from "dagre";&lt;br&gt;
import {&lt;br&gt;
  Background,&lt;br&gt;
  BackgroundVariant,&lt;br&gt;
  Controls,&lt;br&gt;
  Handle,&lt;br&gt;
  MarkerType,&lt;br&gt;
  MiniMap,&lt;br&gt;
  Panel,&lt;br&gt;
  Position,&lt;br&gt;
  ReactFlow,&lt;br&gt;
  type Edge,&lt;br&gt;
  type Node,&lt;br&gt;
  type NodeProps,&lt;br&gt;
} from "@xyflow/react";&lt;br&gt;
import {&lt;br&gt;
  Box,&lt;br&gt;
  Braces,&lt;br&gt;
  Database,&lt;br&gt;
  ExternalLink,&lt;br&gt;
  FunctionSquare,&lt;br&gt;
} from "lucide-react";&lt;br&gt;
import { useMemo } from "react";&lt;br&gt;
import { field, type ApiItem } from "../lib/api";&lt;/p&gt;

&lt;p&gt;type GraphNodeData = {&lt;br&gt;
  label: string;&lt;br&gt;
  kind: "package" | "subprogram" | "table" | "external";&lt;br&gt;
  eyebrow: string;&lt;br&gt;
};&lt;/p&gt;

&lt;p&gt;type GraphNode = Node;&lt;/p&gt;

&lt;p&gt;function inferKind(label: string, relationship = ""): GraphNodeData["kind"] {&lt;br&gt;
  const normalized = &lt;code&gt;${label} ${relationship}&lt;/code&gt;.toUpperCase();&lt;br&gt;
  if (&lt;br&gt;
    normalized.includes("TABLE") ||&lt;br&gt;
    normalized.includes("VIEW") ||&lt;br&gt;
    normalized.includes("SELECT") ||&lt;br&gt;
    normalized.includes("INSERT") ||&lt;br&gt;
    normalized.includes("UPDATE") ||&lt;br&gt;
    normalized.includes("DELETE") ||&lt;br&gt;
    normalized.includes("MERGE")&lt;br&gt;
  ) {&lt;br&gt;
    return "table";&lt;br&gt;
  }&lt;br&gt;
  if (&lt;br&gt;
    normalized.includes("HTTP") ||&lt;br&gt;
    normalized.includes("FILE") ||&lt;br&gt;
    normalized.includes("MAIL") ||&lt;br&gt;
    normalized.includes("EXTERNAL") ||&lt;br&gt;
    normalized.includes("DBLINK")&lt;br&gt;
  ) {&lt;br&gt;
    return "external";&lt;br&gt;
  }&lt;br&gt;
  if (&lt;br&gt;
    normalized.includes("PROCEDURE") ||&lt;br&gt;
    normalized.includes("FUNCTION") ||&lt;br&gt;
    normalized.includes("CALL")&lt;br&gt;
  ) {&lt;br&gt;
    return "subprogram";&lt;br&gt;
  }&lt;br&gt;
  return "package";&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;function kindLabel(kind: GraphNodeData["kind"]) {&lt;br&gt;
  return {&lt;br&gt;
    package: "Package / object",&lt;br&gt;
    subprogram: "Procedure / function",&lt;br&gt;
    table: "Table / view",&lt;br&gt;
    external: "External system",&lt;br&gt;
  }[kind];&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;function NodeIcon({ kind }: { kind: GraphNodeData["kind"] }) {&lt;br&gt;
  if (kind === "table") return ;&lt;br&gt;
  if (kind === "subprogram") return ;&lt;br&gt;
  if (kind === "external") return ;&lt;br&gt;
  return ;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;function InsightNode({ data, selected }: NodeProps) {&lt;br&gt;
  return (&lt;br&gt;
    &lt;/p&gt;
&lt;br&gt;
      &lt;br&gt;
      &lt;span&gt;&lt;br&gt;
        &lt;br&gt;
      &lt;/span&gt;&lt;br&gt;
      &lt;span&gt;&lt;br&gt;
        &lt;small&gt;{data.eyebrow}&lt;/small&gt;&lt;br&gt;
        &lt;strong&gt;{data.label}&lt;/strong&gt;&lt;br&gt;
      &lt;/span&gt;&lt;br&gt;
      &lt;br&gt;
    &lt;br&gt;
  );&lt;br&gt;
}

&lt;p&gt;const nodeTypes = { insight: InsightNode };&lt;/p&gt;

&lt;p&gt;function layoutGraph(nodes: GraphNode[], edges: Edge[]) {&lt;br&gt;
  const graph = new dagre.graphlib.Graph();&lt;br&gt;
  graph.setDefaultEdgeLabel(() =&amp;gt; ({}));&lt;br&gt;
  graph.setGraph({&lt;br&gt;
    rankdir: "LR",&lt;br&gt;
    nodesep: 46,&lt;br&gt;
    ranksep: 112,&lt;br&gt;
    marginx: 34,&lt;br&gt;
    marginy: 34,&lt;br&gt;
  });&lt;/p&gt;

&lt;p&gt;nodes.forEach((node) =&amp;gt; graph.setNode(node.id, { width: 230, height: 72 }));&lt;br&gt;
  edges.forEach((edge) =&amp;gt; graph.setEdge(edge.source, edge.target));&lt;br&gt;
  dagre.layout(graph);&lt;/p&gt;

&lt;p&gt;return nodes.map((node) =&amp;gt; {&lt;br&gt;
    const point = graph.node(node.id);&lt;br&gt;
    return {&lt;br&gt;
      ...node,&lt;br&gt;
      position: { x: point.x - 115, y: point.y - 36 },&lt;br&gt;
    };&lt;br&gt;
  });&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;export function DependencyGraph({ edges: rawEdges }: { edges: ApiItem[] }) {&lt;br&gt;
  const { nodes, edges } = useMemo(() =&amp;gt; {&lt;br&gt;
    const nodeMap = new Map();&lt;br&gt;
    const graphEdges: Edge[] = [];&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rawEdges.forEach((item, index) =&amp;gt; {
  const source = String(
    field(item, "SOURCE_NODE", field(item, "source", "Source")),
  );
  const target = String(
    field(item, "TARGET_NODE", field(item, "target", "Target")),
  );
  const relationship = String(
    field(
      item,
      "RELATIONSHIP_TYPE",
      field(item, "relationship", "DEPENDS_ON"),
    ),
  );
  const sourceKind = inferKind(source);
  const targetKind = inferKind(target, relationship);
  if (!nodeMap.has(source)) {
    nodeMap.set(source, {
      label: source,
      kind: sourceKind,
      eyebrow: kindLabel(sourceKind),
    });
  }
  if (!nodeMap.has(target)) {
    nodeMap.set(target, {
      label: target,
      kind: targetKind,
      eyebrow: kindLabel(targetKind),
    });
  }
  graphEdges.push({
    id: `edge-${index}-${source}-${target}`,
    source,
    target,
    type: "smoothstep",
    label: relationship.replaceAll("_", " "),
    markerEnd: { type: MarkerType.ArrowClosed, color: "#7796ff" },
    style: { stroke: "#7796ff", strokeWidth: 1.7 },
    labelStyle: {
      fill: "#aebbd0",
      fontSize: 10,
      fontWeight: 700,
    },
    labelBgStyle: {
      fill: "#111a28",
      fillOpacity: 0.94,
    },
    labelBgPadding: [7, 4],
    labelBgBorderRadius: 6,
  });
});

const graphNodes: GraphNode[] = Array.from(nodeMap.entries()).map(
  ([id, data]) =&amp;gt; ({
    id,
    type: "insight",
    data,
    position: { x: 0, y: 0 },
  }),
);
return {
  nodes: layoutGraph(graphNodes, graphEdges),
  edges: graphEdges,
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}, [rawEdges]);&lt;/p&gt;

&lt;p&gt;if (!rawEdges.length) {&lt;br&gt;
    return (&lt;br&gt;
      &lt;/p&gt;
&lt;br&gt;
        &lt;br&gt;
        &lt;strong&gt;No dependency edges yet&lt;/strong&gt;&lt;br&gt;
        &lt;span&gt;&lt;br&gt;
          Analyze an object first. Calls, tables, package containment, and&lt;br&gt;
          external systems will appear here.&lt;br&gt;
        &lt;/span&gt;&lt;br&gt;
      &lt;br&gt;
    );&lt;br&gt;
  }

&lt;p&gt;return (&lt;br&gt;
    &lt;/p&gt;
&lt;br&gt;
      
        nodes={nodes}&lt;br&gt;
        edges={edges}&lt;br&gt;
        nodeTypes={nodeTypes}&lt;br&gt;
        fitView&lt;br&gt;
        fitViewOptions={{ padding: 0.24 }}&lt;br&gt;
        minZoom={0.28}&lt;br&gt;
        maxZoom={1.8}&lt;br&gt;
        nodesConnectable={false}&lt;br&gt;
        deleteKeyCode={null}&lt;br&gt;
        proOptions={{ hideAttribution: true }}&lt;br&gt;
      &amp;gt;&lt;br&gt;
        
          variant={BackgroundVariant.Dots}&lt;br&gt;
          gap={22}&lt;br&gt;
          size={1.2}&lt;br&gt;
          color="#263248"&lt;br&gt;
        /&amp;gt;&lt;br&gt;
        &lt;br&gt;
        
          position="bottom-right"&lt;br&gt;
          pannable&lt;br&gt;
          zoomable&lt;br&gt;
          nodeStrokeWidth={3}&lt;br&gt;
          nodeColor={(node) =&amp;gt; {&lt;br&gt;
            const kind = (node.data as GraphNodeData).kind;&lt;br&gt;
            if (kind === "table") return "#4de2c5";&lt;br&gt;
            if (kind === "external") return "#ffbc70";&lt;br&gt;
            if (kind === "subprogram") return "#a99eff";&lt;br&gt;
            return "#7796ff";&lt;br&gt;
          }}&lt;br&gt;
          maskColor="rgba(5, 9, 16, .72)"&lt;br&gt;
        /&amp;gt;&lt;br&gt;
        &lt;br&gt;
          {(["package", "subprogram", "table", "external"] as const).map(&lt;br&gt;
            (kind) =&amp;gt; (&lt;br&gt;
              &lt;span&gt;&lt;br&gt;
                &lt;br&gt;
                {kindLabel(kind)}&lt;br&gt;
              &lt;/span&gt;&lt;br&gt;
            ),&lt;br&gt;
          )}&lt;br&gt;
        &lt;br&gt;
      &lt;br&gt;
    &lt;br&gt;
  );&lt;br&gt;
}

</description>
      <category>javascript</category>
      <category>react</category>
      <category>software</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Claude is beating Open AI very soon with their fable model</title>
      <dc:creator>Rahul</dc:creator>
      <pubDate>Tue, 11 Aug 2026 10:09:25 +0000</pubDate>
      <link>https://dev.to/iamry02/claude-is-beating-open-ai-very-soon-with-their-fable-model-24cn</link>
      <guid>https://dev.to/iamry02/claude-is-beating-open-ai-very-soon-with-their-fable-model-24cn</guid>
      <description>&lt;p&gt;‹div cLassName="metadata-row"&amp;gt;&lt;br&gt;

"CONTEXT_TYPE",&lt;br&gt;
"CONTEXT")}/span&amp;gt;&lt;br&gt;
‹span›&lt;br&gt;
Confidence(" "}&lt;br&gt;
{Math. round (Number (Field(item, "CONFIDENCE", 0)) * 100)}%-&amp;lt;/ span&amp;gt;&lt;br&gt;
&lt;span&gt;{field(item,&lt;br&gt;
"MODEL_NAME",&lt;br&gt;
&lt;br&gt;
"Unknown model")}/span›I&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
(reviewstatus === "AI_GENERATED" &amp;amp;&amp;amp; ( &lt;/span&gt;&lt;/p&gt;
&lt;br&gt;

cLassName="button small approve"&lt;br&gt;
disabled= (busyId = id}&lt;br&gt;
onclick-{() → void review(id, "approve")} {busyld === id? (&lt;br&gt;
‹LoaderCircle cLassName="spin" size=(15) /&amp;gt;&lt;br&gt;
) : (&lt;br&gt;
‹Check size-(15} /&amp;gt;&lt;br&gt;
385&lt;br&gt;
380&lt;br&gt;
)}

</description>
    </item>
  </channel>
</rss>
