dimensionalOS / dimensionalOS/dimos

Conditional blueprint modules

Open
#3,514 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

core
Dominant language
Python
Stars
4.5k
Forks
808
Avg merge
3d 5h
Merged PRs (30d)
233

Description

Blueprints have no way to express "include these modules only if X", so we have to depend on cli args and have these pseudo "meta modules"

def vis_module(viewer_backend: ViewerBackend, rerun_config: dict[str, Any] | None = None) -> Blueprint:
    match viewer_backend:
        case "rerun":
            bundle = autoconnect(
                RerunBridgeModule.blueprint(**rerun_config),
                RerunWebSocketServer.blueprint(),
                WebsocketVisModule.blueprint(),
            )
        case "none":
            bundle = autoconnect(WebsocketVisModule.blueprint())
        case _:
            raise ValueError(f"Unknown viewer_backend {viewer_backend!r}")
    return bundle

Ideally there would be a way for the blueprint itself to express this choice


Synced from DIM-1463 by jeff

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the Blueprint and autoconnect entry points used by vis_module, then compare how the rerun and none branches currently depend on cli args and meta modules. Define what conditional inclusion should look like in a blueprint and consider how completion would be verified for both viewer_backend choices.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.