@zcloak/ai-agent 1.0.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 (80) hide show
  1. package/README.md +5 -0
  2. package/dist/bind.d.ts +22 -0
  3. package/dist/bind.js +145 -0
  4. package/dist/bind.js.map +1 -0
  5. package/dist/cli.d.ts +31 -0
  6. package/dist/cli.js +126 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/config.d.ts +14 -0
  9. package/dist/config.js +34 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/crypto.d.ts +113 -0
  12. package/dist/crypto.js +252 -0
  13. package/dist/crypto.js.map +1 -0
  14. package/dist/daemon.d.ts +94 -0
  15. package/dist/daemon.js +271 -0
  16. package/dist/daemon.js.map +1 -0
  17. package/dist/delete.d.ts +22 -0
  18. package/dist/delete.js +231 -0
  19. package/dist/delete.js.map +1 -0
  20. package/dist/doc.d.ts +23 -0
  21. package/dist/doc.js +180 -0
  22. package/dist/doc.js.map +1 -0
  23. package/dist/error.d.ts +45 -0
  24. package/dist/error.js +79 -0
  25. package/dist/error.js.map +1 -0
  26. package/dist/feed.d.ts +20 -0
  27. package/dist/feed.js +83 -0
  28. package/dist/feed.js.map +1 -0
  29. package/dist/identity.d.ts +50 -0
  30. package/dist/identity.js +99 -0
  31. package/dist/identity.js.map +1 -0
  32. package/dist/identity_cmd.d.ts +23 -0
  33. package/dist/identity_cmd.js +136 -0
  34. package/dist/identity_cmd.js.map +1 -0
  35. package/dist/idl.d.ts +99 -0
  36. package/dist/idl.js +213 -0
  37. package/dist/idl.js.map +1 -0
  38. package/dist/key-store.d.ts +88 -0
  39. package/dist/key-store.js +171 -0
  40. package/dist/key-store.js.map +1 -0
  41. package/dist/pow.d.ts +24 -0
  42. package/dist/pow.js +86 -0
  43. package/dist/pow.js.map +1 -0
  44. package/dist/register.d.ts +24 -0
  45. package/dist/register.js +191 -0
  46. package/dist/register.js.map +1 -0
  47. package/dist/rpc.d.ts +107 -0
  48. package/dist/rpc.js +60 -0
  49. package/dist/rpc.js.map +1 -0
  50. package/dist/serve.d.ts +55 -0
  51. package/dist/serve.js +455 -0
  52. package/dist/serve.js.map +1 -0
  53. package/dist/session.d.ts +104 -0
  54. package/dist/session.js +189 -0
  55. package/dist/session.js.map +1 -0
  56. package/dist/sign.d.ts +33 -0
  57. package/dist/sign.js +355 -0
  58. package/dist/sign.js.map +1 -0
  59. package/dist/types/common.d.ts +63 -0
  60. package/dist/types/common.js +8 -0
  61. package/dist/types/common.js.map +1 -0
  62. package/dist/types/config.d.ts +28 -0
  63. package/dist/types/config.js +8 -0
  64. package/dist/types/config.js.map +1 -0
  65. package/dist/types/registry.d.ts +72 -0
  66. package/dist/types/registry.js +13 -0
  67. package/dist/types/registry.js.map +1 -0
  68. package/dist/types/sign-event.d.ts +134 -0
  69. package/dist/types/sign-event.js +13 -0
  70. package/dist/types/sign-event.js.map +1 -0
  71. package/dist/utils.d.ts +113 -0
  72. package/dist/utils.js +382 -0
  73. package/dist/utils.js.map +1 -0
  74. package/dist/verify.d.ts +23 -0
  75. package/dist/verify.js +207 -0
  76. package/dist/verify.js.map +1 -0
  77. package/dist/vetkey.d.ts +27 -0
  78. package/dist/vetkey.js +507 -0
  79. package/dist/vetkey.js.map +1 -0
  80. package/package.json +55 -0
