@@ -81,6 +81,9 @@ interface WorkspaceDmMessage {
8181 createdAt : string ;
8282}
8383
84+ type RegisterTypedIdentityInput = Omit < CreateAgentRequest , 'type' > ;
85+ type RegisterIdentityType = NonNullable < CreateAgentRequest [ 'type' ] > ;
86+
8487export class RelayCast {
8588 private client : HttpClient ;
8689 private identityHint : { agentId : string ; name : string } | null = null ;
@@ -198,6 +201,13 @@ export class RelayCast {
198201 throw new RelayError ( 'transport_error' , 'Failed to register agent identity after suffix retries' ) ;
199202 }
200203
204+ private registerTypedIdentity (
205+ type : RegisterIdentityType ,
206+ data : RegisterTypedIdentityInput ,
207+ ) : Promise < CreateAgentResponse > {
208+ return this . agents . register ( { ...data , type } ) ;
209+ }
210+
201211 async registerAgent ( data : RegisterAgentInput ) : Promise < CreateAgentResponse > {
202212 const { strict, ...request } = data ;
203213 if ( strict ) {
@@ -235,6 +245,18 @@ export class RelayCast {
235245 return this . resolveIdentityInternal ( ) ;
236246 }
237247
248+ agent ( data : RegisterTypedIdentityInput ) : Promise < CreateAgentResponse > {
249+ return this . registerTypedIdentity ( 'agent' , data ) ;
250+ }
251+
252+ human ( data : RegisterTypedIdentityInput ) : Promise < CreateAgentResponse > {
253+ return this . registerTypedIdentity ( 'human' , data ) ;
254+ }
255+
256+ system ( data : RegisterTypedIdentityInput ) : Promise < CreateAgentResponse > {
257+ return this . registerTypedIdentity ( 'system' , data ) ;
258+ }
259+
238260 workspace = {
239261 info : ( ) : Promise < Workspace > => this . client . get ( '/v1/workspace' ) ,
240262 update : ( data : UpdateWorkspaceRequest ) : Promise < Workspace > =>
0 commit comments