daycare-cli 2026.2.8 → 2026.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +2 -56
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/doctor.js +2 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/config/configResolve.d.ts.map +1 -1
- package/dist/config/configResolve.js +0 -9
- package/dist/config/configResolve.js.map +1 -1
- package/dist/config/configResolve.spec.js +3 -6
- package/dist/config/configResolve.spec.js.map +1 -1
- package/dist/config/configSettingsParse.d.ts.map +1 -1
- package/dist/config/configSettingsParse.js +0 -1
- package/dist/config/configSettingsParse.js.map +1 -1
- package/dist/config/configTypes.d.ts +0 -4
- package/dist/config/configTypes.d.ts.map +1 -1
- package/dist/engine/agents/agent.d.ts +3 -3
- package/dist/engine/agents/agent.d.ts.map +1 -1
- package/dist/engine/agents/agent.js +29 -26
- package/dist/engine/agents/agent.js.map +1 -1
- package/dist/engine/agents/agent.spec.js +13 -31
- package/dist/engine/agents/agent.spec.js.map +1 -1
- package/dist/engine/agents/agentSystem.d.ts +1 -4
- package/dist/engine/agents/agentSystem.d.ts.map +1 -1
- package/dist/engine/agents/agentSystem.js +11 -4
- package/dist/engine/agents/agentSystem.js.map +1 -1
- package/dist/engine/agents/agentSystem.spec.js +3 -5
- package/dist/engine/agents/agentSystem.spec.js.map +1 -1
- package/dist/engine/agents/ops/agentAppFolderPathResolve.d.ts +2 -2
- package/dist/engine/agents/ops/agentAppFolderPathResolve.d.ts.map +1 -1
- package/dist/engine/agents/ops/agentAppFolderPathResolve.js +3 -6
- package/dist/engine/agents/ops/agentAppFolderPathResolve.js.map +1 -1
- package/dist/engine/agents/ops/agentAppFolderPathResolve.spec.js +1 -11
- package/dist/engine/agents/ops/agentAppFolderPathResolve.spec.js.map +1 -1
- package/dist/engine/agents/ops/agentDescriptorWrite.d.ts +2 -2
- package/dist/engine/agents/ops/agentDescriptorWrite.d.ts.map +1 -1
- package/dist/engine/agents/ops/agentDescriptorWrite.js +2 -22
- package/dist/engine/agents/ops/agentDescriptorWrite.js.map +1 -1
- package/dist/engine/agents/ops/agentDescriptorWrite.spec.js +12 -7
- package/dist/engine/agents/ops/agentDescriptorWrite.spec.js.map +1 -1
- package/dist/engine/agents/ops/agentHistoryLoad.spec.js +7 -3
- package/dist/engine/agents/ops/agentHistoryLoad.spec.js.map +1 -1
- package/dist/engine/agents/ops/agentHistoryLoadAll.spec.js +7 -3
- package/dist/engine/agents/ops/agentHistoryLoadAll.spec.js.map +1 -1
- package/dist/engine/agents/ops/agentInferencePromptWrite.spec.js +1 -1
- package/dist/engine/agents/ops/agentInferencePromptWrite.spec.js.map +1 -1
- package/dist/engine/agents/ops/agentLoopRun.d.ts +2 -2
- package/dist/engine/agents/ops/agentLoopRun.d.ts.map +1 -1
- package/dist/engine/agents/ops/agentLoopRun.js +9 -1
- package/dist/engine/agents/ops/agentLoopRun.js.map +1 -1
- package/dist/engine/agents/ops/agentLoopRun.spec.js +107 -72
- package/dist/engine/agents/ops/agentLoopRun.spec.js.map +1 -1
- package/dist/engine/agents/ops/agentPromptFilesEnsure.d.ts +2 -3
- package/dist/engine/agents/ops/agentPromptFilesEnsure.d.ts.map +1 -1
- package/dist/engine/agents/ops/agentPromptFilesEnsure.js +2 -10
- package/dist/engine/agents/ops/agentPromptFilesEnsure.js.map +1 -1
- package/dist/engine/agents/ops/agentPromptPathsResolve.d.ts +3 -3
- package/dist/engine/agents/ops/agentPromptPathsResolve.d.ts.map +1 -1
- package/dist/engine/agents/ops/agentPromptPathsResolve.js +4 -25
- package/dist/engine/agents/ops/agentPromptPathsResolve.js.map +1 -1
- package/dist/engine/agents/ops/agentPromptPathsResolve.spec.js +2 -13
- package/dist/engine/agents/ops/agentPromptPathsResolve.spec.js.map +1 -1
- package/dist/engine/agents/ops/agentStateRead.spec.js +15 -9
- package/dist/engine/agents/ops/agentStateRead.spec.js.map +1 -1
- package/dist/engine/agents/ops/agentSystemPrompt.spec.js +17 -15
- package/dist/engine/agents/ops/agentSystemPrompt.spec.js.map +1 -1
- package/dist/engine/agents/ops/agentSystemPromptSectionMemory.js +6 -6
- package/dist/engine/agents/ops/agentSystemPromptSectionMemory.js.map +1 -1
- package/dist/engine/agents/ops/agentSystemPromptSectionPermissions.d.ts.map +1 -1
- package/dist/engine/agents/ops/agentSystemPromptSectionPermissions.js +7 -15
- package/dist/engine/agents/ops/agentSystemPromptSectionPermissions.js.map +1 -1
- package/dist/engine/agents/ops/agentSystemPromptWrite.spec.js +1 -1
- package/dist/engine/agents/ops/agentSystemPromptWrite.spec.js.map +1 -1
- package/dist/engine/agents/ops/inferenceErrorAnthropicPromptOverflowIs.d.ts +11 -0
- package/dist/engine/agents/ops/inferenceErrorAnthropicPromptOverflowIs.d.ts.map +1 -0
- package/dist/engine/agents/ops/inferenceErrorAnthropicPromptOverflowIs.js +73 -0
- package/dist/engine/agents/ops/inferenceErrorAnthropicPromptOverflowIs.js.map +1 -0
- package/dist/engine/agents/ops/inferenceErrorAnthropicPromptOverflowIs.spec.d.ts +2 -0
- package/dist/engine/agents/ops/inferenceErrorAnthropicPromptOverflowIs.spec.d.ts.map +1 -0
- package/dist/engine/agents/ops/inferenceErrorAnthropicPromptOverflowIs.spec.js +40 -0
- package/dist/engine/agents/ops/inferenceErrorAnthropicPromptOverflowIs.spec.js.map +1 -0
- package/dist/engine/apps/appExecute.spec.js +2 -2
- package/dist/engine/apps/appExecute.spec.js.map +1 -1
- package/dist/engine/apps/appManager.d.ts +1 -3
- package/dist/engine/apps/appManager.d.ts.map +1 -1
- package/dist/engine/apps/appManager.js +4 -9
- package/dist/engine/apps/appManager.js.map +1 -1
- package/dist/engine/apps/appManager.spec.js +6 -7
- package/dist/engine/apps/appManager.spec.js.map +1 -1
- package/dist/engine/apps/appReviewProvidersResolve.spec.js +2 -4
- package/dist/engine/apps/appReviewProvidersResolve.spec.js.map +1 -1
- package/dist/engine/apps/appRuleToolBuild.spec.js +8 -5
- package/dist/engine/apps/appRuleToolBuild.spec.js.map +1 -1
- package/dist/engine/cron/crons.d.ts.map +1 -1
- package/dist/engine/cron/crons.js +19 -19
- package/dist/engine/cron/crons.js.map +1 -1
- package/dist/engine/cron/ops/cronScheduler.d.ts +2 -2
- package/dist/engine/cron/ops/cronScheduler.d.ts.map +1 -1
- package/dist/engine/cron/ops/cronScheduler.js +4 -4
- package/dist/engine/cron/ops/cronScheduler.js.map +1 -1
- package/dist/engine/cron/ops/cronScheduler.spec.js +11 -11
- package/dist/engine/cron/ops/cronScheduler.spec.js.map +1 -1
- package/dist/engine/engine.d.ts +0 -2
- package/dist/engine/engine.d.ts.map +1 -1
- package/dist/engine/engine.js +30 -16
- package/dist/engine/engine.js.map +1 -1
- package/dist/engine/engine.spec.js +14 -14
- package/dist/engine/engine.spec.js.map +1 -1
- package/dist/engine/expose/exposes.spec.js +2 -4
- package/dist/engine/expose/exposes.spec.js.map +1 -1
- package/dist/engine/files/fileFolder.d.ts +21 -0
- package/dist/engine/files/fileFolder.d.ts.map +1 -0
- package/dist/engine/files/fileFolder.js +48 -0
- package/dist/engine/files/fileFolder.js.map +1 -0
- package/dist/engine/files/fileFolder.spec.d.ts +2 -0
- package/dist/engine/files/fileFolder.spec.d.ts.map +1 -0
- package/dist/engine/files/fileFolder.spec.js +41 -0
- package/dist/engine/files/fileFolder.spec.js.map +1 -0
- package/dist/engine/files/files.d.ts +12 -0
- package/dist/engine/files/files.d.ts.map +1 -0
- package/dist/engine/files/files.js +17 -0
- package/dist/engine/files/files.js.map +1 -0
- package/dist/engine/files/files.spec.d.ts +2 -0
- package/dist/engine/files/files.spec.d.ts.map +1 -0
- package/dist/engine/files/files.spec.js +44 -0
- package/dist/engine/files/files.spec.js.map +1 -0
- package/dist/engine/heartbeat/heartbeatTypes.d.ts +1 -1
- package/dist/engine/heartbeat/heartbeatTypes.d.ts.map +1 -1
- package/dist/engine/heartbeat/heartbeats.d.ts.map +1 -1
- package/dist/engine/heartbeat/heartbeats.js +5 -2
- package/dist/engine/heartbeat/heartbeats.js.map +1 -1
- package/dist/engine/heartbeat/ops/heartbeatScheduler.d.ts +1 -1
- package/dist/engine/heartbeat/ops/heartbeatScheduler.d.ts.map +1 -1
- package/dist/engine/heartbeat/ops/heartbeatScheduler.js +4 -4
- package/dist/engine/heartbeat/ops/heartbeatScheduler.js.map +1 -1
- package/dist/engine/heartbeat/ops/heartbeatScheduler.spec.js +8 -8
- package/dist/engine/heartbeat/ops/heartbeatScheduler.spec.js.map +1 -1
- package/dist/engine/modules/executablePrompts/executablePromptExpand.d.ts +6 -1
- package/dist/engine/modules/executablePrompts/executablePromptExpand.d.ts.map +1 -1
- package/dist/engine/modules/executablePrompts/executablePromptExpand.js +12 -3
- package/dist/engine/modules/executablePrompts/executablePromptExpand.js.map +1 -1
- package/dist/engine/modules/executablePrompts/executablePromptExpand.spec.js +37 -4
- package/dist/engine/modules/executablePrompts/executablePromptExpand.spec.js.map +1 -1
- package/dist/engine/modules/images/types.d.ts +2 -2
- package/dist/engine/modules/images/types.d.ts.map +1 -1
- package/dist/engine/modules/rlm/rlmNoToolsPromptBuild.spec.js +1 -1
- package/dist/engine/modules/rlm/rlmNoToolsPromptBuild.spec.js.map +1 -1
- package/dist/engine/modules/rlm/rlmToolDescriptionBuild.spec.js +1 -1
- package/dist/engine/modules/rlm/rlmToolDescriptionBuild.spec.js.map +1 -1
- package/dist/engine/modules/say/sayFileResolve.d.ts +2 -2
- package/dist/engine/modules/say/sayFileResolve.d.ts.map +1 -1
- package/dist/engine/modules/say/sayFileResolve.js +0 -27
- package/dist/engine/modules/say/sayFileResolve.js.map +1 -1
- package/dist/engine/modules/say/sayFileResolve.spec.js +11 -19
- package/dist/engine/modules/say/sayFileResolve.spec.js.map +1 -1
- package/dist/engine/modules/tools/image-generation.d.ts.map +1 -1
- package/dist/engine/modules/tools/image-generation.js +59 -18
- package/dist/engine/modules/tools/image-generation.js.map +1 -1
- package/dist/engine/modules/tools/image-generation.spec.js +7 -5
- package/dist/engine/modules/tools/image-generation.spec.js.map +1 -1
- package/dist/engine/modules/tools/mermaid-png.d.ts.map +1 -1
- package/dist/engine/modules/tools/mermaid-png.js +1 -2
- package/dist/engine/modules/tools/mermaid-png.js.map +1 -1
- package/dist/engine/modules/tools/mermaid-png.spec.js +2 -5
- package/dist/engine/modules/tools/mermaid-png.spec.js.map +1 -1
- package/dist/engine/modules/tools/permanentAgentToolBuild.d.ts +1 -1
- package/dist/engine/modules/tools/permanentAgentToolBuild.d.ts.map +1 -1
- package/dist/engine/modules/tools/permanentAgentToolBuild.js +9 -8
- package/dist/engine/modules/tools/permanentAgentToolBuild.js.map +1 -1
- package/dist/engine/modules/tools/permanentAgentToolBuild.spec.js +10 -9
- package/dist/engine/modules/tools/permanentAgentToolBuild.spec.js.map +1 -1
- package/dist/engine/modules/tools/send-file.d.ts +0 -1
- package/dist/engine/modules/tools/send-file.d.ts.map +1 -1
- package/dist/engine/modules/tools/send-file.js +2 -21
- package/dist/engine/modules/tools/send-file.js.map +1 -1
- package/dist/engine/modules/tools/sessionHistoryToolBuild.spec.js +15 -10
- package/dist/engine/modules/tools/sessionHistoryToolBuild.spec.js.map +1 -1
- package/dist/engine/modules/tools/skillToolBuild.d.ts.map +1 -1
- package/dist/engine/modules/tools/skillToolBuild.js +24 -0
- package/dist/engine/modules/tools/skillToolBuild.js.map +1 -1
- package/dist/engine/modules/tools/skillToolBuild.spec.js +43 -2
- package/dist/engine/modules/tools/skillToolBuild.spec.js.map +1 -1
- package/dist/engine/modules/tools/topologyToolBuild.spec.js +17 -16
- package/dist/engine/modules/tools/topologyToolBuild.spec.js.map +1 -1
- package/dist/engine/modules/tools/types.d.ts +2 -2
- package/dist/engine/modules/tools/types.d.ts.map +1 -1
- package/dist/engine/permissions/permissionBuildUser.d.ts.map +1 -1
- package/dist/engine/permissions/permissionBuildUser.js +3 -2
- package/dist/engine/permissions/permissionBuildUser.js.map +1 -1
- package/dist/engine/permissions/permissionBuildUser.spec.js +3 -2
- package/dist/engine/permissions/permissionBuildUser.spec.js.map +1 -1
- package/dist/engine/permissions.d.ts +0 -3
- package/dist/engine/permissions.d.ts.map +1 -1
- package/dist/engine/permissions.js +0 -11
- package/dist/engine/permissions.js.map +1 -1
- package/dist/engine/plugins/builtins.spec.js +3 -10
- package/dist/engine/plugins/builtins.spec.js.map +1 -1
- package/dist/engine/plugins/loader.spec.js +1 -0
- package/dist/engine/plugins/loader.spec.js.map +1 -1
- package/dist/engine/plugins/manager.d.ts +3 -2
- package/dist/engine/plugins/manager.d.ts.map +1 -1
- package/dist/engine/plugins/manager.js +8 -0
- package/dist/engine/plugins/manager.js.map +1 -1
- package/dist/engine/plugins/manager.spec.js +40 -2
- package/dist/engine/plugins/manager.spec.js.map +1 -1
- package/dist/engine/plugins/types.d.ts +3 -2
- package/dist/engine/plugins/types.d.ts.map +1 -1
- package/dist/engine/plugins/types.js.map +1 -1
- package/dist/engine/skills/skillListUser.d.ts +3 -4
- package/dist/engine/skills/skillListUser.d.ts.map +1 -1
- package/dist/engine/skills/skillListUser.js +6 -14
- package/dist/engine/skills/skillListUser.js.map +1 -1
- package/dist/engine/skills/skillListUser.spec.js +8 -18
- package/dist/engine/skills/skillListUser.spec.js.map +1 -1
- package/dist/engine/skills/skills.js +1 -1
- package/dist/engine/skills/skills.js.map +1 -1
- package/dist/engine/users/userHome.d.ts +2 -0
- package/dist/engine/users/userHome.d.ts.map +1 -1
- package/dist/engine/users/userHome.js +5 -2
- package/dist/engine/users/userHome.js.map +1 -1
- package/dist/engine/users/userHome.spec.js +3 -2
- package/dist/engine/users/userHome.spec.js.map +1 -1
- package/dist/engine/users/userHomeEnsure.d.ts.map +1 -1
- package/dist/engine/users/userHomeEnsure.js +3 -1
- package/dist/engine/users/userHomeEnsure.js.map +1 -1
- package/dist/engine/users/userHomeEnsure.spec.js +4 -3
- package/dist/engine/users/userHomeEnsure.spec.js.map +1 -1
- package/dist/engine/users/userHomeMigrate.d.ts +4 -1
- package/dist/engine/users/userHomeMigrate.d.ts.map +1 -1
- package/dist/engine/users/userHomeMigrate.js +12 -7
- package/dist/engine/users/userHomeMigrate.js.map +1 -1
- package/dist/engine/users/userHomeMigrate.spec.js +19 -12
- package/dist/engine/users/userHomeMigrate.spec.js.map +1 -1
- package/dist/files/types.d.ts +0 -2
- package/dist/files/types.d.ts.map +1 -1
- package/dist/log.spec.js +2 -1
- package/dist/log.spec.js.map +1 -1
- package/dist/paths.d.ts +0 -6
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +0 -6
- package/dist/paths.js.map +1 -1
- package/dist/plugins/dashboard/site/404.html +1 -1
- package/dist/plugins/dashboard/site/agent.html +1 -1
- package/dist/plugins/dashboard/site/agent.txt +1 -1
- package/dist/plugins/dashboard/site/agents.html +1 -1
- package/dist/plugins/dashboard/site/agents.txt +1 -1
- package/dist/plugins/dashboard/site/automations.html +1 -1
- package/dist/plugins/dashboard/site/automations.txt +1 -1
- package/dist/plugins/dashboard/site/connectors.html +1 -1
- package/dist/plugins/dashboard/site/connectors.txt +1 -1
- package/dist/plugins/dashboard/site/index.html +1 -1
- package/dist/plugins/dashboard/site/index.txt +1 -1
- package/dist/plugins/dashboard/site/processes.html +1 -1
- package/dist/plugins/dashboard/site/processes.txt +1 -1
- package/dist/plugins/dashboard/site/providers.html +1 -1
- package/dist/plugins/dashboard/site/providers.txt +1 -1
- package/dist/plugins/dashboard/site/signals.html +1 -1
- package/dist/plugins/dashboard/site/signals.txt +1 -1
- package/dist/plugins/dashboard/site/telemetry.html +1 -1
- package/dist/plugins/dashboard/site/telemetry.txt +1 -1
- package/dist/plugins/dashboard/site/tools.html +1 -1
- package/dist/plugins/dashboard/site/tools.txt +1 -1
- package/dist/plugins/database/__tests__/plugin.spec.js +5 -3
- package/dist/plugins/database/__tests__/plugin.spec.js.map +1 -1
- package/dist/plugins/monty-python/tool.spec.js +2 -1
- package/dist/plugins/monty-python/tool.spec.js.map +1 -1
- package/dist/plugins/nano-banana-pro/__tests__/plugin.integration.spec.js +3 -2
- package/dist/plugins/nano-banana-pro/__tests__/plugin.integration.spec.js.map +1 -1
- package/dist/plugins/nano-banana-pro/plugin.d.ts.map +1 -1
- package/dist/plugins/nano-banana-pro/plugin.js +8 -12
- package/dist/plugins/nano-banana-pro/plugin.js.map +1 -1
- package/dist/plugins/shell/tool.spec.js +2 -1
- package/dist/plugins/shell/tool.spec.js.map +1 -1
- package/dist/plugins/telegram/connector.d.ts +3 -2
- package/dist/plugins/telegram/connector.d.ts.map +1 -1
- package/dist/plugins/telegram/connector.js +18 -2
- package/dist/plugins/telegram/connector.js.map +1 -1
- package/dist/plugins/telegram/connector.spec.js +97 -0
- package/dist/plugins/telegram/connector.spec.js.map +1 -1
- package/dist/plugins/whatsapp/connector.d.ts +2 -2
- package/dist/plugins/whatsapp/connector.d.ts.map +1 -1
- package/dist/plugins/whatsapp/connector.js +0 -1
- package/dist/plugins/whatsapp/connector.js.map +1 -1
- package/dist/prompts/AGENTS.md +3 -14
- package/dist/prompts/PERMISSIONS.md +0 -1
- package/dist/prompts/SYSTEM_MEMORY.md +1 -6
- package/dist/prompts/SYSTEM_PERMISSIONS.md +0 -1
- package/dist/providers/__tests__/inference.integration.spec.js +2 -2
- package/dist/providers/__tests__/inference.integration.spec.js.map +1 -1
- package/dist/providers/manager.d.ts +2 -2
- package/dist/providers/manager.d.ts.map +1 -1
- package/dist/providers/manager.js.map +1 -1
- package/dist/providers/manager.spec.js +3 -3
- package/dist/providers/manager.spec.js.map +1 -1
- package/dist/providers/openai-image.d.ts.map +1 -1
- package/dist/providers/openai-image.js +1 -2
- package/dist/providers/openai-image.js.map +1 -1
- package/dist/providers/types.d.ts +2 -2
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/settings.d.ts +0 -1
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js.map +1 -1
- package/dist/storage/storage.spec.js +8 -4
- package/dist/storage/storage.spec.js.map +1 -1
- package/dist/storage/storageUpgrade.spec.js +1 -2
- package/dist/storage/storageUpgrade.spec.js.map +1 -1
- package/package.json +1 -1
- package/dist/engine/permissions/permissionBuildDefault.d.ts +0 -3
- package/dist/engine/permissions/permissionBuildDefault.d.ts.map +0 -1
- package/dist/engine/permissions/permissionBuildDefault.js +0 -29
- package/dist/engine/permissions/permissionBuildDefault.js.map +0 -1
- package/dist/engine/permissions/permissionBuildDefault.spec.d.ts +0 -2
- package/dist/engine/permissions/permissionBuildDefault.spec.d.ts.map +0 -1
- package/dist/engine/permissions/permissionBuildDefault.spec.js +0 -26
- package/dist/engine/permissions/permissionBuildDefault.spec.js.map +0 -1
- package/dist/files/store.d.ts +0 -24
- package/dist/files/store.d.ts.map +0 -1
- package/dist/files/store.js +0 -74
- package/dist/files/store.js.map +0 -1
- package/dist/files/store.spec.d.ts +0 -2
- package/dist/files/store.spec.d.ts.map +0 -1
- package/dist/files/store.spec.js +0 -27
- package/dist/files/store.spec.js.map +0 -1
- package/dist/plugins/memory/plugin.d.ts +0 -3
- package/dist/plugins/memory/plugin.d.ts.map +0 -1
- package/dist/plugins/memory/plugin.js +0 -30
- package/dist/plugins/memory/plugin.js.map +0 -1
- package/dist/plugins/memory/plugin.json +0 -6
- package/dist/plugins/memory/store.d.ts +0 -30
- package/dist/plugins/memory/store.d.ts.map +0 -1
- package/dist/plugins/memory/store.js +0 -264
- package/dist/plugins/memory/store.js.map +0 -1
- package/dist/plugins/memory/tool.d.ts +0 -6
- package/dist/plugins/memory/tool.d.ts.map +0 -1
- package/dist/plugins/memory/tool.js +0 -161
- package/dist/plugins/memory/tool.js.map +0 -1
- /package/dist/plugins/dashboard/site/_next/static/{2ofcp37OFpSUQ4Jtt6bPH → Qpa35HgGjxQYB6MqQG8XF}/_buildManifest.js +0 -0
- /package/dist/plugins/dashboard/site/_next/static/{2ofcp37OFpSUQ4Jtt6bPH → Qpa35HgGjxQYB6MqQG8XF}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/5e0d68fc118b66c8.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-ba419df0f2bbc111.js"/><script src="/_next/static/chunks/1dd3208c-8dbf5d579a87cb85.js" async=""></script><script src="/_next/static/chunks/528-ada84a57eb753539.js" async=""></script><script src="/_next/static/chunks/main-app-e47c27dd717b70ea.js" async=""></script><script src="/_next/static/chunks/315-7c3dbac7865a2549.js" async=""></script><script src="/_next/static/chunks/668-ebfa412e61ce0ba6.js" async=""></script><script src="/_next/static/chunks/app/tools/page-6ff89d201c006847.js" async=""></script><title>Daycare Dashboard</title><meta name="description" content="Live status for plugins, agents, and cron tasks from the local engine socket."/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="font-sans text-foreground antialiased"><div style="--sidebar-width:16rem;--sidebar-width-icon:3rem" class="group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar"><div class="group peer hidden text-sidebar-foreground md:block" data-state="expanded" data-collapsible="" data-variant="inset" data-side="left"><div class="relative w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear group-data-[collapsible=offcanvas]:w-0 group-data-[side=right]:rotate-180 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]"></div><div class="fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] duration-200 ease-linear md:flex left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]"><div data-sidebar="sidebar" class="flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow"><div data-sidebar="header" class="flex flex-col gap-2 p-2"><ul data-sidebar="menu" class="flex w-full min-w-0 flex-col gap-1"><li data-sidebar="menu-item" class="group/menu-item relative"><a href="#" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm data-[slot=sidebar-menu-button]:!p-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles h-5 w-5"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"></path><path d="M20 3v4"></path><path d="M22 5h-4"></path><path d="M4 17v2"></path><path d="M5 18H3"></path></svg><span class="text-base font-semibold">Daycare</span></a></li></ul></div><div data-sidebar="content" class="flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden"><div data-sidebar="group" class="relative flex w-full min-w-0 flex-col p-2"><div data-sidebar="group-content" class="w-full text-sm flex flex-col gap-2"><ul data-sidebar="menu" class="flex w-full min-w-0 flex-col gap-1"><li data-sidebar="menu-item" class="group/menu-item relative flex items-center gap-2"><button data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 h-8 text-sm min-w-8 bg-primary text-primary-foreground duration-200 ease-linear hover:bg-primary/90 hover:text-primary-foreground active:bg-primary/90" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-plus"><circle cx="12" cy="12" r="10"></circle><path d="M8 12h8"></path><path d="M12 8v8"></path></svg><span>New Agent</span></button><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-muted/70 h-9 w-9 shrink-0 group-data-[collapsible=icon]:opacity-0"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-terminal"><polyline points="4 17 10 11 4 5"></polyline><line x1="12" x2="20" y1="19" y2="19"></line></svg><span class="sr-only">Open console</span></button></li></ul><ul data-sidebar="menu" class="flex w-full min-w-0 flex-col gap-1"><li data-sidebar="menu-item" class="group/menu-item relative"><a href="/" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><span>Overview</span></a></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="/agents" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span>Agents</span></a></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="/automations" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg><span>Automations</span></a></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="/providers" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bot"><path d="M12 8V4H8"></path><rect width="16" height="12" x="4" y="8" rx="2"></rect><path d="M2 14h2"></path><path d="M20 14h2"></path><path d="M15 13v2"></path><path d="M9 13v2"></path></svg><span>Providers</span></a></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="/connectors" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plug"><path d="M12 22v-5"></path><path d="M9 8V2"></path><path d="M15 8V2"></path><path d="M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z"></path></svg><span>Connectors</span></a></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="/tools" data-sidebar="menu-button" data-size="default" data-active="true" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wrench"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg><span>Tools</span></a></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="/signals" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-radio"><path d="M4.9 19.1C1 15.2 1 8.8 4.9 4.9"></path><path d="M7.8 16.2c-2.3-2.3-2.3-6.1 0-8.5"></path><circle cx="12" cy="12" r="2"></circle><path d="M16.2 7.8c2.3 2.3 2.3 6.1 0 8.5"></path><path d="M19.1 4.9C23 8.8 23 15.1 19.1 19"></path></svg><span>Signals</span></a></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="/processes" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-monitor"><rect width="20" height="14" x="2" y="3" rx="2"></rect><line x1="8" x2="16" y1="21" y2="21"></line><line x1="12" x2="12" y1="17" y2="21"></line></svg><span>Processes</span></a></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="/telemetry" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg><span>Telemetry</span></a></li></ul></div></div><div data-sidebar="group" class="relative flex w-full min-w-0 flex-col p-2 group-data-[collapsible=icon]:hidden"><div data-sidebar="group-label" class="flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0 group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0">Resources</div><ul data-sidebar="menu" class="flex w-full min-w-0 flex-col gap-1"><li data-sidebar="menu-item" class="group/menu-item relative"><a href="#" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"></path><path d="M20 3v4"></path><path d="M22 5h-4"></path><path d="M4 17v2"></path><path d="M5 18H3"></path></svg><span>Prompt Library</span></a><button data-sidebar="menu-action" class="absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0 after:absolute after:-inset-2 after:md:hidden peer-data-[size=sm]/menu-button:top-1 peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 group-data-[collapsible=icon]:hidden group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0 rounded-sm data-[state=open]:bg-accent" type="button" id="radix-:R9l9jtsq:" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-ellipsis"><circle cx="12" cy="12" r="1"></circle><circle cx="19" cy="12" r="1"></circle><circle cx="5" cy="12" r="1"></circle></svg><span class="sr-only">More</span></button></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="#" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg><span>Connector Index</span></a><button data-sidebar="menu-action" class="absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0 after:absolute after:-inset-2 after:md:hidden peer-data-[size=sm]/menu-button:top-1 peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 group-data-[collapsible=icon]:hidden group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0 rounded-sm data-[state=open]:bg-accent" type="button" id="radix-:Ral9jtsq:" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-ellipsis"><circle cx="12" cy="12" r="1"></circle><circle cx="19" cy="12" r="1"></circle><circle cx="5" cy="12" r="1"></circle></svg><span class="sr-only">More</span></button></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="#" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg><span>Runbooks</span></a><button data-sidebar="menu-action" class="absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0 after:absolute after:-inset-2 after:md:hidden peer-data-[size=sm]/menu-button:top-1 peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 group-data-[collapsible=icon]:hidden group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0 rounded-sm data-[state=open]:bg-accent" type="button" id="radix-:Rbl9jtsq:" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-ellipsis"><circle cx="12" cy="12" r="1"></circle><circle cx="19" cy="12" r="1"></circle><circle cx="5" cy="12" r="1"></circle></svg><span class="sr-only">More</span></button></li></ul></div><div data-sidebar="group" class="relative flex w-full min-w-0 flex-col p-2 mt-auto"><div data-sidebar="group-content" class="w-full text-sm"><ul data-sidebar="menu" class="flex w-full min-w-0 flex-col gap-1"><li data-sidebar="menu-item" class="group/menu-item relative"><a href="#" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span>Settings</span></a></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="#" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg><span>Docs</span></a></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="#" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"></path><path d="M20 3v4"></path><path d="M22 5h-4"></path><path d="M4 17v2"></path><path d="M5 18H3"></path></svg><span>Playground</span></a></li></ul></div></div></div><div data-sidebar="footer" class="flex flex-col gap-2 p-2"><ul data-sidebar="menu" class="flex w-full min-w-0 flex-col gap-1"><li data-sidebar="menu-item" class="group/menu-item relative"><button data-sidebar="menu-button" data-size="lg" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-12 text-sm group-data-[collapsible=icon]:!p-0 data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground" type="button" id="radix-:R1pjtsq:" aria-haspopup="menu" aria-expanded="false" data-state="closed"><span class="relative flex shrink-0 overflow-hidden h-8 w-8 rounded-lg grayscale"><span class="flex h-full w-full items-center justify-center bg-muted text-sm font-medium text-muted-foreground rounded-lg">GO</span></span><div class="grid flex-1 text-left text-sm leading-tight"><span class="truncate font-medium">Daycare Operator</span><span class="truncate text-xs text-muted-foreground">engine@local</span></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-ellipsis-vertical ml-auto size-4"><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button></li></ul></div></div></div></div><main class="relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow"><div class="relative overflow-hidden border-b bg-background/80 backdrop-blur"><div class="pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_top_left,hsl(var(--primary)_/_0.18),transparent_45%),radial-gradient(circle_at_20%_120%,hsl(var(--accent)_/_0.12),transparent_55%)]"></div><header class="relative flex min-h-16 items-center gap-2 px-4 py-2 lg:px-6"><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 hover:bg-muted/70 h-7 w-7 -ml-1" data-sidebar="trigger"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path></svg><span class="sr-only">Toggle Sidebar</span></button><div class="shrink-0 bg-border w-px mx-1 h-4" role="separator" data-orientation="vertical"></div><div class="min-w-0 flex-1"><h1 class="truncate font-display text-lg font-semibold text-foreground sm:text-xl">Tools</h1><p class="truncate text-xs text-muted-foreground sm:text-sm">Runtime tool inventory registered with the engine.</p></div><div class="ml-auto flex items-center gap-2"><button class="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2 gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw h-4 w-4"><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"></path><path d="M8 16H3v5"></path></svg>Refresh</button></div></header><div class="relative px-4 pb-3 lg:px-6"><div class="flex flex-wrap items-center justify-between gap-2 rounded-lg border bg-background/70 px-3 py-2 text-xs text-muted-foreground shadow-sm animate-in fade-in-0 slide-in-from-top-2"><span>Awaiting first sync</span><span>0<!-- --> tools available</span></div></div></div><main class="flex-1"><div class="flex flex-1 flex-col gap-6 px-4 py-6 lg:px-6"><div class="grid gap-4 md:grid-cols-3"><div data-slot="card" class="rounded-lg border bg-card text-card-foreground shadow-sm backdrop-blur-sm bg-gradient-to-br from-primary/10 via-card to-card/80"><div data-slot="card-header" class="gap-2 p-6 flex flex-row items-center justify-between"><div><p data-slot="card-description" class="text-sm text-muted-foreground">Total tools</p><h3 data-slot="card-title" class="font-semibold tracking-tight text-2xl">0</h3></div><div class="flex h-10 w-10 items-center justify-center rounded-full bg-primary/10 text-primary"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wrench h-5 w-5"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg></div></div><div data-slot="card-content" class="px-6 pb-6 text-xs text-muted-foreground">Utility modules ready for task execution.</div></div><div data-slot="card" class="rounded-lg border bg-card text-card-foreground shadow-sm backdrop-blur-sm bg-gradient-to-br from-accent/10 via-card to-card/80"><div data-slot="card-header" class="flex flex-col gap-2 p-6"><p data-slot="card-description" class="text-sm text-muted-foreground">Categories</p><h3 data-slot="card-title" class="font-semibold tracking-tight text-2xl">0</h3></div><div data-slot="card-content" class="px-6 pb-6 text-xs text-muted-foreground">Grouped by namespace prefix.</div></div><div data-slot="card" class="rounded-lg border bg-card text-card-foreground shadow-sm backdrop-blur-sm bg-gradient-to-br from-secondary/30 via-card to-card/80"><div data-slot="card-header" class="flex flex-col gap-2 p-6"><p data-slot="card-description" class="text-sm text-muted-foreground">Coverage</p><h3 data-slot="card-title" class="font-semibold tracking-tight text-xl">Empty</h3></div><div data-slot="card-content" class="px-6 pb-6 text-xs text-muted-foreground">Tooling availability snapshot.</div></div></div><div data-slot="card" class="rounded-lg border text-card-foreground shadow-sm backdrop-blur-sm bg-background/70"><div data-slot="card-header" class="flex flex-col gap-2 p-6"><h3 data-slot="card-title" class="text-lg font-semibold leading-none tracking-tight">Top namespaces</h3><p data-slot="card-description" class="text-sm text-muted-foreground">Most populated tool groups.</p></div><div data-slot="card-content" class="px-6 pb-6 flex flex-wrap gap-2"><div class="text-sm text-muted-foreground">No namespaces available.</div></div></div><div data-slot="card" class="rounded-lg border bg-card text-card-foreground shadow-sm backdrop-blur-sm overflow-hidden"><div data-slot="card-header" class="flex flex-col gap-2 p-6"><h3 data-slot="card-title" class="text-lg font-semibold leading-none tracking-tight">Tool registry</h3><p data-slot="card-description" class="text-sm text-muted-foreground">Available tool identifiers and namespaces.</p></div><div data-slot="card-content" class="px-6 pb-6 grid gap-4 lg:grid-cols-2"><div class="rounded-lg border border-dashed px-4 py-6 text-sm text-muted-foreground">No tools registered.</div></div></div></div></main></main></div><script src="/_next/static/chunks/webpack-ba419df0f2bbc111.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/5e0d68fc118b66c8.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[11815,[],\"\"]\n4:I[5428,[],\"ClientPageRoot\"]\n5:I[32344,[\"315\",\"static/chunks/315-7c3dbac7865a2549.js\",\"668\",\"static/chunks/668-ebfa412e61ce0ba6.js\",\"843\",\"static/chunks/app/tools/page-6ff89d201c006847.js\"],\"default\",1]\n6:I[55092,[],\"\"]\n7:I[82023,[],\"\"]\n9:I[91584,[],\"\"]\na:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"2ofcp37OFpSUQ4Jtt6bPH\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"tools\"],\"initialTree\":[\"\",{\"children\":[\"tools\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"tools\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}],null],null],null]},[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"tools\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5e0d68fc118b66c8.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"font-sans text-foreground antialiased\",\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L8\"],\"globalErrorComponent\":\"$9\",\"missingSlots\":\"$Wa\"}]\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Daycare Dashboard\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Live status for plugins, agents, and cron tasks from the local engine socket.\"}]]\n3:null\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/5e0d68fc118b66c8.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-ba419df0f2bbc111.js"/><script src="/_next/static/chunks/1dd3208c-8dbf5d579a87cb85.js" async=""></script><script src="/_next/static/chunks/528-ada84a57eb753539.js" async=""></script><script src="/_next/static/chunks/main-app-e47c27dd717b70ea.js" async=""></script><script src="/_next/static/chunks/315-7c3dbac7865a2549.js" async=""></script><script src="/_next/static/chunks/668-ebfa412e61ce0ba6.js" async=""></script><script src="/_next/static/chunks/app/tools/page-6ff89d201c006847.js" async=""></script><title>Daycare Dashboard</title><meta name="description" content="Live status for plugins, agents, and cron tasks from the local engine socket."/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="font-sans text-foreground antialiased"><div style="--sidebar-width:16rem;--sidebar-width-icon:3rem" class="group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar"><div class="group peer hidden text-sidebar-foreground md:block" data-state="expanded" data-collapsible="" data-variant="inset" data-side="left"><div class="relative w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear group-data-[collapsible=offcanvas]:w-0 group-data-[side=right]:rotate-180 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]"></div><div class="fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] duration-200 ease-linear md:flex left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]"><div data-sidebar="sidebar" class="flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow"><div data-sidebar="header" class="flex flex-col gap-2 p-2"><ul data-sidebar="menu" class="flex w-full min-w-0 flex-col gap-1"><li data-sidebar="menu-item" class="group/menu-item relative"><a href="#" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm data-[slot=sidebar-menu-button]:!p-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles h-5 w-5"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"></path><path d="M20 3v4"></path><path d="M22 5h-4"></path><path d="M4 17v2"></path><path d="M5 18H3"></path></svg><span class="text-base font-semibold">Daycare</span></a></li></ul></div><div data-sidebar="content" class="flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden"><div data-sidebar="group" class="relative flex w-full min-w-0 flex-col p-2"><div data-sidebar="group-content" class="w-full text-sm flex flex-col gap-2"><ul data-sidebar="menu" class="flex w-full min-w-0 flex-col gap-1"><li data-sidebar="menu-item" class="group/menu-item relative flex items-center gap-2"><button data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 h-8 text-sm min-w-8 bg-primary text-primary-foreground duration-200 ease-linear hover:bg-primary/90 hover:text-primary-foreground active:bg-primary/90" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-plus"><circle cx="12" cy="12" r="10"></circle><path d="M8 12h8"></path><path d="M12 8v8"></path></svg><span>New Agent</span></button><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 border border-input bg-background hover:bg-muted/70 h-9 w-9 shrink-0 group-data-[collapsible=icon]:opacity-0"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-terminal"><polyline points="4 17 10 11 4 5"></polyline><line x1="12" x2="20" y1="19" y2="19"></line></svg><span class="sr-only">Open console</span></button></li></ul><ul data-sidebar="menu" class="flex w-full min-w-0 flex-col gap-1"><li data-sidebar="menu-item" class="group/menu-item relative"><a href="/" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><span>Overview</span></a></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="/agents" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg><span>Agents</span></a></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="/automations" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg><span>Automations</span></a></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="/providers" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bot"><path d="M12 8V4H8"></path><rect width="16" height="12" x="4" y="8" rx="2"></rect><path d="M2 14h2"></path><path d="M20 14h2"></path><path d="M15 13v2"></path><path d="M9 13v2"></path></svg><span>Providers</span></a></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="/connectors" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plug"><path d="M12 22v-5"></path><path d="M9 8V2"></path><path d="M15 8V2"></path><path d="M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z"></path></svg><span>Connectors</span></a></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="/tools" data-sidebar="menu-button" data-size="default" data-active="true" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wrench"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg><span>Tools</span></a></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="/signals" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-radio"><path d="M4.9 19.1C1 15.2 1 8.8 4.9 4.9"></path><path d="M7.8 16.2c-2.3-2.3-2.3-6.1 0-8.5"></path><circle cx="12" cy="12" r="2"></circle><path d="M16.2 7.8c2.3 2.3 2.3 6.1 0 8.5"></path><path d="M19.1 4.9C23 8.8 23 15.1 19.1 19"></path></svg><span>Signals</span></a></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="/processes" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-monitor"><rect width="20" height="14" x="2" y="3" rx="2"></rect><line x1="8" x2="16" y1="21" y2="21"></line><line x1="12" x2="12" y1="17" y2="21"></line></svg><span>Processes</span></a></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="/telemetry" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg><span>Telemetry</span></a></li></ul></div></div><div data-sidebar="group" class="relative flex w-full min-w-0 flex-col p-2 group-data-[collapsible=icon]:hidden"><div data-sidebar="group-label" class="flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0 group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0">Resources</div><ul data-sidebar="menu" class="flex w-full min-w-0 flex-col gap-1"><li data-sidebar="menu-item" class="group/menu-item relative"><a href="#" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"></path><path d="M20 3v4"></path><path d="M22 5h-4"></path><path d="M4 17v2"></path><path d="M5 18H3"></path></svg><span>Prompt Library</span></a><button data-sidebar="menu-action" class="absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0 after:absolute after:-inset-2 after:md:hidden peer-data-[size=sm]/menu-button:top-1 peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 group-data-[collapsible=icon]:hidden group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0 rounded-sm data-[state=open]:bg-accent" type="button" id="radix-:R9l9jtsq:" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-ellipsis"><circle cx="12" cy="12" r="1"></circle><circle cx="19" cy="12" r="1"></circle><circle cx="5" cy="12" r="1"></circle></svg><span class="sr-only">More</span></button></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="#" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg><span>Connector Index</span></a><button data-sidebar="menu-action" class="absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0 after:absolute after:-inset-2 after:md:hidden peer-data-[size=sm]/menu-button:top-1 peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 group-data-[collapsible=icon]:hidden group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0 rounded-sm data-[state=open]:bg-accent" type="button" id="radix-:Ral9jtsq:" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-ellipsis"><circle cx="12" cy="12" r="1"></circle><circle cx="19" cy="12" r="1"></circle><circle cx="5" cy="12" r="1"></circle></svg><span class="sr-only">More</span></button></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="#" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg><span>Runbooks</span></a><button data-sidebar="menu-action" class="absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0 after:absolute after:-inset-2 after:md:hidden peer-data-[size=sm]/menu-button:top-1 peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 group-data-[collapsible=icon]:hidden group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0 rounded-sm data-[state=open]:bg-accent" type="button" id="radix-:Rbl9jtsq:" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-ellipsis"><circle cx="12" cy="12" r="1"></circle><circle cx="19" cy="12" r="1"></circle><circle cx="5" cy="12" r="1"></circle></svg><span class="sr-only">More</span></button></li></ul></div><div data-sidebar="group" class="relative flex w-full min-w-0 flex-col p-2 mt-auto"><div data-sidebar="group-content" class="w-full text-sm"><ul data-sidebar="menu" class="flex w-full min-w-0 flex-col gap-1"><li data-sidebar="menu-item" class="group/menu-item relative"><a href="#" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings"><path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"></path><circle cx="12" cy="12" r="3"></circle></svg><span>Settings</span></a></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="#" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg><span>Docs</span></a></li><li data-sidebar="menu-item" class="group/menu-item relative"><a href="#" data-sidebar="menu-button" data-size="default" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-8 text-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles"><path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z"></path><path d="M20 3v4"></path><path d="M22 5h-4"></path><path d="M4 17v2"></path><path d="M5 18H3"></path></svg><span>Playground</span></a></li></ul></div></div></div><div data-sidebar="footer" class="flex flex-col gap-2 p-2"><ul data-sidebar="menu" class="flex w-full min-w-0 flex-col gap-1"><li data-sidebar="menu-item" class="group/menu-item relative"><button data-sidebar="menu-button" data-size="lg" data-active="false" class="peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left outline-none ring-sidebar-ring transition-[width,height,padding] focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground h-12 text-sm group-data-[collapsible=icon]:!p-0 data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground" type="button" id="radix-:R1pjtsq:" aria-haspopup="menu" aria-expanded="false" data-state="closed"><span class="relative flex shrink-0 overflow-hidden h-8 w-8 rounded-lg grayscale"><span class="flex h-full w-full items-center justify-center bg-muted text-sm font-medium text-muted-foreground rounded-lg">GO</span></span><div class="grid flex-1 text-left text-sm leading-tight"><span class="truncate font-medium">Daycare Operator</span><span class="truncate text-xs text-muted-foreground">engine@local</span></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-ellipsis-vertical ml-auto size-4"><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg></button></li></ul></div></div></div></div><main class="relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow"><div class="relative overflow-hidden border-b bg-background/80 backdrop-blur"><div class="pointer-events-none absolute inset-0 bg-[radial-gradient(circle_at_top_left,hsl(var(--primary)_/_0.18),transparent_45%),radial-gradient(circle_at_20%_120%,hsl(var(--accent)_/_0.12),transparent_55%)]"></div><header class="relative flex min-h-16 items-center gap-2 px-4 py-2 lg:px-6"><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 hover:bg-muted/70 h-7 w-7 -ml-1" data-sidebar="trigger"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path></svg><span class="sr-only">Toggle Sidebar</span></button><div class="shrink-0 bg-border w-px mx-1 h-4" role="separator" data-orientation="vertical"></div><div class="min-w-0 flex-1"><h1 class="truncate font-display text-lg font-semibold text-foreground sm:text-xl">Tools</h1><p class="truncate text-xs text-muted-foreground sm:text-sm">Runtime tool inventory registered with the engine.</p></div><div class="ml-auto flex items-center gap-2"><button class="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2 gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw h-4 w-4"><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"></path><path d="M8 16H3v5"></path></svg>Refresh</button></div></header><div class="relative px-4 pb-3 lg:px-6"><div class="flex flex-wrap items-center justify-between gap-2 rounded-lg border bg-background/70 px-3 py-2 text-xs text-muted-foreground shadow-sm animate-in fade-in-0 slide-in-from-top-2"><span>Awaiting first sync</span><span>0<!-- --> tools available</span></div></div></div><main class="flex-1"><div class="flex flex-1 flex-col gap-6 px-4 py-6 lg:px-6"><div class="grid gap-4 md:grid-cols-3"><div data-slot="card" class="rounded-lg border bg-card text-card-foreground shadow-sm backdrop-blur-sm bg-gradient-to-br from-primary/10 via-card to-card/80"><div data-slot="card-header" class="gap-2 p-6 flex flex-row items-center justify-between"><div><p data-slot="card-description" class="text-sm text-muted-foreground">Total tools</p><h3 data-slot="card-title" class="font-semibold tracking-tight text-2xl">0</h3></div><div class="flex h-10 w-10 items-center justify-center rounded-full bg-primary/10 text-primary"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wrench h-5 w-5"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"></path></svg></div></div><div data-slot="card-content" class="px-6 pb-6 text-xs text-muted-foreground">Utility modules ready for task execution.</div></div><div data-slot="card" class="rounded-lg border bg-card text-card-foreground shadow-sm backdrop-blur-sm bg-gradient-to-br from-accent/10 via-card to-card/80"><div data-slot="card-header" class="flex flex-col gap-2 p-6"><p data-slot="card-description" class="text-sm text-muted-foreground">Categories</p><h3 data-slot="card-title" class="font-semibold tracking-tight text-2xl">0</h3></div><div data-slot="card-content" class="px-6 pb-6 text-xs text-muted-foreground">Grouped by namespace prefix.</div></div><div data-slot="card" class="rounded-lg border bg-card text-card-foreground shadow-sm backdrop-blur-sm bg-gradient-to-br from-secondary/30 via-card to-card/80"><div data-slot="card-header" class="flex flex-col gap-2 p-6"><p data-slot="card-description" class="text-sm text-muted-foreground">Coverage</p><h3 data-slot="card-title" class="font-semibold tracking-tight text-xl">Empty</h3></div><div data-slot="card-content" class="px-6 pb-6 text-xs text-muted-foreground">Tooling availability snapshot.</div></div></div><div data-slot="card" class="rounded-lg border text-card-foreground shadow-sm backdrop-blur-sm bg-background/70"><div data-slot="card-header" class="flex flex-col gap-2 p-6"><h3 data-slot="card-title" class="text-lg font-semibold leading-none tracking-tight">Top namespaces</h3><p data-slot="card-description" class="text-sm text-muted-foreground">Most populated tool groups.</p></div><div data-slot="card-content" class="px-6 pb-6 flex flex-wrap gap-2"><div class="text-sm text-muted-foreground">No namespaces available.</div></div></div><div data-slot="card" class="rounded-lg border bg-card text-card-foreground shadow-sm backdrop-blur-sm overflow-hidden"><div data-slot="card-header" class="flex flex-col gap-2 p-6"><h3 data-slot="card-title" class="text-lg font-semibold leading-none tracking-tight">Tool registry</h3><p data-slot="card-description" class="text-sm text-muted-foreground">Available tool identifiers and namespaces.</p></div><div data-slot="card-content" class="px-6 pb-6 grid gap-4 lg:grid-cols-2"><div class="rounded-lg border border-dashed px-4 py-6 text-sm text-muted-foreground">No tools registered.</div></div></div></div></main></main></div><script src="/_next/static/chunks/webpack-ba419df0f2bbc111.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/5e0d68fc118b66c8.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[11815,[],\"\"]\n4:I[5428,[],\"ClientPageRoot\"]\n5:I[32344,[\"315\",\"static/chunks/315-7c3dbac7865a2549.js\",\"668\",\"static/chunks/668-ebfa412e61ce0ba6.js\",\"843\",\"static/chunks/app/tools/page-6ff89d201c006847.js\"],\"default\",1]\n6:I[55092,[],\"\"]\n7:I[82023,[],\"\"]\n9:I[91584,[],\"\"]\na:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"Qpa35HgGjxQYB6MqQG8XF\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"tools\"],\"initialTree\":[\"\",{\"children\":[\"tools\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"tools\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}],null],null],null]},[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"tools\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5e0d68fc118b66c8.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"font-sans text-foreground antialiased\",\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L8\"],\"globalErrorComponent\":\"$9\",\"missingSlots\":\"$Wa\"}]\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Daycare Dashboard\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Live status for plugins, agents, and cron tasks from the local engine socket.\"}]]\n3:null\n"])</script></body></html>
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
3:I[32344,["315","static/chunks/315-7c3dbac7865a2549.js","668","static/chunks/668-ebfa412e61ce0ba6.js","843","static/chunks/app/tools/page-6ff89d201c006847.js"],"default",1]
|
|
3
3
|
4:I[55092,[],""]
|
|
4
4
|
5:I[82023,[],""]
|
|
5
|
-
0:["
|
|
5
|
+
0:["Qpa35HgGjxQYB6MqQG8XF",[[["",{"children":["tools",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",{"children":["tools",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],null],null],null]},[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","tools","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/5e0d68fc118b66c8.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"font-sans text-foreground antialiased","children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]],null],null],["$L6",null]]]]
|
|
6
6
|
6:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Daycare Dashboard"}],["$","meta","3",{"name":"description","content":"Live status for plugins, agents, and cron tasks from the local engine socket."}]]
|
|
7
7
|
1:null
|
|
@@ -8,10 +8,11 @@ import { configResolve } from "../../../config/configResolve.js";
|
|
|
8
8
|
import { Agent } from "../../../engine/agents/agent.js";
|
|
9
9
|
import { Context } from "../../../engine/agents/context.js";
|
|
10
10
|
import { AgentInbox } from "../../../engine/agents/ops/agentInbox.js";
|
|
11
|
+
import { FileFolder } from "../../../engine/files/fileFolder.js";
|
|
11
12
|
import { ModuleRegistry } from "../../../engine/modules/moduleRegistry.js";
|
|
12
13
|
import { PluginRegistry } from "../../../engine/plugins/registry.js";
|
|
13
14
|
import { Processes } from "../../../engine/processes/processes.js";
|
|
14
|
-
import {
|
|
15
|
+
import { UserHome } from "../../../engine/users/userHome.js";
|
|
15
16
|
import { getLogger } from "../../../log.js";
|
|
16
17
|
import { plugin } from "../plugin.js";
|
|
17
18
|
describe("database plugin", () => {
|
|
@@ -22,7 +23,7 @@ describe("database plugin", () => {
|
|
|
22
23
|
it("creates db files, runs SQL, and updates db.md", async () => {
|
|
23
24
|
const config = configResolve({ engine: { dataDir: baseDir } }, path.join(baseDir, "settings.json"));
|
|
24
25
|
const auth = new AuthStore(config);
|
|
25
|
-
const fileStore = new
|
|
26
|
+
const fileStore = new FileFolder(path.join(config.dataDir, "files"));
|
|
26
27
|
const modules = new ModuleRegistry({ onMessage: async () => undefined });
|
|
27
28
|
const pluginRegistry = new PluginRegistry(modules);
|
|
28
29
|
const instanceId = "database-1";
|
|
@@ -52,7 +53,7 @@ describe("database plugin", () => {
|
|
|
52
53
|
updatedAt: now.getTime(),
|
|
53
54
|
state: "active"
|
|
54
55
|
};
|
|
55
|
-
const agent = Agent.restore(agentId, "user-1", descriptor, state, new AgentInbox(agentId), {});
|
|
56
|
+
const agent = Agent.restore(agentId, "user-1", descriptor, state, new AgentInbox(agentId), {}, new UserHome(path.join(baseDir, "users"), "user-1"));
|
|
56
57
|
const api = {
|
|
57
58
|
instance: { instanceId, pluginId: "database" },
|
|
58
59
|
settings: {},
|
|
@@ -60,6 +61,7 @@ describe("database plugin", () => {
|
|
|
60
61
|
logger: getLogger("test.database"),
|
|
61
62
|
auth,
|
|
62
63
|
dataDir: baseDir,
|
|
64
|
+
tmpDir: path.join(baseDir, "tmp"),
|
|
63
65
|
registrar,
|
|
64
66
|
exposes: {
|
|
65
67
|
registerProvider: async () => undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.spec.js","sourceRoot":"","sources":["../../../../sources/plugins/database/__tests__/plugin.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"plugin.spec.js","sourceRoot":"","sources":["../../../../sources/plugins/database/__tests__/plugin.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import { createId } from "@paralleldrive/cuid2";
|
|
|
5
5
|
import { afterEach, beforeEach, describe, expect, it } from "vitest";
|
|
6
6
|
import { Agent } from "../../engine/agents/agent.js";
|
|
7
7
|
import { AgentInbox } from "../../engine/agents/ops/agentInbox.js";
|
|
8
|
+
import { UserHome } from "../../engine/users/userHome.js";
|
|
8
9
|
import { buildMontyPythonTool } from "./tool.js";
|
|
9
10
|
const toolCall = { id: "tool-call-1", name: "python" };
|
|
10
11
|
describe("monty python tool", () => {
|
|
@@ -70,7 +71,7 @@ function createContext(workingDir) {
|
|
|
70
71
|
updatedAt: now,
|
|
71
72
|
state: "active"
|
|
72
73
|
};
|
|
73
|
-
const agent = Agent.restore(agentId, "user-1", descriptor, state, new AgentInbox(agentId), {});
|
|
74
|
+
const agent = Agent.restore(agentId, "user-1", descriptor, state, new AgentInbox(agentId), {}, new UserHome(path.join(workingDir, "users"), "user-1"));
|
|
74
75
|
return {
|
|
75
76
|
connectorRegistry: null,
|
|
76
77
|
fileStore: null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.spec.js","sourceRoot":"","sources":["../../../sources/plugins/monty-python/tool.spec.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tool.spec.js","sourceRoot":"","sources":["../../../sources/plugins/monty-python/tool.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,8 @@ import { config as loadEnv } from "dotenv";
|
|
|
6
6
|
import { describe, expect, it } from "vitest";
|
|
7
7
|
import { AuthStore } from "../../../auth/store.js";
|
|
8
8
|
import { configResolve } from "../../../config/configResolve.js";
|
|
9
|
+
import { FileFolder } from "../../../engine/files/fileFolder.js";
|
|
9
10
|
import { Processes } from "../../../engine/processes/processes.js";
|
|
10
|
-
import { FileStore } from "../../../files/store.js";
|
|
11
11
|
import { getLogger } from "../../../log.js";
|
|
12
12
|
import { plugin as nanoBananaPro } from "../plugin.js";
|
|
13
13
|
const here = path.dirname(fileURLToPath(import.meta.url));
|
|
@@ -34,7 +34,7 @@ describeIf("nano-banana-pro image generation", () => {
|
|
|
34
34
|
const config = configResolve({ engine: { dataDir: dir } }, path.join(dir, "settings.json"));
|
|
35
35
|
const auth = new AuthStore(config);
|
|
36
36
|
await auth.setApiKey("nano-banana-pro", apiKey);
|
|
37
|
-
const fileStore = new
|
|
37
|
+
const fileStore = new FileFolder(path.join(config.dataDir, "files"));
|
|
38
38
|
let registeredProvider = null;
|
|
39
39
|
const registrar = {
|
|
40
40
|
registerImageProvider: (provider) => {
|
|
@@ -61,6 +61,7 @@ describeIf("nano-banana-pro image generation", () => {
|
|
|
61
61
|
logger: getLogger("test.nano-banana-pro"),
|
|
62
62
|
auth,
|
|
63
63
|
dataDir: dir,
|
|
64
|
+
tmpDir: path.join(dir, "tmp"),
|
|
64
65
|
registrar,
|
|
65
66
|
exposes: {
|
|
66
67
|
registerProvider: async () => undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.integration.spec.js","sourceRoot":"","sources":["../../../../sources/plugins/nano-banana-pro/__tests__/plugin.integration.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.integration.spec.js","sourceRoot":"","sources":["../../../../sources/plugins/nano-banana-pro/__tests__/plugin.integration.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../sources/plugins/nano-banana-pro/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../sources/plugins/nano-banana-pro/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuDxB,eAAO,MAAM,MAAM;;;;;;;;;;;gCAyGjB,CAAC"}
|
|
@@ -70,7 +70,7 @@ export const plugin = definePlugin({
|
|
|
70
70
|
throw new Error(`Gemini image generation failed: ${response.status}`);
|
|
71
71
|
}
|
|
72
72
|
const data = (await response.json());
|
|
73
|
-
const extracted = await extractGeminiImages(data, generationContext.fileStore
|
|
73
|
+
const extracted = await extractGeminiImages(data, generationContext.fileStore);
|
|
74
74
|
files.push(...extracted);
|
|
75
75
|
if (files.length >= count) {
|
|
76
76
|
break;
|
|
@@ -102,7 +102,7 @@ export const plugin = definePlugin({
|
|
|
102
102
|
throw new Error(`Nano Banana Pro image generation failed: ${response.status}`);
|
|
103
103
|
}
|
|
104
104
|
const data = (await response.json());
|
|
105
|
-
const extracted = await extractImages(data, generationContext.fileStore
|
|
105
|
+
const extracted = await extractImages(data, generationContext.fileStore);
|
|
106
106
|
return { files: extracted.slice(0, count) };
|
|
107
107
|
}
|
|
108
108
|
});
|
|
@@ -113,7 +113,7 @@ export const plugin = definePlugin({
|
|
|
113
113
|
};
|
|
114
114
|
}
|
|
115
115
|
});
|
|
116
|
-
async function extractImages(data, fileStore
|
|
116
|
+
async function extractImages(data, fileStore) {
|
|
117
117
|
const files = [];
|
|
118
118
|
const entries = data.data ?? [];
|
|
119
119
|
for (let index = 0; index < entries.length; index += 1) {
|
|
@@ -127,8 +127,7 @@ async function extractImages(data, fileStore, source) {
|
|
|
127
127
|
const stored = await fileStore.saveBuffer({
|
|
128
128
|
name: `nano-banana-pro-${Date.now()}-${index + 1}.png`,
|
|
129
129
|
mimeType: "image/png",
|
|
130
|
-
data: buffer
|
|
131
|
-
source
|
|
130
|
+
data: buffer
|
|
132
131
|
});
|
|
133
132
|
files.push({
|
|
134
133
|
id: stored.id,
|
|
@@ -149,8 +148,7 @@ async function extractImages(data, fileStore, source) {
|
|
|
149
148
|
const stored = await fileStore.saveBuffer({
|
|
150
149
|
name: `nano-banana-pro-${Date.now()}-${index + 1}.png`,
|
|
151
150
|
mimeType: contentType,
|
|
152
|
-
data: buffer
|
|
153
|
-
source
|
|
151
|
+
data: buffer
|
|
154
152
|
});
|
|
155
153
|
files.push({
|
|
156
154
|
id: stored.id,
|
|
@@ -168,8 +166,7 @@ async function extractImages(data, fileStore, source) {
|
|
|
168
166
|
const stored = await fileStore.saveBuffer({
|
|
169
167
|
name: `nano-banana-pro-${Date.now()}-1.png`,
|
|
170
168
|
mimeType: "image/png",
|
|
171
|
-
data: buffer
|
|
172
|
-
source
|
|
169
|
+
data: buffer
|
|
173
170
|
});
|
|
174
171
|
files.push({
|
|
175
172
|
id: stored.id,
|
|
@@ -206,7 +203,7 @@ function buildGeminiPayload(prompt, size) {
|
|
|
206
203
|
payload.generationConfig = generationConfig;
|
|
207
204
|
return payload;
|
|
208
205
|
}
|
|
209
|
-
async function extractGeminiImages(data, fileStore
|
|
206
|
+
async function extractGeminiImages(data, fileStore) {
|
|
210
207
|
const files = [];
|
|
211
208
|
const candidates = data.candidates ?? [];
|
|
212
209
|
for (const candidate of candidates) {
|
|
@@ -223,8 +220,7 @@ async function extractGeminiImages(data, fileStore, source) {
|
|
|
223
220
|
const stored = await fileStore.saveBuffer({
|
|
224
221
|
name: `nano-banana-pro-${Date.now()}-${files.length + 1}.png`,
|
|
225
222
|
mimeType,
|
|
226
|
-
data: buffer
|
|
227
|
-
source
|
|
223
|
+
data: buffer
|
|
228
224
|
});
|
|
229
225
|
files.push({
|
|
230
226
|
id: stored.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../sources/plugins/nano-banana-pro/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../sources/plugins/nano-banana-pro/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import { createId } from "@paralleldrive/cuid2";
|
|
|
5
5
|
import { afterEach, beforeEach, describe, expect, it } from "vitest";
|
|
6
6
|
import { Agent } from "../../engine/agents/agent.js";
|
|
7
7
|
import { AgentInbox } from "../../engine/agents/ops/agentInbox.js";
|
|
8
|
+
import { UserHome } from "../../engine/users/userHome.js";
|
|
8
9
|
import { buildExecTool, buildWorkspaceReadTool } from "./tool.js";
|
|
9
10
|
const execToolCall = { id: "tool-call-1", name: "exec" };
|
|
10
11
|
const readToolCall = { id: "tool-call-2", name: "read" };
|
|
@@ -292,7 +293,7 @@ function createContext(workingDir, network, readDirs = [], writeDirs = []) {
|
|
|
292
293
|
updatedAt: now,
|
|
293
294
|
state: "active"
|
|
294
295
|
};
|
|
295
|
-
const agent = Agent.restore(agentId, "user-1", descriptor, state, new AgentInbox(agentId), {});
|
|
296
|
+
const agent = Agent.restore(agentId, "user-1", descriptor, state, new AgentInbox(agentId), {}, new UserHome(path.join(workingDir, "users"), "user-1"));
|
|
296
297
|
return {
|
|
297
298
|
connectorRegistry: null,
|
|
298
299
|
fileStore: null,
|