@zcloak/ai-agent 1.0.17 → 1.0.20

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.
package/dist/cli.d.ts CHANGED
@@ -15,6 +15,7 @@
15
15
  * zcloak-ai pow <base> <zeros> PoW computation
16
16
  * zcloak-ai vetkey <command> [args] VetKey encryption/decryption and daemon
17
17
  * zcloak-ai social <command> [args] Social profile query
18
+ * zcloak-ai zmail <command> [args] Encrypted mail (register, inbox, sent, ack)
18
19
  *
19
20
  * Architecture:
20
21
  * cli.ts creates a Session from a constructed sub-argv array and passes it
package/dist/cli.js CHANGED
@@ -15,6 +15,7 @@
15
15
  * zcloak-ai pow <base> <zeros> PoW computation
16
16
  * zcloak-ai vetkey <command> [args] VetKey encryption/decryption and daemon
17
17
  * zcloak-ai social <command> [args] Social profile query
18
+ * zcloak-ai zmail <command> [args] Encrypted mail (register, inbox, sent, ack)
18
19
  *
19
20
  * Architecture:
20
21
  * cli.ts creates a Session from a constructed sub-argv array and passes it
@@ -28,9 +29,13 @@
28
29
  * zcloak-ai feed counter
29
30
  * zcloak-ai verify file ./report.pdf
30
31
  */
32
+ import fs from 'fs';
31
33
  import path from 'path';
32
34
  import { fileURLToPath } from 'url';
33
35
  import { Session } from './session.js';
36
+ import { preCheck } from './pre-check.js';
37
+ import { ensureDaemonsBackground } from './vetkey.js';
38
+ import { DEFAULT_PEM_PATH, loadIdentityFromPath } from './identity.js';
34
39
  /** ESM equivalent of __dirname */
35
40
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
36
41
  /** Supported modules and their corresponding script files (compiled in dist/ directory) */
@@ -46,6 +51,7 @@ const MODULES = {
46
51
  pow: 'pow',
47
52
  vetkey: 'vetkey',
48
53
  social: 'social',
54
+ zmail: 'zmail',
49
55
  };
