@slicemachine/manager 0.26.2 → 0.26.3-alpha.jp-fix-volumes-move-error.1
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/_node_modules/@amplitude/analytics-node/lib/esm/transports/http.cjs +6 -6
- package/dist/_node_modules/@amplitude/analytics-node/lib/esm/transports/http.js +4 -4
- package/dist/_node_modules/@amplitude/analytics-node/lib/esm/transports/http.js.map +1 -1
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/transport/http.cjs +4 -4
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/transport/http.cjs.map +1 -1
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/transport/http.js +4 -4
- package/dist/_node_modules/@amplitude/experiment-node-server/dist/src/transport/http.js.map +1 -1
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/constants.cjs +5 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/constants.cjs.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/constants.js +5 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/constants.js.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/debug-build.cjs +5 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/debug-build.cjs.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/debug-build.js +5 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/debug-build.js.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/eventProcessors.cjs +29 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/eventProcessors.cjs.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/eventProcessors.js +29 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/eventProcessors.js.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/exports.cjs +17 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/exports.cjs.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/exports.js +17 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/exports.js.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/hub.cjs +535 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/hub.cjs.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/hub.js +535 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/hub.js.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/scope.cjs +545 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/scope.cjs.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/scope.js +545 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/scope.js.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/session.cjs +109 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/session.cjs.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/session.js +109 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/session.js.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/tracing/dynamicSamplingContext.cjs +50 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/tracing/dynamicSamplingContext.cjs.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/tracing/dynamicSamplingContext.js +50 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/tracing/dynamicSamplingContext.js.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/utils/applyScopeDataToEvent.cjs +85 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/utils/applyScopeDataToEvent.cjs.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/utils/applyScopeDataToEvent.js +85 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/utils/applyScopeDataToEvent.js.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/utils/getRootSpan.cjs +7 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/utils/getRootSpan.cjs.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/utils/getRootSpan.js +7 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/utils/getRootSpan.js.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/utils/prepareEvent.cjs +35 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/utils/prepareEvent.cjs.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/utils/prepareEvent.js +35 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/utils/prepareEvent.js.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/utils/spanUtils.cjs +39 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/utils/spanUtils.cjs.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/utils/spanUtils.js +39 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/utils/spanUtils.js.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/version.cjs +5 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/version.cjs.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/version.js +5 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/core/esm/version.js.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/debug-build.cjs +5 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/debug-build.cjs.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/debug-build.js +5 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/debug-build.js.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/is.cjs +15 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/is.cjs.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/is.js +15 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/is.js.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/logger.cjs +69 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/logger.cjs.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/logger.js +69 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/logger.js.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/misc.cjs +34 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/misc.cjs.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/misc.js +34 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/misc.js.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/object.cjs +49 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/object.cjs.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/object.js +49 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/object.js.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/syncpromise.cjs +142 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/syncpromise.cjs.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/syncpromise.js +142 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/syncpromise.js.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/time.cjs +45 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/time.cjs.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/time.js +45 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/time.js.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/worldwide.cjs +18 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/worldwide.cjs.map +1 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/worldwide.js +18 -0
- package/dist/_node_modules/@sentry/node/_node_modules/@sentry/utils/esm/worldwide.js.map +1 -0
- package/dist/lib/checkIsSentryEnabled.d.ts +9 -0
- package/dist/lib/sentryErrorHandlers.cjs +10 -0
- package/dist/lib/sentryErrorHandlers.cjs.map +1 -0
- package/dist/lib/sentryErrorHandlers.d.ts +1 -0
- package/dist/lib/sentryErrorHandlers.js +10 -0
- package/dist/lib/sentryErrorHandlers.js.map +1 -0
- package/dist/managers/customTypes/CustomTypesManager.cjs +25 -6
- package/dist/managers/customTypes/CustomTypesManager.cjs.map +1 -1
- package/dist/managers/customTypes/CustomTypesManager.js +26 -7
- package/dist/managers/customTypes/CustomTypesManager.js.map +1 -1
- package/dist/managers/telemetry/types.cjs +8 -0
- package/dist/managers/telemetry/types.cjs.map +1 -1
- package/dist/managers/telemetry/types.d.ts +19 -1
- package/dist/managers/telemetry/types.js +8 -0
- package/dist/managers/telemetry/types.js.map +1 -1
- package/package.json +4 -3
- package/src/lib/checkIsSentryEnabled.ts +12 -0
- package/src/lib/sentryErrorHandlers.ts +13 -0
- package/src/managers/customTypes/CustomTypesManager.ts +46 -10
- package/src/managers/telemetry/types.ts +42 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@slicemachine/manager",
|
|
3
|
-
"version": "0.26.
|
|
3
|
+
"version": "0.26.3-alpha.jp-fix-volumes-move-error.1",
|
|
4
4
|
"description": "Manage all aspects of a Slice Machine project.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"@prismicio/mocks": "2.14.0",
|
|
72
72
|
"@prismicio/types-internal": "3.11.2",
|
|
73
73
|
"@segment/analytics-node": "^2.1.2",
|
|
74
|
-
"@slicemachine/plugin-kit": "0.4.
|
|
74
|
+
"@slicemachine/plugin-kit": "0.4.88-alpha.jp-fix-volumes-move-error.1",
|
|
75
75
|
"cookie": "^1.0.1",
|
|
76
76
|
"cors": "^2.8.5",
|
|
77
77
|
"execa": "^7.1.1",
|
|
@@ -131,5 +131,6 @@
|
|
|
131
131
|
},
|
|
132
132
|
"publishConfig": {
|
|
133
133
|
"access": "public"
|
|
134
|
-
}
|
|
134
|
+
},
|
|
135
|
+
"stableVersion": "0.26.2"
|
|
135
136
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks whether or not Sentry is enabled.
|
|
3
|
+
*
|
|
4
|
+
* Sentry is enabled automatically in production but can be disabled by setting
|
|
5
|
+
* `VITE_ENABLE_SENTRY` to `false`.
|
|
6
|
+
*
|
|
7
|
+
* @returns Whether or not Sentry is enabled.
|
|
8
|
+
*/
|
|
9
|
+
export const checkIsSentryEnabled = (): boolean =>
|
|
10
|
+
import.meta.env.VITE_ENABLE_SENTRY === undefined
|
|
11
|
+
? import.meta.env.PROD
|
|
12
|
+
: import.meta.env.VITE_ENABLE_SENTRY === "true";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as Sentry from "@sentry/node";
|
|
2
|
+
|
|
3
|
+
import { checkIsSentryEnabled } from "./checkIsSentryEnabled";
|
|
4
|
+
|
|
5
|
+
export function trackSentryError(error: unknown): void {
|
|
6
|
+
if (!checkIsSentryEnabled()) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
Sentry.captureException(error, {
|
|
11
|
+
...(error instanceof Error ? { extra: { cause: error.cause } } : {}),
|
|
12
|
+
});
|
|
13
|
+
}
|
|
@@ -42,13 +42,14 @@ import { randomUUID } from "node:crypto";
|
|
|
42
42
|
import { join as joinPath, relative as relativePath } from "node:path";
|
|
43
43
|
import {
|
|
44
44
|
mkdtemp,
|
|
45
|
-
rename,
|
|
46
45
|
rm,
|
|
47
46
|
writeFile,
|
|
48
47
|
readFile,
|
|
49
48
|
readdir,
|
|
49
|
+
copyFile,
|
|
50
50
|
} from "node:fs/promises";
|
|
51
51
|
import { query as queryClaude } from "@anthropic-ai/claude-agent-sdk";
|
|
52
|
+
import { trackSentryError } from "../../lib/sentryErrorHandlers";
|
|
52
53
|
|
|
53
54
|
type SliceMachineManagerReadCustomTypeLibraryReturnType = {
|
|
54
55
|
ids: string[];
|
|
@@ -595,6 +596,8 @@ export class CustomTypesManager extends BaseManager {
|
|
|
595
596
|
.parse(exp.payload);
|
|
596
597
|
|
|
597
598
|
let tmpDir: string | undefined;
|
|
599
|
+
const claudeErrors: string[] = [];
|
|
600
|
+
|
|
598
601
|
try {
|
|
599
602
|
const config = await this.project.getSliceMachineConfig();
|
|
600
603
|
|
|
@@ -818,9 +821,13 @@ FINAL REMINDERS:
|
|
|
818
821
|
prompt,
|
|
819
822
|
options: {
|
|
820
823
|
cwd,
|
|
821
|
-
stderr: (
|
|
822
|
-
if (!
|
|
823
|
-
|
|
824
|
+
stderr: (error) => {
|
|
825
|
+
if (!error.startsWith("Spawning Claude Code process")) {
|
|
826
|
+
claudeErrors.push(error);
|
|
827
|
+
console.error(
|
|
828
|
+
`inferSlice - stderr for request ${requestId}:`,
|
|
829
|
+
error,
|
|
830
|
+
);
|
|
824
831
|
}
|
|
825
832
|
},
|
|
826
833
|
model: "claude-haiku-4-5",
|
|
@@ -873,10 +880,21 @@ FINAL REMINDERS:
|
|
|
873
880
|
for await (const query of queries) {
|
|
874
881
|
switch (query.type) {
|
|
875
882
|
case "result":
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
883
|
+
switch (query.subtype) {
|
|
884
|
+
case "success":
|
|
885
|
+
newSliceAbsPath = query.result.match(
|
|
886
|
+
/<new_slice_path>(.*)<\/new_slice_path>/s,
|
|
887
|
+
)?.[1];
|
|
888
|
+
break;
|
|
889
|
+
case "error_during_execution":
|
|
890
|
+
case "error_max_budget_usd":
|
|
891
|
+
case "error_max_turns":
|
|
892
|
+
claudeErrors.push(...query.errors);
|
|
893
|
+
console.error(
|
|
894
|
+
`inferSlice - result query error for request ${requestId}}:`,
|
|
895
|
+
query.errors,
|
|
896
|
+
);
|
|
897
|
+
break;
|
|
880
898
|
}
|
|
881
899
|
break;
|
|
882
900
|
}
|
|
@@ -897,17 +915,35 @@ FINAL REMINDERS:
|
|
|
897
915
|
);
|
|
898
916
|
}
|
|
899
917
|
|
|
900
|
-
//
|
|
901
|
-
await
|
|
918
|
+
// copy instead of moving because the file might be in a different volume
|
|
919
|
+
await copyFile(
|
|
902
920
|
tmpImageAbsPath,
|
|
903
921
|
joinPath(newSliceAbsPath, "screenshot-default.png"),
|
|
904
922
|
);
|
|
905
923
|
|
|
924
|
+
try {
|
|
925
|
+
await rm(tmpImageAbsPath);
|
|
926
|
+
} catch (error) {
|
|
927
|
+
console.warn(
|
|
928
|
+
`inferSlice - Failed to delete temporary slice screenshot at ${tmpImageAbsPath}`,
|
|
929
|
+
error,
|
|
930
|
+
);
|
|
931
|
+
}
|
|
932
|
+
|
|
906
933
|
return InferSliceResponse.parse({ slice: JSON.parse(model) });
|
|
907
934
|
} finally {
|
|
908
935
|
if (tmpDir && existsSync(tmpDir)) {
|
|
909
936
|
await rm(tmpDir, { recursive: true });
|
|
910
937
|
}
|
|
938
|
+
|
|
939
|
+
if (claudeErrors.length > 0) {
|
|
940
|
+
trackSentryError(
|
|
941
|
+
new Error(
|
|
942
|
+
`inferSlice - Claude encountered errors for request ${requestId}`,
|
|
943
|
+
{ cause: { errors: claudeErrors } },
|
|
944
|
+
),
|
|
945
|
+
);
|
|
946
|
+
}
|
|
911
947
|
}
|
|
912
948
|
} else {
|
|
913
949
|
const searchParams = new URLSearchParams({ repository });
|
|
@@ -45,6 +45,11 @@ export const SegmentEventType = {
|
|
|
45
45
|
sharedOnboarding_completed: "shared-onboarding:completed",
|
|
46
46
|
sharedOnboarding_tutorial: "shared-onboarding:follow-tutorial",
|
|
47
47
|
sliceGenerationFeedback: "slice-generation-feedback",
|
|
48
|
+
sliceGeneration_pastedFromFigma: "slice-generation:pasted-from-figma",
|
|
49
|
+
sliceGeneration_started: "slice-generation:started",
|
|
50
|
+
sliceGeneration_ended: "slice-generation:ended",
|
|
51
|
+
sliceGeneration_pluginInstallationClicked:
|
|
52
|
+
"slice-generation:plugin-installation-clicked",
|
|
48
53
|
navigation_documentationLinkClicked: "navigation:documentation-link-clicked",
|
|
49
54
|
sidebar_link_clicked: "sidebar:link-clicked",
|
|
50
55
|
mcp_promo_link_clicked: "mcp:promo-link-clicked",
|
|
@@ -106,6 +111,14 @@ export const HumanSegmentEventType = {
|
|
|
106
111
|
[SegmentEventType.sharedOnboarding_tutorial]:
|
|
107
112
|
"Prismic Onboarding Guide Follow Tutorial",
|
|
108
113
|
[SegmentEventType.sliceGenerationFeedback]: "Slice Generation Feedback",
|
|
114
|
+
[SegmentEventType.sliceGeneration_pastedFromFigma]:
|
|
115
|
+
"SliceMachine Shared Slice Generation - Pasted From Figma",
|
|
116
|
+
[SegmentEventType.sliceGeneration_started]:
|
|
117
|
+
"SliceMachine Shared Slice Generation - Started",
|
|
118
|
+
[SegmentEventType.sliceGeneration_ended]:
|
|
119
|
+
"SliceMachine Shared Slice Generation - Ended",
|
|
120
|
+
[SegmentEventType.sliceGeneration_pluginInstallationClicked]:
|
|
121
|
+
"SliceMachine Shared Slice Generation - Plugin Installation Clicked",
|
|
109
122
|
[SegmentEventType.navigation_documentationLinkClicked]:
|
|
110
123
|
"SliceMachine Documentation Link Clicked",
|
|
111
124
|
[SegmentEventType.sidebar_link_clicked]: "Sidebar Link Clicked",
|
|
@@ -428,6 +441,31 @@ type SliceGenerationFeedback = SegmentEvent<
|
|
|
428
441
|
}
|
|
429
442
|
>;
|
|
430
443
|
|
|
444
|
+
type SliceGenerationPastedFromFigma = SegmentEvent<
|
|
445
|
+
typeof SegmentEventType.sliceGeneration_pastedFromFigma,
|
|
446
|
+
{
|
|
447
|
+
source: "shortcut" | "button";
|
|
448
|
+
}
|
|
449
|
+
>;
|
|
450
|
+
|
|
451
|
+
type SliceGenerationStarted = SegmentEvent<
|
|
452
|
+
typeof SegmentEventType.sliceGeneration_started,
|
|
453
|
+
{
|
|
454
|
+
source: "figma" | "upload";
|
|
455
|
+
}
|
|
456
|
+
>;
|
|
457
|
+
|
|
458
|
+
type SliceGenerationEnded = SegmentEvent<
|
|
459
|
+
typeof SegmentEventType.sliceGeneration_ended,
|
|
460
|
+
{
|
|
461
|
+
error: boolean;
|
|
462
|
+
}
|
|
463
|
+
>;
|
|
464
|
+
|
|
465
|
+
type SliceGenerationPluginInstallationClicked = SegmentEvent<
|
|
466
|
+
typeof SegmentEventType.sliceGeneration_pluginInstallationClicked
|
|
467
|
+
>;
|
|
468
|
+
|
|
431
469
|
type NavigationDocumentationLinkClicked = SegmentEvent<
|
|
432
470
|
typeof SegmentEventType.navigation_documentationLinkClicked,
|
|
433
471
|
{
|
|
@@ -502,6 +540,10 @@ export type SegmentEvents =
|
|
|
502
540
|
| SliceMachinePostPushToastCtaClicked
|
|
503
541
|
| SliceMachineExperimentExposure
|
|
504
542
|
| SliceGenerationFeedback
|
|
543
|
+
| SliceGenerationPastedFromFigma
|
|
544
|
+
| SliceGenerationStarted
|
|
545
|
+
| SliceGenerationEnded
|
|
546
|
+
| SliceGenerationPluginInstallationClicked
|
|
505
547
|
| NavigationDocumentationLinkClicked
|
|
506
548
|
| SidebarLinkClicked
|
|
507
549
|
| McpPromoLinkClicked
|