@gen3/workspaces 0.12.55 → 0.12.57

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/dist/dts/api/hatcheryApiHandler.d.ts.map +1 -1
  2. package/dist/dts/api/hatcheryApiHandler.js +3 -0
  3. package/dist/dts/api/hatcheryApiHandler.js.map +1 -1
  4. package/dist/dts/api/kernelApiHandler.d.ts.map +1 -1
  5. package/dist/dts/api/kernelApiHandler.js +0 -2
  6. package/dist/dts/api/kernelApiHandler.js.map +1 -1
  7. package/dist/dts/api/workspaceAssetsApi.d.ts +17 -0
  8. package/dist/dts/api/workspaceAssetsApi.d.ts.map +1 -1
  9. package/dist/dts/api/workspaceAssetsApi.js +115 -123
  10. package/dist/dts/api/workspaceAssetsApi.js.map +1 -1
  11. package/dist/dts/auth/auth.js +1 -1
  12. package/dist/dts/auth/auth.js.map +1 -1
  13. package/dist/dts/components/AutoFitIframe.d.ts +1 -1
  14. package/dist/dts/components/AutoFitIframe.d.ts.map +1 -1
  15. package/dist/dts/components/CodingAssistantPanel/CodingAssistantPanel.d.ts +2 -1
  16. package/dist/dts/components/CodingAssistantPanel/CodingAssistantPanel.d.ts.map +1 -1
  17. package/dist/dts/components/CodingAssistantPanel/CodingAssistantPanel.js +0 -1
  18. package/dist/dts/components/CodingAssistantPanel/CodingAssistantPanel.js.map +1 -1
  19. package/dist/dts/components/CodingAssistantPanel/CodingAssistantPanel.stories.d.ts +1 -1
  20. package/dist/dts/components/CodingAssistantPanel/MessageBubble.d.ts +3 -2
  21. package/dist/dts/components/CodingAssistantPanel/MessageBubble.d.ts.map +1 -1
  22. package/dist/dts/components/CodingAssistantPanel/MessageBubble.js +3 -3
  23. package/dist/dts/components/CodingAssistantPanel/MessageBubble.js.map +1 -1
  24. package/dist/dts/components/CodingAssistantPanel/MessageBubble.stories.d.ts +1 -1
  25. package/dist/dts/components/CompactDictionaryPanel/CompactDictionaryPanel.d.ts +2 -1
  26. package/dist/dts/components/CompactDictionaryPanel/CompactDictionaryPanel.d.ts.map +1 -1
  27. package/dist/dts/components/CompactDictionaryPanel/CompactDictionaryPanel.js.map +1 -1
  28. package/dist/dts/components/CompactDictionaryPanel/CompactDictionaryPanel.stories.d.ts +1 -1
  29. package/dist/dts/components/CompactDictionaryPanel/FieldLinkCountBadge.d.ts +2 -1
  30. package/dist/dts/components/CompactDictionaryPanel/FieldLinkCountBadge.d.ts.map +1 -1
  31. package/dist/dts/components/DataToolsPanel.d.ts +2 -1
  32. package/dist/dts/components/DataToolsPanel.d.ts.map +1 -1
  33. package/dist/dts/components/DataToolsPanel.stories.d.ts +1 -1
  34. package/dist/dts/components/DataToolsRail.d.ts +2 -1
  35. package/dist/dts/components/DataToolsRail.d.ts.map +1 -1
  36. package/dist/dts/components/DataToolsRail.stories.d.ts +1 -1
  37. package/dist/dts/components/HorizontalAccordian.d.ts +2 -1
  38. package/dist/dts/components/HorizontalAccordian.d.ts.map +1 -1
  39. package/dist/dts/components/InfrastructureRightPanel.d.ts +2 -1
  40. package/dist/dts/components/InfrastructureRightPanel.d.ts.map +1 -1
  41. package/dist/dts/components/InfrastructureRightPanel.stories.d.ts +1 -1
  42. package/dist/dts/components/KernelLifecyclePanel/ActiveKernelInfoPanel.d.ts +2 -1
  43. package/dist/dts/components/KernelLifecyclePanel/ActiveKernelInfoPanel.d.ts.map +1 -1
  44. package/dist/dts/components/KernelLifecyclePanel/ActiveKernelInfoPanel.js +2 -2
  45. package/dist/dts/components/KernelLifecyclePanel/ActiveKernelInfoPanel.js.map +1 -1
  46. package/dist/dts/components/KernelLifecyclePanel/ActiveKernelsPanel.d.ts +2 -1
  47. package/dist/dts/components/KernelLifecyclePanel/ActiveKernelsPanel.d.ts.map +1 -1
  48. package/dist/dts/components/KernelLifecyclePanel/ActiveKernelsPanel.js +12 -4
  49. package/dist/dts/components/KernelLifecyclePanel/ActiveKernelsPanel.js.map +1 -1
  50. package/dist/dts/components/KernelLifecyclePanel/ConnectionStatusBadge.d.ts +2 -1
  51. package/dist/dts/components/KernelLifecyclePanel/ConnectionStatusBadge.d.ts.map +1 -1
  52. package/dist/dts/components/KernelLifecyclePanel/ConnectionStatusBadge.js +1 -1
  53. package/dist/dts/components/KernelLifecyclePanel/ConnectionStatusBadge.js.map +1 -1
  54. package/dist/dts/components/KernelLifecyclePanel/ConnectionStatusBadge.stories.d.ts +1 -1
  55. package/dist/dts/components/KernelLifecyclePanel/GatewayConnectionPanel.d.ts +2 -1
  56. package/dist/dts/components/KernelLifecyclePanel/GatewayConnectionPanel.d.ts.map +1 -1
  57. package/dist/dts/components/KernelLifecyclePanel/GatewayConnectionPanel.js +5 -1
  58. package/dist/dts/components/KernelLifecyclePanel/GatewayConnectionPanel.js.map +1 -1
  59. package/dist/dts/components/KernelLifecyclePanel/KernelLifecyclePanel.d.ts +2 -1
  60. package/dist/dts/components/KernelLifecyclePanel/KernelLifecyclePanel.d.ts.map +1 -1
  61. package/dist/dts/components/KernelLifecyclePanel/KernelLifecyclePanel.js +2 -2
  62. package/dist/dts/components/KernelLifecyclePanel/KernelLifecyclePanel.js.map +1 -1
  63. package/dist/dts/components/KernelLifecyclePanel/KernelLifecyclePanel.stories.d.ts +1 -1
  64. package/dist/dts/components/KernelLifecyclePanel/KernelSelector.d.ts +2 -1
  65. package/dist/dts/components/KernelLifecyclePanel/KernelSelector.d.ts.map +1 -1
  66. package/dist/dts/components/KernelLifecyclePanel/KernelSelector.js +1 -1
  67. package/dist/dts/components/KernelLifecyclePanel/KernelSelector.js.map +1 -1
  68. package/dist/dts/components/MicroContainerPanel.stories.d.ts +3 -4
  69. package/dist/dts/components/MicroContainerPanel.stories.d.ts.map +1 -1
  70. package/dist/dts/components/MicroContainerReduxPanel.d.ts +2 -1
  71. package/dist/dts/components/MicroContainerReduxPanel.d.ts.map +1 -1
  72. package/dist/dts/components/MicroContainerReduxPanel.js +1 -1
  73. package/dist/dts/components/MicroContainerReduxPanel.js.map +1 -1
  74. package/dist/dts/components/TierSelectorLanding.d.ts +2 -1
  75. package/dist/dts/components/TierSelectorLanding.d.ts.map +1 -1
  76. package/dist/dts/components/TierSelectorLanding.stories.d.ts +1 -1
  77. package/dist/dts/components/UpgradeActionsPanel.d.ts +2 -1
  78. package/dist/dts/components/UpgradeActionsPanel.d.ts.map +1 -1
  79. package/dist/dts/components/UpgradeActionsPanel.stories.d.ts +1 -1
  80. package/dist/dts/components/WorkspaceTierCard.d.ts +2 -1
  81. package/dist/dts/components/WorkspaceTierCard.d.ts.map +1 -1
  82. package/dist/dts/components/WorkspaceTierCard.stories.d.ts +1 -1
  83. package/dist/dts/core/hatcheryApi.js +1 -1
  84. package/dist/dts/core/hatcheryApi.js.map +1 -1
  85. package/dist/dts/providers/JEGWorkspaceProvider.d.ts +2 -2
  86. package/dist/dts/providers/JEGWorkspaceProvider.d.ts.map +1 -1
  87. package/dist/dts/providers/MicroContainerReduxProvider.d.ts +2 -2
  88. package/dist/dts/providers/MicroContainerReduxProvider.d.ts.map +1 -1
  89. package/dist/dts/providers/WorkspacesGatewayProvider.d.ts +1 -1
  90. package/dist/dts/providers/WorkspacesGatewayProvider.d.ts.map +1 -1
  91. package/dist/dts/providers/useMicroContainerRedux.d.ts.map +1 -1
  92. package/dist/dts/providers/useMicroContainerRedux.js +4 -1
  93. package/dist/dts/providers/useMicroContainerRedux.js.map +1 -1
  94. package/dist/dts/server/kernelLifecycleProxy.js +2 -2
  95. package/dist/dts/server/kernelLifecycleProxy.js.map +1 -1
  96. package/dist/dts/server/withJupyterWorkspaces.js +1 -1
  97. package/dist/dts/server/withJupyterWorkspaces.js.map +1 -1
  98. package/dist/dts/server/workspaceAssetsHandler.d.ts +20 -1
  99. package/dist/dts/server/workspaceAssetsHandler.d.ts.map +1 -1
  100. package/dist/dts/server/workspaceAssetsHandler.js +71 -20
  101. package/dist/dts/server/workspaceAssetsHandler.js.map +1 -1
  102. package/dist/dts/workspace/WorkspaceCenter.d.ts +2 -1
  103. package/dist/dts/workspace/WorkspaceCenter.d.ts.map +1 -1
  104. package/dist/dts/workspace/WorkspaceLayout/SettingsPanel.d.ts +2 -1
  105. package/dist/dts/workspace/WorkspaceLayout/SettingsPanel.d.ts.map +1 -1
  106. package/dist/dts/workspace/WorkspaceLayout/ToolsPanel.d.ts +2 -1
  107. package/dist/dts/workspace/WorkspaceLayout/ToolsPanel.d.ts.map +1 -1
  108. package/dist/dts/workspace/WorkspaceLayout/WorkspaceLayout.d.ts +2 -2
  109. package/dist/dts/workspace/WorkspaceLayout/WorkspaceLayout.d.ts.map +1 -1
  110. package/dist/dts/workspace/tiers/FreeWorkspace.d.ts +2 -1
  111. package/dist/dts/workspace/tiers/FreeWorkspace.d.ts.map +1 -1
  112. package/dist/dts/workspace/tiers/FreeWorkspace.js.map +1 -1
  113. package/dist/index/cjs/index.js +41 -34
  114. package/dist/index/cjs/index.js.map +1 -1
  115. package/dist/index/esm/index.js +41 -34
  116. package/dist/index/esm/index.js.map +1 -1
  117. package/dist/jupyterlite-builds/free-private/requirements.txt +1 -1
  118. package/dist/jupyterlite-builds/remote-private/requirements.txt +1 -1
  119. package/dist/server/cjs/server.js +140 -131
  120. package/dist/server/cjs/server.js.map +1 -1
  121. package/dist/server/esm/server.js +140 -131
  122. package/dist/server/esm/server.js.map +1 -1
  123. package/dist/server.d.ts +38 -0
  124. package/jupyterlite-builds/free-private/requirements.txt +1 -1
  125. package/jupyterlite-builds/remote-private/requirements.txt +1 -1
  126. package/package.json +9 -8
  127. package/dist/dts/hooks/useMicroContainer.d.ts +0 -1
  128. package/dist/dts/hooks/useMicroContainer.d.ts.map +0 -1
  129. package/dist/dts/hooks/useMicroContainer.js +0 -319
  130. package/dist/dts/hooks/useMicroContainer.js.map +0 -1
