@polpo-ai/dashboard 0.1.1 → 0.1.2

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.
Files changed (89) hide show
  1. package/app/(dashboard)/layout.tsx +6 -6
  2. package/app/(dashboard)/projects/[id]/agents/[name]/memory/view.tsx +3 -3
  3. package/app/(dashboard)/projects/[id]/agents/[name]/models-view.tsx +1 -1
  4. package/app/(dashboard)/projects/[id]/agents/[name]/page.tsx +3 -3
  5. package/app/(dashboard)/projects/[id]/agents/[name]/prompt/view.tsx +4 -4
  6. package/app/(dashboard)/projects/[id]/agents/[name]/skills/view.tsx +1 -1
  7. package/app/(dashboard)/projects/[id]/agents/[name]/tools/view.tsx +2 -2
  8. package/app/(dashboard)/projects/[id]/agents/[name]/vault/view.tsx +1 -1
  9. package/app/(dashboard)/projects/[id]/agents/page.tsx +2 -2
  10. package/app/(dashboard)/projects/[id]/agents/view.tsx +2 -2
  11. package/app/(dashboard)/projects/[id]/logs/page.tsx +2 -2
  12. package/app/(dashboard)/projects/[id]/logs/view.tsx +3 -3
  13. package/app/(dashboard)/projects/[id]/memory/page.tsx +2 -2
  14. package/app/(dashboard)/projects/[id]/memory/view.tsx +1 -1
  15. package/app/(dashboard)/projects/[id]/missions/[missionId]/page.tsx +2 -2
  16. package/app/(dashboard)/projects/[id]/missions/[missionId]/view.tsx +3 -3
  17. package/app/(dashboard)/projects/[id]/missions/page.tsx +2 -2
  18. package/app/(dashboard)/projects/[id]/missions/view.tsx +5 -5
  19. package/app/(dashboard)/projects/[id]/onboarding-checklist.tsx +3 -3
  20. package/app/(dashboard)/projects/[id]/page.tsx +3 -3
  21. package/app/(dashboard)/projects/[id]/playbooks/[name]/view.tsx +4 -4
  22. package/app/(dashboard)/projects/[id]/playbooks/view.tsx +2 -2
  23. package/app/(dashboard)/projects/[id]/schedules/page.tsx +2 -2
  24. package/app/(dashboard)/projects/[id]/schedules/view.tsx +2 -2
  25. package/app/(dashboard)/projects/[id]/sessions/[sessionId]/page.tsx +2 -2
  26. package/app/(dashboard)/projects/[id]/sessions/[sessionId]/view.tsx +1 -1
  27. package/app/(dashboard)/projects/[id]/sessions/page.tsx +2 -2
  28. package/app/(dashboard)/projects/[id]/sessions/view.tsx +5 -5
  29. package/app/(dashboard)/projects/[id]/settings/page.tsx +4 -4
  30. package/app/(dashboard)/projects/[id]/skills/[name]/page.tsx +2 -2
  31. package/app/(dashboard)/projects/[id]/skills/[name]/view.tsx +4 -4
  32. package/app/(dashboard)/projects/[id]/skills/page.tsx +2 -2
  33. package/app/(dashboard)/projects/[id]/skills/view.tsx +4 -4
  34. package/app/(dashboard)/projects/[id]/storage/view.tsx +1 -1
  35. package/app/(dashboard)/projects/[id]/tasks/[taskId]/activity/view.tsx +2 -2
  36. package/app/(dashboard)/projects/[id]/tasks/[taskId]/assessment/view.tsx +1 -1
  37. package/app/(dashboard)/projects/[id]/tasks/[taskId]/blueprint.ts +1 -1
  38. package/app/(dashboard)/projects/[id]/tasks/[taskId]/output/view.tsx +2 -2
  39. package/app/(dashboard)/projects/[id]/tasks/[taskId]/page.tsx +3 -3
  40. package/app/(dashboard)/projects/[id]/tasks/[taskId]/view.tsx +1 -1
  41. package/app/(dashboard)/projects/[id]/tasks/page.tsx +2 -2
  42. package/app/(dashboard)/projects/[id]/tasks/view.tsx +5 -5
  43. package/app/(dashboard)/projects/[id]/view.tsx +4 -4
  44. package/app/(dashboard)/projects/[id]/welcome-banner.tsx +2 -2
  45. package/app/(dashboard)/projects/projects-list.tsx +1 -1
  46. package/app/(playground)/layout.tsx +2 -2
  47. package/app/(playground)/projects/[id]/playground/page.tsx +2 -2
  48. package/app/(playground)/projects/[id]/playground/view.tsx +2 -2
  49. package/app/(playground)/projects/[id]/playground-legacy/page.tsx +2 -2
  50. package/app/(playground)/projects/[id]/playground-legacy/skeleton.tsx +1 -1
  51. package/app/(playground)/projects/[id]/playground-legacy/view.tsx +1 -1
  52. package/components/ai-elements/code-block.tsx +3 -3
  53. package/components/dashboard/agent-picker-card.tsx +1 -1
  54. package/components/dashboard/agent-studio.tsx +10 -10
  55. package/components/dashboard/builder-chat.tsx +2 -2
  56. package/components/dashboard/client-picker.tsx +2 -2
  57. package/components/dashboard/connect-dialog.tsx +8 -8
  58. package/components/dashboard/file-browser.tsx +1 -1
  59. package/components/dashboard/markdown.tsx +1 -1
  60. package/components/dashboard/mcp-install-panel.tsx +2 -2
  61. package/components/dashboard/polpo-chat.tsx +2 -2
  62. package/components/dashboard/project-copilot.tsx +3 -3
  63. package/components/dashboard/sdk-snippet-panel.tsx +4 -4
  64. package/components/dashboard/settings-form.tsx +9 -9
  65. package/components/dashboard/sidebar.tsx +6 -6
  66. package/components/dashboard/skeletons.tsx +1 -1
  67. package/components/dashboard/skills-install-wizard.tsx +2 -2
  68. package/components/dashboard/task-studio.tsx +7 -7
  69. package/components/dashboard/top-header.tsx +2 -2
  70. package/components/dashboard/webhook-deliveries.tsx +1 -1
  71. package/components/providers.tsx +1 -1
  72. package/components/ui/badge.tsx +1 -1
  73. package/components/ui/button.tsx +1 -1
  74. package/components/ui/card.tsx +1 -1
  75. package/components/ui/chart.tsx +1 -1
  76. package/components/ui/command.tsx +3 -3
  77. package/components/ui/dialog.tsx +2 -2
  78. package/components/ui/input-group.tsx +4 -4
  79. package/components/ui/input.tsx +1 -1
  80. package/components/ui/multi-select.tsx +2 -2
  81. package/components/ui/popover.tsx +1 -1
  82. package/components/ui/select.tsx +1 -1
  83. package/components/ui/separator.tsx +1 -1
  84. package/components/ui/sheet.tsx +2 -2
  85. package/components/ui/skeleton.tsx +1 -1
  86. package/components/ui/tabs.tsx +1 -1
  87. package/components/ui/textarea.tsx +1 -1
  88. package/components/ui/tooltip.tsx +1 -1
  89. package/package.json +3 -12
