From e561a43463a9bb0bf1305eaea72f13a01247486e Mon Sep 17 00:00:00 2001 From: milanofthe Date: Tue, 5 May 2026 20:03:01 +0200 Subject: [PATCH] Fix toolbox block resolution and surface installed versions --- src/lib/components/ConfirmationModal.svelte | 1 + .../dialogs/ToolboxManagerDialog.svelte | 17 ++++++- src/lib/components/nodes/BaseNode.svelte | 49 ++++++++++++++----- src/lib/nodes/defineNode.ts | 6 +++ src/lib/pyodide/pathsimRunner.ts | 5 +- src/lib/schema/fileOps.ts | 14 +++++- src/lib/toolbox/bootstrap.ts | 6 +++ src/lib/toolbox/dependencies.ts | 3 +- src/lib/toolbox/installer.ts | 26 +++++++--- src/lib/toolbox/pathsimVersion.ts | 28 +++++++++++ src/lib/toolbox/python.ts | 28 +++++++++++ src/lib/toolbox/register.ts | 33 ++++++++----- src/lib/toolbox/types.ts | 4 ++ src/lib/types/nodes.ts | 7 +++ src/lib/types/schema.ts | 7 +++ src/lib/utils/codePreviewHeader.ts | 11 +++-- src/routes/+page.svelte | 9 ++-- 17 files changed, 211 insertions(+), 43 deletions(-) create mode 100644 src/lib/toolbox/pathsimVersion.ts diff --git a/src/lib/components/ConfirmationModal.svelte b/src/lib/components/ConfirmationModal.svelte index 25372564..56f1c0a7 100644 --- a/src/lib/components/ConfirmationModal.svelte +++ b/src/lib/components/ConfirmationModal.svelte @@ -95,6 +95,7 @@ font-size: var(--font-sm); color: var(--text-muted); line-height: 1.5; + white-space: pre-wrap; } .dialog-actions { diff --git a/src/lib/components/dialogs/ToolboxManagerDialog.svelte b/src/lib/components/dialogs/ToolboxManagerDialog.svelte index 115e6c22..2363cad2 100644 --- a/src/lib/components/dialogs/ToolboxManagerDialog.svelte +++ b/src/lib/components/dialogs/ToolboxManagerDialog.svelte @@ -56,6 +56,7 @@ // Build artifact across the add-toolbox flow let resolvedSource = $state(null); let resolvedImportPath = $state(''); + let resolvedInstalledVersion = $state(null); let resolvedDisplayName = $state(''); let resolvedEventsImportPath = $state(undefined); let toolboxId = $state(''); @@ -97,6 +98,7 @@ eventsImportPathInput = ''; resolvedSource = null; resolvedImportPath = ''; + resolvedInstalledVersion = null; resolvedDisplayName = ''; resolvedEventsImportPath = undefined; toolboxId = ''; @@ -200,6 +202,7 @@ installMessage = describeInstall(resolvedSource); const result = await performInstall(resolvedSource, resolvedImportPath || undefined); resolvedImportPath = result.importPath; + resolvedInstalledVersion = result.installedVersion; installStatus = 'discovering'; installMessage = `Inspecting ${resolvedImportPath}…`; @@ -301,6 +304,7 @@ source: resolvedSource, importPath: resolvedImportPath, eventsImportPath: resolvedEventsImportPath, + installedVersion: resolvedInstalledVersion, blocks: blockSelections, events: eventSelections }; @@ -387,7 +391,10 @@ {#each installed as t (t.id)}
-
{t.displayName}
+
+ {t.displayName} + {#if t.installedVersion}v{t.installedVersion}{/if} +
{#if t.source.type === 'pypi'} pip · {t.source.pkg}{t.source.version ? `==${t.source.version}` : ''} @@ -782,6 +789,14 @@ color: var(--text-muted); } + .installed-version { + margin-left: 6px; + font-family: var(--font-mono); + font-size: var(--font-sm); + font-weight: 400; + color: var(--text-disabled); + } + .installed-source { font-size: var(--font-sm); color: var(--text-muted); diff --git a/src/lib/components/nodes/BaseNode.svelte b/src/lib/components/nodes/BaseNode.svelte index 036b8e07..b541d0ca 100644 --- a/src/lib/components/nodes/BaseNode.svelte +++ b/src/lib/components/nodes/BaseNode.svelte @@ -1,7 +1,7 @@