@verana-labs/vs-agent-sdk 1.11.0-dev.9 → 1.12.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/README.md +172 -0
  2. package/build/agent/VsAgent.d.ts +8 -3
  3. package/build/agent/VsAgent.js +126 -40
  4. package/build/agent/VsAgent.js.map +1 -1
  5. package/build/agent/createVsAgent.d.ts +3 -1
  6. package/build/agent/createVsAgent.js +1 -0
  7. package/build/agent/createVsAgent.js.map +1 -1
  8. package/build/blockchain/IndexerWebSocketService.d.ts +39 -0
  9. package/build/blockchain/IndexerWebSocketService.js +217 -0
  10. package/build/blockchain/IndexerWebSocketService.js.map +1 -0
  11. package/build/blockchain/VeranaChainService.d.ts +2 -0
  12. package/build/blockchain/VeranaChainService.js +7 -4
  13. package/build/blockchain/VeranaChainService.js.map +1 -1
  14. package/build/blockchain/VeranaHelpers.d.ts +4 -0
  15. package/build/blockchain/VeranaHelpers.js +29 -0
  16. package/build/blockchain/VeranaHelpers.js.map +1 -0
  17. package/build/blockchain/VeranaIndexerService.d.ts +11 -0
  18. package/build/blockchain/VeranaIndexerService.js +43 -0
  19. package/build/blockchain/VeranaIndexerService.js.map +1 -0
  20. package/build/blockchain/handlers/IndexerHandlerRegistry.d.ts +25 -0
  21. package/build/blockchain/handlers/IndexerHandlerRegistry.js +34 -0
  22. package/build/blockchain/handlers/IndexerHandlerRegistry.js.map +1 -0
  23. package/build/blockchain/handlers/defaultHandlers.d.ts +6 -0
  24. package/build/blockchain/handlers/defaultHandlers.js +126 -0
  25. package/build/blockchain/handlers/defaultHandlers.js.map +1 -0
  26. package/build/blockchain/handlers/index.d.ts +3 -0
  27. package/build/blockchain/handlers/index.js +20 -0
  28. package/build/blockchain/handlers/index.js.map +1 -0
  29. package/build/blockchain/handlers/stateMutations.d.ts +12 -0
  30. package/build/blockchain/handlers/stateMutations.js +113 -0
  31. package/build/blockchain/handlers/stateMutations.js.map +1 -0
  32. package/build/blockchain/index.d.ts +4 -0
  33. package/build/blockchain/index.js +4 -0
  34. package/build/blockchain/index.js.map +1 -1
  35. package/build/blockchain/types.d.ts +107 -0
  36. package/build/blockchain/types.js +2 -1
  37. package/build/blockchain/types.js.map +1 -1
  38. package/build/did/WebDidRegistrar.d.ts +3 -1
  39. package/build/did/WebDidRegistrar.js +10 -1
  40. package/build/did/WebDidRegistrar.js.map +1 -1
  41. package/build/did/migrateWebVhLog.d.ts +34 -0
  42. package/build/did/migrateWebVhLog.js +230 -0
  43. package/build/did/migrateWebVhLog.js.map +1 -0
  44. package/build/events/BaseMessageEvents.d.ts +3 -0
  45. package/build/events/BaseMessageEvents.js +148 -0
  46. package/build/events/BaseMessageEvents.js.map +1 -0
  47. package/build/events/ConnectionEvents.d.ts +7 -0
  48. package/build/events/ConnectionEvents.js +112 -0
  49. package/build/events/ConnectionEvents.js.map +1 -0
  50. package/build/events/VsAgentEvents.d.ts +35 -0
  51. package/build/events/VsAgentEvents.js +23 -0
  52. package/build/events/VsAgentEvents.js.map +1 -0
  53. package/build/events/index.d.ts +3 -0
  54. package/build/events/index.js +20 -0
  55. package/build/events/index.js.map +1 -0
  56. package/build/index.d.ts +3 -7
  57. package/build/index.js +4 -13
  58. package/build/index.js.map +1 -1
  59. package/build/plugins/setupBaseDidComm.d.ts +2 -0
  60. package/build/plugins/setupBaseDidComm.js +9 -1
  61. package/build/plugins/setupBaseDidComm.js.map +1 -1
  62. package/build/transports/VsAgentWsInboundTransport.js +1 -1
  63. package/build/transports/VsAgentWsInboundTransport.js.map +1 -1
  64. package/build/types.d.ts +2 -6
  65. package/build/types.js.map +1 -1
  66. package/build/utils/agent.d.ts +3 -2
  67. package/build/utils/agent.js +16 -10
  68. package/build/utils/agent.js.map +1 -1
  69. package/build/utils/index.d.ts +5 -0
  70. package/build/utils/index.js +22 -0
  71. package/build/utils/index.js.map +1 -0
  72. package/build/utils/setupSelfTr.d.ts +115 -0
  73. package/build/utils/setupSelfTr.js +452 -0
  74. package/build/utils/setupSelfTr.js.map +1 -0
  75. package/build/utils/trustCredentialStore.d.ts +18 -0
  76. package/build/utils/trustCredentialStore.js +196 -0
  77. package/build/utils/trustCredentialStore.js.map +1 -0
  78. package/package.json +13 -10
  79. package/build/utils/webhook.d.ts +0 -13
  80. package/build/utils/webhook.js +0 -56
  81. package/build/utils/webhook.js.map +0 -1
  82. package/build/utils/webhookEvent.d.ts +0 -5
  83. package/build/utils/webhookEvent.js +0 -26
  84. package/build/utils/webhookEvent.js.map +0 -1
