Stub in framework for new .net Open Jibo cloud

This commit is contained in:
Jacob Dubin
2026-04-11 07:12:57 -05:00
parent 0c040d1348
commit 8f838787a0
54 changed files with 1933 additions and 897 deletions

View File

@@ -0,0 +1,66 @@
# Device Bootstrap Path
## Supported First Path
The first supported OpenJibo recovery path is:
```text
QR Wi-Fi -> controlled router/DNS -> redirect Jibo hosts ->
RCM/device patch -> Azure-hosted OpenJibo cloud
```
This is the path we can document, repeat, and improve.
## Why This Path Comes First
- it matches what the current Node prototype already requires
- it keeps the hosted cloud work grounded in real device traffic
- it avoids blocking the entire revival on OTA before cloud compatibility exists
## Bootstrap Checklist
1. Connect the robot to a controlled Wi-Fi network.
2. Redirect legacy cloud hostnames to the OpenJibo environment.
3. Prevent fallback DNS from bypassing the controlled resolver.
4. Gain RCM/device access for targeted TLS or host validation changes.
5. Verify robot startup, token flow, socket flow, and first-turn behavior.
## Required Host Routing
At minimum, watch and validate:
- `api.jibo.com`
- `api-socket.jibo.com`
- `neo-hub.jibo.com`
- `neohub.jibo.com`
## Scripted Helpers
Bootstrap helper scripts live in [scripts/bootstrap](C:/Projects/JiboExperiments/OpenJibo/scripts/bootstrap):
- `Discover-JiboHosts.ps1`
- `Generate-JiboDnsOverrides.ps1`
- `Test-OpenJiboRouting.ps1`
These are intentionally conservative helpers for discovery and verification, not destructive patch tools.
## TLS And Runtime Patching
Patching requirements will vary by device version and by where certificate validation is enforced.
Near-term guidance:
- record each patch location by software version
- prefer small, repeatable changes over ad hoc edits
- keep a versioned host inventory and patch checklist
- do not describe OTA as the primary bootstrap method until the hosted cloud is stable
## Smoke Test Goals
The first real-device smoke test should confirm:
- robot startup reaches the hosted cloud
- token issuance succeeds
- required sockets connect
- the robot can complete one simple turn
- update metadata calls do not break startup

View File