@@ -1,9 +1,9 @@
1
- import { Sidebar, MobileSidebar, MobileHeader } from "#/components/dashboard/sidebar";
2
- import { TopHeader } from "#/components/dashboard/top-header";
3
- import { Providers } from "#/components/providers";
4
- import { MobileSidebarProvider } from "#/hooks/use-mobile-sidebar";
5
- import { DesktopSidebarProvider } from "#/hooks/use-desktop-sidebar";
6
- import { CopilotLayout } from "#/components/dashboard/project-copilot";
1
+ import { Sidebar, MobileSidebar, MobileHeader } from "../../components/dashboard/sidebar";
2
+ import { TopHeader } from "../../components/dashboard/top-header";
3
+ import { Providers } from "../../components/providers";
4
+ import { MobileSidebarProvider } from "../../hooks/use-mobile-sidebar";
5
+ import { DesktopSidebarProvider } from "../../hooks/use-desktop-sidebar";
6
+ import { CopilotLayout } from "../../components/dashboard/project-copilot";
7
7
 
8
8
  /**
9
9
  * Single-tenant self-host shell. No Better Auth session, no org list, no
@@ -1,7 +1,7 @@
1
1
  import Link from "next/link";
2
- import { Markdown } from "#/components/dashboard/markdown";
3
- import { CopyButton } from "#/components/dashboard/copy-button";
4
- import { Hint } from "#/components/dashboard/hint";
2
+ import { Markdown } from "../../../../../../../components/dashboard/markdown";
3
+ import { CopyButton } from "../../../../../../../components/dashboard/copy-button";
4
+ import { Hint } from "../../../../../../../components/dashboard/hint";
5
5
 
6
6
  export default function AgentMemoryView({ id, content }: { id: string; content: string }) {
7
7
  return (
@@ -1,5 +1,5 @@
1
1
  import type { AgentConfig } from "@polpo-ai/core";
2
- import { AgentCapabilities } from "#/components/dashboard/agent-capabilities";
2
+ import { AgentCapabilities } from "../../../../../../components/dashboard/agent-capabilities";
3
3
 
4
4
  /** Models tab — the per-capability model grid (one row per modality). */
