diff --git a/package-lock.json b/package-lock.json index fee6cfd1..09da2c06 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,7 +40,7 @@ "pg": "^8.18.0", "trello.js": "^1.2.8", "twilio": "^5.12.2", - "zangief": "*", + "zangief": "latest", "zod": "^3.24.1" }, "bin": { diff --git a/web/src/components/settings/agent-definition-editor.tsx b/web/src/components/settings/agent-definition-editor.tsx index 4f121d1f..d54be797 100644 --- a/web/src/components/settings/agent-definition-editor.tsx +++ b/web/src/components/settings/agent-definition-editor.tsx @@ -987,10 +987,14 @@ function useDefinitionEditor(existing: DefinitionRow | undefined, onClose: () => const activeMutation = isEdit ? updateMutation : createMutation; const handleTabChange = (tab: string) => { - if (tab === 'json' && activeTab === 'definition') { + const structuredTabs = ['definition', 'capabilities', 'triggers']; + const isLeavingStructured = structuredTabs.includes(activeTab); + const isEnteringStructured = structuredTabs.includes(tab); + + if (tab === 'json' && isLeavingStructured) { setJsonText(JSON.stringify(def, null, 2)); setJsonError(null); - } else if (tab === 'definition' && activeTab === 'json') { + } else if (isEnteringStructured && activeTab === 'json') { try { setDef(JSON.parse(jsonText) as AgentDefinition); setJsonError(null); @@ -1154,14 +1158,14 @@ export function AgentDefinitionEditor({ existing, onClose }: AgentDefinitionEdit Definition + Capabilities + Triggers {isEdit && Prompts} Raw JSON - - @@ -1208,6 +1212,14 @@ export function AgentDefinitionEditor({ existing, onClose }: AgentDefinitionEdit + + + + + + + + {isEdit && (