@@ -0,0 +1,70 @@
# Protocol Inventory
## Purpose
This document tracks the currently observed cloud surface area for Jibo and helps keep the .NET port aligned with real behavior captured by the Node prototype.
Confidence levels:
- `high`: observed in code and currently represented in the .NET scaffold
- `medium`: observed in the Node oracle and documented, but not fully ported yet
- `low`: expected or inferred, needs more robot validation
## Known Hosts
| Host | Purpose | Confidence | Notes |
| --- | --- | --- | --- |
| `api.jibo.com` | HTTPS API target for `X-Amz-Target` operations | high | Main request dispatch path in the Node prototype |
| `api-socket.jibo.com` | token-authenticated WebSocket path | medium | Node accepts tokenized connections and intentionally sends no greeting |
| `neo-hub.jibo.com` | listen and proactive WebSocket traffic | medium | Path-driven split between listen and `/v1/proactive` |
| `neohub.jibo.com` | likely alias/spelling variant to watch | low | Mentioned in docs; validate against real traffic |
## HTTP Dispatch Families
Observed from `open-jibo-link.js`:
| Service family | Example operations | Confidence | Current .NET status |
| --- | --- | --- | --- |
| `Account_*` | `CreateHubToken`, `CreateAccessToken`, `Login`, `Get` | high | initial dispatch implemented |
| `Notification_*` | `NewRobotToken` | high | initial dispatch implemented |
| `Loop_*` | `List`, `ListLoops` | medium | initial dispatch implemented |
| `Robot_*` | `GetRobot`, `UpdateRobot` | medium | initial dispatch implemented |
| `Update_*` | `ListUpdates`, `ListUpdatesFrom`, `GetUpdateFrom`, `CreateUpdate`, `RemoveUpdate` | medium | list/get scaffolding implemented |
| `Media_20160725` | `List`, `Get`, `Create`, `Remove` | medium | not yet ported |
| `Log_*` | `PutEvents`, `PutEventsAsync`, `PutBinaryAsync`, `PutAsrBinary` | medium | upload endpoints reserved; detailed handling pending |
| `Key_*` | `ShouldCreate`, `CreateSymmetricKey`, `GetRequest` | medium | pending |
| `Person_*` | `ListHolidays` | low | pending |
| `Backup_*` | `List` | low | pending |
## WebSocket Flows
| Host/path | Flow | Confidence | Current .NET status |
| --- | --- | --- | --- |
| `api-socket.jibo.com/{token}` | token-authenticated socket for API-side signaling | medium | stub endpoint implemented |
| `neo-hub.jibo.com/{listen-path}` | listen turn flow with JSON and binary audio traffic | medium | initial JSON flow implemented |
| `neo-hub.jibo.com/v1/proactive` | proactive connection flow | medium | stub endpoint implemented |
## Upload Paths
| Path | Purpose | Confidence | Current .NET status |
| --- | --- | --- | --- |
| `/upload/asr-binary` | async audio/log upload target | medium | placeholder endpoint accepted |
| `/upload/log-events` | async log upload target | medium | placeholder endpoint accepted |
| `/upload/log-binary` | async binary upload target | medium | placeholder endpoint accepted |
## First Core Revive Slice
The first .NET hosted milestone should fully support:
- `Account.CreateHubToken`
- `Notification.NewRobotToken`
- `Loop.List` and `Loop.ListLoops`
- `Robot.GetRobot`
- `Update.ListUpdates`, `Update.ListUpdatesFrom`, `Update.GetUpdateFrom`
- root probe and health checks
- basic listen/proactive WebSocket acceptance
- normalized turn and reply mapping for simple chat
## Fixture Source
Sanitized fixtures live under [src/Jibo.Cloud/node/fixtures](C:/Projects/JiboExperiments/OpenJibo/src/Jibo.Cloud/node/fixtures) and should be expanded as real traffic is captured.

View File

@@ -0,0 +1,24 @@
# Public Site Plan
## Goal
Stand up a small public site on `openjibo.com` that makes the project understandable in a few minutes.
## First Version Content
- project overview
- current status
- links to source repositories
- links to device bootstrap docs
- explanation of the hosted-cloud direction
- contribution/contact or waitlist path
## What The Site Should Not Pretend Yet
- zero-touch recovery
- complete parity with the original cloud
- public production readiness before device validation is repeatable
## Initial Repo Asset
A simple static site scaffold lives in [src/OpenJibo.Site](C:/Projects/JiboExperiments/OpenJibo/src/OpenJibo.Site).

View File

@@ -0,0 +1,33 @@
# Support Tiers
## Purpose
This document keeps the revival effort honest about what must work first, what can wait for parity, and what belongs to later modernization.
## Required For Core Revive
- hosted replacement cloud reachable through legacy Jibo host routing
- token, account, robot, and session bootstrap flows needed for startup
- basic WebSocket connectivity for listen and proactive channels
- minimal turn handling and a normalized `ResponsePlan` path
- Azure deployment foundation
- Azure SQL-backed persistence design
- bootstrap documentation for router, DNS, RCM, TLS patching, and smoke tests
## Optional For Parity
- broader `X-Amz-Target` family coverage
- richer media management
- more complete key and sharing flows
- higher-fidelity update metadata behavior
- more native-skill bridging and expression parity
- more complete per-version device behavior mapping
## Future Modernization
- OTA-first recovery for non-technical owners
- paid hosted plans, subscriptions, and donation flows
- deeper on-device modernization
- richer runtime orchestration and AI providers
- community plugin or skill ecosystem
- OS, bridge, and firmware modernization beyond hosted-cloud recovery