@copilotkit/react-core 1.73.3 → 1.74.0

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.
@@ -1603,6 +1603,10 @@ function useRenderToolCall() {
1603
1603
  return renderToolCall;
1604
1604
  }
1605
1605
 
1606
+ //#endregion
1607
+ //#region package.json
1608
+ var version = "1.74.0";
1609
+
1606
1610
  //#endregion
1607
1611
  //#region src/v2/components/CopilotKitInspector.tsx
1608
1612
  const CopilotKitInspector = ({ core, openRequest, onVisibilityChange }) => {
@@ -1625,7 +1629,11 @@ const CopilotKitInspector = ({ core, openRequest, onVisibilityChange }) => {
1625
1629
  if (!mounted || !mountRef.current) return;
1626
1630
  mod.defineWebInspector?.();
1627
1631
  inspector = mountRef.current.ownerDocument.createElement(mod.WEB_INSPECTOR_TAG);
1628
- mod.configureWebInspectorElement(inspector, latestCoreRef.current);
1632
+ mod.configureWebInspectorElement(inspector, latestCoreRef.current, {
1633
+ development: process.env.NODE_ENV === "development",
1634
+ framework: "react",
1635
+ sdkVersion: version
1636
+ });
1629
1637
  inspector.addEventListener("cpk-inspector-visibility-change", handleVisibilityChange);
1630
1638
  mountRef.current.appendChild(inspector);
1631
1639
  inspectorRef.current = inspector;
@@ -3830,8 +3838,8 @@ function useRenderCustomMessages() {
3830
3838
  if (aHasAgent === (b.agentId !== void 0)) return 0;
3831
3839
  return aHasAgent ? -1 : 1;
3832
3840
  });
3841
+ if (!customMessageRenderers.length) return null;
3833
3842
  return function(params) {
3834
- if (!customMessageRenderers.length) return null;
3835
3843
  const { message, position } = params;
3836
3844
  const resolvedRunId = copilotkit.getRunIdForMessage(agentId, threadId, message.id) ?? copilotkit.getRunIdsForThread(agentId, threadId).slice(-1)[0];
3837
3845
  const runId = resolvedRunId ?? `missing-run-id:${message.id}`;
@@ -7102,6 +7110,32 @@ CopilotChatSuggestionView.displayName = "CopilotChatSuggestionView";
7102
7110
  */
7103
7111
  const ScrollElementContext = React.createContext(null);
7104
7112
 
7113
+ //#endregion
7114
+ //#region src/v2/components/chat/scroll-pinned-context.ts
7115
+ /**
7116
+ * True while the pin-to-bottom behaviour is actively following the bottom of
7117
+ * the thread — i.e. `use-stick-to-bottom` will animate the scroll position to
7118
+ * the bottom the next time the content grows.
7119
+ *
7120
+ * Only CopilotChatView's pin-to-bottom branch provides this. The other scroll
7121
+ * modes leave it `false`, which is correct: nothing else writes the scroll
7122
+ * position on its own, so no one is competing with the virtualizer.
7123
+ *
7124
+ * Why this exists: the virtualizer and `use-stick-to-bottom` both write
7125
+ * `scrollTop` on the same element. The virtualizer writes it to compensate
7126
+ * when a row above the viewport turns out taller than its estimate, so that
7127
+ * what the reader is looking at does not shift. That compensation is essential
7128
+ * while the reader is scrolled up — and pointless while pinned to the bottom,
7129
+ * because the pin is about to move the scroll position anyway. Worse than
7130
+ * pointless: the compensation changes the virtual container's height, the pin
7131
+ * reads that as content growth and animates, the animation brings unmeasured
7132
+ * rows into view, they measure, and the two keep shoving each other.
7133
+ *
7134
+ * Consumed by CopilotChatMessageView to stand the virtualizer down while the
7135
+ * pin owns the scroll position.
7136
+ */
7137
+ const ScrollPinnedContext = React.createContext(false);
7138
+
7105
7139
  //#endregion
7106
7140
  //#region src/v2/components/intelligence-indicator/IntelligenceIndicatorView.tsx
7107
7141
  /**
@@ -7567,6 +7601,7 @@ function deduplicateMessages(messages) {
7567
7601
  }
7568
7602
  const VIRTUALIZE_THRESHOLD = 50;
7569
7603
  function CopilotChatMessageView({ messages = [], assistantMessage, userMessage, reasoningMessage, cursor, intelligenceIndicator, isRunning = false, children, className, ...props }) {
7604
+ const isPinnedToBottom = useContext(ScrollPinnedContext);
7570
7605
  const renderCustomMessage = useRenderCustomMessages();
7571
7606
  const { renderActivityMessage } = useRenderActivityMessage();
7572
7607
  const { copilotkit } = useCopilotKit$1();
@@ -7639,18 +7674,52 @@ function CopilotChatMessageView({ messages = [], assistantMessage, userMessage,
7639
7674
  if (process.env.NODE_ENV !== "production" && scrollElementFromCtx && scrollElementFromCtx.clientHeight === 0) console.warn("[CopilotKit] Chat scroll container has clientHeight=0 — virtualization disabled. Ensure the chat is rendered in a visible container with a non-zero height.");
7640
7675
  }, [scrollElementFromCtx]);
7641
7676
  const shouldVirtualize = !!scrollElement && !children && deduplicatedMessages.length > VIRTUALIZE_THRESHOLD;
7677
+ const measuredRef = React.useRef({
7678
+ total: 0,
7679
+ sizes: /* @__PURE__ */ new Map()
7680
+ });
7681
+ const firstMessageId = deduplicatedMessages[0]?.id;
7682
+ const measuredThreadRef = React.useRef(firstMessageId);
7683
+ if (measuredThreadRef.current !== firstMessageId) {
7684
+ measuredThreadRef.current = firstMessageId;
7685
+ measuredRef.current = {
7686
+ total: 0,
7687
+ sizes: /* @__PURE__ */ new Map()
7688
+ };
7689
+ }
7690
+ const estimateRowSize = React.useCallback(() => {
7691
+ const { total, sizes } = measuredRef.current;
7692
+ return sizes.size > 0 ? Math.max(1, Math.round(total / sizes.size)) : 100;
7693
+ }, []);
7694
+ const measureRowElement = React.useCallback((el) => {
7695
+ const height = el?.getBoundingClientRect().height ?? 0;
7696
+ const index = Number(el?.dataset?.index);
7697
+ if (height > 0 && Number.isInteger(index)) {
7698
+ const { total, sizes } = measuredRef.current;
7699
+ measuredRef.current.total = total - (sizes.get(index) ?? 0) + height;
7700
+ sizes.set(index, height);
7701
+ }
7702
+ return height;
7703
+ }, []);
7704
+ const isPinnedToBottomRef = React.useRef(isPinnedToBottom);
7705
+ const shouldAdjustScrollOnResize = React.useCallback((item, _delta, instance) => {
7706
+ if (isPinnedToBottomRef.current) return false;
7707
+ const scrollAdjustments = instance.scrollAdjustments ?? 0;
7708
+ return item.start < (instance.scrollOffset ?? 0) + scrollAdjustments;
7709
+ }, []);
7642
7710
  const virtualizer = useVirtualizer({
7643
7711
  count: shouldVirtualize ? deduplicatedMessages.length : 0,
7644
7712
  getScrollElement: () => scrollElement,
7645
- estimateSize: () => 100,
7713
+ estimateSize: estimateRowSize,
7646
7714
  overscan: 5,
7647
- measureElement: (el) => el?.getBoundingClientRect().height ?? 0,
7715
+ measureElement: measureRowElement,
7648
7716
  initialRect: {
7649
7717
  width: 0,
7650
7718
  height: 600
7651
7719
  }
7652
7720
  });
