feat(companion): extend platform bootstrap with system snapshot option

This commit is contained in:
William Valentin
2026-02-16 19:10:20 -08:00
parent 4a3c9e7fac
commit 1b69970065
5 changed files with 111 additions and 18 deletions
+50 -12
View File
@@ -56,6 +56,11 @@ export interface HeartbeatStatusInput {
export interface PlatformBootstrapResult {
register: NodeRegisterResult;
capabilities: NodeCapabilitiesResult;
systemCapabilities?: SystemCapabilitiesResult;
}
export interface PlatformBootstrapOptions {
includeSystemCapabilities?: boolean;
}
export interface PlatformPutCanvasArtifactInput extends Omit<PutCanvasArtifactInput, 'sessionId'> {
@@ -108,10 +113,21 @@ export class MacOSCompanionClient {
});
}
async bootstrap(): Promise<PlatformBootstrapResult> {
const register = await this.register();
const capabilities = await this.getCapabilities();
return { register, capabilities };
async bootstrap(options?: PlatformBootstrapOptions): Promise<PlatformBootstrapResult> {
const result = await this.runtime.bootstrapNode(
{
nodeId: this.nodeId,
role: this.role,
protocolVersion: this.protocolVersion,
capabilities: this.capabilities,
},
{ includeSystemCapabilities: options?.includeSystemCapabilities },
);
return {
register: result.register,
capabilities: result.capabilities,
systemCapabilities: result.systemCapabilities,
};
}
getCapabilities(): Promise<NodeCapabilitiesResult> {
@@ -248,10 +264,21 @@ export class IOSCompanionClient {
});
}
async bootstrap(): Promise<PlatformBootstrapResult> {
const register = await this.register();
const capabilities = await this.getCapabilities();
return { register, capabilities };
async bootstrap(options?: PlatformBootstrapOptions): Promise<PlatformBootstrapResult> {
const result = await this.runtime.bootstrapNode(
{
nodeId: this.nodeId,
role: this.role,
protocolVersion: this.protocolVersion,
capabilities: this.capabilities,
},
{ includeSystemCapabilities: options?.includeSystemCapabilities },
);
return {
register: result.register,
capabilities: result.capabilities,
systemCapabilities: result.systemCapabilities,
};
}
getCapabilities(): Promise<NodeCapabilitiesResult> {
@@ -388,10 +415,21 @@ export class AndroidCompanionClient {
});
}
async bootstrap(): Promise<PlatformBootstrapResult> {
const register = await this.register();
const capabilities = await this.getCapabilities();
return { register, capabilities };
async bootstrap(options?: PlatformBootstrapOptions): Promise<PlatformBootstrapResult> {
const result = await this.runtime.bootstrapNode(
{
nodeId: this.nodeId,
role: this.role,
protocolVersion: this.protocolVersion,
capabilities: this.capabilities,
},
{ includeSystemCapabilities: options?.includeSystemCapabilities },
);
return {
register: result.register,
capabilities: result.capabilities,
systemCapabilities: result.systemCapabilities,
};
}
getCapabilities(): Promise<NodeCapabilitiesResult> {