Draft
Conversation
- Add language field to SDCPN type with TypeScript/Python options - Create Settings tab in BottomPanel with language selector - Add Python default code templates and virtual file generation - Integrate Pyright language server via monaco-pyright-lsp for completions, diagnostics, hover, and signature help - Add Satellites (Python) example - Fix URI mapping between Pyright/Monaco with bidirectional PyrightUriMap to correctly resolve sanitized Python paths back to SDCPN entity IDs - Register Monaco language providers for both TypeScript and Python Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
2 Skipped Deployments
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

🌟 What is the purpose of this PR?
Adds Python as a supported code language in Petrinaut alongside TypeScript. Users can now write transition/place logic in Python with full language intelligence (completions, diagnostics, hover, signature help) powered by Pyright running in a WebWorker.
🔗 Related links
🔍 What does this change?
language?: "typescript" | "python"field to the SDCPN type, withgetSDCPNLanguage()helper defaulting to TypeScript.py/.pyistubs (TypedDict definitions, import prefixes) from the SDCPN model, mirroring the existing TypeScript virtual file systemusePyrightClienthook managing a Pyright WebWorker viamonaco-pyright-lsp, exposing the sameLanguageClientApiinterface as the TypeScript client. The provider automatically switches between TS and Pyright based on SDCPN languagePyrightUriMapclass to correctly translate between Pyright filesystem paths (which strip hyphens from UUIDs for Python import compatibility) and Monaco/internal URIstypescriptandpythonlanguage IDsPre-Merge Checklist 🚀
🚢 Has this modified a publishable library?
This PR:
📜 Does this require a change to the docs?
The changes in this PR:
🕸️ Does this require a change to the Turbo Graph?
The changes in this PR:
🛡 What tests cover this?
.py/.pyi)❓ How to test this?