@verana-labs/vs-agent-sdk 1.11.0-dev.8 → 1.11.0

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 (64) hide show
  1. package/README.md +172 -0
  2. package/build/agent/VsAgent.d.ts +8 -2
  3. package/build/agent/VsAgent.js +121 -41
  4. package/build/agent/VsAgent.js.map +1 -1
  5. package/build/agent/createVsAgent.d.ts +2 -0
  6. package/build/agent/createVsAgent.js +1 -0
  7. package/build/agent/createVsAgent.js.map +1 -1
  8. package/build/agent/index.d.ts +2 -0
  9. package/build/agent/index.js +19 -0
  10. package/build/agent/index.js.map +1 -0
  11. package/build/blockchain/IndexerWebSocketService.d.ts +39 -0
  12. package/build/blockchain/IndexerWebSocketService.js +217 -0
  13. package/build/blockchain/IndexerWebSocketService.js.map +1 -0
  14. package/build/blockchain/VeranaChainService.d.ts +32 -0
  15. package/build/blockchain/VeranaChainService.js +124 -0
  16. package/build/blockchain/VeranaChainService.js.map +1 -0
  17. package/build/blockchain/VeranaHelpers.d.ts +4 -0
  18. package/build/blockchain/VeranaHelpers.js +29 -0
  19. package/build/blockchain/VeranaHelpers.js.map +1 -0
  20. package/build/blockchain/VeranaIndexerService.d.ts +11 -0
  21. package/build/blockchain/VeranaIndexerService.js +43 -0
  22. package/build/blockchain/VeranaIndexerService.js.map +1 -0
  23. package/build/blockchain/handlers/IndexerHandlerRegistry.d.ts +25 -0
  24. package/build/blockchain/handlers/IndexerHandlerRegistry.js +34 -0
  25. package/build/blockchain/handlers/IndexerHandlerRegistry.js.map +1 -0
  26. package/build/blockchain/handlers/defaultHandlers.d.ts +6 -0
  27. package/build/blockchain/handlers/defaultHandlers.js +126 -0
  28. package/build/blockchain/handlers/defaultHandlers.js.map +1 -0
  29. package/build/blockchain/handlers/index.d.ts +3 -0
  30. package/build/blockchain/handlers/index.js +20 -0
  31. package/build/blockchain/handlers/index.js.map +1 -0
  32. package/build/blockchain/handlers/stateMutations.d.ts +12 -0
  33. package/build/blockchain/handlers/stateMutations.js +113 -0
  34. package/build/blockchain/handlers/stateMutations.js.map +1 -0
  35. package/build/blockchain/index.d.ts +6 -0
  36. package/build/blockchain/index.js +23 -0
  37. package/build/blockchain/index.js.map +1 -0
  38. package/build/blockchain/types.d.ts +158 -0
  39. package/build/blockchain/types.js +6 -0
  40. package/build/blockchain/types.js.map +1 -0
  41. package/build/did/WebDidRegistrar.d.ts +3 -1
  42. package/build/did/WebDidRegistrar.js +10 -1
  43. package/build/did/WebDidRegistrar.js.map +1 -1
  44. package/build/did/migrateWebVhLog.d.ts +34 -0
  45. package/build/did/migrateWebVhLog.js +230 -0
  46. package/build/did/migrateWebVhLog.js.map +1 -0
  47. package/build/index.d.ts +4 -5
  48. package/build/index.js +5 -5
  49. package/build/index.js.map +1 -1
  50. package/build/plugins/setupBaseDidComm.d.ts +2 -0
  51. package/build/plugins/setupBaseDidComm.js +9 -1
  52. package/build/plugins/setupBaseDidComm.js.map +1 -1
  53. package/build/transports/VsAgentWsInboundTransport.js +1 -1
  54. package/build/transports/VsAgentWsInboundTransport.js.map +1 -1
  55. package/build/utils/agent.d.ts +2 -1
  56. package/build/utils/agent.js +16 -10
  57. package/build/utils/agent.js.map +1 -1
  58. package/build/utils/setupSelfTr.d.ts +115 -0
  59. package/build/utils/setupSelfTr.js +452 -0
  60. package/build/utils/setupSelfTr.js.map +1 -0
  61. package/build/utils/trustCredentialStore.d.ts +18 -0
  62. package/build/utils/trustCredentialStore.js +196 -0
  63. package/build/utils/trustCredentialStore.js.map +1 -0
  64. package/package.json +18 -11
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,12 +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';
4
+ import { DidCommCredentialsModuleConfigOptions, DidCommCredentialV2Protocol, DidCommJsonLdCredentialFormatService, DidCommModule, DidCommModuleConfigOptions, DidCommProofsModuleConfigOptions, DidCommProofV2Protocol } from '@credo-ts/didcomm';
5
+ import { VeranaChainService } from '../blockchain/VeranaChainService';
5
6
  type VsAgentDidCommModule = DidCommModule<DidCommModuleConfigOptions & {
6
7
  credentials: DidCommCredentialsModuleConfigOptions<[
7
8
  DidCommCredentialV2Protocol<[
8
9
  LegacyIndyDidCommCredentialFormatService,
9
- AnonCredsDidCommCredentialFormatService
10
+ AnonCredsDidCommCredentialFormatService,
11
+ DidCommJsonLdCredentialFormatService
10
12
  ]>
11
13
  ]>;
12
14
  proofs: DidCommProofsModuleConfigOptions<[
@@ -31,17 +33,21 @@ export declare class VsAgent<TModules extends BaseAgentModules = BaseAgentModule
31
33
  publicApiBaseUrl: string;
32
34
  displayPictureUrl?: string;
33
35
  label: string;
36
+ veranaChain?: VeranaChainService;
34
37
  constructor(options: AgentOptions<TModules> & {
35
38
  did?: string;
36
39
  autoDiscloseUserProfile?: boolean;
37
40
  publicApiBaseUrl: string;
38
41
  displayPictureUrl?: string;
39
42
  label: string;
43
+ veranaChain?: VeranaChainService;
40
44
  });
41
45
  private get hasUserProfile();
42
46
  initialize(): Promise<void>;
43
47
  private findCreatedDid;
48
+ private findEd25519VerificationMethodId;
44
49
  private getDidCommServices;
50
+ private persistDidDocumentKey;
45
51
  private createAndAddDidCommKeysAndServices;
46
52
  private createAndAddLinkedVpServices;
47
53
  /**
@@ -3,6 +3,8 @@ 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 MANAGED_DIDCOMM_SERVICE_TYPES = [core_1.DidCommV1Service.type, core_1.NewDidCommV2Service.type];
6
8
  class VsAgent extends core_1.Agent {
7
9
  constructor(options) {
8
10
  super(options);
@@ -11,12 +13,13 @@ class VsAgent extends core_1.Agent {
11
13
  this.publicApiBaseUrl = options.publicApiBaseUrl;
12
14
  this.displayPictureUrl = options.displayPictureUrl;
13
15
  this.label = options.label;
16
+ this.veranaChain = options.veranaChain;
14
17
  }
15
18
  get hasUserProfile() {
16
19
  return 'userProfile' in this.modules;
17
20
  }
18
21
  async initialize() {
19
- var _a, _b, _c, _d, _e, _f;
22
+ var _a, _b, _c, _d, _e, _f, _g;
20
23
  await super.initialize();
21
24
  if (this.hasUserProfile) {
22
25
  // Make sure default User Profile corresponds to settings in environment variables
@@ -26,7 +29,7 @@ class VsAgent extends core_1.Agent {
26
29
  await this.modules.userProfile.updateUserProfileData({
27
30
  displayName: this.label,
28
31
  displayPicture,
29
- });
32
+ }); // TODO: Move this logic to the ChatPlugin
30
33
  }
31
34
  const parsedDid = this.did ? (0, core_1.parseDid)(this.did) : null;
32
35
  if (parsedDid) {
@@ -39,7 +42,7 @@ class VsAgent extends core_1.Agent {
39
42
  if (!existingRecord) {
40
43
  if (parsedDid.method === 'web') {
41
44
  const didDocument = new core_1.DidDocument({ id: parsedDid.did });
42
- await this.createAndAddDidCommKeysAndServices(didDocument);
45
+ const didCommKey = await this.createAndAddDidCommKeysAndServices(didDocument);
43
46
  // Add Self TR
44
47
  await this.createAndAddLinkedVpServices(didDocument);
45
48
  // Add AnonCreds Services
@@ -48,6 +51,7 @@ class VsAgent extends core_1.Agent {
48
51
  method: 'web',
49
52
  domain,
50
53
  didDocument,
54
+ keys: [didCommKey],
51
55
  });
52
56
  this.did = parsedDid.did;
53
57
  }
@@ -68,12 +72,15 @@ class VsAgent extends core_1.Agent {
68
72
  process.exit(1);
69
73
  }
70
74
  // Add DIDComm services and keys
71
- await this.createAndAddDidCommKeysAndServices(didDocument);
75
+ const didCommKey = await this.createAndAddDidCommKeysAndServices(didDocument);
72
76
  // Add Linked VP services
73
77
  await this.createAndAddLinkedVpServices(didDocument);
74
78
  // Add implicit services
75
79
  await this.createAndAddWebVhImplicitServices(didDocument);
76
80
  didDocument.alsoKnownAs = [`did:web:${domain}`];
81
+ // The webvh registrar doesn't merge new keys into the DidRecord on update,
82
+ // so persist the DIDComm key mapping directly on the existing record.
83
+ await this.persistDidDocumentKey(publicDid, didCommKey);
77
84
  const result = await this.dids.update({ did: publicDid, didDocument });
78
85
  if (result.didState.state !== 'finished') {
79
86
  this.logger.error(`Cannot update DID ${publicDid}`);
@@ -87,6 +94,20 @@ class VsAgent extends core_1.Agent {
87
94
  }
88
95
  return;
89
96
  }
97
+ // If this is a did:webvh record, ensure the stored log is resolvable under the
98
+ // current didwebvh-ts version. Logs created with didwebvh-ts <2.7.4 used the
99
+ // SCID placeholder when computing the entry hash for entries beyond #1, which
100
+ // newer resolvers (correctly) reject as a broken hash chain. We rebuild the
101
+ // log in-place, preserving entry #1 (and therefore the SCID and the public DID).
102
+ if (parsedDid.method === 'webvh') {
103
+ try {
104
+ await (0, migrateWebVhLog_1.migrateWebVhLogIfBroken)(this.agentContext, existingRecord, this.logger);
105
+ }
106
+ catch (error) {
107
+ this.logger.error(`Failed to migrate webvh DID log for ${existingRecord.did}: ${error instanceof Error ? error.message : String(error)}`);
108
+ throw error;
109
+ }
110
+ }
90
111
  // Make sure did:webvh record has the did:web form as an alternative, in order to support
91
112
  // implicit invitations
92
113
  if (parsedDid.method === 'webvh' &&
@@ -100,24 +121,43 @@ class VsAgent extends core_1.Agent {
100
121
  // DIDComm endpoints, so we'll only replace the service (if different from previous)
101
122
  const didDocument = existingRecord.didDocument;
102
123
  const hasLegacyMethods = ((_d = didDocument.verificationMethod) !== null && _d !== void 0 ? _d : []).some(vm => ['Ed25519VerificationKey2018', 'X25519KeyAgreementKey2019'].includes(vm.type));
103
- const servicesChanged = JSON.stringify(didDocument.didCommServices) !==
104
- JSON.stringify(this.getDidCommServices(didDocument.id));
105
- if (hasLegacyMethods || servicesChanged) {
106
- if (servicesChanged) {
124
+ const ed25519VerificationMethodId = this.findEd25519VerificationMethodId(didDocument);
125
+ const servicesChanged = !ed25519VerificationMethodId ||
126
+ JSON.stringify(didDocument.didCommServices) !==
127
+ JSON.stringify(this.getDidCommServices(didDocument.id, ed25519VerificationMethodId));
128
+ // One-shot migration for did:webvh records published before authentication-replace
129
+ // landed, which still carry the didwebvh-ts update key in authentication.
130
+ const authHasUpdateKey = parsedDid.method === 'webvh' &&
131
+ !!ed25519VerificationMethodId &&
132
+ ((_e = didDocument.authentication) !== null && _e !== void 0 ? _e : []).some(a => {
133
+ const id = typeof a === 'string' ? a : a.id;
134
+ return id !== ed25519VerificationMethodId;
135
+ });
136
+ if (hasLegacyMethods || servicesChanged || authHasUpdateKey) {
137
+ if (servicesChanged && ed25519VerificationMethodId) {
107
138
  didDocument.service = [
108
139
  ...(didDocument.service
109
- ? didDocument.service.filter(service => ![core_1.DidCommV1Service.type].includes(service.type))
140
+ ? didDocument.service.filter(service => !MANAGED_DIDCOMM_SERVICE_TYPES.includes(service.type))
110
141
  : []),
111
- ...this.getDidCommServices(didDocument.id),
142
+ ...this.getDidCommServices(didDocument.id, ed25519VerificationMethodId),
112
143
  ];
113
144
  }
114
- if (hasLegacyMethods)
115
- await this.createAndAddDidCommKeysAndServices(didDocument);
116
- await this.dids.update({ did: didDocument.id, didDocument });
117
- (_e = this.logger) === null || _e === void 0 ? void 0 : _e.debug('Public did record updated');
145
+ const newKeys = [];
146
+ if (hasLegacyMethods) {
147
+ newKeys.push(await this.createAndAddDidCommKeysAndServices(didDocument));
148
+ }
149
+ if (authHasUpdateKey)
150
+ didDocument.authentication = [ed25519VerificationMethodId];
151
+ if (newKeys.length && parsedDid.method === 'webvh') {
152
+ // webvh registrar doesn't accept keys in update options; persist directly
153
+ for (const key of newKeys)
154
+ await this.persistDidDocumentKey(didDocument.id, key);
155
+ }
156
+ await this.dids.update(Object.assign({ did: didDocument.id, didDocument }, (newKeys.length && parsedDid.method === 'web' ? { keys: newKeys } : {})));
157
+ (_f = this.logger) === null || _f === void 0 ? void 0 : _f.debug('Public did record updated');
118
158
  }
119
159
  else {
120
- (_f = this.logger) === null || _f === void 0 ? void 0 : _f.debug('Existing DID record found. No updates');
160
+ (_g = this.logger) === null || _g === void 0 ? void 0 : _g.debug('Existing DID record found. No updates');
121
161
  }
122
162
  this.did = existingRecord.did;
123
163
  }
@@ -131,21 +171,61 @@ class VsAgent extends core_1.Agent {
131
171
  }
132
172
  return await didRepository.findCreatedDid(this.context, parsedDid.did);
133
173
  }
134
- getDidCommServices(publicDid) {
135
- const keyAgreementId = `${publicDid}#key-agreement-1`;
136
- return this.didcomm.config.endpoints.map((endpoint, index) => {
137
- return new core_1.DidCommV1Service({
138
- id: `${publicDid}#did-communication`,
139
- serviceEndpoint: endpoint,
140
- priority: index,
141
- routingKeys: [], // TODO: Support mediation
142
- recipientKeys: [keyAgreementId],
143
- accept: ['didcomm/aip2;env=rfc19'],
144
- });
174
+ // Prefer Ed25519VerificationKey2020 over Multikey: webvh's update Multikey is not ours to use.
175
+ findEd25519VerificationMethodId(didDocument) {
176
+ var _a;
177
+ const vms = (_a = didDocument.verificationMethod) !== null && _a !== void 0 ? _a : [];
178
+ const preferred = vms.find(vm => vm.type === 'Ed25519VerificationKey2020');
179
+ if (preferred)
180
+ return preferred.id;
181
+ const fallback = vms.find(vm => vm.type === 'Ed25519VerificationKey2018' ||
182
+ (vm.type === 'Multikey' &&
183
+ typeof vm.publicKeyMultibase === 'string' &&
184
+ vm.publicKeyMultibase.startsWith('z6Mk')));
185
+ return fallback === null || fallback === void 0 ? void 0 : fallback.id;
186
+ }
187
+ getDidCommServices(publicDid, ed25519VerificationMethodId) {
188
+ const didcommVersions = this.didcomm.config.didcommVersions;
189
+ const includeV1 = didcommVersions.includes('v1');
190
+ const includeV2 = didcommVersions.includes('v2');
191
+ const services = [];
192
+ this.didcomm.config.endpoints.forEach((endpoint, index) => {
193
+ if (includeV1) {
194
+ services.push(new core_1.DidCommV1Service({
195
+ id: `${publicDid}#did-communication`,
196
+ serviceEndpoint: endpoint,
197
+ priority: index,
198
+ routingKeys: [], // TODO: Support mediation
199
+ recipientKeys: [ed25519VerificationMethodId],
200
+ accept: ['didcomm/aip2;env=rfc19'],
201
+ }));
202
+ }
203
+ if (includeV2) {
204
+ services.push(new core_1.NewDidCommV2Service({
205
+ id: `${publicDid}#didcomm-messaging-${index}`,
206
+ serviceEndpoint: new core_1.NewDidCommV2ServiceEndpoint({
207
+ uri: endpoint,
208
+ accept: ['didcomm/v2'],
209
+ }),
210
+ }));
211
+ }
145
212
  });
213
+ return services;
214
+ }
215
+ async persistDidDocumentKey(did, key) {
216
+ var _a;
217
+ const didRepository = this.agentContext.resolve(core_1.DidRepository);
218
+ const [record] = await didRepository.findByQuery(this.agentContext, { did });
219
+ if (!record)
220
+ return;
221
+ const existing = (_a = record.keys) !== null && _a !== void 0 ? _a : [];
222
+ if (existing.some(k => k.didDocumentRelativeKeyId === key.didDocumentRelativeKeyId))
223
+ return;
224
+ record.keys = [...existing, key];
225
+ await didRepository.update(this.agentContext, record);
146
226
  }
147
227
  async createAndAddDidCommKeysAndServices(didDocument) {
148
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
228
+ var _a, _b, _c, _d, _e;
149
229
  const publicDid = didDocument.id;
150
230
  const context = [
151
231
  'https://w3id.org/security/multikey/v1',
@@ -154,28 +234,25 @@ class VsAgent extends core_1.Agent {
154
234
  ];
155
235
  const keyAgreementId = `${publicDid}#key-agreement-1`;
156
236
  const kms = this.agentContext.resolve(core_1.Kms.KeyManagementApi);
157
- const didRepository = this.agentContext.resolve(core_1.DidRepository);
158
237
  // Create didcomm keys
159
238
  const key = await kms.createKey({ type: { kty: 'OKP', crv: 'Ed25519' } });
160
239
  const publicKeyBytes = core_1.Kms.PublicJwk.fromPublicJwk(key.publicJwk).publicKey.publicKey;
161
240
  const publicKeyMultibase = (0, didwebvh_ts_1.multibaseEncode)(new Uint8Array([0xed, 0x01, ...publicKeyBytes]), didwebvh_ts_1.MultibaseEncoding.BASE58_BTC);
162
- const [record] = await didRepository.findByQuery(this.agentContext, { did: publicDid });
163
- (_a = record.keys) === null || _a === void 0 ? void 0 : _a.push({
241
+ const didDocumentKey = {
164
242
  kmsKeyId: key.keyId,
165
243
  didDocumentRelativeKeyId: `#${publicKeyMultibase}`,
166
- });
167
- await didRepository.update(this.agentContext, record);
244
+ };
168
245
  const verificationMethodId = `${publicDid}#${publicKeyMultibase}`;
169
246
  const publicKeyX25519 = (0, core_1.convertPublicKeyToX25519)(publicKeyBytes);
170
247
  const x25519Key = core_1.Kms.PublicJwk.fromPublicKey({ kty: 'OKP', crv: 'X25519', publicKey: publicKeyX25519 });
171
248
  // Remove legacy if exist
172
249
  const legacyContexts = ['https://w3id.org/security/suites/ed25519-2018/v1'];
173
- 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;
250
+ 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;
174
251
  if (legacyAuthId) {
175
- didDocument.authentication = ((_d = didDocument.authentication) !== null && _d !== void 0 ? _d : []).filter(id => id !== legacyAuthId);
176
- didDocument.assertionMethod = ((_e = didDocument.assertionMethod) !== null && _e !== void 0 ? _e : []).filter(id => id !== legacyAuthId);
252
+ didDocument.authentication = ((_c = didDocument.authentication) !== null && _c !== void 0 ? _c : []).filter(id => id !== legacyAuthId);
253
+ didDocument.assertionMethod = ((_d = didDocument.assertionMethod) !== null && _d !== void 0 ? _d : []).filter(id => id !== legacyAuthId);
177
254
  }
178
- const filteredMethods = ((_f = didDocument.verificationMethod) !== null && _f !== void 0 ? _f : []).filter(vm => !['Ed25519VerificationKey2018', 'X25519KeyAgreementKey2019'].includes(vm.type));
255
+ const filteredMethods = ((_e = didDocument.verificationMethod) !== null && _e !== void 0 ? _e : []).filter(vm => !['Ed25519VerificationKey2018', 'X25519KeyAgreementKey2019'].includes(vm.type));
179
256
  const verificationMethods = [
180
257
  {
181
258
  controller: publicDid,
@@ -193,7 +270,7 @@ class VsAgent extends core_1.Agent {
193
270
  const authentication = verificationMethodId;
194
271
  const assertionMethod = verificationMethodId;
195
272
  const keyAgreement = keyAgreementId;
196
- const didcommServices = this.getDidCommServices(publicDid);
273
+ const didcommServices = this.getDidCommServices(publicDid, verificationMethodId);
197
274
  const currentContexts = Array.isArray(didDocument.context)
198
275
  ? didDocument.context
199
276
  : didDocument.context
@@ -203,15 +280,18 @@ class VsAgent extends core_1.Agent {
203
280
  ...new Set([...currentContexts.filter(ctx => !legacyContexts.includes(ctx)), ...context]),
204
281
  ];
205
282
  didDocument.verificationMethod = [...filteredMethods, ...verificationMethods];
206
- didDocument.authentication = [...new Set([...((_g = didDocument.authentication) !== null && _g !== void 0 ? _g : []), authentication])];
207
- didDocument.assertionMethod = [...new Set([...((_h = didDocument.assertionMethod) !== null && _h !== void 0 ? _h : []), assertionMethod])];
208
- didDocument.keyAgreement = [...new Set([...((_j = didDocument.keyAgreement) !== null && _j !== void 0 ? _j : []), keyAgreement])];
283
+ // Replace (not merge): keeps did:webvh's update key out of DIDComm relations.
284
+ // Same pattern as didcomm-mediator/src/agent/DidCommMediatorAgent.ts.
285
+ didDocument.authentication = [authentication];
286
+ didDocument.assertionMethod = [assertionMethod];
287
+ didDocument.keyAgreement = [keyAgreement];
209
288
  didDocument.service = [
210
289
  ...(didDocument.service
211
- ? didDocument.service.filter(service => ![core_1.DidCommV1Service.type].includes(service.type))
290
+ ? didDocument.service.filter(service => !MANAGED_DIDCOMM_SERVICE_TYPES.includes(service.type))
212
291
  : []),
213
292
  ...didcommServices,
214
293
  ];
294
+ return didDocumentKey;
215
295
  }
216
296
  async createAndAddLinkedVpServices(didDocument) {
217
297
  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,5 +1,6 @@
1
1
  import { AskarModuleConfigStoreOptions } from '@credo-ts/askar';
2
2
  import { AgentDependencies, InitConfig, LogLevel } from '@credo-ts/core';
3
+ import { VeranaChainService } from '../blockchain/VeranaChainService';
3
4
  import { Plugin } from '../types';
4
5
  import { BaseAgentModules, VsAgent } from './VsAgent';
5
6
  type MergePluginModules<T extends Plugin[]> = T extends [infer First, ...infer Rest] ? First extends {
@@ -20,6 +21,7 @@ export interface CreateVsAgentOptions<T extends Plugin[]> {
20
21
  autoUpdateStorageOnStartup?: boolean;
21
22
  dependencies: AgentDependencies;
22
23
  logLevel?: LogLevel;
24
+ veranaChain?: VeranaChainService;
23
25
  }
24
26
  /**
25
27
  * Creates a VsAgent from a set of composable plugins.
@@ -38,6 +38,7 @@ function createVsAgent(options) {
38
38
  publicApiBaseUrl: options.publicApiBaseUrl,
39
39
  displayPictureUrl: options.displayPictureUrl,
40
40
  label: options.label,
41
+ veranaChain: options.veranaChain,
41
42
  });
42
43
  }
43
44
  //# sourceMappingURL=createVsAgent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createVsAgent.js","sourceRoot":"","sources":["../../src/agent/createVsAgent.ts"],"names":[],"mappings":";;AA0DA,sCAqBC;AA1ED,uCAAqD;AA4BrD;;;;;;;;;;;;;;;;;;;;;;;;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;KACrB,CAAC,CAAA;AACJ,CAAC"}
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"}
@@ -0,0 +1,2 @@
1
+ export * from './VsAgent';
2
+ export * from './createVsAgent';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./VsAgent"), exports);
18
+ __exportStar(require("./createVsAgent"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,kDAA+B"}
@@ -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
+ }