@@ -414,7 +414,7 @@ const hatcheryApi = HatcheryWithTags.injectEndpoints({
414
414
  const query = hash ? `?id=${encodeURIComponent(hash)}` : '';
415
415
  return `${GEN3_HATCHERY_API}/status${query}`;
416
416
  },
417
- transformErrorResponse: (error)=>{
417
+ transformErrorResponse: (_error)=>{
418
418
  return {
419
419
  status: HatcheryServiceState.error,
420
420
  idleTimeLimit: 0,
@@ -593,7 +593,7 @@ const { useDoesHatcheryOptionExistsQuery, useHatcheryOptionsQuery, useLazyHatche
593
593
  const [containerHash, setContainerHash] = useState(null);
594
594
  const coreDispatch = useCoreDispatch();
595
595
  // get the options for the workspace could move to parent
596
- const { data: optionData, error: optionsError } = useDoesHatcheryOptionExistsQuery(tag, {
596
+ const { data: optionData } = useDoesHatcheryOptionExistsQuery(tag, {
597
597
  skip: containerHash !== null
598
598
  });
599
599
  const [launchTrigger, { isError: isWorkspaceLaunchError, error: workspaceLaunchError }] = useLaunchHatcheryWorkspaceMutation();
@@ -945,7 +945,7 @@ const icon = /*#__PURE__*/ jsx(Icon, {
945
945
  * The iframe and KernelLifecyclePanel are rendered by the PARENT only when
946
946
  * status === 'running' && useJupyterReady.ready === true.
947
947
  */ const PanelStyle$2 = 'h-full w-full flex flex-col items-center justify-start gap-6 px-6 mt-20';
948
- const MicroContainerReduxPanel = ({ compact = false })=>{
948
+ const MicroContainerReduxPanel = ()=>{
949
949
  const { launch, terminate } = useMicroContainerReduxContext();
950
950
  const status = useCoreSelector(selectJEGActiveWorkspaceStatus);
951
951
  const requestedStatusTimestamp = useCoreSelector(selectJEGRequestedWorkspaceStatusTimestamp);
@@ -1580,8 +1580,8 @@ const { useActiveKernelsQuery, useLaunchKernelMutation, useTerminateKernelMutati
1580
1580
  // select active kernels
1581
1581
  jegGatewayApi.endpoints.activeKernels.select();
1582
1582
 
1583
- const ActiveKernelInfoPanel = ({ kernelId, kernelName, executionState, uptimeMinutes, onOpenNotebook, forceTerminate = false, rowSpec, connections = 0 })=>{
1584
- const [terminateKernel, { isLoading: isTerminatingLoading, isError: isTerminatingError, error: terminatingError }] = useTerminateKernelMutation();
1583
+ const ActiveKernelInfoPanel = ({ kernelId, kernelName, executionState, uptimeMinutes, forceTerminate = false, rowSpec, connections = 0 })=>{
1584
+ const [terminateKernel, { isLoading: isTerminatingLoading }] = useTerminateKernelMutation();
1585
1585
  const isStaleOrIdle = executionState === 'idle';
1586
1586
  return /*#__PURE__*/ jsxs("div", {
1587
1587
  className: "rounded-sm border-2 border-base-light bg-base-lighter p-2 transition hover:shadow-sm",
@@ -1753,17 +1753,39 @@ const ActiveKernelsPanel = ()=>{
1753
1753
  kernels,
1754
1754
  persistedActiveKernels
1755
1755
  ]);
1756
- const { data: kernelSpecs, isFetching: isFetchingKernelSpecs, isError: isErrorKernelSpecs, error: errorKernelSpecs, isSuccess: isSuccessKernelSpecs } = useKernalSpecsQuery();
1756
+ const { data: kernelSpecs, isFetching: isFetchingKernelSpecs, isError: isErrorKernelSpecs, error: errorKernelSpecs } = useKernalSpecsQuery();
1757
1757
  if (isError) {
1758
1758
  const normalizedError = normalizeRtkError(error);
1759
1759
  const status = normalizedError?.status;
1760
1760
  const isAuthError = status === 401 || status === 403;
1761
- return /*#__PURE__*/ jsx("div", {
1761
+ return /*#__PURE__*/ jsxs("div", {
1762
1762
  className: "mt-4 flex justify-center items-center text-sm bg-accent-lighter text-accent-contrast-lighter p-2",
1763
- children: /*#__PURE__*/ jsx(Text, {
1764
- size: "sm",
1765
- children: isAuthError ? 'You must be logged in to view active kernels.' : 'Failed to load active kernels.'
1766
- })
1763
+ children: [
1764
+ /*#__PURE__*/ jsx(LoadingOverlay, {
1765
+ visible: isLoading
1766
+ }),
1767
+ /*#__PURE__*/ jsx(Text, {
1768
+ size: "sm",
1769
+ children: isAuthError ? 'You must be logged in to view active kernels.' : 'Failed to load active kernels.'
1770
+ })
1771
+ ]
1772
+ });
1773
+ }
1774
+ if (isErrorKernelSpecs) {
1775
+ const normalizedError = normalizeRtkError(errorKernelSpecs);
1776
+ const status = normalizedError?.status;
1777
+ const isAuthError = status === 401 || status === 403;
1778
+ return /*#__PURE__*/ jsxs("div", {
1779
+ className: "mt-4 flex justify-center items-center text-sm bg-accent-lighter text-accent-contrast-lighter p-2",
1780
+ children: [
1781
+ /*#__PURE__*/ jsx(LoadingOverlay, {
1782
+ visible: isFetchingKernelSpecs
1783
+ }),
1784
+ /*#__PURE__*/ jsx(Text, {
1785
+ size: "sm",
1786
+ children: isAuthError ? 'You must be logged in to view kernel specs.' : 'Failed to load kernel specs.'
1787
+ })
1788
+ ]
1767
1789
  });
1768
1790
  }
1769
1791
  return /*#__PURE__*/ jsxs(Stack, {
@@ -1805,7 +1827,7 @@ const ActiveKernelsPanel = ()=>{
1805
1827
  * Small inline indicator rendered inside KernelLifecyclePanel header.
1806
1828
  * In 'reconnecting' state the lifecycle panel and iframe remain visible —
1807
1829
  * this badge is the ONLY signal to the user, preserving their workflow.
1808
- */ const ConnectionStatusBadge = ({ state, onRetry })=>{
1830
+ */ const ConnectionStatusBadge = ({ state })=>{
1809
1831
  if (state === 'idle') return null;
1810
1832
  if (state === 'connected') {
1811
1833
  return /*#__PURE__*/ jsx(Badge, {
@@ -1871,7 +1893,10 @@ const ActiveKernelsPanel = ()=>{
1871
1893
  return null;
1872
1894
  };
1873
1895
 
1874
- const GatewayConnectionPanel = ({ gatewayStatus, onRetryConnection = ()=>null, onRunStaleReap = ()=>null })=>{
1896
+ const GatewayConnectionPanel = ({ gatewayStatus, onRetryConnection = ()=>null, // oxlint-disable-next-line no-unused-vars
1897
+ onRunStaleReap = ()=>null })=>{
1898
+ // TODO Add support for stale kernel reap
1899
+ // oxlint-disable-next-line no-unused-vars
1875
1900
  const [reapKernels, { isLoading, isError }] = useReapKernelsMutation();
1876
1901
  return /*#__PURE__*/ jsxs(Stack, {
1877
1902
  className: PanelStyle$1,
@@ -1893,7 +1918,7 @@ const GatewayConnectionPanel = ({ gatewayStatus, onRetryConnection = ()=>null, o
1893
1918
  };
1894
1919
 
1895
1920
  const KernelSelector = ({ handleLaunchKernel, isLaunchingLoading, onKernelSelectionChange, disabled = false })=>{
1896
- const { data: kernelSpecs, isLoading, isError, error } = useKernalSpecsQuery();
1921
+ const { data: kernelSpecs, isLoading, isError } = useKernalSpecsQuery();
1897
1922
  const [selectedKernelName, setSelectedKernelName] = useState(kernelSpecs?.[0]?.name || 'python3');
1898
1923
  // When specs arrive after first render (async load), reset selectedKernelName
1899
1924
  // if the current value is no longer a valid spec name.
@@ -2058,7 +2083,7 @@ const KernelLifecyclePanel = ({ activeKernelName, onRetryConnection, onRunStaleR
2058
2083
  const notice = undefined;
2059
2084
  const coreDispatch = useCoreDispatch();
2060
2085
  const numActiveKernels = useCoreSelector(selectAllJEGKernels)?.length || 0;
2061
- const { gatewayServiceStatus, gatewayStatus, gatewayMessage, setGatewayStatusAndMessage } = useGatewayConnectionStatus();
2086
+ const { gatewayServiceStatus, gatewayStatus, setGatewayStatusAndMessage } = useGatewayConnectionStatus();
2062
2087
  useEffect(()=>{
2063
2088
  setGatewayStatusAndMessage('reconnecting');
2064
2089
  // check store to see if last known kernels are still running
@@ -2070,7 +2095,7 @@ const KernelLifecyclePanel = ({ activeKernelName, onRetryConnection, onRunStaleR
2070
2095
  }, [
2071
2096
  gatewayServiceStatus
2072
2097
  ]);
2073
- const { data: kernelSpecs, isLoading, isError, error } = useKernalSpecsQuery();
2098
+ const { data: kernelSpecs } = useKernalSpecsQuery();
2074
2099
  // get the function to launch kernels
2075
2100
  const [launchKernel, { isLoading: isLaunchingLoading }] = useLaunchKernelMutation();
2076
2101
  const handleLaunchKernel = async (kernelName)=>{
@@ -3073,25 +3098,8 @@ function buildSystemPrompt(dictionaryContext, kbContext) {
3073
3098
  };
3074
3099
  }
3075
3100
 
3076
- function extractCodeBlocks(text) {
3077
- // Regex defined inside the function to avoid shared lastIndex state across calls
3078
- // (module-level /g regexes retain lastIndex between invocations).
3079
- const CODE_BLOCK_RE = /```(\w+)?\n([\s\S]*?)```/g;
3080
- const blocks = [];
3081
- let match;
3082
- while((match = CODE_BLOCK_RE.exec(text)) !== null){
3083
- blocks.push({
3084
- lang: match[1] ?? '',
3085
- code: match[2].trim()
3086
- });
3087
- }
3088
- return blocks;
3089
- }
3090
3101
  const MessageBubble = ({ message, onInsert })=>{
3091
3102
  const isUser = message.role === 'user';
3092
- useMemo(()=>extractCodeBlocks(message.content), [
3093
- message.content
3094
- ]);
3095
3103
  // Render content with code blocks highlighted
3096
3104
  const renderedContent = useMemo(()=>{
3097
3105
  if (!message.content) return null;
@@ -3192,7 +3200,6 @@ const CodingAssistantPanel = ({ schemaUrl, kbUrl, onInsertCode })=>{
3192
3200
  const [messages, setMessages] = useState([]);
3193
3201
  const [input, setInput] = useState('');
3194
3202
  const [streaming, setStreaming] = useState(false);
3195
- useRef(null);
3196
3203
  const messagesEndRef = useRef(null);
3197
3204
  // RAG context
3198
3205
  const [dictContext, setDictContext] = useState('');