mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-21 16:27:18 +02:00
Fix approval-gated seed agent flows
Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
1 parent
6021691425
commit
5ca3a275f9
2 files changed
+22
-4
No files matched your search
@@ -163,9 +163,9 @@ async function setupCompany(boardRequest: APIRequestContext): Promise<TestContex
|
||||
const companyId = company.id;
|
||||
const companyPrefix = company.issuePrefix ?? company.prefix ?? company.urlKey ?? "E2E";
|
||||
|
||||
// Helper: create agent + API key + request context
|
||||
// Helper: hire/approve agent + API key + request context
|
||||
async function createAgent(name: string, role: string, title: string): Promise<AgentAuth> {
|
||||
const agentRes = await boardRequest.post(`${BASE_URL}/api/companies/${companyId}/agents`, {
|
||||
const agentRes = await boardRequest.post(`${BASE_URL}/api/companies/${companyId}/agent-hires`, {
|
||||
data: {
|
||||
name,
|
||||
role,
|
||||
@@ -178,7 +178,14 @@ async function setupCompany(boardRequest: APIRequestContext): Promise<TestContex
|
||||
},
|
||||
});
|
||||
expect(agentRes.ok()).toBe(true);
|
||||
const agent = await agentRes.json();
|
||||
const hire = await agentRes.json();
|
||||
const agent = hire.agent;
|
||||
if (hire.approval) {
|
||||
const approvalRes = await boardRequest.post(`${BASE_URL}/api/approvals/${hire.approval.id}/approve`, {
|
||||
data: { decisionNote: "Approved for signoff e2e setup." },
|
||||
});
|
||||
expect(approvalRes.ok()).toBe(true);
|
||||
}
|
||||
|
||||
const keyRes = await boardRequest.post(`${BASE_URL}/api/agents/${agent.id}/keys`, {
|
||||
data: { name: `e2e-${name.toLowerCase()}` },
|
||||
|
||||
@@ -7,6 +7,7 @@ import { useCompany } from "../context/CompanyContext";
|
||||
import { companiesApi } from "../api/companies";
|
||||
import { goalsApi } from "../api/goals";
|
||||
import { agentsApi } from "../api/agents";
|
||||
import { approvalsApi } from "../api/approvals";
|
||||
import { issuesApi } from "../api/issues";
|
||||
import { projectsApi } from "../api/projects";
|
||||
import { queryKeys } from "../lib/queryKeys";
|
||||
@@ -458,13 +459,23 @@ export function OnboardingWizard() {
|
||||
if (!result) return;
|
||||
}
|
||||
|
||||
const agent = await agentsApi.create(createdCompanyId, {
|
||||
const hire = await agentsApi.hire(createdCompanyId, {
|
||||
name: agentName.trim(),
|
||||
role: "ceo",
|
||||
adapterType,
|
||||
adapterConfig: buildAdapterConfig(),
|
||||
runtimeConfig: buildNewAgentRuntimeConfig()
|
||||
});
|
||||
if (hire.approval) {
|
||||
await approvalsApi.approve(
|
||||
hire.approval.id,
|
||||
"Approved during onboarding first-agent setup."
|
||||
);
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: queryKeys.approvals.list(createdCompanyId)
|
||||
});
|
||||
}
|
||||
const agent = hire.agent;
|
||||
setCreatedAgentId(agent.id);
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: queryKeys.agents.list(createdCompanyId)
|
||||
|
||||
Reference in new issue
Block a user