← Biological Sequence & Alignment ViewerCONTENT HISTORY

Update to Biological Sequence & Alignment Viewer

Snapshot Oct 8, 2026 · 18:02 UTC · version 0.1.51

WHAT CHANGED · RULE-BASED ANALYSIS

Package or technical metadata updated

Package contents changed in 385 files: .codex-plugin/plugin.json, .gitignore, .mcp.json, …. Open the file diff to inspect the edits.

Observed in package metadata. These changes alone do not establish a new customer-facing feature.

Package file

Before

5b10b3961e87259ffc258d7e43c8de81b441fc7c1fc548c3acf7f9443fe669b2

After

458a047b8d1b108a9131d381d1b52cdf1e311e74356823747d581ee9b0662825

Package file

Before

{"sha256":"71eb94ea9dfed51ac0414bdc87aedc0190ba95586a03648ff507d9f1a9ab7f31","size":104}

After

Not present

Package file

Before

55864e479f655e166053f5e6bcd9b1b8f7239fb82f27a2c8104ed450dd701ce1

After

e867df32928212c16043bd46f8c5402c21e5b8aac31fc2f6b2d471f7516a1b02

Package file

Before

136

After

402

Compare saved observations

Download comparison JSON

Changed files

.codex-plugin/plugin.json →

.gitignore →

.mcp.json →

CAPABILITY_MATRIX.md →

LSC_109_QUALIFICATION.md →

PUBLIC_README.md →

README.md →

STARTER_EXAMPLES.md →

THIRD_PARTY_NOTICES.md →

buildkite/pipeline.yml →

dist/server.mjs →

dist/views/app.js.gz →

dist/views/styles.css →

e2e/build-harness.mjs →

e2e/codex-managed-starter.spec.ts →

e2e/installed-host-fault-injection.mjs →

e2e/installed-host-server.mjs →

e2e/installed-host.js →

e2e/installed.html →

e2e/model-host-app-mount.mjs →

e2e/model-host-root-proxy-lib.mjs →

e2e/model-host-root-proxy.mjs →

e2e/persistent-native-recovery.spec.ts →

e2e/plugin-runtime-root.mjs →

e2e/public-starter-evidence.spec.ts →

e2e/public-starter-failure-evidence.spec.ts →

e2e/sequence-viewer.spec.ts →

integrity.json →

launch_node →

launch_node.cmd →

lsc-109-qualification.json →

package.json →

playwright.config.ts →

pnpm-lock.yaml →

pnpm-workspace.yaml →

scripts/build.mjs →

scripts/bundle-digest.mjs →

scripts/bundle-digest.test.mjs →

scripts/bundle.mjs →

scripts/capture-marketplace-screenshots.mjs →

scripts/generate-third-party-notices.mjs →

scripts/manual-format-smoke.mjs →

scripts/manual-format-smoke.test.mjs →

scripts/model-host-root-proxy.test.mjs →

scripts/run-opt-in-vitest.mjs →

scripts/run-starter-qualification.mjs →

scripts/source-snapshot.mjs →

scripts/source-snapshot.test.mjs →

scripts/validate-example-prompts.mjs →

scripts/validate-example-prompts.test.mjs →

scripts/validate-public-bundle.mjs →

scripts/validate-starter-qualification.mjs →

scripts/validate-starter-qualification.test.mjs →

skills/biological-sequence-viewer/SKILL.md →

smoke-fixtures/aligned-fasta-likely-msa.fasta →

smoke-fixtures/alignment.msf →

smoke-fixtures/alignment.nex →

smoke-fixtures/alignment.pir →

smoke-fixtures/circular-plasmid.gb →

smoke-fixtures/clustal-consensus.aln →

smoke-fixtures/dna-demo.aln-fasta →

smoke-fixtures/dna-single.fasta →

smoke-fixtures/equal-width-ungapped-ambiguous.fasta →

smoke-fixtures/interleaved.phy →

smoke-fixtures/minimal-embl.embl →

smoke-fixtures/minimal-genbank.gb →

smoke-fixtures/multi-record-unaligned.fasta →

smoke-fixtures/not-an-alignment.txt →

smoke-fixtures/protein-profile.a2m →

smoke-fixtures/protein-profile.a3m →

smoke-fixtures/protein-single.faa →

smoke-fixtures/rna-single.fasta →

smoke-fixtures/rna-structure.sto →

smoke-fixtures/small.fastq →

src/amino-acid-alphabet.ts →

src/artifact-state-key.ts →

src/bam-decoder.test.ts →

src/bam-decoder.ts →

src/binary-sequence-envelope.test.ts →

src/binary-sequence-envelope.ts →

src/biological-sequence-artifact-classifier.test.ts →

src/biological-sequence-artifact-classifier.ts →

src/biological-sequence-viewer-model.test.ts →

src/biological-sequence-viewer-model.ts →

src/biological-sequence-viewer.test.tsx →

src/biological-sequence-viewer.tsx →

src/chat-file-resource.test.ts →

src/chat-file-resource.ts →

src/compressed-file-name.test.ts →

src/compressed-file-name.ts →

src/cram-decoder.test.ts →

src/cram-decoder.ts →

src/export-actions-workspace.test.tsx →

src/file-kind.test.ts →

src/file-kind.ts →

src/incremental-export-validator.test.ts →

src/incremental-export-validator.ts →

src/indexed-sequence-envelope.ts →

src/indexed-sequence-parser.test.ts →

src/indexed-sequence-parser.ts →

src/large-workspace-saveas.qualification.test.ts →

src/memory-filehandle.ts →

src/model-context-limits.test.ts →

src/model-context.test.ts →

src/model-context.ts →

src/msa/alignment-editing.test.ts →

src/msa/alignment-editing.ts →

src/msa/alignment-export-provenance.test.ts →

src/msa/alignment-export-provenance.ts →

src/msa/alignment-state.test.ts →

src/msa/alignment-state.ts →

src/msa/alignment-workbench-panel.test.tsx →

src/msa/alignment-workbench-panel.tsx →

src/msa/analysis.test.ts →

src/msa/analysis.ts →

src/msa/cell-hover-overlay.tsx →

src/msa/codon.ts →

src/msa/color-legend.tsx →

src/msa/colors.test.ts →

src/msa/colors.ts →

src/msa/consensus.ts →

src/msa/conservation.ts →

src/msa/coordinate-map.ts →

src/msa/export-actions.tsx →

src/msa/exports.test.ts →

src/msa/exports.ts →

src/msa/file-kind.test.ts →

src/msa/file-kind.ts →

src/msa/formats/a2m-a3m.ts →

src/msa/formats/aligned-fasta.ts →

src/msa/formats/clustal.ts →

src/msa/formats/fasta-records.ts →

src/msa/formats/msf.ts →

src/msa/formats/nexus.ts →

src/msa/formats/phylip.ts →

src/msa/formats/pir.ts →

src/msa/formats/stockholm.test.ts →

src/msa/formats/stockholm.ts →

src/msa/guide-tree-panel.tsx →

src/msa/guide-tree.test.ts →

src/msa/guide-tree.ts →

src/msa/hover-details.ts →

src/msa/matrix-renderer.tsx →

src/msa/metadata-panel.tsx →

src/msa/metric-tracks.tsx →

src/msa/model-context.ts →

src/msa/molecule-inference.ts →

src/msa/msa-analysis-worker-factory-vite.ts →

src/msa/msa-analysis-worker.ts →

src/msa/msa-rich-viewer.tsx →

src/msa/overview-strip.tsx →

src/msa/parser.test.ts →

src/msa/parser.ts →

src/msa/performance-banners.tsx →

src/msa/performance.test.ts →

src/msa/performance.ts →

src/msa/phylogenetic-tree-panel.test.ts →

src/msa/phylogenetic-tree-panel.tsx →

src/msa/phylogenetic-tree.test.ts →

src/msa/phylogenetic-tree.ts →

src/msa/pinned-inspector.tsx →

src/msa/preview.test.tsx →

src/msa/residue-alphabet.ts →

src/msa/rna-structure.ts →

src/msa/rows-panel.tsx →

src/msa/scientific-metrics.test.ts →

src/msa/search-results-panel.tsx →

src/msa/search.ts →

src/msa/types.ts →

src/msa/use-alignment-workbench-commands.test.ts →

src/msa/use-alignment-workbench-commands.ts →

src/msa/use-msa-document.ts →

src/msa/use-msa-viewport.ts →

src/msa/virtualization.test.ts →

src/msa/virtualization.ts →

src/msa/warnings-drawer.tsx →

src/msa/workbench-controller.test.ts →

src/msa/workbench-controller.ts →

src/msa/worker-client.test.ts →

src/msa/worker-client.ts →

src/msa/worker-protocol.ts →

src/nucleotide-alphabet.ts →

src/persistent/durable-viewer-state.test.ts →

src/persistent/durable-viewer-state.ts →

src/persistent/native-workspace-publisher.test.ts →

src/persistent/native-workspace-publisher.ts →

src/persistent/recovery-adapter.test.ts →

src/persistent/recovery-adapter.ts →

src/persistent/scientific-data-client.test.ts →

src/persistent/scientific-data-client.ts →

src/persistent/session-adapter.test.ts →

src/persistent/session-adapter.ts →

src/persistent/streaming-source-replacement.test.ts →

src/persistent/streaming-source-replacement.ts →

src/plugin-manifest.test.ts →

src/protocol.test.ts →

src/protocol.ts →

src/public-example-acquisition.live.test.ts →

src/public-example-acquisition.test.ts →

src/public-example-acquisition.ts →

src/resource-error.ts →

src/runtime-contract.ts →

src/scientific-platform-protocol.ts →

src/scientific-platform.test.ts →

src/scientific-platform.ts →

src/sequence/__fixtures__/chromatogram.ts →

src/sequence/__fixtures__/official-vcf-4.3-first-100-sample-variant.vcf →

src/sequence/analysis.test.ts →

src/sequence/analysis.ts →

src/sequence/binary-parser.ts →

src/sequence/chromatogram-panel.test.tsx →

src/sequence/chromatogram-panel.tsx →

src/sequence/chromatogram-query.test.ts →

src/sequence/chromatogram-query.ts →

src/sequence/colors.ts →

src/sequence/coordinate-map.ts →

src/sequence/editing.test.ts →

src/sequence/editing.ts →

src/sequence/evidence-track-panel.test.ts →

src/sequence/evidence-track-panel.test.tsx →

src/sequence/evidence-track-panel.tsx →

src/sequence/export-actions.tsx →

src/sequence/exports.test.ts →

src/sequence/exports.ts →

src/sequence/fastq-quality-analysis.test.ts →

src/sequence/fastq-quality-analysis.ts →

src/sequence/fastq-quality-charts.tsx →

src/sequence/fastq-quality-report.tsx →

src/sequence/fastq-summary-panel.test.tsx →

src/sequence/fastq-summary-panel.tsx →

src/sequence/feature-location.test.ts →

src/sequence/feature-location.ts →

src/sequence/feature-resolution.test.ts →

src/sequence/feature-resolution.ts →

src/sequence/feature-tracks.test.ts →

src/sequence/feature-tracks.tsx →

src/sequence/feature-translation.ts →

src/sequence/file-kind.test.ts →

src/sequence/file-kind.ts →

src/sequence/formats/chromatogram.test.ts →

src/sequence/formats/chromatogram.ts →

src/sequence/formats/embl.ts →

src/sequence/formats/fasta.ts →

src/sequence/formats/fastq.ts →

src/sequence/formats/genbank.ts →

src/sequence/formats/snapgene.test.ts →

src/sequence/formats/snapgene.ts →

src/sequence/genetic-code.test.ts →

src/sequence/genetic-code.ts →

src/sequence/interaction-state.test.ts →

src/sequence/interaction-state.ts →

src/sequence/interface-state.ts →

src/sequence/metadata-panel.tsx →

src/sequence/model-context.test.ts →

src/sequence/model-context.ts →

src/sequence/molecule-inference.test.ts →

src/sequence/molecule-inference.ts →

src/sequence/msa-sequence-adapter.test.ts →

src/sequence/msa-sequence-adapter.ts →

src/sequence/orientation.test.ts →

src/sequence/orientation.ts →

src/sequence/parser.test.ts →

src/sequence/parser.ts →

src/sequence/performance-banners.tsx →

src/sequence/pinned-inspector.tsx →

src/sequence/preview.test.tsx →

src/sequence/quality-track.tsx →

src/sequence/quality.ts →

src/sequence/read-pileup.test.ts →

src/sequence/read-pileup.ts →

src/sequence/record-list-panel.tsx →

src/sequence/search-panel.tsx →

src/sequence/search.test.ts →

src/sequence/search.ts →

src/sequence/selection.test.ts →

src/sequence/selection.ts →

src/sequence/sequence-legend.tsx →

src/sequence/sequence-line-layout.test.ts →

src/sequence/sequence-line-layout.ts →

src/sequence/sequence-overview-geometry.ts →

src/sequence/sequence-overview.test.ts →

src/sequence/sequence-overview.tsx →

src/sequence/sequence-palette.test.ts →

src/sequence/sequence-palette.ts →

src/sequence/sequence-renderer.tsx →

src/sequence/sequence-rich-viewer.tsx →

src/sequence/sequence-toolbar.tsx →

src/sequence/sequence-workbench-panel.test.tsx →

src/sequence/sequence-workbench-panel.tsx →

src/sequence/tracks.test.ts →

src/sequence/tracks.ts →

src/sequence/translation-track.test.ts →

src/sequence/translation-track.tsx →

src/sequence/translation.test.ts →

src/sequence/translation.ts →

src/sequence/types.ts →

src/sequence/use-sequence-interface-commands.ts →

src/sequence/use-sequence-search.ts →

src/sequence/use-sequence-workbench-commands.test.ts →

src/sequence/use-sequence-workbench-commands.ts →

src/sequence/virtualization.test.ts →

src/sequence/virtualization.ts →

src/sequence/warnings-drawer.tsx →

src/sequence/workbench-controller.test.ts →

src/sequence/workbench-controller.ts →

src/sequence/workspace-track-browser-dialog.test.tsx →

src/sequence/workspace-track-browser-dialog.tsx →

src/server-command-store.test.ts →

src/server-command-store.ts →

src/server-workbench-store.test.ts →

src/server-workbench-store.ts →

src/server-workbench-upload.test.ts →

src/server-workbench-upload.ts →

src/server.test.ts →

src/server.ts →

src/spreadsheet-safety.test.ts →

src/spreadsheet-safety.ts →

src/target-resolution.test.ts →

src/target-resolution.ts →

src/test-setup.ts →

src/text-lines.ts →

src/ui/button.tsx →

src/ui/status-panel.tsx →

src/ui/workbench-disclosure.tsx →

src/ui/workbench-feedback.ts →

src/ui/workbench-tool-controller.ts →

src/ui/workbench-tools.test.tsx →

src/ui/workbench-tools.tsx →

src/version.ts →

src/viewer-commands.test.ts →

src/viewer-commands.ts →

src/viewer-operations.test.ts →

src/viewer-operations.ts →

src/viewer-query.test.ts →

src/viewer-query.ts →

src/views/__fixtures__/app-host.ts →

src/views/app-native.test.tsx →

src/views/app-resource-loading.test.tsx →

src/views/app.test.tsx →

src/views/app.tsx →

src/views/scientific-platform-client.ts →

src/views/styles.css →

src/views/workbench-persistence.test.ts →

src/views/workbench-persistence.ts →

src/views/workspace-artifact-stream.test.ts →

src/views/workspace-artifact-stream.ts →

src/views/workspace-export-producers.test.ts →

src/views/workspace-export-producers.ts →

src/views/workspace-sessions.test.ts →

src/views/workspace-sessions.ts →

src/views/workspace-tracks.test.ts →

src/views/workspace-tracks.ts →

src/vite-env.d.ts →

src/workbench-exports.test.ts →

src/workbench-exports.ts →

src/workbench-persistence-protocol.test.ts →

src/workbench-persistence-protocol.ts →

src/workbench-persistence.integration.test.ts →

src/workbench-session-validation.test.ts →

src/workbench-session-validation.ts →

src/workbench-state.test.ts →

src/workbench-state.ts →

src/workspace-atomic-publisher.test.ts →

src/workspace-atomic-publisher.ts →

src/workspace-browser-protocol.test.ts →

src/workspace-browser-protocol.ts →

src/workspace-export-authorization.test.ts →

src/workspace-export-authorization.ts →

src/workspace-export-publisher.test.ts →

src/workspace-export-publisher.ts →

src/workspace-publish-button.test.tsx →

src/workspace-publish-button.tsx →

src/workspace-session-controls.test.tsx →

src/workspace-session-controls.tsx →

src/workspace-session-manager.test.ts →

src/workspace-session-manager.ts →

src/workspace-session-protocol.test.ts →

src/workspace-session-protocol.ts →

src/workspace-track-browser.test.ts →

src/workspace-track-browser.ts →

src/workspace-track-protocol.test.ts →

src/workspace-track-protocol.ts →

starter-examples.json →

tsconfig.json →

vite.config.ts →

src/public-example-acquisition.ts

