@agent-native/core 0.120.1 → 0.120.2
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/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +9 -0
- package/corpus/core/docs/content/extensions.mdx +23 -4
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/agent/production-agent.ts +4 -0
- package/corpus/core/src/agent/run-manager.ts +36 -10
- package/corpus/core/src/agent/types.ts +2 -0
- package/corpus/core/src/client/extensions/ExtensionsListPage.tsx +16 -3
- package/corpus/core/src/client/settings/ExtensionsSettingsContent.tsx +24 -0
- package/corpus/core/src/client/settings/SettingsPanel.tsx +10 -0
- package/corpus/core/src/deploy/build.ts +3 -0
- package/corpus/core/src/server/analytics.ts +154 -25
- package/corpus/core/src/templates/chat/app/components/layout/Sidebar.tsx +35 -6
- package/corpus/core/src/templates/chat/app/routes/extensions._index.tsx +2 -2
- package/corpus/core/src/templates/chat/netlify.toml +1 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +16 -0
- package/corpus/core/src/vite/client.ts +6 -0
- package/corpus/templates/analytics/.agents/skills/adhoc-analysis/SKILL.md +27 -43
- package/corpus/templates/analytics/.agents/skills/dashboard-management/SKILL.md +19 -8
- package/corpus/templates/analytics/.agents/skills/data-querying/SKILL.md +2 -2
- package/corpus/templates/analytics/AGENTS.md +20 -8
- package/corpus/templates/analytics/actions/get-explorer-dashboard.ts +3 -0
- package/corpus/templates/analytics/actions/list-dashboard-usage-stats.ts +140 -46
- package/corpus/templates/analytics/actions/migrate-analytics-artifacts.ts +48 -0
- package/corpus/templates/analytics/actions/save-analysis.ts +2 -3
- package/corpus/templates/analytics/actions/view-screen.ts +1 -1
- package/corpus/templates/analytics/app/components/dashboard/DashboardMetadata.tsx +77 -0
- package/corpus/templates/analytics/app/components/dashboard/DashboardPanelSkeleton.tsx +7 -1
- package/corpus/templates/analytics/app/components/layout/NewDashboardDialog.tsx +1 -0
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +103 -502
- package/corpus/templates/analytics/app/global.css +30 -0
- package/corpus/templates/analytics/app/hooks/use-navigation-state.ts +2 -2
- package/corpus/templates/analytics/app/i18n-data.ts +80 -0
- package/corpus/templates/analytics/app/pages/Agents.tsx +49 -2
- package/corpus/templates/analytics/app/pages/adhoc/explorer-dashboard/index.tsx +54 -11
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/SqlChartCard.tsx +3 -53
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +23 -25
- package/corpus/templates/analytics/app/pages/analyses/AnalysisDetail.tsx +2 -2
- package/corpus/templates/analytics/app/routes/analyses._index.tsx +3 -2
- package/corpus/templates/analytics/app/routes/extensions._index.tsx +2 -2
- package/corpus/templates/analytics/changelog/2026-07-23-analytics-now-groups-saved-analyses-and-embedded-extensions-.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-23-dashboard-menus-show-who-created-and-last-updated-each-dashb.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-23-dashboard-usage-now-loads-reliably-for-organizations-with-ma.md +6 -0
- package/corpus/templates/analytics/changelog/2026-07-23-long-dashboard-building-requests-now-continue-without-stoppi.md +6 -0
- package/corpus/templates/analytics/netlify.toml +4 -0
- package/corpus/templates/analytics/server/db/schema.ts +4 -0
- package/corpus/templates/analytics/server/lib/agent-chat-plan-mode.ts +0 -1
- package/corpus/templates/analytics/server/lib/agent-readable-resource-context.ts +1 -0
- package/corpus/templates/analytics/server/lib/migrate-analytics-artifacts.ts +1062 -0
- package/corpus/templates/analytics/server/plugins/agent-chat.ts +6 -52
- package/corpus/templates/analytics/server/plugins/core-routes.ts +1 -1
- package/corpus/templates/analytics/server/plugins/db.ts +10 -0
- package/corpus/templates/assets/actions/generate-image-batch.ts +36 -1
- package/corpus/templates/assets/actions/generate-image.ts +28 -1
- package/corpus/templates/assets/app/components/layout/Sidebar.tsx +46 -8
- package/corpus/templates/assets/app/routes/extensions._index.tsx +2 -2
- package/corpus/templates/assets/changelog/2026-07-23-assets-image-generation-now-recovers-after-a-completed-tool-.md +6 -0
- package/corpus/templates/assets/netlify.toml +1 -0
- package/corpus/templates/brain/app/components/layout/Sidebar.tsx +38 -8
- package/corpus/templates/brain/app/routes/extensions._index.tsx +2 -2
- package/corpus/templates/brain/netlify.toml +1 -0
- package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +43 -5
- package/corpus/templates/calendar/app/routes/_app.extensions._index.tsx +2 -16
- package/corpus/templates/calendar/netlify.toml +1 -0
- package/corpus/templates/chat/app/components/layout/Sidebar.tsx +35 -6
- package/corpus/templates/chat/app/routes/extensions._index.tsx +2 -2
- package/corpus/templates/chat/netlify.toml +1 -0
- package/corpus/templates/clips/app/components/library/library-layout.tsx +52 -6
- package/corpus/templates/clips/app/routes/_app.extensions._index.tsx +2 -16
- package/corpus/templates/clips/changelog/2026-07-23-agent-settings-are-clearly-labeled-manage-agent-in-the-sideb.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-23-meeting-recording-meters-and-dismissed-prompts.md +6 -0
- package/corpus/templates/clips/desktop/src/hooks/useMicMeter.ts +1 -1
- package/corpus/templates/clips/desktop/src/lib/meeting-notification-dismissal.ts +2 -0
- package/corpus/templates/clips/desktop/src/lib/voice-dictation.ts +1 -3
- package/corpus/templates/clips/desktop/src/overlays/live-audio-bars.tsx +86 -0
- package/corpus/templates/clips/desktop/src/overlays/meeting-notification.tsx +24 -0
- package/corpus/templates/clips/desktop/src/overlays/recording-pill.tsx +5 -69
- package/corpus/templates/clips/desktop/src/styles.css +35 -3
- package/corpus/templates/clips/desktop/src-tauri/src/adhoc_meetings_watcher.rs +13 -44
- package/corpus/templates/clips/desktop/src-tauri/src/notifications.rs +119 -17
- package/corpus/templates/clips/netlify.toml +1 -0
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +3 -7
- package/corpus/templates/content/app/routes/_app.extensions._index.tsx +2 -2
- package/corpus/templates/content/changelog/2026-07-23-agent-settings-are-clearly-labeled-manage-agent-in-the-sideb.md +6 -0
- package/corpus/templates/content/netlify.toml +1 -0
- package/corpus/templates/design/app/components/layout/Sidebar.tsx +55 -17
- package/corpus/templates/design/app/routes/extensions._index.tsx +2 -2
- package/corpus/templates/design/changelog/2026-07-23-agent-settings-are-clearly-labeled-manage-agent-in-the-sideb.md +6 -0
- package/corpus/templates/design/netlify.toml +1 -0
- package/corpus/templates/dispatch/app/dispatch-extensions.tsx +1 -1
- package/corpus/templates/dispatch/changelog/2026-07-23-agent-settings-are-clearly-labeled-manage-agent-in-the-sideb.md +6 -0
- package/corpus/templates/dispatch/netlify.toml +1 -0
- package/corpus/templates/forms/app/components/layout/Sidebar.tsx +41 -45
- package/corpus/templates/forms/app/routes/_app.extensions._index.tsx +2 -2
- package/corpus/templates/forms/changelog/2026-07-23-agent-settings-are-clearly-labeled-manage-agent-in-the-sideb.md +6 -0
- package/corpus/templates/forms/netlify.toml +1 -0
- package/corpus/templates/macros/app/components/layout/AppLayout.tsx +36 -5
- package/corpus/templates/macros/app/routes/extensions._index.tsx +2 -2
- package/corpus/templates/macros/netlify.toml +1 -0
- package/corpus/templates/mail/app/components/layout/AppLayout.tsx +0 -9
- package/corpus/templates/mail/app/routes/extensions._index.tsx +2 -2
- package/corpus/templates/mail/netlify.toml +1 -0
- package/corpus/templates/plan/app/components/layout/Sidebar.tsx +38 -5
- package/corpus/templates/plan/app/routes/extensions._index.tsx +2 -2
- package/corpus/templates/plan/netlify.toml +1 -0
- package/corpus/templates/slides/app/components/layout/Sidebar.tsx +47 -4
- package/corpus/templates/slides/app/routes/extensions._index.tsx +2 -2
- package/corpus/templates/slides/netlify.toml +1 -0
- package/corpus/templates/tasks/app/components/layout/Sidebar.tsx +37 -6
- package/corpus/templates/tasks/app/routes/extensions._index.tsx +2 -2
- package/corpus/templates/tasks/app/routes/settings.tsx +31 -0
- package/corpus/templates/tasks/netlify.toml +1 -0
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +4 -0
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/agent/run-manager.d.ts +9 -0
- package/dist/agent/run-manager.d.ts.map +1 -1
- package/dist/agent/run-manager.js +25 -10
- package/dist/agent/run-manager.js.map +1 -1
- package/dist/agent/types.d.ts +2 -2
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/client/extensions/ExtensionsListPage.d.ts +5 -1
- package/dist/client/extensions/ExtensionsListPage.d.ts.map +1 -1
- package/dist/client/extensions/ExtensionsListPage.js +5 -3
- package/dist/client/extensions/ExtensionsListPage.js.map +1 -1
- package/dist/client/settings/ExtensionsSettingsContent.d.ts +2 -0
- package/dist/client/settings/ExtensionsSettingsContent.d.ts.map +1 -0
- package/dist/client/settings/ExtensionsSettingsContent.js +10 -0
- package/dist/client/settings/ExtensionsSettingsContent.js.map +1 -0
- package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
- package/dist/client/settings/SettingsPanel.js +10 -1
- package/dist/client/settings/SettingsPanel.js.map +1 -1
- package/dist/collab/awareness.d.ts +2 -2
- package/dist/collab/awareness.d.ts.map +1 -1
- package/dist/deploy/build.js +1 -0
- package/dist/deploy/build.js.map +1 -1
- package/dist/observability/routes.d.ts +3 -3
- package/dist/progress/routes.d.ts +1 -1
- package/dist/provider-api/actions/custom-provider-registration.d.ts +7 -7
- package/dist/provider-api/actions/provider-api.d.ts +11 -11
- package/dist/provider-api/corpus-jobs.d.ts +2 -2
- package/dist/server/analytics.d.ts +9 -4
- package/dist/server/analytics.d.ts.map +1 -1
- package/dist/server/analytics.js +111 -22
- package/dist/server/analytics.js.map +1 -1
- package/dist/templates/chat/app/components/layout/Sidebar.tsx +35 -6
- package/dist/templates/chat/app/routes/extensions._index.tsx +2 -2
- package/dist/templates/chat/netlify.toml +1 -0
- package/dist/templates/workspace-core/.agents/skills/extensions/SKILL.md +16 -0
- package/dist/vite/client.d.ts.map +1 -1
- package/dist/vite/client.js +2 -0
- package/dist/vite/client.js.map +1 -1
- package/docs/content/extensions.mdx +23 -4
- package/package.json +1 -1
- package/src/agent/production-agent.ts +4 -0
- package/src/agent/run-manager.ts +36 -10
- package/src/agent/types.ts +2 -0
- package/src/client/extensions/ExtensionsListPage.tsx +16 -3
- package/src/client/settings/ExtensionsSettingsContent.tsx +24 -0
- package/src/client/settings/SettingsPanel.tsx +10 -0
- package/src/deploy/build.ts +3 -0
- package/src/server/analytics.ts +154 -25
- package/src/templates/chat/app/components/layout/Sidebar.tsx +35 -6
- package/src/templates/chat/app/routes/extensions._index.tsx +2 -2
- package/src/templates/chat/netlify.toml +1 -0
- package/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +16 -0
- package/src/vite/client.ts +6 -0
- package/corpus/templates/analytics/app/components/layout/NewAnalysisDialog.tsx +0 -165
- package/corpus/templates/analytics/app/pages/analyses/AnalysesList.tsx +0 -175
|
@@ -33,7 +33,6 @@ import {
|
|
|
33
33
|
} from "@dnd-kit/core";
|
|
34
34
|
import {
|
|
35
35
|
IconArchive,
|
|
36
|
-
IconClock,
|
|
37
36
|
IconDotsVertical,
|
|
38
37
|
IconEye,
|
|
39
38
|
IconEyeOff,
|
|
@@ -45,7 +44,6 @@ import {
|
|
|
45
44
|
IconPencil,
|
|
46
45
|
IconPlus,
|
|
47
46
|
IconTrash,
|
|
48
|
-
IconUser,
|
|
49
47
|
IconUsersGroup,
|
|
50
48
|
IconWorld,
|
|
51
49
|
IconX,
|
|
@@ -64,6 +62,7 @@ import { useSearchParams, useParams, useNavigate } from "react-router";
|
|
|
64
62
|
import { toast } from "sonner";
|
|
65
63
|
|
|
66
64
|
import { DashboardHistoryPanel } from "@/components/dashboard/DashboardHistoryPanel";
|
|
65
|
+
import { DashboardMetadata } from "@/components/dashboard/DashboardMetadata";
|
|
67
66
|
import {
|
|
68
67
|
DashboardTitleSkeleton,
|
|
69
68
|
useSetPageTitle,
|
|
@@ -386,7 +385,9 @@ type FetchedDashboard = {
|
|
|
386
385
|
hiddenBy: string | null;
|
|
387
386
|
visibility: "private" | "org" | "public";
|
|
388
387
|
ownerEmail: string | null;
|
|
388
|
+
createdAt: string | null;
|
|
389
389
|
updatedAt: string | null;
|
|
390
|
+
updatedBy: string | null;
|
|
390
391
|
} & ResourceAccess;
|
|
391
392
|
|
|
392
393
|
function parseDashboardDemoMetadata(
|
|
@@ -454,7 +455,9 @@ async function fetchDashboard(id: string): Promise<FetchedDashboard | null> {
|
|
|
454
455
|
? data.visibility
|
|
455
456
|
: "private",
|
|
456
457
|
ownerEmail: typeof data.ownerEmail === "string" ? data.ownerEmail : null,
|
|
458
|
+
createdAt: typeof data.createdAt === "string" ? data.createdAt : null,
|
|
457
459
|
updatedAt: typeof data.updatedAt === "string" ? data.updatedAt : null,
|
|
460
|
+
updatedBy: typeof data.updatedBy === "string" ? data.updatedBy : null,
|
|
458
461
|
role: typeof data.role === "string" ? data.role : undefined,
|
|
459
462
|
canEdit: typeof data.canEdit === "boolean" ? data.canEdit : undefined,
|
|
460
463
|
canManage:
|
|
@@ -503,9 +506,15 @@ export default function SqlDashboardPage() {
|
|
|
503
506
|
"private" | "org" | "public" | null
|
|
504
507
|
>(null);
|
|
505
508
|
const [dashboardOwner, setDashboardOwner] = useState<string | null>(null);
|
|
509
|
+
const [dashboardCreatedAt, setDashboardCreatedAt] = useState<string | null>(
|
|
510
|
+
null,
|
|
511
|
+
);
|
|
506
512
|
const [dashboardUpdatedAt, setDashboardUpdatedAt] = useState<string | null>(
|
|
507
513
|
null,
|
|
508
514
|
);
|
|
515
|
+
const [dashboardUpdatedBy, setDashboardUpdatedBy] = useState<string | null>(
|
|
516
|
+
null,
|
|
517
|
+
);
|
|
509
518
|
const [resourceAccess, setResourceAccess] = useState<ResourceAccess | null>(
|
|
510
519
|
null,
|
|
511
520
|
);
|
|
@@ -723,7 +732,9 @@ export default function SqlDashboardPage() {
|
|
|
723
732
|
setHiddenAt(null);
|
|
724
733
|
setDashboardVisibility(null);
|
|
725
734
|
setDashboardOwner(null);
|
|
735
|
+
setDashboardCreatedAt(null);
|
|
726
736
|
setDashboardUpdatedAt(null);
|
|
737
|
+
setDashboardUpdatedBy(null);
|
|
727
738
|
setResourceAccess(null);
|
|
728
739
|
if (!dashboardId) setLoaded(true);
|
|
729
740
|
}, [dashboardId]);
|
|
@@ -756,7 +767,9 @@ export default function SqlDashboardPage() {
|
|
|
756
767
|
setHiddenAt(fetched?.hiddenAt ?? null);
|
|
757
768
|
setDashboardVisibility(fetchedVisibility);
|
|
758
769
|
setDashboardOwner(fetched?.ownerEmail ?? null);
|
|
770
|
+
setDashboardCreatedAt(fetched?.createdAt ?? null);
|
|
759
771
|
setDashboardUpdatedAt(fetched?.updatedAt ?? null);
|
|
772
|
+
setDashboardUpdatedBy(fetched?.updatedBy ?? null);
|
|
760
773
|
setResourceAccess(
|
|
761
774
|
fetched
|
|
762
775
|
? {
|
|
@@ -1502,30 +1515,15 @@ export default function SqlDashboardPage() {
|
|
|
1502
1515
|
</TooltipTrigger>
|
|
1503
1516
|
<TooltipContent>{t("sqlDashboard.details")}</TooltipContent>
|
|
1504
1517
|
</Tooltip>
|
|
1505
|
-
<DropdownMenuContent align="end" className="w-
|
|
1518
|
+
<DropdownMenuContent align="end" className="w-72">
|
|
1506
1519
|
<DropdownMenuLabel className="font-normal">
|
|
1507
|
-
<
|
|
1508
|
-
{
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
{
|
|
1515
|
-
year: "numeric",
|
|
1516
|
-
month: "short",
|
|
1517
|
-
day: "numeric",
|
|
1518
|
-
},
|
|
1519
|
-
),
|
|
1520
|
-
})}
|
|
1521
|
-
</span>
|
|
1522
|
-
)}
|
|
1523
|
-
{dashboardOwner && (
|
|
1524
|
-
<span className="flex items-center gap-1.5">
|
|
1525
|
-
<IconUser className="h-3 w-3" />
|
|
1526
|
-
{dashboardOwner.split("@")[0]}
|
|
1527
|
-
</span>
|
|
1528
|
-
)}
|
|
1520
|
+
<DashboardMetadata
|
|
1521
|
+
createdAt={dashboardCreatedAt}
|
|
1522
|
+
createdBy={dashboardOwner}
|
|
1523
|
+
updatedAt={dashboardUpdatedAt}
|
|
1524
|
+
updatedBy={dashboardUpdatedBy}
|
|
1525
|
+
/>
|
|
1526
|
+
<div className="mt-2 flex flex-col gap-1.5 text-xs text-muted-foreground">
|
|
1529
1527
|
{dashboardVisibility ? (
|
|
1530
1528
|
<span className="flex items-center gap-1.5">
|
|
1531
1529
|
{dashboardVisibility === "public" ? (
|
|
@@ -151,12 +151,12 @@ export default function AnalysisDetail() {
|
|
|
151
151
|
send({
|
|
152
152
|
message: t("analyses.rerunMessage", { name: analysis.name }),
|
|
153
153
|
context:
|
|
154
|
-
`This is a re-run of a saved ad-hoc analysis. REAL_DATA_REQUIRED: run at least one real data-source query action before saving or answering; data-source-status
|
|
154
|
+
`This is a re-run of a legacy saved ad-hoc analysis. Treat the refreshed result as a dashboard artifact: REAL_DATA_REQUIRED: run at least one real data-source query action before saving or answering; data-source-status and generate-chart do not count as data queries. If no source can answer, report the exact unavailable/error result instead of saving guessed results. If the report needs bespoke UI, create an extension and immediately embed it in a dashboard panel with config.extensionId. Only call save-analysis when the user explicitly asks to preserve this legacy analysis record.\n\n` +
|
|
155
155
|
`Use these instructions to reproduce it:\n\n` +
|
|
156
156
|
`Analysis ID: ${analysis.id}\n` +
|
|
157
157
|
`Original question: ${analysis.question}\n\n` +
|
|
158
158
|
`Instructions:\n${analysis.instructions}\n\n` +
|
|
159
|
-
`After gathering the data, call save-analysis with id="${analysis.id}"
|
|
159
|
+
`After gathering the data, call update-dashboard with a new dashboardId to save the refreshed artifact. If the user explicitly asked to update this legacy record instead, call save-analysis with id="${analysis.id}".`,
|
|
160
160
|
submit: true,
|
|
161
161
|
});
|
|
162
162
|
};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { Navigate } from "react-router";
|
|
2
|
+
|
|
1
3
|
import { messagesByLocale } from "@/i18n-data";
|
|
2
|
-
import AnalysesList from "@/pages/analyses/AnalysesList";
|
|
3
4
|
|
|
4
5
|
export function meta() {
|
|
5
6
|
return [{ title: messagesByLocale["en-US"].routeTitles.analyses }];
|
|
6
7
|
}
|
|
7
8
|
|
|
8
9
|
export default function AnalysesRoute() {
|
|
9
|
-
return <
|
|
10
|
+
return <Navigate to="/dashboards" replace />;
|
|
10
11
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Navigate } from "react-router";
|
|
2
2
|
|
|
3
3
|
import { messagesByLocale } from "@/i18n-data";
|
|
4
4
|
|
|
@@ -7,5 +7,5 @@ export function meta() {
|
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
export default function ExtensionsRoute() {
|
|
10
|
-
return <
|
|
10
|
+
return <Navigate to="/settings#extensions" replace />;
|
|
11
11
|
}
|
|
@@ -10,9 +10,13 @@ functions = "templates/analytics/.netlify/functions-internal"
|
|
|
10
10
|
|
|
11
11
|
[build.environment]
|
|
12
12
|
GA_MEASUREMENT_ID = "G-ESF7FYXGN9"
|
|
13
|
+
GTM_CONTAINER_ID = "GTM-N3WSTXZ"
|
|
13
14
|
NITRO_PRESET = "netlify"
|
|
14
15
|
NPM_CONFIG_PRODUCTION = "false"
|
|
15
16
|
AGENT_PROD_CODE_EXECUTION = "sandboxed"
|
|
17
|
+
# Analytics dashboard creation can span multiple model/tool rounds; keep those
|
|
18
|
+
# turns on the durable background worker instead of the short foreground wall.
|
|
19
|
+
AGENT_CHAT_DURABLE_BACKGROUND = "true"
|
|
16
20
|
|
|
17
21
|
# A2A delegation calls run a full agent loop (LLM + tool calls + DB queries).
|
|
18
22
|
# Hosted agent chat uses a soft timeout before this function timeout so the
|
|
@@ -15,7 +15,6 @@ export const INITIAL_TOOL_NAMES = [
|
|
|
15
15
|
"list-session-recordings",
|
|
16
16
|
"list-analyses",
|
|
17
17
|
"get-analysis",
|
|
18
|
-
"save-analysis",
|
|
19
18
|
// Dashboard/extension INSPECTION stays on the initial surface so a
|
|
20
19
|
// template-clone request can resolve and inspect the source on the first
|
|
21
20
|
// turn. The MUTATING writers (update-dashboard, mutate-dashboard,
|
|
@@ -105,6 +105,7 @@ export function buildDashboardAgentContext(
|
|
|
105
105
|
hiddenBy: dashboard.hiddenBy,
|
|
106
106
|
createdAt: dashboard.createdAt,
|
|
107
107
|
updatedAt: dashboard.updatedAt,
|
|
108
|
+
updatedBy: dashboard.updatedBy,
|
|
108
109
|
url: `/dashboards/${dashboard.id}`,
|
|
109
110
|
};
|
|
110
111
|
return options.includeConfig === false ? base : { ...base, ...config };
|