dxapp Desk - notice =================== Source ------ dxapp Desk is derived from the agent skill @k-dense-ai/dnanexus-integration, part of k-dense-ai/scientific-agent-skills (https://github.com/k-dense-ai/scientific-agent-skills), skills/dnanexus-integration at commit 49c6e97775eaa18ba791bebe23162a70ae601c18. MIT License, Copyright (c) 2025 K-Dense Inc. - the full text is in LICENSE-dnanexus-skill.txt. dxkit.js is a JavaScript port of the skill's bundled offline validator, scripts/validate_dxapp.py, including the parts of the Python standard library it relies on (json.load via CPython's C scanner, re, str.strip, sorted, json.dumps). scripts/inspect_dxpy.py, which introspects an installed dxpy package, cannot run in a browser and is not ported. dxpy, dx-toolkit and any DNAnexus software are not included. dxapp Desk is not affiliated with DNAnexus. How the port was checked ------------------------ Differential tests ran the original validate_dxapp.py in-process (main() with the same argv, a strict UTF-8 stdout) and the shipped dxkit.js on the same manifest bytes, with random --kind, --strict and --json, comparing stdout, stderr and exit code exactly (for an uncaught Python exception, the exception type and message): - CPython 3.14.4: 10,000 fuzzed runs on the shipped dxkit.js, all identical. - CPython 3.13.12: 10,000 runs, all identical. - CPython 3.12.8: 10,000 runs, all identical (the page's Python 3.12 setting). Shipped dxkit.js sha256 1912a93babbd18ef... (first 16 hex digits). An earlier build of the same logic also matched on 24,000 further runs before its source was made pure ASCII. Every one of the validator's 58 issue codes, the JSON parse error paths (including the 3.13+ trailing-comma wording) and the crash paths occurred in the fuzzed sets. Stated differences ------------------ 1. Files. The page reads text, not a path: "Manifest:" and the JSON "manifest" field show the file name you dropped (or dxapp.json), where the script shows the path you typed. A file that is not valid UTF-8 is refused by the page; the script stops with exit 2 and a UnicodeDecodeError whose exact byte position the page does not reproduce. 2. Depth. JSON nested more than 256 levels deep is refused by the page as a RecursionError; CPython's own limit depends on the interpreter and stack, so the exact depth at which it fails differs. 3. Tracebacks. Where the script crashes (for example `"interpreter": ["bash"]` makes `x in {set}` raise TypeError), the page reports exit 1 and the exception line, not the full traceback. 4. Printing. In text mode, a lone surrogate in a JSON path (only possible through a \uD800-style escape in a key) makes the script's print() raise UnicodeEncodeError on a strict UTF-8 stdout; the page models that (the lines before are printed, then exit 1), but a terminal set up with surrogateescape would behave differently. --json output is unaffected. What the page adds (labelled "page" everywhere) ------------------------------------------------ Checks quoted from the skill's references/configuration.md: no timeoutPolicy; restartOn without maxRestarts; retrying AppError or "*"; AppInsufficientResourceError upgrade prerequisites; instanceTypeSelector licensing; inputSpec defaults that are local paths or do not match their class; pip execDepends on Ubuntu 24.04; project/allProjects on an app; an app without regionalOptions; httpsApp authorization. Also the manifest summary, an inputs.json skeleton, the commands, the redaction of credential-looking values before any paid run, and the reconciliation of model replies (including re-running the validator on a corrected manifest). Facts checked against DNAnexus documentation (2026-09-27) --------------------------------------------------------- Ubuntu 24.04 and 20.04 with runSpec version "0" (documentation.dnanexus.com/developer/apps/ execution-environment); maxRestarts a non-negative integer below 10, default 9 (.../developer/api/ running-analyses/io-and-run-specifications); a 30-day default job runtime limit (.../user/ running-apps-and-workflows/job-time-limits). Citation -------- Kassis, T., Agarwal, V., He, Y., Patel, D., & Brueckner, A. M. (2026). Scientific Agent Skills: A Library of Procedural Knowledge for Research Agents. arXiv:2609.00065. https://doi.org/10.48550/arXiv.2609.00065