@nocobase/app-plugin-agents 1.0.0-beta.24 → 1.0.0-beta.25
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/CHANGELOG.md +22 -0
- package/README.md +7 -3
- package/dist/client/api/client.d.ts +1 -19
- package/dist/client/api/client.d.ts.map +1 -1
- package/dist/client/api/client.js +0 -22
- package/dist/client/api/client.js.map +1 -1
- package/dist/client/api/keys.d.ts +0 -4
- package/dist/client/api/keys.d.ts.map +1 -1
- package/dist/client/api/keys.js +0 -3
- package/dist/client/api/keys.js.map +1 -1
- package/dist/client/chat/message-model.d.ts.map +1 -1
- package/dist/client/chat/message-model.js +24 -0
- package/dist/client/chat/message-model.js.map +1 -1
- package/dist/client/kit.d.ts +1 -1
- package/dist/client/kit.js +1 -1
- package/dist/client/locales/de-DE.d.ts.map +1 -1
- package/dist/client/locales/de-DE.js +4 -53
- package/dist/client/locales/de-DE.js.map +1 -1
- package/dist/client/locales/en-US.d.ts +1 -42
- package/dist/client/locales/en-US.d.ts.map +1 -1
- package/dist/client/locales/en-US.js +4 -45
- package/dist/client/locales/en-US.js.map +1 -1
- package/dist/client/locales/es-ES.d.ts.map +1 -1
- package/dist/client/locales/es-ES.js +4 -56
- package/dist/client/locales/es-ES.js.map +1 -1
- package/dist/client/locales/fr-FR.d.ts.map +1 -1
- package/dist/client/locales/fr-FR.js +4 -56
- package/dist/client/locales/fr-FR.js.map +1 -1
- package/dist/client/locales/id-ID.d.ts.map +1 -1
- package/dist/client/locales/id-ID.js +4 -53
- package/dist/client/locales/id-ID.js.map +1 -1
- package/dist/client/locales/ja-JP.d.ts.map +1 -1
- package/dist/client/locales/ja-JP.js +4 -53
- package/dist/client/locales/ja-JP.js.map +1 -1
- package/dist/client/locales/pt-BR.d.ts.map +1 -1
- package/dist/client/locales/pt-BR.js +4 -56
- package/dist/client/locales/pt-BR.js.map +1 -1
- package/dist/client/locales/runtimes.en-US.d.ts +0 -8
- package/dist/client/locales/runtimes.en-US.d.ts.map +1 -1
- package/dist/client/locales/runtimes.en-US.js +0 -8
- package/dist/client/locales/runtimes.en-US.js.map +1 -1
- package/dist/client/locales/runtimes.zh-CN.d.ts.map +1 -1
- package/dist/client/locales/runtimes.zh-CN.js +0 -8
- package/dist/client/locales/runtimes.zh-CN.js.map +1 -1
- package/dist/client/locales/vi-VN.d.ts.map +1 -1
- package/dist/client/locales/vi-VN.js +4 -53
- package/dist/client/locales/vi-VN.js.map +1 -1
- package/dist/client/locales/zh-CN.d.ts.map +1 -1
- package/dist/client/locales/zh-CN.js +4 -45
- package/dist/client/locales/zh-CN.js.map +1 -1
- package/dist/client/locales/zh-TW.d.ts.map +1 -1
- package/dist/client/locales/zh-TW.js +4 -53
- package/dist/client/locales/zh-TW.js.map +1 -1
- package/dist/client/pages/agents/agent-dialog.d.ts +1 -2
- package/dist/client/pages/agents/agent-dialog.d.ts.map +1 -1
- package/dist/client/pages/agents/agent-dialog.js +9 -25
- package/dist/client/pages/agents/agent-dialog.js.map +1 -1
- package/dist/client/pages/agents/agent-state.d.ts +4 -4
- package/dist/client/pages/agents/agent-state.d.ts.map +1 -1
- package/dist/client/pages/agents/agent-state.js +4 -8
- package/dist/client/pages/agents/agent-state.js.map +1 -1
- package/dist/client/pages/agents/available-models-drawer.js +2 -2
- package/dist/client/pages/agents/available-models-drawer.js.map +1 -1
- package/dist/client/pages/agents/index.js +1 -1
- package/dist/client/pages/agents/runner-agents.d.ts.map +1 -1
- package/dist/client/pages/agents/runner-agents.js +6 -15
- package/dist/client/pages/agents/runner-agents.js.map +1 -1
- package/dist/client/pages/runtimes/runner-cells.d.ts +2 -4
- package/dist/client/pages/runtimes/runner-cells.d.ts.map +1 -1
- package/dist/client/pages/runtimes/runner-cells.js +7 -34
- package/dist/client/pages/runtimes/runner-cells.js.map +1 -1
- package/dist/client/pages/runtimes/runner-sheet.js +1 -1
- package/dist/client/pages/runtimes/runner-sheet.js.map +1 -1
- package/dist/database/migrations/.manifest.json +4 -0
- package/dist/database/migrations/202610310001_ag_retire_pending_runner_agents.d.ts +12 -0
- package/dist/database/migrations/202610310001_ag_retire_pending_runner_agents.d.ts.map +1 -0
- package/dist/database/migrations/202610310001_ag_retire_pending_runner_agents.js +174 -0
- package/dist/database/migrations/202610310001_ag_retire_pending_runner_agents.js.map +1 -0
- package/dist/package.json +1 -1
- package/dist/server/composition.d.ts +3 -3
- package/dist/server/composition.js +1 -1
- package/dist/server/composition.js.map +1 -1
- package/dist/server/core/agents/agent.history.d.ts +0 -2
- package/dist/server/core/agents/agent.history.d.ts.map +1 -1
- package/dist/server/core/agents/agent.history.js +0 -4
- package/dist/server/core/agents/agent.history.js.map +1 -1
- package/dist/server/core/agents/agent.service.d.ts +3 -30
- package/dist/server/core/agents/agent.service.d.ts.map +1 -1
- package/dist/server/core/agents/agent.service.js +9 -124
- package/dist/server/core/agents/agent.service.js.map +1 -1
- package/dist/server/core/agents/agent.store.d.ts +0 -2
- package/dist/server/core/agents/agent.store.d.ts.map +1 -1
- package/dist/server/core/agents/agent.store.js +1 -5
- package/dist/server/core/agents/agent.store.js.map +1 -1
- package/dist/server/core/agents/agent.views.d.ts.map +1 -1
- package/dist/server/core/agents/agent.views.js +0 -14
- package/dist/server/core/agents/agent.views.js.map +1 -1
- package/dist/server/core/agents/available-models.d.ts.map +1 -1
- package/dist/server/core/agents/available-models.js +6 -2
- package/dist/server/core/agents/available-models.js.map +1 -1
- package/dist/server/online/agent/configuration.d.ts +1 -0
- package/dist/server/online/agent/configuration.d.ts.map +1 -1
- package/dist/server/online/agent/configuration.js +86 -46
- package/dist/server/online/agent/configuration.js.map +1 -1
- package/dist/server/online/agent/runner/backend.d.ts.map +1 -1
- package/dist/server/online/agent/runner/backend.js +20 -9
- package/dist/server/online/agent/runner/backend.js.map +1 -1
- package/dist/server/online/agent/runner/projection.d.ts +6 -1
- package/dist/server/online/agent/runner/projection.d.ts.map +1 -1
- package/dist/server/online/agent/runner/projection.js +106 -5
- package/dist/server/online/agent/runner/projection.js.map +1 -1
- package/dist/server/online/agent/service.d.ts.map +1 -1
- package/dist/server/online/agent/service.js +0 -2
- package/dist/server/online/agent/service.js.map +1 -1
- package/dist/server/online/gateway.d.ts +6 -2
- package/dist/server/online/gateway.d.ts.map +1 -1
- package/dist/server/online/gateway.js +1 -1
- package/dist/server/online/gateway.js.map +1 -1
- package/dist/server/online/providers.d.ts.map +1 -1
- package/dist/server/online/providers.js +26 -16
- package/dist/server/online/providers.js.map +1 -1
- package/dist/server/online/services.d.ts.map +1 -1
- package/dist/server/online/services.js +10 -4
- package/dist/server/online/services.js.map +1 -1
- package/dist/server/routes/admin.d.ts.map +1 -1
- package/dist/server/routes/admin.js +1 -103
- package/dist/server/routes/admin.js.map +1 -1
- package/dist/server/routes/schemas.d.ts +1 -13
- package/dist/server/routes/schemas.d.ts.map +1 -1
- package/dist/server/routes/schemas.js +1 -45
- package/dist/server/routes/schemas.js.map +1 -1
- package/dist/server/tokens.d.ts +1 -0
- package/dist/server/tokens.d.ts.map +1 -1
- package/dist/server/tokens.js +1 -0
- package/dist/server/tokens.js.map +1 -1
- package/dist/shared/agents.d.ts +8 -41
- package/dist/shared/agents.d.ts.map +1 -1
- package/dist/shared/agents.js +3 -4
- package/dist/shared/agents.js.map +1 -1
- package/dist/shared/model-catalog.d.ts +0 -2
- package/dist/shared/model-catalog.d.ts.map +1 -1
- package/dist/shared/model-catalog.js +0 -4
- package/dist/shared/model-catalog.js.map +1 -1
- package/docs/native-sandbox.md +3 -3
- package/docs/retire-pending-runner-agents.md +46 -0
- package/docs/runner-agents.md +8 -12
- package/package.json +3 -3
- package/skills/nocobase-app-plugin-agents/SKILL.md +1 -1
- package/skills/nocobase-app-plugin-agents/references/agents.md +8 -8
- package/skills/nocobase-app-plugin-agents/references/online-agent.md +5 -3
- package/dist/client/pages/agents/cleanup-drawer.d.ts +0 -7
- package/dist/client/pages/agents/cleanup-drawer.d.ts.map +0 -1
- package/dist/client/pages/agents/cleanup-drawer.js +0 -214
- package/dist/client/pages/agents/cleanup-drawer.js.map +0 -1
- package/dist/server/core/agents/discovery.d.ts +0 -12
- package/dist/server/core/agents/discovery.d.ts.map +0 -1
- package/dist/server/core/agents/discovery.js +0 -39
- package/dist/server/core/agents/discovery.js.map +0 -1
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useTranslation } from '@nocobase/i18n/client';
|
|
3
|
-
import { useInfiniteQuery, useMutation, useQuery, useQueryClient, } from '@tanstack/react-query';
|
|
4
|
-
import { useMemo, useState } from 'react';
|
|
5
|
-
import { Virtuoso } from 'react-virtuoso';
|
|
6
|
-
import { TOOL_LABELS } from '../../../shared/model-catalog.js';
|
|
7
|
-
import { agentsKeys } from '../../api/keys.js';
|
|
8
|
-
import { AgListSkeleton, AgLoadError } from '../../components/ag-states.js';
|
|
9
|
-
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogPortal, AlertDialogOverlay, AlertDialogTitle, } from '../../components/ui/alert-dialog.js';
|
|
10
|
-
import { Button } from '../../components/ui/button.js';
|
|
11
|
-
import { Checkbox } from '../../components/ui/checkbox.js';
|
|
12
|
-
import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from '../../components/ui/collapsible.js';
|
|
13
|
-
import { Sheet, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, } from '../../components/ui/sheet.js';
|
|
14
|
-
import { useAgentsApi } from '../../hooks/use-agents-api.js';
|
|
15
|
-
import { useFormatters } from '../../lib/format.js';
|
|
16
|
-
import { errorText, useNotify } from '../../hooks/use-notify.js';
|
|
17
|
-
const VIRTUALIZE_THRESHOLD = 30;
|
|
18
|
-
const PAGE_SIZE = 50;
|
|
19
|
-
/** How many ids one "select all in group" page fetch asks for; large enough that most groups need only one call. */
|
|
20
|
-
const SELECT_ALL_PAGE_SIZE = 500;
|
|
21
|
-
/** `POST /agents/cleanup` refuses more ids than this at once; a bigger selection is sent in several requests. */
|
|
22
|
-
const CLEANUP_BATCH_SIZE = 256;
|
|
23
|
-
function chunk(items, size) {
|
|
24
|
-
const chunks = [];
|
|
25
|
-
for (let index = 0; index < items.length; index += size)
|
|
26
|
-
chunks.push(items.slice(index, index + size));
|
|
27
|
-
return chunks;
|
|
28
|
-
}
|
|
29
|
-
export function CleanupDrawer({ open, onClose, }) {
|
|
30
|
-
const { t } = useTranslation();
|
|
31
|
-
const api = useAgentsApi();
|
|
32
|
-
const notify = useNotify();
|
|
33
|
-
const queryClient = useQueryClient();
|
|
34
|
-
const [selected, setSelected] = useState(() => new Map());
|
|
35
|
-
const [confirming, setConfirming] = useState(false);
|
|
36
|
-
const reset = () => {
|
|
37
|
-
setSelected(new Map());
|
|
38
|
-
setConfirming(false);
|
|
39
|
-
};
|
|
40
|
-
const groups = useQuery({
|
|
41
|
-
queryKey: agentsKeys.cleanupGroups(''),
|
|
42
|
-
queryFn: () => api.cleanupGroups(),
|
|
43
|
-
enabled: open,
|
|
44
|
-
});
|
|
45
|
-
const setRowSelected = (candidate, checked) => setSelected((current) => {
|
|
46
|
-
const next = new Map(current);
|
|
47
|
-
if (checked)
|
|
48
|
-
next.set(candidate.id, candidate);
|
|
49
|
-
else
|
|
50
|
-
next.delete(candidate.id);
|
|
51
|
-
return next;
|
|
52
|
-
});
|
|
53
|
-
const setGroupSelected = (group, checked) => setSelected((current) => {
|
|
54
|
-
const next = new Map(current);
|
|
55
|
-
for (const candidate of group)
|
|
56
|
-
if (checked)
|
|
57
|
-
next.set(candidate.id, candidate);
|
|
58
|
-
else
|
|
59
|
-
next.delete(candidate.id);
|
|
60
|
-
return next;
|
|
61
|
-
});
|
|
62
|
-
// Clears a whole group's selection, including ids a "select all" picked up from a page this group's own list
|
|
63
|
-
// never loaded: scans the authoritative selection map by `tool`, not the group's own (possibly partial) `loaded`.
|
|
64
|
-
const clearGroupSelection = (tool) => setSelected((current) => {
|
|
65
|
-
const next = new Map(current);
|
|
66
|
-
for (const [id, candidate] of current)
|
|
67
|
-
if ((candidate.tool ?? null) === tool)
|
|
68
|
-
next.delete(id);
|
|
69
|
-
return next;
|
|
70
|
-
});
|
|
71
|
-
const remove = useMutation({
|
|
72
|
-
mutationFn: async () => {
|
|
73
|
-
const ids = [...selected.keys()];
|
|
74
|
-
const batches = chunk(ids, CLEANUP_BATCH_SIZE);
|
|
75
|
-
// `allSettled`, not `all`: one batch's request failing (network, a 500) must not discard the ids another
|
|
76
|
-
// batch already removed. Each outcome is matched back to its own batch by index to know which ids to retry.
|
|
77
|
-
const outcomes = await Promise.allSettled(batches.map((batch) => api.cleanup(batch)));
|
|
78
|
-
const removed = [];
|
|
79
|
-
const skipped = [];
|
|
80
|
-
const failed = [];
|
|
81
|
-
let lastError;
|
|
82
|
-
outcomes.forEach((outcome, index) => {
|
|
83
|
-
if (outcome.status === 'fulfilled') {
|
|
84
|
-
removed.push(...outcome.value.removed);
|
|
85
|
-
skipped.push(...outcome.value.skipped);
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
failed.push(...batches[index]);
|
|
89
|
-
lastError = outcome.reason;
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
return { removed, skipped, failed, lastError };
|
|
93
|
-
},
|
|
94
|
-
onSuccess: ({ removed, skipped, failed, lastError }) => {
|
|
95
|
-
void queryClient.invalidateQueries({ queryKey: agentsKeys.agents });
|
|
96
|
-
void queryClient.invalidateQueries({
|
|
97
|
-
queryKey: agentsKeys.cleanupCandidatesAll,
|
|
98
|
-
});
|
|
99
|
-
if (failed.length === 0) {
|
|
100
|
-
setSelected(new Map());
|
|
101
|
-
setConfirming(false);
|
|
102
|
-
notify.success(t('agents.cleanup.done', {
|
|
103
|
-
removed: removed.length,
|
|
104
|
-
skipped: skipped.length,
|
|
105
|
-
}));
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
// Partial (or total) failure: keep only the ids whose batch failed selected, so the confirmation that stays
|
|
109
|
-
// open names exactly what is left to retry, and a removed or skipped id is never reported as untouched.
|
|
110
|
-
setSelected((current) => {
|
|
111
|
-
const next = new Map();
|
|
112
|
-
for (const id of failed) {
|
|
113
|
-
const candidate = current.get(id);
|
|
114
|
-
if (candidate)
|
|
115
|
-
next.set(id, candidate);
|
|
116
|
-
}
|
|
117
|
-
return next;
|
|
118
|
-
});
|
|
119
|
-
// `notify.error`'s own fallback logic would replace this count summary with a bare reason translation when
|
|
120
|
-
// `lastError` is a recognized API error; call it with no error so the summary (which already embeds the real
|
|
121
|
-
// reason) is always what shows.
|
|
122
|
-
notify.error(undefined, t('agents.cleanup.partialFailure', {
|
|
123
|
-
removed: removed.length,
|
|
124
|
-
skipped: skipped.length,
|
|
125
|
-
failed: failed.length,
|
|
126
|
-
reason: errorText(t, lastError, t('common.requestFailed')),
|
|
127
|
-
}));
|
|
128
|
-
},
|
|
129
|
-
onError: (error) => notify.error(error),
|
|
130
|
-
});
|
|
131
|
-
const tools = useMemo(() => [...new Set([...selected.values()].map((c) => c.tool))], [selected]);
|
|
132
|
-
const toolNames = tools
|
|
133
|
-
.map((tool) => (tool ? TOOL_LABELS[tool] : ''))
|
|
134
|
-
.filter(Boolean)
|
|
135
|
-
.join(', ');
|
|
136
|
-
return (_jsxs(Sheet, { open: open, onOpenChange: (next) => {
|
|
137
|
-
if (!next) {
|
|
138
|
-
reset();
|
|
139
|
-
onClose();
|
|
140
|
-
}
|
|
141
|
-
}, children: [_jsxs(SheetContent, { className: 'flex w-full flex-col gap-0 data-[side=right]:w-full data-[side=right]:sm:max-w-[780px]', "data-testid": 'cleanup-drawer', children: [_jsxs(SheetHeader, { className: 'shrink-0', children: [_jsx(SheetTitle, { children: t('agents.cleanup.title') }), _jsx(SheetDescription, { children: t('agents.cleanup.description') })] }), _jsx("div", { className: 'min-h-0 flex-1 space-y-2 overflow-y-auto px-4 py-3 sm:px-6', children: groups.isError && !groups.data ? (_jsx(AgLoadError, { title: t('agents.loadFailed'), error: groups.error, onRetry: () => void groups.refetch() })) : !groups.data ? (_jsx(AgListSkeleton, {})) : groups.data.data.length === 0 ? (_jsx("p", { className: 'text-sm text-muted-foreground', children: t('agents.cleanup.none') })) : (groups.data.data.map((group) => (_jsx(CleanupToolGroup, { group: group, selected: selected, onSelectRow: setRowSelected, onSelectGroup: setGroupSelected, onClearGroup: clearGroupSelection }, group.tool ?? '')))) }), _jsxs(SheetFooter, { "data-fixed-sheet-footer": true, className: 'shrink-0 flex-row items-center justify-between border-t', children: [_jsx("div", { className: 'text-sm text-muted-foreground', children: selected.size > 0
|
|
142
|
-
? t('agents.cleanup.selectedCount', { count: selected.size })
|
|
143
|
-
: null }), _jsxs("div", { className: 'flex gap-2', children: [_jsx(Button, { variant: 'outline', onClick: onClose, children: t('actions.close') }), _jsx(Button, { variant: 'destructive', disabled: selected.size === 0 || remove.isPending, "data-testid": 'cleanup-open-confirm', onClick: () => setConfirming(true), children: t('agents.cleanup.remove', { count: selected.size }) })] })] })] }), _jsxs(AlertDialog, { open: confirming, onOpenChange: setConfirming, children: [_jsx(AlertDialogPortal, { children: _jsx(AlertDialogOverlay, { forceRender: true, "data-testid": 'cleanup-confirm-overlay' }) }), _jsxs(AlertDialogContent, { "data-testid": 'cleanup-confirm', children: [_jsxs(AlertDialogHeader, { children: [_jsx(AlertDialogTitle, { children: t('agents.cleanup.confirmTitle', { count: selected.size }) }), _jsx(AlertDialogDescription, { children: t('agents.cleanup.confirmDescription', {
|
|
144
|
-
tools: toolNames,
|
|
145
|
-
}) })] }), _jsxs(AlertDialogFooter, { children: [_jsx(AlertDialogCancel, { children: t('actions.back') }), _jsx(AlertDialogAction, { disabled: remove.isPending, onClick: () => remove.mutate(), "data-testid": 'cleanup-confirm-submit', children: t('agents.cleanup.confirmAction', {
|
|
146
|
-
count: selected.size,
|
|
147
|
-
}) })] })] })] })] }));
|
|
148
|
-
}
|
|
149
|
-
function CleanupToolGroup({ group, selected, onSelectRow, onSelectGroup, onClearGroup, }) {
|
|
150
|
-
const { t } = useTranslation();
|
|
151
|
-
const format = useFormatters();
|
|
152
|
-
const api = useAgentsApi();
|
|
153
|
-
const [open, setOpen] = useState(false);
|
|
154
|
-
const [selectingAll, setSelectingAll] = useState(false);
|
|
155
|
-
const label = group.tool ? TOOL_LABELS[group.tool] : '';
|
|
156
|
-
const rows = useInfiniteQuery({
|
|
157
|
-
queryKey: agentsKeys.cleanupRows(group.tool ?? '', ''),
|
|
158
|
-
queryFn: ({ pageParam }) => api.cleanupRows(group.tool, {
|
|
159
|
-
page: pageParam,
|
|
160
|
-
pageSize: PAGE_SIZE,
|
|
161
|
-
}),
|
|
162
|
-
initialPageParam: 1,
|
|
163
|
-
getNextPageParam: (last) => last.meta.page * last.meta.pageSize < last.meta.total
|
|
164
|
-
? last.meta.page + 1
|
|
165
|
-
: undefined,
|
|
166
|
-
enabled: open && group.tool !== null,
|
|
167
|
-
});
|
|
168
|
-
const loaded = useMemo(() => rows.data?.pages.flatMap((page) => page.data) ?? [], [rows.data]);
|
|
169
|
-
// The authoritative count from the server, not `loaded`: a "select all" can have picked up ids from pages this
|
|
170
|
-
// group's own list never fetched, so checking only `loaded` would under-report (or under-clear) the selection.
|
|
171
|
-
const selectedInGroup = useMemo(() => [...selected.values()].filter((c) => (c.tool ?? null) === group.tool)
|
|
172
|
-
.length, [selected, group.tool]);
|
|
173
|
-
const allSelected = group.count > 0 && selectedInGroup >= group.count;
|
|
174
|
-
const selectAllInGroup = async (checked) => {
|
|
175
|
-
if (!checked) {
|
|
176
|
-
onClearGroup(group.tool);
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
179
|
-
if (!group.tool)
|
|
180
|
-
return;
|
|
181
|
-
setSelectingAll(true);
|
|
182
|
-
try {
|
|
183
|
-
const all = [];
|
|
184
|
-
let page = 1;
|
|
185
|
-
for (;;) {
|
|
186
|
-
const answer = await api.cleanupRows(group.tool, {
|
|
187
|
-
page,
|
|
188
|
-
pageSize: SELECT_ALL_PAGE_SIZE,
|
|
189
|
-
});
|
|
190
|
-
all.push(...answer.data);
|
|
191
|
-
if (answer.meta.page * answer.meta.pageSize >= answer.meta.total)
|
|
192
|
-
break;
|
|
193
|
-
page += 1;
|
|
194
|
-
}
|
|
195
|
-
onSelectGroup(all, true);
|
|
196
|
-
}
|
|
197
|
-
finally {
|
|
198
|
-
setSelectingAll(false);
|
|
199
|
-
}
|
|
200
|
-
};
|
|
201
|
-
return (_jsx(Collapsible, { open: open, onOpenChange: setOpen, children: _jsxs("div", { className: 'rounded-lg border', children: [_jsx(CollapsibleTrigger, { className: 'flex w-full items-center justify-between gap-3 p-3 text-left', "data-testid": `cleanup-group-${group.tool ?? 'none'}`, children: _jsx("span", { className: 'font-medium', children: t('agents.cleanup.group', { count: group.count, tool: label }) }) }), _jsx(CollapsibleContent, { className: 'border-t px-3 pb-3', children: rows.isError && !rows.data ? (_jsx(AgLoadError, { title: t('agents.loadFailed'), error: rows.error, onRetry: () => void rows.refetch() })) : !rows.data ? (_jsx(AgListSkeleton, { rows: 2 })) : (_jsxs("div", { className: 'pt-2', children: [_jsx(Button, { type: 'button', variant: 'outline', size: 'sm', className: 'mb-2', disabled: selectingAll, onClick: () => void selectAllInGroup(!allSelected), "data-testid": `cleanup-group-select-all-${group.tool ?? 'none'}`, children: t(allSelected
|
|
202
|
-
? 'agents.cleanup.clearGroup'
|
|
203
|
-
: 'agents.cleanup.selectGroup', { tool: label }) }), loaded.length > VIRTUALIZE_THRESHOLD ? (_jsx(Virtuoso, { style: { height: 320 }, data: loaded, computeItemKey: (_, row) => row.id, endReached: () => {
|
|
204
|
-
if (rows.hasNextPage && !rows.isFetchingNextPage)
|
|
205
|
-
void rows.fetchNextPage();
|
|
206
|
-
}, itemContent: (_, candidate) => (_jsx("div", { className: 'py-1', children: _jsx(CandidateRow, { candidate: candidate, checked: selected.has(candidate.id), onSelect: onSelectRow, formatRelative: format.relative }) })) })) : (_jsx("div", { className: 'space-y-1', children: loaded.map((candidate) => (_jsx(CandidateRow, { candidate: candidate, checked: selected.has(candidate.id), onSelect: onSelectRow, formatRelative: format.relative }, candidate.id))) })), rows.hasNextPage ? (_jsx(Button, { type: 'button', variant: 'outline', size: 'sm', className: 'mt-2', disabled: rows.isFetchingNextPage, onClick: () => void rows.fetchNextPage(), children: t('agents.loadMore') })) : null] })) })] }) }));
|
|
207
|
-
}
|
|
208
|
-
function CandidateRow({ candidate, checked, onSelect, formatRelative, }) {
|
|
209
|
-
const { t } = useTranslation();
|
|
210
|
-
return (_jsxs("div", { "data-testid": `cleanup-candidate-${candidate.id}`, className: 'flex items-center gap-3 rounded-md p-2 hover:bg-muted/50', children: [_jsx(Checkbox, { "aria-label": t('agents.cleanup.select', { name: candidate.name }), checked: checked, onCheckedChange: (next) => onSelect(candidate, next === true) }), _jsxs("div", { className: 'min-w-0 flex-1', children: [_jsx("div", { className: 'font-medium', children: candidate.name }), _jsxs("div", { className: 'text-xs text-muted-foreground', children: [t('agents.cleanup.neverEnabled'), " \u00B7", ' ', t('agents.cleanup.createdAt', {
|
|
211
|
-
when: formatRelative(candidate.createdAt),
|
|
212
|
-
})] })] })] }));
|
|
213
|
-
}
|
|
214
|
-
//# sourceMappingURL=cleanup-drawer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cleanup-drawer.js","sourceRoot":"","sources":["../../../../client/pages/agents/cleanup-drawer.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAqB,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,UAAU,GACX,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAChC,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,oHAAoH;AACpH,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,iHAAiH;AACjH,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,SAAS,KAAK,CAAI,KAAmB,EAAE,IAAY;IACjD,MAAM,MAAM,GAAU,EAAE,CAAC;IACzB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,IAAI;QACrD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC;AAChB,CAAC;AAOD,MAAM,UAAU,aAAa,CAAC,EAC5B,IAAI,EACJ,OAAO,GACY;IACnB,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAEtC,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACnB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,WAAW,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QACvB,aAAa,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,QAAQ,CAAC;QACtB,QAAQ,EAAE,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE;QAClC,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,CACrB,SAA2B,EAC3B,OAAgB,EACV,EAAE,CACR,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,OAAO;YAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;;YAC1C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEL,MAAM,gBAAgB,GAAG,CACvB,KAAkC,EAClC,OAAgB,EACV,EAAE,CACR,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,KAAK,MAAM,SAAS,IAAI,KAAK;YAC3B,IAAI,OAAO;gBAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;;gBAC1C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEL,6GAA6G;IAC7G,kHAAkH;IAClH,MAAM,mBAAmB,GAAG,CAAC,IAAsB,EAAQ,EAAE,CAC3D,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,OAAO;YACnC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI;gBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEL,MAAM,MAAM,GAAG,WAAW,CAAC;QACzB,UAAU,EAAE,KAAK,IAAI,EAAE;YACrB,MAAM,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACjC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;YAC/C,yGAAyG;YACzG,4GAA4G;YAC5G,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,UAAU,CACvC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAC3C,CAAC;YACF,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,IAAI,SAAkB,CAAC;YACvB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBAClC,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBACnC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACvC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC/B,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;gBAC7B,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QACjD,CAAC;QACD,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;YACrD,KAAK,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACpE,KAAK,WAAW,CAAC,iBAAiB,CAAC;gBACjC,QAAQ,EAAE,UAAU,CAAC,oBAAoB;aAC1C,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,WAAW,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;gBACvB,aAAa,CAAC,KAAK,CAAC,CAAC;gBACrB,MAAM,CAAC,OAAO,CACZ,CAAC,CAAC,qBAAqB,EAAE;oBACvB,OAAO,EAAE,OAAO,CAAC,MAAM;oBACvB,OAAO,EAAE,OAAO,CAAC,MAAM;iBACxB,CAAC,CACH,CAAC;gBACF,OAAO;YACT,CAAC;YACD,4GAA4G;YAC5G,wGAAwG;YACxG,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE;gBACtB,MAAM,IAAI,GAAG,IAAI,GAAG,EAA4B,CAAC;gBACjD,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;oBACxB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAClC,IAAI,SAAS;wBAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;gBACzC,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YACH,2GAA2G;YAC3G,6GAA6G;YAC7G,gCAAgC;YAChC,MAAM,CAAC,KAAK,CACV,SAAS,EACT,CAAC,CAAC,+BAA+B,EAAE;gBACjC,OAAO,EAAE,OAAO,CAAC,MAAM;gBACvB,OAAO,EAAE,OAAO,CAAC,MAAM;gBACvB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,sBAAsB,CAAC,CAAC;aAC3D,CAAC,CACH,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;KACxC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAC7D,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,MAAM,SAAS,GAAG,KAAK;SACpB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC9C,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,CACL,MAAC,KAAK,IACJ,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,aAED,MAAC,YAAY,IACX,SAAS,EAAC,wFAAwF,iBACtF,gBAAgB,aAE5B,MAAC,WAAW,IAAC,SAAS,EAAC,UAAU,aAC/B,KAAC,UAAU,cAAE,CAAC,CAAC,sBAAsB,CAAC,GAAc,EACpD,KAAC,gBAAgB,cAAE,CAAC,CAAC,4BAA4B,CAAC,GAAoB,IAC1D,EACd,cAAK,SAAS,EAAC,4DAA4D,YACxE,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAChC,KAAC,WAAW,IACV,KAAK,EAAE,CAAC,CAAC,mBAAmB,CAAC,EAC7B,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,GACpC,CACH,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CACjB,KAAC,cAAc,KAAG,CACnB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAClC,YAAG,SAAS,EAAC,+BAA+B,YACzC,CAAC,CAAC,qBAAqB,CAAC,GACvB,CACL,CAAC,CAAC,CAAC,CACF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC9B,KAAC,gBAAgB,IAEf,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,cAAc,EAC3B,aAAa,EAAE,gBAAgB,EAC/B,YAAY,EAAE,mBAAmB,IAL5B,KAAK,CAAC,IAAI,IAAI,EAAE,CAMrB,CACH,CAAC,CACH,GACG,EACN,MAAC,WAAW,qCAEV,SAAS,EAAC,yDAAyD,aAEnE,cAAK,SAAS,EAAC,+BAA+B,YAC3C,QAAQ,CAAC,IAAI,GAAG,CAAC;oCAChB,CAAC,CAAC,CAAC,CAAC,8BAA8B,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;oCAC7D,CAAC,CAAC,IAAI,GACJ,EACN,eAAK,SAAS,EAAC,YAAY,aACzB,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,OAAO,YACvC,CAAC,CAAC,eAAe,CAAC,GACZ,EACT,KAAC,MAAM,IACL,OAAO,EAAC,aAAa,EACrB,QAAQ,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,iBACrC,sBAAsB,EAClC,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,YAEjC,CAAC,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,GAC9C,IACL,IACM,IACD,EAEf,MAAC,WAAW,IAAC,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,aAExD,KAAC,iBAAiB,cAChB,KAAC,kBAAkB,IACjB,WAAW,uBACC,yBAAyB,GACrC,GACgB,EACpB,MAAC,kBAAkB,mBAAa,iBAAiB,aAC/C,MAAC,iBAAiB,eAChB,KAAC,gBAAgB,cACd,CAAC,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,GAC1C,EACnB,KAAC,sBAAsB,cACpB,CAAC,CAAC,mCAAmC,EAAE;4CACtC,KAAK,EAAE,SAAS;yCACjB,CAAC,GACqB,IACP,EACpB,MAAC,iBAAiB,eAChB,KAAC,iBAAiB,cAAE,CAAC,CAAC,cAAc,CAAC,GAAqB,EAC1D,KAAC,iBAAiB,IAChB,QAAQ,EAAE,MAAM,CAAC,SAAS,EAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,iBAClB,wBAAwB,YAEnC,CAAC,CAAC,8BAA8B,EAAE;4CACjC,KAAK,EAAE,QAAQ,CAAC,IAAI;yCACrB,CAAC,GACgB,IACF,IACD,IACT,IACR,CACT,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,EACxB,KAAK,EACL,QAAQ,EACR,WAAW,EACX,aAAa,EACb,YAAY,GAUb;IACC,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAC3B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,MAAM,IAAI,GAAG,gBAAgB,CAAC;QAC5B,QAAQ,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;QACtD,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CACzB,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,IAAiB,EAAE;YACvC,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,SAAS;SACpB,CAAC;QACJ,gBAAgB,EAAE,CAAC;QACnB,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CACzB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK;YACnD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;YACpB,CAAC,CAAC,SAAS;QACf,OAAO,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;KACrC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,OAAO,CACpB,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EACzD,CAAC,IAAI,CAAC,IAAI,CAAC,CACZ,CAAC;IACF,+GAA+G;IAC/G,+GAA+G;IAC/G,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CACH,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC;SAClE,MAAM,EACX,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CACvB,CAAC;IACF,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,eAAe,IAAI,KAAK,CAAC,KAAK,CAAC;IAEtE,MAAM,gBAAgB,GAAG,KAAK,EAAE,OAAgB,EAAiB,EAAE;QACjE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,OAAO;QACxB,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,GAAG,GAAuB,EAAE,CAAC;YACnC,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,SAAS,CAAC;gBACR,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE;oBAC/C,IAAI;oBACJ,QAAQ,EAAE,oBAAoB;iBAC/B,CAAC,CAAC;gBACH,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBACzB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK;oBAAE,MAAM;gBACxE,IAAI,IAAI,CAAC,CAAC;YACZ,CAAC;YACD,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;gBAAS,CAAC;YACT,eAAe,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,WAAW,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,YAC5C,eAAK,SAAS,EAAC,mBAAmB,aAChC,KAAC,kBAAkB,IACjB,SAAS,EAAC,8DAA8D,iBAC3D,iBAAiB,KAAK,CAAC,IAAI,IAAI,MAAM,EAAE,YAEpD,eAAM,SAAS,EAAC,aAAa,YAC1B,CAAC,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAC1D,GACY,EACrB,KAAC,kBAAkB,IAAC,SAAS,EAAC,oBAAoB,YAC/C,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5B,KAAC,WAAW,IACV,KAAK,EAAE,CAAC,CAAC,mBAAmB,CAAC,EAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,GAClC,CACH,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACf,KAAC,cAAc,IAAC,IAAI,EAAE,CAAC,GAAI,CAC5B,CAAC,CAAC,CAAC,CACF,eAAK,SAAS,EAAC,MAAM,aACnB,KAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,MAAM,EAChB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,gBAAgB,CAAC,CAAC,WAAW,CAAC,iBACrC,4BAA4B,KAAK,CAAC,IAAI,IAAI,MAAM,EAAE,YAE9D,CAAC,CACA,WAAW;oCACT,CAAC,CAAC,2BAA2B;oCAC7B,CAAC,CAAC,4BAA4B,EAChC,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB,GACM,EACR,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC,CACtC,KAAC,QAAQ,IACP,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EACtB,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAClC,UAAU,EAAE,GAAG,EAAE;oCACf,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,kBAAkB;wCAC9C,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;gCAC9B,CAAC,EACD,WAAW,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAC7B,cAAK,SAAS,EAAC,MAAM,YACnB,KAAC,YAAY,IACX,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EACnC,QAAQ,EAAE,WAAW,EACrB,cAAc,EAAE,MAAM,CAAC,QAAQ,GAC/B,GACE,CACP,GACD,CACH,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,WAAW,YACvB,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CACzB,KAAC,YAAY,IAEX,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EACnC,QAAQ,EAAE,WAAW,EACrB,cAAc,EAAE,MAAM,CAAC,QAAQ,IAJ1B,SAAS,CAAC,EAAE,CAKjB,CACH,CAAC,GACE,CACP,EACA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAClB,KAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,MAAM,EAChB,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EACjC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,aAAa,EAAE,YAEvC,CAAC,CAAC,iBAAiB,CAAC,GACd,CACV,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,GACkB,IACjB,GACM,CACf,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,EACpB,SAAS,EACT,OAAO,EACP,QAAQ,EACR,cAAc,GAMf;IACC,MAAM,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,OAAO,CACL,8BACe,qBAAqB,SAAS,CAAC,EAAE,EAAE,EAChD,SAAS,EAAC,0DAA0D,aAEpE,KAAC,QAAQ,kBACK,CAAC,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAChE,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,KAAK,IAAI,CAAC,GAC7D,EACF,eAAK,SAAS,EAAC,gBAAgB,aAC7B,cAAK,SAAS,EAAC,aAAa,YAAE,SAAS,CAAC,IAAI,GAAO,EACnD,eAAK,SAAS,EAAC,+BAA+B,aAC3C,CAAC,CAAC,6BAA6B,CAAC,aAAI,GAAG,EACvC,CAAC,CAAC,0BAA0B,EAAE;gCAC7B,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC;6BAC1C,CAAC,IACE,IACF,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { DatabaseConnection, Repository } from '@nocobase/db';
|
|
2
|
-
export interface DiscoveryPreference {
|
|
3
|
-
readonly key: string;
|
|
4
|
-
readonly ignored: boolean;
|
|
5
|
-
readonly revision: number;
|
|
6
|
-
readonly updatedAt?: string;
|
|
7
|
-
}
|
|
8
|
-
export declare const preferences: (conn: DatabaseConnection) => Repository<DiscoveryPreference>;
|
|
9
|
-
export declare function discoveryPreferences(conn: DatabaseConnection): Promise<Map<string, DiscoveryPreference>>;
|
|
10
|
-
/** All state transitions in a model group lock the same persisted row. Reports never reset it. */
|
|
11
|
-
export declare function lockDiscovery(conn: DatabaseConnection, key: string, expectedRevision?: number): Promise<DiscoveryPreference>;
|
|
12
|
-
//# sourceMappingURL=discovery.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../../server/core/agents/discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAGnE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,WAAW,GACtB,MAAM,kBAAkB,KACvB,UAAU,CAAC,mBAAmB,CAC+B,CAAC;AAEjE,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAI3C;AAED,kGAAkG;AAClG,wBAAsB,aAAa,CACjC,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,MAAM,EACX,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,mBAAmB,CAAC,CAqC9B"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { ProtocolError } from '../../kernel/errors.js';
|
|
2
|
-
export const preferences = (conn) => conn.repository('agDiscoveryPreferences');
|
|
3
|
-
export async function discoveryPreferences(conn) {
|
|
4
|
-
return new Map((await preferences(conn).findMany()).map((row) => [row.key, row]));
|
|
5
|
-
}
|
|
6
|
-
/** All state transitions in a model group lock the same persisted row. Reports never reset it. */
|
|
7
|
-
export async function lockDiscovery(conn, key, expectedRevision) {
|
|
8
|
-
let row = await preferences(conn).findOne({ filter: { key } });
|
|
9
|
-
if (!row) {
|
|
10
|
-
try {
|
|
11
|
-
await conn.transaction(async (savepoint) => {
|
|
12
|
-
await preferences(savepoint).createOne({
|
|
13
|
-
values: {
|
|
14
|
-
key,
|
|
15
|
-
ignored: false,
|
|
16
|
-
revision: 0,
|
|
17
|
-
updatedAt: new Date().toISOString(),
|
|
18
|
-
},
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
catch (error) {
|
|
23
|
-
if (!(await preferences(conn).findOne({ filter: { key } })))
|
|
24
|
-
throw error;
|
|
25
|
-
}
|
|
26
|
-
row = await preferences(conn).findOne({ filter: { key } });
|
|
27
|
-
}
|
|
28
|
-
if (!row ||
|
|
29
|
-
(expectedRevision !== undefined && row.revision !== expectedRevision))
|
|
30
|
-
throw new ProtocolError('REVISION_CONFLICT', 'The discovery group changed. Reload before trying again.');
|
|
31
|
-
const result = await preferences(conn).updateMany({
|
|
32
|
-
filter: { key, revision: row.revision },
|
|
33
|
-
values: { revision: row.revision + 1, updatedAt: new Date().toISOString() },
|
|
34
|
-
});
|
|
35
|
-
if (!result.updatedCount)
|
|
36
|
-
throw new ProtocolError('REVISION_CONFLICT', 'The discovery group changed. Reload before trying again.');
|
|
37
|
-
return { key: row.key, ignored: row.ignored, revision: row.revision + 1 };
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=discovery.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../../../server/core/agents/discovery.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AASvD,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,IAAwB,EACS,EAAE,CACnC,IAAI,CAAC,UAAU,CAAsB,wBAAwB,CAAC,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAwB;IAExB,OAAO,IAAI,GAAG,CACZ,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAClE,CAAC;AACJ,CAAC;AAED,kGAAkG;AAClG,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAwB,EACxB,GAAW,EACX,gBAAyB;IAEzB,IAAI,GAAG,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;gBACzC,MAAM,WAAW,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC;oBACrC,MAAM,EAAE;wBACN,GAAG;wBACH,OAAO,EAAE,KAAK;wBACd,QAAQ,EAAE,CAAC;wBACX,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACpC;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBAAE,MAAM,KAAK,CAAC;QAC3E,CAAC;QACD,GAAG,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,IACE,CAAC,GAAG;QACJ,CAAC,gBAAgB,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,gBAAgB,CAAC;QAErE,MAAM,IAAI,aAAa,CACrB,mBAAmB,EACnB,0DAA0D,CAC3D,CAAC;IACJ,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;QAChD,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE;QACvC,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;KAC5E,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,YAAY;QACtB,MAAM,IAAI,aAAa,CACrB,mBAAmB,EACnB,0DAA0D,CAC3D,CAAC;IACJ,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;AAC5E,CAAC"}
|