feat(companion): add typed canvas RPC helpers for runtime clients

This commit is contained in:
William Valentin
2026-02-16 18:33:59 -08:00
parent 2e07ae44a3
commit 97afc39e01
8 changed files with 268 additions and 2 deletions
+68
View File
@@ -1,10 +1,18 @@
import type {
CanvasClearResult,
CanvasDeleteResult,
CanvasGetResult,
CanvasListResult,
CanvasPutResult,
CompanionRuntimeClient,
DeleteCanvasArtifactInput,
GetCanvasArtifactInput,
NodeCapabilitiesResult,
NodeLocationGetResult,
NodeLocationSetResult,
NodeRegisterResult,
NodeStatusSetResult,
PutCanvasArtifactInput,
NodePushTokenSetResult,
SetNodeLocationInput,
SystemCapabilitiesResult,
@@ -101,6 +109,26 @@ export class MacOSCompanionClient {
listNodes(): Promise<SystemNodesResult> {
return this.runtime.listSystemNodes({ platform: 'macos', role: this.role });
}
putCanvasArtifact(input: PutCanvasArtifactInput): Promise<CanvasPutResult> {
return this.runtime.putCanvasArtifact(input);
}
getCanvasArtifact(input: GetCanvasArtifactInput): Promise<CanvasGetResult> {
return this.runtime.getCanvasArtifact(input);
}
listCanvasArtifacts(sessionId: string): Promise<CanvasListResult> {
return this.runtime.listCanvasArtifacts(sessionId);
}
deleteCanvasArtifact(input: DeleteCanvasArtifactInput): Promise<CanvasDeleteResult> {
return this.runtime.deleteCanvasArtifact(input);
}
clearCanvasArtifacts(sessionId: string): Promise<CanvasClearResult> {
return this.runtime.clearCanvasArtifacts(sessionId);
}
}
export class IOSCompanionClient {
@@ -174,6 +202,26 @@ export class IOSCompanionClient {
listNodes(): Promise<SystemNodesResult> {
return this.runtime.listSystemNodes({ platform: 'ios', role: this.role });
}
putCanvasArtifact(input: PutCanvasArtifactInput): Promise<CanvasPutResult> {
return this.runtime.putCanvasArtifact(input);
}
getCanvasArtifact(input: GetCanvasArtifactInput): Promise<CanvasGetResult> {
return this.runtime.getCanvasArtifact(input);
}
listCanvasArtifacts(sessionId: string): Promise<CanvasListResult> {
return this.runtime.listCanvasArtifacts(sessionId);
}
deleteCanvasArtifact(input: DeleteCanvasArtifactInput): Promise<CanvasDeleteResult> {
return this.runtime.deleteCanvasArtifact(input);
}
clearCanvasArtifacts(sessionId: string): Promise<CanvasClearResult> {
return this.runtime.clearCanvasArtifacts(sessionId);
}
}
export class AndroidCompanionClient {
@@ -245,4 +293,24 @@ export class AndroidCompanionClient {
listNodes(): Promise<SystemNodesResult> {
return this.runtime.listSystemNodes({ platform: 'android', role: this.role });
}
putCanvasArtifact(input: PutCanvasArtifactInput): Promise<CanvasPutResult> {
return this.runtime.putCanvasArtifact(input);
}
getCanvasArtifact(input: GetCanvasArtifactInput): Promise<CanvasGetResult> {
return this.runtime.getCanvasArtifact(input);
}
listCanvasArtifacts(sessionId: string): Promise<CanvasListResult> {
return this.runtime.listCanvasArtifacts(sessionId);
}
deleteCanvasArtifact(input: DeleteCanvasArtifactInput): Promise<CanvasDeleteResult> {
return this.runtime.deleteCanvasArtifact(input);
}
clearCanvasArtifacts(sessionId: string): Promise<CanvasClearResult> {
return this.runtime.clearCanvasArtifacts(sessionId);
}
}