Skip to content

[Big Feature] CLI - #72

Open
Saaketh0 wants to merge 6 commits into
cli/local-provider-routingfrom
cli/canyonos-cli
Open

[Big Feature] CLI#72
Saaketh0 wants to merge 6 commits into
cli/local-provider-routingfrom
cli/canyonos-cli

Conversation

@Saaketh0

@Saaketh0 Saaketh0 commented Sep 5, 2026

Copy link
Copy Markdown
Collaborator

This code has the CLI folder, in addition to other minor changes.

Saaketh0 and others added 5 commits September 4, 2026 12:22
The CLI layer on top of the ventis fixes: `canyonos` wraps the Global
Controller in a container and drives it over HTTP, so a project goes
from source to a running workflow with a local dashboard in one command.

- cli/: the canyonos package -- deploy (which folds in init, sync, build
  and launch, then auto-starts the dashboard once the workflow reports
  up), serve, stop, logs, quit, clean, config, integrate, new-app.
- cli/canyonos/dashboard.compose.yml: api/db/web stack. The api port is
  published so the GC container can POST OTLP spans to /v1/traces, which
  is also what renames ventis' `project_id` attribute to the
  `canyon.project.id` the dashboard queries filter on. serve replaces the
  api container every run, since it reads the controller's Redis identity
  only at startup and would otherwise keep serving a stale project.
- cli/canyonos/constants.py: resolve the config path per call rather than
  at import, preferring .car/config over the flat layout.
- .claude/skills/porting-to-canyonos-core/: the porting skill `canyonos
  integrate` installs, plus its validator.
- examples/: joke_writer converted to the .car layout, epigenomics added,
  and workflow imports pointed at each agent's entrypoint path to match
  single-location stub placement.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
@Saaketh0 Saaketh0 self-assigned this Sep 5, 2026
@coderabbitai

coderabbitai Bot commented Sep 5, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: 4e27fe32-332a-4f11-b517-29beed0222f3


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Comment thread ventis/server.py
@app.route("/endpoints", methods=["GET"])
def endpoints():
"""Where the deployed workflows answer, so the CLI can print real addresses."""
if _config_path is None or not os.path.isfile(_config_path):
Comment thread ventis/server.py
return jsonify({"workflows": []}), 200

try:
with open(_config_path) as f:
Comment thread ventis/server.py
config = yaml.safe_load(f) or {}
return jsonify({"workflows": _workflow_endpoints(config)}), 200
except Exception as e:
return jsonify({"workflows": [], "error": str(e)}), 200
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants