@solidxai/core-ui 0.1.20-beta.1 → 0.1.21-beta.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.
Files changed (180) hide show
  1. package/dist/components/common/FileReaderExt.d.ts.map +1 -1
  2. package/dist/components/common/FileReaderExt.js +22 -11
  3. package/dist/components/common/FileReaderExt.js.map +1 -1
  4. package/dist/components/common/FileReaderExt.tsx +27 -14
  5. package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
  6. package/dist/components/common/SocialMediaLogin.js +1 -1
  7. package/dist/components/common/SocialMediaLogin.js.map +1 -1
  8. package/dist/components/common/SocialMediaLogin.tsx +50 -19
  9. package/dist/components/common/solid-export.css +75 -0
  10. package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +71 -0
  11. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  12. package/dist/components/core/form/SolidFormView.js +14 -0
  13. package/dist/components/core/form/SolidFormView.js.map +1 -1
  14. package/dist/components/core/form/SolidFormView.tsx +13 -0
  15. package/dist/components/core/form/fields/SolidMediaMultipleField.js +3 -3
  16. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  17. package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +3 -3
  18. package/dist/components/core/form/fields/SolidMediaSingleField.js +2 -2
  19. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  20. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +2 -2
  21. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +2 -2
  22. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  23. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +4 -4
  24. package/dist/components/core/list/columns/SolidMediaSingleColumn.js +1 -1
  25. package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
  26. package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +3 -3
  27. package/dist/components/core/solid-agent/SolidAgentChat.d.ts +3 -1
  28. package/dist/components/core/solid-agent/SolidAgentChat.d.ts.map +1 -1
  29. package/dist/components/core/solid-agent/SolidAgentChat.js +150 -22
  30. package/dist/components/core/solid-agent/SolidAgentChat.js.map +1 -1
  31. package/dist/components/core/solid-agent/SolidAgentChat.tsx +76 -15
  32. package/dist/components/core/solid-agent/SolidAgentEmbedded.d.ts +2 -0
  33. package/dist/components/core/solid-agent/SolidAgentEmbedded.d.ts.map +1 -1
  34. package/dist/components/core/solid-agent/SolidAgentEmbedded.js +4 -4
  35. package/dist/components/core/solid-agent/SolidAgentEmbedded.js.map +1 -1
  36. package/dist/components/core/solid-agent/SolidAgentEmbedded.tsx +7 -1
  37. package/dist/components/core/solid-agent/SolidAgentHost.d.ts.map +1 -1
  38. package/dist/components/core/solid-agent/SolidAgentHost.js +79 -1
  39. package/dist/components/core/solid-agent/SolidAgentHost.js.map +1 -1
  40. package/dist/components/core/solid-agent/SolidAgentHost.tsx +69 -2
  41. package/dist/components/core/solid-agent/agentEvents.d.ts.map +1 -1
  42. package/dist/components/core/solid-agent/agentEvents.js +1 -3
  43. package/dist/components/core/solid-agent/agentEvents.js.map +1 -1
  44. package/dist/components/core/solid-agent/agentEvents.ts +5 -3
  45. package/dist/components/core/solid-agent/client/agentPublicEvents.d.ts +88 -0
  46. package/dist/components/core/solid-agent/client/agentPublicEvents.d.ts.map +1 -0
  47. package/dist/components/core/solid-agent/client/agentPublicEvents.js +26 -0
  48. package/dist/components/core/solid-agent/client/agentPublicEvents.js.map +1 -0
  49. package/dist/components/core/solid-agent/client/agentPublicEvents.ts +66 -0
  50. package/dist/components/core/solid-agent/client/agentRuntime.d.ts +18 -3
  51. package/dist/components/core/solid-agent/client/agentRuntime.d.ts.map +1 -1
  52. package/dist/components/core/solid-agent/client/agentRuntime.js +173 -31
  53. package/dist/components/core/solid-agent/client/agentRuntime.js.map +1 -1
  54. package/dist/components/core/solid-agent/client/agentRuntime.ts +126 -16
  55. package/dist/components/core/solid-agent/client/agentSocket.d.ts +3 -0
  56. package/dist/components/core/solid-agent/client/agentSocket.d.ts.map +1 -1
  57. package/dist/components/core/solid-agent/client/agentSocket.js +19 -1
  58. package/dist/components/core/solid-agent/client/agentSocket.js.map +1 -1
  59. package/dist/components/core/solid-agent/client/agentSocket.ts +11 -1
  60. package/dist/components/core/solid-agent/client/beforeUserMessageSend.d.ts +9 -0
  61. package/dist/components/core/solid-agent/client/beforeUserMessageSend.d.ts.map +1 -0
  62. package/dist/components/core/solid-agent/client/beforeUserMessageSend.js +53 -0
  63. package/dist/components/core/solid-agent/client/beforeUserMessageSend.js.map +1 -0
  64. package/dist/components/core/solid-agent/client/beforeUserMessageSend.ts +26 -0
  65. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.d.ts.map +1 -1
  66. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.js +4 -3
  67. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.js.map +1 -1
  68. package/dist/components/core/solid-agent/embed/AgentEmbeddingPanel.tsx +4 -2
  69. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.d.ts +29 -0
  70. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.d.ts.map +1 -1
  71. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.js +45 -2
  72. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.js.map +1 -1
  73. package/dist/components/core/solid-agent/embed/agentEmbedProtocol.ts +49 -2
  74. package/dist/components/core/solid-agent/embed/agentEmbedSamples.d.ts +1 -0
  75. package/dist/components/core/solid-agent/embed/agentEmbedSamples.d.ts.map +1 -1
  76. package/dist/components/core/solid-agent/embed/agentEmbedSamples.js +2 -1
  77. package/dist/components/core/solid-agent/embed/agentEmbedSamples.js.map +1 -1
  78. package/dist/components/core/solid-agent/embed/agentEmbedSamples.ts +15 -1
  79. package/dist/components/core/solid-agent/types.d.ts +13 -0
  80. package/dist/components/core/solid-agent/types.d.ts.map +1 -1
  81. package/dist/components/core/solid-agent/types.js.map +1 -1
  82. package/dist/components/core/solid-agent/types.ts +8 -0
  83. package/dist/components/core/solid-agent/useAgentChat.d.ts +1 -1
  84. package/dist/components/core/solid-agent/useAgentChat.d.ts.map +1 -1
  85. package/dist/components/core/solid-agent/useAgentChat.js +7 -4
  86. package/dist/components/core/solid-agent/useAgentChat.js.map +1 -1
  87. package/dist/components/core/solid-agent/useAgentChat.ts +9 -5
  88. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.d.ts.map +1 -1
  89. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.js +12 -4
  90. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.js.map +1 -1
  91. package/dist/components/core/solid-agent/widgets/DefaultUserMessageChatWidget.tsx +18 -0
  92. package/dist/components/core/solid-agent/widgets/SolidNavigationIntentChatWidget.d.ts +4 -0
  93. package/dist/components/core/solid-agent/widgets/SolidNavigationIntentChatWidget.d.ts.map +1 -0
  94. package/dist/components/core/solid-agent/widgets/SolidNavigationIntentChatWidget.js +30 -0
  95. package/dist/components/core/solid-agent/widgets/SolidNavigationIntentChatWidget.js.map +1 -0
  96. package/dist/components/core/solid-agent/widgets/SolidNavigationIntentChatWidget.tsx +41 -0
  97. package/dist/components/core/solid-agent/widgets/solidChatWidgets.module.css +39 -0
  98. package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts +2 -1
  99. package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts.map +1 -1
  100. package/dist/components/shad-cn-ui/SolidCodeEditor.js +3 -2
  101. package/dist/components/shad-cn-ui/SolidCodeEditor.js.map +1 -1
  102. package/dist/components/shad-cn-ui/SolidCodeEditor.tsx +3 -0
  103. package/dist/helpers/adminViewRefresh.d.ts +13 -0
  104. package/dist/helpers/adminViewRefresh.d.ts.map +1 -0
  105. package/dist/helpers/adminViewRefresh.js +14 -0
  106. package/dist/helpers/adminViewRefresh.js.map +1 -0
  107. package/dist/helpers/adminViewRefresh.ts +26 -0
  108. package/dist/helpers/eventBus.d.ts +1 -0
  109. package/dist/helpers/eventBus.d.ts.map +1 -1
  110. package/dist/helpers/eventBus.js +1 -0
  111. package/dist/helpers/eventBus.js.map +1 -1
  112. package/dist/helpers/eventBus.ts +1 -0
  113. package/dist/helpers/fileTypeIcon.d.ts.map +1 -1
  114. package/dist/helpers/fileTypeIcon.js +4 -1
  115. package/dist/helpers/fileTypeIcon.js.map +1 -1
  116. package/dist/helpers/fileTypeIcon.tsx +15 -0
  117. package/dist/helpers/registry.d.ts.map +1 -1
  118. package/dist/helpers/registry.js +2 -0
  119. package/dist/helpers/registry.js.map +1 -1
  120. package/dist/helpers/registry.ts +2 -0
  121. package/dist/helpers/routePaths.d.ts +13 -0
  122. package/dist/helpers/routePaths.d.ts.map +1 -1
  123. package/dist/helpers/routePaths.js +39 -0
  124. package/dist/helpers/routePaths.js.map +1 -1
  125. package/dist/helpers/routePaths.ts +48 -0
  126. package/dist/redux/features/agentSlice.d.ts +2 -1
  127. package/dist/redux/features/agentSlice.d.ts.map +1 -1
  128. package/dist/redux/features/agentSlice.js +2 -2
  129. package/dist/redux/features/agentSlice.js.map +1 -1
  130. package/dist/redux/features/agentSlice.ts +8 -3
  131. package/dist/resources/solid-custom.css +42 -0
  132. package/dist/resources/solid-tailwind-generated.css +1 -1
  133. package/dist/routes/pages/admin/core/AgentHubModuleField.css +15 -0
  134. package/dist/routes/pages/admin/core/AgentHubModuleField.d.ts +22 -0
  135. package/dist/routes/pages/admin/core/AgentHubModuleField.d.ts.map +1 -0
  136. package/dist/routes/pages/admin/core/AgentHubModuleField.js +42 -0
  137. package/dist/routes/pages/admin/core/AgentHubModuleField.js.map +1 -0
  138. package/dist/routes/pages/admin/core/AgentHubModuleField.tsx +54 -0
  139. package/dist/routes/pages/admin/core/AgentHubTagsField.d.ts +3 -1
  140. package/dist/routes/pages/admin/core/AgentHubTagsField.d.ts.map +1 -1
  141. package/dist/routes/pages/admin/core/AgentHubTagsField.js +3 -3
  142. package/dist/routes/pages/admin/core/AgentHubTagsField.js.map +1 -1
  143. package/dist/routes/pages/admin/core/AgentHubTagsField.tsx +7 -3
  144. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.d.ts.map +1 -1
  145. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.js +37 -29
  146. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.js.map +1 -1
  147. package/dist/routes/pages/admin/core/AgentRegistryEditorPage.tsx +12 -6
  148. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.d.ts.map +1 -1
  149. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.js +22 -15
  150. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.js.map +1 -1
  151. package/dist/routes/pages/admin/core/AgentSkillRegistryEditorPage.tsx +17 -7
  152. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.d.ts.map +1 -1
  153. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.js +21 -15
  154. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.js.map +1 -1
  155. package/dist/routes/pages/admin/core/AgentToolRegistryEditorPage.tsx +16 -9
  156. package/dist/routes/pages/admin/core/ArchivedChatterMessagesPage.d.ts.map +1 -1
  157. package/dist/routes/pages/admin/core/ArchivedChatterMessagesPage.js +149 -37
  158. package/dist/routes/pages/admin/core/ArchivedChatterMessagesPage.js.map +1 -1
  159. package/dist/routes/pages/admin/core/ArchivedChatterMessagesPage.tsx +283 -73
  160. package/dist/routes/pages/admin/core/CardPage.d.ts.map +1 -1
  161. package/dist/routes/pages/admin/core/CardPage.js +9 -1
  162. package/dist/routes/pages/admin/core/CardPage.js.map +1 -1
  163. package/dist/routes/pages/admin/core/CardPage.tsx +9 -1
  164. package/dist/routes/pages/admin/core/KanbanPage.d.ts.map +1 -1
  165. package/dist/routes/pages/admin/core/KanbanPage.js +9 -1
  166. package/dist/routes/pages/admin/core/KanbanPage.js.map +1 -1
  167. package/dist/routes/pages/admin/core/KanbanPage.tsx +9 -1
  168. package/dist/routes/pages/admin/core/ListPage.d.ts.map +1 -1
  169. package/dist/routes/pages/admin/core/ListPage.js +10 -1
  170. package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
  171. package/dist/routes/pages/admin/core/ListPage.tsx +10 -1
  172. package/dist/routes/pages/admin/core/TreePage.d.ts.map +1 -1
  173. package/dist/routes/pages/admin/core/TreePage.js +9 -1
  174. package/dist/routes/pages/admin/core/TreePage.js.map +1 -1
  175. package/dist/routes/pages/admin/core/TreePage.tsx +9 -1
  176. package/dist/routes/pages/embed/AgentEmbedPage.d.ts.map +1 -1
  177. package/dist/routes/pages/embed/AgentEmbedPage.js +67 -4
  178. package/dist/routes/pages/embed/AgentEmbedPage.js.map +1 -1
  179. package/dist/routes/pages/embed/AgentEmbedPage.tsx +61 -4
  180. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AgentRegistryEditorPage.js","sourceRoot":"","sources":["../../../../../src/routes/pages/admin/core/AgentRegistryEditorPage.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { ArrowLeft, Ellipsis, ExternalLink, Eye, FlaskConical, Pencil, Plus, RefreshCw, Trash2 } from \"lucide-react\";\nimport { useDispatch } from \"react-redux\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { createSolidEntityApi } from \"../../../../redux/api/solidEntityApi\";\nimport { useGetSolidSettingsQuery } from \"../../../../redux/api/solidSettingsApi\";\nimport { getSettingsMap } from \"../../../../helpers/settingsPayload\";\nimport { showToast } from \"../../../../redux/features/toastSlice\";\nimport { AgentRegistryAuditPanel } from \"./AgentRegistryAuditPanel\";\nimport { AgentPersonaHistory } from \"./AgentPersonaHistory\";\nimport { AgentHubTagsField, agentHubTagsFrom, agentHubTagsPayload, type AgentHubTag } from \"./AgentHubTagsField\";\nimport { AgentResourceCardWidget } from \"../../../../components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget\";\nimport { AgentSessionsPanel } from \"../../../../components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel\";\nimport { AgentProcessesPanel } from \"../../../../components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel\";\nimport type { SolidKanbanCardWidgetProps } from \"../../../../types/solid-core\";\nimport { SolidWorkflowStatusPill } from \"../../../../components/core/form/SolidDraftPublishWorkflow\";\nimport { getModelsDevModels, useModelsDevCatalog } from \"../../../../hooks/useModelsDevModels\";\nimport { SolidAutocomplete, SolidButton, SolidCodeEditor, SolidDialog, SolidDialogBody, SolidDropdownMenu, SolidDropdownMenuContent, SolidDropdownMenuItem, SolidDropdownMenuTrigger, SolidIconPicker, SolidInput, SolidTabGroup } from \"../../../../components/shad-cn-ui\";\nimport { SolidAgentEmbedded } from \"../../../../components/core/solid-agent/SolidAgentEmbedded\";\nimport { SolidAgentMarkdown } from \"../../../../components/core/solid-agent/SolidAgentMarkdown\";\nimport { AgentEmbeddingPanel } from \"../../../../components/core/solid-agent/embed/AgentEmbeddingPanel\";\nimport \"./AgentRegistryEditorPage.css\";\n\ntype Item = { id: number; name?: string; title?: string; displayName?: string; description?: string; iconName?: string; key?: string; module?: { id?: number; displayName?: string }; [key: string]: any };\ntype Link = { id: number; agentSkillRegistry?: Item; agentToolRegistry?: Item; roleMetadata?: Item; secret?: Item; envVarName?: string; alwaysInclude?: boolean; requiresApproval?: boolean };\ntype Input = { name: string; description: string; dataType: string; defaultValue?: unknown; optional: boolean };\ntype Agent = Item & {\n configVersion?: number;\n systemPrompt?: string; requiredInputs?: string; reasoningModelKey?: string; fastModelKey?: string; status?: string;\n stepLimit?: number; turnStepLimit?: number; costLimit?: number;\n agentSkills?: Link[]; agentTools?: Link[]; agentRoles?: Link[]; agentSecrets?: Link[];\n tags?: AgentHubTag[];\n};\ntype ProviderModelOption = { provider: string; providerLabel: string; model: string; value: string; note?: string };\n\nconst PROVIDER_LABELS: Record<string, string> = {\n anthropic: \"Anthropic\",\n openai: \"OpenAI\",\n openrouter: \"OpenRouter\",\n};\nconst BUILT_IN_PROVIDER_TYPES = [\"openai\", \"anthropic\"];\n\ntype AiProviderConfig = { type?: string; apiKey?: unknown; region?: string };\ntype AiModelConfig = { providerId?: string; model?: string };\n\n/**\n * Build picker options from the AI settings: every provider with an API key, its models from\n * models.dev, plus the models chosen in settings and any already-saved values for this agent.\n */\nfunction buildModelOptions(\n providers: Record<string, AiProviderConfig>,\n settingsModels: Record<string, AiModelConfig | undefined>,\n catalog: Parameters<typeof getModelsDevModels>[0],\n savedValues: string[],\n): ProviderModelOption[] {\n const enabled = Object.entries(providers)\n .filter(([, entry]) => typeof entry?.apiKey === \"string\" && entry.apiKey.trim().length > 0);\n const options: ProviderModelOption[] = [];\n const seen = new Set<string>();\n const add = (provider: string, model: string, note?: string) => {\n const value = `${provider}:${model}`;\n if (!model || seen.has(value)) return;\n seen.add(value);\n options.push({ provider, providerLabel: PROVIDER_LABELS[provider] ?? provider, model, value, note });\n };\n for (const [provider, entry] of enabled) {\n for (const [role, config] of Object.entries(settingsModels)) {\n if (config?.providerId === provider && config.model) add(provider, config.model, `${role} model in AI settings`);\n }\n for (const value of savedValues) {\n if (value.startsWith(`${provider}:`)) add(provider, value.slice(provider.length + 1), \"currently saved\");\n }\n const type = entry.type && BUILT_IN_PROVIDER_TYPES.includes(entry.type) ? entry.type : undefined;\n for (const model of getModelsDevModels(catalog, [provider, type])) add(provider, model.id);\n }\n return options;\n}\n\nconst OTHER_MODEL = \"__other_model__\";\n\nfunction SearchableSelect({ value, options, placeholder, disabled, onChange }: {\n value: string;\n options: { label: string; value: string }[];\n placeholder: string;\n disabled?: boolean;\n onChange: (value: string) => void;\n}) {\n const [query, setQuery] = React.useState(\"\");\n const selectedLabel = options.find((option) => option.value === value)?.label;\n const selected = React.useMemo(() => selectedLabel ? { label: selectedLabel, value } : null, [selectedLabel, value]);\n const suggestions = options.filter((option) =>\n `${option.label} ${option.value}`.toLowerCase().includes(query.trim().toLowerCase()));\n\n return <SolidAutocomplete\n className=\"solid-standard-autocomplete w-full\"\n value={selected}\n suggestions={suggestions}\n completeMethod={({ query: next }) => setQuery(next)}\n onChange={(event) => onChange(event.value?.value ?? \"\")}\n field=\"label\"\n placeholder={placeholder}\n disabled={disabled}\n dropdown\n forceSelection\n portal\n />;\n}\n\nfunction ModelPicker({ value, options, providers, providerConfig, onChange }: {\n value: string;\n options: ProviderModelOption[];\n providers: { label: string; value: string }[];\n providerConfig: Record<string, AiProviderConfig>;\n onChange: (value: string) => void;\n}) {\n const separator = value.indexOf(\":\");\n const provider = separator < 0 ? \"\" : value.slice(0, separator);\n const model = separator < 0 ? \"\" : value.slice(separator + 1);\n const availableModels = options.filter((option) => option.provider === provider);\n const [otherSelected, setOtherSelected] = React.useState(false);\n const showOther = !!provider && (otherSelected || (!!model && !availableModels.some((option) => option.model === model)));\n\n return <div className=\"agent-editor__stack\">\n <div className=\"agent-editor__field\"><span>Provider *</span>\n <SearchableSelect value={provider} options={providers} placeholder=\"Select provider\"\n onChange={(next) => { setOtherSelected(false); onChange(`${next}:`); }} />\n {providerConfig[provider]?.type === \"bedrock\" && providerConfig[provider]?.region &&\n <small><em>Region: {providerConfig[provider].region}</em></small>}\n </div>\n <div className=\"agent-editor__field\"><span>Model *</span>\n <SearchableSelect value={showOther ? OTHER_MODEL : model}\n options={[...availableModels.map((option) => ({ label: option.model, value: option.model })), { label: \"Other\", value: OTHER_MODEL }]}\n placeholder=\"Select model\" disabled={!provider}\n onChange={(next) => {\n setOtherSelected(next === OTHER_MODEL);\n onChange(`${provider}:${next === OTHER_MODEL ? \"\" : next}`);\n }} />\n {showOther && <SolidInput className=\"w-full\" aria-label=\"Custom model ID\" placeholder=\"Enter model ID\" value={model}\n onChange={(event) => onChange(`${provider}:${event.target.value}`)} />}\n </div>\n </div>;\n}\n\nconst entityApi = createSolidEntityApi(\"agentRegistry\");\nconst skillApi = createSolidEntityApi(\"agentSkillRegistry\");\nconst toolApi = createSolidEntityApi(\"agentToolRegistry\");\nconst roleApi = createSolidEntityApi(\"roleMetadata\");\nconst secretApi = createSolidEntityApi(\"secret\");\nconst agentSkillApi = createSolidEntityApi(\"agentSkill\");\nconst agentToolApi = createSolidEntityApi(\"agentTool\");\nconst agentRoleApi = createSolidEntityApi(\"agentRole\");\nconst agentSecretApi = createSolidEntityApi(\"agentSecret\");\nconst jobApi = createSolidEntityApi(\"agentJob\");\n\nconst skillFields = [\"id\", \"name\", \"iconName\", \"description\"];\nconst toolFields = [...skillFields, \"type\", \"status\", \"lastLoadError\"];\n\nfunction fieldsQuery(fields: string[]): string {\n return fields.map((name) => `fields=${encodeURIComponent(name)}`).join(\"&\");\n}\n\nconst detailFields = [\n \"id\", \"name\", \"title\", \"description\", \"iconName\", \"systemPrompt\", \"requiredInputs\",\n \"reasoningModelKey\", \"fastModelKey\", \"status\", \"stepLimit\", \"turnStepLimit\", \"costLimit\", \"configVersion\",\n];\n\nconst detailQuery = [\n \"agentRoles\", \"agentRoles.roleMetadata\", \"agentSecrets\", \"agentSecrets.secret\", \"tags\",\n].map((name, index) => `populate[${index}]=${name}`).join(\"&\") + \"&\" + fieldsQuery(detailFields);\n\n// Group by link ID to project summary columns without populating full registry records.\nfunction resourceLinksQuery(id: string, relation: string, registry: string, setting: string, fields: string[]): string {\n return [\n `filters[id][$eq]=${encodeURIComponent(id)}`,\n `groupBy[0]=${relation}.id`, `groupBy[1]=${relation}.${setting}`,\n ...fields.map((field, index) => `aggregates[${index}]=${relation}.${registry}.${field}:max`),\n ].join(\"&\");\n}\n\nfunction resourceLinksFrom(result: any, relation: string, registry: string, setting: string, fields: string[]): Link[] {\n return items(result?.groupMeta).flatMap((group) => {\n const [linkId, enabled] = String(group.groupValue ?? \"\").split(\"_\");\n const resource = Object.fromEntries(fields.map((field) => [field, group[`${relation}_${registry}_${field}_max`]]));\n if (!Number(linkId) || !Number(resource.id)) return [];\n return [{ id: Number(linkId), [registry]: { ...resource, id: Number(resource.id) }, [setting]: enabled === \"true\" || enabled === \"1\" }];\n });\n}\n\nfunction recordFrom(value: any): any {\n let result = value;\n for (let i = 0; i < 3 && result && typeof result === \"object\"; i += 1) {\n if (\"id\" in result || \"name\" in result) return result;\n result = result.data;\n }\n return undefined;\n}\n\nfunction items(value: any): any[] { return Array.isArray(value) ? value : value ? [value] : []; }\n\nfunction agentFormFromRecord(record: Agent) {\n const skills = items(record.agentSkills);\n const tools = items(record.agentTools);\n const secrets = items(record.agentSecrets);\n return {\n name: record.name ?? \"\", title: record.title ?? \"\", description: record.description ?? \"\", iconName: record.iconName ?? \"\",\n inputs: parseInputs(record.requiredInputs), reasoningModelKey: record.reasoningModelKey ?? \"\", fastModelKey: record.fastModelKey ?? \"\",\n systemPrompt: record.systemPrompt ?? \"\", stepLimit: record.stepLimit ?? 100, turnStepLimit: record.turnStepLimit ?? 20,\n costLimit: Number(record.costLimit ?? 3), tags: agentHubTagsFrom(record.tags), skillIds: skills.map((link) => link.agentSkillRegistry?.id).filter(Boolean),\n toolIds: tools.map((link) => link.agentToolRegistry?.id).filter(Boolean),\n roleIds: items(record.agentRoles).map((link) => link.roleMetadata?.id).filter(Boolean),\n secretIds: secrets.map((link) => link.secret?.id).filter(Boolean),\n alwaysIncludeValues: Object.fromEntries(skills.map((link) => [link.agentSkillRegistry?.id, link.alwaysInclude !== false]).filter(([key]) => key)),\n requiresApprovalValues: Object.fromEntries(tools.map((link) => [link.agentToolRegistry?.id, link.requiresApproval === true]).filter(([key]) => key)),\n secretEnvVarNames: Object.fromEntries(secrets.map((link) => [link.secret?.id, link.envVarName ?? link.secret?.key ?? link.secret?.name ?? \"\"]).filter(([key]) => key)),\n };\n}\n\nfunction parseInputs(value: unknown): Input[] {\n try {\n const parsed = typeof value === \"string\" ? JSON.parse(value) : value;\n if (Array.isArray(parsed)) return parsed.map((input) => ({\n name: String(input.name ?? input.variableName ?? \"\"), description: String(input.description ?? \"\"),\n dataType: String(input.dataType ?? input.type ?? \"string\"), defaultValue: input.defaultValue ?? null,\n optional: input.optional === true,\n }));\n // Existing agent definitions may use a name-keyed object.\n if (parsed && typeof parsed === \"object\") return Object.entries(parsed).map(([name, definition]: [string, any]) => ({\n name, description: String(definition?.description ?? \"\"),\n dataType: String(definition?.dataType ?? definition?.type ?? \"string\"), defaultValue: definition?.defaultValue ?? null,\n optional: definition?.optional === true,\n }));\n } catch { /* Keep malformed historical values from crashing the editor. */ }\n return [];\n}\n\nfunction parseDefaultValue(raw: string, dataType: string): unknown {\n if (dataType === \"string\" || dataType === \"date\" || dataType === \"datetime\") return raw;\n if (dataType === \"boolean\") {\n if (raw !== \"true\" && raw !== \"false\") throw new Error(`Default value must be true or false for ${dataType}.`);\n return raw === \"true\";\n }\n if (dataType === \"number\" || dataType === \"integer\") {\n const value = Number(raw);\n if (!Number.isFinite(value) || (dataType === \"integer\" && !Number.isSafeInteger(value))) throw new Error(`Default value must be a valid ${dataType}.`);\n return value;\n }\n const value = JSON.parse(raw);\n if (dataType === \"array\" && !Array.isArray(value)) throw new Error(\"Default value must be a JSON array.\");\n if (dataType === \"object\" && (!value || typeof value !== \"object\" || Array.isArray(value))) throw new Error(\"Default value must be a JSON object.\");\n return value;\n}\n\nfunction formatDefaultValue(value: unknown): string {\n if (value == null) return \"\";\n return typeof value === \"string\" ? value : JSON.stringify(value);\n}\n\nfunction apiError(error: any): string {\n const value = error?.data?.data?.message ?? error?.data?.message ?? error?.message;\n return Array.isArray(value) ? value.join(\"; \") : typeof value === \"string\" ? value : \"The save failed.\";\n}\n\nfunction useCatalog(api: typeof skillApi, query = \"offset=0&limit=1000\") {\n const { data, isLoading, refetch } = api.useGetSolidEntitiesQuery(query);\n return { records: items(data?.records) as Item[], isLoading, refetch };\n}\n\nfunction ResourcePreviewDialog({ item, kind, onClose }: { item: Item; kind: \"skill\" | \"tool\"; onClose: () => void }) {\n const api = kind === \"skill\" ? skillApi : toolApi;\n const field = kind === \"skill\" ? \"body\" : \"sourceCode\";\n const { currentData, isFetching, isError, refetch } = api.useGetSolidEntityByIdQuery(\n { id: item.id, qs: fieldsQuery([\"id\", field]) }, { refetchOnMountOrArgChange: true });\n const record = recordFrom(currentData);\n const content = record?.[field] ?? \"\";\n\n return <SolidDialog open onOpenChange={(open) => { if (!open) onClose(); }} header={item.name ?? `View ${kind}`}\n style={{ width: \"min(64rem, 94vw)\", maxWidth: \"94vw\" }}>\n <SolidDialogBody className=\"agent-editor__resource-preview-body\">\n {isFetching ? <div className=\"agent-editor__empty\" role=\"status\">Loading {kind}…</div>\n : isError || !record ? <div className=\"agent-editor__empty\"><p role=\"alert\">This {kind} could not be loaded.</p><SolidButton variant=\"secondary\" onClick={() => void refetch()}>Retry</SolidButton></div>\n : !content ? <div className=\"agent-editor__empty\">No {kind === \"skill\" ? \"skill body\" : \"source code\"} available.</div>\n : kind === \"skill\" ? <SolidAgentMarkdown text={content} />\n : <SolidCodeEditor value={content} language=\"python\" readOnly fontSize={12} height=\"min(65vh, 42rem)\" />}\n </SolidDialogBody>\n </SolidDialog>;\n}\n\nfunction LinkPicker({ label, description, options, selected, onAdd, onRemove, createUrl, render, renderSettings, linkFor, onView, editUrlFor }: {\n label: string; description: string; options: Item[]; selected: Item[];\n onAdd: (id: number) => void; onRemove: (id: number) => void; createUrl?: string;\n render: (item: Item, link?: Link) => React.ReactNode;\n renderSettings?: (item: Item, link?: Link) => React.ReactNode;\n linkFor?: (id: number) => Link | undefined;\n onView?: (item: Item) => void;\n editUrlFor?: (item: Item) => string;\n}) {\n const [search, setSearch] = React.useState(\"\");\n const [open, setOpen] = React.useState(false);\n const showAssociatedCount = label === \"Skills\" || label === \"Tools\";\n const available = options.filter((item) => !selected.some((selectedItem) => selectedItem.id === item.id)\n && `${item.name ?? item.displayName ?? item.key ?? \"\"} ${item.description ?? \"\"}`.toLowerCase().includes(search.toLowerCase())).slice(0, 20);\n return <section className=\"agent-editor__section\">\n <div className=\"agent-editor__section-head\"><div><h2>{label}</h2><p>{description}</p></div>\n {createUrl && <a href={createUrl} target=\"_blank\" rel=\"noopener noreferrer\" className=\"agent-editor__new-link\">Create {label === \"Skills\" ? \"skill\" : \"tool\"} <ExternalLink size={14} /></a>}\n </div>\n {showAssociatedCount && <div className=\"agent-editor__linked-count\" role=\"status\">\n {selected.length} {label.toLowerCase()} associated\n </div>}\n <div className=\"agent-editor__picker\">\n <SolidInput value={search} placeholder={`Search and add ${label.toLowerCase()}…`} aria-label={`Search ${label.toLowerCase()}`}\n onFocus={() => setOpen(true)} onChange={(event) => { setSearch(event.target.value); setOpen(true); }} />\n {open && <div className=\"agent-editor__picker-results\">\n {available.length ? available.map((item) => <button type=\"button\" key={item.id} onClick={() => { onAdd(item.id); setSearch(\"\"); setOpen(false); }}>\n <strong>{item.name ?? item.displayName ?? item.key}</strong><span>{item.description}</span>\n </button>) : <p>No available {label.toLowerCase()} found.</p>}\n </div>}\n </div>\n {selected.length ? <div className=\"agent-editor__cards\">{selected.map((item) => <div className=\"agent-editor__linked-card\" key={item.id}>\n <div className=\"agent-editor__card-content\">{render(item, linkFor?.(item.id))}</div>\n {renderSettings?.(item, linkFor?.(item.id))}\n {onView && editUrlFor ? <SolidDropdownMenu>\n <SolidDropdownMenuTrigger asChild><button type=\"button\" className=\"agent-editor__resource-menu-trigger\" aria-label={`Actions for ${item.name ?? item.displayName ?? item.key}`}><Ellipsis size={18} /></button></SolidDropdownMenuTrigger>\n <SolidDropdownMenuContent className=\"agent-editor__resource-menu\">\n <SolidDropdownMenuItem onSelect={() => onView(item)}><Eye size={16} /> View</SolidDropdownMenuItem>\n <SolidDropdownMenuItem asChild><a href={editUrlFor(item)} target=\"_blank\" rel=\"noopener noreferrer\"><Pencil size={16} /> Edit</a></SolidDropdownMenuItem>\n <SolidDropdownMenuItem className=\"agent-editor__resource-delete\" onSelect={() => onRemove(item.id)}><Trash2 size={16} /> Delete</SolidDropdownMenuItem>\n </SolidDropdownMenuContent>\n </SolidDropdownMenu> : <button type=\"button\" aria-label={`Remove ${item.name ?? item.displayName ?? item.key}`} onClick={() => onRemove(item.id)}><Trash2 size={16} /></button>}\n </div>)}</div> : <div className=\"agent-editor__empty\">No {label.toLowerCase()} linked yet.</div>}\n </section>;\n}\n\nexport function AgentRegistryEditorPage() {\n const { id = \"new\" } = useParams<{ id: string }>();\n const navigate = useNavigate();\n const dispatch = useDispatch();\n const agentResult = entityApi.useGetSolidEntityByIdQuery({ id, qs: detailQuery }, { skip: id === \"new\" });\n const skillLinks = entityApi.useGetSolidEntitiesQuery(\n resourceLinksQuery(id, \"agentSkills\", \"agentSkillRegistry\", \"alwaysInclude\", skillFields), { skip: id === \"new\" });\n const toolLinks = entityApi.useGetSolidEntitiesQuery(\n resourceLinksQuery(id, \"agentTools\", \"agentToolRegistry\", \"requiresApproval\", toolFields), { skip: id === \"new\" });\n const isLoading = agentResult.isLoading || skillLinks.isLoading || toolLinks.isLoading;\n const isFetching = agentResult.isFetching || skillLinks.isFetching || toolLinks.isFetching;\n const isError = agentResult.isError || skillLinks.isError || toolLinks.isError;\n const response = React.useMemo(() => {\n const agent = recordFrom(agentResult.currentData);\n if (!agent || !skillLinks.currentData || !toolLinks.currentData) return undefined;\n return { ...agent,\n agentSkills: resourceLinksFrom(skillLinks.currentData, \"agentSkills\", \"agentSkillRegistry\", \"alwaysInclude\", skillFields),\n agentTools: resourceLinksFrom(toolLinks.currentData, \"agentTools\", \"agentToolRegistry\", \"requiresApproval\", toolFields),\n };\n }, [agentResult.currentData, skillLinks.currentData, toolLinks.currentData]);\n const { data: settings, isError: settingsError } = useGetSolidSettingsQuery(undefined);\n const skills = useCatalog(skillApi, `offset=0&limit=1000&populate[0]=tags&${fieldsQuery(skillFields)}`);\n const tools = useCatalog(toolApi, `offset=0&limit=1000&populate[0]=tags&${fieldsQuery(toolFields)}`);\n const roles = useCatalog(roleApi, \"offset=0&limit=1000&populate[0]=module\");\n const secrets = useCatalog(secretApi, \"offset=0&limit=1000&fields[0]=id&fields[1]=key&fields[2]=displayName&fields[3]=description\");\n const [createAgent, { isLoading: creating }] = entityApi.useCreateSolidEntityMutation();\n const [updateAgent, { isLoading: updating }] = entityApi.useUpdateSolidEntityMutation();\n const [createSkillLink] = agentSkillApi.useCreateSolidEntityMutation();\n const [deleteSkillLink] = agentSkillApi.useDeleteSolidEntityMutation();\n const [updateSkillLink] = agentSkillApi.useUpdateSolidEntityMutation();\n const [createToolLink] = agentToolApi.useCreateSolidEntityMutation();\n const [deleteToolLink] = agentToolApi.useDeleteSolidEntityMutation();\n const [updateToolLink] = agentToolApi.useUpdateSolidEntityMutation();\n const [createRoleLink] = agentRoleApi.useCreateSolidEntityMutation();\n const [deleteRoleLink] = agentRoleApi.useDeleteSolidEntityMutation();\n const [createSecretLink] = agentSecretApi.useCreateSolidEntityMutation();\n const [deleteSecretLink] = agentSecretApi.useDeleteSolidEntityMutation();\n const [updateSecretLink] = agentSecretApi.useUpdateSolidEntityMutation();\n const record = recordFrom(response) as Agent | undefined;\n const [tab, setTab] = React.useState(\"basics\");\n const jobs = jobApi.useGetSolidEntitiesQuery(\n `offset=0&limit=1000&filters[agent][id][$eq]=${encodeURIComponent(id)}&${fieldsQuery([\"id\", \"status\"])}`,\n { skip: id === \"new\" || tab !== \"jobs\" });\n const refetch = () => {\n void agentResult.refetch(); void skillLinks.refetch(); void toolLinks.refetch();\n if (tab === \"jobs\") void jobs.refetch();\n };\n const [testAgentOpen, setTestAgentOpen] = React.useState(false);\n const [preview, setPreview] = React.useState<{ item: Item; kind: \"skill\" | \"tool\" } | null>(null);\n const [testAgentWindowMode, setTestAgentWindowMode] = React.useState<\"docked\" | \"maximized\">(\"maximized\");\n const [name, setName] = React.useState(\"\");\n const [title, setTitle] = React.useState(\"\");\n const [description, setDescription] = React.useState(\"\");\n const [iconName, setIconName] = React.useState(\"\");\n const [inputs, setInputs] = React.useState<Input[]>([]);\n const [reasoningModelKey, setReasoningModelKey] = React.useState(\"\");\n const [fastModelKey, setFastModelKey] = React.useState(\"\");\n const [systemPrompt, setSystemPrompt] = React.useState(\"\");\n const [stepLimit, setStepLimit] = React.useState(100);\n const [turnStepLimit, setTurnStepLimit] = React.useState(20);\n const [costLimit, setCostLimit] = React.useState(3);\n const [tags, setTags] = React.useState<AgentHubTag[]>([]);\n const [creatingTag, setCreatingTag] = React.useState(false);\n const [skillIds, setSkillIds] = React.useState<number[]>([]);\n const [toolIds, setToolIds] = React.useState<number[]>([]);\n const [roleIds, setRoleIds] = React.useState<number[]>([]);\n const [secretIds, setSecretIds] = React.useState<number[]>([]);\n const [alwaysIncludeValues, setAlwaysIncludeValues] = React.useState<Record<number, boolean>>({});\n const [requiresApprovalValues, setRequiresApprovalValues] = React.useState<Record<number, boolean>>({});\n const [secretEnvVarNames, setSecretEnvVarNames] = React.useState<Record<number, string>>({});\n const [pendingSecret, setPendingSecret] = React.useState<Item | null>(null);\n const [secretEnvVarDraft, setSecretEnvVarDraft] = React.useState(\"\");\n const [secretEnvVarError, setSecretEnvVarError] = React.useState(\"\");\n const [errors, setErrors] = React.useState<Record<string, string>>({});\n const [auditVersion, setAuditVersion] = React.useState(0);\n const [confirmRefresh, setConfirmRefresh] = React.useState(false);\n const baseline = React.useRef(\"\");\n\n const currentForm = () => JSON.stringify({ name, title, description, iconName, inputs, reasoningModelKey, fastModelKey, systemPrompt,\n stepLimit: Number(stepLimit), turnStepLimit: Number(turnStepLimit), costLimit: Number(costLimit), tags, skillIds, toolIds, roleIds, secretIds,\n alwaysIncludeValues, requiresApprovalValues, secretEnvVarNames });\n\n React.useEffect(() => {\n if (!record) return;\n baseline.current = JSON.stringify(agentFormFromRecord(record));\n setName(record.name ?? \"\"); setTitle(record.title ?? \"\"); setDescription(record.description ?? \"\");\n setIconName(record.iconName ?? \"\"); setInputs(parseInputs(record.requiredInputs));\n setReasoningModelKey(record.reasoningModelKey ?? \"\"); setFastModelKey(record.fastModelKey ?? \"\");\n setSystemPrompt(record.systemPrompt ?? \"\"); setStepLimit(record.stepLimit ?? 100);\n setTurnStepLimit(record.turnStepLimit ?? 20); setCostLimit(Number(record.costLimit ?? 3));\n setTags(agentHubTagsFrom(record.tags));\n setSkillIds(items(record.agentSkills).map((link) => link.agentSkillRegistry?.id).filter(Boolean));\n setToolIds(items(record.agentTools).map((link) => link.agentToolRegistry?.id).filter(Boolean));\n setRoleIds(items(record.agentRoles).map((link) => link.roleMetadata?.id).filter(Boolean));\n setSecretIds(items(record.agentSecrets).map((link) => link.secret?.id).filter(Boolean));\n setAlwaysIncludeValues(Object.fromEntries(items(record.agentSkills).map((link) => [link.agentSkillRegistry?.id, link.alwaysInclude !== false]).filter(([key]) => key)));\n setRequiresApprovalValues(Object.fromEntries(items(record.agentTools).map((link) => [link.agentToolRegistry?.id, link.requiresApproval === true]).filter(([key]) => key)));\n setSecretEnvVarNames(Object.fromEntries(items(record.agentSecrets).map((link) => [link.secret?.id, link.envVarName ?? link.secret?.key ?? link.secret?.name ?? \"\"]).filter(([key]) => key)));\n }, [record?.id, response]);\n\n const isDirty = Boolean(record?.id) && currentForm() !== baseline.current;\n const requestRefresh = () => isDirty ? setConfirmRefresh(true) : void refetch();\n const openAgentTest = () => {\n setTestAgentWindowMode(\"maximized\");\n setTestAgentOpen(true);\n };\n\n React.useEffect(() => {\n const refresh = () => { skills.refetch(); tools.refetch(); };\n window.addEventListener(\"focus\", refresh);\n return () => window.removeEventListener(\"focus\", refresh);\n }, [skills.refetch, tools.refetch]);\n\n const configValue = getSettingsMap(settings).solidXGenAiCodeBuilderConfig;\n let aiConfig: { providers?: Record<string, AiProviderConfig>; models?: { default?: AiModelConfig; main?: AiModelConfig; fast?: AiModelConfig } } = {};\n try {\n aiConfig = (typeof configValue === \"string\" ? JSON.parse(configValue) : configValue) ?? {};\n } catch { /* Invalid configuration has no enabled providers. */ }\n const { catalog: modelsCatalog } = useModelsDevCatalog();\n const savedModelKeys = [record?.reasoningModelKey, record?.fastModelKey].filter((key): key is string => !!key);\n const modelOptions = buildModelOptions(\n aiConfig.providers ?? {},\n { Reasoning: aiConfig.models?.default ?? aiConfig.models?.main, Fast: aiConfig.models?.fast },\n modelsCatalog,\n savedModelKeys,\n );\n const providerOptions = Object.entries(aiConfig.providers ?? {})\n .filter(([, entry]) => typeof entry?.apiKey === \"string\" && entry.apiKey.trim().length > 0)\n .map(([provider]) => ({ label: modelsCatalog?.[provider]?.name ?? PROVIDER_LABELS[provider] ?? provider, value: provider }));\n const isValidModelKey = (value: string) => {\n const separator = value.indexOf(\":\");\n return separator > 0 && providerOptions.some((provider) => provider.value === value.slice(0, separator)) &&\n !!value.slice(separator + 1).trim();\n };\n const toggle = (setter: React.Dispatch<React.SetStateAction<number[]>>, value: number) =>\n setter((current) => current.includes(value) ? current.filter((id) => id !== value) : [...current, value]);\n\n const syncLinks = async (agentId: number, previous: Link[] | undefined, selected: number[], field: string,\n create: any, remove: any, update: any, extra: Record<string, unknown> | ((targetId: number) => Record<string, unknown>) = {}) => {\n const links = items(previous) as Link[];\n const oldIds = links.map((link) => (link as any)[field]?.id).filter(Boolean);\n for (const link of links) {\n if (!selected.includes((link as any)[field]?.id)) await remove(link.id).unwrap();\n }\n for (const targetId of selected) {\n const values = typeof extra === \"function\" ? extra(targetId) : extra;\n if (!oldIds.includes(targetId)) {\n await create({ agentRegistryId: agentId, [`${field}Id`]: targetId, ...values }).unwrap();\n continue;\n }\n const existing = links.find((link) => (link as any)[field]?.id === targetId);\n if (existing && Object.entries(values).some(([key, value]) => (existing as any)[key] !== value)) {\n await update({ id: existing.id, data: values }).unwrap();\n }\n }\n };\n\n const save = async (nextStatus?: \"draft\" | \"active\" | \"disabled\") => {\n if (creatingTag) return;\n const next: Record<string, string> = {};\n if (!name.trim()) next.name = \"Name is required.\";\n if (!title.trim()) next.title = \"Title is required.\";\n if (!systemPrompt.trim()) next.systemPrompt = \"Persona instructions are required.\";\n if (!isValidModelKey(reasoningModelKey)) next.reasoningModelKey = \"Choose an enabled reasoning provider and model.\";\n if (!isValidModelKey(fastModelKey)) next.fastModelKey = \"Choose an enabled fast provider and model.\";\n if (inputs.some((input) => !input.name.trim() || !input.dataType)) next.inputs = \"Each input needs a name and data type.\";\n if (new Set(inputs.map((input) => input.name.trim().toLowerCase())).size !== inputs.length) next.inputs = \"Input names must be unique.\";\n if (stepLimit < 1 || turnStepLimit < 1 || costLimit < 0) next.limits = \"Step limits must be positive and cost limit cannot be negative.\";\n setErrors(next);\n if (Object.keys(next).length) {\n setTab(next.systemPrompt ? \"persona\" : next.limits ? \"policies\" : \"basics\");\n dispatch(showToast({ severity: \"error\", summary: \"Missing information\", detail: Object.values(next).join(\" \") }));\n return;\n }\n let normalizedInputs: Input[];\n try {\n normalizedInputs = inputs.map((input) => ({ ...input, name: input.name.trim(), description: input.description.trim(),\n defaultValue: input.defaultValue === \"\" || input.defaultValue == null ? null : parseDefaultValue(String(input.defaultValue), input.dataType) }));\n } catch (error) {\n next.inputs = error instanceof Error ? error.message : \"Check the default input values.\";\n setErrors(next);\n setTab(\"basics\");\n return;\n }\n const payload = {\n name: name.trim(), title: title.trim(), description: description.trim(), iconName,\n requiredInputs: JSON.stringify(normalizedInputs),\n reasoningModelKey, fastModelKey, systemPrompt, stepLimit: Number(stepLimit),\n turnStepLimit: Number(turnStepLimit), costLimit: Number(costLimit),\n ...agentHubTagsPayload(tags),\n status: nextStatus ?? record?.status ?? \"draft\",\n };\n let newlyCreatedId: number | undefined;\n let scalarSaved = false;\n try {\n const result = record?.id ? await updateAgent({ id: record.id, data: payload }).unwrap() : await createAgent(payload).unwrap();\n scalarSaved = true;\n const savedId = Number(record?.id ?? recordFrom(result)?.id);\n if (!savedId) throw new Error(\"Agent saved, but its ID was not returned.\");\n if (!record?.id) newlyCreatedId = savedId;\n await syncLinks(savedId, record?.agentSkills, skillIds, \"agentSkillRegistry\", createSkillLink, deleteSkillLink, updateSkillLink,\n (targetId) => ({ alwaysInclude: alwaysIncludeValues[targetId] ?? true }));\n await syncLinks(savedId, record?.agentTools, toolIds, \"agentToolRegistry\", createToolLink, deleteToolLink, updateToolLink,\n (targetId) => ({ requiresApproval: requiresApprovalValues[targetId] ?? false }));\n await syncLinks(savedId, record?.agentRoles, roleIds, \"roleMetadata\", createRoleLink, deleteRoleLink, undefined);\n await syncLinks(savedId, record?.agentSecrets, secretIds, \"secret\", createSecretLink, deleteSecretLink, updateSecretLink,\n (targetId) => ({ envVarName: secretEnvVarNames[targetId] ?? \"\" }));\n dispatch(showToast({ severity: \"success\", summary: nextStatus ? \"Agent status updated\" : \"Saved\", detail: nextStatus ? `Agent moved to ${nextStatus}.` : \"Agent and its associations saved.\" }));\n setAuditVersion((version) => version + 1);\n if (record?.id) refetch();\n else navigate(`/admin/core/solid-core/agent-registry/editor/${savedId}`, { replace: true });\n } catch (error) {\n dispatch(showToast({ severity: \"error\", summary: scalarSaved ? \"Agent saved; links incomplete\" : \"Save failed\", detail: apiError(error) }));\n if (record?.id) refetch();\n else if (newlyCreatedId) navigate(`/admin/core/solid-core/agent-registry/editor/${newlyCreatedId}`, { replace: true });\n }\n };\n\n const field = (label: string, value: string, setValue: (value: string) => void, key: string, required = false) =>\n <label className=\"agent-editor__field\"><span>{label}{required && \" *\"}</span>\n <SolidInput value={value} aria-invalid={Boolean(errors[key])} onChange={(event) => { setValue(event.target.value); setErrors((current) => ({ ...current, [key]: \"\" })); }} />\n {errors[key] && <small className=\"agent-editor__error\">{errors[key]}</small>}\n </label>;\n const linked = (ids: number[], catalog: Item[], fallback: Item[] = []) =>\n ids.map((id) => catalog.find((item) => item.id === id) ?? fallback.find((item) => item.id === id)).filter((item): item is Item => Boolean(item));\n const groups = roles.records.reduce((acc, role) => {\n const key = role.module?.displayName ?? \"Default\"; (acc[key] ??= []).push(role); return acc;\n }, {} as Record<string, Item[]>);\n const linkForTarget = (links: Link[] | undefined, fieldName: string, targetId: number) =>\n items(links).find((link) => (link as any)[fieldName]?.id === targetId);\n const beginSecretEnvVarEdit = (secret: Item) => {\n setPendingSecret(secret);\n setSecretEnvVarDraft(secretEnvVarNames[secret.id] ?? String(secret.key ?? secret.name ?? secret.displayName ?? \"\"));\n setSecretEnvVarError(\"\");\n };\n const commitSecretEnvVar = () => {\n const value = secretEnvVarDraft.trim();\n if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(value)) {\n setSecretEnvVarError(\"Use a valid environment variable name (letters, numbers, and underscores; it cannot start with a number).\");\n return;\n }\n if ([\"APP_ENCRYPTION_KEY\", \"DATABASE_URL\", \"AGENTHUB_MANAGER_INTERNAL_TOKEN\", \"AGENTHUB_BRIDGE_PROCESS_KEY\"].includes(value)) {\n setSecretEnvVarError(\"This environment variable name is reserved by AgentHub.\");\n return;\n }\n if (secretIds.some((id) => id !== pendingSecret?.id && secretEnvVarNames[id] === value)) {\n setSecretEnvVarError(\"Each linked secret must use a different environment variable name.\");\n return;\n }\n if (pendingSecret) {\n setSecretEnvVarNames((current) => ({ ...current, [pendingSecret.id]: value }));\n setSecretIds((current) => current.includes(pendingSecret.id) ? current : [...current, pendingSecret.id]);\n }\n setPendingSecret(null);\n setSecretEnvVarError(\"\");\n };\n const linkSetting = (label: string, checked: boolean, onChange: (checked: boolean) => void, hint: string) =>\n <label className=\"agent-editor__link-setting\"><input type=\"checkbox\" checked={checked} onChange={(event) => onChange(event.target.checked)} /><span><strong>{label}</strong><small>{hint}</small></span></label>;\n const agentStatus = record?.status ?? \"draft\";\n const tabs = [\n { value: \"basics\", label: \"Basics\", content: <div className=\"agent-editor__stack\">\n <div className=\"agent-editor__grid\">{field(\"Name\", name, setName, \"name\", true)}{field(\"Title\", title, setTitle, \"title\", true)}\n {field(\"Description\", description, setDescription, \"description\")}<div className=\"agent-editor__field\"><span>Icon</span><SolidIconPicker value={iconName} onChange={setIconName} /></div>\n </div>\n <AgentHubTagsField value={tags} onChange={setTags} disabled={creating || updating || isLoading || isFetching || isError} onBusyChange={setCreatingTag} />\n <section className=\"agent-editor__section\"><div className=\"agent-editor__section-head\"><div><h2>Inputs</h2><p>Define the variables this agent can use. Mark inputs optional or provide a default value when people do not need to enter them.</p></div>\n {inputs.length > 0 && <SolidButton type=\"button\" variant=\"secondary\" size=\"small\" onClick={() => setInputs((current) => [...current, { name: \"\", description: \"\", dataType: \"string\", defaultValue: null, optional: false }])}><Plus size={15} /> Add input</SolidButton>}\n </div>\n {!inputs.length ? <div className=\"agent-editor__empty\">This agent has no inputs. <button type=\"button\" onClick={() => setInputs([{ name: \"\", description: \"\", dataType: \"string\", defaultValue: null, optional: false }])}><Plus size={15} /> Add an input variable</button></div>\n : <div className=\"agent-editor__inputs\">{inputs.map((input, index) => <div className=\"agent-editor__input-row\" key={index}>\n <SolidInput aria-label={`Input ${index + 1} name`} placeholder=\"Variable name\" value={input.name} onChange={(event) => setInputs((current) => current.map((item, i) => i === index ? { ...item, name: event.target.value } : item))} />\n <SolidInput aria-label={`Input ${index + 1} description`} placeholder=\"Description\" value={input.description} onChange={(event) => setInputs((current) => current.map((item, i) => i === index ? { ...item, description: event.target.value } : item))} />\n <SolidInput aria-label={`Input ${index + 1} default value`} placeholder=\"Default value\" value={formatDefaultValue(input.defaultValue)} onChange={(event) => setInputs((current) => current.map((item, i) => i === index ? { ...item, defaultValue: event.target.value } : item))} />\n <select aria-label={`Input ${index + 1} data type`} value={input.dataType} onChange={(event) => setInputs((current) => current.map((item, i) => i === index ? { ...item, dataType: event.target.value } : item))}>\n {[\"string\", \"number\", \"integer\", \"boolean\", \"date\", \"datetime\", \"object\", \"array\"].map((type) => <option key={type} value={type}>{type}</option>)}\n </select>\n <label className=\"agent-editor__input-optional\"><input type=\"checkbox\" checked={input.optional} onChange={(event) => setInputs((current) => current.map((item, i) => i === index ? { ...item, optional: event.target.checked } : item))} /> Optional</label>\n <button type=\"button\" aria-label={`Remove input ${index + 1}`} onClick={() => setInputs((current) => current.filter((_, i) => i !== index))}><Trash2 size={17} /></button>\n </div>)}</div>}\n {errors.inputs && <small className=\"agent-editor__error\">{errors.inputs}</small>}</section>\n <section className=\"agent-editor__section agent-editor__models\"><h2>Models</h2><p>Choose a configured provider and model for each role. Select Other to enter a model ID manually.</p><div className=\"agent-editor__grid\">\n {([[\"Reasoning model\", reasoningModelKey, setReasoningModelKey, \"reasoningModelKey\"], [\"Fast model\", fastModelKey, setFastModelKey, \"fastModelKey\"]] as const).map(([label, value, setter, key]) =>\n <div className=\"agent-editor__field\" key={key}><span>{label}</span><ModelPicker value={value} options={modelOptions} providers={providerOptions} providerConfig={aiConfig.providers ?? {}} onChange={setter} />\n {errors[key] && <small className=\"agent-editor__error\">{errors[key]}</small>}</div>)}\n </div>{settingsError ? <p className=\"agent-editor__hint\">Settings could not be loaded. Try refreshing this page.</p>\n : !providerOptions.length && <p className=\"agent-editor__hint\">No enabled providers are available. Check the AI settings and your permission to view encrypted settings.</p>}</section>\n <section className=\"agent-editor__section agent-editor__workflow\" aria-labelledby=\"agent-lifecycle-title\">\n <div className=\"agent-editor__section-head\"><div><h2 id=\"agent-lifecycle-title\">Agent lifecycle</h2><p>Track this agent through its available stages. Select a stage to update its status.</p></div><div className=\"agent-editor__workflow-meta\">{record?.configVersion != null && <span className=\"agent-editor__config-version\" aria-label={`Configuration version ${record.configVersion}`}>Config v{record.configVersion}</span>}<SolidWorkflowStatusPill label={agentStatus} /></div></div>\n <div className=\"agent-editor__workflow-stages\" aria-label={`Current agent stage: ${agentStatus}`}>\n {([[\n \"draft\", \"Draft\", \"Editable configuration; not available to users.\"],\n [\"active\", \"Active\", \"Available to authorized users and the AgentHub runtime.\"],\n [\"disabled\", \"Disabled\", \"Unavailable for new interactions.\"],\n ] as const).map(([value, label, description], index) => <React.Fragment key={value}>\n {index > 0 && <div className=\"agent-editor__workflow-connector\" aria-hidden=\"true\" />}\n <button type=\"button\" className={`agent-editor__workflow-stage${agentStatus === value ? \" is-current\" : \"\"}`} aria-current={agentStatus === value ? \"step\" : undefined}\n aria-pressed={agentStatus === value} disabled={creating || updating || agentStatus === value} onClick={() => void save(value)}>\n <span className=\"agent-editor__workflow-stage-mark\">{index + 1}</span>\n <div className=\"agent-editor__workflow-stage-copy\"><strong>{label}</strong><small>{description}</small><small className=\"agent-editor__workflow-stage-cta\">{agentStatus === value ? \"Current stage\" : \"Click to move to this stage\"}</small></div>\n {agentStatus === value && <span className=\"agent-editor__workflow-current\">Current</span>}\n </button>\n </React.Fragment>)}\n </div>\n <small className=\"agent-editor__workflow-save-hint\">Changing stage saves the current form and its linked skills, tools, roles, and secrets.</small>\n </section>\n </div> },\n { value: \"persona\", label: \"Persona\", content: <section className=\"agent-editor__section agent-editor__persona\"><div className=\"agent-editor__section-head\"><div><h2>System prompt *</h2><p>Describe the agent's role, behavior, and instructions in Markdown.</p></div>\n {record?.id && <AgentPersonaHistory agentId={record.id} savedPrompt={record.systemPrompt ?? \"\"} refreshVersion={auditVersion} />}</div>\n <SolidCodeEditor value={systemPrompt} onChange={(value) => { setSystemPrompt(value ?? \"\"); setErrors((current) => ({ ...current, systemPrompt: \"\" })); }} language=\"markdown\" fontSize={11} height=\"max(34rem, calc(100dvh - 18rem))\" />\n {errors.systemPrompt && <small className=\"agent-editor__error\">{errors.systemPrompt}</small>}</section> },\n { value: \"skills\", label: \"Skills\", content: <LinkPicker label=\"Skills\" description=\"Skills available to this agent.\" options={skills.records} selected={linked(skillIds, skills.records, items(record?.agentSkills).map((link) => link.agentSkillRegistry).filter(Boolean))}\n onAdd={(id) => toggle(setSkillIds, id)} onRemove={(id) => toggle(setSkillIds, id)} createUrl=\"/admin/core/solid-core/agent-skill-registry/editor/new\"\n onView={(item) => setPreview({ item, kind: \"skill\" })} editUrlFor={(item) => `/admin/core/solid-core/agent-skill-registry/editor/${item.id}`}\n linkFor={(id) => linkForTarget(record?.agentSkills, \"agentSkillRegistry\", id)}\n render={(item) => <AgentResourceCardWidget {...({ rowData: item } as SolidKanbanCardWidgetProps)} />}\n renderSettings={(item) => <div className=\"agent-editor__link-settings\">{linkSetting(\"Always include\", alwaysIncludeValues[item.id] ?? true,\n (checked) => setAlwaysIncludeValues((current) => ({ ...current, [item.id]: checked })), \"Add the full skill to the agent prompt. Turn off to load it on demand.\")}</div>} /> },\n { value: \"tools\", label: \"Tools\", content: <LinkPicker label=\"Tools\" description=\"Tools available to this agent.\" options={tools.records} selected={linked(toolIds, tools.records, items(record?.agentTools).map((link) => link.agentToolRegistry).filter(Boolean))}\n onAdd={(id) => toggle(setToolIds, id)} onRemove={(id) => toggle(setToolIds, id)} createUrl=\"/admin/core/solid-core/agent-tool-registry/editor/new\"\n onView={(item) => setPreview({ item, kind: \"tool\" })} editUrlFor={(item) => `/admin/core/solid-core/agent-tool-registry/editor/${item.id}`}\n linkFor={(id) => linkForTarget(record?.agentTools, \"agentToolRegistry\", id)}\n render={(item) => <AgentResourceCardWidget {...({ rowData: item } as SolidKanbanCardWidgetProps)} />}\n renderSettings={(item) => <div className=\"agent-editor__link-settings\">{linkSetting(\"Require approval\", requiresApprovalValues[item.id] ?? false,\n (checked) => setRequiresApprovalValues((current) => ({ ...current, [item.id]: checked })), \"Pause before running this tool until a user approves it.\")}</div>} /> },\n { value: \"policies\", label: \"Policies\", content: <div className=\"agent-editor__stack\"><section className=\"agent-editor__section\"><h2>Roles</h2><p>Grant the agent the roles it may use.</p>\n {Object.entries(groups).map(([groupName, groupRoles]) => <fieldset className=\"agent-editor__role-group\" key={groupName}><legend>{groupName}</legend>\n {(groupRoles ?? []).map((role) => <label key={role.id}><input type=\"checkbox\" checked={roleIds.includes(role.id)} onChange={() => toggle(setRoleIds, role.id)} /> {role.name}</label>)}\n </fieldset>)}{!roles.records.length && <div className=\"agent-editor__empty\">No roles available.</div>}</section>\n <section className=\"agent-editor__section\"><h2>Execution limits</h2><div className=\"agent-editor__grid\">\n {[[\"Step limit\", stepLimit, setStepLimit], [\"Turn step limit\", turnStepLimit, setTurnStepLimit], [\"Cost limit\", costLimit, setCostLimit]].map(([label, value, setter]) =>\n <label className=\"agent-editor__field\" key={label as string}><span>{label as string}</span><input type=\"number\" min={label === \"Cost limit\" ? 0 : 1} step={label === \"Cost limit\" ? 0.01 : 1} value={value as number} onChange={(event) => (setter as (value: number) => void)(Number(event.target.value))} /></label>)}\n </div>{errors.limits && <small className=\"agent-editor__error\">{errors.limits}</small>}</section></div> },\n { value: \"secrets\", label: \"Secrets\", content: <LinkPicker label=\"Secrets\" description=\"Grant access to existing secrets. Secret values are never shown here.\" options={secrets.records} selected={linked(secretIds, secrets.records, items(record?.agentSecrets).map((link) => link.secret).filter(Boolean))}\n onAdd={(id) => { const secret = secrets.records.find((item) => item.id === id); if (secret) beginSecretEnvVarEdit(secret); }} onRemove={(id) => toggle(setSecretIds, id)}\n linkFor={(id) => linkForTarget(record?.agentSecrets, \"secret\", id)}\n render={(item, link) => <div className=\"agent-editor__secret\"><strong>{item.displayName ?? item.name ?? item.key}</strong><span>{item.key}</span><p>{item.description}</p>\n <div className=\"agent-editor__secret-env\"><span>Process environment</span><code>{secretEnvVarNames[item.id] ?? link?.envVarName ?? item.key ?? item.name}</code>\n <button type=\"button\" aria-label={`Edit environment variable name for ${item.displayName ?? item.key}`} onClick={() => beginSecretEnvVarEdit(item)}><Pencil size={14} /></button></div></div>} /> },\n ...(record?.id ? [{ value: \"processes\", label: \"Processes\", content: <AgentProcessesPanel agentId={record.id} agentLabel={record.name ?? record.title} /> }] : []),\n ...((record?.id ? [\n [\"jobs\", \"Jobs\", jobs.currentData?.records],\n ] : []) as [string, string, Item[]][]).map(([value, label, related]) => ({ value, label, content: <section className=\"agent-editor__section\"><h2>{label}</h2>\n {jobs.isLoading || jobs.isFetching ? <div className=\"agent-editor__empty\">Loading jobs…</div>\n : jobs.isError ? <div className=\"agent-editor__empty\">Jobs could not be loaded.</div>\n : items(related).length ? <div className=\"agent-editor__related\">{items(related).map((item) => <article key={item.id}><strong>{item.name ?? item.title ?? `#${item.id}`}</strong><span>{item.status ?? \"\"}</span></article>)}</div>\n : <div className=\"agent-editor__empty\">No {label.toLowerCase()} for this agent yet.</div>}</section> })),\n ...(record?.id ? [{ value: \"sessions\", label: \"Sessions\", content: <AgentSessionsPanel agentId={record.id} agentLabel={record.name ?? record.title} /> }] : []),\n ...(record?.id ? [{ value: \"embedding\", label: \"Embedding\", content: <AgentEmbeddingPanel agentId={record.id}\n fields={parseInputs(record.requiredInputs)} active={record.status === \"active\"}\n hubUrl={String(getSettingsMap(settings).solidxAgentHubBackendUrl ?? \"\")} /> }] : []),\n ];\n const content = <SolidTabGroup tabs={tabs} value={tab} onValueChange={setTab} className=\"agent-editor__tabs\" listClassName=\"agent-editor__tab-list\" panelClassName=\"agent-editor__tab-panel\" />;\n return <main className=\"agent-editor\"><header className=\"agent-editor__header\"><div className=\"agent-editor__heading-with-refresh\"><h1>{record?.id ? \"Edit Agent\" : \"Create Agent\"}</h1>{record?.id && <button type=\"button\" className={`agent-editor__refresh${isFetching ? \" is-loading\" : \"\"}`} aria-label=\"Refresh agent\" title=\"Refresh agent\" disabled={isFetching || updating} onClick={requestRefresh}><RefreshCw size={14} /></button>}</div><div className=\"agent-editor__actions\">\n <SolidButton variant=\"secondary\" leftIcon={<ArrowLeft size={16} />} onClick={() => navigate(-1)}>Back</SolidButton>\n {record?.id && <SolidButton variant=\"secondary\" leftIcon={<FlaskConical size={16} />} onClick={openAgentTest}>Test Agent</SolidButton>}\n <SolidButton loading={creating || updating} disabled={creatingTag || isLoading || isFetching || isError || (id !== \"new\" && !record?.id)} onClick={() => void save()}>Save Agent</SolidButton>\n </div></header>\n {preview && <ResourcePreviewDialog item={preview.item} kind={preview.kind} onClose={() => setPreview(null)} />}\n <SolidDialog open={confirmRefresh} onOpenChange={setConfirmRefresh} header=\"Discard unsaved changes?\" style={{ width: \"min(28rem, 94vw)\" }}\n footer={<><SolidButton type=\"button\" variant=\"secondary\" onClick={() => setConfirmRefresh(false)}>Cancel</SolidButton><SolidButton type=\"button\" disabled={isFetching} onClick={() => { setConfirmRefresh(false); void refetch(); }}>Refresh and discard</SolidButton></>}>\n <SolidDialogBody><p>You have unsaved changes. Refreshing will discard them and load the latest agent content.</p></SolidDialogBody>\n </SolidDialog>\n {isLoading ? <div className=\"agent-editor__empty\">Loading agent…</div> : isError || (id !== \"new\" && !record?.id) ?\n <div className=\"agent-editor__empty\">This agent could not be loaded.</div> : record?.id ?\n <AgentRegistryAuditPanel modelSingularName=\"agentRegistry\" recordId={record.id} refreshVersion={auditVersion} modelUserKey={record.name}>{content}</AgentRegistryAuditPanel> : content}\n <SolidDialog open={Boolean(pendingSecret)} onOpenChange={(open) => { if (!open) { setPendingSecret(null); setSecretEnvVarError(\"\"); } }}\n header=\"Set secret environment variable\" style={{ width: \"min(34rem, 94vw)\" }}\n footer={<div className=\"agent-editor__secret-dialog-actions\"><SolidButton type=\"button\" variant=\"secondary\" onClick={() => { setPendingSecret(null); setSecretEnvVarError(\"\"); }}>Cancel</SolidButton>\n <SolidButton type=\"button\" onClick={commitSecretEnvVar}>Use secret</SolidButton></div>}>\n <SolidDialogBody className=\"agent-editor__secret-dialog-body\"><div className=\"agent-editor__secret-dialog\"><p>Choose the environment variable name AgentHub will set for <strong>{pendingSecret?.displayName ?? pendingSecret?.name ?? pendingSecret?.key}</strong>. The default is the secret name.</p>\n <label className=\"agent-editor__field\"><span>Environment variable name</span><SolidInput autoFocus value={secretEnvVarDraft} aria-invalid={Boolean(secretEnvVarError)} onChange={(event) => { setSecretEnvVarDraft(event.target.value); setSecretEnvVarError(\"\"); }} />\n {secretEnvVarError && <small className=\"agent-editor__error\">{secretEnvVarError}</small>}</label></div></SolidDialogBody>\n </SolidDialog>\n {record?.id && <SolidDialog\n open={testAgentOpen}\n onOpenChange={setTestAgentOpen}\n onHide={() => setTestAgentOpen(false)}\n showHeader={false}\n overlayClassName=\"agent-editor__test-dialog-overlay\"\n ariaLabel={`Test ${record.name ?? \"SolidX Agent\"}`}\n className=\"agent-editor__test-dialog\"\n style={testAgentWindowMode === \"maximized\"\n ? { position: \"fixed\", inset: 16, width: \"auto\", maxWidth: \"none\", height: \"auto\", maxHeight: \"none\", transform: \"none\", borderRadius: 14, padding: 0, display: \"flex\", flexDirection: \"column\", overflow: \"hidden\" }\n : { position: \"fixed\", top: 16, right: 16, bottom: 16, left: \"auto\", width: \"min(28rem, calc(100vw - 32px))\", maxWidth: \"none\", height: \"auto\", maxHeight: \"none\", transform: \"none\", borderRadius: 14, padding: 0, display: \"flex\", flexDirection: \"column\", overflow: \"hidden\" }}\n >\n <div className=\"agent-editor__test-dialog-body\">\n <SolidAgentEmbedded agentRuntime=\"agentHub\" agentId={record.id} title={record.name ?? \"SolidX Agent\"} requiredInputs={parseInputs(record.requiredInputs)} height=\"100%\" className=\"agent-editor__test-chat\"\n windowControls={{ mode: testAgentWindowMode, onDock: () => setTestAgentWindowMode(\"docked\"), onMaximize: () => setTestAgentWindowMode(\"maximized\"), onRestore: () => setTestAgentWindowMode(\"docked\"), onClose: () => setTestAgentOpen(false) }} />\n </div>\n </SolidDialog>}\n </main>;\n}\n"]}
