|
1 | 1 | import type { z } from 'zod' |
2 | 2 | import type { AnyApiRouteContract } from '@/lib/api/contracts/types' |
| 3 | +import * as credentials from '@/lib/api/contracts/v2/credentials' |
| 4 | +import * as customTools from '@/lib/api/contracts/v2/custom-tools' |
3 | 5 | import * as files from '@/lib/api/contracts/v2/files' |
4 | 6 | import * as knowledge from '@/lib/api/contracts/v2/knowledge' |
5 | 7 | import * as chunks from '@/lib/api/contracts/v2/knowledge-chunks' |
6 | 8 | import * as tags from '@/lib/api/contracts/v2/knowledge-tags' |
7 | 9 | import * as logs from '@/lib/api/contracts/v2/logs' |
8 | 10 | import * as logStats from '@/lib/api/contracts/v2/logs-stats' |
| 11 | +import * as mcpServers from '@/lib/api/contracts/v2/mcp-servers' |
| 12 | +import * as sandboxes from '@/lib/api/contracts/v2/sandboxes' |
| 13 | +import * as secrets from '@/lib/api/contracts/v2/secrets' |
9 | 14 | import * as tables from '@/lib/api/contracts/v2/tables' |
10 | 15 | import * as workflows from '@/lib/api/contracts/v2/workflows' |
11 | 16 | import { parseFolderPath } from '@/lib/folders/paths' |
@@ -125,7 +130,42 @@ function folders(contracts: Record<string, unknown>, type: ResourceKind): Effect |
125 | 130 | }) |
126 | 131 | } |
127 | 132 |
|
| 133 | +function settingsMutations( |
| 134 | + section: string, |
| 135 | + contracts: Pick<AnyApiRouteContract, 'method' | 'path'>[] |
| 136 | +): EffectRoute[] { |
| 137 | + return contracts.map(({ method, path }) => ({ |
| 138 | + method, |
| 139 | + path, |
| 140 | + async project() { |
| 141 | + return [{ op: 'refresh', resource: { type: 'settings', scope: 'workspace', id: section } }] |
| 142 | + }, |
| 143 | + })) |
| 144 | +} |
| 145 | + |
128 | 146 | const EFFECT_ROUTES: EffectRoute[] = [ |
| 147 | + ...settingsMutations('secrets', [secrets.v2SetSecretContract, secrets.v2DeleteSecretContract]), |
| 148 | + ...settingsMutations('credentials', [ |
| 149 | + credentials.v2CreateCredentialConnectionContract, |
| 150 | + credentials.v2CreateServiceAccountCredentialContract, |
| 151 | + credentials.v2UpdateCredentialContract, |
| 152 | + credentials.v2DeleteCredentialContract, |
| 153 | + ]), |
| 154 | + ...settingsMutations('custom-tools', [ |
| 155 | + customTools.v2CreateCustomToolContract, |
| 156 | + customTools.v2UpdateCustomToolContract, |
| 157 | + customTools.v2DeleteCustomToolContract, |
| 158 | + ]), |
| 159 | + ...settingsMutations('mcp', [ |
| 160 | + mcpServers.v2CreateMcpServerContract, |
| 161 | + mcpServers.v2UpdateMcpServerContract, |
| 162 | + mcpServers.v2DeleteMcpServerContract, |
| 163 | + ]), |
| 164 | + ...settingsMutations('sandboxes', [ |
| 165 | + sandboxes.v2CreateSandboxContract, |
| 166 | + sandboxes.v2UpdateSandboxContract, |
| 167 | + sandboxes.v2DeleteSandboxContract, |
| 168 | + ]), |
129 | 169 | { |
130 | 170 | ...after(workflows.v2GetWorkflowContract, ({ data }) => upsert('workflow', data, true)), |
131 | 171 | readOnly: true, |
|
0 commit comments