5
5
  export default function AgentModelsView({
@@ -1,7 +1,7 @@
1
1
  import { Suspense } from "react";
2
- import { dataApi, getAgent } from "#/lib/api";
3
- import { AgentProfileSkeleton } from "#/components/dashboard/skeletons";
4
- import { AgentStudio, type VaultEntry } from "#/components/dashboard/agent-studio";
2
+ import { dataApi, getAgent } from "../../../../../../lib/api";
3
+ import { AgentProfileSkeleton } from "../../../../../../components/dashboard/skeletons";
4
+ import { AgentStudio, type VaultEntry } from "../../../../../../components/dashboard/agent-studio";
5
5
 
6
6
  const API_URL = process.env.NEXT_PUBLIC_API_URL ?? "http://localhost:4000";
7
7
 
@@ -3,16 +3,16 @@
3
3
  import { useState } from "react";
4
4
  import { Eye } from "lucide-react";
5
5
  import type { AgentConfig } from "@polpo-ai/core";
6
- import { Markdown } from "#/components/dashboard/markdown";
7
- import { CopyButton } from "#/components/dashboard/copy-button";
8
- import { Hint } from "#/components/dashboard/hint";
6
+ import { Markdown } from "../../../../../../../components/dashboard/markdown";
7
+ import { CopyButton } from "../../../../../../../components/dashboard/copy-button";
8
+ import { Hint } from "../../../../../../../components/dashboard/hint";
9
9
  import {
10
10
  Dialog,
11
11
  DialogContent,
12
12
  DialogDescription,
13
13
  DialogHeader,
14
14
  DialogTitle,
15
- } from "#/components/ui/dialog";
15
+ } from "../../../../../../../components/ui/dialog";
16
16
 
17
17
  const API_URL = process.env.NEXT_PUBLIC_API_URL ?? "http://localhost:4000";
18
18
 
@@ -1,7 +1,7 @@
1
1
  import Link from "next/link";
2
2
  import type { AgentConfig } from "@polpo-ai/core";
3
3
  import { BookMarked, ExternalLink } from "lucide-react";
4
- import { SectionHeader } from "#/components/dashboard/section-header";
4
+ import { SectionHeader } from "../../../../../../../components/dashboard/section-header";
5
5
 
6
6
  export default function AgentSkillsView({
7
7
  agent,
@@ -58,13 +58,13 @@ import {
58
58
  type LucideIcon,
59
59
  } from "lucide-react";
60
60
  import type { AgentConfig } from "@polpo-ai/core";
61
- import { SectionHeader } from "#/components/dashboard/section-header";
61
+ import { SectionHeader } from "../../../../../../../components/dashboard/section-header";
62
62
  import {
63
63
  TOOL_CATALOG,
64
64
  CATALOG_TOOL_NAMES,
65
65
  isToolEnabled,
66
66
  hasGroupWildcard,
67
- } from "#/lib/tool-catalog";
67
+ } from "../../../../../../../lib/tool-catalog";
68
68
 
69
69
  const API_URL = process.env.NEXT_PUBLIC_API_URL ?? "http://localhost:4000";
70
70
 
@@ -1,4 +1,4 @@
1
- import { Hint } from "#/components/dashboard/hint";
1
+ import { Hint } from "../../../../../../../components/dashboard/hint";
2
2
 
3
3
  interface VaultEntry {
4
4
  service: string;
@@ -1,7 +1,7 @@
1
1
  import { Suspense } from "react";
2
- import { dataApi } from "#/lib/api";
2
+ import { dataApi } from "../../../../../lib/api";
3
3
  import type { AgentConfig } from "@polpo-ai/core";
4
- import { AgentsListSkeleton } from "#/components/dashboard/skeletons";
4
+ import { AgentsListSkeleton } from "../../../../../components/dashboard/skeletons";
5
5
  import AgentsView, { type Team } from "./view";
6
6
 
7
7
  async function AgentsData({ id }: { id: string }) {
@@ -7,7 +7,7 @@ import Link from "next/link";
7
7
  // SDK-bundled types — consistent with what `polpo.X()` returns.
8
8
  import type { AgentConfig } from "@polpo-ai/sdk";
9
9
  import { RefreshCw, ChevronRight, Users, User, Search, Plus, Loader2 } from "lucide-react";
10
- import { usePolpoClient } from "#/lib/polpo-client";
10
+ import { usePolpoClient } from "../../../../../lib/polpo-client";
11
11
  import {
12
12
  Dialog,
13
13
  DialogContent,
@@ -15,7 +15,7 @@ import {
15
15
  DialogHeader,
16
16
  DialogTitle,
17
17
  DialogTrigger,
18
- } from "#/components/ui/dialog";
18
+ } from "../../../../../components/ui/dialog";
19
19
 
20
20
  export interface Team {
21
21
  name: string;
@@ -1,6 +1,6 @@
1
1
  import { dehydrate, HydrationBoundary } from "@tanstack/react-query";
2
- import getQueryClient from "#/lib/get-query-client";
3
- import { dataApi } from "#/lib/api";
2
+ import getQueryClient from "../../../../../lib/get-query-client";
3
+ import { dataApi } from "../../../../../lib/api";
4
4
  import LogsView from "./view";
5
5
 
6
6
  export default async function LogsPage({
@@ -3,9 +3,9 @@
3
3
  import { useQuery } from "@tanstack/react-query";
4
4
  import { useParams } from "next/navigation";
5
5
  import { useState } from "react";
6
- import { usePolpoClient } from "#/lib/polpo-client";
7
- import { LogsViewSkeleton, LogsEntriesSkeleton } from "#/components/dashboard/skeletons";
8
- import { ManualRefreshButton } from "#/components/dashboard/manual-refresh-button";
6
+ import { usePolpoClient } from "../../../../../lib/polpo-client";
7
+ import { LogsViewSkeleton, LogsEntriesSkeleton } from "../../../../../components/dashboard/skeletons";
8
+ import { ManualRefreshButton } from "../../../../../components/dashboard/manual-refresh-button";
9
9
 
10
10
  interface SessionInfo {
11
11
  sessionId: string;
@@ -1,6 +1,6 @@
1
1
  import { Suspense } from "react";
2
- import { dataApi } from "#/lib/api";
3
- import { ProjectMemorySkeleton } from "#/components/dashboard/skeletons";
2
+ import { dataApi } from "../../../../../lib/api";
3
+ import { ProjectMemorySkeleton } from "../../../../../components/dashboard/skeletons";
4
4
  import MemoryView from "./view";
5
5
 
6
6
  async function MemoryData({ id }: { id: string }) {
@@ -1,4 +1,4 @@
1
- import { Markdown } from "#/components/dashboard/markdown";
1
+ import { Markdown } from "../../../../../components/dashboard/markdown";
2
2
 
3
3
  export default function MemoryView({ memoryContent }: { memoryContent: string }) {
4
4
  if (memoryContent) {
@@ -1,9 +1,9 @@
1
1
  import { Suspense } from "react";
2
2
  import Link from "next/link";
3
3
  import { ArrowLeft } from "lucide-react";
4
- import { dataApi } from "#/lib/api";
4
+ import { dataApi } from "../../../../../../lib/api";
5
5
  import type { Mission, Task } from "@polpo-ai/core";
6
- import { MissionGraphSkeleton, MissionHeaderSkeleton } from "#/components/dashboard/skeletons";
6
+ import { MissionGraphSkeleton, MissionHeaderSkeleton } from "../../../../../../components/dashboard/skeletons";
7
7
  import { MissionHeader, MissionTasksPanel } from "./view";
8
8
 
9
9
  async function MissionHeaderData({
@@ -12,9 +12,9 @@ import { Loader2, Play, Square, RotateCcw, GitBranch, List, Braces, Copy, Check,
12
12
  // `Task` from core because we need `missionId` to filter. `Mission` doesn't matter
13
13
  // here — both shapes are equivalent for what this file consumes.
14
14
  import type { Mission, Task } from "@polpo-ai/core";
15
- import { usePolpoClient } from "#/lib/polpo-client";
16
- import { MissionGraph } from "#/components/dashboard/mission-graph";
17
- import { ManualRefreshButton } from "#/components/dashboard/manual-refresh-button";
15
+ import { usePolpoClient } from "../../../../../../lib/polpo-client";
16
+ import { MissionGraph } from "../../../../../../components/dashboard/mission-graph";
17
+ import { ManualRefreshButton } from "../../../../../../components/dashboard/manual-refresh-button";
18
18
 
19
19
  function highlightJson(json: string): string {
20
20
  return json.replace(
@@ -1,7 +1,7 @@
1
1
  import { Suspense } from "react";
2
- import { dataApi } from "#/lib/api";
2
+ import { dataApi } from "../../../../../lib/api";
3
3
  import type { Mission } from "@polpo-ai/core";
4
- import { MissionsListSkeleton } from "#/components/dashboard/skeletons";
4
+ import { MissionsListSkeleton } from "../../../../../components/dashboard/skeletons";
5
5
  import MissionsView from "./view";
6
6
 
7
7
  async function MissionsData({ id }: { id: string }) {
@@ -10,14 +10,14 @@ import { RefreshCw, X, ListFilter, Search } from "lucide-react";
10
10
  // build ships a degraded copy (e.g. NotificationRule.condition: unknown vs
11
11
  // NotificationCondition). Track in OSS issue: SDK should re-export from core.
12
12
  import type { Mission } from "@polpo-ai/sdk";
13
- import { usePolpoClient } from "#/lib/polpo-client";
14
- import { Button } from "#/components/ui/button";
15
- import { Badge } from "#/components/ui/badge";
16
- import { Popover, PopoverContent, PopoverTrigger } from "#/components/ui/popover";
13
+ import { usePolpoClient } from "../../../../../lib/polpo-client";
14
+ import { Button } from "../../../../../components/ui/button";
15
+ import { Badge } from "../../../../../components/ui/badge";
16
+ import { Popover, PopoverContent, PopoverTrigger } from "../../../../../components/ui/popover";
17
17
  import {
18
18
  Command, CommandInput, CommandList, CommandEmpty,
19
19
  CommandGroup, CommandItem,
20
- } from "#/components/ui/command";
20
+ } from "../../../../../components/ui/command";
21
21
 
22
22
  const ALL_STATUSES = [
23
23
  "draft", "scheduled", "recurring", "active", "paused", "completed", "failed", "cancelled",
@@ -2,9 +2,9 @@
2
2
 
3
3
  import { useEffect, useState } from "react";
4
4
  import { Check, Copy, MessageSquare, BookMarked, Brain, ListChecks, Rocket } from "lucide-react";
5
- import { CopyCard } from "#/components/dashboard/copy-card";
6
- import { SdkSnippetPanel } from "#/components/dashboard/sdk-snippet-panel";
7
- import { TabToggle } from "#/components/dashboard/tab-toggle";
5
+ import { CopyCard } from "../../../../components/dashboard/copy-card";
6
+ import { SdkSnippetPanel } from "../../../../components/dashboard/sdk-snippet-panel";
7
+ import { TabToggle } from "../../../../components/dashboard/tab-toggle";
8
8
 
9
9
  export interface ChecklistStep {
10
10
  id: string;
@@ -1,8 +1,8 @@
1
1
  import { Suspense } from "react";
2
- import { api, dataApi } from "#/lib/api";
3
- import type { Project } from "#/lib/api";
2
+ import { api, dataApi } from "../../../../lib/api";
3
+ import type { Project } from "../../../../lib/api";
4
4
  import type { AgentConfig, Task, Mission } from "@polpo-ai/core";
5
- import { ProjectOverviewSkeleton } from "#/components/dashboard/skeletons";
5
+ import { ProjectOverviewSkeleton } from "../../../../components/dashboard/skeletons";
6
6
  import ProjectOverviewView from "./view";
7
7
  import WelcomeBanner from "./welcome-banner";
8
8
 
@@ -6,9 +6,9 @@ import { useParams, useRouter } from "next/navigation";
6
6
  import Link from "next/link";
7
7
  import { ArrowLeft, Play, Loader2, AlertTriangle, Workflow, Braces, Copy, Check, GitBranch, List } from "lucide-react";
8
8
  import type { Task } from "@polpo-ai/core";
9
- import { usePolpoClient } from "#/lib/polpo-client";
10
- import { MissionGraph } from "#/components/dashboard/mission-graph";
11
- import { ManualRefreshButton } from "#/components/dashboard/manual-refresh-button";
9
+ import { usePolpoClient } from "../../../../../../lib/polpo-client";
10
+ import { MissionGraph } from "../../../../../../components/dashboard/mission-graph";
11
+ import { ManualRefreshButton } from "../../../../../../components/dashboard/manual-refresh-button";
12
12
  import {
13
13
  Dialog,
14
14
  DialogContent,
@@ -17,7 +17,7 @@ import {
17
17
  DialogDescription,
18
18
  DialogFooter,
19
19
  DialogClose,
20
- } from "#/components/ui/dialog";
20
+ } from "../../../../../../components/ui/dialog";
21
21
 
22
22
  interface PlaybookParam {
23
23
  name: string;
@@ -5,7 +5,7 @@ import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query";
5
5
  import { useParams, useRouter } from "next/navigation";
6
6
  import Link from "next/link";
7
7
  import { RefreshCw, Search, Play, Loader2, Trash2, Workflow, AlertTriangle } from "lucide-react";
8
- import { usePolpoClient } from "#/lib/polpo-client";
8
+ import { usePolpoClient } from "../../../../../lib/polpo-client";
9
9
  import {
10
10
  Dialog,
11
11
  DialogContent,
@@ -14,7 +14,7 @@ import {
14
14
  DialogDescription,
15
15
  DialogFooter,
16
16
  DialogClose,
17
- } from "#/components/ui/dialog";
17
+ } from "../../../../../components/ui/dialog";
18
18
 
19
19
  interface PlaybookParam {
20
20
  name: string;
@@ -1,7 +1,7 @@
1
1
  import { Suspense } from "react";
2
- import { dataApi } from "#/lib/api";
2
+ import { dataApi } from "../../../../../lib/api";
3
3
  import type { Mission, ScheduleEntry } from "@polpo-ai/core";
4
- import { SchedulesListSkeleton } from "#/components/dashboard/skeletons";
4
+ import { SchedulesListSkeleton } from "../../../../../components/dashboard/skeletons";
5
5
  import SchedulesView from "./view";
6
6
 
7
7
  async function SchedulesData({ id }: { id: string }) {
@@ -15,14 +15,14 @@ import {
15
15
  AlertTriangle,
16
16
  } from "lucide-react";
17
17
  import type { Mission, ScheduleEntry, UpdateScheduleRequest } from "@polpo-ai/sdk";
18
- import { usePolpoClient } from "#/lib/polpo-client";
18
+ import { usePolpoClient } from "../../../../../lib/polpo-client";
19
19
  import {
20
20
  Dialog,
21
21
  DialogContent,
22
22
  DialogHeader,
23
23
  DialogTitle,
24
24
  DialogDescription,
25
- } from "#/components/ui/dialog";
25
+ } from "../../../../../components/ui/dialog";
26
26
 
27
27
  /**
28
28
  * Schedules — client + pure-dogfood list of the project's active schedules.
@@ -1,6 +1,6 @@
1
1
  import { Suspense } from "react";
2
- import { dataApi } from "#/lib/api";
3
- import { SessionDetailSkeleton } from "#/components/dashboard/skeletons";
2
+ import { dataApi } from "../../../../../../lib/api";
3
+ import { SessionDetailSkeleton } from "../../../../../../components/dashboard/skeletons";
4
4
  import SessionDetailView, {
5
5
  type Attachment,
6
6
  type Message,
@@ -1,6 +1,6 @@
1
1
  import Link from "next/link";
2
2
  import { ArrowLeft, ExternalLink } from "lucide-react";
3
- import { ManualRefreshButton } from "#/components/dashboard/manual-refresh-button";
3
+ import { ManualRefreshButton } from "../../../../../../components/dashboard/manual-refresh-button";
4
4
  import RawView from "./raw-view";
5
5
 
6
6
  export interface Attachment {
@@ -1,6 +1,6 @@
1
1
  import { Suspense } from "react";
2
- import { dataApi } from "#/lib/api";
3
- import { SessionsListSkeleton } from "#/components/dashboard/skeletons";
2
+ import { dataApi } from "../../../../../lib/api";
3
+ import { SessionsListSkeleton } from "../../../../../components/dashboard/skeletons";
4
4
  import SessionsView, { type Session } from "./view";
5
5
 
6
6
  async function SessionsData({ id }: { id: string }) {
@@ -5,11 +5,11 @@ import { useQuery } from "@tanstack/react-query";
5
5
  import { useParams } from "next/navigation";
6
6
  import Link from "next/link";
7
7
  import { ChevronRight, RefreshCw, Search, ListFilter, X } from "lucide-react";
8
- import { usePolpoClient } from "#/lib/polpo-client";
9
- import { Button } from "#/components/ui/button";
10
- import { Badge } from "#/components/ui/badge";
11
- import { Popover, PopoverContent, PopoverTrigger } from "#/components/ui/popover";
12
- import { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from "#/components/ui/command";
8
+ import { usePolpoClient } from "../../../../../lib/polpo-client";
9
+ import { Button } from "../../../../../components/ui/button";
10
+ import { Badge } from "../../../../../components/ui/badge";
11
+ import { Popover, PopoverContent, PopoverTrigger } from "../../../../../components/ui/popover";
12
+ import { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from "../../../../../components/ui/command";
13
13
 
14
14
  export interface Session {
15
15
  id: string;
@@ -1,7 +1,7 @@
1
- import { api } from "#/lib/api";
2
- import type { Project } from "#/lib/api";
3
- import { SettingsForm } from "#/components/dashboard/settings-form";
4
- import type { AutumnStatusResponse } from "#/components/dashboard/settings-form";
1
+ import { api } from "../../../../../lib/api";
2
+ import type { Project } from "../../../../../lib/api";
3
+ import { SettingsForm } from "../../../../../components/dashboard/settings-form";
4
+ import type { AutumnStatusResponse } from "../../../../../components/dashboard/settings-form";
5
5
 
6
6
  /**
7
7
  * Tenant data-plane URL. Mirrors the helper in connect-dialog.tsx so what
@@ -1,6 +1,6 @@
1
1
  import { Suspense } from "react";
2
- import { dataApi } from "#/lib/api";
3
- import { SkillDetailSkeleton } from "#/components/dashboard/skeletons";
2
+ import { dataApi } from "../../../../../../lib/api";
3
+ import { SkillDetailSkeleton } from "../../../../../../components/dashboard/skeletons";
4
4
  import SkillDetailView, { type LoadedSkill, type FileEntry } from "./view";
5
5
 
6
6
  /** Slim shape for the list-entry merge. Keep in sync with `SkillsListEntry`
@@ -5,10 +5,10 @@ import { useQuery } from "@tanstack/react-query";
5
5
  import { useParams } from "next/navigation";
6
6
  import Link from "next/link";
7
7
  import { ArrowLeft, Users, Tag } from "lucide-react";
8
- import { usePolpoClient } from "#/lib/polpo-client";
9
- import { Markdown } from "#/components/dashboard/markdown";
10
- import { ManualRefreshButton } from "#/components/dashboard/manual-refresh-button";
11
- import { FileBrowser } from "#/components/dashboard/file-browser";
8
+ import { usePolpoClient } from "../../../../../../lib/polpo-client";
9
+ import { Markdown } from "../../../../../../components/dashboard/markdown";
10
+ import { ManualRefreshButton } from "../../../../../../components/dashboard/manual-refresh-button";
11
+ import { FileBrowser } from "../../../../../../components/dashboard/file-browser";
12
12
 
13
13
  export interface LoadedSkill {
14
14
  name: string;
@@ -1,6 +1,6 @@
1
1
  import { Suspense } from "react";
2
- import { dataApi } from "#/lib/api";
3
- import { SkillsListSkeleton } from "#/components/dashboard/skeletons";
2
+ import { dataApi } from "../../../../../lib/api";
3
+ import { SkillsListSkeleton } from "../../../../../components/dashboard/skeletons";
4
4
  import SkillsView, { type SkillInfo } from "./view";
5
5
 
6
6
  async function SkillsData({ id }: { id: string }) {
@@ -12,9 +12,9 @@ import {
12
12
  Terminal,
13
13
  Download,
14
14
  } from "lucide-react";
15
- import { usePolpoClient } from "#/lib/polpo-client";
16
- import { SkillsInstallWizard } from "#/components/dashboard/skills-install-wizard";
17
- import { CommandSnippet } from "#/components/dashboard/command-snippet";
15
+ import { usePolpoClient } from "../../../../../lib/polpo-client";
16
+ import { SkillsInstallWizard } from "../../../../../components/dashboard/skills-install-wizard";
17
+ import { CommandSnippet } from "../../../../../components/dashboard/command-snippet";
18
18
  import {
19
19
  Dialog,
20
20
  DialogContent,
@@ -22,7 +22,7 @@ import {
22
22
  DialogHeader,
23
23
  DialogTitle,
24
24
  DialogTrigger,
25
- } from "#/components/ui/dialog";
25
+ } from "../../../../../components/ui/dialog";
26
26
 
27
27
  export interface SkillInfo {
28
28
  name: string;
@@ -3,7 +3,7 @@
3
3
  import { useState, useCallback, useEffect, useRef } from "react";
4
4
  import { useQuery, useQueryClient } from "@tanstack/react-query";
5
5
  import { useParams } from "next/navigation";
6
- import { usePolpoClient } from "#/lib/polpo-client";
6
+ import { usePolpoClient } from "../../../../../lib/polpo-client";
7
7
  import {
8
8
  Folder, FileText, File, Image, Music, Video, Archive,
9
9
  ChevronRight, ChevronLeft, Download, Search,
@@ -3,8 +3,8 @@
3
3
  import { useState } from "react";
4
4
  import { useQuery } from "@tanstack/react-query";
5
5
  import type { Task } from "@polpo-ai/core";
6
- import { usePolpoClient } from "#/lib/polpo-client";
7
- import { ManualRefreshButton } from "#/components/dashboard/manual-refresh-button";
6
+ import { usePolpoClient } from "../../../../../../../lib/polpo-client";
7
+ import { ManualRefreshButton } from "../../../../../../../components/dashboard/manual-refresh-button";
8
8
  import type { BlueprintContext } from "../blueprint";
9
9
 
10
10
  export interface LogEntry {
@@ -1,5 +1,5 @@
1
1
  import type { Task } from "@polpo-ai/core";
2
- import { ManualRefreshButton } from "#/components/dashboard/manual-refresh-button";
2
+ import { ManualRefreshButton } from "../../../../../../../components/dashboard/manual-refresh-button";
3
3
  import type { BlueprintContext } from "../blueprint";
4
4
 
5
5
  export default function TaskAssessmentView({
@@ -1,4 +1,4 @@
1
- import { dataApi } from "#/lib/api";
1
+ import { dataApi } from "../../../../../../lib/api";
2
2
  import type { Mission, Task } from "@polpo-ai/core";
3
3
 
4
4
  export interface BlueprintContext {
@@ -1,6 +1,6 @@
1
1
  import type { Task } from "@polpo-ai/core";
2
- import { Markdown } from "#/components/dashboard/markdown";
3
- import { ManualRefreshButton } from "#/components/dashboard/manual-refresh-button";
2
+ import { Markdown } from "../../../../../../../components/dashboard/markdown";
3
+ import { ManualRefreshButton } from "../../../../../../../components/dashboard/manual-refresh-button";
4
4
  import type { BlueprintContext } from "../blueprint";
5
5
 
6
6
  function formatDuration(ms: number) {
@@ -1,10 +1,10 @@
1
1
  import { Suspense } from "react";
2
- import { dataApi } from "#/lib/api";
2
+ import { dataApi } from "../../../../../../lib/api";
3
3
  import type { Task } from "@polpo-ai/core";
4
- import { TaskDetailSkeleton } from "#/components/dashboard/skeletons";
4
+ import { TaskDetailSkeleton } from "../../../../../../components/dashboard/skeletons";
5
5
  import { resolveBlueprint, type BlueprintContext } from "./blueprint";
6
6
  import type { TaskActivityPayload } from "./activity/view";
7
- import { TaskStudio, type TaskStudioInitialData } from "#/components/dashboard/task-studio";
7
+ import { TaskStudio, type TaskStudioInitialData } from "../../../../../../components/dashboard/task-studio";
8
8
 
9
9
  /**
10
10
  * Task detail = the Task Studio (fast client surface, like the Agent
@@ -1,5 +1,5 @@
1
1
  import type { Task } from "@polpo-ai/core";
2
- import { ManualRefreshButton } from "#/components/dashboard/manual-refresh-button";
2
+ import { ManualRefreshButton } from "../../../../../../components/dashboard/manual-refresh-button";
3
3
  import type { BlueprintContext } from "./blueprint";
4
4
 
5
5
  const statusColor: Record<string, string> = {
@@ -1,7 +1,7 @@
1
1
  import { Suspense } from "react";
2
- import { dataApi } from "#/lib/api";
2
+ import { dataApi } from "../../../../../lib/api";
3
3
  import type { Task, Mission } from "@polpo-ai/core";
4
- import { TasksListSkeleton } from "#/components/dashboard/skeletons";
4
+ import { TasksListSkeleton } from "../../../../../components/dashboard/skeletons";
5
5
  import TasksView from "./view";
6
6
 
7
7
  async function TasksData({ id }: { id: string }) {
@@ -9,14 +9,14 @@ import { ChevronRight, RefreshCw, X, ListFilter, Search } from "lucide-react";
9
9
  // Mission from SDK is fine. Track in OSS issue: SDK types should re-export from core.
10
10
  import type { Task } from "@polpo-ai/core";
11
11
  import type { Mission } from "@polpo-ai/sdk";
12
- import { usePolpoClient } from "#/lib/polpo-client";
13
- import { Button } from "#/components/ui/button";
14
- import { Badge } from "#/components/ui/badge";
15
- import { Popover, PopoverContent, PopoverTrigger } from "#/components/ui/popover";
12
+ import { usePolpoClient } from "../../../../../lib/polpo-client";
13
+ import { Button } from "../../../../../components/ui/button";
14
+ import { Badge } from "../../../../../components/ui/badge";
15
+ import { Popover, PopoverContent, PopoverTrigger } from "../../../../../components/ui/popover";
16
16
  import {
17
17
  Command, CommandInput, CommandList, CommandEmpty,
18
18
  CommandGroup, CommandItem,
19
- } from "#/components/ui/command";
19
+ } from "../../../../../components/ui/command";
20
20
 
21
21
  const ALL_STATUSES = [
22
22
  "draft", "pending", "awaiting_approval", "assigned",
@@ -6,8 +6,8 @@ import { useParams } from "next/navigation";
6
6
  import Link from "next/link";
7
7
  import type { AgentConfig, Task, Mission } from "@polpo-ai/core";
8
8
  import { Users, ListChecks, Target, MessageSquare } from "lucide-react";
9
- import { usePolpoClient } from "#/lib/polpo-client";
10
- import { ManualRefreshButton } from "#/components/dashboard/manual-refresh-button";
9
+ import { usePolpoClient } from "../../../../lib/polpo-client";
10
+ import { ManualRefreshButton } from "../../../../components/dashboard/manual-refresh-button";
11
11
  import OnboardingChecklist, { deriveChecklistSteps, hasDeployedCheck } from "./onboarding-checklist";
12
12
  import {
13
13
  SwarmStatusBar,
@@ -15,7 +15,7 @@ import {
15
15
  type RunRow,
16
16
  type RunStatus,
17
17
  type RunCounts,
18
- } from "#/components/dashboard/swarm-runs";
18
+ } from "../../../../components/dashboard/swarm-runs";
19
19
 
20
20
  interface SessionInfo {
21
21
  id: string;
@@ -66,7 +66,7 @@ export default function ProjectOverviewView({
66
66
  initialMissions: Mission[];
67
67
  projectName: string;
68
68
  projectSlug?: string;
69
- initialChecklist?: import("#/lib/api").OnboardingChecklist;
69
+ initialChecklist?: import("../../../../lib/api").OnboardingChecklist;
70
70
  welcomeBanner?: React.ReactNode;
71
71
  }) {
72
72
  const { id } = useParams<{ id: string }>();
@@ -14,8 +14,8 @@
14
14
  import { useEffect, useState } from "react";
15
15
  import { useRouter } from "next/navigation";
16
16
  import { X } from "lucide-react";
17
- import { CopyCard } from "#/components/dashboard/copy-card";
18
- import { ClientPicker, buildInstallCommand } from "#/components/dashboard/client-picker";
17
+ import { CopyCard } from "../../../../components/dashboard/copy-card";
18
+ import { ClientPicker, buildInstallCommand } from "../../../../components/dashboard/client-picker";
19
19
 
20
20
  interface Props {
21
21
  projectId: string;