Skip to main content

Class: Agent

@web3-storage/access.Agent

Agent

Usage:

import { Agent } from '@web3-storage/access/agent'

Constructors

constructor

new Agent(data, options?)

Parameters

NameTypeDescription
dataAgentDataAgent data
options?AgentOptions

Defined in

packages/access-client/src/agent.js:81

Properties

#data

Private #data: AgentData

Defined in

packages/access-client/src/agent.js:75


connection

connection: ConnectionView<Service>

Defined in

packages/access-client/src/agent.js:83


url

url: URL

Defined in

packages/access-client/src/agent.js:82

Accessors

issuer

get issuer(): Signer<`did:${string}:${string}`, SigAlg>

Returns

Signer<`did:${string}:${string}`, SigAlg>

Defined in

packages/access-client/src/agent.js:114


meta

get meta(): AgentMeta

Returns

AgentMeta

Defined in

packages/access-client/src/agent.js:118


spaces

get spaces(): Map<`did:${string}:${string}`, SpaceMeta>

Returns

Map<`did:${string}:${string}`, SpaceMeta>

Defined in

packages/access-client/src/agent.js:122

Methods

#delegations

Private #delegations(caps?): { delegation: Delegation<Capabilities> ; meta: DelegationMeta }[]

Query the delegations store for all the delegations matching the capabilities provided.

Parameters

NameType
caps?Capability<Ability, `${string}:${string}`, any>[]

Returns

{ delegation: Delegation<Capabilities> ; meta: DelegationMeta }[]

Defined in

packages/access-client/src/agent.js:151


#waitForDelegation

Private #waitForDelegation(opts?): Promise<Delegation<Capabilities>>

Parameters

NameType
opts?Object
opts.signalundefined | AbortSignal

Returns

Promise<Delegation<Capabilities>>

Defined in

packages/access-client/src/agent.js:487


addProof

addProof(delegation): Promise<void>

Add a proof to the agent store

A proof is a delegation with an audience matching agent DID

Parameters

NameType
delegationDelegation<Capabilities>

Returns

Promise<void>

Defined in

packages/access-client/src/agent.js:137


createSpace

createSpace(name?): Promise<{ did: `did🔑${string}` ; meta: SpaceMeta ; proof: Delegation<[ToDeriveClaim<{}>]> }>

Creates a space signer and a delegation to the agent

Parameters

NameType
name?string

Returns

Promise<{ did: `did🔑${string}` ; meta: SpaceMeta ; proof: Delegation<[ToDeriveClaim<{}>]> }>

Defined in

packages/access-client/src/agent.js:244


currentSpace

currentSpace(): undefined | `did:${string}:${string}`

Get current space DID

Returns

undefined | `did:${string}:${string}`

Defined in

packages/access-client/src/agent.js:372


currentSpaceWithMeta

currentSpaceWithMeta(): undefined | { capabilities: any[] ; did: `did:${string}:${string}` ; meta: undefined | SpaceMeta ; proofs: Delegation<Capabilities>[] }

Get current space DID, proofs and abilities

Returns

undefined | { capabilities: any[] ; did: `did:${string}:${string}` ; meta: undefined | SpaceMeta ; proofs: Delegation<Capabilities>[] }

Defined in

packages/access-client/src/agent.js:379


delegate

delegate(options): Promise<Delegation<Capabilities>>

Parameters

NameType
optionsDelegationOptions

Returns

Promise<Delegation<Capabilities>>

Defined in

packages/access-client/src/agent.js:521


delegations

delegations(caps?): Delegation<Capabilities>[]

Get delegations created by the agent for others.

Parameters

NameTypeDescription
caps?Capability<Ability, `${string}:${string}`, any>[]Capabilities to filter by. Empty or undefined caps with return all the delegations.

Returns

Delegation<Capabilities>[]

Defined in

packages/access-client/src/agent.js:212


delegationsWithMeta

delegationsWithMeta(caps?): { delegation: Delegation<Capabilities> ; meta: DelegationMeta }[]

Get delegations created by the agent for others and their metadata.

Parameters

NameTypeDescription
caps?Capability<Ability, `${string}:${string}`, any>[]Capabilities to filter by. Empty or undefined caps with return all the delegations.

Returns

{ delegation: Delegation<Capabilities> ; meta: DelegationMeta }[]

Defined in

packages/access-client/src/agent.js:227


did

did(): `did:${string}:${string}`

Returns

`did:${string}:${string}`

Defined in

packages/access-client/src/agent.js:126


execute

execute<C, I>(...invocations): Await<InferServiceInvocations<I, Service>>

Execute invocations on the agent's connection

Example

const i1 = await agent.invoke(Space.info, {})
const i2 = await agent.invoke(Space.recover, {
nb: {
identity: 'mailto:[email protected]',
},
})

const results = await agent.execute2(i1, i2)

Type parameters

NameType
Cextends Capability<Ability, `${string}:${string}`, any, C>
Iextends [ServiceInvocation<C, Service>, ...ServiceInvocation<C, Service>[]]

Parameters

NameType
...invocationsI

Returns

