@zcloak/ai-agent 1.0.7 → 1.0.10
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/bind.d.ts +7 -2
- package/dist/bind.js +120 -16
- package/dist/bind.js.map +1 -1
- package/dist/identity.d.ts +28 -12
- package/dist/identity.js +64 -30
- package/dist/identity.js.map +1 -1
- package/dist/identity_cmd.d.ts +6 -7
- package/dist/identity_cmd.js +27 -51
- package/dist/identity_cmd.js.map +1 -1
- package/dist/idl.d.ts +3 -0
- package/dist/idl.js +32 -5
- package/dist/idl.js.map +1 -1
- package/dist/session.d.ts +4 -2
- package/dist/session.js +4 -2
- package/dist/session.js.map +1 -1
- package/dist/types/registry.d.ts +42 -1
- package/dist/types/registry.js +1 -1
- package/dist/types/sign-event.d.ts +1 -1
- package/dist/types/sign-event.js +1 -1
- package/package.json +1 -1
package/dist/bind.d.ts
CHANGED
|
@@ -8,8 +8,13 @@
|
|
|
8
8
|
* Uses @dfinity JS SDK to interact directly with ICP canister, no dfx required.
|
|
9
9
|
*
|
|
10
10
|
* Usage:
|
|
11
|
-
* zcloak-ai bind prepare <
|
|
12
|
-
* zcloak-ai bind check-passkey <
|
|
11
|
+
* zcloak-ai bind prepare <user_principal_or_ai_id> Prepare binding and generate authentication URL
|
|
12
|
+
* zcloak-ai bind check-passkey <user_principal_or_ai_id> Check if a principal has a registered passkey
|
|
13
|
+
*
|
|
14
|
+
* The <user_principal_or_ai_id> argument accepts:
|
|
15
|
+
* - A raw ICP principal (e.g. "57odc-ymip7-...")
|
|
16
|
+
* - A human-readable AI ID containing "." (e.g. "alice#1234.ai" or "runner#8939.agent")
|
|
17
|
+
* In the latter case the registry canister is queried first to resolve the principal.
|
|
13
18
|
*
|
|
14
19
|
* All commands support --identity=<pem_path> to specify identity file.
|
|
15
20
|
*/
|
package/dist/bind.js
CHANGED
|
@@ -8,8 +8,13 @@
|
|
|
8
8
|
* Uses @dfinity JS SDK to interact directly with ICP canister, no dfx required.
|
|
9
9
|
*
|
|
10
10
|
* Usage:
|
|
11
|
-
* zcloak-ai bind prepare <
|
|
12
|
-
* zcloak-ai bind check-passkey <
|
|
11
|
+
* zcloak-ai bind prepare <user_principal_or_ai_id> Prepare binding and generate authentication URL
|
|
12
|
+
* zcloak-ai bind check-passkey <user_principal_or_ai_id> Check if a principal has a registered passkey
|
|
13
|
+
*
|
|
14
|
+
* The <user_principal_or_ai_id> argument accepts:
|
|
15
|
+
* - A raw ICP principal (e.g. "57odc-ymip7-...")
|
|
16
|
+
* - A human-readable AI ID containing "." (e.g. "alice#1234.ai" or "runner#8939.agent")
|
|
17
|
+
* In the latter case the registry canister is queried first to resolve the principal.
|
|
13
18
|
*
|
|
14
19
|
* All commands support --identity=<pem_path> to specify identity file.
|
|
15
20
|
*/
|
|
@@ -18,21 +23,116 @@ function showHelp() {
|
|
|
18
23
|
console.log('zCloak.ai Agent-Owner Binding Tool');
|
|
19
24
|
console.log('');
|
|
20
25
|
console.log('Usage:');
|
|
21
|
-
console.log(' zcloak-ai bind prepare <
|
|
22
|
-
console.log(' zcloak-ai bind check-passkey <
|
|
26
|
+
console.log(' zcloak-ai bind prepare <user_principal_or_ai_id> Prepare binding and generate authentication URL');
|
|
27
|
+
console.log(' zcloak-ai bind check-passkey <user_principal_or_ai_id> Check if a principal has a registered passkey');
|
|
28
|
+
console.log('');
|
|
29
|
+
console.log('Arguments:');
|
|
30
|
+
console.log(' user_principal_or_ai_id ICP principal OR human-readable AI ID (e.g. alice#1234.ai)');
|
|
23
31
|
console.log('');
|
|
24
32
|
console.log('Options:');
|
|
25
33
|
console.log(' --identity=<pem_path> Specify identity PEM file');
|
|
26
34
|
console.log('');
|
|
27
35
|
console.log('Flow:');
|
|
28
|
-
console.log(' 1. Script
|
|
29
|
-
console.log(' 2. Script
|
|
30
|
-
console.log(' 3. Script
|
|
31
|
-
console.log(' 4.
|
|
36
|
+
console.log(' 1. Script resolves AI ID → principal if needed (via registry canister lookup)');
|
|
37
|
+
console.log(' 2. Script checks if target principal has a registered passkey (pre-check)');
|
|
38
|
+
console.log(' 3. Script calls agent_prepare_bond to get WebAuthn challenge');
|
|
39
|
+
console.log(' 4. Script generates authentication URL');
|
|
40
|
+
console.log(' 5. User opens the URL in browser and completes authentication with passkey');
|
|
32
41
|
console.log('');
|
|
33
42
|
console.log('Examples:');
|
|
34
43
|
console.log(' zcloak-ai bind prepare "57odc-ymip7-b7edu-aevpq-nu54m-q4paq-vsrtd-nlnmm-lkos3-d4h3t-7qe"');
|
|
35
44
|
console.log(' zcloak-ai bind check-passkey "57odc-ymip7-b7edu-aevpq-nu54m-q4paq-vsrtd-nlnmm-lkos3-d4h3t-7qe"');
|
|
45
|
+
console.log(' zcloak-ai bind prepare "alice#1234.ai"');
|
|
46
|
+
console.log(' zcloak-ai bind check-passkey "alice#1234.ai"');
|
|
47
|
+
}
|
|
48
|
+
// ========== Input Resolution Helpers ==========
|
|
49
|
+
/**
|
|
50
|
+
* Detect whether the input looks like a human-readable AI ID rather than a raw principal.
|
|
51
|
+
*
|
|
52
|
+
* AI IDs end with ".ai" (e.g. "alice#1234.ai", "alice.ai").
|
|
53
|
+
* ICP principals only contain alphanumeric characters and hyphens, never a dot.
|
|
54
|
+
*/
|
|
55
|
+
function isAiId(input) {
|
|
56
|
+
return input.endsWith('.ai');
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Parse a ".ai" AI ID string into a structured ID record for canister lookup.
|
|
60
|
+
*
|
|
61
|
+
* Two formats are supported:
|
|
62
|
+
* - With discriminator : "alice#8730.ai" → { id: "alice", index: [8730n], domain: [{ AI: null }] }
|
|
63
|
+
* - Vanity (no #) : "alice.ai" → { id: "alice", index: [], domain: [{ AI: null }] }
|
|
64
|
+
*
|
|
65
|
+
* @param aiId - AI ID string ending with ".ai"
|
|
66
|
+
* @returns Structured ID record ready to pass to user_profile_get_by_id
|
|
67
|
+
* @throws If the string does not end with ".ai" or has an invalid format
|
|
68
|
+
*/
|
|
69
|
+
function parseAiIdToRecord(aiId) {
|
|
70
|
+
if (!aiId.endsWith('.ai')) {
|
|
71
|
+
throw new Error(`Expected an AI ID ending with ".ai", got: "${aiId}"`);
|
|
72
|
+
}
|
|
73
|
+
// Strip the ".ai" suffix to get the name part (e.g. "alice#8730" or "alice")
|
|
74
|
+
const namePart = aiId.slice(0, -3); // remove ".ai"
|
|
75
|
+
const hashIndex = namePart.indexOf('#');
|
|
76
|
+
if (hashIndex === -1) {
|
|
77
|
+
// Vanity name — no discriminator (e.g. "alice.ai")
|
|
78
|
+
return {
|
|
79
|
+
id: namePart,
|
|
80
|
+
index: [], // Candid opt — empty = null
|
|
81
|
+
domain: [{ AI: null }],
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
// Indexed name (e.g. "alice#8730.ai")
|
|
85
|
+
const baseName = namePart.slice(0, hashIndex);
|
|
86
|
+
const indexStr = namePart.slice(hashIndex + 1);
|
|
87
|
+
const indexNum = parseInt(indexStr, 10);
|
|
88
|
+
if (!baseName || !indexStr || isNaN(indexNum) || indexNum < 0) {
|
|
89
|
+
throw new Error(`Invalid AI ID format: "${aiId}". Expected "name#number.ai" or "name.ai".`);
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
id: baseName,
|
|
93
|
+
index: [BigInt(indexNum)], // Candid opt — [value] = Some(value)
|
|
94
|
+
domain: [{ AI: null }],
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Resolve a ".ai" AI ID string to a raw ICP principal text.
|
|
99
|
+
*
|
|
100
|
+
* Parses the AI ID into a structured ID record and calls
|
|
101
|
+
* user_profile_get_by_id on the registry canister, then extracts
|
|
102
|
+
* the principal_id field from the returned UserProfile.
|
|
103
|
+
*
|
|
104
|
+
* @param session - Current CLI session
|
|
105
|
+
* @param aiId - AI ID string ending with ".ai" (e.g. "alice#8730.ai" or "alice.ai")
|
|
106
|
+
* @returns Resolved ICP principal text
|
|
107
|
+
* @throws If the AI ID cannot be found or has no principal bound
|
|
108
|
+
*/
|
|
109
|
+
async function resolveAIIDToPrincipal(session, aiId) {
|
|
110
|
+
const idRecord = parseAiIdToRecord(aiId);
|
|
111
|
+
console.error(`Resolving AI ID "${aiId}" → id="${idRecord.id}", index=${idRecord.index.length ? idRecord.index[0].toString() : 'null'}...`);
|
|
112
|
+
const actor = await session.getAnonymousRegistryActor();
|
|
113
|
+
const result = await actor.user_profile_get_by_id(idRecord);
|
|
114
|
+
// opt UserProfile — empty array means not found
|
|
115
|
+
if (!result || result.length === 0) {
|
|
116
|
+
throw new Error(`AI ID not found in registry: "${aiId}". Check the spelling and try again.`);
|
|
117
|
+
}
|
|
118
|
+
const profile = result[0];
|
|
119
|
+
// principal_id is opt text — the owner's bound principal
|
|
120
|
+
if (!profile.principal_id || profile.principal_id.length === 0) {
|
|
121
|
+
throw new Error(`AI ID "${aiId}" exists in registry but has no principal bound.`);
|
|
122
|
+
}
|
|
123
|
+
const principal = profile.principal_id[0];
|
|
124
|
+
console.error(`Resolved: ${aiId} → ${principal}`);
|
|
125
|
+
return principal;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Resolve input (raw principal OR ".ai" AI ID) to an ICP principal text.
|
|
129
|
+
* Dispatches to resolveAIIDToPrincipal for AI IDs; returns input as-is otherwise.
|
|
130
|
+
*/
|
|
131
|
+
async function resolveInputToPrincipal(session, input) {
|
|
132
|
+
if (!isAiId(input)) {
|
|
133
|
+
return input;
|
|
134
|
+
}
|
|
135
|
+
return resolveAIIDToPrincipal(session, input);
|
|
36
136
|
}
|
|
37
137
|
// ========== Passkey Pre-check Helper ==========
|
|
38
138
|
/**
|
|
@@ -53,12 +153,14 @@ async function hasPasskey(session, userPrincipal) {
|
|
|
53
153
|
}
|
|
54
154
|
// ========== Command Implementations ==========
|
|
55
155
|
/** Check if a principal has a registered passkey (standalone command) */
|
|
56
|
-
async function cmdCheckPasskey(session,
|
|
57
|
-
if (!
|
|
58
|
-
console.error('Error: user principal ID is required');
|
|
59
|
-
console.error('Usage: zcloak-ai bind check-passkey <
|
|
156
|
+
async function cmdCheckPasskey(session, userInput) {
|
|
157
|
+
if (!userInput) {
|
|
158
|
+
console.error('Error: user principal ID or AI ID is required');
|
|
159
|
+
console.error('Usage: zcloak-ai bind check-passkey <user_principal_or_ai_id>');
|
|
60
160
|
process.exit(1);
|
|
61
161
|
}
|
|
162
|
+
// Resolve AI ID → principal if needed
|
|
163
|
+
const userPrincipal = await resolveInputToPrincipal(session, userInput);
|
|
62
164
|
console.error('Checking passkey status...');
|
|
63
165
|
const result = await hasPasskey(session, userPrincipal);
|
|
64
166
|
if (result) {
|
|
@@ -73,12 +175,14 @@ async function cmdCheckPasskey(session, userPrincipal) {
|
|
|
73
175
|
}
|
|
74
176
|
}
|
|
75
177
|
/** Prepare binding and generate authentication URL */
|
|
76
|
-
async function cmdPrepare(session,
|
|
77
|
-
if (!
|
|
78
|
-
console.error('Error: user principal ID is required');
|
|
79
|
-
console.error('Usage: zcloak-ai bind prepare <
|
|
178
|
+
async function cmdPrepare(session, userInput) {
|
|
179
|
+
if (!userInput) {
|
|
180
|
+
console.error('Error: user principal ID or AI ID is required');
|
|
181
|
+
console.error('Usage: zcloak-ai bind prepare <user_principal_or_ai_id>');
|
|
80
182
|
process.exit(1);
|
|
81
183
|
}
|
|
184
|
+
// Resolve AI ID → principal if needed
|
|
185
|
+
const userPrincipal = await resolveInputToPrincipal(session, userInput);
|
|
82
186
|
// Pre-check: ensure the target principal has a passkey before proceeding
|
|
83
187
|
console.error('Pre-check: verifying passkey status...');
|
|
84
188
|
const passkeyOk = await hasPasskey(session, userPrincipal);
|
package/dist/bind.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bind.js","sourceRoot":"","sources":["../src/bind.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"bind.js","sourceRoot":"","sources":["../src/bind.ts"],"names":[],"mappings":"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"}
|
package/dist/identity.d.ts
CHANGED
|
@@ -1,35 +1,51 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* zCloak.ai Identity Management Module
|
|
3
3
|
*
|
|
4
|
-
* Loads ECDSA secp256k1 identity from
|
|
5
|
-
* Replaces the original `dfx identity get-principal` and similar commands.
|
|
4
|
+
* Loads ECDSA secp256k1 identity from a zCloak-managed PEM file for signing operations.
|
|
6
5
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* The CLI uses a dedicated default path under ~/.config/zcloak/ai-id.pem rather than
|
|
7
|
+
* reusing dfx's default identity location. This keeps the agent identity stable and
|
|
8
|
+
* separate from any existing dfx identity the user may already have.
|
|
9
9
|
*
|
|
10
10
|
* PEM file location priority:
|
|
11
11
|
* 1. --identity=<path> command line argument
|
|
12
|
-
* 2.
|
|
13
|
-
* 3. ~/.config/dfx/identity/default/identity.pem (dfx default location)
|
|
12
|
+
* 2. ~/.config/zcloak/ai-id.pem (zCloak default location, auto-created if missing)
|
|
14
13
|
*/
|
|
15
14
|
import { Secp256k1KeyIdentity } from '@dfinity/identity-secp256k1';
|
|
16
15
|
/**
|
|
17
|
-
*
|
|
18
|
-
* Unified for macOS and Linux: ~/.config/
|
|
16
|
+
* zCloak default identity PEM file path
|
|
17
|
+
* Unified for macOS and Linux: ~/.config/zcloak/ai-id.pem
|
|
19
18
|
*/
|
|
20
19
|
export declare const DEFAULT_PEM_PATH: string;
|
|
20
|
+
/**
|
|
21
|
+
* Expand CLI paths like ~/foo.pem to an absolute path.
|
|
22
|
+
*/
|
|
23
|
+
export declare function resolveCliPath(rawPath: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* Ensure a PEM file exists at the requested path.
|
|
26
|
+
* If the file already exists, validate and reuse it unless force=true.
|
|
27
|
+
* If the file does not exist, create parent directories and generate a new key.
|
|
28
|
+
*/
|
|
29
|
+
export declare function ensureIdentityFile(pemPath: string, options?: {
|
|
30
|
+
force?: boolean;
|
|
31
|
+
}): {
|
|
32
|
+
path: string;
|
|
33
|
+
created: boolean;
|
|
34
|
+
};
|
|
21
35
|
/**
|
|
22
36
|
* Get PEM file path.
|
|
23
|
-
* Searches by priority: --identity argument >
|
|
37
|
+
* Searches by priority: --identity argument > zCloak default location.
|
|
38
|
+
* The zCloak default location is created automatically on first use.
|
|
24
39
|
*
|
|
25
40
|
* When called with an explicit argv array, uses that instead of process.argv.
|
|
26
41
|
* This enables deterministic, testable behavior without global state dependency.
|
|
27
42
|
*
|
|
28
|
-
|
|
43
|
+
* @param argv - Optional explicit argument array (defaults to process.argv)
|
|
44
|
+
* @param defaultPemPath - Override for tests
|
|
29
45
|
* @returns Absolute path to PEM file
|
|
30
|
-
* @throws {Error} If
|
|
46
|
+
* @throws {Error} If an explicitly specified path does not exist
|
|
31
47
|
*/
|
|
32
|
-
export declare function getPemPath(argv?: string[]): string;
|
|
48
|
+
export declare function getPemPath(argv?: string[], defaultPemPath?: string): string;
|
|
33
49
|
/**
|
|
34
50
|
* Load an ECDSA secp256k1 identity directly from a given PEM file path.
|
|
35
51
|
*
|
package/dist/identity.js
CHANGED
|
@@ -1,66 +1,100 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* zCloak.ai Identity Management Module
|
|
3
3
|
*
|
|
4
|
-
* Loads ECDSA secp256k1 identity from
|
|
5
|
-
* Replaces the original `dfx identity get-principal` and similar commands.
|
|
4
|
+
* Loads ECDSA secp256k1 identity from a zCloak-managed PEM file for signing operations.
|
|
6
5
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* The CLI uses a dedicated default path under ~/.config/zcloak/ai-id.pem rather than
|
|
7
|
+
* reusing dfx's default identity location. This keeps the agent identity stable and
|
|
8
|
+
* separate from any existing dfx identity the user may already have.
|
|
9
9
|
*
|
|
10
10
|
* PEM file location priority:
|
|
11
11
|
* 1. --identity=<path> command line argument
|
|
12
|
-
* 2.
|
|
13
|
-
* 3. ~/.config/dfx/identity/default/identity.pem (dfx default location)
|
|
12
|
+
* 2. ~/.config/zcloak/ai-id.pem (zCloak default location, auto-created if missing)
|
|
14
13
|
*/
|
|
15
14
|
import fs from 'fs';
|
|
16
15
|
import path from 'path';
|
|
17
16
|
import os from 'os';
|
|
17
|
+
import { generateKeyPairSync } from 'crypto';
|
|
18
18
|
import { Secp256k1KeyIdentity } from '@dfinity/identity-secp256k1';
|
|
19
19
|
// ========== PEM File Lookup ==========
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
22
|
-
* Unified for macOS and Linux: ~/.config/
|
|
21
|
+
* zCloak default identity PEM file path
|
|
22
|
+
* Unified for macOS and Linux: ~/.config/zcloak/ai-id.pem
|
|
23
23
|
*/
|
|
24
|
-
export const DEFAULT_PEM_PATH = path.join(os.homedir(), '.config', '
|
|
24
|
+
export const DEFAULT_PEM_PATH = path.join(os.homedir(), '.config', 'zcloak', 'ai-id.pem');
|
|
25
|
+
/**
|
|
26
|
+
* Expand CLI paths like ~/foo.pem to an absolute path.
|
|
27
|
+
*/
|
|
28
|
+
export function resolveCliPath(rawPath) {
|
|
29
|
+
if (rawPath === '~') {
|
|
30
|
+
return os.homedir();
|
|
31
|
+
}
|
|
32
|
+
if (rawPath.startsWith(`~${path.sep}`)) {
|
|
33
|
+
return path.join(os.homedir(), rawPath.slice(2));
|
|
34
|
+
}
|
|
35
|
+
if (rawPath.startsWith('~/')) {
|
|
36
|
+
return path.join(os.homedir(), rawPath.slice(2));
|
|
37
|
+
}
|
|
38
|
+
return path.resolve(rawPath);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Ensure a PEM file exists at the requested path.
|
|
42
|
+
* If the file already exists, validate and reuse it unless force=true.
|
|
43
|
+
* If the file does not exist, create parent directories and generate a new key.
|
|
44
|
+
*/
|
|
45
|
+
export function ensureIdentityFile(pemPath, options) {
|
|
46
|
+
const resolved = resolveCliPath(pemPath);
|
|
47
|
+
const force = !!options?.force;
|
|
48
|
+
if (fs.existsSync(resolved) && !force) {
|
|
49
|
+
try {
|
|
50
|
+
loadIdentityFromPath(resolved);
|
|
51
|
+
return { path: resolved, created: false };
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
throw new Error(`Identity file exists but is not a valid PEM: ${resolved}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const dir = path.dirname(resolved);
|
|
58
|
+
if (!fs.existsSync(dir)) {
|
|
59
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
60
|
+
}
|
|
61
|
+
const { privateKey } = generateKeyPairSync('ec', { namedCurve: 'secp256k1' });
|
|
62
|
+
const pem = privateKey.export({ type: 'sec1', format: 'pem' });
|
|
63
|
+
fs.writeFileSync(resolved, pem, { mode: 0o600 });
|
|
64
|
+
return { path: resolved, created: true };
|
|
65
|
+
}
|
|
25
66
|
/**
|
|
26
67
|
* Get PEM file path.
|
|
27
|
-
* Searches by priority: --identity argument >
|
|
68
|
+
* Searches by priority: --identity argument > zCloak default location.
|
|
69
|
+
* The zCloak default location is created automatically on first use.
|
|
28
70
|
*
|
|
29
71
|
* When called with an explicit argv array, uses that instead of process.argv.
|
|
30
72
|
* This enables deterministic, testable behavior without global state dependency.
|
|
31
73
|
*
|
|
32
|
-
|
|
74
|
+
* @param argv - Optional explicit argument array (defaults to process.argv)
|
|
75
|
+
* @param defaultPemPath - Override for tests
|
|
33
76
|
* @returns Absolute path to PEM file
|
|
34
|
-
* @throws {Error} If
|
|
77
|
+
* @throws {Error} If an explicitly specified path does not exist
|
|
35
78
|
*/
|
|
36
|
-
export function getPemPath(argv) {
|
|
79
|
+
export function getPemPath(argv, defaultPemPath = DEFAULT_PEM_PATH) {
|
|
37
80
|
const effectiveArgv = argv ?? process.argv;
|
|
81
|
+
const resolvedDefault = resolveCliPath(defaultPemPath);
|
|
38
82
|
// 1. Get from --identity=<path> argument
|
|
39
83
|
const identityArg = effectiveArgv.find(a => a.startsWith('--identity='));
|
|
40
84
|
if (identityArg) {
|
|
41
85
|
const p = identityArg.split('=').slice(1).join('='); // Support paths containing =
|
|
42
|
-
const resolved =
|
|
86
|
+
const resolved = resolveCliPath(p);
|
|
43
87
|
if (!fs.existsSync(resolved)) {
|
|
88
|
+
if (resolved === resolvedDefault) {
|
|
89
|
+
ensureIdentityFile(resolvedDefault);
|
|
90
|
+
return resolvedDefault;
|
|
91
|
+
}
|
|
44
92
|
throw new Error(`Specified PEM file does not exist: ${resolved}`);
|
|
45
93
|
}
|
|
46
94
|
return resolved;
|
|
47
95
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
const resolved = path.resolve(process.env.ZCLOAK_IDENTITY);
|
|
51
|
-
if (!fs.existsSync(resolved)) {
|
|
52
|
-
throw new Error(`PEM file specified by ZCLOAK_IDENTITY does not exist: ${resolved}`);
|
|
53
|
-
}
|
|
54
|
-
return resolved;
|
|
55
|
-
}
|
|
56
|
-
// 3. Use dfx default location
|
|
57
|
-
if (fs.existsSync(DEFAULT_PEM_PATH)) {
|
|
58
|
-
return DEFAULT_PEM_PATH;
|
|
59
|
-
}
|
|
60
|
-
throw new Error('Identity PEM file not found. Provide one via:\n' +
|
|
61
|
-
' 1. --identity=<pem_file_path>\n' +
|
|
62
|
-
' 2. Set environment variable ZCLOAK_IDENTITY=<pem_file_path>\n' +
|
|
63
|
-
` 3. Ensure dfx default identity exists: ${DEFAULT_PEM_PATH}`);
|
|
96
|
+
ensureIdentityFile(resolvedDefault);
|
|
97
|
+
return resolvedDefault;
|
|
64
98
|
}
|
|
65
99
|
// ========== Identity Management ==========
|
|
66
100
|
/**
|
package/dist/identity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"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"}
|
package/dist/identity_cmd.d.ts
CHANGED
|
@@ -3,18 +3,17 @@
|
|
|
3
3
|
* zCloak.ai Identity Key Management Script
|
|
4
4
|
*
|
|
5
5
|
* Generates and inspects ECDSA secp256k1 identity PEM files without requiring dfx.
|
|
6
|
-
* Uses
|
|
6
|
+
* Uses a dedicated zCloak identity path by default: ~/.config/zcloak/ai-id.pem.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* regenerate a new key (the old key will be permanently lost).
|
|
8
|
+
* By default the CLI keeps using the same agent identity at the zCloak-managed path.
|
|
9
|
+
* If the default file does not exist, it is created automatically and then reused
|
|
10
|
+
* on subsequent commands.
|
|
12
11
|
*
|
|
13
12
|
* Usage:
|
|
14
|
-
* zcloak-ai identity generate [--output=<path>] [--force]
|
|
13
|
+
* zcloak-ai identity generate [--output=<path>] [--identity=<path>] [--force]
|
|
15
14
|
* If a PEM file already exists at the target path, read and reuse it.
|
|
16
15
|
* Only generates a new key when no existing file is found.
|
|
17
|
-
* Default output: ~/.config/
|
|
16
|
+
* Default output: ~/.config/zcloak/ai-id.pem
|
|
18
17
|
* Use --force to overwrite an existing file with a brand-new key.
|
|
19
18
|
*
|
|
20
19
|
* zcloak-ai identity show
|
package/dist/identity_cmd.js
CHANGED
|
@@ -3,45 +3,41 @@
|
|
|
3
3
|
* zCloak.ai Identity Key Management Script
|
|
4
4
|
*
|
|
5
5
|
* Generates and inspects ECDSA secp256k1 identity PEM files without requiring dfx.
|
|
6
|
-
* Uses
|
|
6
|
+
* Uses a dedicated zCloak identity path by default: ~/.config/zcloak/ai-id.pem.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* regenerate a new key (the old key will be permanently lost).
|
|
8
|
+
* By default the CLI keeps using the same agent identity at the zCloak-managed path.
|
|
9
|
+
* If the default file does not exist, it is created automatically and then reused
|
|
10
|
+
* on subsequent commands.
|
|
12
11
|
*
|
|
13
12
|
* Usage:
|
|
14
|
-
* zcloak-ai identity generate [--output=<path>] [--force]
|
|
13
|
+
* zcloak-ai identity generate [--output=<path>] [--identity=<path>] [--force]
|
|
15
14
|
* If a PEM file already exists at the target path, read and reuse it.
|
|
16
15
|
* Only generates a new key when no existing file is found.
|
|
17
|
-
* Default output: ~/.config/
|
|
16
|
+
* Default output: ~/.config/zcloak/ai-id.pem
|
|
18
17
|
* Use --force to overwrite an existing file with a brand-new key.
|
|
19
18
|
*
|
|
20
19
|
* zcloak-ai identity show
|
|
21
20
|
* Print the PEM path and principal ID of the current identity.
|
|
22
21
|
*/
|
|
23
|
-
import
|
|
24
|
-
import path from 'path';
|
|
25
|
-
import { generateKeyPairSync } from 'crypto';
|
|
26
|
-
import { DEFAULT_PEM_PATH, loadIdentityFromPath } from './identity.js';
|
|
22
|
+
import { DEFAULT_PEM_PATH, ensureIdentityFile, loadIdentityFromPath, resolveCliPath } from './identity.js';
|
|
27
23
|
// ========== Help ==========
|
|
28
24
|
function showHelp() {
|
|
29
25
|
console.log('zCloak.ai Identity Key Management');
|
|
30
26
|
console.log('');
|
|
31
27
|
console.log('Usage:');
|
|
32
|
-
console.log(' zcloak-ai identity generate [--output=<path>] [--force]');
|
|
28
|
+
console.log(' zcloak-ai identity generate [--output=<path>] [--identity=<path>] [--force]');
|
|
33
29
|
console.log(' Ensure an ECDSA secp256k1 PEM key exists (no dfx required).');
|
|
34
|
-
console.log(' If a PEM file already exists, reuse it
|
|
35
|
-
console.log('
|
|
36
|
-
console.log(' Default path: ~/.config/
|
|
30
|
+
console.log(' If a PEM file already exists, reuse it.');
|
|
31
|
+
console.log(' If the default zCloak identity does not exist yet, create it automatically.');
|
|
32
|
+
console.log(' Default path: ~/.config/zcloak/ai-id.pem');
|
|
37
33
|
console.log('');
|
|
38
34
|
console.log(' zcloak-ai identity show');
|
|
39
35
|
console.log(' Print PEM file path and principal ID of the current identity');
|
|
40
36
|
console.log('');
|
|
41
37
|
console.log('Options:');
|
|
42
38
|
console.log(' --output=<path> Custom output path for the PEM file');
|
|
39
|
+
console.log(' --identity=<path> Generate to or show from a specific identity PEM path');
|
|
43
40
|
console.log(' --force Force regenerate a NEW key (overwrites existing!)');
|
|
44
|
-
console.log(' --identity=<path> Use a specific identity PEM (for "show" command)');
|
|
45
41
|
console.log('');
|
|
46
42
|
console.log('Examples:');
|
|
47
43
|
console.log(' zcloak-ai identity generate');
|
|
@@ -66,45 +62,25 @@ function showHelp() {
|
|
|
66
62
|
* loadable by Secp256k1KeyIdentity.fromPem().
|
|
67
63
|
*/
|
|
68
64
|
function cmdGenerate(args) {
|
|
69
|
-
// Determine output path: --output flag or
|
|
70
|
-
const outputRaw = args['output']
|
|
65
|
+
// Determine output path: --output flag or zCloak default
|
|
66
|
+
const outputRaw = typeof args['output'] === 'string'
|
|
67
|
+
? args['output']
|
|
68
|
+
: typeof args['identity'] === 'string'
|
|
69
|
+
? args['identity']
|
|
70
|
+
: undefined;
|
|
71
71
|
const outputPath = typeof outputRaw === 'string'
|
|
72
|
-
?
|
|
72
|
+
? resolveCliPath(outputRaw)
|
|
73
73
|
: DEFAULT_PEM_PATH;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
if (
|
|
79
|
-
|
|
80
|
-
const identity = loadIdentityFromPath(outputPath);
|
|
81
|
-
console.log(`Existing identity found, reusing: ${outputPath}`);
|
|
82
|
-
console.log(`Principal ID: ${identity.getPrincipal().toText()}`);
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
catch {
|
|
86
|
-
// The existing file is corrupt or not a valid PEM — warn the user and
|
|
87
|
-
// refuse to silently overwrite it. They must use --force intentionally.
|
|
88
|
-
console.error(`Error: file exists but is not a valid PEM: ${outputPath}`);
|
|
89
|
-
console.error('Use --force to overwrite with a new key.');
|
|
90
|
-
process.exit(1);
|
|
91
|
-
}
|
|
74
|
+
const { path: ensuredPath, created } = ensureIdentityFile(outputPath, {
|
|
75
|
+
force: !!args['force'],
|
|
76
|
+
});
|
|
77
|
+
const identity = loadIdentityFromPath(ensuredPath);
|
|
78
|
+
if (created) {
|
|
79
|
+
console.log(`Identity PEM generated: ${ensuredPath}`);
|
|
92
80
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
if (!fs.existsSync(dir)) {
|
|
96
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
81
|
+
else {
|
|
82
|
+
console.log(`Existing identity found, reusing: ${ensuredPath}`);
|
|
97
83
|
}
|
|
98
|
-
// Generate EC key pair and export as SEC1 PEM (same format as dfx)
|
|
99
|
-
const { privateKey } = generateKeyPairSync('ec', { namedCurve: 'secp256k1' });
|
|
100
|
-
const pem = privateKey.export({ type: 'sec1', format: 'pem' });
|
|
101
|
-
// Write with owner-only permissions (0600), matching how dfx stores identity files
|
|
102
|
-
fs.writeFileSync(outputPath, pem, { mode: 0o600 });
|
|
103
|
-
console.log(`Identity PEM generated: ${outputPath}`);
|
|
104
|
-
// Derive and display the Principal from the newly written file so the user
|
|
105
|
-
// can verify immediately. We use loadIdentityFromPath() to bypass the global
|
|
106
|
-
// argv / cache lookup — no process.argv mutation needed.
|
|
107
|
-
const identity = loadIdentityFromPath(outputPath);
|
|
108
84
|
console.log(`Principal ID: ${identity.getPrincipal().toText()}`);
|
|
109
85
|
}
|
|
110
86
|
/**
|
package/dist/identity_cmd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity_cmd.js","sourceRoot":"","sources":["../src/identity_cmd.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"identity_cmd.js","sourceRoot":"","sources":["../src/identity_cmd.ts"],"names":[],"mappings":"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"}
|
package/dist/idl.d.ts
CHANGED
|
@@ -75,6 +75,8 @@ export declare const signIdlFactory: IDL.InterfaceFactory;
|
|
|
75
75
|
* @param I - The IDL module
|
|
76
76
|
*/
|
|
77
77
|
export declare function buildRegistryTypes(I: typeof IDL): {
|
|
78
|
+
Domain: IDL.VariantClass;
|
|
79
|
+
ID: IDL.RecordClass;
|
|
78
80
|
Position: IDL.RecordClass;
|
|
79
81
|
AiProfile: IDL.RecordClass;
|
|
80
82
|
UserProfile: IDL.RecordClass;
|
|
@@ -92,6 +94,7 @@ export declare function buildRegistryService(I: typeof IDL, types: ReturnType<ty
|
|
|
92
94
|
get_username_by_principal: IDL.FuncClass<[IDL.TextClass], [IDL.OptClass<string>]>;
|
|
93
95
|
get_user_principal: IDL.FuncClass<[IDL.TextClass], [IDL.OptClass<import("@dfinity/principal").Principal>]>;
|
|
94
96
|
user_profile_get: IDL.FuncClass<[IDL.TextClass], [IDL.OptClass<Record<string, any>>]>;
|
|
97
|
+
user_profile_get_by_id: IDL.FuncClass<[IDL.RecordClass], [IDL.OptClass<Record<string, any>>]>;
|
|
95
98
|
user_profile_get_by_principal: IDL.FuncClass<[IDL.TextClass], [IDL.OptClass<Record<string, any>>]>;
|
|
96
99
|
register_agent: IDL.FuncClass<[IDL.TextClass], [IDL.VariantClass]>;
|
|
97
100
|
agent_prepare_bond: IDL.FuncClass<[IDL.TextClass], [IDL.VariantClass]>;
|
package/dist/idl.js
CHANGED
|
@@ -163,6 +163,23 @@ export const signIdlFactory = () => {
|
|
|
163
163
|
* @param I - The IDL module
|
|
164
164
|
*/
|
|
165
165
|
export function buildRegistryTypes(I) {
|
|
166
|
+
/** Domain variant — namespace for ID resolution */
|
|
167
|
+
const Domain = I.Variant({
|
|
168
|
+
AI: I.Null,
|
|
169
|
+
ORG: I.Null,
|
|
170
|
+
AGENT: I.Null,
|
|
171
|
+
});
|
|
172
|
+
/**
|
|
173
|
+
* ID record — structured identifier for user_profile_get_by_id
|
|
174
|
+
* id : base name (e.g. "alice", "runner#8939")
|
|
175
|
+
* index : optional numeric discriminator (e.g. 8939 from "alice#8939.ai"); null for vanity IDs
|
|
176
|
+
* domain : optional namespace (AI | ORG | AGENT); null defaults to AI
|
|
177
|
+
*/
|
|
178
|
+
const ID = I.Record({
|
|
179
|
+
id: I.Text,
|
|
180
|
+
index: I.Opt(I.Nat64),
|
|
181
|
+
domain: I.Opt(Domain),
|
|
182
|
+
});
|
|
166
183
|
/** Position record — position information in the registry */
|
|
167
184
|
const Position = I.Record({
|
|
168
185
|
is_human: I.Bool,
|
|
@@ -170,14 +187,22 @@ export function buildRegistryTypes(I) {
|
|
|
170
187
|
});
|
|
171
188
|
/** AI profile record */
|
|
172
189
|
const AiProfile = I.Record({
|
|
190
|
+
ai_name: I.Opt(ID),
|
|
191
|
+
default_name: I.Opt(ID),
|
|
192
|
+
is_free: I.Bool,
|
|
193
|
+
valid_time: I.Opt(I.Nat64),
|
|
194
|
+
bio: I.Opt(I.Text),
|
|
173
195
|
position: I.Opt(Position),
|
|
174
196
|
});
|
|
175
197
|
/** User profile record */
|
|
176
198
|
const UserProfile = I.Record({
|
|
177
199
|
username: I.Text,
|
|
178
|
-
|
|
200
|
+
create_time: I.Nat64,
|
|
201
|
+
modify_time: I.Nat64,
|
|
202
|
+
passkey_name: I.Vec(I.Text),
|
|
203
|
+
display_name: I.Text,
|
|
179
204
|
principal_id: I.Opt(I.Text),
|
|
180
|
-
|
|
205
|
+
ai_profile: I.Opt(AiProfile),
|
|
181
206
|
});
|
|
182
207
|
/** Registration success result record */
|
|
183
208
|
const RegisterResult = I.Record({
|
|
@@ -192,7 +217,7 @@ export function buildRegistryTypes(I) {
|
|
|
192
217
|
request_timestamp: I.Nat64, // When the 2FA request was created
|
|
193
218
|
confirm_timestamp: I.Opt(I.Nat64), // When the 2FA was confirmed (null if pending)
|
|
194
219
|
});
|
|
195
|
-
return { Position, AiProfile, UserProfile, RegisterResult, TwoFARecord };
|
|
220
|
+
return { Domain, ID, Position, AiProfile, UserProfile, RegisterResult, TwoFARecord };
|
|
196
221
|
}
|
|
197
222
|
/**
|
|
198
223
|
* Build the registry canister service, reusing pre-built named types.
|
|
@@ -202,15 +227,17 @@ export function buildRegistryTypes(I) {
|
|
|
202
227
|
* @param types - Named types from buildRegistryTypes() (same instances used in the registry)
|
|
203
228
|
*/
|
|
204
229
|
export function buildRegistryService(I, types) {
|
|
205
|
-
const { UserProfile, RegisterResult, TwoFARecord } = types;
|
|
230
|
+
const { UserProfile, RegisterResult, TwoFARecord, ID } = types;
|
|
206
231
|
return I.Service({
|
|
207
232
|
// ===== Query operations (query) =====
|
|
208
233
|
// Get username by principal
|
|
209
234
|
get_username_by_principal: I.Func([I.Text], [I.Opt(I.Text)], ['query']),
|
|
210
235
|
// Get principal by username
|
|
211
236
|
get_user_principal: I.Func([I.Text], [I.Opt(I.Principal)], ['query']),
|
|
212
|
-
// Get UserProfile by username
|
|
237
|
+
// Get UserProfile by username (legacy)
|
|
213
238
|
user_profile_get: I.Func([I.Text], [I.Opt(UserProfile)], ['query']),
|
|
239
|
+
// Get UserProfile by structured ID (supports .ai vanity and indexed names)
|
|
240
|
+
user_profile_get_by_id: I.Func([ID], [I.Opt(UserProfile)], ['query']),
|
|
214
241
|
// Get UserProfile by principal
|
|
215
242
|
user_profile_get_by_principal: I.Func([I.Text], [I.Opt(UserProfile)], ['query']),
|
|
216
243
|
// ===== Update operations (update call, requires identity) =====
|
package/dist/idl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idl.js","sourceRoot":"","sources":["../src/idl.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"idl.js","sourceRoot":"","sources":["../src/idl.ts"],"names":[],"mappings":"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"}
|
package/dist/session.d.ts
CHANGED
|
@@ -57,14 +57,16 @@ export declare class Session {
|
|
|
57
57
|
/**
|
|
58
58
|
* Get the resolved PEM file path for this session.
|
|
59
59
|
* Uses the same resolution priority as getIdentity():
|
|
60
|
-
* --identity=<path> >
|
|
60
|
+
* --identity=<path> > ~/.config/zcloak/ai-id.pem
|
|
61
|
+
*
|
|
62
|
+
* The default zCloak identity is created automatically on first use.
|
|
61
63
|
*/
|
|
62
64
|
getPemPath(): string;
|
|
63
65
|
/**
|
|
64
66
|
* Get the ECDSA secp256k1 identity for this session.
|
|
65
67
|
* Loaded from PEM file on first call, then cached.
|
|
66
68
|
*
|
|
67
|
-
* PEM path resolution: --identity=<path> >
|
|
69
|
+
* PEM path resolution: --identity=<path> > ~/.config/zcloak/ai-id.pem
|
|
68
70
|
*/
|
|
69
71
|
getIdentity(): Secp256k1KeyIdentity;
|
|
70
72
|
/** Get the current identity's Principal ID as text */
|
package/dist/session.js
CHANGED
|
@@ -58,7 +58,9 @@ export class Session {
|
|
|
58
58
|
/**
|
|
59
59
|
* Get the resolved PEM file path for this session.
|
|
60
60
|
* Uses the same resolution priority as getIdentity():
|
|
61
|
-
* --identity=<path> >
|
|
61
|
+
* --identity=<path> > ~/.config/zcloak/ai-id.pem
|
|
62
|
+
*
|
|
63
|
+
* The default zCloak identity is created automatically on first use.
|
|
62
64
|
*/
|
|
63
65
|
getPemPath() {
|
|
64
66
|
return getPemPath(this._argv);
|
|
@@ -67,7 +69,7 @@ export class Session {
|
|
|
67
69
|
* Get the ECDSA secp256k1 identity for this session.
|
|
68
70
|
* Loaded from PEM file on first call, then cached.
|
|
69
71
|
*
|
|
70
|
-
* PEM path resolution: --identity=<path> >
|
|
72
|
+
* PEM path resolution: --identity=<path> > ~/.config/zcloak/ai-id.pem
|
|
71
73
|
*/
|
|
72
74
|
getIdentity() {
|
|
73
75
|
if (!this._identity) {
|
package/dist/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAsB,MAAM,gBAAgB,CAAC;AAGtE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,MAAM,MAAM,aAAa,CAAC;AAMjC,8BAA8B;AAC9B,MAAM,OAAO,GAAG,iBAAiB,CAAC;AAElC;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,OAAO;IAelB;;;;;;;OAOG;IACH,YAAY,IAAc;QAb1B,kEAAkE;QAC1D,cAAS,GAAgC,IAAI,CAAC;QAC9C,wBAAmB,GAAqB,IAAI,CAAC;QAC7C,oBAAe,GAAqB,IAAI,CAAC;QAW/C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,cAAc,EAAE,CAAC;IACtC,CAAC;IAED,iCAAiC;IAEjC
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
package/dist/types/registry.d.ts
CHANGED
|
@@ -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-
|
|
6
|
+
* Generated: 2026-03-07T07:50:56.374Z
|
|
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.
|
|
@@ -18,13 +18,41 @@ export interface Position {
|
|
|
18
18
|
}
|
|
19
19
|
/** AI profile record */
|
|
20
20
|
export interface AiProfile {
|
|
21
|
+
is_free: boolean;
|
|
22
|
+
bio: CandidOpt<string>;
|
|
23
|
+
default_name: CandidOpt<{
|
|
24
|
+
id: string;
|
|
25
|
+
domain: CandidOpt<{
|
|
26
|
+
AI: null;
|
|
27
|
+
} | {
|
|
28
|
+
ORG: null;
|
|
29
|
+
} | {
|
|
30
|
+
AGENT: null;
|
|
31
|
+
}>;
|
|
32
|
+
index: CandidOpt<bigint>;
|
|
33
|
+
}>;
|
|
34
|
+
ai_name: CandidOpt<{
|
|
35
|
+
id: string;
|
|
36
|
+
domain: CandidOpt<{
|
|
37
|
+
AI: null;
|
|
38
|
+
} | {
|
|
39
|
+
ORG: null;
|
|
40
|
+
} | {
|
|
41
|
+
AGENT: null;
|
|
42
|
+
}>;
|
|
43
|
+
index: CandidOpt<bigint>;
|
|
44
|
+
}>;
|
|
45
|
+
valid_time: CandidOpt<bigint>;
|
|
21
46
|
position: CandidOpt<Position>;
|
|
22
47
|
}
|
|
23
48
|
/** User profile record */
|
|
24
49
|
export interface UserProfile {
|
|
50
|
+
modify_time: bigint;
|
|
25
51
|
username: string;
|
|
26
52
|
passkey_name: string[];
|
|
53
|
+
display_name: string;
|
|
27
54
|
ai_profile: CandidOpt<AiProfile>;
|
|
55
|
+
create_time: bigint;
|
|
28
56
|
principal_id: CandidOpt<string>;
|
|
29
57
|
}
|
|
30
58
|
/** Registration success result */
|
|
@@ -67,6 +95,19 @@ export interface RegistryService {
|
|
|
67
95
|
query_2fa_result_by_challenge: ActorMethod<[string], CandidOpt<TwoFARecord>>;
|
|
68
96
|
register_agent: ActorMethod<[string], RegisterAgentResult>;
|
|
69
97
|
user_profile_get: ActorMethod<[string], CandidOpt<UserProfile>>;
|
|
98
|
+
user_profile_get_by_id: ActorMethod<[
|
|
99
|
+
{
|
|
100
|
+
id: string;
|
|
101
|
+
domain: CandidOpt<{
|
|
102
|
+
AI: null;
|
|
103
|
+
} | {
|
|
104
|
+
ORG: null;
|
|
105
|
+
} | {
|
|
106
|
+
AGENT: null;
|
|
107
|
+
}>;
|
|
108
|
+
index: CandidOpt<bigint>;
|
|
109
|
+
}
|
|
110
|
+
], CandidOpt<UserProfile>>;
|
|
70
111
|
user_profile_get_by_principal: ActorMethod<[string], CandidOpt<UserProfile>>;
|
|
71
112
|
}
|
|
72
113
|
//# sourceMappingURL=registry.d.ts.map
|
package/dist/types/registry.js
CHANGED
|
@@ -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-
|
|
6
|
+
* Generated: 2026-03-07T07:50:56.374Z
|
|
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.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Run `npm run generate-types` to regenerate this file.
|
|
5
5
|
* Source: signIdlFactory in src/idl.ts
|
|
6
|
-
* Generated: 2026-03-
|
|
6
|
+
* Generated: 2026-03-07T07:50:56.373Z
|
|
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.
|
package/dist/types/sign-event.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Run `npm run generate-types` to regenerate this file.
|
|
5
5
|
* Source: signIdlFactory in src/idl.ts
|
|
6
|
-
* Generated: 2026-03-
|
|
6
|
+
* Generated: 2026-03-07T07:50:56.373Z
|
|
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.
|