@axiom-lattice/react-sdk 4.3.0 → 4.4.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/dist/{AgentDetailSideApp-TI7723CK.mjs → AgentDetailSideApp-RW6B3BGT.mjs} +7 -7
- package/dist/AgentGovernanceWorkbench-OXGHJNFL.mjs +19 -0
- package/dist/{MessageGraph-ES3P4VLY.mjs → MessageGraph-BVP2M3TM.mjs} +3 -3
- package/dist/{ReactChart-6AYFMCMD.mjs → ReactChart-3XHMWXL6.mjs} +3 -3
- package/dist/{TasksSideApp-7R42CIFG.mjs → TasksSideApp-MLG7XUQA.mjs} +4 -4
- package/dist/{TeamWorkspace-JQ762PEX.mjs → TeamWorkspace-IENL2T4X.mjs} +3 -3
- package/dist/{TopologyRuntimeView-OJ35YYVM.mjs → TopologyRuntimeView-B5TVUTAB.mjs} +4 -4
- package/dist/{WorkflowAutomationView-3AS77NKN.mjs → WorkflowAutomationView-ZKTUYMPU.mjs} +6 -6
- package/dist/{chunk-4FI66ZJ3.mjs → chunk-2NCNDHTI.mjs} +2 -2
- package/dist/{chunk-ENLK3ODS.mjs → chunk-3JNBTKKB.mjs} +2 -2
- package/dist/{chunk-2ZK7AUQW.mjs → chunk-ADZRYRP6.mjs} +9 -5
- package/dist/chunk-ADZRYRP6.mjs.map +1 -0
- package/dist/{chunk-4SVLWYLW.mjs → chunk-AJLGOGUB.mjs} +2 -2
- package/dist/{chunk-NSGSGYM7.mjs → chunk-HLVE2SB7.mjs} +48 -1
- package/dist/chunk-HLVE2SB7.mjs.map +1 -0
- package/dist/{chunk-YUV4WO25.mjs → chunk-N5VEHSQU.mjs} +160 -69
- package/dist/chunk-N5VEHSQU.mjs.map +1 -0
- package/dist/{chunk-3NR7UAPT.mjs → chunk-ORTSDZD4.mjs} +26 -44
- package/dist/chunk-ORTSDZD4.mjs.map +1 -0
- package/dist/{chunk-DBTFQUSQ.mjs → chunk-XE2ZIE2L.mjs} +4 -4
- package/dist/{embed-page-AgentDetailSideApp-PSRQVFNR.js → embed-page-AgentDetailSideApp-2BDEWFQ6.js} +1 -1
- package/dist/embed-page-AgentGovernanceWorkbench-WG7E3G5T.js +5 -0
- package/dist/{embed-page-MessageGraph-PDNQ67T4.js → embed-page-MessageGraph-5SWPEQ4V.js} +1 -1
- package/dist/{embed-page-ReactChart-25KAFLQ3.js → embed-page-ReactChart-ZYWRXIMC.js} +1 -1
- package/dist/{embed-page-TasksSideApp-DLH5LRMS.js → embed-page-TasksSideApp-X6255GEF.js} +1 -1
- package/dist/{embed-page-TeamWorkspace-2WJJWF25.js → embed-page-TeamWorkspace-XNZM7AV7.js} +1 -1
- package/dist/{embed-page-TopologyRuntimeView-WDQRHDMO.js → embed-page-TopologyRuntimeView-DGSHSTIU.js} +1 -1
- package/dist/{embed-page-WorkflowAutomationView-BAMJ2WVB.js → embed-page-WorkflowAutomationView-BHIRIWV3.js} +1 -1
- package/dist/embed-page-chunk-DEDTYRZE.js +245 -0
- package/dist/{embed-page-chunk-XVUA7UHE.js → embed-page-chunk-HEO7X7LH.js} +1 -1
- package/dist/{embed-page-chunk-TL2AYM76.js → embed-page-chunk-JMZ7OODN.js} +1 -1
- package/dist/{embed-page-chunk-OBM5EUWZ.js → embed-page-chunk-SPC4BYNU.js} +192 -192
- package/dist/{embed-page-chunk-LOXLXZNP.js → embed-page-chunk-XUXEGF3S.js} +1 -1
- package/dist/{embed-page-chunk-MQDYZS3S.js → embed-page-chunk-YCX5YZRP.js} +1 -1
- package/dist/embed-page.js +1 -1
- package/dist/index.d.mts +27 -1
- package/dist/index.d.ts +27 -1
- package/dist/index.js +2029 -1890
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +13 -8
- package/dist/index.mjs.map +1 -1
- package/dist/web-app.js +48 -3
- package/dist/web-app.js.map +1 -1
- package/dist/web-app.mjs +5 -4
- package/dist/web-app.mjs.map +1 -1
- package/package.json +3 -3
- package/dist/AgentGovernanceWorkbench-2MPAB6UF.mjs +0 -19
- package/dist/chunk-2ZK7AUQW.mjs.map +0 -1
- package/dist/chunk-3NR7UAPT.mjs.map +0 -1
- package/dist/chunk-NSGSGYM7.mjs.map +0 -1
- package/dist/chunk-YUV4WO25.mjs.map +0 -1
- package/dist/embed-page-AgentGovernanceWorkbench-UPQHJZD7.js +0 -5
- package/dist/embed-page-chunk-SSC7ANWV.js +0 -245
- /package/dist/{AgentDetailSideApp-TI7723CK.mjs.map → AgentDetailSideApp-RW6B3BGT.mjs.map} +0 -0
- /package/dist/{AgentGovernanceWorkbench-2MPAB6UF.mjs.map → AgentGovernanceWorkbench-OXGHJNFL.mjs.map} +0 -0
- /package/dist/{MessageGraph-ES3P4VLY.mjs.map → MessageGraph-BVP2M3TM.mjs.map} +0 -0
- /package/dist/{ReactChart-6AYFMCMD.mjs.map → ReactChart-3XHMWXL6.mjs.map} +0 -0
- /package/dist/{TasksSideApp-7R42CIFG.mjs.map → TasksSideApp-MLG7XUQA.mjs.map} +0 -0
- /package/dist/{TeamWorkspace-JQ762PEX.mjs.map → TeamWorkspace-IENL2T4X.mjs.map} +0 -0
- /package/dist/{TopologyRuntimeView-OJ35YYVM.mjs.map → TopologyRuntimeView-B5TVUTAB.mjs.map} +0 -0
- /package/dist/{WorkflowAutomationView-3AS77NKN.mjs.map → WorkflowAutomationView-ZKTUYMPU.mjs.map} +0 -0
- /package/dist/{chunk-4FI66ZJ3.mjs.map → chunk-2NCNDHTI.mjs.map} +0 -0
- /package/dist/{chunk-ENLK3ODS.mjs.map → chunk-3JNBTKKB.mjs.map} +0 -0
- /package/dist/{chunk-4SVLWYLW.mjs.map → chunk-AJLGOGUB.mjs.map} +0 -0
- /package/dist/{chunk-DBTFQUSQ.mjs.map → chunk-XE2ZIE2L.mjs.map} +0 -0
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AgentDetailView
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-ORTSDZD4.mjs";
|
|
4
|
+
import "./chunk-2NCNDHTI.mjs";
|
|
5
|
+
import "./chunk-3JNBTKKB.mjs";
|
|
6
6
|
import "./chunk-7QQKL657.mjs";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-AJLGOGUB.mjs";
|
|
8
8
|
import "./chunk-7FWCKQNB.mjs";
|
|
9
9
|
import {
|
|
10
10
|
ProjectScopeProvider_default,
|
|
11
11
|
useSideAppOpener
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-N5VEHSQU.mjs";
|
|
13
|
+
import "./chunk-HLVE2SB7.mjs";
|
|
14
14
|
import "./chunk-XC6TB6PI.mjs";
|
|
15
15
|
import "./chunk-XAGSG72Y.mjs";
|
|
16
16
|
import {
|
|
@@ -155,4 +155,4 @@ var AgentDetailSideApp = ({ data }) => {
|
|
|
155
155
|
export {
|
|
156
156
|
AgentDetailSideApp
|
|
157
157
|
};
|
|
158
|
-
//# sourceMappingURL=AgentDetailSideApp-
|
|
158
|
+
//# sourceMappingURL=AgentDetailSideApp-RW6B3BGT.mjs.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AgentGovernanceWorkbench
|
|
3
|
+
} from "./chunk-ADZRYRP6.mjs";
|
|
4
|
+
import "./chunk-ORTSDZD4.mjs";
|
|
5
|
+
import "./chunk-2NCNDHTI.mjs";
|
|
6
|
+
import "./chunk-3JNBTKKB.mjs";
|
|
7
|
+
import "./chunk-7QQKL657.mjs";
|
|
8
|
+
import "./chunk-AJLGOGUB.mjs";
|
|
9
|
+
import "./chunk-7FWCKQNB.mjs";
|
|
10
|
+
import "./chunk-N5VEHSQU.mjs";
|
|
11
|
+
import "./chunk-HLVE2SB7.mjs";
|
|
12
|
+
import "./chunk-XC6TB6PI.mjs";
|
|
13
|
+
import "./chunk-XAGSG72Y.mjs";
|
|
14
|
+
import "./chunk-3VRRRJHP.mjs";
|
|
15
|
+
import "./chunk-SH6YXSHR.mjs";
|
|
16
|
+
export {
|
|
17
|
+
AgentGovernanceWorkbench
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=AgentGovernanceWorkbench-OXGHJNFL.mjs.map
|
|
@@ -11,8 +11,8 @@ import {
|
|
|
11
11
|
collapseOlderPhases,
|
|
12
12
|
formatToolName,
|
|
13
13
|
toolResponseText
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-N5VEHSQU.mjs";
|
|
15
|
+
import "./chunk-HLVE2SB7.mjs";
|
|
16
16
|
import {
|
|
17
17
|
Handle,
|
|
18
18
|
Position,
|
|
@@ -380,4 +380,4 @@ var MessageGraph = ({
|
|
|
380
380
|
export {
|
|
381
381
|
MessageGraph
|
|
382
382
|
};
|
|
383
|
-
//# sourceMappingURL=MessageGraph-
|
|
383
|
+
//# sourceMappingURL=MessageGraph-BVP2M3TM.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
GenericDataTable
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-N5VEHSQU.mjs";
|
|
4
|
+
import "./chunk-HLVE2SB7.mjs";
|
|
5
5
|
import "./chunk-3VRRRJHP.mjs";
|
|
6
6
|
import "./chunk-SH6YXSHR.mjs";
|
|
7
7
|
|
|
@@ -452,4 +452,4 @@ var ReactChart = (props) => {
|
|
|
452
452
|
export {
|
|
453
453
|
ReactChart
|
|
454
454
|
};
|
|
455
|
-
//# sourceMappingURL=ReactChart-
|
|
455
|
+
//# sourceMappingURL=ReactChart-3XHMWXL6.mjs.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
TASK_NODE_HEIGHT,
|
|
5
5
|
TASK_NODE_WIDTH,
|
|
6
6
|
TaskOutlineList
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-AJLGOGUB.mjs";
|
|
8
8
|
import {
|
|
9
9
|
WorkflowGraphBase,
|
|
10
10
|
applyDagreLayout
|
|
@@ -15,8 +15,8 @@ import {
|
|
|
15
15
|
buildTaskGraph,
|
|
16
16
|
useOpenTaskChat,
|
|
17
17
|
useWorkspaceContext
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-N5VEHSQU.mjs";
|
|
19
|
+
import "./chunk-HLVE2SB7.mjs";
|
|
20
20
|
import {
|
|
21
21
|
Handle,
|
|
22
22
|
Position,
|
|
@@ -1094,4 +1094,4 @@ var TasksSideApp = ({ statusFilter, getOwnerLabel, showProjectFilter = true, ini
|
|
|
1094
1094
|
export {
|
|
1095
1095
|
TasksSideApp
|
|
1096
1096
|
};
|
|
1097
|
-
//# sourceMappingURL=TasksSideApp-
|
|
1097
|
+
//# sourceMappingURL=TasksSideApp-MLG7XUQA.mjs.map
|
|
@@ -3,8 +3,8 @@ import {
|
|
|
3
3
|
Chating,
|
|
4
4
|
MailboxPanel,
|
|
5
5
|
useAgentState
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-N5VEHSQU.mjs";
|
|
7
|
+
import "./chunk-HLVE2SB7.mjs";
|
|
8
8
|
import {
|
|
9
9
|
Background,
|
|
10
10
|
Controls,
|
|
@@ -2409,4 +2409,4 @@ export {
|
|
|
2409
2409
|
TeamWorkspace,
|
|
2410
2410
|
TeamWorkspace_default as default
|
|
2411
2411
|
};
|
|
2412
|
-
//# sourceMappingURL=TeamWorkspace-
|
|
2412
|
+
//# sourceMappingURL=TeamWorkspace-IENL2T4X.mjs.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
WorkflowCanvas,
|
|
3
3
|
expandWorkflow
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-3JNBTKKB.mjs";
|
|
5
5
|
import "./chunk-7FWCKQNB.mjs";
|
|
6
6
|
import {
|
|
7
7
|
MDResponse
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-N5VEHSQU.mjs";
|
|
9
|
+
import "./chunk-HLVE2SB7.mjs";
|
|
10
10
|
import {
|
|
11
11
|
Background,
|
|
12
12
|
BackgroundVariant,
|
|
@@ -811,4 +811,4 @@ var TopologyRuntimeView = () => {
|
|
|
811
811
|
export {
|
|
812
812
|
TopologyRuntimeView
|
|
813
813
|
};
|
|
814
|
-
//# sourceMappingURL=TopologyRuntimeView-
|
|
814
|
+
//# sourceMappingURL=TopologyRuntimeView-B5TVUTAB.mjs.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
WorkflowAutomationView,
|
|
3
3
|
WorkflowAutomationView_default
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-XE2ZIE2L.mjs";
|
|
5
|
+
import "./chunk-2NCNDHTI.mjs";
|
|
6
|
+
import "./chunk-3JNBTKKB.mjs";
|
|
7
7
|
import "./chunk-7FWCKQNB.mjs";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-N5VEHSQU.mjs";
|
|
9
|
+
import "./chunk-HLVE2SB7.mjs";
|
|
10
10
|
import "./chunk-XC6TB6PI.mjs";
|
|
11
11
|
import "./chunk-XAGSG72Y.mjs";
|
|
12
12
|
import "./chunk-3VRRRJHP.mjs";
|
|
@@ -15,4 +15,4 @@ export {
|
|
|
15
15
|
WorkflowAutomationView,
|
|
16
16
|
WorkflowAutomationView_default as default
|
|
17
17
|
};
|
|
18
|
-
//# sourceMappingURL=WorkflowAutomationView-
|
|
18
|
+
//# sourceMappingURL=WorkflowAutomationView-ZKTUYMPU.mjs.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
Chating,
|
|
4
4
|
InitialMessageSubmitter,
|
|
5
5
|
ProjectSelector
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-N5VEHSQU.mjs";
|
|
7
7
|
import {
|
|
8
8
|
useClient
|
|
9
9
|
} from "./chunk-3VRRRJHP.mjs";
|
|
@@ -203,4 +203,4 @@ export {
|
|
|
203
203
|
TrainingContextCard,
|
|
204
204
|
CopilotPanel
|
|
205
205
|
};
|
|
206
|
-
//# sourceMappingURL=chunk-
|
|
206
|
+
//# sourceMappingURL=chunk-2NCNDHTI.mjs.map
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
} from "./chunk-7FWCKQNB.mjs";
|
|
6
6
|
import {
|
|
7
7
|
MDResponse
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-N5VEHSQU.mjs";
|
|
9
9
|
import {
|
|
10
10
|
Handle,
|
|
11
11
|
MarkerType,
|
|
@@ -1089,4 +1089,4 @@ export {
|
|
|
1089
1089
|
WorkflowCanvas_default,
|
|
1090
1090
|
expandWorkflow
|
|
1091
1091
|
};
|
|
1092
|
-
//# sourceMappingURL=chunk-
|
|
1092
|
+
//# sourceMappingURL=chunk-3JNBTKKB.mjs.map
|
|
@@ -11,17 +11,17 @@ import {
|
|
|
11
11
|
shortHash,
|
|
12
12
|
startLearningRound,
|
|
13
13
|
statusHex
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-ORTSDZD4.mjs";
|
|
15
15
|
import {
|
|
16
16
|
TrainingContextCard
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-2NCNDHTI.mjs";
|
|
18
18
|
import {
|
|
19
19
|
EntityListView,
|
|
20
20
|
FilterSelect,
|
|
21
21
|
ProjectScopeProvider_default,
|
|
22
22
|
useSideAppOpener,
|
|
23
23
|
useWorkspaceContext
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-N5VEHSQU.mjs";
|
|
25
25
|
import {
|
|
26
26
|
Background,
|
|
27
27
|
Controls,
|
|
@@ -1036,7 +1036,8 @@ var CreateAssistantModal = ({
|
|
|
1036
1036
|
projectId: trainingProject.id,
|
|
1037
1037
|
workspaceId: trainingProject.workspaceId ?? workspaceId ?? void 0
|
|
1038
1038
|
}),
|
|
1039
|
-
projectId: trainingProject.id
|
|
1039
|
+
projectId: trainingProject.id,
|
|
1040
|
+
initialMessageCustomRunConfig: { execution: { taskId: roundTaskId } }
|
|
1040
1041
|
});
|
|
1041
1042
|
onCancel();
|
|
1042
1043
|
} catch (err) {
|
|
@@ -1607,6 +1608,7 @@ var AgentGovernanceWorkbench = () => {
|
|
|
1607
1608
|
const [selectedId, setSelectedId] = useState5(null);
|
|
1608
1609
|
const [initialTab, setInitialTab] = useState5("graph");
|
|
1609
1610
|
const [detailInitialMessage, setDetailInitialMessage] = useState5(null);
|
|
1611
|
+
const [detailInitialMessageCustomRunConfig, setDetailInitialMessageCustomRunConfig] = useState5(null);
|
|
1610
1612
|
const [detailProjectId, setDetailProjectId] = useState5(null);
|
|
1611
1613
|
const [onboardingOpen, setOnboardingOpen] = useState5(false);
|
|
1612
1614
|
const [restoreOnboardingFocus, setRestoreOnboardingFocus] = useState5(true);
|
|
@@ -1760,6 +1762,7 @@ var AgentGovernanceWorkbench = () => {
|
|
|
1760
1762
|
onAgentListInvalidated: loadAgents,
|
|
1761
1763
|
initialTab,
|
|
1762
1764
|
initialMessage: detailInitialMessage,
|
|
1765
|
+
initialMessageCustomRunConfig: detailInitialMessageCustomRunConfig,
|
|
1763
1766
|
initialProjectId: detailProjectId
|
|
1764
1767
|
}
|
|
1765
1768
|
) }, selectedAssistant.id)
|
|
@@ -1805,6 +1808,7 @@ var AgentGovernanceWorkbench = () => {
|
|
|
1805
1808
|
});
|
|
1806
1809
|
openDetail(created.id, "graph");
|
|
1807
1810
|
setDetailInitialMessage(options?.initialMessage ?? null);
|
|
1811
|
+
setDetailInitialMessageCustomRunConfig(options?.initialMessageCustomRunConfig ?? null);
|
|
1808
1812
|
setDetailProjectId(options?.projectId ?? null);
|
|
1809
1813
|
loadAgents();
|
|
1810
1814
|
}
|
|
@@ -1833,4 +1837,4 @@ export {
|
|
|
1833
1837
|
CreateAssistantModal_default,
|
|
1834
1838
|
AgentGovernanceWorkbench
|
|
1835
1839
|
};
|
|
1836
|
-
//# sourceMappingURL=chunk-
|
|
1840
|
+
//# sourceMappingURL=chunk-ADZRYRP6.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Governance/AgentGovernanceWorkbench.tsx","../src/components/Governance/AgentList.tsx","../src/components/Governance/AgentGraphView.tsx","../src/components/Governance/AgentGraphNode.tsx","../src/components/Governance/AgentCardStats.tsx","../src/components/Chat/CreateAssistantModal.tsx","../src/components/Chat/ParentAgentSelector.tsx","../src/components/Chat/SubAgentInheritList.tsx","../src/components/Chat/localRuntimeValidation.ts","../src/components/Governance/AgentCreationOnboardingModal.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\nimport { message, Modal } from \"antd\";\nimport type { Assistant } from \"@axiom-lattice/client-sdk\";\nimport { useApi } from \"../../hooks/useApi\";\nimport { AgentList } from \"./AgentList\";\nimport { AgentDetailView } from \"./AgentDetailView\";\nimport ProjectScopeProvider from \"../ProjectScopeProvider\";\nimport { useSideAppOpener } from \"../Chat/SideAppBrowserContext\";\nimport { CreateAssistantModal } from \"../Chat/CreateAssistantModal\";\nimport type { CreationMode } from \"../Chat/CreateAssistantModal\";\nimport { buildAgentListItems } from \"./agentMeta\";\nimport type { AgentCardStatsData } from \"./AgentCardStats\";\nimport type { AgentListItem, DetailTab } from \"./types\";\nimport { AgentCreationOnboardingModal, type AgentCreationMethod } from \"./AgentCreationOnboardingModal\";\n\nconst parseGraphDefinition = (value: Assistant[\"graphDefinition\"]): Record<string, unknown> => {\n let parsed: unknown = value;\n if (typeof value === \"string\") {\n try {\n parsed = JSON.parse(value) as unknown;\n } catch {\n return {};\n }\n }\n return parsed !== null && typeof parsed === \"object\" && !Array.isArray(parsed)\n ? parsed as Record<string, unknown>\n : {};\n};\n\nexport const AgentGovernanceWorkbench: React.FC = () => {\n const { get, del, put } = useApi();\n const [assistants, setAssistants] = useState<Assistant[]>([]);\n const [stats, setStats] = useState<Record<string, AgentCardStatsData>>({});\n const [statsExpiresAt, setStatsExpiresAt] = useState<string | null>(null);\n const [loading, setLoading] = useState(false);\n const [selectedId, setSelectedId] = useState<string | null>(null);\n const [initialTab, setInitialTab] = useState<DetailTab>(\"graph\");\n const [detailInitialMessage, setDetailInitialMessage] = useState<string | null>(null);\n const [detailInitialMessageCustomRunConfig, setDetailInitialMessageCustomRunConfig] = useState<Record<string, unknown> | null>(null);\n const [detailProjectId, setDetailProjectId] = useState<string | null>(null);\n const [onboardingOpen, setOnboardingOpen] = useState(false);\n const [restoreOnboardingFocus, setRestoreOnboardingFocus] = useState(true);\n const [createOpen, setCreateOpen] = useState(false);\n const [createInitialMode, setCreateInitialMode] = useState<CreationMode>(\"learn\");\n const [createInitialValues, setCreateInitialValues] = useState<Record<string, unknown>>({});\n const [deleteTargetId, setDeleteTargetId] = useState<string | null>(null);\n const [deleting, setDeleting] = useState(false);\n\n const loadAgents = useCallback(async () => {\n setLoading(true);\n try {\n const [listRes, statsRes] = await Promise.all([\n get<{ success: boolean; data: { records: Assistant[] } }>(\"/api/assistants\"),\n get<{ success: boolean; data: { records: AgentCardStatsData[] }; cache?: { expiresAt: string } }>(\"/api/assistants/stats\").catch(() => null),\n ]);\n if (listRes.success && listRes.data?.records) {\n setAssistants(listRes.data.records);\n }\n if (statsRes?.success && statsRes.data?.records) {\n const byId: Record<string, AgentCardStatsData> = {};\n for (const rec of statsRes.data.records) {\n byId[rec.id] = rec;\n }\n setStats(byId);\n setStatsExpiresAt(statsRes.cache?.expiresAt ?? null);\n }\n } catch {\n message.error(\"Failed to load agents\");\n } finally {\n setLoading(false);\n }\n }, [get]);\n\n useEffect(() => {\n loadAgents();\n }, [loadAgents]);\n\n const items: AgentListItem[] = React.useMemo(() => buildAgentListItems(assistants), [assistants]);\n const selectedAssistant = assistants.find((a) => a.id === selectedId) ?? null;\n\n const openDetail = useCallback((id: string, tab: DetailTab = \"graph\") => {\n setSelectedId(id);\n setInitialTab(tab);\n setDetailInitialMessage(null);\n setDetailProjectId(null);\n }, []);\n\n const openSideAppCard = useSideAppOpener();\n\n const openAgentDetailTab = useCallback(\n (id: string, tab: DetailTab) => {\n const name = assistants.find((a) => a.id === id)?.name ?? \"Agent\";\n openSideAppCard({\n component_key: \"agent_detail_side_app\",\n data: { assistantId: id, initialTab: tab },\n message: name,\n });\n },\n [assistants, openSideAppCard]\n );\n\n const handleCreateClick = useCallback(() => {\n setRestoreOnboardingFocus(true);\n setOnboardingOpen(true);\n }, []);\n\n const handleSelectCreationMethod = useCallback((method: AgentCreationMethod) => {\n const initialization: Record<AgentCreationMethod, { mode: CreationMode; values: Record<string, unknown> }> = {\n manual: { mode: \"scratch\", values: {} },\n external: { mode: \"scratch\", values: { type: \"a2a_remote\" } },\n learn: { mode: \"learn\", values: {} },\n };\n const selected = initialization[method];\n setCreateInitialMode(selected.mode);\n setCreateInitialValues(selected.values);\n setRestoreOnboardingFocus(false);\n setOnboardingOpen(false);\n setCreateOpen(true);\n }, []);\n\n const handleSave = useCallback(\n async (assistant: Assistant, config: Record<string, unknown>) => {\n const currentDef = parseGraphDefinition(assistant.graphDefinition);\n let result: { success: boolean };\n try {\n result = await put<{ success: boolean }>(`/api/assistants/${assistant.id}`, {\n name: config.name !== undefined ? (config.name as string) : assistant.name,\n description:\n config.description !== undefined\n ? (config.description as string)\n : assistant.description,\n graphDefinition: { ...currentDef, ...config },\n });\n } catch (error) {\n message.error(\"Failed to save agent\");\n throw error;\n }\n if (!result.success) {\n message.error(\"Failed to save agent\");\n throw new Error(\"Failed to save agent\");\n }\n message.success(\"Saved\");\n loadAgents();\n },\n [put, loadAgents]\n );\n\n /**\n * In-place single-assistant update from the detail view's event-driven\n * refresh (architect copilot changed config server-side). Avoids the\n * loadAgents() full reload that rebuilt the whole canvas.\n */\n const handleAssistantUpdated = useCallback((updated: Assistant) => {\n setAssistants((prev) => prev.map((a) => (a.id === updated.id ? updated : a)));\n }, []);\n\n /**\n * List-path delete: AgentList has no confirm of its own, so confirm here,\n * then delete, then reload.\n */\n const confirmDelete = useCallback(\n (id: string) => {\n setDeleteTargetId(id);\n },\n []\n );\n\n const handleConfirmDelete = useCallback(async () => {\n if (!deleteTargetId) return;\n setDeleting(true);\n try {\n const result = await del<{ success: boolean }>(`/api/assistants/${deleteTargetId}`);\n if (result.success) {\n message.success(\"Agent deleted\");\n // Remove locally BEFORE reloading: if the refresh fails, the\n // deleted agent must not linger and get resurrected by a save.\n setAssistants((prev) => prev.filter((a) => a.id !== deleteTargetId));\n loadAgents();\n setDeleteTargetId(null);\n } else {\n message.error(\"Failed to delete agent\");\n }\n } catch {\n message.error(\"Failed to delete agent\");\n } finally {\n setDeleting(false);\n }\n }, [deleteTargetId, del, loadAgents]);\n\n /**\n * Detail-path delete: AgentConfigPanel already shows its own confirm modal,\n * so no second confirm here. Resolves only after a successful delete so the\n * panel navigates back; rejects on failure so the panel stays put (its catch\n * shows the error toast).\n */\n const handleDelete = useCallback(\n async (id: string): Promise<void> => {\n const result = await del<{ success: boolean }>(`/api/assistants/${id}`);\n if (!result.success) {\n throw new Error(\"Failed to delete agent\");\n }\n message.success(\"Agent deleted\");\n // Remove locally BEFORE reloading (see confirmDelete).\n setAssistants((prev) => prev.filter((a) => a.id !== id));\n loadAgents();\n },\n [del, loadAgents]\n );\n\n return (\n <div style={{ height: \"100%\", background: \"#fafafa\", overflow: \"hidden\" }}>\n {selectedAssistant ? (\n // Isolated workspace scope for the detail page: the learning project\n // selection (modal handoff / canvas selector) must scope the copilot's\n // run headers WITHOUT touching the shell-level WorkspaceContext —\n // writing the shell context navigates the shell to the project page.\n <ProjectScopeProvider key={selectedAssistant.id} defaultProjectId={detailProjectId ?? undefined}>\n <AgentDetailView\n assistant={selectedAssistant}\n allAssistants={assistants}\n onBack={() => setSelectedId(null)}\n onDeleted={handleDelete}\n onSave={handleSave}\n onAssistantUpdated={handleAssistantUpdated}\n onAgentListInvalidated={loadAgents}\n initialTab={initialTab}\n initialMessage={detailInitialMessage}\n initialMessageCustomRunConfig={detailInitialMessageCustomRunConfig}\n initialProjectId={detailProjectId}\n />\n </ProjectScopeProvider>\n ) : (\n <>\n <AgentList\n items={items}\n assistants={assistants}\n stats={stats}\n statsExpiresAt={statsExpiresAt}\n loading={loading}\n onItemClick={(id) => openAgentDetailTab(id, \"graph\")}\n onOpenPlayground={(id) => openAgentDetailTab(id, \"playground\")}\n onOpenEval={(id) => openAgentDetailTab(id, \"eval\")}\n onCreate={handleCreateClick}\n onDelete={confirmDelete}\n />\n </>\n )}\n <AgentCreationOnboardingModal\n open={onboardingOpen}\n onCancel={() => {\n setRestoreOnboardingFocus(true);\n setOnboardingOpen(false);\n }}\n onSelectMethod={handleSelectCreationMethod}\n focusTriggerAfterClose={restoreOnboardingFocus}\n />\n <CreateAssistantModal\n open={createOpen}\n initialMode={createInitialMode}\n initialValues={createInitialValues}\n onCancel={() => setCreateOpen(false)}\n onSuccess={(created, options) => {\n setCreateOpen(false);\n setAssistants((prev) => {\n const exists = prev.some((a) => a.id === created.id);\n return exists ? prev : [created, ...prev];\n });\n openDetail(created.id, \"graph\");\n setDetailInitialMessage(options?.initialMessage ?? null);\n setDetailInitialMessageCustomRunConfig(options?.initialMessageCustomRunConfig ?? null);\n setDetailProjectId(options?.projectId ?? null);\n loadAgents();\n }}\n />\n <Modal\n title=\"Delete Agent\"\n open={deleteTargetId !== null}\n onCancel={() => setDeleteTargetId(null)}\n onOk={handleConfirmDelete}\n okText=\"Delete\"\n okButtonProps={{ danger: true, loading: deleting }}\n cancelText=\"Cancel\"\n >\n <p>This action cannot be undone.</p>\n </Modal>\n </div>\n );\n};\n","import React, { useMemo, useState } from \"react\";\nimport { Tag, Tooltip } from \"antd\";\nimport { Bot, Pencil, PlayCircle, FlaskConical, Network, Trash2 } from \"lucide-react\";\nimport { EntityListView } from \"../EntityList/EntityListView\";\nimport type { EntityAction, ViewModeExtension } from \"../EntityList/types\";\nimport { FilterSelect } from \"../EntityList/FilterSelect\";\nimport type { AgentListItem } from \"./types\";\nimport { AgentGraphView } from \"./AgentGraphView\";\nimport { AgentCardStats, type AgentCardStatsData } from \"./AgentCardStats\";\nimport { getTypeBadgeInfo, colorHex, statusHex } from \"./agentMeta\";\nimport type { Assistant } from \"@axiom-lattice/client-sdk\";\n\nexport interface AgentListProps {\n items: AgentListItem[];\n assistants?: Assistant[];\n stats?: Record<string, AgentCardStatsData>;\n /** When the server-side stats cache expires (ISO) — shown as a refresh hint. */\n statsExpiresAt?: string | null;\n loading: boolean;\n onItemClick: (id: string) => void;\n onOpenPlayground: (id: string) => void;\n onOpenEval: (id: string) => void;\n onCreate: () => void;\n onDelete?: (id: string) => void;\n}\n\nconst TYPE_TABS = [\n { key: \"all\", label: \"All\" },\n { key: \"capability\", label: \"Capability\" },\n { key: \"orchestrator\", label: \"Orchestrator\" },\n { key: \"team\", label: \"Team\" },\n { key: \"workflow\", label: \"Workflow\" },\n];\n\nexport const AgentList: React.FC<AgentListProps> = ({\n items,\n assistants = [],\n stats,\n loading,\n onItemClick,\n onOpenPlayground,\n onOpenEval,\n onCreate,\n onDelete,\n}) => {\n const [activeTab, setActiveTab] = useState(\"all\");\n const [domainFilter, setDomainFilter] = useState<string | null>(null);\n const [statusFilter, setStatusFilter] = useState<string | null>(null);\n\n const allDomains = useMemo(() => {\n const set = new Set<string>();\n items.forEach((item) => item.tags.forEach((t) => set.add(t)));\n return Array.from(set).map((t) => ({ value: t, label: t }));\n }, [items]);\n\n const visibleItems = useMemo(() => {\n return items.filter((item) => {\n if (activeTab !== \"all\" && item.type !== activeTab) return false;\n if (domainFilter && !item.tags.includes(domainFilter)) return false;\n if (statusFilter && item.status !== statusFilter) return false;\n return true;\n });\n }, [items, activeTab, domainFilter, statusFilter]);\n\n const itemActions: EntityAction<AgentListItem>[] = [\n {\n key: \"edit\",\n icon: Pencil,\n label: \"Edit\",\n onClick: (item) => onItemClick(item.id),\n },\n {\n key: \"playground\",\n icon: PlayCircle,\n label: \"Playground\",\n onClick: (item) => onOpenPlayground(item.id),\n },\n {\n key: \"eval\",\n icon: FlaskConical,\n label: \"Eval\",\n onClick: (item) => onOpenEval(item.id),\n },\n ];\n\n if (onDelete) {\n itemActions.push({\n key: \"delete\",\n icon: Trash2,\n label: \"Delete\",\n danger: true,\n onClick: (item) => onDelete(item.id),\n });\n }\n\n const viewModeExtensions: ViewModeExtension[] = useMemo(\n () => [\n {\n mode: \"graph\",\n icon: Network,\n label: \"Graph\",\n render: () => <AgentGraphView assistants={assistants} onNodeClick={onItemClick} />,\n },\n ],\n [assistants, onItemClick]\n );\n\n return (\n <>\n <span\n data-testid=\"agent-list-state\"\n data-loading={String(loading)}\n data-count={visibleItems.length}\n hidden\n aria-hidden=\"true\"\n />\n <EntityListView<AgentListItem>\n title=\"Agents\"\n itemName=\"agent\"\n items={visibleItems}\n loading={loading}\n keyExtractor={(item) => item.id}\n tabs={TYPE_TABS}\n activeTab={activeTab}\n onTabChange={(key) => setActiveTab(key)}\n headerLeft={\n <div style={{ display: \"flex\", gap: 8, alignItems: \"center\" }}>\n <FilterSelect value={domainFilter} onChange={setDomainFilter} options={allDomains} placeholder=\"Domain\" allLabel=\"All domains\" />\n <FilterSelect\n value={statusFilter}\n onChange={setStatusFilter}\n options={[\n { value: \"enabled\", label: \"Enabled\" },\n { value: \"draft\", label: \"Draft\" },\n { value: \"disabled\", label: \"Disabled\" },\n ]}\n placeholder=\"Status\"\n allLabel=\"All statuses\"\n />\n </div>\n }\n renderIcon={(item) => {\n const typeColor = colorHex(getTypeBadgeInfo(item.type).color);\n return (\n <div\n title={`${item.type} agent`}\n style={{\n width: 32,\n height: 32,\n borderRadius: 8,\n background: `${typeColor}1A`,\n color: typeColor,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n }}\n >\n <Bot size={18} />\n </div>\n );\n }}\n renderPrimary={(item) => (\n <span data-testid=\"agent-name\" data-agent-id={item.id}>{item.name}</span>\n )}\n renderSecondary={(item) => item.description || undefined}\n renderDetails={(item) => (\n <div style={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\", gap: 8, flexWrap: \"wrap\" }}>\n <div style={{ display: \"flex\", gap: 4, flexWrap: \"wrap\", alignItems: \"center\" }}>\n {item.tags.map((tag) => (\n <Tag key={tag} color=\"magenta\" style={{ margin: 0, borderRadius: 10, border: \"none\" }}>{tag}</Tag>\n ))}\n <Tag color={getTypeBadgeInfo(item.type).color} style={{ margin: 0, borderRadius: 10, border: \"none\" }}>{item.type}</Tag>\n </div>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8, flexShrink: 0 }}>\n <Tooltip title={`Status: ${item.status}`}>\n <span\n style={{\n width: 8,\n height: 8,\n borderRadius: \"50%\",\n background: statusHex(item.status),\n display: \"inline-block\",\n cursor: \"help\",\n }}\n />\n </Tooltip>\n <span style={{ fontSize: 12, color: \"#8c8c8c\" }}>{item.version}</span>\n </div>\n </div>\n )}\n renderFooter={(item) => (\n <div style={{ borderTop: \"1px dashed #f0f0f0\", paddingTop: 10 }}>\n <AgentCardStats stats={stats?.[item.id]} />\n </div>\n )}\n itemActions={itemActions}\n actionsStyle=\"icon\"\n actionsPosition=\"hover\"\n onItemClick={(item) => onItemClick(item.id)}\n createLabel=\"New Agent\"\n onCreateClick={onCreate}\n viewModeExtensions={viewModeExtensions}\n emptyIcon={<Bot size={48} style={{ opacity: 0.5 }} />}\n emptyTitle=\"No agents yet\"\n emptyDescription='Click \"New Agent\" to create one'\n />\n </>\n );\n};\n","import React, { useMemo, useEffect, useState } from \"react\";\nimport { ReactFlow, Background, Controls, Node, Edge, useNodesState, useEdgesState, ReactFlowProvider, NodeTypes } from \"@xyflow/react\";\nimport \"@xyflow/react/dist/style.css\";\nimport { forceSimulation, forceLink, forceManyBody, forceCenter, forceCollide } from \"d3-force\";\nimport { AgentGraphNode, AGENT_NODE_WIDTH, AGENT_NODE_HEIGHT } from \"./AgentGraphNode\";\nimport { buildAgentGraphData } from \"./agentMeta\";\nimport type { Assistant } from \"@axiom-lattice/client-sdk\";\n\nexport interface AgentGraphViewProps {\n assistants: Assistant[];\n onNodeClick?: (assistantId: string) => void;\n}\n\nconst AgentGraphViewInner: React.FC<AgentGraphViewProps> = ({ assistants, onNodeClick }) => {\n const [nodes, setNodes, onNodesChange] = useNodesState<Node>([]);\n const [edges, setEdges, onEdgesChange] = useEdgesState<Edge>([]);\n const [hoveredNodeId, setHoveredNodeId] = useState<string | null>(null);\n\n const nodeTypes = useMemo(() => ({ agent: AgentGraphNode as any }) as NodeTypes, []);\n\n const graph = useMemo(() => buildAgentGraphData(assistants), [assistants]);\n\n useEffect(() => {\n const simNodes = graph.nodes.map((n) => ({ id: n.id }));\n const simLinks = graph.edges.map((e) => ({ source: e.source, target: e.target }));\n const nodeById = new Map(graph.nodes.map((n) => [n.id, n] as const));\n const simulation = forceSimulation(simNodes as any)\n .force(\"link\", forceLink(simLinks).id((d: any) => d.id).distance(80))\n .force(\"charge\", forceManyBody().strength(-220))\n .force(\"center\", forceCenter(0, 0))\n .force(\"collide\", forceCollide(45))\n .stop();\n for (let i = 0; i < 300; i++) simulation.tick();\n\n const initialNodes: Node[] = simNodes.map((n: any) => ({\n id: n.id,\n type: \"agent\",\n data: nodeById.get(n.id)!,\n // d3-force positions are node CENTERS; ReactFlow positions are\n // top-left corners. Offset by half the node size so edges land on\n // the nodes instead of floating past them.\n position: {\n x: n.x - AGENT_NODE_WIDTH / 2,\n y: n.y - AGENT_NODE_HEIGHT / 2,\n },\n }));\n const initialEdges: Edge[] = graph.edges.map((e) => ({\n id: `e${e.source}-${e.target}`,\n source: e.source,\n target: e.target,\n style: { stroke: \"#1677ff\", strokeWidth: 2 },\n type: \"straight\",\n }));\n setNodes(initialNodes);\n setEdges(initialEdges);\n }, [graph, setNodes, setEdges]);\n\n const displayNodes = useMemo(() => {\n if (hoveredNodeId === null) return nodes;\n return nodes.map((node) => {\n const isConnected =\n node.id === hoveredNodeId ||\n edges.some((e) => (e.source === hoveredNodeId && e.target === node.id) || (e.target === hoveredNodeId && e.source === node.id));\n return { ...node, style: { opacity: isConnected ? 1 : 0.2, transition: \"opacity 0.2s ease\" } };\n });\n }, [nodes, edges, hoveredNodeId]);\n\n const displayEdges = useMemo(() => {\n if (hoveredNodeId === null) {\n return edges.map((edge) => ({ ...edge, style: { stroke: \"#1677ff\", strokeWidth: 1.5, opacity: 0.25, transition: \"opacity 0.2s ease\" } }));\n }\n return edges.map((edge) => {\n const isConnected = edge.source === hoveredNodeId || edge.target === hoveredNodeId;\n return { ...edge, style: { stroke: \"#1677ff\", strokeWidth: isConnected ? 2.5 : 1, opacity: isConnected ? 1 : 0.04, transition: \"opacity 0.2s ease\" } };\n });\n }, [edges, hoveredNodeId]);\n\n return (\n <div style={{ width: \"100%\", height: \"100%\", background: \"#fafafa\", position: \"relative\" }}>\n <ReactFlow\n nodes={displayNodes}\n edges={displayEdges}\n onNodesChange={onNodesChange}\n onEdgesChange={onEdgesChange}\n onNodeMouseEnter={(_event, node) => setHoveredNodeId(node.id)}\n onNodeMouseLeave={() => setHoveredNodeId(null)}\n onNodeClick={(_event, node) => onNodeClick?.(String(node.id))}\n nodeTypes={nodeTypes}\n fitView\n fitViewOptions={{ padding: 0.25 }}\n >\n <Background color=\"#eee\" gap={20} />\n <Controls />\n </ReactFlow>\n </div>\n );\n};\n\nexport const AgentGraphView: React.FC<AgentGraphViewProps> = (props) => (\n <ReactFlowProvider>\n <AgentGraphViewInner {...props} />\n </ReactFlowProvider>\n);\n\n","import React, { memo } from \"react\";\nimport { Handle, Position, NodeProps, Node } from \"@xyflow/react\";\nimport type { AgentGraphNodeData } from \"./types\";\nimport { getTypeBadgeInfo, colorHex } from \"./agentMeta\";\n\n/**\n * Estimated rendered size of an AgentGraphNode (dot + label).\n * The graph layout uses these to convert d3-force center coordinates\n * into ReactFlow top-left positions, so edges connect at node centers.\n */\nexport const AGENT_NODE_WIDTH = 60;\nexport const AGENT_NODE_HEIGHT = 72;\n\nexport const AgentGraphNode: React.FC<NodeProps<Node<AgentGraphNodeData>>> = memo(({ data }) => {\n const badge = getTypeBadgeInfo(data.type);\n const dotSize = Math.min(12 + Math.sqrt(data.subAgentCount) * 10, 48);\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", alignItems: \"center\" }}>\n {/* Centered, transparent handles so edges connect at the node center. */}\n <Handle\n type=\"target\"\n position={Position.Top}\n style={{\n left: \"50%\",\n top: \"50%\",\n transform: \"translate(-50%, -50%)\",\n background: \"transparent\",\n border: \"none\",\n width: 0,\n height: 0,\n }}\n isConnectable={false}\n />\n <div\n title={data.label}\n style={{\n width: dotSize,\n height: dotSize,\n borderRadius: \"50%\",\n background: colorHex(badge.color),\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n color: \"#fff\",\n fontSize: Math.max(10, dotSize * 0.4),\n fontWeight: 600,\n cursor: \"pointer\",\n boxShadow: \"0 2px 8px rgba(0,0,0,0.15)\",\n }}\n >\n {data.label.charAt(0).toUpperCase()}\n </div>\n <div style={{ fontSize: 11, maxWidth: 120, textAlign: \"center\", whiteSpace: \"nowrap\", overflow: \"hidden\", textOverflow: \"ellipsis\", marginTop: 4 }}>\n {data.label}\n </div>\n <Handle\n type=\"source\"\n position={Position.Top}\n style={{\n left: \"50%\",\n top: \"50%\",\n transform: \"translate(-50%, -50%)\",\n background: \"transparent\",\n border: \"none\",\n width: 0,\n height: 0,\n }}\n isConnectable={false}\n />\n </div>\n );\n});\n\nAgentGraphNode.displayName = \"AgentGraphNode\";\n","import React from \"react\";\nimport { Tooltip } from \"antd\";\nimport { createStyles } from \"antd-style\";\nimport { MiniBarChart } from \"./MiniChart\";\n\nexport interface AgentCardStatsData {\n id: string;\n threadCount: number;\n last7d: number;\n last30d: number;\n lastActive: string | null;\n daily7d: number[];\n daily30d: number[];\n evalScore: number | null;\n evalPassRate: number | null;\n evalRuns: number;\n evalTrend: number[];\n}\n\nconst fmtActive = (iso: string | null): string => {\n if (!iso) return \"—\";\n const diff = Date.now() - new Date(iso).getTime();\n const minutes = Math.floor(diff / 60000);\n if (minutes < 1) return \"just now\";\n if (minutes < 60) return `${minutes}m ago`;\n const hours = Math.floor(minutes / 60);\n if (hours < 24) return `${hours}h ago`;\n const days = Math.floor(hours / 24);\n return `${days}d ago`;\n};\n\nconst scoreColor = (score: number | null): string => {\n if (score === null) return \"#d9d9d9\";\n return score >= 80 ? \"#22c55e\" : score >= 50 ? \"#f59e0b\" : \"#ef4444\";\n};\n\nconst useStyles = createStyles(({ css }) => ({\n row: css`\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n `,\n}));\n\nconst valueStyle: React.CSSProperties = {\n fontSize: 16,\n fontWeight: 700,\n lineHeight: 1.2,\n cursor: \"help\",\n};\nconst labelStyle: React.CSSProperties = {\n fontSize: 10,\n color: \"rgba(0, 0, 0, 0.45)\",\n whiteSpace: \"nowrap\",\n marginTop: 1,\n};\nconst metricColumn: React.CSSProperties = {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n};\n\nexport const AgentCardStats: React.FC<{ stats?: AgentCardStatsData | null }> = ({ stats }) => {\n const { styles } = useStyles();\n\n if (!stats) {\n return (\n <div style={{ display: \"flex\", fontSize: 11, color: \"#d9d9d9\" }}>\n <span style={{ flex: 1 }}>score —</span>\n <span style={{ flex: 1 }}>threads —</span>\n </div>\n );\n }\n\n const score = stats.evalScore !== null ? Number(stats.evalScore).toFixed(1) : \"—\";\n const threads = stats.threadCount > 0 ? stats.threadCount : \"—\";\n const scoreTextColor = scoreColor(stats.evalScore);\n const passRate = stats.evalPassRate !== null ? `${stats.evalPassRate}%` : \"—\";\n\n return (\n <div className={styles.row}>\n {/* Left: two StatCell-style metric columns */}\n <div style={{ display: \"flex\", gap: 16, alignItems: \"flex-end\" }}>\n <Tooltip title={`Eval score: ${score} · pass rate ${passRate} · ${stats.evalRuns} runs`}>\n <div style={metricColumn}>\n <span style={{ ...valueStyle, color: scoreTextColor }}>{score}</span>\n <span className=\"lattice-stat-label\" style={labelStyle}>eval score</span>\n </div>\n </Tooltip>\n <Tooltip title={`Conversations: ${stats.threadCount} total · ${stats.last7d} in 7d · ${stats.last30d} in 30d${stats.lastActive ? ` · last active ${fmtActive(stats.lastActive)}` : \"\"}`}>\n <div style={metricColumn}>\n <span style={{ ...valueStyle, color: threads === \"—\" ? \"#d9d9d9\" : \"#595959\" }}>{threads}</span>\n <span className=\"lattice-stat-label\" style={labelStyle}>threads</span>\n </div>\n </Tooltip>\n </div>\n\n {/* Right: bar chart */}\n {stats.daily7d.length > 0 && (\n <div style={metricColumn}>\n <MiniBarChart values={stats.daily7d} width={40} height={24} color=\"#8c8c8c\" />\n <span className=\"lattice-stat-label\" style={labelStyle}>7d threads</span>\n </div>\n )}\n </div>\n );\n};\n","import React, { useState, useCallback, useEffect, useRef } from \"react\";\nimport {\n Modal,\n Form,\n Input,\n InputNumber,\n Button,\n Select,\n message,\n Typography,\n Segmented,\n Divider,\n Space,\n Radio,\n} from \"antd\";\nimport { PlusOutlined, ForkOutlined, ApiOutlined, ExperimentOutlined } from \"@ant-design/icons\";\nimport { useApi } from \"../../hooks/useApi\";\nimport { useClient } from \"../../context\";\nimport { ParentAgentSelector } from \"./ParentAgentSelector\";\nimport { SubAgentInheritList, SubAgentDecision } from \"./SubAgentInheritList\";\nimport type { Assistant, LocalA2ATemplateDefinition } from \"@axiom-lattice/client-sdk\";\nimport type { AgentCard, TaskFileRef } from \"@axiom-lattice/protocols\";\nimport { getLocalRuntimeCommandError } from \"./localRuntimeValidation\";\nimport { shortHash, startLearningRound, buildBuilderThreadId, buildLearningKickoff } from \"../Governance/Learning/trainingUtils\";\nimport { ReferenceFilesUpload } from \"../Governance/Learning/ReferenceFilesUpload\";\nimport { TrainingContextCard } from \"../Governance/Learning/TrainingContextCard\";\nimport { useWorkspaceContext } from \"../../context/WorkspaceContext\";\n\nconst { TextArea } = Input;\nconst { Text } = Typography;\n\nexport type CreationMode = \"scratch\" | \"extend\" | \"learn\";\ntype AgentCardProtocol = \"http://\" | \"https://\";\n\nconst AGENT_CARD_PATH = \"/.well-known/agent-card.json\";\n\nconst AGENT_CARD_PROTOCOL_OPTIONS: Array<{ value: AgentCardProtocol; label: AgentCardProtocol }> = [\n { value: \"http://\", label: \"http://\" },\n { value: \"https://\", label: \"https://\" },\n];\n\ninterface TestConnectionSuccessData {\n reachable: boolean;\n agentName?: string;\n agentCard?: Partial<AgentCard>;\n error?: string;\n}\n\nconst AGENT_TYPE_DESCRIPTIONS: Record<string, string> = {\n react: \"Executor: Directly executes tasks using tools. Best for single-step operations like search, code execution, and data retrieval.\",\n deep_agent: \"Orchestrator: Manages a sequential todo list to plan and assign todo items to sub-agents. Best for structured multi-step workflows.\",\n team: \"Team: Creates tasks with dependencies and dynamically spawns teammates. Like a swarm, teammates communicate via mailbox. Best for tasks requiring exploration and divergent thinking.\",\n processing: \"Workflow: Enforces a fixed workflow topology by delegating to sub-agents in a predefined order. Best for deterministic multi-step processes with validated delegation paths.\",\n a2a_remote: \"A2A Remote: Delegates to an external A2A-compatible agent server. Use for local CLI tools (Claude Code, Codex, OpenCode) or remote agents.\",\n};\n\nfunction normalizeAgentCardUrl(\n value: unknown,\n protocol: unknown,\n defaultProtocol: AgentCardProtocol = \"https://\",\n): string {\n const raw = String(value ?? \"\").trim();\n if (!raw) return \"\";\n\n const selectedProtocol =\n protocol === \"http://\" || protocol === \"https://\"\n ? protocol\n : defaultProtocol;\n const withProtocol = /^https?:\\/\\//i.test(raw)\n ? raw\n : `${selectedProtocol}${raw.replace(/^\\/+/, \"\")}`;\n\n const trimmed = withProtocol.replace(/\\/+$/, \"\");\n if (trimmed.endsWith(AGENT_CARD_PATH)) {\n return trimmed;\n }\n\n return `${trimmed}${AGENT_CARD_PATH}`;\n}\n\nfunction getAgentCardPort(agentCardUrl: string): string | undefined {\n try {\n return new URL(agentCardUrl).port || undefined;\n } catch {\n return undefined;\n }\n}\n\nfunction commandArgsDeclarePort(args: string[]): boolean {\n return args.some(\n (arg) => arg === \"--port\" || arg === \"-p\" || /^--port=/.test(arg) || /^-p=/.test(arg),\n );\n}\n\nfunction buildTemplateCommand(\n command: LocalA2ATemplateDefinition[\"command\"],\n agentCardUrl: string,\n): LocalA2ATemplateDefinition[\"command\"] {\n const args = [...command.args];\n const port = getAgentCardPort(agentCardUrl);\n if (port && !commandArgsDeclarePort(args)) {\n args.push(\"--port\", port);\n }\n\n return {\n ...command,\n args,\n ...(command.env ? { env: { ...command.env } } : {}),\n };\n}\n\nexport interface CreateAssistantModalProps {\n open: boolean;\n onCancel: () => void;\n onSuccess?: (assistant: Assistant, options?: { initialMessage?: string; projectId?: string; initialMessageCustomRunConfig?: Record<string, unknown> }) => void;\n initialMode?: CreationMode;\n initialValues?: Record<string, unknown>;\n}\n\nexport const CreateAssistantModal: React.FC<CreateAssistantModalProps> = ({\n open,\n onCancel,\n onSuccess,\n initialMode,\n initialValues,\n}) => {\n const [form] = Form.useForm();\n const [loading, setLoading] = useState(false);\n const [creationMode, setCreationMode] = useState<CreationMode>(\"learn\");\n const [learnGoal, setLearnGoal] = useState(\"\");\n const [parentAssistant, setParentAssistant] = useState<Assistant | null>(null);\n const [subAgentDecisions, setSubAgentDecisions] = useState<SubAgentDecision[]>([]);\n const selectedType = Form.useWatch(\"type\", form) || \"react\";\n const isA2ARemote = selectedType === \"a2a_remote\";\n const [a2aMode, setA2aMode] = useState<\"remote\" | \"local\">(\"remote\");\n const [a2aTemplateKey, setA2aTemplateKey] = useState<string | undefined>(undefined);\n const [templates, setTemplates] = useState<LocalA2ATemplateDefinition[]>([]);\n const [templatesLoading, setTemplatesLoading] = useState(false);\n const templateRequestId = useRef(0);\n const [testingUrl, setTestingUrl] = useState(false);\n const [showCustomCommand, setShowCustomCommand] = useState(false);\n const { get, post, put } = useApi();\n const architectClient = useClient(\"agent-architect\");\n const { workspaceId, trainingProjects, loading: workspaceLoading } = useWorkspaceContext();\n const [selectedTrainingId, setSelectedTrainingId] = useState<string | null>(null);\n const initialValuesKey = JSON.stringify(initialValues ?? null);\n /** Learning rounds are pinned to a training project (default: first) — never a business project. */\n const trainingProject =\n trainingProjects.find((p) => p.id === selectedTrainingId) ?? trainingProjects[0] ?? null;\n /** Reference files uploaded to the selected training project, stored on the round task. */\n const [learnRefFiles, setLearnRefFiles] = useState<TaskFileRef[]>([]);\n\n const resetExtendState = useCallback(() => {\n setParentAssistant(null);\n setSubAgentDecisions([]);\n }, []);\n\n const resetModalState = useCallback(() => {\n form.resetFields();\n resetExtendState();\n setCreationMode(\"learn\");\n setLearnGoal(\"\");\n setLearnRefFiles([]);\n setSelectedTrainingId(null);\n setA2aMode(\"remote\");\n setA2aTemplateKey(undefined);\n setTemplates([]);\n setShowCustomCommand(false);\n setTestingUrl(false);\n }, [form, resetExtendState]);\n\n useEffect(() => {\n if (open) {\n resetModalState();\n setCreationMode(initialMode ?? \"learn\");\n const initialA2aMode = initialValues?.a2aMode;\n if (initialA2aMode === \"remote\" || initialA2aMode === \"local\") {\n setA2aMode(initialA2aMode);\n }\n form.setFieldsValue({\n type: \"react\",\n agentCardProtocol: \"https://\",\n a2aMode: \"remote\",\n timeout: 300000,\n ...initialValues,\n });\n }\n }, [open, form, initialMode, initialValuesKey, resetModalState]);\n\n useEffect(() => {\n const requestId = ++templateRequestId.current;\n let active = true;\n\n if (open && isA2ARemote) {\n form.setFieldValue(\"prompt\", \"\");\n if (a2aMode === \"local\") {\n setTemplatesLoading(true);\n get<{ success: boolean; data: { records: LocalA2ATemplateDefinition[] } }>(\"/api/local-a2a/templates\")\n .then((data) => {\n if (active && requestId === templateRequestId.current && data?.data?.records) {\n setTemplates(data.data.records);\n }\n })\n .catch(() => {\n if (active && requestId === templateRequestId.current) setTemplates([]);\n })\n .finally(() => {\n if (active && requestId === templateRequestId.current) setTemplatesLoading(false);\n });\n } else {\n setTemplatesLoading(false);\n }\n } else {\n setTemplatesLoading(false);\n }\n\n return () => {\n active = false;\n templateRequestId.current += 1;\n };\n }, [form, isA2ARemote, a2aMode, get, open]);\n\n const selectedTemplate = templates.find((t) => t.key === a2aTemplateKey);\n\n const ensureLocalRuntimeCommand = useCallback((): boolean => {\n const error = getLocalRuntimeCommandError({\n mode: a2aMode,\n templateKey: a2aTemplateKey,\n executable: form.getFieldValue(\"commandExecutable\"),\n });\n if (!error) return true;\n\n setShowCustomCommand(true);\n form.setFields([{ name: \"commandExecutable\", errors: [error] }]);\n message.warning(error);\n return false;\n }, [a2aMode, a2aTemplateKey, form]);\n\n useEffect(() => {\n if (selectedTemplate) {\n form.setFieldsValue({\n agentCardProtocol: \"http://\",\n });\n }\n }, [form, selectedTemplate]);\n\n const handleTestConnection = useCallback(async () => {\n if (!ensureLocalRuntimeCommand()) return;\n\n const url = normalizeAgentCardUrl(\n form.getFieldValue(\"agentCardUrl\"),\n form.getFieldValue(\"agentCardProtocol\"),\n a2aMode === \"local\" ? \"http://\" : \"https://\",\n );\n if (!url) {\n message.warning(\"Please enter an A2A server URL first\");\n return;\n }\n setTestingUrl(true);\n try {\n const body: Record<string, any> = { agentCardUrl: url, apiKey: form.getFieldValue(\"apiKey\") };\n\n if (a2aMode === \"local\") {\n const template = selectedTemplate;\n if (template) {\n body.localRuntime = {\n label: form.getFieldValue(\"name\") || undefined,\n agentCardUrl: url,\n command: buildTemplateCommand(template.command, url),\n };\n } else {\n const argsStr = form.getFieldValue(\"commandArgs\") || \"\";\n const args = argsStr ? argsStr.split(/\\s+/).filter(Boolean) : [];\n const commandCwd = String(form.getFieldValue([\"command\", \"cwd\"]) || \"\").trim();\n body.localRuntime = {\n label: form.getFieldValue(\"name\") || undefined,\n agentCardUrl: url,\n command: {\n executable: String(\n form.getFieldValue(\"commandExecutable\") || \"\",\n ).trim(),\n args,\n ...(commandCwd ? { cwd: commandCwd } : {}),\n },\n };\n }\n }\n\n const data = await post<{ success: boolean; data?: TestConnectionSuccessData }>(\n \"/api/a2a/test-connection\",\n body\n );\n if (data.data?.reachable) {\n const agentCard = data.data.agentCard;\n message.success(`Connected to \"${data.data.agentName || url}\"`);\n } else {\n message.error(data.data?.error || \"Connection failed\");\n }\n } catch {\n message.error(\"Connection test failed\");\n } finally {\n setTestingUrl(false);\n }\n }, [form, post, a2aMode, selectedTemplate, ensureLocalRuntimeCommand]);\n\n /** Handle parent agent selection in extend mode */\n const handleParentSelect = useCallback(\n (assistant: Assistant | null) => {\n setParentAssistant(assistant);\n\n if (!assistant) {\n form.resetFields([\"key\", \"name\", \"description\", \"type\", \"prompt\"]);\n setSubAgentDecisions([]);\n return;\n }\n\n const graphDef =\n typeof assistant.graphDefinition === \"object\" && assistant.graphDefinition !== null\n ? assistant.graphDefinition\n : {};\n\n // Pre-fill the form with parent's values, including default key/name/description\n const parentKey = graphDef.key || assistant.id;\n const parentName = assistant.name || graphDef.name || \"\";\n form.setFieldsValue({\n key: `${parentKey}_ext`,\n name: parentName ? `${parentName} (Extended)` : \"\",\n description: assistant.description || graphDef.description || \"\",\n type: graphDef.type || \"react\",\n prompt: graphDef.prompt || \"\",\n });\n\n // Initialize sub-agent decisions (default: reuse all)\n const parentSubAgents: string[] = graphDef.subAgents || [];\n setSubAgentDecisions(\n parentSubAgents.map((key: string) => ({ originalKey: key, clone: false }))\n );\n },\n [form]\n );\n\n /** Clone a sub-agent via the API and return the created Assistant */\n const cloneSubAgent = async (\n originalKey: string,\n newKey: string\n ): Promise<Assistant> => {\n // Fetch the original sub-agent's config\n const getData = await get<{ success: boolean; data: Assistant }>(`/api/assistants/${originalKey}`);\n\n if (!getData.success) {\n throw new Error(`Failed to fetch sub-agent \"${originalKey}\" for cloning`);\n }\n\n const originalAssistant = getData.data;\n const originalGraphDef =\n typeof originalAssistant.graphDefinition === \"object\"\n ? originalAssistant.graphDefinition\n : {};\n\n const cloneBody = {\n id: newKey,\n name: `${originalAssistant.name} (Clone)`,\n description: originalAssistant.description || \"\",\n graphDefinition: {\n ...originalGraphDef,\n key: newKey,\n name: `${originalAssistant.name} (Clone)`,\n },\n };\n\n const createData = await post<{ success: boolean; data: Assistant; message?: string }>(\"/api/assistants\", cloneBody);\n\n if (!createData.success) {\n throw new Error(createData.message || `Failed to clone sub-agent \"${originalKey}\"`);\n }\n\n return createData.data;\n };\n\n /** Build the request body for \"create from scratch\" mode */\n const buildScratchBody = (values: any) => {\n const body: Record<string, any> = {\n id: values.key,\n name: values.name,\n description: values.description || \"\",\n graphDefinition: {\n key: values.key,\n name: values.name,\n description: values.description || \"\",\n type: values.type,\n prompt: values.prompt || \"\",\n tools: [],\n skills: [],\n subAgents: (values.type === \"deep_agent\" || values.type === \"processing\") ? [] : undefined,\n middleware: [],\n },\n };\n\n // A2A_REMOTE specific fields\n if (values.type === \"a2a_remote\") {\n body.graphDefinition.agentCardUrl = normalizeAgentCardUrl(\n values.agentCardUrl,\n values.agentCardProtocol,\n (values.a2aMode || a2aMode) === \"local\" ? \"http://\" : \"https://\",\n );\n if (values.apiKey) body.graphDefinition.apiKey = values.apiKey;\n if (values.timeout) body.graphDefinition.timeout = values.timeout;\n\n if ((values.a2aMode || a2aMode) === \"local\") {\n const template = selectedTemplate;\n if (template) {\n body.graphDefinition.localRuntime = {\n label: values.name || undefined,\n agentCardUrl: body.graphDefinition.agentCardUrl,\n command: buildTemplateCommand(template.command, body.graphDefinition.agentCardUrl),\n };\n } else {\n const argsStr = values.commandArgs || \"\";\n const args = argsStr ? argsStr.split(/\\s+/).filter(Boolean) : [];\n const commandCwd = String(values.command?.cwd || \"\").trim();\n body.graphDefinition.localRuntime = {\n label: values.name || undefined,\n agentCardUrl: body.graphDefinition.agentCardUrl,\n command: {\n executable: String(values.commandExecutable || \"\").trim(),\n args,\n ...(commandCwd ? { cwd: commandCwd } : {}),\n },\n };\n }\n }\n }\n\n return body;\n };\n\n /** Build the request body for \"extend agent\" mode, creating cloned sub-agents first */\n const buildExtendBody = async (\n values: any,\n createdAssistants: Assistant[]\n ) => {\n if (!parentAssistant) {\n throw new Error(\"No parent agent selected\");\n }\n\n // Validate clone keys before proceeding\n const cloneDecisions = subAgentDecisions.filter((d) => d.clone);\n for (const decision of cloneDecisions) {\n if (!decision.cloneKey || !decision.cloneKey.trim()) {\n throw new Error(\n `Please provide a key for the cloned sub-agent \"${decision.originalKey}\"`\n );\n }\n if (!/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(decision.cloneKey)) {\n throw new Error(\n `Invalid key \"${decision.cloneKey}\" for cloned sub-agent \"${decision.originalKey}\". Key must start with a letter and contain only letters, numbers, underscores, or hyphens.`\n );\n }\n }\n\n // First, create all cloned sub-agents, then create the child agent\n const resolvedSubAgents: string[] = [];\n for (const decision of subAgentDecisions) {\n if (decision.clone) {\n const clonedAssistant = await cloneSubAgent(decision.originalKey, decision.cloneKey!);\n createdAssistants.push(clonedAssistant);\n resolvedSubAgents.push(decision.cloneKey!);\n } else {\n resolvedSubAgents.push(decision.originalKey);\n }\n }\n\n const parentGraphDef =\n typeof parentAssistant.graphDefinition === \"object\"\n ? parentAssistant.graphDefinition\n : {};\n\n // Build graphDefinition with only overridden fields + extendsAgent\n const graphDefinition: Record<string, any> = {\n key: values.key,\n name: values.name,\n description: values.description || \"\",\n extendsAgent: parentAssistant.id,\n type: values.type || parentGraphDef.type,\n };\n\n // Only include prompt if it differs from parent\n if (values.prompt && values.prompt !== parentGraphDef.prompt) {\n graphDefinition.prompt = values.prompt;\n }\n\n // Always set resolved sub-agents (they may contain cloned keys)\n if (resolvedSubAgents.length > 0 || (parentGraphDef.subAgents && parentGraphDef.subAgents.length > 0)) {\n graphDefinition.subAgents = resolvedSubAgents;\n }\n\n return {\n id: values.key,\n name: values.name,\n description: values.description || \"\",\n graphDefinition,\n };\n };\n\n /** Handle form submission */\n const handleSubmit = async () => {\n if (creationMode === \"learn\") {\n const goal = learnGoal.trim();\n if (!goal) {\n message.error(\"Please describe the training goal\");\n return;\n }\n if (!trainingProject) {\n message.error(\"No shared training project available\");\n return;\n }\n setLoading(true);\n try {\n const agentId = `agent-${shortHash(goal + Date.now())}`;\n const agentRes = await post<{ success: boolean; data: Assistant }>(\"/api/assistants\", {\n id: agentId,\n name: agentId,\n graphDefinition: {\n key: agentId,\n name: agentId,\n description: \"\",\n type: \"react\",\n prompt: \"To be trained\",\n metadata: {\n trainingProjectId: trainingProject.id,\n learningPlaceholder: \"true\",\n architectureStatus: \"undecided\",\n },\n },\n });\n if (!agentRes.data) throw new Error(\"Failed to create agent\");\n const { roundTaskId } = await startLearningRound({\n goal,\n targetAgentId: agentId,\n workspaceId: workspaceId ?? undefined,\n projectId: trainingProject.id,\n existingThreadId: buildBuilderThreadId(architectClient.tenantId, agentId),\n files: learnRefFiles,\n post,\n put,\n });\n message.success(\"Agent created — architect started building\");\n setLearnGoal(\"\");\n setLearnRefFiles([]);\n setCreationMode(\"learn\");\n onSuccess?.(agentRes.data, {\n initialMessage: buildLearningKickoff({\n goal,\n roundTaskId,\n targetAgentId: agentId,\n targetMode: \"placeholder\",\n files: learnRefFiles,\n projectId: trainingProject.id,\n workspaceId: trainingProject.workspaceId ?? workspaceId ?? undefined,\n }),\n projectId: trainingProject.id,\n initialMessageCustomRunConfig: { execution: { taskId: roundTaskId } },\n });\n onCancel();\n } catch (err) {\n message.error(err instanceof Error ? err.message : \"Failed to create agent\");\n } finally {\n setLoading(false);\n }\n return;\n }\n\n try {\n if (\n creationMode === \"scratch\" &&\n isA2ARemote &&\n !ensureLocalRuntimeCommand()\n ) {\n return;\n }\n const values = await form.validateFields();\n setLoading(true);\n\n // Collect all assistants created during the extend flow (cloned sub-agents)\n const createdAssistants: Assistant[] = [];\n\n const requestBody =\n creationMode === \"scratch\"\n ? buildScratchBody(values)\n : await buildExtendBody(values, createdAssistants);\n\n const data = await post<{ success: boolean; data: Assistant; message?: string }>(\"/api/assistants\", requestBody);\n\n if (data.success) {\n message.success(\n creationMode === \"extend\"\n ? `Assistant created by extending \"${parentAssistant?.name}\"`\n : \"Assistant created successfully\"\n );\n resetModalState();\n\n // Notify about all created assistants: cloned sub-agents first, then child\n for (const clonedAssistant of createdAssistants) {\n onSuccess?.(clonedAssistant);\n }\n onSuccess?.(data.data);\n\n onCancel();\n } else {\n message.error(data.message || \"Failed to create assistant\");\n }\n } catch (error: any) {\n if (error?.errorFields) {\n const fieldLabels: Record<string, string> = {\n key: \"Key (ID)\",\n name: \"Name\",\n description: \"Description\",\n prompt: \"System Prompt\",\n };\n const failed = (error.errorFields as Array<{ name?: (string | number)[] }>)\n .map((f) => fieldLabels[String((f.name ?? [])[0])] ?? String((f.name ?? [])[0]))\n .filter(Boolean);\n message.warning(\n failed.length > 0\n ? `Please complete the required fields: ${[...new Set(failed)].join(\", \")}`\n : \"Please complete the required fields\"\n );\n return;\n }\n message.error(\n error.message || \"An error occurred while creating the assistant\"\n );\n } finally {\n setLoading(false);\n }\n };\n\n /** Determine if the parent has sub-agents to show the inherit list */\n const parentSubAgents: string[] =\n parentAssistant?.graphDefinition?.subAgents || [];\n const showSubAgentList =\n creationMode === \"extend\" && parentAssistant && parentSubAgents.length > 0;\n\n return (\n <Modal\n title=\"Create New Assistant\"\n open={open}\n onCancel={() => {\n resetModalState();\n onCancel();\n }}\n footer={[\n <Button\n key=\"cancel\"\n onClick={() => {\n resetModalState();\n onCancel();\n }}\n >\n Cancel\n </Button>,\n <Button\n key=\"submit\"\n type=\"primary\"\n icon={creationMode === \"extend\" ? <ForkOutlined /> : creationMode === \"learn\" ? <ExperimentOutlined /> : <PlusOutlined />}\n loading={loading}\n disabled={creationMode === \"learn\" && (workspaceLoading || !trainingProject)}\n onClick={handleSubmit}\n >\n {creationMode === \"extend\" ? \"Create (Extend)\" : creationMode === \"learn\" ? \"Start Learning\" : \"Create\"}\n </Button>,\n ]}\n width={760}\n >\n {/* Parent agent selector (extend mode only) */}\n {creationMode === \"extend\" && (\n <div style={{ marginBottom: 20 }}>\n <Text\n type=\"secondary\"\n style={{ display: \"block\", marginBottom: 8 }}\n >\n Parent Agent\n </Text>\n <ParentAgentSelector\n value={parentAssistant?.id}\n onSelect={handleParentSelect}\n />\n {parentAssistant && (\n <Text\n type=\"secondary\"\n style={{ display: \"block\", marginTop: 4, fontSize: 12 }}\n >\n Fields left unchanged will be inherited from the parent agent.\n </Text>\n )}\n </div>\n )}\n\n {creationMode === \"extend\" && parentAssistant && (\n <Divider style={{ margin: \"12px 0\" }} />\n )}\n\n {creationMode === \"learn\" && (\n <div>\n <Text style={{ display: \"block\", marginBottom: 8 }}>\n Describe what the agent should do.\n </Text>\n <Input.TextArea\n rows={3}\n value={learnGoal}\n onChange={(e) => setLearnGoal(e.target.value)}\n placeholder=\"e.g. Handle price disputes using the price protection policy\"\n />\n {trainingProject && (\n <div style={{ marginTop: 12 }}>\n <div style={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", gap: 12, marginBottom: 8 }}>\n <Text type=\"secondary\">Reference Files</Text>\n <TrainingContextCard\n project={trainingProject}\n projects={trainingProjects}\n value={trainingProject?.id ?? null}\n onChange={setSelectedTrainingId}\n loading={workspaceLoading}\n />\n </div>\n <ReferenceFilesUpload projectId={trainingProject.id} value={learnRefFiles} onChange={setLearnRefFiles} />\n <Text type=\"secondary\" style={{ display: \"block\", marginTop: 6, fontSize: 12 }}>\n Optional — uploaded to the shared training workspace and attached to the learning round; the architect reads them as round material.\n </Text>\n </div>\n )}\n {!trainingProject && !workspaceLoading && (\n <div style={{ marginTop: 12 }}>\n <TrainingContextCard\n project={trainingProject}\n projects={trainingProjects}\n value={null}\n onChange={setSelectedTrainingId}\n loading={workspaceLoading}\n />\n </div>\n )}\n </div>\n )}\n\n {creationMode !== \"learn\" && (\n <Form\n form={form}\n layout=\"vertical\"\n autoComplete=\"off\"\n initialValues={{ type: \"react\", agentCardProtocol: \"https://\", a2aMode: \"remote\" }}\n >\n <Form.Item\n name=\"key\"\n label=\"Key (ID)\"\n rules={[\n { required: true, message: \"Please enter a unique key\" },\n {\n pattern: /^[a-zA-Z][a-zA-Z0-9_-]*$/,\n message:\n \"Key must start with a letter and contain only letters, numbers, underscores, or hyphens\",\n },\n ]}\n style={{ marginBottom: 16 }}\n >\n <Input placeholder=\"e.g., my_assistant\" />\n </Form.Item>\n\n <Form.Item\n name=\"name\"\n label=\"Name\"\n rules={[{ required: true, message: \"Please enter a name\" }]}\n style={{ marginBottom: 16 }}\n >\n <Input placeholder=\"e.g., My Assistant\" />\n </Form.Item>\n\n <Form.Item\n name=\"description\"\n label=\"Description\"\n rules={[\n { required: true, message: \"Please enter a description\" },\n ]}\n style={{ marginBottom: 16 }}\n >\n <TextArea\n placeholder=\"Enter a description for this assistant...\"\n autoSize={{ minRows: 2, maxRows: 4 }}\n />\n </Form.Item>\n\n <Form.Item\n name=\"type\"\n label=\"Agent Type\"\n rules={[{ required: true }]}\n style={{ marginBottom: 16 }}\n >\n <Segmented\n options={[\n { value: \"react\", label: \"Executor\" },\n { value: \"deep_agent\", label: \"Orchestrator\" },\n { value: \"team\", label: \"Team\" },\n { value: \"processing\", label: \"Workflow\" },\n { value: \"a2a_remote\", label: \"A2A Remote\" },\n ]}\n block\n />\n </Form.Item>\n <Text\n type=\"secondary\"\n style={{ fontSize: 12, display: \"block\", marginTop: -12, marginBottom: 16, lineHeight: 1.5 }}\n >\n {AGENT_TYPE_DESCRIPTIONS[selectedType] || AGENT_TYPE_DESCRIPTIONS.react}\n </Text>\n\n {/* A2A Remote specific fields */}\n {isA2ARemote && (\n <>\n <Form.Item label=\"Connection Mode\" style={{ marginBottom: 16 }}>\n <Radio.Group\n value={a2aMode}\n onChange={(e) => {\n const nextMode = e.target.value as \"remote\" | \"local\";\n setA2aMode(nextMode);\n form.setFieldValue(\"a2aMode\", nextMode);\n if (nextMode === \"local\") {\n form.setFieldValue(\"agentCardProtocol\", \"http://\");\n }\n setA2aTemplateKey(undefined);\n }}\n optionType=\"button\"\n buttonStyle=\"solid\"\n >\n <Radio.Button value=\"remote\">Remote URL</Radio.Button>\n <Radio.Button value=\"local\">Local Managed</Radio.Button>\n </Radio.Group>\n </Form.Item>\n\n <Form.Item name=\"a2aMode\" noStyle hidden>\n <Input />\n </Form.Item>\n\n {a2aMode === \"local\" && (\n <>\n <Form.Item label=\"Template\" style={{ marginBottom: 16 }}>\n <Select\n placeholder=\"Choose a template...\"\n allowClear\n loading={templatesLoading}\n value={a2aTemplateKey}\n onChange={(val) => {\n setA2aTemplateKey(val);\n if (val) setShowCustomCommand(false);\n }}\n options={templates.map((t) => ({\n value: t.key,\n label: t.name || t.key,\n }))}\n notFoundContent={\n templatesLoading ? undefined : (\n <Text type=\"secondary\" style={{ padding: 8, display: \"block\" }}>\n No templates. Use \"Custom Command\" below.\n </Text>\n )\n }\n />\n </Form.Item>\n\n {!a2aTemplateKey && (\n <>\n {!showCustomCommand ? (\n <Button\n type=\"link\"\n onClick={() => setShowCustomCommand(true)}\n style={{ padding: 0, marginBottom: 16, display: \"block\" }}\n >\n + Custom Command\n </Button>\n ) : (\n <>\n <Form.Item\n name=\"commandExecutable\"\n label=\"Executable\"\n rules={[{\n required: true,\n whitespace: true,\n message: \"Executable is required\",\n }]}\n style={{ marginBottom: 16 }}\n >\n <Input placeholder=\"e.g. node, opencode, /usr/local/bin/my-server\" />\n </Form.Item>\n <Form.Item\n name=\"commandArgs\"\n label=\"Arguments\"\n style={{ marginBottom: 16 }}\n >\n <Input placeholder=\"e.g. --serve --port 4301\" />\n </Form.Item>\n <Form.Item\n name={[\"command\", \"cwd\"]}\n label=\"Working directory\"\n style={{ marginBottom: 16 }}\n >\n <Input placeholder=\"e.g. /Users/me/project\" />\n </Form.Item>\n <Button\n type=\"link\"\n onClick={() => {\n setShowCustomCommand(false);\n form.setFieldsValue({\n commandExecutable: \"\",\n commandArgs: \"\",\n command: { cwd: undefined },\n });\n }}\n style={{ padding: 0, marginBottom: 16, display: \"block\" }}\n >\n - Hide Custom Command\n </Button>\n </>\n )}\n </>\n )}\n </>\n )}\n\n <Form.Item\n label=\"Agent Card URL\"\n required\n style={{ marginBottom: 16 }}\n >\n <Space.Compact style={{ width: \"100%\" }}>\n <Form.Item name=\"agentCardProtocol\" noStyle>\n <Select\n style={{ width: 100 }}\n options={AGENT_CARD_PROTOCOL_OPTIONS}\n />\n </Form.Item>\n <Form.Item\n name=\"agentCardUrl\"\n noStyle\n rules={[{ required: true, message: \"Please enter the A2A server URL\" }]}\n >\n <Input placeholder={a2aMode === \"local\" ? \"localhost:4301\" : \"host:port or full URL\"} />\n </Form.Item>\n <Button\n icon={<ApiOutlined />}\n onClick={handleTestConnection}\n loading={testingUrl}\n >\n Test\n </Button>\n </Space.Compact>\n </Form.Item>\n\n {a2aMode === \"remote\" && (\n <Form.Item\n name=\"apiKey\"\n label=\"API Key (optional)\"\n style={{ marginBottom: 16 }}\n >\n <Input.Password placeholder=\"API key for authentication\" />\n </Form.Item>\n )}\n\n <Form.Item\n name=\"timeout\"\n label=\"Timeout (ms)\"\n style={{ marginBottom: 16 }}\n initialValue={300000}\n >\n <InputNumber\n min={1000}\n max={3600000}\n style={{ width: \"100%\" }}\n placeholder=\"300000\"\n />\n </Form.Item>\n </>\n )}\n\n {!isA2ARemote && (\n <Form.Item\n name=\"prompt\"\n label={\n creationMode === \"extend\" && parentAssistant\n ? \"System Prompt (leave unchanged to inherit from parent)\"\n : \"System Prompt\"\n }\n rules={\n creationMode === \"scratch\"\n ? [{ required: true, message: \"Please enter a system prompt\" }]\n : []\n }\n >\n <TextArea\n placeholder={\n creationMode === \"extend\" && parentAssistant\n ? \"Leave empty to inherit parent's prompt, or enter a new prompt to override...\"\n : \"Enter the system prompt for this agent...\"\n }\n autoSize={{ minRows: 4, maxRows: 8 }}\n style={{\n fontFamily: \"monospace\",\n fontSize: 13,\n lineHeight: 1.6,\n }}\n />\n </Form.Item>\n )}\n </Form>\n )}\n\n {/* Sub-agent inherit list (extend mode only, when parent has sub-agents) */}\n {showSubAgentList && (\n <>\n <Divider style={{ margin: \"12px 0\" }} />\n <Text strong style={{ display: \"block\", marginBottom: 8 }}>\n Sub-Agents\n </Text>\n <SubAgentInheritList\n subAgentKeys={parentSubAgents}\n decisions={subAgentDecisions}\n onChange={setSubAgentDecisions}\n />\n </>\n )}\n </Modal>\n );\n};\n\nexport default CreateAssistantModal;\n","import React, { useCallback, useEffect, useState } from \"react\";\nimport { Select, Typography } from \"antd\";\nimport { useApi } from \"../../hooks/useApi\";\nimport type { Assistant } from \"@axiom-lattice/client-sdk\";\n\nconst { Text } = Typography;\n\nexport interface ParentAgentSelectorProps {\n /**\n * Callback when a parent agent is selected.\n * Receives the full assistant object including its graphDefinition.\n * Called with null when the selection is cleared.\n */\n onSelect: (assistant: Assistant | null) => void;\n /**\n * Currently selected parent agent key (controlled mode)\n */\n value?: string;\n /**\n * Placeholder text for the selector\n */\n placeholder?: string;\n}\n\n/**\n * ParentAgentSelector - A dropdown component that fetches and displays\n * available agents for selection as a parent in the \"Extend Agent\" flow.\n */\nexport const ParentAgentSelector: React.FC<ParentAgentSelectorProps> = ({\n onSelect,\n value,\n placeholder = \"Select a parent agent to extend...\",\n}) => {\n const [assistants, setAssistants] = useState<Assistant[]>([]);\n const [loading, setLoading] = useState(false);\n const { get } = useApi();\n\n const fetchAssistants = useCallback(async () => {\n setLoading(true);\n try {\n const data = await get<{\n success: boolean;\n data?: { records: Assistant[] };\n }>(\"/api/assistants\");\n\n if (data.success) {\n setAssistants(data.data?.records || []);\n }\n } catch (error) {\n console.error(\"Failed to fetch assistants:\", error);\n } finally {\n setLoading(false);\n }\n }, [get]);\n\n useEffect(() => {\n void fetchAssistants();\n }, [fetchAssistants]);\n\n const handleChange = (selectedId: string | undefined) => {\n if (!selectedId) {\n onSelect(null);\n return;\n }\n const selected = assistants.find((a) => a.id === selectedId);\n onSelect(selected || null);\n };\n\n const handleOpenChange = (open: boolean) => {\n if (open) {\n void fetchAssistants();\n }\n };\n\n return (\n <Select\n showSearch\n allowClear\n value={value}\n placeholder={placeholder}\n loading={loading}\n onChange={handleChange}\n onDropdownVisibleChange={handleOpenChange}\n optionFilterProp=\"label\"\n style={{ width: \"100%\" }}\n options={assistants.map((assistant) => ({\n value: assistant.id,\n label: assistant.name || assistant.id,\n description: assistant.description,\n }))}\n optionRender={(option) => (\n <div>\n <div>{option.label}</div>\n {option.data.description && (\n <Text type=\"secondary\" style={{ fontSize: 12 }}>\n {option.data.description}\n </Text>\n )}\n </div>\n )}\n />\n );\n};\n\nexport default ParentAgentSelector;\n","import React from \"react\";\nimport { List, Switch, Input, Typography, Tag, theme } from \"antd\";\nimport { ForkOutlined, LinkOutlined } from \"@ant-design/icons\";\n\nconst { Text } = Typography;\n\n/**\n * Decision for a single sub-agent: reuse the original or clone as a new agent\n */\nexport interface SubAgentDecision {\n /** The original sub-agent key from the parent */\n originalKey: string;\n /** Whether to clone this sub-agent as a new independent agent */\n clone: boolean;\n /** Custom key for the cloned sub-agent (only used when clone is true) */\n cloneKey?: string;\n}\n\nexport interface SubAgentInheritListProps {\n /**\n * Array of sub-agent keys from the parent agent\n */\n subAgentKeys: string[];\n /**\n * Current decisions for each sub-agent\n */\n decisions: SubAgentDecision[];\n /**\n * Callback when decisions change\n */\n onChange: (decisions: SubAgentDecision[]) => void;\n}\n\n/**\n * SubAgentInheritList - Displays the parent agent's sub-agents and provides\n * a per-sub-agent toggle to choose between reusing the original sub-agent\n * or cloning it as a new independent agent. When cloning, allows the user\n * to specify a custom key for the new agent.\n */\nexport const SubAgentInheritList: React.FC<SubAgentInheritListProps> = ({\n subAgentKeys,\n decisions,\n onChange,\n}) => {\n const { token } = theme.useToken();\n\n const handleToggle = (key: string, clone: boolean) => {\n const updated = decisions.map((d) =>\n d.originalKey === key\n ? { ...d, clone, cloneKey: clone ? `${key}_clone` : undefined }\n : d\n );\n onChange(updated);\n };\n\n const handleCloneKeyChange = (originalKey: string, cloneKey: string) => {\n const updated = decisions.map((d) =>\n d.originalKey === originalKey ? { ...d, cloneKey } : d\n );\n onChange(updated);\n };\n\n if (subAgentKeys.length === 0) {\n return null;\n }\n\n return (\n <div>\n <Text type=\"secondary\" style={{ display: \"block\", marginBottom: 8 }}>\n Choose how to handle each sub-agent from the parent:\n </Text>\n <List\n size=\"small\"\n bordered\n dataSource={decisions}\n style={{ borderRadius: token.borderRadius }}\n renderItem={(decision) => (\n <List.Item\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"stretch\",\n gap: 8,\n padding: \"8px 16px\",\n }}\n >\n <div style={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8 }}>\n {decision.clone ? (\n <ForkOutlined style={{ color: token.colorPrimary }} />\n ) : (\n <LinkOutlined style={{ color: token.colorTextSecondary }} />\n )}\n <Text style={{ fontFamily: \"monospace\" }}>\n {decision.originalKey}\n </Text>\n </div>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: 8 }}>\n <Tag color={decision.clone ? \"blue\" : \"default\"}>\n {decision.clone ? \"Clone as new\" : \"Reuse\"}\n </Tag>\n <Switch\n size=\"small\"\n checked={decision.clone}\n onChange={(checked) => handleToggle(decision.originalKey, checked)}\n />\n </div>\n </div>\n {decision.clone && (\n <Input\n size=\"small\"\n placeholder=\"Enter key for the cloned agent\"\n value={decision.cloneKey}\n onChange={(e) => handleCloneKeyChange(decision.originalKey, e.target.value)}\n style={{ fontFamily: \"monospace\", fontSize: 12 }}\n addonBefore=\"Key\"\n />\n )}\n </List.Item>\n )}\n />\n </div>\n );\n};\n\nexport default SubAgentInheritList;\n","export type A2AConnectionMode = \"remote\" | \"local\";\n\nexport function getLocalRuntimeCommandError(options: {\n mode: A2AConnectionMode;\n templateKey?: string;\n executable?: unknown;\n}): string | null {\n if (options.mode !== \"local\" || options.templateKey) return null;\n if (\n typeof options.executable === \"string\" &&\n options.executable.trim().length > 0\n ) {\n return null;\n }\n return \"Choose a template or enter a custom executable\";\n}\n","import React from \"react\";\nimport { Button, Modal, Typography } from \"antd\";\nimport { Bot, Globe2, GraduationCap } from \"lucide-react\";\n\nconst { Paragraph, Text } = Typography;\n\nexport interface AgentCreationOnboardingModalProps {\n open: boolean;\n onCancel: () => void;\n onSelectMethod: (method: AgentCreationMethod) => void;\n focusTriggerAfterClose?: boolean;\n}\n\nexport type AgentCreationMethod = \"manual\" | \"external\" | \"learn\";\n\nconst methods = [\n {\n key: \"manual\",\n icon: Bot,\n title: \"Manual Configuration\",\n description: \"Define the agent's identity, type, tools, and system prompt yourself.\",\n },\n {\n key: \"external\",\n icon: Globe2,\n title: \"External Agent\",\n description: \"Connect an existing A2A-compatible agent by URL or manage a local runtime.\",\n },\n {\n key: \"learn\",\n icon: GraduationCap,\n title: \"Learn with Agent Architect\",\n description: \"Describe the goal and let Agent Architect build and evaluate the agent with training context.\",\n },\n] as const satisfies ReadonlyArray<{\n key: AgentCreationMethod;\n icon: typeof Bot;\n title: string;\n description: string;\n}>;\n\nexport const AgentCreationOnboardingModal: React.FC<AgentCreationOnboardingModalProps> = ({\n open,\n onCancel,\n onSelectMethod,\n focusTriggerAfterClose = true,\n}) => (\n <Modal\n title=\"Choose how to create your agent\"\n open={open}\n onCancel={onCancel}\n footer={null}\n width={560}\n centered\n destroyOnHidden\n focusTriggerAfterClose={focusTriggerAfterClose}\n >\n <div style={{ padding: \"8px 4px 4px\" }}>\n <Paragraph style={{ color: \"#595959\", fontSize: 15, margin: \"8px 0 24px\" }}>\n Choose the path that best fits the agent you want to build.\n </Paragraph>\n\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n gap: 12,\n }}\n >\n {methods.map((method) => {\n const Icon = method.icon;\n return (\n <Button\n key={method.key}\n type=\"default\"\n onClick={() => onSelectMethod(method.key)}\n aria-label={method.title}\n style={{\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: 16,\n width: \"100%\",\n minHeight: 88,\n height: \"auto\",\n padding: 16,\n borderRadius: 16,\n textAlign: \"left\",\n whiteSpace: \"normal\",\n }}\n >\n <div\n style={{\n width: 40,\n height: 40,\n borderRadius: 12,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n color: \"#6366f1\",\n background: \"#eeeeff\",\n }}\n >\n <Icon size={19} />\n </div>\n <div style={{ minWidth: 0 }}>\n <Text strong style={{ display: \"block\", fontSize: 15, marginBottom: 3 }}>\n {method.title}\n </Text>\n <Text style={{ color: \"#737373\", lineHeight: 1.5 }}>{method.description}</Text>\n </div>\n </Button>\n );\n })}\n </div>\n\n <div style={{ display: \"flex\", justifyContent: \"flex-end\", gap: 8, flexWrap: \"wrap\", marginTop: 24 }}>\n <Button onClick={onCancel}>Not now</Button>\n </div>\n </div>\n </Modal>\n);\n"],"mappings":"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","names":["React","useCallback","useEffect","useState","message","Modal","useMemo","useState","Tooltip","jsx","jsxs","jsx","jsxs","jsx","jsxs","useState","useMemo","Tooltip","useState","useCallback","useEffect","Input","Select","Typography","ForkOutlined","useEffect","useState","jsx","jsxs","useState","useEffect","Typography","Tag","jsx","jsxs","Text","Fragment","jsx","jsxs","Input","Text","Typography","useState","useCallback","useEffect","parentSubAgents","ForkOutlined","Select","Button","Modal","Typography","Bot","jsx","jsxs","Text","Fragment","jsx","jsxs","useState","useCallback","message","useEffect","React","Modal"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isHiddenStatus
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-N5VEHSQU.mjs";
|
|
4
4
|
|
|
5
5
|
// src/components/Tasks/TaskOutlineList.tsx
|
|
6
6
|
import {
|
|
@@ -477,4 +477,4 @@ export {
|
|
|
477
477
|
TASK_NODE_HEIGHT,
|
|
478
478
|
TaskOutlineList
|
|
479
479
|
};
|
|
480
|
-
//# sourceMappingURL=chunk-
|
|
480
|
+
//# sourceMappingURL=chunk-AJLGOGUB.mjs.map
|