50
56
  function showHelp() {
51
57
  console.log('zCloak.ai Agent CLI');
@@ -64,6 +70,7 @@ function showHelp() {
64
70
  console.log(' pow PoW computation (<base_string> <zeros>)');
65
71
  console.log(' vetkey VetKey encryption/decryption (encrypt-sign, decrypt, serve, ...)');
66
72
  console.log(' social Social profile query (get-profile)');
73
+ console.log(' zmail Encrypted mail (register, inbox, sent, ack)');
67
74
  console.log('');
68
75
  console.log('Global options:');
69
76
  console.log(' --identity=<pem_path> Specify identity PEM file');
@@ -92,6 +99,15 @@ function showHelp() {
92
99
  * so the sub-script receives the same parsed arguments as before.
93
100
  */
94
101
  async function main() {
102
+ // Pre-flight update check: compare local CLI version against npm registry,
103
+ // auto-update if needed, and prompt re-execution when updates are applied.
104
+ // SKILL.md is bundled in the npm package, so updating the package covers everything.
105
+ const checkResult = await preCheck();
106
+ if (checkResult.updated) {
107
+ console.error(checkResult.message);
108
+ // Exit so the agent / user re-runs with the updated CLI binary and SKILL.md.
109
+ process.exit(0);
110
+ }
95
111
  // Get module name (skip node and script path)
96
112
  const moduleName = process.argv[2];
97
113
  if (!moduleName || moduleName === '--help' || moduleName === '-h') {
@@ -114,6 +130,38 @@ async function main() {
114
130
  const subArgv = [process.argv[0], scriptPath, ...process.argv.slice(3)];
115
131
  // Create a Session from the constructed argv
116
132
  const session = new Session(subArgv);
133
+ // Daemon health check (fire-and-forget): if the user already has a PEM identity,
134
+ // ensure both standard daemons ("default" and "Mail") are alive in the background.
135
+ // This is non-blocking — daemons are spawned but we don't wait for them to be ready.
136
+ // Commands that actually need a daemon (e.g. recv-msg) will wait synchronously.
137
+ //
138
+ // Skip conditions:
139
+ // - `vetkey serve`: manages its own daemon lifecycle via DaemonRuntime.create(),
140
+ // a background spawn would race with it causing "Daemon already running".
141
+ // - `identity generate`: may overwrite the PEM file; starting daemons with the
142
+ // old principal would create orphan processes unreachable by the new identity.
143
+ const isVetkeyServe = moduleName === 'vetkey' && process.argv[3] === 'serve';
144
+ const isIdentityGenerate = moduleName === 'identity' && process.argv[3] === 'generate';
145
+ if (!isVetkeyServe && !isIdentityGenerate) {
146
+ try {
147
+ // Resolve which PEM to use: respect --identity=<path> if provided,
148
+ // otherwise fall back to DEFAULT_PEM_PATH. We do NOT call getPemPath()
149
+ // because it auto-creates the default PEM — we only want to start
150
+ // daemons when the user already has an identity.
151
+ const identityArg = process.argv.find(a => a.startsWith('--identity='));
152
+ const pemPath = identityArg
153
+ ? identityArg.split('=').slice(1).join('=') // support paths containing '='
154
+ : DEFAULT_PEM_PATH;
155
+ if (fs.existsSync(pemPath)) {
156
+ const identity = loadIdentityFromPath(pemPath);
157
+ const principal = identity.getPrincipal().toText();
158
+ ensureDaemonsBackground(pemPath, principal);
159
+ }
160
+ }
161
+ catch {
162
+ // Silently ignore — daemon health check must never block the main command
163
+ }
164
+ }
117
165
  // Load and execute sub-script's run() function.
118
166
  // After compilation, __dirname points to dist/, sub-scripts are in the same directory.
119
167
  const mod = await import(scriptPath);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -24,6 +24,8 @@ const config = {
24
24
  setting_url: 'https://id.zcloak.ai/setting',
25
25
  // Social platform API base URL
26
26
  social_url: 'https://social.zcloak.ai',
27
+ // zMail server API base URL (encrypted mail service)
28
+ zmail_url: 'https://mail.zcloak.ai',
27
29
  };
28
30
  export default config;
29
31
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,MAAM,GAAc;IACxB,eAAe;IACf,WAAW,EAAE;QACX,QAAQ,EAAE,6BAA6B,EAAK,oBAAoB;QAChE,UAAU,EAAE,6BAA6B,EAAG,sBAAsB;KACnE;IACD,mCAAmC;IACnC,SAAS,EAAE,CAAC;IACZ,yBAAyB;IACzB,QAAQ,EAAE,iCAAiC;IAC3C,gCAAgC;IAChC,WAAW,EAAE,+BAA+B;IAC5C,4BAA4B;IAC5B,SAAS,EAAE,gCAAgC;IAC3C,oEAAoE;IACpE,SAAS,EAAE,gCAAgC;IAC3C,iDAAiD;IACjD,WAAW,EAAE,8BAA8B;IAC3C,+BAA+B;IAC/B,UAAU,EAAE,0BAA0B;CACvC,CAAC;AAEF,eAAe,MAAM,CAAC;AAEtB;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,MAAM,CAAC,WAAW,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,MAAM,GAAc;IACxB,eAAe;IACf,WAAW,EAAE;QACX,QAAQ,EAAE,6BAA6B,EAAK,oBAAoB;QAChE,UAAU,EAAE,6BAA6B,EAAG,sBAAsB;KACnE;IACD,mCAAmC;IACnC,SAAS,EAAE,CAAC;IACZ,yBAAyB;IACzB,QAAQ,EAAE,iCAAiC;IAC3C,gCAAgC;IAChC,WAAW,EAAE,+BAA+B;IAC5C,4BAA4B;IAC5B,SAAS,EAAE,gCAAgC;IAC3C,oEAAoE;IACpE,SAAS,EAAE,gCAAgC;IAC3C,iDAAiD;IACjD,WAAW,EAAE,8BAA8B;IAC3C,+BAA+B;IAC/B,UAAU,EAAE,0BAA0B;IACtC,qDAAqD;IACrD,SAAS,EAAE,wBAAwB;CACpC,CAAC;AAEF,eAAe,MAAM,CAAC;AAEtB;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,MAAM,CAAC,WAAW,CAAC;AAC5B,CAAC"}
package/dist/daemon.d.ts CHANGED
@@ -32,6 +32,24 @@ export declare function sanitizeDerivationId(derivationId: string): string;
32
32
  export declare function socketPath(derivationId: string): string;
33
33
  /** Get the PID file path for a derivation ID */
34
34
  export declare function pidPath(derivationId: string): string;
35
+ /**
36
+ * Check whether a daemon for the given derivation ID is alive.
37
+ *
38
+ * Unlike `findRunningDaemon()` which throws on missing daemons, this function
39
+ * returns a simple boolean — suitable for pre-checks where the caller wants to
40
+ * decide whether to auto-start a daemon without catching exceptions.
41
+ *
42
+ * Checks:
43
+ * 1. PID file exists for the derivation ID
44
+ * 2. The recorded PID is still alive (kill -0)
45
+ * 3. Socket file exists (daemon is connectable)
46
+ *
47
+ * If stale PID/socket files are found (process dead), they are cleaned up.
48
+ *
49
+ * @param derivationId - Full derivation ID (e.g. "{principal}:Mail")
50
+ * @returns true if the daemon is running and connectable
51
+ */
52
+ export declare function isDaemonAlive(derivationId: string): boolean;
35
53
  /**
36
54
  * Manages the lifecycle of a daemon instance.
37
55
  *
package/dist/daemon.js CHANGED
@@ -97,6 +97,45 @@ function isProcessAlive(pid) {
97
97
  return false;
98
98
  }
99
99
  }
100
+ /**
101
+ * Check whether a daemon for the given derivation ID is alive.
102
+ *
103
+ * Unlike `findRunningDaemon()` which throws on missing daemons, this function
104
+ * returns a simple boolean — suitable for pre-checks where the caller wants to
105
+ * decide whether to auto-start a daemon without catching exceptions.
106
+ *
107
+ * Checks:
108
+ * 1. PID file exists for the derivation ID
109
+ * 2. The recorded PID is still alive (kill -0)
110
+ * 3. Socket file exists (daemon is connectable)
111
+ *
112
+ * If stale PID/socket files are found (process dead), they are cleaned up.
113
+ *
114
+ * @param derivationId - Full derivation ID (e.g. "{principal}:Mail")
115
+ * @returns true if the daemon is running and connectable
116
+ */
117
+ export function isDaemonAlive(derivationId) {
118
+ const pid = pidPath(derivationId);
119
+ const sock = socketPath(derivationId);
120
+ // No PID file → definitely not running
121
+ if (!existsSync(pid))
122
+ return false;
123
+ try {
124
+ const pidStr = readFileSync(pid, "utf-8").trim();
125
+ const existingPid = parseInt(pidStr, 10);
126
+ if (isNaN(existingPid) || !isProcessAlive(existingPid)) {
127
+ // Process is dead — clean up stale files
128
+ safeUnlink(pid);
129
+ safeUnlink(sock);
130
+ return false;
131
+ }
132
+ // Process is alive — also verify socket file exists
133
+ return existsSync(sock);
134
+ }
135
+ catch {
136
+ return false;
137
+ }
138
+ }
100
139
  // ============================================================================
101
140
  // DaemonRuntime
102
141
  // ============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,kDAAkD;AAClD,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAExC;;;;GAIG;AACH,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,uDAAuD;AACvD,MAAM,UAAU,UAAU;IACxB,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,YAAoB;IACvD,MAAM,SAAS,GAAG,YAAY;SAC3B,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAEvB,kDAAkD;IAClD,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC;IAChD,IAAI,QAAQ,CAAC,MAAM,GAAG,mBAAmB,EAAE,CAAC;QAC1C,kDAAkD;QAClD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IACnC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,UAAU,CAAC,YAAoB;IAC7C,MAAM,IAAI,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAChD,OAAO,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,OAAO,CAAC,YAAoB;IAC1C,MAAM,IAAI,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAChD,OAAO,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;;;;;;;GAQG;AACH,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,CAAC;QACH,6DAA6D;QAC7D,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,oEAAoE;QACpE,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,IAAI,CAAC,IAAK,CAA2B,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC/F,OAAO,IAAI,CAAC;QACd,CAAC;QACD,iCAAiC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,aAAa;IASxB,YAAoB,cAAsB,EAAE,WAAmB,EAAE,YAAoB;QAL7E,cAAS,GAAG,KAAK,CAAC;QAMxB,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAElC,4CAA4C;QAC5C,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACxC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACrC,+DAA+D;QAC/D,sEAAsE;IACxE,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAC,YAAoB;QAChC,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QAElC,+DAA+D;QAC/D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,sCAAsC;QACtC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;gBACjD,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAEzC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;oBACvD,MAAM,WAAW,CACf,+BAA+B,WAAW,oBAAoB,YAAY,KAAK;wBAC/E,8DAA8D,CAC/D,CAAC;gBACJ,CAAC;gBAED,4BAA4B;gBAC5B,OAAO,CAAC,KAAK,CAAC,gCAAgC,MAAM,qBAAqB,CAAC,CAAC;YAC7E,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,8CAA8C;gBAC9C,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;oBAAE,MAAM,CAAC,CAAC;gBAC1D,oDAAoD;gBACpD,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAC;YACrD,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,CAAC;YAChB,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QAED,2DAA2D;QAC3D,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAC5C,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QAED,gCAAgC;QAChC,aAAa,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAExD,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;IACpD,CAAC;IAED,uBAAuB;IACvB,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,oBAAoB;IACpB,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,oBAAoB;IACpB,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1B,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE7B,kCAAkC;QAClC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACnD,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,YAAoB;IACpD,MAAM,IAAI,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAElC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,WAAW,CACf,8CAA8C,YAAY,KAAK;YAC/D,0BAA0B,IAAI,EAAE,CACjC,CAAC;IACJ,CAAC;IAED,2CAA2C;IAC3C,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACjD,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;gBACxD,yBAAyB;gBACzB,UAAU,CAAC,IAAI,CAAC,CAAC;gBACjB,UAAU,CAAC,GAAG,CAAC,CAAC;gBAChB,MAAM,WAAW,CACf,eAAe,YAAY,+BAA+B,WAAW,aAAa;oBAClF,mCAAmC,CACpC,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;gBAAE,MAAM,CAAC,CAAC;YAC1D,+DAA+D;QACjE,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,gEAAgE;AAChE,SAAS,UAAU,CAAC,QAAgB;IAClC,IAAI,CAAC;QACH,UAAU,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,8BAA8B;IAChC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Pre-flight Update Check
3
+ *
4
+ * Runs before every CLI command to ensure the CLI package is up-to-date.
5
+ * Since SKILL.md is bundled inside the npm package, updating the package
6
+ * automatically updates SKILL.md — no separate GitHub fetch is needed.
7
+ *
8
+ * Flow:
9
+ * 1. Read ~/.config/zcloak/.last-update-check timestamp
10
+ * 2. If last check was < 15 minutes ago → skip (return immediately)
11
+ * 3. If >= 15 minutes or file missing →
12
+ * a. Query npm registry for latest published version
13
+ * b. Compare with local package.json version
14
+ * c. If outdated → attempt `npm install -g @zcloak/ai-agent@latest`
15
+ * d. Write current timestamp to .last-update-check
16
+ *
17
+ * Design principles:
18
+ * - Network failures are silently ignored (never block command execution)
19
+ * - All output goes to stderr (never pollute stdout / command output)
20
+ * - Timeout on npm commands (10s for version query, 60s for install)
21
+ */
22
+ /** Result returned by preCheck() to the caller (cli.ts) */
23
+ export interface PreCheckResult {
24
+ /** Whether the CLI package was updated (requires re-execution) */
25
+ updated: boolean;
26
+ /** Human / agent-readable message (empty string when nothing changed) */
27
+ message: string;
28
+ }
29
+ /**
30
+ * Run the pre-flight update check.
31
+ *
32
+ * Called by cli.ts before dispatching any sub-command. If an update is
33
+ * detected and applied, the returned result contains a descriptive message
34
+ * (for stderr) and `updated: true`.
35
+ *
36
+ * When `updated` is true the caller should exit and prompt the agent /
37
+ * user to re-run the command (the running binary and SKILL.md are stale).
38
+ */
39
+ export declare function preCheck(): Promise<PreCheckResult>;
40
+ //# sourceMappingURL=pre-check.d.ts.map
@@ -0,0 +1,199 @@
1
+ /**
2
+ * Pre-flight Update Check
3
+ *
4
+ * Runs before every CLI command to ensure the CLI package is up-to-date.
5
+ * Since SKILL.md is bundled inside the npm package, updating the package
6
+ * automatically updates SKILL.md — no separate GitHub fetch is needed.
7
+ *
8
+ * Flow:
9
+ * 1. Read ~/.config/zcloak/.last-update-check timestamp
10
+ * 2. If last check was < 15 minutes ago → skip (return immediately)
11
+ * 3. If >= 15 minutes or file missing →
12
+ * a. Query npm registry for latest published version
13
+ * b. Compare with local package.json version
14
+ * c. If outdated → attempt `npm install -g @zcloak/ai-agent@latest`
15
+ * d. Write current timestamp to .last-update-check
16
+ *
17
+ * Design principles:
18
+ * - Network failures are silently ignored (never block command execution)
19
+ * - All output goes to stderr (never pollute stdout / command output)
20
+ * - Timeout on npm commands (10s for version query, 60s for install)
21
+ */
22
+ import fs from 'fs';
23
+ import path from 'path';
24
+ import os from 'os';
25
+ import { execSync } from 'child_process';
26
+ import { fileURLToPath } from 'url';
27
+ // ---------------------------------------------------------------------------
28
+ // Path constants
29
+ // ---------------------------------------------------------------------------
30
+ /** ESM equivalent of __dirname */
31
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
32
+ /** Package root directory (one level up from dist/) */
33
+ const PACKAGE_ROOT = path.resolve(__dirname, '..');
34
+ /** Local package.json path */
35
+ const LOCAL_PACKAGE_JSON = path.join(PACKAGE_ROOT, 'package.json');
36
+ /** Directory for zCloak configuration files */
37
+ const CONFIG_DIR = path.join(os.homedir(), '.config', 'zcloak');
38
+ /** Timestamp file recording when we last checked for updates */
39
+ const CHECK_FILE = path.join(CONFIG_DIR, '.last-update-check');
40
+ // ---------------------------------------------------------------------------
41
+ // Tuning constants
42
+ // ---------------------------------------------------------------------------
43
+ /** Minimum interval between update checks: 15 minutes (in milliseconds) */
44
+ const CHECK_INTERVAL_MS = 15 * 60 * 1000;
45
+ /** npm view timeout (milliseconds) */
46
+ const NPM_VIEW_TIMEOUT_MS = 10000;
47
+ /** npm install timeout (milliseconds) */
48
+ const NPM_INSTALL_TIMEOUT_MS = 60000;
49
+ /** npm package name for version queries */
50
+ const NPM_PACKAGE_NAME = '@zcloak/ai-agent';
51
+ // ---------------------------------------------------------------------------
52
+ // Local version helper
53
+ // ---------------------------------------------------------------------------
54
+ /**
55
+ * Read the local CLI version from package.json.
56
+ * Returns null if the file doesn't exist or can't be parsed.
57
+ */
58
+ function getLocalCliVersion() {
59
+ try {
60
+ const pkg = JSON.parse(fs.readFileSync(LOCAL_PACKAGE_JSON, 'utf-8'));
61
+ return pkg.version ?? null;
62
+ }
63
+ catch {
64
+ return null;
65
+ }
66
+ }
67
+ // ---------------------------------------------------------------------------
68
+ // Timestamp management
69
+ // ---------------------------------------------------------------------------
70
+ /**
71
+ * Determine whether we should perform an update check right now.
72
+ *
73
+ * Returns true when:
74
+ * - The timestamp file doesn't exist (first run)
75
+ * - The file content is invalid
76
+ * - More than CHECK_INTERVAL_MS has elapsed since the last check
77
+ */
78
+ function shouldCheck() {
79
+ try {
80
+ if (!fs.existsSync(CHECK_FILE))
81
+ return true;
82
+ const raw = fs.readFileSync(CHECK_FILE, 'utf-8').trim();
83
+ const timestamp = parseInt(raw, 10);
84
+ if (isNaN(timestamp))
85
+ return true;
86
+ return Date.now() - timestamp >= CHECK_INTERVAL_MS;
87
+ }
88
+ catch {
89
+ return true;
90
+ }
91
+ }
92
+ /**
93
+ * Record the current time as the last-check timestamp.
94
+ * Creates the config directory if it doesn't exist yet.
95
+ */
96
+ function recordCheckTime() {
97
+ try {
98
+ fs.mkdirSync(CONFIG_DIR, { recursive: true });
99
+ fs.writeFileSync(CHECK_FILE, String(Date.now()), 'utf-8');
100
+ }
101
+ catch {
102
+ // Non-critical — silently ignore write failures
103
+ }
104
+ }
105
+ // ---------------------------------------------------------------------------
106
+ // npm helpers
107
+ // ---------------------------------------------------------------------------
108
+ /**
109
+ * Query the npm registry for the latest published version of the CLI package.
110
+ *
111
+ * Uses `npm view <pkg> version` which is fast and doesn't require authentication.
112
+ * Returns null on any failure (network, timeout, npm not found).
113
+ */
114
+ function getNpmLatestVersion() {
115
+ try {
116
+ const output = execSync(`npm view ${NPM_PACKAGE_NAME} version`, {
117
+ stdio: 'pipe',
118
+ timeout: NPM_VIEW_TIMEOUT_MS,
119
+ encoding: 'utf-8',
120
+ });
121
+ return output.trim() || null;
122
+ }
123
+ catch {
124
+ return null;
125
+ }
126
+ }
127
+ /**
128
+ * Attempt to update the globally-installed CLI package via npm.
129
+ *
130
+ * This may fail if the user doesn't have write permissions to the global
131
+ * node_modules directory (e.g. needs sudo). In that case we return false
132
+ * and the caller will suggest a manual update command.
133
+ */
134
+ function updateCli() {
135
+ try {
136
+ execSync(`npm install -g ${NPM_PACKAGE_NAME}@latest`, {
137
+ stdio: 'pipe', // suppress npm output
138
+ timeout: NPM_INSTALL_TIMEOUT_MS,
139
+ });
140
+ return true;
141
+ }
142
+ catch {
143
+ return false;
144
+ }
145
+ }
146
+ // ---------------------------------------------------------------------------
147
+ // Main entry point
148
+ // ---------------------------------------------------------------------------
149
+ /**
150
+ * Run the pre-flight update check.
151
+ *
152
+ * Called by cli.ts before dispatching any sub-command. If an update is
153
+ * detected and applied, the returned result contains a descriptive message
154
+ * (for stderr) and `updated: true`.
155
+ *
156
+ * When `updated` is true the caller should exit and prompt the agent /
157
+ * user to re-run the command (the running binary and SKILL.md are stale).
158
+ */
159
+ export async function preCheck() {
160
+ // --- Gate: skip if last check was recent enough ---
161
+ if (!shouldCheck()) {
162
+ return { updated: false, message: '' };
163
+ }
164
+ // --- Read local version from package.json ---
165
+ const localVersion = getLocalCliVersion();
166
+ // --- Query npm registry for latest version ---
167
+ const remoteVersion = getNpmLatestVersion();
168
+ // Query failed → network unreachable; record time and move on
169
+ if (!remoteVersion) {
170
+ recordCheckTime();
171
+ return { updated: false, message: '' };
172
+ }
173
+ // --- Already up-to-date ---
174
+ if (remoteVersion === localVersion) {
175
+ recordCheckTime();
176
+ return { updated: false, message: '' };
177
+ }
178
+ // --- Version mismatch → attempt auto-update ---
179
+ const updated = updateCli();
180
+ // Record the check time regardless of outcome
181
+ recordCheckTime();
182
+ if (updated) {
183
+ // Auto-update succeeded — caller should exit and re-run
184
+ return {
185
+ updated: true,
186
+ message: [
187
+ '[zcloak-ai] Version update detected!',
188
+ `[zcloak-ai] CLI: ${localVersion ?? 'unknown'} → ${remoteVersion} (updated)`,
189
+ '[zcloak-ai] Updates applied. Please re-read the SKILL.md file and re-execute the command.',
190
+ ].join('\n'),
191
+ };
192
+ }
193
+ // Auto-update failed — inform user but don't block command execution
194
+ // (updated remains false so the caller continues normally)
195
+ console.error(`[zcloak-ai] CLI update available: ${localVersion ?? 'unknown'} → ${remoteVersion}` +
196
+ ` (run: npm install -g ${NPM_PACKAGE_NAME}@latest)`);
197
+ return { updated: false, message: '' };
198
+ }
199
+ //# sourceMappingURL=pre-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pre-check.js","sourceRoot":"","sources":["../src/pre-check.ts"],"names":[],"mappings":"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"}
package/dist/register.js CHANGED
@@ -15,7 +15,7 @@
15
15
  *
16
16
  * All commands support --identity=<pem_path> to specify identity file.
17
17
  */
18
- import { formatOptText, getProfileUrl } from './utils.js';
18
+ import { getProfileUrl } from './utils.js';
19
19
  import { generalParseAiIdToRecord, isReadableId } from './aiid.js';
20
20
  // ========== Help Information ==========
21
21
  function showHelp() {
@@ -37,6 +37,43 @@ function showHelp() {
37
37
  console.log(' zcloak-ai register register my-agent');
38
38
  console.log(' zcloak-ai register lookup-by-name "runner#8939.agent"');
39
39
  }
40
+ // ========== Helpers ==========
41
+ /**
42
+ * Format a Candid ID record { id, index, domain } into a readable AI ID string.
43
+ * e.g. { id:"francis", index:[1012n], domain:[{AGENT:null}] } → "francis#1012.agent"
44
+ * { id:"alice", index:[], domain:[{AI:null}] } → "alice.ai"
45
+ */
46
+ function formatIdRecord(idRecord) {
47
+ let text = idRecord.id;
48
+ if (idRecord.index && idRecord.index.length > 0) {
49
+ text += `#${idRecord.index[0].toString()}`;
50
+ }
51
+ if (idRecord.domain && idRecord.domain.length > 0) {
52
+ const d = idRecord.domain[0];
53
+ if ('AI' in d)
54
+ text += '.ai';
55
+ else if ('ORG' in d)
56
+ text += '.org';
57
+ else if ('AGENT' in d)
58
+ text += '.agent';
59
+ }
60
+ return text;
61
+ }
62
+ /**
63
+ * Extract the best AI ID string from a UserProfile.
64
+ * Priority: ai_profile.ai_name → ai_profile.default_name → null
65
+ */
66
+ function extractAiIdFromProfile(profile) {
67
+ if (!profile.ai_profile || profile.ai_profile.length === 0)
68
+ return null;
69
+ const ap = profile.ai_profile[0];
70
+ const idRecord = ap.ai_name && ap.ai_name.length > 0
71
+ ? ap.ai_name[0]
72
+ : ap.default_name && ap.default_name.length > 0
73
+ ? ap.default_name[0]
74
+ : null;
75
+ return idRecord ? formatIdRecord(idRecord) : null;
76
+ }
40
77
  // ========== Command Implementations ==========
41
78
  /** Get current identity's principal ID (read from PEM file) */
42
79
  function cmdGetPrincipal(session) {
@@ -48,11 +85,18 @@ async function cmdLookup(session) {
48
85
  const principal = session.getPrincipal();
49
86
  console.error(`Current principal: ${principal}`);
50
87
  const actor = await session.getAnonymousRegistryActor();
51
- const result = await actor.get_username_by_principal(principal);
52
- console.log(formatOptText(result));
53
- // If agent name found, show the profile page URL for convenience
54
- if (result && result.length > 0) {
55
- console.log(`View profile: ${getProfileUrl(result[0])}`);
88
+ const result = await actor.user_profile_get_by_principal(principal);
89
+ if (!result || result.length === 0) {
90
+ console.log('(null)');
91
+ return;
92
+ }
93
+ const aiId = extractAiIdFromProfile(result[0]);
94
+ if (aiId) {
95
+ console.log(`(opt "${aiId}")`);
96
+ console.log(`View profile: ${getProfileUrl(aiId)}`);
97
+ }
98
+ else {
99
+ console.log('(null)');
56
100
  }
57
101
  }
58
102
  /** Look up agent name by principal */
@@ -63,11 +107,20 @@ async function cmdLookupByPrincipal(session, principal) {
63
107
  process.exit(1);
64
108
  }
65
109
  const actor = await session.getAnonymousRegistryActor();
66
- const result = await actor.get_username_by_principal(principal);
67
- console.log(formatOptText(result));
68
- // If agent name found, show the profile page URL for convenience
69
- if (result && result.length > 0) {
70
- console.log(`View profile: ${getProfileUrl(result[0])}`);
110
+ // Use user_profile_get_by_principal to get full profile, then extract AI ID from ai_profile
111
+ const result = await actor.user_profile_get_by_principal(principal);
112
+ if (!result || result.length === 0) {
113
+ console.log('(null)');
114
+ return;
115
+ }
116
+ // Prefer ai_name over default_name; format as id[#index].domain
117
+ const aiId = extractAiIdFromProfile(result[0]);
118
+ if (aiId) {
119
+ console.log(`(opt "${aiId}")`);
120
+ console.log(`View profile: ${getProfileUrl(aiId)}`);
121
+ }
122
+ else {
123
+ console.log('(null)');
71
124
  }
72
125
  }
73
126
  /** Look up principal by readable name (.ai / .agent) or legacy agent name */
@@ -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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"}
@@ -28,5 +28,7 @@ export interface AppConfig {
28
28
  setting_url: string;
29
29
  /** Social platform API base URL */
30
30
  social_url: string;
31
+ /** zMail server API base URL (encrypted mail service) */
32
+ zmail_url: string;
31
33
  }
32
34
  //# sourceMappingURL=config.d.ts.map
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Run `npm run generate-types` to regenerate this file.
5
5
  * Source: registryIdlFactory in src/idl.ts
6
- * Generated: 2026-03-11T09:17:56.608Z
6
+ * Generated: 2026-03-12T11:14:41.618Z
7
7
  *
8
8
  * These types are derived from the Candid IDL definitions and correspond to
9
9
  * the canister's runtime interface. Edit idl.ts to change type definitions.