feat(companion): add generated macos ios android reference app surfaces

This commit is contained in:
William Valentin
2026-02-26 19:37:28 -08:00
parent 3839c04a7d
commit be8b1f29a4
22 changed files with 419 additions and 5 deletions
@@ -0,0 +1,32 @@
package flynn.companion
// Reference Android bootstrap model for integrating with Flynn gateway runtime.
// Wire FCM token refresh to node.push_token.set and app lifecycle to heartbeat publishing.
data class CompanionBootstrap(
val schemaVersion: Int,
val generatedAt: String,
val gateway: Gateway,
val node: Node,
val runtime: Runtime
)
data class Gateway(
val url: String,
val token: String?
)
data class Node(
val nodeId: String,
val role: String,
val platform: String,
val capabilities: List<String>
)
data class Runtime(
val heartbeatSeconds: Int,
val handoffTimeoutMs: Int,
val autoReconnect: Boolean
)
// Generated for node: android-reference-shell (android)
+11
View File
@@ -0,0 +1,11 @@
# Flynn Companion android Shell Template
This directory contains a generated starter template for a android companion shell.
Files:
- `companion.bootstrap.json`: resolved Flynn companion bootstrap contract
- `CompanionBootstrap.kt`: platform-native starter model/wrapper snippet
Notes:
- These templates are intentionally minimal and should be integrated into your app project.
- Runtime transport should use Flynn gateway JSON-RPC node methods (`node.register`, `node.status.set`, `node.location.set`, `node.push_token.set`).
@@ -0,0 +1,23 @@
{
"schemaVersion": 1,
"generatedAt": "2026-02-27T03:35:54.245Z",
"gateway": {
"url": "ws://127.0.0.1:18800"
},
"node": {
"nodeId": "android-reference-shell",
"role": "companion",
"platform": "android",
"capabilities": [
"ui.canvas",
"node.status.write",
"node.location.write",
"node.push.register"
]
},
"runtime": {
"heartbeatSeconds": 30,
"handoffTimeoutMs": 120000,
"autoReconnect": true
}
}