package/README.md ADDED
@@ -0,0 +1,172 @@
1
+ # @verana-labs/vs-agent-sdk
2
+
3
+ Framework-agnostic Verifiable Service Agent SDK with DIDComm, AnonCreds, and blockchain integration.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install @verana-labs/vs-agent-sdk @credo-ts/core @credo-ts/node
9
+ ```
10
+
11
+ ## Basic Usage
12
+
13
+ ```typescript
14
+ import { createVsAgent, setupBaseDidComm } from '@verana-labs/vs-agent-sdk'
15
+ import { getNodeHttpServer } from '@credo-ts/node'
16
+
17
+ const agent = createVsAgent({
18
+ plugins: [
19
+ setupBaseDidComm({
20
+ walletConfig: { dbPath: './wallet' },
21
+ publicApiBaseUrl: 'https://api.example.com',
22
+ endpoints: ['https://agent.example.com/didcomm'],
23
+ }),
24
+ ],
25
+ label: 'My Agent',
26
+ publicApiBaseUrl: 'https://api.example.com',
27
+ dependencies: getNodeHttpServer(),
28
+ })
29
+
30
+ await agent.initialize()
31
+ ```
32
+
33
+ ## Indexer WebSocket
34
+
35
+ Stream blockchain events in real-time:
36
+
37
+ ```typescript
38
+ import { IndexerWebSocketService } from '@verana-labs/vs-agent-sdk'
39
+
40
+ const indexerWs = new IndexerWebSocketService({
41
+ indexerUrl: 'https://indexer.verana.io',
42
+ agent,
43
+ })
44
+
45
+ await indexerWs.start()
46
+ // Auto-reconnects with exponential backoff (max 5min)
47
+ // Persists last block height in agent storage
48
+ ```
49
+
50
+ ### Custom Handlers
51
+
52
+ Build default handlers or replace with your own:
53
+
54
+ ```typescript
55
+ import { buildDefaultIndexerHandlerRegistry } from '@verana-labs/vs-agent-sdk'
56
+
57
+ const handlerRegistry = buildDefaultIndexerHandlerRegistry()
58
+
59
+ const indexerWs = new IndexerWebSocketService({
60
+ indexerUrl: 'https://indexer.example.com',
61
+ agent,
62
+ handlerRegistry,
63
+ })
64
+ ```
65
+
66
+ **Override a specific handler:**
67
+
68
+ ```typescript
69
+ import { buildDefaultIndexerHandlerRegistry } from '@verana-labs/vs-agent-sdk'
70
+ import type { IndexerActivity, IndexerDispatchContext } from '@verana-labs/vs-agent-sdk'
71
+
72
+ const registry = buildDefaultIndexerHandlerRegistry()
73
+
74
+ // Replace credential schema handler with custom logic
75
+ registry.register('CredentialSchema', async (activity: IndexerActivity, context: IndexerDispatchContext) => {
76
+ const { id, jsonSchema } = activity.changes as any
77
+ console.log(`Schema ${id} updated at block ${context.blockHeight}`)
78
+
79
+ // Sync to your database
80
+ await db.schemas.update(id, { schema: jsonSchema })
81
+ })
82
+
83
+ const indexerWs = new IndexerWebSocketService({
84
+ indexerUrl: 'https://indexer.example.com',
85
+ agent,
86
+ handlerRegistry: registry,
87
+ })
88
+ ```
89
+
90
+ **Custom handlers from scratch:**
91
+
92
+ ```typescript
93
+ import { IndexerHandlerRegistry } from '@verana-labs/vs-agent-sdk'
94
+ import type { IndexerActivity, IndexerDispatchContext } from '@verana-labs/vs-agent-sdk'
95
+
96
+ const registry = new IndexerHandlerRegistry()
97
+
98
+ // Handle trust registry changes
99
+ registry.register('TrustRegistry', async (activity, context) => {
100
+ const { id, did, archived } = activity.changes as any
101
+ await agent.config.logger.info(`[Block ${context.blockHeight}] TR ${id} ${archived ? 'archived' : 'activated'}`)
102
+ })
103
+
104
+ // Handle permission changes with custom messages
105
+ registry.register('Permission', async (activity, context) => {
106
+ const { id, did, revoked } = activity.changes as any
107
+ const status = revoked ? 'revoked' : 'granted'
108
+
109
+ await agent.config.logger.info(`[Block ${context.blockHeight}] Permission ${status}: ${id}`)
110
+
111
+ // Emit to your service
112
+ await sendWebhookEvent('https://your-service.com/perms', {
113
+ type: 'permission_status_changed',
114
+ permissionId: id,
115
+ did,
116
+ status,
117
+ blockHeight: context.blockHeight,
118
+ timestamp: new Date().toISOString(),
119
+ })
120
+ })
121
+
122
+ const indexerWs = new IndexerWebSocketService({
123
+ indexerUrl: 'https://indexer.example.com',
124
+ agent,
125
+ handlerRegistry: registry,
126
+ })
127
+ ```
128
+
129
+ ## Blockchain Integration
130
+
131
+ ```typescript
132
+ import { VeranaChainService } from '@verana-labs/vs-agent-sdk'
133
+
134
+ const chain = new VeranaChainService({
135
+ rpcUrl: 'https://rpc.verana.io',
136
+ chainId: 'verana-mainnet-1',
137
+ mnemonic: 'your wallet seed phrase...',
138
+ logger: agent.config.logger,
139
+ })
140
+
141
+ const agent = createVsAgent({
142
+ plugins: [...],
143
+ veranaChain: chain,
144
+ label: 'My Agent',
145
+ publicApiBaseUrl: 'https://api.example.com',
146
+ dependencies: getNodeHttpServer(),
147
+ })
148
+ ```
149
+
150
+ ## Utilities
151
+
152
+ ```typescript
153
+ // DIDs
154
+ import { createInvitation, getWebDid } from '@verana-labs/vs-agent-sdk'
155
+
156
+ const did = await getWebDid(agent)
157
+ const invitation = await createInvitation(agent)
158
+
159
+ // Webhooks
160
+ import { sendWebhookEvent } from '@verana-labs/vs-agent-sdk'
161
+
162
+ await sendWebhookEvent('https://example.com/webhook', {
163
+ type: 'event_type',
164
+ data: { /* ... */ },
165
+ })
166
+
167
+ // Transports
168
+ import {
169
+ HttpInboundTransport,
170
+ VsAgentWsInboundTransport,
171
+ } from '@verana-labs/vs-agent-sdk'
172
+ ```
@@ -1,13 +1,14 @@
1
1
  import { AnonCredsDidCommCredentialFormatService, AnonCredsModule, AnonCredsDidCommProofFormatService, LegacyIndyDidCommCredentialFormatService, LegacyIndyDidCommProofFormatService } from '@credo-ts/anoncreds';
2
2
  import { AskarModule, AskarModuleConfigStoreOptions } from '@credo-ts/askar';
3
3
  import { Agent, AgentDependencies, DidsModule, InitConfig, W3cCredentialsModule } from '@credo-ts/core';
4
- import { DidCommCredentialsModuleConfigOptions, DidCommCredentialV2Protocol, DidCommModule, DidCommModuleConfigOptions, DidCommProofsModuleConfigOptions, DidCommProofV2Protocol } from '@credo-ts/didcomm';
5
- import { VeranaChainService } from '../blockchain';
4
+ import { DidCommCredentialsModuleConfigOptions, DidCommCredentialV2Protocol, DidCommFeatureQueryOptions, DidCommJsonLdCredentialFormatService, DidCommModule, DidCommModuleConfigOptions, DidCommProofsModuleConfigOptions, DidCommProofV2Protocol } from '@credo-ts/didcomm';
5
+ import { VeranaChainService } from '../blockchain/VeranaChainService';
6
6
  type VsAgentDidCommModule = DidCommModule<DidCommModuleConfigOptions & {
7
7
  credentials: DidCommCredentialsModuleConfigOptions<[
8
8
  DidCommCredentialV2Protocol<[
9
9
  LegacyIndyDidCommCredentialFormatService,
10
- AnonCredsDidCommCredentialFormatService
10
+ AnonCredsDidCommCredentialFormatService,
11
+ DidCommJsonLdCredentialFormatService
11
12
  ]>
12
13
  ]>;
13
14
  proofs: DidCommProofsModuleConfigOptions<[
@@ -33,6 +34,7 @@ export declare class VsAgent<TModules extends BaseAgentModules = BaseAgentModule
33
34
  displayPictureUrl?: string;
34
35
  label: string;
35
36
  veranaChain?: VeranaChainService;
37
+ discoveryOptions?: DidCommFeatureQueryOptions[];
36
38
  constructor(options: AgentOptions<TModules> & {
37
39
  did?: string;
38
40
  autoDiscloseUserProfile?: boolean;
@@ -40,11 +42,14 @@ export declare class VsAgent<TModules extends BaseAgentModules = BaseAgentModule
40
42
  displayPictureUrl?: string;
41
43
  label: string;
42
44
  veranaChain?: VeranaChainService;
45
+ discoveryOptions?: DidCommFeatureQueryOptions[];
43
46
  });
44
47
  private get hasUserProfile();
45
48
  initialize(): Promise<void>;
46
49
  private findCreatedDid;
50
+ private findEd25519VerificationMethodId;
47
51
  private getDidCommServices;
52
+ private persistDidDocumentKey;
48
53
  private createAndAddDidCommKeysAndServices;
49
54
  private createAndAddLinkedVpServices;
50
55
  /**
@@ -3,6 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VsAgent = void 0;
4
4
  const core_1 = require("@credo-ts/core");
5
5
  const didwebvh_ts_1 = require("didwebvh-ts");
6
+ const migrateWebVhLog_1 = require("../did/migrateWebVhLog");
7
+ const BaseMessageEvents_1 = require("../events/BaseMessageEvents");
8
+ const ConnectionEvents_1 = require("../events/ConnectionEvents");
9
+ const MANAGED_DIDCOMM_SERVICE_TYPES = [core_1.DidCommV1Service.type, core_1.NewDidCommV2Service.type];
6
10
  class VsAgent extends core_1.Agent {
7
11
  constructor(options) {
8
12
  super(options);
@@ -12,12 +16,13 @@ class VsAgent extends core_1.Agent {
12
16
  this.displayPictureUrl = options.displayPictureUrl;
13
17
  this.label = options.label;
14
18
  this.veranaChain = options.veranaChain;
19
+ this.discoveryOptions = options.discoveryOptions;
15
20
  }
16
21
  get hasUserProfile() {
17
22
  return 'userProfile' in this.modules;
18
23
  }
19
24
  async initialize() {
20
- var _a, _b, _c, _d, _e, _f;
25
+ var _a, _b, _c, _d, _e, _f, _g;
21
26
  await super.initialize();
22
27
  if (this.hasUserProfile) {
23
28
  // Make sure default User Profile corresponds to settings in environment variables
@@ -40,7 +45,7 @@ class VsAgent extends core_1.Agent {
40
45
  if (!existingRecord) {
41
46
  if (parsedDid.method === 'web') {
42
47
  const didDocument = new core_1.DidDocument({ id: parsedDid.did });
43
- await this.createAndAddDidCommKeysAndServices(didDocument);
48
+ const didCommKey = await this.createAndAddDidCommKeysAndServices(didDocument);
44
49
  // Add Self TR
45
50
  await this.createAndAddLinkedVpServices(didDocument);
46
51
  // Add AnonCreds Services
@@ -49,6 +54,7 @@ class VsAgent extends core_1.Agent {
49
54
  method: 'web',
50
55
  domain,
51
56
  didDocument,
57
+ keys: [didCommKey],
52
58
  });
53
59
  this.did = parsedDid.did;
54
60
  }
@@ -69,12 +75,15 @@ class VsAgent extends core_1.Agent {
69
75
  process.exit(1);
70
76
  }
71
77
  // Add DIDComm services and keys
72
- await this.createAndAddDidCommKeysAndServices(didDocument);
78
+ const didCommKey = await this.createAndAddDidCommKeysAndServices(didDocument);
73
79
  // Add Linked VP services
74
80
  await this.createAndAddLinkedVpServices(didDocument);
75
81
  // Add implicit services
76
82
  await this.createAndAddWebVhImplicitServices(didDocument);
77
83
  didDocument.alsoKnownAs = [`did:web:${domain}`];
84
+ // The webvh registrar doesn't merge new keys into the DidRecord on update,
85
+ // so persist the DIDComm key mapping directly on the existing record.
86
+ await this.persistDidDocumentKey(publicDid, didCommKey);
78
87
  const result = await this.dids.update({ did: publicDid, didDocument });
79
88
  if (result.didState.state !== 'finished') {
80
89
  this.logger.error(`Cannot update DID ${publicDid}`);
@@ -88,6 +97,20 @@ class VsAgent extends core_1.Agent {
88
97
  }
89
98
  return;
90
99
  }
100
+ // If this is a did:webvh record, ensure the stored log is resolvable under the
101
+ // current didwebvh-ts version. Logs created with didwebvh-ts <2.7.4 used the
102
+ // SCID placeholder when computing the entry hash for entries beyond #1, which
103
+ // newer resolvers (correctly) reject as a broken hash chain. We rebuild the
104
+ // log in-place, preserving entry #1 (and therefore the SCID and the public DID).
105
+ if (parsedDid.method === 'webvh') {
106
+ try {
107
+ await (0, migrateWebVhLog_1.migrateWebVhLogIfBroken)(this.agentContext, existingRecord, this.logger);
108
+ }
109
+ catch (error) {
110
+ this.logger.error(`Failed to migrate webvh DID log for ${existingRecord.did}: ${error instanceof Error ? error.message : String(error)}`);
111
+ throw error;
112
+ }
113
+ }
91
114
  // Make sure did:webvh record has the did:web form as an alternative, in order to support
92
115
  // implicit invitations
93
116
  if (parsedDid.method === 'webvh' &&
@@ -101,27 +124,50 @@ class VsAgent extends core_1.Agent {
101
124
  // DIDComm endpoints, so we'll only replace the service (if different from previous)
102
125
  const didDocument = existingRecord.didDocument;
103
126
  const hasLegacyMethods = ((_d = didDocument.verificationMethod) !== null && _d !== void 0 ? _d : []).some(vm => ['Ed25519VerificationKey2018', 'X25519KeyAgreementKey2019'].includes(vm.type));
104
- const servicesChanged = JSON.stringify(didDocument.didCommServices) !==
105
- JSON.stringify(this.getDidCommServices(didDocument.id));
106
- if (hasLegacyMethods || servicesChanged) {
107
- if (servicesChanged) {
127
+ const ed25519VerificationMethodId = this.findEd25519VerificationMethodId(didDocument);
128
+ const servicesChanged = !ed25519VerificationMethodId ||
129
+ JSON.stringify(didDocument.didCommServices) !==
130
+ JSON.stringify(this.getDidCommServices(didDocument.id, ed25519VerificationMethodId));
131
+ // One-shot migration for did:webvh records published before authentication-replace
132
+ // landed, which still carry the didwebvh-ts update key in authentication.
133
+ const authHasUpdateKey = parsedDid.method === 'webvh' &&
134
+ !!ed25519VerificationMethodId &&
135
+ ((_e = didDocument.authentication) !== null && _e !== void 0 ? _e : []).some(a => {
136
+ const id = typeof a === 'string' ? a : a.id;
137
+ return id !== ed25519VerificationMethodId;
138
+ });
139
+ if (hasLegacyMethods || servicesChanged || authHasUpdateKey) {
140
+ if (servicesChanged && ed25519VerificationMethodId) {
108
141
  didDocument.service = [
109
142
  ...(didDocument.service
110
- ? didDocument.service.filter(service => ![core_1.DidCommV1Service.type].includes(service.type))
143
+ ? didDocument.service.filter(service => !MANAGED_DIDCOMM_SERVICE_TYPES.includes(service.type))
111
144
  : []),
112
- ...this.getDidCommServices(didDocument.id),
145
+ ...this.getDidCommServices(didDocument.id, ed25519VerificationMethodId),
113
146
  ];
114
147
  }
115
- if (hasLegacyMethods)
116
- await this.createAndAddDidCommKeysAndServices(didDocument);
117
- await this.dids.update({ did: didDocument.id, didDocument });
118
- (_e = this.logger) === null || _e === void 0 ? void 0 : _e.debug('Public did record updated');
148
+ const newKeys = [];
149
+ if (hasLegacyMethods) {
150
+ newKeys.push(await this.createAndAddDidCommKeysAndServices(didDocument));
151
+ }
152
+ if (authHasUpdateKey)
153
+ didDocument.authentication = [ed25519VerificationMethodId];
154
+ if (newKeys.length && parsedDid.method === 'webvh') {
155
+ // webvh registrar doesn't accept keys in update options; persist directly
156
+ for (const key of newKeys)
157
+ await this.persistDidDocumentKey(didDocument.id, key);
158
+ }
159
+ await this.dids.update(Object.assign({ did: didDocument.id, didDocument }, (newKeys.length && parsedDid.method === 'web' ? { keys: newKeys } : {})));
160
+ (_f = this.logger) === null || _f === void 0 ? void 0 : _f.debug('Public did record updated');
119
161
  }
120
162
  else {
121
- (_f = this.logger) === null || _f === void 0 ? void 0 : _f.debug('Existing DID record found. No updates');
163
+ (_g = this.logger) === null || _g === void 0 ? void 0 : _g.debug('Existing DID record found. No updates');
122
164
  }
123
165
  this.did = existingRecord.did;
124
166
  }
167
+ // Initialize events
168
+ const logger = this.config.logger;
169
+ await (0, ConnectionEvents_1.connectionEvents)(this, { discoveryOptions: this.discoveryOptions, logger });
170
+ await (0, BaseMessageEvents_1.baseMessageEvents)(this, logger);
125
171
  }
126
172
  async findCreatedDid(parsedDid) {
127
173
  const didRepository = this.dependencyManager.resolve(core_1.DidRepository);
@@ -132,21 +178,61 @@ class VsAgent extends core_1.Agent {
132
178
  }
133
179
  return await didRepository.findCreatedDid(this.context, parsedDid.did);
134
180
  }
135
- getDidCommServices(publicDid) {
136
- const keyAgreementId = `${publicDid}#key-agreement-1`;
137
- return this.didcomm.config.endpoints.map((endpoint, index) => {
138
- return new core_1.DidCommV1Service({
139
- id: `${publicDid}#did-communication`,
140
- serviceEndpoint: endpoint,
141
- priority: index,
142
- routingKeys: [], // TODO: Support mediation
143
- recipientKeys: [keyAgreementId],
144
- accept: ['didcomm/aip2;env=rfc19'],
145
- });
181
+ // Prefer Ed25519VerificationKey2020 over Multikey: webvh's update Multikey is not ours to use.
182
+ findEd25519VerificationMethodId(didDocument) {
183
+ var _a;
184
+ const vms = (_a = didDocument.verificationMethod) !== null && _a !== void 0 ? _a : [];
185
+ const preferred = vms.find(vm => vm.type === 'Ed25519VerificationKey2020');
186
+ if (preferred)
187
+ return preferred.id;
188
+ const fallback = vms.find(vm => vm.type === 'Ed25519VerificationKey2018' ||
189
+ (vm.type === 'Multikey' &&
190
+ typeof vm.publicKeyMultibase === 'string' &&
191
+ vm.publicKeyMultibase.startsWith('z6Mk')));
192
+ return fallback === null || fallback === void 0 ? void 0 : fallback.id;
193
+ }
194
+ getDidCommServices(publicDid, ed25519VerificationMethodId) {
195
+ const didcommVersions = this.didcomm.config.didcommVersions;
196
+ const includeV1 = didcommVersions.includes('v1');
197
+ const includeV2 = didcommVersions.includes('v2');
198
+ const services = [];
199
+ this.didcomm.config.endpoints.forEach((endpoint, index) => {
200
+ if (includeV1) {
201
+ services.push(new core_1.DidCommV1Service({
202
+ id: `${publicDid}#did-communication`,
203
+ serviceEndpoint: endpoint,
204
+ priority: index,
205
+ routingKeys: [], // TODO: Support mediation
206
+ recipientKeys: [ed25519VerificationMethodId],
207
+ accept: ['didcomm/aip2;env=rfc19'],
208
+ }));
209
+ }
210
+ if (includeV2) {
211
+ services.push(new core_1.NewDidCommV2Service({
212
+ id: `${publicDid}#didcomm-messaging-${index}`,
213
+ serviceEndpoint: new core_1.NewDidCommV2ServiceEndpoint({
214
+ uri: endpoint,
215
+ accept: ['didcomm/v2'],
216
+ }),
217
+ }));
218
+ }
146
219
  });
220
+ return services;
221
+ }
222
+ async persistDidDocumentKey(did, key) {
223
+ var _a;
224
+ const didRepository = this.agentContext.resolve(core_1.DidRepository);
225
+ const [record] = await didRepository.findByQuery(this.agentContext, { did });
226
+ if (!record)
227
+ return;
228
+ const existing = (_a = record.keys) !== null && _a !== void 0 ? _a : [];
229
+ if (existing.some(k => k.didDocumentRelativeKeyId === key.didDocumentRelativeKeyId))
230
+ return;
231
+ record.keys = [...existing, key];
232
+ await didRepository.update(this.agentContext, record);
147
233
  }
148
234
  async createAndAddDidCommKeysAndServices(didDocument) {
149
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
235
+ var _a, _b, _c, _d, _e;
150
236
  const publicDid = didDocument.id;
151
237
  const context = [
152
238
  'https://w3id.org/security/multikey/v1',
@@ -155,28 +241,25 @@ class VsAgent extends core_1.Agent {
155
241
  ];
156
242
  const keyAgreementId = `${publicDid}#key-agreement-1`;
157
243
  const kms = this.agentContext.resolve(core_1.Kms.KeyManagementApi);
158
- const didRepository = this.agentContext.resolve(core_1.DidRepository);
159
244
  // Create didcomm keys
160
245
  const key = await kms.createKey({ type: { kty: 'OKP', crv: 'Ed25519' } });
161
246
  const publicKeyBytes = core_1.Kms.PublicJwk.fromPublicJwk(key.publicJwk).publicKey.publicKey;
162
247
  const publicKeyMultibase = (0, didwebvh_ts_1.multibaseEncode)(new Uint8Array([0xed, 0x01, ...publicKeyBytes]), didwebvh_ts_1.MultibaseEncoding.BASE58_BTC);
163
- const [record] = await didRepository.findByQuery(this.agentContext, { did: publicDid });
164
- (_a = record.keys) === null || _a === void 0 ? void 0 : _a.push({
248
+ const didDocumentKey = {
165
249
  kmsKeyId: key.keyId,
166
250
  didDocumentRelativeKeyId: `#${publicKeyMultibase}`,
167
- });
168
- await didRepository.update(this.agentContext, record);
251
+ };
169
252
  const verificationMethodId = `${publicDid}#${publicKeyMultibase}`;
170
253
  const publicKeyX25519 = (0, core_1.convertPublicKeyToX25519)(publicKeyBytes);
171
254
  const x25519Key = core_1.Kms.PublicJwk.fromPublicKey({ kty: 'OKP', crv: 'X25519', publicKey: publicKeyX25519 });
172
255
  // Remove legacy if exist
173
256
  const legacyContexts = ['https://w3id.org/security/suites/ed25519-2018/v1'];
174
- const legacyAuthId = (_c = ((_b = didDocument.verificationMethod) !== null && _b !== void 0 ? _b : []).find(vm => ['Ed25519VerificationKey2018'].includes(vm.type))) === null || _c === void 0 ? void 0 : _c.id;
257
+ const legacyAuthId = (_b = ((_a = didDocument.verificationMethod) !== null && _a !== void 0 ? _a : []).find(vm => ['Ed25519VerificationKey2018'].includes(vm.type))) === null || _b === void 0 ? void 0 : _b.id;
175
258
  if (legacyAuthId) {
176
- didDocument.authentication = ((_d = didDocument.authentication) !== null && _d !== void 0 ? _d : []).filter(id => id !== legacyAuthId);
177
- didDocument.assertionMethod = ((_e = didDocument.assertionMethod) !== null && _e !== void 0 ? _e : []).filter(id => id !== legacyAuthId);
259
+ didDocument.authentication = ((_c = didDocument.authentication) !== null && _c !== void 0 ? _c : []).filter(id => id !== legacyAuthId);
260
+ didDocument.assertionMethod = ((_d = didDocument.assertionMethod) !== null && _d !== void 0 ? _d : []).filter(id => id !== legacyAuthId);
178
261
  }
179
- const filteredMethods = ((_f = didDocument.verificationMethod) !== null && _f !== void 0 ? _f : []).filter(vm => !['Ed25519VerificationKey2018', 'X25519KeyAgreementKey2019'].includes(vm.type));
262
+ const filteredMethods = ((_e = didDocument.verificationMethod) !== null && _e !== void 0 ? _e : []).filter(vm => !['Ed25519VerificationKey2018', 'X25519KeyAgreementKey2019'].includes(vm.type));
180
263
  const verificationMethods = [
181
264
  {
182
265
  controller: publicDid,
@@ -194,7 +277,7 @@ class VsAgent extends core_1.Agent {
194
277
  const authentication = verificationMethodId;
195
278
  const assertionMethod = verificationMethodId;
196
279
  const keyAgreement = keyAgreementId;
197
- const didcommServices = this.getDidCommServices(publicDid);
280
+ const didcommServices = this.getDidCommServices(publicDid, verificationMethodId);
198
281
  const currentContexts = Array.isArray(didDocument.context)
199
282
  ? didDocument.context
200
283
  : didDocument.context
@@ -204,15 +287,18 @@ class VsAgent extends core_1.Agent {
204
287
  ...new Set([...currentContexts.filter(ctx => !legacyContexts.includes(ctx)), ...context]),
205
288
  ];
206
289
  didDocument.verificationMethod = [...filteredMethods, ...verificationMethods];
207
- didDocument.authentication = [...new Set([...((_g = didDocument.authentication) !== null && _g !== void 0 ? _g : []), authentication])];
208
- didDocument.assertionMethod = [...new Set([...((_h = didDocument.assertionMethod) !== null && _h !== void 0 ? _h : []), assertionMethod])];
209
- didDocument.keyAgreement = [...new Set([...((_j = didDocument.keyAgreement) !== null && _j !== void 0 ? _j : []), keyAgreement])];
290
+ // Replace (not merge): keeps did:webvh's update key out of DIDComm relations.
291
+ // Same pattern as didcomm-mediator/src/agent/DidCommMediatorAgent.ts.
292
+ didDocument.authentication = [authentication];
293
+ didDocument.assertionMethod = [assertionMethod];
294
+ didDocument.keyAgreement = [keyAgreement];
210
295
  didDocument.service = [
211
296
  ...(didDocument.service
212
- ? didDocument.service.filter(service => ![core_1.DidCommV1Service.type].includes(service.type))
297
+ ? didDocument.service.filter(service => !MANAGED_DIDCOMM_SERVICE_TYPES.includes(service.type))
213
298
  : []),
214
299
  ...didcommServices,
215
300
  ];
301
+ return didDocumentKey;
216
302
  }
217
303
  async createAndAddLinkedVpServices(didDocument) {
218
304
  var _a, _b;
@@ -1 +1 @@
1
- {"version":3,"file":"VsAgent.js","sourceRoot":"","sources":["../../src/agent/VsAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VsAgent.js","sourceRoot":"","sources":["../../src/agent/VsAgent.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
+ import type { DidCommFeatureQueryOptions } from '@credo-ts/didcomm';
1
2
  import { AskarModuleConfigStoreOptions } from '@credo-ts/askar';
2
3
  import { AgentDependencies, InitConfig, LogLevel } from '@credo-ts/core';
3
- import { VeranaChainService } from '../blockchain';
4
+ import { VeranaChainService } from '../blockchain/VeranaChainService';
4
5
  import { Plugin } from '../types';
5
6
  import { BaseAgentModules, VsAgent } from './VsAgent';
6
7
  type MergePluginModules<T extends Plugin[]> = T extends [infer First, ...infer Rest] ? First extends {
@@ -22,6 +23,7 @@ export interface CreateVsAgentOptions<T extends Plugin[]> {
22
23
  dependencies: AgentDependencies;
23
24
  logLevel?: LogLevel;
24
25
  veranaChain?: VeranaChainService;
26
+ discoveryOptions?: DidCommFeatureQueryOptions[];
25
27
  }
26
28
  /**
27
29
  * Creates a VsAgent from a set of composable plugins.
@@ -39,6 +39,7 @@ function createVsAgent(options) {
39
39
  displayPictureUrl: options.displayPictureUrl,
40
40
  label: options.label,
41
41
  veranaChain: options.veranaChain,
42
+ discoveryOptions: options.discoveryOptions,
42
43
  });
43
44
  }
44
45
  //# sourceMappingURL=createVsAgent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createVsAgent.js","sourceRoot":"","sources":["../../src/agent/createVsAgent.ts"],"names":[],"mappings":";;AA4DA,sCAsBC;AA5ED,uCAAqD;AA6BrD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAgB,aAAa,CAC3B,OAAgC;IAEhC,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAC1C,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,iCAAM,GAAG,GAAK,MAAM,CAAC,OAAO,EAAG,EAChD,EAA6B,CACV,CAAA;IAErB,OAAO,IAAI,iBAAO,CAAmB;QACnC,MAAM,kCACD,OAAO,CAAC,MAAM,KACjB,0BAA0B,EAAE,OAAO,CAAC,0BAA0B,GAC/D;QACD,OAAO,EAAE,aAAa;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;QACxD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"createVsAgent.js","sourceRoot":"","sources":["../../src/agent/createVsAgent.ts"],"names":[],"mappings":";;AA+DA,sCAuBC;AA9ED,uCAAqD;AA8BrD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAgB,aAAa,CAC3B,OAAgC;IAEhC,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAC1C,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,iCAAM,GAAG,GAAK,MAAM,CAAC,OAAO,EAAG,EAChD,EAA6B,CACV,CAAA;IAErB,OAAO,IAAI,iBAAO,CAAmB;QACnC,MAAM,kCACD,OAAO,CAAC,MAAM,KACjB,0BAA0B,EAAE,OAAO,CAAC,0BAA0B,GAC/D;QACD,OAAO,EAAE,aAAa;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;QACxD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;KAC3C,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { VsAgent } from '../agent/VsAgent';
2
+ import { IndexerHandlerRegistry } from './handlers/IndexerHandlerRegistry';
3
+ export interface IndexerWebSocketServiceOptions {
4
+ indexerUrl: string;
5
+ agent: VsAgent;
6
+ handlerRegistry?: IndexerHandlerRegistry;
7
+ }
8
+ export declare class IndexerWebSocketService {
9
+ private readonly options;
10
+ private ws;
11
+ private reconnectAttempt;
12
+ private stopped;
13
+ private syncing;
14
+ private IndexerEventRecords;
15
+ private readonly indexer;
16
+ private readonly handlerRegistry;
17
+ constructor(options: IndexerWebSocketServiceOptions);
18
+ start(): Promise<void>;
19
+ stop(): void;
20
+ private get logger();
21
+ /**
22
+ * Connects to the indexer WebSocket, performs an initial sync via REST (use /events endpoint because it returns historical events in a single request)
23
+ * Finally, processes pending events received during the initial sync.
24
+ */
25
+ private connect;
26
+ private openWebSocket;
27
+ private syncRest;
28
+ private drainIndexerEventRecords;
29
+ private processBlock;
30
+ /**
31
+ * TODO: Once the indexer emits consistent event_id for create events, we can remove this workaround
32
+ */
33
+ private resolveCreateActivity;
34
+ private fetchActivity;
35
+ private fetchEntity;
36
+ private applyChanges;
37
+ private scheduleReconnect;
38
+ private fetchInitialEvents;
39
+ }