Repository navigation
🖥️ Desktop: gateway cloud endpoints - #4597
Open
jeff-hykin wants to merge 337 commits into
Open
jeff-hykin wants to merge 337 commits into
jeff-hykin wants to merge 337 commits into
Conversation
… only a dim green or blue border
… box's own border rule
…nd site-packages file times, a burst settled for 1.5 s), re-lists in a child and sends a blueprints event {added, removed} with its list cache refilled; Desktop no longer has to
… picks and enums with when, GlobalConfig reflected, robot types; no modes, tags, groups or recommended apps
…looding site-packages re-lists once) plus a 10 s throttle between re-listings
…r demo-camera module has one (main's vis change dropped WebsocketVisModule from it)
… dds: go2-dds, go2-dds-mid360, go2-dds-nav, go2-dds-nav-viewer)
…ic, basic, phone driving (keyboard driving dropped: Desktop drives every blueprint from the keyboard)
… as written (PascalCase), with a touch of the accent
…itree-go2, map + navigation)
…tomize had flipped it to true when the file was generated)
…LCM codec generated from dimos/msgs (python -m dimos.gateway.msgs), warning about hand-written messages
…om its name and the Inputs/Outputs
…d scrolls for the rest
…its height is capped)
…n as it's hovered, and is six and a half rows tall with no scrollbar (the half row says it scrolls)
…a module's group was named .module and picked up the side panel's row padding); narrower inputs on a phone
…ed only msgs.js, so /dimos/msgs.ts 404ed in a pip install)
…ST /dimos/skills/call, and POST /dimos/mcp (list_skills, call_skill) for an agent; through each run's own MCP server with McpAdapter (API 1.13.0)
…mcp-port after run <blueprint> isn't in the registry's overrides)
…'s config.yaml dimos_gateway.port, else 5557), no unix socket; refuses non-loopback Host and other sites' Origin (loopback.py); dimos.yaml start: passes $DIMOS_GATEWAY_PORT, no socket:
…dimos.yaml start: passes --socket "$DIMOS_SERVER_SOCKET" and socket: prints it again; no loopback.py (a 0600 unix socket isn't reachable from a browser)
…og dir names it), so Logs stays enabled; GET /dimos/blueprint_view?view=logs&run=<runId> opens on that run's Logs; API 1.14.0 (cherry picked from commit 4df2d2b2e2a91a5441bbb6e31b42deb2a0d44d24)
…(its whole process group, then every port it listened on free) and a launch is refused while any other dimos run is on this machine (two share module RPC names, so one's start/stop reached the other's modules); a launch's log dir is the one its process holds open; Relaunch has a red border on a live run and is grayed with a spinner (Stopping…, Starting…) while a run starts or stops; API 1.14.1 (cherry picked from commit a566805bc32fda306ad199ec327eb8989382fc34)
… runs with, for dimcode's agent to use dimos's python API (API 1.15.0) (cherry picked from commit 07202363ba)
…over dimos's module RPC (Coordinator/list_modules, then each module's get_skills, the schema McpServer gives an agent) and called as <module>/<skill> on the same RPC; a skill holding a capability goes through the run's McpServer when one answers so its agent's locks cover it; args checked against params first; no more per-run MCP servers or runs[].up (API 1.16.0)
…the API's other errors (no 504)
…and waits for it to exit, instead of 409ing in start()'s idle check
…sfer, so a file that changed meanwhile reads as changed
… (not done), noting the cloud may keep the copy
…errides, argv, the gateway launch only if it is that run, its env), not the gateway's last launch's
…trospected() caches it by (State.introspect_key), so /extras isn't stale for 10 minutes
… a 404 and a "did you mean" before anything is spawned, instead of returning 200 and dying seconds later; the names come from the blueprint listing plus the finished module scan, so a cold or half-scanned gateway still leaves the name to dimos (outside tester's patch 0001, I-009)
…y's GET /history/recordings is the answer to where it is A recording started from Desktop never appeared where Desktop and its apps look for it: the gateway resolved `recordings.dir` from the shared config.yaml and answered /history/recordings with it, but the `dimos run` it spawned was never told, so dimos fell back to `RECORDINGS_DIR`, the checkout's own `recordings/`. The gateway knew the right answer and the run never heard it. dimos now resolves the directory itself, in one place (dimos.utils.shared_config.recordings_dir: `--record-dir`, else `recordings.dir` from the shared config.yaml, else RECORDINGS_DIR as before), and the gateway hands every launch the directory its endpoint answers with as `--record-dir` (a new GlobalConfig field, so it is also a documented flag on `dimos run`), which is what makes the answer and the path a run writes to the same path by construction rather than by two implementations agreeing. The gateway's own store.setting/recordings_dir now delegate to dimos's, so there is a single reader of config.yaml. Everything that writes a recording follows that one directory: --record (tap), a recorder module outside a run (default_recording_dir), the run's rerun.rrd, the imitation session db, the mid360 pcap; and so does everything that reads one back, `dimos cloud upload`'s list and the evals' wait. Dataset resolution looks in the recordings directory as well as the checkout, so `--replay-db <run-id>/memory.db` finds a recording made before the directory was configured and one made after; an absolute path was always fine. A plain `dimos run` from a checkout with no config.yaml is untouched: it still writes `<checkout>/recordings/<run-id>/memory.db`. dimos' conftest pins DIMOS_HOME at a temp dir so a developer's own config.yaml can't move where a test writes.
…f/feat/gateway_cloud # Conflicts: # dimos.yaml # docs/usage/gateway.md # experimental/gateway/app.py # experimental/gateway/constants.py # experimental/gateway/responses.py # experimental/gateway/routes/server.py # experimental/gateway/state.py # experimental/gateway/tests/test_jobs.py
…f/feat/gateway_cloud_sync
This branch was successfully deployed
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.
The gateway's Dimensional cloud endpoints: /cloud/account, /cloud/login and the /cloud/uploads queue.