@zcloak/ai-agent 1.0.24 → 1.0.26

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/SKILL.md +89 -50
  2. package/dist/bind.js +9 -8
  3. package/dist/bind.js.map +1 -1
  4. package/dist/cli.d.ts +1 -1
  5. package/dist/cli.js +61 -26
  6. package/dist/cli.js.map +1 -1
  7. package/dist/compat.d.ts +32 -0
  8. package/dist/compat.js +91 -0
  9. package/dist/compat.js.map +1 -0
  10. package/dist/daemon.d.ts +4 -5
  11. package/dist/daemon.js +15 -21
  12. package/dist/daemon.js.map +1 -1
  13. package/dist/delete.js +8 -7
  14. package/dist/delete.js.map +1 -1
  15. package/dist/doc.js +4 -3
  16. package/dist/doc.js.map +1 -1
  17. package/dist/feed.js +2 -1
  18. package/dist/feed.js.map +1 -1
  19. package/dist/identity.js +2 -1
  20. package/dist/identity.js.map +1 -1
  21. package/dist/identity_cmd.js +2 -1
  22. package/dist/identity_cmd.js.map +1 -1
  23. package/dist/log.js +3 -6
  24. package/dist/log.js.map +1 -1
  25. package/dist/mailbox-store.d.ts +92 -0
  26. package/dist/mailbox-store.js +166 -0
  27. package/dist/mailbox-store.js.map +1 -0
  28. package/dist/paths.d.ts +39 -0
  29. package/dist/paths.js +77 -0
  30. package/dist/paths.js.map +1 -0
  31. package/dist/pow.js +2 -1
  32. package/dist/pow.js.map +1 -1
  33. package/dist/pre-check.d.ts +4 -4
  34. package/dist/pre-check.js +43 -13
  35. package/dist/pre-check.js.map +1 -1
  36. package/dist/register.js +200 -35
  37. package/dist/register.js.map +1 -1
  38. package/dist/rpc.d.ts +4 -6
  39. package/dist/rpc.js +3 -3
  40. package/dist/rpc.js.map +1 -1
  41. package/dist/serve.d.ts +4 -30
  42. package/dist/serve.js +22 -90
  43. package/dist/serve.js.map +1 -1
  44. package/dist/session.js +4 -3
  45. package/dist/session.js.map +1 -1
  46. package/dist/sign.js +9 -8
  47. package/dist/sign.js.map +1 -1
  48. package/dist/social.js +6 -5
  49. package/dist/social.js.map +1 -1
  50. package/dist/types/registry.d.ts +1 -1
  51. package/dist/types/registry.js +1 -1
  52. package/dist/types/sign-event.d.ts +1 -1
  53. package/dist/types/sign-event.js +1 -1
  54. package/dist/utils.js +1 -1
  55. package/dist/utils.js.map +1 -1
  56. package/dist/verify.js +3 -2
  57. package/dist/verify.js.map +1 -1
  58. package/dist/vetkey.d.ts +18 -15
  59. package/dist/vetkey.js +104 -78
  60. package/dist/vetkey.js.map +1 -1
  61. package/dist/zmail.d.ts +7 -3
  62. package/dist/zmail.js +316 -20
  63. package/dist/zmail.js.map +1 -1
  64. package/package.json +1 -1
package/dist/register.js CHANGED
@@ -17,6 +17,7 @@
17
17
  */
18
18
  import { getProfileUrl } from './utils.js';
19
19
  import { generalParseAiIdToRecord, isReadableId } from './aiid.js';
20
+ import * as log from './log.js';
20
21
  // ========== Help Information ==========
