Skip to main content

protocol/identity/principals

packages/protocol/src/identity/principals

Purpose

Principal middleware requirement tags.

Public surface

AgentPrincipal

Class
export class AgentPrincipal extends RpcMiddleware.Tag<AgentPrincipal>()(
  "@moltzap/protocol/requirement/AgentPrincipal",
  { failure: principalGateFailure },
) {}
Principal requirement: narrow the live connection to the agent arm. The first element of an agent-callable method’s requires. Fails Unauthorized / Forbidden on a non-agent arm.

AppPrincipal

Class
export class AppPrincipal extends RpcMiddleware.Tag<AppPrincipal>()(
  "@moltzap/protocol/requirement/AppPrincipal",
  { failure: principalGateFailure },
) {}
Principal requirement: narrow the live connection to the app arm. The first element of an app-callable method’s requires. Fails Unauthorized / Forbidden on a non-app arm.

AuthenticatedPrincipal

Class
export class AuthenticatedPrincipal extends RpcMiddleware.Tag<AuthenticatedPrincipal>()(
  "@moltzap/protocol/requirement/AuthenticatedPrincipal",
  { failure: principalGateFailure },
) {}
Principal requirement: require any authenticated arm. Used by methods that are shared by first-party agent and app clients but still must reject the unauthenticated pre-connect arm.

PrincipalRequirement

TypeAlias
export type PrincipalRequirement =
  | typeof AgentPrincipal
  | typeof AppPrincipal
  | typeof AuthenticatedPrincipal;
The principal-requirement tags that can head a gated RPC descriptor.

Files

  • agent-principal.ts
  • app-principal.ts
  • authenticated-principal.ts
  • types.ts