2026-04-09 21:30:23 -05:00
|
|
|
# Jibo.Cloud.DotNet
|
|
|
|
|
|
2026-04-11 07:12:57 -05:00
|
|
|
## Summary
|
2026-04-09 21:30:23 -05:00
|
|
|
|
2026-04-11 07:12:57 -05:00
|
|
|
`Jibo.Cloud.DotNet` is the stable hosted implementation of the OpenJibo cloud.
|
2026-04-09 21:30:23 -05:00
|
|
|
|
2026-04-11 07:12:57 -05:00
|
|
|
This is the production-oriented path for restoring device connectivity and creating a foundation for future runtime, AI, and OTA work.
|
2026-04-09 21:30:23 -05:00
|
|
|
|
2026-04-11 07:12:57 -05:00
|
|
|
## Architecture
|
2026-04-09 21:30:23 -05:00
|
|
|
|
2026-04-11 07:12:57 -05:00
|
|
|
The first implementation is a modular monolith:
|
2026-04-09 21:30:23 -05:00
|
|
|
|
2026-04-11 07:12:57 -05:00
|
|
|
```text
|
|
|
|
|
Api -> Application -> Domain -> Infrastructure
|
2026-04-09 21:30:23 -05:00
|
|
|
```
|
|
|
|
|
|
2026-04-11 07:12:57 -05:00
|
|
|
This keeps deployment simple while preserving clean boundaries.
|
2026-04-09 21:30:23 -05:00
|
|
|
|
2026-04-11 07:12:57 -05:00
|
|
|
## Azure Direction
|
2026-04-09 21:30:23 -05:00
|
|
|
|
2026-04-11 07:12:57 -05:00
|
|
|
The target Azure footprint is:
|
2026-04-09 21:30:23 -05:00
|
|
|
|
2026-04-11 07:12:57 -05:00
|
|
|
- Azure App Service for HTTP and WebSocket traffic
|
|
|
|
|
- Azure SQL for relational persistence
|
|
|
|
|
- Azure Blob Storage for uploads and update artifacts
|
|
|
|
|
- Azure Key Vault for secrets and certificates
|
|
|
|
|
- Application Insights for observability
|
2026-04-09 21:30:23 -05:00
|
|
|
|
2026-04-11 07:12:57 -05:00
|
|
|
Azure SQL is the primary system of record for:
|
2026-04-09 21:30:23 -05:00
|
|
|
|
2026-04-11 07:12:57 -05:00
|
|
|
- accounts
|
|
|
|
|
- devices
|
|
|
|
|
- sessions
|
|
|
|
|
- update metadata
|
|
|
|
|
- host mappings
|
|
|
|
|
- bootstrap and provisioning records
|
2026-04-09 21:30:23 -05:00
|
|
|
|
2026-04-11 07:12:57 -05:00
|
|
|
## Compatibility Goal
|
2026-04-09 21:30:23 -05:00
|
|
|
|
2026-04-11 07:12:57 -05:00
|
|
|
The first compatibility milestone is `core revive`.
|
2026-04-09 21:30:23 -05:00
|
|
|
|
2026-04-11 07:12:57 -05:00
|
|
|
That means the .NET cloud should handle:
|
2026-04-09 21:30:23 -05:00
|
|
|
|
2026-04-11 07:12:57 -05:00
|
|
|
- token and session issuance
|
|
|
|
|
- account and robot identity flows needed for startup
|
|
|
|
|
- core `X-Amz-Target` dispatch
|
|
|
|
|
- listen and proactive WebSocket paths
|
|
|
|
|
- basic media and update metadata responses
|
|
|
|
|
- handoff into normalized `TurnContext` and `ResponsePlan` contracts
|
2026-04-09 21:30:23 -05:00
|
|
|
|
2026-04-11 07:12:57 -05:00
|
|
|
## Relationship To The Node Prototype
|
2026-04-09 21:30:23 -05:00
|
|
|
|
2026-04-11 07:12:57 -05:00
|
|
|
The Node server remains the discovery harness and fixture source.
|
2026-04-09 21:30:23 -05:00
|
|
|
|
2026-04-11 07:12:57 -05:00
|
|
|
The .NET implementation should:
|
2026-04-09 21:30:23 -05:00
|
|
|
|
2026-04-11 07:12:57 -05:00
|
|
|
- copy observed behavior where needed
|
|
|
|
|
- use fixtures captured from Node and real robots
|
|
|
|
|
- avoid speculative protocol design
|
2026-04-11 21:50:26 -05:00
|
|
|
- separate HTTP parity, websocket parity, and future discovery work so coverage stays honest
|
2026-04-09 21:30:23 -05:00
|
|
|
|
2026-04-11 07:12:57 -05:00
|
|
|
## Current State
|
2026-04-09 21:30:23 -05:00
|
|
|
|
2026-04-11 07:12:57 -05:00
|
|
|
This folder now contains the first hosted scaffold, not just a README.
|
2026-04-09 21:30:23 -05:00
|
|
|
|
2026-04-11 07:12:57 -05:00
|
|
|
The intent is to grow from a runnable dev monolith into the real Azure deployment target without abandoning the existing abstractions work.
|
2026-04-11 21:50:26 -05:00
|
|
|
|
|
|
|
|
Current websocket scope is still intentionally narrow:
|
|
|
|
|
|
|
|
|
|
- token-backed socket sessions
|
|
|
|
|
- synthetic `LISTEN` result shaping for `LISTEN`, `CLIENT_NLU`, and `CLIENT_ASR`
|
2026-04-11 22:11:08 -05:00
|
|
|
- buffered audio state tracking behind a dedicated turn-finalization layer
|
|
|
|
|
- synthetic STT strategy selection for fixture-driven audio turn completion
|
2026-04-11 21:50:26 -05:00
|
|
|
- `CONTEXT` capture and follow-up turn state
|
|
|
|
|
- `EOS` completion
|
|
|
|
|
- first skill vertical for joke/chat `SKILL_ACTION` playback
|
|
|
|
|
|
|
|
|
|
Not yet covered:
|
|
|
|
|
|
|
|
|
|
- real binary audio / ASR finalization parity
|
2026-04-11 22:11:08 -05:00
|
|
|
- provider-backed ASR integration
|
2026-04-11 21:50:26 -05:00
|
|
|
- upstream Nimbus or broader skill lifecycle behavior
|
|
|
|
|
- animation / expression command families
|
|
|
|
|
- ESML feature parity beyond the narrow synthetic playback payloads used in the current scaffold
|