21
22
  function showHelp() {
22
23
  console.log('zCloak.ai Agent Registration Management');
@@ -83,7 +84,7 @@ function cmdGetPrincipal(session) {
83
84
  /** Query current principal's agent name */
84
85
  async function cmdLookup(session) {
85
86
  const principal = session.getPrincipal();
86
- console.error(`Current principal: ${principal}`);
87
+ log.info(`Current principal: ${principal}`);
87
88
  const actor = await session.getAnonymousRegistryActor();
88
89
  const result = await actor.user_profile_get_by_principal(principal);
89
90
  if (!result || result.length === 0) {
@@ -180,51 +181,209 @@ async function cmdRegister(session, baseName) {
180
181
  console.log(JSON.stringify(result, null, 2));
181
182
  }
182
183
  }
183
- /** Query agent's owner (binding relationship) */
184
- async function cmdGetOwner(session, principalOrName) {
184
+ /**
185
+ * Query agent's owner / connection list via the zCloak REST API.
186
+ *
187
+ * Routing:
188
+ * - Input ends with ".agent" → GET /api/ai-name/connections?name=<input>
189
+ * - Otherwise (principal ID) → GET /api/ai-name/connections?pid=<input>
190
+ *
191
+ * Response shape:
192
+ * { code: 200, data: { source, query, is_human, connectionPids: string[] } }
193
+ */
194
+ async function cmdGetOwner(_session, principalOrName) {
185
195
  if (!principalOrName) {
186
196
  console.error('Error: principal or agent name is required');
187
197
  console.error('Usage: zcloak-ai register get-owner <principal_or_agent_name>');
188
198
  process.exit(1);
189
199
  }
190
- const actor = await session.getAnonymousRegistryActor();
191
- // Determine if it's a principal or agent name (agent name contains # and .agent)
192
- const isAgentName = principalOrName.includes('#') && principalOrName.includes('.agent');
193
- let profile;
194
- if (isAgentName) {
195
- // Query by agent name directly via user_profile_get
196
- profile = await actor.user_profile_get(principalOrName);
200
+ const BASE = 'https://service.zcloak.ai/api/ai-name/connections';
201
+ const isAgentName = principalOrName.endsWith('.agent');
202
+ const url = isAgentName
203
+ ? `${BASE}?name=${encodeURIComponent(principalOrName)}`
204
+ : `${BASE}?pid=${encodeURIComponent(principalOrName)}`;
205
+ log.info(`Querying connections: ${url}`);
206
+ const res = await fetch(url);
207
+ if (!res.ok) {
208
+ console.error(`HTTP error: ${res.status} ${res.statusText}`);
209
+ process.exit(1);
210
+ }
211
+ const json = (await res.json());
212
+ if (json.code !== 200 || !json.data) {
213
+ console.error(`API error: ${json.msg}`);
214
+ process.exit(1);
215
+ }
216
+ const { source, query, is_human, connectionPids } = json.data;
217
+ // get-owner is only meaningful for agents (is_human must be false)
218
+ if (is_human) {
219
+ console.error(`Error: "${principalOrName}" is a human owner, not an agent.`);
220
+ console.error('To query the agents bound to this human account, use:');
221
+ console.error(` zcloak-ai register get-agent-list ${principalOrName}`);
222
+ process.exit(1);
223
+ }
224
+ console.log(`source : ${source}`);
225
+ console.log(`query : ${query}`);
226
+ console.log(`is_human : ${is_human}`);
227
+ console.log(`connections : ${connectionPids.length}`);
228
+ if (connectionPids.length > 0) {
229
+ connectionPids.forEach((pid, i) => console.log(` [${i}] ${pid}`));
197
230
  }
198
231
  else {
199
- // Query by principal directly
200
- profile = await actor.user_profile_get_by_principal(principalOrName);
201
- }
202
- // Format output UserProfile
203
- if (profile && profile.length > 0) {
204
- const p = profile[0];
205
- const lines = [];
206
- lines.push(` username = "${p.username}"`);
207
- if (p.principal_id && p.principal_id.length > 0) {
208
- lines.push(` principal_id = opt "${p.principal_id[0]}"`);
232
+ console.log(' (none)');
233
+ }
234
+ }
235
+ /**
236
+ * Query the list of agents bound to a human account via the zCloak REST API.
237
+ *
238
+ * Routing:
239
+ * - Input ends with ".ai" → GET /api/ai-name/connections?name=<input>
240
+ * - Otherwise (principal ID) → GET /api/ai-name/connections?pid=<input>
241
+ *
242
+ * Validates that the returned profile is a human account (is_human === true).
243
+ * connectionPids contains the list of agent Principal IDs bound to this human.
244
+ */
245
+ async function cmdGetAgentList(_session, principalOrName) {
246
+ if (!principalOrName) {
247
+ console.error('Error: principal or owner AI name is required');
248
+ console.error('Usage: zcloak-ai register get-agent-list <ai_id_or_ai_name>');
249
+ process.exit(1);
250
+ }
251
+ const BASE = 'https://service.zcloak.ai/api/ai-name/connections';
252
+ const isAiName = principalOrName.endsWith('.ai');
253
+ const url = isAiName
254
+ ? `${BASE}?name=${encodeURIComponent(principalOrName)}`
255
+ : `${BASE}?pid=${encodeURIComponent(principalOrName)}`;
256
+ log.info(`Querying agent list: ${url}`);
257
+ const res = await fetch(url);
258
+ if (!res.ok) {
259
+ console.error(`HTTP error: ${res.status} ${res.statusText}`);
260
+ process.exit(1);
261
+ }
262
+ const json = (await res.json());
263
+ if (json.code !== 200 || !json.data) {
264
+ console.error(`API error: ${json.msg}`);
265
+ process.exit(1);
266
+ }
267
+ const { source, query, is_human, connectionPids } = json.data;
268
+ // get-agent-list is only meaningful for human accounts (is_human must be true)
269
+ if (!is_human) {
270
+ console.error(`Error: "${principalOrName}" is an agent, not a human owner.`);
271
+ console.error('To query the owner(s) of this agent, use:');
272
+ console.error(` zcloak-ai register get-owner ${principalOrName}`);
273
+ process.exit(1);
274
+ }
275
+ console.log(`source : ${source}`);
276
+ console.log(`query : ${query}`);
277
+ console.log(`is_human : ${is_human}`);
278
+ console.log(`agents : ${connectionPids.length}`);
279
+ if (connectionPids.length > 0) {
280
+ connectionPids.forEach((pid, i) => console.log(` [${i}] ${pid}`));
281
+ }
282
+ else {
283
+ console.log(' (none)');
284
+ }
285
+ }
286
+ /**
287
+ * Format an ID record from the REST API response into a readable AI ID string.
288
+ * API format: { id: string; index: string[]; domain: Record<string,null>[] }
289
+ * e.g. { id:"wanghui", index:[], domain:[{"AI":null}] } → "wanghui.ai"
290
+ * { id:"wanghui", index:["4705"], domain:[{"AI":null}] } → "wanghui#4705.ai"
291
+ */
292
+ function formatApiIdRecord(r) {
293
+ let text = r.id;
294
+ if (r.index && r.index.length > 0)
295
+ text += `#${r.index[0]}`;
296
+ if (r.domain && r.domain.length > 0) {
297
+ const d = r.domain[0];
298
+ if ('AI' in d)
299
+ text += '.ai';
300
+ else if ('ORG' in d)
301
+ text += '.org';
302
+ else if ('AGENT' in d)
303
+ text += '.agent';
304
+ }
305
+ return text;
306
+ }
307
+ /**
308
+ * Query full profile of any account (human or agent) via the zCloak REST API.
309
+ *
310
+ * Routing:
311
+ * - Input ends with ".ai" or ".agent" → GET /api/ai-name/user_profile?name=<input>
312
+ * - Otherwise (Principal ID) → GET /api/ai-name/user_profile?pid=<input>
313
+ */
314
+ async function cmdGetProfile(_session, input) {
315
+ if (!input) {
316
+ console.error('Error: AI ID or AI name is required');
317
+ console.error('Usage: zcloak-ai register get-profile <ai_id_or_ai_name>');
318
+ process.exit(1);
319
+ }
320
+ const BASE = 'https://service.zcloak.ai/api/ai-name/user_profile';
321
+ const isName = input.endsWith('.ai') || input.endsWith('.agent');
322
+ const url = isName
323
+ ? `${BASE}?name=${encodeURIComponent(input)}`
324
+ : `${BASE}?pid=${encodeURIComponent(input)}`;
325
+ log.info(`Querying profile: ${url}`);
326
+ const res = await fetch(url);
327
+ if (!res.ok) {
328
+ console.error(`HTTP error: ${res.status} ${res.statusText}`);
329
+ process.exit(1);
330
+ }
331
+ // todo: maybe change when the server api changes
332
+ const json = (await res.json());
333
+ if (json.code !== 200 || !json.data) {
334
+ console.error(`API error: ${json.msg}`);
335
+ process.exit(1);
336
+ }
337
+ const { profile } = json.data;
338
+ if (!profile) {
339
+ console.log('(null)');
340
+ return;
341
+ }
342
+ // ── Basic fields ──────────────────────────────────────────────────────────
343
+ console.log(`display_name : ${profile.display_name}`);
344
+ console.log(`principal_id : ${profile.principal_id.length > 0 ? profile.principal_id[0] : '(none)'}`);
345
+ // ── AI profile ────────────────────────────────────────────────────────────
346
+ if (profile.ai_profile && profile.ai_profile.length > 0) {
347
+ const ap = profile.ai_profile[0];
348
+ // Preferred AI name
349
+ const aiName = ap.ai_name && ap.ai_name.length > 0
350
+ ? formatApiIdRecord(ap.ai_name[0])
351
+ : null;
352
+ const defaultName = ap.default_name && ap.default_name.length > 0
353
+ ? formatApiIdRecord(ap.default_name[0])
354
+ : null;
355
+ console.log(`ai_name : ${aiName ?? '(none)'}`);
356
+ console.log(`default_name : ${defaultName ?? '(none)'}`);
357
+ console.log(`is_free : ${ap.is_free}`);
358
+ console.log(`bio : ${ap.bio && ap.bio.length > 0 ? ap.bio[0] : '(none)'}`);
359
+ if (ap.valid_time && ap.valid_time.length > 0) {
360
+ const ts = parseInt(ap.valid_time[0], 10);
361
+ console.log(`valid_until : ${new Date(ts).toISOString()}`);
209
362
  }
210
- if (p.ai_profile && p.ai_profile.length > 0) {
211
- const ap = p.ai_profile[0];
212
- if (ap.position && ap.position.length > 0) {
213
- const pos = ap.position[0];
214
- lines.push(` is_human = ${pos.is_human}`);
215
- if (pos.connection_list && pos.connection_list.length > 0) {
216
- const connList = pos.connection_list
217
- .map((c) => ` principal "${c.toText()}"`)
218
- .join('\n');
219
- lines.push(` connection_list = vec {\n${connList}\n }`);
363
+ if (ap.position && ap.position.length > 0) {
364
+ const pos = ap.position[0];
365
+ console.log(`is_human : ${pos.is_human}`);
366
+ console.log(`connections : ${pos.connection_list.length}`);
367
+ if (pos.connection_list.length > 0) {
368
+ if (!pos.is_human) {
369
+ // Agent account — connections are its owner(s)
370
+ console.log(` → To view owner(s) of this agent, run:`);
371
+ console.log(` zcloak-ai register get-owner ${input}`);
372
+ }
373
+ else {
374
+ // Human account — connections are its bound agents
375
+ console.log(` → To view agents bound to this account, run:`);
376
+ console.log(` zcloak-ai register get-agent-list ${input}`);
220
377
  }
221
378
  }
222
379
  }
223
- console.log(`(opt record {\n${lines.join('\n')}\n})`);
224
- }
225
- else {
226
- console.log('(null)');
227
380
  }
381
+ // ── Passkeys ──────────────────────────────────────────────────────────────
382
+ console.log(`passkeys : ${profile.passkey_name.length}`);
383
+ profile.passkey_name.forEach((k, i) => console.log(` [${i}] ${k}`));
384
+ // ── Timestamps ────────────────────────────────────────────────────────────
385
+ console.log(`created : ${new Date(parseInt(profile.create_time, 10)).toISOString()}`);
386
+ console.log(`modified : ${new Date(parseInt(profile.modify_time, 10)).toISOString()}`);
228
387
  }
229
388
  // ========== Exported run() — called by cli.ts ==========
230
389
  /**
@@ -253,6 +412,12 @@ export async function run(session) {
253
412
  case 'get-owner':
254
413
  await cmdGetOwner(session, session.args._args[1]);
255
414
  break;
415
+ case 'get-agent-list':
416
+ await cmdGetAgentList(session, session.args._args[1]);
417
+ break;
418
+ case 'get-profile':
419
+ await cmdGetProfile(session, session.args._args[1]);
420
+ break;
256
421
  default:
257
422
  showHelp();
258
423
  if (command) {
@@ -262,7 +427,7 @@ export async function run(session) {
262
427
  }
263
428
  }
264
429
  catch (err) {
265
- console.error(`Operation failed: ${err instanceof Error ? err.message : String(err)}`);
430
+ log.error(`Operation failed: ${err instanceof Error ? err.message : String(err)}`);
266
431
  process.exit(1);
267
432
  }
268
433
  }
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"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"}
package/dist/rpc.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * JSON-RPC Protocol Types — newline-delimited JSON over stdin/stdout or Unix Socket
2
+ * JSON-RPC Protocol Types — newline-delimited JSON over Unix Domain Socket
3
3
  *
4
4
  * Protocol specification:
5
5
  * - One JSON object per line (newline-delimited)
@@ -11,8 +11,8 @@
11
11
  * decrypt — Decrypt file or inline data using the held AES-256 key
12
12
  * ibe-decrypt — Decrypt IBE ciphertext using cached VetKey (Mail daemon mode)
13
13
  * status — Query daemon status (derivation_id, principal, uptime)
14
- * quit — Close current connection (UDS mode) or stop daemon (stdio mode)
15
- * shutdown — Stop the entire daemon gracefully (UDS mode only)
14
+ * quit — Close current client connection
15
+ * shutdown — Stop the entire daemon gracefully
16
16
  */
17
17
  /** JSON-RPC request wrapper (simplified JSON-RPC 2.0 without "jsonrpc" field) */
18
18
  export interface RpcRequest {
@@ -109,9 +109,7 @@ export interface StatusResult {
109
109
  principal: string;
110
110
  /** Daemon start timestamp (ISO 8601) */
111
111
  started_at: string;
112
- /** Daemon mode: "uds" or "stdio" */
113
- mode?: string;
114
- /** Unix socket path (UDS mode only) */
112
+ /** Unix socket path */
115
113
  socket_path?: string;
116
114
  }
117
115
  /** Create a JSON-RPC success response */
package/dist/rpc.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * JSON-RPC Protocol Types — newline-delimited JSON over stdin/stdout or Unix Socket
2
+ * JSON-RPC Protocol Types — newline-delimited JSON over Unix Domain Socket
3
3
  *
4
4
  * Protocol specification:
5
5
  * - One JSON object per line (newline-delimited)
@@ -11,8 +11,8 @@
11
11
  * decrypt — Decrypt file or inline data using the held AES-256 key
12
12
  * ibe-decrypt — Decrypt IBE ciphertext using cached VetKey (Mail daemon mode)
13
13
  * status — Query daemon status (derivation_id, principal, uptime)
14
- * quit — Close current connection (UDS mode) or stop daemon (stdio mode)
15
- * shutdown — Stop the entire daemon gracefully (UDS mode only)
14
+ * quit — Close current client connection
15
+ * shutdown — Stop the entire daemon gracefully
16
16
  */
17
17
  // ============================================================================
18
18
  // Helper functions
package/dist/rpc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAuHH,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,yCAAyC;AACzC,MAAM,UAAU,eAAe,CAAC,EAA0B,EAAE,MAAe;IACzE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;AACxB,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,aAAa,CAAC,EAA0B,EAAE,KAAa;IACrE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,OAAO,aAAa,CAAC,IAAI,EAAE,iCAAiC,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,EAAE,0CAA0C,CAAC,CAAC;QACtF,CAAC;QACD,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,IAAI;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,SAAS;SACrB,CAAC;IAClB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,aAAa,CAAC,IAAI,EAAE,iBAAiB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;AACH,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,eAAe,CAAC,KAA+B;IAC7D,OAAO,OAAO,IAAI,KAAK,IAAI,OAAQ,KAAqB,CAAC,KAAK,KAAK,QAAQ,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAqHH,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,yCAAyC;AACzC,MAAM,UAAU,eAAe,CAAC,EAA0B,EAAE,MAAe;IACzE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;AACxB,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,aAAa,CAAC,EAA0B,EAAE,KAAa;IACrE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC1C,OAAO,aAAa,CAAC,IAAI,EAAE,iCAAiC,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,EAAE,0CAA0C,CAAC,CAAC;QACtF,CAAC;QACD,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,IAAI;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,SAAS;SACrB,CAAC;IAClB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,aAAa,CAAC,IAAI,EAAE,iBAAiB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;AACH,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,eAAe,CAAC,KAA+B;IAC7D,OAAO,OAAO,IAAI,KAAK,IAAI,OAAQ,KAAqB,CAAC,KAAK,KAAK,QAAQ,CAAC;AAC9E,CAAC"}
package/dist/serve.d.ts CHANGED
@@ -1,25 +1,15 @@
1
1
  /**
2
- * Daemon Serve — JSON-RPC over Unix Domain Socket or stdin/stdout
2
+ * Daemon Serve — JSON-RPC over Unix Domain Socket
3
3
  *
4
- * Two operational modes:
5
- *
6
- * 1. UDS mode (default): Unix Domain Socket listener, supports concurrent clients.
7
- * The daemon creates a socket file and listens for connections. Each client
8
- * connection is handled independently. "quit" closes the connection;
9
- * "shutdown" stops the entire daemon.
10
- *
11
- * 2. Stdio mode (--stdio): Legacy stdin/stdout mode, single client.
12
- * Backwards-compatible with the Rust implementation. Reads JSON-RPC from
13
- * stdin and writes responses to stdout. "quit" stops the daemon.
14
- *
15
- * Both modes share the same request handling logic (handleRequest).
4
+ * The daemon creates a socket file and listens for connections. Each client
5
+ * connection is handled independently. "quit" closes the connection;
6
+ * "shutdown" stops the entire daemon.
16
7
  *
17
8
  * Trust model:
18
9
  * - The daemon trusts its callers (local AI agent processes or socket clients).
19
10
  * - File paths in encrypt/decrypt requests are not sandboxed — the daemon
20
11
  * operates with the same filesystem permissions as the calling process.
21
12
  */
22
- import type { Readable, Writable } from 'stream';
23
13
  import { KeyStore } from './key-store.js';
24
14
  /**
25
15
  * Run the JSON-RPC daemon over a Unix Domain Socket.
@@ -36,20 +26,4 @@ import { KeyStore } from './key-store.js';
36
26
  * @param derivationId - Derivation ID used for the key
37
27
  */
38
28
  export declare function runDaemonUds(keyStore: KeyStore, principal: string, derivationId: string): Promise<void>;
39
- /**
40
- * Run the JSON-RPC daemon over stdin/stdout (legacy mode).
41
- *
42
- * Reads one JSON-RPC request per line from stdin, processes it,
43
- * and writes the response to stdout. Exits on "quit" or stdin EOF.
44
- *
45
- * This mode is backwards-compatible with the Rust vetkey-tool implementation.
46
- * No PID file or socket file is created.
47
- *
48
- * @param keyStore - AES-256 key holder (consumed; destroyed on exit)
49
- * @param principal - Authenticated principal text
50
- * @param derivationId - Derivation ID used for the key
51
- * @param input - Optional input stream (defaults to process.stdin, override for testing)
52
- * @param output - Optional output stream (defaults to process.stdout, override for testing)
53
- */
54
- export declare function runDaemonStdio(keyStore: KeyStore, principal: string, derivationId: string, input?: Readable, output?: Writable): Promise<void>;
55
29
  //# sourceMappingURL=serve.d.ts.map
package/dist/serve.js CHANGED
@@ -1,18 +1,9 @@
1
1
  /**
2
- * Daemon Serve — JSON-RPC over Unix Domain Socket or stdin/stdout
2
+ * Daemon Serve — JSON-RPC over Unix Domain Socket
3
3
  *
4
- * Two operational modes:
5
- *
6
- * 1. UDS mode (default): Unix Domain Socket listener, supports concurrent clients.
7
- * The daemon creates a socket file and listens for connections. Each client
8
- * connection is handled independently. "quit" closes the connection;
9
- * "shutdown" stops the entire daemon.
10
- *
11
- * 2. Stdio mode (--stdio): Legacy stdin/stdout mode, single client.
12
- * Backwards-compatible with the Rust implementation. Reads JSON-RPC from
13
- * stdin and writes responses to stdout. "quit" stops the daemon.
14
- *
15
- * Both modes share the same request handling logic (handleRequest).
4
+ * The daemon creates a socket file and listens for connections. Each client
5
+ * connection is handled independently. "quit" closes the connection;
6
+ * "shutdown" stops the entire daemon.
16
7
  *
17
8
  * Trust model:
18
9
  * - The daemon trusts its callers (local AI agent processes or socket clients).
@@ -26,6 +17,7 @@ import { join } from 'path';
26
17
  import { tmpdir } from 'os';
27
18
  import { DaemonRuntime } from './daemon.js';
28
19
  import { successResponse, errorResponse, parseRpcRequest, isErrorResponse, } from './rpc.js';
20
+ import * as log from './log.js';
29
21
  /** Maximum data size for encrypt/decrypt operations (1 GB) */
30
22
  const MAX_DATA_SIZE = 1024 * 1024 * 1024;
31
23
  /** Maximum IBE ciphertext size for ibe-decrypt (64 KB payload + IBE overhead) */
@@ -36,7 +28,7 @@ const MAX_IBE_DATA_SIZE = 64 * 1024 + 256;
36
28
  * Dispatches to the appropriate handler based on the method name.
37
29
  * Returns a response and an action indicating what to do next.
38
30
  */
39
- function handleRequest(req, keyStore, principal, startedAt, mode, sockPath) {
31
+ function handleRequest(req, keyStore, principal, startedAt, sockPath) {
40
32
  const { id, method } = req;
41
33
  switch (method) {
42
34
  case "encrypt": {
@@ -66,19 +58,18 @@ function handleRequest(req, keyStore, principal, startedAt, mode, sockPath) {
66
58
  derivation_id: keyStore.derivationId,
67
59
  principal,
68
60
  started_at: startedAt,
69
- mode,
70
61
  socket_path: sockPath,
71
62
  };
72
63
  return { response: successResponse(id, status), action: "continue" };
73
64
  }
74
65
  case "quit":
75
- // In stdio mode: quit stops the daemon. In UDS mode: quit closes the connection.
66
+ // Close this client connection only
76
67
  return {
77
- response: successResponse(id, { message: mode === "stdio" ? "Shutting down, key zeroized" : "Connection closed" }),
78
- action: mode === "stdio" ? "shutdown" : "quit",
68
+ response: successResponse(id, { message: "Connection closed" }),
69
+ action: "quit",
79
70
  };
80
71
  case "shutdown":
81
- // Stop the entire daemon (both modes)
72
+ // Stop the entire daemon
82
73
  return {
83
74
  response: successResponse(id, { message: "Shutting down, key zeroized" }),
84
75
  action: "shutdown",
@@ -320,7 +311,7 @@ function readFileChecked(filePath) {
320
311
  }
321
312
  }
322
313
  // ============================================================================
323
- // UDS Mode (Default)
314
+ // UDS Daemon
324
315
  // ============================================================================
325
316
  /**
326
317
  * Run the JSON-RPC daemon over a Unix Domain Socket.
@@ -363,7 +354,7 @@ export function runDaemonUds(keyStore, principal, derivationId) {
363
354
  return;
364
355
  }
365
356
  // Handle the request
366
- const { response, action } = handleRequest(parsed, keyStore, principal, startedAt, "uds", sockPath);
357
+ const { response, action } = handleRequest(parsed, keyStore, principal, startedAt, sockPath);
367
358
  writeLine(conn, JSON.stringify(response));
368
359
  if (action === "quit") {
369
360
  // Close this connection only
@@ -385,31 +376,31 @@ export function runDaemonUds(keyStore, principal, derivationId) {
385
376
  // Step 3: Listen on socket
386
377
  server.listen(sockPath, () => {
387
378
  // Emit ready info to stderr
388
- console.error(`Daemon ready. Socket: ${sockPath}`);
389
- console.error(`Derivation ID: ${derivationId}`);
390
- console.error(`Principal: ${principal}`);
379
+ log.info(`Daemon ready. Socket: ${sockPath}`);
380
+ log.info(`Derivation ID: ${derivationId}`);
381
+ log.info(`Principal: ${principal}`);
391
382
  });
392
383
  server.on("error", (err) => {
393
384
  runtime.destroy();
394
385
  reject(err);
395
386
  });
396
387
  // Step 4: Signal handling — store references for cleanup in finishShutdown()
397
- const onSigterm = () => { console.error("Received SIGTERM, initiating graceful shutdown..."); initiateShutdown(); };
398
- const onSigint = () => { console.error("Received SIGINT, initiating graceful shutdown..."); initiateShutdown(); };
388
+ const onSigterm = () => { log.warn("Received SIGTERM, initiating graceful shutdown..."); initiateShutdown(); };
389
+ const onSigint = () => { log.warn("Received SIGINT, initiating graceful shutdown..."); initiateShutdown(); };
399
390
  // SIGHUP: terminal hangup — gracefully shut down instead of crashing
400
- const onSighup = () => { console.error("Received SIGHUP, initiating graceful shutdown..."); initiateShutdown(); };
391
+ const onSighup = () => { log.warn("Received SIGHUP, initiating graceful shutdown..."); initiateShutdown(); };
401
392
  process.on("SIGTERM", onSigterm);
402
393
  process.on("SIGINT", onSigint);
403
394
  process.on("SIGHUP", onSighup);
404
395
  // Catch uncaught exceptions / unhandled rejections to ensure key zeroization
405
396
  // and PID file cleanup even on unexpected errors.
406
397
  const onUncaughtException = (err) => {
407
- console.error(`Uncaught exception in daemon: ${err.message}`);
408
- console.error(err.stack);
398
+ log.error(`Uncaught exception in daemon: ${err.message}`);
399
+ log.error(err.stack);
409
400
  initiateShutdown();
410
401
  };
411
402
  const onUnhandledRejection = (reason) => {
412
- console.error(`Unhandled rejection in daemon: ${reason}`);
403
+ log.error(`Unhandled rejection in daemon: ${reason}`);
413
404
  initiateShutdown();
414
405
  };
415
406
  process.on("uncaughtException", onUncaughtException);
@@ -456,71 +447,12 @@ export function runDaemonUds(keyStore, principal, derivationId) {
456
447
  // Cleanup: destroy key, remove files
457
448
  keyStore.destroy();
458
449
  runtime.destroy();
459
- console.error("Daemon stopped. Key has been zeroized.");
450
+ log.info("Daemon stopped. Key has been zeroized.");
460
451
  resolve();
461
452
  }
462
453
  });
463
454
  }
464
455
  // ============================================================================
465
- // Stdio Mode (Legacy, --stdio)
466
- // ============================================================================
467
- /**
468
- * Run the JSON-RPC daemon over stdin/stdout (legacy mode).
469
- *
470
- * Reads one JSON-RPC request per line from stdin, processes it,
471
- * and writes the response to stdout. Exits on "quit" or stdin EOF.
472
- *
473
- * This mode is backwards-compatible with the Rust vetkey-tool implementation.
474
- * No PID file or socket file is created.
475
- *
476
- * @param keyStore - AES-256 key holder (consumed; destroyed on exit)
477
- * @param principal - Authenticated principal text
478
- * @param derivationId - Derivation ID used for the key
479
- * @param input - Optional input stream (defaults to process.stdin, override for testing)
480
- * @param output - Optional output stream (defaults to process.stdout, override for testing)
481
- */
482
- export function runDaemonStdio(keyStore, principal, derivationId, input, output) {
483
- return new Promise((resolve) => {
484
- const stdin = input ?? process.stdin;
485
- const stdout = output ?? process.stdout;
486
- const startedAt = new Date().toISOString();
487
- // Emit ready signal to stdout (same format as Rust version)
488
- const readyMsg = JSON.stringify({
489
- ready: true,
490
- derivation_id: derivationId,
491
- principal,
492
- started_at: startedAt,
493
- });
494
- stdout.write(readyMsg + "\n");
495
- // Read input line by line
496
- const rl = createInterface({ input: stdin });
497
- rl.on("line", (line) => {
498
- if (!line.trim())
499
- return; // Skip blank lines
500
- // Parse the request
501
- const parsed = parseRpcRequest(line);
502
- if (isErrorResponse(parsed)) {
503
- stdout.write(JSON.stringify(parsed) + "\n");
504
- return;
505
- }
506
- // Handle the request
507
- const { response, action } = handleRequest(parsed, keyStore, principal, startedAt, "stdio");
508
- stdout.write(JSON.stringify(response) + "\n");
509
- if (action === "shutdown" || action === "quit") {
510
- // In stdio mode, both quit and shutdown stop the daemon
511
- rl.close();
512
- keyStore.destroy();
513
- resolve();
514
- }
515
- });
516
- // stdin EOF — daemon exits
517
- rl.on("close", () => {
518
- keyStore.destroy();
519
- resolve();
520
- });
521
- });
522
- }
523
- // ============================================================================
524
456
  // Helpers
525
457
  // ============================================================================
526
458
  /** Write a line to a socket, handling write errors gracefully */