@yuangc/paseo-plugin-workspace-overview 0.0.0-stage → 1.0.0
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.
- package/client/agent-preview/PreviewActions.tsx +56 -0
- package/client/agent-preview/useAutoCommit.ts +91 -0
- package/client/components/AgentCommandMenu.tsx +51 -0
- package/client/components/AgentConversationPreview.tsx +620 -0
- package/client/components/AgentConversationTimeline.tsx +177 -0
- package/client/components/AgentCreatorPanel.tsx +152 -0
- package/client/components/AgentQuestionCard.tsx +244 -0
- package/client/components/AgentRow.tsx +108 -0
- package/client/components/BadgeWithTooltip.tsx +119 -0
- package/client/components/BranchRow.tsx +121 -0
- package/client/components/ControlGlyph.tsx +18 -0
- package/client/components/HeatmapCalendar.tsx +165 -0
- package/client/components/ModelBrowserMenu.tsx +135 -0
- package/client/components/PaseoAssistantMessage.tsx +216 -0
- package/client/components/PaseoShellDetail.tsx +128 -0
- package/client/components/PaseoStreamBadge.tsx +94 -0
- package/client/components/PaseoTimelineItem.tsx +147 -0
- package/client/components/PaseoToolCallGroup.tsx +52 -0
- package/client/components/PaseoToolDetail.tsx +55 -0
- package/client/components/ProjectCard.tsx +196 -0
- package/client/components/ProjectIcon.tsx +49 -0
- package/client/components/ProviderBrandIcon.tsx +52 -0
- package/client/components/ResizeHandle.tsx +91 -0
- package/client/components/SharedComposerInput.tsx +383 -0
- package/client/components/Tooltip.tsx +49 -0
- package/client/components/WorkspaceAgentRow.tsx +93 -0
- package/client/components/WorkspaceBadge.tsx +39 -0
- package/client/components/WorkspaceCreateComposer.tsx +170 -0
- package/client/components/WorkspaceCreatorPanel.tsx +256 -0
- package/client/components/WorkspaceLaunchMenu.tsx +76 -0
- package/client/components/WorkspaceMenu.tsx +116 -0
- package/client/components/WorkspaceSelectControl.tsx +52 -0
- package/client/components/agent-conversation-types.ts +7 -0
- package/client/components/workspace-creator-styles.ts +322 -0
- package/client/hooks/useAgentActivityHeatmap.ts +178 -0
- package/client/hooks/useFilter.ts +107 -0
- package/client/hooks/useKeyboardInset.ts +37 -0
- package/client/hooks/useResizableWidth.ts +70 -0
- package/client/hooks/useWorkspaces.ts +128 -0
- package/client/overview/useProjectOptions.ts +73 -0
- package/client/web.ts +160 -0
- package/client/workspace-agents.tsx +71 -0
- package/client/workspace-creator/badge-styles.ts +13 -0
- package/client/workspace-creator/constants.ts +14 -0
- package/client/workspace-creator/control-styles.ts +12 -0
- package/client/workspace-creator/provider-selection.ts +51 -0
- package/client/workspace-creator/submit-workspace.ts +67 -0
- package/client/workspace-creator/types.ts +40 -0
- package/client/workspace-creator/ui-utils.ts +15 -0
- package/client/workspace-creator/useProviderCatalog.ts +89 -0
- package/client/workspace-overview.tsx +533 -0
- package/index.client.tsx +36 -0
- package/index.server.ts +33 -0
- package/package.json +28 -4
- package/paseo-plugin.json +4 -0
- package/server/agent-config-impl.ts +57 -0
- package/server/auto-commit-impl.ts +221 -0
- package/server/git-branches-impl.ts +81 -0
- package/server/project-icon-impl.ts +102 -0
- package/server/terminal-launch-impl.ts +56 -0
- package/shared/agent-activity.ts +16 -0
- package/shared/agent-config.ts +30 -0
- package/shared/auto-commit.ts +38 -0
- package/shared/git-branches.ts +18 -0
- package/shared/overview-types.ts +87 -0
- package/shared/project-icon.ts +13 -0
- package/shared/terminal-launch.ts +20 -0
- package/README.md +0 -3
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { defineRpc } from "@getpaseo/plugin";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
|
|
4
|
+
export const gitBranchesRpc = defineRpc({
|
|
5
|
+
name: "git_branches_list",
|
|
6
|
+
input: z.object({ projectDirectory: z.string().min(1) }),
|
|
7
|
+
output: z.object({
|
|
8
|
+
currentBranch: z.string().nullable(),
|
|
9
|
+
defaultBranch: z.string().nullable(),
|
|
10
|
+
branches: z.array(
|
|
11
|
+
z.object({
|
|
12
|
+
id: z.string(),
|
|
13
|
+
label: z.string(),
|
|
14
|
+
detail: z.string(),
|
|
15
|
+
}),
|
|
16
|
+
),
|
|
17
|
+
}),
|
|
18
|
+
});
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { PluginTheme } from "@getpaseo/plugin";
|
|
2
|
+
|
|
3
|
+
export type WorkspaceStatus =
|
|
4
|
+
| "needs_input"
|
|
5
|
+
| "failed"
|
|
6
|
+
| "running"
|
|
7
|
+
| "attention"
|
|
8
|
+
| "done"
|
|
9
|
+
| string;
|
|
10
|
+
|
|
11
|
+
export interface WorkspaceEntry {
|
|
12
|
+
id: string;
|
|
13
|
+
projectId: string;
|
|
14
|
+
projectDisplayName: string;
|
|
15
|
+
name: string;
|
|
16
|
+
status: WorkspaceStatus;
|
|
17
|
+
statusEnteredAt?: string | null;
|
|
18
|
+
activityAt?: string | null;
|
|
19
|
+
workspaceKind: "directory" | "local_checkout" | "checkout" | "worktree";
|
|
20
|
+
workspaceDirectory: string;
|
|
21
|
+
gitRuntime?: { currentBranch?: string | null } | null;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface AgentEntry {
|
|
25
|
+
id: string;
|
|
26
|
+
workspaceId?: string;
|
|
27
|
+
title: string | null;
|
|
28
|
+
provider: string;
|
|
29
|
+
model: string | null;
|
|
30
|
+
thinkingOptionId?: string | null;
|
|
31
|
+
effectiveThinkingOptionId?: string | null;
|
|
32
|
+
currentModeId?: string | null;
|
|
33
|
+
status: "initializing" | "idle" | "running" | "error" | "closed" | string;
|
|
34
|
+
cwd?: string;
|
|
35
|
+
updatedAt?: string;
|
|
36
|
+
lastUserMessageAt?: string | null;
|
|
37
|
+
requiresAttention?: boolean;
|
|
38
|
+
attentionReason?: "finished" | "error" | "permission" | null;
|
|
39
|
+
archivedAt?: string | null;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export const KIND_LABEL: Record<WorkspaceEntry["workspaceKind"], string> = {
|
|
43
|
+
worktree: "Worktree",
|
|
44
|
+
checkout: "Checkout",
|
|
45
|
+
local_checkout: "Local",
|
|
46
|
+
directory: "Dir",
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export interface TooltipLine {
|
|
50
|
+
key: string;
|
|
51
|
+
value: string;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export interface TooltipState {
|
|
55
|
+
/** Window coordinates of the badge's right edge. */
|
|
56
|
+
x: number;
|
|
57
|
+
/** Window Y of the badge's bottom edge. */
|
|
58
|
+
y: number;
|
|
59
|
+
lines: TooltipLine[];
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export interface TooltipContextValue {
|
|
63
|
+
show: (state: TooltipState) => void;
|
|
64
|
+
hide: () => void;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export interface ProjectCardProps {
|
|
68
|
+
projectId: string;
|
|
69
|
+
projectDisplayName: string;
|
|
70
|
+
workspaces: WorkspaceEntry[];
|
|
71
|
+
agentsByWorkspace: Map<string, AgentEntry[]>;
|
|
72
|
+
/** Branch-level expand state. undefined means "user hasn't toggled; use auto rule". */
|
|
73
|
+
expanded: Record<string, boolean>;
|
|
74
|
+
/** Card-level expand state. Same undefined semantics as expanded. */
|
|
75
|
+
cardExpanded: Record<string, boolean>;
|
|
76
|
+
onToggleCard: (projectId: string, currentEffective: boolean) => void;
|
|
77
|
+
onToggleBranch: (workspaceId: string, currentEffective: boolean) => void;
|
|
78
|
+
onOpenDirectory: (directory: string) => void;
|
|
79
|
+
theme: PluginTheme;
|
|
80
|
+
compact: boolean;
|
|
81
|
+
width: number | "100%";
|
|
82
|
+
hostLabel: string;
|
|
83
|
+
hostId: string;
|
|
84
|
+
onSelectAgent: (agent: AgentEntry) => void;
|
|
85
|
+
onCreateAgent: (workspace: WorkspaceEntry) => void;
|
|
86
|
+
onCreateWorktree?: () => void;
|
|
87
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { defineRpc } from "@getpaseo/plugin";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
|
|
4
|
+
export const projectIconRpc = defineRpc({
|
|
5
|
+
name: "project_icon_data_uri",
|
|
6
|
+
input: z.object({
|
|
7
|
+
projectId: z.string().min(1),
|
|
8
|
+
projectDirectory: z.string().min(1),
|
|
9
|
+
}),
|
|
10
|
+
output: z.object({
|
|
11
|
+
dataUri: z.string().nullable(),
|
|
12
|
+
}),
|
|
13
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { defineRpc } from "@getpaseo/plugin";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
|
|
4
|
+
export const terminalLaunchRpc = defineRpc({
|
|
5
|
+
name: "workspace_terminal_launch",
|
|
6
|
+
input: z.object({
|
|
7
|
+
workspaceDirectory: z.string().min(1),
|
|
8
|
+
workspaceId: z.string().min(1),
|
|
9
|
+
serverId: z.string().min(1),
|
|
10
|
+
prompt: z.string(),
|
|
11
|
+
profile: z
|
|
12
|
+
.object({
|
|
13
|
+
name: z.string(),
|
|
14
|
+
command: z.string(),
|
|
15
|
+
args: z.array(z.string()),
|
|
16
|
+
})
|
|
17
|
+
.nullable(),
|
|
18
|
+
}),
|
|
19
|
+
output: z.object({ terminalId: z.string() }),
|
|
20
|
+
});
|
package/README.md
DELETED