| import type { PluginLauncherRegistration } from "@paperclipai/plugin-sdk"; |
|
|
| export const PLUGIN_ID = "paperclip-kitchen-sink-example"; |
| export const PLUGIN_VERSION = "0.1.0"; |
| export const PAGE_ROUTE = "kitchensink"; |
|
|
| export const SLOT_IDS = { |
| page: "kitchen-sink-page", |
| settingsPage: "kitchen-sink-settings-page", |
| dashboardWidget: "kitchen-sink-dashboard-widget", |
| sidebar: "kitchen-sink-sidebar-link", |
| sidebarPanel: "kitchen-sink-sidebar-panel", |
| projectSidebarItem: "kitchen-sink-project-link", |
| projectTab: "kitchen-sink-project-tab", |
| issueTab: "kitchen-sink-issue-tab", |
| taskDetailView: "kitchen-sink-task-detail", |
| toolbarButton: "kitchen-sink-toolbar-action", |
| contextMenuItem: "kitchen-sink-context-action", |
| commentAnnotation: "kitchen-sink-comment-annotation", |
| commentContextMenuItem: "kitchen-sink-comment-action", |
| } as const; |
|
|
| export const EXPORT_NAMES = { |
| page: "KitchenSinkPage", |
| settingsPage: "KitchenSinkSettingsPage", |
| dashboardWidget: "KitchenSinkDashboardWidget", |
| sidebar: "KitchenSinkSidebarLink", |
| sidebarPanel: "KitchenSinkSidebarPanel", |
| projectSidebarItem: "KitchenSinkProjectSidebarItem", |
| projectTab: "KitchenSinkProjectTab", |
| issueTab: "KitchenSinkIssueTab", |
| taskDetailView: "KitchenSinkTaskDetailView", |
| toolbarButton: "KitchenSinkToolbarButton", |
| contextMenuItem: "KitchenSinkContextMenuItem", |
| commentAnnotation: "KitchenSinkCommentAnnotation", |
| commentContextMenuItem: "KitchenSinkCommentContextMenuItem", |
| launcherModal: "KitchenSinkLauncherModal", |
| } as const; |
|
|
| export const JOB_KEYS = { |
| heartbeat: "demo-heartbeat", |
| } as const; |
|
|
| export const WEBHOOK_KEYS = { |
| demo: "demo-ingest", |
| } as const; |
|
|
| export const TOOL_NAMES = { |
| echo: "echo", |
| companySummary: "company-summary", |
| createIssue: "create-issue", |
| } as const; |
|
|
| export const STREAM_CHANNELS = { |
| progress: "progress", |
| agentChat: "agent-chat", |
| } as const; |
|
|
| export const SAFE_COMMANDS = [ |
| { |
| key: "pwd", |
| label: "Print workspace path", |
| command: "pwd", |
| args: [] as string[], |
| description: "Prints the current workspace directory.", |
| }, |
| { |
| key: "ls", |
| label: "List workspace files", |
| command: "ls", |
| args: ["-la"] as string[], |
| description: "Lists files in the selected workspace.", |
| }, |
| { |
| key: "git-status", |
| label: "Git status", |
| command: "git", |
| args: ["status", "--short", "--branch"] as string[], |
| description: "Shows git status for the selected workspace.", |
| }, |
| ] as const; |
|
|
| export type SafeCommandKey = (typeof SAFE_COMMANDS)[number]["key"]; |
|
|
| export const DEFAULT_CONFIG = { |
| showSidebarEntry: true, |
| showSidebarPanel: true, |
| showProjectSidebarItem: true, |
| showCommentAnnotation: true, |
| showCommentContextMenuItem: true, |
| enableWorkspaceDemos: true, |
| enableProcessDemos: false, |
| secretRefExample: "", |
| httpDemoUrl: "https://httpbin.org/anything", |
| allowedCommands: SAFE_COMMANDS.map((command) => command.key), |
| workspaceScratchFile: ".paperclip-kitchen-sink-demo.txt", |
| } as const; |
|
|
| export const RUNTIME_LAUNCHER: PluginLauncherRegistration = { |
| id: "kitchen-sink-runtime-launcher", |
| displayName: "Kitchen Sink Modal", |
| description: "Demonstrates runtime launcher registration from the worker.", |
| placementZone: "toolbarButton", |
| entityTypes: ["project", "issue"], |
| action: { |
| type: "openModal", |
| target: EXPORT_NAMES.launcherModal, |
| }, |
| render: { |
| environment: "hostOverlay", |
| bounds: "wide", |
| }, |
| }; |
|
|