package/dist/vetkey.js ADDED
@@ -0,0 +1,507 @@
1
+ "use strict";
2
+ /**
3
+ * VetKey CLI Module — VetKey IBE encryption/decryption and daemon management
4
+ *
5
+ * Provides two encryption modes:
6
+ * 1. IBE mode: Per-operation Identity-Based Encryption for Kind5 PrivatePost
7
+ * 2. Daemon mode: Long-running AES-256-GCM daemon for fast file encryption
8
+ *
9
+ * Sub-commands:
10
+ * encrypt-sign Encrypt + sign Kind5 PrivatePost in one step
11
+ * decrypt Decrypt Kind5 PrivatePost by event ID
12
+ * encrypt-only Encrypt locally without canister sign
13
+ * pubkey Get IBE public key from canister
14
+ * serve Start daemon (UDS or stdio mode)
15
+ * stop Stop a running daemon
16
+ * status Query daemon status
17
+ *
18
+ * Usage: zcloak-ai vetkey <sub-command> [options]
19
+ */
20
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ var desc = Object.getOwnPropertyDescriptor(m, k);
23
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
24
+ desc = { enumerable: true, get: function() { return m[k]; } };
25
+ }
26
+ Object.defineProperty(o, k2, desc);
27
+ }) : (function(o, m, k, k2) {
28
+ if (k2 === undefined) k2 = k;
29
+ o[k2] = m[k];
30
+ }));
31
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
32
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
33
+ }) : function(o, v) {
34
+ o["default"] = v;
35
+ });
36
+ var __importStar = (this && this.__importStar) || (function () {
37
+ var ownKeys = function(o) {
38
+ ownKeys = Object.getOwnPropertyNames || function (o) {
39
+ var ar = [];
40
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
41
+ return ar;
42
+ };
43
+ return ownKeys(o);
44
+ };
45
+ return function (mod) {
46
+ if (mod && mod.__esModule) return mod;
47
+ var result = {};
48
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
49
+ __setModuleDefault(result, mod);
50
+ return result;
51
+ };
52
+ })();
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ exports.run = run;
55
+ const fs_1 = require("fs");
56
+ const net_1 = require("net");
57
+ const readline_1 = require("readline");
58
+ const cryptoOps = __importStar(require("./crypto"));
59
+ const key_store_1 = require("./key-store");
60
+ const serve_1 = require("./serve");
61
+ const daemon_1 = require("./daemon");
62
+ const error_1 = require("./error");
63
+ // ============================================================================
64
+ // Module Entry Point
65
+ // ============================================================================
66
+ /**
67
+ * Run the vetkey sub-command.
68
+ * Follows the same pattern as other CLI modules (sign.ts, verify.ts, etc.).
69
+ *
70
+ * @param session - CLI session with parsed args and canister access
71
+ */
72
+ async function run(session) {
73
+ const command = session.args._args[0];
74
+ switch (command) {
75
+ case 'encrypt-sign':
76
+ await cmdEncryptSign(session);
77
+ break;
78
+ case 'decrypt':
79
+ await cmdDecrypt(session);
80
+ break;
81
+ case 'encrypt-only':
82
+ await cmdEncryptOnly(session);
83
+ break;
84
+ case 'pubkey':
85
+ await cmdGetPubkey(session);
86
+ break;
87
+ case 'serve':
88
+ await cmdServe(session);
89
+ break;
90
+ case 'stop':
91
+ await cmdStop(session);
92
+ break;
93
+ case 'status':
94
+ await cmdStatus(session);
95
+ break;
96
+ default:
97
+ showHelp();
98
+ process.exit(command ? 1 : 0);
99
+ }
100
+ }
101
+ function showHelp() {
102
+ console.log('zCloak.ai VetKey Tool');
103
+ console.log('');
104
+ console.log('Usage: zcloak-ai vetkey <command> [options]');
105
+ console.log('');
106
+ console.log('IBE Commands (Kind5 PrivatePost):');
107
+ console.log(' encrypt-sign Encrypt content and sign as Kind5 PrivatePost');
108
+ console.log(' decrypt Decrypt Kind5 by event ID');
109
+ console.log(' encrypt-only Encrypt locally without canister sign');
110
+ console.log(' pubkey Get IBE public key from canister');
111
+ console.log('');
112
+ console.log('Daemon Commands (AES-256-GCM):');
113
+ console.log(' serve Start encryption daemon');
114
+ console.log(' stop Stop a running daemon');
115
+ console.log(' status Query daemon status');
116
+ console.log('');
117
+ console.log('Options:');
118
+ console.log(' --text=<content> Plaintext to encrypt');
119
+ console.log(' --file=<path> File to encrypt');
120
+ console.log(' --event-id=<id> Event ID for decryption');
121
+ console.log(' --output=<path> Output file path');
122
+ console.log(' --key-name=<name> Daemon key name (default: "default")');
123
+ console.log(' --stdio Use stdin/stdout mode for daemon');
124
+ console.log(' --public-key=<hex> IBE public key for offline encryption');
125
+ console.log(' --ibe-identity=<id> IBE identity for offline encryption');
126
+ console.log(' --tags=<json> Tags as JSON array');
127
+ console.log(' --json Output in JSON format');
128
+ }
129
+ // ============================================================================
130
+ // Command Implementations
131
+ // ============================================================================
132
+ /**
133
+ * encrypt-sign: Encrypt plaintext with IBE and sign as Kind5 in one step.
134
+ *
135
+ * Flow:
136
+ * 1. Get IBE public key from canister
137
+ * 2. Generate IBE identity string
138
+ * 3. IBE-encrypt the plaintext
139
+ * 4. Call canister sign(Kind5PrivatePost{...})
140
+ * 5. Output SignEvent result
141
+ */
142
+ async function cmdEncryptSign(session) {
143
+ const args = session.args;
144
+ const text = args['text'];
145
+ const file = args['file'];
146
+ const tagsJson = args['tags'];
147
+ const jsonOutput = !!args['json'];
148
+ const plaintext = readInput(text, file);
149
+ // Parse optional tags
150
+ let tags;
151
+ if (tagsJson) {
152
+ try {
153
+ tags = JSON.parse(tagsJson);
154
+ }
155
+ catch {
156
+ throw new Error("Invalid tags JSON (expected array of string arrays)");
157
+ }
158
+ }
159
+ const actor = await session.getSignActor();
160
+ const principal = session.getPrincipal();
161
+ // Step 1: Get IBE public key
162
+ let dpkBytes;
163
+ try {
164
+ const result = await actor.get_ibe_public_key();
165
+ dpkBytes = new Uint8Array(result);
166
+ }
167
+ catch (e) {
168
+ throw (0, error_1.canisterCallError)(`get_ibe_public_key failed: ${e instanceof Error ? e.message : String(e)}`, e);
169
+ }
170
+ // Step 2: Generate IBE identity
171
+ const ibeIdentity = cryptoOps.makeIbeIdentity(principal, plaintext);
172
+ // Step 3: IBE-encrypt
173
+ const ciphertext = cryptoOps.ibeEncrypt(dpkBytes, ibeIdentity, plaintext);
174
+ // Step 4: Sign and store on canister (direct sign, no PoW for Kind5)
175
+ let signEvent;
176
+ try {
177
+ signEvent = await actor.sign({
178
+ Kind5PrivatePost: {
179
+ encrypted_content: Array.from(ciphertext),
180
+ ibe_identity: ibeIdentity,
181
+ tags: tags ? [tags] : [],
182
+ },
183
+ });
184
+ }
185
+ catch (e) {
186
+ throw (0, error_1.canisterCallError)(`sign Kind5PrivatePost failed: ${e instanceof Error ? e.message : String(e)}`, e);
187
+ }
188
+ // Step 5: Output
189
+ if (jsonOutput) {
190
+ console.log(JSON.stringify({
191
+ event_id: signEvent.id,
192
+ ibe_identity: ibeIdentity,
193
+ kind: signEvent.kind,
194
+ content_hash: signEvent.content_hash,
195
+ created_at: signEvent.created_at.toString(),
196
+ principal,
197
+ }));
198
+ }
199
+ else {
200
+ console.log("Kind5 PrivatePost signed successfully!");
201
+ console.log(` Event ID: ${signEvent.id}`);
202
+ console.log(` IBE Identity: ${ibeIdentity}`);
203
+ console.log(` Content Hash: ${signEvent.content_hash}`);
204
+ console.log(` Principal: ${principal}`);
205
+ }
206
+ }
207
+ /**
208
+ * decrypt: Decrypt a Kind5 PrivatePost by event ID.
209
+ */
210
+ async function cmdDecrypt(session) {
211
+ const args = session.args;
212
+ const eventId = args['event-id'];
213
+ const output = args['output'];
214
+ const jsonOutput = !!args['json'];
215
+ if (!eventId) {
216
+ throw new Error('--event-id is required for decryption');
217
+ }
218
+ const actor = await session.getSignActor();
219
+ // Generate ephemeral transport key pair
220
+ const [transportSecret, transportPublic] = cryptoOps.generateTransportKeypair();
221
+ // Get IBE public key
222
+ let dpkBytes;
223
+ try {
224
+ const result = await actor.get_ibe_public_key();
225
+ dpkBytes = new Uint8Array(result);
226
+ }
227
+ catch (e) {
228
+ throw (0, error_1.canisterCallError)(`get_ibe_public_key failed: ${e instanceof Error ? e.message : String(e)}`, e);
229
+ }
230
+ // Request decryption package from canister
231
+ let pkg;
232
+ try {
233
+ const result = await actor.get_kind5_decryption_key(eventId, Array.from(transportPublic));
234
+ pkg = {
235
+ encrypted_key: new Uint8Array(result.encrypted_key),
236
+ ciphertext: new Uint8Array(result.ciphertext),
237
+ ibe_identity: result.ibe_identity,
238
+ };
239
+ }
240
+ catch (e) {
241
+ throw (0, error_1.canisterCallError)(`get_kind5_decryption_key failed: ${e instanceof Error ? e.message : String(e)}`, e);
242
+ }
243
+ // Full decrypt
244
+ const plaintext = cryptoOps.ibeDecrypt(pkg.encrypted_key, dpkBytes, pkg.ibe_identity, pkg.ciphertext, transportSecret);
245
+ // Output
246
+ if (output) {
247
+ (0, fs_1.writeFileSync)(output, plaintext);
248
+ if (jsonOutput) {
249
+ console.log(JSON.stringify({
250
+ event_id: eventId,
251
+ ibe_identity: pkg.ibe_identity,
252
+ output_file: output,
253
+ size_bytes: plaintext.length,
254
+ }));
255
+ }
256
+ else {
257
+ console.log(`Decrypted content written to: ${output}`);
258
+ }
259
+ }
260
+ else {
261
+ const textContent = new TextDecoder().decode(plaintext);
262
+ if (jsonOutput) {
263
+ console.log(JSON.stringify({
264
+ event_id: eventId,
265
+ ibe_identity: pkg.ibe_identity,
266
+ plaintext: textContent,
267
+ }));
268
+ }
269
+ else {
270
+ console.log("Decrypted Kind5 PrivatePost:");
271
+ console.log(` Event ID: ${eventId}`);
272
+ console.log(` IBE Identity: ${pkg.ibe_identity}`);
273
+ console.log(` Content:`);
274
+ console.log(textContent);
275
+ }
276
+ }
277
+ }
278
+ /**
279
+ * encrypt-only: Encrypt content locally without canister interaction.
280
+ */
281
+ async function cmdEncryptOnly(session) {
282
+ const args = session.args;
283
+ const text = args['text'];
284
+ const file = args['file'];
285
+ const ibeIdentityOverride = args['ibe-identity'];
286
+ const publicKeyHex = args['public-key'];
287
+ const jsonOutput = !!args['json'];
288
+ const plaintext = readInput(text, file);
289
+ let dpkBytes;
290
+ let principalText;
291
+ if (publicKeyHex) {
292
+ // Fully offline mode — use provided public key
293
+ dpkBytes = Buffer.from(publicKeyHex, "hex");
294
+ principalText = ibeIdentityOverride ? "offline" : session.getPrincipal();
295
+ }
296
+ else {
297
+ // Semi-online mode — fetch public key from canister
298
+ const actor = await session.getSignActor();
299
+ principalText = session.getPrincipal();
300
+ try {
301
+ const result = await actor.get_ibe_public_key();
302
+ dpkBytes = new Uint8Array(result);
303
+ }
304
+ catch (e) {
305
+ throw (0, error_1.canisterCallError)(`get_ibe_public_key failed: ${e instanceof Error ? e.message : String(e)}`, e);
306
+ }
307
+ }
308
+ const ibeIdentity = ibeIdentityOverride ?? cryptoOps.makeIbeIdentity(principalText, plaintext);
309
+ const ciphertext = cryptoOps.ibeEncrypt(dpkBytes, ibeIdentity, plaintext);
310
+ if (jsonOutput) {
311
+ console.log(JSON.stringify({
312
+ ibe_identity: ibeIdentity,
313
+ ciphertext_hex: Buffer.from(ciphertext).toString("hex"),
314
+ ciphertext_size: ciphertext.length,
315
+ plaintext_size: plaintext.length,
316
+ offline: !!publicKeyHex,
317
+ }));
318
+ }
319
+ else {
320
+ const mode = publicKeyHex ? "fully offline" : "semi-online";
321
+ console.log(`IBE encryption completed (${mode}, not signed on canister)`);
322
+ console.log(` IBE Identity: ${ibeIdentity}`);
323
+ console.log(` Ciphertext size: ${ciphertext.length} bytes`);
324
+ console.log(` Ciphertext (hex): ${Buffer.from(ciphertext).toString("hex")}`);
325
+ }
326
+ }
327
+ /**
328
+ * pubkey: Fetch and display the IBE derived public key.
329
+ */
330
+ async function cmdGetPubkey(session) {
331
+ const jsonOutput = !!session.args['json'];
332
+ const actor = await session.getSignActor();
333
+ let dpkBytes;
334
+ try {
335
+ const result = await actor.get_ibe_public_key();
336
+ dpkBytes = new Uint8Array(result);
337
+ }
338
+ catch (e) {
339
+ throw (0, error_1.canisterCallError)(`get_ibe_public_key failed: ${e instanceof Error ? e.message : String(e)}`, e);
340
+ }
341
+ if (jsonOutput) {
342
+ console.log(JSON.stringify({
343
+ public_key: Buffer.from(dpkBytes).toString("hex"),
344
+ size_bytes: dpkBytes.length,
345
+ }));
346
+ }
347
+ else {
348
+ console.log("IBE Derived Public Key:");
349
+ console.log(` Hex: ${Buffer.from(dpkBytes).toString("hex")}`);
350
+ console.log(` Size: ${dpkBytes.length} bytes (compressed G2 point)`);
351
+ }
352
+ }
353
+ /**
354
+ * serve: Start daemon in UDS or stdio mode.
355
+ *
356
+ * Creates its own long-lived actor for the daemon lifecycle,
357
+ * using the Session's identity for authentication.
358
+ */
359
+ async function cmdServe(session) {
360
+ const args = session.args;
361
+ const keyName = args['key-name'] || 'default';
362
+ const stdio = !!args['stdio'];
363
+ // Validate key_name
364
+ if (keyName.includes(":"))
365
+ throw new Error("key_name must not contain ':' (reserved as separator)");
366
+ const actor = await session.getSignActor();
367
+ const principal = session.getPrincipal();
368
+ // Construct derivation ID
369
+ const derivationId = `${principal}:${keyName}`;
370
+ if (derivationId.length > 256) {
371
+ throw new Error(`derivation_id exceeds 256 bytes (${derivationId.length}); use a shorter key_name`);
372
+ }
373
+ // Derive AES-256 key from VetKey via the sign actor
374
+ console.error(`Deriving AES-256 key from VetKey (derivation_id: ${derivationId})...`);
375
+ const keyStore = await key_store_1.KeyStore.deriveFromActor(actor, derivationId);
376
+ console.error("Key derived successfully. Starting JSON-RPC daemon...");
377
+ if (stdio) {
378
+ await (0, serve_1.runDaemonStdio)(keyStore, principal, derivationId);
379
+ }
380
+ else {
381
+ await (0, serve_1.runDaemonUds)(keyStore, principal, derivationId);
382
+ }
383
+ }
384
+ /**
385
+ * stop: Send shutdown to a running daemon.
386
+ */
387
+ async function cmdStop(session) {
388
+ const args = session.args;
389
+ const keyName = args['key-name'] || 'default';
390
+ const jsonOutput = !!args['json'];
391
+ const principal = session.getPrincipal();
392
+ const derivationId = `${principal}:${keyName}`;
393
+ const sockPath = (0, daemon_1.findRunningDaemon)(derivationId);
394
+ // Connect to socket and send shutdown
395
+ const response = await sendRpcToSocket(sockPath, {
396
+ id: 1,
397
+ method: "shutdown",
398
+ });
399
+ if (jsonOutput) {
400
+ console.log(JSON.stringify(response));
401
+ }
402
+ else {
403
+ console.log("Daemon stopped successfully.");
404
+ }
405
+ }
406
+ /**
407
+ * status: Query a running daemon.
408
+ */
409
+ async function cmdStatus(session) {
410
+ const args = session.args;
411
+ const keyName = args['key-name'] || 'default';
412
+ const jsonOutput = !!args['json'];
413
+ const principal = session.getPrincipal();
414
+ const derivationId = `${principal}:${keyName}`;
415
+ const sockPath = (0, daemon_1.findRunningDaemon)(derivationId);
416
+ // Connect to socket and send status
417
+ const response = await sendRpcToSocket(sockPath, {
418
+ id: 1,
419
+ method: "status",
420
+ });
421
+ if (jsonOutput) {
422
+ console.log(JSON.stringify(response));
423
+ }
424
+ else {
425
+ const result = response.result;
426
+ if (result) {
427
+ console.log("Daemon Status:");
428
+ console.log(` Status: ${result.status}`);
429
+ console.log(` Derivation ID: ${result.derivation_id}`);
430
+ console.log(` Principal: ${result.principal}`);
431
+ console.log(` Started At: ${result.started_at}`);
432
+ console.log(` Mode: ${result.mode}`);
433
+ if (result.socket_path) {
434
+ console.log(` Socket: ${result.socket_path}`);
435
+ }
436
+ }
437
+ else if (response.error) {
438
+ console.error(`Error: ${response.error}`);
439
+ }
440
+ }
441
+ }
442
+ // ============================================================================
443
+ // Helper Functions
444
+ // ============================================================================
445
+ /**
446
+ * Read input content from --text or --file as Uint8Array.
447
+ * Supports both text and binary files.
448
+ */
449
+ function readInput(text, file) {
450
+ if (text && file)
451
+ throw new Error("Cannot specify both --text and --file");
452
+ if (text)
453
+ return new TextEncoder().encode(text);
454
+ if (file)
455
+ return (0, fs_1.readFileSync)(file);
456
+ throw new Error("Either --text or --file must be provided");
457
+ }
458
+ /**
459
+ * Send a single JSON-RPC request to a Unix socket and return the response.
460
+ * Connects, sends the request, reads one response line, then disconnects.
461
+ */
462
+ function sendRpcToSocket(socketPath, request) {
463
+ return new Promise((resolve, reject) => {
464
+ const conn = (0, net_1.createConnection)(socketPath);
465
+ let responded = false;
466
+ conn.on("connect", () => {
467
+ conn.write(JSON.stringify(request) + "\n");
468
+ });
469
+ const rl = (0, readline_1.createInterface)({ input: conn });
470
+ rl.on("line", (line) => {
471
+ if (!responded) {
472
+ responded = true;
473
+ clearTimeout(timer);
474
+ try {
475
+ resolve(JSON.parse(line));
476
+ }
477
+ catch {
478
+ reject(new Error(`Invalid response: ${line}`));
479
+ }
480
+ conn.end();
481
+ }
482
+ });
483
+ conn.on("error", (err) => {
484
+ if (!responded) {
485
+ responded = true;
486
+ clearTimeout(timer);
487
+ reject(new Error(`Failed to connect to daemon: ${err.message}`));
488
+ }
489
+ });
490
+ conn.on("close", () => {
491
+ if (!responded) {
492
+ responded = true;
493
+ clearTimeout(timer);
494
+ reject(new Error("Connection closed without response"));
495
+ }
496
+ });
497
+ // Timeout after 10 seconds — clear on success/error to avoid blocking process exit
498
+ const timer = setTimeout(() => {
499
+ if (!responded) {
500
+ responded = true;
501
+ conn.destroy();
502
+ reject(new Error("Timeout waiting for daemon response"));
503
+ }
504
+ }, 10000);
505
+ });
506
+ }
507
+ //# sourceMappingURL=vetkey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vetkey.js","sourceRoot":"","sources":["../src/vetkey.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBH,kBA6BC;AAjDD,2BAAiD;AACjD,6BAAuC;AACvC,uCAA2C;AAE3C,oDAAsC;AACtC,2CAAuC;AACvC,mCAAuD;AACvD,qCAA6C;AAC7C,mCAAuD;AAEvD,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E;;;;;GAKG;AACI,KAAK,UAAU,GAAG,CAAC,OAAgB;IACxC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEtC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,cAAc;YACjB,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;YAC9B,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YAC1B,MAAM;QACR,KAAK,cAAc;YACjB,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;YAC9B,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;YAC5B,MAAM;QACR,KAAK,OAAO;YACV,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;YACxB,MAAM;QACR,KAAK,MAAM;YACT,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;YACvB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;YACzB,MAAM;QACR;YACE,QAAQ,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;IAC/E,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;AAC9D,CAAC;AAED,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;;;;;;;;GASG;AACH,KAAK,UAAU,cAAc,CAAC,OAAgB;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAuB,CAAC;IAChD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAuB,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAuB,CAAC;IACpD,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAExC,sBAAsB;IACtB,IAAI,IAA4B,CAAC;IACjC,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAEzC,6BAA6B;IAC7B,IAAI,QAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAO,KAAa,CAAC,kBAAkB,EAAgB,CAAC;QACvE,QAAQ,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAA,yBAAiB,EACrB,8BAA8B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAC9E,CAAC;IACJ,CAAC;IAED,gCAAgC;IAChC,MAAM,WAAW,GAAG,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAEpE,sBAAsB;IACtB,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAE1E,qEAAqE;IACrE,IAAI,SAAc,CAAC;IACnB,IAAI,CAAC;QACH,SAAS,GAAG,MAAO,KAAa,CAAC,IAAI,CAAC;YACpC,gBAAgB,EAAE;gBAChB,iBAAiB,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;gBACzC,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;aACzB;SACF,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAA,yBAAiB,EACrB,iCAAiC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACjF,CAAC;IACJ,CAAC;IAED,iBAAiB;IACjB,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;YACzB,QAAQ,EAAE,SAAS,CAAC,EAAE;YACtB,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,YAAY,EAAE,SAAS,CAAC,YAAY;YACpC,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE;YAC3C,SAAS;SACV,CAAC,CAAC,CAAC;IACN,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,mBAAmB,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,mBAAmB,WAAW,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,mBAAmB,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,mBAAmB,SAAS,EAAE,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,UAAU,CAAC,OAAgB;IACxC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAuB,CAAC;IACvD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAuB,CAAC;IACpD,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAElC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;IAE3C,wCAAwC;IACxC,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,GAAG,SAAS,CAAC,wBAAwB,EAAE,CAAC;IAEhF,qBAAqB;IACrB,IAAI,QAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAO,KAAa,CAAC,kBAAkB,EAAgB,CAAC;QACvE,QAAQ,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAA,yBAAiB,EACrB,8BAA8B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAC9E,CAAC;IACJ,CAAC;IAED,2CAA2C;IAC3C,IAAI,GAAgF,CAAC;IACrF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAO,KAAa,CAAC,wBAAwB,CAC1D,OAAO,EACP,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAC5B,CAAC;QACF,GAAG,GAAG;YACJ,aAAa,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC;YACnD,UAAU,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC;YAC7C,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAA,yBAAiB,EACrB,oCAAoC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACpF,CAAC;IACJ,CAAC;IAED,eAAe;IACf,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CACpC,GAAG,CAAC,aAAa,EACjB,QAAQ,EACR,GAAG,CAAC,YAAY,EAChB,GAAG,CAAC,UAAU,EACd,eAAe,CAChB,CAAC;IAEF,SAAS;IACT,IAAI,MAAM,EAAE,CAAC;QACX,IAAA,kBAAa,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAEjC,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACzB,QAAQ,EAAE,OAAO;gBACjB,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,WAAW,EAAE,MAAM;gBACnB,UAAU,EAAE,SAAS,CAAC,MAAM;aAC7B,CAAC,CAAC,CAAC;QACN,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,iCAAiC,MAAM,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACzB,QAAQ,EAAE,OAAO;gBACjB,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC9B,SAAS,EAAE,WAAW;aACvB,CAAC,CAAC,CAAC;QACN,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,OAAgB;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAuB,CAAC;IAChD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAuB,CAAC;IAChD,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAuB,CAAC;IACvE,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAuB,CAAC;IAC9D,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAExC,IAAI,QAAoB,CAAC;IACzB,IAAI,aAAqB,CAAC;IAE1B,IAAI,YAAY,EAAE,CAAC;QACjB,+CAA+C;QAC/C,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAC5C,aAAa,GAAG,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,oDAAoD;QACpD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;QAC3C,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QAEvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAO,KAAa,CAAC,kBAAkB,EAAgB,CAAC;YACvE,QAAQ,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAA,yBAAiB,EACrB,8BAA8B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAC9E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,mBAAmB,IAAI,SAAS,CAAC,eAAe,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAC/F,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAE1E,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;YACzB,YAAY,EAAE,WAAW;YACzB,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YACvD,eAAe,EAAE,UAAU,CAAC,MAAM;YAClC,cAAc,EAAE,SAAS,CAAC,MAAM;YAChC,OAAO,EAAE,CAAC,CAAC,YAAY;SACxB,CAAC,CAAC,CAAC;IACN,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,2BAA2B,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,sBAAsB,UAAU,CAAC,MAAM,QAAQ,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY,CAAC,OAAgB;IAC1C,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE1C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;IAE3C,IAAI,QAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAO,KAAa,CAAC,kBAAkB,EAAgB,CAAC;QACvE,QAAQ,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAA,yBAAiB,EACrB,8BAA8B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAC9E,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;YACzB,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YACjD,UAAU,EAAE,QAAQ,CAAC,MAAM;SAC5B,CAAC,CAAC,CAAC;IACN,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,WAAW,QAAQ,CAAC,MAAM,8BAA8B,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,QAAQ,CAAC,OAAgB;IACtC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,OAAO,GAAI,IAAI,CAAC,UAAU,CAAY,IAAI,SAAS,CAAC;IAC1D,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE9B,oBAAoB;IACpB,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAEpG,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAEzC,0BAA0B;IAC1B,MAAM,YAAY,GAAG,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC;IAC/C,IAAI,YAAY,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,oCAAoC,YAAY,CAAC,MAAM,2BAA2B,CAAC,CAAC;IACtG,CAAC;IAED,oDAAoD;IACpD,OAAO,CAAC,KAAK,CAAC,oDAAoD,YAAY,MAAM,CAAC,CAAC;IACtF,MAAM,QAAQ,GAAG,MAAM,oBAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACrE,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAEvE,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAA,sBAAc,EAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,MAAM,IAAA,oBAAY,EAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,OAAO,CAAC,OAAgB;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,OAAO,GAAI,IAAI,CAAC,UAAU,CAAY,IAAI,SAAS,CAAC;IAC1D,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IACzC,MAAM,YAAY,GAAG,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAA,0BAAiB,EAAC,YAAY,CAAC,CAAC;IAEjD,sCAAsC;IACtC,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE;QAC/C,EAAE,EAAE,CAAC;QACL,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;IAEH,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,SAAS,CAAC,OAAgB;IACvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,OAAO,GAAI,IAAI,CAAC,UAAU,CAAY,IAAI,SAAS,CAAC;IAC1D,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IACzC,MAAM,YAAY,GAAG,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAA,0BAAiB,EAAC,YAAY,CAAC,CAAC;IAEjD,oCAAoC;IACpC,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE;QAC/C,EAAE,EAAE,CAAC;QACL,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;IAEH,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,QAAQ,CAAC,MAA6C,CAAC;QACtE,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/C,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,UAAU,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;GAGG;AACH,SAAS,SAAS,CAAC,IAAwB,EAAE,IAAwB;IACnE,IAAI,IAAI,IAAI,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3E,IAAI,IAAI;QAAE,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,IAAI;QAAE,OAAO,IAAA,iBAAY,EAAC,IAAI,CAAC,CAAC;IACpC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,UAAkB,EAAE,OAAgC;IAC3E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,IAAA,sBAAgB,EAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,MAAM,EAAE,GAAG,IAAA,0BAAe,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5C,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS,GAAG,IAAI,CAAC;gBACjB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC;gBACjD,CAAC;gBACD,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACvB,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS,GAAG,IAAI,CAAC;gBACjB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACnE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACpB,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS,GAAG,IAAI,CAAC;gBACjB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,mFAAmF;QACnF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS,GAAG,IAAI,CAAC;gBACjB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC"}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@zcloak/ai-agent",
3
+ "version": "1.0.0",
4
+ "description": "zCloak.ai Agent CLI — sign, verify, register and interact with canisters",
5
+ "bin": {
6
+ "zcloak-ai": "./dist/cli.js"
7
+ },
8
+ "main": "./dist/utils.js",
9
+ "types": "./dist/utils.d.ts",
10
+ "files": [
11
+ "dist/**/*.js",
12
+ "dist/**/*.d.ts",
13
+ "dist/**/*.js.map"
14
+ ],
15
+ "scripts": {
16
+ "generate-types": "tsx scripts/generate-types.ts",
17
+ "check-types": "tsx scripts/generate-types.ts --check",
18
+ "prebuild": "npm run generate-types",
19
+ "build": "tsc",
20
+ "build:watch": "tsc --watch",
21
+ "clean": "rm -rf dist",
22
+ "typecheck": "tsc --noEmit",
23
+ "test": "vitest run",
24
+ "test:watch": "vitest",
25
+ "prepare": "npm run clean && npm run build",
26
+ "prepublishOnly": "npm run clean && npm run build"
27
+ },
28
+ "publishConfig": {
29
+ "access": "public"
30
+ },
31
+ "keywords": [
32
+ "zcloak",
33
+ "icp",
34
+ "internet-computer",
35
+ "dfinity",
36
+ "agent",
37
+ "sign",
38
+ "canister"
39
+ ],
40
+ "dependencies": {
41
+ "@dfinity/agent": "^3.4.3",
42
+ "@dfinity/candid": "^3.4.3",
43
+ "@dfinity/identity": "^3.4.3",
44
+ "@dfinity/identity-secp256k1": "^3.4.3",
45
+ "@dfinity/principal": "^3.4.3",
46
+ "@dfinity/vetkeys": "^0.4.0"
47
+ },
48
+ "devDependencies": {
49
+ "@types/node": "^25.3.3",
50
+ "@vitest/coverage-v8": "^4.0.18",
51
+ "tsx": "^4.21.0",
52
+ "typescript": "^5.9.3",
53
+ "vitest": "^4.0.18"
54
+ }
55
+ }