Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commite0e8bfd

Browse files
committed
ui-3
1 parentd5dcd5e commite0e8bfd

File tree

4 files changed

+43
-33
lines changed

4 files changed

+43
-33
lines changed

‎site/src/modules/resources/AgentDevcontainerCard.stories.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ const meta: Meta<typeof AgentDevcontainerCard> = {
3030
devcontainer:MockWorkspaceAgentDevcontainer,
3131
workspace:MockWorkspace,
3232
wildcardHostname:"*.wildcard.hostname",
33-
agent:MockWorkspaceAgent,
33+
parentAgent:MockWorkspaceAgent,
3434
},
3535
};
3636

‎site/src/modules/resources/AgentDevcontainerCard.tsx

Lines changed: 35 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -32,26 +32,29 @@ import { TerminalLink } from "./TerminalLink/TerminalLink";
3232
import{VSCodeDevContainerButton}from"./VSCodeDevContainerButton/VSCodeDevContainerButton";
3333

3434
typeAgentDevcontainerCardProps={
35-
agent:WorkspaceAgent;
35+
parentAgent:WorkspaceAgent;
36+
subAgents:WorkspaceAgent[];
3637
devcontainer:WorkspaceAgentDevcontainer;
3738
workspace:Workspace;
3839
wildcardHostname:string;
3940
};
4041

4142
exportconstAgentDevcontainerCard:FC<AgentDevcontainerCardProps>=({
42-
agent,
43+
parentAgent,
44+
subAgents,
4345
devcontainer,
4446
workspace,
4547
wildcardHostname,
4648
})=>{
4749
const[isRecreating,setIsRecreating]=useState(false);
50+
const[subAgent,setSubAgent]=useState<WorkspaceAgent|null>(null);
4851

4952
consthandleRecreateDevcontainer=async()=>{
5053
setIsRecreating(true);
5154
letrecreateSucceeded=false;
5255
try{
5356
constresponse=awaitfetch(
54-
`/api/v2/workspaceagents/${agent.id}/containers/devcontainers/container/${devcontainer.container?.id}/recreate`,
57+
`/api/v2/workspaceagents/${parentAgent.id}/containers/devcontainers/container/${devcontainer.container?.id}/recreate`,
5558
{
5659
method:"POST",
5760
},
@@ -87,7 +90,17 @@ export const AgentDevcontainerCard: FC<AgentDevcontainerCardProps> = ({
8790
}else{
8891
setIsRecreating(false);
8992
}
90-
},[devcontainer.status]);
93+
},[devcontainer.id,devcontainer.status]);
94+
95+
constshouldDisplayAgentApps=
96+
subAgent?.status==="connected"||subAgent?.status==="connecting";
97+
98+
// Woot! We have a sub agent, so we can display the forwarded ports.
99+
useEffect(()=>{
100+
setSubAgent(
101+
subAgents.find((sub)=>sub.id===devcontainer.agent?.id)||null,
102+
);
103+
},[subAgents,devcontainer.agent?.id]);
91104

92105
return(
93106
<section
@@ -135,46 +148,37 @@ export const AgentDevcontainerCard: FC<AgentDevcontainerCardProps> = ({
135148
Recreate
136149
</Button>
137150

138-
{/* <AgentDevcontainerSSHButton
139-
workspace={workspace.name}
140-
container={devcontainer.container?.name || devcontainer.name}
141-
/> */}
142-
{/* TODO(mafredri): Sub agent display apps. */}
143-
{devcontainer.agent&&agent.display_apps.includes("ssh_helper")&&(
151+
{subAgent&&subAgent.display_apps.includes("ssh_helper")&&(
144152
<AgentSSHButton
145153
workspaceName={workspace.name}
146-
agentName={devcontainer.agent.name||devcontainer.name}
154+
agentName={subAgent.name}
147155
workspaceOwnerUsername={workspace.owner_name}
148156
/>
149157
)}
150158
</div>
151159
</header>
152160

153-
{devcontainer.agent&&(
161+
{subAgent&&devcontainer.container&&(
154162
<>
155163
<h4className="m-0 text-xl font-semibold mb-2">Forwarded ports</h4>
156164
<divclassName="flex gap-4 flex-wrap mt-4">
157-
{devcontainer.container&&(
158-
<VSCodeDevContainerButton
159-
userName={workspace.owner_name}
160-
workspaceName={workspace.name}
161-
devContainerName={devcontainer.container.name}
162-
devContainerFolder={devcontainer.agent.directory}
163-
displayApps={agent.display_apps}// TODO(mafredri): Sub agent display apps.
164-
agentName={agent.name}// This must be set to the parent agent.
165-
/>
166-
)}
165+
<VSCodeDevContainerButton
166+
userName={workspace.owner_name}
167+
workspaceName={workspace.name}
168+
devContainerName={devcontainer.container.name}
169+
devContainerFolder={subAgent.directory??""}// This will always be set.
170+
displayApps={subAgent.display_apps}
171+
agentName={parentAgent.name}
172+
/>
167173

168-
{devcontainer.agent&&(
169-
<TerminalLink
170-
workspaceName={workspace.name}
171-
agentName={devcontainer.agent.name}
172-
userName={workspace.owner_name}
173-
/>
174-
)}
174+
<TerminalLink
175+
workspaceName={workspace.name}
176+
agentName={subAgent.name}
177+
userName={workspace.owner_name}
178+
/>
175179

176180
{wildcardHostname!==""&&
177-
devcontainer.container?.ports.map((port)=>{
181+
devcontainer.container.ports.map((port)=>{
178182
constportLabel=`${port.port}/${port.network.toUpperCase()}`;
179183
consthasHostBind=
180184
port.host_port!==undefined&&port.host_ip!==undefined;
@@ -185,7 +189,7 @@ export const AgentDevcontainerCard: FC<AgentDevcontainerCardProps> = ({
185189
?portForwardURL(
186190
wildcardHostname,
187191
port.host_port,
188-
devcontainer.agent?.name||agent.name,
192+
subAgent.name,
189193
workspace.name,
190194
workspace.owner_name,
191195
location.protocol==="https" ?"https" :"http",

‎site/src/modules/resources/AgentRow.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ import { useAgentLogs } from "./useAgentLogs";
5454

5555
interfaceAgentRowProps{
5656
agent:WorkspaceAgent;
57+
subAgents?:WorkspaceAgent[];
5758
workspace:Workspace;
5859
template:Template;
5960
initialMetadata?:WorkspaceAgentMetadata[];
@@ -62,6 +63,7 @@ interface AgentRowProps {
6263

6364
exportconstAgentRow:FC<AgentRowProps>=({
6465
agent,
66+
subAgents,
6567
workspace,
6668
template,
6769
onUpdateAgent,
@@ -293,7 +295,8 @@ export const AgentRow: FC<AgentRowProps> = ({
293295
devcontainer={devcontainer}
294296
workspace={workspace}
295297
wildcardHostname={proxy.preferredWildcardHostname}
296-
agent={agent}
298+
parentAgent={agent}
299+
subAgents={subAgents??[]}
297300
/>
298301
);
299302
})}

‎site/src/pages/WorkspacePage/Workspace.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,9 @@ export const Workspace: FC<WorkspaceProps> = ({
242242
<AgentRow
243243
key={agent.id}
244244
agent={agent}
245+
subAgents={selectedResource.agents?.filter(
246+
(a)=>a.parent_id===agent.id,
247+
)}
245248
workspace={workspace}
246249
template={template}
247250
onUpdateAgent={handleUpdate}// On updating the workspace the agent version is also updated

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp