@nivaro/react 0.3.36 → 0.3.38
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/components/slots/CommentsSlot.js +44 -36
- package/dist/full.css +1 -1
- package/dist/hooks/useSessionRecorder.js +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/shared/components/AgentBadge.js +26 -0
- package/dist/shared/components/AgentQuestionsCard.js +198 -0
- package/dist/shared/components/ItemEditForm.js +3329 -3263
- package/dist/shared/components/McpConnectionScope.js +480 -0
- package/dist/shared/components/MyWorkView.js +223 -208
- package/dist/shared/components/RecordReadView.js +620 -575
- package/dist/shared/components/chat/ChatPanel.js +683 -671
- package/dist/shared/components/imports/DownloadSampleButton.js +69 -0
- package/dist/shared/components/imports/ImportConsole.js +106 -104
- package/dist/shared/components/imports/RunDetailSheet.js +34 -32
- package/dist/shared/components/item-edit/FieldAffordances.js +32 -32
- package/dist/shared/components/item-edit/FormTour.js +279 -0
- package/dist/shared/components/item-edit/GroupSection.js +377 -360
- package/dist/shared/components/item-edit/PersonalDefaultControl.js +28 -28
- package/dist/shared/components/item-edit/entry/EntryStrip.js +30 -26
- package/dist/shared/components/item-edit/form-density.js +36 -0
- package/dist/shared/components/item-edit/useFormUsageBeacon.js +59 -46
- package/dist/shared/components/item-edit/usePersonalDefaults.js +312 -296
- package/dist/shared/components/layout-editor/AddPanel.js +349 -192
- package/dist/shared/components/layout-editor/DesignNode.js +126 -112
- package/dist/shared/components/layout-editor/EditorTopBar.js +123 -103
- package/dist/shared/components/layout-editor/LayoutEditor.js +829 -751
- package/dist/shared/components/layout-editor/PlaceTools.js +334 -0
- package/dist/shared/components/layout-editor/SlashInsert.js +252 -0
- package/dist/shared/components/layout-editor/StructureMenu.js +285 -242
- package/dist/shared/components/layout-editor/add-target.js +54 -43
- package/dist/shared/components/layout-editor/ai-forms/AiComposer.js +238 -155
- package/dist/shared/components/layout-editor/ai-forms/AiFormsButton.js +1 -1
- package/dist/shared/components/layout-editor/ai-forms/ai-forms-api.js +15 -12
- package/dist/shared/components/layout-editor/dnd/LayoutDndProvider.js +347 -189
- package/dist/shared/components/layout-editor/dnd/TrashZone.js +60 -32
- package/dist/shared/components/layout-editor/dnd/UndoChip.js +76 -0
- package/dist/shared/components/layout-editor/dnd/merge-drop.js +33 -0
- package/dist/shared/components/layout-editor/dnd/multi-drop.js +87 -0
- package/dist/shared/components/layout-editor/dnd/node.js +115 -105
- package/dist/shared/components/layout-editor/dnd/sensors.js +23 -0
- package/dist/shared/components/layout-editor/dnd/trash-drop.js +34 -28
- package/dist/shared/components/layout-editor/dnd/trash-links.js +97 -0
- package/dist/shared/components/layout-editor/even-row.js +86 -0
- package/dist/shared/components/layout-editor/field-list.js +99 -0
- package/dist/shared/components/layout-editor/format-painter.js +102 -0
- package/dist/shared/components/layout-editor/grid-guides.js +15 -13
- package/dist/shared/components/layout-editor/inspector/BehaviourSettings.js +150 -132
- package/dist/shared/components/layout-editor/inspector/BulkInspector.js +57 -53
- package/dist/shared/components/layout-editor/inspector/EvenRowAction.js +31 -0
- package/dist/shared/components/layout-editor/inspector/GroupInspector.js +154 -141
- package/dist/shared/components/layout-editor/inspector/Inspector.js +209 -178
- package/dist/shared/components/layout-editor/inspector/LookTab.js +106 -98
- package/dist/shared/components/layout-editor/inspector/RulesTab.js +38 -37
- package/dist/shared/components/layout-editor/inspector/kit.js +280 -223
- package/dist/shared/components/layout-editor/keyboard-move.js +15 -15
- package/dist/shared/components/layout-editor/lint/LabelStyle.js +201 -0
- package/dist/shared/components/layout-editor/lint/LintPanel.js +132 -84
- package/dist/shared/components/layout-editor/lint/lint-api.js +65 -28
- package/dist/shared/components/layout-editor/nav/NavTools.js +14 -12
- package/dist/shared/components/layout-editor/nav/ZoomControls.js +145 -0
- package/dist/shared/components/layout-editor/nav/useEditorNav.js +34 -32
- package/dist/shared/components/layout-editor/nav/view-prefs.js +100 -15
- package/dist/shared/components/layout-editor/outputs/LayoutFile.js +89 -0
- package/dist/shared/components/layout-editor/outputs/OutputsButton.js +272 -195
- package/dist/shared/components/layout-editor/outputs/layout-file-plan.js +176 -0
- package/dist/shared/components/layout-editor/outputs/output-api.js +71 -37
- package/dist/shared/components/layout-editor/overview/describe-conditions.js +16 -11
- package/dist/shared/components/layout-editor/overview/purpose.js +5 -5
- package/dist/shared/components/layout-editor/parity-keys.json.js +1 -1
- package/dist/shared/components/layout-editor/pin.js +37 -19
- package/dist/shared/components/layout-editor/place-clip.js +257 -0
- package/dist/shared/components/layout-editor/preview/PreviewModes.js +27 -26
- package/dist/shared/components/layout-editor/preview/PreviewPanes.js +148 -117
- package/dist/shared/components/layout-editor/preview/SampleRecord.js +113 -0
- package/dist/shared/components/layout-editor/preview/preview-model.js +79 -60
- package/dist/shared/components/layout-editor/preview/sample-record.js +105 -0
- package/dist/shared/components/layout-editor/removed-log.js +151 -0
- package/dist/shared/components/layout-editor/reuse/LibraryRows.js +109 -78
- package/dist/shared/components/layout-editor/reuse/linked-sections.js +373 -0
- package/dist/shared/components/layout-editor/revert-element.js +140 -0
- package/dist/shared/components/layout-editor/section-structure.js +193 -170
- package/dist/shared/components/layout-editor/settings/EntrySection.js +63 -45
- package/dist/shared/components/layout-editor/settings/LayoutSection.js +63 -32
- package/dist/shared/components/layout-editor/settings/ResolveSettings.js +179 -137
- package/dist/shared/components/layout-editor/settings/WhoSection.js +18 -17
- package/dist/shared/components/layout-editor/settings/settings-registry.js +24 -0
- package/dist/shared/components/layout-editor/shortcuts.js +21 -16
- package/dist/shared/components/layout-editor/structure-ops.js +221 -195
- package/dist/shared/components/layout-editor/usage/UsagePanel.js +133 -85
- package/dist/shared/components/layout-editor/usage/refusal-lens.js +130 -0
- package/dist/shared/components/layout-editor/usage/usage-api.js +12 -11
- package/dist/shared/components/panels/CommentPanel.js +47 -45
- package/dist/shared/components/panels/RevisionsPanel.js +66 -64
- package/dist/shared/components/panels/TaskPanel.js +395 -332
- package/dist/shared/components/profile/AgentsPanel.js +196 -147
- package/dist/shared/components/profile/ConnectionRollback.js +329 -0
- package/dist/shared/components/profile/MyDefaultsCard.js +526 -520
- package/dist/shared/lib/entry-config.js +22 -22
- package/dist/shared/lib/form-usage-beacon.js +91 -55
- package/dist/shared/lib/layout-lint.js +530 -284
- package/dist/shared/lib/layout-resolve.js +58 -44
- package/package.json +1 -1
|
@@ -1,27 +1,29 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { useQueryClient as z, useQuery as V, useInfiniteQuery as Z, useMutation as
|
|
3
|
-
import { Bot as G, Plug as H, Loader2 as
|
|
4
|
-
import { useState as
|
|
5
|
-
import { useNivaroClient as
|
|
6
|
-
import { get as
|
|
7
|
-
import { cn as
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
|
|
1
|
+
import { jsxs as a, jsx as t, Fragment as M } from "react/jsx-runtime";
|
|
2
|
+
import { useQueryClient as z, useQuery as V, useInfiniteQuery as Z, useMutation as D } from "@tanstack/react-query";
|
|
3
|
+
import { Bot as G, Plug as H, Loader2 as w, ListChecks as X, KeyRound as Y, ChevronRight as J, AlertTriangle as ee, Undo2 as te } from "lucide-react";
|
|
4
|
+
import { useState as v, useRef as ae, useMemo as I, Fragment as ne } from "react";
|
|
5
|
+
import { useNivaroClient as se, useItemNavigation as U } from "../../context.js";
|
|
6
|
+
import { get as q, del as re, post as oe } from "../../lib/commands.js";
|
|
7
|
+
import { cn as y, formatDate as C, formatRelative as E, formatNumber as g, formatDateTime as le, formatFileSize as B } from "../../lib/utils.js";
|
|
8
|
+
import { ScopeBadge as ie, McpScopeSheet as de } from "../McpConnectionScope.js";
|
|
9
|
+
import { SimpleSelectXs as ce } from "../ui/SimpleSelect.js";
|
|
10
|
+
import { Skeleton as me } from "../ui/skeleton.js";
|
|
11
|
+
import { ConnectionRollback as pe } from "./ConnectionRollback.js";
|
|
12
|
+
import { SectionCard as A, EmptyLine as k, ConfirmButton as O, Pill as Q } from "./primitives.js";
|
|
13
|
+
const ue = {
|
|
12
14
|
oauth: "Signed in",
|
|
13
15
|
api_key: "API key",
|
|
14
16
|
token: "Personal token"
|
|
15
17
|
}, T = (e) => ["nvr-mcp-connections", e];
|
|
16
|
-
function
|
|
18
|
+
function he({ days: e }) {
|
|
17
19
|
const i = Math.max(1, ...e.map((r) => r.calls));
|
|
18
20
|
return /* @__PURE__ */ t("div", { className: "flex h-6 items-end gap-[2px]", "aria-hidden": !0, children: e.map((r) => {
|
|
19
21
|
const l = r.calls ? Math.max(3, Math.round(r.calls / i * 24)) : 2, d = r.errors + r.refused;
|
|
20
22
|
return /* @__PURE__ */ t(
|
|
21
23
|
"span",
|
|
22
24
|
{
|
|
23
|
-
"data-tip": `${
|
|
24
|
-
className:
|
|
25
|
+
"data-tip": `${C(`${r.day}T12:00:00Z`, { month: "short", day: "numeric" })}: ${g(r.calls)} call${r.calls === 1 ? "" : "s"}${d ? `, ${d} not ok` : ""}`,
|
|
26
|
+
className: y(
|
|
25
27
|
"relative w-[5px] overflow-hidden rounded-[1px]",
|
|
26
28
|
r.calls ? "bg-nvr-cyan/50 dark:bg-nvr-cyan/40" : "bg-slate-200 dark:bg-muted"
|
|
27
29
|
),
|
|
@@ -38,40 +40,40 @@ function me({ days: e }) {
|
|
|
38
40
|
);
|
|
39
41
|
}) });
|
|
40
42
|
}
|
|
41
|
-
function
|
|
42
|
-
return !e || e.calls === 0 ? /* @__PURE__ */ t("span", { className: "text-[12px] text-slate-500 dark:text-slate-400", children: "No tool calls" }) : /* @__PURE__ */
|
|
43
|
-
/* @__PURE__ */ t("b", { className: "font-semibold text-slate-800 dark:text-slate-100", children:
|
|
43
|
+
function xe({ s: e }) {
|
|
44
|
+
return !e || e.calls === 0 ? /* @__PURE__ */ t("span", { className: "text-[12px] text-slate-500 dark:text-slate-400", children: "No tool calls" }) : /* @__PURE__ */ a("span", { className: "text-[12px] tabular-nums text-slate-600 dark:text-slate-300", children: [
|
|
45
|
+
/* @__PURE__ */ t("b", { className: "font-semibold text-slate-800 dark:text-slate-100", children: g(e.calls) }),
|
|
44
46
|
" ",
|
|
45
47
|
"call",
|
|
46
48
|
e.calls === 1 ? "" : "s",
|
|
47
|
-
e.refused > 0 && /* @__PURE__ */
|
|
49
|
+
e.refused > 0 && /* @__PURE__ */ a("span", { className: "text-amber-700 dark:text-amber-400", children: [
|
|
48
50
|
" ",
|
|
49
51
|
"· ",
|
|
50
|
-
|
|
52
|
+
g(e.refused),
|
|
51
53
|
" refused"
|
|
52
54
|
] }),
|
|
53
|
-
e.errors > 0 && /* @__PURE__ */
|
|
55
|
+
e.errors > 0 && /* @__PURE__ */ a("span", { className: "text-red-600 dark:text-red-400", children: [
|
|
54
56
|
" · ",
|
|
55
|
-
|
|
57
|
+
g(e.errors),
|
|
56
58
|
" failed"
|
|
57
59
|
] }),
|
|
58
|
-
/* @__PURE__ */
|
|
60
|
+
/* @__PURE__ */ a("span", { className: "text-slate-500 dark:text-slate-400", children: [
|
|
59
61
|
" · ",
|
|
60
|
-
|
|
62
|
+
B(e.bytes)
|
|
61
63
|
] })
|
|
62
64
|
] });
|
|
63
65
|
}
|
|
64
|
-
function
|
|
65
|
-
return /* @__PURE__ */ t(Q, { tone: e === "oauth" ? "brand" : "neutral", children:
|
|
66
|
+
function be({ kind: e }) {
|
|
67
|
+
return /* @__PURE__ */ t(Q, { tone: e === "oauth" ? "brand" : "neutral", children: ue[e] });
|
|
66
68
|
}
|
|
67
|
-
function
|
|
69
|
+
function fe({ c: e }) {
|
|
68
70
|
if (!e.idle || e.idle.status === "active") return null;
|
|
69
|
-
const i =
|
|
71
|
+
const i = C(`${e.idle.revoke_on}T12:00:00Z`, {
|
|
70
72
|
month: "short",
|
|
71
73
|
day: "numeric",
|
|
72
74
|
year: "numeric"
|
|
73
75
|
});
|
|
74
|
-
return /* @__PURE__ */
|
|
76
|
+
return /* @__PURE__ */ a("p", { className: "mt-1.5 flex items-center gap-1.5 text-[12px] text-amber-700 dark:text-amber-400", children: [
|
|
75
77
|
/* @__PURE__ */ t(ee, { className: "h-3.5 w-3.5 shrink-0" }),
|
|
76
78
|
"Unused for ",
|
|
77
79
|
e.idle.idle_days,
|
|
@@ -80,54 +82,81 @@ function he({ c: e }) {
|
|
|
80
82
|
" unless it is used."
|
|
81
83
|
] });
|
|
82
84
|
}
|
|
83
|
-
const
|
|
85
|
+
const ge = {
|
|
84
86
|
ok: { label: "Done", tone: "green" },
|
|
85
87
|
refused: { label: "Refused", tone: "amber" },
|
|
86
88
|
error: { label: "Failed", tone: "red" }
|
|
87
|
-
},
|
|
89
|
+
}, ve = {
|
|
88
90
|
create: "Created",
|
|
89
91
|
update: "Changed",
|
|
90
92
|
delete: "Deleted"
|
|
91
93
|
};
|
|
92
94
|
function K({ rows: e = 3 }) {
|
|
93
|
-
return /* @__PURE__ */ t("div", { className: "space-y-3", "aria-busy": "true", children: Array.from({ length: e }, (i, r) => /* @__PURE__ */ t(
|
|
95
|
+
return /* @__PURE__ */ t("div", { className: "space-y-3", "aria-busy": "true", children: Array.from({ length: e }, (i, r) => /* @__PURE__ */ t(me, { className: "h-10 rounded-md" }, r)) });
|
|
94
96
|
}
|
|
95
|
-
function
|
|
97
|
+
function ye({
|
|
96
98
|
c: e,
|
|
97
99
|
onShowCalls: i,
|
|
98
100
|
onDisconnect: r,
|
|
99
101
|
disconnecting: l
|
|
100
102
|
}) {
|
|
101
|
-
var
|
|
102
|
-
const d = ((
|
|
103
|
-
return /* @__PURE__ */
|
|
104
|
-
/* @__PURE__ */
|
|
105
|
-
/* @__PURE__ */
|
|
103
|
+
var s, x, o, b;
|
|
104
|
+
const d = ((s = e.stats) == null ? void 0 : s.last_call_at) ?? e.last_used_at, [u, p] = v(!1), [h, m] = v(!1);
|
|
105
|
+
return /* @__PURE__ */ a("li", { className: "flex flex-wrap items-center gap-x-6 gap-y-3 py-3 first:pt-0 last:pb-0", children: [
|
|
106
|
+
/* @__PURE__ */ a("div", { className: "min-w-[220px] flex-1", children: [
|
|
107
|
+
/* @__PURE__ */ a("div", { className: "flex flex-wrap items-center gap-2", children: [
|
|
106
108
|
/* @__PURE__ */ t("span", { className: "truncate text-[13px] font-semibold text-slate-800 dark:text-slate-100", children: e.name }),
|
|
107
|
-
/* @__PURE__ */ t(
|
|
109
|
+
/* @__PURE__ */ t(be, { kind: e.kind })
|
|
108
110
|
] }),
|
|
109
|
-
/* @__PURE__ */
|
|
110
|
-
e.created_at ? `Connected ${
|
|
111
|
+
/* @__PURE__ */ a("p", { className: "mt-0.5 text-[12px] text-slate-500 dark:text-slate-400", children: [
|
|
112
|
+
e.created_at ? `Connected ${C(e.created_at)}` : "Seen in the request log",
|
|
111
113
|
" · ",
|
|
112
|
-
d ? `last used ${
|
|
114
|
+
d ? `last used ${E(d)}` : "never used"
|
|
113
115
|
] }),
|
|
114
|
-
/* @__PURE__ */ t(
|
|
116
|
+
/* @__PURE__ */ t(fe, { c: e }),
|
|
117
|
+
e.scope !== void 0 && /* @__PURE__ */ a("p", { className: "mt-1 flex min-w-0 items-center gap-1.5", children: [
|
|
118
|
+
/* @__PURE__ */ t("span", { className: "shrink-0 text-[12px] text-slate-500 dark:text-slate-400", children: "May use:" }),
|
|
119
|
+
/* @__PURE__ */ t(ie, { scope: e.scope ?? null }),
|
|
120
|
+
((x = e.scope) == null ? void 0 : x.locked) && /* @__PURE__ */ t("span", { className: "shrink-0 text-[11.5px] text-slate-500 dark:text-slate-400", children: "· set by an administrator" })
|
|
121
|
+
] })
|
|
115
122
|
] }),
|
|
116
|
-
/* @__PURE__ */
|
|
117
|
-
e.stats && /* @__PURE__ */ t(
|
|
118
|
-
/* @__PURE__ */ t(
|
|
123
|
+
/* @__PURE__ */ a("div", { className: "flex min-w-[180px] flex-col gap-1", children: [
|
|
124
|
+
e.stats && /* @__PURE__ */ t(he, { days: e.stats.days }),
|
|
125
|
+
/* @__PURE__ */ t(xe, { s: e.stats })
|
|
119
126
|
] }),
|
|
120
|
-
/* @__PURE__ */ t("div", { className: "hidden min-w-[160px] flex-wrap gap-1 lg:flex", children: (((
|
|
127
|
+
/* @__PURE__ */ t("div", { className: "hidden min-w-[160px] flex-wrap gap-1 lg:flex", children: (((o = e.stats) == null ? void 0 : o.top_tools) ?? []).slice(0, 4).map((f) => /* @__PURE__ */ t(
|
|
121
128
|
"span",
|
|
122
129
|
{
|
|
123
|
-
"data-tip": `${f
|
|
130
|
+
"data-tip": `${g(f.calls)} call${f.calls === 1 ? "" : "s"}`,
|
|
124
131
|
className: "rounded bg-slate-100 px-1.5 py-px font-mono text-[11px] text-slate-600 dark:bg-muted dark:text-slate-300",
|
|
125
|
-
children:
|
|
132
|
+
children: f.tool
|
|
126
133
|
},
|
|
127
|
-
|
|
134
|
+
f.tool
|
|
128
135
|
)) }),
|
|
129
|
-
/* @__PURE__ */
|
|
130
|
-
|
|
136
|
+
/* @__PURE__ */ a("div", { className: "ml-auto flex items-center gap-1.5", children: [
|
|
137
|
+
e.scope_editable && /* @__PURE__ */ a(M, { children: [
|
|
138
|
+
/* @__PURE__ */ t(
|
|
139
|
+
"button",
|
|
140
|
+
{
|
|
141
|
+
type: "button",
|
|
142
|
+
onClick: () => m(!0),
|
|
143
|
+
className: "h-7 rounded-md px-2 text-[12px] font-medium text-slate-600 transition-colors hover:bg-muted hover:text-slate-900 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-nvr-cyan/40 dark:text-slate-300 dark:hover:text-white",
|
|
144
|
+
children: "Limits"
|
|
145
|
+
}
|
|
146
|
+
),
|
|
147
|
+
/* @__PURE__ */ t(
|
|
148
|
+
de,
|
|
149
|
+
{
|
|
150
|
+
open: h,
|
|
151
|
+
onClose: () => m(!1),
|
|
152
|
+
conn: e.conn,
|
|
153
|
+
name: e.name,
|
|
154
|
+
scope: e.scope ?? null,
|
|
155
|
+
mode: "mine"
|
|
156
|
+
}
|
|
157
|
+
)
|
|
158
|
+
] }),
|
|
159
|
+
(((b = e.stats) == null ? void 0 : b.calls) ?? 0) > 0 && /* @__PURE__ */ t(
|
|
131
160
|
"button",
|
|
132
161
|
{
|
|
133
162
|
type: "button",
|
|
@@ -136,6 +165,17 @@ function fe({
|
|
|
136
165
|
children: "View calls"
|
|
137
166
|
}
|
|
138
167
|
),
|
|
168
|
+
/* @__PURE__ */ t(
|
|
169
|
+
"button",
|
|
170
|
+
{
|
|
171
|
+
type: "button",
|
|
172
|
+
onClick: () => p((f) => !f),
|
|
173
|
+
"aria-expanded": u,
|
|
174
|
+
"data-tip": "Undo what this app changed in a time window",
|
|
175
|
+
className: "h-7 rounded-md px-2 text-[12px] font-medium text-slate-600 transition-colors hover:bg-muted hover:text-slate-900 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-nvr-cyan/40 dark:text-slate-300 dark:hover:text-white",
|
|
176
|
+
children: "Roll back…"
|
|
177
|
+
}
|
|
178
|
+
),
|
|
139
179
|
e.kind === "oauth" && e.created_at ? /* @__PURE__ */ t(
|
|
140
180
|
O,
|
|
141
181
|
{
|
|
@@ -145,9 +185,9 @@ function fe({
|
|
|
145
185
|
title: `Disconnect ${e.name}`,
|
|
146
186
|
className: "h-7 rounded-md border border-slate-200 px-2.5 text-[12px] font-medium text-slate-700 transition-colors hover:border-red-300 hover:text-red-600 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-red-400/40 disabled:opacity-40 dark:border-border dark:text-slate-200 dark:hover:border-red-500/50 dark:hover:text-red-400",
|
|
147
187
|
armedClassName: "border-red-300 bg-red-50 text-red-700 dark:border-red-500/50 dark:bg-red-500/10 dark:text-red-400",
|
|
148
|
-
children: l ? /* @__PURE__ */ t(
|
|
188
|
+
children: l ? /* @__PURE__ */ t(w, { className: "h-3.5 w-3.5 animate-spin" }) : "Disconnect"
|
|
149
189
|
}
|
|
150
|
-
) : e.kind !== "oauth" ? /* @__PURE__ */
|
|
190
|
+
) : e.kind !== "oauth" ? /* @__PURE__ */ a(
|
|
151
191
|
"span",
|
|
152
192
|
{
|
|
153
193
|
className: "inline-flex items-center gap-1 text-[11.5px] text-slate-500 dark:text-slate-400",
|
|
@@ -158,20 +198,29 @@ function fe({
|
|
|
158
198
|
]
|
|
159
199
|
}
|
|
160
200
|
) : null
|
|
161
|
-
] })
|
|
201
|
+
] }),
|
|
202
|
+
u && /* @__PURE__ */ t("div", { className: "basis-full", children: /* @__PURE__ */ t(
|
|
203
|
+
pe,
|
|
204
|
+
{
|
|
205
|
+
conn: e.conn,
|
|
206
|
+
name: e.name,
|
|
207
|
+
scope: "mine",
|
|
208
|
+
onClose: () => p(!1)
|
|
209
|
+
}
|
|
210
|
+
) })
|
|
162
211
|
] });
|
|
163
212
|
}
|
|
164
|
-
function
|
|
213
|
+
function ke({
|
|
165
214
|
w: e,
|
|
166
215
|
onUndo: i,
|
|
167
216
|
undoing: r
|
|
168
217
|
}) {
|
|
169
|
-
const { urlFor: l, open: d } =
|
|
170
|
-
return /* @__PURE__ */
|
|
171
|
-
/* @__PURE__ */
|
|
172
|
-
|
|
218
|
+
const { urlFor: l, open: d } = U(), u = e.collection && e.item ? { collection: e.collection, itemId: e.item } : null;
|
|
219
|
+
return /* @__PURE__ */ a("li", { className: "flex flex-wrap items-center gap-x-3 gap-y-1 py-1.5", children: [
|
|
220
|
+
/* @__PURE__ */ a("span", { className: "text-[12px] text-slate-700 dark:text-slate-200", children: [
|
|
221
|
+
ve[e.action] ?? e.action,
|
|
173
222
|
" ",
|
|
174
|
-
u && e.action !== "delete" ? /* @__PURE__ */
|
|
223
|
+
u && e.action !== "delete" ? /* @__PURE__ */ a(
|
|
175
224
|
"a",
|
|
176
225
|
{
|
|
177
226
|
href: l(u),
|
|
@@ -185,13 +234,13 @@ function ge({
|
|
|
185
234
|
e.item
|
|
186
235
|
]
|
|
187
236
|
}
|
|
188
|
-
) : /* @__PURE__ */
|
|
237
|
+
) : /* @__PURE__ */ a("span", { className: "font-mono text-[11.5px]", children: [
|
|
189
238
|
e.collection ?? "",
|
|
190
239
|
" ",
|
|
191
240
|
e.item ? `#${e.item}` : ""
|
|
192
241
|
] })
|
|
193
242
|
] }),
|
|
194
|
-
e.undoable ? /* @__PURE__ */
|
|
243
|
+
e.undoable ? /* @__PURE__ */ a(
|
|
195
244
|
O,
|
|
196
245
|
{
|
|
197
246
|
onConfirm: i,
|
|
@@ -201,30 +250,30 @@ function ge({
|
|
|
201
250
|
className: "inline-flex h-6 items-center gap-1 rounded-md border border-slate-200 px-2 text-[11.5px] font-medium text-slate-700 transition-colors hover:border-nvr-cyan hover:text-nvr-navy focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-nvr-cyan/40 disabled:opacity-40 dark:border-border dark:text-slate-200 dark:hover:text-nvr-cyan",
|
|
202
251
|
armedClassName: "border-amber-300 bg-amber-50 text-amber-800 dark:border-amber-500/40 dark:bg-amber-500/10 dark:text-amber-300",
|
|
203
252
|
children: [
|
|
204
|
-
r ? /* @__PURE__ */ t(
|
|
253
|
+
r ? /* @__PURE__ */ t(w, { className: "h-3 w-3 animate-spin" }) : /* @__PURE__ */ t(te, { className: "h-3 w-3" }),
|
|
205
254
|
"Undo"
|
|
206
255
|
]
|
|
207
256
|
}
|
|
208
257
|
) : /* @__PURE__ */ t("span", { className: "text-[11.5px] text-slate-500 dark:text-slate-400", children: e.reason })
|
|
209
258
|
] });
|
|
210
259
|
}
|
|
211
|
-
function
|
|
260
|
+
function Ne({
|
|
212
261
|
call: e,
|
|
213
262
|
onUndo: i,
|
|
214
263
|
undoingId: r
|
|
215
264
|
}) {
|
|
216
|
-
const [l, d] =
|
|
217
|
-
return /* @__PURE__ */
|
|
218
|
-
/* @__PURE__ */
|
|
265
|
+
const [l, d] = v(!1), { urlFor: u, open: p } = U(), h = ge[e.outcome], m = e.writes.length > 0 || !!e.message, s = e.record, x = s != null && s.id ? { collection: s.collection, itemId: s.id } : null;
|
|
266
|
+
return /* @__PURE__ */ a(ne, { children: [
|
|
267
|
+
/* @__PURE__ */ a(
|
|
219
268
|
"tr",
|
|
220
269
|
{
|
|
221
|
-
className:
|
|
270
|
+
className: y(
|
|
222
271
|
"border-b border-slate-100 align-middle last:border-0 dark:border-border/60",
|
|
223
|
-
|
|
272
|
+
m && "cursor-pointer hover:bg-muted/60"
|
|
224
273
|
),
|
|
225
|
-
onClick: () =>
|
|
274
|
+
onClick: () => m && d((o) => !o),
|
|
226
275
|
children: [
|
|
227
|
-
/* @__PURE__ */ t("td", { className: "w-5 py-2 pl-1 pr-0", children:
|
|
276
|
+
/* @__PURE__ */ t("td", { className: "w-5 py-2 pl-1 pr-0", children: m && /* @__PURE__ */ t(
|
|
228
277
|
"button",
|
|
229
278
|
{
|
|
230
279
|
type: "button",
|
|
@@ -237,7 +286,7 @@ function ye({
|
|
|
237
286
|
children: /* @__PURE__ */ t(
|
|
238
287
|
J,
|
|
239
288
|
{
|
|
240
|
-
className:
|
|
289
|
+
className: y(
|
|
241
290
|
"h-3.5 w-3.5 transition-transform duration-150",
|
|
242
291
|
l && "rotate-90"
|
|
243
292
|
)
|
|
@@ -249,13 +298,13 @@ function ye({
|
|
|
249
298
|
"td",
|
|
250
299
|
{
|
|
251
300
|
className: "whitespace-nowrap py-2 pr-3 text-slate-500 dark:text-slate-400",
|
|
252
|
-
"data-tip":
|
|
253
|
-
children:
|
|
301
|
+
"data-tip": le(e.at),
|
|
302
|
+
children: E(e.at)
|
|
254
303
|
}
|
|
255
304
|
),
|
|
256
305
|
/* @__PURE__ */ t("td", { className: "max-w-[160px] truncate py-2 pr-3 text-slate-700 dark:text-slate-200", children: e.app }),
|
|
257
306
|
/* @__PURE__ */ t("td", { className: "py-2 pr-3 font-mono text-[11.5px] text-slate-700 dark:text-slate-200", children: e.tool ?? "—" }),
|
|
258
|
-
/* @__PURE__ */ t("td", { className: "max-w-[220px] truncate py-2 pr-3", children: x ? /* @__PURE__ */
|
|
307
|
+
/* @__PURE__ */ t("td", { className: "max-w-[220px] truncate py-2 pr-3", children: x ? /* @__PURE__ */ a(
|
|
259
308
|
"a",
|
|
260
309
|
{
|
|
261
310
|
href: u(x),
|
|
@@ -270,27 +319,27 @@ function ye({
|
|
|
270
319
|
]
|
|
271
320
|
}
|
|
272
321
|
) : s ? /* @__PURE__ */ t("span", { className: "font-mono text-[11.5px] text-slate-600 dark:text-slate-300", children: s.collection }) : /* @__PURE__ */ t("span", { className: "text-slate-400 dark:text-slate-500", children: "—" }) }),
|
|
273
|
-
/* @__PURE__ */ t("td", { className: "py-2 pr-3", children: /* @__PURE__ */
|
|
322
|
+
/* @__PURE__ */ t("td", { className: "py-2 pr-3", children: /* @__PURE__ */ a("span", { className: "inline-flex items-center gap-1.5", children: [
|
|
274
323
|
/* @__PURE__ */ t(Q, { tone: h.tone, children: h.label }),
|
|
275
|
-
e.writes.length > 0 && /* @__PURE__ */
|
|
324
|
+
e.writes.length > 0 && /* @__PURE__ */ a("span", { className: "text-[11.5px] text-slate-500 dark:text-slate-400", children: [
|
|
276
325
|
e.writes.length,
|
|
277
326
|
" write",
|
|
278
327
|
e.writes.length === 1 ? "" : "s"
|
|
279
328
|
] })
|
|
280
329
|
] }) }),
|
|
281
|
-
/* @__PURE__ */ t("td", { className: "whitespace-nowrap py-2 pr-1 text-right tabular-nums text-slate-500 dark:text-slate-400", children: e.bytes != null ?
|
|
330
|
+
/* @__PURE__ */ t("td", { className: "whitespace-nowrap py-2 pr-1 text-right tabular-nums text-slate-500 dark:text-slate-400", children: e.bytes != null ? B(e.bytes) : "" })
|
|
282
331
|
]
|
|
283
332
|
}
|
|
284
333
|
),
|
|
285
|
-
l && /* @__PURE__ */
|
|
334
|
+
l && /* @__PURE__ */ a("tr", { className: "border-b border-slate-100 dark:border-border/60", children: [
|
|
286
335
|
/* @__PURE__ */ t("td", {}),
|
|
287
|
-
/* @__PURE__ */
|
|
288
|
-
e.message && /* @__PURE__ */
|
|
336
|
+
/* @__PURE__ */ a("td", { colSpan: 6, className: "pb-3 pr-3", children: [
|
|
337
|
+
e.message && /* @__PURE__ */ a("p", { className: "mb-1.5 text-[12px] text-slate-600 dark:text-slate-300", children: [
|
|
289
338
|
/* @__PURE__ */ t("span", { className: "font-medium", children: e.outcome === "refused" ? "Nivaro said no: " : "It failed: " }),
|
|
290
339
|
e.message
|
|
291
340
|
] }),
|
|
292
341
|
e.writes.length > 0 && /* @__PURE__ */ t("ul", { className: "divide-y divide-slate-100 dark:divide-border/60", children: e.writes.map((o) => /* @__PURE__ */ t(
|
|
293
|
-
|
|
342
|
+
ke,
|
|
294
343
|
{
|
|
295
344
|
w: o,
|
|
296
345
|
onUndo: () => i(o),
|
|
@@ -298,7 +347,7 @@ function ye({
|
|
|
298
347
|
},
|
|
299
348
|
o.activity_id
|
|
300
349
|
)) }),
|
|
301
|
-
/* @__PURE__ */
|
|
350
|
+
/* @__PURE__ */ a("p", { className: "mt-1 text-[11.5px] text-slate-500 dark:text-slate-400", children: [
|
|
302
351
|
e.api_calls,
|
|
303
352
|
" request",
|
|
304
353
|
e.api_calls === 1 ? "" : "s",
|
|
@@ -310,55 +359,55 @@ function ye({
|
|
|
310
359
|
] })
|
|
311
360
|
] });
|
|
312
361
|
}
|
|
313
|
-
function
|
|
314
|
-
var P, S, $,
|
|
315
|
-
const i =
|
|
362
|
+
function Ae({ className: e }) {
|
|
363
|
+
var P, S, $, R, F, L;
|
|
364
|
+
const i = se(), r = z(), [l, d] = v(""), u = ae(null), [p, h] = v(null), m = V({
|
|
316
365
|
queryKey: T("mine"),
|
|
317
|
-
queryFn: () => i.request(
|
|
366
|
+
queryFn: () => i.request(q("/mcp-connections/mine")).then((n) => n.data)
|
|
318
367
|
}), s = Z({
|
|
319
368
|
queryKey: ["nvr-mcp-activity", l],
|
|
320
369
|
initialPageParam: null,
|
|
321
|
-
queryFn: ({ pageParam:
|
|
322
|
-
|
|
370
|
+
queryFn: ({ pageParam: n }) => i.request(
|
|
371
|
+
q(
|
|
323
372
|
"/mcp-connections/mine/activity",
|
|
324
|
-
{ ...l ? { conn: l } : {}, ...
|
|
373
|
+
{ ...l ? { conn: l } : {}, ...n ? { before: n } : {}, limit: 50 }
|
|
325
374
|
)
|
|
326
|
-
).then((
|
|
327
|
-
getNextPageParam: (
|
|
328
|
-
}), x =
|
|
329
|
-
mutationFn: (
|
|
375
|
+
).then((c) => c.data),
|
|
376
|
+
getNextPageParam: (n) => n.next_before
|
|
377
|
+
}), x = D({
|
|
378
|
+
mutationFn: (n) => i.request(re(`/mcp-connections/mine/${n}`)),
|
|
330
379
|
onSuccess: () => {
|
|
331
380
|
h({ tone: "ok", text: "Disconnected. Its tokens stopped working at once." }), r.invalidateQueries({ queryKey: T("mine") });
|
|
332
381
|
},
|
|
333
|
-
onError: (
|
|
334
|
-
}), o =
|
|
335
|
-
mutationFn: (
|
|
336
|
-
onSuccess: (
|
|
382
|
+
onError: (n) => h({ tone: "bad", text: (n == null ? void 0 : n.message) || "Could not disconnect" })
|
|
383
|
+
}), o = D({
|
|
384
|
+
mutationFn: (n) => i.request(oe(`/mcp-connections/mine/activity/${n.activity_id}/undo`)),
|
|
385
|
+
onSuccess: (n, c) => {
|
|
337
386
|
h({
|
|
338
387
|
tone: "ok",
|
|
339
|
-
text:
|
|
388
|
+
text: c.action === "create" ? "Undone — the record was deleted." : "Undone — the previous values are back."
|
|
340
389
|
}), r.invalidateQueries({ queryKey: ["nvr-mcp-activity"] });
|
|
341
390
|
},
|
|
342
|
-
onError: (
|
|
343
|
-
}), b = ((P =
|
|
344
|
-
var
|
|
345
|
-
return ((
|
|
346
|
-
}, [s.data]), j = ((S =
|
|
391
|
+
onError: (n) => h({ tone: "bad", text: (n == null ? void 0 : n.message) || "Could not undo that change" })
|
|
392
|
+
}), b = ((P = m.data) == null ? void 0 : P.connections) ?? [], f = I(() => {
|
|
393
|
+
var n;
|
|
394
|
+
return ((n = s.data) == null ? void 0 : n.pages.flatMap((c) => c.calls)) ?? [];
|
|
395
|
+
}, [s.data]), j = ((S = m.data) == null ? void 0 : S.logged) !== !1 && ((R = ($ = s.data) == null ? void 0 : $.pages[0]) == null ? void 0 : R.logged) !== !1, _ = I(
|
|
347
396
|
() => [
|
|
348
397
|
{ value: "", label: "Every app" },
|
|
349
|
-
...b.filter((
|
|
350
|
-
var
|
|
351
|
-
return (((
|
|
352
|
-
}).map((
|
|
398
|
+
...b.filter((n) => {
|
|
399
|
+
var c;
|
|
400
|
+
return (((c = n.stats) == null ? void 0 : c.calls) ?? 0) > 0;
|
|
401
|
+
}).map((n) => ({ value: n.conn, label: n.name }))
|
|
353
402
|
],
|
|
354
403
|
[b]
|
|
355
|
-
),
|
|
356
|
-
return /* @__PURE__ */
|
|
357
|
-
p && /* @__PURE__ */
|
|
404
|
+
), N = (F = m.data) == null ? void 0 : F.settings;
|
|
405
|
+
return /* @__PURE__ */ a("div", { className: y("flex flex-col gap-4", e), "data-nvr-agents": !0, children: [
|
|
406
|
+
p && /* @__PURE__ */ a(
|
|
358
407
|
"div",
|
|
359
408
|
{
|
|
360
409
|
role: "status",
|
|
361
|
-
className:
|
|
410
|
+
className: y(
|
|
362
411
|
"flex items-center justify-between gap-3 rounded-md border px-3 py-2 text-[12.5px]",
|
|
363
412
|
p.tone === "ok" ? "border-emerald-200 bg-emerald-50 text-emerald-800 dark:border-emerald-500/30 dark:bg-emerald-500/10 dark:text-emerald-300" : "border-red-200 bg-red-50 text-red-700 dark:border-red-500/30 dark:bg-red-500/10 dark:text-red-300"
|
|
364
413
|
),
|
|
@@ -377,49 +426,49 @@ function De({ className: e }) {
|
|
|
377
426
|
}
|
|
378
427
|
),
|
|
379
428
|
/* @__PURE__ */ t(
|
|
380
|
-
|
|
429
|
+
A,
|
|
381
430
|
{
|
|
382
431
|
icon: /* @__PURE__ */ t(H, { className: "h-4 w-4" }),
|
|
383
432
|
title: "Connected apps",
|
|
384
433
|
hint: "AI assistants that act as you through Nivaro’s MCP server, with your permissions",
|
|
385
|
-
children:
|
|
434
|
+
children: m.isLoading ? /* @__PURE__ */ t(K, {}) : m.isError ? /* @__PURE__ */ t(k, { children: "Connected apps could not be loaded. Try again in a moment." }) : b.length === 0 ? /* @__PURE__ */ a("div", { className: "flex items-start gap-3", children: [
|
|
386
435
|
/* @__PURE__ */ t(G, { className: "mt-0.5 h-5 w-5 shrink-0 text-slate-400" }),
|
|
387
436
|
/* @__PURE__ */ t("p", { className: "max-w-[70ch] text-[12.5px] text-slate-600 dark:text-slate-300", children: "No assistant is connected. Add Nivaro as a connector in Claude, ChatGPT, Claude Code or Codex and sign in — the app shows up here with what it did, and you can disconnect it at any time." })
|
|
388
|
-
] }) : /* @__PURE__ */
|
|
389
|
-
/* @__PURE__ */ t("ul", { className: "divide-y divide-slate-100 dark:divide-border/60", children: b.map((
|
|
390
|
-
|
|
437
|
+
] }) : /* @__PURE__ */ a(M, { children: [
|
|
438
|
+
/* @__PURE__ */ t("ul", { className: "divide-y divide-slate-100 dark:divide-border/60", children: b.map((n) => /* @__PURE__ */ t(
|
|
439
|
+
ye,
|
|
391
440
|
{
|
|
392
|
-
c:
|
|
441
|
+
c: n,
|
|
393
442
|
onShowCalls: () => {
|
|
394
|
-
var
|
|
395
|
-
d(
|
|
443
|
+
var c;
|
|
444
|
+
d(n.conn), (c = u.current) == null || c.scrollIntoView({ block: "start", behavior: "smooth" });
|
|
396
445
|
},
|
|
397
|
-
onDisconnect: () => x.mutate(
|
|
398
|
-
disconnecting: x.isPending && x.variables ===
|
|
446
|
+
onDisconnect: () => x.mutate(n.conn),
|
|
447
|
+
disconnecting: x.isPending && x.variables === n.conn
|
|
399
448
|
},
|
|
400
|
-
|
|
449
|
+
n.conn
|
|
401
450
|
)) }),
|
|
402
|
-
|
|
451
|
+
N && /* @__PURE__ */ a("p", { className: "mt-3 text-[11.5px] text-slate-500 dark:text-slate-400", children: [
|
|
403
452
|
"Figures cover the last ",
|
|
404
|
-
((
|
|
453
|
+
((L = m.data) == null ? void 0 : L.window_days) ?? 14,
|
|
405
454
|
" days. A connection left unused for ",
|
|
406
|
-
|
|
455
|
+
N.idle_flag_days,
|
|
407
456
|
" days is pointed out to you, and disconnected after",
|
|
408
457
|
" ",
|
|
409
|
-
|
|
458
|
+
N.idle_revoke_days,
|
|
410
459
|
" days with a week’s notice."
|
|
411
460
|
] })
|
|
412
461
|
] })
|
|
413
462
|
}
|
|
414
463
|
),
|
|
415
464
|
/* @__PURE__ */ t("div", { ref: u, className: "scroll-mt-4", children: /* @__PURE__ */ t(
|
|
416
|
-
|
|
465
|
+
A,
|
|
417
466
|
{
|
|
418
467
|
icon: /* @__PURE__ */ t(X, { className: "h-4 w-4" }),
|
|
419
468
|
title: "What my agents did",
|
|
420
469
|
hint: "Every tool call, newest first. Open one to see its changes and undo them.",
|
|
421
470
|
actions: _.length > 2 ? /* @__PURE__ */ t(
|
|
422
|
-
|
|
471
|
+
ce,
|
|
423
472
|
{
|
|
424
473
|
value: l,
|
|
425
474
|
onChange: d,
|
|
@@ -427,9 +476,9 @@ function De({ className: e }) {
|
|
|
427
476
|
ariaLabel: "Show calls from"
|
|
428
477
|
}
|
|
429
478
|
) : null,
|
|
430
|
-
children: j ? s.isLoading ? /* @__PURE__ */ t(K, { rows: 5 }) : s.isError ? /* @__PURE__ */ t(
|
|
431
|
-
/* @__PURE__ */
|
|
432
|
-
/* @__PURE__ */ t("thead", { children: /* @__PURE__ */
|
|
479
|
+
children: j ? s.isLoading ? /* @__PURE__ */ t(K, { rows: 5 }) : s.isError ? /* @__PURE__ */ t(k, { children: "The list could not be loaded. Try again in a moment." }) : f.length === 0 ? /* @__PURE__ */ t(k, { children: l ? "This app made no tool calls in the last 14 days." : "Your agents made no tool calls in the last 14 days." }) : /* @__PURE__ */ a("div", { className: "-mx-1 overflow-x-auto", children: [
|
|
480
|
+
/* @__PURE__ */ a("table", { className: "w-full min-w-[640px] text-left text-[12px]", children: [
|
|
481
|
+
/* @__PURE__ */ t("thead", { children: /* @__PURE__ */ a("tr", { className: "border-b border-slate-200 text-[11px] font-medium text-slate-500 dark:border-border dark:text-slate-400", children: [
|
|
433
482
|
/* @__PURE__ */ t("th", { className: "w-5" }),
|
|
434
483
|
/* @__PURE__ */ t("th", { className: "py-1.5 pr-3 font-medium", children: "When" }),
|
|
435
484
|
/* @__PURE__ */ t("th", { className: "py-1.5 pr-3 font-medium", children: "App" }),
|
|
@@ -438,20 +487,20 @@ function De({ className: e }) {
|
|
|
438
487
|
/* @__PURE__ */ t("th", { className: "py-1.5 pr-3 font-medium", children: "Result" }),
|
|
439
488
|
/* @__PURE__ */ t("th", { className: "py-1.5 pr-1 text-right font-medium", children: "Answer size" })
|
|
440
489
|
] }) }),
|
|
441
|
-
/* @__PURE__ */ t("tbody", { children:
|
|
442
|
-
var
|
|
490
|
+
/* @__PURE__ */ t("tbody", { children: f.map((n) => {
|
|
491
|
+
var c;
|
|
443
492
|
return /* @__PURE__ */ t(
|
|
444
|
-
|
|
493
|
+
Ne,
|
|
445
494
|
{
|
|
446
|
-
call:
|
|
447
|
-
onUndo: (
|
|
448
|
-
undoingId: o.isPending ? ((
|
|
495
|
+
call: n,
|
|
496
|
+
onUndo: (W) => o.mutate(W),
|
|
497
|
+
undoingId: o.isPending ? ((c = o.variables) == null ? void 0 : c.activity_id) ?? null : null
|
|
449
498
|
},
|
|
450
|
-
|
|
499
|
+
n.id
|
|
451
500
|
);
|
|
452
501
|
}) })
|
|
453
502
|
] }),
|
|
454
|
-
s.hasNextPage && /* @__PURE__ */
|
|
503
|
+
s.hasNextPage && /* @__PURE__ */ a(
|
|
455
504
|
"button",
|
|
456
505
|
{
|
|
457
506
|
type: "button",
|
|
@@ -459,21 +508,21 @@ function De({ className: e }) {
|
|
|
459
508
|
disabled: s.isFetchingNextPage,
|
|
460
509
|
className: "mt-3 inline-flex h-7 items-center gap-1.5 rounded-md border border-slate-200 px-3 text-[12px] font-medium text-slate-700 transition-colors hover:bg-muted disabled:opacity-40 dark:border-border dark:text-slate-200",
|
|
461
510
|
children: [
|
|
462
|
-
s.isFetchingNextPage && /* @__PURE__ */ t(
|
|
511
|
+
s.isFetchingNextPage && /* @__PURE__ */ t(w, { className: "h-3.5 w-3.5 animate-spin" }),
|
|
463
512
|
"Show older calls"
|
|
464
513
|
]
|
|
465
514
|
}
|
|
466
515
|
)
|
|
467
|
-
] }) : /* @__PURE__ */ t(
|
|
516
|
+
] }) : /* @__PURE__ */ t(k, { children: "Tool calls are not recorded on this instance yet — it needs the latest update." })
|
|
468
517
|
}
|
|
469
518
|
) })
|
|
470
519
|
] });
|
|
471
520
|
}
|
|
472
521
|
export {
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
522
|
+
Ae as AgentsPanel,
|
|
523
|
+
xe as CallFigures,
|
|
524
|
+
he as CallsSparkline,
|
|
525
|
+
fe as IdleNote,
|
|
526
|
+
be as KindPill,
|
|
478
527
|
T as mcpConnectionsKey
|
|
479
528
|
};
|