Skip to content

feat: add slim cross transport reference application - #241

Open
hackeramitkumar wants to merge 3 commits into
agntcy:mainfrom
hackeramitkumar:demo/slim-cross-transport
Open

feat: add slim cross transport reference application#241
hackeramitkumar wants to merge 3 commits into
agntcy:mainfrom
hackeramitkumar:demo/slim-cross-transport

Conversation

@hackeramitkumar

Copy link
Copy Markdown
Member

Summary

Adds slim-cross-transport, a reference demo in agentic-apps that shows SLIM messaging across WebSocket and gRPC on a single dual-transport node. Browser participants use @agntcy/slim-bindings-react-native WASM bindings; native Rust clients join over WebSocket and gRPC.

  • Browser UI — multi-session Vite app (moderator + participants, multicast/unicast, optional MLS)
  • Bindings integration — links to sibling slim-bindings/react-native (manual WASM build; not on npm yet)
  • API alignment — uses the latest Service-based browser API from slim-bindings/react-native/examples/browser (createAndConnectApp, setRouteAsync, service.disconnect, etc.)
  • OrchestrationTaskfile.yaml for the SLIM node, four native clients, WASM build, and UI

What’s included

Component Description
slim-cross-transport/ Browser demo + SLIM node/client configs
src/common.ts Shared connect/helpers (mirrors browser examples)
src/session-common.ts Participant roster + polling helpers
configs/ Dual-transport node (:46357 ws, :46358 grpc) + native client configs
scripts/browser-invite-smoke.mjs Playwright smoke test for browser invite flow

Prerequisites (documented in README)

Sibling checkouts required:

<workspace>/
├── agentic-apps/slim-cross-transport/
├── slim/
└── slim-bindings/react-native/

Bindings must be built locally before running the UI:

cd slim-bindings/react-native && npm install && npm run build:web

Test plan

  • Clone agentic-apps, slim, and slim-bindings as siblings
  • Build browser WASM: cd slim-bindings/react-native && npm run build:web
  • Install demo deps: cd agentic-apps/slim-cross-transport && npm install
  • Start SLIM node: task node
  • Start native clients: task native:grpc-1, native:grpc-2, native:ws-1, native:ws-2
  • Start UI: task ui → open http://127.0.0.1:5173/
  • Connect three browser tabs (moderator + 2 participants)
  • Create a multicast session inviting browser-b, native-ws-1, native-grpc-1
  • Confirm messages reach browser and native terminals
  • Optional: run Playwright smoke — node scripts/browser-invite-smoke.mjs (with UI running)

Signed-off-by: amitami2 <amitami2@cisco.com>
@hackeramitkumar
hackeramitkumar requested a review from a team as a code owner July 31, 2026 03:05
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

…ative bindings

Signed-off-by: amitami2 <amitami2@cisco.com>
Signed-off-by: amitami2 <amitami2@cisco.com>
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.

4 participants