Await<InferServiceInvocations<I, Service>>

Defined in

packages/access-client/src/agent.js:610


getSpaceInfo

getSpaceInfo(space?): Promise<Selectable<SpaceTable> & {}>

Get Space information from Access service

Parameters

NameType
space?URI<"did:">

Returns

Promise<Selectable<SpaceTable> & {}>

Defined in

packages/access-client/src/agent.js:687


importSpaceFromDelegation

importSpaceFromDelegation(delegation): Promise<{ did: `did:${string}:${string}` ; meta: SpaceMeta ; proof: Delegation<[{}]> = del }>

Import a space from a '*' delegation

Parameters

NameType
delegationDelegation<Capabilities>

Returns

Promise<{ did: `did:${string}:${string}` ; meta: SpaceMeta ; proof: Delegation<[{}]> = del }>

Defined in

packages/access-client/src/agent.js:277


invoke

invoke<A, R, CAP, C>(cap, options): Promise<IssuedInvocationView<InferInvokedCapability<CAP>>>

Creates an invocation for the given capability with Agent's proofs, service, issuer and space.

Example

const recoverInvocation = await agent.invoke(Space.recover, {
nb: {
identity: 'mailto: [email protected]',
},
})

await recoverInvocation.execute(agent.connection)
// or
await agent.execute(recoverInvocation)

Type parameters

NameType
Aextends Ability
Rextends `${string}:${string}` & Phantom<{}, R>
CAPextends TheCapabilityParser<CapabilityMatch<A, R, C>, CAP>
Cextends Caveats = {}

Parameters

NameType
capCAP
optionsInvokeOptions<A, R, CAP>

Returns

Promise<IssuedInvocationView<InferInvokedCapability<CAP>>>

Defined in

packages/access-client/src/agent.js:637


invokeAndExecute

invokeAndExecute<A, R, CAP, C>(cap, options): Promise<InferServiceInvocationReturn<InferInvokedCapability<CAP>, Service>>

Invoke and execute the given capability on the Access service connection


await agent.invokeAndExecute(Space.recover, {
nb: {
identity: 'mailto: [email protected]',
},
})

// sugar for
const recoverInvocation = await agent.invoke(Space.recover, {
nb: {
identity: 'mailto: [email protected]',
},
})

await recoverInvocation.execute(agent.connection)

Type parameters

NameType
Aextends Ability
Rextends `${string}:${string}` & Phantom<{}, R>
CAPextends TheCapabilityParser<CapabilityMatch<A, R, C>, CAP>
Cextends Caveats = {}

Parameters

NameType
capCAP
optionsInvokeOptions<A, R, CAP>

Returns

Promise<InferServiceInvocationReturn<InferInvokedCapability<CAP>, Service>>

Defined in

packages/access-client/src/agent.js:580


peer

peer(channel): Peer

Parameters

NameType
channelChannel

Returns

Peer

Defined in

packages/access-client/src/agent.js:678


proofs

proofs(caps?): Delegation<Capabilities>[]

Get all the proofs matching the capabilities

Proofs are delegations with an audience matching agent DID.

Parameters

NameTypeDescription
caps?Capability<Ability, `${string}:${string}`, any>[]Capabilities to filter by. Empty or undefined caps with return all the proofs.

Returns

Delegation<Capabilities>[]

Defined in

packages/access-client/src/agent.js:195


recover

recover(email, opts?): Promise<Delegation<[{}]>[]>

Parameters

NameType
emailstring
opts?Object
opts.signalundefined | AbortSignal

Returns

Promise<Delegation<[{}]>[]>

Defined in

packages/access-client/src/agent.js:310


registerSpace

registerSpace(email, opts?): Promise<void>

Invokes voucher/redeem for the free tier, wait on the websocket for the voucher/claim and invokes it

It also adds a full space delegation to the service in the voucher/claim invocation to allow for recovery

Parameters

NameType
emailstring
opts?Object
opts.signalundefined | AbortSignal

Returns

Promise<void>

Defined in

packages/access-client/src/agent.js:416


removeExpiredDelegations

removeExpiredDelegations(): Promise<void>

Clean up any expired delegations.

Returns

Promise<void>

Defined in

packages/access-client/src/agent.js:180


setCurrentSpace

setCurrentSpace(space): Promise<`did:${string}:${string}`>

Sets the current selected space

Other methods will default to use the current space if no resource is defined

Parameters

NameType
space`did:${string}:${string}`

Returns

Promise<`did:${string}:${string}`>

Defined in

packages/access-client/src/agent.js:352


create

Static create(init?, options?): Promise<Agent>

Create a new Agent instance, optionally with the passed initialization data.

Parameters

NameType
init?Partial<AgentDataModel>
options?AgentOptions & AgentDataOptions

Returns

Promise<Agent>

Defined in

packages/access-client/src/agent.js:98


from

Static from(raw, options?): Agent

Instantiate an Agent from pre-exported agent data.

Parameters

NameType
rawAgentDataExport
options?AgentOptions & AgentDataOptions

Returns

Agent

Defined in

packages/access-client/src/agent.js:109