7653
- const firstMessageId = deduplicatedMessages[0]?.id;
7721
+ isPinnedToBottomRef.current = isPinnedToBottom;
7722
+ virtualizer.shouldAdjustScrollPositionOnItemSizeChange = shouldAdjustScrollOnResize;
7654
7723
  useLayoutEffect(() => {
7655
7724
  if (!shouldVirtualize || !deduplicatedMessages.length) return;
7656
7725
  virtualizer.scrollToIndex(deduplicatedMessages.length - 1, { align: "end" });
@@ -7658,7 +7727,7 @@ function CopilotChatMessageView({ messages = [], assistantMessage, userMessage,
7658
7727
  const intelligenceTurnAnchors = useMemo(() => getIntelligenceTurnAnchors(deduplicatedMessages), [deduplicatedMessages]);
7659
7728
  const renderMessageBlock = (message) => {
7660
7729
  const elements = [];
7661
- const stateSnapshot = getStateSnapshotForMessage(message.id);
7730
+ const stateSnapshot = renderCustomMessage ? getStateSnapshotForMessage(message.id) : void 0;
7662
7731
  const rowKey = rowRenderKeys.get(message.id) ?? message.id;
7663
7732
  if (renderCustomMessage) elements.push(/* @__PURE__ */ jsx(MemoizedCustomMessage, {
7664
7733
  message,
@@ -8295,7 +8364,7 @@ function CopilotChatView({ messageView, input, scrollView, suggestionView, welco
8295
8364
  }
8296
8365
  (function(_CopilotChatView) {
8297
8366
  const ScrollContent = ({ children, scrollToBottomButton, feather, inputContainerHeight, isResizing }) => {
8298
- const { isAtBottom, scrollToBottom, scrollRef } = useStickToBottomContext();
8367
+ const { isAtBottom, scrollToBottom, scrollRef, state } = useStickToBottomContext();
8299
8368
  const [scrollEl, setScrollEl] = useState(null);
8300
8369
  useLayoutEffect(() => {
8301
8370
  setScrollEl(scrollRef.current ?? null);
@@ -8303,25 +8372,28 @@ function CopilotChatView({ messageView, input, scrollView, suggestionView, welco
8303
8372
  const BoundFeather = renderSlot(feather, CopilotChatView.Feather, {});
8304
8373
  return /* @__PURE__ */ jsx(ScrollElementContext.Provider, {
8305
8374
  value: scrollEl,
8306
- children: /* @__PURE__ */ jsxs(Fragment$1, { children: [
8307
- /* @__PURE__ */ jsx(StickToBottom.Content, {
8308
- className: "cpk:overflow-y-auto cpk:overflow-x-hidden",
8309
- style: {
8310
- flex: "1 1 0%",
8311
- minHeight: 0
8312
- },
8313
- children: /* @__PURE__ */ jsx("div", {
8314
- className: "cpk:px-4 cpk:@3xl:px-0 cpk:[div[data-sidebar-chat]_&]:px-8 cpk:[div[data-popup-chat]_&]:px-6",
8315
- children
8375
+ children: /* @__PURE__ */ jsx(ScrollPinnedContext.Provider, {
8376
+ value: state.isAtBottom,
8377
+ children: /* @__PURE__ */ jsxs(Fragment$1, { children: [
8378
+ /* @__PURE__ */ jsx(StickToBottom.Content, {
8379
+ className: "cpk:overflow-y-auto cpk:overflow-x-hidden",
8380
+ style: {
8381
+ flex: "1 1 0%",
8382
+ minHeight: 0
8383
+ },
8384
+ children: /* @__PURE__ */ jsx("div", {
8385
+ className: "cpk:px-4 cpk:@3xl:px-0 cpk:[div[data-sidebar-chat]_&]:px-8 cpk:[div[data-popup-chat]_&]:px-6",
8386
+ children
8387
+ })
8388
+ }),
8389
+ BoundFeather,
8390
+ !isAtBottom && !isResizing && /* @__PURE__ */ jsx("div", {
8391
+ className: "cpk:absolute cpk:inset-x-0 cpk:flex cpk:justify-center cpk:z-30 cpk:pointer-events-none",
8392
+ style: { bottom: `${inputContainerHeight + SCROLL_BUTTON_OFFSET}px` },
8393
+ children: renderSlot(scrollToBottomButton, CopilotChatView.ScrollToBottomButton, { onClick: () => scrollToBottom() })
8316
8394
  })
8317
- }),
8318
- BoundFeather,
8319
- !isAtBottom && !isResizing && /* @__PURE__ */ jsx("div", {
8320
- className: "cpk:absolute cpk:inset-x-0 cpk:flex cpk:justify-center cpk:z-30 cpk:pointer-events-none",
8321
- style: { bottom: `${inputContainerHeight + SCROLL_BUTTON_OFFSET}px` },
8322
- children: renderSlot(scrollToBottomButton, CopilotChatView.ScrollToBottomButton, { onClick: () => scrollToBottom() })
8323
- })
8324
- ] })
8395
+ ] })
8396
+ })
8325
8397
  });
8326
8398
  };
8327
8399
  const PinToSendScrollContainer = ({ children, scrollRef, contentRef, scrollToBottom, scrollToBottomButton, feather, inputContainerHeight, isResizing, nonAutoScrollEl, nonAutoScrollRefCallback, showScrollButton, className, ...props }) => {
@@ -10009,7 +10081,7 @@ function CopilotThreadsDrawer({ agentId, onThreadSelect, onNewThread, onLicensed
10009
10081
  const { status, checkFeature } = useLicenseContext$1();
10010
10082
  const licensePresent = status === "valid" || status === "expiring";
10011
10083
  const featureLicensed = checkFeature("threads");
10012
- const licensed = licensePresent && featureLicensed;
10084
+ const licensed = status === "unknown" || licensePresent && featureLicensed;
10013
10085
  const licensePending = status === null;
10014
10086
  const providerAgentId = useDefaultAgentId();
10015
10087
  const resolvedAgentId = agentId ?? configuration?.agentId ?? providerAgentId ?? DEFAULT_AGENT_ID;
@@ -12476,4 +12548,4 @@ function validateProps(props) {
12476
12548
 
12477
12549
  //#endregion
12478
12550
  export { useAgentContext as $, ɵisRetryableMemoryStatus as $i, ResumeEntrySchema as $n, compactEvents as $r, BaseMessageSchema as $t, CopilotChatMessageView as A, parseSSEStream as Ai, MemoryError as An, ThinkingEndEventSchema as Ar, CopilotChatInput_default as At, CopilotChatAssistantMessage_default as B, tokenUsageFromLangChainMetadata as Bi, OutputCapabilitiesSchema as Bn, ToolCallSchema as Br, ActivityMessageSchema as Bt, CopilotModalHeader as C, ɵselectThreadsError$1 as Ca, ofType as Ci, InputContentDataSourceSchema as Cn, SuggestionEngine as Cr, useSandboxFunctions as Ct, CopilotChat as D, onInspectorViewThread$1 as Di, IntelligenceAgent as Dn, TextMessageContentEventSchema as Dr, ɵrunMcpFollowUp as Dt, DefaultOpenIcon as E, onInspectorStopViewing$1 as Ei, InputContentUrlSourceSchema as En, TextMessageChunkEventSchema as Er, MCPAppsActivityType as Et, CopilotChatSuggestionView as F, resolveDebugLogger as Fi, MultiAgentCapabilitiesSchema as Fn, TokenUsageSchema as Fr, AGUIConnectNotImplementedError$1 as Ft, useLearnFromUserActionInCurrentThread as G, ɵInterruptState$1 as Gi, ReasoningEncryptedValueSubtypeSchema as Gn, ToolsCapabilitiesSchema as Gr, AssistantMessageSchema as Gt, useLearningContainersInCurrentThread as H, transformHttpEventStream as Hi, RawEventSchema as Hn, ToolCallStatus$1 as Hr, AgentCapabilitiesSchema as Ht, CopilotChatSuggestionPill as I, runHttpRequest as Ii, MultimodalCapabilitiesSchema as In, ToolCallArgsEventSchema as Ir, AGUIError as It, useThreads$1 as J, ɵTHREAD_REQUEST_TIMEOUT_MS as Ji, ReasoningMessageContentEventSchema as Jn, VideoInputContentSchema as Jr, BackwardCompatibility_0_0_39 as Jt, useLearnFromUserAction as K, ɵMAX_SOCKET_RETRIES as Ki, ReasoningEndEventSchema as Kn, TransportCapabilitiesSchema as Kr, AudioInputContentSchema as Kt, CopilotChatReasoningMessage_default as L, select as Li, MultimodalInputCapabilitiesSchema as Ln, ToolCallChunkEventSchema as Lr, AGUI_METADATA_KEY as Lt, IntelligenceIndicator as M, props as Mi, MessagesSnapshotEventSchema as Mn, ThinkingTextMessageContentEventSchema as Mr, CopilotChatAudioRecorder as Mt, getIntelligenceTurnAnchors as N, randomUUID$2 as Ni, MetadataSchema as Nn, ThinkingTextMessageEndEventSchema as Nr, CopilotChatConfigurationProvider as Nt, CopilotChatView_default as O, onInspectorViewThreadResult as Oi, InterruptSchema as On, TextMessageEndEventSchema as Or, CopilotKitInspector as Ot, IntelligenceIndicatorView as P, resolveAgentDebugConfig as Pi, Middleware as Pn, ThinkingTextMessageStartEventSchema as Pr, useCopilotChatConfiguration as Pt, useSuggestions as Q, ɵisCopilotKitFeature as Qi, ReasoningStartEventSchema as Qn, buildResumeArray as Qr, BaseEventSchema as Qt, CopilotChatUserMessage_default as R, structuredClone_ as Ri, MultimodalOutputCapabilitiesSchema as Rn, ToolCallEndEventSchema as Rr, AbstractAgent$1 as Rt, CopilotSidebarView as S, ɵselectThreads$1 as Sa, mergeMetadata as Si, ImageInputPartSchema as Sn, SubagentStartedEventSchema as Sr, SandboxFunctionsContext as St, DefaultCloseIcon as T, ɵthreadAdapterEvents as Ta, onInspectorActiveThread as Ti, InputContentSourceSchema as Tn, TextInputContentSchema as Tr, MCPAppsActivityRenderer as Tt, useLearningContainers as U, verifyEvents as Ui, ReasoningCapabilitiesSchema as Un, ToolMessageSchema as Ur, AgentRegistry as Ut, CopilotChatToolCallsView as V, transformChunks as Vi, ProxiedCopilotRuntimeAgent$1 as Vn, ToolCallStartEventSchema as Vr, ActivitySnapshotEventSchema as Vt, useAttachments as W, ɵCOPILOTKIT_FEATURES as Wi, ReasoningEncryptedValueEventSchema as Wn, ToolSchema as Wr, AgentThreadLockedError as Wt, INTERRUPT_EVENT_NAME as X, ɵcreateThreadSelectors as Xi, ReasoningMessageSchema as Xn, WebMCPRegistry as Xr, BackwardCompatibility_0_0_47 as Xt, useInterrupt as Y, ɵcreateMemoryStore as Yi, ReasoningMessageEndEventSchema as Yn, VideoInputPartSchema as Yr, BackwardCompatibility_0_0_45 as Yt, useConfigureSuggestions as Z, ɵcreateThreadStore$1 as Zi, ReasoningMessageStartEventSchema as Zn, aggregateTokenUsage as Zr, BackwardCompatibility_0_0_57 as Zt, WildcardToolCallRender as _, ɵselectMemoriesAvailable$1 as _a, getWebMCPModelContext as _i, HttpAgent$1 as _n, SubagentErrorEventSchema as _r, GenerateSandboxedUiArgsSchema as _t, ThreadsProvider as a, ɵmemoryRestEvents as aa, createInspectorThreadRequestId as ai, CopilotKitCoreRuntimeConnectionStatus$1 as an, RunFinishedOutcomeSchema as ar, useRenderTool as at, CopilotSidebar as b, ɵselectMemoriesIsMutating as ba, isInterruptExpired as bi, IdentityCapabilitiesSchema as bn, SubagentFinishedSuccessOutcomeSchema as br, OpenGenerativeUIContentSchema as bt, CoAgentStateRendersProvider as c, ɵobservePhoenixSocketHealth$ as ca, createStore as ci, DeveloperMessageSchema as cn, RunStartedEventSchema as cr, useFrontendTool as ct, shouldShowDevConsole as d, ɵphoenixSocket$ as da, emitInspectorStopViewing as di, EventSchemas as dn, StateManager as dr, CopilotKitProvider as dt, ɵjoinPhoenixChannel$ as ea, completePartialMarkdown as ei, BinaryInputContentSchema as en, RoleSchema as er, useCapabilities as et, useToast as f, ɵselectFetchMoreError$1 as fa, emitInspectorViewThread as fi, EventType as fn, StateSchema as fr, useCopilotKit$1 as ft, useCopilotContext as g, ɵselectMemories$1 as ga, getRunOutcome as gi, FunctionMiddleware as gn, SubAgentInfoSchema as gr, createA2UIMessageRenderer as gt, CopilotContext as h, ɵselectIsMutating$1 as ha, ensureObjectArgs as hi, FunctionCallSchema as hn, StepStartedEventSchema as hr, defineToolCallRenderer as ht, ThreadsContext as i, ɵmemoryReducer as ia, createEffect as ii, CopilotKitCoreErrorCode$1 as in, RunFinishedInterruptOutcomeSchema as ir, useDefaultRenderTool as it, INTELLIGENCE_TURN_HEAD as j, parseToolArguments as ji, MessageSchema as jn, ThinkingStartEventSchema as jr, AudioRecorderError as jt, CopilotChatAttachmentQueue as k, parseProtoStream as ki, MEMORY_ERROR_REGISTRY as kn, TextMessageStartEventSchema as kr, useRenderToolCall as kt, useCoAgentStateRenders as l, ɵobservePhoenixSocketSignals$ as la, defaultApplyEvents as li, DocumentInputContentSchema as ln, StateCapabilitiesSchema as lr, useRenderActivityMessage as lt, useCopilotMessagesContext as m, ɵselectIsFetchingNextPage$1 as ma, empty as mi, FilterToolCallsMiddleware as mn, StepFinishedEventSchema as mr, CopilotKitCoreReact as mt, defaultCopilotContextCategories as n, ɵmemoryAdapterEvents as na, createActionGroup as ni, ContextStore as nn, RunErrorEventSchema as nr, useAgent as nt, useThreads as o, ɵobservePhoenixEvent$ as oa, createReducer as oi, CustomEventSchema as on, RunFinishedSuccessOutcomeSchema as or, useComponent as ot, CopilotMessagesContext as p, ɵselectHasNextPage$1 as pa, emitInspectorViewThreadResult$1 as pi, ExecutionCapabilitiesSchema as pn, StateSnapshotEventSchema as pr, useLicenseContext$1 as pt, useMemories as q, ɵRUNTIME_PROBE_TIMEOUT_MS as qi, ReasoningMessageChunkEventSchema as qn, UserMessageSchema as qr, AudioInputPartSchema as qt, CoAgentStateRenderBridge as r, ɵmemoryDomainEvents as ra, createDebugLogger as ri, CopilotKitCore$1 as rn, RunFinishedEventSchema as rr, useHumanInTheLoop as rt, CoAgentStateRendersContext as s, ɵobservePhoenixJoinOutcome$ as sa, createSelector as si, DebugLogger as sn, RunHandler as sr, useFrontendTools as st, CopilotKit as t, ɵmapMemoryMetadataEvent as ta, convertToLegacyEvents as ti, ContextSchema as tn, RunAgentInputSchema as tr, UseAgentUpdate as tt, useAsyncCallback as u, ɵphoenixChannel$ as ua, emitInspectorActiveThread$1 as ui, DocumentInputPartSchema as un, StateDeltaEventSchema as ur, useRenderCustomMessages as ut, CopilotThreadsDrawer as v, ɵselectMemoriesError$1 as va, isAbortError as vi, HumanInTheLoopCapabilitiesSchema as vn, SubagentFinishedEventSchema as vr, OpenGenerativeUIActivityRenderer as vt, CopilotChatToggleButton as w, ɵselectThreadsIsLoading$1 as wa, on as wi, InputContentSchema as wn, SystemMessageSchema as wr, MCPAppsActivityContentSchema as wt, CopilotPopupView as x, ɵselectMemoriesRealtimeStatus$1 as xa, isRunCompletionAware$1 as xi, ImageInputContentSchema as xn, SubagentFinishedSuspendedOutcomeSchema as xr, OpenGenerativeUIToolRenderer as xt, CopilotPopup as y, ɵselectMemoriesIsLoading$1 as ya, isInspectorThreadBridgeEnabled$1 as yi, INSPECTOR_THREAD_BRIDGE_PLUGIN_ID as yn, SubagentFinishedOutcomeSchema as yr, OpenGenerativeUIActivityType as yt, CopilotChatAttachmentRenderer as z, tokenUsageFromAiSdkUsage as zi, OptionalMetadataSchema as zn, ToolCallResultEventSchema as zr, ActivityDeltaEventSchema as zt };
12479
- //# sourceMappingURL=copilotkit-CwVE-0JG.mjs.map
12551
+ //# sourceMappingURL=copilotkit-DyZh7EH4.mjs.map