diff --git a/.gitignore b/.gitignore
index 64657b4..3284d42 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,7 +6,7 @@ build/
.env
!web/.env
node_modules/
-web/.svelte-kit/
+.svelte-kit/
web/build/
pipeline/work/
pipeline/.nextflow*
diff --git a/.svelte-kit/ambient.d.ts b/.svelte-kit/ambient.d.ts
deleted file mode 100644
index 701a06a..0000000
--- a/.svelte-kit/ambient.d.ts
+++ /dev/null
@@ -1,360 +0,0 @@
-
-// this file is generated — do not edit it
-
-
-///
-
-/**
- * This module provides access to environment variables that are injected _statically_ into your bundle at build time and are limited to _private_ access.
- *
- * | | Runtime | Build time |
- * | ------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
- * | Private | [`$env/dynamic/private`](https://svelte.dev/docs/kit/$env-dynamic-private) | [`$env/static/private`](https://svelte.dev/docs/kit/$env-static-private) |
- * | Public | [`$env/dynamic/public`](https://svelte.dev/docs/kit/$env-dynamic-public) | [`$env/static/public`](https://svelte.dev/docs/kit/$env-static-public) |
- *
- * Static environment variables are [loaded by Vite](https://vitejs.dev/guide/env-and-mode.html#env-files) from `.env` files and `process.env` at build time and then statically injected into your bundle at build time, enabling optimisations like dead code elimination.
- *
- * **_Private_ access:**
- *
- * - This module cannot be imported into client-side code
- * - This module only includes variables that _do not_ begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) _and do_ start with [`config.kit.env.privatePrefix`](https://svelte.dev/docs/kit/configuration#env) (if configured)
- *
- * For example, given the following build time environment:
- *
- * ```env
- * ENVIRONMENT=production
- * PUBLIC_BASE_URL=http://site.com
- * ```
- *
- * With the default `publicPrefix` and `privatePrefix`:
- *
- * ```ts
- * import { ENVIRONMENT, PUBLIC_BASE_URL } from '$env/static/private';
- *
- * console.log(ENVIRONMENT); // => "production"
- * console.log(PUBLIC_BASE_URL); // => throws error during build
- * ```
- *
- * The above values will be the same _even if_ different values for `ENVIRONMENT` or `PUBLIC_BASE_URL` are set at runtime, as they are statically replaced in your code with their build time values.
- */
-declare module '$env/static/private' {
- export const CLAUDE_CODE_MESSAGING_TOKEN: string;
- export const NoDefaultCurrentDirectoryInExePath: string;
- export const CLAUDE_EFFORT: string;
- export const CLAUDE_CODE_ENTRYPOINT: string;
- export const VSCODE_CRASH_REPORTER_PROCESS_TYPE: string;
- export const NODE: string;
- export const INIT_CWD: string;
- export const SHELL: string;
- export const npm_config_allow_scripts: string;
- export const CLAUDE_PID: string;
- export const CLAUDE_CODE_CHILD_SESSION: string;
- export const TMPDIR: string;
- export const HOMEBREW_REPOSITORY: string;
- export const npm_config_global_prefix: string;
- export const FPATH: string;
- export const CLAUDE_AGENT_SDK_VERSION: string;
- export const MallocNanoZone: string;
- export const COLOR: string;
- export const npm_config_noproxy: string;
- export const npm_config_local_prefix: string;
- export const PNPM_HOME: string;
- export const GIT_EDITOR: string;
- export const AI_AGENT: string;
- export const USER: string;
- export const COMMAND_MODE: string;
- export const npm_config_globalconfig: string;
- export const RAILWAY_HOME: string;
- export const SSH_AUTH_SOCK: string;
- export const __CF_USER_TEXT_ENCODING: string;
- export const npm_execpath: string;
- export const ELECTRON_RUN_AS_NODE: string;
- export const PATH: string;
- export const MCP_CONNECTION_NONBLOCKING: string;
- export const npm_package_json: string;
- export const _: string;
- export const LaunchInstanceID: string;
- export const npm_config_userconfig: string;
- export const npm_config_init_module: string;
- export const __CFBundleIdentifier: string;
- export const npm_command: string;
- export const PWD: string;
- export const VSCODE_HANDLES_UNCAUGHT_ERRORS: string;
- export const npm_lifecycle_event: string;
- export const EDITOR: string;
- export const VSCODE_ESM_ENTRYPOINT: string;
- export const npm_package_name: string;
- export const LANG: string;
- export const npm_config_npm_version: string;
- export const XPC_FLAGS: string;
- export const MACH_PORT_RENDEZVOUS_PEER_VALDATION: string;
- export const npm_config_node_gyp: string;
- export const npm_package_version: string;
- export const CLAUDE_CODE_ENABLE_TASKS: string;
- export const XPC_SERVICE_NAME: string;
- export const GEMINI_API_KEY: string;
- export const CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING: string;
- export const SHLVL: string;
- export const HOME: string;
- export const CLAUDE_CODE_EXECPATH: string;
- export const VSCODE_NLS_CONFIG: string;
- export const APPLICATION_INSIGHTS_NO_STATSBEAT: string;
- export const HOMEBREW_PREFIX: string;
- export const npm_config_cache: string;
- export const LOGNAME: string;
- export const npm_lifecycle_script: string;
- export const VSCODE_IPC_HOOK: string;
- export const VSCODE_CODE_CACHE_PATH: string;
- export const COREPACK_ENABLE_AUTO_PIN: string;
- export const npm_config_user_agent: string;
- export const VSCODE_PID: string;
- export const CLAUDE_CODE_SESSION_ID: string;
- export const INFOPATH: string;
- export const HOMEBREW_CELLAR: string;
- export const OSLogRateLimit: string;
- export const CLAUDECODE: string;
- export const CLAUDE_CODE_MESSAGING_SOCKET: string;
- export const VSCODE_L10N_BUNDLE_LOCATION: string;
- export const VSCODE_CWD: string;
- export const SECURITYSESSIONID: string;
- export const npm_node_execpath: string;
- export const npm_config_prefix: string;
- export const TEST: string;
- export const VITEST: string;
- export const NODE_ENV: string;
- export const PROD: string;
- export const DEV: string;
- export const BASE_URL: string;
- export const MODE: string;
-}
-
-/**
- * This module provides access to environment variables that are injected _statically_ into your bundle at build time and are _publicly_ accessible.
- *
- * | | Runtime | Build time |
- * | ------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
- * | Private | [`$env/dynamic/private`](https://svelte.dev/docs/kit/$env-dynamic-private) | [`$env/static/private`](https://svelte.dev/docs/kit/$env-static-private) |
- * | Public | [`$env/dynamic/public`](https://svelte.dev/docs/kit/$env-dynamic-public) | [`$env/static/public`](https://svelte.dev/docs/kit/$env-static-public) |
- *
- * Static environment variables are [loaded by Vite](https://vitejs.dev/guide/env-and-mode.html#env-files) from `.env` files and `process.env` at build time and then statically injected into your bundle at build time, enabling optimisations like dead code elimination.
- *
- * **_Public_ access:**
- *
- * - This module _can_ be imported into client-side code
- * - **Only** variables that begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) (which defaults to `PUBLIC_`) are included
- *
- * For example, given the following build time environment:
- *
- * ```env
- * ENVIRONMENT=production
- * PUBLIC_BASE_URL=http://site.com
- * ```
- *
- * With the default `publicPrefix` and `privatePrefix`:
- *
- * ```ts
- * import { ENVIRONMENT, PUBLIC_BASE_URL } from '$env/static/public';
- *
- * console.log(ENVIRONMENT); // => throws error during build
- * console.log(PUBLIC_BASE_URL); // => "http://site.com"
- * ```
- *
- * The above values will be the same _even if_ different values for `ENVIRONMENT` or `PUBLIC_BASE_URL` are set at runtime, as they are statically replaced in your code with their build time values.
- */
-declare module '$env/static/public' {
-
-}
-
-/**
- * This module provides access to environment variables set _dynamically_ at runtime and that are limited to _private_ access.
- *
- * | | Runtime | Build time |
- * | ------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
- * | Private | [`$env/dynamic/private`](https://svelte.dev/docs/kit/$env-dynamic-private) | [`$env/static/private`](https://svelte.dev/docs/kit/$env-static-private) |
- * | Public | [`$env/dynamic/public`](https://svelte.dev/docs/kit/$env-dynamic-public) | [`$env/static/public`](https://svelte.dev/docs/kit/$env-static-public) |
- *
- * Dynamic environment variables are defined by the platform you're running on. For example if you're using [`adapter-node`](https://github.com/sveltejs/kit/tree/main/packages/adapter-node) (or running [`vite preview`](https://svelte.dev/docs/kit/cli)), this is equivalent to `process.env`.
- *
- * **_Private_ access:**
- *
- * - This module cannot be imported into client-side code
- * - This module includes variables that _do not_ begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) _and do_ start with [`config.kit.env.privatePrefix`](https://svelte.dev/docs/kit/configuration#env) (if configured)
- *
- * > [!NOTE] In `dev`, `$env/dynamic` includes environment variables from `.env`. In `prod`, this behavior will depend on your adapter.
- *
- * > [!NOTE] To get correct types, environment variables referenced in your code should be declared (for example in an `.env` file), even if they don't have a value until the app is deployed:
- * >
- * > ```env
- * > MY_FEATURE_FLAG=
- * > ```
- * >
- * > You can override `.env` values from the command line like so:
- * >
- * > ```sh
- * > MY_FEATURE_FLAG="enabled" npm run dev
- * > ```
- *
- * For example, given the following runtime environment:
- *
- * ```env
- * ENVIRONMENT=production
- * PUBLIC_BASE_URL=http://site.com
- * ```
- *
- * With the default `publicPrefix` and `privatePrefix`:
- *
- * ```ts
- * import { env } from '$env/dynamic/private';
- *
- * console.log(env.ENVIRONMENT); // => "production"
- * console.log(env.PUBLIC_BASE_URL); // => undefined
- * ```
- */
-declare module '$env/dynamic/private' {
- export const env: {
- CLAUDE_CODE_MESSAGING_TOKEN: string;
- NoDefaultCurrentDirectoryInExePath: string;
- CLAUDE_EFFORT: string;
- CLAUDE_CODE_ENTRYPOINT: string;
- VSCODE_CRASH_REPORTER_PROCESS_TYPE: string;
- NODE: string;
- INIT_CWD: string;
- SHELL: string;
- npm_config_allow_scripts: string;
- CLAUDE_PID: string;
- CLAUDE_CODE_CHILD_SESSION: string;
- TMPDIR: string;
- HOMEBREW_REPOSITORY: string;
- npm_config_global_prefix: string;
- FPATH: string;
- CLAUDE_AGENT_SDK_VERSION: string;
- MallocNanoZone: string;
- COLOR: string;
- npm_config_noproxy: string;
- npm_config_local_prefix: string;
- PNPM_HOME: string;
- GIT_EDITOR: string;
- AI_AGENT: string;
- USER: string;
- COMMAND_MODE: string;
- npm_config_globalconfig: string;
- RAILWAY_HOME: string;
- SSH_AUTH_SOCK: string;
- __CF_USER_TEXT_ENCODING: string;
- npm_execpath: string;
- ELECTRON_RUN_AS_NODE: string;
- PATH: string;
- MCP_CONNECTION_NONBLOCKING: string;
- npm_package_json: string;
- _: string;
- LaunchInstanceID: string;
- npm_config_userconfig: string;
- npm_config_init_module: string;
- __CFBundleIdentifier: string;
- npm_command: string;
- PWD: string;
- VSCODE_HANDLES_UNCAUGHT_ERRORS: string;
- npm_lifecycle_event: string;
- EDITOR: string;
- VSCODE_ESM_ENTRYPOINT: string;
- npm_package_name: string;
- LANG: string;
- npm_config_npm_version: string;
- XPC_FLAGS: string;
- MACH_PORT_RENDEZVOUS_PEER_VALDATION: string;
- npm_config_node_gyp: string;
- npm_package_version: string;
- CLAUDE_CODE_ENABLE_TASKS: string;
- XPC_SERVICE_NAME: string;
- GEMINI_API_KEY: string;
- CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING: string;
- SHLVL: string;
- HOME: string;
- CLAUDE_CODE_EXECPATH: string;
- VSCODE_NLS_CONFIG: string;
- APPLICATION_INSIGHTS_NO_STATSBEAT: string;
- HOMEBREW_PREFIX: string;
- npm_config_cache: string;
- LOGNAME: string;
- npm_lifecycle_script: string;
- VSCODE_IPC_HOOK: string;
- VSCODE_CODE_CACHE_PATH: string;
- COREPACK_ENABLE_AUTO_PIN: string;
- npm_config_user_agent: string;
- VSCODE_PID: string;
- CLAUDE_CODE_SESSION_ID: string;
- INFOPATH: string;
- HOMEBREW_CELLAR: string;
- OSLogRateLimit: string;
- CLAUDECODE: string;
- CLAUDE_CODE_MESSAGING_SOCKET: string;
- VSCODE_L10N_BUNDLE_LOCATION: string;
- VSCODE_CWD: string;
- SECURITYSESSIONID: string;
- npm_node_execpath: string;
- npm_config_prefix: string;
- TEST: string;
- VITEST: string;
- NODE_ENV: string;
- PROD: string;
- DEV: string;
- BASE_URL: string;
- MODE: string;
- [key: `PUBLIC_${string}`]: undefined;
- [key: `${string}`]: string | undefined;
- }
-}
-
-/**
- * This module provides access to environment variables set _dynamically_ at runtime and that are _publicly_ accessible.
- *
- * | | Runtime | Build time |
- * | ------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
- * | Private | [`$env/dynamic/private`](https://svelte.dev/docs/kit/$env-dynamic-private) | [`$env/static/private`](https://svelte.dev/docs/kit/$env-static-private) |
- * | Public | [`$env/dynamic/public`](https://svelte.dev/docs/kit/$env-dynamic-public) | [`$env/static/public`](https://svelte.dev/docs/kit/$env-static-public) |
- *
- * Dynamic environment variables are defined by the platform you're running on. For example if you're using [`adapter-node`](https://github.com/sveltejs/kit/tree/main/packages/adapter-node) (or running [`vite preview`](https://svelte.dev/docs/kit/cli)), this is equivalent to `process.env`.
- *
- * **_Public_ access:**
- *
- * - This module _can_ be imported into client-side code
- * - **Only** variables that begin with [`config.kit.env.publicPrefix`](https://svelte.dev/docs/kit/configuration#env) (which defaults to `PUBLIC_`) are included
- *
- * > [!NOTE] In `dev`, `$env/dynamic` includes environment variables from `.env`. In `prod`, this behavior will depend on your adapter.
- *
- * > [!NOTE] To get correct types, environment variables referenced in your code should be declared (for example in an `.env` file), even if they don't have a value until the app is deployed:
- * >
- * > ```env
- * > MY_FEATURE_FLAG=
- * > ```
- * >
- * > You can override `.env` values from the command line like so:
- * >
- * > ```sh
- * > MY_FEATURE_FLAG="enabled" npm run dev
- * > ```
- *
- * For example, given the following runtime environment:
- *
- * ```env
- * ENVIRONMENT=production
- * PUBLIC_BASE_URL=http://example.com
- * ```
- *
- * With the default `publicPrefix` and `privatePrefix`:
- *
- * ```ts
- * import { env } from '$env/dynamic/public';
- * console.log(env.ENVIRONMENT); // => undefined, not public
- * console.log(env.PUBLIC_BASE_URL); // => "http://example.com"
- * ```
- *
- * ```
- *
- * ```
- */
-declare module '$env/dynamic/public' {
- export const env: {
- [key: `PUBLIC_${string}`]: string | undefined;
- }
-}
diff --git a/.svelte-kit/env.d.ts b/.svelte-kit/env.d.ts
deleted file mode 100644
index d7f6c97..0000000
--- a/.svelte-kit/env.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-// See https://svelte.dev/docs/kit/environment-variables for more information
\ No newline at end of file
diff --git a/.svelte-kit/generated/client/app.js b/.svelte-kit/generated/client/app.js
deleted file mode 100644
index ceb58ac..0000000
--- a/.svelte-kit/generated/client/app.js
+++ /dev/null
@@ -1,38 +0,0 @@
-// in dev, this makes Vite inject its client as this module's first dependency,
-// so that global constant replacements are installed before any other module
-// (including user hooks) evaluates. In build it's inert.
-import.meta.hot;
-
-
-
-
-export { matchers } from './matchers.js';
-
-export const nodes = [
- () => import('./nodes/0'),
- () => import('./nodes/1')
-];
-
-export const server_loads = [];
-
-export const dictionary = {
-
- };
-
-export const hooks = {
- handleError: (({ error }) => { console.error(error) }),
-
- reroute: (() => {}),
- transport: {}
-};
-
-export const decoders = Object.fromEntries(Object.entries(hooks.transport).map(([k, v]) => [k, v.decode]));
-export const encoders = Object.fromEntries(Object.entries(hooks.transport).map(([k, v]) => [k, v.encode]));
-
-export const hash = false;
-
-export const decode = (type, value) => decoders[type](value);
-
-export { default as root } from '../root.js';
-
-export const get_error_template = () => import('../shared/error-template.js').then(m => m.default);
\ No newline at end of file
diff --git a/.svelte-kit/generated/client/matchers.js b/.svelte-kit/generated/client/matchers.js
deleted file mode 100644
index f6bd30a..0000000
--- a/.svelte-kit/generated/client/matchers.js
+++ /dev/null
@@ -1 +0,0 @@
-export const matchers = {};
\ No newline at end of file
diff --git a/.svelte-kit/generated/client/nodes/0.js b/.svelte-kit/generated/client/nodes/0.js
deleted file mode 100644
index b7f02ca..0000000
--- a/.svelte-kit/generated/client/nodes/0.js
+++ /dev/null
@@ -1 +0,0 @@
-export { default as component } from "../../../../web/node_modules/@sveltejs/kit/src/runtime/components/svelte-5/layout.svelte";
\ No newline at end of file
diff --git a/.svelte-kit/generated/client/nodes/1.js b/.svelte-kit/generated/client/nodes/1.js
deleted file mode 100644
index f7e09e9..0000000
--- a/.svelte-kit/generated/client/nodes/1.js
+++ /dev/null
@@ -1 +0,0 @@
-export { default as component } from "../../../../web/node_modules/@sveltejs/kit/src/runtime/components/svelte-5/error.svelte";
\ No newline at end of file
diff --git a/.svelte-kit/generated/shared/error-template.js b/.svelte-kit/generated/shared/error-template.js
deleted file mode 100644
index f66e595..0000000
--- a/.svelte-kit/generated/shared/error-template.js
+++ /dev/null
@@ -1 +0,0 @@
-export default ({ status, message }) => "\n\n\t
\n\t\t\n\t\t" + message + "\n\n\t\t\n\t\n\t\n\t\t\n\t\t\t
" + status + "\n\t\t\t
\n\t\t\t\t
" + message + "
\n\t\t\t\n\t\t
\n\t\n\n";
\ No newline at end of file
diff --git a/.svelte-kit/tsconfig.json b/.svelte-kit/tsconfig.json
deleted file mode 100644
index f727b03..0000000
--- a/.svelte-kit/tsconfig.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "compilerOptions": {
- "paths": {
- "$app/types": [
- "./types/index.d.ts"
- ]
- },
- "rootDirs": [
- "..",
- "./types"
- ],
- "verbatimModuleSyntax": true,
- "isolatedModules": true,
- "lib": [
- "esnext",
- "DOM",
- "DOM.Iterable"
- ],
- "moduleResolution": "bundler",
- "module": "esnext",
- "noEmit": true,
- "target": "esnext"
- },
- "include": [
- "ambient.d.ts",
- "env.d.ts",
- "non-ambient.d.ts",
- "./types/**/$types.d.ts",
- "../vite.config.js",
- "../vite.config.ts",
- "../src/**/*.js",
- "../src/**/*.ts",
- "../src/**/*.svelte",
- "../test/**/*.js",
- "../test/**/*.ts",
- "../test/**/*.svelte",
- "../tests/**/*.js",
- "../tests/**/*.ts",
- "../tests/**/*.svelte"
- ],
- "exclude": [
- "../node_modules/**",
- "../src/service-worker.js",
- "../src/service-worker/**/*.js",
- "../src/service-worker.ts",
- "../src/service-worker/**/*.ts",
- "../src/service-worker.d.ts",
- "../src/service-worker/**/*.d.ts"
- ]
-}
\ No newline at end of file