1
+ {"version":3,"file":"AgentRegistryEditorPage.js","sourceRoot":"","sources":["../../../../../src/routes/pages/admin/core/AgentRegistryEditorPage.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { ArrowLeft, Ellipsis, ExternalLink, Eye, FlaskConical, Pencil, Plus, RefreshCw, Trash2 } from \"lucide-react\";\nimport { useDispatch } from \"react-redux\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { createSolidEntityApi } from \"../../../../redux/api/solidEntityApi\";\nimport { useGetSolidSettingsQuery } from \"../../../../redux/api/solidSettingsApi\";\nimport { getSettingsMap } from \"../../../../helpers/settingsPayload\";\nimport { showToast } from \"../../../../redux/features/toastSlice\";\nimport { AgentRegistryAuditPanel } from \"./AgentRegistryAuditPanel\";\nimport { AgentPersonaHistory } from \"./AgentPersonaHistory\";\nimport { AgentHubTagsField, agentHubTagsFrom, agentHubTagsPayload, type AgentHubTag } from \"./AgentHubTagsField\";\nimport { AgentHubModuleField, agentHubModuleFrom, agentHubModulePayload, type AgentHubModule } from \"./AgentHubModuleField\";\nimport { AgentResourceCardWidget } from \"../../../../components/core/extension/solid-core/agentRegistry/card/AgentResourceCardWidget\";\nimport { AgentSessionsPanel } from \"../../../../components/core/extension/solid-core/agentToolRegistry/AgentToolSessionsPanel\";\nimport { AgentProcessesPanel } from \"../../../../components/core/extension/solid-core/agentToolRegistry/AgentProcessesPanel\";\nimport type { SolidKanbanCardWidgetProps } from \"../../../../types/solid-core\";\nimport { SolidWorkflowStatusPill } from \"../../../../components/core/form/SolidDraftPublishWorkflow\";\nimport { getModelsDevModels, useModelsDevCatalog } from \"../../../../hooks/useModelsDevModels\";\nimport { SolidAutocomplete, SolidButton, SolidCodeEditor, SolidDialog, SolidDialogBody, SolidDropdownMenu, SolidDropdownMenuContent, SolidDropdownMenuItem, SolidDropdownMenuTrigger, SolidIconPicker, SolidInput, SolidTabGroup } from \"../../../../components/shad-cn-ui\";\nimport { SolidAgentEmbedded } from \"../../../../components/core/solid-agent/SolidAgentEmbedded\";\nimport { SolidAgentMarkdown } from \"../../../../components/core/solid-agent/SolidAgentMarkdown\";\nimport { AgentEmbeddingPanel } from \"../../../../components/core/solid-agent/embed/AgentEmbeddingPanel\";\nimport \"./AgentRegistryEditorPage.css\";\n\ntype Item = { id: number; name?: string; title?: string; displayName?: string; description?: string; iconName?: string; key?: string; module?: { id?: number; displayName?: string }; [key: string]: any };\ntype Link = { id: number; agentSkillRegistry?: Item; agentToolRegistry?: Item; roleMetadata?: Item; secret?: Item; envVarName?: string; alwaysInclude?: boolean; requiresApproval?: boolean };\ntype Input = { name: string; description: string; dataType: string; defaultValue?: unknown; optional: boolean };\ntype Agent = Item & {\n configVersion?: number;\n systemPrompt?: string; requiredInputs?: string; reasoningModelKey?: string; fastModelKey?: string; status?: string;\n stepLimit?: number; turnStepLimit?: number; costLimit?: number;\n agentSkills?: Link[]; agentTools?: Link[]; agentRoles?: Link[]; agentSecrets?: Link[];\n tags?: AgentHubTag[];\n};\ntype ProviderModelOption = { provider: string; providerLabel: string; model: string; value: string; note?: string };\n\nconst PROVIDER_LABELS: Record<string, string> = {\n anthropic: \"Anthropic\",\n openai: \"OpenAI\",\n openrouter: \"OpenRouter\",\n};\nconst BUILT_IN_PROVIDER_TYPES = [\"openai\", \"anthropic\"];\n\ntype AiProviderConfig = { type?: string; apiKey?: unknown; region?: string };\ntype AiModelConfig = { providerId?: string; model?: string };\n\n/**\n * Build picker options from the AI settings: every provider with an API key, its models from\n * models.dev, plus the models chosen in settings and any already-saved values for this agent.\n */\nfunction buildModelOptions(\n providers: Record<string, AiProviderConfig>,\n settingsModels: Record<string, AiModelConfig | undefined>,\n catalog: Parameters<typeof getModelsDevModels>[0],\n savedValues: string[],\n): ProviderModelOption[] {\n const enabled = Object.entries(providers)\n .filter(([, entry]) => typeof entry?.apiKey === \"string\" && entry.apiKey.trim().length > 0);\n const options: ProviderModelOption[] = [];\n const seen = new Set<string>();\n const add = (provider: string, model: string, note?: string) => {\n const value = `${provider}:${model}`;\n if (!model || seen.has(value)) return;\n seen.add(value);\n options.push({ provider, providerLabel: PROVIDER_LABELS[provider] ?? provider, model, value, note });\n };\n for (const [provider, entry] of enabled) {\n for (const [role, config] of Object.entries(settingsModels)) {\n if (config?.providerId === provider && config.model) add(provider, config.model, `${role} model in AI settings`);\n }\n for (const value of savedValues) {\n if (value.startsWith(`${provider}:`)) add(provider, value.slice(provider.length + 1), \"currently saved\");\n }\n const type = entry.type && BUILT_IN_PROVIDER_TYPES.includes(entry.type) ? entry.type : undefined;\n for (const model of getModelsDevModels(catalog, [provider, type])) add(provider, model.id);\n }\n return options;\n}\n\nconst OTHER_MODEL = \"__other_model__\";\n\nfunction SearchableSelect({ value, options, placeholder, disabled, onChange }: {\n value: string;\n options: { label: string; value: string }[];\n placeholder: string;\n disabled?: boolean;\n onChange: (value: string) => void;\n}) {\n const [query, setQuery] = React.useState(\"\");\n const selectedLabel = options.find((option) => option.value === value)?.label;\n const selected = React.useMemo(() => selectedLabel ? { label: selectedLabel, value } : null, [selectedLabel, value]);\n const suggestions = options.filter((option) =>\n `${option.label} ${option.value}`.toLowerCase().includes(query.trim().toLowerCase()));\n\n return <SolidAutocomplete\n className=\"solid-standard-autocomplete w-full\"\n value={selected}\n suggestions={suggestions}\n completeMethod={({ query: next }) => setQuery(next)}\n onChange={(event) => onChange(event.value?.value ?? \"\")}\n field=\"label\"\n placeholder={placeholder}\n disabled={disabled}\n dropdown\n forceSelection\n portal\n />;\n}\n\nfunction ModelPicker({ value, options, providers, providerConfig, onChange }: {\n value: string;\n options: ProviderModelOption[];\n providers: { label: string; value: string }[];\n providerConfig: Record<string, AiProviderConfig>;\n onChange: (value: string) => void;\n}) {\n const separator = value.indexOf(\":\");\n const provider = separator < 0 ? \"\" : value.slice(0, separator);\n const model = separator < 0 ? \"\" : value.slice(separator + 1);\n const availableModels = options.filter((option) => option.provider === provider);\n const [otherSelected, setOtherSelected] = React.useState(false);\n const showOther = !!provider && (otherSelected || (!!model && !availableModels.some((option) => option.model === model)));\n\n return <div className=\"agent-editor__stack\">\n <div className=\"agent-editor__field\"><span>Provider *</span>\n <SearchableSelect value={provider} options={providers} placeholder=\"Select provider\"\n onChange={(next) => { setOtherSelected(false); onChange(`${next}:`); }} />\n {providerConfig[provider]?.type === \"bedrock\" && providerConfig[provider]?.region &&\n <small><em>Region: {providerConfig[provider].region}</em></small>}\n </div>\n <div className=\"agent-editor__field\"><span>Model *</span>\n <SearchableSelect value={showOther ? OTHER_MODEL : model}\n options={[...availableModels.map((option) => ({ label: option.model, value: option.model })), { label: \"Other\", value: OTHER_MODEL }]}\n placeholder=\"Select model\" disabled={!provider}\n onChange={(next) => {\n setOtherSelected(next === OTHER_MODEL);\n onChange(`${provider}:${next === OTHER_MODEL ? \"\" : next}`);\n }} />\n {showOther && <SolidInput className=\"w-full\" aria-label=\"Custom model ID\" placeholder=\"Enter model ID\" value={model}\n onChange={(event) => onChange(`${provider}:${event.target.value}`)} />}\n </div>\n </div>;\n}\n\nconst entityApi = createSolidEntityApi(\"agentRegistry\");\nconst skillApi = createSolidEntityApi(\"agentSkillRegistry\");\nconst toolApi = createSolidEntityApi(\"agentToolRegistry\");\nconst roleApi = createSolidEntityApi(\"roleMetadata\");\nconst secretApi = createSolidEntityApi(\"secret\");\nconst agentSkillApi = createSolidEntityApi(\"agentSkill\");\nconst agentToolApi = createSolidEntityApi(\"agentTool\");\nconst agentRoleApi = createSolidEntityApi(\"agentRole\");\nconst agentSecretApi = createSolidEntityApi(\"agentSecret\");\nconst jobApi = createSolidEntityApi(\"agentJob\");\n\nconst skillFields = [\"id\", \"name\", \"iconName\", \"description\"];\nconst toolFields = [...skillFields, \"type\", \"status\", \"lastLoadError\"];\n\nfunction fieldsQuery(fields: string[]): string {\n return fields.map((name) => `fields=${encodeURIComponent(name)}`).join(\"&\");\n}\n\nconst detailFields = [\n \"id\", \"name\", \"title\", \"description\", \"iconName\", \"systemPrompt\", \"requiredInputs\",\n \"reasoningModelKey\", \"fastModelKey\", \"status\", \"stepLimit\", \"turnStepLimit\", \"costLimit\", \"configVersion\",\n];\n\nconst detailQuery = [\n \"agentRoles\", \"agentRoles.roleMetadata\", \"agentSecrets\", \"agentSecrets.secret\", \"tags\", \"module\",\n].map((name, index) => `populate[${index}]=${name}`).join(\"&\") + \"&\" + fieldsQuery(detailFields);\n\n// Group by link ID to project summary columns without populating full registry records.\nfunction resourceLinksQuery(id: string, relation: string, registry: string, setting: string, fields: string[]): string {\n return [\n `filters[id][$eq]=${encodeURIComponent(id)}`,\n `groupBy[0]=${relation}.id`, `groupBy[1]=${relation}.${setting}`,\n ...fields.map((field, index) => `aggregates[${index}]=${relation}.${registry}.${field}:max`),\n ].join(\"&\");\n}\n\nfunction resourceLinksFrom(result: any, relation: string, registry: string, setting: string, fields: string[]): Link[] {\n return items(result?.groupMeta).flatMap((group) => {\n const [linkId, enabled] = String(group.groupValue ?? \"\").split(\"_\");\n const resource = Object.fromEntries(fields.map((field) => [field, group[`${relation}_${registry}_${field}_max`]]));\n if (!Number(linkId) || !Number(resource.id)) return [];\n return [{ id: Number(linkId), [registry]: { ...resource, id: Number(resource.id) }, [setting]: enabled === \"true\" || enabled === \"1\" }];\n });\n}\n\nfunction recordFrom(value: any): any {\n let result = value;\n for (let i = 0; i < 3 && result && typeof result === \"object\"; i += 1) {\n if (\"id\" in result || \"name\" in result) return result;\n result = result.data;\n }\n return undefined;\n}\n\nfunction items(value: any): any[] { return Array.isArray(value) ? value : value ? [value] : []; }\n\nfunction agentFormFromRecord(record: Agent) {\n const skills = items(record.agentSkills);\n const tools = items(record.agentTools);\n const secrets = items(record.agentSecrets);\n return {\n name: record.name ?? \"\", title: record.title ?? \"\", description: record.description ?? \"\", iconName: record.iconName ?? \"\",\n inputs: parseInputs(record.requiredInputs), reasoningModelKey: record.reasoningModelKey ?? \"\", fastModelKey: record.fastModelKey ?? \"\",\n systemPrompt: record.systemPrompt ?? \"\", stepLimit: record.stepLimit ?? 100, turnStepLimit: record.turnStepLimit ?? 20,\n costLimit: Number(record.costLimit ?? 3), tags: agentHubTagsFrom(record.tags), moduleId: agentHubModuleFrom(record.module)?.id ?? null, skillIds: skills.map((link) => link.agentSkillRegistry?.id).filter(Boolean),\n toolIds: tools.map((link) => link.agentToolRegistry?.id).filter(Boolean),\n roleIds: items(record.agentRoles).map((link) => link.roleMetadata?.id).filter(Boolean),\n secretIds: secrets.map((link) => link.secret?.id).filter(Boolean),\n alwaysIncludeValues: Object.fromEntries(skills.map((link) => [link.agentSkillRegistry?.id, link.alwaysInclude !== false]).filter(([key]) => key)),\n requiresApprovalValues: Object.fromEntries(tools.map((link) => [link.agentToolRegistry?.id, link.requiresApproval === true]).filter(([key]) => key)),\n secretEnvVarNames: Object.fromEntries(secrets.map((link) => [link.secret?.id, link.envVarName ?? link.secret?.key ?? link.secret?.name ?? \"\"]).filter(([key]) => key)),\n };\n}\n\nfunction parseInputs(value: unknown): Input[] {\n try {\n const parsed = typeof value === \"string\" ? JSON.parse(value) : value;\n if (Array.isArray(parsed)) return parsed.map((input) => ({\n name: String(input.name ?? input.variableName ?? \"\"), description: String(input.description ?? \"\"),\n dataType: String(input.dataType ?? input.type ?? \"string\"), defaultValue: input.defaultValue ?? null,\n optional: input.optional === true,\n }));\n // Existing agent definitions may use a name-keyed object.\n if (parsed && typeof parsed === \"object\") return Object.entries(parsed).map(([name, definition]: [string, any]) => ({\n name, description: String(definition?.description ?? \"\"),\n dataType: String(definition?.dataType ?? definition?.type ?? \"string\"), defaultValue: definition?.defaultValue ?? null,\n optional: definition?.optional === true,\n }));\n } catch { /* Keep malformed historical values from crashing the editor. */ }\n return [];\n}\n\nfunction parseDefaultValue(raw: string, dataType: string): unknown {\n if (dataType === \"string\" || dataType === \"date\" || dataType === \"datetime\") return raw;\n if (dataType === \"boolean\") {\n if (raw !== \"true\" && raw !== \"false\") throw new Error(`Default value must be true or false for ${dataType}.`);\n return raw === \"true\";\n }\n if (dataType === \"number\" || dataType === \"integer\") {\n const value = Number(raw);\n if (!Number.isFinite(value) || (dataType === \"integer\" && !Number.isSafeInteger(value))) throw new Error(`Default value must be a valid ${dataType}.`);\n return value;\n }\n const value = JSON.parse(raw);\n if (dataType === \"array\" && !Array.isArray(value)) throw new Error(\"Default value must be a JSON array.\");\n if (dataType === \"object\" && (!value || typeof value !== \"object\" || Array.isArray(value))) throw new Error(\"Default value must be a JSON object.\");\n return value;\n}\n\nfunction formatDefaultValue(value: unknown): string {\n if (value == null) return \"\";\n return typeof value === \"string\" ? value : JSON.stringify(value);\n}\n\nfunction apiError(error: any): string {\n const value = error?.data?.data?.message ?? error?.data?.message ?? error?.message;\n return Array.isArray(value) ? value.join(\"; \") : typeof value === \"string\" ? value : \"The save failed.\";\n}\n\nfunction useCatalog(api: typeof skillApi, query = \"offset=0&limit=1000\") {\n const { data, isLoading, refetch } = api.useGetSolidEntitiesQuery(query);\n return { records: items(data?.records) as Item[], isLoading, refetch };\n}\n\nfunction ResourcePreviewDialog({ item, kind, onClose }: { item: Item; kind: \"skill\" | \"tool\"; onClose: () => void }) {\n const api = kind === \"skill\" ? skillApi : toolApi;\n const field = kind === \"skill\" ? \"body\" : \"sourceCode\";\n const { currentData, isFetching, isError, refetch } = api.useGetSolidEntityByIdQuery(\n { id: item.id, qs: fieldsQuery([\"id\", field]) }, { refetchOnMountOrArgChange: true });\n const record = recordFrom(currentData);\n const content = record?.[field] ?? \"\";\n\n return <SolidDialog open onOpenChange={(open) => { if (!open) onClose(); }} header={item.name ?? `View ${kind}`}\n style={{ width: \"min(64rem, 94vw)\", maxWidth: \"94vw\" }}>\n <SolidDialogBody className=\"agent-editor__resource-preview-body\">\n {isFetching ? <div className=\"agent-editor__empty\" role=\"status\">Loading {kind}…</div>\n : isError || !record ? <div className=\"agent-editor__empty\"><p role=\"alert\">This {kind} could not be loaded.</p><SolidButton variant=\"secondary\" onClick={() => void refetch()}>Retry</SolidButton></div>\n : !content ? <div className=\"agent-editor__empty\">No {kind === \"skill\" ? \"skill body\" : \"source code\"} available.</div>\n : kind === \"skill\" ? <SolidAgentMarkdown text={content} />\n : <SolidCodeEditor value={content} language=\"python\" readOnly fontSize={12} height=\"min(65vh, 42rem)\" />}\n </SolidDialogBody>\n </SolidDialog>;\n}\n\nfunction LinkPicker({ label, description, options, selected, onAdd, onRemove, createUrl, render, renderSettings, linkFor, onView, editUrlFor }: {\n label: string; description: string; options: Item[]; selected: Item[];\n onAdd: (id: number) => void; onRemove: (id: number) => void; createUrl?: string;\n render: (item: Item, link?: Link) => React.ReactNode;\n renderSettings?: (item: Item, link?: Link) => React.ReactNode;\n linkFor?: (id: number) => Link | undefined;\n onView?: (item: Item) => void;\n editUrlFor?: (item: Item) => string;\n}) {\n const [search, setSearch] = React.useState(\"\");\n const [open, setOpen] = React.useState(false);\n const showAssociatedCount = label === \"Skills\" || label === \"Tools\";\n const available = options.filter((item) => !selected.some((selectedItem) => selectedItem.id === item.id)\n && `${item.name ?? item.displayName ?? item.key ?? \"\"} ${item.description ?? \"\"}`.toLowerCase().includes(search.toLowerCase())).slice(0, 20);\n return <section className=\"agent-editor__section\">\n <div className=\"agent-editor__section-head\"><div><h2>{label}</h2><p>{description}</p></div>\n {createUrl && <a href={createUrl} target=\"_blank\" rel=\"noopener noreferrer\" className=\"agent-editor__new-link\">Create {label === \"Skills\" ? \"skill\" : \"tool\"} <ExternalLink size={14} /></a>}\n </div>\n {showAssociatedCount && <div className=\"agent-editor__linked-count\" role=\"status\">\n {selected.length} {label.toLowerCase()} associated\n </div>}\n <div className=\"agent-editor__picker\">\n <SolidInput value={search} placeholder={`Search and add ${label.toLowerCase()}…`} aria-label={`Search ${label.toLowerCase()}`}\n onFocus={() => setOpen(true)} onChange={(event) => { setSearch(event.target.value); setOpen(true); }} />\n {open && <div className=\"agent-editor__picker-results\">\n {available.length ? available.map((item) => <button type=\"button\" key={item.id} onClick={() => { onAdd(item.id); setSearch(\"\"); setOpen(false); }}>\n <strong>{item.name ?? item.displayName ?? item.key}</strong><span>{item.description}</span>\n </button>) : <p>No available {label.toLowerCase()} found.</p>}\n </div>}\n </div>\n {selected.length ? <div className=\"agent-editor__cards\">{selected.map((item) => <div className=\"agent-editor__linked-card\" key={item.id}>\n <div className=\"agent-editor__card-content\">{render(item, linkFor?.(item.id))}</div>\n {renderSettings?.(item, linkFor?.(item.id))}\n {onView && editUrlFor ? <SolidDropdownMenu>\n <SolidDropdownMenuTrigger asChild><button type=\"button\" className=\"agent-editor__resource-menu-trigger\" aria-label={`Actions for ${item.name ?? item.displayName ?? item.key}`}><Ellipsis size={18} /></button></SolidDropdownMenuTrigger>\n <SolidDropdownMenuContent className=\"agent-editor__resource-menu\">\n <SolidDropdownMenuItem onSelect={() => onView(item)}><Eye size={16} /> View</SolidDropdownMenuItem>\n <SolidDropdownMenuItem asChild><a href={editUrlFor(item)} target=\"_blank\" rel=\"noopener noreferrer\"><Pencil size={16} /> Edit</a></SolidDropdownMenuItem>\n <SolidDropdownMenuItem className=\"agent-editor__resource-delete\" onSelect={() => onRemove(item.id)}><Trash2 size={16} /> Delete</SolidDropdownMenuItem>\n </SolidDropdownMenuContent>\n </SolidDropdownMenu> : <button type=\"button\" aria-label={`Remove ${item.name ?? item.displayName ?? item.key}`} onClick={() => onRemove(item.id)}><Trash2 size={16} /></button>}\n </div>)}</div> : <div className=\"agent-editor__empty\">No {label.toLowerCase()} linked yet.</div>}\n </section>;\n}\n\nexport function AgentRegistryEditorPage() {\n const { id = \"new\" } = useParams<{ id: string }>();\n const navigate = useNavigate();\n const dispatch = useDispatch();\n const agentResult = entityApi.useGetSolidEntityByIdQuery({ id, qs: detailQuery }, { skip: id === \"new\" });\n const skillLinks = entityApi.useGetSolidEntitiesQuery(\n resourceLinksQuery(id, \"agentSkills\", \"agentSkillRegistry\", \"alwaysInclude\", skillFields), { skip: id === \"new\" });\n const toolLinks = entityApi.useGetSolidEntitiesQuery(\n resourceLinksQuery(id, \"agentTools\", \"agentToolRegistry\", \"requiresApproval\", toolFields), { skip: id === \"new\" });\n const isLoading = agentResult.isLoading || skillLinks.isLoading || toolLinks.isLoading;\n const isFetching = agentResult.isFetching || skillLinks.isFetching || toolLinks.isFetching;\n const isError = agentResult.isError || skillLinks.isError || toolLinks.isError;\n const response = React.useMemo(() => {\n const agent = recordFrom(agentResult.currentData);\n if (!agent || !skillLinks.currentData || !toolLinks.currentData) return undefined;\n return { ...agent,\n agentSkills: resourceLinksFrom(skillLinks.currentData, \"agentSkills\", \"agentSkillRegistry\", \"alwaysInclude\", skillFields),\n agentTools: resourceLinksFrom(toolLinks.currentData, \"agentTools\", \"agentToolRegistry\", \"requiresApproval\", toolFields),\n };\n }, [agentResult.currentData, skillLinks.currentData, toolLinks.currentData]);\n const { data: settings, isError: settingsError } = useGetSolidSettingsQuery(undefined);\n const skills = useCatalog(skillApi, `offset=0&limit=1000&populate[0]=tags&${fieldsQuery(skillFields)}`);\n const tools = useCatalog(toolApi, `offset=0&limit=1000&populate[0]=tags&${fieldsQuery(toolFields)}`);\n const roles = useCatalog(roleApi, \"offset=0&limit=1000&populate[0]=module\");\n const secrets = useCatalog(secretApi, \"offset=0&limit=1000&fields[0]=id&fields[1]=key&fields[2]=displayName&fields[3]=description\");\n const [createAgent, { isLoading: creating }] = entityApi.useCreateSolidEntityMutation();\n const [updateAgent, { isLoading: updating }] = entityApi.useUpdateSolidEntityMutation();\n const [createSkillLink] = agentSkillApi.useCreateSolidEntityMutation();\n const [deleteSkillLink] = agentSkillApi.useDeleteSolidEntityMutation();\n const [updateSkillLink] = agentSkillApi.useUpdateSolidEntityMutation();\n const [createToolLink] = agentToolApi.useCreateSolidEntityMutation();\n const [deleteToolLink] = agentToolApi.useDeleteSolidEntityMutation();\n const [updateToolLink] = agentToolApi.useUpdateSolidEntityMutation();\n const [createRoleLink] = agentRoleApi.useCreateSolidEntityMutation();\n const [deleteRoleLink] = agentRoleApi.useDeleteSolidEntityMutation();\n const [createSecretLink] = agentSecretApi.useCreateSolidEntityMutation();\n const [deleteSecretLink] = agentSecretApi.useDeleteSolidEntityMutation();\n const [updateSecretLink] = agentSecretApi.useUpdateSolidEntityMutation();\n const record = recordFrom(response) as Agent | undefined;\n const [tab, setTab] = React.useState(\"basics\");\n const jobs = jobApi.useGetSolidEntitiesQuery(\n `offset=0&limit=1000&filters[agent][id][$eq]=${encodeURIComponent(id)}&${fieldsQuery([\"id\", \"status\"])}`,\n { skip: id === \"new\" || tab !== \"jobs\" });\n const refetch = () => {\n void agentResult.refetch(); void skillLinks.refetch(); void toolLinks.refetch();\n if (tab === \"jobs\") void jobs.refetch();\n };\n const [testAgentOpen, setTestAgentOpen] = React.useState(false);\n const [preview, setPreview] = React.useState<{ item: Item; kind: \"skill\" | \"tool\" } | null>(null);\n const [testAgentWindowMode, setTestAgentWindowMode] = React.useState<\"docked\" | \"maximized\">(\"maximized\");\n const [name, setName] = React.useState(\"\");\n const [title, setTitle] = React.useState(\"\");\n const [description, setDescription] = React.useState(\"\");\n const [iconName, setIconName] = React.useState(\"\");\n const [inputs, setInputs] = React.useState<Input[]>([]);\n const [reasoningModelKey, setReasoningModelKey] = React.useState(\"\");\n const [fastModelKey, setFastModelKey] = React.useState(\"\");\n const [systemPrompt, setSystemPrompt] = React.useState(\"\");\n const [stepLimit, setStepLimit] = React.useState(100);\n const [turnStepLimit, setTurnStepLimit] = React.useState(20);\n const [costLimit, setCostLimit] = React.useState(3);\n const [tags, setTags] = React.useState<AgentHubTag[]>([]);\n const [module, setModule] = React.useState<AgentHubModule | null>(null);\n const [creatingTag, setCreatingTag] = React.useState(false);\n const [skillIds, setSkillIds] = React.useState<number[]>([]);\n const [toolIds, setToolIds] = React.useState<number[]>([]);\n const [roleIds, setRoleIds] = React.useState<number[]>([]);\n const [secretIds, setSecretIds] = React.useState<number[]>([]);\n const [alwaysIncludeValues, setAlwaysIncludeValues] = React.useState<Record<number, boolean>>({});\n const [requiresApprovalValues, setRequiresApprovalValues] = React.useState<Record<number, boolean>>({});\n const [secretEnvVarNames, setSecretEnvVarNames] = React.useState<Record<number, string>>({});\n const [pendingSecret, setPendingSecret] = React.useState<Item | null>(null);\n const [secretEnvVarDraft, setSecretEnvVarDraft] = React.useState(\"\");\n const [secretEnvVarError, setSecretEnvVarError] = React.useState(\"\");\n const [errors, setErrors] = React.useState<Record<string, string>>({});\n const [auditVersion, setAuditVersion] = React.useState(0);\n const [confirmRefresh, setConfirmRefresh] = React.useState(false);\n const baseline = React.useRef(\"\");\n\n const currentForm = () => JSON.stringify({ name, title, description, iconName, inputs, reasoningModelKey, fastModelKey, systemPrompt,\n stepLimit: Number(stepLimit), turnStepLimit: Number(turnStepLimit), costLimit: Number(costLimit), tags, moduleId: module?.id ?? null, skillIds, toolIds, roleIds, secretIds,\n alwaysIncludeValues, requiresApprovalValues, secretEnvVarNames });\n\n React.useEffect(() => {\n if (!record) return;\n baseline.current = JSON.stringify(agentFormFromRecord(record));\n setName(record.name ?? \"\"); setTitle(record.title ?? \"\"); setDescription(record.description ?? \"\");\n setIconName(record.iconName ?? \"\"); setInputs(parseInputs(record.requiredInputs));\n setReasoningModelKey(record.reasoningModelKey ?? \"\"); setFastModelKey(record.fastModelKey ?? \"\");\n setSystemPrompt(record.systemPrompt ?? \"\"); setStepLimit(record.stepLimit ?? 100);\n setTurnStepLimit(record.turnStepLimit ?? 20); setCostLimit(Number(record.costLimit ?? 3));\n setTags(agentHubTagsFrom(record.tags));\n setModule(agentHubModuleFrom(record.module));\n setSkillIds(items(record.agentSkills).map((link) => link.agentSkillRegistry?.id).filter(Boolean));\n setToolIds(items(record.agentTools).map((link) => link.agentToolRegistry?.id).filter(Boolean));\n setRoleIds(items(record.agentRoles).map((link) => link.roleMetadata?.id).filter(Boolean));\n setSecretIds(items(record.agentSecrets).map((link) => link.secret?.id).filter(Boolean));\n setAlwaysIncludeValues(Object.fromEntries(items(record.agentSkills).map((link) => [link.agentSkillRegistry?.id, link.alwaysInclude !== false]).filter(([key]) => key)));\n setRequiresApprovalValues(Object.fromEntries(items(record.agentTools).map((link) => [link.agentToolRegistry?.id, link.requiresApproval === true]).filter(([key]) => key)));\n setSecretEnvVarNames(Object.fromEntries(items(record.agentSecrets).map((link) => [link.secret?.id, link.envVarName ?? link.secret?.key ?? link.secret?.name ?? \"\"]).filter(([key]) => key)));\n }, [record?.id, response]);\n\n const isDirty = Boolean(record?.id) && currentForm() !== baseline.current;\n const requestRefresh = () => isDirty ? setConfirmRefresh(true) : void refetch();\n const openAgentTest = () => {\n setTestAgentWindowMode(\"maximized\");\n setTestAgentOpen(true);\n };\n\n React.useEffect(() => {\n const refresh = () => { skills.refetch(); tools.refetch(); };\n window.addEventListener(\"focus\", refresh);\n return () => window.removeEventListener(\"focus\", refresh);\n }, [skills.refetch, tools.refetch]);\n\n const configValue = getSettingsMap(settings).solidXGenAiCodeBuilderConfig;\n let aiConfig: { providers?: Record<string, AiProviderConfig>; models?: { default?: AiModelConfig; main?: AiModelConfig; fast?: AiModelConfig } } = {};\n try {\n aiConfig = (typeof configValue === \"string\" ? JSON.parse(configValue) : configValue) ?? {};\n } catch { /* Invalid configuration has no enabled providers. */ }\n const { catalog: modelsCatalog } = useModelsDevCatalog();\n const savedModelKeys = [record?.reasoningModelKey, record?.fastModelKey].filter((key): key is string => !!key);\n const modelOptions = buildModelOptions(\n aiConfig.providers ?? {},\n { Reasoning: aiConfig.models?.default ?? aiConfig.models?.main, Fast: aiConfig.models?.fast },\n modelsCatalog,\n savedModelKeys,\n );\n const providerOptions = Object.entries(aiConfig.providers ?? {})\n .filter(([, entry]) => typeof entry?.apiKey === \"string\" && entry.apiKey.trim().length > 0)\n .map(([provider]) => ({ label: modelsCatalog?.[provider]?.name ?? PROVIDER_LABELS[provider] ?? provider, value: provider }));\n const isValidModelKey = (value: string) => {\n const separator = value.indexOf(\":\");\n return separator > 0 && providerOptions.some((provider) => provider.value === value.slice(0, separator)) &&\n !!value.slice(separator + 1).trim();\n };\n const toggle = (setter: React.Dispatch<React.SetStateAction<number[]>>, value: number) =>\n setter((current) => current.includes(value) ? current.filter((id) => id !== value) : [...current, value]);\n\n const syncLinks = async (agentId: number, previous: Link[] | undefined, selected: number[], field: string,\n create: any, remove: any, update: any, extra: Record<string, unknown> | ((targetId: number) => Record<string, unknown>) = {}) => {\n const links = items(previous) as Link[];\n const oldIds = links.map((link) => (link as any)[field]?.id).filter(Boolean);\n for (const link of links) {\n if (!selected.includes((link as any)[field]?.id)) await remove(link.id).unwrap();\n }\n for (const targetId of selected) {\n const values = typeof extra === \"function\" ? extra(targetId) : extra;\n if (!oldIds.includes(targetId)) {\n await create({ agentRegistryId: agentId, [`${field}Id`]: targetId, ...values }).unwrap();\n continue;\n }\n const existing = links.find((link) => (link as any)[field]?.id === targetId);\n if (existing && Object.entries(values).some(([key, value]) => (existing as any)[key] !== value)) {\n await update({ id: existing.id, data: { agentRegistryId: agentId, [`${field}Id`]: targetId, ...values } }).unwrap();\n }\n }\n };\n\n const save = async (nextStatus?: \"draft\" | \"active\" | \"disabled\") => {\n if (creatingTag) return;\n const next: Record<string, string> = {};\n if (!name.trim()) next.name = \"Name is required.\";\n if (!title.trim()) next.title = \"Title is required.\";\n if (!module) next.module = \"Module is required. Select a module before saving this agent.\";\n if (!systemPrompt.trim()) next.systemPrompt = \"Persona instructions are required.\";\n if (!isValidModelKey(reasoningModelKey)) next.reasoningModelKey = \"Choose an enabled reasoning provider and model.\";\n if (!isValidModelKey(fastModelKey)) next.fastModelKey = \"Choose an enabled fast provider and model.\";\n if (inputs.some((input) => !input.name.trim() || !input.dataType)) next.inputs = \"Each input needs a name and data type.\";\n if (new Set(inputs.map((input) => input.name.trim().toLowerCase())).size !== inputs.length) next.inputs = \"Input names must be unique.\";\n if (stepLimit < 1 || turnStepLimit < 1 || costLimit < 0) next.limits = \"Step limits must be positive and cost limit cannot be negative.\";\n setErrors(next);\n if (Object.keys(next).length) {\n setTab(next.systemPrompt ? \"persona\" : next.limits ? \"policies\" : \"basics\");\n dispatch(showToast({ severity: \"error\", summary: \"Missing information\", detail: Object.values(next).join(\" \") }));\n return;\n }\n let normalizedInputs: Input[];\n try {\n normalizedInputs = inputs.map((input) => ({ ...input, name: input.name.trim(), description: input.description.trim(),\n defaultValue: input.defaultValue === \"\" || input.defaultValue == null ? null : parseDefaultValue(String(input.defaultValue), input.dataType) }));\n } catch (error) {\n next.inputs = error instanceof Error ? error.message : \"Check the default input values.\";\n setErrors(next);\n setTab(\"basics\");\n return;\n }\n const payload = {\n name: name.trim(), title: title.trim(), description: description.trim(), iconName,\n requiredInputs: JSON.stringify(normalizedInputs),\n reasoningModelKey, fastModelKey, systemPrompt, stepLimit: Number(stepLimit),\n turnStepLimit: Number(turnStepLimit), costLimit: Number(costLimit),\n ...agentHubTagsPayload(tags),\n ...agentHubModulePayload(module),\n status: nextStatus ?? record?.status ?? \"draft\",\n };\n let newlyCreatedId: number | undefined;\n let scalarSaved = false;\n try {\n const result = record?.id ? await updateAgent({ id: record.id, data: payload }).unwrap() : await createAgent(payload).unwrap();\n scalarSaved = true;\n const savedId = Number(record?.id ?? recordFrom(result)?.id);\n if (!savedId) throw new Error(\"Agent saved, but its ID was not returned.\");\n if (!record?.id) newlyCreatedId = savedId;\n await syncLinks(savedId, record?.agentSkills, skillIds, \"agentSkillRegistry\", createSkillLink, deleteSkillLink, updateSkillLink,\n (targetId) => ({ alwaysInclude: alwaysIncludeValues[targetId] ?? true }));\n await syncLinks(savedId, record?.agentTools, toolIds, \"agentToolRegistry\", createToolLink, deleteToolLink, updateToolLink,\n (targetId) => ({ requiresApproval: requiresApprovalValues[targetId] ?? false }));\n await syncLinks(savedId, record?.agentRoles, roleIds, \"roleMetadata\", createRoleLink, deleteRoleLink, undefined);\n await syncLinks(savedId, record?.agentSecrets, secretIds, \"secret\", createSecretLink, deleteSecretLink, updateSecretLink,\n (targetId) => ({ envVarName: secretEnvVarNames[targetId] ?? \"\" }));\n dispatch(showToast({ severity: \"success\", summary: nextStatus ? \"Agent status updated\" : \"Saved\", detail: nextStatus ? `Agent moved to ${nextStatus}.` : \"Agent and its associations saved.\" }));\n setAuditVersion((version) => version + 1);\n if (record?.id) refetch();\n else navigate(`/admin/core/solid-core/agent-registry/editor/${savedId}`, { replace: true });\n } catch (error) {\n dispatch(showToast({ severity: \"error\", summary: scalarSaved ? \"Agent saved; links incomplete\" : \"Save failed\", detail: apiError(error) }));\n if (record?.id) refetch();\n else if (newlyCreatedId) navigate(`/admin/core/solid-core/agent-registry/editor/${newlyCreatedId}`, { replace: true });\n }\n };\n\n const field = (label: string, value: string, setValue: (value: string) => void, key: string, required = false) =>\n <label className=\"agent-editor__field\"><span>{label}{required && \" *\"}</span>\n <SolidInput value={value} aria-invalid={Boolean(errors[key])} onChange={(event) => { setValue(event.target.value); setErrors((current) => ({ ...current, [key]: \"\" })); }} />\n {errors[key] && <small className=\"agent-editor__error\">{errors[key]}</small>}\n </label>;\n const linked = (ids: number[], catalog: Item[], fallback: Item[] = []) =>\n ids.map((id) => catalog.find((item) => item.id === id) ?? fallback.find((item) => item.id === id)).filter((item): item is Item => Boolean(item));\n const groups = roles.records.reduce((acc, role) => {\n const key = role.module?.displayName ?? \"Default\"; (acc[key] ??= []).push(role); return acc;\n }, {} as Record<string, Item[]>);\n const linkForTarget = (links: Link[] | undefined, fieldName: string, targetId: number) =>\n items(links).find((link) => (link as any)[fieldName]?.id === targetId);\n const beginSecretEnvVarEdit = (secret: Item) => {\n setPendingSecret(secret);\n setSecretEnvVarDraft(secretEnvVarNames[secret.id] ?? String(secret.key ?? secret.name ?? secret.displayName ?? \"\"));\n setSecretEnvVarError(\"\");\n };\n const commitSecretEnvVar = () => {\n const value = secretEnvVarDraft.trim();\n if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(value)) {\n setSecretEnvVarError(\"Use a valid environment variable name (letters, numbers, and underscores; it cannot start with a number).\");\n return;\n }\n if ([\"APP_ENCRYPTION_KEY\", \"DATABASE_URL\", \"AGENTHUB_MANAGER_INTERNAL_TOKEN\", \"AGENTHUB_BRIDGE_PROCESS_KEY\"].includes(value)) {\n setSecretEnvVarError(\"This environment variable name is reserved by AgentHub.\");\n return;\n }\n if (secretIds.some((id) => id !== pendingSecret?.id && secretEnvVarNames[id] === value)) {\n setSecretEnvVarError(\"Each linked secret must use a different environment variable name.\");\n return;\n }\n if (pendingSecret) {\n setSecretEnvVarNames((current) => ({ ...current, [pendingSecret.id]: value }));\n setSecretIds((current) => current.includes(pendingSecret.id) ? current : [...current, pendingSecret.id]);\n }\n setPendingSecret(null);\n setSecretEnvVarError(\"\");\n };\n const linkSetting = (label: string, checked: boolean, onChange: (checked: boolean) => void, hint: string) =>\n <label className=\"agent-editor__link-setting\"><input type=\"checkbox\" checked={checked} onChange={(event) => onChange(event.target.checked)} /><span><strong>{label}</strong><small>{hint}</small></span></label>;\n const agentStatus = record?.status ?? \"draft\";\n const tabs = [\n { value: \"basics\", label: \"Basics\", content: <div className=\"agent-editor__stack\">\n <div className=\"agent-editor__grid\">{field(\"Name\", name, setName, \"name\", true)}{field(\"Title\", title, setTitle, \"title\", true)}\n {field(\"Description\", description, setDescription, \"description\")}<div className=\"agent-editor__field\"><span>Icon</span><SolidIconPicker value={iconName} onChange={setIconName} /></div>\n <AgentHubModuleField className=\"agent-editor__field\" value={module} onChange={(value) => { setModule(value); setErrors((current) => ({ ...current, module: \"\" })); }} disabled={creating || updating || isLoading || isFetching || isError} clearable={false} required error={errors.module} />\n </div>\n <AgentHubTagsField value={tags} onChange={setTags} module={module} disabled={creating || updating || isLoading || isFetching || isError} onBusyChange={setCreatingTag} />\n <section className=\"agent-editor__section\"><div className=\"agent-editor__section-head\"><div><h2>Inputs</h2><p>Define the variables this agent can use. Mark inputs optional or provide a default value when people do not need to enter them.</p></div>\n {inputs.length > 0 && <SolidButton type=\"button\" variant=\"secondary\" size=\"small\" onClick={() => setInputs((current) => [...current, { name: \"\", description: \"\", dataType: \"string\", defaultValue: null, optional: false }])}><Plus size={15} /> Add input</SolidButton>}\n </div>\n {!inputs.length ? <div className=\"agent-editor__empty\">This agent has no inputs. <button type=\"button\" onClick={() => setInputs([{ name: \"\", description: \"\", dataType: \"string\", defaultValue: null, optional: false }])}><Plus size={15} /> Add an input variable</button></div>\n : <div className=\"agent-editor__inputs\">{inputs.map((input, index) => <div className=\"agent-editor__input-row\" key={index}>\n <SolidInput aria-label={`Input ${index + 1} name`} placeholder=\"Variable name\" value={input.name} onChange={(event) => setInputs((current) => current.map((item, i) => i === index ? { ...item, name: event.target.value } : item))} />\n <SolidInput aria-label={`Input ${index + 1} description`} placeholder=\"Description\" value={input.description} onChange={(event) => setInputs((current) => current.map((item, i) => i === index ? { ...item, description: event.target.value } : item))} />\n <SolidInput aria-label={`Input ${index + 1} default value`} placeholder=\"Default value\" value={formatDefaultValue(input.defaultValue)} onChange={(event) => setInputs((current) => current.map((item, i) => i === index ? { ...item, defaultValue: event.target.value } : item))} />\n <select aria-label={`Input ${index + 1} data type`} value={input.dataType} onChange={(event) => setInputs((current) => current.map((item, i) => i === index ? { ...item, dataType: event.target.value } : item))}>\n {[\"string\", \"number\", \"integer\", \"boolean\", \"date\", \"datetime\", \"object\", \"array\"].map((type) => <option key={type} value={type}>{type}</option>)}\n </select>\n <label className=\"agent-editor__input-optional\"><input type=\"checkbox\" checked={input.optional} onChange={(event) => setInputs((current) => current.map((item, i) => i === index ? { ...item, optional: event.target.checked } : item))} /> Optional</label>\n <button type=\"button\" aria-label={`Remove input ${index + 1}`} onClick={() => setInputs((current) => current.filter((_, i) => i !== index))}><Trash2 size={17} /></button>\n </div>)}</div>}\n {errors.inputs && <small className=\"agent-editor__error\">{errors.inputs}</small>}</section>\n <section className=\"agent-editor__section agent-editor__models\"><h2>Models</h2><p>Choose a configured provider and model for each role. Select Other to enter a model ID manually.</p><div className=\"agent-editor__grid\">\n {([[\"Reasoning model\", reasoningModelKey, setReasoningModelKey, \"reasoningModelKey\"], [\"Fast model\", fastModelKey, setFastModelKey, \"fastModelKey\"]] as const).map(([label, value, setter, key]) =>\n <div className=\"agent-editor__field\" key={key}><span>{label}</span><ModelPicker value={value} options={modelOptions} providers={providerOptions} providerConfig={aiConfig.providers ?? {}} onChange={setter} />\n {errors[key] && <small className=\"agent-editor__error\">{errors[key]}</small>}</div>)}\n </div>{settingsError ? <p className=\"agent-editor__hint\">Settings could not be loaded. Try refreshing this page.</p>\n : !providerOptions.length && <p className=\"agent-editor__hint\">No enabled providers are available. Check the AI settings and your permission to view encrypted settings.</p>}</section>\n <section className=\"agent-editor__section agent-editor__workflow\" aria-labelledby=\"agent-lifecycle-title\">\n <div className=\"agent-editor__section-head\"><div><h2 id=\"agent-lifecycle-title\">Agent lifecycle</h2><p>Track this agent through its available stages. Select a stage to update its status.</p></div><div className=\"agent-editor__workflow-meta\">{record?.configVersion != null && <span className=\"agent-editor__config-version\" aria-label={`Configuration version ${record.configVersion}`}>Config v{record.configVersion}</span>}<SolidWorkflowStatusPill label={agentStatus} /></div></div>\n <div className=\"agent-editor__workflow-stages\" aria-label={`Current agent stage: ${agentStatus}`}>\n {([[\n \"draft\", \"Draft\", \"Editable configuration; not available to users.\"],\n [\"active\", \"Active\", \"Available to authorized users and the AgentHub runtime.\"],\n [\"disabled\", \"Disabled\", \"Unavailable for new interactions.\"],\n ] as const).map(([value, label, description], index) => <React.Fragment key={value}>\n {index > 0 && <div className=\"agent-editor__workflow-connector\" aria-hidden=\"true\" />}\n <button type=\"button\" className={`agent-editor__workflow-stage${agentStatus === value ? \" is-current\" : \"\"}`} aria-current={agentStatus === value ? \"step\" : undefined}\n aria-pressed={agentStatus === value} disabled={creating || updating || agentStatus === value} onClick={() => void save(value)}>\n <span className=\"agent-editor__workflow-stage-mark\">{index + 1}</span>\n <div className=\"agent-editor__workflow-stage-copy\"><strong>{label}</strong><small>{description}</small><small className=\"agent-editor__workflow-stage-cta\">{agentStatus === value ? \"Current stage\" : \"Click to move to this stage\"}</small></div>\n {agentStatus === value && <span className=\"agent-editor__workflow-current\">Current</span>}\n </button>\n </React.Fragment>)}\n </div>\n <small className=\"agent-editor__workflow-save-hint\">Changing stage saves the current form and its linked skills, tools, roles, and secrets.</small>\n </section>\n </div> },\n { value: \"persona\", label: \"Persona\", content: <section className=\"agent-editor__section agent-editor__persona\"><div className=\"agent-editor__section-head\"><div><h2>System prompt *</h2><p>Describe the agent's role, behavior, and instructions in Markdown.</p></div>\n {record?.id && <AgentPersonaHistory agentId={record.id} savedPrompt={record.systemPrompt ?? \"\"} refreshVersion={auditVersion} />}</div>\n <SolidCodeEditor value={systemPrompt} onChange={(value) => { setSystemPrompt(value ?? \"\"); setErrors((current) => ({ ...current, systemPrompt: \"\" })); }} language=\"markdown\" wordWrap=\"on\" fontSize={11} height=\"max(34rem, calc(100dvh - 18rem))\" />\n {errors.systemPrompt && <small className=\"agent-editor__error\">{errors.systemPrompt}</small>}</section> },\n { value: \"skills\", label: \"Skills\", content: <LinkPicker label=\"Skills\" description=\"Skills available to this agent.\" options={skills.records} selected={linked(skillIds, skills.records, items(record?.agentSkills).map((link) => link.agentSkillRegistry).filter(Boolean))}\n onAdd={(id) => toggle(setSkillIds, id)} onRemove={(id) => toggle(setSkillIds, id)} createUrl=\"/admin/core/solid-core/agent-skill-registry/editor/new\"\n onView={(item) => setPreview({ item, kind: \"skill\" })} editUrlFor={(item) => `/admin/core/solid-core/agent-skill-registry/editor/${item.id}`}\n linkFor={(id) => linkForTarget(record?.agentSkills, \"agentSkillRegistry\", id)}\n render={(item) => <AgentResourceCardWidget {...({ rowData: item } as SolidKanbanCardWidgetProps)} />}\n renderSettings={(item) => <div className=\"agent-editor__link-settings\">{linkSetting(\"Always include\", alwaysIncludeValues[item.id] ?? true,\n (checked) => setAlwaysIncludeValues((current) => ({ ...current, [item.id]: checked })), \"Add the full skill to the agent prompt. Turn off to load it on demand.\")}</div>} /> },\n { value: \"tools\", label: \"Tools\", content: <LinkPicker label=\"Tools\" description=\"Tools available to this agent.\" options={tools.records} selected={linked(toolIds, tools.records, items(record?.agentTools).map((link) => link.agentToolRegistry).filter(Boolean))}\n onAdd={(id) => toggle(setToolIds, id)} onRemove={(id) => toggle(setToolIds, id)} createUrl=\"/admin/core/solid-core/agent-tool-registry/editor/new\"\n onView={(item) => setPreview({ item, kind: \"tool\" })} editUrlFor={(item) => `/admin/core/solid-core/agent-tool-registry/editor/${item.id}`}\n linkFor={(id) => linkForTarget(record?.agentTools, \"agentToolRegistry\", id)}\n render={(item) => <AgentResourceCardWidget {...({ rowData: item } as SolidKanbanCardWidgetProps)} />}\n renderSettings={(item) => <div className=\"agent-editor__link-settings\">{linkSetting(\"Require approval\", requiresApprovalValues[item.id] ?? false,\n (checked) => setRequiresApprovalValues((current) => ({ ...current, [item.id]: checked })), \"Pause before running this tool until a user approves it.\")}</div>} /> },\n { value: \"policies\", label: \"Policies\", content: <div className=\"agent-editor__stack\"><section className=\"agent-editor__section\"><h2>Roles</h2><p>Grant the agent the roles it may use.</p>\n {Object.entries(groups).map(([groupName, groupRoles]) => <fieldset className=\"agent-editor__role-group\" key={groupName}><legend>{groupName}</legend>\n {(groupRoles ?? []).map((role) => <label key={role.id}><input type=\"checkbox\" checked={roleIds.includes(role.id)} onChange={() => toggle(setRoleIds, role.id)} /> {role.name}</label>)}\n </fieldset>)}{!roles.records.length && <div className=\"agent-editor__empty\">No roles available.</div>}</section>\n <section className=\"agent-editor__section\"><h2>Execution limits</h2><div className=\"agent-editor__grid\">\n {[[\"Step limit\", stepLimit, setStepLimit], [\"Turn step limit\", turnStepLimit, setTurnStepLimit], [\"Cost limit\", costLimit, setCostLimit]].map(([label, value, setter]) =>\n <label className=\"agent-editor__field\" key={label as string}><span>{label as string}</span><input type=\"number\" min={label === \"Cost limit\" ? 0 : 1} step={label === \"Cost limit\" ? 0.01 : 1} value={value as number} onChange={(event) => (setter as (value: number) => void)(Number(event.target.value))} /></label>)}\n </div>{errors.limits && <small className=\"agent-editor__error\">{errors.limits}</small>}</section></div> },\n { value: \"secrets\", label: \"Secrets\", content: <LinkPicker label=\"Secrets\" description=\"Grant access to existing secrets. Secret values are never shown here.\" options={secrets.records} selected={linked(secretIds, secrets.records, items(record?.agentSecrets).map((link) => link.secret).filter(Boolean))}\n onAdd={(id) => { const secret = secrets.records.find((item) => item.id === id); if (secret) beginSecretEnvVarEdit(secret); }} onRemove={(id) => toggle(setSecretIds, id)}\n linkFor={(id) => linkForTarget(record?.agentSecrets, \"secret\", id)}\n render={(item, link) => <div className=\"agent-editor__secret\"><strong>{item.displayName ?? item.name ?? item.key}</strong><span>{item.key}</span><p>{item.description}</p>\n <div className=\"agent-editor__secret-env\"><span>Process environment</span><code>{secretEnvVarNames[item.id] ?? link?.envVarName ?? item.key ?? item.name}</code>\n <button type=\"button\" aria-label={`Edit environment variable name for ${item.displayName ?? item.key}`} onClick={() => beginSecretEnvVarEdit(item)}><Pencil size={14} /></button></div></div>} /> },\n ...(record?.id ? [{ value: \"processes\", label: \"Processes\", content: <AgentProcessesPanel agentId={record.id} agentLabel={record.name ?? record.title} /> }] : []),\n ...((record?.id ? [\n [\"jobs\", \"Jobs\", jobs.currentData?.records],\n ] : []) as [string, string, Item[]][]).map(([value, label, related]) => ({ value, label, content: <section className=\"agent-editor__section\"><h2>{label}</h2>\n {jobs.isLoading || jobs.isFetching ? <div className=\"agent-editor__empty\">Loading jobs…</div>\n : jobs.isError ? <div className=\"agent-editor__empty\">Jobs could not be loaded.</div>\n : items(related).length ? <div className=\"agent-editor__related\">{items(related).map((item) => <article key={item.id}><strong>{item.name ?? item.title ?? `#${item.id}`}</strong><span>{item.status ?? \"\"}</span></article>)}</div>\n : <div className=\"agent-editor__empty\">No {label.toLowerCase()} for this agent yet.</div>}</section> })),\n ...(record?.id ? [{ value: \"sessions\", label: \"Sessions\", content: <AgentSessionsPanel agentId={record.id} agentLabel={record.name ?? record.title} /> }] : []),\n ...(record?.id ? [{ value: \"embedding\", label: \"Embedding\", content: <AgentEmbeddingPanel agentId={record.id}\n fields={parseInputs(record.requiredInputs)} active={record.status === \"active\"}\n hubUrl={String(getSettingsMap(settings).solidxAgentHubBackendUrl ?? \"\")} /> }] : []),\n ];\n const content = <SolidTabGroup tabs={tabs} value={tab} onValueChange={setTab} className=\"agent-editor__tabs\" listClassName=\"agent-editor__tab-list\" panelClassName=\"agent-editor__tab-panel\" />;\n return <main className=\"agent-editor\"><header className=\"agent-editor__header\"><div className=\"agent-editor__heading-with-refresh\"><h1>{record?.id ? \"Edit Agent\" : \"Create Agent\"}</h1>{record?.id && <button type=\"button\" className={`agent-editor__refresh${isFetching ? \" is-loading\" : \"\"}`} aria-label=\"Refresh agent\" title=\"Refresh agent\" disabled={isFetching || updating} onClick={requestRefresh}><RefreshCw size={14} /></button>}</div><div className=\"agent-editor__actions\">\n <SolidButton variant=\"secondary\" leftIcon={<ArrowLeft size={16} />} onClick={() => navigate(-1)}>Back</SolidButton>\n {record?.id && <SolidButton variant=\"secondary\" leftIcon={<FlaskConical size={16} />} onClick={openAgentTest}>Test Agent</SolidButton>}\n <SolidButton loading={creating || updating} disabled={creatingTag || isLoading || isFetching || isError || (id !== \"new\" && !record?.id)} onClick={() => void save()}>Save Agent</SolidButton>\n </div></header>\n {preview && <ResourcePreviewDialog item={preview.item} kind={preview.kind} onClose={() => setPreview(null)} />}\n <SolidDialog open={confirmRefresh} onOpenChange={setConfirmRefresh} header=\"Discard unsaved changes?\" style={{ width: \"min(28rem, 94vw)\" }}\n footer={<><SolidButton type=\"button\" variant=\"secondary\" onClick={() => setConfirmRefresh(false)}>Cancel</SolidButton><SolidButton type=\"button\" disabled={isFetching} onClick={() => { setConfirmRefresh(false); void refetch(); }}>Refresh and discard</SolidButton></>}>\n <SolidDialogBody><p>You have unsaved changes. Refreshing will discard them and load the latest agent content.</p></SolidDialogBody>\n </SolidDialog>\n {isLoading ? <div className=\"agent-editor__empty\">Loading agent…</div> : isError || (id !== \"new\" && !record?.id) ?\n <div className=\"agent-editor__empty\">This agent could not be loaded.</div> : record?.id ?\n <AgentRegistryAuditPanel modelSingularName=\"agentRegistry\" recordId={record.id} refreshVersion={auditVersion} modelUserKey={record.name}>{content}</AgentRegistryAuditPanel> : content}\n <SolidDialog open={Boolean(pendingSecret)} onOpenChange={(open) => { if (!open) { setPendingSecret(null); setSecretEnvVarError(\"\"); } }}\n header=\"Set secret environment variable\" style={{ width: \"min(34rem, 94vw)\" }}\n footer={<div className=\"agent-editor__secret-dialog-actions\"><SolidButton type=\"button\" variant=\"secondary\" onClick={() => { setPendingSecret(null); setSecretEnvVarError(\"\"); }}>Cancel</SolidButton>\n <SolidButton type=\"button\" onClick={commitSecretEnvVar}>Use secret</SolidButton></div>}>\n <SolidDialogBody className=\"agent-editor__secret-dialog-body\"><div className=\"agent-editor__secret-dialog\"><p>Choose the environment variable name AgentHub will set for <strong>{pendingSecret?.displayName ?? pendingSecret?.name ?? pendingSecret?.key}</strong>. The default is the secret name.</p>\n <label className=\"agent-editor__field\"><span>Environment variable name</span><SolidInput autoFocus value={secretEnvVarDraft} aria-invalid={Boolean(secretEnvVarError)} onChange={(event) => { setSecretEnvVarDraft(event.target.value); setSecretEnvVarError(\"\"); }} />\n {secretEnvVarError && <small className=\"agent-editor__error\">{secretEnvVarError}</small>}</label></div></SolidDialogBody>\n </SolidDialog>\n {record?.id && <SolidDialog\n open={testAgentOpen}\n onOpenChange={setTestAgentOpen}\n onHide={() => setTestAgentOpen(false)}\n showHeader={false}\n overlayClassName=\"agent-editor__test-dialog-overlay\"\n ariaLabel={`Test ${record.name ?? \"SolidX Agent\"}`}\n className=\"agent-editor__test-dialog\"\n style={testAgentWindowMode === \"maximized\"\n ? { position: \"fixed\", inset: 16, width: \"auto\", maxWidth: \"none\", height: \"auto\", maxHeight: \"none\", transform: \"none\", borderRadius: 14, padding: 0, display: \"flex\", flexDirection: \"column\", overflow: \"hidden\" }\n : { position: \"fixed\", top: 16, right: 16, bottom: 16, left: \"auto\", width: \"min(28rem, calc(100vw - 32px))\", maxWidth: \"none\", height: \"auto\", maxHeight: \"none\", transform: \"none\", borderRadius: 14, padding: 0, display: \"flex\", flexDirection: \"column\", overflow: \"hidden\" }}\n >\n <div className=\"agent-editor__test-dialog-body\">\n <SolidAgentEmbedded agentRuntime=\"agentHub\" agentId={record.id} title={record.name ?? \"SolidX Agent\"} requiredInputs={parseInputs(record.requiredInputs)} height=\"100%\" className=\"agent-editor__test-chat\"\n windowControls={{ mode: testAgentWindowMode, onDock: () => setTestAgentWindowMode(\"docked\"), onMaximize: () => setTestAgentWindowMode(\"maximized\"), onRestore: () => setTestAgentWindowMode(\"docked\"), onClose: () => setTestAgentOpen(false) }} />\n </div>\n </SolidDialog>}\n </main>;\n}\n"]}