@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.
Files changed (158) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +7 -3
  3. package/dist/client/api/client.d.ts +1 -19
  4. package/dist/client/api/client.d.ts.map +1 -1
  5. package/dist/client/api/client.js +0 -22
  6. package/dist/client/api/client.js.map +1 -1
  7. package/dist/client/api/keys.d.ts +0 -4
  8. package/dist/client/api/keys.d.ts.map +1 -1
  9. package/dist/client/api/keys.js +0 -3
  10. package/dist/client/api/keys.js.map +1 -1
  11. package/dist/client/chat/message-model.d.ts.map +1 -1
  12. package/dist/client/chat/message-model.js +24 -0
  13. package/dist/client/chat/message-model.js.map +1 -1
  14. package/dist/client/kit.d.ts +1 -1
  15. package/dist/client/kit.js +1 -1
  16. package/dist/client/locales/de-DE.d.ts.map +1 -1
  17. package/dist/client/locales/de-DE.js +4 -53
  18. package/dist/client/locales/de-DE.js.map +1 -1
  19. package/dist/client/locales/en-US.d.ts +1 -42
  20. package/dist/client/locales/en-US.d.ts.map +1 -1
  21. package/dist/client/locales/en-US.js +4 -45
  22. package/dist/client/locales/en-US.js.map +1 -1
  23. package/dist/client/locales/es-ES.d.ts.map +1 -1
  24. package/dist/client/locales/es-ES.js +4 -56
  25. package/dist/client/locales/es-ES.js.map +1 -1
  26. package/dist/client/locales/fr-FR.d.ts.map +1 -1
  27. package/dist/client/locales/fr-FR.js +4 -56
  28. package/dist/client/locales/fr-FR.js.map +1 -1
  29. package/dist/client/locales/id-ID.d.ts.map +1 -1
  30. package/dist/client/locales/id-ID.js +4 -53
  31. package/dist/client/locales/id-ID.js.map +1 -1
  32. package/dist/client/locales/ja-JP.d.ts.map +1 -1
  33. package/dist/client/locales/ja-JP.js +4 -53
  34. package/dist/client/locales/ja-JP.js.map +1 -1
  35. package/dist/client/locales/pt-BR.d.ts.map +1 -1
  36. package/dist/client/locales/pt-BR.js +4 -56
  37. package/dist/client/locales/pt-BR.js.map +1 -1
  38. package/dist/client/locales/runtimes.en-US.d.ts +0 -8
  39. package/dist/client/locales/runtimes.en-US.d.ts.map +1 -1
  40. package/dist/client/locales/runtimes.en-US.js +0 -8
  41. package/dist/client/locales/runtimes.en-US.js.map +1 -1
  42. package/dist/client/locales/runtimes.zh-CN.d.ts.map +1 -1
  43. package/dist/client/locales/runtimes.zh-CN.js +0 -8
  44. package/dist/client/locales/runtimes.zh-CN.js.map +1 -1
  45. package/dist/client/locales/vi-VN.d.ts.map +1 -1
  46. package/dist/client/locales/vi-VN.js +4 -53
  47. package/dist/client/locales/vi-VN.js.map +1 -1
  48. package/dist/client/locales/zh-CN.d.ts.map +1 -1
  49. package/dist/client/locales/zh-CN.js +4 -45
  50. package/dist/client/locales/zh-CN.js.map +1 -1
  51. package/dist/client/locales/zh-TW.d.ts.map +1 -1
  52. package/dist/client/locales/zh-TW.js +4 -53
  53. package/dist/client/locales/zh-TW.js.map +1 -1
  54. package/dist/client/pages/agents/agent-dialog.d.ts +1 -2
  55. package/dist/client/pages/agents/agent-dialog.d.ts.map +1 -1
  56. package/dist/client/pages/agents/agent-dialog.js +9 -25
  57. package/dist/client/pages/agents/agent-dialog.js.map +1 -1
  58. package/dist/client/pages/agents/agent-state.d.ts +4 -4
  59. package/dist/client/pages/agents/agent-state.d.ts.map +1 -1
  60. package/dist/client/pages/agents/agent-state.js +4 -8
  61. package/dist/client/pages/agents/agent-state.js.map +1 -1
  62. package/dist/client/pages/agents/available-models-drawer.js +2 -2
  63. package/dist/client/pages/agents/available-models-drawer.js.map +1 -1
  64. package/dist/client/pages/agents/index.js +1 -1
  65. package/dist/client/pages/agents/runner-agents.d.ts.map +1 -1
  66. package/dist/client/pages/agents/runner-agents.js +6 -15
  67. package/dist/client/pages/agents/runner-agents.js.map +1 -1
  68. package/dist/client/pages/runtimes/runner-cells.d.ts +2 -4
  69. package/dist/client/pages/runtimes/runner-cells.d.ts.map +1 -1
  70. package/dist/client/pages/runtimes/runner-cells.js +7 -34
  71. package/dist/client/pages/runtimes/runner-cells.js.map +1 -1
  72. package/dist/client/pages/runtimes/runner-sheet.js +1 -1
  73. package/dist/client/pages/runtimes/runner-sheet.js.map +1 -1
  74. package/dist/database/migrations/.manifest.json +4 -0
  75. package/dist/database/migrations/202610310001_ag_retire_pending_runner_agents.d.ts +12 -0
  76. package/dist/database/migrations/202610310001_ag_retire_pending_runner_agents.d.ts.map +1 -0
  77. package/dist/database/migrations/202610310001_ag_retire_pending_runner_agents.js +174 -0
  78. package/dist/database/migrations/202610310001_ag_retire_pending_runner_agents.js.map +1 -0
  79. package/dist/package.json +1 -1
  80. package/dist/server/composition.d.ts +3 -3
  81. package/dist/server/composition.js +1 -1
  82. package/dist/server/composition.js.map +1 -1
  83. package/dist/server/core/agents/agent.history.d.ts +0 -2
  84. package/dist/server/core/agents/agent.history.d.ts.map +1 -1
  85. package/dist/server/core/agents/agent.history.js +0 -4
  86. package/dist/server/core/agents/agent.history.js.map +1 -1
  87. package/dist/server/core/agents/agent.service.d.ts +3 -30
  88. package/dist/server/core/agents/agent.service.d.ts.map +1 -1
  89. package/dist/server/core/agents/agent.service.js +9 -124
  90. package/dist/server/core/agents/agent.service.js.map +1 -1
  91. package/dist/server/core/agents/agent.store.d.ts +0 -2
  92. package/dist/server/core/agents/agent.store.d.ts.map +1 -1
  93. package/dist/server/core/agents/agent.store.js +1 -5
  94. package/dist/server/core/agents/agent.store.js.map +1 -1
  95. package/dist/server/core/agents/agent.views.d.ts.map +1 -1
  96. package/dist/server/core/agents/agent.views.js +0 -14
  97. package/dist/server/core/agents/agent.views.js.map +1 -1
  98. package/dist/server/core/agents/available-models.d.ts.map +1 -1
  99. package/dist/server/core/agents/available-models.js +6 -2
  100. package/dist/server/core/agents/available-models.js.map +1 -1
  101. package/dist/server/online/agent/configuration.d.ts +1 -0
  102. package/dist/server/online/agent/configuration.d.ts.map +1 -1
  103. package/dist/server/online/agent/configuration.js +86 -46
  104. package/dist/server/online/agent/configuration.js.map +1 -1
  105. package/dist/server/online/agent/runner/backend.d.ts.map +1 -1
  106. package/dist/server/online/agent/runner/backend.js +20 -9
  107. package/dist/server/online/agent/runner/backend.js.map +1 -1
  108. package/dist/server/online/agent/runner/projection.d.ts +6 -1
  109. package/dist/server/online/agent/runner/projection.d.ts.map +1 -1
  110. package/dist/server/online/agent/runner/projection.js +106 -5
  111. package/dist/server/online/agent/runner/projection.js.map +1 -1
  112. package/dist/server/online/agent/service.d.ts.map +1 -1
  113. package/dist/server/online/agent/service.js +0 -2
  114. package/dist/server/online/agent/service.js.map +1 -1
  115. package/dist/server/online/gateway.d.ts +6 -2
  116. package/dist/server/online/gateway.d.ts.map +1 -1
  117. package/dist/server/online/gateway.js +1 -1
  118. package/dist/server/online/gateway.js.map +1 -1
  119. package/dist/server/online/providers.d.ts.map +1 -1
  120. package/dist/server/online/providers.js +26 -16
  121. package/dist/server/online/providers.js.map +1 -1
  122. package/dist/server/online/services.d.ts.map +1 -1
  123. package/dist/server/online/services.js +10 -4
  124. package/dist/server/online/services.js.map +1 -1
  125. package/dist/server/routes/admin.d.ts.map +1 -1
  126. package/dist/server/routes/admin.js +1 -103
  127. package/dist/server/routes/admin.js.map +1 -1
  128. package/dist/server/routes/schemas.d.ts +1 -13
  129. package/dist/server/routes/schemas.d.ts.map +1 -1
  130. package/dist/server/routes/schemas.js +1 -45
  131. package/dist/server/routes/schemas.js.map +1 -1
  132. package/dist/server/tokens.d.ts +1 -0
  133. package/dist/server/tokens.d.ts.map +1 -1
  134. package/dist/server/tokens.js +1 -0
  135. package/dist/server/tokens.js.map +1 -1
  136. package/dist/shared/agents.d.ts +8 -41
  137. package/dist/shared/agents.d.ts.map +1 -1
  138. package/dist/shared/agents.js +3 -4
  139. package/dist/shared/agents.js.map +1 -1
  140. package/dist/shared/model-catalog.d.ts +0 -2
  141. package/dist/shared/model-catalog.d.ts.map +1 -1
  142. package/dist/shared/model-catalog.js +0 -4
  143. package/dist/shared/model-catalog.js.map +1 -1
  144. package/docs/native-sandbox.md +3 -3
  145. package/docs/retire-pending-runner-agents.md +46 -0
  146. package/docs/runner-agents.md +8 -12
  147. package/package.json +3 -3
  148. package/skills/nocobase-app-plugin-agents/SKILL.md +1 -1
  149. package/skills/nocobase-app-plugin-agents/references/agents.md +8 -8
  150. package/skills/nocobase-app-plugin-agents/references/online-agent.md +5 -3
  151. package/dist/client/pages/agents/cleanup-drawer.d.ts +0 -7
  152. package/dist/client/pages/agents/cleanup-drawer.d.ts.map +0 -1
  153. package/dist/client/pages/agents/cleanup-drawer.js +0 -214
  154. package/dist/client/pages/agents/cleanup-drawer.js.map +0 -1
  155. package/dist/server/core/agents/discovery.d.ts +0 -12
  156. package/dist/server/core/agents/discovery.d.ts.map +0 -1
  157. package/dist/server/core/agents/discovery.js +0 -39
  158. 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":"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"}
@@ -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"}