Remove direct dashboard package dependencies from bundled plugins while preserving typed dashboard interop. - add a workspace acyclic dependency regression test for all packages and dashboard-bundled plugins - expose dashboard app aliases in dashboard TS/Vite/Vitest configs for plugin interop imports - replace bundled plugin @fusion/dashboard dependencies with local dashboard interop declarations and updated tsconfig path mappings Files changed: .../workspace-dependency-acyclicity.test.ts | 174 +++++++++++++++++++++ packages/dashboard/tsconfig.app.json | 6 +- packages/dashboard/tsconfig.test-check.json | 6 +- packages/dashboard/vite.config.ts | 4 + packages/dashboard/vitest.config.ts | 4 + .../fusion-plugin-cli-printing-press/package.json | 1 - .../src/dashboard-interop.d.ts | 19 +++ .../fusion-plugin-cli-printing-press/tsconfig.json | 7 +- .../fusion-plugin-dependency-graph/package.json | 1 - .../src/dashboard-interop.d.ts | 6 + .../fusion-plugin-dependency-graph/tsconfig.json | 3 +- plugins/fusion-plugin-roadmap/package.json | 1 - .../src/dashboard-interop.d.ts | 19 +++ plugins/fusion-plugin-roadmap/tsconfig.json | 7 +- pnpm-lock.yaml | 9 -- 15 files changed, 248 insertions(+), 19 deletions(-) Fusion-Task-Id: FN-5926 Fusion-Task-Lineage: 1b39c08a-1415-407d-90cc-b3de89af0316
20 lines
768 B
TypeScript
20 lines
768 B
TypeScript
declare module "@fusion/dashboard/app/plugins/types" {
|
|
import type { ReactNode } from "react";
|
|
import type { Task, TaskDetail, WorkflowStep } from "@fusion/core";
|
|
|
|
export type DetailTaskTab = "definition" | "logs" | "changes" | "comments" | "model" | "workflow" | "pr" | "retries";
|
|
|
|
export type PluginToastType = "success" | "error" | "warning" | "info";
|
|
|
|
export interface PluginDashboardViewContext {
|
|
projectId?: string;
|
|
tasks: Task[];
|
|
workflowSteps: WorkflowStep[];
|
|
openTaskDetail: (task: Task | TaskDetail, initialTab?: DetailTaskTab) => void;
|
|
renderTaskCard?: (task: Task | TaskDetail) => ReactNode;
|
|
addToast?: (message: string, type?: PluginToastType) => void;
|
|
}
|
|
|
|
export type PluginTaskView = `plugin:${string}:${string}`;
|
|
}
|