--- before
+++ after
@@ -1,1649 +0,0 @@
-import { createHash } from "node:crypto";
-import { constants } from "node:fs";
-import { lstat, mkdir, open, realpath, stat } from "node:fs/promises";
-import path from "node:path";
-import { fileURLToPath } from "node:url";
-import { promisify } from "node:util";
-import { gunzip as gunzipCallback } from "node:zlib";
-
-import { ListRootsResultSchema } from "@modelcontextprotocol/sdk/types.js";
-import { z } from "zod";
-
-import { alignSequences, exportAlignedFasta } from "./msa/alignment-editing";
-import { parseMsa } from "./msa/parser";
-import {
-  sequencePublicExampleIdSchema,
-  sequenceViewerPublicExampleToolInputSchema,
-} from "./protocol";
-import { buildFastqExport } from "./sequence/exports";
-import { parseSequenceDocumentResult } from "./sequence/parser";
-import { reverseComplement, translateFrame } from "./sequence/translation";
-import type { RootsRequestExtra } from "./chat-file-resource";
-import { SEQUENCE_VIEWER_VERSION } from "./version";
-import {
-  isSequenceWorkspaceCollisionError,
-  publishSequenceWorkspacePair,
-} from "./workspace-atomic-publisher";
-
-const gunzip = promisify(gunzipCallback);
-
-const EXAMPLES_DIRECTORY_NAME = "codex-viewer-examples";
-const MAX_NETWORK_RESPONSE_BYTES = 16 * 1_024 * 1_024;
-const MAX_DECODED_RESPONSE_BYTES = 64 * 1_024 * 1_024;
-const MAX_PROVENANCE_BYTES = 64 * 1_024;
-const MAX_COLLISION_ATTEMPTS = 32;
-const REQUEST_TIMEOUT_MS = 30_000;
-const VALIDATOR_VERSION = 1;
-const ENA_SUBSET_RECORDS = 500;
-const NCBI_LAMBDA_CI_CODING_SHA256 =
-  "a51dec784e51f85a35d643a84820c89430b526cd9bf54a398b91c70045cc62e8";
-const NCBI_LAMBDA_CI_PROTEIN_SHA256 =
-  "ec5d954fd10be8c19c920e78badc5d9e9cc281f6801e2c5fde3803c9f133f580";
-const RFAM_RF00360_RELEASE_15_1_SEED_COUNT = 9;
-const UNIPROT_RAS_ALIGNMENT_BYTE_LENGTH = 786;
-const UNIPROT_RAS_ALIGNMENT_SHA256 =
-  "cb32dd89ca7855f7666fbdf3f2ff926f935b1dbc9e7f57573f884dda7e59c68f";
-const UNIPROT_RAS_RECORD_LENGTH = 189;
-const UNIPROT_RAS_ALIGNMENT_SCORES = Object.freeze({
-  gapPenalty: -2,
-  matchScore: 2,
-  mismatchScore: -1,
-});
-
-type PublicExampleIntegrityPins = {
-  ena: {
-    artifactByteLength: number;
-    artifactSha256: string;
-    compressedByteLength: number;
-    compressedMd5: string;
-    gcFraction: number;
-    q30Fraction: number;
-    readLengthMax: number;
-    readLengthMin: number;
-    sourceRecords: number;
-    totalBases: number;
-  };
-};
-
-const DEFAULT_PUBLIC_EXAMPLE_INTEGRITY_PINS: PublicExampleIntegrityPins = {
-  ena: {
-    artifactByteLength: 480_372,
-    artifactSha256:
-      "46bd72991d9c9c2bf64751e88e52548d852d5fa021da4815ee6f6517a51b18b9",
-    compressedByteLength: 127_526,
-    compressedMd5: "81735432a6f578b332aae58cdbd95231",
-    gcFraction: 67_930 / 235_490,
-    q30Fraction: 224_652 / 235_490,
-    readLengthMax: 471,
-    readLengthMin: 469,
-    sourceRecords: 967,
-    totalBases: 235_490,
-  },
-};
-
-const UNIPROT_RAS_ENTRIES = [
-  {
-    accession: "P01116",
-    caax: "CIIM",
-    entryName: "RASK_HUMAN",
-    gene: "KRAS",
-    proteinName: "GTPase KRas",
-    sequenceSha256:
-      "1d5a9ab11f64cb886d8ffa08a153c412b2d190fcf70e5690cd4b4c7efcdee53a",
-    sequenceVersion: 1,
-  },
-  {
-    accession: "P01111",
-    caax: "CVVM",
-    entryName: "RASN_HUMAN",
-    gene: "NRAS",
-    proteinName: "GTPase NRas",
-    sequenceSha256:
-      "89016168d82568aa2caa97166c99ff0b61c6fb19d5729272a7e3f03ab26ce518",
-    sequenceVersion: 1,
-  },
-  {
-    accession: "P01112",
-    caax: "CVLS",
-    entryName: "RASH_HUMAN",
-    gene: "HRAS",
-    proteinName: "GTPase HRas",
-    sequenceSha256:
-      "d9360238882c010c8474ef1eba1d2532cd96e706c7d7f689ea2014f37f8f886c",
-    sequenceVersion: 1,
-  },
-] as const;
-
-export const SEQUENCE_ACQUIRE_PUBLIC_EXAMPLE_TOOL_NAME =
-  "sequence.acquire_public_example";
-
-export { sequencePublicExampleIdSchema } from "./protocol";
-
-export const sequenceAcquirePublicExampleInputSchema =
-  sequenceViewerPublicExampleToolInputSchema.extend({
-    workspaceRoot:
-      sequenceViewerPublicExampleToolInputSchema.shape.workspaceRoot.refine(
-        (root) => root == null || path.isAbsolute(root),
-        "workspaceRoot must be an absolute local path.",
-      ),
-  });
-
-export type SequencePublicExampleId = z.infer<
-  typeof sequencePublicExampleIdSchema
->;
-
-export type SequenceAcquirePublicExampleInput = z.infer<
-  typeof sequenceAcquirePublicExampleInputSchema
->;
-
-type FetchLike = (
-  input: string | URL | Request,
-  init?: RequestInit,
-) => Promise<Response>;
-
-type FileSystemIdentity = {
-  device: bigint;
-  inode: bigint;
-};
-
-type HttpEvidence = {
-  byteLength: number;
-  contentType: string | null;
-  etag: string | null;
-  lastModified: string | null;
-  sha256: string;
-  url: string;
-};
-
-type ArtifactValidation = {
-  format: "aligned-fasta" | "fastq" | "genbank" | "stockholm";
-  recordCount?: number;
-  residueCount?: number;
-  rowCount?: number;
-  columnCount?: number;
-};
-
-type AcquiredBytes = {
-  artifactBytes: Buffer;
-  database: "ENA" | "NCBI Nuccore" | "Rfam" | "UniProtKB";
-  derivation?: Record<string, unknown>;
-  requestedIdentifier: string;
-  resolvedIdentifier: string;
-  sources: Array<HttpEvidence & Record<string, unknown>>;
-  subset: Record<string, unknown> | null;
-  termsUrl: string;
-  validation: ArtifactValidation;
-};
-
-export type SequencePublicExampleProvenanceSummary = {
-  artifactByteLength: number;
-  artifactRelativePath: string;
-  artifactSha256: string;
-  database: AcquiredBytes["database"];
-  derivation?: Record<string, unknown>;
-  exampleId: SequencePublicExampleId;
-  provenanceRelativePath: string;
-  requestedIdentifier: string;
-  resolvedIdentifier: string;
-  subset: Record<string, unknown> | null;
-};
-
-export type SequencePublicExampleAcquisition = {
-  absolutePath: string;
-  fileIdentity: SequencePublicExampleFileIdentity;
-  fileName: string;
-  provenance: SequencePublicExampleProvenanceSummary;
-};
-
-export type SequencePublicExampleFileIdentity = {
-  device: string;
-  inode: string;
-  modifiedAtNanoseconds: string;
-  size: string;
-};
-
-export type SequencePublicExampleAcquirer = {
-  acquire: (
-    input: SequenceAcquirePublicExampleInput,
-    extra: RootsRequestExtra,
-  ) => Promise<SequencePublicExampleAcquisition>;
-};
-
-export class PublicExampleAcquisitionError extends Error {
-  constructor(message: string) {
-    super(message);
-    this.name = "PublicExampleAcquisitionError";
-  }
-}
-
-export function throwIfPublicExampleAcquisitionAborted(
-  signal?: AbortSignal,
-): void {
-  if (!signal?.aborted) return;
-  throw new PublicExampleAcquisitionError(
-    "Public example acquisition was cancelled. No viewer was opened.",
-  );
-}
-
-type SequencePublicExampleAcquisitionLifecycleHooks = {
-  afterPublishedArtifactVerified?: () => Promise<void> | void;
-};
-
-export class SequencePublicExampleAcquisitionStore
-  implements SequencePublicExampleAcquirer
-{
-  readonly #lifecycleHooks: SequencePublicExampleAcquisitionLifecycleHooks;
-  readonly #fetch: FetchLike;
-  readonly #integrityPins: PublicExampleIntegrityPins;
-  readonly #now: () => Date;
-  readonly #requestTimeoutMs: number;
-
-  constructor({
-    lifecycleHooks = {},
-    fetchImpl = globalThis.fetch.bind(globalThis),
-    integrityPins = DEFAULT_PUBLIC_EXAMPLE_INTEGRITY_PINS,
-    now = () => new Date(),
-    requestTimeoutMs = REQUEST_TIMEOUT_MS,
-  }: {
-    lifecycleHooks?: SequencePublicExampleAcquisitionLifecycleHooks;
-    fetchImpl?: FetchLike;
-    /** Deterministic unit fixtures may supply equivalent pins; installed hosts use the catalog defaults. */
-    integrityPins?: PublicExampleIntegrityPins;
-    now?: () => Date;
-    requestTimeoutMs?: number;
-  } = {}) {
-    this.#lifecycleHooks = lifecycleHooks;
-    this.#fetch = fetchImpl;
-    this.#integrityPins = integrityPins;
-    this.#now = now;
-    this.#requestTimeoutMs = requestTimeoutMs;
-  }
-
-  async acquire(
-    input: SequenceAcquirePublicExampleInput,
-    extra: RootsRequestExtra,
-  ): Promise<SequencePublicExampleAcquisition> {
-    let parsedInput: SequenceAcquirePublicExampleInput;
-    let workspace: WorkspaceDestination;
-    try {
-      parsedInput = sequenceAcquirePublicExampleInputSchema.parse(input);
-      workspace = await resolveWorkspaceDestination(
-        parsedInput.workspaceRoot,
-        extra,
-      );
-    } catch (error) {
-      throw normalizeAcquisitionError(error, extra.signal);
-    }
-    const acquiredAt = this.#now().toISOString();
-    let acquired: AcquiredBytes;
-    try {
-      acquired = await this.#acquireBytes(parsedInput.exampleId, extra.signal);
-    } catch (error) {
-      throw normalizeAcquisitionError(error, extra.signal);
-    }
-    const artifactSha256 = sha256(acquired.artifactBytes);
-    try {
-      await assertUnchangedDirectory(workspace);
-      for (let attempt = 1; attempt <= MAX_COLLISION_ATTEMPTS; attempt += 1) {
-        await assertUnchangedDirectory(workspace);
-        const baseName = fileNameForExample(parsedInput.exampleId, attempt);
-        const artifactPath = path.join(workspace.examplesDirectory, baseName);
-        const provenancePath = `${artifactPath}.provenance.json`;
-        const artifactRelativePath = toWorkspaceRelativePath(
-          workspace.root,
-          artifactPath,
-        );
-        const provenanceRelativePath = toWorkspaceRelativePath(
-          workspace.root,
-          provenancePath,
-        );
-        const provenance = createProvenance({
-          acquired,
-          acquiredAt,
-          artifactRelativePath,
-          artifactSha256,
-          exampleId: parsedInput.exampleId,
-          provenanceRelativePath,
-        });
-        const provenanceText = `${JSON.stringify(provenance, null, 2)}\n`;
-        const provenanceBytes = Buffer.byteLength(provenanceText, "utf8");
-        if (provenanceBytes > MAX_PROVENANCE_BYTES) {
-          throw new PublicExampleAcquisitionError(
-            "The public-source provenance exceeded its safety budget. Retry after updating the plugin.",
-          );
-        }
-        try {
-          await publishSequenceWorkspacePair({
-            artifact: acquired.artifactBytes,
-            artifactPath,
-            hooks: {
-              beforeArtifactLink: () => assertUnchangedDirectory(workspace),
-              beforeCommit: async () => {
-                await assertUnchangedDirectory(workspace);
-                await verifyPublishedArtifact({
-                  artifactPath,
-                  expectedByteLength: acquired.artifactBytes.byteLength,
-                  expectedSha256: artifactSha256,
-                });
-                await this.#lifecycleHooks.afterPublishedArtifactVerified?.();
-                throwIfPublicExampleAcquisitionAborted(extra.signal);
-              },
-              beforeSidecarLink: () => assertUnchangedDirectory(workspace),
-            },
-            sidecar: provenanceText,
-            sidecarPath: provenancePath,
-            signal: extra.signal,
-          });
-        } catch (error) {
-          if (isSequenceWorkspaceCollisionError(error)) {
-            continue;
-          }
-          throw error;
-        }
-        const fileIdentity = await verifyPublishedArtifact({
-          artifactPath,
-          expectedByteLength: acquired.artifactBytes.byteLength,
-          expectedSha256: artifactSha256,
-        });
-        return {
-          absolutePath: artifactPath,
-          fileIdentity,
-          fileName: baseName,
-          provenance: {
-            artifactByteLength: acquired.artifactBytes.byteLength,
-            artifactRelativePath,
-            artifactSha256,
-            database: acquired.database,
-            ...(acquired.derivation == null
-              ? {}
-              : { derivation: acquired.derivation }),
-            exampleId: parsedInput.exampleId,
-            provenanceRelativePath,
-            requestedIdentifier: acquired.requestedIdentifier,
-            resolvedIdentifier: acquired.resolvedIdentifier,
-            subset: acquired.subset,
-          },
-        };
-      }
-      throw new PublicExampleAcquisitionError(
-        "The public example destination is full. Remove an old example version and retry.",
-      );
-    } catch (error) {
-      throw normalizeAcquisitionError(error, extra.signal);
-    }
-  }
-
-  async #acquireBytes(
-    exampleId: SequencePublicExampleId,
-    signal?: AbortSignal,
-  ): Promise<AcquiredBytes> {
-    switch (exampleId) {
-      case "ena-drr037765-first-500":
-        return this.#acquireEnaReads(signal);
-      case "ncbi-nc-001416-1":
-        return this.#acquireNcbiGenBank(signal);
-      case "rfam-rf00360-15-1":
-        return this.#acquireRfamAlignment(signal);
-      case "uniprot-human-ras-sv1":
-        return this.#acquireUniProtRas(signal);
-    }
-  }
-
-  async #acquireUniProtRas(signal?: AbortSignal): Promise<AcquiredBytes> {
-    const responses = await Promise.all(
-      UNIPROT_RAS_ENTRIES.map(async (entry) => {
-        const url = new URL(
-          `https://rest.uniprot.org/uniprotkb/${entry.accession}.fasta`,
-        );
-        const response = await this.#fetchBounded({
-          allowedHosts: new Set(["rest.uniprot.org"]),
-          maxBytes: 32 * 1_024,
-          signal,
-          url,
-        });
-        const text = decodeUtf8(
-          response.bytes,
-          `UniProtKB ${entry.accession} FASTA response`,
-        );
-        rejectHtmlPayload(text, `UniProtKB ${entry.accession} FASTA response`);
-        return {
-          entry,
-          evidence: response.evidence,
-          record: validateUniProtRasRecord(text, entry),
-        };
-      }),
-    );
-    signal?.throwIfAborted();
-    const alignment = alignSequences(
-      responses.map(({ entry, record }) => ({
-        description: `${entry.entryName} ${entry.proteinName}, UniProtKB reviewed sequence version ${entry.sequenceVersion}`,
-        id: entry.accession,
-        label: entry.accession,
-        metadata: {
-          entryName: entry.entryName,
-          gene: entry.gene,
-          sequenceSha256: entry.sequenceSha256,
-          sequenceVersion: String(entry.sequenceVersion),
-        },
-        sequence: record.sequence,
-        sourceId: entry.accession,
-      })),
-      UNIPROT_RAS_ALIGNMENT_SCORES,
-      "builtin-center-star",
-    );
-    if (
-      alignment.engine !== "builtin-center-star" ||
-      alignment.alignedLength !== 191 ||
-      alignment.rows.length !== UNIPROT_RAS_ENTRIES.length ||
-      alignment.rows.some(
-        (row, index) =>
-          row.label !== UNIPROT_RAS_ENTRIES[index]?.accession ||
-          row.alignedSequence.replaceAll("-", "").length !==
-            UNIPROT_RAS_RECORD_LENGTH ||
-          row.alignedSequence.length !== alignment.alignedLength,
-      )
-    ) {
-      throw new PublicExampleAcquisitionError(
-        "The bounded RAS center-star alignment did not match its deterministic contract.",
-      );
-    }
-    const artifactText = exportAlignedFasta(alignment.rows);
-    const artifactBytes = Buffer.from(artifactText, "utf8");
-    if (
-      artifactBytes.byteLength !== UNIPROT_RAS_ALIGNMENT_BYTE_LENGTH ||
-      sha256(artifactBytes) !== UNIPROT_RAS_ALIGNMENT_SHA256
-    ) {
-      throw new PublicExampleAcquisitionError(
-        "The bounded RAS center-star alignment artifact changed. Review the derivation before updating this starter.",
-      );
-    }
-    const parsed = parseMsa(artifactText, "human-RAS-UniProt-SV1.aln-fasta");
-    const expectedAccessions = UNIPROT_RAS_ENTRIES.map(
-      ({ accession }) => accession,
-    );
-    if (parsed.status !== "success") {
-      throw new PublicExampleAcquisitionError(
-        `The canonical UniProtKB RAS alignment failed production MSA validation: ${parsed.message}`,
-      );
-    }
-    if (
-      parsed.document.rows.length !== UNIPROT_RAS_ENTRIES.length ||
-      parsed.document.alignedLength !== alignment.alignedLength ||
-      parsed.document.rows.some(
-        (row, index) => row.label !== expectedAccessions[index],
-      )
-    ) {
-      throw new PublicExampleAcquisitionError(
-        "The canonical UniProtKB RAS alignment failed production MSA validation.",
-      );
-    }
-    const requestedIdentifier = UNIPROT_RAS_ENTRIES.map(
-      ({ accession }) => accession,
-    ).join(",");
-    const resolvedIdentifier = UNIPROT_RAS_ENTRIES.map(
-      ({ accession, sequenceVersion }) => `${accession}@SV${sequenceVersion}`,
-    ).join("+");
-    return {
-      artifactBytes,
-      database: "UniProtKB",
-      derivation: {
-        engine: alignment.engine,
-        inputOrder: expectedAccessions,
-        parameters: alignment.parameters,
-        warning: alignment.warning,
-      },
-      requestedIdentifier,
-      resolvedIdentifier,
-      sources: responses.map(({ entry, evidence }) => ({
-        ...evidence,
-        accession: entry.accession,
-        entryName: entry.entryName,
-        gene: entry.gene,
-        role: "reviewed-protein-sequence",
-        sequenceSha256: entry.sequenceSha256,
-        sequenceVersion: entry.sequenceVersion,
-      })),
-      subset: null,
-      termsUrl: "https://www.uniprot.org/help/license",
-      validation: {
-        columnCount: parsed.document.alignedLength,
-        format: "aligned-fasta",
-        rowCount: parsed.document.rows.length,
-      },
-    };
-  }
-
-  async #acquireNcbiGenBank(signal?: AbortSignal): Promise<AcquiredBytes> {
-    const requestedIdentifier = "NC_001416.1";
-    const url = new URL(
-      "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi",
-    );
-    url.search = new URLSearchParams({
-      db: "nuccore",
-      email: "support@openai.com",
-      id: requestedIdentifier,
-      retmode: "text",
-      rettype: "gbwithparts",
-      tool: "OpenAISequenceViewer",
-    }).toString();
-    const response = await this.#fetchBounded({
-      allowedHosts: new Set(["eutils.ncbi.nlm.nih.gov"]),
-      maxBytes: 2 * 1_024 * 1_024,
-      signal,
-      url,
-    });
-    const text = decodeUtf8(response.bytes, "NCBI GenBank response");
-    rejectHtmlPayload(text, "NCBI GenBank response");
-    if (
-      !/^LOCUS\s+/mu.test(text) ||
-      !/^ACCESSION\s+NC_001416(?:\s|$)/mu.test(text) ||
-      !/^VERSION\s+NC_001416\.1(?:\s|$)/mu.test(text) ||
-      !/^ORIGIN\s*$/mu.test(text) ||
-      !/\/\/\s*$/u.test(text)
-    ) {
-      throw new PublicExampleAcquisitionError(
-        "NCBI returned a record that did not match versioned accession NC_001416.1.",
-      );
-    }
-    const parsed = parseSequenceDocumentResult({
-      contents: text,
-      fileName: "NC_001416.1.gb",
-    });
-    if (
-      parsed.status !== "success" ||
-      parsed.document.format !== "genbank" ||
-      parsed.document.records.length !== 1
-    ) {
-      throw new PublicExampleAcquisitionError(
-        "NCBI returned malformed, incomplete, or ambiguous GenBank data for NC_001416.1.",
-      );
-    }
-    const [record] = parsed.document.records;
-    if (
-      record.sourceLabel !== "NC_001416" ||
-      record.length !== 48_502 ||
-      record.metadata.accession !== "NC_001416" ||
-      record.metadata.version !== "NC_001416.1" ||
-      !hasExactCiCds(record) ||
-      !hasExactLambdaOperator(record, "operator-r3", 37_951, 37_967) ||
-      !hasExactLambdaOperator(record, "operator-r2", 37_974, 37_990) ||
-      !hasExactLambdaOperator(record, "operator-r1", 37_998, 38_014)
-    ) {
-      throw new PublicExampleAcquisitionError(
-        "NCBI returned NC_001416.1 without the expected 48,502-base sequence, cI CDS, or lambda operator annotations.",
-      );
-    }
-    const locusDate = /^LOCUS\s+.*?\s(\d{2}-[A-Z]{3}-\d{4})\s*$/mu.exec(
-      text,
-    )?.[1];
-    return {
-      artifactBytes: response.bytes,
-      database: "NCBI Nuccore",
-      requestedIdentifier,
-      resolvedIdentifier: requestedIdentifier,
-      sources: [
-        {
-          ...response.evidence,
-          annotationDate: locusDate ?? null,
-          validatedCi: {
-            codingSequenceSha256: NCBI_LAMBDA_CI_CODING_SHA256,
-            geneticCodeId: 11,
-            proteinAccession: "NP_040628.1",
-            proteinLength: 237,
-            proteinSha256: NCBI_LAMBDA_CI_PROTEIN_SHA256,
-          },
-          sequenceVersion: requestedIdentifier,
-        },
-      ],
-      subset: null,
-      termsUrl: "https://www.ncbi.nlm.nih.gov/home/about/policies/",
-      validation: {
-        format: "genbank",
-        recordCount: parsed.document.records.length,
-        residueCount: record.sequence.length,
-      },
-    };
-  }
-
-  async #acquireRfamAlignment(signal?: AbortSignal): Promise<AcquiredBytes> {
-    const accession = "RF00360";
-    const release = "15.1";
-    const archiveUrl = new URL(
-      `https://ftp.ebi.ac.uk/pub/databases/Rfam/${release}/Rfam.seed.gz`,
-    );
-    const archive = await this.#fetchBounded({
-      allowedHosts: new Set(["ftp.ebi.ac.uk"]),
-      maxBytes: 8 * 1_024 * 1_024,
-      signal,
-      url: archiveUrl,
-    });
-    let decodedArchive: Buffer;
-    try {
-      signal?.throwIfAborted();
-      decodedArchive = await gunzip(archive.bytes, {
-        maxOutputLength: MAX_DECODED_RESPONSE_BYTES,
-      });
-      signal?.throwIfAborted();
-    } catch {
-      if (signal?.aborted) {
-        throw new PublicExampleAcquisitionError(
-          "Public example acquisition was cancelled. No viewer was opened.",
-        );
-      }
-      throw new PublicExampleAcquisitionError(
-        `The Rfam ${release} seed archive was truncated, malformed, or exceeded the decoded-size budget.`,
-      );
-    }
-    const alignmentBytes = extractRfamSeedAlignment(
-      decodedArchive,
-      accession,
-      release,
-    );
-    const text = decodeUtf8(alignmentBytes, "Rfam Stockholm response");
-    rejectHtmlPayload(text, "Rfam Stockholm response");
-    const seedCount = parseRfamSeedCount(text, accession, release);
-    if (
-      !/^# STOCKHOLM 1\.0\s*$/mu.test(text) ||
-      !new RegExp(`^#=GF\\s+AC\\s+${accession}\\s*$`, "mu").test(text) ||
-      !/^#=GF\s+BM\s+.*\bSEED\b.*$/mu.test(text) ||
-      !/\/\/\s*$/u.test(text)
-    ) {
-      throw new PublicExampleAcquisitionError(
-        `Rfam returned an alignment that did not identify ${accession}.`,
-      );
-    }
-    const parsed = parseMsa(text, `${accession}-rfam-${release}.sto`);
-    if (
-      parsed.status !== "success" ||
-      parsed.document.rows.length < 2 ||
-      parsed.document.rows.length !== seedCount ||
-      !parsed.document.rows.some(({ alignedSequence }) =>
-        /[-.]/u.test(alignedSequence),
-      )
-    ) {
-      throw new PublicExampleAcquisitionError(
-        `Rfam returned a malformed alignment or a row count that did not match the ${accession} seed metadata.`,
-      );
-    }
-    const requestedIdentifier = `${accession}@${release}:seed`;
-    const artifactBytes = alignmentBytes;
-    return {
-      artifactBytes,
-      database: "Rfam",
-      requestedIdentifier,
-      resolvedIdentifier: requestedIdentifier,
-      sources: [
-        {
-          ...archive.evidence,
-          archiveFormat: "gzip",
-          role: "release-seed-archive",
-          selectedAccession: accession,
-          selectedByteLength: artifactBytes.byteLength,
-          selectedSha256: sha256(artifactBytes),
-          upstreamCuration: { num_seed: seedCount },
-          upstreamRelease: {
-            archive: "Rfam.seed.gz",
-            number: release,
-          },
-        },
-      ],
-      subset: {
-        archiveRecordSelector: `exact #=GF AC ${accession}`,
-        archiveRelease: release,
-        selectedRecordCount: 1,
-        selectedSeedRows: seedCount,
-      },
-      termsUrl: "https://ftp.ebi.ac.uk/pub/databases/Rfam/15.1/COPYING",
-      validation: {
-        columnCount: parsed.document.alignedLength,
-        format: "stockholm",
-        rowCount: parsed.document.rows.length,
-      },
-    };
-  }
-
-  async #acquireEnaReads(signal?: AbortSignal): Promise<AcquiredBytes> {
-    const runAccession = "DRR037765";
-    const metadataUrl = new URL(
-      "https://www.ebi.ac.uk/ena/portal/api/filereport",
-    );
-    metadataUrl.search = new URLSearchParams({
-      accession: runAccession,
-      fields: "run_accession,fastq_ftp,fastq_md5,fastq_bytes",
-      result: "read_run",
-    }).toString();
-    const metadata = await this.#fetchBounded({
-      allowedHosts: new Set(["www.ebi.ac.uk"]),
-      maxBytes: 256 * 1_024,
-      signal,
-      url: metadataUrl,
-    });
-    const fastq = parseEnaFileReport(metadata.bytes, runAccession);
-    const pinned = this.#integrityPins.ena;
-    if (
-      fastq.byteLength !== pinned.compressedByteLength ||
-      fastq.md5 !== pinned.compressedMd5
-    ) {
-      throw new PublicExampleAcquisitionError(
-        "The pinned ENA source identity changed in the authoritative file report. Review the source before updating this starter.",
-      );
-    }
-    if (fastq.byteLength > MAX_NETWORK_RESPONSE_BYTES) {
-      throw new PublicExampleAcquisitionError(
-        "The pinned ENA read file now exceeds the starter download budget.",
-      );
-    }
-    const fastqUrl = enaFtpToHttps(fastq.ftpUrl);
-    const compressed = await this.#fetchBounded({
-      allowedHosts: new Set(["ftp.sra.ebi.ac.uk"]),
-      maxBytes: Math.min(
-        MAX_NETWORK_RESPONSE_BYTES,
-        Math.max(fastq.byteLength, 1),
-      ),
-      signal,
-      url: fastqUrl,
-    });
-    if (compressed.bytes.byteLength !== fastq.byteLength) {
-      throw new PublicExampleAcquisitionError(
-        "The ENA read file byte length did not match its authoritative file report.",
-      );
-    }
-    if (md5(compressed.bytes) !== fastq.md5) {
-      throw new PublicExampleAcquisitionError(
-        "The ENA read file checksum did not match its authoritative file report.",
-      );
-    }
-    let decoded: Buffer;
-    try {
-      signal?.throwIfAborted();
-      decoded = await gunzip(compressed.bytes, {
-        maxOutputLength: MAX_DECODED_RESPONSE_BYTES,
-      });
-      signal?.throwIfAborted();
-    } catch {
-      if (signal?.aborted) {
-        throw new PublicExampleAcquisitionError(
-          "Public example acquisition was cancelled. No viewer was opened.",
-        );
-      }
-      throw new PublicExampleAcquisitionError(
-        "The ENA read file was truncated, malformed, or exceeded the decoded-size budget.",
-      );
-    }
-    const text = decodeUtf8(decoded, "ENA FASTQ response");
-    rejectHtmlPayload(text, "ENA FASTQ response");
-    const parsedSource = parseSequenceDocumentResult({
-      contents: text,
-      fileName: `${runAccession}.fastq`,
-    });
-    if (
-      parsedSource.status !== "success" ||
-      parsedSource.document.format !== "fastq" ||
-      parsedSource.document.fastqSummary == null ||
-      parsedSource.document.fastqSummary.readCount < ENA_SUBSET_RECORDS ||
-      parsedSource.document.fastqSummary.readCount !== pinned.sourceRecords ||
-      parsedSource.document.records.length < ENA_SUBSET_RECORDS ||
-      parsedSource.document.records.some(
-        (record) =>
-          record.quality == null ||
-          !new RegExp(`^${runAccession}\\.\\d+$`, "u").test(record.sourceLabel),
-      )
-    ) {
-      throw new PublicExampleAcquisitionError(
-        `The pinned ENA run did not contain ${ENA_SUBSET_RECORDS} complete, identity-matched FASTQ reads.`,
-      );
-    }
-    const subsetText = `${parsedSource.document.records
-      .slice(0, ENA_SUBSET_RECORDS)
-      .map((record) => buildFastqExport(record))
-      .join("\n")}\n`;
-    const parsedSubset = parseSequenceDocumentResult({
-      contents: subsetText,
-      fileName: `${runAccession}-first-${ENA_SUBSET_RECORDS}.fastq`,
-    });
-    if (
-      parsedSubset.status !== "success" ||
-      parsedSubset.document.format !== "fastq" ||
-      parsedSubset.document.fastqSummary?.readCount !== ENA_SUBSET_RECORDS
-    ) {
-      throw new PublicExampleAcquisitionError(
-        "The deterministic ENA read subset failed FASTQ validation.",
-      );
-    }
-    const artifactBytes = Buffer.from(subsetText, "utf8");
-    const summary = parsedSubset.document.fastqSummary;
-    if (
-      artifactBytes.byteLength !== pinned.artifactByteLength ||
-      sha256(artifactBytes) !== pinned.artifactSha256 ||
-      summary.totalBases !== pinned.totalBases ||
-      summary.readLengthMin !== pinned.readLengthMin ||
-      summary.readLengthMax !== pinned.readLengthMax ||
-      summary.gcFraction !== pinned.gcFraction ||
-      summary.q30Fraction !== pinned.q30Fraction
-    ) {
-      throw new PublicExampleAcquisitionError(
-        "The deterministic ENA first-500 artifact or live QC baseline changed. Review the source before updating this starter.",
-      );
-    }
-    return {
-      artifactBytes,
-      database: "ENA",
-      requestedIdentifier: runAccession,
-      resolvedIdentifier: `${runAccession}/${fastq.fileName}@md5:${fastq.md5}`,
-      sources: [
-        {
-          ...metadata.evidence,
-          role: "file-report",
-          upstreamBytes: fastq.byteLength,
-          upstreamMd5: fastq.md5,
-        },
-        {
-          ...compressed.evidence,
-          role: "compressed-fastq",
-          upstreamBytes: fastq.byteLength,
-          upstreamMd5: fastq.md5,
-        },
-      ],
-      subset: {
-        emittedRecords: ENA_SUBSET_RECORDS,
-        rule: `first ${ENA_SUBSET_RECORDS} parsed records in source order after gzip decompression, canonical four-line FASTQ`,
-        sourceRecords: parsedSource.document.fastqSummary.readCount,
-      },
-      termsUrl: "https://www.ebi.ac.uk/ena/browser/about/policies",
-      validation: {
-        format: "fastq",
-        recordCount: parsedSubset.document.fastqSummary.readCount,
-        residueCount: parsedSubset.document.fastqSummary.totalBases,
-      },
-    };
-  }
-
-  async #fetchBounded({
-    allowedHosts,
-    maxBytes,
-    signal,
-    url,
-  }: {
-    allowedHosts: ReadonlySet<string>;
-    maxBytes: number;
-    signal?: AbortSignal;
-    url: URL;
-  }): Promise<{ bytes: Buffer; evidence: HttpEvidence }> {
-    const combined = createRequestSignal(signal, this.#requestTimeoutMs);
-    try {
-      let response: Response;
-      try {
-        response = await this.#fetch(url, {
-          headers: {
-            Accept:
-              "application/json, text/plain, application/octet-stream;q=0.9",
-            "User-Agent": `OpenAI-Sequence-Viewer/${SEQUENCE_VIEWER_VERSION}`,
-          },
-          redirect: "error",
-          signal: combined.signal,
-        });
-      } catch (error) {
-        if (combined.signal.aborted) {
-          throw new PublicExampleAcquisitionError(
-            signal?.aborted
-              ? "Public example acquisition was cancelled. No viewer was opened."
-              : "The authoritative database request timed out. Retry when the service is available.",
-          );
-        }
-        throw new PublicExampleAcquisitionError(
-          "The authoritative database could not be reached. Check network access and retry.",
-        );
-      }
-      const finalUrl = new URL(response.url || url.href);
-      if (
-        finalUrl.protocol !== "https:" ||
-        !allowedHosts.has(finalUrl.hostname.toLowerCase()) ||
-        finalUrl.username !== "" ||
-        finalUrl.password !== "" ||
-        finalUrl.hash !== ""
-      ) {
-        throw new PublicExampleAcquisitionError(
-          "The authoritative database redirected outside its approved HTTPS endpoint.",
-        );
-      }
-      if (!response.ok) {
-        const retryAfter = response.headers.get("retry-after");
-        const suffix = retryAfter == null ? "" : ` Retry after ${retryAfter}.`;
-        throw new PublicExampleAcquisitionError(
-          `The authoritative database returned HTTP ${response.status}.${suffix}`,
-        );
-      }
-      const declaredLength = parseContentLength(
-        response.headers.get("content-length"),
-      );
-      if (declaredLength != null && declaredLength > maxBytes) {
-        throw new PublicExampleAcquisitionError(
-          "The authoritative response exceeded the starter byte budget.",
-        );
-      }
-      let bytes: Buffer;
-      try {
-        bytes = await readBoundedBody(response, maxBytes, combined.signal);
-      } catch (error) {
-        if (combined.signal.aborted) {
-          throw new PublicExampleAcquisitionError(
-            signal?.aborted
-              ? "Public example acquisition was cancelled. No viewer was opened."
-              : "The authoritative database response timed out. Retry when the service is available.",
-          );
-        }
-        if (error instanceof PublicExampleAcquisitionError) throw error;
-        throw new PublicExampleAcquisitionError(
-          "The authoritative database response was interrupted. Retry when the service is available.",
-        );
-      }
-      if (bytes.byteLength === 0) {
-        throw new PublicExampleAcquisitionError(
-          "The authoritative database returned an empty response.",
-        );
-      }
-      return {
-        bytes,
-        evidence: {
-          byteLength: bytes.byteLength,
-          contentType: response.headers.get("content-type"),
-          etag: response.headers.get("etag"),
-          lastModified: response.headers.get("last-modified"),
-          sha256: sha256(bytes),
-          url: finalUrl.href,
-        },
-      };
-    } finally {
-      combined.dispose();
-    }
-  }
-}
-
-type WorkspaceDestination = {
-  directoryIdentity: FileSystemIdentity;
-  examplesDirectory: string;
-  root: string;
-  rootIdentity: FileSystemIdentity;
-};
-
-function hasExactCiCds(record: {
-  sequence: string;
-  features: Array<{
-    end: number;
-    geneticCodeId?: number;
-    qualifiers: Record<string, string | string[]>;
-    sourceLocation?: string;
-    start: number;
-    strand: string;
-    translation?: string;
-    translationTrackReliable?: boolean;
-    type: string;
-  }>;
-}): boolean {
-  const feature = record.features.find(
-    (feature) =>
-      feature.type === "CDS" &&
-      feature.start === 37_227 &&
-      feature.end === 37_940 &&
-      feature.strand === "-" &&
-      feature.sourceLocation === "complement(37227..37940)" &&
-      feature.geneticCodeId === 11 &&
-      feature.translationTrackReliable === true &&
-      hasQualifier(feature.qualifiers, "gene", "cI") &&
-      hasQualifier(feature.qualifiers, "protein_id", "NP_040628.1") &&
-      hasQualifier(
-        feature.qualifiers,
-        "product",
-        "LexA family transcriptional regulator",
-      ),
-  );
-  if (feature == null) return false;
-  const codingSequence = reverseComplement(
-    record.sequence.slice(feature.start - 1, feature.end),
-  );
-  const translationWithStop = translateFrame(codingSequence, 0, 11);
-  if (!translationWithStop.endsWith("*")) return false;
-  const translatedProtein = translationWithStop.slice(0, -1);
-  return (
-    sha256(Buffer.from(codingSequence, "ascii")) ===
-      NCBI_LAMBDA_CI_CODING_SHA256 &&
-    translatedProtein.length === 237 &&
-    sha256(Buffer.from(translatedProtein, "ascii")) ===
-      NCBI_LAMBDA_CI_PROTEIN_SHA256 &&
-    feature.translation === translatedProtein
-  );
-}
-
-function hasExactLambdaOperator(
-  record: {
-    features: Array<{
-      end: number;
-      qualifiers: Record<string, string | string[]>;
-      start: number;
-      type: string;
-    }>;
-  },
-  note: string,
-  start: number,
-  end: number,
-): boolean {
-  return record.features.some(
-    (feature) =>
-      feature.type === "regulatory" &&
-      feature.start === start &&
-      feature.end === end &&
-      hasQualifier(feature.qualifiers, "regulatory_class", "other") &&
-      hasQualifier(feature.qualifiers, "note", note),
-  );
-}
-
-function hasQualifier(
-  qualifiers: Record<string, string | string[]>,
-  name: string,
-  expected: string,
-): boolean {
-  const value = qualifiers[name];
-  return Array.isArray(value) ? value.includes(expected) : value === expected;
-}
-
-function validateUniProtRasRecord(
-  text: string,
-  entry: (typeof UNIPROT_RAS_ENTRIES)[number],
-) {
-  const header = text.split(/\r?\n/u, 1)[0] ?? "";
-  if (
-    !header.startsWith(`>sp|${entry.accession}|${entry.entryName} `) ||
-    !hasFastaHeaderField(header, "OS", "Homo sapiens") ||
-    !hasFastaHeaderField(header, "OX", "9606") ||
-    !hasFastaHeaderField(header, "GN", entry.gene) ||
-    !hasFastaHeaderField(header, "PE", "1") ||
-    !hasFastaHeaderField(header, "SV", String(entry.sequenceVersion))
-  ) {
-    throw new PublicExampleAcquisitionError(
-      `UniProtKB returned ${entry.accession} without the expected reviewed human sequence-version identity.`,
-    );
-  }
-  const parsed = parseSequenceDocumentResult({
-    contents: text,
-    fileName: `${entry.accession}.fasta`,
-  });
-  if (
-    parsed.status !== "success" ||
-    parsed.document.format !== "fasta" ||
-    parsed.document.records.length !== 1
-  ) {
-    throw new PublicExampleAcquisitionError(
-      `UniProtKB returned malformed or ambiguous FASTA data for ${entry.accession}.`,
-    );
-  }
-  const [record] = parsed.document.records;
-  if (
-    record.sourceLabel !== `sp|${entry.accession}|${entry.entryName}` ||
-    record.length !== UNIPROT_RAS_RECORD_LENGTH ||
-    record.molecule !== "protein" ||
-    sha256(Buffer.from(record.sequence, "ascii")) !== entry.sequenceSha256 ||
-    record.sequence.slice(9, 17) !== "GAGGVGKS" ||
-    record.sequence.slice(29, 38) !== "DEYDPTIED" ||
-    record.sequence.slice(59, 76) !== "GQEEYSAMRDQYMRTGE" ||
-    record.sequence.slice(115, 119) !== "NKCD" ||
-    !record.sequence.endsWith(entry.caax)
-  ) {
-    throw new PublicExampleAcquisitionError(
-      `UniProtKB returned ${entry.accession} with unexpected sequence content or RAS motif identity.`,
-    );
-  }
-  return record;
-}
-
-function hasFastaHeaderField(
-  header: string,
-  name: string,
-  expected: string,
-): boolean {
-  return new RegExp(
-    `(?:^|\\s)${name}=${escapeRegExp(expected)}(?=\\s[A-Z]{2}=|$)`,
-    "u",
-  ).test(header);
-}
-
-function escapeRegExp(value: string): string {
-  return value.replace(/[.*+?^${}()|[\]\\]/gu, "\\$&");
-}
-
-async function verifyPublishedArtifact({
-  artifactPath,
-  expectedByteLength,
-  expectedSha256,
-}: {
-  artifactPath: string;
-  expectedByteLength: number;
-  expectedSha256: string;
-}): Promise<SequencePublicExampleFileIdentity> {
-  const handle = await open(
-    artifactPath,
-    constants.O_RDONLY | constants.O_NOFOLLOW,
-  );
-  try {
-    const before = await handle.stat({ bigint: true });
-    if (!before.isFile() || before.size !== BigInt(expectedByteLength)) {
-      throw new PublicExampleAcquisitionError(
-        "The published public example did not retain its validated file identity.",
-      );
-    }
-    const bytes = await handle.readFile();
-    const after = await handle.stat({ bigint: true });
-    const current = await lstat(artifactPath, { bigint: true });
-    if (
-      !current.isFile() ||
-      sha256(bytes) !== expectedSha256 ||
-      !sameFileStat(before, after) ||
-      !sameFileStat(after, current)
-    ) {
-      throw new PublicExampleAcquisitionError(
-        "The published public example changed before it could be opened.",
-      );
-    }
-    return {
-      device: after.dev.toString(),
-      inode: after.ino.toString(),
-      modifiedAtNanoseconds: after.mtimeNs.toString(),
-      size: after.size.toString(),
-    };
-  } finally {
-    await handle.close();
-  }
-}
-
-function sameFileStat(
-  left: { dev: bigint; ino: bigint; mtimeNs: bigint; size: bigint },
-  right: { dev: bigint; ino: bigint; mtimeNs: bigint; size: bigint },
-): boolean {
-  return (
-    left.dev === right.dev &&
-    left.ino === right.ino &&
-    left.mtimeNs === right.mtimeNs &&
-    left.size === right.size
-  );
-}
-
-async function resolveWorkspaceDestination(
-  requestedRoot: string | undefined,
-  extra: RootsRequestExtra,
-): Promise<WorkspaceDestination> {
-  let rootsResult: { roots: Array<{ uri: string }> };
-  try {
-    rootsResult = await extra.sendRequest(
-      { method: "roots/list" },
-      ListRootsResultSchema,
-    );
-  } catch {
-    throw new PublicExampleAcquisitionError(
-      "The installed host did not expose an active workspace root. Open a workspace and retry. The host must provide an independently authenticated local workspace root through MCP roots/list.",
-    );
-  }
-  const roots = Array.from(
-    new Set(
-      (
-        await Promise.all(
-          rootsResult.roots.map(async ({ uri }) => {
-            if (!uri.startsWith("file://")) {
-              return null;
-            }
-            try {
-              return await realpath(fileURLToPath(uri));
-            } catch {
-              return null;
-            }
-          }),
-        )
-      ).filter((root): root is string => root != null),
-    ),
-  );
-  if (roots.length === 0) {
-    throw new PublicExampleAcquisitionError(
-      "The installed host did not expose a readable local workspace root. Open a local workspace and retry. The host must provide an independently authenticated local workspace root through MCP roots/list.",
-    );
-  }
-  let root: string;
-  if (requestedRoot == null) {
-    if (roots.length !== 1) {
-      throw new PublicExampleAcquisitionError(
-        "Multiple workspace roots are active. Retry with the exact intended workspace root.",
-      );
-    }
-    root = roots[0];
-  } else {
-    let canonicalRequestedRoot: string;
-    try {
-      canonicalRequestedRoot = await realpath(requestedRoot);
-    } catch {
-      throw new PublicExampleAcquisitionError(
-        "The requested workspace root is unavailable.",
-      );
-    }
-    if (!roots.includes(canonicalRequestedRoot)) {
-      throw new PublicExampleAcquisitionError(
-        "The requested destination is not an active workspace root.",
-      );
-    }
-    root = canonicalRequestedRoot;
-  }
-  const rootIdentity = await readDirectoryIdentity(root);
-  const requestedDirectory = path.join(root, EXAMPLES_DIRECTORY_NAME);
-  await mkdir(requestedDirectory, { mode: 0o700, recursive: true });
-  const examplesDirectory = await realpath(requestedDirectory);
-  if (
-    examplesDirectory !== requestedDirectory ||
-    !isPathWithin(root, examplesDirectory)
-  ) {
-    throw new PublicExampleAcquisitionError(
-      "The public example directory is not a safe workspace directory.",
-    );
-  }
-  const directoryIdentity = await readDirectoryIdentity(examplesDirectory);
-  return { directoryIdentity, examplesDirectory, root, rootIdentity };
-}
-
-async function assertUnchangedDirectory(
-  workspace: WorkspaceDestination,
-): Promise<void> {
-  const [rootIdentity, directoryIdentity, canonicalDirectory] =
-    await Promise.all([
-      readDirectoryIdentity(workspace.root),
-      readDirectoryIdentity(workspace.examplesDirectory),
-      realpath(workspace.examplesDirectory),
-    ]);
-  if (
-    canonicalDirectory !== workspace.examplesDirectory ||
-    !sameIdentity(rootIdentity, workspace.rootIdentity) ||
-    !sameIdentity(directoryIdentity, workspace.directoryIdentity)
-  ) {
-    throw new PublicExampleAcquisitionError(
-      "The workspace destination changed during acquisition. No viewer was opened.",
-    );
-  }
-}
-
-async function readDirectoryIdentity(
-  directoryPath: string,
-): Promise<FileSystemIdentity> {
-  const directoryStat = await stat(directoryPath, { bigint: true });
-  if (!directoryStat.isDirectory()) {
-    throw new PublicExampleAcquisitionError(
-      "The public example destination is not a directory.",
-    );
-  }
-  return { device: directoryStat.dev, inode: directoryStat.ino };
-}
-
-function sameIdentity(
-  left: FileSystemIdentity,
-  right: FileSystemIdentity,
-): boolean {
-  return left.device === right.device && left.inode === right.inode;
-}
-
-function createProvenance({
-  acquired,
-  acquiredAt,
-  artifactRelativePath,
-  artifactSha256,
-  exampleId,
-  provenanceRelativePath,
-}: {
-  acquired: AcquiredBytes;
-  acquiredAt: string;
-  artifactRelativePath: string;
-  artifactSha256: string;
-  exampleId: SequencePublicExampleId;
-  provenanceRelativePath: string;
-}): Record<string, unknown> {
-  return {
-    acquisition: {
-      route: "official-database-endpoint",
-      sources: acquired.sources,
-    },
-    artifact: {
-      byteLength: acquired.artifactBytes.byteLength,
-      format: acquired.validation.format,
-      relativePath: artifactRelativePath,
-      sha256: artifactSha256,
-      validation: acquired.validation,
-    },
-    database: acquired.database,
-    derivation: acquired.derivation ?? null,
-    exampleId,
-    pluginVersion: SEQUENCE_VIEWER_VERSION,
-    provenanceRelativePath,
-    requestedIdentifier: acquired.requestedIdentifier,
-    resolvedIdentifier: acquired.resolvedIdentifier,
-    retrievedAt: acquiredAt,
-    schemaVersion: 1,
-    subset: acquired.subset,
-    termsUrl: acquired.termsUrl,
-    validatorVersion: VALIDATOR_VERSION,
-  };
-}
-
-function fileNameForExample(
-  exampleId: SequencePublicExampleId,
-  attempt: number,
-): string {
-  const [stem, extension] = (() => {
-    switch (exampleId) {
-      case "ena-drr037765-first-500":
-        return ["DRR037765-first-500", ".fastq"];
-      case "ncbi-nc-001416-1":
-        return ["NC_001416.1", ".gb"];
-      case "rfam-rf00360-15-1":
-        return ["RF00360-rfam-15.1", ".sto"];
-      case "uniprot-human-ras-sv1":
-        return ["human-RAS-UniProt-SV1", ".aln-fasta"];
-    }
-  })();
-  return `${stem}${attempt === 1 ? "" : `-${attempt}`}${extension}`;
-}
-
-function toWorkspaceRelativePath(root: string, filePath: string): string {
-  if (!isPathWithin(root, filePath)) {
-    throw new PublicExampleAcquisitionError(
-      "The public example destination left the active workspace.",
-    );
-  }
-  return path.relative(root, filePath).split(path.sep).join("/");
-}
-
-function isPathWithin(root: string, candidate: string): boolean {
-  const relativePath = path.relative(root, candidate);
-  return (
-    relativePath === "" ||
-    (!path.isAbsolute(relativePath) &&
-      relativePath !== ".." &&
-      !relativePath.startsWith(`..${path.sep}`))
-  );
-}
-
-function extractRfamSeedAlignment(
-  archiveBytes: Buffer,
-  accession: string,
-  release: string,
-): Buffer {
-  const recordStartMarker = Buffer.from("# STOCKHOLM 1.0", "ascii");
-  const recordTerminatorMarker = Buffer.from("\n//", "ascii");
-  const accessionMarker = Buffer.from(accession, "ascii");
-  const accessionPattern = new RegExp(`^#=GF\\s+AC\\s+${accession}\\s*$`, "mu");
-  const matches: Buffer[] = [];
-  let cursor = 0;
-  while (cursor < archiveBytes.length) {
-    const recordStart = archiveBytes.indexOf(recordStartMarker, cursor);
-    if (recordStart === -1) {
-      break;
-    }
-    const terminatorStart = archiveBytes.indexOf(
-      recordTerminatorMarker,
-      recordStart,
-    );
-    if (terminatorStart === -1) {
-      throw new PublicExampleAcquisitionError(
-        `The Rfam ${release} seed archive contained a truncated Stockholm record.`,
-      );
-    }
-    let recordEnd = terminatorStart + recordTerminatorMarker.length;
-    if (archiveBytes[recordEnd] === 13) {
-      recordEnd += 1;
-    }
-    if (archiveBytes[recordEnd] === 10) {
-      recordEnd += 1;
-    }
-    const record = archiveBytes.subarray(recordStart, recordEnd);
-    if (record.indexOf(accessionMarker) !== -1) {
-      const text = decodeUtf8(record, "Rfam Stockholm record");
-      if (accessionPattern.test(text)) {
-        matches.push(Buffer.from(record));
-      }
-    }
-    cursor = recordEnd;
-  }
-  if (matches.length !== 1) {
-    throw new PublicExampleAcquisitionError(
-      `The Rfam ${release} seed archive did not contain exactly one ${accession} record.`,
-    );
-  }
-  return matches[0];
-}
-
-function parseRfamSeedCount(
-  text: string,
-  accession: string,
-  release: string,
-): number {
-  const matches = [...text.matchAll(/^#=GF\s+SQ\s+(\d+)\s*$/gmu)];
-  const seedCount = Number(matches[0]?.[1]);
-  if (
-    matches.length !== 1 ||
-    seedCount !== RFAM_RF00360_RELEASE_15_1_SEED_COUNT
-  ) {
-    throw new PublicExampleAcquisitionError(
-      `The Rfam ${accession} release ${release} seed count did not match the pinned archive contract.`,
-    );
-  }
-  return seedCount;
-}
-
-function parseEnaFileReport(
-  bytes: Uint8Array,
-  runAccession: string,
-): {
-  byteLength: number;
-  fileName: string;
-  ftpUrl: string;
-  md5: string;
-} {
-  const text = decodeUtf8(bytes, "ENA file report");
-  rejectHtmlPayload(text, "ENA file report");
-  const lines = text.trim().split(/\r?\n/u);
-  if (lines.length !== 2) {
-    throw new PublicExampleAcquisitionError(
-      "ENA returned an ambiguous or empty file report for the pinned run.",
-    );
-  }
-  const headers = lines[0].split("\t");
-  const values = lines[1].split("\t");
-  const requiredHeaders = [
-    "run_accession",
-    "fastq_ftp",
-    "fastq_md5",
-    "fastq_bytes",
-  ];
-  if (
-    headers.length !== requiredHeaders.length ||
-    values.length !== requiredHeaders.length ||
-    new Set(headers).size !== requiredHeaders.length ||
-    requiredHeaders.some((header) => !headers.includes(header))
-  ) {
-    throw new PublicExampleAcquisitionError(
-      "ENA returned a malformed file report without the required pinned-run fields.",
-    );
-  }
-  const row = Object.fromEntries(
-    headers.map((header, index) => [header, values[index] ?? ""]),
-  ) as Record<(typeof requiredHeaders)[number], string>;
-  if (
-    row.run_accession !== runAccession ||
-    row.fastq_ftp.includes(";") ||
-    row.fastq_md5.includes(";") ||
-    row.fastq_bytes.includes(";") ||
-    !/^[a-f0-9]{32}$/u.test(row.fastq_md5)
-  ) {
-    throw new PublicExampleAcquisitionError(
-      "ENA file metadata did not uniquely match the pinned run and FASTQ file.",
-    );
-  }
-  const byteLength = Number(row.fastq_bytes);
-  if (!Number.isSafeInteger(byteLength) || byteLength <= 0) {
-    throw new PublicExampleAcquisitionError(
-      "ENA returned an invalid authoritative FASTQ byte length.",
-    );
-  }
-  let ftpUrl: URL;
-  try {
-    ftpUrl = new URL(
-      row.fastq_ftp.startsWith("ftp://")
-        ? row.fastq_ftp
-        : `ftp://${row.fastq_ftp}`,
-    );
-  } catch {
-    throw new PublicExampleAcquisitionError(
-      "ENA returned an invalid authoritative FASTQ location.",
-    );
-  }
-  if (
-    ftpUrl.protocol !== "ftp:" ||
-    ftpUrl.hostname !== "ftp.sra.ebi.ac.uk" ||
-    ftpUrl.username !== "" ||
-    ftpUrl.password !== "" ||
-    ftpUrl.hash !== "" ||
-    ftpUrl.search !== "" ||
-    ftpUrl.pathname !== "/vol1/fastq/DRR037/DRR037765/DRR037765.fastq.gz"
-  ) {
-    throw new PublicExampleAcquisitionError(
-      "ENA returned a FASTQ location outside its approved public archive.",
-    );
-  }
-  return {
-    byteLength,
-    fileName: path.posix.basename(ftpUrl.pathname),
-    ftpUrl: ftpUrl.href,
-    md5: row.fastq_md5,
-  };
-}
-
-function enaFtpToHttps(value: string): URL {
-  const ftpUrl = new URL(value);
-  return new URL(`https://ftp.sra.ebi.ac.uk${ftpUrl.pathname}${ftpUrl.search}`);
-}
-
-function rejectHtmlPayload(text: string, label: string): void {
-  const prefix = text.trimStart().slice(0, 256).toLowerCase();
-  if (
-    prefix.startsWith("<!doctype html") ||
-    prefix.startsWith("<html") ||
-    prefix.includes("<title>error")
-  ) {
-    throw new PublicExampleAcquisitionError(
-      `${label} contained an HTML or database error page.`,
-    );
-  }
-}
-
-function decodeUtf8(bytes: Uint8Array, label: string): string {
-  try {
-    return new TextDecoder("utf-8", { fatal: true }).decode(bytes);
-  } catch {
-    throw new PublicExampleAcquisitionError(`${label} was not valid UTF-8.`);
-  }
-}
-
-async function readBoundedBody(
-  response: Response,
-  maxBytes: number,
-  signal: AbortSignal,
-): Promise<Buffer> {
-  if (response.body == null) {
-    throw new PublicExampleAcquisitionError(
-      "The authoritative database returned no response body.",
-    );
-  }
-  const reader = response.body.getReader();
-  const chunks: Uint8Array[] = [];
-  let byteLength = 0;
-  const abortRead = () => void reader.cancel().catch(() => undefined);
-  signal.addEventListener("abort", abortRead, { once: true });
-  try {
-    while (true) {
-      if (signal.aborted) {
-        throw new PublicExampleAcquisitionError(
-          "Public example acquisition was cancelled. No viewer was opened.",
-        );
-      }
-      const { done, value } = await reader.read();
-      if (done) {
-        break;
-      }
-      byteLength += value.byteLength;
-      if (byteLength > maxBytes) {
-        throw new PublicExampleAcquisitionError(
-          "The authoritative response exceeded the starter byte budget.",
-        );
-      }
-      chunks.push(value);
-    }
-    if (signal.aborted) {
-      throw new PublicExampleAcquisitionError(
-        "Public example acquisition was cancelled. No viewer was opened.",
-      );
-    }
-    return Buffer.concat(chunks, byteLength);
-  } finally {
-    signal.removeEventListener("abort", abortRead);
-    await reader.cancel().catch(() => undefined);
-  }
-}
-
-function createRequestSignal(
-  externalSignal: AbortSignal | undefined,
-  timeoutMs: number,
-): { dispose: () => void; signal: AbortSignal } {
-  const controller = new AbortController();
-  const timeout = setTimeout(() => controller.abort(), timeoutMs);
-  const onAbort = () => controller.abort();
-  externalSignal?.addEventListener("abort", onAbort, { once: true });
-  if (externalSignal?.aborted) {
-    controller.abort();
-  }
-  return {
-    dispose: () => {
-      clearTimeout(timeout);
-      externalSignal?.removeEventListener("abort", onAbort);
-    },
-    signal: controller.signal,
-  };
-}
-
-function parseContentLength(value: string | null): number | null {
-  if (value == null) {
-    return null;
-  }
-  const parsed = Number(value);
-  return Number.isSafeInteger(parsed) && parsed >= 0 ? parsed : null;
-}
-
-function sha256(bytes: Uint8Array): string {
-  return createHash("sha256").update(bytes).digest("hex");
-}
-
-function md5(bytes: Uint8Array): string {
-  return createHash("md5").update(bytes).digest("hex");
-}
-
-function normalizeAcquisitionError(
-  error: unknown,
-  signal?: AbortSignal,
-): PublicExampleAcquisitionError {
-  if (error instanceof PublicExampleAcquisitionError) {
-    return error;
-  }
-  if (signal?.aborted) {
-    return new PublicExampleAcquisitionError(
-      "Public example acquisition was cancelled. No viewer was opened.",
-    );
-  }
-  if (error instanceof z.ZodError) {
-    return new PublicExampleAcquisitionError(
-      "The public example request did not match the versioned starter catalog.",
-    );
-  }
-  return new PublicExampleAcquisitionError(
-    "The public example could not be acquired safely. No viewer was opened; check workspace capacity and retry.",
-  );
-}
Full technical diff · 395 changed fields

changed /files/.codex-plugin~1plugin.json/sha256

BEFORE
"5b10b3961e87259ffc258d7e43c8de81b441fc7c1fc548c3acf7f9443fe669b2"
AFTER
"458a047b8d1b108a9131d381d1b52cdf1e311e74356823747d581ee9b0662825"

removed /files/.gitignore

BEFORE
{
  "sha256": "71eb94ea9dfed51ac0414bdc87aedc0190ba95586a03648ff507d9f1a9ab7f31",
  "size": 104
}
AFTER
Field is absent

changed /files/.mcp.json/sha256

BEFORE
"55864e479f655e166053f5e6bcd9b1b8f7239fb82f27a2c8104ed450dd701ce1"
AFTER
"e867df32928212c16043bd46f8c5402c21e5b8aac31fc2f6b2d471f7516a1b02"

changed /files/.mcp.json/size

BEFORE
136
AFTER
402

changed /files/CAPABILITY_MATRIX.md/sha256

BEFORE
"f87a16eb2a2271869e6aa23c7eed9f8c2d35c8925b14dec833ee7b0848892db7"
AFTER
"395c11c653b9f64ed1dac5fd407886bc712b28d59de8d1b8485304ddaac09d7b"

changed /files/CAPABILITY_MATRIX.md/size

BEFORE
16834
AFTER
17486

removed /files/LSC_109_QUALIFICATION.md

BEFORE
{
  "sha256": "a793a8d98137e0b110b3bf669d3c77b9505a4aecafc54d92e76956db69d79f7d",
  "size": 58280
}
AFTER
Field is absent

removed /files/PUBLIC_README.md

BEFORE
{
  "sha256": "ee77ac47905e0a0d000405f7db6b15a90536820d2d97d4e235d8208c74f8350a",
  "size": 13178
}
AFTER
Field is absent

changed /files/README.md/sha256

BEFORE
"1a0fd9492a125ceacdbea8238188e38958a8818a564fdf86f5aa238487a7f1e9"
AFTER
"9c9e12fc42f75f4bf80167f156364416457e90e073d7638f32c6549543b61eca"

changed /files/README.md/size

BEFORE
44186
AFTER
14005

changed /files/STARTER_EXAMPLES.md/sha256

BEFORE
"d208ae7dabf35057bfaff42654809e592ca0b9955a12ab9f38d89c0f0e0d782b"
AFTER
"e66f71209d21c02f7e5a0014034847e63da2bf23934813e7d63b1def6883ce3c"

changed /files/STARTER_EXAMPLES.md/size

BEFORE
19977
AFTER
23258

changed /files/THIRD_PARTY_NOTICES.md/sha256

BEFORE
"ef8d2fd225db2f8b4ae359e301b965e2c3feef3c7827969220f5e68fcfa1cc0e"
AFTER
"bae46ec2e086ea34ec112f02efebebf5d5e0137e7e1129b870fd11ca80752d52"

changed /files/THIRD_PARTY_NOTICES.md/size

BEFORE
167092
AFTER
195212

removed /files/buildkite~1pipeline.yml

BEFORE
{
  "sha256": "4e7ec88f42c0d7ecd9c1cc27f55a94b4cbaca03c58e6f85b9516e4d9f51c86d5",
  "size": 9289
}
AFTER
Field is absent

changed /files/dist~1server.mjs/sha256

BEFORE
"8e18162b887667935451cb5ca5b74e535317af2c06ba17b4d808fccba73a80cd"
AFTER
"63d489adef5d4426e95177a828bda36340e61abbac8b63f17cdeffa4d2fec20d"

changed /files/dist~1server.mjs/size

BEFORE
2484234
AFTER
2993766

changed /files/dist~1views~1app.js.gz/sha256

BEFORE
"4dee1ae1c0f2308f3fcdc1b540fdb40ffd7806aeaca7c5ce6a8a9ec47e91a187"
AFTER
"f670f0198e0d9bf20c90b942d648ef7460b9023800ff65228240a528d4bae997"

changed /files/dist~1views~1app.js.gz/size

BEFORE
526143
AFTER
542695

changed /files/dist~1views~1styles.css/sha256

BEFORE
"c609abf7aed94e3218022802776e6b97a79425f12d4df2c53fe19507cc225a3f"
AFTER
"092a1821dd59578b1a6932c7852c6c6f8f6633e44981b364df478adcb0a9f6c0"

changed /files/dist~1views~1styles.css/size

BEFORE
50780
AFTER
55766

removed /files/e2e~1build-harness.mjs

BEFORE
{
  "sha256": "a5f9bd5cd3d37a259214ae6fec8714b6a6bb81e059d7024d1baa34e429c067f1",
  "size": 911
}
AFTER
Field is absent

removed /files/e2e~1codex-managed-starter.spec.ts

BEFORE
{
  "sha256": "00d8178061241f2f84c32b718017e2a0a98f3e90ca577c613b95e957e82f8c98",
  "size": 31735
}
AFTER
Field is absent

removed /files/e2e~1installed-host-fault-injection.mjs

BEFORE
{
  "sha256": "41db44cc0f821acb2ebacfc5b2f7995e4a89ec31aac95c3a9eda6047fca91a84",
  "size": 3045
}
AFTER
Field is absent

removed /files/e2e~1installed-host-server.mjs

BEFORE
{
  "sha256": "4f100cf8d5f872992b3374a657edb821d69c75c4d14cf3160e7d737031dc789a",
  "size": 10491
}
AFTER
Field is absent

removed /files/e2e~1installed-host.js

BEFORE
{
  "sha256": "cabab9042044d37aed76426dacc79ba16d5a2e8799af09430f312ce9203f8f99",
  "size": 55839
}
AFTER
Field is absent

removed /files/e2e~1installed.html

BEFORE
{
  "sha256": "ef2a72f80e5f3e1064f870fada1df6485337a47a320a6a1e9a3df07a66886a52",
  "size": 1519
}
AFTER
Field is absent

removed /files/e2e~1model-host-app-mount.mjs

BEFORE
{
  "sha256": "cf0ce69f69c74e87f98d34f97c0692cd59c83db2d3856a4072019f646ce2bb55",
  "size": 16138
}
AFTER
Field is absent

removed /files/e2e~1model-host-root-proxy-lib.mjs

BEFORE
{
  "sha256": "cac3d23b6ea87c9bbace5bdef5036f992c81f2e4f28d2edf27dafa77e800faa7",
  "size": 11331
}
AFTER
Field is absent

removed /files/e2e~1model-host-root-proxy.mjs

BEFORE
{
  "sha256": "e1d2cf89aeb07d405c021741e5fe152cffa978681757db947af65d8dd8f2ec2d",
  "size": 1699
}
AFTER
Field is absent

removed /files/e2e~1persistent-native-recovery.spec.ts

BEFORE
{
  "sha256": "6d56a0467bdb1bcd117a2c1965908ba220c8a00aa3c3cd8bc29b2fe8fb6a80ec",
  "size": 6211
}
AFTER
Field is absent

removed /files/e2e~1plugin-runtime-root.mjs

BEFORE
{
  "sha256": "333b5d2b29fc3d0bab7291dbe1426e560a3759ac8e36c4e7a28ecd19e446a923",
  "size": 2571
}
AFTER
Field is absent

removed /files/e2e~1public-starter-evidence.spec.ts

BEFORE
{
  "sha256": "e13301bf6c06c67af89e2ca11f968627597075643a75f097c3c082a09201b6e4",
  "size": 46302
}
AFTER
Field is absent

removed /files/e2e~1public-starter-failure-evidence.spec.ts

BEFORE
{
  "sha256": "38702581a679aea33162bd44b537371825bc81d10e812ed3f89b864e5209400f",
  "size": 19051
}
AFTER
Field is absent

removed /files/e2e~1sequence-viewer.spec.ts

BEFORE
{
  "sha256": "b01875d29aab22c5b7aadc89687211096dfe5c245f8236523857e2cc22d4b681",
  "size": 103826
}
AFTER
Field is absent

added /files/integrity.json

BEFORE
Field was absent
AFTER
{
  "sha256": "58145c876d1c63023f446f6ea671364eb0e5aa02044e06205fa1b2ab8f8bde04",
  "size": 1751
}

added /files/launch_node

BEFORE
Field was absent
AFTER
{
  "sha256": "1072359d24f7760cdad5c2c112308e7ba93ddc60bbe00c839e623eaca6aa1d69",
  "size": 1560
}

added /files/launch_node.cmd

BEFORE
Field was absent
AFTER
{
  "sha256": "82b0b206e4c0f159e6e2a83dddbd0f92d6bf7af677b54154f7668c314a96e260",
  "size": 2606
}

removed /files/lsc-109-qualification.json

BEFORE
{
  "sha256": "65d50a09e65db011cd94a984fdff28ac93c4c85c6f81e0f1fb07fadd4137a6c1",
  "size": 51763
}
AFTER
Field is absent

removed /files/package.json

BEFORE
{
  "sha256": "a530059cba6c7389c6c97af8283baf6a659d891460fe42a90179d30bcf8b3d9b",
  "size": 1715
}
AFTER
Field is absent

removed /files/playwright.config.ts

BEFORE
{
  "sha256": "8f3a4ca36bcb33a3423644c59e59ae31a9545d5bd97f9cb74c7887839320df47",
  "size": 1902
}
AFTER
Field is absent

removed /files/pnpm-lock.yaml

BEFORE
{
  "sha256": "6155176b99ca067e0609a74ef198e197618dafadd2626c8004fd5f2859d8a8c3",
  "size": 98648
}
AFTER
Field is absent

removed /files/pnpm-workspace.yaml

BEFORE
{
  "sha256": "9c98d96918d4df55bb4ecd41f1a1787ec2f68771b38d4c85f479ffd4cc9bfc50",
  "size": 112
}
AFTER
Field is absent

removed /files/scripts~1build.mjs

BEFORE
{
  "sha256": "72f2966d9a29a1a0ce63233186f45295cf7e199a09c0a2d0ce6bc1c04b31fb30",
  "size": 2444
}
AFTER
Field is absent

removed /files/scripts~1bundle-digest.mjs

BEFORE
{
  "sha256": "c5d5376ad8a0f3310132379271bc0f330c18dc1f59391439d2506125c7da79ba",
  "size": 2487
}
AFTER
Field is absent

removed /files/scripts~1bundle-digest.test.mjs

BEFORE
{
  "sha256": "b4398cf2ebc2913f1c3cbc652bbd8df68424ab67770732832072a15187e2462c",
  "size": 3556
}
AFTER
Field is absent

removed /files/scripts~1bundle.mjs

BEFORE
{
  "sha256": "b95fc8f5d13c7e8f5959ac378d1bf853743584df459ff64021e378578cf5fa02",
  "size": 3810
}
AFTER
Field is absent

removed /files/scripts~1capture-marketplace-screenshots.mjs

BEFORE
{
  "sha256": "77e1ef3a6603d77b4e9970b62bb4d93cfa110d8e711b3dae234e4d01cb7e921e",
  "size": 1782
}
AFTER
Field is absent

removed /files/scripts~1generate-third-party-notices.mjs

BEFORE
{
  "sha256": "07889d260a5ce9ac81afba6427201beb1f42efd76ae72b1b9cc8cf7d9c2d9b4b",
  "size": 5459
}
AFTER
Field is absent

removed /files/scripts~1manual-format-smoke.mjs

BEFORE
{
  "sha256": "80248f4908950241fefef3deebdfe981cae5a664b81540770643b58db5cd5000",
  "size": 4963
}
AFTER
Field is absent

removed /files/scripts~1manual-format-smoke.test.mjs

BEFORE
{
  "sha256": "fa80589aee3f4c5deeaca7f0984e334231680b763de63a78b1a0d1e512acc885",
  "size": 966
}
AFTER
Field is absent

removed /files/scripts~1model-host-root-proxy.test.mjs

BEFORE
{
  "sha256": "f659593e9679cb0ed6b9c47226785a8d1b2a292589b0d121d16512be859fc65e",
  "size": 7795
}
AFTER
Field is absent

removed /files/scripts~1run-opt-in-vitest.mjs

BEFORE
{
  "sha256": "b3f7991d9c59749c5ce53e2f937d764c0af7e3cb8b034ebe224df7feaed2b221",
  "size": 926
}
AFTER
Field is absent

removed /files/scripts~1run-starter-qualification.mjs

BEFORE
{
  "sha256": "e7fa243ae3d5eeb7319a2282e0959de0bf6d0bd2d62b3f2813132391e788325b",
  "size": 12639
}
AFTER
Field is absent

removed /files/scripts~1source-snapshot.mjs

BEFORE
{
  "sha256": "bbd9f3d2c3ad86ab1e9d2e54f06c6eb09db41116b61cd47966171b24c84e351a",
  "size": 3780
}
AFTER
Field is absent

removed /files/scripts~1source-snapshot.test.mjs

BEFORE
{
  "sha256": "bbc7e66f8d3847a7e8f8662162297c5f5fbb2d5c7d516146abaa024993da62c1",
  "size": 3131
}
AFTER
Field is absent

removed /files/scripts~1validate-example-prompts.mjs

BEFORE
{
  "sha256": "582f7e528aabba3a5531697da552dd306edd0ce2be65588c193cb3d3531b660c",
  "size": 20539
}
AFTER
Field is absent

removed /files/scripts~1validate-example-prompts.test.mjs

BEFORE
{
  "sha256": "f48e4ed5e8f643ecfa6275311d7adab4fc7869d63b73bf17e550f1bd33f7b6de",
  "size": 13587
}
AFTER
Field is absent

removed /files/scripts~1validate-public-bundle.mjs

BEFORE
{
  "sha256": "95ed660bb995c41178fffe90be844a261e594e74e967860315d0846b70ef9e6e",
  "size": 7330
}
AFTER
Field is absent

removed /files/scripts~1validate-starter-qualification.mjs

BEFORE
{
  "sha256": "9a0ec824413ea3752315f41675792ac7447e722e6d3df640f55686e856775efe",
  "size": 37900
}
AFTER
Field is absent

removed /files/scripts~1validate-starter-qualification.test.mjs

BEFORE
{
  "sha256": "9989a90a8a5e242c3cd66680d452e571172e09b08053937038fa35a6fae95bf1",
  "size": 34589
}
AFTER
Field is absent

changed /files/skills~1biological-sequence-viewer~1SKILL.md/sha256

BEFORE
"3cf6655a4560290c4bc8939bc4bf4b4935c3228486b5a32944013ff8dda37560"
AFTER
"49a56c831b0c767533a133ecc67c541b49c27a3753c6605ee24f03e2c43ac4f9"

changed /files/skills~1biological-sequence-viewer~1SKILL.md/size

BEFORE
26803
AFTER
38898

removed /files/smoke-fixtures~1aligned-fasta-likely-msa.fasta

BEFORE
{
  "sha256": "d12e203fcaa47b54b87f207cc63c5595e6b2232af70e45f9b5c270dc3f02406e",
  "size": 30
}
AFTER
Field is absent

removed /files/smoke-fixtures~1alignment.msf

BEFORE
{
  "sha256": "1cd311b0f63c84a60f329781a75556b9c891c066eb94371139c9c93f886a1f03",
  "size": 168
}
AFTER
Field is absent

removed /files/smoke-fixtures~1alignment.nex

BEFORE
{
  "sha256": "e77a2132b92576c9de47895f095a4460eb04f4fcc700f52cb50e2e9cc7f29aee",
  "size": 168
}
AFTER
Field is absent

removed /files/smoke-fixtures~1alignment.pir

BEFORE
{
  "sha256": "a0d121583f0bbdf2068b110b4e1a3601f18aa5f1b160c1a40066fbfd2d4be6e8",
  "size": 68
}
AFTER
Field is absent

removed /files/smoke-fixtures~1circular-plasmid.gb

BEFORE
{
  "sha256": "1a32a94ab124f9f0602b5e1ec3031cc7a4f87298373ba380e0cbb27d3d94623b",
  "size": 471
}
AFTER
Field is absent

removed /files/smoke-fixtures~1clustal-consensus.aln

BEFORE
{
  "sha256": "b4e443add9069ae50509c293c41d49bd1d83756f058f6772fc59ad93f717688e",
  "size": 50
}
AFTER
Field is absent

removed /files/smoke-fixtures~1dna-demo.aln-fasta

BEFORE
{
  "sha256": "b3adba45e0e1881133c5b9c6c4169a2f8f1ec9d1d59ccd04fb1e488698f6ba21",
  "size": 76
}
AFTER
Field is absent

removed /files/smoke-fixtures~1dna-single.fasta

BEFORE
{
  "sha256": "3f5f7c3ddb7766db40dfbb2dcb5f4695380da6ede5505449bd5ca8266607f0c9",
  "size": 48
}
AFTER
Field is absent

removed /files/smoke-fixtures~1equal-width-ungapped-ambiguous.fasta

BEFORE
{
  "sha256": "9bcf00436ff3cb57a72c4ee0fb73330e4b399ccec5a22dde8f4340b5d685f241",
  "size": 50
}
AFTER
Field is absent

removed /files/smoke-fixtures~1interleaved.phy

BEFORE
{
  "sha256": "b9726b838e83e4f36e003e2905ca06cc8d809b1edcb3b94d7ae55b2f6de1f99d",
  "size": 74
}
AFTER
Field is absent

removed /files/smoke-fixtures~1minimal-embl.embl

BEFORE
{
  "sha256": "663b00ec5ef81cc80917102d7407fdebf2e8a49d234829e330a2ae3327584518",
  "size": 274
}
AFTER
Field is absent

removed /files/smoke-fixtures~1minimal-genbank.gb

BEFORE
{
  "sha256": "42220c0f05c55bcc8745788888e76a5e26988d08f1aa12a0dfe1029603c9a6fb",
  "size": 524
}
AFTER
Field is absent

removed /files/smoke-fixtures~1multi-record-unaligned.fasta

BEFORE
{
  "sha256": "914253647bd6b90f6ec3d64a8313d7d983cb87246a1b0fc0664e02fb67dad2c9",
  "size": 30
}
AFTER
Field is absent

removed /files/smoke-fixtures~1not-an-alignment.txt

BEFORE
{
  "sha256": "ebd04ab85e25d9a389b997e736ff1b4cb791d42a2afd061891dcb12deb95e0c8",
  "size": 123
}
AFTER
Field is absent

removed /files/smoke-fixtures~1protein-profile.a2m

BEFORE
{
  "sha256": "d9a587a5d255b5a3b0b7d45d973572207237c6f92ffa9d59fbbd83b583ef8d1b",
  "size": 36
}
AFTER
Field is absent

removed /files/smoke-fixtures~1protein-profile.a3m

BEFORE
{
  "sha256": "3129e9f5cfa78a9a0bd3786fd5423644ad9861b32eb3aebb9815365c679b693e",
  "size": 26
}
AFTER
Field is absent

removed /files/smoke-fixtures~1protein-single.faa

BEFORE
{
  "sha256": "2f83b431568dbf2b1c49b9d5f17bea48a4c2b19fb995549d1353bbf8635bd095",
  "size": 60
}
AFTER
Field is absent

removed /files/smoke-fixtures~1rna-single.fasta

BEFORE
{
  "sha256": "6900fa6ea8f2cb2c299a167c3efc978ae1be52094c56417d60fb68eff940cecf",
  "size": 48
}
AFTER
Field is absent

removed /files/smoke-fixtures~1rna-structure.sto

BEFORE
{
  "sha256": "3dc0011a664e0097300cfe89ee22a42b1bb864dadff82045012616a06f787fdb",
  "size": 70
}
AFTER
Field is absent

removed /files/smoke-fixtures~1small.fastq

BEFORE
{
  "sha256": "7931ee21e41d95570a41f3029e73ff4b65c88733588e0a35be5973c6320d15bd",
  "size": 54
}
AFTER
Field is absent

removed /files/src~1amino-acid-alphabet.ts

BEFORE
{
  "sha256": "9578697fa2c71c4fe157b1b721d91f15aacc3270ff25b4efa85f09a957cad9b5",
  "size": 1182
}
AFTER
Field is absent

removed /files/src~1artifact-state-key.ts

BEFORE
{
  "sha256": "4fcc37d7653ecab276ba449b8605adc4a4677b27999bcdee833cf9d2371f5f72",
  "size": 400
}
AFTER
Field is absent

removed /files/src~1bam-decoder.test.ts

BEFORE
{
  "sha256": "10d0b575f5cb60da116722059bb926cd813bea5bc212b0a5609f1f76d9ab1448",
  "size": 2148
}
AFTER
Field is absent

removed /files/src~1bam-decoder.ts

BEFORE
{
  "sha256": "afcf2e2a7ce0dccea6b3f383304e225ec457909964d8bf06b6c355ff3305695a",
  "size": 4781
}
AFTER
Field is absent

removed /files/src~1binary-sequence-envelope.test.ts

BEFORE
{
  "sha256": "bd4ac00e3f4e1b763d32c737bfe3f80bf58a43f6dad4657990d5f47e3aa4dcaf",
  "size": 4493
}
AFTER
Field is absent

removed /files/src~1binary-sequence-envelope.ts

BEFORE
{
  "sha256": "5cfe456707968498db973b84111228135bceda559ff8c561d640c2d2610f15f5",
  "size": 2519
}
AFTER
Field is absent

removed /files/src~1biological-sequence-artifact-classifier.test.ts

BEFORE
{
  "sha256": "ae6e243854f7d158e0d15e8e208ba686d51fa62981a0b6a505ff6b5087868f62",
  "size": 14498
}
AFTER
Field is absent

removed /files/src~1biological-sequence-artifact-classifier.ts

BEFORE
{
  "sha256": "cb73a1fa7812d51fb6145df6a8f8d4304b6ecd2c66c6b964c3859fd8719b1238",
  "size": 15582
}
AFTER
Field is absent

removed /files/src~1biological-sequence-viewer-model.test.ts

BEFORE
{
  "sha256": "2d02984ebc4fdaedf9f4aacae282088b372c60a6bdcb69a474ad94fa3986648c",
  "size": 3388
}
AFTER
Field is absent

removed /files/src~1biological-sequence-viewer-model.ts

BEFORE
{
  "sha256": "7df6c8ecc8ea43bbddf63a50b87a4eec7f3102088cc36229a6e91a3ea0cd46d3",
  "size": 2500
}
AFTER
Field is absent

removed /files/src~1biological-sequence-viewer.test.tsx

BEFORE
{
  "sha256": "7f6dc82c50df141721c9f1c47393dc7587e43f4cd0a35a4feb37e969c6bfd059",
  "size": 33091
}
AFTER
Field is absent

removed /files/src~1biological-sequence-viewer.tsx

BEFORE
{
  "sha256": "332ef25d1876893df539b7445b9af7f239dbe621050a0cf8a90fd544a6db18d8",
  "size": 32902
}
AFTER
Field is absent

removed /files/src~1chat-file-resource.test.ts

BEFORE
{
  "sha256": "33fc07c40acf2338347e4f45a3cb6c93c6c4e18e3aa30ce09de9905cd973b6aa",
  "size": 55383
}
AFTER
Field is absent

removed /files/src~1chat-file-resource.ts

BEFORE
{
  "sha256": "4aee442ec1b0c9fc7244190cf28390a0a7cb47c67fc7959d039ee62455bea704",
  "size": 45420
}
AFTER
Field is absent

removed /files/src~1compressed-file-name.test.ts

BEFORE
{
  "sha256": "640a92b5328aa0a42db429869dbfe729e1fd79a2be0edaa9af7a87b3f070829a",
  "size": 1236
}
AFTER
Field is absent

removed /files/src~1compressed-file-name.ts

BEFORE
{
  "sha256": "14f75c7c529fca8cf9199ed97fbe469b5405bcafe10f3dadb525be9d4c28f353",
  "size": 571
}
AFTER
Field is absent

removed /files/src~1cram-decoder.test.ts

BEFORE
{
  "sha256": "daa6440c154a13b6e7c313d4a7746425271d1262f43eae127ee5974592ccbe5c",
  "size": 3672
}
AFTER
Field is absent

removed /files/src~1cram-decoder.ts

BEFORE
{
  "sha256": "d9c88094738e3045c5f89bc58050b767c91d19745580ec009dfc768ed72d9b7b",
  "size": 9048
}
AFTER
Field is absent

removed /files/src~1export-actions-workspace.test.tsx

BEFORE
{
  "sha256": "947cb10c7b8d5ee0189990a6c100a4390341af549b7b8bfbeed56acbbdacab4f",
  "size": 20113
}
AFTER
Field is absent

removed /files/src~1file-kind.test.ts

BEFORE
{
  "sha256": "ada900d44b72463a466ed0516fbf7b69e557eaeaab5cd9a4b1cff93be5451d5d",
  "size": 1020
}
AFTER
Field is absent

removed /files/src~1file-kind.ts

BEFORE
{
  "sha256": "7bb4abb9681dfdd76d5cfae7d9d4681bc6b56a099a64c48e02dc7a490e9af681",
  "size": 1181
}
AFTER
Field is absent

removed /files/src~1incremental-export-validator.test.ts

BEFORE
{
  "sha256": "ac64564250985375d56d2de7129d0c4f62bbee9f02772c0fb72d26df97509c3c",
  "size": 4197
}
AFTER
Field is absent

removed /files/src~1incremental-export-validator.ts

BEFORE
{
  "sha256": "25162acb339010c802d3808276278b859f7cc8affa4f9e6fbd9a0fac8c5c0d12",
  "size": 15614
}
AFTER
Field is absent

removed /files/src~1indexed-sequence-envelope.ts

BEFORE
{
  "sha256": "0efdeaa0f0646eb71fb0cc8ee724d6d779de6679474c45a98b0588823fcf5350",
  "size": 6076
}
AFTER
Field is absent

removed /files/src~1indexed-sequence-parser.test.ts

BEFORE
{
  "sha256": "055270741b6dc4d83fb49b662bde08e46c756b9c16dd92655116eb3c256d4550",
  "size": 12900
}
AFTER
Field is absent

removed /files/src~1indexed-sequence-parser.ts

BEFORE
{
  "sha256": "b581850dc06fa571c7fd71d59778e50c6946e0162eb609b9fc973bf45d53bd79",
  "size": 17646
}
AFTER
Field is absent

removed /files/src~1large-workspace-saveas.qualification.test.ts

BEFORE
{
  "sha256": "24fa19c66ca75af55a7791ffe8f5e4272b47dc6197d0f2a23fa4258dad49e08b",
  "size": 7530
}
AFTER
Field is absent

removed /files/src~1memory-filehandle.ts

BEFORE
{
  "sha256": "440b06879c384f54722694965e510ecad32249a301adf093978e00a93676ef1c",
  "size": 1343
}
AFTER
Field is absent

removed /files/src~1model-context-limits.test.ts

BEFORE
{
  "sha256": "5b4e4cdc0c912595157c7158deeeb765990500827417c879b3a4c10ed3c7c834",
  "size": 5641
}
AFTER
Field is absent

removed /files/src~1model-context.test.ts

BEFORE
{
  "sha256": "7d71617866e644de6db19c77f4d1bbbcba7fe71e57d011c45c655c71e035ee6a",
  "size": 6794
}
AFTER
Field is absent

removed /files/src~1model-context.ts

BEFORE
{
  "sha256": "e55dd05a8a0e0e759aadfebcfb472ec5ccc8f296a506567cffb5e142f4833f37",
  "size": 12466
}
AFTER
Field is absent

removed /files/src~1msa~1alignment-editing.test.ts

BEFORE
{
  "sha256": "adf971ec28d4d33598f1f8f6d1ff2e41947bb2491ca4afb0fa09330f9e97b083",
  "size": 13650
}
AFTER
Field is absent

removed /files/src~1msa~1alignment-editing.ts

BEFORE
{
  "sha256": "89319a7d4dbd0ccc65aa50bc092537d264ebff74cdaaf5692da62ad052c3af6e",
  "size": 22734
}
AFTER
Field is absent

removed /files/src~1msa~1alignment-export-provenance.test.ts

BEFORE
{
  "sha256": "1eab3d9482e78cd1a8af9932e52b56cf406f7ed77c80f665139ce4096839acb0",
  "size": 1395
}
AFTER
Field is absent

removed /files/src~1msa~1alignment-export-provenance.ts

BEFORE
{
  "sha256": "205006206f7602e10c4fdeead5c49acddc49fa0f571d4600a2ba534663455451",
  "size": 777
}
AFTER
Field is absent

removed /files/src~1msa~1alignment-state.test.ts

BEFORE
{
  "sha256": "066b8f3370a25d08c3cca00899a83e5c989b442d59d85c9c47c86bd38796e587",
  "size": 1847
}
AFTER
Field is absent

removed /files/src~1msa~1alignment-state.ts

BEFORE
{
  "sha256": "c15b1cfcfcd1abe6efaa8a84f6d0cf4d87006803e513fea096adb8217fa93121",
  "size": 3614
}
AFTER
Field is absent

removed /files/src~1msa~1alignment-workbench-panel.test.tsx

BEFORE
{
  "sha256": "77b9b7dbca537fabd9c2953b9aa5c174d31b61e134a15d7861c3892fa8fd7d87",
  "size": 6902
}
AFTER
Field is absent

removed /files/src~1msa~1alignment-workbench-panel.tsx

BEFORE
{
  "sha256": "e18494903bf40586cfbce6cdff8743a87476c948a994979c7254b4cd997a86fd",
  "size": 25750
}
AFTER
Field is absent

removed /files/src~1msa~1analysis.test.ts

BEFORE
{
  "sha256": "923afa3cd86210b35b41794fcf57de1aa10d1cdbc661cb3a4fd008d016f5d609",
  "size": 7100
}
AFTER
Field is absent

removed /files/src~1msa~1analysis.ts

BEFORE
{
  "sha256": "e90583841b747ddd386fcfed508e625c8d963edb5e064d57b329d18d12bb38a5",
  "size": 10809
}
AFTER
Field is absent

removed /files/src~1msa~1cell-hover-overlay.tsx

BEFORE
{
  "sha256": "3f2429d5067799bcd1969c0d5392a4a92c8f487a30489c1b93970eb725134a7a",
  "size": 947
}
AFTER
Field is absent

removed /files/src~1msa~1codon.ts

BEFORE
{
  "sha256": "99278289c2dc742c606182d332cd923c16817814da30ac50cd5cadb778907818",
  "size": 3266
}
AFTER
Field is absent

removed /files/src~1msa~1color-legend.tsx

BEFORE
{
  "sha256": "346a8ffcf604467e81e28483ffd480eb73e84ca25784a7e3748026b4019b1d95",
  "size": 32933
}
AFTER
Field is absent

removed /files/src~1msa~1colors.test.ts

BEFORE
{
  "sha256": "ec1ec4253481aea9f511bd7ef6ab1c4beee1d3d3b0041008ce1e74374a1bc575",
  "size": 10473
}
AFTER
Field is absent

removed /files/src~1msa~1colors.ts

BEFORE
{
  "sha256": "7728904ef592fc5955975a329e18f77040053233d97ff57cfa70e809818b472e",
  "size": 23390
}
AFTER
Field is absent

removed /files/src~1msa~1consensus.ts

BEFORE
{
  "sha256": "16c185595d0564ca34263430282be1d0014b78e51e3c93e6d8bcceee99578750",
  "size": 3360
}
AFTER
Field is absent

removed /files/src~1msa~1conservation.ts

BEFORE
{
  "sha256": "46bf2f215b452d998e43a94be87682ab4b9ea7f2d8ca8d63f50922ad46160737",
  "size": 11017
}
AFTER
Field is absent

removed /files/src~1msa~1coordinate-map.ts

BEFORE
{
  "sha256": "fa590b2621a289caa9035ffb3a9f86cdf6e842564593db2f93d2a167e0460bc7",
  "size": 2142
}
AFTER
Field is absent

removed /files/src~1msa~1export-actions.tsx

BEFORE
{
  "sha256": "74b225a3fec7cf5ac74ebae1e677ab7582dae11e1505525ac8af8bc3da11f052",
  "size": 13237
}
AFTER
Field is absent

removed /files/src~1msa~1exports.test.ts

BEFORE
{
  "sha256": "e7de1d1d8539d879f4316c2cf795eb51607834850bc06f584a24b7c06e564da8",
  "size": 4322
}
AFTER
Field is absent

removed /files/src~1msa~1exports.ts

BEFORE
{
  "sha256": "6d0d1d7f1b42d724a3baa10a2cdcaad2451dfbfebe96f697c33f31d7d4785d9c",
  "size": 2856
}
AFTER
Field is absent

removed /files/src~1msa~1file-kind.test.ts

BEFORE
{
  "sha256": "e764077195863156b57b337bfc017daaceb89fba7347704a06a316484f9dd8aa",
  "size": 1973
}
AFTER
Field is absent

removed /files/src~1msa~1file-kind.ts

BEFORE
{
  "sha256": "96375f5c90d7bf7ce71a3a1a71a554a3372acb4d8a4a3e067924535e4b2d2f79",
  "size": 2446
}
AFTER
Field is absent

removed /files/src~1msa~1formats~1a2m-a3m.ts

BEFORE
{
  "sha256": "9501e00aaf355577fa411cbae6f9d2f246031a76857fa0f327bed36d91311e9f",
  "size": 4101
}
AFTER
Field is absent

removed /files/src~1msa~1formats~1aligned-fasta.ts

BEFORE
{
  "sha256": "c738399d84e87f51415e805d023189baccc49557b009e96fafab4ed8af9fe080",
  "size": 526
}
AFTER
Field is absent

removed /files/src~1msa~1formats~1clustal.ts

BEFORE
{
  "sha256": "b7dfc760e71d6aa308d3bd9ad89644e9ca3439415426572b1f224ca56334bf44",
  "size": 4779
}
AFTER
Field is absent

removed /files/src~1msa~1formats~1fasta-records.ts

BEFORE
{
  "sha256": "81733297b25b57b30b0688c6bd15246d87ec9be6ce8405b88b6e7c006f2f8da2",
  "size": 2984
}
AFTER
Field is absent

removed /files/src~1msa~1formats~1msf.ts

BEFORE
{
  "sha256": "ecbc3c76dbf277b08b74d92cb834f70baa8d6d084e9f4c2ea32d64322fb845fc",
  "size": 5957
}
AFTER
Field is absent

removed /files/src~1msa~1formats~1nexus.ts

BEFORE
{
  "sha256": "9dc4b7e40da81f01548c88a9ce5f98367ca00009e9baf83224f38a548fa161a6",
  "size": 8491
}
AFTER
Field is absent

removed /files/src~1msa~1formats~1phylip.ts

BEFORE
{
  "sha256": "eb07058291e7228e66c4ae4f9a9e115dc2da642209f32a721b3cfaad3573bc98",
  "size": 7089
}
AFTER
Field is absent

removed /files/src~1msa~1formats~1pir.ts

BEFORE
{
  "sha256": "4cc71ad476f650bd2612b1a8b801c5da7657e1f09dd1ee2f377f167e9f54f81e",
  "size": 2454
}
AFTER
Field is absent

removed /files/src~1msa~1formats~1stockholm.test.ts

BEFORE
{
  "sha256": "dcd2ae091ef48f1730bb6c35faa7b9a390263e1a08a3ffef2f87f0127c23db75",
  "size": 7842
}
AFTER
Field is absent

removed /files/src~1msa~1formats~1stockholm.ts

BEFORE
{
  "sha256": "f697cb770dbc7e913f933522d0f65bba1b13cb4983738d10cd848ec12fe7b3f7",
  "size": 9541
}
AFTER
Field is absent

removed /files/src~1msa~1guide-tree-panel.tsx

BEFORE
{
  "sha256": "6251a42d492b95bb3c69b0fc7de45053ba67a01d639100b01e7d1b47d1b935b6",
  "size": 2041
}
AFTER
Field is absent

removed /files/src~1msa~1guide-tree.test.ts

BEFORE
{
  "sha256": "21ba0409b9261d0c9d791bee4c8d6203236b1a4011667c5f0884078c6c830347",
  "size": 1592
}
AFTER
Field is absent

removed /files/src~1msa~1guide-tree.ts

BEFORE
{
  "sha256": "3ba97f9385537ffd9896523b33e8e0a433dbf8713fb67db2a70279d68755be67",
  "size": 5041
}
AFTER
Field is absent

removed /files/src~1msa~1hover-details.ts

BEFORE
{
  "sha256": "d93b390b08838c923dc003a16e7020dd90e5ea829c86ad86e7800ccf31d2c345",
  "size": 438
}
AFTER
Field is absent

removed /files/src~1msa~1matrix-renderer.tsx

BEFORE
{
  "sha256": "e146a8882d9f0347cd9ebdfc24830a7a9569b9410875ff8b9ab8acdd0b84f74d",
  "size": 31873
}
AFTER
Field is absent

removed /files/src~1msa~1metadata-panel.tsx

BEFORE
{
  "sha256": "fb67a1768d3eff0b16c6deb627ee5571b4355c14dfc1bb4f5392d521ab6487a5",
  "size": 3654
}
AFTER
Field is absent

removed /files/src~1msa~1metric-tracks.tsx

BEFORE
{
  "sha256": "1334fce3b34c1377fd17e6946869c9775d520f303f7a49382c249955922069c3",
  "size": 18441
}
AFTER
Field is absent

removed /files/src~1msa~1model-context.ts

BEFORE
{
  "sha256": "86e06b344deb37aae3f0349987027e67ebd66fd2d0845def6f11147fc65cea17",
  "size": 25237
}
AFTER
Field is absent

removed /files/src~1msa~1molecule-inference.ts

BEFORE
{
  "sha256": "83e8c51dc0130234db00836be184b3c4a07b92b18dcf5b6712ecafbf62f1ca6a",
  "size": 3223
}
AFTER
Field is absent

removed /files/src~1msa~1msa-analysis-worker-factory-vite.ts

BEFORE
{
  "sha256": "fe535fb3f053f7715aef165faf11c3b8511b7a8abc32983974f645fa073dff8b",
  "size": 204
}
AFTER
Field is absent

removed /files/src~1msa~1msa-analysis-worker.ts

BEFORE
{
  "sha256": "b49ff95a0530554baea8c17035e18ae6303f1c0af2e03de1ee73ae7f971bc640",
  "size": 1506
}
AFTER
Field is absent

removed /files/src~1msa~1msa-rich-viewer.tsx

BEFORE
{
  "sha256": "d7c9d7c4058d75072720476575c97ba169f70f0ab552980fe20f8b225f121f5b",
  "size": 123332
}
AFTER
Field is absent

removed /files/src~1msa~1overview-strip.tsx

BEFORE
{
  "sha256": "f249ff89349040de7ad785fc5e8bb3406cb916dd73f76cebaed0a415356c1748",
  "size": 6873
}
AFTER
Field is absent

removed /files/src~1msa~1parser.test.ts

BEFORE
{
  "sha256": "04b51fc9c11460f69ada69fb8169ccbd5ef7a8eb8beb8f6a37575f1a46bab56f",
  "size": 18022
}
AFTER
Field is absent

removed /files/src~1msa~1parser.ts

BEFORE
{
  "sha256": "99a28f01c66de7e892f628d1d8d2dcd0223d17435177017856d43e06f934836d",
  "size": 12686
}
AFTER
Field is absent

removed /files/src~1msa~1performance-banners.tsx

BEFORE
{
  "sha256": "77518b3849d2b235ecd30a93e8322205f59d7ae8f878ed6af2f8964e3e530c6d",
  "size": 3698
}
AFTER
Field is absent

removed /files/src~1msa~1performance.test.ts

BEFORE
{
  "sha256": "d90793781fcbaf86a74c8d587eeb87555f74521ced308c40c67d1c24752ce803",
  "size": 875
}
AFTER
Field is absent

removed /files/src~1msa~1performance.ts

BEFORE
{
  "sha256": "fdb5e5567f1788ca20a8506e05f2a40aa4fce25bb10936682a4ca9ea1aa79620",
  "size": 3913
}
AFTER
Field is absent

removed /files/src~1msa~1phylogenetic-tree-panel.test.ts

BEFORE
{
  "sha256": "2f3dee39cdb18ee241fdcac238f0b21805ab3a39fbfb784c2b51c3fd42e5b769",
  "size": 1071
}
AFTER
Field is absent

removed /files/src~1msa~1phylogenetic-tree-panel.tsx

BEFORE
{
  "sha256": "a03df951e49dc57622166966c3c4df8e8ecbe7808f4ac9e831aec6b5c1a3a8b8",
  "size": 5431
}
AFTER
Field is absent

removed /files/src~1msa~1phylogenetic-tree.test.ts

BEFORE
{
  "sha256": "8644916fb1cd56b15869951500036d12322425571237b018f3e2c2f0986235a7",
  "size": 1713
}
AFTER
Field is absent

removed /files/src~1msa~1phylogenetic-tree.ts

BEFORE
{
  "sha256": "b8cde026a76ffe142c5b8f298e6481dd64159c66cc9c1308b89722bca949875a",
  "size": 11733
}
AFTER
Field is absent

removed /files/src~1msa~1pinned-inspector.tsx

BEFORE
{
  "sha256": "646a3f6b563f02367828c36ffed86be769811df1807ac7f7dcbee3a832835e5f",
  "size": 9249
}
AFTER
Field is absent

removed /files/src~1msa~1preview.test.tsx

BEFORE
{
  "sha256": "8f9121536894adb62008890cd31886115742866d6e95d51380131afd6608ca85",
  "size": 55851
}
AFTER
Field is absent

removed /files/src~1msa~1residue-alphabet.ts

BEFORE
{
  "sha256": "2c417cbbed21c304f3e97d07282d6f2e340c7cef0d3152dc6c282488672fb99d",
  "size": 3995
}
AFTER
Field is absent

removed /files/src~1msa~1rna-structure.ts

BEFORE
{
  "sha256": "6fba2370bd8884764556d391044f245d7095b49f6dcdaffa9c6b8ee8ddc6bdfc",
  "size": 3010
}
AFTER
Field is absent

removed /files/src~1msa~1rows-panel.tsx

BEFORE
{
  "sha256": "3aaf15bfabfec7abc975f5a492d27bc5ed6bcedbbe5096248e1dbbbe1279aae2",
  "size": 17319
}
AFTER
Field is absent

removed /files/src~1msa~1scientific-metrics.test.ts

BEFORE
{
  "sha256": "425582a7bc92186d7d5095f7135c9000aacc61030dde76485c7f051945cba448",
  "size": 4280
}
AFTER
Field is absent

removed /files/src~1msa~1search-results-panel.tsx

BEFORE
{
  "sha256": "18df3ef095920fd5a016f792d874af62b33ab2edc9c7948995177e0a9e366f4e",
  "size": 7745
}
AFTER
Field is absent

removed /files/src~1msa~1search.ts

BEFORE
{
  "sha256": "4ab5be74bffb249d7f09bb52c744e8fb6767113cb9c24c429d3c38c2708e94c2",
  "size": 9263
}
AFTER
Field is absent

removed /files/src~1msa~1types.ts

BEFORE
{
  "sha256": "42fea7ad27cee91e1bd90224b9fe21e55872d7c2c8ef82729b8ba33f6846d55d",
  "size": 6228
}
AFTER
Field is absent

removed /files/src~1msa~1use-alignment-workbench-commands.test.ts

BEFORE
{
  "sha256": "01a728b706ffbff7354f7555e6a6504e3e16369fa7b4b9e1d3ac79dcd18ea964",
  "size": 4476
}
AFTER
Field is absent

removed /files/src~1msa~1use-alignment-workbench-commands.ts

BEFORE
{
  "sha256": "581d875d272255de0642a076a4244b0a29463d7ebdbbc3fea229c78bb2a35812",
  "size": 18327
}
AFTER
Field is absent

removed /files/src~1msa~1use-msa-document.ts

BEFORE
{
  "sha256": "089c3a307b70c44525f663aaf99ae278f8abe47b91687e2a8e272b2d9a0e9766",
  "size": 10098
}
AFTER
Field is absent

removed /files/src~1msa~1use-msa-viewport.ts

BEFORE
{
  "sha256": "a7562de80a6a2171670c15ef0a0b5fc1ac7ac454777d091652e43fab1465e66a",
  "size": 4592
}
AFTER
Field is absent

removed /files/src~1msa~1virtualization.test.ts

BEFORE
{
  "sha256": "c196f2b13ef61ff1b95183e125c2f4c36646e7ecc8d41b9e7263decaaeb9a4b1",
  "size": 1226
}
AFTER
Field is absent

removed /files/src~1msa~1virtualization.ts

BEFORE
{
  "sha256": "3e598d0a4b06927ba559b5e12c4d40e9be09af6db3149d6ddf7eef0d2cf81d3f",
  "size": 2170
}
AFTER
Field is absent

removed /files/src~1msa~1warnings-drawer.tsx

BEFORE
{
  "sha256": "1092a99656305ad4e9424911b8d59bb6208bf47ec23fbad977c7770b99c4b6b7",
  "size": 2915
}
AFTER
Field is absent

removed /files/src~1msa~1workbench-controller.test.ts

BEFORE
{
  "sha256": "4f7caa035f1616dc4799c4ca011c95724953d934cb53a60716ddd3c7b4eccb1c",
  "size": 3087
}
AFTER
Field is absent

removed /files/src~1msa~1workbench-controller.ts

BEFORE
{
  "sha256": "524bcaf211994199af24284f17becee092f2f8fb010125d4578544a271908bee",
  "size": 7439
}
AFTER
Field is absent

removed /files/src~1msa~1worker-client.test.ts

BEFORE
{
  "sha256": "d5e70514998e0d2015bb0639c99c98477793ee2d6bf4883d9e9f946e1f74a4c4",
  "size": 4769
}
AFTER
Field is absent

removed /files/src~1msa~1worker-client.ts

BEFORE
{
  "sha256": "600542b217653ba03ee9772461a62f791405d47eb6538faa883fbdf11afe603d",
  "size": 4162
}
AFTER
Field is absent

removed /files/src~1msa~1worker-protocol.ts

BEFORE
{
  "sha256": "06112fb2740e1fa85bbe125f572bff320b14ab118cf8716df64eb9e9c007b710",
  "size": 903
}
AFTER
Field is absent

removed /files/src~1nucleotide-alphabet.ts

BEFORE
{
  "sha256": "50a9b72c3346313aab2f3e73b21c3eae0d2e44efd8b56bf32c0e1e3461411e47",
  "size": 2490
}
AFTER
Field is absent

removed /files/src~1persistent~1durable-viewer-state.test.ts

BEFORE
{
  "sha256": "db8d8f424496f9e0a99a1c1c982ef5a05f1c553b99d1ebd313205310a8598925",
  "size": 38161
}
AFTER
Field is absent

removed /files/src~1persistent~1durable-viewer-state.ts

BEFORE
{
  "sha256": "968a32e0b0bd4a5dc28afe2579749ed8a0a83957c6026776e5d5b14a8ba95682",
  "size": 29966
}
AFTER
Field is absent

removed /files/src~1persistent~1native-workspace-publisher.test.ts

BEFORE
{
  "sha256": "771f32697e9c330f148bbecd853af64ae460bf784c0f316825017b8812fccd8e",
  "size": 29954
}
AFTER
Field is absent

removed /files/src~1persistent~1native-workspace-publisher.ts

BEFORE
{
  "sha256": "0230c0a0ff832963ed0b00cd7c8d36d7dd8eb36dd4568905418284e5d2a8d6eb",
  "size": 11007
}
AFTER
Field is absent

removed /files/src~1persistent~1recovery-adapter.test.ts

BEFORE
{
  "sha256": "f86d43587da2e9ede04cd489f47816cf1f1aa058edf8e06f45ed43d56f72d534",
  "size": 2411
}
AFTER
Field is absent

removed /files/src~1persistent~1recovery-adapter.ts

BEFORE
{
  "sha256": "4d6f42128fcc078667992f84bf2ead1d9bb48aebce09c345aa3f224e9a4e6d68",
  "size": 1789
}
AFTER
Field is absent

removed /files/src~1persistent~1scientific-data-client.test.ts

BEFORE
{
  "sha256": "7e7beb1dc8cef1312d024d12379bd112f30fa4b21898770006edc45974ca7b79",
  "size": 69209
}
AFTER
Field is absent

removed /files/src~1persistent~1scientific-data-client.ts

BEFORE
{
  "sha256": "b6fc0ffb33daf12471b9b131da4e77e12f74a55387ab924047a8b92a6e47a470",
  "size": 55192
}
AFTER
Field is absent

removed /files/src~1persistent~1session-adapter.test.ts

BEFORE
{
  "sha256": "928bbc479346d775d591a3c3ceae55b809aceda342225c1081a54e997cf5477f",
  "size": 3819
}
AFTER
Field is absent

removed /files/src~1persistent~1session-adapter.ts

BEFORE
{
  "sha256": "a2bdab0b89a2916993a06e7c554b25de2b8c123ce8c06e8179ecbb044a16cdec",
  "size": 3329
}
AFTER
Field is absent

removed /files/src~1persistent~1streaming-source-replacement.test.ts

BEFORE
{
  "sha256": "e6db70f92efbb925858876a4b384ded2cc98eed6dba70e192a4f681114b9a5f9",
  "size": 11710
}
AFTER
Field is absent

removed /files/src~1persistent~1streaming-source-replacement.ts

BEFORE
{
  "sha256": "cfa02b5ae14e9c0e812067d1272bd4bd5c92ea7d24688b24643763706b1bcda1",
  "size": 16557
}
AFTER
Field is absent

removed /files/src~1plugin-manifest.test.ts

BEFORE
{
  "sha256": "102c8eea0ba81072b7ade30f1790336aa66871e424decabc4013d06b2e127c0a",
  "size": 1097
}
AFTER
Field is absent

removed /files/src~1protocol.test.ts

BEFORE
{
  "sha256": "7bb311f76af5f753d44d33201d6333fbc08a3dad0e771f9cdc85eb7209b5dd60",
  "size": 2969
}
AFTER
Field is absent

removed /files/src~1protocol.ts

BEFORE
{
  "sha256": "33c70066f2bcce960fbd9c485876e800c84f6a79388d465e70f6ca3737a2a85f",
  "size": 3559
}
AFTER
Field is absent

removed /files/src~1public-example-acquisition.live.test.ts

BEFORE
{
  "sha256": "364a54ed94103d5ae74b00a02392ddc31b52a9e15ed1efda84065d51013be73d",
  "size": 8819
}
AFTER
Field is absent

removed /files/src~1public-example-acquisition.test.ts

BEFORE
{
  "sha256": "9d1a144628354589d9bd1468e0ad1d9be090cbaadb3d826db6145ddd229c138e",
  "size": 50086
}
AFTER
Field is absent

removed /files/src~1public-example-acquisition.ts

BEFORE
{
  "sha256": "5fffe6abd54ce61ab4e3ac9c5de06e4acca14457fdc81e433e6eacaa44968443",
  "size": 53869
}
AFTER
Field is absent

removed /files/src~1resource-error.ts

BEFORE
{
  "sha256": "561f3459bb0bd3894fd9be0df67288600358a00ce321cc8cd3d6b28ddc2f2e70",
  "size": 687
}
AFTER
Field is absent

removed /files/src~1runtime-contract.ts

BEFORE
{
  "sha256": "da365b07791fb275753eaed6bb90c0c702e130ee37e09d46733026433dcf72c5",
  "size": 4600
}
AFTER
Field is absent

removed /files/src~1scientific-platform-protocol.ts

BEFORE
{
  "sha256": "0bd0e8b0ca48b3de6fbe90b0b4a1366c18b5805df87796c5157499e9b937a025",
  "size": 2898
}
AFTER
Field is absent

removed /files/src~1scientific-platform.test.ts

BEFORE
{
  "sha256": "ae6cc1b9eac57ca3133a58e66f22cdbbac919aff415d47736dff49782c3a83f3",
  "size": 22058
}
AFTER
Field is absent

removed /files/src~1scientific-platform.ts

BEFORE
{
  "sha256": "7612b7ac23d792c66d7d03bf01dfe72cc10bcb31f9124ad5b818003c8f9a5aa2",
  "size": 21394
}
AFTER
Field is absent

removed /files/src~1sequence~1__fixtures__~1chromatogram.ts

BEFORE
{
  "sha256": "6e8ad7ae5aaf64dcdfda04ab6b3d44a012417ce43dc8627a5a551d42f898c373",
  "size": 7412
}
AFTER
Field is absent

removed /files/src~1sequence~1__fixtures__~1official-vcf-4.3-first-100-sample-variant.vcf

BEFORE
{
  "sha256": "2841a817ca64295730ef905725a735b4a424bdcfd3e231304eeee8f44e76997b",
  "size": 8218
}
AFTER
Field is absent

removed /files/src~1sequence~1analysis.test.ts

BEFORE
{
  "sha256": "631abd067e67b7cdc1b68d7ee86cefadb5bf9cbdceecc7d4ffb40b2f8bf09af9",
  "size": 9258
}
AFTER
Field is absent

removed /files/src~1sequence~1analysis.ts

BEFORE
{
  "sha256": "3746ff3cedcbdb19e3eda445023f31664d0c5035aa897c3d8944de6cd9b9c891",
  "size": 18078
}
AFTER
Field is absent

removed /files/src~1sequence~1binary-parser.ts

BEFORE
{
  "sha256": "6a72f9eaad564c191acf862e594dfe3b7b99d570fc5013e4df922fcceb911cb4",
  "size": 3770
}
AFTER
Field is absent

removed /files/src~1sequence~1chromatogram-panel.test.tsx

BEFORE
{
  "sha256": "3d9a2ba0cc2974c921056a1cfe7bc9368e68d972185acfe01ded457c5c618236",
  "size": 21665
}
AFTER
Field is absent

removed /files/src~1sequence~1chromatogram-panel.tsx

BEFORE
{
  "sha256": "09b5d8f2e83558c840db0aae2914ea74338d981c867206291b5930d856da2d36",
  "size": 22779
}
AFTER
Field is absent

removed /files/src~1sequence~1chromatogram-query.test.ts

BEFORE
{
  "sha256": "36660201c1e2578a90cfa69c74fd4128f91258a57030bab50cfcf04e27e414f8",
  "size": 15710
}
AFTER
Field is absent

removed /files/src~1sequence~1chromatogram-query.ts

BEFORE
{
  "sha256": "a4e8d5a7f568677b656c4b7475a1bfe400fbd0e575660a07be84663e37897816",
  "size": 13233
}
AFTER
Field is absent

removed /files/src~1sequence~1colors.ts

BEFORE
{
  "sha256": "2ee4ef7d44079b0293f799899ed4e1ca43ca75a80b8f9d871f3b5b9df847bf8c",
  "size": 123
}
AFTER
Field is absent

removed /files/src~1sequence~1coordinate-map.ts

BEFORE
{
  "sha256": "dfd79caf9ad66a67d1ee7cb0bcf1d09cca293d4fee5090157af3373d231858f6",
  "size": 440
}
AFTER
Field is absent

removed /files/src~1sequence~1editing.test.ts

BEFORE
{
  "sha256": "c45efbe2ccb399d67b34dcd802958f62718a407252d3ac02d16adb8c50be5c12",
  "size": 22023
}
AFTER
Field is absent

removed /files/src~1sequence~1editing.ts

BEFORE
{
  "sha256": "cb0dc605c70aeb2778bab5a1e1383c49747c005b57e8730ae0b0bccce294aeee",
  "size": 23479
}
AFTER
Field is absent

removed /files/src~1sequence~1evidence-track-panel.test.ts

BEFORE
{
  "sha256": "6b30ef28975d810cb89d762b9fa20ec8716082ec696b01134e2ca14ef2d03223",
  "size": 898
}
AFTER
Field is absent

removed /files/src~1sequence~1evidence-track-panel.test.tsx

BEFORE
{
  "sha256": "e5d79f0ce0c761ae9c9c359c89e03eb1f0fc1ab81bb402a5502655cacb77cedd",
  "size": 16328
}
AFTER
Field is absent

removed /files/src~1sequence~1evidence-track-panel.tsx

BEFORE
{
  "sha256": "c4430627915a7e1547ee8bccabb418579f9f4e0a9419e9d35aca4661c7cc56c7",
  "size": 36503
}
AFTER
Field is absent

removed /files/src~1sequence~1export-actions.tsx

BEFORE
{
  "sha256": "37487f97894d8980c30049b6c78d796943c3aaa31193c94735239eca3cbd2366",
  "size": 15593
}
AFTER
Field is absent

removed /files/src~1sequence~1exports.test.ts

BEFORE
{
  "sha256": "02dc630511e1fd9e129f87865e3ec86ae43a6e911651d091961f774aa0114beb",
  "size": 1605
}
AFTER
Field is absent

removed /files/src~1sequence~1exports.ts

BEFORE
{
  "sha256": "022c6c55324324ada3010c7587d48e573ba4d8b23d00d5daa6da1bc58e0c2250",
  "size": 2201
}
AFTER
Field is absent

removed /files/src~1sequence~1fastq-quality-analysis.test.ts

BEFORE
{
  "sha256": "0097eecf2dbfaf6c9a5def4d9154f794c2a36459fa30948747944f8c55cb584f",
  "size": 10030
}
AFTER
Field is absent

removed /files/src~1sequence~1fastq-quality-analysis.ts

BEFORE
{
  "sha256": "9d3f9851b1d333a769fb5c45c571c18a7530fd3d4af33c3cfbe2042316f406b6",
  "size": 15068
}
AFTER
Field is absent

removed /files/src~1sequence~1fastq-quality-charts.tsx

BEFORE
{
  "sha256": "8e001bb8785e00aaab8406381823678e0ecee2f4fa2f2c0016596615a61a8ed0",
  "size": 12391
}
AFTER
Field is absent

removed /files/src~1sequence~1fastq-quality-report.tsx

BEFORE
{
  "sha256": "1f2674d92ec81c5f67e738f73c7242f45a44826c81fa1e600a35c98d8894d3e3",
  "size": 17511
}
AFTER
Field is absent

removed /files/src~1sequence~1fastq-summary-panel.test.tsx

BEFORE
{
  "sha256": "3c34f050538addafa833fa3ab3e40e29cc9edc2aefb2fc96c697d838bd55a39a",
  "size": 11627
}
AFTER
Field is absent

removed /files/src~1sequence~1fastq-summary-panel.tsx

BEFORE
{
  "sha256": "516992c5e9d4663285b6b31eb7821f2df4995fb97fd10578ae28ce3e76fa64d6",
  "size": 1956
}
AFTER
Field is absent

removed /files/src~1sequence~1feature-location.test.ts

BEFORE
{
  "sha256": "73260a5c0763982682c0a7b76e7f96c76b8d8a8e1a1d4e351dfd377baebc466b",
  "size": 2234
}
AFTER
Field is absent

removed /files/src~1sequence~1feature-location.ts

BEFORE
{
  "sha256": "8fafc0ed8b2a93bff45eb7cdce435c429bcbdd7240134c444d0a2bd7d89fcc44",
  "size": 5093
}
AFTER
Field is absent

removed /files/src~1sequence~1feature-resolution.test.ts

BEFORE
{
  "sha256": "7a540d1aa651bb12df43e5a7d77a58d2b19473aed41e5ee70265bf61e0df4b23",
  "size": 1576
}
AFTER
Field is absent

removed /files/src~1sequence~1feature-resolution.ts

BEFORE
{
  "sha256": "b9d1f1c54f0b2bc7123b693af66725e7aa171dd068c066c89de7c24cbed14eae",
  "size": 1170
}
AFTER
Field is absent

removed /files/src~1sequence~1feature-tracks.test.ts

BEFORE
{
  "sha256": "5334f978ae1467f3ea21e313b6c30527a9fa98c99f8ad83e2b5381a9ef0e532a",
  "size": 1049
}
AFTER
Field is absent

removed /files/src~1sequence~1feature-tracks.tsx

BEFORE
{
  "sha256": "5bd0a0117e86684e2608b1c0a3db06ef3a1712bf23c5e990d07d5737733bb847",
  "size": 5626
}
AFTER
Field is absent

removed /files/src~1sequence~1feature-translation.ts

BEFORE
{
  "sha256": "1017db400a5c15030ab89deb050933f860880fbd77b972f21a859d2b81b708f0",
  "size": 6417
}
AFTER
Field is absent

removed /files/src~1sequence~1file-kind.test.ts

BEFORE
{
  "sha256": "5319cd6db611bb2ca6f9f569890e40ecabf8525e062d3a195f47aca1aaac8578",
  "size": 958
}
AFTER
Field is absent

removed /files/src~1sequence~1file-kind.ts

BEFORE
{
  "sha256": "7f9aca55e09d7c1f4c5a4347394c84cb35ec865696562ef467eb6bb5bc8bbdd7",
  "size": 1132
}
AFTER
Field is absent

removed /files/src~1sequence~1formats~1chromatogram.test.ts

BEFORE
{
  "sha256": "a26733a7731454ba4af4d909588907255a6c32101d9d8c8cc68eadf925001e61",
  "size": 8665
}
AFTER
Field is absent

removed /files/src~1sequence~1formats~1chromatogram.ts

BEFORE
{
  "sha256": "ae33e555719ea88c60cf4c784551dba6e06ee184d210739d06f19245d52dac78",
  "size": 18903
}
AFTER
Field is absent

removed /files/src~1sequence~1formats~1embl.ts

BEFORE
{
  "sha256": "6cd158548b974b2ec984a1ac73c79e2c8efef6408315644b756f4afa07cb96e3",
  "size": 7223
}
AFTER
Field is absent

removed /files/src~1sequence~1formats~1fasta.ts

BEFORE
{
  "sha256": "e4d98b808cc680f7a8740bdb7f363ac43a948cd2dcc87c83585262ea59cd7e89",
  "size": 4400
}
AFTER
Field is absent

removed /files/src~1sequence~1formats~1fastq.ts

BEFORE
{
  "sha256": "8135e56710ed00126d09eb14d269d034f84669cc8071a540bf92ad0344980e41",
  "size": 9736
}
AFTER
Field is absent

removed /files/src~1sequence~1formats~1genbank.ts

BEFORE
{
  "sha256": "3521c1b96c13dee60ea6f354ddfaa9eb45f5b4e487f4a40b3ef826a7a85196ee",
  "size": 8685
}
AFTER
Field is absent

removed /files/src~1sequence~1formats~1snapgene.test.ts

BEFORE
{
  "sha256": "34475b333637ec28d6a2991084e9efd3ee449a54a1aea5d2175e7f8acdfb355a",
  "size": 19983
}
AFTER
Field is absent

removed /files/src~1sequence~1formats~1snapgene.ts

BEFORE
{
  "sha256": "d1592e8a6a55a569b69183e629294a646507f8e292d1f21cd55db0e7768ac00c",
  "size": 30436
}
AFTER
Field is absent

removed /files/src~1sequence~1genetic-code.test.ts

BEFORE
{
  "sha256": "78bba963c3a3fccffce9fa404e78e8a72bb0c15cfe74ed6a9f580cdb4b755c1f",
  "size": 2171
}
AFTER
Field is absent

removed /files/src~1sequence~1genetic-code.ts

BEFORE
{
  "sha256": "51514497d8b0188bdaa9c56044e2257defd99ea3dc3f6dcfb63c48fea5fabe55",
  "size": 6445
}
AFTER
Field is absent

removed /files/src~1sequence~1interaction-state.test.ts

BEFORE
{
  "sha256": "63fa278c4f2d31bb04732bd7b52d13d9387fdc2a43f35bbbe168a4a52ebab937",
  "size": 1212
}
AFTER
Field is absent

removed /files/src~1sequence~1interaction-state.ts

BEFORE
{
  "sha256": "a715f5bc9314186a6843ba469aec61977165294be1f24418b469451e1f350b95",
  "size": 1824
}
AFTER
Field is absent

removed /files/src~1sequence~1interface-state.ts

BEFORE
{
  "sha256": "a93ca240c75ed726523e4a6fe5b02e9f6508823d48cf9ebab43b21340dedb67f",
  "size": 4632
}
AFTER
Field is absent

removed /files/src~1sequence~1metadata-panel.tsx

BEFORE
{
  "sha256": "888bef299935a81900a96874aa09256e7d2438493998964fc33e0ed83ccfbdc6",
  "size": 1067
}
AFTER
Field is absent

removed /files/src~1sequence~1model-context.test.ts

BEFORE
{
  "sha256": "a6048fc1063d19438ee153fcf78af51e6b32a168174af504a36b8c084e2e655e",
  "size": 5153
}
AFTER
Field is absent

removed /files/src~1sequence~1model-context.ts

BEFORE
{
  "sha256": "2361b75af43cf5f365938067db6ddd6d151e579be9a0331ec49e57f9c114ce83",
  "size": 20817
}
AFTER
Field is absent

removed /files/src~1sequence~1molecule-inference.test.ts

BEFORE
{
  "sha256": "265e1110e733820585657eae30131cf704b419ef02f59056cb5c5243265cb518",
  "size": 419
}
AFTER
Field is absent

removed /files/src~1sequence~1molecule-inference.ts

BEFORE
{
  "sha256": "b94d0c9ab9af5fcaa8858eda4153fbdb89a740a137794edf1e390d80e4196467",
  "size": 265
}
AFTER
Field is absent

removed /files/src~1sequence~1msa-sequence-adapter.test.ts

BEFORE
{
  "sha256": "148bfcbb50c0fce73075affa3de864b50f4ea83b99778e6d45316235690f8d37",
  "size": 980
}
AFTER
Field is absent

removed /files/src~1sequence~1msa-sequence-adapter.ts

BEFORE
{
  "sha256": "dee3babb5fbae0ab00d9a2b17f1269a5fee972b59667c0aa2aa1264e9948ae6e",
  "size": 2643
}
AFTER
Field is absent

removed /files/src~1sequence~1orientation.test.ts

BEFORE
{
  "sha256": "5f38f94e6ec47a3ff3ba3898969855b9428c8863edae92cd502ad852f5cf7c82",
  "size": 5640
}
AFTER
Field is absent

removed /files/src~1sequence~1orientation.ts

BEFORE
{
  "sha256": "2f0da2ec087a389a3851296d3f0e2cab53856b7c05a98755af59d0cb638a695b",
  "size": 3451
}
AFTER
Field is absent

removed /files/src~1sequence~1parser.test.ts

BEFORE
{
  "sha256": "1d22586bc856214ee269835c64dabf129f9203d34f3a2a5b8b645d9346cb5e8d",
  "size": 26376
}
AFTER
Field is absent

removed /files/src~1sequence~1parser.ts

BEFORE
{
  "sha256": "1d9d9c4222f0cafb0db2a00bd7e194847907bf475af3be436ac114a5a50e6a22",
  "size": 5739
}
AFTER
Field is absent

removed /files/src~1sequence~1performance-banners.tsx

BEFORE
{
  "sha256": "d4cda90a8929a477097733a0eced89276e599501fe30a507bc2d8f268f2af23f",
  "size": 2338
}
AFTER
Field is absent

removed /files/src~1sequence~1pinned-inspector.tsx

BEFORE
{
  "sha256": "f0dc91e677051baf53618a8590dd0dd02bc5ca5efd2295e6976996e8cf64316c",
  "size": 10765
}
AFTER
Field is absent

removed /files/src~1sequence~1preview.test.tsx

BEFORE
{
  "sha256": "b8674126321d52e7d842e65e7dc3f4b94574defc041396e5c0dc95ed564614d0",
  "size": 69201
}
AFTER
Field is absent

removed /files/src~1sequence~1quality-track.tsx

BEFORE
{
  "sha256": "2f27aa3e1c34a806903bf6f0fba77b831622a2a894774169ca22d178010ffaf1",
  "size": 1086
}
AFTER
Field is absent

removed /files/src~1sequence~1quality.ts

BEFORE
{
  "sha256": "7283ca879a190a2012634707465cab05fc58fed4ec412568c71bc14d2a9a422d",
  "size": 810
}
AFTER
Field is absent

removed /files/src~1sequence~1read-pileup.test.ts

BEFORE
{
  "sha256": "a2253e29122aabc0ed2eaf393af78c17e57e2c24b376cd0fa208e45a713410b7",
  "size": 10073
}
AFTER
Field is absent

removed /files/src~1sequence~1read-pileup.ts

BEFORE
{
  "sha256": "10ac13a0a156ba1a153531ade45071b8504ddea7a043057d3bc3a744e30a7063",
  "size": 16582
}
AFTER
Field is absent

removed /files/src~1sequence~1record-list-panel.tsx

BEFORE
{
  "sha256": "429be9b3527647fa6ecc6c4d6aa6056af3542b6ef0345a2c076d4eceb4f44ae8",
  "size": 12058
}
AFTER
Field is absent

removed /files/src~1sequence~1search-panel.tsx

BEFORE
{
  "sha256": "1bc4346b5fde77254cf6181f0c67617f9c5557c3bbd71a3f7893a117ce662bde",
  "size": 2753
}
AFTER
Field is absent

removed /files/src~1sequence~1search.test.ts

BEFORE
{
  "sha256": "c3714df9e27d1c6defcb35d3b4fcc6b7aafd09b9c39fa2d45da1331fb619c46b",
  "size": 4257
}
AFTER
Field is absent

removed /files/src~1sequence~1search.ts

BEFORE
{
  "sha256": "b3839408c0ec3c1fe5176fdb75a7bdad834e5648f36fd6ca78f1ef90c3c6a9b6",
  "size": 7707
}
AFTER
Field is absent

removed /files/src~1sequence~1selection.test.ts

BEFORE
{
  "sha256": "daa11a43f31a4a2c45d29798d47475b12b0d1bc4fefac5133251776f3b80df93",
  "size": 2168
}
AFTER
Field is absent

removed /files/src~1sequence~1selection.ts

BEFORE
{
  "sha256": "4a6628733aab4e17b65edf9d5fdc5bd359497df2836fb660221331c80f80595f",
  "size": 3139
}
AFTER
Field is absent

removed /files/src~1sequence~1sequence-legend.tsx

BEFORE
{
  "sha256": "29e9340ba7eac4a7ba519c7bbe8280f1a9627854e6f12a390980a905045016a1",
  "size": 1860
}
AFTER
Field is absent

removed /files/src~1sequence~1sequence-line-layout.test.ts

BEFORE
{
  "sha256": "dcc515dc433f7180c5fc4ad11fe3f664d608d6f295ff0ff30e343b38aa84a76e",
  "size": 1378
}
AFTER
Field is absent

removed /files/src~1sequence~1sequence-line-layout.ts

BEFORE
{
  "sha256": "78ebe70be806e02a1fd60512a16008609911ac39c920f2834abcf9fe0c2e0f40",
  "size": 2326
}
AFTER
Field is absent

removed /files/src~1sequence~1sequence-overview-geometry.ts

BEFORE
{
  "sha256": "a09bfb784a049ff0a424175c98e2d1a944322e578879b386642f5f89532e0b55",
  "size": 8774
}
AFTER
Field is absent

removed /files/src~1sequence~1sequence-overview.test.ts

BEFORE
{
  "sha256": "0b8c35ff786f55e22f40a7ea742c81dc23ea134627602a83ce414fcbf9f7fb3d",
  "size": 18419
}
AFTER
Field is absent

removed /files/src~1sequence~1sequence-overview.tsx

BEFORE
{
  "sha256": "1d8929cd99f0e26db1f27884fa7893c982826e1adfeca75842af63c9551126dc",
  "size": 37286
}
AFTER
Field is absent

removed /files/src~1sequence~1sequence-palette.test.ts

BEFORE
{
  "sha256": "020cfb3278fdb6c513452aed678a82630a5975c738a13e4c4bb1d0fc4e6c4e96",
  "size": 10084
}
AFTER
Field is absent

removed /files/src~1sequence~1sequence-palette.ts

BEFORE
{
  "sha256": "fc88a257e64853b319b7d86f62311a8b936b91f7d10d8667856a1d2228d76086",
  "size": 16274
}
AFTER
Field is absent

removed /files/src~1sequence~1sequence-renderer.tsx

BEFORE
{
  "sha256": "272d42d1acea43a55fd2143d50890a9a4f8f20e6bc25b93a406b391055952109",
  "size": 18036
}
AFTER
Field is absent

removed /files/src~1sequence~1sequence-rich-viewer.tsx

BEFORE
{
  "sha256": "98a4bd2b9b0f0a39c718c2633c701292c576891df4980a0fe06b2dc372b8742d",
  "size": 92653
}
AFTER
Field is absent

removed /files/src~1sequence~1sequence-toolbar.tsx

BEFORE
{
  "sha256": "19a05305619bc57402419a39a04f1d5dc664a0f33d85ee45ccad28fd91e4a33d",
  "size": 10070
}
AFTER
Field is absent

removed /files/src~1sequence~1sequence-workbench-panel.test.tsx

BEFORE
{
  "sha256": "67ff47ecf01719c77ccbf88aaed990f46dda01b917419343dc6ee2324a249cff",
  "size": 5871
}
AFTER
Field is absent

removed /files/src~1sequence~1sequence-workbench-panel.tsx

BEFORE
{
  "sha256": "aca3ac89a2024ecf9d6b32c6801ca376da5a284ab6407f71bddf4ac540578a2c",
  "size": 38249
}
AFTER
Field is absent

removed /files/src~1sequence~1tracks.test.ts

BEFORE
{
  "sha256": "195efe73fa21f95ef6f6f417fa924bfb48e4a5640e103e50e8ddbc1107281a70",
  "size": 20057
}
AFTER
Field is absent

removed /files/src~1sequence~1tracks.ts

BEFORE
{
  "sha256": "2714f6a9d1d98036c9ff9bfdebc534c4a4502d6828ccb1ccc64d50c431c0f2a5",
  "size": 35760
}
AFTER
Field is absent

removed /files/src~1sequence~1translation-track.test.ts

BEFORE
{
  "sha256": "8b0a8713d77d986aa3326b5ca057b2daac085dd11af9bcabcbd70fa332e5b009",
  "size": 3821
}
AFTER
Field is absent

removed /files/src~1sequence~1translation-track.tsx

BEFORE
{
  "sha256": "2215d104d32e198f30291635ac4691b4ba2686a6bdb9f3356d5a1a6e654593c0",
  "size": 5898
}
AFTER
Field is absent

removed /files/src~1sequence~1translation.test.ts

BEFORE
{
  "sha256": "b4f61f3609271a749a48847f9e7676012f4eb8374963130905e4ed4d91ba27a3",
  "size": 809
}
AFTER
Field is absent

removed /files/src~1sequence~1translation.ts

BEFORE
{
  "sha256": "cffa34dc9835b616bf390272d9039e414fb70dc623880730e800f48f35b3d696",
  "size": 1460
}
AFTER
Field is absent

removed /files/src~1sequence~1types.ts

BEFORE
{
  "sha256": "2bfe333adb4ff0debc60352878cef7ff6e65a54d7f1c474dcc7f549ddcc3cfc6",
  "size": 4426
}
AFTER
Field is absent

removed /files/src~1sequence~1use-sequence-interface-commands.ts

BEFORE
{
  "sha256": "045f7a0f6c46e1a1948ec0c8bd1f9e26bbf07ec1021e07488ec61a94e46bb182",
  "size": 15477
}
AFTER
Field is absent

removed /files/src~1sequence~1use-sequence-search.ts

BEFORE
{
  "sha256": "f8c06f70f2d19088575e393a83607c2ed8b6f12c77314d76bd81ce7dfa5dfef9",
  "size": 1857
}
AFTER
Field is absent

removed /files/src~1sequence~1use-sequence-workbench-commands.test.ts

BEFORE
{
  "sha256": "93d9aec8c89181cb2d2995e315cff2cd421c2163ef9a7d976a73c341cf901c0f",
  "size": 10442
}
AFTER
Field is absent

removed /files/src~1sequence~1use-sequence-workbench-commands.ts

BEFORE
{
  "sha256": "57fb8ba3711c32d2e48062541852b7a50d9f549b4d5badcab01d590ed984c7b5",
  "size": 25378
}
AFTER
Field is absent

removed /files/src~1sequence~1virtualization.test.ts

BEFORE
{
  "sha256": "434452c43673bd8ae4af76727c7a4f398ba40020ee929d1984e75c0128b3c0eb",
  "size": 781
}
AFTER
Field is absent

removed /files/src~1sequence~1virtualization.ts

BEFORE
{
  "sha256": "9e54460404cc00dd995c7579d8af8bd1d09eb37e7da52599f93f42892d83be8d",
  "size": 752
}
AFTER
Field is absent

removed /files/src~1sequence~1warnings-drawer.tsx

BEFORE
{
  "sha256": "d0140bf55fd4618fd4f7baf358325114da38c4b260d64202f3d69f13b720e9ca",
  "size": 960
}
AFTER
Field is absent

removed /files/src~1sequence~1workbench-controller.test.ts

BEFORE
{
  "sha256": "2e3923ceaf0c334f893ef4e11b1356c85cb62040fe7fb559668fadf31f1d4197",
  "size": 10357
}
AFTER
Field is absent

removed /files/src~1sequence~1workbench-controller.ts

BEFORE
{
  "sha256": "9a8ca2d2a32715da03b932521780de8fe508ceb36c974208916f0e31b8218aff",
  "size": 16909
}
AFTER
Field is absent

removed /files/src~1sequence~1workspace-track-browser-dialog.test.tsx

BEFORE
{
  "sha256": "d8fa2fcaff74fadca82e42b586eddb432c3afd5315914cdf03e35b1395dddbdf",
  "size": 4527
}
AFTER
Field is absent

removed /files/src~1sequence~1workspace-track-browser-dialog.tsx

BEFORE
{
  "sha256": "bc2a8785b70240adb088c89ef17ea9c73a2669c5bb46ab23d5a5bab516d6e07d",
  "size": 18294
}
AFTER
Field is absent

removed /files/src~1server-command-store.test.ts

BEFORE
{
  "sha256": "d89f6c43b1f5292a7f3d3e97f5d6f42a3b452f34ba5a202ea9dc94146cb4a222",
  "size": 9129
}
AFTER
Field is absent

removed /files/src~1server-command-store.ts

BEFORE
{
  "sha256": "a2025a5f703eb49383752a722ac376f3b5b9332c38b1bf3aa7dea67e89e6f75c",
  "size": 12862
}
AFTER
Field is absent

removed /files/src~1server-workbench-store.test.ts

BEFORE
{
  "sha256": "37b45721f8e5ce8c2012bf329ef15c6ee92708d19b4282f0f62d0f6fb24b4005",
  "size": 5343
}
AFTER
Field is absent

removed /files/src~1server-workbench-store.ts

BEFORE
{
  "sha256": "e36d28165511f6cb061c0e342ff98ae22c72e702a0dc6431d9bfc08aaf412998",
  "size": 12137
}
AFTER
Field is absent

removed /files/src~1server-workbench-upload.test.ts

BEFORE
{
  "sha256": "c30f3938a5c97c070adbdd284e76574fdd4c5e6915977a99b0ce6c2daba1c635",
  "size": 36219
}
AFTER
Field is absent

removed /files/src~1server-workbench-upload.ts

BEFORE
{
  "sha256": "6f347499446575b038b99a4ede2d4df1ba51c198f1b3a255d6db1aae3a66ab10",
  "size": 57919
}
AFTER
Field is absent

removed /files/src~1server.test.ts

BEFORE
{
  "sha256": "4292202b1105662fa73dc8e71b412c671bd85206ef3ec5368892df736389c72e",
  "size": 149191
}
AFTER
Field is absent

removed /files/src~1server.ts

BEFORE
{
  "sha256": "1619639b631b48793a89831339b55eb5fcd22c9b63b1b1fd679610b8842d9109",
  "size": 93257
}
AFTER
Field is absent

removed /files/src~1spreadsheet-safety.test.ts

BEFORE
{
  "sha256": "c10a0340c5257c1788820e6e32d5209e7a53fb0bf202bf4534c0f074f76bf2df",
  "size": 1631
}
AFTER
Field is absent

removed /files/src~1spreadsheet-safety.ts

BEFORE
{
  "sha256": "b27b8a1eb838a5d605039e7be077ad8b086f664a21cfa648ae32db8ffb540b2e",
  "size": 857
}
AFTER
Field is absent

removed /files/src~1target-resolution.test.ts

BEFORE
{
  "sha256": "9846ec8112f153359a20dfda12e73794222153690537a5a3b1461b9dbdad5364",
  "size": 788
}
AFTER
Field is absent

removed /files/src~1target-resolution.ts

BEFORE
{
  "sha256": "6f897c8ca23e2208b9db110697d035776e70f970559274921e83a633a907ee3b",
  "size": 1015
}
AFTER
Field is absent

removed /files/src~1test-setup.ts

BEFORE
{
  "sha256": "b5533e5d76e2a033f8011816598a2ceb0ef1958c8e11f0d64719bff406d4b073",
  "size": 150
}
AFTER
Field is absent

removed /files/src~1text-lines.ts

BEFORE
{
  "sha256": "b4e91856f95629ec16857a3d2eb76f99bd10bfbd730cc3576a89d1e8d81aff61",
  "size": 801
}
AFTER
Field is absent

removed /files/src~1ui~1button.tsx

BEFORE
{
  "sha256": "0ae9cb6a1fe273deac4db9679ccf5f04b8346ef5ef76fb8686fdee60022859da",
  "size": 1110
}
AFTER
Field is absent

removed /files/src~1ui~1status-panel.tsx

BEFORE
{
  "sha256": "c32383e6a0c302804c101ddff318689c119e77d7542641fd396aa2c15e95ee93",
  "size": 1216
}
AFTER
Field is absent

removed /files/src~1ui~1workbench-disclosure.tsx

BEFORE
{
  "sha256": "09ab17da72e6736a5b9d4c399ed9436b4d921b3ab8fedfa925884fa0a996a3e9",
  "size": 4525
}
AFTER
Field is absent

removed /files/src~1ui~1workbench-feedback.ts

BEFORE
{
  "sha256": "f155586db355fe3c665d4ab67dd5e6c14593695faeecd30bf67fb6df75de50e1",
  "size": 2032
}
AFTER
Field is absent

removed /files/src~1ui~1workbench-tool-controller.ts

BEFORE
{
  "sha256": "6cae115922f67c8a94f8b962c98d3a29b1ab82af6bc74299df7a11bdd3e7d999",
  "size": 8998
}
AFTER
Field is absent

removed /files/src~1ui~1workbench-tools.test.tsx

BEFORE
{
  "sha256": "a47ee913ce24c8399d43a00b50384940dd6171a7874a72dc4a27edc1dde8ba10",
  "size": 17802
}
AFTER
Field is absent

removed /files/src~1ui~1workbench-tools.tsx

BEFORE
{
  "sha256": "feac7a649413e93b976380b0a644ec038a179a1283085cf9937b70eecb0b4d48",
  "size": 8024
}
AFTER
Field is absent

removed /files/src~1version.ts

BEFORE
{
  "sha256": "718a071b979abd64d8b5f1913a1468c7dd9cc337e5f9c5a7d2179cbc786008b3",
  "size": 49
}
AFTER
Field is absent

removed /files/src~1viewer-commands.test.ts

BEFORE
{
  "sha256": "130d19f980c50f6fd55ce51e2bca0e316c12aeb431facd7916ff66311545d7f4",
  "size": 11663
}
AFTER
Field is absent

removed /files/src~1viewer-commands.ts

BEFORE
{
  "sha256": "787ab51bc1fc762db2561a465e56b17bf846963060a072419c844333cec42cbe",
  "size": 22056
}
AFTER
Field is absent

removed /files/src~1viewer-operations.test.ts

BEFORE
{
  "sha256": "bb508ad88022c4e9e210a62ba52d6ecc962874a158a11302975a5ac82e0b015d",
  "size": 11905
}
AFTER
Field is absent

removed /files/src~1viewer-operations.ts

BEFORE
{
  "sha256": "3e90bd200e07e3eff29fc4d7d729bfd6e2dc0de6da63dd488a6054ba7a4e5585",
  "size": 27165
}
AFTER
Field is absent

removed /files/src~1viewer-query.test.ts

BEFORE
{
  "sha256": "99a5b88c29228c62120d71a522969e3bdbd38ee03a628c864d818be6830a242c",
  "size": 28561
}
AFTER
Field is absent

removed /files/src~1viewer-query.ts

BEFORE
{
  "sha256": "13d233a83ee56ac72f95d69452c37b2e82b5a34efdb473ae57c0f1c561883158",
  "size": 29421
}
AFTER
Field is absent

removed /files/src~1views~1__fixtures__~1app-host.ts

BEFORE
{
  "sha256": "6128bfa0a4a436e5769ebb4831b4a068aab6e8668fa612fc78c86ba5e3e90e33",
  "size": 6004
}
AFTER
Field is absent

removed /files/src~1views~1app-native.test.tsx

BEFORE
{
  "sha256": "8c28891333b638293e95b318a76b701d4960dd443834814de8eb636861ffead9",
  "size": 50380
}
AFTER
Field is absent

removed /files/src~1views~1app-resource-loading.test.tsx

BEFORE
{
  "sha256": "fc3dad9a1d38a572b8627f8fd9cac35613b2914e2d2ecb0235b6f700ff3ebc32",
  "size": 29290
}
AFTER
Field is absent

removed /files/src~1views~1app.test.tsx

BEFORE
{
  "sha256": "34a30cfcdfd00622ab840f061082c0d7184d430fc8998c321315a5b8b0fb2d25",
  "size": 124248
}
AFTER
Field is absent

removed /files/src~1views~1app.tsx

BEFORE
{
  "sha256": "8047c936c707cefbdbc92cc7b2b1504c6311407915cc7375b719223fa66543cc",
  "size": 58133
}
AFTER
Field is absent

removed /files/src~1views~1scientific-platform-client.ts

BEFORE
{
  "sha256": "6f9e3962d799bd585f475803950d5ad5a36e57f633528bb6f0791cd9fabedbc3",
  "size": 6679
}
AFTER
Field is absent

removed /files/src~1views~1styles.css

BEFORE
{
  "sha256": "5616b5e4b4e68c488ab50ed195830370c71dff0b887d464b84e761d9a443b735",
  "size": 15176
}
AFTER
Field is absent

removed /files/src~1views~1workbench-persistence.test.ts

BEFORE
{
  "sha256": "4c74da304da2ee2c37c054a091b9a33aeb8833abaf6eb9dfe708fd061b49c7ac",
  "size": 29114
}
AFTER
Field is absent

removed /files/src~1views~1workbench-persistence.ts

BEFORE
{
  "sha256": "09682c7d81df9bc2bd0f0592df8589ca00bd1ca53a18910a90054b346eb55292",
  "size": 32623
}
AFTER
Field is absent

removed /files/src~1views~1workspace-artifact-stream.test.ts

BEFORE
{
  "sha256": "24a9745c2736693b280a0e8b8d3368777dd25d00a7180196f6a572339bfe48ac",
  "size": 2070
}
AFTER
Field is absent

removed /files/src~1views~1workspace-artifact-stream.ts

BEFORE
{
  "sha256": "bd8cf6e33466a9d509d6e0fa197f614873143c319c9baac9d1539309169723ec",
  "size": 9582
}
AFTER
Field is absent

removed /files/src~1views~1workspace-export-producers.test.ts

BEFORE
{
  "sha256": "282a98a4c5e0d99d9407aa6e8b36a22ea3095dcf1b4123b8dc19716296ba72eb",
  "size": 5540
}
AFTER
Field is absent

removed /files/src~1views~1workspace-export-producers.ts

BEFORE
{
  "sha256": "b4c9eb41696ea4c44ef5a8f09ca59ac6bc9d1536168c34a6887b2d80f6324015",
  "size": 11106
}
AFTER
Field is absent

removed /files/src~1views~1workspace-sessions.test.ts

BEFORE
{
  "sha256": "67c281b5ff16892d0bdb833e08311dff6f84cb77c8f15eb7e32a04f8ab0a10e6",
  "size": 4005
}
AFTER
Field is absent

removed /files/src~1views~1workspace-sessions.ts

BEFORE
{
  "sha256": "0c59a71580b4556eff2d85450239633952803283bb103e7c81f42bfe01ee1a9a",
  "size": 7730
}
AFTER
Field is absent

removed /files/src~1views~1workspace-tracks.test.ts

BEFORE
{
  "sha256": "c1f7e67e8ea3a973e84e9191569a430fe51f7bbbe507eb605f86b06823856e5e",
  "size": 2231
}
AFTER
Field is absent

removed /files/src~1views~1workspace-tracks.ts

BEFORE
{
  "sha256": "6ca2750696fe73cab21a82981e8bfe9a6000e2b01c94b717c5c8a574f2463241",
  "size": 4687
}
AFTER
Field is absent

removed /files/src~1vite-env.d.ts

BEFORE
{
  "sha256": "06fbb5e015dc0bde385e95413d35c28ed97005b79539181fd770e752996e24ff",
  "size": 116
}
AFTER
Field is absent

removed /files/src~1workbench-exports.test.ts

BEFORE
{
  "sha256": "450e4bdbb38afbd41499e1d98ba4cc5346d7550aa30b54c1954657b0a72f6bd3",
  "size": 39671
}
AFTER
Field is absent

removed /files/src~1workbench-exports.ts

BEFORE
{
  "sha256": "ec53063b81e277e9d0b42f7a0d0f7ed4cb75b651da446f97eb448a2a7ac1c98f",
  "size": 45347
}
AFTER
Field is absent

removed /files/src~1workbench-persistence-protocol.test.ts

BEFORE
{
  "sha256": "97c288b6c27474eaf3328914e9636f5cd9ecaf81cb2656e946370d5f659fea01",
  "size": 5021
}
AFTER
Field is absent

removed /files/src~1workbench-persistence-protocol.ts

BEFORE
{
  "sha256": "a3cbe53c2094fb0bd801b041507170afbc0ebde1cede735dfa009159e7c0a96c",
  "size": 15079
}
AFTER
Field is absent

removed /files/src~1workbench-persistence.integration.test.ts

BEFORE
{
  "sha256": "60221d2607d3e6bafcd8985eb6e57f2fd875a3dfa5259fee0a34d27d922d6276",
  "size": 8360
}
AFTER
Field is absent

removed /files/src~1workbench-session-validation.test.ts

BEFORE
{
  "sha256": "5ef1044f029121cac483414aaf562dbe936bbbaf2de5544cad8b321694e9318a",
  "size": 32647
}
AFTER
Field is absent

removed /files/src~1workbench-session-validation.ts

BEFORE
{
  "sha256": "ab9580d6643a40ac6779baf853f6f05a9d1bf914626952e67c3ea0234e26656a",
  "size": 28793
}
AFTER
Field is absent

removed /files/src~1workbench-state.test.ts

BEFORE
{
  "sha256": "db3ead08ddb45a1c0b12d0a81ce836101c2b5c1095bd0cfd609b86d9db2652be",
  "size": 9889
}
AFTER
Field is absent

removed /files/src~1workbench-state.ts

BEFORE
{
  "sha256": "d59fe97c2349361f79806413e422eb47c16f004647d92d789d794a135b9314bc",
  "size": 15904
}
AFTER
Field is absent

removed /files/src~1workspace-atomic-publisher.test.ts

BEFORE
{
  "sha256": "7e6aa50d36f481a95ede3597e845e3cafd29eeea48179984543713c25e569fc9",
  "size": 6360
}
AFTER
Field is absent

removed /files/src~1workspace-atomic-publisher.ts

BEFORE
{
  "sha256": "a31e817ee507af4a10e8934dfc3b2452374a32e58ab8630a7db8da1ea4d978d1",
  "size": 14459
}
AFTER
Field is absent

removed /files/src~1workspace-browser-protocol.test.ts

BEFORE
{
  "sha256": "5378adbf5fff25593e9e0c6d925b550752175dbd0a75f8bca144a0bafb2ca04c",
  "size": 2645
}
AFTER
Field is absent

removed /files/src~1workspace-browser-protocol.ts

BEFORE
{
  "sha256": "ea451e58999e1d68f12b9245f5503166694048c40d1e3d8e5da30748d3568eb2",
  "size": 4930
}
AFTER
Field is absent

removed /files/src~1workspace-export-authorization.test.ts

BEFORE
{
  "sha256": "81fd5df51f923832d3358e7ee225db87d037e0f146bf3782b5af82b74dc3d6ac",
  "size": 3856
}
AFTER
Field is absent

removed /files/src~1workspace-export-authorization.ts

BEFORE
{
  "sha256": "d5b5d492415ea3b62b2732a58d18bbe69afa762a53ed97e4e92d91d4e89f95a5",
  "size": 5608
}
AFTER
Field is absent

removed /files/src~1workspace-export-publisher.test.ts

BEFORE
{
  "sha256": "89b00d1a8326866dd074bff1e11845d250119717d7e5753a5b5941317eee4cfa",
  "size": 28575
}
AFTER
Field is absent

removed /files/src~1workspace-export-publisher.ts

BEFORE
{
  "sha256": "229b2da2ef3bd36b0cbc589f9a4ebe36128a2b84f1958c72391a39f8d86c66da",
  "size": 50465
}
AFTER
Field is absent

removed /files/src~1workspace-publish-button.test.tsx

BEFORE
{
  "sha256": "79fa2b833d0ba1be059a48fef4f334f4a9ad2be0875a0f9307809d9faa5d1721",
  "size": 9447
}
AFTER
Field is absent

removed /files/src~1workspace-publish-button.tsx

BEFORE
{
  "sha256": "02e8bc550f8e137b7ca783218557ae527eed1ceff3d29ded8f2fae758315e9fd",
  "size": 18759
}
AFTER
Field is absent

removed /files/src~1workspace-session-controls.test.tsx

BEFORE
{
  "sha256": "7ede77fe099b3a0820ac6bad2182cfedbd150f49008d01a7a401f67ed6662f92",
  "size": 6166
}
AFTER
Field is absent

removed /files/src~1workspace-session-controls.tsx

BEFORE
{
  "sha256": "1f7e2e415aeea5bc1eb8a93018bf767e059f3a4afe708a32bcd18b22f8cdfd10",
  "size": 11829
}
AFTER
Field is absent

removed /files/src~1workspace-session-manager.test.ts

BEFORE
{
  "sha256": "0d93a07f553611d3b3cf794ef94cb26cbf14bb6b27d167b1fdd5a746fed93cf1",
  "size": 11000
}
AFTER
Field is absent

removed /files/src~1workspace-session-manager.ts

BEFORE
{
  "sha256": "b39111d0c579b68f8e96c6629a69968c2889ca16eda09d1a14e7dd9f6084adec",
  "size": 23302
}
AFTER
Field is absent

removed /files/src~1workspace-session-protocol.test.ts

BEFORE
{
  "sha256": "73a3794bdfd1409586c29801bf2880a87faf1322f44fe75ee6ccddf2dbc7f75d",
  "size": 2173
}
AFTER
Field is absent

removed /files/src~1workspace-session-protocol.ts

BEFORE
{
  "sha256": "72dcc8cbc27f35b03a266ebacc4ff7b53d42c7a62cacf8ba07770e02cf1ef121",
  "size": 4277
}
AFTER
Field is absent

removed /files/src~1workspace-track-browser.test.ts

BEFORE
{
  "sha256": "899e0ae6cbdbf99630875606423b5ee1ed40d25b01d3ac2d64990b918d64d3e2",
  "size": 11978
}
AFTER
Field is absent

removed /files/src~1workspace-track-browser.ts

BEFORE
{
  "sha256": "1931e51c4c5b4ed576c32a1fd61a39808279e98e9dbf4f614b0f5d8c273ef946",
  "size": 42258
}
AFTER
Field is absent

removed /files/src~1workspace-track-protocol.test.ts

BEFORE
{
  "sha256": "605744def2ba43a98f493288a466287549f6f90ce9286657e5cb09075d455a1c",
  "size": 2583
}
AFTER
Field is absent

removed /files/src~1workspace-track-protocol.ts

BEFORE
{
  "sha256": "096d8a5ce9c76b2d84a9961db6e86fbcf825e705b3ab892ecfa38c554c2ee38f",
  "size": 7254
}
AFTER
Field is absent

changed /files/starter-examples.json/sha256

BEFORE
"751d1e88f94a89113601fdd8a9460d2ee2760671f194b9a5870c395144061201"
AFTER
"332ebf722dd91bcbcff4bff01270c9b953d5f214c8eb7ea49a9b0b9b1e2d75c7"

changed /files/starter-examples.json/size

BEFORE
18148
AFTER
19457

removed /files/tsconfig.json

BEFORE
{
  "sha256": "1f9fc60a234fe7231a2a8ca86eec8935cf4bf272a007d43b7179d29af97b70ab",
  "size": 475
}
AFTER
Field is absent

removed /files/vite.config.ts

BEFORE
{
  "sha256": "197d6a0f1dbbfb9963b91f354b499008d0c65ebf80d8dfb8804d54bca55889d7",
  "size": 819
}
AFTER
Field is absent
Full snapshot data
{
  "files": {
    ".codex-plugin/plugin.json": {
      "sha256": "458a047b8d1b108a9131d381d1b52cdf1e311e74356823747d581ee9b0662825",
      "size": 2382
    },
    ".mcp.json": {
      "sha256": "e867df32928212c16043bd46f8c5402c21e5b8aac31fc2f6b2d471f7516a1b02",
      "size": 402
    },
    "CAPABILITY_MATRIX.md": {
      "sha256": "395c11c653b9f64ed1dac5fd407886bc712b28d59de8d1b8485304ddaac09d7b",
      "size": 17486
    },
    "LICENSE": {
      "sha256": "7de1e115d165f176e68f962acdb809b5ab8d8ae78d3981e0701392b2ac50c713",
      "size": 1063
    },
    "README.md": {
      "sha256": "9c9e12fc42f75f4bf80167f156364416457e90e073d7638f32c6549543b61eca",
      "size": 14005
    },
    "STARTER_EXAMPLES.md": {
      "sha256": "e66f71209d21c02f7e5a0014034847e63da2bf23934813e7d63b1def6883ce3c",
      "size": 23258
    },
    "THIRD_PARTY_NOTICES.md": {
      "sha256": "bae46ec2e086ea34ec112f02efebebf5d5e0137e7e1129b870fd11ca80752d52",
      "size": 195212
    },
    "assets/icon.png": {
      "sha256": "5451b313f937efabf8563d0b2df41d2750a4c0e9a2e067393e5de815fecb7240",
      "size": 12280
    },
    "assets/logo.png": {
      "sha256": "5451b313f937efabf8563d0b2df41d2750a4c0e9a2e067393e5de815fecb7240",
      "size": 12280
    },
    "dist/server.mjs": {
      "sha256": "63d489adef5d4426e95177a828bda36340e61abbac8b63f17cdeffa4d2fec20d",
      "size": 2993766
    },
    "dist/views/app.js.gz": {
      "sha256": "f670f0198e0d9bf20c90b942d648ef7460b9023800ff65228240a528d4bae997",
      "size": 542695
    },
    "dist/views/styles.css": {
      "sha256": "092a1821dd59578b1a6932c7852c6c6f8f6633e44981b364df478adcb0a9f6c0",
      "size": 55766
    },
    "integrity.json": {
      "sha256": "58145c876d1c63023f446f6ea671364eb0e5aa02044e06205fa1b2ab8f8bde04",
      "size": 1751
    },
    "launch_node": {
      "sha256": "1072359d24f7760cdad5c2c112308e7ba93ddc60bbe00c839e623eaca6aa1d69",
      "size": 1560
    },
    "launch_node.cmd": {
      "sha256": "82b0b206e4c0f159e6e2a83dddbd0f92d6bf7af677b54154f7668c314a96e260",
      "size": 2606
    },
    "skills/biological-sequence-viewer/SKILL.md": {
      "sha256": "49a56c831b0c767533a133ecc67c541b49c27a3753c6605ee24f03e2c43ac4f9",
      "size": 38898
    },
    "starter-examples.json": {
      "sha256": "332ebf722dd91bcbcff4bff01270c9b953d5f214c8eb7ea49a9b0b9b1e2d75c7",
      "size": 19457
    }
  }
}

SHA-256 of public snapshot: 3d0564840f9fe2a4607dcfa3ac18b6f38a1415ca67c6b3f49ff495736b42f386